Asymetrická kryptografie a elektronický podpis Ing. Mgr. Martin Henzl Mgr. Radim Janča
[email protected]
Obsah cvičení
• Asymetrická, symetrická a hybridní kryptografie • Matematické problémy, na kterých je založena asymetrická k. • RSA
2
Symetrická kryptografie
• • • • • •
Symetrické šifry symetrický klíč stejný pro šifrování i dešifrování výrazně rychlejší než asymetrická kryptografie nutnost sdílet stejný klíč – problém spolehlivé distribuce doporučená velikost klíče - 128, 256, 512 bitů příklady symetrických šifer - AES, DES, Blowfish, Serpent
3
Asymetrická kryptografie
• • • • • •
Asymetrické šifry klíčový pár – veřejný a soukromý klíč veřejný klíč – použití pro šifrování nebo ověření podpisu soukromý klíč – použití pro dešifrování nebo vytvoření podpisu doporučená velikost klíče - 1024, 2048, 4096 bitů příklady asymetrických šifer - RSA, Diffie-Hellman, ElGamal
4
Hybridní šifrování • Kombinuje výhody symetrické a asymetrické kryptografie • Rychlost šifrování vs. jednoduchá distribuce klíčů • Symetrické šifry mohou být až 100000x rychlejší než asymetrické
• Postup šifrování vstupních dat: 1. 2. 3. 4. 5. 6.
Vygenerujeme náhodný symetrický klíč (musí sdílet obě strany) Tímto klíčem zašifrujeme vstupní data Pomocí veřejného klíče příjemce zašifrujeme symetrický klíč Odešleme zašifrovaná data a zašifrovaný klíč Příjemce pomocí svého privátního klíče dešifruje symetrický klíč Pomocí symetrického klíče (předán bezpečným způsobem) dešifruje data
5
Elektronický podpis a hašovací funkce • Elektronický podpis zajišťuje: • • • •
integritu autenticitu podepsaného nepopiratelnost na rozdíl od šifrování nic neutajuje
• Hašovací funkce • • • •
Asymetrická kryptografie je pomalá, abychom podepisovali celý dokument Podepisuje se pouze haš dokumentu vytvořená hašovací funkcí Typicky se používá hašovací funkce z rodiny SHA (160, 384, 512) Hašovací funkce musí splňovat několik vlastností: jednosměrnost, odolnost proti nalezení vzoru, odolnost 6
Matematické problémy asymetrické kryptografie
• Problém faktorizace velkých čísel (RSA) • násobení čísel je snadné (výpočetně, časově) • problém faktorizace velkého čísla je NP problém
• Disktétní logaritmus (Diffie-Hellman, ElGamal) • • • •
mějme čísla Y, α, m, k, kde m je prvočíslo a α je generátorem cyklické grupy Y = αk mod m číslo k nazveme diskrétním logaritmem čísla Y při základu α číslo k není tímto vztahem určeno jednoznačně, se vzrůstající hodnotou čísla k se zvyšuje náročnost výpočtu
7
RSA • Generování klíčů • • • • •
dvě různá prvočísla p, q n = p*q, φ = (p – 1)*(q - 1) volba náhodného přirozeného e, 1 < e < φ, gcd(e, φ ) = 1 vypočteme d tak, že e*d ≡ 1 mod φ veřejný klíč je dvojice (n, e), privátní klíč je hodnota d
• Šifrování a dešifrování • zpráva m, 0 ≤ m ≤ n - 1 • šifrovaná zpráva c = me mod n • původní zpráva m = cd mod n
8
Diffie-Hellman Ustavení sdíleného tajemství (klíče) mezi Alicí a Bobem 1. Jeden z účastníků (např. Alice) zveřejní čísla α, m, která jsou společná 2. Každý účastník zvolí vlastní parametr – Alice a a Bob b 3. Alice spočte A = αa mod m, Bob spočte B = αb mod m 4. Alice s Bobem si vymění A a B 5. Spočtou si K (klíč). Bob K = Ab mod m, Alice K = Ba mod m • protokol slouží k ustanovení společného tajemství • protokol je postaven na problému diskrétních logaritmů • protokol je zranitelný útokem typu man-in-the-middle
9
Úvod do Certifikátu a Certifikačních Autorit Mgr. Radim Janča
[email protected]
Certifikáty a Certifikační Autory
• K čemu asymetrická kryptografie? • Vytvoření identity (za předpokladu utajení privátního klíče) • Autentizace, el. podpis, šifrování ..
• Jak zajistit jednoznačnou vazbu mezi osobou(subjektem) a jejím privátním/veřejným klíčem? • • • •
Zaslání emailem – bez autentizace nepoužitelné Vystavení na server – bez autentizace nepoužitelné - spoofing Osobní předání – použitelné v malé skupině Předání třetí stranou – praktické ve velkých skupinách, třetí strana musí být důvěryhodná
11
Certifikát x.509
• Jednotný způsob jak ukládat klíče a zajistit pravost • Obsah certifikátu (vybrané údaje): • Vydavatel • Platnost – od\do • subjekt vlastník veřejného klíče • Algoritmus • Veřejný klíč
• Elektronický podpis (podpis certifikátu vydávající CA)
12
Formáty certifikátů
• .DER – DER zakódovaný certifikát • .PEM –DER certifikát zakódovaný pomocí base64, uzavřený mezi řádky "-----BEGIN CERTIFICATE-----" a "-----END CERTIFICATE-----" • .P12 – PKCS #12, může obsahovat certifikát(y), veřejné i soukromé klíče (chráněno heslem) • .crt, .cer – přípona ve windows, typicky obsahuje certifikát formátu PKCS #12
13
Certifikační autorita
• Organizace zajišťující vydávání a distribuci certifikátů • Svým privátním klíčem podepisuje vydávané certifikáty
• Udržuje CRL (Certificate Revocation List) • Součástí CA je tzv. Registrační Autorita • Stará se o přijímání žádostí o certifikát • Ověřuje žádosti (identitu žadatele)
• Od důkladnosti ověření RA a zabezpečení CA se odvíjí její důvěryhodnost • Některé CA mohou požadovat pouze ověření identity přes internet – nízká důvěryhodnost certifikátu, ale i cena • Komplexní ověření žadatele – vyšší důvěryhodnost za vyšší cenu
14
Stromová struktura CA
• Historie - předpoklad jedné CA distribuující pravomoci • Realita – celá řada nezávislých CA • Hierarchie CA • Geografického hledisko • Rozložení zátěže • Rozložení rizik
15
Příklad žádosti o certifikát Certificate Request: Data: Version: 0 (0x0) Subject: C=CZ, ST=Czech Republic, L=Brno, O=VUT, CN=JohnDoe/
[email protected] Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (4096 bit) Modulus: 00:cb:76:51:6e:62:8d:0a:31:50:44:94:2d:37:12: 3d:00:1f:da:7e:54:4b:ab:fb:a9:09:48:b8:d0:7e: … Exponent: 65537 (0x10001) Signature Algorithm: sha1WithRSAEncryption 1d:1f:05:5b:a5:8b:4b:a1:fe:48:61:a7:2f:c7:44:b9:c9:af: fd:97:c9:b9:41:95:b4:f5:cd:ce:f9:20:5b:a1:a4:5b:2c:27: …
16
Příklad certifikátu Certificate: Data: Version: 3 (0x2) Serial Number: c2:29:ca:54:c8:c9:ee:41 Signature Algorithm: sha1WithRSAEncryption Issuer: C=CZ, ST=Czech Republic, O=VUT, OU=testCA, CN=Moje testovaci CA/
[email protected] Validity Not Before: Oct 6 18:01:01 2014 GMT Not After : Oct 6 18:01:01 2015 GMT Subject: C=CZ, ST=Czech Republic, L=Brno, O=VUT, CN=John Doe/
[email protected] Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (4096 bit) Modulus: 00:cb:76:51:6e:62:8d:0a:31:50:44:94:2d:37:12: … Exponent: 65537 (0x10001) Signature Algorithm: sha1WithRSAEncryption 65:30:5f:f5:3e:24:d1:12:72:f2:ca:a5:0f:c2:ed:2c:2c:46: …
17
Děkuji za pozornost
10/10