NTRUEncrypt

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 17. prosince 2015; kontroly vyžadují 20 úprav .

NTRUEncrypt ( zkratka pro Nth-degree TRUncated polynomial ring nebo Number Theorists aRe Us) je kryptografický systém s veřejným klíčem dříve nazývaný NTRU .

Kryptosystém NTRUEncrypt, založený na mřížkovém kryptosystému , byl vytvořen jako alternativa k RSA a Elliptic Curve Cryptosystems (ECC) . Stabilita algoritmu je zajištěna obtížným nalezením nejkratšího mřížkového vektoru , který je odolnější vůči útokům prováděným na kvantových počítačích . Na rozdíl od svých konkurentů RSA , ECC , Elgamal používá algoritmus operace na kruhu zkrácených polynomů stupně nepřesahujícího :

Takový polynom může být také reprezentován vektorem

Jako každý mladý algoritmus je NTRUEncrypt špatně pochopený, ačkoli byl oficiálně schválen pro použití ve financích akreditovaným výborem pro standardy X9 . [jeden]

Existuje open source implementace NTRUEncrypt . [2]

Historie

NTRUEncrypt, původně nazývaný NTRU, byl vynalezen v roce 1996 a představen světu na konferencích CRYPTO , RSA Conference , Eurocrypt . Důvodem, který posloužil jako počátek vývoje algoritmu v roce 1994 , byl článek [3] , který hovořil o snadnosti prolomení existujících algoritmů na kvantových počítačích, k čemuž, jak čas ukázal, není daleko [4] . Ve stejném roce matematici Jeffrey Hoffstein, Jill Pipher a Joseph H. Silverman, kteří systém vyvinuli společně se zakladatelem NTRU Cryptosystems, Inc. (později přejmenován na SecurityInnovation), Daniel Lieman patentoval jejich vynález. [5]

Okruhy zkrácených polynomů

NTRU pracuje maximálně s polynomy stupně

kde koeficienty  jsou celá čísla. S ohledem na operace sčítání a násobení modulo a polynom , takové polynomy tvoří kruh R , nazývaný kruh zkrácených polynomů , který je izomorfní s podílovým kruhem

NTRU používá zkrácený polynomický kruh R ve spojení s modulo koprimými čísly p a q ke snížení koeficientů polynomů.

Algoritmus také používá inverzní polynomy v kruhu zkrácených polynomů. Je třeba poznamenat, že ne každý polynom má inverzní, ale pokud inverzní polynom existuje, je snadné jej vypočítat. [6] [7]

Jako příklad budou vybrány následující možnosti:

Označení parametrů N q p
Hodnoty parametrů jedenáct 32 3

Generování veřejného klíče

K odeslání zprávy od Alice Bobovi je potřeba veřejný a soukromý klíč. Bob i Alice znají veřejný klíč, pouze Bob zná soukromý klíč, který používá ke generování veřejného klíče. K tomu si Bob vybere dva „malé“ polynomy f g z R . „Malost“ polynomů je implikována v tom smyslu, že je malá vzhledem k libovolnému polynomu modulo q : v libovolném polynomu musí být koeficienty přibližně rovnoměrně rozložené modulo q , zatímco v malém polynomu jsou mnohem menší než q . Malost polynomů se určuje pomocí čísel df a dg :

Důvod, proč jsou polynomy zvoleny tímto způsobem, je ten, že f bude mít pravděpodobně inverzi, ale g  rozhodně ne ( g (1) = 0 a prvek nula nemá inverzi).

Bob musí tyto polynomy udržet v tajnosti. Dále Bob vypočítá inverzní polynomy a , tedy takové, že:

a .

Jestliže f nemá inverzní polynom, pak Bob zvolí jiný polynom f .

Tajný klíč je pár a veřejný klíč h se vypočítá podle vzorce:

Příklad

Vezměme například df =4 a dg =3. Pak si jako polynomy můžeme vybrat

Dále se pro polynom f hledají inverzní polynomy modulo p =3 a q =32:

Posledním krokem je výpočet samotného veřejného klíče h :

Šifrování

Nyní, když má Alice veřejný klíč, může poslat zašifrovanou zprávu Bobovi. Chcete-li to provést, musíte zprávu reprezentovat jako polynom m s koeficienty modulo p zvolenými z rozsahu (- p /2, p /2]. To znamená, že m je „malý“ polynom modulo q . Dále Alice potřebuje zvolte jiný „malý“ polynom r , který se nazývá „oslňující“, definovaný číslem dr :

Pomocí těchto polynomů se zašifrovaná zpráva získá podle vzorce:

V tomto případě každý, kdo zná (nebo umí vypočítat) oslepující polynom r , bude schopen přečíst zprávu m .

Příklad

Předpokládejme, že Alice chce poslat zprávu reprezentovanou jako polynom

a zvolili "slepý" polynom, pro který dr = 3:

Šifrovaný text e připravený k odeslání Bobovi pak bude:

Dešifrování

Nyní, když Bob obdržel zašifrovanou zprávu e , ji může dešifrovat pomocí svého soukromého klíče. Nejprve získá nový střední polynom:

Pokud napíšeme šifrový text, dostaneme řetězec:

a nakonec:

Poté, co Bob vypočítal polynom a modulo q, musí vybrat jeho koeficienty z rozsahu (- q /2, q /2] a poté vypočítat polynom b získaný z polynomu a redukcí modulo p:

od .

Nyní může Bob pomocí druhé poloviny tajného klíče a výsledného polynomu b dešifrovat zprávu:

Je snadné to vidět

Výsledný polynom c je skutečně původní zprávou m .

Příklad : Bob obdržel zašifrovanou zprávu e od Alice

Pomocí tajného klíče f získá Bob polynom a

s koeficienty náležejícími do intervalu (- q /2, q /2]. Dále převedeme polynom a na polynom b , snížíme koeficienty modulo p.

Posledním krokem je vynásobení polynomu b druhou polovinou soukromého klíče

Což je původní zpráva, kterou Alice vysílala.

Odolnost proti útokům

Úplný výčet

První z možných útoků je útok hrubou silou . Zde je možných několik variant výčtu: buď třídit přes všechny a kontrolovat malou hodnotu koeficientů výsledků , které by podle představy měly být malé, nebo třídit přes všechny , také kontrolovat malost koeficientů výsledku . V praxi je prostor menší než prostor , takže trvanlivost je určena prostorem . A trvání individuální zprávy je určeno prostorem .

Setkání uprostřed

Existuje optimálnější varianta výčtového setkání uprostřed , kterou navrhl Andrew Odlyzhko . Tato metoda snižuje počet možností na druhou odmocninu:

Zabezpečení soukromého klíče = = ,

A vytrvalost jediné zprávy = = .

Útok typu meet-in-the-middle vymění čas potřebný pro výpočet za paměť potřebnou k uložení dočasných výsledků. Pokud tedy chceme zajistit stabilitu systému , musíme zvolit velikost klíče .

Multiple message attack

Poměrně závažný útok na jednu zprávu, kterému se lze vyhnout dodržováním jednoduchého pravidla – neposílat stejnou zprávu vícekrát. Podstatou útoku je nalezení části koeficientů oslepujícího polynomu r . A zbývající koeficienty lze jednoduše roztřídit, a tím zprávu přečíst. Protože stejná zašifrovaná zpráva s různými oslepujícími polynomy je , kde i=1, … n. Můžete vyhodnotit výraz , který se přesně rovná . Pro dostatečně velký počet přenesených zpráv (řekněme pro n = 4, 5, 6) je možné na základě malých koeficientů obnovit většinu oslepujícího polynomu .

Útok založený na mřížce

Uvažujme mřížku generovanou řádky matice 2 N × 2 N s determinantem , která se skládá ze čtyř bloků o velikosti N × N :

Protože veřejný klíč je , pak tedy tato mřížka obsahuje vektor o velikosti 2 N , který obsahuje nejprve koeficienty vektoru f násobené koeficientem , potom koeficienty vektoru g . Úkol najít takový vektor, pro velké N a správně zvolené parametry, je považován za obtížně řešitelný.

Zvolený útok šifrovaného textu

Zvolený útok pomocí šifrovaného textu je nejnebezpečnějším útokem. Navrhli to Éliane Jaulmes a Antoine Joux [8] v roce 2000 na konferenci CRYPTO. Podstatou tohoto útoku je vybrat takový polynom a(x) tak, aby . Zároveň Eva neinteraguje ani s Bobem, ani s Alicí.

Vezmeme-li šifrový text , kde , dostaneme polynom . Protože koeficienty polynomů f a g nabývají hodnot „0“, „1“ a „-1“, budou koeficienty polynomu a patřit do množiny {-2py , -py , 0, py, 2py}. Je-li py zvoleno tak, že , pak při zmenšení modulu polynomu a(x) budou dány pouze koeficienty rovné -2py nebo 2py . Nyní nechť je i -tý koeficient roven 2py , pak polynom a(x) po modulo redukci zapíšeme jako:

,

a polynom b(x) :

,

konečně spočítat:

.

Nyní, pokud vezmeme v úvahu všechna možná i , pak místo individuálního můžeme sestavit polynom K a dešifrovaná zpráva bude mít tvar:

,

nebo tajný klíč:

,

Pravděpodobnost nalezení klíčových komponent tímto způsobem je asi 0,1 ... 0,3 pro klíč o velikosti 100. U velkých klíčů (~500) je tato pravděpodobnost velmi malá. Použitím této metody dostatečným počtem opakování můžete klíč zcela obnovit.

K ochraně proti tomuto typu útoku se používá pokročilá metoda šifrování NTRU-FORST . Pro šifrování se používá oslepující polynom , kde H  je kryptograficky silná hashovací funkce a R  je náhodná sada bitů . Po obdržení zprávy ji Bob dešifruje. Dále Bob zašifruje nově dešifrovanou zprávu stejným způsobem jako Alice. Poté jej porovná s přijatým. Pokud jsou zprávy totožné, Bob zprávu přijme, jinak ji odmítne.

Odolnost a výkonnostní parametry

Navzdory skutečnosti, že existují rychlé algoritmy pro nalezení inverzního polynomu, vývojáři navrhli pro komerční použití jako tajný klíč f :

,

kde F  je malý polynom. Takto zvolený klíč má následující výhody:

Jedna ze studií archivovaná 6. října 2016 na Wayback Machine ukázala, že NTRU je o 4 řády rychlejší než RSA a o 3 řády rychlejší než ECC .

Jak již bylo zmíněno, vývojáři, aby byla zajištěna vysoká stabilita algoritmu, doporučují používat pouze doporučené parametry uvedené v tabulce:

Doporučené parametry

Označení N q p df dg Dr Zaručená životnost
NTRU167:3 167 128 3 61 dvacet osmnáct Střední trvanlivost
NTRU251:3 251 128 3 padesáti 24 16 Standardní úroveň odporu
NTRU503:3 503 256 3 216 72 55 Nejvyšší úroveň odolnosti
NTRU167:2 167 127 2 45 35 osmnáct Střední trvanlivost
NTRU251:2 251 127 2 35 35 22 Standardní úroveň odporu
NTRU503:2 503 253 2 155 100 65 Nejvyšší úroveň odolnosti

Poznámky

  1. NTRUEncrypt společnosti Security Innovation přijat jako standard X9 pro ochranu dat . Získáno 15. března 2022. Archivováno z originálu 13. srpna 2016.
  2. NTRUEncrypt a NTRUSign v Javě . Získáno 1. listopadu 2011. Archivováno z originálu 19. listopadu 2011.
  3. Algoritmy pro kvantové výpočty: diskrétní logaritmy a faktoring (downlink) . Získáno 30. října 2011. Archivováno z originálu 18. června 2010. 
  4. NIST demonstruje „univerzální“ programovatelný kvantový procesor . Získáno 30. října 2011. Archivováno z originálu dne 30. listopadu 2011.
  5. NTRU Public Key Algorithms IP Assurance Statement for 802.15.3 . Získáno 30. října 2011. Archivováno z originálu 9. dubna 2016.
  6. JH Silverman, Téměř inverzní a rychlé vytváření klíčů NTRU Archivováno 24. března 2012 na Wayback Machine , technická zpráva NTRU Cryptosystems #014.
  7. JH Silverman, Invertibility in Truncated Polynomial Rings Archivováno 14. května 2012 na Wayback Machine , NTRU Cryptosystems Technical Report #009.
  8. Jaulmes É., Joux A. Útok vybraného šifrovaného textu proti NTRU //Výroční mezinárodní konference o kryptologii. - Springer, Berlín, Heidelberg, 2000. - S. 20-35.

Odkazy