PROJEKT R

2021/22

slika

Pobjednici natječaja CAESAR

KETJE

Autorica teksta: I. Dasović

Specifikacija algoritma
KETJE algoritmi koriste niz operacija nazvan KECCAK-p permutacije koje su nastale iz KECCAK-f funkcije, a izvode se nad stanjem A. Širina permutacije iznosi b = 25 * 2l, broj rundi je nr te se stanje A tada prikazuje trodimenzionalnom matricom [5, 5, w] gdje je w = 2l.

Svi blokovi A duljine su p bitova, osim posljednjeg koji može imati i manje bitova, ali ne smije biti prazan. Nadalje, KETJE algoritmi oslanjaju se na MonkeyDuplex konstrukciju koja održava stanje i ima broj rundi nr. Ulaz i izlaz su string s tim da izlazni string ovisi o svim dosadašnjim ulazima. Ulazni niz duljine l proširuje se multi-rate paddingom do duljine b. Tijekom pokretanja MonkeyDuplex sadrži ključ i nonce.

Autentifikaciju poruka osigurava MonkeyWrap koji se zasniva na MonkeyDuplex konstrukciji te kao ulaz prima zaglavlje A i tijelo poruke B i vraća kriptiranu poruku C i oznaku T. MonkeyWrap podržava sesije, tj. enkripciju niza poruka kod koje je oznaka T za svaku poruku autentična obzirom na cijeli niz poruka, nonce jedinstven za cijelu sesiju te su poruke procesuirane redom zbog verifikacije oznaka T. Nakon inicijalizacije MonkeyWrap u okvir dodaje 2 bita za svaki ulazni blok kako bi se osiguralo razdvajanje domena. Key pack se sastoji od prvog bajta koji prikazuje duljinu cijelog key packa u bajtovima, ključa čija je duljina ograničena na višekratnike broja 8 i jednostavnog padding. Nonce sadrži proizvoljan broj te se tijekom enkripcije koristi samo jednom.

Varijabilna duljina poruke

K (ključ) [bytes] Nonce [bytes]
KETJE SR do 382 382 - |K|
KETJE JR do 182 182 - |K|
Enkriptiranje i dekriptiranje
KETJE algoritam je set od 4 autentične funkcije za enkripciju: KETJE SR, KETJE JR, KETJE MINOR te KETJE MAJOR. KETJE SR koristi ključ K varijabilne duljine do 382 bita i nonce duljine do 382 - |K| bitova, KETJE JR koristi ključ K duljine do 182 bita i nonce duljine do 182 - |K| bitova. KETJE MINOR I KETJE MAJOR koriste izvrnutu permutaciju KECCAK-p* kako bi odradile više linija po rundi od KETJE JR i KETJE SR. KETJE MINOR i KETJE MAJOR koriste ključ K duljine b – 18 bitova i nonce duljine b - |K| - 18 bitova. Navedene funkcije većinom koriste samo jednu rundu KECCAK-p funkcije.

Prilikom korištenja ovih algoritama zahtjeva se jedinstvenog ključa i noncea. KETJE omogućuje autentičnu enkripciju poruke M i asociranih podataka AD koristeći javni broj poruke N i ključ K. Stvara se KETJE objekt W s ključem K i javnim brojem poruke N te se zatim koristeći MONKEY WRAP zamotaju asocirani podaci i poruka pri čemu se dodaju po 2 bita za svaki ulaz čime se osigurava separacija domene i dobije se oznaka T s duljinom jednakom ciljanoj snazi sigurnosti s.
Obilježja
Osnovna vodilja četiriju KETJE prijedloga je maksimizacija kapaciteta nadoknađivanjem gubitka performanski smanjenjem rundi u KECCAK-p funkciji. Obzirom na to da KETJE koristi MonkeyDuplex umjesto običnog duplexa, MonkeyWrap i KECCAK-p funkcije, zaštićen je od side channel napada i u hardware-u i u software-u.

Vjerojatnost uspjeha pronalaženja stanja A pogađanjem je minimalna stoga prilikom izvođenja svih operacija napadač nema pristup unutarnjem stanju. KETJE pruža autentičnu enkripciju, zahtjeva relativno malen broj računskih operacija, nudi kompetente performanse hardware-a i podupire sesije čime povećava područje primjene.
Uporaba
KETJE se primjenjuje u uređajima s malim memorijskim resursima. Između ostalog, služi za sigurno slanje poruka koristeći sigurne čipove poput pametnih kartica.

Podržavanje sesija omogućuje jednostavan i agilan način slanja niza naredbi u obliku skripte sprječavajući napadača da ubaci, makne ili zamijeni naredbe u skripti. Algoritam se može implementirati u male hardware-a i mali kod za 8-bitne procesore pri čemu je velika brzina izvođenja.

Algoritam implementira funkcije koje se mogu više puta pozvati nad istim podacima i koje mogu biti ponovno iskorištene za neku drugu simetričnu enkripciju.