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.
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é.
Nézzünk meg néhány, az RSA algoritmussal való visszaéléshez kapcsolódó támadást.
A következő további korlátozás vonatkozik a véletlen prímszámokra :
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 .
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.
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 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
.
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ékValó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.
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ékValó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ó.
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állhatAz 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 .
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ő.
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:
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.
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:
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] .