A Cramer – Shoup rendszer egy nyilvános kulcsú titkosítási algoritmus . Az első algoritmus, amely ellenállónak bizonyult az adaptívan választott rejtjelezett szövegen alapuló támadásokkal szemben . Ronald Kramer és Victor Shoup tervezte 1998-ban. Az algoritmus biztonsága a Diffie–Hellman diszkriminációs feltételezésen alapul . Ez az ElGamal séma kiterjesztése , de az ElGamal sémával ellentétben ez az algoritmus kezelhetetlen(A hacker nem tudja lecserélni a rejtjelezett szöveget egy másik rejtjelezett szövegre, amely az eredetihez kapcsolódó szöveggé lenne dekódolva, vagyis annak valamilyen funkciója lenne). Ezt a robusztusságot egy univerzális egyirányú hash-függvény és további számítások használatával érik el, ami az ElGamal-séma kétszeresének megfelelő titkosított szöveget eredményez.
Olyan kriptográfiai támadás, amelyben a kriptoanalizátor információkat gyűjt a rejtjelről úgy, hogy kitalálja a rejtjelszöveget, és egy ismeretlen kulccsal visszafejti. A rejtjelelemző többször is használhatja a visszafejtőt a visszafejtett rejtjelezett szöveg beszerzéséhez. A kapott adatok felhasználásával megpróbálhatja visszaállítani a titkos kulcsot a visszafejtéshez. A titkosított szöveges támadás lehet adaptív vagy nem adaptív.
Köztudott volt, hogy sok széles körben használt kriptorendszer ki van téve egy ilyen támadásnak, és sok éven át azt hitték, hogy a támadás nem praktikus, és csak elméleti jelentőséggel bír. A dolgok az 1990-es évek végén kezdtek megváltozni, különösen akkor, amikor Daniel Bleichenbacher egy gyakorlati rejtjelezett szöveg alapú támadást mutatott be az SSL -kiszolgálók ellen az RSA -titkosítás egy formájával .
Nem adaptív támadásnál a kriptoanalizátor nem használja fel a korábbi visszafejtések eredményeit, vagyis a titkosított szövegeket előre kiválasztja. Az ilyen támadásokat ebédidő támadásoknak (lunchtime vagy CCA1) nevezik.
Adaptív támadás esetén a kriptoanalizátor adaptív módon választ ki egy rejtjelezett szöveget, amely a korábbi dekódolások (CCA2) eredményétől függ.
Az adaptív támadásokkal szembeni ellenálló képesség a játék példáján látható:
A Diffie-Hellman diszkriminációs problémának több egyenértékű megfogalmazása létezik. Így néz ki az, amit használni fogunk.
Legyen egy sorrendi csoport , ahol egy nagy prímszám. Szintén - . És két disztribúció van:
A Diffie-Hellman problémát megoldó algoritmus egy valószínűségi algoritmus , amely hatékonyan képes megkülönböztetni a felsorolt két eloszlást. Vagyis annak az algoritmusnak, amely a két eloszlás egyikét veszi bemenetként, 0-t vagy 1-et kell visszaadnia, és szintén 0- ra kell törekednie .
A Diffie-Hellman diszkriminációs probléma nehéz, ha nem létezik ilyen polinomiális valószínűségi algoritmus.
Legyen egy sorrendi csoportunk , ahol egy nagy prímszám. Az üzenetek elemek . Használjuk az egyirányú hash függvények általános családját is, amelyek a hosszú bitláncokat elemekre képezik le , ahol — .
A kulcsgeneráló algoritmus a következőképpen működik:
Üzenet adott . A titkosítási algoritmus a következőképpen működik
A titkosított szöveg vétele és a privát kulcs használata után :
Ellenőrizzük a titkosítási séma helyességét (a titkosított üzenet visszafejtése ugyanazt az üzenetet adja). Figyelembe véve ezt és , van . Szintén és . Ezért a visszafejtési ellenőrzés sikeres, és megjelenik az eredeti üzenet .
A nem adaptív támadások (és csak azok) elleni biztonság érdekében a protokoll használata nélkül jelentősen leegyszerűsíthető . A titkosításnál a -t használjuk , a visszafejtésnél pedig azt ellenőrizzük .
Tegyük fel, hogy van egy csoportunk . Ennek megfelelően - .
KulcsgenerálásA kulcsgeneráló algoritmus a következőképpen működik:
Üzenet adott . A titkosítási algoritmus a következőképpen működik
A titkosított szöveg vétele és a privát kulcs használata után :
A Cramer-Shope kriptorendszer ellenáll az adaptívan választott rejtjelezett szövegen alapuló támadásoknak a következő feltételek mellett:
Bizonyítás : A tétel bizonyításához feltételezzük, hogy van egy ellenfél, aki meg tudja törni a protokollt, és megmutatjuk, hogy ha a hash függvény feltétele teljesül, akkor ellentmondást kapunk a Diffie-Hellman probléma feltételével. A valószínűségi algoritmusunk bemenetét a vagy eloszlásból adjuk meg . Felületes szinten a konstrukció a következőképpen fog kinézni: építünk egy szimulátort, amely egy közös disztribúciót fog készíteni, amely a támadássorozatot követően a cracker által a kriptorendszerről alkotott vízióból és a generáló orákulum által generált rejtett b bitből áll (nem tartalmazza a cracker látomása, rejtve előtte). A bizonyítás ötlete: megmutatjuk, hogy ha a bemenet eloszlása , akkor a szimuláció sikeres lesz, és az ellenfélnek nem triviális előnye lesz a b véletlenszerű bit kitalálásában. Megmutatjuk azt is, hogy ha a bemenet a -ból származó eloszlás , akkor az ellenség látása nem függ és -től, és ezért az ellenség fölénye elhanyagolható lesz (kisebb, mint az inverz polinom). Innen megszerkeszthetjük a disztribúciós megkülönböztetőt és : egyszerre futtatjuk a kriptorendszer-szimulátort (prints ) és a crackert (prints ), és kinyomtatja , ha és nem.
A kulcsgenerációs szimulációs séma a következő:
Látható, hogy a szimulátor kulcs generálása eltér a protokollban lévő kulcs generálásától (ott ).
Dekódolási szimuláció . Ugyanúgy jár el, mint a jegyzőkönyvben, azzal a különbséggel, hogy
Titkosítási szimuláció . Adott bemenettel a szimulátor kiválaszt egy véletlenszerű értéket , kiszámítja és kiadja . Most a következő két lemmából következik a tétel bizonyítása.
1. lemma. Ha a szimulátor terjesztést kap , akkor a támadó kriptorendszerről alkotott elképzelésének és a rejtett bitnek a közös eloszlása statisztikailag megkülönböztethetetlen a kriptorendszer elleni valós támadástól.
2. lemma. Ha a szimulátor eloszlást kap -ból , akkor a rejtett bit eloszlása nem függ a cracker látásmódjának eloszlásától.