Wiener angreb

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 15. februar 2019; checks kræver 8 redigeringer .

Wiener-angrebet , opkaldt efter kryptolog Michael J. Wiener, er en form for kryptografisk angreb mod RSA-algoritmen . Angrebet bruger den fortsatte fraktionmetode til at bryde systemet med en lille lukket eksponent .

Kort om RSA

Før du starter en beskrivelse af, hvordan Wieners angreb fungerer, er det værd at introducere nogle begreber, der bruges i RSA [1] . Se RSA- hovedartiklen for flere detaljer .

For at kryptere beskeder i henhold til RSA -skemaet bruges en offentlig nøgle - et par numre , til dekryptering - en privat nøgle . Tal kaldes henholdsvis åbne og lukkede eksponenter, tallet kaldes modulet. Modulus , hvor og er to primtal . Forbindelsen mellem den lukkede, åbne eksponent og modulet er givet som , hvor er Euler-funktionen .

Hvis den offentlige nøgle kan gendannes på kort tid , så er nøglen sårbar: Efter at have modtaget information om den private nøgle , har angribere mulighed for at dekryptere beskeden.

Algoritmens historie

RSA-kryptosystemet blev opfundet af Ronald Rivest , Adi Shamir og Leonard Adleman og først udgivet i 1977 [1] . Siden publiceringen af ​​artiklen er RSA-kryptosystemet blevet undersøgt for sårbarheder af mange forskere. [2] De fleste af disse angreb bruger potentielt farlige implementeringer af algoritmen og bruger eksplicitte betingelser for en eller anden fejl i algoritmen: fælles modul, lille offentlig nøgle, lille privat nøgle [3] . En kryptografisk angrebsalgoritme mod RSA-algoritmen med en lille privat nøgle blev således foreslået af kryptolog Michael J. Wiener i en artikel, der først blev offentliggjort i 1990. [4] Wieners sætning siger, at hvis nøglen er lille, så kan den private nøgle findes i lineær tid .

Lille privat nøgle

I RSA -krypteringssystemet kan Bob bruge en mindre værdi i stedet for et stort tilfældigt tal for at forbedre RSA -dekrypteringsydelsen . Wieners angreb viser dog, at valg af en lille værdi for for vil resultere i en usikker kryptering, hvor en angriber kan gendanne alle de hemmelige oplysninger, altså bryde RSA -systemet . Dette hack er baseret på Wieners sætning, som er gyldig for små værdier på . Wiener beviste, at en angriber effektivt kan finde hvornår .

Wiener indførte også nogle modforanstaltninger mod sit angreb. De to metoder er beskrevet nedenfor: [5]

1. Valg af en stor offentlig nøgle :

Erstat med , hvor for nogle store . Når det er stort nok, dvs. , så er Wieners angreb uanvendeligt, uanset hvor lille .

2. Brug af den kinesiske restsætning :

Vælg så, at og , og er små, men ikke sig selv, så kan hurtig beskeddekryptering udføres som følger:
  1. Først beregner den
  2. Brug af den kinesiske restsætning til at beregne en unik værdi , der opfylder og . Resultatet opfylder efter behov. Pointen er, at Wieners angreb ikke er anvendeligt her, fordi værdien kan være stor.

Sådan fungerer Wiener-angrebet

Fordi

,

så er der et heltal , sådan at:

.

Det er værd at bestemme og erstatte i den foregående ligning :

.

Hvis vi betegner og , vil substitution i den foregående ligning give:

.

Ved at dividere begge sider af ligningen med , viser det sig, at:

, hvor .

Som et resultat, lidt mindre end , og den første fraktion består udelukkende af offentlig information . Der er dog stadig behov for en metode til at teste en sådan antagelse. Mens den sidste ligning kan skrives som:

.

Ved hjælp af simple algebraiske operationer og identiteter kan man fastslå nøjagtigheden af ​​en sådan antagelse. [6]

Wieners sætning

Lad , hvor . Lad .

At have hvor , kan en kiks komme sig . [7]

Bevis for Wieners sætning

Beviset er baseret på tilnærmelser ved hjælp af fortsatte brøker . [otte]

Siden , så eksisterer for hvilke . Følgelig:

.

Så dette er en tilnærmelse . Selvom kikseren ikke ved det, kan han bruge den til at tilnærme det. Faktisk fordi:

og , vi har: og

Ved at bruge i stedet for får vi:

Nu betyder det . Da , betyder , og i sidste ende viser det sig:

hvor

Siden og derfor:

Da , da , og baseret på dette , betyder:

Fra (1) og (2) kan vi konkludere, at:

Betydningen af ​​sætningen er, at hvis betingelsen ovenfor er opfyldt, så vises blandt konvergenterne for den fortsatte brøkdel af tallet .

Derfor vil algoritmen med tiden finde sådanne [9] .

Beskrivelse af algoritmen

En offentlig RSA-nøgle tages i betragtning , hvorved det er nødvendigt at bestemme den private eksponent . Hvis det er kendt at , så kan det gøres i henhold til følgende algoritme [10] :

1. Udvid fraktionen til en fortsat fraktion . 2. For en fortsat brøk , find mængden af ​​alle mulige konvergenter . 3. Udforsk passende fraktion : 3.1. Bestem den mulige værdi ved at beregne . 3.2. Efter at have løst ligningen , få et par rødder . 4. Hvis lighed er sand for et par rødder , så findes den lukkede eksponent . Hvis betingelsen ikke er opfyldt, eller det ikke var muligt at finde et par rødder , er det nødvendigt at undersøge den næste passende fraktion , og vende tilbage til trin 3.

Et eksempel på, hvordan algoritmen fungerer

Disse to eksempler [10] viser tydeligt at finde den private eksponent , hvis den offentlige RSA- nøgle er kendt .

For en offentlig RSA- nøgle :

Tabel: finde den lukkede eksponent d
e / N = [0, 1, 7, 3, 31, 5, 2, 12, 1, 28, 13, 2, 1, 2, 3]
n k n / d n phi n p n q n p n q n
0 0/1 - - - -
en 1/1 1073780832 - - -
2 7/8 1227178094 - - -
3 22/25 1220205492 30763 39667 1220275921

Det viser sig at . I dette eksempel kan du se, at lillehedsbetingelsen er opfyldt .

For en offentlig RSA- nøgle :

Tabel: finde den lukkede eksponent d
e / N = [0, 1, 1, 1, 2, 1, 340, 2, 1, 1, 3, 2, 3, 1, 21, 188]
n k n / d n f n p n q n p n q n
0 0/1 - - - -
en 1/1 1779399042 - - -
2 1/2 3558798085 - - -
3 2/3 2669098564 - - -
fire 5/8 2847038468 - - -
5 7/11 2796198496 47129 59333 2796304957

Det viser sig at . I dette eksempel kan du også bemærke, at lillehedsbetingelsen er opfyldt .

Algoritmens kompleksitet

Kompleksiteten af ​​algoritmen bestemmes af antallet af konvergenter for den fortsatte brøkdel af tallet , som er en værdi af størrelsesordenen . Det vil sige, at tallet gendannes i lineær tid [11] fra nøglelængden .

Links

  1. 12 Rivest , 1978 .
  2. Boneh, 1999 , Introduktion, s. en.
  3. Kobbersmed, 1996 .
  4. Wiener, 1990 .
  5. Wiener, 1990 , Combatting the Continued Fraction Attack on RSA., s. 557.
  6. Render, 2007 .
  7. Boneh, 1999 .
  8. Khaled, 2006 .
  9. Herman, 2012 , Om RSA-systemets sårbarhed. Lille hemmelig nøgle., s. 283-284.
  10. 12 Kedmi , 2016 .
  11. Herman, 2012 , Om RSA-systemets sårbarhed. Lille hemmelig nøgle., s. 284: "Antallet af disse brøker er en værdi af størrelsesordenen O(ln(n)), det vil sige, at tallet d er gendannet i lineær tid."

Litteratur