CLEFIA | |
---|---|
Teremtő | Taizō Shirai, Kyouji Shibutani, Tohru Akishita, Shiho Moriai, Tetsu Iwata |
Létrehozva | 2007_ _ |
közzétett | 2007. március 22 |
Kulcsméret | 128, 192, 256 bit |
Blokkméret | 128 bites |
A körök száma | 18/22/26 (a kulcs méretétől függ) |
Típusú | Feistel hálózat |
A CLEFIA (a francia kulcs "kulcs" szóból) egy blokk-rejtjel , amelynek blokkmérete 128 bit, kulcshossza 128, 192 vagy 256 bit, és 18, 22, 26-os körök száma. Ez a kriptoalgoritmus a "könnyű" algoritmusokhoz tartozik, és a Feistel hálózatot használja fő szerkezeti egységként. A CLEFIA-t a Sony Corporation fejlesztette ki, és 2007-ben vezették be. A szerzők Taizo Shirai, Kyoji Shibutani, Toru Akishita, Shiho Moriai és a Nagoya Egyetem docense, Tetsu Iwata.
Ennek a titkosításnak az a fő célja, hogy az AES biztonságos alternatívájaként használhassa a szerzői jogvédelem és a DRM rendszerek területén , valamint az RFID - címkékben és az intelligens kártyákban .
Ez az egyik leghatékonyabb titkosítási algoritmus hardveres implementációja esetén: a CLEFIA hardveres megvalósítása a kódoló egyenértékű logikai cellájánként elérheti a 400,96 Kbps hatékonyságot , ami a legmagasabb az ISO szabványokban szereplő algoritmusok között. 2008 [1] .
Az algoritmus volt az egyik első titkosító, amely a DSM ( Diffusion Switching Mechanism ) technológiát használta a lineáris és differenciális kriptoanalízis elleni védelem növelésére [2] [3] .
A bináris karakterlánc előtagja hexadecimális formában | |
bitben mutatja a hosszt | |
Összefűzés | |
Érték frissítése értékenként | |
Bitenkénti XOR | |
Szorzás be |
Az algoritmus két komponensből áll: egy kulcsfeldolgozó részből és egy adatfeldolgozó részből. A CLEFIA körök száma a kulcs hosszától függ, és 18, 22 vagy 26 kör, 36, 44 és 52 alkulccsal. Az algoritmus kulcsfehérítést használ további alkulcsokkal az adatfeldolgozás előtt és után.
Az adattitkosítás alapvető szakasza a CLEFIA-ban egy általánosított , 4 vagy 8 ágból álló Feistel hálózat alkalmazása, amelyet mind adatfeldolgozás, mind kulcsfeldolgozás szempontjából használnak (1. ábra). Általános esetben, ha egy általánosított Feistel hálózatnak d-ágai és r-körei vannak, akkor azt ( eng. generalized Feistel network ) jelöljük . Ezután a Feistel hálózat működési algoritmusát vesszük figyelembe 4 ág és egy 128 bites adatblokk használata esetén.
A 4 x 32 bites bemenetek ( ) és a 4 x 32 bites kimenetek ( ) mellett kerek gombok is használatosak . Számuk annak köszönhető, hogy minden körben feleannyi kulcsra van szükség, mint az ágakra. a kulcsfeldolgozó részben jönnek létre [4] .
Minden Feistel cella két különböző funkciót is magában foglal : . -a függvények az SP típusú függvényekhez tartoznak, és használatuk:
A két és -függvény közé tartozik a nemlineáris 8 bites S-box és , amelyeket alább tárgyalunk, valamint a és a méret mátrixait . Mindegyik -függvény más sorrendben használja ezeket az S-boxokat, és más eloszlási mátrixot használ a Galois-szorzáshoz. Az ábrákon a -függvények [4] tartalma látható . - a függvények meghatározása a következő:
A CLEFIA két különböző típusú S-boxot használ, mindegyik 8 bites méretű. Ezeket úgy állítják elő, hogy minimálisra csökkentsék az általuk elfoglalt területet, amikor hardverben implementálják őket. Az első ( ) 4 bites véletlenszerű S-boxokból áll. A második ( ) az inverz függvényt használja a mezőn . Az alábbi táblázatok az S-boxok kimeneti értékeit mutatják hexadecimálisan. A 8 bites S-box bemenet felső 4 bitje egy sort, az alsó 4 bit pedig egy oszlopot jelöl. Például, ha az értéket adjuk meg , akkor a blokk kimenete [3] .
Első S-blokknégy 4 bites S-box felhasználásával készült az alábbiak szerint:
A kimenő adatok megszerzésének algoritmusa a blokk használatakor 1. lépés 2. lépés 3. lépés.A szorzást a feletti polinomokban hajtjuk végre , amit egy irreducibilis polinom határoz meg . A táblázatban megtalálja a megfelelő fogadott S-boxot .
|
|
A blokk meghatározása a következő:
Ebben az esetben az inverz függvény a mezőben van, amit egy irreducibilis polinom ad meg . alatti affin transzformációk , a következőképpen definiálva:
|
|
Itt azt használják, hogy és . Így egy blokkot kapunk .
.0 | .egy | .2 | .3 | .négy | .5 | .6 | .7 | .nyolc | .9 | .a | .b | .c | .d | .e | .f | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0. | 6c | da | c3 | e9 | 4e | 9d | 0a | 3d | b8 | 36 | b4 | 38 | 13 | 34 | 0c | d9 |
egy. | bf | 74 | 94 | 8f | b7 | 9c | e5 | dc | 9e | 07 | 49 | 4f | 98 | 2c | b0 | 93 |
2. | 12 | eb | CD | b3 | 92 | e7 | 41 | 60 | e3 | 21 | 27 | 3b | e6 | 19 | d2 | 0e |
3. | 91 | tizenegy | c7 | 3f | 2a | 8e | a1 | időszámításunk előtt | 2b | c8 | c5 | 0f | 5b | f3 | 87 | 8b |
négy. | fb | f5 | de | húsz | c6 | a7 | 84 | ce | d8 | 65 | 51 | c9 | a4 | ef | 43 | 53 |
5. | 25 | 5d | 9b | 31 | e8 | 3e | 0d | d7 | 80 | ff | 69 | 8a | ba | 0b | 73 | 5c |
6. | 6e | 54 | tizenöt | 62 | f6 | 35 | harminc | 52 | a3 | 16 | d3 | 28 | 32 | fa | aa | 5e |
7. | vö | ea | szerk | 78 | 33 | 58 | 09 | 7b | 63 | c0 | c1 | 46 | 1e | df | a9 | 99 |
nyolc. | 55 | 04 | c4 | 86 | 39 | 77 | 82 | ec | 40 | tizennyolc | 90 | 97 | 59 | dd | 83 | 1f |
9. | 9a | 37 | 06 | 24 | 64 | 7c | a5 | 56 | 48 | 08 | 85 | d0 | 61 | 26 | kb | 6f |
a. | 7e | 6a | b6 | 71 | a0 | 70 | 05 | d1 | 45 | 8c | 23 | 1c | f0 | ee | 89 | hirdetés |
b. | 7a | 4b | c2 | 2f | db | 5a | 4d | 76 | 67 | 17 | 2d | f4 | cb | b1 | 4a | a8 |
c. | b5 | 22 | 47 | 3a | d5 | tíz | 4c | 72 | cc | 00 | f9 | e0 | fd | e2 | fe | ae |
d. | f8 | 5f | ab | f1 | 1b | 42 | 81 | d6 | lenni | 44 | 29 | a6 | 57 | b9 | af | f2 |
e. | d4 | 75 | 66 | bb | 68 | 9f | ötven | 02 | 01 | 3c | 7f | 8 D | 1a | 88 | bd | ac |
f. | f7 | e4 | 79 | 96 | a2 | fc | 6d | b2 | 6b | 03 | e1 | 2e | 7d | tizennégy | 95 | 1d |
A terjedési mátrixok meghatározása a következő:
|
|
A mátrix- és vektorszorzást egy irreducibilis polinom által meghatározott mezőben hajtjuk végre .
Így az általánosított Feistel hálózat alapján (4 bemenet adatblokkhoz; 2r bemenet kerek kulcsokhoz; 4 kimenet titkosított szöveghez):
Adattitkosítási és visszafejtési algoritmus:
Titkosítás ( ) 1. lépés 2. lépés 2.1. 2.2. lépés. 3. lépés Dekódolás ( ) 1. lépés 2. lépés 2.1. 2.2. lépés. 3. lépésA körök száma 18, 22 és 26 a 128 bites, 192 bites és 256 bites kulcsoknál. A teljes összeg a kulcs hosszától függ, így az adatfeldolgozási részhez 36, 44, illetve 52 kerek kulcsra van szükség a 128 bites, 192 bites, illetve 256 bites kulcsokhoz.
eredmény kulcsfehérítésnek alávethető _
A CLEFIA adatfeldolgozási rész, amely a titkosítást és a visszafejtést tartalmazza, XOR eljárásokat tartalmaz a szöveg és a fehérítő kulcsok között az algoritmus elején és végén.
Legyen tehát a nyílt szöveg és a rejtjelezett szöveg, és legyen a nyílt szöveg és a titkosított szövegrész, ahol és , és legyenek a fehérítő billentyűk és a és a kulcsfeldolgozó rész által biztosított kerek billentyűk. Ezután a kulcsfehérítést használó titkosítási algoritmus a következő:
Titkosítási funkció 1. lépés. 2. lépés. 3. lépés. Dekódolási funkció 1. lépés. 2. lépés. 3. lépés.A CLEFIA titkosító kulcsfeldolgozó része 128, 192 és 256 bites kulcsokat támogat, és fehérítő kulcsokat és kerek kulcsokat eredményez az adatfeldolgozó rész számára. Legyen a kulcs, és legyen a közbenső kulcs (amelyet a csökkentett adatfeldolgozási rész felhasználásával kapunk), ekkor a kulcsfeldolgozási rész három szakaszból áll:
A generáláshoz a 128 bites kulcs kulcsfeldolgozási része 128 bitet (4 bemenet 32 bites), míg a 192/256 bites kulcsokhoz 256 bitet (8 bemenet 32 bites) használ. Az alábbiakban az algoritmus leírása olvasható 128 bites kulcs esetén.
Ez az algoritmus a DoubleSwap bitcsere funkciót használja (szimbólum: ):
Sőt , egy bit karakterláncot jelöl, amely a -edik bittől a -edik bitig vágott -ból .
A séma számos (if ) kerek kulcsot igényel bemenetként , és ha ezt a sémát alkalmazzuk a kulcsfeldolgozási részben, a CLEFIA titkosítás előre generált konstansokat használ kerek kulcsként. Ezenkívül a második szakaszban, a és generálásakor további konstansokra van szükség , amelyek száma egyenlő (de ebben az esetben a konstansok és az adatfeldolgozási részből származó konstansok).
Ezeket a 32 bites konstansokat a következőképpen jelöljük: ahol az állandó száma, a kulcshoz használt bitek száma (lehet 128, 196, 256). Ekkor a konstansok száma 60, 84, 92 lesz 128, 192, 256 bites kulcsoknál.
Hagyjuk és . Ezután a generálás algoritmusa (a táblázatban az iterációk száma és a kezdeti értékek ):
1. lépés 2. lépés 2.1. 2.2. lépés. 2.3. lépés.Ahol - logikai negáció, - ciklikus balra eltolás -bittel; és a szorzás egy mezőben és egy határozottan irreducibilis polinomban történik .
A 128 bites közbenső kulcsot a használatával állítjuk elő , amely huszonnégy 32 bites állandót használ kerek kulcsként és adatként a titkosításhoz. Ezután és a következő lépésekben használatosak :
Generáció innen : 1. lépés. Generáció innen : 2. lépés Generáció in és : 3. lépés 3.1. 3.2. lépés. 3.3. lépés. 3.4. lépés.A CLEFIA hatékonyan implementálható mind hardveren, mind szoftveresen. A táblázat bemutatja az ebben a titkosításban használt technológiák fő előnyeit [3] .
| |
SP-típusú -függvények |
|
DSM |
|
S-blokkok |
|
mátrixok |
|
Kulcsfeldolgozó rész |
|
A CLEFIA algoritmus előnyei és jellemzői a következők:
A CLEFIA általánosított 4 ágú Feistel struktúrát használ, amely a hagyományos 2 ágú Feistel struktúra kiterjesztéseként tekinthető. Sokféle általánosított Feistel-struktúra létezik. A CLEFIA algoritmus ennek a szerkezetnek a második típusát használja (1. séma) [5] . A második típus szerkezete négy adatsorhoz egy körben két F-függvényt tartalmaz.
A 2-es típusú szerkezet a következő tulajdonságokkal rendelkezik:
Az első funkció nagy előnyt jelent a szoftver- és hardvermegvalósításoknál; a második funkció pedig a hatékony megvalósításra alkalmas, különösen hardverben. Ugyanakkor a körök száma észrevehetően növekszik a harmadik funkció miatt. A második típusú struktúra előnyei azonban meghaladják ennek a blokk titkosításnak a hátrányait, mivel egy új, DSM-et és kétféle S-boxot használó programozási technikát alkalmaznak, amely hatékonyan csökkenti a körök számát.
A CLEFIA két különböző terjedési mátrixot használ a differenciális támadásokkal és a lineáris támadásokkal szembeni ellenállás javítására a DSM mechanizmus segítségével (2. séma). Ezt a tervezési technikát eredetileg a hagyományos Feistel hálózatokhoz fejlesztették ki [3] . Ezt a technikát a -ra vitték át , ami ennek a titkosításnak az egyik egyedülálló tulajdonsága. Ezenkívül a DSM-nek köszönhetően ugyanannyi körrel növelheti az aktív S-boxok garantált számát.
A következő táblázat a CLEFIA titkosításban lévő aktív S-boxok garantált számát mutatja. Az adatokat számítógépes szimulációval nyertük kimerítő keresési algoritmus segítségével [3] . A táblázat „D” és „L” oszlopa az aktív S-boxok garantált számát mutatja differenciál-, illetve lineáris kriptoanalízisben. Ebből a táblázatból látható, hogy a DSM hatása már -nél megjelenik , és az S-boxok garantált száma kb. 20-40%-kal nő, ellentétben a DSM nélküli szerkezettel. Ezért a körök száma csökkenthető, ami azt jelenti, hogy a teljesítmény javul.
Az aktív S dobozok garantált száma |
---|
A táblázatban egy sor piros színnel van kiemelve, ami azt jelzi, hogy a titkosítás minimálisan szükséges számú kört kell végrehajtania ahhoz, hogy ellenálljon a brute-force kriptoanalízisnek ( lásd még ). A sorok kék színnel vannak kiemelve, amelyek köreinek számát a CLEFIA algoritmus 128/192/256 bites kulcsokkal, ill.
A CLEFIA két különböző típusú 8 bites S-boxot használ: az egyik négy 4 bites véletlenszerű S-boxon alapul; a másik pedig az inverz függvényen alapul , amely a lehető legnagyobb támadási komplexitást biztosítja a differenciális kriptográfiai elemzéshez és a lineáris kriptográfiai elemzéshez . Mindkét S-boxot a hatékony megvalósítás érdekében választották, különösen hardverben.
A biztonsági beállításoknál a , és az . Mert és mindkettő egyenlő [6] .
A DSM-mel ellátott aktív S-boxok számának táblázata szerint (a Diffusion Switching Mechanism című bekezdésben ) a minimális körszám 12. Így 28 aktív S-boxot használva egy 12 körös CLEFIA-hoz és ( lásd még ) , meghatározzuk, hogy a jellemző valószínűsége . Ez azt jelenti, hogy a támadás összetettebb, és nincs hasznos különbség a 12 körre a támadó számára. Továbbá, mivel alsó értéke van , a tényleges felső korlát várhatóan alacsonyabb lesz, mint a fenti becslés [3] . Ennek eredményeként úgy gondoljuk, hogy egy teljes CLEFIA-kör védett a differenciális kriptoanalízistől (a CLEFIA-ban 18 kört használnak).
A lineáris kriptoanalízis összetettségének becsléséhez egy olyan megközelítést alkalmaznak, amely az aktív S-boxok adott számú körre történő számlálásán alapul. Mivel 30 aktív S-boxot használva egy 12 körös CLEFIA-hoz ,. Ez arra a következtetésre vezet, hogy a támadó nehezen talál elegendő szöveg-titkosszöveg párost, amellyel sikeresen megtámadhatja a CLEFIA-t. Ennek eredményeként egy teljes értékű CLEFIA kellően biztonságos a lineáris kriptoanalízissel szemben [6] .
lehetetlen differenciáltámadás az legerősebb támadás a CLEFIA ellen A következő két lehetetlen differenciálút található [7] :
ahol bármely nem nulla érték. Így a fent leírt funkció segítségével szimulálható egy támadás (minden kulcshosszra), amely visszaállítja az aktuális kulcsot. Az alábbi táblázat összefoglalja a lehetetlen differenciált támadásokhoz szükséges bonyolultságokat. A táblázat szerint a teljes ciklusú CLEFIA-nak megfelelő biztonsági résszel kell rendelkeznie ezzel a támadással szemben.
A körök száma | Kulcs hossza | Kulcsfehérítés | Nyitott szövegek száma | Időbeli összetettség |
---|---|---|---|---|
tíz | 128,192,256 | + | ||
tizenegy | 192.256 | + | ||
12 | 256 | - |
A CLEFIA egyidejűleg kompakt és gyors megvalósítást biztosít a biztonság feláldozása nélkül. Az AES-hez, a legszélesebb körben használt 128 bites blokkrejtjelhez képest a CLEFIA előnyt jelent a hardveres megvalósításban. A CLEFIA kevesebb, mint 6000 egyenértékű logikai cellával átjárónkénti átviteli sebesség pedig 2008-ban a legmagasabb a világon (hardveres implementáció esetén) 1] .
Az alábbi táblázat a CLEFIA rejtjel összehasonlító jellemzőit mutatja néhány más jól ismert rejtjelhez képest [1] :
Algoritmus | Blokkméret (bit) | Kulcsméret (bit) | A körök száma | Sávszélesség ( Mpbs ) | Terület (Kgates) | Hatékonyság (Kpbs/kapuk) |
---|---|---|---|---|---|---|
CLEFIA | 128 | 128 | tizennyolc | 1,605,94 | 5.98 | 268,63 |
36 | 715,69 | 4.95 | 144,59 | |||
AES | 128 | 128 | tíz | 3 422,46 | 27.77 | 123,26 |
Kamélia | 128 | 128 | 23 | 1 488,03 | 11.44 | 130.11 |
MAG | 128 | 128 | 16 | 913.24 | 16.75 | 54.52 |
52 | 517.13 | 9.57 | 54.01 | |||
CAST-128 | 64 | 128 | 17 | 386.12 | 20.11 | 19.20 |
MISTY1 | 64 | 128 | 9 | 915,20 | 14.07 | 65.04 |
harminc | 570,41 | 7.92 | 72.06 | |||
TDEA | 64 | 56, 112, 168 | 48 | 355,56 | 3.76 | 94,50 |
Algoritmus | Blokkméret (bit) | Kulcsméret (bit) | A körök száma | Sávszélesség ( Mpbs ) | Terület (Kgates) | Hatékonyság (Kpbs/kapuk) |
---|---|---|---|---|---|---|
CLEFIA | 128 | 128 | tizennyolc | 3 003,00 | 12.01 | 250.06 |
36 | 1 385,10 | 9.38 | 147,71 | |||
AES | 128 | 128 | tíz | 7,314,29 | 45,90 | 159,37 |
Kamélia | 128 | 128 | 23 | 2 728,05 | 19.95 | 136,75 |
MAG | 128 | 128 | 16 | 1 556,42 | 25.14 | 61,90 |
52 | 898,37 | 12.33 | 72,88 | |||
CAST-128 | 64 | 128 | 17 | 909,35 | 33.11 | 27.46 |
MISTY1 | 64 | 128 | 9 | 1 487,68 | 17.22 | 86.37 |
harminc | 772,95 | 10.12 | 76.41 | |||
TDEA | 64 | 56, 112, 168 | 48 | 766,28 | 5.28 | 145.10 |
2019-ben az ISO és az IEC szervezetei beépítették a PRESENT és a CLEFIA algoritmusokat a könnyű titkosítás ISO / IEC 29192-2:2019 [8] nemzetközi szabványába .
A C programozási nyelvben létezik egy CLEFIA_H könyvtár, amely megvalósítja a CLEFIA titkosítást [9] .
Szimmetrikus titkosítási rendszerek | |
---|---|
Rejtjelfolyam adatfolyam | |
Feistel hálózat | |
SP hálózat | |
Egyéb |