E2 (rejtjel)

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt hozzászólók, és jelentősen eltérhet a 2016. szeptember 12-én felülvizsgált verziótól ; az ellenőrzések 4 szerkesztést igényelnek .
E2
Teremtő NTT
közzétett 1998
Kulcsméret 128 (192, 256) bit
Blokkméret 128 bites
A körök száma 12
Típusú Feistel sejt

E2 ( angolul  Efficient Encryption  – hatékony titkosítás) – a kriptográfiában , a Feistel cellán alapuló szimmetrikus blokk-kriptográfiai algoritmusok családja . Az E2 128 bites blokkot és 128, 192, 256 bites kulcsokat használ. Az NTT (Nippon Telegraph and Telephone) készítette 1998 - ban , és bemutatták az AES versenyen . Ennek a rejtjelnek az utódja a Camellia titkosítás , amely szintén az NTT (Nippon Telegraph and Telephone) munkájának eredménye.

Történelem

Az NTT által készített E2-rejtjelet tizennégy másik rejtjellel együtt beküldték az AES-pályázatra. Az E2 sikeresen teljesítette a kriptográfiai erősségi tesztet. Az E2 titkosítás erőssége nem befolyásolta a teljesítményét. Az E2 az egyik vezető pozíciót foglalta el mind a titkosítási / visszafejtési sebességért, mind a kulcsok előállításának sebességéért folytatott versenyben. Különösen az E2 titkosítás ( Borland fordító ) megvalósítása 26 Mbps titkosítási/dekódolási sebességet mutatott. 25 Mbps feletti sebességet azonban öt másik vezető is mutatott. Míg a titkosítási pontszámok fordítóként, platformonként és logikánként változtak, az általános tendencia ugyanaz maradt. Az AES versenyről író szerzők többsége azt állítja, hogy az E2 néhány más titkosítással együtt sikeresen átjutott az első fordulón. Az E2 azonban nem jutott be a legjobb öt titkosítás döntőjébe. A NIST megjegyezte, hogy a jó sebesség és a sebezhetőség hiánya ellenére a nem felejtő memóriával szemben támasztott követelmények túl magasak (a CAST-256 hasonlóan szenvedett ). [egy]

Titkosító algoritmus

[2]

A titkosítási algoritmus munkája három fő részre osztható : az IT-függvényre, vagyis kezdeti transzformációra (IT) , a 12-szer ismételt F-függvényen alapuló Feistel-cellára és az FT-függvényre, vagyis a végső adatátalakítóra. ( angol finálé transzformáció (FT) ). A kulcstervezésért felelős algoritmus blokkja ( eng. key sheduling part ) a titkosítás előtt a K titkos kulcsból tizenhat {k1,..k16} alkulcsot hoz létre, amelyek mindegyike egy 128 bites vektor ( egy eleme a Galois-mező (2 ^ 128 )). Az M egyszerű szöveg első átalakítása az IT függvény és két generált 13-as és 14-es kulcs ( és ) segítségével történik.   

M'=IT(M, , )

M` két egyenlő hosszúságú blokkra van osztva , mindegyik elem egy 64 bites bites vektor . Ezután 12 transzformációs ciklust hajtunk végre a Feistel cellában, amelyben a ciklus aktuális iterációjában a jobb oldali blokkot a ciklus előző iterációjának bal oldali részének és az F függvény eredményének modulo two összeadásával határozzuk meg. Az argumentumok az előző iteráció jobb oldali részét és a kulcsot jelentik, a ciklus r lépésében lévő bal blokkhoz pedig a jobb oldali blokk értéke van hozzárendelve az r-1 lépésben. A ciklus 12-szer ismétlődik, azaz r 1-ről 12-re változik

= = .

A titkosítás utolsó szakasza az FT funkció végrehajtása. Az FT függvény eredménye, amelynek argumentumai a jobb és bal rész összefűzése a Feistel cella 12. iterációjának kimenetén és a kulcsok :

`

Dekódoló algoritmus

A visszafejtés a titkosításhoz hasonló séma szerint történik. A dekódoló algoritmus munkája három fő részre osztható: IT-függvény (kezdeti transzformáció - angol kezdeti információ (IT) ), a Feistel cella 12 ciklusa F-függvénnyel és a végén FT-függvény ( angol finale transzformáció (FT) ) . A kulcstervezésért ( angolul key sheduling ) felelős algoritmus blokkja a titkos kulcsból közvetlenül a titkosítás előtt 16 { } alkulcsot generál, amelyek 128-as dimenziójú bitvektorok (a GF (2^128) Galois mező eleme). Az első lépésben az IT funkció kerül végrehajtásra, melynek argumentumai a C kriptogram és két alkulcs   

`

A C` IT-függvény eredménye 2 egyenlő részre, 64 bites részre van felosztva (fél blokk): jobbra és balra ( ). Ezután a Feistel cella 12 ciklusát hajtják végre az F-funkció alapján ( 12-ről 1-re változik).


A Feistel cella utolsó ciklusának végén a blokk feleit összefűzzük ( ). És a végén - a végső transzformáció: végrehajtódik az FT-függvény , amelynek argumentumai a ` és két kulcs összefűzésének eredménye . Az FT függvény végrehajtásának eredménye a nyílt szöveg .

Kulcsgenerátor (Key Planner)

A titkos kulcs alapján ( a { } dimenziója fél blokk, azaz 64 bit, és ez egy argumentum a titkosítási és visszafejtési funkciókhoz), {i=1;2…16} alkulcsok ( 128-as dimenziójú bitvektorok ) a G-függvény és az S-függvény segítségével jönnek létre. A kulcsgenerálási eljárás szinte változatlan marad, ha a privát kulcs hossza 128, 192 vagy 256 bit. Ha a megadott hosszúság 128 bit, akkor a konstansokat a következőképpen választjuk értékként: , . Ha a kulcs hossza 192 bit, akkor a kulcs értéke , ahol S() az S-függvény.

Elemi függvények

F-függvény

BRS(),S(),P() — rendre BRS-függvény, S-függvény, P-függvény; X,Y - a bináris ábécé 64 bites szavai (a blokk fele);  — egyenként 128 bites kulcsok. H egy 64 bites dimenziótér .

Az F-függvény lényege a 64 bites bináris ábécé szavak átalakítása adott 128 bites kulccsal. Az átalakítás eredménye egy 64 bites bináris ábécé szó.

IT-Function (kezdeti feldolgozási funkció)

IT funkció vagy kezdeti adatkonverter:

H a 64 bites bináris ábécé szavak tere; X,A,B — 128 bites bináris szavak; BP() - BP függvény;  egy bináris művelet .

FT-Function (végső transzformációs függvény)

FT funkció vagy végső adatkonverter:

.

H a 64 bites bináris ábécé szavak tere; X,A,B — 128 bites bináris szavak; () a BP-függvény inverze ;  a de bináris művelet.

Az FT függvény az IT függvény inverze:

.

BRL függvény

A BRL-függvény ( eng.  byte rotate left function ) vagy a ciklikus balra eltolás az F-függvény szerves része:

A { } egy bináris szó, amelynek dimenziója 8 bit ( byte ), vagy más szóval a Galois mező eleme .

S-Function

Az S-függvény az F-függvény azon része, amelyet az s-box határoz meg :

.

S-box szerkezet

Az S-függvényben használt S-box meghatározása a következő:

, ahol

Nem tilos a már kiszámított s(x) értékekkel rendelkező táblázatok használata a számításokban. Azaz


A számított s-box értékek táblázata:
225 66 62 129 78 23 158 253 180 63 44 218 49 harminc 224 65
204 243 130 125 124 tizennyolc 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 egy 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 tizenöt
145 34 négy 237 166 72 73 103 236 247 192 57 206 242 45 190
93 28 227 135 7 13 122 244 251 ötven 245 140 219 143 37 150
168 234 205 51 101 84 6 141 137 tíz 94 217 22 tizennégy 113 108
tizenegy 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 nyolc 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 húsz 172
249 95 79 196 195 209 252 221 178 89 230 181 54 82 74 42

P-Function

P-függvény - az F-függvény szerves része

P - a P-függvényt leíró transzformációs mátrix

G-Function

G - a funkció a következő megjelenítést hajtja végre:

, ahol  - f-függvény.

f-függvény

Az f-függvény a G-függvény kiszámításához szükséges. Az f-függvény a következőképpen definiálható:


, ahol

P() egy P-függvény, S() egy S-függvény.

Bináris operátor

A bináris operátor meghatározása a következő:

, ahol  - logikai bitenkénti összeadás (logikai "vagy") 1-gyel a gyűrűben .

A bináris operátor de

A de bináris operátor a következőképpen definiálható:

, ahol  - logikai bitenkénti összeadás (logikai "vagy") 1-gyel a gyűrűben .

BP függvény

A  BP függvény vagy bájtpermutációs függvény az IT függvény és az FT függvény része. Ennek meghatározása a következő:

,ahol .

A BP-transzformáció inverzét vagy BP^{-1}-t a következőképpen számítjuk ki:

,ahol


.

Kriptanalízis algoritmus

A Mitsubishi Electric Corporation Informatikai K+F központjának alkalmazottai Mitsuru Matsui és Toshio Tokita felfedezték, hogy a titkosítás nem ellenálló a differenciális kriptoanalízissel szemben . [3] Ennek ellenére a titkosítás (12 titkosítási ciklust használva) gyakorlati szempontból erős marad. Bár a Mitsuru Matsui és a Toshio Tokita meg tudta mutatni, hogy a kevesebb titkosítási ciklussal rendelkező E2-rejtjel biztonsági szintje lényegesen alacsonyabb a fejlesztők által elmondottaknál.

A titkosítás hátrányai

Magas követelmények a nem felejtő memóriával szemben.

Különbség a Camellia -tól

Lásd még

Jegyzetek

  1. [1]  (angol) . – 1999.
  2. Nippon Telegraph and Telephone Corporation. Az E2 specifikációja – 128 bites blokkrejtjel. - 1998. június 14. - S. 1-14. - 1-14 s.
  3. Mitsuru Matsui és Toshio Tokita. Az E2 blokk titkosítás csökkentett verziójának kriptoanalízise".

Linkek