The Wienerův útok, pojmenovaný podle kryptologa Michaela J. Wienera, je typem kryptografický útok proti RSA. Útok využívá pokračující zlomek metoda vystavení soukromého klíče d když d je malý.
Souvislosti s RSA
Fiktivní postavy Alice a Bob jsou lidé, kteří chtějí bezpečně komunikovat. Přesněji řečeno, Alice chce Bobovi poslat zprávu, kterou může číst pouze Bob. Nejprve Bob vybere dva připraví p a q. Poté vypočítá RSA modul N = pq. Tento modul RSA je zveřejněn společně s šifrování exponent E. N a E tvoří pár veřejných klíčů (e, N). Zveřejněním těchto informací může kdokoli zašifrovat zprávy Bobovi. The dešifrování exponent d splňuje
, kde
označuje Funkce Carmichael, i když někdy
, Eulerova funkce phi, je použito (poznámka: toto je pořadí multiplikativní skupina
, což nemusí být nutně cyklická skupina). Šifrovací exponent E a
také musí být relativně prime takže existuje modulární inverzní. The faktorizace z N a soukromý klíč d jsou drženy v tajnosti, takže jen Bob může dešifrovat zpráva. Pár soukromých klíčů označujeme jako (d, N). Šifrování zprávy M darováno
a dešifrování šifrovacího textu
darováno
(použitím Fermatova malá věta ).
Za použití Euklidovský algoritmus, lze efektivně obnovit tajný klíč d pokud někdo ví faktorizace z N. Tím, že máte tajný klíč d, lze efektivně zohlednit modul N.[1]
Malý soukromý klíč
V RSA kryptosystém, Bob by mohl mít tendenci používat malou hodnotu d, spíše než velké náhodné číslo pro vylepšení RSA dešifrování výkon. Wienerův útok však ukazuje, že zvolit malou hodnotu pro d bude mít za následek nezabezpečený systém, ve kterém může útočník obnovit všechny tajné informace, tj. rozbít RSA Systém. Tento zlom je založen na Wienerově teorému, který platí pro malé hodnoty d. Wiener dokázal, že útočník může efektivně najít d když
.[2]
Wienerův článek také představil některá protiopatření proti jeho útoku, která umožňují rychlé dešifrování. Dvě techniky jsou popsány následovně.
Volba velkého veřejného klíče: Vyměnit
podle
, kde
pro některé velké z
. Když
je dostatečně velký, tj.
, pak nelze použít Wienerův útok bez ohledu na to, jak malý
je.
Za použití Čínská věta o zbytku: Předpokládejme, že jeden si vybere d takové, že oba
a
jsou malé, ale
samo o sobě není, pak půst dešifrování z
lze provést následujícím způsobem:
1. Nejprve spočítejte
a
.
2. Použijte Čínská věta o zbytku vypočítat jedinečnou hodnotu
který uspokojuje
a
. Výsledek
splňuje
podle potřeby. Jde o to, že Wienerův útok zde neplatí, protože jeho hodnota je
může být velký.[3]
Jak funguje Wienerův útok
Všimněte si, že

kde 
Od té doby
,
existuje celé číslo K. takhle


Definování
a
a dosazením do výše uvedeného získáte:
.
Děleno
:
, kde
.
Tak,
je o něco menší než
a první je složen výhradně z veřejnosti informace. Stále je však nutná metoda kontroly a odhadu. Za předpokladu, že
(rozumný předpoklad, pokud
je velká) poslední výše uvedená rovnice může být zapsána jako:

Pomocí jednoduchých algebraický manipulace a identity, lze zkontrolovat odhad přesnost.[1]
Wienerova věta
Nechat
s
. Nechat
.
Dáno
s
se může útočník efektivně zotavit
.[2]
Příklad
Předpokládejme, že jsou veřejné klíče 
Útok určí
.
Použitím Wienerovy věty a pokračující zlomky přiblížit
Nejprve se pokusíme najít pokračující zlomky expanze
. Všimněte si, že tento algoritmus najde zlomky v jejich nejnižších termínech. Víme to
![{ frac {e} {N}} = { frac {17993} {90581}} = { cfrac {1} {5 + { cfrac {1} {29+ dots + { cfrac {1} { 3}}}}}} = doleva [0,5,29,4,1,3,2,4,3 doprava]](https://wikimedia.org/api/rest_v1/media/math/render/svg/f40aef0f822272aaa0236fd653269d84f01066cf)
Podle pokračující zlomky expanze
, všechny konvergenty
jsou:

Můžeme ověřit, že první konvergentní neprodukuje faktorizaci
. Konvergentní
výnosy

Teď, když vyřešíme rovnici



pak najdeme kořeny což jsou
. Proto jsme našli faktorizaci
.
Všimněte si, že pro modul
, Wienerova věta bude fungovat, pokud
.
Důkaz Wienerovy věty
Důkaz je založen na aproximacích s použitím pokračujících zlomků.[2][4]
Od té doby
, existuje a
takhle
. Proto
.
Nechat
Všimněte si, že pokud
se používá místo
, pak lze důkaz nahradit
a
nahrazeno
.
Poté vynásobte
,

Proto,
je aproximace
. Ačkoli útočník neví
, může použít
přiblížit to. Opravdu, protože
a
, my máme:


Použitím
namísto
získáváme:




Nyní,
, tak
. Od té doby
, tak
, pak získáme:


Od té doby
a
Získáváme tedy:
- (1)

Od té doby
pak
, získáváme:
, takže (2) 
Z (1) a (2) to můžeme vyvodit

Li
, pak
je konvergentní z
, tím pádem
se objevuje mezi konvergenty
. Algoritmus tedy nakonec nakonec najde
.
Reference
Další čtení