RSA kriptoanalízis

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2016. június 26-án áttekintett verziótól ; az ellenőrzések 8 szerkesztést igényelnek .

Ez a cikk leírja az RSA nyilvános kulcsú kriptoalgoritmus használatának feltételeit , amely leegyszerűsíti a kriptoanalitikus támadásokat [1] , és az ilyen feltételek kiküszöbölésének módszereit.

Bevezetés

2009-től az RSA-alapú titkosítási rendszer 1024 bitestől kezdve biztonságosnak tekinthető.

Svájcból, Japánból, Franciaországból, Hollandiából, Németországból és az Egyesült Államokból származó tudósok egy csoportja sikeresen kiszámította a 768 bites RSA kriptográfiai kulccsal titkosított adatokat. [2] A kutatók szerint munkájuk után csak az 1024 bites vagy annál hosszabb RSA kulcsok tekinthetők megbízható titkosítási rendszernek. Ezenkívül a következő három-négy évben fel kell hagyni az 1024 bites kulcsú titkosítással. [3]

Amint az a munka leírásából következik, a kulcsértékek kiszámítása az általános számmezőszita módszerrel történt .

Az első lépés (6-os és 1-es fokú polinompár kiválasztása) 80 processzoron körülbelül fél év számolást vett igénybe, ami körülbelül 3%-a volt az algoritmus fő szakaszában (szitálás) töltött időnek, amelyet számítógépek százait csaknem két évig. Ha ezt az időt interpoláljuk egy AMD Opteron 2,2 GHz-es processzor működésére 2 GB memóriával, akkor ez körülbelül 1500 év lenne. Az adatok feldolgozása a következő erőforrás-igényes lépés (lineáris algebra) szűrése után néhány processzoron több hetet vett igénybe. Az utolsó lépés a nem triviális OSLU-megoldások megtalálása után nem tartott tovább 12 óránál.

Az OSLU megoldást Wiedemann módszerrel több különálló klaszteren hajtották végre, és valamivel kevesebb, mint 4 hónapig tartott. Ugyanakkor a ritka mátrix mérete 192 796 550 x 192 795 550 volt, 27 795 115 920 nem nulla elemmel (azaz átlagosan 144 nem nulla elem soronként). A mátrix merevlemezen való tárolása körülbelül 105 gigabájtot vett igénybe. Ugyanakkor körülbelül 5 terabájt tömörített adatra volt szükség ennek a mátrixnak a felépítéséhez.

Ennek eredményeként a csoport ki tudott számítani egy 232 számjegyű kulcsot, amely hozzáférést nyit a titkosított adatokhoz.

A kutatók biztosak abban, hogy a faktorizációs módszerükkel az 1024 bites RSA-kulcs feltörése lehetséges lesz a következő évtizedben.[ mikor? ] .

A modulus két prím szorzatára való kiterjesztésének ismeretében az ellenfél könnyen megtalálhatja a titkos kitevőt , és ezzel megtörheti az RSA-t. Mindazonáltal a mai napig a leggyorsabb faktorizációs algoritmus  a General Number Field Sieve, amelynek sebessége egy k bites egész szám esetén

egyeseknek ,

nem teszi lehetővé egy nagy egész szám ésszerű időn belüli lebontását. Megvizsgáljuk az RSA elleni lehetséges támadásokat, amelyek lehetővé teszik, hogy megtörjük ezt a rendszert anélkül, hogy az n modulust két prímszám szorzatára direkt kiterjesztené.

Elemental Attacks

Nézzünk meg néhány, az RSA algoritmussal való visszaéléshez kapcsolódó támadást.

Prímszám generálás

A következő további korlátozás vonatkozik a véletlen prímszámokra :

Séma közös modulussal n

Kezdeti adatok: Annak elkerülése érdekében , hogy az egyes felhasználók számára különböző modulokat generáljanak, a biztonságos szerver egyetlen n-t használ az összes üzenet titkosításához. A Party ezt a szervert használja az üzenet fogadására

Feladat: az ellenfél meg akarja fejteni a fél üzenetét .

Úgy tűnik , hogy egy félnek küldött rejtjelezett szöveget a fél nem tudja visszafejteni , hacsak nem rendelkezik a titkos kulccsal . A párt azonban kitevőivel felbonthatja a modulust , majd ismeretében kiszámolhatja a titkos kitevőt .

Védelem: minden felhasználónak saját modult kell használnia .

Támadás az RSA aláírása ellen a közjegyzői rendszerben

Kiinduló adatok:  - a közjegyző nyilvános kulcsa. Az ellenfél visszautasítást kap, amikor egy üzenetet próbál aláírni egy közjegyző által

Feladat: az ellenfél a közjegyző aláírását szeretné kérni az üzeneten .

Az ellenfél kiválaszt egy tetszőleges , kiszámítja és elküldi ezt az üzenetet a közjegyzőnek aláírásra.

Ha a közjegyző aláírja ezt az üzenetet:

akkor az ellenfél a kiszámítása után megkapja az üzenet aláírását .

Igazán,

Védelem: aláíráskor adjon hozzá véletlenszerű számot (például időt) az üzenethez.

A titkos kitevő kis értékei

Kiinduló adatok: A visszafejtés (vagy digitális aláírás létrehozása) sebességének növelése érdekében a titkos kitevő bináris reprezentációjának nullától eltérő bitjeinek számát csökkentették (lásd az RSA algoritmus sebességét ).

Feladat: Számítsa ki a titkos kitevőt !

1990 -ben Michael J. Wiener megmutatta, hogy kis érték esetén megtörhető az RSA rendszer, nevezetesen:

Wiener-tétel:

Legyen , hol Akkor, ha ismert hol , akkor van egy hatékony módszer a számításra .

Védelem: Ha tehát 1024 bites a mérete, akkor legalább 256 bitesnek kell lennie.

A nyitott kitevő kis értékei

A titkosítás és a digitális aláírások ellenőrzési sebességének növelése érdekében használja a nyílt kitevő kis értékeit . Közülük a legkisebb . Az RSA algoritmus kriptográfiai erősségének növelése érdekében azonban javasolt a használata

.

Khastad támadása

Kezdeti feltételek: A fél titkosított üzenetet küld a felhasználóknak . Minden felhasználónak saját nyilvános kulcsa van , és . A fél titkosítja az üzenetet az egyes felhasználók nyilvános kulcsával, és elküldi a megfelelő címzettnek. Az ellenfél figyeli az átviteli csatornát, és összegyűjti a továbbított titkosított szövegeket.

Feladat: az ellenfél vissza akarja állítani az üzenetet .

Hagyjuk , akkor az ellenfél felépülhet , ha .

Bizonyíték

Valóban, ha az ellenfél megkapta , hol

Feltételezzük, hogy másodprímek, különben az egytől eltérő legnagyobb közös osztó azt jelentené, hogy az egyik osztóját találjuk meg . A kínai maradéktételt alkalmazva a -ra , azt kapjuk ,

Azóta _ _

Vagyis az ellenfél vissza tudja állítani az üzenetet a kockagyökér kiszámításával .

Általánosságban elmondható, hogy ha minden nyitott kitevő egyenlő , akkor az ellenfél a következőnél helyreállhat .

Fontolja meg a legegyszerűbb védekezést ez ellen a támadás ellen. Legyen az egyes felhasználók üzenete az eredeti üzenet valamilyen rögzített permutációja, például

 — üzenet az i-edik felhasználónak.

Hastad (Johan Hastad) megmutatta, hogy az ellenfél még ebben az esetben is képes helyreállítani az üzenetet megfelelő számú felhasználóval.

Védelem: Ez a támadás csak a nyílt kitevő kis értékével lehetséges , ebben az esetben az RSA rendszer kriptográfiai erőssége tetszőleges permutációval érhető el, nem pedig rögzített permutációval, amire fentebb volt példa.

Franklin-Reiter támadás

Kezdeti feltételek :

Két üzenet van , és

hol van valami nyitott polinom.

A nyilvános kulccsal rendelkező fél megkapja ezeket az üzeneteket a féltől , amely egyszerűen titkosítja az üzeneteket , és továbbítja a kapott titkosított szövegeket .

Feladat: Az ellenség, tudván , helyre akarja állítani .

Matthew K. Franklin és Michael K. Reiter bebizonyította a következő állítást:

Hadd 1) az RSA rendszer nyilvános kulcsa, és 2) és , valamilyen lineáris polinom esetében , Ekkor a ismeretében az ellenfél felépülhet Bizonyíték

Valójában tetszőlegesen :

, a polinom gyöke

hanem a polinom gyöke is

.

Így osztja mindkét polinomot. És az ellenfél használhatja az Euklidész algoritmust a GCD kiszámításához . Ha az eredmény lineáris polinomnak bizonyul, akkor azt megtaláljuk.

Amikor a gcd egy lineáris polinom, ezért az ellenfél hatékonyan tudja kiszámítani az üzeneteket .

Védelem: amikor az RSA rendszer feltörésének ideje arányos -val, így ez a támadás csak kis nyitott kitevővel használható.

Támadás egy részben ismert titkos kitevő ellen

Kezdeti feltételek :

Az ellenfél ismeri a titkos kitevő bináris reprezentációjának egy részét .

Feladat: visszaállítás .

Kiderült, hogy:

Legyen  az RSA rendszer titkos kulcsa, ahol a bitek mérete . Ekkor a szám legkevésbé jelentős bitjeinek ismeretében az ellenfél a -val arányos időn belül helyreállhat

Az RSA rendszer feltörésének lehetősége abban az esetben, ha a nyitott kitevő kicsi, a következő érvelésből is nyilvánvaló:

a definícióból és : Mivel ez nyilvánvaló . Adott érték mellett az ellenfél könnyen ki tudja számítani Aztán at Így jó közelítés a . Mivel csak elkülönülő értékek lehetségesek , az ellenfél olyan kifejezéseket tartalmazó sorozatot állíthat össze, amelyeknél az egyik elemének bináris reprezentációja megegyezik a titkos kitevő bináris reprezentációjának felső felével .

Védelem: nyitott kitevő növelése .

Támadás kvantumszámítógéppel

Egy kvantumszámítógép segítségével , ha megépül, feltörhető lesz az RSA, mivel a Shor -féle kvantum algoritmus nagy számok faktorizálását teszi lehetővé meglehetősen rövid idő alatt. Az n modulust prímtényezőkre bontva (ez O (log n ) logikai Q-bitek segítségével időben megtehető ) kiszámítható a d titkos kitevő.

Az RSA rendszer megvalósításával kapcsolatos támadások

Runtime attack

Kezdeti feltételek:

Vegyünk egy olyan intelligens kártyát, amelynek mikroprocesszora egy beágyazott RSA privát kulccsal írja alá az üzeneteket.

Cél: Az ellenség titkos kitevőt akar szerezni .

Paul Kocher olyan támadást javasolt, amely az intelligens kártya kódolójának bizonyos műveletek végrehajtásához szükséges idő nagy pontosságú mérésén alapul . Tekintsük ezt a támadást a gyors hatványozási algoritmust használó RSA rendszer példáján :

Az ellenfél intelligens kártya aláírásokat szerez nagyszámú véletlenszerű üzenethez , és méri az aláírás létrehozásához szükséges időt .

A támadás során a titkos kitevő értéke bitenként, a legkisebb jelentőségű bittől kezdve visszaáll:

  • furcsa tehát .
  • ha akkor az intelligens kártya mikroprocesszorának három modulo szorzást kell végrehajtania , szemben a kettővel, amikor szükséges (lásd a gyors hatványozási algoritmust ). Jelöljük  a processzor számítási idejét az üzenethez .
Kocher megmutatta, hogy amikor két együttes és korrelál . Abban az esetben azonban, ha függetlenek. Így a korrelációs elemzéshez folyamodva az ellenfél meg tudja határozni .
  • hasonlóan definiálható .

Vegye figyelembe, hogy kis nyílt kitevő esetén egy részben nyílt titkos kitevő elleni támadást lehet alkalmazni . Ebben az esetben elegendő a titkos kitevő bitjeinek felét visszaállítani .

Biztonság: Megfelelő késleltetést kell hozzáadni, hogy a gyors hatványozási algoritmus minden lépése meghatározott ideig tartson.

RSA hardver megvalósítási hiba támadás

Kezdeti feltételek:

Vegyünk egy olyan intelligens kártyát, amelynek mikroprocesszora egy beágyazott RSA privát kulccsal írja alá az üzeneteket. A kártya mikroprocesszora a kínai maradék tételt használja az aláírási folyamat felgyorsítására. Az ellenfél hibás működést próbál okozni a mikroprocesszor számításaiban.

Feladat: az ellenfél ki akarja számítani a modulo .

A kínai maradék tétel használata megnöveli a digitális aláírás létrehozásának sebességét.

Sőt, számítással , ahol , ahol aláírást kaphat , ahol Nyilvánvaló, hogy a számítások sokkal gyorsabbak, mint a modulo hatványozás .

Hagyja, hogy az ellenség cselekedetei kudarcot okozzanak, ami az aláírás egy bitjének hibáját eredményezi. Ekkor a vagy közül legalább az egyik helytelenül van kiszámítva. Tegyük fel, hogy a hibát a .

Ebben az esetben

de

Így az ellenfél megtalálhatja a dekompozíciót a GCD keresés eredményeként .

Védelem:

  • aláíráskor adjon hozzá véletlenszerű számot az üzenethez (például időt).
  • elküldés előtt ellenőrizze az aláírást.

Sebezhetőség az AMD processzorokban

2021-ben egy kutatócsoport, köztük a Grazi Műszaki Egyetem, a Georgiai Műszaki Intézet és a Lamarr Security Research non-profit kutatóközpont, felhasználta az SMT [4] sebezhetőségét a Zen , Zen 2 és Zen 3 architektúrájú AMD processzorokban , hogy " feltörni" az RSA -4096 titkosítási kulcsot [5] [6] .

Jegyzetek

  1. Yang S. Y. Az RSA kriptoanalízise. - M.-Izhevsk: Kutatóközpont "Szabályos és Kaotikus Dinamika", Izhevszki Számítógépes Kutatóintézet, 2011. - 312 p.
  2. RSA-768 faktorizációs bejelentés archiválva : 2014. április 13. a Wayback Machine -nél 
  3. RSA-768 faktorizáció archiválva : 2012. december 13. a Wayback Machine -nél 
  4. SQUIP: Az ütemező várólista versenyoldali PDF csatorna kihasználása
  5. Anton Shilov. Új sebezhetőség az összes AMD Zen CPU-t érinti: Lehet, hogy a szálakat le kell  tiltani . Tom's Hardware (2022. augusztus 11.). Letöltve: 2022. augusztus 12.
  6. Vlagyimir Fetisov. Kiderült, hogy az SMT technológia a Ryzen és az EPYC processzorokban lehetővé teszi a bizalmas adatok ellopását . 3DNews (2022. augusztus 11.). Letöltve: 2022. augusztus 12.