SHACAL | |
---|---|
Skaber | Helena Handshu, David Nakkash |
Oprettet | 2000 |
offentliggjort | 2001 |
Nøglestørrelse | 128-512 bit |
Blokstørrelse | 160 bit / 256 bit |
Antal runder | 80/64 |
Type | Kryptografisk hash-funktion |
SHACAL er en symmetrisk blokkryptografisk algoritme i kryptografi , udviklet til deltagelse i NESSIE -konkurrencen af en gruppe forfattere fra firmaet Gemplus , ledet af Helena Handshu og David Nakkash. Der er to versioner af algoritmen - SHACAL-1 og SHACAL-2, som blev en af de 17 NESSIE -finalister .
SHACAL-algoritmen adskiller sig væsentligt fra mange andre algoritmer. Den er baseret på komprimeringsfunktionen af SHA-1 hash-algoritmen , hvilket er muligt på grund af reversibiliteten af den runde funktion af denne hash-algoritme, forudsat at dens interne tilstand er kendt. I dette tilfælde bruges nøglen som de data, der transformeres, og klarteksten tjener som den interne tilstand af hash-funktionen. Der udføres i alt 80 transformationsrunder. [en]
En funktion ved algoritmen er dens enkle nøgleskema - en nøgle, der er kortere end 512 bits, polstres til fuld størrelse med nul bit. Nøgler kortere end 128 bit bruges ikke. Den originale 512-bit krypteringsnøgle er opdelt i 16 fragmenter af 32 bit K0…K15. De resterende fragmenter af den udvidede nøgle K16…K79 beregnes ud fra de første 16 fragmenter i henhold til formlen:
.Denne funktion blev en hindring for algoritmen for at blive udvalgt som NESSIE -finalist , da der var tvivl om dens kryptografiske styrke. [2]
Blokstørrelsen er lig med størrelsen af den interne tilstand og hashen af SHA1 hash-funktionen - 160 bit. Blokken behandles som fem 32-bit underblokke: . Ciphertext er sammenkædningen af data fra variabler [3]
SHACAL-1 er i øjeblikket ikke udbredt. Den blev hurtigt erstattet af SHACAL-2-algoritmen, som ofte blot omtales som SHACAL. Der var også en teoretisk SHACAL-0, som var baseret på SHA-0-hash-funktionen (en tidlig, senere revideret version af SHA-1 ), men den fangede ikke, som selve SHA-0-hash-funktionen. [fire]
hvor:
tabel 1
runder | Fungere |
0-19 | |
20-39 | |
40-59 | |
60-79 |
tabel 2
runder | Konstante værdier |
0-19 | 5A827999 |
20-39 | 6ED9EBA1 |
40-59 | 8F1BBCDC |
60-79 | CA62C1D6 |
I 2001 udviklede skaberne af SHACAL-1-algoritmen, også som en del af NESSIE-konkurrencen, SHACAL-2-algoritmen baseret på 64 runder af SHA-256- hash-funktionen med en intern tilstand på 256 bit. [fire]
Den originale nøgle på 512 bit, analogt med SHACAL-1, er opdelt i 16 dele af hver 32 bit. De resterende 48 dele er beregnet som følger:
hvor og :
Algoritmen består af 64 runder af transformationer:
hvor:
Tabel 3
428a2f98 | 71374491 | b5c0fbcf | e9b5dba5 |
3956c25b | 59f111f1 | 923f82a4 | ab1c5ed5 |
d807aa98 | 12835b01 | 243185be | 550c7dc3 |
72be5d74 | 80deb1fe | 9bdc06a7 | c19bf174 |
e49b69c1 | efbe4786 | 0fc19dc6 | 240 calcc |
2de92c6f | 4a7484aa | 5cb0a9dc | 76f988da |
983e5152 | a831c66d | b00327c8 | bf597fc7 |
c6e00bf3 | d5a79147 | 06ca6351 | 14292967 |
27b70a85 | 2e1b2138 | 4d2c6dfc | 53380d13 |
650a7354 | 766a0abb | 81c2c92e | 92722c85 |
a2bfe8a1 | a81a664b | c24b8b70 | c76c51a3 |
d192e819 | d6990624 | f40e3585 | 106aa070 |
19a4c116 | 1e376c08 | 2748774c | 34b0bcb5 |
391c0cb3 | 4ed8aa4a | 5b9cca4f | 682e6ff3 |
748f82ee | 78a5636f | 84c87814 | 8cc70208 |
90 befffa | a4506ceb | bef9a3f7 | c67178f2 |
Først og fremmest, som bemærket [4] , var fordelen ved SHACAL-familien af algoritmer deres ydeevne. Et vigtigt punkt er også enkelheden i beskrivelsen og implementeringen af algoritmer.
En af teserne om sikkerhed var chifferens arkitektur. Teoretisk set bør sikkerheden af SHA-1 og SHA-2 algoritmerne også sikre stabiliteten af SHACAL algoritmerne mod forskellige typer angreb. Samtidig er kravene til hashfunktioner under deres udvikling konceptuelt forskellige, og denne afhandling er ikke særlig underbygget. I sit arbejde beskrev Markku-Juhani Saarinen mulige angreb ved hjælp af sammenkædede nøgler på SHACAL-1-algoritmen. [5]
Med hensyn til bæredygtighed bemærkede NESSIE -konkurrencen fraværet af forslag til et angreb på SHACAL. Men hvad angår SHACAL-1, er nøgleskemaet blevet kritiseret. I 2002 foreslog Jongsung Kim et differentielt angreb på 41 runder af SHACAL-1 med en 512-bit nøgle. I 2005 introducerede O. Dunkelman et linked-key angreb for alle 80 runder af SHACAL-1. [6] Et år senere konkluderede eksperter, at der i forbindelse med påvisningen af kollisioner i SHA-1 ville dukke nye angreb på relaterede nøgler op, og kryptoanalytikere fra Korea foreslog et boomerangangreb.
Efter afslutningen af NESSIE -konkurrencen blev der foreslået et 42-runders angreb på SHACAL-2-algoritmen med en 512-bit nøgle, men fuld-runde-algoritmen er endnu ikke blevet knækket [7] . Derfor kan fuldrunde SHACAL-algoritmer i øjeblikket betragtes som sikre, forudsat at en 512-bit hash fra en eller anden hashfunktion (SHA-512, Whirlpool ) bruges som nøgle.
Symmetriske kryptosystemer | |
---|---|
Stream-cifre | |
Feistel netværk | |
SP netværk | |
Andet |