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.
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]
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 :
`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 .
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.
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 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 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:
.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 .
Az S-függvény az F-függvény azon része, amelyet az s-box határoz meg :
.Az S-függvényben használt S-box meghatározása a következő:
, aholNem tilos a már kiszámított s(x) értékekkel rendelkező táblázatok használata a számításokban. Azaz
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-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 - a funkció a következő megjelenítést hajtja végre:
, ahol - 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ó:
P() egy P-függvény, S() egy S-függvény.
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 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 .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
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.
Magas követelmények a nem felejtő memóriával szemben.
Szimmetrikus titkosítási rendszerek | |
---|---|
Rejtjelfolyam adatfolyam | |
Feistel hálózat | |
SP hálózat | |
Egyéb |