Narozeninový útok

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

Narozeninový útok je v kryptografii typ kryptoanalytického útoku, jehož název pochází z matematicky vyřešeného narozeninového problému v teorii pravděpodobnosti. Útok slouží k nalezení kolize v kryptografické hašovací funkci f, což znamená nalézt dvě odlišné vstupní hodnoty x1 a x2 pro funkci f takové, že ƒ(x1) = ƒ(x2). Pro nalezení kolize jsou v tomto útoku náhodně vybírány vstupní hodnoty a vypočítávána z nich výstupní hodnota funkce f, přičemž se nalezení kolize předpokládá průměrně po vyhodnocení 1,25×√H různých vstupních hodnot.

Narozeninový problém

Narozeninový problém říká, že má-li funkce f(x) určitý počet H různých výstupů, které mají stejnou pravděpodobnost výskytu ve výstupech a zároveň je H dostatečně velké, můžeme očekávat, že obdržíme stejný výstup funkce f pro různé vstupní hodnoty x1 a x2, kde ƒ(x1) = ƒ(x2) průměrně po vyhodnocení 1,25×√H různých vstupních hodnot.

Matematicky

Ze sady H hodnot vybereme n hodnot, abychom dovolili rovnoměrné opakování. Označme p(n; H) pravděpodobnost, že během tohoto experimentu vybereme alespoň jednu hodnotu více než jednou. +more Pravděpodobnost pak můžeme aproximovat následovně:.

: p(n;H) \approx 1 - e^{-n(n-1)/(2H)} \approx 1-e^{-n^2/(2H)}, \,

Nechť n(p; H) je nejmenší počet hodnot, které je potřeba zvolit, aby byla pravděpodobnost nalezení kolize alespoň p. Inverzí předchozího výrazu získáme následující aproximaci:

: n(p;H)\approx \sqrt{2H\ln\frac{1}{1-p}},

pokud položíme pravděpodobnost kolize rovnu 0,5, dostáváme:

: n(0.5;H) \approx 1.1774 \sqrt H. \,

Nechť Q(H) je požadovaný počet hodnot, které je třeba zvolit před nalezením první kolize. Toto číslo může být aproximováno jako:

: Q(H)\approx \sqrt{\frac{\pi}{2}H}.

Pro názornost uvažujme 64bitové hašovací funkce, které poskytují přibližně 1,8×1019 různých výstupních hodnot. Pokud by pravděpodobnost všech těchto hodnot byla stejná (nejlepší případ), bylo by k nalezení kolize použitím brute force útoku zapotřebí „pouze“ okolo 5 miliard voleb (5,1×109). +more Tato hodnota se nazývá narozeninová hranice a pro n-bitové kódy ji lze spočíst jako 2n/2. Další příklady uvádí následující tabulka:.

:

BitůMožné výstupy (H)Požadovaná pravděpodobnost náhodné kolize (p)
10−1810−1510−1210−910−60,1%1%25%50%75%
324,3×1092222,9932,9×1039,3×1035,0×1047,7×1041,1×105
641,8×10196,11,9×1026,1×1031,9×1056,1×1061,9×1086,1×1083,3×1095,1×1097,2×109
1283,4×10382,6×10108,2×10112,6×10138,2×10142,6×10168,3×10172,6×10181,4×10192,2×10193,1×1019
2561,2×10774,8×10291,5×10314,8×10321,5×10344,8×10351,5×10374,8×10372,6×10384,0×10385,7×1038
3843,9×101158,9×10482,8×10508,9×10512,8×10538,9×10542,8×10568,9×10564,8×10577,4×10571,0×1058
5121,3×101541,6×10685,2×10691,6×10715,2×10721,6×10745,2×10751,6×10768,8×10761,4×10771,9×1077
:Tabulka ukazuje množství hašů n(p) potřebných k dosažení dané pravděpodobnosti úspěchu za předpokladu, že jsou všechny hodnoty hašovací funkce stejně pravděpodobné. Pro srovnání: 10−18 až 10−15 je hodnota, která vyjadřuje počet neopravitelných chyb typického pevného disku. +more Teoreticky by 128bitový MD5 hash nebo UUID měly zůstat v tomto rozsahu až do množství 820 miliard dokumentů, i když počet možných výstupů této funkce je daleko vyšší.

Citlivost digitálního podpisu

Digitální podpisy mohou být náchylné na narozeninový útok. Zpráva m je typicky podepsána první vypočtenou f(m), kde f je kryptografická hašovací funkce a poté používá tajného klíče k podepsání f(m). +more Předpokládejme, že Alice chce nalákat Boba do podepsání podvodného kontraktu. Alice připraví kontrakt m a také jeden falešný m'. Alice poté nalézá několik pozic, kde může m změnit tak, aby zpráva neztratila svůj prvotní význam, například: čárky ve větách, prázdné řádky, jednu mezeru proti dvěma mezerám na konci věty, nahrazování synonym, atd. Po zkombinování těchto změn může vytvořit několik variací pro zprávu m, které jsou všechny správné kontrakty.

Podobným způsobem Alice vytváří obrovské množství variací na podvodném kontraktu m'. Poté aplikuje otiskovou funkci ke všem těmto variacím do té doby, než nalezne takový otisk, který bude pro oba kontrakty stejný: f(m) = f(m'). +more Správnou verzi kontraktu předá k podepsání Bobovi. Poté, co Bob podepsal správný kontrakt, Alice vezme podpis a připojí jej k falešnému kontraktu. Tento podpis poté prokazuje, že Bob podepsal falešný kontrakt. Postup se mírně liší od původního narozeninového problému, protože Alice by nezískala ze dvou poctivých (nebo dvou falešných) kontraktů se stejným otiskem prospěch. Alice se snaží nalézt dva různé kontrakty (jeden poctivý a druhý falešný) se stejnými otisky.

Alice srovná každý nově nalezený otisk se všemi předchozími podvodnými otisky a nový podvodný otisk se všemi předchozími správnými otisky. Narozeninový problém používá n různých výstupů. +more Proto počet otisků, které Alice ve skutečnosti vygeneruje je 2n.

Pro vyhnutí se tomuto útoku musí být délka otiskové funkce užívané pro schéma podpisu tak velká, že se narozeninový útok stává výpočtově neproveditelným, to jest dvakrát více bitů, než by bylo potřeba pro provedení útoku hrubou silou.

Pollardův rho algoritmus pro logaritmy je příkladem algoritmu používající narozeninový útok pro výpočet diskrétních logaritmů.

Externí odkazy

[url=https://web. archive. +moreorg/web/20040913080209/http://www. rsasecurity. com/rsalabs/node. asp. id=2182]"What is a digital signature and what is authentication. (Co je digitální podpis a co je autorizace)"[/url] z RSA Security krypto FAQ * [url=http://www. certainkey. com/dnet/acmccs94. pdf]"Parallel collision search with cryptanalytic applications (Hledání paralelni kolize s kryptoanalytickými aplikacemi)[/url] , od Michaela Wienera a Paula C. van Oorschota.

Kategorie:Kryptoanalýza

Geburtstagsangriff

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top