Cover
Zacznij teraz za darmo Symmetric_5_other block ciphers.pdf
Summary
# Andere symmetrische blokcijfers
Dit deel geeft een overzicht van diverse symmetrische blokcijfers naast AES, waarbij hun kenmerken, toepassingen en beveiligingsaspecten worden behandeld [2](#page=2) [3](#page=3) [4](#page=4) [6](#page=6) [7](#page=7).
### 1.1 Overzicht van diverse blokcijfers
Er is een breed scala aan symmetrische blokcijfers ontwikkeld, elk met specifieke ontwerpdoelstellingen en kenmerken. Naast de alomtegenwoordige AES zijn er vele alternatieven die in verschillende contexten worden gebruikt of zijn overwogen [2](#page=2) [3](#page=3) [4](#page=4) [6](#page=6) [7](#page=7).
#### 1.1.1 Camellia
Camellia is een Feistel-cijfer dat qua sterkte vergelijkbaar is met AES, maar meer steun geniet vanuit Europa en Japan. Het is niet opgenomen in de huidige lijst van TLS 1.3 ciphers. Camellia kent varianten met sleutelgroottes van 128, 192 en 256 bits, en heeft een blokgrootte van 128 bits. Het aantal rondes varieert tussen 18 en 24, afhankelijk van de sleutelgrootte [2](#page=2) [4](#page=4).
#### 1.1.2 Kasumi
Kasumi, ook bekend als A5/3 in 3G-netwerken, is een blokcijfer met een sleutelgrootte van 128 bits en een blokgrootte van 64 bits. Er zijn aanvallen gepubliceerd die Kasumi kunnen breken. Het aantal rondes is 8 [2](#page=2).
#### 1.1.3 Blowfish
Blowfish was een concurrent van Twofish voor de AES-competitie begin 2000. Het wordt gebruikt in sommige IPsec-configuraties. DESX wordt ook vermeld als een methode om de sterkte van DES te verhogen door het gebruik van drie sleutels (K, K1, K2) en XOR-operaties: DES-X(M) = K2 ⊕ DESK(M ⊕ K1). Blowfish (BF) wordt beschouwd als een voorloper van Twofish [2](#page=2) [4](#page=4).
#### 1.1.4 RC5
RC5 is een zeer parametriseerbaar cijfer. Een specifieke gebruikte variant is RC5-32/16/16, wat staat voor twee woorden van 32 bits, 16 rondes en een sleutel van 16 bytes. RC2, eveneens ontwikkeld door Ron Rivest, is een ouder blokcijfer zonder relatie tot de stream cipher RC4. RC2 werd bevoordeeld door de Amerikaanse exportwetgeving vanwege zijn lage sleutelgrootte van 40 bits [2](#page=2) [4](#page=4).
#### 1.1.5 Skipjack
Het Skipjack-cijfer werd voorgesteld voor gebruik in de mislukte Clipper Chip en werd publiekelijk gemaakt in 1998. Het wordt verondersteld te zijn ontworpen door de NSA. Skipjack heeft een blokgrootte van 64 bits en een sleutelgrootte van 80 bits, met 16 A-rondes en 16 B-rondes [2](#page=2).
#### 1.1.6 IDEA
IDEA (International Data Encryption Algorithm) is vergelijkbaar met DES, maar heeft een sleutellengte van 128 bits. Het cijfer heeft een blokgrootte van 64 bits en 8 rondes [2](#page=2).
#### 1.1.7 PRESENT
PRESENT is ontworpen als een lichtgewicht blokcijfer voor omgevingen met beperkte middelen. Het heeft een blokgrootte van 64 bits en een sleutelgrootte van 80 bits met 31 rondes. Present heeft een hogere doorvoer met een kleiner hardwarearea vergeleken met KATAN. Bij ontwerp kunnen alle blokcijfers met een blokgrootte van 64 bits problemen ondervinden met blokcollisies bij grote hoeveelheden data, wat zorgvuldige implementatie en beperking van data per sleutel vereist. Een cryptanalyse-aanval op PRESENT-80 heeft een datacomplexiteit van maximaal 2^22 gekozen plaintext en een computationele complexiteit van 2^79.34. PRESENT is een anagram van SERPENT, een concurrent van AES in de NIST-competitie [2](#page=2) [7](#page=7).
#### 1.1.8 KATAN
KATAN is ontworpen voor efficiënte hardware-implementatie en het behalen van redelijke doorvoer. Het heeft een blokgrootte van 64 bits, een sleutelgrootte van 80 bits en een aantal rondes van 31. De KATAN-familie van cijfers is gebroken met een meet-in-the-middle aanval die een tijdcomplexiteit van 2^75.170 en een datacomplexiteit van 3 heeft [2](#page=2) [6](#page=6).
#### 1.1.9 PRINCE
PRINCE is het eerste lichtgewicht blokcijferontwerp dat zich richt op het verminderen van latentie. Door te kiezen voor een 'unrolled' structuur vanaf het begin, neemt de ontwerpmogelijkheid 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).
#### 1.1.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 leidt tot lage hardwarekosten en competitieve softwareprestaties. Er zijn nog geen volledige cryptanalyse-aanvallen op RECTANGLE bekend [7](#page=7).
#### 1.1.11 SIMON en SPECK
SIMON is een Feistel-cijfer met grote flexibiliteit door variaties in blok- en sleutelgroottes. SPECK deelt deze flexibiliteit met variaties in blok- en sleutelgroottes. SIMON is geoptimaliseerd voor hardware-implementaties, terwijl SPECK is geoptimaliseerd voor software. Er zijn geen volledige cryptanalyse-aanvallen op SIMON en SPECK bekend [7](#page=7).
#### 1.1.12 Andere Noemenswaardige Cijfers
* **SEED**: Een concurrent 128-bits blokcijfer dat niet alle sleutelgroottes ondersteunt. De prestatieverschillen met AES nemen bijna exponentieel toe met grotere bestanden [3](#page=3).
* **DESX**: Een methode om de sterkte van DES te verhogen zonder grote aanpassingen, gebruikmakend van drie sleutels [4](#page=4).
* **CAST en Twofish**: Concurrenten van AES in de NIST-competitie [4](#page=4).
* **Gost89**: Een Russische kopie van DES, met vergelijkbaar ontwerp en zwakheden, en een blokgrootte van 64 bits [4](#page=4).
* **SM4**: Een Chinees alternatief voor AES [4](#page=4).
* **Chacha**: Een goed alternatief voor AES, dat zonder hardware-ondersteuning sneller kan zijn dan AES [4](#page=4).
### 1.2 Lichtgewicht Blokcijfers en IoT
Er is aanzienlijke interesse in lichtgewicht blokcijfers voor IoT-domeinen. Lichtgewicht verwijst hier naar een laag verbruik van batterijvermogen en rekenkracht, en beperkt geheugengebruik. Het is belangrijk te benadrukken dat lichtgewicht crypto niet per definitie zwak is; prestatiebeperkingen in deze domeinen worden soms onterecht gebruikt als rechtvaardiging voor zwakke oplossingen. Een blokgrootte van 128 bits is niet altijd noodzakelijk [6](#page=6).
#### 1.2.1 Prestatieoverwegingen
De prestatieverschillen tussen AES en andere cijfers worden significant groter bij grotere bestanden. Hoewel AES hardware-ondersteuning heeft die altijd beschikbaar is, kan het langzamer zijn dan bijvoorbeeld Chacha zonder deze ondersteuning [3](#page=3) [4](#page=4).
> **Tip:** Bij het evalueren van lichtgewicht cryptografie is het cruciaal om onderscheid te maken tussen echte efficiëntie en het gebruik van beperkte middelen als excuus voor zwakke beveiliging.
### 1.3 Beveiligingsaspecten en Aanvallen
* **AES**: De bekendste shortcut-aanval op de volledige versies van AES is een biclique-aanval uit 2011, die alle 10 rondes van AES128 breekt met een tijdcomplexiteit van $2^{126.18}$ en een datacomplexiteit van $2^{88}$. Deze cijfers zijn echter nog steeds te hoog voor praktische waarde. Alleen side-channel aanvallen hebben een redelijke kans om AES te breken. AES is primair ontworpen voor software en is te kostbaar voor kleine apparaten [6](#page=6).
* **KATAN**: De KATAN-familie is gebroken met een meet-in-the-middle aanval met een tijdcomplexiteit van $2^{75.170}$ en een datacomplexiteit van 3 [6](#page=6).
* **PRESENT**: Een cryptanalyse-aanval op PRESENT-80 heeft een datacomplexiteit van maximaal $2^{22}$ gekozen plaintext en een computationele complexiteit van $2^{79.34}$ [7](#page=7).
* **PRINCE**: Een cryptanalyse-aanval bereikt een reductie van de sleutelzoekruimte met $2^{1.28}$ [7](#page=7).
* **RECTANGLE**: Er zijn geen volledige cryptanalyse-aanvallen op RECTANGLE bekend [7](#page=7).
* **SIMON en SPECK**: Er zijn geen volledige cryptanalyse-aanvallen op SIMON en SPECK bekend [7](#page=7).
> **Tip:** Bij het bestuderen van deze cijfers is het nuttig om de relevante aanvalscolumnen in de tabellen (zoals hierboven) te noteren, inclusief hun complexiteiten. Dit helpt bij het vergelijken van de theoretische beveiliging.
### 1.4 OpenSSL Ciphers
De opdracht `openssl enc –ciphers` kan worden gebruikt om de beschikbare ciphers op een systeem te verkrijgen. De resultaten kunnen variëren afhankelijk van de versie [4](#page=4).
> **Voorbeeld:** Op een systeem kan de output van `openssl enc –ciphers` een lijst bevatten zoals `aes-256-cbc, aes-192-cbc, aes-128-cbc, ...`. Dit toont de beschikbare AES-varianten in verschillende modi.
---
# Openssl ciphers en authenticatiemodes
Dit onderwerp beschrijft hoe men een lijst van beschikbare ciphers kan verkrijgen met openssl en introduceert concepten als GCM, CCM en de combinatie van chacha20 en poly1305 voor geauthenticeerde modi.
### 2.1 Verkrijgen van beschikbare ciphers met openssl
Om een lijst van beschikbare ciphers op een specifiek apparaat te verkrijgen, kan de commando `openssl enc –ciphers` worden gebruikt. De exacte output kan variëren afhankelijk van de versie van OpenSSL [4](#page=4).
### 2.2 Overzicht van verschillende ciphers
De documentatie noemt een aantal ciphers, waaronder:
* **DESX**: Een methode om de sterkte van DES te verhogen door middel van drie sleutels (K, K1, K2). De operatie wordt gedefinieerd als $K2 \oplus DES_K(M \oplus K1)$ [4](#page=4).
* **BF (Blowfish)**: Een voorganger van Twofish [4](#page=4).
* **CAST en Twofish**: Deze waren concurrenten van AES in de NIST-competitie [4](#page=4).
* **Camellia**: Een Feistel-cipher met een sterkte vergelijkbaar met AES, en met meer ondersteuning vanuit Europa en Japan [4](#page=4).
* **RC2**: Een oudere block cipher, ongerelateerd aan RC4. Beide zijn ontwikkeld door Ron Rivest. RC2 werd gunstig behandeld door Amerikaanse exportregels vanwege zijn beperkte sleutelgrootte van 40 bits [4](#page=4).
* **Gost89**: Een Russische kopie van DES, qua ontwerp en zwakheden vergelijkbaar met DES, met een blokgrootte van 64 bits [4](#page=4).
* **SM4**: Een Chinese alternatieve cipher voor AES [4](#page=4).
* **Chacha**: Een goed alternatief voor AES. Zonder hardware-ondersteuning, die voor AES altijd beschikbaar is, kan Chacha langzamer zijn dan AES [4](#page=4).
### 2.3 Geauthenticeerde modi van operatie
Geauthenticeerde modi bieden zowel vertrouwelijkheid als integriteit en authenticiteit van de data. GCM, CCM en de combinatie van chacha20 met poly1305 zijn voorbeelden van dergelijke modi [5](#page=5).
* **GCM (Galois Counter Mode)**: Dit is een uitbreiding van CTR-modus (Counter Mode) [5](#page=5).
* **Chacha20 en Poly1305 combinatie**: Deze combinatie zorgt ervoor dat Chacha20 de symmetrische encryptie verzorgt en Poly1305 de authenticatie [5](#page=5).
> **Tip:** Voor het vinden van ciphers die door SSH worden ondersteund, kan de commando `ssh -Q cipher` worden gebruikt. Dit is gerelateerd aan de algemene OpenSSL ciphers, maar specifiek voor SSH-implementaties [5](#page=5).
---
# Formaatbehoudende encryptie (FPE)
Formaatbehoudende encryptie (FPE) is een type blokcijfer dat garandeert dat de resulterende cijfertekst hetzelfde formaat behoudt als de oorspronkelijke platte tekst [8](#page=8).
### 3.1 Algemene principes van FPE
FPE is ontworpen om gestructureerde gegevens te versleutelen, zoals creditcardnummers, kentekenplaten of andere gegevens met een specifiek formaat, zonder dat de onderliggende systemen die deze gegevens opslaan of verwerken aangepast hoeven te worden. Het kernprincipe is dat een 16-cijferig creditcardnummer, na encryptie met FPE, nog steeds een 16-cijferig nummer zal zijn [8](#page=8).
**Hoe het werkt:**
In essentie gebruikt FPE een geheime sleutel om een pseudo-willekeurige permutatie of substitutie te genereren die het formaat van de platte tekst behoudt [8](#page=8).
### 3.2 FPE versus Tokenization
Tokenization wordt soms genoemd als een alternatief voor FPE [8](#page=8).
* **Tokenization:** Dit proces houdt in dat gevoelige informatie wordt verplaatst naar een aparte, veilige opslag (een "vault"). De oorspronkelijke informatie wordt vervangen door een uniek "token" dat geen verband houdt met de originele gegevens. Dit vereist echter wel aanpassingen in de database-structuur, omdat het formaat en de grootte van het token afwijken van de originele data [8](#page=8).
* **FPE:** FPE behoudt het originele formaat, waardoor wijzigingen in bestaande databases en applicaties die specifieke formaten verwachten, geminimaliseerd worden [8](#page=8).
### 3.3 Beperkingen van FPE
* **Domeingrootte:** FPE wordt over het algemeen niet aanbevolen voor kleine domeinen, zoals een eenvoudige Ja/Nee-keuze. Sommige FPE-algoritmen vereisen een minimale domeingrootte van wel 1 miljoen mogelijke waarden [9](#page=9).
* **Modi van operatie:** FPE is niet compatibel met traditionele cipher-modi zoals CBC (Cipher Block Chaining). Dit is echter zelden een beperking, aangezien het versleutelen van meerdere blokken meestal geen vereiste is voor de gegevens die met FPE worden beveiligd. Daarnaast is het opnemen van de IV (Initialization Vector) in de cijfertekst bij dergelijke modi niet praktisch voor FPE, omdat dit de lengte kan vergroten en ongeldige karakters kan introduceren [8](#page=8).
> **Tip:** FPE is een uitstekende oplossing wanneer gevoelige gegevens met een strikt formaat binnen bestaande, ongewijzigde systemen moeten worden beschermd, zonder de noodzaak van grote structurele aanpassingen.
> **Voorbeeld:** Een financiële instelling die creditcardnummers (16 cijfers) in een legacy-systeem moet opslaan, kan FPE gebruiken. Het versleutelde creditcardnummer blijft 16 cijfers lang, waardoor het zonder problemen in het bestaande veld past [8](#page=8).
---
## 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 |
|------|------------|
| Blokcijfer | Een symmetrisch encryptiealgoritme dat platte tekst verwerkt in blokken van vaste grootte, bijvoorbeeld 128 bits, en elk blok versleutelt met behulp van een geheime sleutel. |
| Symmetrische encryptie | Een cryptografisch systeem waarbij dezelfde geheime sleutel wordt gebruikt voor zowel encryptie (versleuteling) als decryptie (ontsleuteling) van gegevens. |
| AES | Advanced Encryption Standard, een wijdverbreide en veilige blokcijferstandaard die wordt gebruikt voor symmetrische encryptie, met sleutellengtes van 128, 192 of 256 bits. |
| Camellia | Een symmetrisch blokcijfer met een blokgrootte van 128 bits en ondersteuning voor 128, 192 en 256-bits sleutels, vergelijkbaar met AES en populair in Europa en Japan. |
| Kasumi | Een blokcijfer met een 128-bits sleutel en een 64-bits blokgrootte, gebruikt in 3G-standaarden (A5/3), waarvoor aanvalsresultaten zijn gepubliceerd. |
| Blowfish | Een symmetrisch blokcijfer dat werd overwogen als concurrent voor AES en wordt gebruikt in sommige IPsec-configuraties, bekend om zijn efficiëntie. |
| RC5 | Een blokcijfer dat sterk parametriseerbaar is, waarbij de variant RC5-32/16/16 wordt gekenmerkt door 32-bits woorden, 16 rondes en een 16-byte sleutel. |
| Skipjack | Een blokcijfer dat oorspronkelijk werd voorgesteld voor de Clipper Chip en werd ontworpen door de NSA, met een 64-bits blokgrootte en een 80-bits sleutel. |
| IDEA | International Data Encryption Algorithm, een blokcijfer dat vergelijkbaar is met DES maar met een langere sleutellengte van 128 bits. |
| PRESENT | Een lichtgewicht blokcijfer ontworpen voor beperkte omgevingen, met een blokgrootte van 64 bits, dat een hogere doorvoer biedt met minder hardware. |
| KATAN | Een blokcijfer ontworpen voor efficiënte hardware-implementatie, met een naam die een anagram is van de aanval die erop is uitgevoerd (meet-in-the-middle). |
| PRINCE | Een lichtgewicht blokcijferontwerp dat zich richt op het verminderen van latentie door een niet-uitgevouwen structuur van het begin af aan te kiezen. |
| RECTANGLE | Een lichtgewicht blokcijfer dat in 2014 werd gepubliceerd en in 2015 werd gecorrigeerd, waarbij gebruik wordt gemaakt van de bitslice-techniek voor een lage hardwarekosten en goede softwareprestaties. |
| SIMON | Een Feistel-cijfer met flexibiliteit in blok- en sleutelgroottes, geoptimaliseerd voor hardware-implementaties. |
| SPECK | Een Feistel-cijfer met flexibiliteit in blok- en sleutelgroottes, geoptimaliseerd voor software-implementaties. |
| GCM | Galois Counter Mode, een geauthenticeerde encryptiemodus die een uitbreiding is van CTR en cryptografische authenticatie biedt naast vertrouwelijkheid. |
| CCM | Counter with CBC-MAC, een andere geauthenticeerde encryptiemodus die wordt gebruikt om zowel de vertrouwelijkheid als de authenticiteit van gegevens te waarborgen. |
| Chacha20-Poly1305 | Een combinatie van de streamcijfer Chacha20 voor encryptie en de MAC-functie Poly1305 voor authenticatie, die een snelle en veilige geauthenticeerde encryptie levert. |
| Formaatbehoudende encryptie (FPE) | Een blokcijfer dat ervoor zorgt dat de cijfertekst dezelfde structuur en lengte heeft als de originele platte tekst, waardoor het geschikt is voor het versleutelen van gegevens in bestaande databasesystemen zonder deze te hoeven aanpassen. |
| Tokenisatie | Een beveiligingsproces waarbij gevoelige gegevens worden vervangen door een niet-gevoelig token of referentie, die vervolgens wordt opgeslagen in plaats van de originele gegevens; de originele gegevens worden extern opgeslagen in een kluis. |