E2 (chiffer)

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 12 september 2016; kontroller kräver 4 redigeringar .
E2
Skapare NTT
publiceras 1998
Nyckelstorlek 128 (192, 256) bitar
Block storlek 128 bitar
Antal omgångar 12
Sorts Feistel cell

E2 ( Engelska  Efficient Encryption  - effektiv kryptering) - i kryptografi , en familj av symmetriska blockkrypteringsalgoritmer baserade på Feistel-cellen . E2 använder ett block på 128 bitar och nycklar på 128, 192, 256 bitar. Skapad av NTT (Nippon Telegraph and Telephone) 1998 och presenterades vid AES-tävlingen . Efterföljaren till detta chiffer är Camellia -chifferet , som också är resultatet av NTTs (Nippon Telegraph and Telephone) arbete.

Historik

E2-chifferet, skapat av NTT, skickades till AES-tävlingen tillsammans med fjorton andra chiffer. E2 klarade det kryptografiska styrketestet framgångsrikt. Styrkan hos E2-chifferet påverkade inte dess prestanda. E2 har tagit en av de ledande positionerna både i konkurrensen om hastigheten för kryptering / dekryptering, och i hastigheten att generera nycklar. I synnerhet visade implementeringen av E2-chifferet ( Borland- kompilatorn ) en krypterings-/dekrypteringshastighet på 26 Mbps. Men hastigheter över 25 Mbps visades också av fem andra ledare. Medan chifferpoängen varierade beroende på kompilator, plattform och logik, förblev den övergripande trenden densamma. De flesta författarna som har skrivit om AES-tävlingen hävdar att E2, tillsammans med några andra chiffer, framgångsrikt klarade den första omgången. E2 tog sig dock inte till finalen av de fem bästa chifferna. NIST noterade att trots bra hastighetsprestanda och frånvaron av sårbarheter är kraven för icke-flyktigt minne för höga ( CAST-256 drabbades på liknande sätt ). [ett]

Krypteringsalgoritm

[2]

Arbetet med krypteringsalgoritmen kan delas in i tre huvuddelar : IT-funktionen, eller initial transformation (IT) , Feistel-cellen baserad på F-funktionen, upprepad 12 gånger, och FT-funktionen, eller den slutliga dataomvandlaren ( Engelsk finaltransformation (FT) ). Blocket av algoritmen som ansvarar för nyckelplanering ( eng. key sheduling part ), före kryptering, från den hemliga nyckeln K skapar sexton undernycklar {k1,.. k16 }, som var och en är en 128-bitarsvektor (ett element av Galoisfältet (2 ^ 128 )). Den första transformationen av klartext M utförs med hjälp av IT-funktionen och två genererade nycklar numrerade 13 och 14( och )    

M'=IT(M, , )

M` är uppdelad i två lika långa block, vart och ett av elementen är en 64 - bitarsvektor . Sedan utförs 12 cykler av transformationer i Feistel-cellen, där det högra blocket vid den aktuella iterationen av cykeln bestäms av modulo två-addition av den vänstra delen av den föregående iterationen av cykeln och resultatet av funktionen F, vars argument är den högra delen av föregående iteration och nyckeln , och det vänstra blocket vid r-steget i cykeln tilldelas värdet av det högra blocket vid r-1-steget. Cykeln upprepas 12 gånger, d.v.s. ändras från 1 till 12

= = .

Det sista steget av krypteringen är exekveringen av FT-funktionen. Resultatet av FT-funktionen, vars argument är sammanlänkningen av höger och vänster del vid utgången av den 12:e iterationen av Feistel-cellen och nycklarna :

`

Dekrypteringsalgoritm

Dekryptering sker enligt ett schema som liknar kryptering. Arbetet med dekrypteringsalgoritmen kan delas in i tre huvuddelar: IT-funktion (initial transformation - engelsk initial information (IT) ), 12 cykler av Feistel-cellen med F-funktion och i slutet FT-funktion ( engelsk final transformation (FT) ). Blocket av algoritmen som ansvarar för nyckelplanering ( engelsk key sheduling ) från den hemliga nyckeln omedelbart före kryptering genererar 16 undernycklar { }, som är bitvektorer av dimension 128 (ett element i Galois-fältet GF(2^128)). I det första steget exekveras IT-funktionen, vars argument är kryptogrammet C och två undernycklar   

`

Resultatet av IT-funktionen C` delas upp i 2 lika delar om 64 bitar (halva block): höger och vänster ( ). Därefter utförs 12 cykler av Feistel-cellen baserat på F-funktionen ( ändringar från 12 till 1).


I slutet av den sista cykeln av Feistel-cellen är blockets halvor sammanlänkade ( ). Och i slutet - den sista transformationen: FT-funktionen exekveras , vars argument är resultatet av sammanlänkningen av ` och två nycklar . Resultatet av att köra FT-funktionen är klartext .

Nyckelgenerator (nyckelplanerare)

Baserat på den hemliga nyckeln ( { } har en dimension på ett halvt block, det vill säga 64 bitar och är ett argument för krypterings- och dekrypteringsfunktionerna), undernycklar {i=1;2…16} ( bitvektorer med dimension 128) genereras med G-funktionen och S-funktionerna. Nyckelgenereringsproceduren förblir nästan oförändrad om den privata nyckellängden är 128, 192 eller 256 bitar. Om den angivna längden är 128 bitar, väljs konstanter som värden enligt följande: , . Om nyckellängden är 192 bitar är nyckelvärdet , där S() är S-funktionen.

Elementära funktioner

F-funktion

BRS(),S(),P() — respektive BRS-funktion, S-funktion, P-funktion; X,Y - ord i det binära alfabetet med en dimension på 64 bitar (hälften av blocket);  — nycklar på 128 bitar vardera. H är ett 64-bitars dimensionsutrymme .

Kärnan i F-funktionen är omvandlingen av binära alfabetsord på 64 bitar med en given nyckel på 128 bitar. Resultatet av omvandlingen är ett 64-bitars binärt alfabetsord.

IT-funktion (initial bearbetningsfunktion)

IT-funktion eller initial dataomvandlare:

H är utrymmet för 64-bitars binära alfabetsord; X,A,B — 128-bitars binära ord; BP() - BP-funktion;  är en binär operation .

FT-Function (slutlig transformationsfunktion)

FT-funktion eller slutdataomvandlare:

.

H är utrymmet för 64-bitars binära alfabetsord; X,A,B — 128-bitars binära ord; () är en funktion invers av BP-funktionen;  är den binära operationen de.

FT-funktionen är inversen av IT-funktionen:

.

BRL-funktion

BRL-funktion ( eng.  byte rotate left function ), eller cyklisk växling till vänster, är en integrerad del av F-funktionen:

{ } är ett binärt ord med dimensionen 8 bitar ( bytes ) eller, med andra ord, ett element i Galois-fältet .

S-funktion

S-funktionen är den del av F-funktionen som definieras av s-box :

.

S-box struktur

S-boxen som används i S-funktionen definieras enligt följande:

, var

Det är inte förbjudet att använda tabeller med redan beräknade värden på s(x) i beräkningar. Det är


Tabell över beräknade s-box-värden:
225 66 62 129 78 23 158 253 180 63 44 218 49 trettio 224 65
204 243 130 125 124 arton 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 ett 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 femton
145 34 fyra 237 166 72 73 103 236 247 192 57 206 242 45 190
93 28 227 135 7 13 122 244 251 femtio 245 140 219 143 37 150
168 234 205 51 101 84 6 141 137 tio 94 217 22 fjorton 113 108
elva 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 åtta 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 tjugo 172
249 95 79 196 195 209 252 221 178 89 230 181 54 82 74 42

P-funktion

P-funktion - en integrerad del av F-funktionen

P - transformationsmatris som beskriver P-funktionen

G-funktion

G - funktionen utför följande visning:

, var  - f-funktion.

f-funktion

F-funktionen behövs för att beräkna G-funktionen. f-funktion definieras enligt följande:


, var

P() är en P-funktion, S() är en S-funktion.

Binär operator

Den binära operatorn definieras enligt följande:

, var  - logisk bitvis addition (logisk "eller") med 1 i ringen .

Den binära operatorn de

Den binära operatorn de definieras enligt följande:

, var  - logisk bitvis addition (logisk "eller") med 1 i ringen .

BP-funktion

BP  -funktionen, eller byte-permutationsfunktionen , är en del av IT-funktionen och FT-funktionen. Den definieras enligt följande:

,var .

Inversen av BP-transformationen, eller BP^{-1}, beräknas enligt följande:

,var


.

Kryptanalysalgoritm

Anställda vid informationsteknologiska FoU-centret Mitsubishi Electric Corporation Mitsuru Matsui och Toshio Tokita upptäckte att chiffret inte var resistent mot differentiell kryptoanalys . [3] Trots detta förblir chiffret (med 12 krypteringscykler) starkt ur praktisk synvinkel. Även om Mitsuru Matsui och Toshio Tokita kunde visa att säkerhetsnivån för E2-chifferet med färre krypteringscykler är betydligt lägre än vad utvecklarna angett.

Nackdelar med chiffer

Höga krav på icke-flyktigt minne.

Skillnad från Camellia

Se även

Anteckningar

  1. [1]  (engelska) . — 1999.
  2. Nippon Telegraph and Telephone Corporation. Specifikation av E2 - en 128-bitars blockchiffer. - 14 juni 1998. - S. 1-14. - 1-14 s.
  3. Mitsuru Matsui och Toshio Tokita. Kryptanalys av en reducerad version av blockchifferet E2".

Länkar