ACE ( Advanced Cryptographic Engine ) er et sæt softwareværktøjer , der implementerer kryptering i den offentlige nøglekrypteringsskematilstand, såvel som i den digitale signaturtilstand. De tilsvarende navne for disse tilstande er "ACE Encrypt" og "ACE Sign". Kredsløbene er implementeringer af Cramer-Shope kredsløbene. Ændringerne har til formål at opnå den bedste balance mellem ydeevne og sikkerhed for hele krypteringssystemet.
Alle algoritmer skrevet i ACE er baseret på algoritmer udviklet af Victor Shoup og Ronald Cramer. Den fulde specifikation af algoritmerne blev skrevet af Victor Shoup. Algoritmerne er implementeret af Thomas Schweinberger og Mehdi Nassehi og vedligeholdt og udviklet af Victor Shope. Thomas Schweinberg bidrog til ACE-specifikationsdokumentet og skrev også brugermanualen.
Ronald Kramer er i øjeblikket ved Aarhus Universitet, Danmark . Han var involveret i arbejde relateret til ACE Encrypt, mens han var på ETH i Zürich , Schweiz .
Maddy Nassey og Thomas Schweinberger arbejdede på ACE-projektet på IBM Research Lab i Zürich, Schweiz, men har nu afsluttet deres ophold der.
Victor Shoup arbejder på IBM Research Lab i Zürich, Schweiz.
Beviset for sikkerheden af krypteringsskemaet og det digitale signaturskema i ACE udføres ved brug af rimelige og naturlige antagelser. De fire hovedantagelser er:
Lad os give definitioner af nogle notationer og termer, der bruges i denne artikel.
er et sæt af heltal. er mængden af endimensionelle polynomier med koefficienter i et endeligt felt med antallet af feltelementer - 2. er et heltal , for hvilket heltal og . er sådan et polynomium med , sådan at ved .
- et sæt af forskellige linjer. er mængden af alle mulige strenge med længden n.
For — længden af strengen . Notationen for længden af nul-strengen er .
For er resultatet af strengsammenkædning og .
- mange stykker.
Overvej sæt af formularen . For et sådant sæt A definerer vi nul-elementet:
; for .
Lad os definere det som et sæt bytes, men som et sæt ord.
For med og vi definerer påfyldningsoperatøren:
.
Konverteringsoperatoren udfører konverteringer mellem elementer .
ACE-krypteringsskemaet bruger to typer nøgler:
ACE offentlig nøgle: .
ACE privat nøgle: .
For en given størrelsesparameter , således at , er nøglekomponenterne defineret som følger: — 256-bit primtal. er en m-bit prime, sådan at . er elementer (hvis multiplikativ orden modulo dividerer ). - elementer . er elementer for hvilke og , hvor og .
Algoritme. Nøglegenerering til ACE-krypteringsskemaet.
Input: størrelsesparameter , sådan at .
Udgang: offentligt/privat nøglepar.
,
,
,
,
.
Chifferteksten i ACE-krypteringsskemaet er
,
hvor komponenterne er defineret som følger: er heltal fra (hvis multiplikativ orden modulo dividerer ). - element . - element . lad os kalde det en præambel og - et kryptogram . Hvis teksten er en streng af bytes, så er længden .
Det er nødvendigt at introducere en funktion , der repræsenterer chifferteksten som en byte-streng, såvel som en invers funktion . For heltal , tegnstreng , heltal og bytestreng ,
.
For en heltalsbytestreng , for hvilken
.
Algoritme. Asymmetrisk ACE-krypteringsproces.
Input: offentlig nøgle og bytestreng .
Output: byte streng - chiffertekst hentet fra .
.
Inden den symmetriske krypteringsproces startes, er inputmeddelelsen opdelt i blokke , hvor hver blok, måske undtagen den sidste, har 1024 bytes. Hver blok er krypteret med en stream-chiffer. For hver krypteret blok beregnes en 16-byte godkendelseskode. Vi får et kryptogram
.
. Bemærk at hvis , så .
Algoritme. Symmetrisk ACE-krypteringsproces.
Input:
Output: , .
.
Algoritme. ACE-dekrypteringsproces.
Input: offentlig nøgle og tilsvarende privat nøgle , byte streng .
Output: Afkodet besked .
;
Algoritme. dekrypteringsoperation .
Input:
Output: Afkodet besked .
.
Den digitale ACE-signaturordning bruger to typer nøgler:
den offentlige ACE-digitale signaturnøgle: .
ACE digital signatur privat nøgle: .
For en given størrelsesparameter , således at , er nøglernes komponenter defineret som følger: — et -bit-primtal, for hvilket også er primtal. — -bit primtal for hvilket — også er primtal. — og kan have både og bits. er elementer (kvadratiske rester modulo ). — 161-bit primtal. -element - elementer . - elementer .
Algoritme. Nøglegenerering til ACEs digitale signaturordning.
Input: størrelsesparameter , sådan at .
Udgang: offentligt/privat nøglepar.
, , og ,
og .
.
Signaturen i ACEs digitale signaturskema har formen , hvor komponenterne er defineret som følger: — element . er et heltal sådan, at . - elementer . er ; bemærk at , hvor er beskeden, der skal underskrives.
Du skal introducere en funktion , der repræsenterer signaturen som en byte-streng, såvel som en invers funktion . For heltal , byte streng , heltal og , og byte streng ,
.
For en heltalsbytestreng , for hvilken
.
Algoritme. Generering af ACE digital signatur.
Input: offentlig nøgle og tilsvarende privat nøgle og bytestreng , .
Output: byte streng - digital signatur .
,
.
ACE-kryptering og digitale signaturordninger bruger nogle hjælpefunktioner (såsom for eksempel UOWHash, ESHash og andre), hvis beskrivelse ligger uden for denne artikels omfang. Flere detaljer om disse funktioner kan findes i [1] .
ACE-krypteringsskemaet anbefales af NESSIE-projektet (New European Schemes for Signatures, Integrity and Encryption) som et asymmetrisk krypteringsskema. Pressemeddelelsen er dateret februar 2003.
Begge skemaer blev implementeret i ANSI C ved hjælp af GNU GMP-pakken. Testene blev udført på to platforme: Power PC 604 model 43P under AIX-system og 266 MHz Pentium under Windows NT-system. Tabeller med indikatorer er angivet nedenfor:
Tabel 1. Tid brugt på grundlæggende operationer.
Power pc | Pentium | |||
Operand størrelse (bytes) | Operand størrelse (bytes) | |||
512 | 1024 | 512 | 1024 | |
Multiplikation | 3,5 * 10^(-5) sek | 1,0 * 10^(-4) sek | 4,5 * 10^(-5) sek | 1,4 * 10^(-4) sek |
Kvadrering | 3,3 * 10^(-5) sek | 1,0 * 10^(-4) sek | 4,4 * 10^(-5) sek | 1,4 * 10^(-4) sek |
Potentiering | 1,9 * 10^(-2) sek | 1,2 * 10^(-1) sek | 2,6 * 10^(-2) sek | 1,7 * 10^(-1) sek |
Tabel 2. Ydelse af kryptering og digitale signaturordninger.
Power pc | Pentium | |||
Faste omkostninger (msec) | Mbps | Faste omkostninger (msec) | Mbps | |
Kryptering | 160 | atten | 230 | 16 |
Dekryptering | 68 | atten | 97 | fjorten |
Underskrift | 48 | 64 | 62 | 52 |
Signatur (indledende indstilling) | 29 | 41 | ||
Verifikation | 52 | 65 | 73 | 53 |