PROJEKT R

2021/22

slika

Pobjednici natječaja CAESAR

ASCON-128

Autorica teksta: M. Knežević

Specifikacija algoritma
Algoritam ASCON-128 pripada familiji ASCON(a,b)-k-r algoritama za autentificiranu enkripciju.
Ulazni podaci za funkciju enkripcije su:
  • Jasan tekst P - podijeljen u blokove podataka Pi duljine r bitova
  • Asocirani podaci A - podijeljeni u blokove podataka Ai duljine r bitova
  • Tajni ključ K s k bitova
  • Javni broj poruke (nonce) N s k bitova. (preporučena konfiguracija 128 bitova)

Pri procesu enkripcije koristi se inicijalizacijski vektor IV koji je specifičan i unaprijed određen za algoritam. IV za Ascon-128 je 80400c0600000000, a računa se pomoću duljina ključa, duljine r (rate) i broja rundi a i b permutacija. Pri procesu enkripcije ne koristi se tajni broj poruke tj. njegova duljina je 0.

Funkcija enkripcije na svom izlazu daje:
  • šifrirani tekst C koji je iste duljine kao početni tekst P - podijeljen u blokove podataka Ci duljine r bitova
  • autentificirajuću oznaku T s k bitova. (preporučena konfiguracija 128 bitova)
Parametri kod enkripcije koristeći algoritam Ascon-128 su :
  • Duljina ključa k ≤ 128 bitova (preporučena konfiguracija 128 bitova)
  • Rate r (broj bitova koji označava duljine blokova) (preporučena konfiguracija 64 bitova)
  • Brojevi permutacija a i b (preporučene konfiguracije redom 12 i 6 bitova)

Pri procesu dekriptiranja koriste se ključ K, nonce N, asocirani podaci A, šifrirani tekst C i autentificirajuća oznaka T. U slučaju da je oznaka ispravna, funkcija dekriptiranja vraća tekst P.
Enkriptiranje i dekriptiranje
Ascon-128 algoritam temelji se na konstrukciji sličnoj MonkeyDuplex, no koristi snažnije funkcije inicijalizacije i finalizacije. Procesi enkripcije i dekripcije sastoje se od po četiri faze. Prva faza je inicijalizacija. Početno stanje S od 320 bita formira se pomoću konkateniranja inicijalizacijskog vektora (IV), tajnog ključa i javnog broja poruke. Stanje S sastoji se od 5 registara s po 64 bita. Inicijalno stanje permutira se a puta, te se na kraju napravi operacija xor s ključem K.

Nakon inicijalizacije slijedi faza procesiranja asociranih podataka. U toj fazi podatci koji su nastali operacijom xor između prvih r bitova stanja S i bloka podataka Ai , te konkatenacijom ostatka stanja S permutiraju se b puta. Na kraju svake permutacije postupak se nastavlja s novim blokom Ai sve dok ima novih blokova. Na kraju faze napravi se xor operacija stanja S s brojem 1.

Sljedeća faza je faza enkripcije/dekripcije. Slično kao i u prethodnoj fazi podaci koji su nastali operacijom xor između prvih r bitova stanja S i bloka podataka Pi , te konkatenacijom ostatka stanja S permutiraju se b puta. Kod enkripcije blok podataka šifriranog teksta (Ci) određen je operacijom xor između prvih r bitova stanja S i bloka podataka Pi . Posljednji blok podataka nastao operacijom xor se ne permutira b puta. Kod dekriptiranja, operacija xor obavlja se između šifriranog teksta i stanja, a rezultat operacije je blok početnog teksta Pi .

Posljednja faza je faza finalizacije. Na početku faze napravi se operacija xor između stanja S i konkatenacije ključa i znamenki 0. Takvo stanje prolazi kroz posljednji proces permutacije koji se ponavlja a puta. Xor između izlaza stanja S i ključa K je autentificirajuća oznaka T.

Permutacije:
Proces permutiranja sastoji se od 3 dijela: dodavanja konstanti, operacijama nad vertikalnim podacima stanja (substitution layer) i operacijama nad horizontalnim podacima stanja (linear diffusion layer).

Kod dodavanja konstanti unaprijed određene konstante dodaju se (operacija xor) u srednji registar x2 stanja S. U substitution layer-u izvode se operacije nad dijelovima stanja S određenim registrima tj. nad različitim podacima duljine 64 bita (xor, and, not nad registrima međusobno). U linear diffusion layer-u izvode se operacije unutar pojedinog podatka duljine 64 bita (xor i rotacija bitova).
Obilježja
Unutarnje permutacije u Ascon-u temelje se na jednostavnim standardnim operacijama na 64-bitnim podacima. Te operacije izvedive su i na procesorima s malom veličinom riječi. Substitution layer i linear layer dizajnirani su tako da podržavaju paralelno izvođenje operacija. Do pet instrukcija može se paralelno izvoditi u svakoj fazi permutacije.

Šifriranje se može odvijati bez znanja o duljini teksta. Dešifriranje se također može odvijati na blokovima podataka zasebno, te nije potrebno saznanje o duljini šifriranog teksta.

Enkripcija i dekripcija odvijaju se s jednim prolazom kroz podatke.

Pri implementaciji Ascon-a nisu potrebne inverzne operacije tj. permutacije se odvijaju uvijek u jednom smjeru, što smanjuje zahtjevnost implementacije.

S obzirom na to da sadrži broj poruke (nonce) ponavljanje tog broja dovodi do ugrožavanja sigurnosti algoritma jer je moguće detektirati slične prefikse teksta. Prema tome uvjet korištenja Ascona je jednostruko korištenje javnog broja poruke.
Uporaba
S obzirom na malu veličinu stanja S i jednostavnu strukturu funkcija, Ascon ima vrlo dobre karakteristike po pitanju veličine i brzine, te se stoga može efikasno koristiti u hardware implementacijama koje zahtijevaju malo memorije ili veliku brzinu.

Ascon omogućava jednostavnu implementaciju na hardware-u i software-u uz dobre performanse. Idealan je za situacije gdje mnogo uređaja komunicira s backend serverom kao u Internet of Things.

Ascon je jedan od najbržih algoritama kriptiranja s natječaja CAESAR za kratke poruke. Inicijalizacija i finalizacija su puno jednostavnije u usporedbi s većinom algoritama koji šifriraju blokove podataka.

Mala veličina stanja S omogućava pohranu cijelog stanja u registrima procesora na većini platformi, čime reducira dohvaćanje podataka iz cache-a i memorije. Ta funkcionalnost može biti korisna kod cloud aplikacija kako bi se spriječili napadi na cache poput cross-VM napada.