Kort antwoord: FIPS 203, definitief vastgesteld door NIST op 13 augustus 2024, standaardiseert ML-KEM (Module-Lattice-Based Key-Encapsulation Mechanism), de belangrijkste vervanging voor RSA- en ECDH-sleuteluitwisseling. Dit is belangrijk omdat ML-KEM een sleutelinkapselingsmechanisme is, geen encryptiealgoritme op zich; het genereert een gedeelde symmetrische sleutel over een onveilig kanaal via drie bewerkingen (sleutelgeneratie, inkapseling, decapsulatie) en is beschikbaar in drie parameterreeksen met verschillende afwegingen tussen beveiliging en grootte. Het wordt aanbevolen om ML-KEM-768 te kiezen voor de meeste algemene toepassingen, of ML-KEM-1024 voor zeer gevoelige of langdurige beveiligingsbehoeften, en te controleren of uw infrastructuur de grotere sleutel- en ciphertextgroottes aankan in vergelijking met RSA of ECC.
Key Takeaways
- ML-KEM (FIPS 203) definieert drie bewerkingen: sleutelgeneratie, inkapseling en uitkapseling, en is beschikbaar in drie parameterreeksen, ML-KEM-512, -768 en -1024, waarbij de beveiligingssterkte wordt afgewogen tegen de grootte van de sleutel en de ciphertext.
- ML-KEM bouwt voort op CRYSTALS-Kyber, maar fixeert het gedeelde geheim op 256 bits, actualiseert de Fujisaki-Okamoto-transformatie, verwijdert een stap voor het hashen van willekeurigheid en voegt expliciete controles voor invoervalidatie toe.
- De definitieve standaard corrigeerde fouten in de matrixindex uit het eerste ontwerp en voegde domeinscheiding toe om te voorkomen dat sleutels van het ene beveiligingsniveau op een ander niveau misbruikt zouden worden.
- Het kiezen van een parameterreeks betekent een afweging tussen beveiligingsniveau en prestaties: ML-KEM-1024 biedt de sterkste beveiliging, maar ook de grootste sleutels en versleutelde teksten, wat de systeemprestaties kan beïnvloeden.
- ML-KEM werd samen met ML-DSA (FIPS 204) en SLH-DSA (FIPS 205) op 13 augustus 2024 afgerond, waardoor organisaties beschikken over een complete, productiegereed pakket NIST-standaarden voor gebruik na de kwantumcomputertijdperk, waarmee ze kunnen beginnen met de migratie.
De Federal Information Processing Standards (FIPS) 203 introduceert de Module-Lattice-Based Key-Encapsulation Mechanism (ML-KEM)-standaard, een geavanceerd cryptografisch raamwerk dat is ontworpen om gegevens te beveiligen tegen opkomende bedreigingen van kwantumcomputers . In onze blog bespreken we de kernelementen, parameterreeksen, implementatieverschillen en praktische overwegingen die in de FIPS 203-standaard worden beschreven.
Inleiding tot ML-KEM
ML-KEM is een sleutelinkapselingsmechanisme (KEM) dat wordt gebruikt om symmetrische sleutels te beschermen, die cruciaal zijn voor het versleutelen en ontsleutelen van gegevens. De standaard definieert drie primaire bewerkingen:
- Sleutelgeneratie (KeyGen): Deze bewerking genereert een sleutelpaar: een publieke sleutel en een privésleutel. De publieke sleutel wordt verspreid voor encryptiedoeleinden, terwijl de privésleutel veilig wordt bewaard en gebruikt voor decryptie.
- Inkapseling (Encaps): Met behulp van de openbare sleutel produceert dit proces een cijfertekst die een symmetrische sleutel bevat. Deze cijfertekst kan veilig worden verzonden via onveilige kanalen.
- Decapsulatie (Decaps): Met de privésleutel haalt deze bewerking de symmetrische sleutel uit de cijfertekst. De symmetrische sleutel wordt vervolgens gebruikt voor volgende encryptie or decryptie taken.
Parametersets
FIPS 203 specificeert drie parametersets voor ML-KEM, die elk zijn afgestemd op verschillende beveiligingsniveaus en prestatiekenmerken:
ML-KEM-512
- Beveiligings niveau: Biedt een basisbeveiligingsniveau dat geschikt is voor veel standaardtoepassingen.
- Sleutel- en cijfertekstgroottes: Biedt een balans tussen beveiliging en prestaties, met encapsulatiesleutels van 800 bytes, decapsulatiesleutels van 1632 bytes, ciphertexts van 768 bytes en een vaste gedeelde geheime sleutel van 32 bytes.
ML-KEM-768
- Beveiligings niveau: Verbetert de beveiliging ten opzichte van ML-KEM-512, waardoor het geschikt is voor gevoeligere toepassingen.
- Sleutel- en cijfertekstgroottes:Omvat grotere encapsulatiesleutels van 1184 bytes, decapsulatiesleutels van 2400 bytes, versleutelde teksten van 1088 bytes en een gedeelde geheime sleutel van 32 bytes, waarmee een betere beveiliging wordt gecombineerd met grotere datagroottes.
ML-KEM-1024
- Beveiligings niveau: Biedt het hoogste beveiligingsniveau van de drie parametersets, ideaal voor zeer gevoelige of langdurige beveiligingsbehoeften.
- Sleutel- en cijfertekstgroottes: Bevat de grootste encapsulatiesleutels van 1568 bytes, decapsulatiesleutels van 3168 bytes, ciphertexts van 1568 bytes en een gedeelde geheime sleutel van 32 bytes, wat de prestaties kan beïnvloeden vanwege de grotere datagroottes.
Elke parameterset bevat variabelen die de grootte bepalen van de matrices en vectoren die worden gebruikt bij het genereren en versleutelen van sleutels. Deze parameters zijn cruciaal voor het afstemmen van cryptografische bewerkingen op verschillende beveiligings- en prestatievereisten.
Sleutel- en cijfertekstgroottes
De FIPS 203-standaard specificeert de groottes van sleutels en cijferteksten voor elke parameterset, die rechtstreeks van invloed zijn op de hoeveelheid gegevens die tijdens het versleutelen en ontsleutelen wordt verwerkt:
ML-KEM-512
- Encapsulatiesleutel: 800 bytes
- Decapsulatiesleutel: 1632 bytes
- Cijfertekst: 768 bytes
- Gedeelde geheime sleutel: 32 bytes
- Vereiste RBG-sterkte: minimaal 128 bits
ML-KEM-768
- Encapsulatiesleutel: 1184 bytes
- Decapsulatiesleutel: 2400 bytes
- Cijfertekst: 1088 bytes
- Gedeelde geheime sleutel: 32 bytes
- Vereiste RBG-sterkte: minimaal 192 bits
ML-KEM-1024
- Encapsulatiesleutel: 1568 bytes
- Decapsulatiesleutel: 3168 bytes
- Cijfertekst: 1568 bytes
- Gedeelde geheime sleutel: 32 bytes
- Vereiste RBG-sterkte: minimaal 256 bits
Deze groottes weerspiegelen de hoeveelheid gegevens die betrokken is bij de cryptografische processen en hebben invloed op zowel de beveiliging als de prestaties van het systeem.
Verschillen met CRYSTALS-Kyber
FIPS 203 bouwt voort op het CRYSTALS-Kyber-schema en bevat een aantal belangrijke updates en wijzigingen:
-
Vaste gedeelde geheime lengte
In tegenstelling tot CRYSTALS-Kyber, dat gedeelde geheime sleutels met variabele lengte toestond, specificeert ML-KEM een vaste lengte van 256 bits. Deze standaardisatie vereenvoudigt integratie en gebruik en zorgt voor een consistente grootte van de gedeelde geheime sleutel in alle applicaties.
-
Bijgewerkte Fujisaki-Okamoto-transformatie
ML-KEM maakt gebruik van een aangepaste versie van de Fujisaki-Okamoto-transformatie. Deze update sluit de hash van de cijfertekst uit bij het afleiden van het gedeelde geheim, in lijn met de huidige beveiligingspraktijken om het proces te stroomlijnen.
-
Willekeurige afhandeling
Eerdere versies van het algoritme vereisten het hashen van de initiële willekeurigheid om de kwaliteit ervan te garanderen. ML-KEM verwijdert deze stap en vertrouwt in plaats daarvan op door NIST goedgekeurde willekeurigheidsgeneratoren om voldoende willekeurigheid te garanderen zonder extra verwerking.
-
Ingangsvalidatie
De standaard introduceert expliciete controles op de validiteit van de invoer die in eerdere versies niet aanwezig waren. ML-KEM controleert bijvoorbeeld of de encapsulatiesleutel correct wordt gedecodeerd vanuit de byte-array, wat de juiste indeling en integriteit garandeert.
Updates van het eerste ontwerp
De definitieve versie van FIPS 203 bevat verschillende herzieningen op basis van feedback op het eerste openbare ontwerp:
-
Domeinscheiding
Om misbruik van sleutels op verschillende beveiligingsniveaus te voorkomen, wordt domeinscheiding geïntroduceerd tijdens het sleutelgeneratieproces. Dit zorgt ervoor dat sleutels die voor het ene beveiligingsniveau bedoeld zijn, niet per ongeluk voor een ander niveau kunnen worden gebruikt, wat de algehele systeembeveiliging verbetert.
-
Correctie van matrixindices
Fouten met betrekking tot matrixindices in het eerste ontwerp zijn gecorrigeerd om ze af te stemmen op de oorspronkelijke CRYSTALS-Kyber-specificatie. Deze aanpassing garandeert nauwkeurigheid en consistentie in de implementatie van ML-KEM.
Praktische implementatieoverwegingen
Bij de implementatie van ML-KEM moet u rekening houden met de volgende praktische aspecten:
-
Een parameterset selecteren
Kies de parameterset die het beste aansluit bij uw beveiligingsvereisten en prestatiebeperkingen. Hogere beveiligingsparametersets bieden betere bescherming, maar kunnen de systeemprestaties beïnvloeden vanwege grotere datavolumes of verwerkingsvereisten.
-
Afwegingen tussen prestaties en beveiliging
Begrijp de balans tussen beveiliging en prestaties. Sterkere beveiligingsinstellingen bieden meer bescherming, maar kunnen leiden tot tragere prestaties of grotere datavolumes. Beoordeel uw specifieke behoeften om de meest geschikte parameterset te bepalen.
-
Compliant
Zorg ervoor dat uw implementatie voldoet aan de specificaties die zijn vastgelegd in FIPS 203. Naleving van deze standaarden is cruciaal voor het realiseren van veilige sleutelencapsulatie en het handhaven van gegevensbescherming.
Hoe encryptieconsultancy kan helpen
Wij bieden complete post-kwantum cryptografische algoritmen die zijn afgestemd op de unieke behoeften van uw organisatie en u helpen zich aan te passen aan het kwantumtijdperk.
- Kwantumrisico-evaluatie: Identificeer kwetsbaarheden in bestaande coderingsprotocollen en sleutelbeheer systemen.
- Routekaart voor kwantumgereedheid:Ontwikkel een op maat gemaakte strategie voor de overgang naar kwantumbestendige oplossingen, afgestemd op NIST en andere normen.
- Aangepaste beveiligingsmaatregelen: Implementeer beveiligingsmaatregelen op basis van de gevoeligheid en kriticiteit van de gegevens.
- Ondersteuning bij implementatie: Ondersteuning bieden bij de overgang naar post-kwantum cryptografische algoritmen, inclusief Proof of Concept-ontwikkeling en kwetsbaarheidsbeoordelingen.
- Zichtbaarheid en naleving: Verbeter het inzicht in cryptografische praktijken en zorg voor naleving van industrienormen.
- Toekomstbestendig: Pas u aan op nieuwe kwantumbedreigingen met flexibele modellen en voortdurende monitoring om veerkracht op de lange termijn te behouden.
- Deskundig overlegProfiteer van onze gespecialiseerde tools en best practices voor robuuste cryptografische beveiliging.
Conclusie
FIPS 203 en de ML-KEM-standaard vertegenwoordigen aanzienlijke vooruitgang in cryptografische technologie, met name op het gebied van voorbereiding op potentiële toekomstige bedreigingen van kwantumcomputers . Door inzicht te krijgen in de parameterinstellingen, de verschillen met eerdere schema's en de praktische overwegingen, kunnen organisaties ML-KEM effectief implementeren om hun strategieën voor gegevensbescherming te verbeteren. Voor gedetailleerde begeleiding kunt u een individuele sessie boeken om te ontdekken hoe wij u kunnen helpen te voldoen aan de beste praktijken en compliance-eisen.
Veelgestelde Vragen / FAQ
Wat zijn de drie bewerkingen die door ML-KEM worden gedefinieerd?
Sleutelgeneratie (KeyGen), waarbij een publiek en een privésleutelpaar worden gegenereerd; Encapsulatie (Encaps), waarbij de publieke sleutel wordt gebruikt om een ​​versleutelde tekst te produceren die een symmetrische sleutel bevat; en Decapsulatie (Decaps), waarbij de privésleutel wordt gebruikt om de symmetrische sleutel uit die versleutelde tekst te halen.
Welke ML-KEM-parameterreeks zouden de meeste organisaties moeten gebruiken?
ML-KEM-768 biedt verbeterde beveiliging, geschikt voor de meest gevoelige toepassingen, met een acceptabele afweging tussen grootte en beveiliging. ML-KEM-1024 biedt het hoogste beveiligingsniveau voor zeer gevoelige toepassingen of langdurige bescherming, ten koste van de grootste sleutel- en ciphertextgrootte. ML-KEM-512 biedt basisbeveiliging voor standaardtoepassingen.
Waarin verschilt ML-KEM van CRYSTALS-Kyber?
ML-KEM stelt de lengte van de gedeelde geheime sleutel vast op 256 bits in plaats van variabele lengtes toe te staan, werkt de Fujisaki-Okamoto-transformatie bij om de ciphertext-hash uit te sluiten van de afleiding van de gedeelde geheime sleutel, verwijdert een eerdere stap voor het genereren van willekeurigheidshash ten gunste van door NIST goedgekeurde willekeurigheidsgeneratoren, en voegt expliciete controles voor invoervalidatie toe die CRYSTALS-Kyber niet vereiste.
Wat is er veranderd tussen het eerste ontwerp en de definitieve versie van FIPS 203?
NIST heeft domeinscheiding toegevoegd aan het sleutelgeneratieproces om te voorkomen dat sleutels van het ene beveiligingsniveau misbruikt worden op een ander niveau, en heeft fouten in de matrixindex gecorrigeerd die in het eerste openbare ontwerp waren opgedoken, waardoor de definitieve standaard in lijn is gebracht met de oorspronkelijke CRYSTALS-Kyber-specificatie.
Waarom zijn ML-KEM-sleutels en -cijferteksten groter dan die van RSA of ECC?
ML-KEM is gebaseerd op roosterberekeningen in plaats van integerfactorisatie of elliptische krommen, en op roosters gebaseerde schema's vereisen inherent grotere sleutel- en ciphertextgroottes om een ​​gelijkwaardige beveiliging te bereiken. Dit is een bekende afweging bij alle door NIST gestandaardiseerde post-kwantumalgoritmen, en geen ontwerpfout die specifiek is voor ML-KEM.
Wanneer werd FIPS 203 definitief vastgesteld?
NIST heeft FIPS 203, samen met FIPS 204 (ML-DSA) en FIPS 205 (SLH-DSA), op 13 augustus 2024 afgerond, waardoor organisaties beschikken over een complete, productiegereed pakket post-kwantumcryptografiestandaarden.
