Cover
Start now for free Lattice crypto.pdf
Summary
# Introductie tot roostergebaseerde cryptografie
Dit onderwerp introduceert de basisprincipes van roostergebaseerde cryptografie, met een focus op het Learning With Errors (LWE) probleem en de toepassingen ervan [1](#page=1).
### 1.1 Algemene principes van roostergebaseerde cryptografie
Roostergebaseerde cryptografie (Lattice-based cryptography) is een opkomend veld binnen de cryptografie dat gebruikmaakt van de wiskundige eigenschappen van roosters (lattices). In tegenstelling tot traditionele cryptosystemen die gebaseerd zijn op problemen als priemgetallenfactorisatie of discrete logaritmen, biedt roostergebaseerde cryptografie een veelbelovende piste voor post-kwantum cryptografie, omdat de onderliggende wiskundige problemen resistent worden geacht tegen aanvallen van kwantumcomputers [1](#page=1) [5](#page=5).
### 1.2 Het Learning With Errors (LWE) probleem
Het Learning With Errors (LWE) probleem vormt de kern van veel moderne roostergebaseerde cryptosystemen. In essentie stelt het LWE-probleem de uitdaging om een geheime vector te reconstrueren, gegeven een reeks lineaire vergelijkingen waaraan willekeurige fouten zijn toegevoegd [1](#page=1) [2](#page=2).
#### 1.2.1 Definitie van het LWE-probleem
Formeel wordt het LWE-probleem als volgt gedefinieerd:
Gegeven een geheime vector $s \in \mathbb{R}^n$, een modulus $q$ en een foutverdeling $\chi$ over $\mathbb{R}$, is het LWE-monster een paar $(A, b)$ waarbij:
- $A$ is een willekeurige matrix van afmeting $m \times n$ over $\mathbb{Z}_q$.
- $e$ is een willekeurige vector van afmeting $m$, waarbij elk element $e_i$ wordt getrokken uit de foutverdeling $\chi$.
- $b = A \cdot s + e \pmod q$.
Het probleem is om de geheime vector $s$ te bepalen, gegeven $A$ en $b$ [1](#page=1) [3](#page=3).
> **Tip:** De moeilijkheid van het LWE-probleem ligt in het feit dat de toevoeging van kleine fouten de lineaire structuur van de vergelijkingen verstoort, wat traditionele lineaire algebra-oplossingstechnieken onbruikbaar maakt.
#### 1.2.2 De Ring-LWE (RLWE) variant
Een veelgebruikte variant van LWE is Ring-LWE (RLWE). Bij RLWE worden de operaties uitgevoerd op polynomen in plaats van op vectoren en matrices. In dit geval zijn $A$, $s$, $e$ en $b$ polynomen, en wordt de vermenigvuldiging uitgevoerd met behulp van Galois-vermenigvuldiging in modulo een priempolynoom [3](#page=3) [4](#page=4).
Bij RLWE is de relatie vaak als volgt:
- $b = s \cdot A + e \pmod{q, x^n+1}$, waarbij $A$ een polynoom is, en $s$ en $e$ polynomen zijn.
- Een andere formulering kan zijn: $b = s \cdot A + e \pmod{q, x^n+1}$, waarbij $A$ een matrix van polynomen is, en $s$ en $e$ vectoren van polynomen zijn [4](#page=4).
#### 1.2.3 Diffie-Hellman sleuteluitwisseling met LWE
LWE kan worden gebruikt om Diffie-Hellman-achtige sleuteluitwisselingsprotocollen te construeren. In deze protocollen delen partijen geen geheime sleutels direct, maar leiden ze publieke sleutels af uit hun privé sleutels, die vervolgens worden uitgewisseld [2](#page=2) [3](#page=3).
Een typische LWE-gebaseerde sleuteluitwisseling kan er als volgt uitzien:
**Alice en Bob onderhandelen over Diffie-Hellman-parameters (matrix $A$, modulus $q$)** [3](#page=3).
**Alice:**
- Kies een privé sleutel $s_a$ en een foutvector $e_1$.
- Bereken haar publieke sleutel $b_a = A \cdot s_a + e_1 \pmod q$ [3](#page=3).
**Bob:**
- Kies een privé sleutel $s_b$ en een foutvector $e_2$.
- Bereken zijn publieke sleutel $b_b = A \cdot s_b + e_2 \pmod q$ [3](#page=3).
**Sleutelberekening:**
- Alice berekent een gedeelde geheime waarde $k_a = b_b \cdot s_a \pmod q$. Door de definitie van $b_b$ te substitueren, krijgt ze: $k_a = (A \cdot s_b + e_2) \cdot s_a \pmod q = A \cdot s_b \cdot s_a + e_2 \cdot s_a \pmod q$.
- Bob berekent een gedeelde geheime waarde $k_b = b_a \cdot s_b \pmod q$. Door de definitie van $b_a$ te substitueren, krijgt hij: $k_b = (A \cdot s_a + e_1) \cdot s_b \pmod q = A \cdot s_a \cdot s_b + e_1 \cdot s_b \pmod q$.
De waarden $k_a$ en $k_b$ zijn niet exact gelijk vanwege de fouttermen $e_1$ en $e_2$. Echter, door de kleine grootte van de fouten en de privé sleutels, zijn de verschillen klein. Deze verschillen kunnen worden opgevangen met behulp van foutcorrectietechnieken of door truncatie [3](#page=3).
#### 1.2.4 Crystals-Kyber
Crystals-Kyber is een sleutelencapsulatiemechanisme (Key Encapsulation Mechanism - KEM) gebaseerd op roostergebaseerde cryptografie, specifiek op de RLWE-variant. Het kan worden gezien als een uitbreiding van een sleutelencrypiteringsalgoritme (Key Encryption Algorithm - KEA) [4](#page=4).
**Als KEA:**
Bob stuurt zijn publieke sleutel ($b_b$) naar Alice. Alice versleutelt een bericht $m$ door de cijfertekst $c = k_b + m$ te berekenen en deze naar Bob te sturen. Alice ontsleutelt door haar publieke sleutel ($b_b$) en haar privé sleutel ($s_a$) te gebruiken om de gedeelde geheime waarde $k_a$ te berekenen. Door $k_a$ van $c$ af te trekken, verkrijgt ze $m$, waarbij eventuele resterende fouten worden gecorrigeerd door een rechtse verschuiving [4](#page=4).
**Als KEM:**
Om te encapsuleren, kiest Bob een willekeurige waarde voor het bericht $m$. Hij berekent een controlewaarde voor $m$ en de publieke sleutel. Vervolgens versleutelt hij $m$ en de controlewaarde met behulp van het Kyber KEA. Een sleutel wordt gegenereerd uit een Key Derivation Function (KDF) met $m$, de publieke sleutel en de cijfertekst [4](#page=4).
Bij decapsulatie ontsleutelt Bob $m$ en de controlewaarde uit de cijfertekst met behulp van de Kyber KEA en zijn privé sleutel. Hij berekent een nieuwe cijfertekst en verifieert deze tegen de oorspronkelijke cijfertekst. Als de verificatie faalt, wordt $m$ vervangen door een vaste willekeurige sleutel die deel uitmaakt van de privé sleutel. Vervolgens worden $m$, de publieke sleutel en de cijfertekst gebruikt in een KDF om de uiteindelijke sleutel te genereren [4](#page=4).
### 1.3 Toepassingen van LWE in moderne cryptografie
LWE vormt de basis voor een breed scala aan cryptografische toepassingen. Hoewel de details van veel van deze toepassingen buiten het bestek van deze inleiding vallen, worden ze hier vermeld voor volledigheid [6](#page=6):
* Sleuteluitwisseling en publieke sleutel encryptie [2](#page=2) [6](#page=6).
* Oblivious Transfer [6](#page=6).
* Actief veilige encryptie (zonder random orakels) [6](#page=6).
* Block ciphers en Pseudo-Random Functions (PRF's) [6](#page=6).
* Identity-Based Encryption (IBE) [6](#page=6).
* Hiërarchische ID-based encryption [6](#page=6).
* Fully Homomorphic Encryption (FHE) [2](#page=2) [6](#page=6).
* Attribute-Based Encryption (ABE) voor willekeurige beleidsregels [6](#page=6).
* En meer [6](#page=6).
---
# Diffie-Hellman en gerelateerde varianten in cryptografie
Dit onderwerp behandelt de principes van Diffie-Hellman sleuteluitwisseling en hoe varianten zoals Learning With Errors (LWE) en Ring Learning With Errors (RLWE) worden toegepast voor veilige communicatie en encryptie.
### 2.1 Diffie-Hellman sleuteluitwisseling
De kern van Diffie-Hellman is het veilig uitwisselen van geheimen over een onveilig kanaal, zelfs als een aanvaller alle communicatie kan onderscheppen. In deze methode gebruiken beide partijen (Alice en Bob) privé-sleutels die niet worden gedeeld. Hieruit worden publieke sleutels afgeleid, die vervolgens worden uitgewisseld. Elk persoon berekent vervolgens een gedeeld geheim door hun eigen privé-sleutel te combineren met de publieke sleutel van de ander [3](#page=3).
#### 2.1.1 LWE Diffie-Hellman
Bij de Learning With Errors (LWE) variant van Diffie-Hellman worden deze berekeningen uitgevoerd met matrices en vectoren, waarbij bewerkingen modulo een priemgetal $q$ plaatsvinden [3](#page=3).
**Proces Alice en Bob:**
1. **Parameter Negotiatie:** Beide partijen stellen een parameter (matrix $A$) vast [3](#page=3).
2. **Privé Sleutels:**
* Alice kiest een privé-sleutel $s_a$ en een "ruis" term $e_1$ [3](#page=3).
* Bob kiest een privé-sleutel $s_b$ en een "ruis" term $e_2$ [3](#page=3).
3. **Publieke Sleutels:**
* Alice berekent haar publieke sleutel $b_a = A \cdot s_a + e_1 \pmod{q}$ [3](#page=3).
* Bob berekent zijn publieke sleutel $b_b = A \cdot s_b + e_2 \pmod{q}$ [3](#page=3).
4. **Publieke Sleutel Uitwisseling:** Alice en Bob wisselen hun publieke sleutels ($b_a$ en $b_b$) uit [3](#page=3).
5. **Gedeeld Geheim Berekening:**
* Alice berekent het gedeelde geheim $k_a = b_b \cdot s_a = (A \cdot s_b + e_2) \cdot s_a = A \cdot s_b \cdot s_a + e_2 \cdot s_a \pmod{q}$ [3](#page=3).
* Bob berekent het gedeelde geheim $k_b = b_a \cdot s_b = (A \cdot s_a + e_1) \cdot s_b = A \cdot s_a \cdot s_b + e_1 \cdot s_b \pmod{q}$ [3](#page=3).
Hoewel de berekende gedeelde geheimen $k_a$ en $k_b$ niet exact gelijk zijn vanwege de ruis-termen ($e_1$ en $e_2$), zijn de verschillen klein bij kleine waarden. Deze verschillen kunnen worden gecorrigeerd door middel van foutcorrectie of door de resultaten te truncaten (af te kappen) [3](#page=3).
#### 2.1.2 RLWE variant
De Ring Learning With Errors (RLWE) variant gebruikt polynomiale bewerkingen in plaats van matrixvermenigvuldiging. Alle componenten, zoals $A, s, e,$ en $b$, zijn polynomen. De bewerkingen worden uitgevoerd met Galois-vermenigvuldiging modulo een priem-polynoom [3](#page=3).
Voor de RLWE variant met polynomen gelden de volgende representaties:
* Voor een enkele polynoom: $b = s \cdot A + e$, waarbij $A, s, e,$ en $b$ polynomen zijn en Galois-vermenigvuldiging wordt toegepast [4](#page=4).
* Voor een vector van polynomen: $b = s \cdot A + e$, waarbij $A$ een $2 \times 2$ matrix van polynomen is, en $s, e, b$ $1 \times 2$ vectoren van polynomen zijn, met Galois-vermenigvuldiging [4](#page=4).
### 2.2 Crystals-Kyber: KEA en KEM
Crystals-Kyber is een specifiek algoritme dat de Diffie-Hellman principes, met name RLWE, toepast voor sleutel-encryptie en sleutel-inkapseling.
#### 2.2.1 Kristal-Kyber als sleutel-encryptie algoritme (KEA)
Als een Key Encryption Algorithm (KEA) werkt Kyber als volgt:
1. Bob stuurt zijn publieke sleutel ($b_b$) naar Alice [3](#page=3).
2. Bob versleutelt een bericht ($m$) door de publieke sleutel van Alice ($k_a$, die Bob nog niet kent) te gebruiken in combinatie met zijn publieke sleutel en een ruis-term. Een meer gangbare implementatie is echter dat Bob een bericht $m$ verstuurt, dat hij versleutelt met zijn eigen publieke sleutel en de gedeelde geheimen die hij kan afleiden. Echter, volgens de documentatie, versleutelt Bob een bericht $m$ met zijn publieke sleutel $b_b$ en het berekende gedeelde geheim $k_b$, wat resulteert in een cipher-text $c = k_b + m$ [4](#page=4).
3. Alice ontvangt de cipher-text $c$ en gebruikt haar privé-sleutel ($s_a$) om het gedeelde geheim $k_a$ te reconstrueren. Vervolgens ontsleutelt ze het bericht door $k_a$ van $c$ af te trekken: $m = c - k_a$. Eventuele fouten in het bericht worden gecorrigeerd door Alice door het resultaat naar rechts te verschuiven [4](#page=4).
#### 2.2.2 Kristal-Kyber als sleutel-inkapselingsmechanisme (KEM)
Kyber wordt meestal gebruikt als een Key Encapsulation Mechanism (KEM) om een willekeurig geheim veilig te transporteren. Het proces werkt als volgt:
**Inkapseling (door Bob):**
1. Bob genereert een willekeurig bericht ($m$), dat wordt beschouwd als een geheim.
2. Hij berekent een controlewaarde voor $m$ en zijn publieke sleutel ($b_b$).
3. Hij versleutelt zowel $m$ als de controlewaarde met behulp van de KEA-functionaliteit van Kyber (gebruikmakend van zijn publieke sleutel $b_b$ en het afgeleide gedeelde geheim). Dit resulteert in een cipher-text $c$ [4](#page=4).
4. Hij genereert een finale sleutel ($K$) met behulp van een Key Derivation Function (KDF), waarbij $m$, de publieke sleutel ($b_b$) en de cipher-text ($c$) als input dienen.
**Ont-inkapseling (door Alice):**
1. Alice ontvangt de cipher-text ($c$) van Bob.
2. Ze gebruikt haar privé-sleutel ($s_a$) om het gedeelde geheim ($k_a$) te reconstrueren en de oorspronkelijke $m$ en de controlewaarde uit de cipher-text $c$ te ontsleutelen [4](#page=4).
3. Ze berekent een nieuwe cipher-text met de ontsleutelde $m$ en haar privé-sleutel.
4. Ze verifieert of deze nieuw berekende cipher-text overeenkomt met de ontvangen cipher-text $c$.
5. **Foutafhandeling:** Als de verificatie faalt (wat duidt op mogelijke manipulatie of fouten), wordt de waarde van $m$ vervangen door een vooraf gedefinieerde, vaste willekeurige sleutel die is opgeslagen als onderdeel van haar privé-sleutel [4](#page=4).
6. Vervolgens gebruikt Alice de (mogelijk aangepaste) $m$, haar publieke sleutel ($b_b$, die zij al had) en de cipher-text ($c$) in een KDF om dezelfde finale sleutel ($K$) te genereren als Bob deed [4](#page=4).
> **Tip:** De KEM-benadering van Kyber is robuuster omdat het een mechanisme biedt om de integriteit van het geheime bericht te verifiëren, zelfs als de communicatie is verstoord of gemanipuleerd. Dit wordt bereikt door de toevoeging van een controlewaarde en de verificatiestap tijdens de ont-inkapseling [4](#page=4).
---
# Post-quantum cryptografie: algoritmen en beveiligingsniveaus
Dit onderwerp vergelijkt verschillende post-quantum cryptografie-algoritmen, hun sleutelgroottes en beveiligingsniveaus, met een focus op hun rol in de transitie naar kwantumveilige cryptografie [5](#page=5).
### 3.1 Inleiding tot post-quantum cryptografie
Post-quantum cryptografie (PQC) verwijst naar conventionele ciphers gebaseerd op wiskundige problemen die anders zijn dan factoring en discrete logaritmen, en waarvan wordt aangenomen dat ze veilig zijn tegen kwantaanvallen. Deze oplossingen bieden het voordeel van werking op conventionele hardware en blijven gebaseerd op computationele beveiliging, afhankelijk van de veronderstelde moeilijkheid van een probleem. Het is cruciaal dat het cryptografische ecosysteem het sterkst is wanneer zowel PQC als kwantumcryptografie beschikbaar zijn. De belangrijkste aanval waar bescherming tegen gezocht wordt, is 'harvest now, decrypt later' [7](#page=7) [8](#page=8).
### 3.2 Algoritmen en hun beveiligingsniveaus
Verschillende PQC-algoritmen worden geëvalueerd op basis van hun beveiligingsniveaus, die worden gerelateerd aan de moeilijkheid van het oplossen van bepaalde wiskundige problemen, zoals die in AES en SHA. De beveiligingsniveaus variëren van 1 (vergelijkbaar met AES-128) tot 5 (vergelijkbaar met AES-256) [5](#page=5).
#### 3.2.1 Lattice-gebaseerde cryptografie
Lattice-gebaseerde cryptosystemen combineren bescheiden sleutelgroottes met redelijke beveiligingsniveaus [5](#page=5).
* **Kyber:** Dit is een veelgebruikt lattice-gebaseerd algoritme.
* Kyber512 opereert op beveiligingsniveau 1 [5](#page=5).
* Kyber768 opereert op beveiligingsniveau 3 [5](#page=5).
* Kyber1024 opereert op beveiligingsniveau 5 [5](#page=5).
* **Falcon:** Een ander lattice-gebaseerd algoritme, maar gebaseerd op NTRU in plaats van RLWE [5](#page=5).
* Falcon512 opereert op beveiligingsniveau 1 [5](#page=5).
* Falcon1024 opereert op beveiligingsniveau 5 [5](#page=5).
#### 3.2.2 Hash-gebaseerde cryptografie
Hash-gebaseerde cryptografie maakt gebruik van hashfuncties voor beveiliging.
* **SPHINCS+:** Dit algoritme biedt een zeer hoge mate van kwantumresistentie, maar met aanzienlijk grotere signatuurgroottes. De handtekeninggrootte varieert tussen 7856 bytes en 49856 bytes, terwijl de publieke en private sleutelgroottes relatief klein zijn (tussen 32 en 128 bytes). SPHINCS+ is beschikbaar op verschillende beveiligingsniveaus [5](#page=5) [6](#page=6).
* **XMSS en LMS:** Dit zijn stateful hash-based signature schemes die ook kwantumresistent zijn, maar additionele operationele complexiteit vereisen in vergelijking met andere types handtekeningen [6](#page=6).
#### 3.2.3 Dilithium
Dilithium is een ander belangrijk PQC-algoritme dat op verschillende beveiligingsniveaus wordt aangeboden.
* Dilithium2 opereert op beveiligingsniveau 2 [5](#page=5).
* Dilithium3 opereert op beveiligingsniveau 3 [5](#page=5).
* Dilithium5 opereert op beveiligingsniveau 5 [5](#page=5).
### 3.3 Sleutel- en signatuurgroottes
De sleutel- en signatuurgroottes zijn belangrijke overwegingen bij de implementatie van PQC-algoritmen, aangezien grotere maten problemen kunnen introduceren in protocollen [5](#page=5).
| Beveiligingsniveau | Algoritme | Publieke sleutelgrootte (bytes) | Private sleutelgrootte (bytes) | Ciphertext/signatuurgrootte (bytes) |
| :----------------- | :------------ | :------------------------------ | :----------------------------- | :---------------------------------- |
| 1 | Kyber512 | 800 | 1632 | 768 |
| 1 | Falcon512 | 897 | 1281 | 666 |
| 2 | Dilithium2 | 1312 | 2528 | 2420 |
| 3 | Kyber768 | 1184 | 2400 | 1088 |
| 5 | Falcon1024 | 1793 | 2305 | 1280 |
| 5 | Kyber1024 | 1568 | 3168 | 1588 |
| 5 | Dilithium5 | 2592 | 4864 | 4627 |
Ter vergelijking, RSA 2048 heeft een publieke sleutelgrootte van 260 bytes, een private sleutelgrootte van 900 bytes en een ciphertextgrootte van 256 bytes [5](#page=5).
#### 3.3.1 Naamgeving van algoritmen
De officiële naamgeving van algoritmen is geëvolueerd. Oude namen moeten worden vermeden ten gunste van nieuwe standaarden:
* ML-KEM-512, FN-DSA-512, SLH-DSA-SHA2/SHAKE-128f/s voor beveiligingsniveau 1 [6](#page=6).
* ML-KEM-768, ML-DSA-65, SLH-DSA-SHA2/SHAKE-192f/s voor beveiligingsniveau 3 [6](#page=6).
* ML-KEM-1024, FN-DSA-1024, ML-DSA-87, SLH-DSA-SHA2/SHAKE-256f/s voor beveiligingsniveau 5 [6](#page=6).
### 3.4 Vergelijking met kwantumcryptografie
Naast post-quantum cryptografie bestaat er ook kwantumcryptografie, die een kwantumkanaal vereist voor het verzenden van kwantumbits. Hoewel kwantumkanalen momenteel beperkt zijn in afstand, zullen satellietcommunicatie en kwantumrepeaters in de toekomst wereldwijde kwantumcryptografie mogelijk maken. Een groot voordeel van kwantumcryptografie is dat er geen computationele aannames zijn [7](#page=7).
> **Tip:** Begrijp dat PQC nog steeds gebaseerd is op de veronderstelde moeilijkheid van wiskundige problemen, terwijl kwantumcryptografie fundamenteel andere beveiligingsprincipes hanteert. Beide dragen bij aan een robuuster cryptografisch ecosysteem [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 |
|------|------------|
| Roostergebaseerde cryptografie (Lattice-based Cryptography) | Een cryptografisch systeem dat gebaseerd is op de wiskundige moeilijkheid van het oplossen van problemen met betrekking tot roosters, zoals het Shortest Vector Problem (SVP) en het Closest Vector Problem (CVP). Deze systemen worden beschouwd als potentieel veilig tegen aanvallen door kwantumcomputers. |
| Learning With Errors (LWE) | Een cryptografisch probleem dat als basis dient voor veel roostergebaseerde cryptografische schema's. Het LWE-probleem betreft het vinden van een geheime vector uit een set lineaire vergelijkingen met een kleine willekeurige foutterm. |
| Ring Learning With Errors (RLWE) | Een variant van het LWE-probleem die werkt met polynomen en polynoomringen, vaak in modulo een priempolynoom. RLWE wordt gebruikt in efficiëntere cryptografische schema's, zoals die gebaseerd op polynoomvermenigvuldiging. |
| Diffie-Hellman sleuteluitwisseling | Een protocol dat twee partijen in staat stelt om een geheime gedeelde sleutel te creëren over een onveilig communicatiekanaal. Dit wordt bereikt door het uitwisselen van publieke waarden die berekend worden met een privé sleutel en een publieke parameter. |
| Crystals-Kyber | Een algoritme voor sleutel-encryptie (KEA) en sleutel-encapsulatiemechanisme (KEM) dat gebaseerd is op het RLWE-probleem. Het wordt gezien als een kandidaat voor standaardisatie in post-quantum cryptografie. |
| Homomorfe encryptie | Een type encryptie dat berekeningen mogelijk maakt op versleutelde gegevens zonder deze eerst te hoeven ontsleutelen. Dit is cruciaal voor privacy-beschermende toepassingen waarbij gevoelige data verwerkt moet worden. |
| Post-quantum cryptografie | Cryptografische algoritmen die ontworpen zijn om weerstand te bieden aan aanvallen, inclusief die uitgevoerd door een krachtige kwantumcomputer. Deze algoritmen zijn gebaseerd op wiskundige problemen die ook voor klassieke computers moeilijk op te lossen zijn. |
| Sleutel Encapsulatiemechanisme (KEM) | Een cryptografisch mechanisme dat wordt gebruikt om een geheime sleutel te genereren en te "encapsuleren" (versleutelen) in een ciphertext. De ontvanger kan de sleutel dan "decapsuleren" met zijn privésleutel. |
| Galois-vermenigvuldiging | Een vorm van polynoomvermenigvuldiging die wordt gebruikt in cryptografische schema's zoals RLWE. Het omvat het vermenigvuldigen van polynomen en het nemen van de modulus met betrekking tot een andere polynoom. |
| Harvest now, decrypt later | Een type aanval waarbij een aanvaller versleutelde gegevens verzamelt die in de toekomst worden verzonden en opslaat, in de verwachting dat ze met toekomstige, krachtigere decryptietechnologie (zoals kwantumcomputers) kunnen worden ontcijferd. |
| Kwantumcryptografie | Een cryptografisch systeem dat gebruik maakt van de principes van de kwantummechanica, zoals kwantumverstrengeling en superpositie, voor beveiligde communicatie. Een voorbeeld hiervan is Quantum Key Distribution (QKD). |
| Digitale handtekening | Een cryptografische methode om de authenticiteit en integriteit van digitale gegevens te verifiëren. Het zorgt ervoor dat de gegevens afkomstig zijn van de geclaimde afzender en dat ze niet zijn gewijzigd. |