ESO (Pokročilý kryptografický stroj) - sběr jednotek, implementující jak schéma šifrování veřejného klíče, tak schéma digitálního podpisu. Odpovídající názvy těchto schémat - «ACE Encrypt» a «ACE Sign». Schémata jsou založena na schématu šifrování veřejného klíče Cramer-Shoup a schématu podpisu Cramer-Shoup. Představené varianty těchto schémat jsou určeny k dosažení dobré rovnováhy mezi výkonem a zabezpečením celého šifrovacího systému.
Autoři
Všechny algoritmy implementované v ACE jsou založeny na algoritmech vyvinutých Victorem Shoupem a Ronaldem Cramerem. Úplnou specifikaci algoritmů napsal Victor Shoup. Implementaci algoritmů provádějí Thomas Schweinberger a Mehdi Nassehi, jeho podporu a údržbu provádí Victor Shoup. Thomas Schweinberger se podílel na konstrukci dokumentu specifikace ACE a také napsal uživatelskou příručku.
Ronald Cramer v současné době zůstává na univerzitě v Aarhusu, Dánsko. Během svého pobytu v ETH pracoval na projektu ACE Encrypt Curych, Švýcarsko.
Mehdi Nassehi a Thomas Schweinberger pracovali na projektu ACE ve výzkumné laboratoři IBM v Curych, Švýcarsko.
Victor Shoup pracuje ve výzkumné laboratoři IBM v Curych, Švýcarsko.
Bezpečnostní
Schéma šifrování v ACE lze prokázat jako bezpečné za rozumných a přirozených předpokladů praktičnosti. Tyto čtyři předpoklady jsou:
- Předpoklad Rozhodovací Diffie-Hellman (DDH)
- Silný předpoklad RSA
- Odolnost proti kolizi SHA - 1 sekunda
- Pseudonáhodnost režimu MARS součet / čítač
Základní terminologie a notace
Zde uvádíme několik notací, které se používají v tomto článku.
Základní matematická notace
- Sada celých čísel.
- Sada jednorozměrných polynomů s koeficienty v konečném poli mohutnosti 2.
- celé číslo takhle pro celé číslo a .
- polynom s takhle s .
Základní řetězcová notace
- Sada všech řetězců.
- Sada všech řetězců o délce n.
Pro - délka provázku . Řetězec délky nula je označen .
Pro - výsledek a zřetězení.
Bity, bajty, slova
- Sada bitů.
Vezměme si všechny sady formulářů . Pro takovou množinu A definujeme "nulový prvek":
;
pro .Definujeme jako sada bajtů a jako soubor slov.
Pro s a definujeme operátor výplně:
.Operátor převodu
Operátor převodu provede převod mezi prvky .
Schéma šifrování
Pár šifrovacích klíčů
Schéma šifrování využívá dva typy klíčů:
Veřejný klíč ACE: .
Soukromý klíč ACE: .
Pro daný velikostní parametr m , takový, že , klíčové komponenty jsou definovány jako:
- 256bitové prvočíslo.
- m-bitové prvočíslo, takové .
- elementy (jehož multiplikativní pořadí modulo rozděluje ).
- elementy .
- elementy s a , kde a .
Generování klíčů
Algoritmus. Generování klíčů pro šifrovací schéma ACE.
Vstup: parametr velikosti m , takový, že .
Výstup: pár veřejného / soukromého klíče.
- Vytvořte náhodný prime , takový, že .
- Vytvořte náhodný prime , , takový, že .
- Vygenerujte náhodné celé číslo , takový, že .
- Generujte náhodná celá čísla a
- Vypočítejte následující celá čísla v :,
,
,
,
. - Generujte náhodné bajtové řetězce a , kde a .
- Vraťte pár veřejného a soukromého klíče
Zastoupení šifrovacího textu
Šifrovací text šifrovacího schématu ACE má formu
,
kde jsou komponenty definovány jako:
- celá čísla z (jehož multiplikativní pořadí modulo rozděluje ).
- prvek .
- prvek .
říkáme preambule, a - kryptogram. Pokud je cleartext řetězec skládající se z байт, pak délka je rovný .
Musíme představit funkci , který mapuje ciphertext na jeho bajtový řetězec
reprezentace a odpovídající inverzní funkce . Pro celé číslo , řetězec slov celá čísla a bajtový řetězec ,
.
Pro celé číslo , bajtový řetězec , takový, že ,
.Proces šifrování
Algoritmus. Provoz asymetrického šifrování ACE.
vstup: veřejný klíč a bajtový řetězec .
Výstup: byte byte - ciphertext z .
- generovat nahodile.
- Vygenerujte úvodní část šifrovacího textu:
- generovat nahodile.
- Vypočítat , .
- Vypočítat ; Všimněte si, že .
- Vypočítat .
- Vypočítejte klíč pro operaci symetrického šifrování:
- , .
- Vypočítat .
- Vypočítejte kryptogram .
- Zakódujte šifrovací text: .
- Vrátit se .
Před zahájením procesu symetrického šifrování zadejte vstupní zprávu je rozdělen do bloků , kde každý z bloku, případně kromě posledního, má 1024 bajtů. Každý blok je šifrován proudovou šifrou. Pro každý šifrovaný blok Vypočítá se 16bajtový ověřovací kód zprávy. Dostaneme kryptogram
.. Všimněte si, že pokud , pak .
Algoritmus. Proces asymetrického šifrování ACE.
Vstup:
Výstup: , .
- Li , pak se vraťte .
- Inicializovat stav pseudonáhodného generátoru:
- Vygenerujte klíč : .
- .
- Zatímco , Udělej následující:
- .
- Generovat hodnoty masky pro šifrování a MAC:
- .
- .
- Šifrovat holý text: .
- Vygenerujte ověřovací kód zprávy:
- Li , pak ; jiný .
- .
- Aktualizujte šifrovací text: .
- .
- Vrátit se .
Proces dešifrování
Algoritmus. Proces dešifrování ACE.
Vstup: veřejný klíč a odpovídající soukromý klíč , byt e řetězec .
Výstup: Dešifrovaná zpráva .
- Dešifrovat šifrovací text:
- Li , pak se vraťte .
- Vypočítat: ;
Všimněte si, že , kde .
- Ověření preambule šifrovacího textu:
- Li nebo nebo , pak se vraťte .
- Li , pak se vraťte .
- .
- Li , pak .
- Vypočítat ; Všimněte si, že .
- Li , pak .
- Li , pak se vraťte .
- Vypočítejte klíč pro operaci symetrické dešifrování:
- , .
- Vypočítat .
- Vypočítat ;Všimněte si, že může se vrátit .
- Vrátit se .
Algoritmus. Dešifrovací operace .
Vstup:
Výstup: Dešifrovaná zpráva .
- Li , pak se vraťte .
- Inicializovat stav pseudonáhodného generátoru:
- Vygenerujte klíč : .
- .
- Zatímco , Udělej následující:
- .
- Li , pak se vraťte .
- Generovat hodnoty masky pro šifrování a MAC:
- .
- .
- Ověřte ověřovací kód zprávy:
- Li , pak ; jiný .
- .
- Li , pak se vraťte .
- Aktualizujte holý text: .
- .
- Vrátit se .
Podpisové schéma
Schéma podpisu využívá dva klíčové typy:
Veřejný klíč podpisu ACE: .
Soukromý klíč podpisu ACE: .
Pro daný parametr velikosti , takový, že , klíčové komponenty jsou definovány následujícím způsobem:
— -bitové prvočíslo s - je také prvočíslo.
— -bitové prvočíslo s - je také prvočíslo.
— a má buď nebo бит.
- elementy (kvadratické zbytky modulo ).
- 161bitové prvočíslo.
- prvek
- elementy .
- elementy .
Generování klíčů
Algoritmus. Generování klíčů pro schéma podpisu veřejného klíče ACE.
Vstup: parametr velikosti , takový, že .
Výstup: pár veřejného / soukromého klíče.
- Generujte náhodná prvočísla, takový, že a - je také prvočíslo a , , č ,
kde
a . - Soubor .
- Vygenerujte náhodné prvočíslo , где .
- Generovat náhodně , s přihlédnutím a a vypočítat .
- Generovat náhodně a počítat .
- Generujte náhodné bajtové řetězce , a .
- Vrátit pár veřejného a soukromého klíče .
Podpisové prohlášení
Podpis v podpisovém schématu ACE má formu , kde jsou komponenty definovány následujícím způsobem:
- prvek .
- celé číslo, takové .
- elementy .
- prvek ;Všimněte si, že , kde - podepsaná zpráva.
Musíme představit funkce, která mapuje podpis do jeho reprezentace bajtového řetězce, a odpovídající inverzní funkce . Pro celé číslo , bajtový řetězec celá čísla a a bajtový řetězec ,
.
Pro celé číslo , bajtový řetězec , kde ,
.Proces generování podpisu
Algoritmus. Proces generování podpisu ACE.
Vstup: veřejný klíč a odpovídající soukromý klíč a bajtový řetězec , .
Výstup: bajtový řetězec - digitální podpis .
- K hašování vstupních dat proveďte následující kroky:
- Vygenerujte hash klíč náhodně, takhle .
- Vypočítat .
- Vybrat náhodně a vypočítat .
- Vypočítat .
- Vytvořte náhodný prime , a jeho osvědčení o správnosti : . Tento krok opakujte do .
- Soubor ; Všimněte si, že .
- Vypočítat , kde ,
a kde a . - Zakódujte podpis: .
- Vrátit se
Poznámky
V definici procesu šifrování ACE a procesu ACE Signature se používají některé pomocné funkce (např.UOWHash, ESHash a některé další), jejichž definice přesahuje tento článek. Více podrobností najdete na в.[1]
Implementace, využití a výkon
Šifrovací schéma ACE doporučuje NESSIE (New European Schemes for Signatures, Integrity and Encryption) jako asymetrické šifrovací schéma. Tisková zpráva je vydána do února 2003.
Obě schémata byla implementována v ANSI C s využitím knihovny GNU GMP. Testy byly prováděny na dvou platformách: Power PC 604 model 43P pod systémem AIX a 266 MHz Pentium pod systémem Windows NT. Tabulky výsledků:
Tabulka 1. Časové náklady na základní operace.
| Napájení PC | Pentium |
| Velikost operandu (bajt) | Velikost operandu (bajt) |
| 512 | 1024 | 512 | 1024 |
Násobení | 3,5 * 10 ^ (- 5) s | 1,0 * 10 ^ (- 4) s | 4,5 * 10 ^ (- 5) s | 1,4 * 10 ^ (- 4) s |
Kvadratura | 3,3 * 10 ^ (- 5) s | 1,0 * 10 ^ (- 4) s | 4,4 * 10 ^ (- 5) s | 1,4 * 10 ^ (- 4) s |
Umocňování | 1,9 * 10 ^ (- 2) s | 1,2 * 10 ^ (- 1) s | 2,6 * 10 ^ (- 2) s | 1,7 * 10 ^ (- 1) s |
Tabulka 2. Výkon šifrovacího schématu a podpisového schématu.
| Napájení PC | Pentium |
| Fixní náklady (ms) | MBit / s | Fixní náklady (ms) | MBit / s |
Šifrovat | 160 | 18 | 230 | 16 |
Dešifrovat | 68 | 18 | 97 | 14 |
Podepsat | 48 | 64 | 62 | 52 |
Přihlaste se k nastavení | 29 | | 41 | |
Ověřit | 52 | 65 | 73 | 53 |
Literatura
externí odkazy