E2 (chiffer)

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 12. september 2016; checks kræver 4 redigeringer .
E2
Skaber NTT
offentliggjort 1998
Nøglestørrelse 128 (192, 256) bit
Blokstørrelse 128 bit
Antal runder 12
Type Feistel celle

E2 ( engelsk  Efficient Encryption  - effektiv kryptering) - i kryptografi , en familie af symmetriske blokkryptografiske algoritmer baseret på Feistel-cellen . E2 bruger en blok på 128 bit og nøgler på 128, 192, 256 bit. Skabt af NTT (Nippon Telegraph and Telephone) i 1998 og blev præsenteret ved AES-konkurrencen . Efterfølgeren til denne chiffer er Camellia -cifferen , som også er resultatet af NTTs (Nippon Telegraph and Telephone) arbejde.

Historie

E2-chifferet, skabt af NTT, blev indsendt til AES-konkurrencen sammen med fjorten andre cifre. E2 bestod den kryptografiske styrketest med succes. Styrken af ​​E2-chifferet påvirkede ikke dens ydeevne. E2 har indtaget en af ​​de førende positioner både i konkurrencen om hastigheden af ​​kryptering / dekryptering, og i hastigheden af ​​at generere nøgler. Især implementeringen af ​​E2-krypteringen ( Borland compiler ) viste en krypterings-/dekrypteringshastighed på 26 Mbps. Hastigheder over 25 Mbps blev dog også vist af fem andre ledere. Mens chifferscorer varierede efter compiler, platform og logik, forblev den overordnede tendens den samme. De fleste af forfatterne, der har skrevet om AES-konkurrencen, hævder, at E2, sammen med nogle andre cifre, bestod den første runde med succes. E2 nåede dog ikke til finalen af ​​de fem bedste cifre. NIST bemærkede, at på trods af god hastighedsydelse og fravær af sårbarheder , er kravene til ikke-flygtig hukommelse for høje ( CAST-256 led på samme måde ). [en]

Krypteringsalgoritme

[2]

Arbejdet med krypteringsalgoritmen kan opdeles i tre hoveddele : IT-funktionen eller initial transformation (IT) , Feistel -cellen baseret på F-funktionen, gentaget 12 gange, og FT-funktionen eller den endelige datakonverter ( Engelsk finale transformation (FT) ). Blokken af ​​den algoritme, der er ansvarlig for nøgleplanlægning ( eng. key sheduling part ), før kryptering, fra den hemmelige nøgle K skaber seksten undernøgler {k1,..k16}, som hver er en 128-bit bit vektor (et element af Galois-feltet (2 ^ 128 )). Den første transformation af klartekst M udføres ved hjælp af IT-funktionen og to genererede nøgler nummereret 13 og 14( og )    

M'=IT(M, , )

M` er opdelt i to blokke af lige længde, hver af elementerne er en 64 -bit bit vektor . Derefter udføres 12 cyklusser af transformationer i Feistel-cellen, hvor højre blok ved den aktuelle iteration af cyklussen bestemmes af modulo to-addition af venstre del af den foregående iteration af cyklussen og resultatet af funktionen F, hvis argumenter er den højre del af den forrige iteration og tasten , og venstre blok ved r-trinnet i cyklussen tildeles værdien af ​​højre blok ved r-1-trin. Cyklussen gentages 12 gange, dvs. r skifter fra 1 til 12

= = .

Den sidste fase af kryptering er udførelsen af ​​FT-funktionen. Resultatet af FT-funktionen, hvis argumenter er sammenkædningen af ​​højre og venstre del ved udgangen af ​​den 12. iteration af Feistel-cellen og tasterne :

`

Dekrypteringsalgoritme

Dekryptering sker i henhold til en ordning, der ligner kryptering. Arbejdet med dekrypteringsalgoritmen kan opdeles i tre hoveddele: IT-funktion (initial transformation - engelsk initial information (IT) ), 12 cyklusser af Feistel -cellen med F-funktion og i slutningen FT-funktion ( engelsk finale transformation (FT) ). Blokken af ​​den algoritme, der er ansvarlig for nøgleplanlægning ( engelsk key sheduling ) fra den hemmelige nøgle umiddelbart før kryptering genererer 16 undernøgler { }, som er bitvektorer med dimension 128 (et element i Galois-feltet GF(2^128)). I det første trin udføres IT-funktionen, hvis argumenter er kryptogrammet C og to undernøgler   

`

Resultatet af IT-funktionen C` er opdelt i 2 lige store dele af 64 bit (halv blok): højre og venstre ( ). Dernæst udføres 12 cyklusser af Feistel-cellen baseret på F-funktionen ( skifter fra 12 til 1).


Ved slutningen af ​​den sidste cyklus af Feistel-cellen er blokkens halvdele sammenkædet ( ). Og i slutningen - den endelige transformation: FT-funktionen udføres , hvis argumenter er resultatet af sammenkædningen af ​​` og to nøgler . Resultatet af at udføre FT-funktionen er klartekst .

Nøglegenerator (Nøgleplanlægger)

Baseret på den hemmelige nøgle ( { } har en dimension på en halv blok, det vil sige 64 bit og er et argument for krypterings- og dekrypteringsfunktionerne), undernøgler {i=1;2…16} ( bitvektorer med dimension 128) genereres ved hjælp af G-funktionen og S-funktionerne. Nøglegenereringsproceduren forbliver næsten uændret, hvis den private nøglelængde er 128, 192 eller 256 bit. Hvis den angivne længde er 128 bit, vælges konstanter som værdier som følger: , . Hvis nøglelængden er 192 bit, er nøgleværdien , hvor S() er S-funktionen.

Elementære funktioner

F-funktion

BRS(),S(),P() — henholdsvis BRS-funktion, S-funktion, P-funktion; X,Y - ord i det binære alfabet med en dimension på 64 bit (halvdelen af ​​blokken);  — nøgler på 128 bit hver. H er et 64-bit dimensionsrum .

Essensen af ​​F-funktionen er konverteringen af ​​binære alfabetord på 64 bit med en given nøgle på 128 bit. Resultatet af transformationen er et 64-bit binært alfabetord.

IT-funktion (indledende behandlingsfunktion)

IT-funktion eller initial datakonverter:

H er rummet af 64-bit binære alfabetord; X,A,B — 128-bit binære ord; BP() - BP funktion;  er en binær operation .

FT-Function (endelig transformationsfunktion)

FT-funktion eller endelig datakonverter:

.

H er rummet af 64-bit binære alfabetord; X,A,B — 128-bit binære ord; () er en funktion invers af BP-funktionen;  er den binære operation de.

FT-funktionen er det omvendte af IT-funktionen:

.

BRL-funktion

BRL-funktion ( eng.  byte rotate left function ), eller cyklisk skift til venstre, er en integreret del af F-funktionen:

{ } er et binært ord med en dimension på 8 bits ( bytes ) eller med andre ord et element i Galois-feltet .

S-funktion

S-funktionen er den del af F-funktionen, der er defineret af s-boks :

.

S-boks struktur

S-boksen, der bruges i S-funktionen, er defineret som følger:

, hvor

Det er ikke forbudt at bruge tabeller med allerede beregnede værdier på s(x) i beregninger. Det er


Tabel over beregnede s-boks værdier:
225 66 62 129 78 23 158 253 180 63 44 218 49 tredive 224 65
204 243 130 125 124 atten 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 en 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 femten
145 34 fire 237 166 72 73 103 236 247 192 57 206 242 45 190
93 28 227 135 7 13 122 244 251 halvtreds 245 140 219 143 37 150
168 234 205 51 101 84 6 141 137 ti 94 217 22 fjorten 113 108
elleve 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 otte 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 tyve 172
249 95 79 196 195 209 252 221 178 89 230 181 54 82 74 42

P-funktion

P-funktion - en integreret del af F-funktionen

P - transformationsmatrix, der beskriver P-funktionen

G-funktion

G - funktionen udfører følgende visning:

, hvor  - f-funktion.

f-funktion

F-funktionen er nødvendig for at beregne G-funktionen. f-funktion er defineret som følger:


, hvor

P() er en P-funktion, S() er en S-funktion.

Binær operator

Den binære operator er defineret som følger:

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

Den binære operator de

Den binære operator de er defineret som følger:

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

BP-funktion

BP -  funktionen eller byte-permutationsfunktionen er en del af IT-funktionen og FT-funktionen. Det er defineret som følger:

,hvor .

Den inverse af BP-transformationen, eller BP^{-1}, beregnes som følger:

,hvor


.

Krypteringsalgoritme

Ansatte i informationsteknologi R&D Center Mitsubishi Electric Corporation Mitsuru Matsui og Toshio Tokita opdagede, at chifferen ikke var modstandsdygtig over for differentiel kryptoanalyse . [3] På trods af dette forbliver chifferen (ved hjælp af 12 krypteringscyklusser) stærk fra et praktisk synspunkt. Selvom Mitsuru Matsui og Toshio Tokita var i stand til at vise, at sikkerhedsniveauet for E2-chifferet med færre krypteringscyklusser er væsentligt lavere end det, udviklerne har angivet.

Ulemper ved chiffer

Høje krav til ikke-flygtig hukommelse.

Forskel fra Camellia

Se også

Noter

  1. [1]  (engelsk) . – 1999.
  2. Nippon Telegraph and Telephone Corporation. Specifikation af E2 - en 128-bit blokchiffer. - 14. juni 1998. - S. 1-14. - 1-14 sek.
  3. Mitsuru Matsui og Toshio Tokita. Kryptanalyse af en reduceret version af Block Cipher E2".

Links