Cover
Start now for free 16_Crypto_attacks_V4.pdf
Summary
# Soorten cryptografische aanvallen
Dit onderwerp behandelt verschillende categorieën van aanvallen op encryptiesystemen, gebaseerd op de beschikbare informatie van de aanvaller en de mogelijkheden die het systeem biedt [2](#page=2).
### 1.1 Categorieën van aanvallen op encryptiesystemen
Cryptografische aanvallen kunnen worden gecategoriseerd op basis van de hoeveelheid informatie die een aanvaller tot zijn beschikking heeft en de interactiemogelijkheden met het encryptiesysteem [2](#page=2).
#### 1.1.1 Op basis van beschikbare informatie
* **Ciphertext-only aanval:** De aanvaller heeft alleen de beschikking over de versleutelde tekst (ciphertext). Dit is de meest basale vorm van aanval [2](#page=2).
* **Known-plaintext aanval:** De aanvaller beschikt over één of enkele bekende klare teksten (plaintext) en hun bijbehorende versleutelde teksten. Dit biedt meer informatie dan een ciphertext-only aanval [2](#page=2).
* **Chosen-plaintext aanval:** De aanvaller heeft de mogelijkheid om één of enkele klare teksten naar keuze naar de encryptiemachine te sturen en de resulterende versleutelde teksten te verkrijgen. Dit kan eenmalig of adaptief zijn [2](#page=2).
* **Chosen-ciphertext aanval:** De aanvaller kan één of enkele versleutelde teksten naar keuze aanbieden en de bijbehorende gedecodeerde teksten opvragen. Dit kan ook adaptief zijn [2](#page=2).
#### 1.1.2 Op basis van interactiemogelijkheden
* **Adaptieve aanvallen:** Bij adaptieve aanvallen kan de aanvaller de selectie van plainteksten of cipherteksten aanpassen op basis van de resultaten die tussentijds zijn verkregen. Dit maakt de aanval dynamischer en potentieel krachtiger [2](#page=2).
* **Niet-adaptieve aanvallen:** De selectie van plainteksten of cipherteksten wordt vooraf bepaald zonder aanpassingen op basis van tussentijdse resultaten.
#### 1.1.3 Andere kwetsbaarheden
* **Ontwerpfouten of backdoors:** Kwetsbaarheden kunnen ook voortkomen uit fouten in het ontwerp van het encryptiealgoritme, de keuze van parameters (zoals modus van operatie, te beperkte sleutels, of verouderde paddingstandaarden), fouten in de implementatie, of zelfs opzettelijk ingebouwde backdoors in het protocol of de implementatie [2](#page=2) [3](#page=3).
### 1.2 Specifieke aanvalsvectoren op RSA
De documentatie besteedt specifieke aandacht aan aanvallen op het RSA-algoritme, waarbij verschillende kwetsbaarheden worden belicht.
#### 1.2.1 Kwetsbaarheid door te dichtbij gelegen priemgetallen $p$ en $q$
Een fundamenteel principe in RSA is dat de priemgetallen $p$ en $q$, waaruit de modulus $n=p \times q$ wordt gevormd, voldoende van elkaar gescheiden moeten zijn. Als $p$ en $q$ te dicht bij elkaar liggen, kunnen ze makkelijker worden gevonden [4](#page=4).
Een aanval kan gebaseerd zijn op de eigenschap dat als $p$ en $q$ dicht bij elkaar liggen, hun gemiddelde, $\frac{p+q}{2}$, dicht bij $\sqrt{n}$ ligt. Als men een getal zoekt waarvan het kwadraat groter is dan $n$ (de "close square root") en dit kwadraat gelijk is aan $(\frac{p+q}{2})^2$, dan kan men de waarden van $\frac{p+q}{2}$ en $\frac{p-q}{2}$ achterhalen. Door deze waarden op te tellen of af te trekken, kunnen $p$ en $q$ worden herleid [4](#page=4) [5](#page=5).
> **Tip:** Het is cruciaal dat $p$ en $q$ ruim voldoende van elkaar verschillen. Dit is een veelvoorkomende kwetsbaarheid die deel kan uitmaken van oefeningen en examens. Bestanden zoals `rsa_square_attack` kunnen worden gebruikt om deze aanvallen te simuleren [5](#page=5) [6](#page=6).
#### 1.2.2 Kwetsbaarheid door kleine waarden van $m$ en $e$
Als de exponent $e$ klein is en de berichtwaarde $M$ ook klein is, kan de versleuteling $C = M^e \pmod{n}$ eenvoudig worden gedecodeerd door de $e$-de wortel van $C$ te nemen. Dit is met name een risico wanneer RSA wordt gebruikt om sleutels van symmetrische algoritmen te versleutelen, omdat deze sleutels (zoals AES-256) aanzienlijk kleiner kunnen zijn dan de modulus $n$ [7](#page=7).
> **Oplossing:** Padding van het bericht voordat het wordt versleuteld, kan dit risico minimaliseren.
#### 1.2.3 ROCA-kwetsbaarheid (Return of the Coppersmith Attack)
De ROCA-kwetsbaarheid treft RSA-sleutelgeneratie in specifieke softwarebibliotheken, zoals die gebruikt werden in Infineon Trusted Platform Modules. Miljoenen smartcards bleken hierdoor getroffen te zijn. De kwetsbaarheid ontstaat doordat de gegenereerde priemgetallen een specifieke vorm hadden, wat aanvallers gemakkelijk konden uitbuiten. Met deze kwetsbaarheid kon zelfs een 2048-bit RSA-sleutel voor een relatief laag bedrag (bijvoorbeeld 1000 US dollars, via Amazon renting) gebroken worden [8](#page=8) [9](#page=9).
#### 1.2.4 Zwakke sleutels door onvoldoende random number generators
Wanneer willekeurige getallen (randomness) die gebruikt worden bij het genereren van $p$ en $q$ onvoldoende zijn, kunnen er zwakke sleutels ontstaan. Dit is herkenbaar aan gemeenschappelijke delers tussen verschillende moduli $n$ [10](#page=10).
De grootste gemene deler (GCD) tussen twee moduli $n_1 = p_1 \times q_1$ en $n_2 = p_2 \times q_2$ kan snel worden berekend met het Euclidische algoritme. Als $p_1 = p_2$ of $q_1 = q_2$, dan is de GCD direct de gemeenschappelijke priemfactor, waarna de andere factor eenvoudig kan worden berekend [10](#page=10).
Een efficiënte methode om dit te detecteren bij een grote set moduli is om de GCD van een modulus te berekenen met het product van alle andere moduli. Dit kan, dankzij het efficiënte Euclidische algoritme, relatief snel worden gedaan. De hoofdoorzaak van dit probleem ligt vaak bij apparaten met onvoldoende entropie of zwakke random number generators [10](#page=10) [11](#page=11).
#### 1.2.5 Problemen met Diffie-Hellman en Elgamal (veilige priemgetallen)
Hoewel de documentatie primair gericht is op RSA, wordt ook verwezen naar kwetsbaarheden in Diffie-Hellman en Elgamal, met name de "Logjam" aanval. Deze aanval maakt gebruik van hergebruikte priemgetallen en slecht geconfigureerde groepen [12](#page=12).
De oplossing hiervoor is het gebruik van "veilige priemgetallen" ($p$), waarbij $\frac{p-1}{2}$ ook een priemgetal is. Dit zorgt ervoor dat $p-1$, een cruciaal getal in berekeningen zoals die voor de discrete logaritme, minder gemeenschappelijke delers heeft (behalve 2). Veel gebruikte Diffie-Hellman groepen maken echter geen gebruik van veilige priemgetallen, waardoor kwetsbaarheden blijven bestaan [12](#page=12).
### 1.3 Side-channel aanvallen
Side-channel aanvallen maken gebruik van informatie die lekt uit de fysieke implementatie van cryptografische systemen, in plaats van directe wiskundige aanvallen op het algoritme zelf.
#### 1.3.1 Parity side-channel (of Least Significant Bit) aanval
Bij deze aanval wordt aangenomen dat er een "orakel" beschikbaar is dat kan bepalen wat de minst significante bit (parity) is van de plaintext achter een gegeven ciphertext. Als men $C = P^e \pmod{n}$ heeft, kan men door $C$ te vermenigvuldigen met $2^e \pmod{n}$ de plaintext $2P$ verkrijgen. Door het orakel opnieuw te gebruiken, kan men bepalen of $2P$ even of oneven is [13](#page=13).
De logica hierachter is als volgt:
* Als $P < n/2$, dan is $2P$ een even getal kleiner dan $n$. De parity van $2P \pmod{n}$ is even [13](#page=13).
* Als $P > n/2$, dan is $2P > n$ (maar kleiner dan $2n$). De berekening wordt $2P - n$. Aangezien $2P$ even is en $n$ oneven (omdat $n=p \times q$ met $p, q$ oneven priemgetallen), is $2P - n$ een oneven getal. De parity van $2P \pmod{n}$ is oneven [13](#page=13).
Door dit proces iteratief te herhalen met $4P$, $8P$, enzovoort (door $C$ te vermenigvuldigen met $4^e \pmod{n}$, $8^e \pmod{n}$, etc.), kan de aanvaller het bereik van $P$ steeds nauwkeuriger bepalen en uiteindelijk $P$ reconstrueren [13](#page=13) [14](#page=14).
> **Voorbeeld:** Een orakel kan bestaan als een website die controleert of men een loterij heeft gewonnen, en een foutmelding geeft als het gedecodeerde getal (dat de status van de loterij aangeeft) oneven is, terwijl dit onmogelijk zou mogen zijn. Een ander voorbeeld is een boerderij die alleen een even aantal eieren verkoopt; als een RSA-encryptie die het aantal eieren vertegenwoordigt, bij decodering een oneven getal oplevert, kan dit een foutindicatie zijn [14](#page=14).
---
# Differentiële en lineaire cryptanalyse
Dit gedeelte behandelt twee fundamentele cryptanalytische technieken: differentiële cryptanalyse en lineaire cryptanalyse, inclusief hun basisprincipes, toepassingen en de weerstand van algoritmen [22](#page=22).
### 2.1 Differentiële cryptanalyse
Differentiële cryptanalyse is een techniek die zich richt op het bestuderen van hoe verschillen (delta's) in invoerteksten zich voortplanten door een cryptografisch algoritme om informatie over de geheime sleutel te verkrijgen. Het belangrijkste idee is om paren van invoerteksten te kiezen die een bepaald verschil $\Delta X$ hebben, en vervolgens de overeenkomstige uitvoerteksten te observeren om te zien of deze ook een bepaald verschil $\Delta Y$ vertonen. Als er een consistente relatie is tussen $\Delta X$ en $\Delta Y$ voor specifieke stappen in het algoritme, kan dit worden uitgebuit om de sleutel te achterhalen [23](#page=23).
#### 2.1.1 Basisprincipes van differentiële cryptanalyse
* **Gedefinieerd verschil:** Het proces begint met het selecteren van een specifiek verschil $\Delta X$ tussen twee invoerteksten ($X_1$ en $X_2$, waarbij $X_1 \oplus X_2 = \Delta X$) [23](#page=23).
* **Observatie van uitvoerverschil:** Vervolgens worden de overeenkomstige uitvoerteksten ($Y_1$ en $Y_2$) geobserveerd, en het verschil $\Delta Y = Y_1 \oplus Y_2$ wordt berekend [23](#page=23).
* **Sleutel XOR-operatie:** Een belangrijke observatie is dat een XOR-operatie met een onbekende sleutel het verschil tussen twee teksten onveranderd laat; $\Delta Y = \Delta X$ als de sleutel gelijk is voor beide encrypties [23](#page=23).
* **Niet-lineaire componenten:** De uitdaging ligt in de niet-lineaire componenten van het algoritme (zoals S-boxen of niet-lineaire functies), waar de relatie tussen $\Delta X$ en $\Delta Y$ niet triviaal is en voorspeld moet worden [23](#page=23).
#### 2.1.2 Aanvalstype
Differentiële cryptanalyse is een *chosen-plaintext attack* (CPA). Dit betekent dat de aanvaller de mogelijkheid heeft om paren van invoerteksten te kiezen en de corresponderende uitvoerteksten te verkrijgen. De aanvaller selecteert een $\Delta X$ en kiest vervolgens twee willekeurige platte teksten $P_0$ en $P_1$ zodanig dat $P_1 = P_0 \oplus \Delta X$ [24](#page=24).
#### 2.1.3 Toepassing op FEAL-4
Het FEAL-4 algoritme wordt vaak gebruikt als een voorbeeld om differentiële cryptanalyse te illustreren vanwege de zwakheden die het vertoont [18](#page=18) [53](#page=53).
* **G-functie differentiële eigenschappen:** De G-functie in FEAL-4, die bestaat uit modulo-additie en een circulaire shift, vertoont specifieke differentiële eigenschappen. Bijvoorbeeld, een invoerverschil van $0 \times 80$ voor één byte in de G-functie kan leiden tot een uitvoerverschil van $0 \times 02$ na de circulaire shift. Een verschil van $0 \times 00$ leidt tot een verschil van $0 \times 00$ [21](#page=21) [25](#page=25).
* **Ronde-functie differentiële eigenschappen:** Door de differentiële eigenschappen van de G-functie te combineren, kan het differentiële gedrag van de gehele ronde-functie worden geanalyseerd. Met een invoerverschil van $0\times80800000$ voor de eerste vier bytes, en $0\times00000000$ voor de volgende vier bytes, wordt het uitvoerverschil $0\times02000000$ [26](#page=26).
* **Opbouw van het volledige pad van differentiëlen (Meet-in-the-Middle):** De aanval kan worden uitgebreid door de differentiële paden door meerdere rondes van het FEAL-4 algoritme te volgen. Hoewel de sleutel XOR-operaties de differentiëlen niet veranderen, kunnen de niet-lineaire rondes de voorspelling van het uitvoerverschil bemoeilijken. Een specifieke zwakte in FEAL-4 is dat een invoerverschil van $0\times80800000$ een uitvoerverschil van $0\times02000000$ genereert in de ronde-functie [27](#page=27).
* **Herstellen van de laatste ronde subkey:** Om de laatste ronde subkey te achterhalen, kan men gebruik maken van het berekende uitvoerverschil van de laatste ronde. Dit wordt verkregen door het linkergedeelte van de geëncrypteerde teksten van een paar af te trekken. Vervolgens kan elke mogelijke subkey worden getest door deze toe te passen op de invoer van de laatste ronde en te controleren of het resulterende uitvoerverschil overeenkomt met het berekende differentiële pad [28](#page=28) [29](#page=29).
* **Complexiteitsreductie:** Hoewel het brute-force zoeken naar alle subkeys extreem is ($2^{32}$ voor een 32-bit subkey), kan differentiële cryptanalyse de complexiteit drastisch reduceren. Voor FEAL-4 kan de zoekruimte voor de laatste subkey worden teruggebracht tot ongeveer $2^{16}$ combinaties door slim gebruik te maken van de structuur van de ronde-functie en het creëren van specifieke invoervariabelen die slechts afhankelijk zijn van twee bytes van de sleutel. De totale aanval op FEAL-4 kan worden uitgevoerd met een zoekruimte van $2^{17}$ voor alle subkeys [30](#page=30) [31](#page=31) [32](#page=32) [33](#page=33) [34](#page=34) [35](#page=35).
#### 2.1.4 Differentiële aanvallen met waarschijnlijkheden
In de praktijk zijn differentiële paden zelden met 100% zekerheid aanwezig. Als een specifiek verschil $\Delta X$ een hogere waarschijnlijkheid heeft om te resulteren in een bepaald $\Delta Y$, kan dit nog steeds worden uitgebuit. Het creëren van distributietafels voor mogelijke $\Delta X$ waarden helpt bij het identificeren van de meest interessante differentiëlen. De vereiste hoeveelheid plaintexts voor een aanval is omgekeerd evenredig met de waarschijnlijkheid van het differentiële pad [36](#page=36) [37](#page=37) [39](#page=39).
#### 2.1.5 Weerstand van algoritmen
* **FEAL-4:** Vertonen significante zwakheden tegen differentiële cryptanalyse. De zwakte ligt in de niet-lineaire componenten van de ronde-functie [18](#page=18) [21](#page=21) [53](#page=53).
* **AES:** De S-Box in AES is de primaire verdediging tegen differentiële cryptanalyse. Andere componenten van het algoritme dragen niet significant bij aan de differentiële waarschijnlijkheid. Met een 2-ronde limiet van $\pounds 2^{-24}$ en een 4-ronde limiet van $\pounds 2^{-96}$, wordt een differentiële aanval over 10 rondes onwaarschijnlijk [38](#page=38).
* **DES:** DES was ontworpen met aandacht voor differentiële weerstand, hoewel differentiële cryptanalyse pas later werd ontdekt [38](#page=38).
### 2.2 Lineaire cryptanalyse
Lineaire cryptanalyse is een techniek die tot doel heeft om probabilistische lineaire relaties te vinden tussen subsets van platte tekstbits en subsets van data-bits die voorafgaan aan de laatste ronde. Deze relaties gedragen zich op een niet-willekeurige manier en kunnen worden uitgebuit om informatie over de sleutel te verkrijgen [41](#page=41).
#### 2.2.1 Basisprincipes van lineaire cryptanalyse
* **Known-plaintext attack:** Lineaire cryptanalyse is typisch een *known-plaintext attack* (KPA). De aanvaller heeft een grote hoeveelheid platte tekst-cijfertekstparen tot zijn beschikking [41](#page=41).
* **Lineaire vergelijkingen:** Het doel is om lineaire vergelijkingen te vinden die de bitposities van platte teksten, cijferteksten en (een deel van) de sleutel met elkaar verbinden. Deze vergelijkingen zijn vaak van de vorm [40](#page=40) [42](#page=42):
$$ \sum_{i \in I} p_i \oplus \sum_{j \in J} c_j = \sum_{k \in K} k_k \pmod{2} $$
waarbij $p_i$, $c_j$, en $k_k$ specifieke bits van de platte tekst, cijfertekst, en sleutel zijn, en $I$, $J$, $K$ verzamelingen van bitindices [40](#page=40).
* **Partiële decryptie:** Voor elke kandidaat-sleutel wordt het algoritme gedeeltelijk gedecrypteerd, en wordt gecontroleerd of de gevonden lineaire relatie geldt [41](#page=41).
* **Sleutelherstel:** De kandidaat-sleutel die de relatie het vaakst en met de grootste afwijking van 0.5 benadert (d.w.z. het meest non-random gedrag vertoont), wordt beschouwd als de meest waarschijnlijke sleutel. De sleutel wordt vaak gevonden door het testen van specifieke bitposities van de sleutel, en niet de volledige sleutel, omdat niet alle bitposities in de vergelijking verschijnen [41](#page=41) [47](#page=47).
#### 2.2.2 Toepassing op FEAL-4
Lineaire cryptanalyse is zeer effectief tegen FEAL-4. Door de relatief simpele en lineaire aard van de ronde-functie, kunnen er lineaire vergelijkingen worden opgesteld die een hoge waarschijnlijkheid hebben om te gelden. Een voorbeeld van een dergelijke vergelijking is $X_3 \oplus X_4 \oplus Y_1 \oplus Y_4$ met een waarschijnlijkheid van 14 uit 16 om 1 te zijn. De analyse van FEAL-4 toonde aan dat met slechts 10 plaintexts en 2 seconden op een 1992 computer, de sleutel kon worden achterhaald [43](#page=43) [45](#page=45) [47](#page=47) [49](#page=49).
#### 2.2.3 Lineaire cryptanalyse in het algemeen
* **Probabilistische relaties:** Net als bij differentiële cryptanalyse, kan lineaire cryptanalyse ook werken met probabilistische relaties. Dit maakt het mogelijk om algoritmen met imperfecte S-boxen te analyseren [48](#page=48).
* **Robuustheid:** Het is moeilijk om lineaire cryptanalyse volledig te voorkomen wanneer het algoritme bekend is, maar de complexiteit kan aanzienlijk worden verhoogd [48](#page=48).
* **Niet-lineaire componenten:** De S-Box is de enige niet-lineaire component in AES en speelt een cruciale rol in de weerstand tegen lineaire cryptanalyse. Een typische aanpak is het vinden van een R-1 ronde lineaire benadering met een voldoende hoge waarschijnlijkheid om vervolgens de laatste subkey te herstellen [48](#page=48).
### 2.3 Confusion en Diffusion
Moderne blokcijfers gebruiken zowel *confusion* (verwarring) als *diffusion* (verspreiding) om hun veiligheid te waarborgen [52](#page=52).
* **Confusion:** Verbergt de relatie tussen de sleutel en de cijfertekst. In FEAL-4 wordt dit bereikt door de XOR van de sleutel ($K_i$) en de additie in de G-functie [52](#page=52).
* **Diffusion:** Verspreidt de invloed van één bit van de platte tekst of sleutel over zoveel mogelijk bits van de cijfertekst. In FEAL-4 gebeurt dit door het shiften van bytes in de F-functie en bits in G0, G1 [52](#page=52).
FEAL-4 wordt beschouwd als zwak in zowel diffusie als confusie, wat bijdraagt aan de kwetsbaarheid ervan voor cryptanalytische aanvallen [52](#page=52).
---
# Andere cryptanalytische technieken en aanvallen op implementaties
Dit onderwerp verkent diverse aanvalsvectoren buiten de standaard frequentie- of statistische analyses, waaronder side-channel attacks, invasieve aanvallen, black-bag cryptanalyse en dwangmatige decryptie, evenals de bijbehorende tegenmaatregelen.
### 3.1 Aanvallen die niet afhankelijk zijn van het aantal ronden
Sommige cryptanalytische technieken zijn effectief, ongeacht het aantal implementatieronden van een algoritme, wat ze bijzonder gevaarlijk maakt voor algoritmen die hier niet tegen beschermd zijn [58](#page=58).
#### 3.1.1 Boomerang attack
De boomerang attack is een uitbreiding van differentiële cryptanalyse. In plaats van één enkele, zeer waarschijnlijke differentiële patroon over het hele cijfer te proberen te dekken, zoekt de aanvaller naar twee waarschijnlijke patronen die niet noodzakelijk gerelateerd zijn, maar samen het hele cijfer bestrijken. Dit vermindert de complexiteit van de differentiële aanval aanzienlijk [58](#page=58).
* **Werking:** Een cijfer wordt gezien als een samenstelling van twee functies, $E_0$ en $E_1$, waarbij $E(P) = E_1(E_0(P))$. Er worden twee plaintexts $P$ en $P'$ gekozen, en hun corresponderende ciphertexts $C$ en $C'$ worden verkregen. Vervolgens worden varianten $C'$ en $D'$ gecreëerd uit $C$ en $D$ (bijvoorbeeld $C' = C \oplus \Delta$ en $D' = D \oplus \Delta$). Het doel is dat deze varianten, na decryptie, resulteren in $P'$ en $Q'$ [58](#page=58) [59](#page=59).
#### 3.1.2 Slide attack
De slide attack is voornamelijk van toepassing op cyclische key schedules. Als de key schedule cyclisch is, verhoogt het toevoegen van meer ronden de complexiteit van het algoritme niet significant, omdat er een relatie blijft bestaan tussen de ciphertexts die overeenkomen met gerelateerde plaintexts. Het is een techniek waarbij een relatie tussen twee plaintexts $P$ en $P'$ nog steeds zichtbaar is in de relatie tussen de bijbehorende ciphertexts $C$ en $C'$, wat een "slide pair" wordt genoemd [60](#page=60).
* **Tegenmaatregel:** Het gebruik van niet-cyclische key scheduling algoritmen en rondeconstanten kan weerstand bieden tegen slide attacks door voldoende variatie tussen de rondefuncties te creëren [60](#page=60).
#### 3.1.3 Related-key attack
Een related-key attack is elke vorm van cryptanalyse waarbij de aanvaller de werking van een cijfer onder verschillende, initieel onbekende sleutels kan observeren, waarbij er een bekende wiskundige relatie tussen deze sleutels bestaat. Deze aanvallen zijn vaak theoretisch, aangezien het onwaarschijnlijk is dat een aanvaller een cryptograaf kan overhalen om onder meerdere, op een bepaalde manier gerelateerde, geheime sleutels te versleutelen [61](#page=61).
### 3.2 Andere cryptanalytische aanvallen
Naast differentiële en lineaire cryptanalyse zijn er nog andere technieken die gebruikt kunnen worden.
* **Impossible Differential:** Een differentiële karakteristiek die optreedt met een kans van 0. Dit kan gebruikt worden om waarden voor sleutelbits te elimineren [62](#page=62).
* **Partial Differential:** Beschouwt differentiële patronen over minder dan het volledige blokformaat bits [62](#page=62).
* **Higher Order Differentials:** Verdergaande varianten van differentiële cryptanalyse [62](#page=62).
* **Davies' Attack:** Een statistische cryptanalytische methode, gebaseerd op een bekende-plaintext aanval, die de niet-uniforme distributie van outputs van aangrenzende S-boxes benut. Het werkt door de empirische distributie van bepaalde kenmerken te berekenen op basis van veel bekende plaintext/ciphertext-paren. Bits van de sleutel kunnen worden afgeleid, waarna de resterende bits met brute force worden gevonden. Deze aanval werd gebruikt tegen DES en andere Feistel-cijfers [63](#page=63).
* **Interpolation Attack:** Een aanval die de ciphertext uitdrukt als een polynoom van de plaintext. Als dit polynoom een relatief klein aantal onbekende coëfficiënten heeft, kan het worden gereconstrueerd met behulp van plaintext/ciphertext-paren. Dit geeft de aanvaller een representatie van de encryptie zonder exacte kennis van de geheime sleutel. Een probabilistische versie kan werken, zelfs als de algebraïsche relatie slechts voor een fractie van de waarden geldt. Nieuwe blokcijfers die ontworpen waren om resistent te zijn tegen differentiële en lineaire cryptanalyse, zoals KN-Cipher en SHARK, waren kwetsbaar voor deze aanval. Machine learning en deep learning worden in dit verband beschouwd als equivalente methoden om de beste benadering te vinden op basis van gewichten [64](#page=64).
* **Integral Cryptanalysis:** Een techniek die de gelijktijdige relatie tussen vele encrypties benut, in tegenstelling tot differentiële cryptanalyse die paren van encrypties beschouwt. Het maakt gebruik van sets of multisets van gekozen plaintexts waarbij een deel constant wordt gehouden en een ander deel alle mogelijkheden doorloopt. Bijvoorbeeld, een aanval kan 256 gekozen plaintexts gebruiken die op alle bits na 8 bits gelijk zijn, maar in die 8 bits verschillen. De XOR-som van deze set is 0, en de XOR-sommen van de corresponderende ciphertexts verschaffen informatie over de werking van het cijfer. Blokcijfers die resistent waren tegen differentiële en lineaire cryptanalyse bleken kwetsbaar voor deze aanval, zoals de SQUARE-aanval die leidde tot aanpassingen in AES. Deze aanval was oorspronkelijk bekend als de SQUARE attack, later omgedoopt tot saturation attack en integral cryptanalysis [65](#page=65).
### 3.3 Aanvallen op implementaties
Deze aanvallen richten zich niet op het cryptografische algoritme zelf, maar op de manier waarop het is geïmplementeerd. Het zijn eerder technische of engineeringproblemen dan puur wiskundige problemen [67](#page=67) [68](#page=68).
#### 3.3.1 Side-channel attacks
Side-channel attacks maken gebruik van informatie die lekt tijdens de fysieke uitvoering van cryptografische operaties. Deze aanvallen zijn niet-destructief [67](#page=67) [68](#page=68).
* **Typen:**
* **Timing attacks:** Analyseren van de tijd die nodig is voor cryptografische bewerkingen [68](#page=68).
* **Bandwidth attacks:** Meten van de bandbreedte die gebruikt wordt, bijvoorbeeld om woorden in een versleuteld VoIP-gesprek te detecteren op basis van de lengte van de gecodeerde berichten [70](#page=70).
* **Power analysis attacks:** Meten van het stroomverbruik tijdens de cryptografische operaties [68](#page=68).
* **Electromagnetic analysis attacks:** Analyseren van elektromagnetische straling die door het apparaat wordt uitgezonden [68](#page=68).
* **Acoustic attacks:** Gebruiken van geluidsgolven, bijvoorbeeld om RSA-decryptiesleutels te extraheren via akoestische analyse [71](#page=71).
* **Visible light attack:** Gebruiken van visueel licht, bijvoorbeeld door thermische beelden van een toetsenbord te maken om ingevoerde wachtwoorden te achterhalen [73](#page=73).
* **Error message attack:** Analyseren van foutmeldingen die door het systeem worden gegenereerd [68](#page=68).
* **Attack based on CPU cache misses:** Profiteren van cache-geheugen patronen [68](#page=68).
* **Memory attacks:** Lezen van geheugeninhoud zoals RAM, swap-bestanden of cache [77](#page=77).
* **Brain-computer interfaces (BCI):** Het extraheren van PIN-codes uit EEG-signalen [76](#page=76).
* **Voorbeelden van implementaties:**
* Detecteren van woorden in versleutelde VoIP-gesprekken door analyse van berichtlengtes [70](#page=70).
* Extraheren van RSA-decryptiesleutels via akoestische analyse of het meten van elektrische potentiaal [71](#page=71).
* Analyseren van elektromagnetische emissies van computers met behulp van kleine apparaten [72](#page=72).
* Gebruiken van thermische beelden van een toetsenbord om wachtwoorden te achterhalen [73](#page=73).
* Keyboard acoustic side channel attack om wachtwoorden te achterhalen door de unieke geluiden van toetsaanslagen te analyseren [74](#page=74).
* Meten van elektromagnetische of stroomvariaties van andere apparaten, zoals telefoons of smartcards, om geheime sleutels te stelen (bv. voor Bitcoin-wallets) [75](#page=75).
* PIN-extractie uit EEG-signalen via brain-computer interfaces [76](#page=76).
* Lezen van geheugen (RAM, swap, cache) na beëindiging van een programma, zelfs na overschrijving of in virtuele machines [77](#page=77).
* **Tegenmaatregelen tegen side-channel attacks:**
* **Preventie van ongeautoriseerde code en toegang:** Beperken van debug-toegang, beveiligen van bussen en geheugencomponenten, en verhogen van code-integriteit [75](#page=75).
* **Vermindering van lekkage:**
* **Randomisatie/blinding:** Verwerken van willekeurige waarden (bv. een basispunt gerandomiseerd met een willekeurig punt, vermenigvuldigen van ciphertext met een willekeurig getal voor exponentiatie) [75](#page=75).
* **Masking:** Toevoegen van een willekeurig masker aan input en sleutel, met mask-correctie aan het einde [75](#page=75).
* **Hiding:** Doorbreken van de relatie tussen verwerking en observatie, bijvoorbeeld door constante tijd te gebruiken voor exponentiatie [75](#page=75).
* **Shuffling:** Veranderen van de volgorde van berekeningen indien toegestaan [75](#page=75).
* **Verhogen van ruis:** Willekeurig invoegen van instructies die moeilijk te herkennen zijn in een trace, of toevoegen van willekeurige timingvariaties (hoewel met voldoende data er nog steeds een statistische relatie kan bestaan) [75](#page=75).
#### 3.3.2 Invasive attacks
Dit type aanval vereist fysieke toegang tot het apparaat en kan leiden tot permanente schade [78](#page=78).
* **Typen:**
* **Probing attacks:** Directe fysieke manipulatie of analyse van componenten [78](#page=78).
* **Fault induction attacks:** Induceren van fouten door middel van spanningsvariaties, kloksignalen, temperatuurveranderingen, straling of licht [78](#page=78).
#### 3.3.3 Black-bag cryptanalysis
Dit betreft het verkrijgen van cryptografische geheimen via inbraak. De aanvaller richt zich op het endpoint in plaats van op de wiskunde van het algoritme. Voorbeelden zijn het installeren van keyloggers of het onderscheppen van data voordat deze versleuteld wordt [80](#page=80).
#### 3.3.4 Compelled decryption
Dit is geen aanval op de cryptografie zelf, maar op de gebruiker of wetgeving. In sommige jurisdicties kan een verdachte gedwongen worden om inlogcodes van computersystemen of smartphones te verstrekken. Het recht om te zwijgen is niet absoluut en vereist medewerking van de verdachte onder bepaalde voorwaarden [81](#page=81).
#### 3.3.5 Rubber-hose cryptanalysis
Dit is een metafoor voor het met geweld verkrijgen van een cryptografische sleutel, bijvoorbeeld door marteling [82](#page=82).
* **Oplossing:** Plausibly deniable encryption, waarbij de bestaan van versleutelde data ontkend kan worden en er geen statistisch bewijs is van de aanwezigheid van echte data achter een reeks bytes. Een voorbeeld is een versleutelde map die met twee verschillende wachtwoorden geopend kan worden: één voor gevoelige foto's en één voor de echte geheimen [82](#page=82).
---
## 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 |
|------|------------|
| Ciphertext-only aanval | Een type cryptografische aanval waarbij de aanvaller enkel toegang heeft tot de versleutelde tekst (ciphertext) en probeert om de oorspronkelijke platte tekst of de sleutel te achterhalen. |
| Bekende platte tekst aanval | Een cryptanalytische techniek waarbij de aanvaller zowel de versleutelde tekst (ciphertext) als de bijbehorende oorspronkelijke platte tekst (plaintext) kent. Dit helpt bij het afleiden van de cryptografische sleutel. |
| Gekozen platte tekst aanval | Een aanval waarbij de cryptanalist de mogelijkheid heeft om specifieke platte teksten te kiezen en deze te laten versleutelen door de cryptosysteem. De resulterende ciphertexts worden vervolgens geanalyseerd. |
| Adaptieve gekozen platte tekst aanval | Een geavanceerdere vorm van de gekozen platte tekst aanval, waarbij de aanvaller de keuze van de platte teksten kan aanpassen op basis van de tussentijdse resultaten die worden verkregen uit eerdere versleutelingen. |
| Gekozen ciphertext aanval | Een aanval waarbij de aanvaller de mogelijkheid heeft om specifieke ciphertexts te kiezen en deze te laten ontsleutelen door het cryptosysteem. De resultaten worden vervolgens gebruikt om de sleutel te achterhalen. |
| Adaptieve gekozen ciphertext aanval | Een variant van de gekozen ciphertext aanval waarbij de aanvaller de keuze van de ciphertexts kan aanpassen op basis van de tussentijdse resultaten van de ontsleutelingen. |
| Ontwerpfout encryptieschema of backdoor | Kwetsbaarheden die voortkomen uit fouten in het ontwerp van het encryptiealgoritme zelf of de implementatie ervan, of het bestaan van een "achterdeur" die door een aanvaller misbruikt kan worden. |
| RSA | Een van de eerste en meest gebruikte publieke-sleutel cryptosystemen, dat gebaseerd is op het wiskundige probleem van het ontbinden van grote getallen in priemfactoren. |
| Differentiële cryptanalyse | Een cryptanalytische techniek die zich richt op het analyseren van de verschillen (XOR) tussen de inputs en outputs van een cryptografisch algoritme. Het doel is om patronen te vinden die informatie over de geheime sleutel kunnen onthullen. |
| Lineaire cryptanalyse | Een cryptanalytische techniek die lineaire benaderingen gebruikt om de relatie tussen platte teksten, ciphertexts en sleutels te vinden. Het werkt door middel van statistische analyse van een groot aantal plaintext/ciphertext paren. |
| Feistelstructuur | Een symmetrische blokcijferarchitectuur die is opgebouwd uit meerdere rondes. Elke ronde splitst de data in twee helften, waarbij een functie wordt toegepast op één helft en het resultaat wordt gecombineerd met de andere helft. |
| Ronde functie | Het kernonderdeel van een blokcijfer dat in elke ronde wordt toegepast op de data. De complexiteit en veiligheid van het cijfer hangen sterk af van de eigenschappen van de ronde functie. |
| Subkey | Een deel van de hoofdsleutel dat in een specifieke ronde van een cryptografisch algoritme wordt gebruikt. Het afleiden van subkeys is vaak een doelwit van cryptanalisten. |
| Zijdeproblemen (Side-channel attacks) | Aanvallen die niet direct de wiskundige eigenschappen van het cryptografische algoritme exploiteren, maar in plaats daarvan informatie verkrijgen door het meten van fysieke eigenschappen van de implementatie, zoals stroomverbruik, timing of elektromagnetische straling. |
| Invasieve aanvallen | Een categorie van cryptanalytische aanvallen waarbij de aanvaller fysieke toegang verkrijgt tot de hardware van het cryptosysteem om deze te manipuleren of te analyseren, bijvoorbeeld door middel van het aanbrengen van fouten (fault induction) of directe probing. |
| Plausibel ontkenbare encryptie | Een encryptietechniek waarbij de aanwezigheid van versleutelde gegevens ontkend kan worden. Dit kan bijvoorbeeld door het gebruik van meerdere wachtwoorden, waarbij het ene wachtwoord gevoelige data onthult en het andere een valse of lege set data. |
| Gedoemde ontsleuteling | Een situatie waarin een verdachte wettelijk verplicht kan worden om toegang te verschaffen tot versleutelde gegevens, bijvoorbeeld door het verstrekken van wachtwoorden of pincodes. |
| Boemerang aanval | Een type cryptanalytische aanval dat een uitbreiding is van differentiële cryptanalyse. Het maakt gebruik van twee paren van plaintext/ciphertext om de kans op succes te vergroten, vooral bij algoritmen die weerstand bieden tegen standaard differentiële aanvallen. |
| Glijdende aanval (Slide attack) | Een aanval die voornamelijk gericht is op cryptografische algoritmen met cyclische sleutelgeneratie. De aanval maakt gebruik van de repetitieve aard van de sleutelplanning om de complexiteit te verminderen en de sleutel te achterhalen. |
| Gerelateerde sleutelaanval | Een aanval waarbij de aanvaller kennis heeft van een wiskundige relatie tussen verschillende geheime sleutels die voor encryptie worden gebruikt. Dit kan de analyse vergemakkelijken in vergelijking met aanvallen op individuele, onbekende sleutels. |
| Integrale cryptanalyse | Een cryptanalytische techniek die verschilt van differentiële cryptanalyse doordat het niet slechts paren van encrypties analyseert, maar sets of multisets van encrypties. Het onderzoekt de relaties tussen de sommen van vele waarden. |
| Verwarring (Confusion) | Een principe in cryptografie, geïntroduceerd door Claude Shannon, dat stelt dat de relatie tussen de sleutel en de ciphertext zo complex mogelijk moet zijn om het voor een aanvaller moeilijk te maken de sleutel te achterhalen. |
| Diffusie | Een ander principe van Shannon dat stelt dat de invloed van elke bit van de platte tekst en elke bit van de sleutel zich moet verspreiden over zoveel mogelijk bits van de ciphertext. Dit zorgt ervoor dat kleine veranderingen in de input grote veranderingen in de output veroorzaken. |