CLEFIA | |
---|---|
Skaber | Taizō Shirai, Kyouji Shibutani, Tohru Akishita, Shiho Moriai, Tetsu Iwata |
Oprettet | 2007 _ |
offentliggjort | 22. marts 2007 |
Nøglestørrelse | 128, 192, 256 bit |
Blokstørrelse | 128 bit |
Antal runder | 18/22/26 (afhænger af nøglestørrelse) |
Type | Feistel netværk |
CLEFIA (fra fransk nøgle "nøgle") er en blokcifre med en blokstørrelse på 128 bit, en nøglelængde på 128, 192 eller 256 bit og et antal runder på henholdsvis 18, 22, 26. Denne kryptoalgoritme tilhører de "lette" algoritmer og bruger Feistel-netværket som den vigtigste strukturelle enhed. CLEFIA blev udviklet af Sony Corporation og introduceret i 2007. Forfatterne er Taizo Shirai, Kyoji Shibutani, Toru Akishita, Shiho Moriai og Nagoya University Associate Professor Tetsu Iwata.
Hovedformålet med denne chiffer er at bruge som et sikkert alternativ til AES inden for ophavsretsbeskyttelse og DRM-systemer , samt brug i RFID - tags og smart cards .
Det er en af de mest effektive kryptoalgoritmer, når det implementeres i hardware: hardwareimplementeringen af CLEFIA kan nå en effektivitet på 400,96 Kbps pr. ækvivalent logisk celle i indkoderen, hvilket er den højeste blandt de algoritmer, der er inkluderet i ISO-standarderne for 2008 [1] .
Algoritmen var en af de første chiffere, der brugte DSM ( Diffusion Switching Mechanism ) teknologi til at øge beskyttelsen mod lineær og differentiel kryptoanalyse [2] [3] .
Præfiks for binær streng i hexadecimal form | |
viser længde i bits | |
Sammenkædning | |
Opdater værdi efter værdi | |
Bitvis XOR | |
Multiplikation ind |
Algoritmen består af to komponenter: en nøglebehandlingsdel og en databehandlingsdel. Antallet af CLEFIA-runder afhænger af nøglelængden og er henholdsvis 18, 22 eller 26 runder med 36, 44 og 52 undernøgler. Algoritmen bruger nøgleblegning med yderligere undernøgler før og efter databehandling.
Det grundlæggende trin i datakryptering i CLEFIA er brugen af et generaliseret Feistel-netværk med 4 eller 8 grene, som bruges både med hensyn til databehandling og med hensyn til nøglebehandling (figur 1). I det generelle tilfælde, hvis et generaliseret Feistel-netværk har d-grene og r-runder, betegnes det som ( eng. generaliseret Feistel-netværk ). Dernæst overvejes Feistel-netværksoperationsalgoritmen i tilfælde af brug af 4 grene og en 128-bit datablok.
Ud over 4 x 32-bit indgange ( ) og 4 x 32-bit udgange ( ), bruges også runde taster . Deres antal skyldes, at hver runde kræver halvt så mange nøgler som grene. genereres i nøglebehandlingsdelen [4] .
Hver Feistel-celle involverer også to forskellige -funktioner: . -funktioner hører til SP-typen af funktioner og bruger:
De to - funktioner og brugt i inkluderer de ikke-lineære 8-bit S-bokse og , diskuteret nedenfor, og matricerne og af størrelse . Hver -funktion bruger disse S-bokse i en anden rækkefølge og bruger en anden distributionsmatrix til Galois-multiplikation. Figurerne viser indholdet af -funktioner [4] . -funktioner er defineret som følger:
CLEFIA bruger to forskellige typer S-bokse, hver 8 bit store. De er genereret på en sådan måde, at de minimerer det areal, de optager, når de implementeres i hardware. Den første ( ) består af 4-bit tilfældige S-bokse. Den anden ( ) bruger den omvendte funktion på feltet . Tabellerne nedenfor viser outputværdierne i hexadecimal for S-bokse. De øverste 4-bits for en 8-bit S-box-input angiver en række, og de nederste 4-bits angiver en kolonne. Hvis f.eks. værdien indtastes , udsender blokken [3] .
Første S-blokoprettet ved hjælp af fire 4-bit S-bokse som følger:
Algoritme til opnåelse af outputdata ved brug af blokken Trin 1. Trin 2. Trin 3.Multiplikation udføres i overpolynomier , som er defineret ved et irreducerbart polynomium . I tabellen kan du finde den tilsvarende modtagne S-boks .
|
|
Blokken er defineret som:
I dette tilfælde er den inverse funktion i feltet , som er givet af et irreducerbart polynomium . er affine transformationer over , defineret som følger:
|
|
Her bruges det at og . Således opnås en blok .
.0 | .en | .2 | .3 | .fire | .5 | .6 | .7 | .otte | .9 | .en | .b | .c | .d | .e | .f | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0. | 6c | da | c3 | e9 | 4e | 9d | 0a | 3d | b8 | 36 | b4 | 38 | 13 | 34 | 0c | d9 |
en. | 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 | elleve | c7 | 3f | 2a | 8e | a1 | f.Kr | 2b | c8 | c5 | 0f | 5b | f3 | 87 | 8b |
fire. | fb | f5 | de | tyve | 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 | femten | 62 | f6 | 35 | tredive | 52 | a3 | 16 | d3 | 28 | 32 | fa | aa | 5e |
7. | jfr | ea | udg | 78 | 33 | 58 | 09 | 7b | 63 | c0 | c1 | 46 | 1e | df | a9 | 99 |
otte. | 55 | 04 | c4 | 86 | 39 | 77 | 82 | ec | 40 | atten | 90 | 97 | 59 | dd | 83 | 1f |
9. | 9a | 37 | 06 | 24 | 64 | 7c | a5 | 56 | 48 | 08 | 85 | d0 | 61 | 26 | ca | 6f |
en. | 7e | 6a | b6 | 71 | a0 | 70 | 05 | d1 | 45 | 8c | 23 | 1c | f0 | ee | 89 | annonce |
b. | 7a | 4b | c2 | 2f | db | 5a | 4d | 76 | 67 | 17 | 2d | f4 | cb | b1 | 4a | a8 |
c. | b5 | 22 | 47 | 3a | d5 | ti | 4c | 72 | cc | 00 | f9 | e0 | fd | e2 | fe | ae |
d. | f8 | 5f | ab | f1 | 1b | 42 | 81 | d6 | være | 44 | 29 | a6 | 57 | b9 | af | f2 |
e. | d4 | 75 | 66 | bb | 68 | 9f | halvtreds | 02 | 01 | 3c | 7f | 8d | 1a | 88 | bd | ac |
f. | f7 | e4 | 79 | 96 | a2 | fc | 6d | b2 | 6b | 03 | e1 | 2e | 7d | fjorten | 95 | 1d |
Formeringsmatricerne er defineret som følger:
|
|
Matrix- og vektormultiplikationer udføres i et felt defineret af et irreducerbart polynomium .
Således baseret på det generaliserede Feistel-netværk (4 input til datablok; 2r input til runde taster; 4 udgange til chiffertekst):
Datakryptering og dekrypteringsalgoritme:
Kryptering ( ) Trin 1. Trin 2. Trin 2.1. Trin 2.2. Trin 3 Dekryptering ( ) Trin 1. Trin 2. Trin 2.1. Trin 2.2. Trin 3Antallet af runder er 18, 22 og 26 for henholdsvis 128-bit, 192-bit og 256-bit nøgler. Summen afhænger af nøglelængden, så databehandlingsdelen kræver 36, 44 og 52 runde nøgler for henholdsvis 128-bit, 192-bit og 256-bit nøgler.
fra også underlagt nøgleblegning
CLEFIA-databehandlingsdelen, der består af til kryptering og til dekryptering, inkluderer XOR -procedurer mellem tekst- og blegningsnøglerne i begyndelsen og slutningen af algoritmen.
Lad derfor være klarteksten og chifferteksten, og lad være klartekst- og chiffertekstdelene, hvor og , og lad være blegningstasterne og og være de runde taster, der leveres af nøglebehandlingsdelen. Så er krypteringsalgoritmen ved hjælp af nøgleblegning:
Krypteringsfunktion Trin 1. Trin 2. Trin 3. Dekrypteringsfunktion Trin 1. Trin 2. Trin 3.Nøglebehandlingsdelen af CLEFIA-chifferen understøtter 128, 192 og 256 bit nøgler og resulterer i blegningsnøgler og runde nøgler til databehandlingsdelen. Lad være nøglen, og vær den mellemliggende nøgle (opnået ved hjælp af den reducerede databehandlingsdel), så består nøglebehandlingsdelen af tre trin:
For at generere fra , bruger nøglebehandlingsdelen for en 128-bit nøgle 128-bit (4 inputs af 32 bits), mens for 192/256-bit nøgler bruges 256-bit (8 inputs af 32 bits). Det følgende er en beskrivelse af algoritmen i tilfælde af en 128-bit nøgle.
Denne algoritme bruger DoubleSwap bit swap-funktionen (symbol: ):
Desuden betegner det en bit-streng skåret fra -th bit til -th bit fra .
Skemaet kræver et antal (hvis ) runde nøgler som input , og når dette skema anvendes i nøglebehandlingsdelen, bruger CLEFIA-chifferet forudgenererede konstanter som runde nøgler. Der er også behov for yderligere konstanter i andet trin, når der genereres og , og deres antal er ens (men i dette tilfælde konstanterne og fra databehandlingsdelen).
Disse 32-bit konstanter er angivet som , hvor er antallet af konstanten, er antallet af bit brugt til nøglen (kan være 128, 196, 256). Så vil antallet af konstanter være 60, 84, 92 for henholdsvis 128, 192, 256 bit nøgler.
Lad og . Derefter algoritmen for generering (i tabellen, antallet af iterationer og begyndelsesværdier ):
Trin 1. Trin 2. Trin 2.1. Trin 2.2. Trin 2.3.Hvor - logisk negation, - cyklisk venstreskift for -bit; og multiplikation forekommer i et felt og et absolut irreducerbart polynomium .
Den 128-bit mellemnøgle genereres ved at bruge , som tager fireogtyve 32-bit konstanter som input som runde nøgler og som data til kryptering. Derefter og bruges til at generere og i følgende trin:
Generation fra : Trin 1. Generation fra : Trin 2 Generation fra og : Trin 3. Trin 3.1. Trin 3.2. Trin 3.3. Trin 3.4.CLEFIA kan implementeres effektivt i både hardware og software. Tabellen viser de vigtigste fordele ved de teknologier, der anvendes i denne chiffer [3] .
| |
SP-type -funktioner |
|
DSM |
|
S-klodser |
|
matricer |
|
Nøglebehandlingsdel |
|
Fordelene og funktionerne i CLEFIA-algoritmen er:
CLEFIA bruger en generaliseret 4-grenet Feistel-struktur, som ses som en forlængelse af den traditionelle 2-grenede Feistel-struktur. Der er mange typer af generaliserede Feistel-strukturer. CLEFIA-algoritmen bruger den anden type af denne struktur (skema 1) [5] . Strukturen af den anden type har to F-funktioner i en runde for fire datalinjer.
En type 2-struktur har følgende funktioner:
Den første funktion er en stor fordel for software- og hardwareimplementeringer; og den anden funktion er velegnet til effektiv implementering, især i hardware. Men samtidig stiger antallet af runder mærkbart på grund af den tredje feature. Fordelene ved den anden type struktur opvejer dog ulemperne ved dette blokchifferdesign, da der anvendes en ny programmeringsteknik ved hjælp af DSM og to typer S-bokse, hvilket effektivt reducerer antallet af runder.
CLEFIA bruger to forskellige udbredelsesmatricer til at forbedre modstanden mod differentielle angreb og lineære angreb ved hjælp af DSM-mekanismen (skema 2). Denne designteknik blev oprindeligt udviklet til traditionelle Feistel-netværk [3] . Denne teknik er blevet overført til , hvilket er en af de unikke egenskaber ved denne chiffer. Takket være DSM kan du også øge det garanterede antal aktive S-bokse med det samme antal runder.
Følgende tabel viser det garanterede antal aktive S-bokse i CLEFIA-chifferet. Dataene blev opnået ved computersimulering ved hjælp af en udtømmende søgealgoritme [3] . Kolonne "D" og "L" i tabellen viser det garanterede antal aktive S-bokse i henholdsvis differentiel og lineær kryptoanalyse. Af denne tabel kan det ses, at effekten af DSM allerede optræder ved , og det garanterede antal S-bokse stiger med omkring 20% - 40%, i modsætning til strukturen uden DSM. Derfor kan antallet af runder reduceres, hvilket betyder, at præstationen forbedres.
Garanteret antal aktive S-bokse |
---|
I tabellen er en række fremhævet med rødt, hvilket angiver det mindst nødvendige antal runder, for at chifferen er modstandsdygtig over for brute-force- krypteringsanalyse ( se også ). Rækker er fremhævet med blåt, hvor antallet af runder bruges i CLEFIA-algoritmen med henholdsvis 128/192/256-bit nøgler.
CLEFIA bruger to forskellige typer 8-bit S-bokse: den ene er baseret på fire 4-bit tilfældige S-bokse; og den anden er baseret på den omvendte funktion i , som har den maksimalt mulige angrebskompleksitet for differentiel kryptoanalyse og lineær kryptoanalyse . Begge S-bokse er valgt for effektiv implementering, især i hardware.
For sikkerhedsindstillinger er , og det er . For og begge er ens [6] .
Ifølge tabellen over antallet af aktive S-bokse med DSM (i afsnittet Using Diffusion Switching Mechanism ) er minimumsantallet af runder 12. Således bruges 28 aktive S-bokse til en 12-rund CLEFIA og ( se også ) , bestemmer vi, at sandsynligheden for karakteristikken er . Dette betyder, at kompleksiteten af angrebet er højere, og der er ingen brugbar differentialkarakteristik på 12 runder for angriberen. Da den har en lavere , forventes den faktiske øvre grænse at være lavere end ovenstående estimat [3] . Som et resultat mener vi, at en fuld CLEFIA-runde er beskyttet mod differentiel kryptoanalyse (18 runder bruges i CLEFIA).
For at estimere kompleksiteten af lineær kryptoanalyse anvendes en tilgang baseret på at tælle aktive S-bokse for et givet antal runder. Fordi at bruge 30 aktive S-bokse til en 12-rund CLEFIA, . Dette fører til den konklusion, at det er svært for en angriber at finde nok tekst-chiffertekst-par, der kan bruges til at angribe CLEFIA med succes. Som følge heraf er en CLEFIA med alle funktioner tilstrækkelig sikker mod lineær kryptoanalyse [6] .
umulige differentialangreb for at være et de mest kraftfulde angreb mod CLEFIA. Følgende to umulige differentielle veje er blevet fundet [7] :
hvor er enhver værdi, der ikke er nul. Ved at bruge den ovenfor beskrevne funktion er det således muligt at simulere et angreb (for hver nøglelængde), som vil genoprette den aktuelle nøgle. Følgende tabel opsummerer de kompleksiteter, der kræves for umulige differentielle angreb. Ifølge denne tabel forventes fuldcyklus CLEFIA at have en tilstrækkelig sikkerhedsmargin mod dette angreb.
Antal runder | Nøglens længde | Nøgleblegning | Antal åbne tekster | Tidskompleksitet |
---|---|---|---|---|
ti | 128.192.256 | + | ||
elleve | 192.256 | + | ||
12 | 256 | - |
CLEFIA giver en kompakt og hurtig implementering på samme tid uden at ofre sikkerheden. Sammenlignet med AES, den mest udbredte 128-bit blokchiffer, har CLEFIA en fordel i hardwareimplementering. CLEFIA kan opnå 1,6 Gb/s med mindre end 6000 ækvivalente logiske celler gennemstrømningen pr. gateway er den højeste i verden i 2008 (i tilfælde af hardwareimplementering) 1] .
Tabellen nedenfor viser de komparative karakteristika for CLEFIA-chifferet i forhold til nogle andre velkendte ciphers [1] :
Algoritme | Blokstørrelse (bits) | Nøglestørrelse (bits) | Antal runder | Båndbredde ( Mpbs ) | Område (Kgates) | Effektivitet (Kpbs/gates) |
---|---|---|---|---|---|---|
CLEFIA | 128 | 128 | atten | 1.605,94 | 5,98 | 268,63 |
36 | 715,69 | 4,95 | 144,59 | |||
AES | 128 | 128 | ti | 3.422,46 | 27,77 | 123,26 |
Camellia | 128 | 128 | 23 | 1.488,03 | 11.44 | 130,11 |
FRØ | 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 |
tredive | 570,41 | 7,92 | 72,06 | |||
TDEA | 64 | 56, 112, 168 | 48 | 355,56 | 3,76 | 94,50 |
Algoritme | Blokstørrelse (bits) | Nøglestørrelse (bits) | Antal runder | Båndbredde ( Mpbs ) | Område (Kgates) | Effektivitet (Kpbs/gates) |
---|---|---|---|---|---|---|
CLEFIA | 128 | 128 | atten | 3.003,00 | 12.01 | 250,06 |
36 | 1.385,10 | 9,38 | 147,71 | |||
AES | 128 | 128 | ti | 7.314,29 | 45,90 | 159,37 |
Camellia | 128 | 128 | 23 | 2.728,05 | 19,95 | 136,75 |
FRØ | 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 |
tredive | 772,95 | 10.12 | 76,41 | |||
TDEA | 64 | 56, 112, 168 | 48 | 766,28 | 5,28 | 145,10 |
I 2019 inkluderede ISO- og IEC -organisationerne PRESENT- og CLEFIA-algoritmerne i den internationale standard for letvægtskryptering ISO/IEC 29192-2:2019 [8] .
Der er et CLEFIA_H-bibliotek i programmeringssproget C, der implementerer CLEFIA-chifferet [9] .
Symmetriske kryptosystemer | |
---|---|
Stream-cifre | |
Feistel netværk | |
SP netværk | |
Andet |