E2 (cifrare)

Versiunea actuală a paginii nu a fost încă revizuită de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită la 12 septembrie 2016; verificările necesită 4 modificări .
E2
Creator NTT
publicat 1998
Dimensiunea cheii 128 (192, 256) biți
Dimensiunea blocului 128 de biți
Numărul de runde 12
Tip de Celula Feistel

E2 ( English  Efficient Encryption  - effective encryption) - în criptografie , o familie de algoritmi criptografici bloc simetric bazați pe celula Feistel . E2 folosește un bloc de 128 de biți și chei de 128, 192, 256 de biți. Creat de NTT (Nippon Telegraph and Telephone) în 1998 și a fost prezentat la competiția AES . Succesorul acestui cifr este cifrul Camellia , care este, de asemenea, rezultatul muncii NTT (Nippon Telegraph and Telephone).

Istorie

Cifrul E2, creat de NTT, a fost supus competiției AES împreună cu alte paisprezece cifruri. E2 a trecut cu succes testul de rezistență criptografică . Puterea cifrului E2 nu i-a afectat performanța. E2 a ocupat una dintre pozițiile de frunte atât în ​​competiția pentru viteza de criptare/decriptare, cât și în viteza de generare a cheilor. În special, implementarea cifrului E2 ( compilatorul Borland ) a arătat o viteză de criptare/decriptare de 26 Mbps. Cu toate acestea, viteze de peste 25 Mbps au fost arătate și de alți cinci lideri. În timp ce scorurile de cifrare au variat în funcție de compilator, platformă și logică, tendința generală a rămas aceeași. Majoritatea autorilor care au scris despre concursul AES susțin că E2, împreună cu alte cifruri, au trecut cu succes prima rundă. Cu toate acestea, E2 nu a ajuns în finala primelor cinci cifre. NIST a remarcat că, în ciuda performanței bune la viteză și a absenței vulnerabilităților , cerințele pentru memoria nevolatilă sunt prea mari ( CAST-256 a suferit în mod similar ). [unu]

Algoritm de criptare

[2]

Lucrarea algoritmului de criptare poate fi împărțită în trei părți principale :  funcția IT sau transformarea inițială (IT) , celula Feistel bazată pe funcția F, repetată de 12 ori și funcția FT sau convertorul final de date. ( transformarea finală în engleză  (FT) ). Blocul algoritmului responsabil pentru planificarea cheilor ( ing.  chei scheduling partea ), înainte de criptare, din cheia secretă K creează șaisprezece subchei {k1,..k16}, fiecare dintre acestea fiind un vector de biți de 128 de biți (un element de câmpul Galois (2 ^ 128 )). Prima transformare a textului simplu M este efectuată folosind funcția IT și două chei generate numerotate 13 și 14( și )

M'=IT(M, , )

M` este împărțit în două blocuri de lungime egală , fiecare dintre elemente fiind un vector de biți de 64 de biți. Apoi se efectuează 12 cicluri de transformări în celula Feistel, în care blocul din dreapta la iterația curentă a ciclului este determinat prin adăugarea modulo doi a părții din stânga a iterației anterioare a ciclului și rezultatul funcției F, a cărei argumentele sunt partea dreaptă a iterației anterioare și tasta , iar blocului din stânga la pasul r al ciclului i se atribuie valoarea blocului din dreapta la pasul r-1. Ciclul se repetă de 12 ori, adică r se schimbă de la 1 la 12

= = .

Etapa finală a criptării este execuția funcției FT. Rezultatul funcției FT, ale cărei argumente sunt concatenarea părților din dreapta și din stânga la ieșirea celei de-a 12-a iterații a celulei Feistel și cheile :

`

Algoritm de decriptare

Decriptarea are loc conform unei scheme similare cu criptarea. Lucrarea algoritmului de decriptare poate fi împărțită în trei părți principale: funcția IT (transformare inițială - informații inițiale în limba engleză  (IT) ), 12 cicluri ale celulei Feistel cu funcție F și la sfârșit funcția FT ( transformare finală în engleză ).  (FT) ). Blocul algoritmului responsabil pentru planificarea cheilor ( în engleză  key shduling ) din cheia secretă imediat înainte de criptare generează 16 subchei { }, care sunt vectori de biți de dimensiunea 128 (un element al câmpului Galois GF(2^128)). În prima etapă se execută funcția IT, ale cărei argumente sunt criptograma C și două subchei

`

Rezultatul funcției IT C` este împărțit în 2 părți egale de 64 de biți (jumătate de bloc): dreapta și stânga ( ). În continuare, sunt efectuate 12 cicluri ale celulei Feistel pe baza funcției F ( se modifică de la 12 la 1).


La sfârșitul ultimului ciclu al celulei Feistel, jumătățile blocului sunt concatenate ( ). Și la sfârșit - transformarea finală: se execută funcția FT , ale cărei argumente sunt rezultatul concatenării lui ` și două chei . Rezultatul executării funcției FT este textul simplu .

Key Generator (Key Planner)

Pe baza cheii secrete ( { } are o dimensiune de jumătate de bloc, adică 64 de biți și este un argument pentru funcțiile de criptare și decriptare), subchei {i=1;2...16} ( vectori de biți de dimensiunea 128) sunt generate folosind funcția G și funcțiile S. Procedura de generare a cheii rămâne aproape neschimbată dacă lungimea cheii private este de 128, 192 sau 256 de biți. Dacă lungimea specificată este de 128 de biți, constantele sunt alese ca valori după cum urmează: , . Dacă lungimea cheii este de 192 de biți, valoarea cheii este , unde S() este funcția S.

Funcții elementare

Funcția F

BRS(),S(),P() — respectiv BRS-funcție, S-funcție, P-funcție; X,Y - cuvinte ale alfabetului binar cu o dimensiune de 64 de biți (jumătate din bloc);  — chei de 128 de biți fiecare. H este un spațiu de dimensiune de 64 de biți .

Esența funcției F este conversia cuvintelor din alfabet binar de 64 de biți cu o cheie dată de 128 de biți. Rezultatul transformării este un cuvânt alfabet binar de 64 de biți.

Funcție IT (funcție de procesare inițială)

Funcție IT sau convertor de date inițial:

H este spațiul cuvintelor din alfabet binar de 64 de biți; X,A,B — cuvinte binare de 128 de biți; BP() - funcția BP;  este o operație binară .

FT-Function (funcția de transformare finală)

Funcția FT sau convertorul de date final:

.

H este spațiul cuvintelor din alfabet binar de 64 de biți; X,A,B — cuvinte binare de 128 de biți; () este o funcție inversă a funcției BP;  este operația binară de.

Funcția FT este inversul funcției IT:

.

Funcția BRL

Funcția BRL (funcția de rotire a octetului la stânga )  sau deplasarea ciclică la stânga este o parte integrantă a funcției F:

{ } este un cuvânt binar cu o dimensiune de 8 biți ( octeți ) sau, cu alte cuvinte, un element al câmpului Galois .

Funcția S

Funcția S este partea funcției F care este definită de s-box :

.

Structura S-box

Cutia S utilizată în funcția S este definită după cum urmează:

, Unde

Nu este interzisă utilizarea tabelelor cu valori deja calculate ale lui s(x) în calcule. Acesta este


Tabel cu valorile s-box calculate:
225 66 62 129 78 23 158 253 180 63 44 218 49 treizeci 224 65
204 243 130 125 124 optsprezece 142 187 228 88 21 213 111 233 76 75
53 123 90 154 144 69 188 248 121 214 27 136 2 171 207 100
9 12 240 unu 164 176 246 147 67 99 134 220 17 165 131 139
201 208 25 149 106 161 92 36 110 80 33 128 47 231 83 cincisprezece
145 34 patru 237 166 72 73 103 236 247 192 57 206 242 45 190
93 28 227 135 7 13 122 244 251 cincizeci 245 140 219 143 37 150
168 234 205 51 101 84 6 141 137 zece 94 217 22 paisprezece 113 108
unsprezece 255 96 210 46 211 200 85 194 35 183 116 226 155 223 119
43 185 60 98 19 229 148 52 177 39 132 159 215 81 0 97
173 133 115 3 opt 64 239 104 254 151 31 222 175 102 232 184
174 189 179 235 198 107 71 169 216 167 114 238 29 126 170 182
117 203 212 48 105 32 127 55 91 157 120 163 241 118 250 5
61 58 68 87 59 202 199 138 24 70 156 191 186 56 86 26
146 77 38 41 162 152 16 153 112 160 197 40 193 109 douăzeci 172
249 95 79 196 195 209 252 221 178 89 230 181 54 82 74 42

Funcția P

Funcția P - o parte integrantă a funcției F

P - matricea de transformare care descrie funcția P

Funcția G

G - funcția realizează următoarea mapare:

, Unde  - funcția f.

f-funcție

Funcția f este necesară pentru a calcula funcția G. Funcția f este definită după cum urmează:


, Unde

P() este o funcție P, S() este o funcție S.

Operator binar

Operatorul binar este definit după cum urmează:

, Unde  - adăugare logică pe biți (logic „sau”) cu 1 în inel .

Operatorul binar de

Operatorul binar de este definit după cum urmează:

, Unde  - adăugare logică pe biți (logic „sau”) cu 1 în inel .

Funcția BP

Funcția  BP, sau funcția de permutare a octetilor , face parte din funcția IT și din funcția FT. Este definit astfel:

,Unde .

Inversul transformării BP, sau BP^{-1}, se calculează după cum urmează:

,Unde


.

Algoritmul de criptoanaliza

Angajații Centrului de cercetare și dezvoltare în tehnologia informației Mitsubishi Electric Corporation Mitsuru Matsui și Toshio Tokita au descoperit că cifrul nu era rezistent la criptoanaliza diferențială . [3] În ciuda acestui fapt, cifrul (folosind 12 cicluri de criptare) rămâne puternic din punct de vedere practic. Deși Mitsuru Matsui și Toshio Tokita au reușit să arate că nivelul de securitate al cifrului E2 cu mai puține cicluri de criptare este semnificativ mai scăzut decât cel declarat de dezvoltatori.

Dezavantajele cifrului

Cerințe ridicate pentru memoria nevolatilă.

Diferența față de Camellia

Vezi și

Note

  1. [1]  (engleză) . — 1999.
  2. Nippon Telegraph and Telephone Corporation. Specificația E2 - un cifr pe bloc de 128 de biți. - 14 iunie 1998. - S. 1-14. - 1-14 s.
  3. Mitsuru Matsui și Toshio Tokita. Criptanaliza unei versiuni reduse a cifrului bloc E2”.

Link -uri