PROJEKT R

2021/22

slika

Pobjednici natječaja CAESAR

DEOXYS-II-128

Autor teksta: V. Sabolčec

Specifikacija algoritma
Ulazni podaci za funkciju enkripcije su:
  • Jasan tekst M proizvoljne duljine
  • Tajni ključ K duljine 128 ili 256 bita (128 bita za Deoxys-II-128)
  • Pridruženi podaci AD duljine proizvoljne duljine (128 bita za Deoxys-II-128)
  • Javni broj poruke N (nonce) duljine 120 bita


Izlazni podatci funkcije za enkripciju Deoxys su:
  • Šifrirana poruka C duljine |M| bita
  • Autentifikacijska oznaka T duljine |T| bita (preporuka |T| = 128 bita)
Enkriptiranje i dekriptiranje
Šifriranje Deoxys-II (način dozvole ponavljanja broja poruke (nonce)) započinje inicijalizacijom associated data AD tako da se podijeli u blokove od 128 bita. Interni vektor bitova Auth se inicijalizira na 0. Za svaki blok ADi se računa Auth kao Auth = Auth XOR EK(enkodiran broj bloka i, blok ADi). EK je funkcija tweakable block cipher-a Deoxys BC. Nakon toga se na sličan način podijeli ulazna poruka M u blokove od 128 bita. U autentifikacijsku oznaku T se stavlja izračunati Auth te se za svaki blok poruke Mi računa novi T = T XOR EK(enkodiran broj bloka i, blok Mi). Na kraju slijedi generiranje šifirane poruke. Za svaki blok poruke Mi se računa blok šifrirane poruke Ci kao Ci=Mi XOR EK(enkodirana oznaka, javna poruka N). Rezultat se vraća kao konkatenacija blokova šifrirane poruke Ci i autentifikacijske oznake T.

Dešifriranje Deoxys-II algoritmom se provodi slično kao i šifriranje. Na početku se šifrirana poruka C i associated data AD podijele u blokove od 128 bita. Poruka se dešifrira analogno šifriranju. Na isti način kao i kod šifriranja se izračunava interni vektor Auth pomoću kojeg se ponovno izračunava autentifikacijska oznaka T'. Ako su dobivena autentifikacijska oznaka T i izračunata autentifikacijska oznaka T' jednaki, vraća se dešifrirana poruka, a u suprotnom se ne vraća ništa.
Obilježja
Deoxys BC je tweakable block ciper koji je dizajnom sličan AES-u. Kao parametre prima poruku P, ključ K i parametar tweak T. Ima 128-bitno stanje i proizvoljne duljine ključa i tweaka. Za funkciju EK Deoxys BC-a vrijedi EK(T, P) = C i EK-1(T, C) = P.

Deoxys ima vrlo dobre sigurnosne karakteristike. Sigurnost je mjerena u broju rundi (faza) kroz koje podaci prolaze dok nisu potpuno sigurni. Deoxys-BC-256 zahtijeva 14, a Deoxys-BC-384 16 rundi, dok je za najbolje napade na algoritme s AES dizajnom koji imaju sličnu veličinu ključa potrebno 7 do 9 rundi. S 14 i više rundi zaštite podataka, Deoxys nudi pouzdanu sigurnost bez obzira na vrstu napada.

Deoxys je efikasan kod kriptiranja malih podataka, što je važno kod mnogo jednostavnih aplikacija gdje je veličina poruka pretežito mala. Za razliku od većine algoritama koji se koriste za šifriranje kratkih poruka, Deoxys nema zahtjevnu implementaciju u fazi inicijalizacije. Njegova efikasnost temelji se na modificirajućem blokovskom šifriranju koje izbjegava bilo kakvo inicijalno računanje.

Deoxys karakterizira jednostavna i razumljiva konstrukcija i implementacija. Dodatna karakteristika algoritma je fleksibilnost koja omogućuje korisniku proizvoljan odabir veličina ključa i modificirajućih podataka.

Teoretske performanse algoritma su optimalne. Deoxys-II zahtjeva 2m + 1 poziva internog šifriranja za m blokova od po n bitova.

Deoxys je otporan na side-channel napade, a pri tome koristi iste tehnike kao AES algoritmi.

Ponavljanje broja poruke (nonce) može ugroziti efikasnost algoritma, no samo u slučajevima velikog ponavljanja, što dozvoljava korištenje istog broja poruke (nonce) nekoliko puta.
Uporaba
Algoritam Deoxys može se koristiti u Internetskom prometu kao i kod lightweight aplikacija gdje su veličine paketa koje se šalju dosta male.

Deoxys pokazuje dobre performanse kod implementacije u software-u. Kao i većina ostalih algoritama temeljenih na AES dizajnu, vrlo se uspješno izvodi na novijim procesorima koji imaju implementiran novi AES-NI set instrukcija. Dodatno, uz korištenje paralelizma broj ciklusa po bajtu podataka pri kriptiranju se uvelike smanjuje.