Asymetrické algoritmy Flashcards
RSA, Diffie-Hellman, ECDH systém a jejich využití pro digitální podpis.
Asymetrická kryptografie
Využití dvojice klíčů - veřejný a soukromý. Veřejný je volně distribuován a slouží k šifrování nebo ověření podpisu a soukromý je držen v tajnosti a dlouží k dešifrování a podepisování dat.
Bezpečnost je založena na obtížnosti výpočtu diskrétního logaritmu. Neexistuje známý efektivní algoritmus pro řešení diskrétního logaritmu ve velkých prvočíselných grupách.
𝑐 = 𝑚^𝑛 mod p
RSA (Rivest-Shamir-Adleman)
Pomalý algoritmus - používá se k šifrování klíčů pro symetrickou kryptografii.
1) Volba dvou velkých prvočísel (p,q)
2) Spočítat jejich součin pxq
3) Spočítání Eulerovy funkce φ(n) = (p - 1) × (q - 1)
4) Vybrat veřejný exponent e (nesoudělný a menší než φ(n)
5) Spočítat soukromý exponent d d⋅e≡1(modφ(n))
Veřejný klíč - Kv = e,n
Soukromý klíč Ks = d,n
Šifrování - C=M^e mod n
Dešifrování - M=C^d mod n
Digitální podpis - 1)Odesílatel vytvoří hash zprávy (např pomocí SHA-256)
2) Hash je zašifrován soukromým klíčem odesílatele -> vznikne digitální podpis.
3) Příjemce dešifruje podpis pomocí veřejného klíče a porovná hash s vlastním hashem.
Diffie-Hellman
Metoda pro vytvoření společného tajného klíče přes nezabezpečený kanál. Vymění se veřejné výpočty, ale klíč je dopočítán soukromě.
1) Zvolí se velké prvočíslo P a generátor G (veřejné)
2) Strany si zvolí tajný soukromý klíč (a,b)
3) Vypočítají se veřejné klíče A=g^a mod p | B=g^b mod p
4) Pošlou si navzájem A a B
5) Výpočet společného tajného klíče -
Alice spočítá K= B^a mod p
Bob spočítá K= A^b mod p
Diffie-Hellman - výměna nad eliptickými křivkami
Vylepšení DH využitím eliptických křivek, což umožňuje dosažení stejné úrovně bezpečnosti při menší délce klíčů.
Strany se dohodnou na parametrech eliptické křivky (např. y^2 = x^3 +ax +b)
Každá strana vygeneruje svůj soukromý klíč (a,b)
a odpovídající veřejný klíč (A = aP, B= bP), kde P je základní bod na křivce.
Sdílený klíč se vypočítá jako K=aB =bA
Využití Asymetrické kryptografie pro digitální podpis
Digitální podpis zajišťuje tři klíčové vlastnosti:
Autenticitu: Ověření identity odesílatele.
Integritu: Ověření, že zpráva nebyla během přenosu změněna.
Nepopiratelnost: Odesílatel nemůže popřít, že zprávu podepsal.
Postup digitálního podpisu:
Hash zprávy: Pomocí kryptografické hashovací funkce (např. SHA-256) se vytvoří hash zprávy.
Šifrování: Hash se zašifruje soukromým klíčem podepisující strany (např. pomocí RSA).
Ověření: Příjemce dešifruje podpis veřejným klíčem a porovná získaný hash s vlastním hashováním zprávy.