Az ACE ( Advanced Cryptographic Engine ) olyan szoftvereszközök készlete, amelyek titkosítást valósítanak meg nyilvános kulcsú titkosítási módban, valamint digitális aláírási módban. Ezeknek a módoknak a megfelelő nevei "ACE Encrypt" és "ACE Sign". Az áramkörök a Cramer-Shope áramkörök megvalósításai. A végrehajtott változtatások célja a legjobb egyensúly elérése a teljes titkosítási rendszer teljesítménye és biztonsága között.
Minden ACE-ben írt algoritmus Victor Shoup és Ronald Cramer által kifejlesztett algoritmusokon alapul . Az algoritmusok teljes specifikációját Victor Shoup írta. Az algoritmusokat Thomas Schweinberger és Mehdi Nassehi valósította meg, és Victor Shope tartja karban és fejleszti. Thomas Schweinberg közreműködött az ACE specifikációs dokumentumban, és megírta a felhasználói kézikönyvet is.
Ronald Kramer jelenleg a dániai Aarhusi Egyetemen dolgozik . Részt vett az ACE Encrypttel kapcsolatos munkában a svájci zürichi ETH - n .
Maddy Nassey és Thomas Schweinberger az ACE projekten dolgoztak a svájci zürichi IBM Research Labban, de most befejezték ott tartózkodásukat.
Victor Shoup a svájci zürichi IBM Research Labban dolgozik.
A titkosítási séma és a digitális aláírási séma biztonságának bizonyítása az ACE-ben ésszerű és természetes feltételezések alapján történik. A négy fő feltételezés a következő:
Adjuk meg a cikkben használt jelölések és kifejezések definícióit.
egész számok halmaza. az együtthatós egydimenziós polinomok halmaza egy véges mezőben , amelynek mezőelemeinek száma - 2. egy egész szám , amelyre egész és . olyan polinom -val , hogy at .
- különböző vonalak halmaza. az összes lehetséges n hosszúságú karakterlánc halmaza.
For — a karakterlánc hossza . A null karakterlánc hosszának jelölése .
A For a karakterlánc-összefűzés és a .
- sok bit.
Tekintsük az űrlap halmazait . Egy ilyen A halmazhoz definiáljuk a nulla elemet:
; számára .
Definiáljuk bájtok halmazaként, de szavak halmazaként.
A -val és -hez definiáljuk a kitöltési operátort:
.
A konverziós operátor az elemek közötti konverziót hajtja végre .
Az ACE titkosítási séma kétféle kulcsot használ:
ACE nyilvános kulcs: .
ACE privát kulcs: .
Egy adott méretű paraméterhez , így a kulcsösszetevők a következők szerint vannak definiálva: — 256 bites prímszám. olyan m bites prím, amelyre . olyan elemek (amelyek szorzórendje modulo oszt ). - elemek . olyan elemek , amelyekhez és , ahol és .
Algoritmus. Kulcsgenerálás az ACE titkosítási sémához.
Bemenet: méret paraméter , úgy, hogy .
Kimenet: nyilvános/privát kulcspár.
,
,
,
,
.
Az ACE titkosítási sémában a titkosított szöveg az
,
ahol a komponensek a következőképpen vannak definiálva: integers from (amelynek szorzórendje modulo osztja ). - elem . - elem . nevezzük preambulumnak , és - kriptogramnak . Ha a szöveg egy bájtokból álló karakterlánc , akkor a hossza .
Be kell vezetni egy függvényt , amely a rejtjelezett szöveget bájtkarakterláncként jeleníti meg, valamint egy inverz függvényt . Egész szám , karakterlánc , egész szám és bájt karakterlánc esetén ,
.
Egy egész bájt karakterlánchoz , amelyhez ,
.
Algoritmus. Aszimmetrikus ACE titkosítási folyamat.
Bemenet: nyilvános kulcs és bájtkarakterlánc .
Kimenet: bájtkarakterlánc - titkosított szöveg , amelyet innen szereztünk be .
.
A szimmetrikus titkosítási folyamat megkezdése előtt a bemeneti üzenetet blokkokra osztjuk , ahol minden blokk, talán az utolsó kivételével, 1024 bájtot tartalmaz. Minden blokk adatfolyam titkosítással van titkosítva. Minden egyes titkosított blokkhoz egy 16 bájtos hitelesítési kód kerül kiszámításra. Kapunk egy kriptogramot
.
. Vegye figyelembe, hogy ha , akkor .
Algoritmus. Szimmetrikus ACE titkosítási folyamat.
Bemenet:
Kimenet: , .
.
Algoritmus. ACE visszafejtési folyamat.
Bemenet: nyilvános kulcs és a hozzá tartozó privát kulcs , bájtkarakterlánc .
Kimenet: Dekódolt üzenet .
;
Algoritmus. visszafejtési művelet .
Bemenet:
Kimenet: Dekódolt üzenet .
.
Az ACE digitális aláírási séma kétféle kulcsot használ:
az ACE digitális aláírás nyilvános kulcsát: .
ACE digitális aláírás magánkulcs: .
Adott méretű paraméter esetén, úgy, hogy a kulcsok összetevői a következők szerint vannak definiálva: — -bites prímszám, amelyre szintén prímszám. — -bit prímszám, amelyre — egyben prímszám is. – és lehet mindkettő és bit. elemek (másodfokú maradékok modulo ). — 161 bites prímszám. - elem - elemek . - elemek .
Algoritmus. Kulcsgenerálás az ACE digitális aláírási rendszerhez.
Bemenet: méret paraméter , úgy, hogy .
Kimenet: nyilvános/privát kulcspár.
, , és ,
és .
.
Az ACE digitális aláírási sémában az aláírás formátuma , ahol a komponensek meghatározása a következő: — elem . olyan egész szám, hogy . - elemek . a ; vegye figyelembe, hogy hol van az aláírandó üzenet.
Be kell vezetnie egy függvényt , amely az aláírást bájtkarakterláncként jeleníti meg, valamint egy inverz függvényt . Egész szám , bájtkarakterlánc , egész számok és , és bájtkarakterlánc esetén ,
.
Egy egész bájt karakterlánchoz , amelyhez ,
.
Algoritmus. ACE digitális aláírás generálása.
Bemenet: nyilvános kulcs és a hozzá tartozó privát kulcs és bájtkarakterlánc , .
Kimenet: bájtkarakterlánc - digitális aláírás .
,
.
Az ACE titkosítási és digitális aláírási sémák néhány segédfunkciót használnak (például UOWHash, ESHash és mások), amelyek leírása túlmutat e cikk keretein. Ezekről a funkciókról további részletek az [1]-ben találhatók .
Az ACE titkosítási sémát a NESSIE (New European Schemes for Signatures, Integrity and Encryption) projekt ajánlja aszimmetrikus titkosítási sémaként. A sajtóközlemény 2003. februári keltezésű.
Mindkét sémát ANSI C-ben implementálták a GNU GMP csomag használatával. A teszteket két platformon végezték: Power PC 604 modell 43P AIX rendszeren és 266 MHz Pentium Windows NT rendszeren. A mutatók táblázatait az alábbiakban közöljük:
1. táblázat: Alapműveletekre fordított idő.
Power PC | Pentium | |||
Operandus mérete (byte) | Operandus mérete (byte) | |||
512 | 1024 | 512 | 1024 | |
Szorzás | 3,5 * 10^(-5) mp | 1,0 * 10^(-4) mp | 4,5 * 10^(-5) mp | 1,4 * 10^(-4) mp |
Négyzetre emelés | 3,3 * 10^(-5) mp | 1,0 * 10^(-4) mp | 4,4 * 10^(-5) mp | 1,4 * 10^(-4) mp |
Potencírozás | 1,9 * 10^(-2) mp | 1,2 * 10^(-1) mp | 2,6 * 10^(-2) mp | 1,7 * 10^(-1) mp |
2. táblázat: A titkosítási és digitális aláírási sémák teljesítménye.
Power PC | Pentium | |||
Fix költség (msec) | Mbps | Fix költség (msec) | Mbps | |
Titkosítás | 160 | tizennyolc | 230 | 16 |
Dekódolás | 68 | tizennyolc | 97 | tizennégy |
Aláírás | 48 | 64 | 62 | 52 |
Aláírás (kezdeti beállítás) | 29 | 41 | ||
Igazolás | 52 | 65 | 73 | 53 |