Útok na privátní podpisové klíče formátu OpenPGP, programů PGP TM a dalších aplikací kompatibilních s OpenPGP
|
|
- Barbora Nováková
- před 9 lety
- Počet zobrazení:
Transkript
1 Útok na privátní podpisové klíče formátu OpenPGP, programů PGP TM a dalších aplikací kompatibilních s OpenPGP Vlastimil Klíma 1 a Tomáš Rosa 2 1 Decros spol. s r.o., člen skupiny ICZ a.s., Praha, v.klima@decros.cz 2 Decros spol. s r.o., člen skupiny ICZ a.s., Praha a ČVUT - FEL Praha, t.rosa@decros.cz Abstrakt. V příspěvku je popsán útok na formát OpenPGP, který vede k odhalení privátních podpisových klíčů algoritmů DSA a RSA. Formát OpenPGP je použit v řadě aplikací, včetně programů PGP, GNU Privacy Guard a dalších, uvedených na seznamu produktů, kompatibilních s OpenPGP, které jsou uvedeny na stránce Proto všechny tyto aplikace musí projít stejnou revizí jako vlastní program PGP TM. Úspěšnost útoku byla prakticky ověřena a demonstrována na programu PGP TM(*) verze s kombinací algoritmů AES a DH/DSS. Protože privátní podepisovací klíč je základní utajovanou informací celého systému, je zašifrován silnou šifrou. Ukazuje se však, že tato ochrana je iluzorní, protože útočník nemusí útočit ani na tuto šifru, ani na tajné přístupové heslo uživatele. K útoku stačí určitým způsobem modifikovat soubor s privátním klíčem a následně zachytit jednu podepsanou zprávu. Nedostatečné zajištění integrity veřejných i privátních částí podepisovacích klíčů ve formátu OpenPGP je analyzováno u algoritmů DSA a RSA a na základě toho je ukázán postup útoků na oba privátní podpisové klíče. Útoky se týkají všech délek parametrů (modulů, klíčů) RSA a DSA. V závěru se navrhují kryptografická opatření pro opravu formátu OpenPGP i programu PGP TM. 1 Úvod Formát OpenPGP je definován v dokumentu [1] z roku Jeho cílem bylo publikovat všechny nezbytné informace o formátu OpenPGP, aby na jeho bázi mohly být vytvářeny různé interoperabilní aplikace. Popisuje formáty zpráv (datových struktur) a způsob, jak mají být vytvářeny. V tomto příspěvku poukazujeme na závažnou chybu formátu OpenPGP, která spočívá v nedostatečném zajištění integrity veřejných i privátních částí podepisovacích klíčů algoritmů DSA a RSA. Ukazujeme, že tato chyba může být využita k odhalení privátního klíče. Aby byl privátní klíč chráněn, je jeho hodnota uložena do privátní klíčenky (souboru) secring.skr v zašifrovaném tvaru. K tomu je použita uživatelem zvolená silná symetrická šifra (AES, CAST5, IDEA) s dostatečně dlouhým klíčem, který je odvozen od tajného přístupového hesla (password, passphrase), které zná jen uživatel. V příspěvku ukazujeme, že pokud útočník má přístup k tomuto souboru (nebo záznamu), může za určitých okolností získat privátní podpisový klíč uživatele, aniž by znal jeho přístupové heslo nebo proti němu útočil. Útok spočívá ve speciální modifikaci parametrů podpisového algoritmu a získání podpisu libovolného souboru ( ové zprávy) takto modifikovaným podpisovým klíčem. Ukazujeme, že na základě toho je útočník schopen vypočítat privátní podepisovací klíč. Protože může narušený záznam nebo soubor (secring.skr) uvést zpět do původního stavu, je tento útok velmi nebezpečný. Ve stejném ohrožení jsou i privátní klíče, přenášené v zašifrovaném tvaru na disketách nebo po síti. Útok byl ověřen prakticky na nejnovější verzi programu PGP TM s kombinací algoritmů AES a DH/DSS a jeho výsledkem bylo získání privátního podpisového klíče algoritmu DSA. V závěru navrhujeme určitá bezpečnostní a kryptografická opatření pro opravu formátu OpenPGP a změny v programu PGP TM
2 Podrobnou revizí musí projít všechny další aplikace, které jsou kompatibilní s formátem OpenPGP. Jedná se například o GNU Privacy Guard a další, uvedené na seznamu aplikací, kompatibilních s OpenPGP, které jsou uvedeny na stránce Následující text je organizován takto: nejprve si připomeneme definici podpisového schématu DSA a formát uložení privátních klíčů podle OpenPGP [1]. Poté popíšeme ideu útoku na privátní podpisový klíč DSA a konkrétní postup útoku tak, jak jsme ho provedli v programu PGP TM. Dále popíšeme ideu útoku na podpisový klíč RSA, uložený podle formátu OpenPGP. Poté uvedeme základní přechodná opatření pro ochranu privátních klíčů v programu PGP TM a návrhy na revizi formátu OpenPGP. V dodatcích uvádíme technické podrobnosti útoků. 2 Podpisový algoritmus DSA Pro potřeby tohoto článku si v tomto odstavci připomeneme postup vytváření klíčového páru a podpisu pomocí 1024bitového algoritmu DSA (viz např. [2], str. 452) a postup verifikace podpisu a zavedeme potřebné proměnné. 2.1 Vytváření klíčového páru Označme h hašovací funkci SHA-1. Každý uživatel vygeneruje privátní a veřejný klíč následujícím postupem: 1. Zvol 160bitové prvočíslo q tak, že < q < Zvol 1024bitové prvočíslo p tak, že q dělí (p-1) a < p < Vyber generátor g cyklické podgrupy řádu q v Z p * (tj. zvolí se prvek h Z p * tak, že g = h (p-1)/q mod p a g 1, jinak se volí jiné h). 4. Vyber náhodné číslo x tak, že 1 x q Vypočti y = g x mod p. 6. Veřejný klíč je y, veřejné parametry jsou (p, q, g), privátní klíč je x. 2.2 Vytváření digitálního podpisu Uživatel při vytváření podpisu zprávy m (resp. její hašovací hodnoty h(m)) používá svůj privátní klíč x a veřejné parametry podle následujícího postupu: 1. Vyber náhodné tajné číslo k, 0 < k < q. 2. Vypočti r = (g k mod p) mod q. 3. Vypočti kinv = k -1 mod q. 4. Vypočti s = [kinv * ( h(m) + x*r)] mod q. 5. Digitální podpis zprávy m je dvojice (r, s). Poznamenejme, že r, s, q jsou obecně 160bitová čísla, zatímco p, g, y jsou 1024bitová. 2.3 Verifikace digitálního podpisu Při verifikaci digitálního podpisu zprávy m použijeme veřejný klíč signatáře (p, q, g, y) podle následujícího postupu. 1. Ověř, že 0 < r, s < q. V opačném případě je podpis neplatný. 2. Vypočti sinv = s -1 mod q a hašovací hodnotu h(m). 3. Vypočti u1 = sinv * h(m) mod q, u2 = sinv * r mod q. 4. Vypočti v = (g u1 * y u2 mod p) mod q. 5. Podpis je platný, právě když v = r
3 3 Popis datové struktury Secret Key Packet pro uložení privátního podpisového klíče podle OpenPGP Zde popíšeme datovou strukturu (Tag) "Secret Key Packet", ve které je uložen privátní podpisový klíč (RSA, DSA). Existují dvě verze tohoto formátu. Verze 3 se týká jen klíčů RSA, verze 4 může zahrnovat klíče DSA i RSA. Na podpisový klíč RSA budeme útočit prostřednictvím obou verzí formátu a na podpisový klíč DSA prostřednictvím verze 4 formátu. Verzi 4 tohoto formátu používá i program PGP TM 7.0.3, který preferuje DSA oproti RSA. V praxi se proto budeme setkávat zejména s klíči RSA ve formátu 3 a s klíči DSA ve formátu 4. Poznamenejme, že verze 3 a 4 se liší ve způsobu šifrování privátních dat, a proto se liší i útoky na oba algoritmy. V obou verzích formátu ale struktura Secret Key Packet obsahuje na počátku nejprve data ze struktury Public Key Packet, týkající se veřejného klíče, a poté data, týkající se privátního klíče. Popis a obsah jednotlivých položek pro algoritmus DSA znázorňuje tabulka 1 a pro algoritmus RSA tabulka 2. K obsahu tabulky připomeňme, že formát MPI (multiprecision integer) obsahuje prefix a poté vlastní (velké) celé číslo v zápisu BIG ENDIAN. Prefix tvoří dva oktety v BIG ENDIAN a označuje počet platných bitů následného čísla [1]. Public Key 1 oktet označující číslo verze 4 oktety označující čas, kdy byl klíč vytvořen 1 oktet označující algoritmus pro vytváření digitálního podpisu. Následují pole (čísla ve formátu MPI), obsahující veřejné parametry a veřejný klíč pro 1024bitový algoritmus DSA: prvočíslo p ( oktetů v obrázku 1) prvočíslo q ( oktetů v obrázku 1) číslo g ( oktetů v obrázku 1) Packet veřejný klíč uživatele y ( oktetů v obrázku 1) 1 oktet (string-to-key usage), indikující, zda a jak je šifrován privátní klíč. Je preferována hodnota 0xFF, znamenající, že následující tři volitelné položky jsou vyplněny. [Volitelné] V případě, že string-to-key usage je 0xFF, je zde 1 oktet, identifikující symetrický šifrovací algoritmus pro ochranu privátního klíče. [Volitelné] V případě, že string-to-key usage je 0xFF, je zde "string-to-key specifier", který říká, jak je password uživatele zpracován na symetrický klíč. Je preferována hodnota 0x03, označující tzv. iterovaný a solený "string-to-key specifier". Typicky jsou zde uložena následující data s tímto významem: 1 oktet: 0x03 (iterated and salted string-to-key identifier) 1 oktet: identifikátor hašovacího algoritmu (pro SHA-1 je to 0x02) 8 oktetů: sůl (náhodná data, která se hašují společně s přístupovým heslem uživatele a diverzifikují tak derivovaný symetrický klíč) 1 oktet: počet hašovaných oktetů dat (tzv. "count"). [Volitelné] Jestliže je privátní klíč šifrován, je zde uložen inicializační vektor (IV). Jsou to náhodná data v délce bloku použité blokové šifry (8 oktetů pro 64bitové blokové šifry, 16 oktetů pro algoritmus AES). Algoritmicky závislá čísla ve formátu MPI. Pro DSA je zde pouze privátní exponent x: 2 oktety, prefix čísla x (ve verzi 4 šifrováno, ve verzi 3 nešifrováno) 20 oktetů, číslo x (ve verzi 3 i 4 šifrováno) 2 oktety, checksum, aritmetický součet předchozích 22 oktetů v otevřeném tvaru, modulo (ve verzi 4 šifrováno, ve verzi 3 nešifrováno). Tabulka 1: Obsah struktury Secret Key Packet pro 1024bitový algoritmus DSA Oblast veřejně přístupných dat Oblast citlivých dat - 3 -
4 Nyní se ještě zastavíme u souborů typu secring.skr v programech PGP TM, kam program PGP TM ukládá strukturu Secret Key Packet. V tomto souboru je kromě pole Secret Key Packet uloženo obvykle ještě několik dalších záznamů jako jsou například UserID Packet (obsahuje identifikátor uživatele, tj. jeho jméno a ovou adresu), Signature Packet (obsahuje digitálně podepsané hodnoty důvěry, času podpisu, expiraci klíče a pod.), Secret Subkey Packet (obsahuje podobné údaje jako Secret Key Packet, ale tentokrát o asymetrickém klíči a algoritmu pro šifrování dat), další Signature Packet (obsahuje údaje jako například čas podpisu tohoto klíče podpisovým klíčem, velikost důvěry k němu a pod.). Tyto další záznamy ale neobsahují žádnou kontrolu integrity záznamu Secret Key Packet. To umožní úspěšně na Secret Key Packet útočit. Nyní si popíšeme útok zvlášť na RSA a zvlášť na DSA. 4 Útok na podpisový algoritmus DSA Povšimněme si, že integrita pole "Public Key Packet" v rámci struktury "Secret Key Packet" není nikde viditelně zajištěna ani ve formátu OpenPGP, a jak se ukázalo praktickým útokem, ani v programech PGP TM. Přitom při vytváření digitálního podpisu dochází právě k využití veřejných parametrů tohoto pole (v případě programu PGP TM je Secret Key Packet uložen konkrétně v souboru secring.skr). Tyto parametry by se sice mohly číst ze záznamu veřejného klíče (souboru pubring.pkr), ale je logické, že pokud je otevřen záznam privátního klíče, budou čteny odtud. Přitom v záznamu Secret Key Packet je chráněna hodnota privátního podepisovacího klíče, ale chybou je, že zde není nijak chráněna hodnota veřejných parametrů ani veřejného klíče. Konkrétně se v případě DSA jedná o hodnoty p, q, g, y, z nichž využijeme ke konkrétnímu útoku pouze p, g. Hlavní myšlenka útoku na DSA spočívá v následujících krocích. Útočník: 1. si připraví speciální čísla (konstanty) PGPrime a PGGenerator 2. získá strukturu Secret Key Packet daného uživatele a ve struktuře "Public Key Packet" uvnitř ní na místo hodnot p, g zde uložených podstrčí hodnoty p = PGPrime a g = PGGenerator 3. zachytí první nešifrovanou zprávu nebo soubor, který uživatel podepsal s takto podvrženými parametry a uchová si její podpis 4. na základě získané zprávy a jejího podpisu vypočte privátní klíč uživatele (hodnotu x) 5. vrátí hodnoty p, g do původního stavu Postup útoku na algoritmus DSA si nyní popíšeme podrobně a konkrétně tak, jak jsme ho provedli s využitím programu PGP TM Příklady a postup jsou uvedeny pro 1024 bitové DSA. V dalším textu budeme podvržené a na základě nich vypočítané hodnoty označovat vždy čárkou. 1.krok Zvolili jsme prvočíslo p (= PGPrime, konstanta) tak, aby 1. p mělo 159 bitů a byla tak určitě splněna podmínka p < q. 2. při zápisu p ve tvaru p = t*2 s +1 bylo 2 s co největší číslo a t malé prvočíslo. Konkrétně jsme vybrali s = 151 a t = 167, tj. p má binární tvar (150 nul) a hexadecimálně je zapsáno jako 0x
5 Dále jsme zvolili číslo g (=PGGenerator, konstanta) tak, aby 1. 1 < g < p g bylo generátorem multiplikativní grupy Z p *. Konkrétně jsme volili g = 0x31AC8529 1FF814E6 25E4B88C 8C5047A7 DB2F0E45 a ověřili jsme, že (g ) (p - 1)/2 mod p 1 a (g ) (p - 1)/t mod p 1. 2.krok Nyní jsme získali soubor secring.skr a v jeho záznamu Secret Key Packet jsme vyměnili hodnoty (p,g) za hodnoty (p, g ). Dále jsme upravili délky těchto čísel ve formátu MPI a zkrátili celkovou délku Secret Key Packet (hodnoty na počátku záznamu) tak, aby odpovídala kratším falešným hodnotám p a g. Situaci ilustruje obrázek 1 a 2. 3.krok S takto podvrženými hodnotami jsme vyčkali, až uživatel podepíše nějaký nám známý soubor (zprávu m) a získali jsme jeho podpis - hodnoty (r, s ). Nyní označme k nám neznámou hodnotu náhodně voleného čísla, které uživatelův program zvolil při tomto podpisu (viz popis DSA výše). 4.krok V tomto kroku jsme vypočítali hodnotu privátního klíče x daného uživatele na základě hodnot p, g, m, r a s. Z definice hodnoty podpisu (r, s ) totiž vyplývá, že (1) r = (g ) k mod p mod q, což vzhledem k volbě p < q dává (1a) r = (g ) k mod p a (2) s = {[k -1 mod q] * [ h(m) + x*r ] } mod q, tedy (2a) x = { [s * k - h(m)] * [(r ) -1 mod q] }mod q. Klíčovým bodem nyní je, že neznámé náhodně volené číslo k umíme díky volbě PGPrime a PGGenerator vypočítat. Prvočíslo p = PGPrime bylo zvoleno tak, aby rovnice (1a), tj. úloha diskrétního logaritmu v Z p * byla snadno řešitelná. Konkrétní postup určení diskrétního logaritmu v této speciální grupě je uveden samostatně v dodatku 1. Na základě tohoto postupu jsme pak z rovnice (1a) určili hodnotu k a z rovnice (2a) dopočítali hodnotu x. Správnost x jsme zkontrolovali podle vztahu y = g x mod p s originálními hodnotami y, g, p. Hodnota x je tedy vypočtena a její platnost je ověřena proti hodnotě veřejného klíče. 5.krok Uživateli jsme vrátili jeho původní soubor secring.skr. 1.1 Praktická realizace útoku Útok byl aplikován na nejnovější verzi programu PGP TM v pro Windows 95/98/NT/2000. Z povahy útoku a využitých formátů dat (Public Key Packet verze 3 i 4, Secret Key Packet verze 3 a 4) vyplývá, že by tento útok měl být úspěšný i na jiných platformách. Postup útoku byl zvolen přesně podle výše uvedeného popisu. Úprava parametrů byla provedena v poli Secret Key Packet v souboru secring.skr, kde je uložen privátní podpisový klíč, jak můžeme vidět na obrázku 1 a 2. Na prvním jsou vyznačeny původní hodnoty a na druhém hodnoty podvržené
6 9501D7043A8D29DF110400F2E02A396A14E137085DA859B3569AF4027EA379682F B 72127C88787DDC1BFF9FDB59E564B741FD5FC F1C041CB71895CB6975E7FE6E15A6D 4B E11A25637F3FBA35E89E5F1FA272A2707F4865EA106EE402973D4969A276DA B968B CEBBB5771A35C5A785F7F480E47277D2BAB500A0FF BD2A9AD9 63E063A3FE34A8A5534F3F0400CD8580F20AA821A6D2FF5255DFD02E4F4C8D8DA BEE096F7B104B01B6CE1C4DE586BAEA30D82B50DCB3F0D20B0F0D07D8384C09F12CBF CEB696E822D753A48584F2BC573C84E8490AB310FDBCC40EAEBCD05973B3F2A1A479FFE0E4B 63026E066B6E936F1B2B7F1C91C65CBA0F27B4C0D22254BBC852DEDE10400AC756BB6EB8231 3A0FE91F47A36D1425D89FB124CD0ACBA082E8B2C2B048BE92C5CE7A5FAA5AF317DCC B98AB504C0DA6BF1D87FAB73C8F8D0FC821BD8902CA CF0D682E7C9E3E8D89A3D00D5 3224C301E6C932ADA7562FA15E9027E105F803043D4CBC08807A8FB71FEF9B27EE6A0722C4B F601D032CC59F6FE4FF CF38106B7BCA3F603F59437C3860B98DA3A1A3F02A4D B494CAC156E38E FB0BBD68940A E161AB00187B428566C D696 C204B6C696D612C C762E6B6C696D F732E637A3EB00303FFFF89 005A A05023A8D29DF050901E B B A091 09B89D5F084A0EAD7A35C009F5B643D5D2C37F4B2CFC9F399873B747CB3FBFE6800A0A8FE0A 2498E332586F6BED3BB88F278B0C5CF079B001679D014E043A8D2A C904D0246F D6A60F67F1B4AAA4E94562BB00595A67DDB853AEF3F421CEE2D5FCD5AF FE CC92770C6DEBCF391A39B92270D71E7C5EBEC66B3A3BF1BDF521 7E9F609F5D011B9D648A930998C61CD462F3BAAAFD916FDBFFFAA01FCBD2E42F1BC5C406BB0 763B3D FE2B39B802893DE670D745D2AE4DF802BDA707E829B7B0FF7 438FFB88EAB76189AA90A143FB11C1DCC C913AB114D BA0103E65C951D6AC9 199D52818BD2B8A8BF07A6E9F8C242811FF9522EE168207F1EC5D49B441C63D473F7C83D89C 3B6F43A3D80B1B38F7195DE45A A70CA CD4D8802FF D3B8EC 1276C0D3601B745E982D01201DA87DB47FD3B9C8CDD8F6BC857F56B6F4370AB8A94C7A4E528 D209A80B365A416AF80E1198BAC1AE4175A0F90B A8D2A E B0C A09109B89D5F084A0EAD7CD04009F7056BA18F5907E36E4E D9A79B4160AE8C6338D98009B043443B6665E B49382DEC95FD7F96BBB00167 Obrázek.1: soubor secring.skr hexadecimálně, vyznačeny jsou původní hodnoty p,g, jejich délky a celková délka záznamu 9500FF043A8D29DF11009F A0FF BD2A9AD963E063A3FE34A8A5534F3F009E31AC85291FF814E625E4B88C8C5047A7DB2F0E AC756BB6EB82313A0FE91F47A36D1425D89FB124CD0ACBA082E8B2C2B048BE92C5CE7A5 FAA5AF317DCC086150B98AB504C0DA6BF1D87FAB73C8F8D0FC821BD8902CA CF0D682 E7C9E3E8D89A3D00D53224C301E6C932ADA7562FA15E9027E105F803043D4CBC08807A8FB71 FEF9B27EE6A0722C4BF601D032CC59F6FE4FF CF38106B7BCA3F603F59437C3860B9 8DA3A1A3F02A4D B494CAC156E38E FB0BBD68940A E161AB00187B C D696C204B6C696D612C C762E6B6C696D F732E 637A3EB00303FFFF89005A A05023A8D29DF050901E B B A09109B89D5F084A0EAD7A35C009F5B643D5D2C37F4B2CFC9F399873B747C B3FBFE6800A0A8FE0A2498E332586F6BED3BB88F278B0C5CF079B001679D014E043A8D2A C904D0246F D6A60F67F1B4AAA4E94562BB00595A67DDB853AEF3F421CEE2D5F CD5AF FE CC92770C6DEBCF391A39B92270D71E7C5E BEC66B3A3BF1BDF5217E9F609F5D011B9D648A930998C61CD462F3BAAAFD916FDBFFFAA01FC BD2E42F1BC5C406BB0763B3D FE2B39B802893DE670D745D2AE4DF80 2BDA707E829B7B0FF7438FFB88EAB76189AA90A143FB11C1DCC C913AB114D BA0103E65C951D6AC9199D52818BD2B8A8BF07A6E9F8C242811FF9522EE168207F1EC5D49B4 41C63D473F7C83D89C3B6F43A3D80B1B38F7195DE45A A70CA CD4D88 02FF D3B8EC1276C0D3601B745E982D01201DA87DB47FD3B9C8CDD8F6BC857F56B6F 4370AB8A94C7A4E528D209A80B365A416AF80E1198BAC1AE4175A0F90B A8D2A E B0C A09109B89D5F084A0EAD7CD04009F7 056BA18F5907E36E4ED9A79B4160AE8C6338D98009B043443B6665E B49382DEC95 FD7F96BBB00167 Obrázek.2: soubor secring.skr po narušení, vyznačeny jsou změněné hodnoty p,g, jejich délky a celková délka záznamu - 6 -
7 5 Útok na podpisový algoritmus RSA v OpenPGP 5.1 Stručný popis RSA Zde si krátce připomeneme definici algoritmu RSA (viz např. [6]) a zavedeme označení proměnných. Označme n modul RSA a nechť n = p*q, kde p, q jsou prvočísla. Označme e veřejný exponent a d privátní exponent. Dále označme pinv = p -1 mod q. Veřejným klíčem označujeme dvojici (n,e). Pro potřeby formátu OpenPGP se za privátní klíč považuje čtveřice (d, p, q, pinv). Podpis zprávy m je vytvořen jako hodnota s = m d mod n, přičemž se předpokládá, že zpráva m už je určitým způsobem předem zformátována. Podpis s zprávy m je platný, pokud platí m = s e mod n. 5.2 Popis útoku na podpisový klíč RSA Předesíláme, že následující úvahy platí pro podpisový klíč algoritmu RSA a formát OpenPGP, nikoli pro programy PGP TM. Programy PGP TM mají totiž zabudovány kontrolní mechanismy na integritu tohoto klíče před jeho použitím k podpisu. V tomto případě tedy útočíme pouze na formát OpenPGP. Jako v případě DSA, i zde je privátní klíč uložen ve struktuře Secret Key Packet. V současné době se používají verze 3 a verze 4 tohoto formátu, které se liší v tom, jakým způsobem jsou šifrována privátní data. Obě verze Secret Key Packet obsahují na začátku údaje o veřejném klíči ve struktuře Public Key Packet a za nimi následují data privátního klíče. Struktura Public Key Packet má také dvě verze formátu (3 a 4), ale ty se liší jen jedním časovým údajem. Proto si uvedeme jen obsah novější verze 4 (viz tabulka 2). Struktura Public Key Packet obsahuje: 1. 1 oktet číslo verze 2. 4 oktetové číslo, označující čas, kdy byl klíč vytvořen 3. 1 oktet identifikující asymetrický algoritmus (zde RSA), patřící k tomuto klíči 4. Řadu celých čísel ve tvaru MPI, obsahující veřejný klíč. Zde je to : - číslo n (modul RSA) ve tvaru MPI, - číslo e (veřejný exponent RSA) ve tvaru MPI. Za Public Key Packet následují další údaje Secret Key Packet, přičemž data privátního klíče jsou již šifrována, jak ukazuje tab.2. U RSA se jedná se o tyto údaje: - privátní exponent d - prvočíslo p - prvočíslo q (p < q) - pinv (= p -1 mod q) - dva oktety kontrolního součtu checksum
8 Public Key Packet 1 oktet označující číslo verze 4 oktety označující čas, kdy byl klíč vytvořen (ve verzi 3 Public Key Packet navíc 2 oktety, označující počet dnů platnosti klíče) 1 oktet označující algoritmus RSA číslo n (modul RSA) ve formátu MPI číslo e (veřejný exponent RSA) ve formátu MPI 1 oktet (string-to-key usage) [Volitelné] V případě, že string-to-key usage je 0xFF, je zde 1 oktet, identifikující symetrický šifrovací algoritmus pro ochranu privátního klíče (viz tab. 1). [Volitelné] V případě, že string-to-key usage je 0xFF, je zde "string-to-key specifier" (viz tab. 1). [Volitelné] Jestliže privátní klíč je šifrován, je zde uložen inicializační vektor (IV). Jsou to náhodná data v délce bloku použité blokové šifry (8 oktetů pro 64bitové blokové šifry, 16 oktetů pro algoritmus AES). Oblast veřejně přístupných dat Algoritmicky závislá čísla ve formátu MPI. Obsah pro RSA (modul 1024 bitů): 2 oktety, prefix čísla d otevřeně 128 oktetů, číslo d šifrováno 2 oktety, prefix čísla p otevřeně 64 oktetů, číslo p šifrováno 2 oktety, prefix čísla q otevřeně 64 oktetů, číslo p šifrováno verze 3 verze 4 šifrováno 2 oktety, prefix čísla pinv otevřeně 64 oktetů, číslo pinv šifrováno 2 oktety (H Sum, L Sum ) checksum, součet předchozích položek otevřeně (čísel MPI) v otevřeném tvaru modulo Tabulka 2: Obsah struktury Secret Key Packet verze 3 a 4 pro algoritmus RSA (modul 1024 bitů) V tabulce 2 je uvedeno, jak se liší šifrování privátních údajů ve verzi 3 a verzi 4 Secret Key Packet. Oba formáty budeme zkoumat zvlášť. Společným prvkem obou dvou formátů je výpočet kontrolního součtu checksum jako prostého aritmetického součtu jednotlivých bajtů privátních dat modulo 65536: checksum = (d 1 + d d n ) mod U obou verzí je k šifrování použita uživatelem zvolená symetrická bloková šifra v tzv. specifickém (PGP TM ) modu CFB. Zvláštností verze 3 formátu Secret key Packet je, že nejsou šifrovány prefixy čísel MPI, tvořících privátní klíč, ani checksum. Navíc na počátku každého MPI je stav CFB resynchronizován tak, že nový blok začíná až od nové hodnoty MPI. U formátu Secret Key Packet verze 4 jsou šifrována všechna privátní MPI včetně prefixů, kontrolního součtu a bez resynchronizace. 1.3 Útok na verzi 3 formátu Secret Key Packet (RSA) Útok, který je možno vést na verzi 3 formátu spočívá v tom, že je možné měnit délku jednotlivých MPI, tj. prefixy MPI, protože nejsou šifrovány a není šifrován ani checksum
9 Například je možné snížit prefix MPI čísla pinv o jedničku a současně snížit i kontrolní součet o jedničku. Platnost kontrolního součtu záznamu Secret Key Packet (s novým pinv ) zůstane zachována (sčítají se všechny oktety bez ohledu na to, zda je v nich 1 nebo 8 platných bitů), ale hodnota privátní informace pinv se změní, neboť toto číslo se zkrátí o 1 bit. Obdobně lze měnit hodnoty ostatních privátních čísel d, p, q. Jakmile útočník získá zprávu a její podpis, který bude vytvořen pomocí privátního klíče (d, p, q, pinv ), umožní mu to vypočítat celý privátní klíč RSA. Podrobný postup je uveden v dodatku 2. V tomto smyslu je situace zcela analogická útoku proti DSA. checksum pinv otevřené B 1 B 2 B 3 B 4 B 5 B 6 B 7 B 8 H Sum L Sum E(CT n-1 ), tj. CT n-1 zašifrované blokovou šifrou CT n-1 zašifrované B 1 B 2 B 3 B 4 B 5 B 6 B 7 B 8 H Sum L Sum Obrázek 1: Způsob šifrování posledního bloku dat privátního klíče v Secret Key Packet, obsahujícího privátní hodnotu pinv. 1.4 Útok na verzi 4 formátu Secret Key Packet (RSA) Při útoku na verzi 4 formátu Secret Key Packet nelze předešlý postup využít přímo, protože prefixy i checksum jsou šifrovány, ale lze je modifikovat. Modifikace spočívá v tom, že se využije přímo vlastnosti CFB při šifrování posledního bloku otevřených dat. Pokud například použijeme blokovou šifru s délkou bloku 16 oktetů (tj. v případě AES) a modul RSA 1024 bitů, bude v posledním neúplném bloku šifrového textu osm posledních oktetů čísla pinv (označme je B 1, B 2,..., B 8 ) a dva oktety kontrolního součtu checksum (označme je H Sum, L Sum ). Tato otevřená data budou zašifrována prostou operací XOR s klíčovým materiálem (zašifrovaný předchozí šifrový blok). Pokud v posledním bloku šifrového textu provedeme změnu typu "XOR CONST", projeví se to přesně jako "XOR CONST" po odšifrování v otevřeném textu. Cílem je provést změnu v pinv (přesněji v posledních osmi oktetech čísla pinv) a současně v checksum (v oktetu L Sum ) na pinv a checksum tak, aby kontrola integrity po odšifrování souhlasila
10 Výsledkem opět bude narušená hodnota pinv, přičemž formát Secret Key Packet bude mít checksum v pořádku. Využití tohoto podvrhnutého pinv je stejné jako v předchozím případě. Získáme podpis nějaké zprávy s tímto podvrženým klíčem a odtud vypočítáme hodnotu privátního klíče RSA. Nyní si ukážeme, jak je možné změnit jednotlivé bity oktetů B 1 až B 8 a L Sum tak, aby kontrola integrity privátního klíče po jejich změně souhlasila. Změny jednotlivých bitů uvedených oktetů budeme provádět na šifrovém textu a jak jsme už uvedli, vzhledem k modu CFB se tyto změny budou promítat stejným způsobem do odpovídajících bitů oktetů otevřeného textu. Nyní předpokládejme, že v otevřeném tvaru některého oktetu B i z množiny {B 1, B 2,..., B 8 } je nastaven některý j-tý bit (kde j může být 0 až 7) stejně jako j-tý bit v oktetu L Sum. Potom stačí v šifrovaném oktetu B i a současně v šifrovaném oktetu L Sum tento j-tý bit změnit a kontrola integrity bude souhlasit. Pokud by totiž tento bit byl 1, oktet B i se změní na oktet B i - 2**j a oktet L Sum se změní na L Sum - 2**j. Nový kontrolní součet bude proto platný! Podobně v případě, že j-tý bit oktetu B i a L Sum byl 0, oktet B i se změní na B i + 2**j a oktet L Sum na L Sum + 2**j. Nový kontrolní součet bude opět platný! Protože nevíme, zda j-tý bit vybraného oktetu B i je a nebo není stejný jako j-tý bit L Sum, budeme to zkoušet. Můžeme měnit celkem 64 bitů a pravděpodobnost, že neuspějeme, je velmi nízká ( 2-64 ). Poznamenejme, že o úspěchu uvedené změny se dozvíme poté, až uživatel zkusí tímto podvrženým klíčem podepsat nějakou zprávu. Nicméně by v průměru dva pokusy měly stačit. Další metodou je měnit j-tý bit současně vždy ve dvou libovolných oktetech z množiny {B 1,B 2,..., B 8 }, zatímco L Sum ponecháme nezměněno. Tentokrát čekáme na situaci, kdy tyto bity budou v otevřeném textu různé. Jejich současnou změnou se jejich vliv v kontrolním součtu anuluje. Podobně můžeme provádět variace se čtveřicí nebo osmicí j-tých bitů. Výsledkem této změny je narušení pinv se stejnými důsledky jako v předchozích případech, tj. zjištění privátního klíče RSA. 6 Útok na privátní klíče po jejich exportu Dále je nutné poznamenat, že kromě privátní klíčenky secring.skr lze stejným způsobem útočit i na privátní klíč, který je exportovaný do souboru typu "ASCII Key File" a přenášený potom prostřednictvím sítě nebo na disketě. Tento soubor má kromě přídavného kódování stejný obsah jako soubor secring.skr, a proto na něj lze uplatnit stejný útok, jako na soubor secring.skr. To znamená, že přenos privátního klíče prostřednictvím tohoto souboru sítí nebo na disketě není bezpečný. 7 Protiopatření 7.1 Základní přechodná protiopatření Hlavní příčinou právě prezentovaných útoků je nedostatečná kontrola integrity veřejných i privátních dat v souboru, obsahujícím privátní klíč uživatele. Jako logické protiopatření odtud vyplývá nutnost zavedení lepší kontroly integrity uložených záznamů. Zdůrazňujeme, že tato kontrola musí zajišťovat i integritu veřejných hodnot, které nemusí být nutně šifrovány. Požadavek na zavedení kvalitní kontroly integrity nemusí být snadné realizovat v krátkém časovém horizontu. Do doby, než dojde k úpravě formátu OpenPGP [1] pro záznamy privátních klíčů (Secret Key Packet), je možné v programech PGP TM a dalších, které implementují formát OpenPGP, přechodně využít alespoň následující kontrolní testy. Ty jsou navrženy tak, aby klíče pro algoritmy DSA a RSA, které splní níže uvedené vztahy, neumožňovaly provedení námi popsaného útoku. Předpokládá se, že tento test bude prováděn jako dodatečná kontrola integrity po přečtení příslušných parametrů ze souboru s privátním
11 klíčem. K operaci vlastního podpisu přitom smí být použit jen takový klíč, jehož hodnoty tímto testem projdou. Zdůrazňujeme, že uvedený test nemá za úkol nahradit chybějící kontrolu integrity souboru s privátním klíčem, ale má sloužit pouze jako dočasné opatření, které brání zde uvedenému útoku. 7.2 Přechodný test pro DSA Navrhujeme tento přechodný test pro DSA. Měly by se ověřit následující vztahy: 1. p, q, g, x, y > 0 2. p je liché, q je liché < q < < g < p 5. 1 < y < p 6. x < q 7. q (p-1) 8. g q mod p = 1 9. g x mod p = y Poznamenejme ještě, že zatímco do takového druhu testů, jaký jsme si právě uvedli, se například u RSA vkládá poměrně velká důvěra, v případě DSA musíme být velmi opatrní. Narozdíl od RSA je zde totiž pouze jedna hodnota (privátní klíč x), kterou útočník nezná. Ostatní parametry jsou pro něho známé a může je libovolně měnit. To je důvod, proč tento test považujeme pouze za dočasné řešení, které musí být co nejdříve nahrazeno jiným druhem kontroly integrity diskutovaných záznamů, viz dále. 1.3 Přechodný test pro RSA Navrhujeme tento přechodný test pro RSA. Měly by se ověřit následující vztahy: 1. e*d mod (p - 1) = 1 2. e*d mod (q - 1) = 1 3. pinv * p (mod q) = 1 4. n (ze záznamu veřejného klíče) = p*q 5. e E, kde E je množina možných hodnot, plánovaných pro e, tj. pro PGP TM například {17, 65537,...} Poznamenejme, že v programu PGP TM jsou kontroly 1 až 4 a některé další implementovány. Ve formátu OpenPGP však tyto kontroly uvažovány nejsou, což je zásadní chyba. 1.4 Další náměty pro formát OpenPGP Zde uvádíme některé další náměty, které nás napadly po prvním seznámení s formátem OpenPGP (záznam Secret Key Packet) a s programem PGP TM. Tyto náměty by rozhodně přispěly ke zvýšení bezpečnosti formátu i programu PGP TM. Je však třeba je chápat spíše jako ideová doporučení. Před realizací konkrétních úprav je třeba tyto úpravy podrobit alespoň základní samostatné analýze. Analýza celého formátu OpenPGP je však mnohem obtížnější a jde za rámec tohoto příspěvku. Navrhovaná opatření jsou: 1. Modus šifrování CFB nahradit modem CBC - ztíží popsaný útok na poslední blok šifrovaných privátních dat 2. Kontrolní součet checksum (suma bajtů modulo 65536) nahradit HMAC, založeným na SHA-1 nebo na jiné bezpečné hašovací funkci (například SHA-256, 384, 512 a pod.) - znesnadní útoky na chráněná data a současně na zabezpečovací kód
12 3. Nový kontrolní součet (HMAC): a) ukládat v délce minimálně 160 bitů, - znesnadní útoky využívající narozeninový paradox, b) vypočítávat ho ze všech dat záznamu Secret Key Packet (nejen z privátních, ale i z veřejných), - znesnadní integritní útoky na veřejné i privátní části klíče v Secret Key Packet c) klíč, použitý v HMAC, derivovat z passphrase jiným způsobem, než klíč pro symetrickou šifru - znesnadní útok na HMAC d) šifrovat výsledný HMAC společně s privátními daty symetrickou šifrou podobně jako je to v případě checksum ve verzi 4 formátu Secret Key Packet - znesnadní integritní útoky na veřejné i privátní části klíče v Secret Key Packet 4. Pro podpisové schéma RSA používat formát typu EMSA-PSS, který je uveden v [6] - znemožní řadu útoků, včetně útoku z dodatku 2. 8 Důsledky Předvedené typy útoků mají značný dopad na bezpečnost programů, využívajících formát OpenPGP (například samotný program PGP TM ). Kdokoliv, kdo dokáže popsaným způsobem změnit soubor s privátním klíčem, je schopen na základě jediného chybného podpisu získat hodnotu privátního klíče u algoritmů DSA a RSA. K této změně přitom zdaleka nemusí dojít jen na pracovní stanici napadeného uživatele. Citlivým místem systému jsou také soubory s exportovanými privátními klíči, které uživatel používá k přenosu svých privátních klíčů mezi různými stanicemi. Fakt, že privátní klíč je v těchto souborech uložen v zašifrovaném tvaru, může vzbuzovat falešný pocit bezpečí. Dostane-li se však k takové disketě při její přepravě útočník, je bezpečnost uživatelova privátního klíče vážně ohrožena. Jiný, v praxi velmi efektivní scénář pro použití popsaného útoku, je možné použít v případě, kdy je soubor s privátním klíčem uložen na sdíleném zařízení. Zde může být útočníkem například správce serveru, který na určitou dobu uživateli podstrčí upravenou verzi tohoto souboru, počká, až jej uživatel použije k podpisu (dobu lze poměrně přesně určit monitorováním síťové aktivity uživatelovy stanice) a poté vrátí zpět jeho původní obsah. Z vygenerovaného podpisu potom získá hodnotu privátního klíče. Při dostatečné kontrole nad celým systémem může navíc tento útočník zahladit stopy po útoku tím, že do systému místo zprávy vybavené neplatným podpisem vyšle zprávu, jejíž podpis je platný. To může snadno udělat, neboť zná jak samotnou zprávu, tak i příslušný privátní klíč. Samotného uživatele programů na bázi OpenPGP staví existence popsaného útoku do nelehké situace v okamžiku, kdy zjistí, že byla vygenerována chybná hodnota podpisu. V takové situaci může být právem na rozpacích, zda se jedná o důsledek záměrného útoku nebo jen o technické selhání. Prakticky je zřejmé, že každý soubor s neplatným podpisem si zasluhuje stejnou pozornost, jako by se jednalo o soubor obsahující privátní klíč v otevřeném tvaru! To zahrnuje zejména odpovídající péči věnovanou jeho neobnovitelnému odstranění z příslušné stanice nebo dokonce serveru
13 9 Závěr Zde popsané útoky, vedoucí k odhalení nejcitlivějších informací systému (privátních podepisovacích klíčů algoritmů RSA a DSA), velmi názorným způsobem poukazují na důležitý aspekt ochrany privátních klíčů a veřejných parametrů asymetrických algoritmů v bezpečnostních systémech. Poznamenejme ještě, že to byla právě výzkumná práce týkající se obecných problémů a principů v této oblasti, při které jsme se podívali, "jak to dělá program PGP TM ", aniž bychom se jím chtěli primárně zabývat. Námi prováděná analýza vycházela z obecné dokumentace OpenPGP [1]. Odhalili jsme v ní závažné nedostatky, které mohou vyústit ve snadnou zranitelnost aplikací vytvořených podle ní. Praktickým příkladem je program PGP TM, který sice v případě RSA vykazuje díky dodatečným ochranám nad rámec OpenPGP odolnost vůči útokům na RSA, avšak je snadno zranitelný pomocí útoku na podpisový algoritmus DSA. Připomínáme, že ačkoliv jsme se zde s ohledem na OpenPGP omezili na algoritmy RSA a DSA, lze za předpokladu nedostatečné ochrany privátních klíčů a veřejných parametrů očekávat obdobnou zranitelnost i u dalších asymetrických kryptosystémů včetně systémů na bázi eliptických křivek. Rovněž formát OpenPGP a potažmo s ním program PGP TM nebude patrně jediným případem, kdy díky nesprávné ochraně zmíněných parametrů může dojít k napadení daného systému. Celý tento dokument tak chce důrazně apelovat na pozornost při návrhu způsobu zacházení s uvedenými hodnotami a jejich uložení v příslušném systému. Poděkování Touto cestou bychom rádi poděkovali Ing. Pavlu Rydlovi za technickou spolupráci na praktické realizaci zde popsaného útoku. Literatura [1] RFC 2440: OpenPGP Message Format, J. Callas, Network Associates, L. Donnerhacke, IN-Root-CA Individual Network e.v., H. Finney, Network Associates, R. Thayer, EIS Corporation, November 1998 [2] Menezes A.J., Oorschot P.C., Vanstone S.A.: Handbook of Applied Cryptography, CRC Press, 1997 [3] Lenstra, A. K.: Memo on RSA signature generation in the presence of faults, manuscript, Sept. 28, Available from the author. [4] Rosa, T.: Future Cryptography: Standards Are Not Enough, zasláno do konference CATE 2001, [5] Rosen, K. H., Michels, J. G., Gross, J. L., Grossman, J. W., Shier, D. R.: Handbook of Discrete and Combinatorial Mathematics, CRC Press, [6] PKCS#1 verze 2.1: RSA Cryptography Standard, RSA Laboratories, Draft 1, September 17,
14 Dodatky Dodatek 1: Získání hodnoty privátního klíče pomocí změny veřejných parametrů DSA Předpoklad P1: Způsob výpočtu podpisu DSA Mějme dány parametry DSA (p, q, g, y, x), kde p, q jsou prvočísla, g Z p *, ord(g) = q, y = g x mod p, 0 < x < q, x je privátní klíč signatáře. Výpočet podpisu pro zprávu s hašovacím kódem h je pak následující: 1. náhodně zvolíme k, 0 < k < q 2. vypočteme r = (g k mod p) mod q 3. vypočteme s = k -1 (h + xr) mod q, kde k*k -1 1 (mod q) 4. podpisem (výstupem podepisovacího algoritmu) je dvojice (r, s) Dále popsaný útok předpokládá, že útočník změní parametry DSA (p, q, g, y, x) na (p, q, g, y, x), kde p je 159 bitové prvočíslo, < p < a g je generátor grupy Z * p tak, že umí pro všechna r Z * p snadno určit hodnotu w, 0! w < (p-1), takovou, že (g ) w r (mod p), neboli w = log (g ) r. Umí tedy snadno řešit úlohu diskrétního logaritmu v Z * p. V následujících dvou krocích ukážeme, že na základě znalosti hodnoty hašovacího kódu h a podpisu (r, s), který byl pořízen algoritmem DSA s podvrženými parametry (p, q, g, y, x), lze pak snadno určit hodnotu privátního klíče x. Krok 1: určení množiny K V tomto kroku budeme pracovat s hodnotou r. Z rovnice (P1.2) vyplývá, že r = (g ) k mod p mod q = (g ) k mod p, neboť p < q. Dle výše uvedeného předpokladu umí útočník pro libovolné r snadno určit hodnotu w = log (g ) r, takže pro neznámou hodnotu k máme: k = w + b(p -1), kde b " Z, b # 0. Z první (P1.1) máme pro k ještě podmínku 0 < k < q. Protože p je 159 bitové a q 160 bitové, dostáváme pro k množinu přípustných hodnot K = { w + b(p -1): b(p -1) < q-w, 0 b 3 }. Dostali jsme tak množinu o nejvýše čtyřech možných hodnotách k i, mezi nimiž s jistotou leží hledané k. Krok 2: určení hodnoty x Nyní budeme postupně vybírat k i K a z (P1.3) určovat hodnoty x i jako x i = r -1 (k i *s h) mod q, kde r*r -1 1 (mod q). Poznamenejme, že gcd(r,q) = 1, takže hodnota r -1 existuje a je jednoznačná. Takto obdržíme množinu hodnot X = {x i : k i " K}, v níž leží i hledaná hodnota privátního klíče x. Nyní zbývá z množiny X vybrat hledanou hodnotu x. To lze snadno provést pomocí vztahu y = (g xi mod p), kde p a g jsou původní veřejné parametry DSA a y je veřejný klíč.vyzkoušením nejvýše čtyř různých hodnot x i tak odstraníme zbývající neurčitost zanesenou nízkou hodnotou p a získáme hledanou hodnotu x. Poznamenejme, že prvek g má v grupě Z p * řád q. Odtud plyne, že existuje pouze jedna hodnota 0 < x i < q, pro kterou platí, že y = (g xi mod p). Určení hodnoty x uvedeným postupem je proto jednoznačné
15 Poznámka. Z předchozího popisu je dobře patrný hlavní princip celého útoku. Ten spočívá v takové modifikaci veřejných parametrů DSA, díky které se při výpočtu podpisu vytvářejí velmi slabé instance problému diskrétního logaritmu. Místo řešení tohoto problému v multiplikativní cyklické podgrupě grupy Z p * o 160 bitovém řádu postačí tento problém řešit pouze v cyklické grupě Z p *, kde p je 159 bitové prvočíslo s vhodně volenou strukturou. Složitost takových instancí problému diskrétního logaritmu je z kryptologického hlediska považována za naprosto nedostatečnou. Pro praktickou realizaci popsaného útoku byla navíc nalezena univerzálně použitelná grupa Z p * se speciální strukturou, která umožňuje velmi rychlé řešení vznikajících instancí zmíněného problému i na běžném kancelářském PC, viz popis algoritmu A1 dále. Algoritmus A1: Výpočet hodnoty w = log g r pro speciální druh Z p *. V následující části popíšeme efektivní algoritmus pro výpočet hodnoty diskrétního logaritmu, který je možné použít pro multiplikativní grupy Z p * s určitou speciální strukturou (p je zde rovno podvržené hodnotě p ). Předpokládá se, že univerzálně vybraná grupa o této struktuře bude použita pro praktickou realizaci výše popsaného druhu útoku vůči DSA. Strukturu zmíněné grupy si uvedeme ve formě následujícího předpokladu. Předpoklad P2. Mějme multiplikativní grupu Z p *, kde p je prvočíslo ve tvaru p = t*2 s + 1 a t je prvočíslo. Dále buď generátorem Z p *. Následující postup ukazuje způsob výpočtu hodnoty w, který je efektivní pro malá t (pro praktickou realizaci předchozího útoku byla nalezena univerzálně použitelná grupa s parametry t = 167, s = 151). Předtím, než se pustíme do popisu jednotlivých kroků vlastního algoritmu, uvedeme několik užitečných formalizmů, které se budou později hodit při výkladu jednotlivých operací. Definice D1. [viz 5, str. 277] Buďte p a k celá kladná čísla. Potom číslo b s vlastností gcd(b, p) = 1 nazveme zbytkem k-té mocniny modulo p právě tehdy, když kongruence x k b (mod p) má řešení pro nějaké x Z. (V případě k=2 používáme často výraz kvadratický zbytek modulo p.) Fakt F1. [viz 5, str. 279] Buďte p prvočíslo, k celé kladné číslo a b celé číslo takové, že gcd(b, p) = 1. Potom b je zbytek k-té mocniny modulo p právě tehdy, když b (p-1)/d 1 (mod p), kde d = gcd(k, p-1). Lemma L1. Buďte p prvočíslo a g generátor grupy Z p *. Potom hodnota y, y = g w mod p, je zbytek k-té mocniny modulo p, kde k (p-1), právě tehdy, když k w. Důkaz. Je-li y zbytek k-té mocniny modulo p, pak podle faktu F1 y (p-1)/k $ 1 (mod p). Z předpokladu y = g w mod p potom dostáváme, že (g w ) (p-1)/k $ 1 (mod p). Protože g je generátor grupy Z * p, musí platit, že w*(p-1)/k $ 0 (mod (p-1)). Odtud pak přímo dostáváme, že k w. Důkaz implikace v obráceném směru je snadný. Nechť k w, tj. w=k*b, kde b je celé kladné číslo. Potom y = g w mod p = (g b ) k mod p a přímo z definice D1 plyne, že y je zbytek k-té mocniny modulo p
16 Dále popíšeme postupně tři kroky algoritmu, podle kterých probíhá výpočet hledaného diskrétního logaritmu w = log (g) r. Ve své podstatě se jedná o modifikovanou verzi Pohling- Hellmanova algoritmu (viz [2]), který by na uvedeném druhu multiplikativní grupy byl rovněž velmi efektivní. Ve snaze využít co nejvíce konkrétní strukturu použité grupy jsme se však rozhodli použít následující postup. Krok 1: určení hodnoty s w = w mod 2 s Nechť w = w n *2 n-1 + w n-1 *2 n w 1, kde n je počet bitů binárního rozvoje w a w i {0,1}, pro 1 i n. Zabývejme se nyní určením bitu w 1. Je-li tento bit nulový, potom platí w = 2*b, pro nějaké celé číslo b. Pro hodnotu r = g w mod p odtud dostáváme, že r (g b ) 2 (mod p), takže r je kvadratický zbytek modulo p. Pokud je naopak hodnota bitu w 1 jednička, potom je hodnota w lichá a podle lemmatu L1 není r v tomto případě kvadratickým zbytkem modulo p. Na základě tohoto rozboru a faktu F1 můžeme pro w 1 formulovat následující: r (p-1)/2 1 (mod p) w 1 = 0 r (p-1)/2 % 1 (mod p) w 1 = 1 Pokračujme nyní určením w 2. Nejprve na základě znalosti w 1 upravíme r na r 2 = (r*g -w1 ) mod p. Touto úpravou jsme získali hodnotu r 2 = g w mod p, kde w = w n *2 n-1 + w n-1 *2 n w 2 *2. Pokud nyní platí, že w 2 = 0, potom pro hodnotu r 2 dostáváme, že r 2 (g b ) 4 (mod p), kde b je celé číslo. Čili hodnota r 2 je v tomto případě zbytkem 4-té mocniny modulo p. Pokud ovšem platí, že w 2 = 1, potom w není dělitelné čtyřmi a hodnota r 2 není dle lemmatu L1 zbytkem 4-té mocniny modulo p. Takto můžeme pro w 2 odvodit následující: r (p-1)/4 2 1 (mod p) w 2 = 0 r (p-1)/4 2 % 1 (mod p) w 2 = 1 Po určení w 2 opět upravíme r 2 na r 3 jako r 3 = (r 2 *g -2*w2 mod p) a pokračujeme v určování hodnot w i tak dlouho, dokud platí 2 i (p-1). Protože (p-1)/2 s = t, kde t je liché prvočíslo, můžeme takto určit hodnoty w i pro 1 i s. Získáme tak binární zápis hodnoty s w = w s 2 s-1 + w s-1 2 s w 1, kde s w = w mod 2 s. Toto byla hodnota, kterou jsme v tomto kroku hledali. Celý postup je vidět na obrázku
17 Obr. 3: Krok 1 algoritmu A1. Krok 2: určení hodnoty t w = w mod t Je snadné dokázat, že pro celé číslo j takové, že r (p-1)/t (g (p-1)/t ) j (mod p), platí, že t w j (mod t). Protože j t-1, tak přímo platí, že t w = j. Hodnotu t w v tomto kroku proto nalezneme tak, že budeme postupně zkoušet čísla j, 0 j t-1, dokud nenajdeme číslo j splňující kongruenci r (p-1)/t (g (p-1)/t ) j (mod p). Takové číslo j pak bude hledanou hodnotou t w. Krok 3: určení hodnoty w = log g r. V předchozích krocích jsme obdrželi soustavu následujících kongruencí: w s w (mod 2 s ) w t w (mod t) Postup výpočtu s w = log g r mod 2 s. 1. Předpokládejme: a. binární zápis s w jako s w = w s w s-1...w 1 b. Z p *, kde p je prvočíslo, p = t*2 s i = 1; f = g p-2 mod p; v = p-1 3. v = v/2; y = r v mod p 4. if (y = 1) then w i = 0 else w i = 1; r = r*f mod p 5. f = f 2 mod p 6. i = i+1 7. if (i s) then goto 3 8. return s w = w s w s-1...w 1 Přitom platí, že gcd (t, 2 s ) = 1, takže podle Čínské věty o zbytku (dále CRT Chinese Remainder Theorem) existuje jednoznačná hodnota 0! w < t*2 s, která splňuje obě kongruence. Protože hodnota t*2 s je rovněž řádem grupy Z * p pro p = t*2 s +1, je hodnota w zároveň hledaným diskrétním logaritmem hodnoty r. Dále uvádíme přímo postup vedoucí k určení w: 1. vypočteme γ (2 s ) -1 (mod t), tato hodnota existuje a je jednoznačná, protože gcd (t, 2 s ) = 1 2. vypočtěme v = ( t w - s w)*γ mod t 3. w = s w + v*2 s Důkaz (správnosti předchozího postupu): Pro faktor 2 s je z výrazu pro w přímo vidět, že w s w (mod 2 s ). Pro faktor t dostáváme, že w s w + ( t w - s w)(2 s ) -1 *2 s (mod t), takže w t w (mod t). Navíc w = s w + v*2 s < 2 s + (t-1)*2 s = t*2 s. Tím jsme ověřili, že uvedený postup skutečně odpovídá aplikaci CRT na výše uvedenou soustavu kongruencí. Výsledky experimentu Popsaný postup v krocích 1 až 3 byl realizován na různých konfiguracích kancelářských PC. Tabulka 3 ukazuje průměrné doby výpočtu pro náhodně volené hodnoty r. Vidíme, že celý výpočet trvá řádově stovky milisekund
18 Konfigurace Pentium III/ 500MHz 128 MB RAM Windows NT 4.0 SP 6a Celeron 400 MHz 128 MB RAM Windows NT 4.0 SP 6a Pentium II 400 MHz 128 MB RAM Windows 2000 Advanced Server Pentium II 300 MHz 128 MB RAM Windows NT 4.0 SP 6a Pentium 166 MHz 96 MB RAM Windows NT 4.0 SP 6a Pentium 75 MHz 46 MB RAM Windows NT 4.0 SP 4 Doba výpočtu jednoho diskrétního logaritmu v milisekundách Tabulka 3: Doba výpočtu hodnoty w = log g r pro speciální druh Z p *. Dodatek 2: Útok na privátní klíč RSA V tomto dodatku si stručně nastíníme, jak lze získat hodnotu privátního klíče RSA z hodnoty chybného podpisu, který byl vypočten za použití narušeného privátního klíče. Tento útok vychází z rozboru formátu OpenPGP. Na testovaném programu PGP TM nebyl tento útok přímo aplikovatelný, protože program PGP TM provádí nad rámec definice OpenPGP dodatečnou kontrolu integrity privátního klíče. V případě aplikací, realizovaných přesně podle OpenPGP, však takový útok hrozí a je stejně efektivní, jako výše prezentovaný útok na DSA. Podle OpenPGP je privátní klíč RSA tvořen následující šesticí hodnot (n, p, q, pinv, e, d), kde p, q jsou prvočísla, n = p*q je veřejný modul, p*pinv $ 1 (mod q), e je veřejný exponent a d je privátní exponent, tj. e*d $ 1 (mod lcm(q-1,p-1)). Na základě této struktury lze předpokládat, že podepisovací transformace RSA je pro konkrétní hodnotu zformátované zprávy m počítána podle následujícího postupu: 1. s 1 = m d mod p 2. s 2 = m d mod q 3. h = pinv*(s 2 - s 1 ) mod q 4. s = s 1 + p*h 5. s je výsledek podepisovací transformace, neboť lze odvodit, že pro hodnotu s vypočítanou podle tohoto postupu platí s = m d mod n Tento postup odpovídá aplikaci Čínské věty o zbytku a umožňuje efektivní výpočet hodnoty podpisové transformace. Jak bylo poprvé ukázáno v [3], je použití této techniky poměrně náchylné k útokům, využívajícím chyby při výpočtu podpisu. Tyto chyby lze přitom zanést nejen ovlivňováním napadeného zařízení během výpočtu podpisu, ale například i narušením
19 určitých hodnot tvořících privátní klíč. Detailnější pozornost je této problematice věnována v [4]. Zde se zaměříme přímo na jeden konkrétní typ útoku, který přichází v úvahu u OpenPGP. Předpokládejme, že útočník naruší parametry RSA (n, p, q, pinv, e, d) tak, že místo pinv použije pinv Z, pinv % pinv (mod q). Poznamenejme, že náhodná změna pinv tuto podmínku s velkou pravděpodobností splní. Ostatní parametry zůstanou beze změny. Mějme nyní dvojici hodnot (m, s ), kde hodnota s byla získána jako výsledek výše popsané podepisovací transformace při použití narušené hodnoty pinv. Platí tedy 1. s 1 = m d mod p 2. s 2 = m d mod q 3. h = pinv *(s 2 - s 1 ) mod q 4. s = s 1 + p*h 5. s je výsledek podepisovací transformace S ohledem na faktor p pro tuto hodnotu dle rovnice z bodu 4 platí, že s m d (mod p). Pro faktor q však s velkou pravděpodobností (blízkou 1 - q -1 ) platí, že s % m d (mod q). Dvojice čísel (m, y), kde y = (s ) e mod n, potom splňuje následující podmínky: m $ y (mod p), m % y (mod q). Odtud plyne, že p (m-y), avšak zároveň q (m-y). Proto pro faktor p platí, že p = gcd((m-y), n). Uvedeným postupem jsme na základě jediného chybného podpisu získali hodnotu faktoru p, ze které potom již snadno určíme zbývající tajné hodnoty privátního klíče. Poznamenejme, že uvedený postup předpokládá, že útočník zná hodnotu zformátované zprávy m, která přímo vstupuje do podepisovací transformace RSA. Toto nemusí být splněno pro všechny typy formátů, avšak v OpenPGP je doporučován formát RFC 2313 (alias PKCS#1, verze 1.5), kde podmínka útoku splněna je. Stejně jako v případě útoku na DSA doporučujeme zavést do formátu OpenPGP silnější kontrolu integrity dat v souborech privátních klíčů. Přímo v programu PGP TM oprava není nutná, neboť zde jsou použity dodatečné kontroly algebraických vztahů mezi hodnotami privátního klíče, které pokusy o útok tohoto typu maří
Šifrová ochrana informací věk počítačů PS5-2
VŠFS; Aplikovaná informatika; SW systémy 2005/2006 1 Bezpečnost informací BI Ing. Jindřich Kodl, CSc. Šifrová ochrana informací věk počítačů PS5-2 VŠFS; Aplikovaná informatika; SW systémy 2005/2006 2 Osnova
Šifrová ochrana informací věk počítačů PS5-2
Bezpečnost informací BI Ing. Jindřich Kodl, CSc. Šifrová ochrana informací věk počítačů PS5-2 1 Osnova šifrová ochrana využívající výpočetní techniku např. Feistelova šifra; symetrické a asymetrické šifry;
Kryptografie založená na problému diskrétního logaritmu
Kryptografie založená na problému diskrétního logaritmu Andrew Kozlík KA MFF UK Diffieho-Hellmanův protokol ustanovení klíče (1976) Před zahájením protokolu se ustanoví veřejně známé parametry: Konečná
Diffieho-Hellmanův protokol ustanovení klíče
Diffieho-Hellmanův protokol ustanovení klíče Andrew Kozlík KA MFF UK Diffieho-Hellmanův protokol ustanovení klíče (1976) Před zahájením protokolu se ustanoví veřejně známé parametry: Konečná grupa (G,
MINIMÁLNÍ POŽADAVKY NA KRYPTOGRAFICKÉ ALGORITMY. doporučení v oblasti kryptografických prostředků
MINIMÁLNÍ POŽADAVKY NA KRYPTOGRAFICKÉ ALGORITMY doporučení v oblasti kryptografických prostředků Verze 1.0, platná ke dni 28.11.2018 Obsah Úvod... 3 1 Doporučení v oblasti kryptografických prostředků...
8. RSA, kryptografie s veřejným klíčem. doc. Ing. Róbert Lórencz, CSc.
Bezpečnost 8. RSA, kryptografie s veřejným klíčem doc. Ing. Róbert Lórencz, CSc. České vysoké učení technické v Praze Fakulta informačních technologií Katedra počítačových systémů Příprava studijních programů
Asymetrická kryptografie a elektronický podpis. Ing. Mgr. Martin Henzl Mgr. Radim Janča ijanca@fit.vutbr.cz
Asymetrická kryptografie a elektronický podpis Ing. Mgr. Martin Henzl Mgr. Radim Janča ijanca@fit.vutbr.cz Obsah cvičení Asymetrická, symetrická a hybridní kryptografie Matematické problémy, na kterých
Asymetrická kryptografie a elektronický podpis. Ing. Dominik Breitenbacher Mgr. Radim Janča
Asymetrická kryptografie a elektronický podpis Ing. Dominik Breitenbacher ibreiten@fit.vutbr.cz Mgr. Radim Janča ijanca@fit.vutbr.cz Obsah cvičení Asymetrická, symetrická a hybridní kryptografie Kryptoanalýza
Digitální podepisování pomocí asymetrické kryptografie
Digitální podepisování pomocí asymetrické kryptografie 11. dubna 2011 Trocha historie Asymetrické metody Historie Historie Vlastnosti Asymetrické šifrování 1976 Whitfield Diffie a Martin Hellman první
Základy kryptografie. Beret CryptoParty 11.02.2013. 11.02.2013 Základy kryptografie 1/17
Základy kryptografie Beret CryptoParty 11.02.2013 11.02.2013 Základy kryptografie 1/17 Obsah prezentace 1. Co je to kryptografie 2. Symetrická kryptografie 3. Asymetrická kryptografie Asymetrické šifrování
MFF UK Praha, 22. duben 2008
MFF UK Praha, 22. duben 2008 Elektronický podpis / CA / PKI část 1. http://crypto-world.info/mff/mff_01.pdf P.Vondruška Slide2 Přednáška pro ty, kteří chtějí vědět PROČ kliknout ANO/NE a co zatím všechno
ElGamal, Diffie-Hellman
Asymetrické šifrování 22. dubna 2010 Prezentace do předmětu UKRY Osnova 1 Diskrétní logaritmus 2 ElGamal 3 Diffie-Hellman Osnova 1 Diskrétní logaritmus 2 ElGamal 3 Diffie-Hellman Osnova 1 Diskrétní logaritmus
Digitální podepisování pomocí asymetrické kryptografie
Digitální podepisování pomocí asymetrické kryptografie Jan Máca, FJFI ČVUT v Praze 26. března 2012 Jan Máca () Digitální podepisování 26. března 2012 1 / 22 Obsah 1 Digitální podpis 2 Metoda RSA 3 Metoda
Pokročilá kryptologie
Pokročilá kryptologie RSA doc. Ing. Róbert Lórencz, CSc. České vysoké učení technické v Praze Fakulta informačních technologií Katedra počítačových systémů Příprava studijních programů Informatika pro
asymetrická kryptografie
asymetrická kryptografie princip šifrování Zavazadlový algoritmus RSA EL GAMAL další asymetrické blokové algoritmy Skipjack a Kea, DSA, ECDSA D H, ECDH asymetrická kryptografie jeden klíč pro šifrování
Čínská věta o zbytcích RSA
Čínská věta o zbytcích RSA Matematické algoritmy (11MAG) Jan Přikryl Ústav aplikované matematiky ČVUT v Praze, Fakulta dopravní 5. přednáška 11MAG pondělí 10. listopadu 2014 verze: 2014-11-10 11:20 Obsah
Šifrová ochrana informací věk počítačů PS5-1
Bezpečnost informací BI Ing. Jindřich Kodl, CSc. Šifrová ochrana informací věk počítačů PS5-1 1 Osnova šifrová ochrana využívající výpočetní techniku např. Feistelova šifra; symetrické a asymetrické šifry;
Osnova přednášky. Seznámení s asymetrickou kryptografií, díl 2. Podpisová schémata -elementární principy- (1)
Seznámení s asymetrickou kryptografií, díl 2. Ing. omáš Rosa ICZ a.s., Praha Katedra počítačů, FEL, ČVU v Praze tomas.rosa@i.cz Osnova přednášky elementární principy, schéma s dodatkem metody RSA, DSA,
Maticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru:
3 Maticový počet 3.1 Zavedení pojmu matice Maticí typu (m, n, kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru: a 11 a 12... a 1k... a 1n a 21 a 22...
RSA. Matematické algoritmy (11MAG) Jan Přikryl. Ústav aplikované matematiky ČVUT v Praze, Fakulta dopravní. verze: :01
Čínská věta o zbytcích Mocnění Eulerova funkce Šifrování Závěr Čínská věta o zbytcích RSA Matematické algoritmy (11MAG) Ústav aplikované matematiky ČVUT v Praze, Fakulta dopravní 4. přednáška 11MAG ponděĺı
8.3). S ohledem na jednoduchost a názornost je výhodné seznámit se s touto Základní pojmy a vztahy. Definice
9. Lineární diferenciální rovnice 2. řádu Cíle Diferenciální rovnice, v nichž hledaná funkce vystupuje ve druhé či vyšší derivaci, nazýváme diferenciálními rovnicemi druhého a vyššího řádu. Analogicky
Osnova přednášky. Seznámení s asymetrickou kryptografií, díl 1. O pojmu bezpečnost Poznámka o hodnocení kryptografické bezpečnosti.
Seznámení s asymetrickou kryptografií, díl 1. Ing. omáš Rosa ICZ a.s., Praha Katedra počítačů, FEL, ČVU v Praze tomas.rosa@i.cz Osnova přednášky Základní principy pojem bezpečnost související (snad) složité
Aplikovaná kryptoanalýza. Dr. Tomáš Rosa,
Aplikovaná kryptoanalýza Dr. Tomáš Rosa, trosa@ebanka.cz Agenda Současný stav aplikované kryptografie Fenomény aplikované kryptoanalýzy Postranní kanály Přískoky vědy Sociální inženýrství Nepopiratelnost
Základní definice Aplikace hašování Kontrukce Známé hašovací funkce. Hašovací funkce. Jonáš Chudý. Úvod do kryptologie
Úvod do kryptologie Základní definice Kryptografická hašovací funkce Kryptografickou hašovací funkcí nazveme zobrazení h, které vstupu X libovolné délky přiřadí obraz h(x) pevné délky m a navíc splňuje
Šifrová ochrana informací věk počítačů KS - 5
VŠFS; Aplikovaná informatika; SW systémy 2005/2006 1 Bezpečnost informací BI Ing. Jindřich Kodl, CSc. Šifrová ochrana informací věk počítačů KS - 5 VŠFS; Aplikovaná informatika; SW systémy 2005/2006 2
Pokročilá kryptologie
Pokročilá kryptologie Kryptografie eliptických křivkek doc. Ing. Róbert Lórencz, CSc. České vysoké učení technické v Praze Fakulta informačních technologií Katedra počítačových systémů Příprava studijních
Asymetrické šifry. Pavla Henzlová 28.3.2011. FJFI ČVUT v Praze. Pavla Henzlová (FJFI ČVUT v Praze) Asymetrické šifry 28.3.
Asymetrické šifry Pavla Henzlová FJFI ČVUT v Praze 28.3.2011 Pavla Henzlová (FJFI ČVUT v Praze) Asymetrické šifry 28.3.2011 1 / 16 Obsah 1 Asymetrická kryptografie 2 Diskrétní logaritmus 3 Baby step -
Jak funguje asymetrické šifrování?
Jak funguje asymetrické šifrování? Petr Vodstrčil petr.vodstrcil@vsb.cz Katedra aplikované matematiky, Fakulta elektrotechniky a informatiky, Vysoká škola báňská Technická univerzita Ostrava Petr Vodstrčil
Kryptografie, elektronický podpis. Ing. Miloslav Hub, Ph.D. 27. listopadu 2007
Kryptografie, elektronický podpis Ing. Miloslav Hub, Ph.D. 27. listopadu 2007 Kryptologie Kryptologie věda o šifrování, dělí se: Kryptografie nauka o metodách utajování smyslu zpráv převodem do podoby,
RSA. Matematické algoritmy (11MA) Miroslav Vlček, Jan Přikryl. Ústav aplikované matematiky ČVUT v Praze, Fakulta dopravní. čtvrtek 21.
Čínská věta o zbytcích Šifrování Závěr Čínská věta o zbytcích RSA Matematické algoritmy (11MA) Ústav aplikované matematiky ČVUT v Praze, Fakulta dopravní 4. přednáška 11MA čtvrtek 21. října 2010 verze:
Báze a dimenze vektorových prostorů
Báze a dimenze vektorových prostorů Buď (V, +, ) vektorový prostor nad tělesem (T, +, ). Nechť u 1, u 2,..., u n je konečná posloupnost vektorů z V. Existují-li prvky s 1, s 2,..., s n T, z nichž alespoň
9. DSA, PKI a infrastruktura. doc. Ing. Róbert Lórencz, CSc.
Bezpečnost 9. DSA, PKI a infrastruktura doc. Ing. Róbert Lórencz, CSc. České vysoké učení technické v Praze Fakulta informačních technologií Katedra počítačových systémů Příprava studijních programů Informatika
PA159 - Bezpečnostní aspekty
PA159 - Bezpečnostní aspekty 19. 10. 2007 Formulace oblasti Kryptografie (v moderním slova smyslu) se snaží minimalizovat škodu, kterou může způsobit nečestný účastník Oblast bezpečnosti počítačových sítí
Proudové šifry a posuvné registry s lineární zpětnou vazbou
Proudové šifry a posuvné registry s lineární zpětnou vazbou Andrew Kozlík KA MFF UK Proudové šifry Bloková šifra Šifruje velké bloky otevřeného textu. Bloky mají pevnou délku. Velké znamená, že je prakticky
Diferenciální rovnice 1
Diferenciální rovnice 1 Základní pojmy Diferenciální rovnice n-tého řádu v implicitním tvaru je obecně rovnice ve tvaru,,,, = Řád diferenciální rovnice odpovídá nejvyššímu stupni derivace v rovnici použitému.
Dijkstrův algoritmus
Dijkstrův algoritmus Hledání nejkratší cesty v nezáporně hranově ohodnoceném grafu Necht je dán orientovaný graf G = (V, H) a funkce, která každé hraně h = (u, v) H přiřadí nezáporné reálné číslo označované
Integrovaný informační systém Státní pokladny (IISSP) Dokumentace API - integrační dokumentace
Česká republika Vlastník: Logica Czech Republic s.r.o. Page 1 of 10 Česká republika Obsah 1. Úvod...3 2. Východiska a postupy...4 2.1 Způsob dešifrování a ověření sady přístupových údajů...4 2.2 Způsob
1 Řešení soustav lineárních rovnic
1 Řešení soustav lineárních rovnic 1.1 Lineární rovnice Lineární rovnicí o n neznámých x 1,x 2,..., x n s reálnými koeficienty rozumíme rovnici ve tvaru a 1 x 1 + a 2 x 2 +... + a n x n = b, (1) kde koeficienty
MPI - 7. přednáška. Hledání inverzí v Z n. Rychlé mocnění modulo n. Lineární rovnice v Z + n. Soustavy lineárních rovnic v Z + n.
MPI - 7. přednáška vytvořeno: 31. října 2016, 10:18 Co bude v dnešní přednášce Hledání inverzí v Z n. Rychlé mocnění modulo n. Lineární rovnice v Z + n. Soustavy lineárních rovnic v Z + n. Rovnice a b
Asymetrická kryptografie
PEF MZLU v Brně 12. listopadu 2007 Problém výměny klíčů Problém výměny klíčů mezi odesílatelem a příjemcem zprávy trápil kryptografy po několik století. Problém spočívá ve výměně tajné informace tak, aby
Karel Kohout 18. května 2010
Karel (karel.kohout@centrum.cz) 18. května 2010 1 2 3 4 Hašovací funkce = Message-Digest algorithm 5, vychází z MD4 (podobně jako SHA-1), autor prof. Ronald Rivest (RSA) Řetězec livobovolné délky na řetězec
A. Poznámka k lineárním aproximacím kryptografické hašovací funkce BLUE MIDNIGHT WISH
A. Poznámka k lineárním aproximacím kryptografické hašovací funkce BLUE MIDNIGHT WISH Vlastimil Klíma, nezávislý kryptolog, (v.klima@volny.cz) Petr Sušil, PhD student, EPFL, (susil.petr@gmail.com) Abstrakt.
Operační mody blokových šifer a hašovací algoritmy. šifer. Bloková šifra. šifer. Útoky na operační modus ECB
Operační mody blokových šifer a hašovací algoritmy Operační mody blokových šifer RNDr. Vlastimil Klíma vlastimil.klima@i.cz ICZ a.s. 2 Operační mody blokových šifer T způsob použití blokové šifry k šifrování
Necht tedy máme přirozená čísla n, k pod pojmem systém lineárních rovnic rozumíme rovnice ve tvaru
2. Systémy lineárních rovnic V této kapitole se budeme zabývat soustavami lineárních rovnic s koeficienty z pole reálných případně komplexních čísel. Uvádíme podmínku pro existenci řešení systému lineárních
Hashovací funkce. Andrew Kozlík KA MFF UK
Hashovací funkce Andrew Kozlík KA MFF UK Hashovací funkce Hashovací funkce je zobrazení h : {0, 1} {0, 1} n. Typicky n {128, 160, 192, 224, 256, 384, 512}. Obraz h(x) nazýváme otisk, hash nebo digest prvku
1 Vektorové prostory.
1 Vektorové prostory DefiniceMnožinu V, jejíž prvky budeme označovat a, b, c, z, budeme nazývat vektorovým prostorem právě tehdy, když budou splněny následující podmínky: 1 Je dáno zobrazení V V V, které
a počtem sloupců druhé matice. Spočítejme součin A.B. Označme matici A.B = M, pro její prvky platí:
Řešené příklady z lineární algebry - část 1 Typové příklady s řešením Příklady jsou určeny především k zopakování látky před zkouškou, jsou proto řešeny se znalostmi učiva celého semestru. Tento fakt se
Od Enigmy k PKI. principy moderní kryptografie T-SEC4 / L3. Tomáš Herout Cisco. Praha, hotel Clarion 10. 11. dubna 2013.
Praha, hotel Clarion 10. 11. dubna 2013 Od Enigmy k PKI principy moderní kryptografie T-SEC4 / L3 Tomáš Herout Cisco 2013 2011 Cisco and/or its affiliates. All rights reserved. Cisco Connect 1 Největší
Výsledky bezpečnostního auditu TrueCryptu. Ing. Josef Kokeš. CryptoFest 2015
Výsledky bezpečnostního auditu TrueCryptu Ing. Josef Kokeš CryptoFest 2015 Obsah TrueCrypt Bezpečnostní audity TrueCryptu Audit č. 1 Audit č. 2 Zhodnocení Diskuse TrueCrypt Populární nástroj pro šifrování
Kongruence na množině celých čísel
121 Kapitola 4 Kongruence na množině celých čísel 4.1 Relace kongruence na množině celých čísel Vraťme se k úvahám o dělení se zbytkem. Na základní škole jsme se naučili, že když podělíme číslo 11 číslem
Diskrétní logaritmus
13. a 14. přednáška z kryptografie Alena Gollová 1/38 Obsah 1 Protokoly Diffieho-Hellmanův a ElGamalův Diffieho-Hellmanův a ElGamalův protokol Bezpečnost obou protokolů 2 Baby step-giant step algoritmus
0.1 Úvod do lineární algebry
Matematika KMI/PMATE 1 01 Úvod do lineární algebry 011 Lineární rovnice o 2 neznámých Definice 011 Lineární rovnice o dvou neznámých x, y je rovnice, která může být vyjádřena ve tvaru ax + by = c, kde
1 Mnohočleny a algebraické rovnice
1 Mnohočleny a algebraické rovnice 1.1 Pojem mnohočlenu (polynomu) Připomeňme, že výrazům typu a 2 x 2 + a 1 x + a 0 říkáme kvadratický trojčlen, když a 2 0. Číslům a 0, a 1, a 2 říkáme koeficienty a písmenem
Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy
Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy Lukáš Havrlant Univerzita Palackého 10. ledna 2014 Primární zdroj Jiří Adámek: Foundations of Coding. Strany 137 160. Na webu ke stažení, heslo:
Obsah. Euler-Fermatova věta. Reziduální aritmetika. 3. a 4. přednáška z kryptografie
Obsah Počítání modulo n a jeho časová složitost 3. a 4. přednáška z kryptografie 1 Počítání modulo n - dokončení Umocňování v Zn 2 Časová složitost výpočtů modulo n Asymptotická notace Základní aritmetické
Historie matematiky a informatiky Cvičení 2
Historie matematiky a informatiky Cvičení 2 Doc. RNDr. Alena Šolcová, Ph. D., KAM, FIT ČVUT v Praze 2014 Evropský sociální fond Investujeme do vaší budoucnosti Alena Šolcová Číselně teoretické funkce (Number-Theoretic
Kryptografie - Síla šifer
Kryptografie - Síla šifer Rozdělení šifrovacích systémů Krátká charakteristika Historie a současnost kryptografie Metody, odolnost Praktické příklady Slabá místa systémů Lidský faktor Rozdělení šifer Obousměrné
12 DYNAMIKA SOUSTAVY HMOTNÝCH BODŮ
56 12 DYNAMIKA SOUSTAVY HMOTNÝCH BODŮ Těžiště I. impulsová věta - věta o pohybu těžiště II. impulsová věta Zákony zachování v izolované soustavě hmotných bodů Náhrada pohybu skutečných objektů pohybem
1 Linearní prostory nad komplexními čísly
1 Linearní prostory nad komplexními čísly V této přednášce budeme hledat kořeny polynomů, které se dále budou moci vyskytovat jako složky vektorů nebo matic Vzhledem k tomu, že kořeny polynomu (i reálného)
BEZPEČNOST INFORMACÍ
Předmět Bezpečnost informací je zaměřen na bezpečnostní aspekty informačních systémů a na zkoumání základních prvků vytvářeného bezpečnostního programu v organizacích. Tyto prvky technologie, procesy a
PŘEDNÁŠKA 7 Kongruence svazů
PŘEDNÁŠKA 7 Kongruence svazů PAVEL RŮŽIČKA Abstrakt. Definujeme svazové kongruence a ukážeme jak pro vhodné binární relace svazu ověřit, že se jedná o svazové kongruence. Popíšeme svaz Con(A) kongruencí
Identifikátor materiálu: ICT-2-04
Identifikátor materiálu: ICT-2-04 Předmět Téma sady Informační a komunikační technologie Téma materiálu Zabezpečení informací Autor Ing. Bohuslav Nepovím Anotace Student si procvičí / osvojí kryptografii.
Informatika Ochrana dat
Informatika Ochrana dat Radim Farana Podklady předmětu Informatika pro akademický rok 2007/2008 Obsah Kryptografické systémy s veřejným klíčem, výměna tajných klíčů veřejným kanálem, systémy s veřejným
Greenova funkce pro dvoubodové okrajové úlohy pro obyčejné diferenciální rovnice
Greenova funkce pro dvoubodové okrajové úlohy pro obyčejné diferenciální rovnice Jan Tomeček Tento stručný text si klade za cíl co nejrychlejší uvedení do teorie Greenových funkcí pro obyčejné diferenciální
Informatika / bezpečnost
Informatika / bezpečnost Bezpečnost, šifry, elektronický podpis ZS 2015 KIT.PEF.CZU Bezpečnost IS pojmy aktiva IS hardware software data citlivá data hlavně ta chceme chránit autorizace subjekt má právo
Matice. a m1 a m2... a mn
Matice Nechť (R, +, ) je okruh a nechť m, n jsou přirozená čísla Matice typu m/n nad okruhem (R, +, ) vznikne, když libovolných m n prvků z R naskládáme do obdélníkového schematu o m řádcích a n sloupcích
Základy šifrování a kódování
Materiál byl vytvořen v rámci projektu Nové výzvy, nové příležitosti, nová škola Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky Základy šifrování a kódování
Funkce, elementární funkce.
Kapitola 2 Funkce, elementární funkce. V této kapitole si se budeme věnovat studiu základních vlastností funkcí jako je definiční obor, obor hodnot. Připomeneme si pojmy sudá, lichá, rostoucí, klesající.
Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.
Vyhledávání doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 21. září 2018 Jiří Dvorský (VŠB TUO) Vyhledávání 242 / 433 Osnova přednášky
KRYPTOGRAFIE VER EJNE HO KLI Č E
KRYPTOGRAFIE VER EJNE HO KLI Č E ÚVOD Patricie Vyzinová Jako téma jsem si vybrala asymetrickou kryptografii (kryptografie s veřejným klíčem), což je skupina kryptografických metod, ve kterých se pro šifrování
Matice přechodu. Pozorování 2. Základní úkol: Určete matici přechodu od báze M k bázi N. Každou bázi napíšeme do sloupců matice, např.
Matice přechodu Základní úkol: Určete matici přechodu od báze M k bázi N. Každou bázi napíšeme do sloupců matice, např. u příkladu 7 (v ) dostaneme: Nyní bychom mohli postupovat jako u matice homomorfismu
Afinita je stručný název pro afinní transformaci prostoru, tj.vzájemně jednoznačné afinní zobrazení bodového prostoru A n na sebe.
4 Afinita Afinita je stručný název pro afinní transformaci prostoru, tj.vzájemně jednoznačné afinní zobrazení bodového prostoru A n na sebe. Poznámka. Vzájemně jednoznačným zobrazením rozumíme zobrazení,
Příklad z učebnice matematiky pro základní školu:
Příklad z učebnice matematiky pro základní školu: Součet trojnásobku neznámého čísla zvětšeného o dva a dvojnásobku neznámého čísla zmenšeného o pět se rovná čtyřnásobku neznámého čísla zvětšeného o jedna.
Vektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace
Vektory a matice Aplikovaná matematika I Dana Říhová Mendelu Brno Obsah 1 Vektory Základní pojmy a operace Lineární závislost a nezávislost vektorů 2 Matice Základní pojmy, druhy matic Operace s maticemi
Protokol RSA. Tvorba klíčů a provoz protokolu Bezpečnost a korektnost protokolu Jednoduché útoky na provoz RSA Další kryptosystémy
Protokol RSA Jiří Velebil: X01DML 3. prosince 2010: Protokol RSA 1/18 Protokol RSA Autoři: Ronald Rivest, Adi Shamir a Leonard Adleman. a Publikováno: R. L. Rivest, A. Shamir a L. Adleman, A Method for
rovnic), Definice y + p(x)y = q(x), Je-li q(x) = 0 na M, nazývá se y + p(x)y =
Cíle Přehled základních typů diferenciálních rovnic prvního řádu zakončíme pojednáním o lineárních rovnicích, které patří v praktických úlohách k nejfrekventovanějším. Ukážeme například, že jejich řešení
Testování prvočíselnosti
Dokumentace zápočtového programu z Programování II (NPRG031) Testování prvočíselnosti David Pěgřímek http://davpe.net Úvodem V různých oborech (například v kryptografii) je potřeba zjistit, zda je číslo
SSL Secure Sockets Layer
SSL Secure Sockets Layer internetové aplikační protokoly jsou nezabezpečené SSL vkládá do architektury šifrující vrstvu aplikační (HTTP, IMAP,...) SSL transportní (TCP, UDP) síťová (IP) SSL poskytuje zabezpečenou
Kvantové algoritmy a bezpečnost. Václav Potoček
Kvantové algoritmy a bezpečnost Václav Potoček Osnova Úvod: Kvantové zpracování informace Shorův algoritmus Kvantová distribuce klíče Post-kvantové zabezpečení Úvod Kvantové zpracování informace Kvantový
Matematika (CŽV Kadaň) aneb Úvod do lineární algebry Matice a soustavy rovnic
Přednáška třetí (a pravděpodobně i čtvrtá) aneb Úvod do lineární algebry Matice a soustavy rovnic Lineární rovnice o 2 neznámých Lineární rovnice o 2 neznámých Lineární rovnice o dvou neznámých x, y je
Logaritmy a věty o logaritmech
Variace 1 Logaritmy a věty o logaritmech Autor: Mgr. Jaromír JUŘEK Kopírování a jakékoliv další využití výukového materiálu je povoleno pouze s uvedením odkazu na www.jarjurek.cz. 1. Logaritmy Definice
5. Hašovací funkce, MD5, SHA-x, HMAC. doc. Ing. Róbert Lórencz, CSc.
Bezpečnost 5. Hašovací funkce, MD5, SHA-x, HMAC doc. Ing. Róbert Lórencz, CSc. České vysoké učení technické v Praze Fakulta informačních technologií Katedra počítačových systémů Příprava studijních programů
Jihomoravske centrum mezina rodnı mobility. T-exkurze. Teorie c ı sel, aneb elektronicky podpis a s ifrova nı
Jihomoravske centrum mezina rodnı mobility T-exkurze Teorie c ı sel, aneb elektronicky podpis a s ifrova nı Brno 2013 Petr Pupı k Obsah Obsah 2 Šifrovací algoritmy RSA a ElGamal 12 2.1 Algoritmus RSA.................................
DODATEČNÉ INFORMACE K ZADÁVACÍM PODMÍNKÁM č. 2. Název veřejné zakázky: Dodávka SAN switchů včetně příslušenství pro datová centra
Zadavatel: Česká republika Ministerstvo zemědělství Název veřejné zakázky: Dodávka SAN switchů včetně příslušenství pro datová centra Sídlem: Těšnov 65/17, 110 00 Praha 1 Nové Město Evidenční číslo veřejné
V předchozí kapitole jsme podstatným způsobem rozšířili naši představu o tom, co je to číslo. Nadále jsou pro nás důležité především vlastnosti
Kapitola 5 Vektorové prostory V předchozí kapitole jsme podstatným způsobem rozšířili naši představu o tom, co je to číslo. Nadále jsou pro nás důležité především vlastnosti operací sčítání a násobení
Příklad 1. Řešení 1a Máme řešit rovnici ŘEŠENÉ PŘÍKLADY Z M1A ČÁST 1. Řešte v R rovnice: 8 3 5 5 2 8 =20+4 1 = + c) = f) +6 +8=4 g) h)
Příklad Řešte v R rovnice: a) 8 3 5 5 2 8 =20+4 b) = + c) = d) = e) + =2 f) +6 +8=4 g) + =0 h) = Řešení a Máme řešit rovnici 8 3 5 5 2 8 =20+4 Zjevně jde o lineární rovnici o jedné neznámé. Nejprve roznásobíme
(4x) 5 + 7y = 14, (2y) 5 (3x) 7 = 74,
1. V oboru celých čísel řešte soustavu rovnic (4x) 5 + 7y = 14, (2y) 5 (3x) 7 = 74, kde (n) k značí násobek čísla k nejbližší číslu n. (P. Černek) Řešení. Z první rovnice dané soustavy plyne, že číslo
Moderní metody substitučního šifrování
PEF MZLU v Brně 11. listopadu 2010 Úvod V současné době se pro bezpečnou komunikaci používají elektronická média. Zprávy se před šifrováním převádí do tvaru zpracovatelného technickým vybavením, do binární
0.1 Úvod do lineární algebry
Matematika KMI/PMATE 1 01 Úvod do lineární algebry 011 Vektory Definice 011 Vektorem aritmetického prostorur n budeme rozumět uspořádanou n-tici reálných čísel x 1, x 2,, x n Definice 012 Definice sčítání
ANTAGONISTICKE HRY 172
5 ANTAGONISTICKÉ HRY 172 Antagonistický konflikt je rozhodovací situace, v níž vystupují dva inteligentní rozhodovatelé, kteří se po volbě svých rozhodnutí rozdělí o pevnou částku, jejíž výše nezávisí
10. cvičení z PST. 5. prosince T = (n 1) S2 X. (n 1) s2 x σ 2 q χ 2 (n 1) (1 α 2 ). q χ 2 (n 1) 2. 2 x. (n 1) s. x = 1 6. x i = 457.
0 cvičení z PST 5 prosince 208 0 (intervalový odhad pro rozptyl) Soubor (70, 84, 89, 70, 74, 70) je náhodným výběrem z normálního rozdělení N(µ, σ 2 ) Určete oboustranný symetrický 95% interval spolehlivosti
9.4. Rovnice se speciální pravou stranou
Cíle V řadě případů lze poměrně pracný výpočet metodou variace konstant nahradit jednodušším postupem, kterému je věnována tato kapitola. Výklad Při pozorném studiu předchozího textu pozornějšího studenta
CVIČENÍ 4 Doc.Ing.Kateřina Hyniová, CSc. Katedra číslicového návrhu Fakulta informačních technologií České vysoké učení technické v Praze 4.
CVIČENÍ POZNÁMKY. CVIČENÍ. Vazby mezi systémy. Bloková schémata.vazby mezi systémy a) paralelní vazba b) sériová vazba c) zpětná (antiparalelní) vazba. Vnější popis složitých systémů a) metoda postupného
Eliptické křivky a RSA
Přehled Katedra informatiky FEI VŠB TU Ostrava 11. února 2005 Přehled Část I: Matematický základ Část II: RSA Část III: Eliptické křivky Matematický základ 1 Základní pojmy a algoritmy Základní pojmy Složitost
2.6. VLASTNÍ ČÍSLA A VEKTORY MATIC
.6. VLASTNÍ ČÍSLA A VEKTORY MATIC V této kapitole se dozvíte: jak jsou definována vlastní (charakteristická) čísla a vektory čtvercové matice; co je to charakteristická matice a charakteristický polynom
Univerzita Karlova v Praze Pedagogická fakulta
Univerzita Karlova v Praze Pedagogická fakulta SEMINÁRNÍ PRÁCE Z METOD ŘEŠENÍ 1 TEORIE ČÍSEL 000/001 Cifrik, M-ZT Příklad ze zadávacích listů 10 101 Dokažte, že číslo 101 +10 je dělitelné číslem 51 Důkaz:
C5 Bezpečnost dat v PC
C5 T1 Vybrané kapitoly počíta tačových s sítí Bezpečnost dat v PC 1. Počíta tačová bezpečnost 2. Symetrické šifrování 3. Asymetrické šifrování 4. Velikost klíče 5. Šifrování a dešifrov ifrování 6. Steganografie
6 Ordinální informace o kritériích
6 Ordinální informace o kritériích Ordinální informací o kritériích se rozumí jejich uspořádání podle důležitosti. Předpokládejme dále standardní značení jako v předchozích cvičeních. Existují tři základní