A rácsos kriptográfia egy megközelítés aszimmetrikus titkosítási algoritmusok felépítésére rácselméleti problémákkal , azaz optimalizálási problémákkal egy halmazon meghatározott diszkrét additív alcsoportokon .
A posztkvantum kriptográfia más módszereivel együtt ígéretesnek tekinthető, mivel a kvantumszámítógép képes feltörni a széles körben használt aszimmetrikus titkosítási rendszereket, amelyek kétféle számelméleti probléma: egészszám-faktorizációs és diszkrét logaritmus-problémák alapján történnek. A rácsokra épített feltörő algoritmusok bonyolultsága rendkívül magas, a legjobb algoritmusok ezt a problémát exponenciális idő alatt nehezen tudják megoldani. A 2010-es évek közepétől nem ismert olyan kvantum algoritmus, amely felülmúlná a hagyományos számítógépeket.
1995-ben Peter Shor egy polinomiális algoritmust mutatott be nyilvános kulcsú kriptográfiai rendszerek kvantumszámítógép segítségével történő feltörésére, ezáltal meghatározva e rendszerek létezésének időtartamát a megfelelő méretű kvantumszámítógépek megjelenése előtt.
1996-ban Lov Grover bemutatott egy általános adatbázis-keresési módszert, amely képes visszafejteni a szimmetrikus titkosítási algoritmusokat, ami egyenértékű a rejtjelkulcs felezésével.
2001-ben egy IBM csapat bemutatta a Shor-féle faktorizációs algoritmus végrehajtását a 15-ös számra. A számot 3-ra és 5-re faktorálták egy 7 qubites kvantumszámítógép segítségével , amely 18 10 molekulából épült fel, amely öt fluoratomból és két szénatomból állt. rádiójelekkel rögzített és mágneses magrezonancia módszerekkel leolvasott információval [1] .
Az 1990-es évek második felétől kezdődően szükségessé vált a kvantumszámítógépek kripto-rezisztens problémáinak keresése a titkosítás kvantum utáni korszakára , mivel az egyik megközelítés a rácsok alkalmazását javasolták a valós vektor diszkrét alcsoportjaiban. tér, amelynek lineáris fesztávja egybeesik vele:
A legrövidebb vektor ( SVP , eng. Shortest Vector Problem ) megtalálásának feladata, hogy egy adott rácsbázisban egy nem nulla vektort találjunk egy bizonyos normálhoz képest [2] .
Egy (körülbelül) ideális legrövidebb vektor probléma megtalálásának problémája ( ISVP , angol (approximate) ideális legrövidebb vektor probléma ) nem tekinthető NP-nehéznek. Nem ismertek azonban olyan redukciós módszeren alapuló rácsok, amelyek ideális struktúrákon lényegesen hatékonyabbak lennének, mint az általánosakon [3] .
További probléma a (közelítőleg) legrövidebb független vektorok probléma ( SIVP , angol (approximate) legrövidebb független vektorok probléma ) megtalálása, amelyben a rács alapja adott , és lineárisan független vektorokat kell találni [4] .
A legközelebbi vektor megtalálásának problémája ( CVP , eng. Closest Vector Problem ) az, hogy egy vektort találjunk egy rácsban egy adott bázis szerint, és egy olyan vektort, amely nem tartozik a rácshoz, miközben a lehető leghasonlóbb az adotthoz. vektor.
Mindezek a problémák polinomiális időben megoldhatók a jól ismert LLL algoritmus segítségével, amelyet Arjen Lenstra , Hendrik Lenstra és Laszlo Lovas [5] talált ki 1982-ben .
Adott bázison , n - dimenziós egész koordinátákkal, egy rácsában , ahol , az LLL algoritmus rövidebb (mérési[ pontosítás ] ) ortogonális alap az idő függvényében:
,ahol a vektor maximális hossza ebben a térben.
GGH - CVP-n alapuló kriptorendszer, mégpedig egy egyirányú funkción, titkos bejárattal a rács redukciójának összetettsége alapján. 1997-ben jelent meg. A bázis ismeretében az adott ponthoz közeli vektort generálhatunk, de ennek a vektornak a ismeretében szükségünk van az eredeti bázisra a kiindulópont megtalálásához. Az algoritmust 1999-ben tesztelték.
A GGH megvalósításaA GGH egy nyilvános kulcsból és egy privát kulcsból áll.
A titkos kulcs a rács és az unimoduláris mátrix alapja .
A nyilvános kulcs valamilyen alap a rácsban a formában .
Egyesek számára az üzenettér egy vektorból áll , ahol .
TitkosításAdott üzenet , torzítás , nyilvános kulcs :
Mátrix formában:
.egész értékekből áll, egy rácspontból, és v is egy rácspont. Aztán a rejtjelezett szöveg:
DekódolásA visszafejtéshez ki kell számítani:
Közelítési okokból egy alkatrész eltávolítva. Üzenet:
PéldaKiválasztunk egy rácsot , amelynek alapja :
ésahol
ésEnnek eredményeként:
Legyen az üzenet és hibavektor . Aztán a rejtjelezett szöveg:
.A visszafejtéshez ki kell számolnia:
.A kerekítés megadja , visszaállítja az üzenetet:
.Az NTRUEncrypt egy SVP-alapú titkosítási rendszer, amely az RSA és az ECC alternatívája. A számítás polinomiális gyűrűt használ .
A GGH aláírási séma, amelyet először 1995-ben javasoltak és 1997-ben tett közzé Goldrich, a legközelebbi vektor megtalálásának nehézségén alapul. Az ötlet az volt, hogy olyan rácsokat használjunk, amelyeknél a "rossz" bázis, a vektorok hosszúak és majdnem párhuzamosak, nyitottak, a "jó" bázis pedig rövid és csaknem ortogonális vektorokkal zárva van. Módszerük szerint az üzenetet egy rács által átívelt térbe kell hashelni, és ebben a térben az adott hash aláírása a rács legközelebbi csomópontja. A rendszernek nem volt hivatalos biztonsági bizonyítéka, és az alapverziót 1999-ben Nguyen feltörte . 2006-ban a módosított változatot Nguyen és Regev ismét feltörte .
Az NTRUSign a GGH aláírás speciális, hatékonyabb változata, kisebb kulccsal és aláírásmérettel. Csak néhány polinomgyűrűhöz társított összes rácshalmaz egy részhalmazának rácsait használja. Az NTRUSignt IEEE P1363.1 szabványként javasolták.