Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
mlkem-native — Sichere, schnelle und portable C90-Implementierung von ML-KEM / FIPS 203 | Kitploit
Tools/GitHubGitHub/pq-code-package/mlkem-native
Embedded-System-SicherheitStatische AnalyseKryptographieHardware-Sicherheit
GitHubpq-code-package/mlkem-native

mlkem-native

Sichere, schnelle und portable C90-Implementierung von ML-KEM / FIPS 203

Repository anzeigen
2416880vor 7 TagenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Webseite

mlkem-native

CI Benchmarks C90

License: Apache License: ISC License: MIT

mlkem-native ist eine sichere, schnelle und portable C90[^C90]-Implementierung von ML-KEM[^FIPS203]. Es ist ein Fork der ML-KEM-Referenzimplementierung[^REF].

Der gesamte C-Code in mlkem/src/* und mlkem/src/fips202/* ist als speichersicher (kein Speicherüberlauf) und typsicher (kein Integer-Überlauf) bewiesen, unter Verwendung von CBMC[^CBMC]. Der gesamte AArch64- und x86_64-Assemblycode ist als funktional korrekt, speichersicher und mit geheimnisunabhängigem Timing (konstantzeitlich) bewiesen, unter Verwendung von HOL-Light[^HOL-Light].

mlkem-native enthält native Backends für Arm (64-Bit, Neon), Intel/AMD (64-Bit, AVX2), RISC-V (64-Bit, RVV) und POWER (ppc64le, VSX). Siehe Benchmarks für Leistungsdaten.

mlkem-native wird von der Post-Quantum Cryptography Alliance als Teil der Linux Foundation unterstützt.

Schnellstart für Ubuntu

# Basis-Pakete installieren
sudo apt-get update
sudo apt-get install make gcc python3 git

# mlkem-native klonen
git clone https://github.com/pq-code-package/mlkem-native.git
cd mlkem-native

# Build und Tests ausführen
make build
make test

# Dasselbe mit `tests`, einem Komfort-Wrapper um `make`
./scripts/tests all
# Alle Optionen anzeigen
./scripts/tests --help

Weitere Informationen finden Sie in BUILDING.md.

Anwendungen

mlkem-native wird verwendet in

  • libOQS des Open Quantum Safe-Projekts seit 0.13.0 (als Standard-ML-KEM-Implementierung)
  • AWS' Kryptographie-Bibliothek AWS-LC seit v1.50.0
  • Der in Rust geschriebenen TLS-Bibliothek rustls seit 0.23.28 (über AWS-LC als Standard-Kryptographie-Anbieter)
  • Pavona – eine Bibliothek modularer, tapeout-erprobter und standardmäßig sicherer Open-Silicon-Blöcke

Formale Verifikation

Der gesamte C-Code in mlkem/src/* und mlkem/src/fips202/* ist als speichersicher (kein Speicherüberlauf) und typsicher (kein Integer-Überlauf) bewiesen. Dies verwendet den C Bounded Model Checker (CBMC) und baut auf Funktionsverträgen und Schleifeninvarianten-Annotationen im Quellcode auf. Siehe proofs/cbmc für Details.

Der gesamte AArch64- und x86_64-Assemblycode ist als funktional korrekt, speichersicher und mit geheimnisunabhängigem Timing (konstantzeitlich) auf Objektcode-Ebene bewiesen. Dies verwendet den interaktiven Theorembeweiser HOL-Light und die Verifikationsinfrastruktur s2n-bignum (die Modelle der relevanten Teile der Arm- und x86-Architekturen enthält). Siehe proofs/hol_light für Details.

HINWEIS: Formale Verifikation ist niemals absolut. Siehe SOUNDNESS.md für eine detaillierte Analyse des Umfangs, der Annahmen und der Risiken der formalen Verifikationsbemühungen rund um mlkem-native.

Sicherheit

Der gesamte AArch64- und x86_64-Assemblycode in mlkem-native ist in HOL Light formal als frei von geheimnisabhängigem Kontrollfluss, Speicherzugriffsmustern und Anweisungen mit variabler Latenz bewiesen, wodurch die meisten Timing-Seitenkanäle vereitelt werden (siehe proofs/hol_light für Details). C-Code ist gegen compilerinduzierte Timing-Seitenkanäle (wie KyberSlash[^KyberSlash] oder clangover[^clangover]) durch geeignete Barrieren und Konstantzeit-Muster gehärtet.

Die Abwesenheit von geheimnisabhängigen Verzweigungen, Speicherzugriffsmustern und Anweisungen mit variabler Latenz wird auch mit valgrind mit verschiedenen Kombinationen von Compilern und Kompilierungsoptionen getestet.

Andere Angriffe. mlkem-native zielt nur auf Widerstand gegen Timing-Seitenkanäle ab. Andere Angriffsklassen wie Strom- und elektromagnetische Seitenkanäle, mikroarchitektonische Seitenkanäle (z. B. spekulative Ausführung) oder Fehlerinjektionsangriffe sind derzeit außerhalb des Rahmens.

Design

mlkem-native ist in ein Frontend und zwei Backends für Arithmetik und FIPS202 / SHA3 aufgeteilt. Das Frontend ist fest, in C geschrieben und deckt alle Routinen ab, die nicht leistungskritisch sind. Die Backends sind flexibel, kümmern sich um leistungssensitive Routinen und können in C oder nativem Code (Assembly/Intrinsics) implementiert werden; siehe mlkem/src/native/api.h für das Arithmetik-Backend und mlkem/src/fips202/native/api.h für das FIPS-202-Backend.

mlkem-native bietet derzeit die folgenden Backends an:

  • Standard-portables C-Backend
  • 64-Bit-Arm-Backend (mit Neon)
  • 64-Bit-Intel/AMD-Backend (mit AVX2)
  • 64-Bit-RISC-V-Backend (mit RVV)
  • 64-Bit-POWER-Backend (ppc64le, mit VSX; unterstützt POWER8 und höher)
  • 32-Bit-Armv8.1-M-Backend (mit Helium/MVE) – siehe #1501. Dies ist noch experimentell und standardmäßig deaktiviert.

Wenn Sie neue Backends beitragen möchten, kontaktieren Sie uns bitte oder eröffnen Sie einfach einen PR.

Unser AArch64-Assemblycode wird mit dem SLOTHY-Superoptimierer entwickelt, dem Ansatz aus dem SLOTHY-Papier[^SLOTHY_Paper] folgend: Wir schreiben 'sauberen' Assemblycode von Hand und automatisieren Mikrooptimierungen (z. B. siehe clean vs. optimized AArch64-NTT). Siehe dev/README.md für weitere Details.

Testvektoren

mlkem-native wird gegen alle offiziellen ACVP-ML-KEM-Testvektoren[^ACVP] und die Wycheproof[^wycheproof]-ML-KEM-Testvektoren getestet.

ACVP

Sie können ACVP-Tests mit dem tests-Skript oder dem ACVP-Client direkt ausführen:

# Mit dem tests-Skript
./scripts/tests acvp
# Mit einer bestimmten ACVP-Version
./scripts/tests acvp --version v1.1.0.41
Tool herunterladen