EPOC (titkosítási séma)

Az EPOC ( Efficient Probabilistic Public Key Encryption ; hatékony valószínűségi nyilvános kulcsú titkosítás) egy valószínűségi nyilvános kulcsú titkosítási séma . 

Az EPOC-t 1998 novemberében fejlesztette ki T. Okamoto, S. Uchiyama és E. Fujisaki, az NTT Laboratories japán munkatársa . Véletlenszerű orákulummodellre épül , amelyben egy nyilvános kulcsú titkosítási funkciót egy (valóban) véletlenszerű hash függvény segítségével biztonságos titkosítási sémává alakítanak át ; az eredményül kapott sémát úgy tervezték, hogy szemantikailag biztonságos legyen a választott rejtjelezett szövegen alapuló támadásokkal szemben [1] .

Sémák típusai

Az EPOC titkosítási függvény egy OU (Okamoto-Uchiyama) függvény, amelyet ugyanolyan nehéz invertálni, mint egy összetett egész nyilvános kulcsot. Az EPOC [2] három változata létezik :

Tulajdonságok [1] [5]

Az EPOC a következő tulajdonságokkal rendelkezik:

  1. Az EPOC-1 szemantikailag biztonságos , ellenáll a kiválasztott titkosított szöveges támadásoknak ( IND-CCA2 vagy NM-CCA2 ) a véletlenszerű orákulummodellben [6] a p-alcsoport feltételezése mellett, amely számításilag összehasonlítható a kvadratikus maradék és a magasabb fokú maradék feltevésekkel.
  2. Az egyszeri paddal ellátott EPOC-2 szemantikailag biztonságos , ellenáll a kiválasztott titkosított szöveges támadásoknak ( IND-CCA2 vagy NM-CCA2 ) véletlenszerű orákulummodellben, faktorizációs feltételezés mellett.
  3. A szimmetrikus titkosítású EPOC-2 szemantikailag biztonságos , ellenáll a kiválasztott rejtjelezett szövegen ( IND-CCA2 vagy NM-CCA2 ) alapuló támadásoknak a véletlenszerű orákulummodellben a faktorizációs feltételezés mellett, ha az alapul szolgáló szimmetrikus titkosítás biztonságos a passzív támadásokkal szemben (a támadások megtekintése, ahol a kriptoanalitikus csak a továbbított rejtjelezett szövegeket láthatja, és a nyilvános kulcs segítségével létrehozhatja a sajátját .).

Háttér

Diffie és Hellman 1976-ban javasolta a nyilvános kulcsú kriptorendszer (vagy egyirányú funkció ) koncepcióját. Bár sok kriptográfus és matematikus végzett kiterjedt kutatást a nyilvános kulcsú kriptorendszerek koncepciójának megvalósítására több mint 20 éve, nagyon kevés konkrét, biztonságos módszert találtak [7] .

A módszerek egyik tipikus osztálya az RSA-Rabin , amely egy polinomiális algoritmus kombinációja a maradékok gyűrűjében lévő polinom gyökerének megtalálására egy összetett szám modulo ( véges mezőben ) és egy megoldhatatlan faktorizációs probléma ( számítási szempontból) kombinációja. komplexitás ). A módszerek másik tipikus osztálya a Diffie-Hellman, ElGamal módszer , amely a véges Abel-csoport logaritmusának kommutatív tulajdonságának és a megoldhatatlan diszkrét logaritmus -probléma kombinációja [8] .

Az egyirányú függvény megvalósítására szolgáló RSA-Rabin és Diffie-Hellman-ElGamal módszerek közül a Rabin-függvényen és annak változatain, például annak elliptikus görbéjén és a Williams-változatokon kívül egyetlen más funkció sem bizonyult olyan robusztusnak, mint a primitív. problémák [9] (pl. faktorizálás és diszkrét logaritmus problémák ).

Okamoto és Uchiyama egy OU (Okamoto-Uchiyama) nevű egyirányú függvényt javasoltak , amely praktikus, bizonyíthatóan biztonságos, és van még néhány érdekes tulajdonsága [10] .

OU függvény tulajdonságai [11]

  1. Valószínűségi függvény: Ez egy egyirányú, valószínűségi függvény . Legyen egy egyszerű szöveges titkosított szövegvéletlenszerűséggel.
  2. Egy függvény egyoldalúsága: Egy függvény invertálása ugyanolyan nehéznek bizonyult, mint a faktorizálás.
  3. Szemantikai biztonság: Egy függvény szemantikailag biztonságos , ha a következő feltevés igaz ( a p-alcsoport feltételezése ):ésszámításilag megkülönböztethetetlen, aholésegységesen és egymástól függetlenül választottak. Ez a rejtjelezett szöveg megkülönböztethetetlenségi feltételezéseaz egyező egyszerű szövegű támadásoknál számításilag összehasonlítható egy négyzetes és egy magasabb fokú maradék megtalálásával.
  4. Hatékonyság: Nyilvános kulcsú kriptorendszer környezetben , ahol a nyilvános kulcsú titkosítási rendszert csak a titkos kulcsú kriptorendszer titkos kulcsának (például 112 és 128 bit hosszúságú) terjesztésére használják (például Triple DES és IDEA ), a titkosítást és a visszafejtést. az OU függvény sebessége összehasonlítható (többször lassabb) az elliptikus görbe kriptorendszerek sebességével .
  5. Homomorf titkosítási tulajdonság: A függvény homomorf titkosítási tulajdonsággal rendelkezik: (Ez a tulajdonság e-szavazáshoz és más titkosítási protokollokhoz használatos ).
  6. Rejtjelszöveg megkülönböztethetetlensége : Még az is, aki nem ismeri a titkos kulcsot, lecserélheti a,, rejtjelezett szöveget egy másik rejtjelezett szövegre,, miközben megtartja a nyílt szöveget m (azazésésközötti kapcsolatelrejthető (vagyismegkülönböztethetetlen). Ez a tulajdonság hasznos az adatvédelmi protokollokhoz.)

A titkosítási séma biztonságának bizonyítéka

A nyilvános kulcsú titkosítás egyik legfontosabb tulajdonsága a bizonyítható biztonság . A nyilvános kulcsú titkosítás legerősebb biztonsági koncepciója a támadások elleni szemantikai védelem egy kiválasztott rejtjelezett szöveg alapján .

Az adaptívan választott rejtjelezett szövegen ( IND -CCA2 ) alapuló szemantikus támadásvédelem egyenértékűnek (vagy elegendőnek) bizonyult a legerősebb biztonsági koncepcióval ( NM -CCA2 ) [12] [13] .

Fujisaki és Okamoto két gyakori és hatékony intézkedést valósított meg annak érdekében, hogy egy valószínűségi egyirányú függvényt biztonságos IND-CCA2 áramkörré alakítsanak át egy véletlenszerű orákulummodellben [ 6] . Az egyik egy szemantikailag biztonságos ( IND-CPA ) egyirányú függvény átalakítása biztonságos IND-CCA2 sémává . Mások, az egyirányú funkciótól (OW-CPA) és a szimmetrikus kulcsú titkosítástól (beleértve az egyszeri betétet is) a biztonságos IND-CCA2 sémáig . Ez utóbbi transzformáció egy szimmetrikus kulcsú titkosítási sémával kombinálva garantálhatja a nyilvános kulcsú titkosítási rendszer teljes biztonságát [14] .

EPOC titkosítási séma

Áttekintés

Az EPOC nyilvános kulcsú titkosítási séma , amelyet a triplet határoz meg , ahol a kulcsgenerálási művelet, a titkosítási művelet és a visszafejtési művelet.

EPOC sémák: EPOC-1 és EPOC-2.

Az EPOC-1 kulcselosztásra, míg az EPOC-2 kulcselosztásra és titkosított adatátvitelre, valamint hosszabb kulcselosztásra szolgál, korlátozott nyilvános kulcsmérettel.

Kulcstípusok

Kétféle kulcs létezik: OU nyilvános kulcs és OU privát kulcs, mindkettőt az EPOC-1, EPOC-2 kriptográfiai titkosítási sémák használják [15] .

OU nyilvános kulcs [15]

Egy szervezeti egység nyilvános kulcsa egy halmaz, amelynek összetevői a következő értékekkel rendelkeznek:

  •  egy nem negatív egész szám
  •  egy nem negatív egész szám
  •  egy nem negatív egész szám
  •  — titkos paraméter, nem negatív egész szám

A gyakorlatban a nyilvános kulcsú OU-ban a modul formátumot vesz fel , ahol és  két különböző páratlan prímszám, és a és bithosszúsága egyenlő . -elemben úgy, hogy a sorrend a következő , ahol . -elem a .

OU privát kulcs [15]

Egy szervezeti egység privát kulcsa egy halmaz, amelynek összetevői a következő értékekkel rendelkeznek:

  •  — első tényező, nem negatív egész szám
  •  — második tényező, nem negatív egész szám
  •  — titkos paraméter, nem negatív egész szám
  •  — érték , ahol , nem negatív egész szám

EPOC-1 [14]

Kulcs létrehozása: G

A bemenet és a kimenet a következő:

[Input]: A titkos paraméter ( ) egy pozitív egész szám.

[Output]: Nyilvános kulcs és privát kulcs párja .

A bejelentkezési művelet így néz ki:

  • Válasszunk ki két prímszámot ( ) és számítsuk ki . Itt és olyan, hogy és  prímszámok, és és olyan, hogy .
  • Véletlenszerűen választunk úgy, hogy a sorrend egyenlő legyen (Megjegyzendő, hogy gcd( , ) és gcd( , ) ).
  • Véletlenszerűen és a -tól függetlenül választunk . Számoljunk .
  • Telepítse . Telepítse és olyan, hogy .

Megjegyzés: egy további paraméter, amely növeli a visszafejtés hatékonyságát, és a és -ból számítható . amikor ( -konstans ). a rendszer javíthatja, és sok felhasználó megoszthatja.

Titkosítás: E

A bemenet és a kimenet a következő:

[Input]: Egyszerű szöveg nyilvános kulccsal együtt .

[Kimenet]: Rejtjelezett szöveg C.

A beviteli művelet így néz ki:

  • Válasszunk és számoljunk . Itt az összefűzést és a .
  • Számítsd ki :

Dekódolás: D

A bemenet és a kimenet a következő:

[Input]: Titkosított szöveg a nyilvános kulccsal és a privát kulccsal együtt .

[Output]: Egyszerű szöveg vagy null karakterlánc.

A művelet a bemenetekkel , és így néz ki:

  • Számítsuk ki , és hol .
  • Ellenőrizzük, hogy igaz-e a következő egyenlet: .
  • Ha a kifejezés igaz, akkor dekódolt egyszerű szövegként adja ki a kimenetet, ahol a legjelentősebb biteket jelöli . Ellenkező esetben null karakterláncot adunk ki.

EPOC-2 [16] [14]

Kulcs létrehozása: G

A bemenet és a kimenet a következő:

[Input]: Titkos paraméter ( ).

[Output]: Nyilvános kulcs és privát kulcs párja .

A bejelentkezési művelet így néz ki:

  • Válasszunk ki két prímszámot ( ) és számítsuk ki . Itt és olyan, hogy és  prímszámok, és és olyan, hogy .
  • Véletlenszerűen választunk úgy, hogy a sorrend egyenlő legyen .
  • Véletlenszerűen és a -tól függetlenül választunk . Számoljunk .
  • Telepítse . Telepítse és olyan, hogy .
  • Kivonatfüggvényeket és . _

Megjegyzés: egy további paraméter, amely növeli a visszafejtés hatékonyságát, és a és -ból számítható . amikor ( -konstans ). és a rendszer javíthatja, és sok felhasználó megoszthatja.

Titkosítás: E

Legyen  egy szimmetrikus kulccsal rendelkező titkosító és visszafejtő algoritmuspár , ahol a hossza . A titkosítási algoritmus kulcsot és egyszerű szöveget vesz fel, és titkosított szöveget ad vissza . A visszafejtő algoritmus felveszi a kulcsot és a titkosított szöveget , és visszaadja az egyszerű szöveget .

A bemenet és a kimenet a következő:

[Input]: Egyszerű szöveg , nyilvános kulccsal és .

[Kimenet]: Titkosított szöveg .

A művelet a bemenetekkel , és így néz ki:

  • Válasszunk és számoljunk .
  • ;

Megjegyzés: Egy tipikus megvalósítás  az egyszeri pad. Azaz , és , ahol a bitenkénti XOR műveletet jelöli .

Dekódolás: D

A bemenet és a kimenet a következő:

[Input]: A titkosított szöveg a nyilvános kulccsal , titkos kulccsal és .

[Output]: Egyszerű szöveg vagy null karakterlánc.

A művelet a , és bemenetekkel a következő:

  • Számítsuk ki , és hol .
  • Kiszámít
  • Ellenőrizzük, hogy igaz-e a következő egyenlet: .
  • Ha a kifejezés igaz, akkor a kimenet dekódolt egyszerű szövegként. Ellenkező esetben null karakterláncot adunk ki.

Jegyzetek

  1. 1 2 T. Okamoto; S. Uchiyama, 1998 , p. egy.
  2. Katja Schmidt-Szamoa, 2006 .
  3. T. Okamoto; S. Uchiyama, 1998 , p. 2-3.
  4. Prof. Jean-Jacques Quisquater, Math RiZK, 2002 , p. 3-4.
  5. Prof. Jean-Jacques Quisquater, Math RiZK, 2002 , p. 8-11.
  6. 1 2 E. Brickell, D. Pointcheval, S. Vaudenay, M. Yung, 2000 .
  7. W. DIFFIE ÉS ME HELLMAN, 1976 .
  8. T. Elgamal, 1985 .
  9. T. Okamoto; S. Uchiyama, 1998 , p. 5.
  10. T. Okamoto; S. Uchiyama, 1998 , p. négy.
  11. T. Okamoto; S. Uchiyama, 1998 , p. 3-4.
  12. Maxwell Krohn, 1999 , p. 53.
  13. Bellare, M., Desai, A., Pointcheval, D., és Rogaway, P., 1998 .
  14. 1 2 3 T. Okamoto; S. Uchiyama, 1998 , p. 5.
  15. 1 2 3 NTT Corporation, 2001 , p. 7.
  16. NTT Corporation, 2001 , p. 9-10.

Irodalom