SHACAL | |
---|---|
Tvůrce | Helena Handshu, David Nakkash |
Vytvořeno | 2000 |
zveřejněno | 2001 |
Velikost klíče | 128-512 bitů |
Velikost bloku | 160 bit / 256 bit |
Počet kol | 80/64 |
Typ | Kryptografická hašovací funkce |
SHACAL je symetrický blokový kryptografický algoritmus v kryptografii vyvinutý pro účast v soutěži NESSIE skupinou autorů ze společnosti Gemplus v čele s Helenou Handshu a Davidem Nakkashem. Existují dvě verze algoritmu - SHACAL-1 a SHACAL-2, které se staly jednou ze 17 finalistů NESSIE .
Algoritmus SHACAL se výrazně liší od mnoha jiných algoritmů. Je založen na kompresní funkci hašovacího algoritmu SHA-1 , což je možné díky reverzibilitě kruhové funkce tohoto hašovacího algoritmu za předpokladu, že je znám jeho vnitřní stav. V tomto případě je klíč použit jako transformovaná data a prostý text slouží jako vnitřní stav hashovací funkce. Celkem je provedeno 80 transformačních kol. [jeden]
Charakteristickým rysem algoritmu je jeho jednoduchý rozvrh klíčů - klíč kratší než 512 bitů je doplněn na plnou velikost nulovými bity. Klíče kratší než 128 bitů se nepoužívají. Původní 512bitový šifrovací klíč je rozdělen na 16 fragmentů po 32 bitech K0…K15. Zbývající fragmenty rozšířeného klíče K16…K79 se vypočítají z prvních 16 fragmentů podle vzorce:
.Tato funkce se stala překážkou pro to, aby byl algoritmus vybrán jako finalista NESSIE , protože existovaly pochybnosti o jeho kryptografické síle. [2]
Velikost bloku je rovna velikosti vnitřního stavu a hashe hashovací funkce SHA1 – 160 bitů. Blok je zpracován jako pět 32bitových dílčích bloků: . Šifrovaný text je zřetězení dat z proměnných [3]
SHACAL-1 není v současné době široce používán. Rychle byl nahrazen algoritmem SHACAL-2, který je často označován jednoduše jako SHACAL. Existoval také teoretický SHACAL-0, který byl založen na hašovací funkci SHA-0 (raná, později revidovaná verze SHA-1 ), ale neujala se, stejně jako samotná hašovací funkce SHA-0. [čtyři]
kde:
stůl 1
kola | Funkce |
0-19 | |
20-39 | |
40-59 | |
60-79 |
tabulka 2
kola | Konstantní hodnoty |
0-19 | 5A827999 |
20-39 | 6ED9EBA1 |
40-59 | 8F1BBCDC |
60-79 | CA62C1D6 |
V roce 2001 tvůrci algoritmu SHACAL-1, rovněž v rámci soutěže NESSIE, vyvinuli algoritmus SHACAL-2 založený na 64 kolech hashovací funkce SHA-256 s vnitřním stavem 256 bitů. [čtyři]
Původní klíč 512 bitů je analogicky s SHACAL-1 rozdělen na 16 částí po 32 bitech. Zbývajících 48 dílů se vypočítá takto:
kde a :
Algoritmus se skládá z 64 kol transformací:
kde:
Tabulka 3
428a2f98 | 71374491 | b5c0fbcf | e9b5dba5 |
3956c25b | 59f111f1 | 923f82a4 | ab1c5ed5 |
d807aa98 | 12835b01 | 243185be | 550 c7dc3 |
72be5d74 | 80 deb1fe | 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 |
Za prvé, jak bylo uvedeno [4] , výhodou rodiny algoritmů SHACAL byla jejich výkonnost. Důležitým bodem je také jednoduchost popisu a implementace algoritmů.
Jednou z tezí bezpečnosti byla architektura šifry. Teoreticky by bezpečnost algoritmů SHA-1 a SHA-2 měla také zajistit stabilitu algoritmů SHACAL proti různým typům útoků. Přitom požadavky na hashovací funkce při jejich vývoji jsou koncepčně odlišné a tato teze není příliš podložená. Markku-Juhani Saarinen ve své práci popsal možné útoky pomocí propojených klíčů na algoritmu SHACAL-1. [5]
Pokud jde o udržitelnost, soutěž NESSIE zaznamenala absenci jakýchkoli návrhů na útok na SHACAL. Nicméně, pokud jde o SHACAL-1, klíčový plán byl kritizován. V roce 2002 navrhl Jongsung Kim diferenciální útok na 41 kol SHACAL-1 s 512bitovým klíčem. V roce 2005 zavedl O. Dunkelman útok propojeným klíčem pro všech 80 kol SHACAL-1. [6] O rok později experti usoudili, že v souvislosti s detekcí kolizí v SHA-1 se objeví nové útoky na související klíče a kryptoanalytici z Koreje navrhli bumerangový útok.
Po skončení soutěže NESSIE byl navržen 42-kolový útok na algoritmus SHACAL-2 s 512-bitovým klíčem, ale full-round algoritmus ještě nebyl prolomen [7] . Proto lze plnohodnotné algoritmy SHACAL v současnosti považovat za bezpečné za předpokladu, že se jako klíč použije 512bitový hash z nějaké hashovací funkce (SHA-512, Whirlpool ).
Symetrické kryptosystémy | |
---|---|
Streamové šifry | |
Síť Feistel | |
Síť SP | |
jiný |