Cover
Comença ara de franc Symmetric_5_other+block+ciphers.pdf
Summary
# Andere symmetrische blokversleutelingen
Dit gedeelte behandelt diverse symmetrische blokversleutelingsalgoritmen buiten AES, waaronder hun specifieke eigenschappen zoals blok- en sleutelgrootte, en het aantal rondes.
### 1.1 Overzicht van diverse symmetrische blokversleutelingen
Er zijn diverse symmetrische blokversleutelingsalgoritmen die buiten de standaard AES vallen, elk met unieke kenmerken en toepassingen. Deze algoritmen variëren in blokgrootte, sleutelgrootte en het aantal rondes, wat hun beveiligingssterkte en prestaties beïnvloedt [2](#page=2).
### 1.2 Specifieke blokversleutelingsalgoritmen
#### 1.2.1 Camellia
Camellia is een symmetrisch blokversleutelingsalgoritme dat enigszins vergelijkbaar is met AES. Het biedt varianten met sleutelgroottes van 128, 192 en 256 bits, en hanteert een blokgrootte van 128 bits. Ondanks zijn verwantschap met AES, wordt Camellia momenteel niet opgenomen in de lijst van TLS1.3-ciphers. Het algoritme wordt echter ondersteund door Europese en Japanse normen en wordt beschouwd als een sterke concurrent voor AES [2](#page=2) [4](#page=4).
#### 1.2.2 Kasumi
Kasumi, ook bekend als A5/3 voor 3G-netwerken, is een blokversleutelaar met een sleutelgrootte van 128 bits en een blokgrootte van 64 bits. Er zijn aanvallen gepubliceerd op Kasumi [2](#page=2).
#### 1.2.3 Blowfish
Blowfish is een algoritme dat in het verleden een concurrent was van AES tijdens de NIST-competitie en wordt nog steeds gebruikt in sommige IPsec-configuraties [2](#page=2) [4](#page=4).
#### 1.2.4 RC5
RC5 is een zeer parametriseerbaar algoritme. De variant RC5-32/16/16, die twee 32-bit woorden gebruikt, heeft 16 rondes en een sleutel van 16 bytes. RC5 werd ontwikkeld door Ron Rivest, de "R" van RSA [2](#page=2) [4](#page=4).
#### 1.2.5 Skipjack
Het Skipjack-algoritme werd voorgesteld voor gebruik in de "Clipper Chip" en werd in 1998 publiek gemaakt. Het wordt verondersteld te zijn ontworpen door de NSA [2](#page=2).
#### 1.2.6 IDEA
IDEA (International Data Encryption Algorithm) is vergelijkbaar met DES, maar met een sleutellengte van 128 bits. Het heeft een blokgrootte van 64 bits en vereist 8 rondes [2](#page=2).
#### 1.2.7 PRESENT
PRESENT is ontworpen als een lichtgewicht blokversleutelaar voor omgevingen met beperkte middelen, met als doel een hoge doorvoer te bereiken met een kleinere hardware-voetafdruk. Het heeft een blokgrootte van 64 bits. Algoritmen met een blokgrootte van 64 bits kunnen problemen met blokcollisies ondervinden bij grote hoeveelheden data, dus implementaties moeten ervoor zorgen dat de hoeveelheid data die met dezelfde sleutel wordt versleuteld, beperkt blijft en dat re-keying correct wordt geïmplementeerd. Een cryptanalyse-aanval op PRESENT-80 heeft een datacomplexiteit van maximaal 2^22 gekozen platte tekst en een computationele complexiteit van 2^79.34 [6](#page=6) [7](#page=7).
#### 1.2.8 KATAN
KATAN is ontworpen voor efficiënte hardware-implementaties en biedt een redelijke doorvoer. Echter, Bogdanov en Rechberger hebben de KATAN-familie van ciphers gebroken met een meet-in-the-middle-aanval die een tijdcomplexiteit van 2^75.170 en een datacomplexiteit van 3 heeft [6](#page=6).
#### 1.2.9 PRINCE
PRINCE is het eerste lichtgewicht blokversleutelingsontwerp dat zich richt op het verminderen van latentie. Het maakt gebruik van een niet-uitgerolde structuur vanaf het begin, wat de ontwerpmogelijkheden vergroot doordat niet elke ronde identiek hoeft te zijn. Een cryptanalyse-aanval op PRINCE bereikt een reductie van de sleutelzoekruimte met 2^1.28 [7](#page=7).
#### 1.2.10 RECTANGLE
RECTANGLE, gepubliceerd in 2014 en gecorrigeerd in 2015 na zwakheden in de differentiële cryptanalyse S-box, maakt gebruik van de bit-slice-techniek op een lichtgewicht manier. Dit resulteert in lage hardwarekosten en competitieve prestaties in software. Er zijn tot nu toe geen cryptanalyse-aanvallen op de volledige ronde bekend [7](#page=7).
#### 1.2.11 SIMON en SPECK
SIMON is een Feistel-cipher die goede flexibiliteit biedt met variaties in blok- en sleutelgroottes. SPECK biedt eveneens goede flexibiliteit. SIMON is geoptimaliseerd voor hardware-implementaties, terwijl SPECK geoptimaliseerd is voor software. Er zijn geen cryptanalyse-aanvallen op de volledige ronde bekend voor zowel SIMON als SPECK [7](#page=7).
#### 1.2.12 Overige algoritmen en overwegingen
* **DESX:** Een methode om de sterkte van DES te verhogen met behulp van drie sleutels: K, K1 en K2. De formule is $DES\text{-}X(M) = K2 \oplus DES_K(M \oplus K1)$ [4](#page=4).
* **CAST en Twofish:** Deze waren concurrenten van AES in de NIST-competitie [4](#page=4).
* **Gost89:** Een Russische versie van DES, vergelijkbaar in ontwerp en zwakheden, met een blokgrootte van 64 bits [4](#page=4).
* **SM4:** Een Chinese alternatieve standaard voor AES [4](#page=4).
* **ChaCha:** Een goed alternatief voor AES, dat zonder hardwareondersteuning sneller kan zijn dan AES [4](#page=4).
* **SEED:** Een concurrerende 128-bits blokversleutelaar die prestatieverschillen met AES vertoont, vooral bij grotere bestanden. SEED ondersteunt geen 256-bits sleutels [3](#page=3).
> **Tip:** Bij het overwegen van lichtgewicht blokversleutelaars voor IoT-domeinen is het belangrijk te onthouden dat "lichtgewicht" niet gelijk staat aan "zwakke cryptografie", maar verwijst naar lage eisen qua batterijverbruik, rekenkracht en geheugen [6](#page=6).
> **Tip:** Wanneer blokversleutelaars met een 64-bits blokgrootte worden gebruikt, is het cruciaal om de hoeveelheid versleutelde data met dezelfde sleutel te beperken om potentiële problemen met blokcollisies te voorkomen [7](#page=7).
---
# Lightweight block ciphers
Dit onderwerp verkent lichtgewicht blokcijfers die specifiek ontworpen zijn voor Internet of Things (IoT) domeinen, waarbij de nadruk ligt op het minimaliseren van energieverbruik, rekenkracht en geheugengebruik, zonder concessies te doen aan de beveiliging [6](#page=6).
### 2.1 Definitie en doel van lichtgewicht blockversleuteling
Lichtgewicht blokcijfers zijn cryptografische algoritmen die zijn geoptimaliseerd voor omgevingen met beperkte middelen, zoals die vaak voorkomen in IoT-toepassingen. Het "lichtgewicht" aspect verwijst naar een lage vereiste voor batterijvermogen, rekenkracht en geheugen. Het is cruciaal om te benadrukken dat "lichtgewicht" niet synoniem staat voor "zwak". Veelal worden prestatiebeperkingen ten onrechte gebruikt als excuus om zwakke oplossingen te rechtvaardigen. Een blokgrootte van 128 bits is niet altijd noodzakelijk voor deze toepassingen [6](#page=6).
### 2.2 Overzicht van specifieke lichtgewicht blockcijfers
De volgende algoritmen worden genoemd als voorbeelden van lichtgewicht blockcijfers, hoewel de vermelding ervan puur ter informatie is [6](#page=6).
#### 2.2.1 AES
AES (Advanced Encryption Standard) is weliswaar het bekendste blockcijfer, maar wordt als te duur beschouwd voor kleine, resource-beperkte apparaten, voornamelijk ontworpen voor softwarematige implementaties. De beste bekende shortcut-aanval op de volledige versies van AES is een biclique-aanval uit 2011, die alle 10 rondes van AES128 breekt met een tijdscomplexiteit van $2^{126.18}$ en een datacomplexiteit van $2^{88}$. Deze cijfers zijn echter nog steeds te hoog om praktisch relevant te zijn. Alleen side-channel aanvallen hebben een redelijke kans om AES te breken [6](#page=6).
#### 2.2.2 KATAN
KATAN is ontworpen met efficiënte hardware-implementatie in gedachten, terwijl het toch een redelijke doorvoer levert. De KATAN-familie van cijfers werd voor het eerst gebroken door Bogdanov en Rechberger met een meet-in-the-middle aanval, die een tijdscomplexiteit van $2^{75.170}$ en een datacomplexiteit van $2^{34}$ heeft [6](#page=6).
#### 2.2.3 PRESENT
Net als KATAN is PRESENT ontworpen als een lichtgewicht blockcijfer voor omgevingen met beperkingen. PRESENT vertoont zeer vergelijkbare kenmerken als KATAN, maar biedt een hogere doorvoer met een kleiner hardware-oppervlak. PRESENT heeft een blokgrootte van 64 bits [7](#page=7).
> **Tip:** Alle blockcijfers met een blokgrootte van 64 bits kunnen problemen veroorzaken met blokcollisies bij gebruik met grote hoeveelheden data. Implementaties moeten ervoor zorgen dat de hoeveelheid data die met dezelfde sleutel wordt versleuteld, beperkt blijft en dat het opnieuw sleutelen correct wordt geïmplementeerd [7](#page=7).
Een cryptanalyse-aanval op PRESENT-80 heeft een datacomplexiteit van maximaal $2^{22}$ gekozen plainteksten en een computationele complexiteit van $2^{79.34}$. PRESENT is een anagram van SERPENT, een concurrent van AES in de NIST-competitie [7](#page=7).
#### 2.2.4 PRINCE
PRINCE is het eerste lichtgewicht blockcijferontwerp dat zich richt op het verminderen van latentie. Traditionele blockcijfers zijn iteratieve algoritmen met vrijwel identieke rondfuncties. Door vanaf het begin te kiezen voor een "unrolled" structuur, neemt de ontwerruimte aanzienlijk toe, omdat niet elke ronde identiek hoeft te zijn. Een cryptanalyse-aanval op PRINCE bereikt een reductie van de sleutelzoekruimte met $2^{1.28}$ [7](#page=7).
#### 2.2.5 RECTANGLE
RECTANGLE werd gepubliceerd in 2014 en gecorrigeerd in 2015 na zwakheden in de S-box bij differentiële cryptanalyse. Het ontwerp van RECTANGLE maakt gebruik van de bit-slice techniek op een lichtgewicht manier, wat niet alleen resulteert in zeer lage hardwarekosten, maar ook in zeer concurrerende prestaties in software. Er zijn tot op heden geen volledige ronde cryptanalyse-aanvallen bekend op RECTANGLE [7](#page=7).
#### 2.2.6 SIMON en SPECK
SIMON is een Feistelcijfer met goede flexibiliteit, wat zich uit in variaties van blok- en sleutelgroottes die tot veel verschillende varianten leiden. SPECK vertoont eveneens goede flexibiliteit met variaties in blok- en sleutelgroottes. SIMON is geoptimaliseerd voor hardware-implementaties, terwijl SPECK geoptimaliseerd is voor software. Er zijn geen volledige ronde cryptanalyse-aanvallen bekend op SIMON en SPECK [7](#page=7).
---
# Format-preserving encryption (FPE)
Format-preserving encryption (FPE) is een type blokversleuteling dat ervoor zorgt dat de cijfertekst hetzelfde 'formaat' behoudt als de platte tekst. Dit is met name nuttig voor het opslaan van gegevens in legacy systemen die niet zijn aangepast om om te gaan met versleutelde formaten [8](#page=8).
### 3.1 Concept en werking
In essentie maakt FPE gebruik van een geheime sleutel om een pseudo-willekeurige permutatie of substitutie te genereren, waarbij de output (cijfertekst) dezelfde structuur heeft als de input (platte tekst). Een 16-cijferig creditcardnummer dat met FPE is versleuteld, blijft bijvoorbeeld een 16-cijferig nummer [8](#page=8).
> **Tip:** FPE is specifiek ontworpen om de oorspronkelijke datastructuur te behouden, wat integratie in bestaande systemen vereenvoudigt.
FPE is niet compatibel met gangbare cipher modes of operation (zoals CBC). Dit komt doordat deze modes vaak een initialisatievector (IV) toevoegen, wat de omvang van de cijfertekst vergroot en mogelijk ongeldige karakters introduceert. Aangezien het versleutelen van meerdere blokken doorgaans geen vereiste is bij het gebruik van FPE, is dit geen significant probleem [8](#page=8).
### 3.2 Vergelijking met tokenization
Tokenization wordt soms als alternatief voor FPE genoemd. Bij tokenization wordt gevoelige informatie verplaatst naar een aparte kluis en vervangen door tokenreferenties. Dit vereist een wijziging in de database structuur, aangezien het token qua grootte en formaat niet overeenkomt met de originele gegevens [8](#page=8).
### 3.3 Beperkingen
Het gebruik van FPE wordt afgeraden voor kleine domeinen, zoals een "Ja/Nee" antwoord. Sommige FPE-algoritmes vereisen een domeingrootte van minimaal één miljoen [9](#page=9).
---
# Openssl ciphers en geauthenticeerde modi
Dit onderwerp introduceert het gebruik van openssl om beschikbare ciphers te inspecteren en bespreekt geauthenticeerde modi zoals GCM en CCM, en de ChaCha20-Poly1305 combinatie.
### 4.1 Openssl ciphers
De lijst met beschikbare ciphers op een specifiek systeem kan worden opgevraagd met het commando `openssl enc –ciphers`. Deze lijst kan variëren afhankelijk van de openssl-versie [4](#page=4).
#### 4.1.1 Voorbeelden van ciphers
Verschillende ciphers en hun kenmerken worden genoemd:
* **DESX:** Een methode om de sterkte van DES te verhogen door drie sleutels te gebruiken (K, K1, K2). K1 en K2 worden gebruikt om de boodschap of het resultaat te XOR-en volgens de formule $DESX(M) = K2 \oplus DESK(M \oplus K1)$ [4](#page=4).
* **BF (Blowfish):** Een voorganger van Twofish [4](#page=4).
* **CAST en Twofish:** Competitors van AES in de NIST-competitie [4](#page=4).
* **Camellia:** Een Feistel-cipher met een vergelijkbare sterkte als AES, met meer ondersteuning vanuit Europa en Japan [4](#page=4).
* **RC2:** Een oudere block cipher, ontwikkeld door Ron Rivest, die losstaat van de stream cipher RC4. RC2 werd gunstig behandeld door Amerikaanse exportregelgeving vanwege de beperkte sleutelgrootte van 40 bits [4](#page=4).
* **Gost89:** Een Russische implementatie van DES, met een vergelijkbaar ontwerp en zwakheden, en een blokgrootte van 64 bits [4](#page=4).
* **SM4:** Een Chinese tegenhanger van AES [4](#page=4).
* **Chacha:** Een goed alternatief voor AES. Zonder hardwareondersteuning, die standaard voor AES beschikbaar is, kan Chacha sneller zijn dan AES [4](#page=4).
> **Tip:** De commando `ssh -Q cipher` kan worden gebruikt om de ciphers te vinden die door de SSH-versie worden ondersteund [5](#page=5).
### 4.2 Geauthenticeerde modi
Geauthenticeerde modi bieden naast vertrouwelijkheid ook integriteit en authenticiteit van de data. GCM, CCM en de combinatie van ChaCha20 en Poly1305 zijn voorbeelden van dergelijke modi [5](#page=5).
* **GCM (Galois Counter Mode):** Een uitbreiding van de CTR-modus [5](#page=5).
* **ChaCha20-Poly1305:** Deze combinatie maakt het mogelijk dat ChaCha20 de symmetrische encryptie verzorgt en Poly1305 de authenticatie. Deze modi zullen later in de cursus gedetailleerder worden behandeld [5](#page=5).
---
## Veelgemaakte fouten om te vermijden
- Bestudeer alle onderwerpen grondig voor examens
- Let op formules en belangrijke definities
- Oefen met de voorbeelden in elke sectie
- Memoriseer niet zonder de onderliggende concepten te begrijpen
Glossary
| Term | Definition |
|------|------------|
| Symmetrische encryptie | Een vorm van cryptografie waarbij dezelfde geheime sleutel wordt gebruikt voor zowel encryptie als decryptie van gegevens, wat een snelle en efficiënte methode is voor het beveiligen van grote hoeveelheden data. |
| Blokversleuteling | Een type symmetrische encryptie dat gegevens verwerkt in vaste blokken van een bepaalde grootte, waarbij elk blok afzonderlijk wordt versleuteld met behulp van een algoritme en een geheime sleutel. |
| AES | Advanced Encryption Standard, een veelgebruikte blokversleutelingsalgoritme dat door de Amerikaanse overheid is goedgekeurd en bekend staat om zijn sterke beveiliging en efficiëntie, met sleutelgroottes van 128, 192 en 256 bits. |
| Camellia | Een symmetrisch blokversleutelingsalgoritme dat vergelijkbaar is met AES, met varianten voor sleutelgroottes van 128, 192 en 256 bits en een blokgrootte van 128 bits, dat voornamelijk ondersteuning geniet in Europa en Japan. |
| Kasumi | Een blokversleutelingsalgoritme met een blokgrootte van 64 bits en een sleutelgrootte van 128 bits, dat gebruikt wordt in 3G-netwerken (A5/3) en waarvoor enkele aanvallen zijn gepubliceerd. |
| Blowfish | Een blokversleutelingsalgoritme dat een voorganger was van Twofish en werd overwogen als concurrent voor AES, en dat wordt gebruikt in sommige IPsec-configuraties. |
| RC5 | Een sterk parametriseerbaar blokversleutelingsalgoritme, waarbij een specifieke variant (RC5-32/16/16) wordt gebruikt met twee 32-bit woorden, 16 rondes en een 16-byte sleutel. |
| Skipjack | Een blokversleutelingsalgoritme dat werd voorgesteld voor gebruik in de Clipper Chip en in 1998 openbaar werd gemaakt, vermoedelijk ontworpen door de NSA, met een blokgrootte van 64 bits en een sleutelgrootte van 80 bits. |
| IDEA | International Data Encryption Algorithm, een blokversleutelingsalgoritme dat vergelijkbaar is met DES maar met een langere sleutelgrootte van 128 bits en een blokgrootte van 64 bits. |
| PRESENT | Een lichtgewicht blokversleutelingsalgoritme ontworpen voor beperkte omgevingen, met een blokgrootte van 64 bits, dat een hogere doorvoer biedt met een lager hardwaregebruik in vergelijking met KATAN. |
| KATAN | Een blokversleutelingsalgoritme dat is ontworpen voor efficiënte hardware-implementaties en een redelijke doorvoer biedt, met verschillende varianten zoals KTANTAN. |
| PRINCE | Een lichtgewicht blokversleutelingsontwerp dat zich richt op het verminderen van latentie door een 'unrolled' structuur te gebruiken in plaats van identieke rondes, wat de ontwerpmogelijkheden vergroot. |
| RECTANGLE | Een blokversleutelingsalgoritme dat gebruik maakt van de 'bit-slice' techniek op een lichtgewicht manier, ontworpen voor lage hardwarekosten en concurrerende softwareprestaties, gecorrigeerd in 2015 na kwetsbaarheden. |
| SIMON en SPECK | Een reeks flexibele Feistel-cijfers met variaties in blok- en sleutelgroottes, waarbij SIMON is geoptimaliseerd voor hardware-implementaties en SPECK voor software-implementaties. |
| Lightweight crypto | Cryptografische algoritmen die zijn ontworpen om te functioneren in omgevingen met beperkte middelen, zoals IoT-apparaten, waarbij rekening wordt gehouden met laag energieverbruik, rekenkracht en geheugengebruik. |
| Format Preserving Encryption (FPE) | Een methode van encryptie waarbij de cijfertekst hetzelfde formaat behoudt als de platte tekst, zodat versleutelde gegevens in legacy systemen kunnen worden opgeslagen zonder de structuur van de database te wijzigen. |
| Tokenization | Een beveiligingsmethode waarbij gevoelige informatie wordt vervangen door een unieke token, waarbij de originele gegevens worden opgeslagen in een aparte, beveiligde opslag (vault), wat vaak een wijziging van de database-structuur vereist. |
| GCM | Galois Counter Mode, een geauthenticeerde modus van werking die wordt gebruikt voor zowel encryptie als authenticatie van gegevens, gebaseerd op de CTR-modus. |
| CCM | Counter mode with CBC-MAC, een andere geauthenticeerde modus van werking die de beveiliging van encryptie en authenticatie combineert, vaak gebruikt in netwerkprotocollen. |
| ChaCha20 en Poly1305 | Een combinatie van een stroomversleuteling (ChaCha20) en een message authentication code (Poly1305) die wordt gebruikt voor het realiseren van geauthenticeerde encryptie, met goede prestaties in software zonder specifieke hardwareondersteuning. |
| DESX | Een methode om de sterkte van DES te verhogen door het toevoegen van extra XOR-bewerkingen met behulp van drie sleutels, wat resulteert in DES-X(M)=K2⊕DESK(M⊕K1). |
| Gost89 | Een Russisch encryptie-algoritme dat qua ontwerp en zwakheden vergelijkbaar is met DES, met een blokgrootte van 64 bits. |
| SM4 | Een Chinees alternatief voor AES, ontwikkeld door het Chinese leger, met een blokgrootte van 128 bits en sleutelgroottes van 128 bits. |