18
Kriptografski blok simetrični algoritmi prilagođeni ugrađenim sustavima i Internetu stvari Verzija: 1.0 Tehnička dokumentacija Datum: 09/01/2019 FER 2 - Projekt ©FER, 2019 Stranica 1 od 18 Kriptografski blok simetrični algoritmi prilagođeni ugrađenim sustavima i Internetu stvari Tehnička dokumentacija Verzija 1.0 Studentski tim: Andrea Alilović Mihael Jakšić Antonio Močinić Hrvoje Spajić Sven Turato Nastavnik: prof.dr. sc. Marin Golub

Kriptografski blok simetrični algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/projekt_2018_19/media/download... · sustavima i Internetu stvari Verzija: 1.0 Tehnička

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Kriptografski blok simetrični algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/projekt_2018_19/media/download... · sustavima i Internetu stvari Verzija: 1.0 Tehnička

Kriptografski blok simetrični algoritmi prilagođeni ugrađenim

sustavima i Internetu stvari Verzija: 1.0

Tehnička dokumentacija Datum: 09/01/2019

FER 2 - Projekt ©FER, 2019 Stranica 1 od 18

Kriptografski blok simetrični algoritmi prilagođeni ugrađenim sustavima i Internetu stvari

Tehnička dokumentacija Verzija 1.0

Studentski tim: Andrea Alilović Mihael Jakšić

Antonio Močinić Hrvoje Spajić Sven Turato

Nastavnik: prof.dr. sc. Marin Golub

Page 2: Kriptografski blok simetrični algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/projekt_2018_19/media/download... · sustavima i Internetu stvari Verzija: 1.0 Tehnička

Kriptografski blok simetrični algoritmi prilagođeni ugrađenim

sustavima i Internetu stvari Verzija: 1.0

Tehnička dokumentacija Datum: 09/01/2019

FER 2 - Projekt ©FER, 2019 Stranica 2 od 18

Sadržaj

1. Uvod 3

1.1 O lakim kriptografskim blok simetričnim algoritmima (Lightweight block ciphers) 3

1.1.1 Laki kriptografski algoritmi (Lightweight ciphers) 3

1.1.2 Primjena 3

1.1.3 Laki blok simetrični algoritmi (Lightweight block ciphers) 4

1.2 Rezultati projekta 4

1.2.1 Programsko rješenje 4

1.2.2 Prezentacija 4

1.2.3 Web stranica 4

2. Algoritmi 5

2.1 PRESENT 5

2.2 SPECK 6

2.3 TWINE 7

2.4 SIMON 9

2.5 PRINCE 10

3. Programsko rješenje 11

3.1 Uvod 11

3.2 Opis programa 11

3.3 Tehničke značajke 11

3.4 Upute za instalaciju 12

3.5 Početni prozor 12

3.6 Upute za uporabu 14

4. Literatura 17

Page 3: Kriptografski blok simetrični algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/projekt_2018_19/media/download... · sustavima i Internetu stvari Verzija: 1.0 Tehnička

Kriptografski blok simetrični algoritmi prilagođeni ugrađenim

sustavima i Internetu stvari Verzija: 1.0

Tehnička dokumentacija Datum: 09/01/2019

FER 2 - Projekt ©FER, 2019 Stranica 3 od 18

Tehnička dokumentacija

1. Uvod

1.1 O lakim kriptografskim blok simetričnim algoritmima (Lightweight block ciphers)

1.1.1 Laki kriptografski algoritmi (Lightweigth ciphers)

Lightweight kriptografija je dio kriptografije, čiji je cilj razvoj algoritama za uporabu u uređajima koji nisu u mogućnosti pružiti većinu postojećih kodova i nemaju dovoljno resursa (memorija, snaga, veličina) za operaciju. Dizajner lightweight algoritma bi trebao paziti i balansirati između sigurnosti , cijene i izvedbe. Generalno je jednostavno uskladiti bilo koje dvije komponente, ali je glavni cilj postići da su sve tri zadovoljene. To se pokušava na način prikazan na slici 1 koja je preuzeta iz članka [1]. Jedan od glavnih dijelova u lightweight algoritmima je S-box i to je jedini nelinearni dio. Svi algoritmi koriste 4-bitni S-box s vrijednostima koje su pažljivo izabrane u skladu s linearnom i diferencijalnom kriptoanalizom.

Slika 1: Tri faktora za dizajniranje lightweight algoritma

1.1.2 Primjena

Većina modernih algoritama je osmišljena bez optimizacije hardvera što automatski onemogućuje korištenje većine algoritama u uređajima s ograničenim volumenom ili snagom. Lightweight kriptografija se onda koristi prilagođena Internetu stvari koji je bežična samokonfiguracijska mreža između objekata različitih klasa, a može obuhvaćati vozila, pametne

Page 4: Kriptografski blok simetrični algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/projekt_2018_19/media/download... · sustavima i Internetu stvari Verzija: 1.0 Tehnička

Kriptografski blok simetrični algoritmi prilagođeni ugrađenim

sustavima i Internetu stvari Verzija: 1.0

Tehnička dokumentacija Datum: 09/01/2019

FER 2 - Projekt ©FER, 2019 Stranica 4 od 18

senzore i sl.

1.1.3 Laki blok simetrični algoritmi (Lightweight block ciphers)

Laki blok simetrični algoritmi (engl. lightweight block ciphers) su podvrsta “lakih“ algoritama. Simetrična šifra uz konstantno mapiranje obrađuje informacijske blokove koji su najčešće veličine 64 ili 128 bita. Cilj ovih algoritama je osigurati pseudoslučajnu permutaciju ključa koja se kasnije koristi kao građevni blok složenijih protokola. Dobar blok simetrični algoritam treba osigurati brzinu i sigurnost. Postoje dvije vrste blok simetričnih algoritama: Substitution-Permutation Networks i Feistel Networks. U našem projektu smo obradili 5 algoritama, od kojih su PRESENT i PRINCE u skupu SP-Networks, a SIMON, SPECK i TWINE u Feistel Networks.

1.2 Rezultati projekta

1.2.1 Programsko rješenje

Glavni rezultat našeg projekta je program koji ujedinjuje 5 lakih blok simetričnih algoritama u jednu funkcionalnu cjelinu. Algoritmi koji su obrađeni su:

1. PRESENT 2. PRINCE 3. SIMON 4. SPECK 5. TWINE

Programsko rješenje je objašnjeno i detaljno opisano kasnije u tekstu. Članovi tima koji su zaduženi za programski dio su Antonio Močinić i Mihael Jakšić.

1.2.2 Prezentacija

U powerpoint prezentaciji je ukratko predstavljeno 5 kriptografskih blok simetričnih algoritama prilagođenih ugrađenim sustavima i Internetu stvari koje smo obradili u projektu. Razrađeno je i programsko rješenje. Prezentaciju je izradio Sven Turato.

1.2.3 Web stranica

Web stranica je napravljena pregledno kako bi se čitatelj mogao informirati o lakim kriptografskim blok simetričnim algoritmima. Sa web stranice se može preuzeti prezentacija, tehnička dokumentacija i ostvareno programsko rješenje. Za web su zaduženi Mihael Jakšić i Sven Turato.

Page 5: Kriptografski blok simetrični algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/projekt_2018_19/media/download... · sustavima i Internetu stvari Verzija: 1.0 Tehnička

Kriptografski blok simetrični algoritmi prilagođeni ugrađenim

sustavima i Internetu stvari Verzija: 1.0

Tehnička dokumentacija Datum: 09/01/2019

FER 2 - Projekt ©FER, 2019 Stranica 5 od 18

2. Algoritmi

U nastavku je predstavljen princip rada i opis 5 algoritama koji su obrađeni u sklopu ovog projekta. Kod svih algoritama se koriste posebni termini karakteristični za kriptografiju. To su:

- ključ(key) – koristi se kao dodatni parametar u algoritmima i može se ili implicitno zadati ili generirati

- blok – dio poruke određene veličine - plaintext – poruka prije kriptiranja, nije šifrirana - ciphertext – kriptirana poruka koja se dobije nakon šifriranja koristeći ključ - s-box - osnovna komponenta simetričnih kriptografskih algoritama koja se najčešće

koristi kao veza između kriptirane poruke i ključa

2.1 PRESENT

Present je jedan od temeljnih kriptografskih blok simetričnih algoritama prilagođenih ugrađenim sustavima i Internetu stvari. Za razvoj i dizajn presenta je zaslužan Orange Labs (Francuska), Ruhr University Bochum (Njemačka) i Technical University u Danskoj. Algoritam je završen 2007. godine. U presentu se koristi SP-mreža (Substitution–permutation network) prikazana na Slici 3 [3], koja predstavlja niz matematičkih operacija, a sastoji se od 31 serije. Veličina bloka podataka je 64 bita, a veličina ključa može biti 80 ili 128 bita, s tim da se preporučuje verzija s 80 bita. Svaka serija se sastoji od XOR operacije za uključivanje pomoćnog ključa Ki (RoundKey). K32 se koristi na kraju, u linearnoj permutaciji bitova i nelinearnom zamjenskom sloju. U nelinearnom sloju se koriste i 4-bitni S-boxovi, koji se primjenjuju 16 puta u paraleli u svakoj seriji. Općeniti princip rada kroz 31 seriju je prikazan na Slici 2 [3].

Slika 2: Algoritamski prikaz presenta

Page 6: Kriptografski blok simetrični algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/projekt_2018_19/media/download... · sustavima i Internetu stvari Verzija: 1.0 Tehnička

Kriptografski blok simetrični algoritmi prilagođeni ugrađenim

sustavima i Internetu stvari Verzija: 1.0

Tehnička dokumentacija Datum: 09/01/2019

FER 2 - Projekt ©FER, 2019 Stranica 6 od 18

Slika 3: SP-mreža za present Prednosti presenta u odnosu na druge algoritme su izrazito učinkovita hardware implementacija, procjena male potrošnje snage i mala količina nekriptiranog teksta. Glavni cilj pri dizajniranju je bila jednostavnost, te funkcionalnost u ograničenoj okolini. Ovaj algoritam je osmišljen za neke specifične aplikacije kod kojih ne možemo primijeniti AES. Enkripcija i dekripcija imaju otprilike jednake fizičke zahtjeve, pa je ova implementacija također manja čak i od AES-ove enkripcije. Detaljan princip rada objašnjen je u članku [3].

2.2 SPECK

Speck je rod lakih blokovskih kriptoalgoritama (engl. lightweight block ciphers) čiji je razvoj 2011. započela National Security Agency (u daljnjem tekstu: NSA) kako bi koristeći slabu procesorsku moć sve više prisutnih IoT (engl. Internet of Things) uređaja, ponudila zadovoljavajuću razinu sigurnosti. Algoritam je dovršen u lipnju 2013. Speck je optimiziran za programske implementacije (engl. software implementations), dok je njegov bratski algoritam Simon, optimiziran za sklopovske implementacije (engl. hardware implementations). Temelj rada Speck algoritma je zbrajanje (logičko ili), rotiranje i isključivo zbrajanje (logičko isključivo ili, engl. xor, exclusive or). Osnovni princip rada prikazan je na Slici 4.

Page 7: Kriptografski blok simetrični algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/projekt_2018_19/media/download... · sustavima i Internetu stvari Verzija: 1.0 Tehnička

Kriptografski blok simetrični algoritmi prilagođeni ugrađenim

sustavima i Internetu stvari Verzija: 1.0

Tehnička dokumentacija Datum: 09/01/2019

FER 2 - Projekt ©FER, 2019 Stranica 7 od 18

Slika 4: Princip rada Speck algoritma

Ulazna kodna riječ označena je s x. U 𝑆−𝛼 se vrši rotiranje. Nakon rotiranja, ulazna kodna riječ

se zbraja s y, prethodno kodiranom kodnom riječju. Nad zbrojem se, na kraju, vrši operacija logičko ili s ključem k. Uobičajene duljine blokova i ključeva, kao i njihove međusobne ovisnosti prikazane su u Tablici 1. Tablica 1: Uobičajene duljine blokova i ključeva algoritma Speck

Duljina bloka u bitovima 32 48 64 96 128

Duljina ključa u bitovima 64 72 96 96 128 96 144 128 192 256

Algoritam u danom programskom rješenju pokriva duljinu bloka od 64 bita i obje pripadne duljine ključeva (96 i 128 bitova). Dakako, ovo je osnovni princip rada, za detaljni princip rada, znatiželjnog čitatelja se upućuje na rad „The SIMON and SPECK lightweight block ciphers“, autora Beaulieu et al. [6] [12] Nadalje, detaljniji princip rada može se naći na stranicama Wikipedie. [5] Više radova na tu temu može se pronaći na GitHub profilu „nsacyber“. [7] Tijekom vremena Speck i njegov bratski algoritam Simon skupili su nemali broj kritičara koji se zbog jednostavnog principa boje mogućih ranjivosti, te su stoga odbijeni od strane Međunarodne organizacije za standardizaciju ISO (eng. International Organization for Standardization). Zainteresiranog čitatelja upućuje se na dva relevantna Internet članka [8] i [9].

2.3 TWINE

Twine je laki simetrični blokovski kriptoalgoritam (engl. Lightweight symmetric block cipher) s primarnim svojstvom brzog izvođenja i u softverskim i u hardverskim implementacijama. Algoritam su 2012. godine osmislili japanski znanstvenici Tomoyasu Suzaki, Kazuhiko Minematsu, Sumio Morioka te Eita Kobayashi, a je objavljen u znanstvenom članku pod

Page 8: Kriptografski blok simetrični algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/projekt_2018_19/media/download... · sustavima i Internetu stvari Verzija: 1.0 Tehnička

Kriptografski blok simetrični algoritmi prilagođeni ugrađenim

sustavima i Internetu stvari Verzija: 1.0

Tehnička dokumentacija Datum: 09/01/2019

FER 2 - Projekt ©FER, 2019 Stranica 8 od 18

originalnim nazivom "TWINE: A Lightweight Block Cipher for Multiple Platforms" [10]. Duljina bloka je 64 bita, a ključa ili 80 ili 128 bita. Pri proširivanju ključa koristi S-Box (proširen engleski naziv je Substitution-box) s vrijednostima u Tablici 2.

Tablica 2: S-Box vrijednosti

x 0 1 2 3 4 5 6 7 8 9 A B C D E F

S(x) C 0 F A 2 B 9 5 8 3 D 7 1 E 6 4

Pri šifriranju koristi "shuffle" naveden u Tablici 3, a dešifriranju naveden u Tablici 4.

Tablica 3: shuffle šifriranje vrijednosti

j 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

π(j) 5 0 1 4 7 12 3 8 13 6 9 2 15 10 11 14

Tablica 4: shuffle dešifriranje vrijednosti

j 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

π-1(j) 1 2 11 6 3 0 9 4 7 10 13 14 5 8 15 12

Također koristi i kružne konstante (engl., round constants) čije su vrijednosti na Slici 5.

Slika 5: kružne konstante

Algoritam ostvaren u programskom jeziku C, temeljen je na programu Damiana Gryskog [11], no podržava samo šifriranje i dešifriranje 80 bitnim ključem. Program je testiran nad testnim vektorima navedenim u originalnom članku [10].

Tablica 5: testni vektori

key length 80-bit

key 00112233 44556677 8899

plaintext 01234567 89ABCDEF

ciphertext 7C1F0F80 B1DF9C28

Page 9: Kriptografski blok simetrični algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/projekt_2018_19/media/download... · sustavima i Internetu stvari Verzija: 1.0 Tehnička

Kriptografski blok simetrični algoritmi prilagođeni ugrađenim

sustavima i Internetu stvari Verzija: 1.0

Tehnička dokumentacija Datum: 09/01/2019

FER 2 - Projekt ©FER, 2019 Stranica 9 od 18

2.4 SIMON

Simon pripada rodu lakih blokovskih kriptoalgoritama (engl. lightweight block ciphers). Objavila ga je National Security Agency (u daljnjem tekstu: NSA) u lipnju 2013. godine. Simon i Speck su bratski algoritmi objavljeni u istom znanstvenom radu te pružaju odlične performanse kako u sklopovskoj implementaciji (engl. hardware implementations), tako i u programskoj implementaciji (engl. software implementation). Ipak, za optimalne rezultate uputno je koristiti Simon za sklopovsku implementaciju, a Speck za programsku implementaciju. Kriptoalgoritam Simon temelji se na uzastopnoj uporabi bitovnih operatora u enkripciji i dekripciji: ekskluzivnog ILI (engl. xor, exclusive or), I (engl. and, &) i lijevi kružni pomak (engl. left circular shift). Osnovni princip rada prikazan je na Slici 6.

Slika 6: princip rada Simon algoritma

Ulazna kodna riječ označena je s xi+1. Kodna riječ se odvaja na tri grane te se u svakoj grani u

𝑆𝛼 se vrši rotiranje za 𝛼. Zatim se nad 𝑆1 i 𝑆8 provodi logičko I te se izvrši ekskluzivno ili

Page 10: Kriptografski blok simetrični algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/projekt_2018_19/media/download... · sustavima i Internetu stvari Verzija: 1.0 Tehnička

Kriptografski blok simetrični algoritmi prilagođeni ugrađenim

sustavima i Internetu stvari Verzija: 1.0

Tehnička dokumentacija Datum: 09/01/2019

FER 2 - Projekt ©FER, 2019 Stranica 10 od 18

zajedno s xi. Zatim se nad tim i 𝑆2 izvrši ekskluzivno ili. Nad svim tim zbrojem se, na kraju, vrši operacija ekskluzivno ili s ključem k. Uobičajene duljine blokova i ključeva, kao i njihove međusobne ovisnosti prikazane su u Tablici 6. Tablica 6: Uobičajene duljine blokova i ključeva algoritma Simon

Duljina bloka u bitovima 32 48 64 96 128

Duljina ključa u bitovima 64 72 96 96 128 96 144 128 192 256

Algoritam implementiran u programsko rješenje pruža mogućnost duljine bloka od 64 bita te odabir duljine ključa između 96 ili 128 bita. Kao i ostali opisi algoritama u ovoj dokumentaciji, tako je i ovaj pokriva samo neke osnovne značajke. Ako je čitatelj potaknut na daljnje istraživanje, preporučuje se rad „The SIMON and SPECK lightweight block ciphers“, autora Beaulieu et al. [12] Nadalje, kao dodatna literature može poslužiti članak na Wikipediji, “Simon (Cipher)”. [14] Korištena implementacija algoritma u programskom rješenju preuzeta je s GitHuba [13] koju čitatelj može preuzeti i analizirati kako bi lakše shvatio princip rada algoritma.

2.5 PRINCE

Prince je rod lakih blokovskih kriptoalgoritama. Njegov je razvoj započeo 2012. u danskom tehničkom fakultetu u suradnji s tvrtkama INRIA i NXP Semiconductors. Glavno mu je obilježje “alfa-refleksivnost”: dekriptiranje je kriptiranje s drugačijim ključem (izveden je iz ključa kojim se kriptiralo) kojeg je veoma lako izračunati. Za razliku od drugih lakih blokovskih kriptoalgoritama, ima mali broj ponavljanja kriptiranja, a sama ponavljanja nisu logički zahtjevna zbog čega implementacije ovog algoritma imaju veću brzinu od sličnih algoritama (PRESENT i AES). Veličina ključa je 128 bitova, a veličina bloka 64 bita. Ovdje se također koristi jednostavan 4-bitni S-box u 12 slojeva. Cijeli princip rada ovog algoritma nije jednostavan za objasniti te pozivam sve čitatelje da pogledaju izvorni rad “PRINCE – A Low-latency Block Cipher for Pervasive Computing Applications“. [15]

Page 11: Kriptografski blok simetrični algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/projekt_2018_19/media/download... · sustavima i Internetu stvari Verzija: 1.0 Tehnička

Kriptografski blok simetrični algoritmi prilagođeni ugrađenim

sustavima i Internetu stvari Verzija: 1.0

Tehnička dokumentacija Datum: 09/01/2019

FER 2 - Projekt ©FER, 2019 Stranica 11 od 18

3. Programsko rješenje

3.1 Uvod

Želeći demonstrirati rad odabranih algoritama, odlučili smo korisniku ponuditi jednostavniji način od uporabe komandnolinijskih programa tako da iste povežemo s grafičkim korisničkim sučeljem.

3.2 Opis programa

Cijeli program je izgrađen modularno i sastoji se od tri velike cjeline. Prva cjelina je grafičko korisničko sučelje pisano u programskom jeziku C# koristeći biblioteku Windows Forms koja je danas dio radnog okvira Microsoft .NET i radnog okvira Mono. Korisnik preko grafičkog korisničkog sučelja zadaje parametre za izvođenje algoritama. Druga cjelina je pozivajući razred koji čini premosnicu između grafičkog korisničkog sučelja i algoritama pozivajući algoritme koristeći parametre dane putem grafičkog sučelja. Ovaj razred također je pisan u programskom jeziku C#. Posljednji dio su algoritmi koji su pisani u programskom jeziku C zapakirani kao biblioteke formata DLL (eng. Dynamic-link library). Cjelokupna arhitektura sustava prikazana je na Slici 7.

Slika 7: Arhitektura sustava

3.3 Tehničke značajke

Kao što je prethodno rečeno, grafičko korisničko sučelje i klasa koja poziva algoritme pisana je u programskom jeziku C# koristeći biblioteku Windows Forms koja je danas dio

Page 12: Kriptografski blok simetrični algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/projekt_2018_19/media/download... · sustavima i Internetu stvari Verzija: 1.0 Tehnička

Kriptografski blok simetrični algoritmi prilagođeni ugrađenim

sustavima i Internetu stvari Verzija: 1.0

Tehnička dokumentacija Datum: 09/01/2019

FER 2 - Projekt ©FER, 2019 Stranica 12 od 18

radnog okvira Microsoft .NET i radnog okvira Mono. Sami algoritmi pisani su programskim jezikom C. Zahvaljujući Microsoftovom upravitelju bibliotekama (eng. Library Manager), uspješno smo riješili potrebnu sponu između višeg, objektnog programskog jezika C# i nižeg programskog jezika C, te ovisno o odabiru korisnika putem grafičkog sučelja pozivamo odgovarajuće algoritme.

3.4 Upute za instalaciju

Program očekuje da korisnik ima instaliran Microsoft .NET Framework 4.6.1 ili noviji, u suprotnom možda neće raditi. Program nije potrebno instalirati. Potrebno ga je skinuti s Internetskih stranica kao ZIP arhivu, raspakirati (eng. extract) i program je spreman za korištenje.

Raspakirana ZIP arhiva sastoji se od programa te biblioteka potrebnih za njegov rad. Bilo kakve izmjene u strukturi od strane korisnika mogu dovesti do neispravnog rada programa. Program se pokreće dvoklikom na exe datoteku. Važno je napomenuti da je program namijenjen radu na operacijskom sustavu Microsoft Windows i nije testiran na ostalim operacijskim sustavima stoga autori ne daju garanciju njegova uspješnog rada na njima.

3.5 Početni prozor

Na Slici 8 vidljiva je struktura grafičkog korisničkog sučelja.

Page 13: Kriptografski blok simetrični algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/projekt_2018_19/media/download... · sustavima i Internetu stvari Verzija: 1.0 Tehnička

Kriptografski blok simetrični algoritmi prilagođeni ugrađenim

sustavima i Internetu stvari Verzija: 1.0

Tehnička dokumentacija Datum: 09/01/2019

FER 2 - Projekt ©FER, 2019 Stranica 13 od 18

Slika 8: Početni prozor Početni prozor sastoji se od tri velike grupe. U prvoj grupi (nazvanoj „Postavke“) nalaze se osnovne postavke potrebne za rad algoritama. U lijevom padajućem izborniku (eng. drop-down menu) nalazi se popis algoritama koje je moguće odabrati. U desnom padajućem izborniku nalaze se moguće duljine ključa. Koja će duljina ključa biti moguća, ovisi o odabiru algoritma. Ispod toga se nalazi putanja do datoteke koja se kriptira ili dekriptira, a desno se nalazi gumb za odabir te datoteke. Ispod prozorčića s putanjom do datoteke nalazi se putanja do ključa algoritma. Ista se može zadati klikom na gumb desno od tog prozorčića. Alternativno, ključ se može automatski generirati, kao što naznačuje labela. Ključ se generira klikom na gumbić „Generiraj“. Ključ će biti pohranjen u istom direktoriju u kojem se nalazi i datoteka koju se kriptira ili dekriptira. Ako to korisnik želi promijeniti, to može učiniti klikom na gumb „Direktorij“, lijevo od ključa. Važno je napomenuti da će se svakom promjenom duljine ključa u padajućem izborniku generirati novi ključ.

Page 14: Kriptografski blok simetrični algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/projekt_2018_19/media/download... · sustavima i Internetu stvari Verzija: 1.0 Tehnička

Kriptografski blok simetrični algoritmi prilagođeni ugrađenim

sustavima i Internetu stvari Verzija: 1.0

Tehnička dokumentacija Datum: 09/01/2019

FER 2 - Projekt ©FER, 2019 Stranica 14 od 18

Zadnja komponenta ove grupe jest putanja do odredišne, kriptirane ili dekriptirane datoteke. Predodređeni direktorij za obrađenu datoteku je isti onaj u kojem je izvorišna datoteka. Korisnik to može promijeniti klikom na gumb „Direktorij“, lijevo od putanje do odredišne datoteke. U drugoj grupi, nazvanoj „Pregled“ nalaze se dva prozora. Lijevi prozor je onaj u kojem je izvorna datoteka. U desnom prozoru će se nakon kriptiranja ili dekriptiranja učitati obrađena datoteka. Kriptirana datoteka će s desne strane biti prikazana u heksadekadskom zapisu. To ne vrijedi za lijevi prozor – ako se učita kriptirana datoteka koju se želi dekriptirati, u lijevom prozoru će se pojaviti simboli određeni bajtovima kriptirane datoteke – ti simboli neće biti heksadekadski. Posljednja grupa nazvana „Pusti u rad“ određuje završne postavke. Nudi odabir želimo li datoteku kriptirati ili dekriptirati. Rad programa započinje klikom na gumb „Pokreni“. Očekivano ponašanje je da se tijekom obrade datoteka blokiraju sve komponente prozora. Komponente će biti odblokirane neposredno nakon završetka obrade.

3.6 Upute za uporabu

Na početku rada programa, postavljene su početne postavke i primjer ulazne datoteke te program može odmah biti pušten u rad. KRIPTIRANJE:

1. Odabrati algoritam koji se želi koristiti

2. Odabrati duljinu ključa

3. Odabrati datoteku koju se kriptira

4. Odabrati ili generirati ključ koji se koristi za enkripciju

5. (Opcionalno) odabrati putanju do kriptirane datoteke

6. U meniju odabrati „Enkripcija“

7. Klikom na gumb „Pokreni“ pokrenuti postupak enkripcije

DEKRIPTIRANJE: 1. Odabrati algoritam koji se želi koristiti

2. Odabrati duljinu ključa

3. Odabrati datoteku koju se dekriptira

4. Odabrati ili generirati ključ koji se koristi za dekripciju

5. (Opcionalno) odabrati putanju do dekriptirane datoteke

6. U meniju odabrati „Dekripcija“

7. Klikom na gumb „Pokreni“ pokrenuti postupak dekripcije

Uspješna obrada (kriptiranje ili dekriptiranje) naznačeno je plavo-zelenom bojom pozadine na desnom tekstualnom prostoru. Naznačivanje traje dvije sekunde, nakon tog pozadina ponovno postaje bijela.

Page 15: Kriptografski blok simetrični algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/projekt_2018_19/media/download... · sustavima i Internetu stvari Verzija: 1.0 Tehnička

Kriptografski blok simetrični algoritmi prilagođeni ugrađenim

sustavima i Internetu stvari Verzija: 1.0

Tehnička dokumentacija Datum: 09/01/2019

FER 2 - Projekt ©FER, 2019 Stranica 15 od 18

VAŽNA NAPOMENA: Ključ za kriptiranje i dekriptiranje moraju biti isti – upravo iz tog razloga će ključ biti spremljen u datoteku na putanji koju mu zadate. Ako ključevi nisu isti, postupkom dekriptiranja nećete dobiti početni datoteku koja nije kriptirana, već ćete dobiti „smeće“. U nastavku slijede slike koje demonstriraju uspješno kriptiranje i dekriptiranje.

Slika 9: Uspješno kriptiranje

Page 16: Kriptografski blok simetrični algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/projekt_2018_19/media/download... · sustavima i Internetu stvari Verzija: 1.0 Tehnička

Kriptografski blok simetrični algoritmi prilagođeni ugrađenim

sustavima i Internetu stvari Verzija: 1.0

Tehnička dokumentacija Datum: 09/01/2019

FER 2 - Projekt ©FER, 2019 Stranica 16 od 18

Slika 10: Uspješno dekriptiranje

Page 17: Kriptografski blok simetrični algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/projekt_2018_19/media/download... · sustavima i Internetu stvari Verzija: 1.0 Tehnička

Kriptografski blok simetrični algoritmi prilagođeni ugrađenim

sustavima i Internetu stvari Verzija: 1.0

Tehnička dokumentacija Datum: 09/01/2019

FER 2 - Projekt ©FER, 2019 Stranica 17 od 18

4. Literatura

[1] Lightweight ciphers, studeni 2015., http://cryptowiki.net/index.php?title=Lightweight_ciphers, datum preuzimanja: 2. siječnja 2019.

[2] Lightweight Block Ciphers, travanj 2017.

https://www.cryptolux.org/index.php/Lightweight_Block_Ciphers, datum preuzimanja: datum preuzimanja: 2. siječnja 2019.

[3] Bogdanov A., Knudsen L.R.,Leander G., Paar C., Poschmann A., Robshaw M.J.B., Seurin

Y., Vikkelsoe C., PRESENT: An Ultra-Lightweight Block Cipher, https://www.iacr.org/archive/ches2007/47270450/47270450.pdf

[4] Poschmann A., Lightweight Cryptography From An Engineers Perspective, rujan 2007.,

http://www.lightweightcrypto.org/present/present_ches2007_slides.pdf [5] Speck (cipher), https://en.wikipedia.org/wiki/Speck_(cipher), datum preuzimanja: 4. siječnja 2019. [6] Beaulieu R., Treatman-Clark S., Shors D., Weeks B., Smith J., Wingers L., The SIMON and

SPECK lightweight block ciphers, lipanj 2015. https://ieeexplore.ieee.org/document/7167361,

datum preuzimanja: 4. siječnja 2019.

[7] The SIMON and SPECK families of lightweight block ciphers,

https://github.com/nsacyber/simon-speck, datum preuzimanja: 5. siječnja 2019.

[8] NSA: Our Crypto Is Good. ISO: No Thanks Though, https://www.cbronline.com/news/iso-

nsa, datum preuzimanja: 5. siječnja 2019.

[9] NSA Ciphers “Simon and Speck” Are Dead – But Not Entirely Buried Says ISO,

https://www.cbronline.com/news/nsa-ciphers-iso, datum preuzimanja: 5. siječnja 2019.

[10] TWINE: A Lightweight Block Cipher for Multiple Platforms,

https://www.researchgate.net/publication/281267456_TWINE_A_Lightweight_Block_Cipher_for

_Multiple_Platforms, datum preuzimanja: 7. siječnja 2019.

[11] Go implementation of the TWINE block cipher, https://github.com/dgryski/go-twine, datum

preuzimanja: 27. Prosinca 2018.

[12] Beaulieu R., Treatman-Clark S., Shors D., Weeks B., Smith J., Wingers L., The SIMON and

SPECK families of lightweight block ciphers, lipanj 2013., https://eprint.iacr.org/2013/404.pdf,

datum preuzimanja: 28. Prosinca 2018.

[13] Implementations of some lightweight block ciphers in C,

https://github.com/openluopworld/block-ciphers, datum preuzimanja: 2. siječnja 2019.

Page 18: Kriptografski blok simetrični algoritmi prilagođeni ...sigurnost.zemris.fer.hr/algoritmi/projekt_2018_19/media/download... · sustavima i Internetu stvari Verzija: 1.0 Tehnička

Kriptografski blok simetrični algoritmi prilagođeni ugrađenim

sustavima i Internetu stvari Verzija: 1.0

Tehnička dokumentacija Datum: 09/01/2019

FER 2 - Projekt ©FER, 2019 Stranica 18 od 18

[14] Simon (cipher), https://en.wikipedia.org/wiki/Simon_(cipher), datum preuzimanja: 2. siječnja

2019.

[15] Borghoff J., Canteaut A., PRINCE – A Low-latency Block Cipher for Pervasive Computing

Applications https://eprint.iacr.org/2012/529.pdf