Inhaltsverzeichnis

std.crypto

Das std.crypto-Paket stellt symmetrische Verschlüsselung, kryptografische Hashfunktionen, MACs, digitale Signaturen und sichere Zufallszahlen bereit. Alle Implementierungen sind reine Lyx-Software (kein AES-NI, kein OpenSSL) und damit auf eingebetteten Systemen, Bare-Metal-Targets und portablen Umgebungen ohne externe Abhängigkeiten nutzbar.

Einsatzbereiche: Datenverschlüsselung (Dateien, Netzwerkpakete), Passwort-Authentifizierung (MySQL-Protokoll), Checksummen, digitale Signaturen (ECDSA), sichere Schlüsselgenerierung.

Standard Library · Kryptographie-Guide (Vergleich & Empfehlungen) · std.net.tls · std.hash


Units im Überblick

Alle Units dieses Pakets im Überblick:

Unit Import Beschreibung
std.crypto.aes import std.crypto.aes; AES-128/256-CBC mit PKCS#7-Padding; IV-basierte Blockverschlüsselung
std.crypto.sha256 import std.crypto.sha256; SHA-256 (32-Byte-Digest); FIPS 180-4; digitale Signaturen, Datenintegrität
std.crypto.ecc import std.crypto.ecc; secp256k1 ECDSA — Schlüsselerzeugung, Signieren, Verifizieren
std.crypto.rand import std.crypto.rand; Kryptografisch sichere Zufallszahlen via getrandom(2)
std.crypto.hmac import std.crypto.hmac; HMAC-SHA256 (RFC 2104): Integrität + Authentizität; HMAC_SHA256, HMAC_SHA256_Hex
std.crypto.md5 import std.crypto.md5; MD5-Hash (128 Bit); für Legacy-Checksummen und HTTP Digest Auth
std.crypto.sha1 import std.crypto.sha1; SHA-1-Hash (160 Bit); MySQL mysql_native_password, Git, Legacy
std.crypto.x25519 import std.crypto.x25519; X25519 Diffie-Hellman (Curve25519, RFC 7748): Schlüsselaustausch, constant-time Montgomery-Leiter
std.crypto.keccak import std.crypto.keccak; Keccak-f[1600] / SHA-3/256 / SHA-3/512 / SHAKE-128 / SHAKE-256 (FIPS 202)
std.crypto.ct import std.crypto.ct; Constant-Time Utilities: CTSelect, CTMemEqual, SecureZero, Barrett/Montgomery-Reduktion
std.crypto.ntt import std.crypto.ntt; NTT / Polynomring-Arithmetik für ML-KEM (q=3329) und ML-DSA (q=8380417) — intern
std.crypto.pqc import std.crypto.pqc.pqc; Post-Quantum-Kryptografie: ML-KEM (FIPS 203), ML-DSA (FIPS 204), SLH-DSA (FIPS 205), Hybrid-KEM, DADQ
std.crypto.pqc.dadq import std.crypto.pqc.dadq; DADQ-SYM: symmetrisches Authenticated Cipher, Latin-Square Z₂₅₆, 128-Bit Quantensicherheit (experimentell)

Wann welche Unit?

Kurzübersicht für die Unit-Auswahl:

Aufgabe Unit
Daten symmetrisch verschlüsseln/entschlüsseln std.crypto.aes
AES-128 (kleinerer Schlüssel, schneller) std.crypto.aesAES128CBCEncrypt
AES-256 (höhere Sicherheit) std.crypto.aesAES256CBCEncrypt
SHA-256-Hash (Datenintegrität, Signaturen) std.crypto.sha256SHA256 / SHA256Hex
Digitale Signatur erzeugen (ECDSA) std.crypto.eccECDSASign
Digitale Signatur prüfen std.crypto.eccECDSAVerify
Kryptografisch sichere Zufallszahl std.crypto.randRandBytesExact / RandInt64
Zufälligen AES-Schlüssel / IV erzeugen std.crypto.randRandBytesExact
Nachricht authentifizieren (MAC) std.crypto.hmacHMAC_SHA256
AES-CBC + Integritätsschutz (Encrypt-then-MAC) std.crypto.aes + std.crypto.hmac
MySQL-Authentifizierung (mysql_native_password) std.crypto.sha1SHA1MySQLNativePassword
Legacy-Checksum (Git, ältere Protokolle) std.crypto.sha1SHA1
HTTP Digest Authentication, alte API-Signaturen std.crypto.md5MD5
Allgemeine Checksummen (CRC32, FNV) std.hash
TLS/HTTPS (vollständiger Handshake) std.net.tls
Symmetrische authentifizierte Verschlüsselung (Latin-Square, 128-Bit QS) std.crypto.pqc.dadqdadqFOEnc / dadqFODec (FO-Modus empfohlen)
Post-Quantum-Schlüsselaustausch (KEM) std.crypto.pqcPQCKeyGen(PQC_ALG_MLKEM_768)
Post-Quantum-Signatur std.crypto.pqcPQCKeyGen(PQC_ALG_MLDSA_65)

Hinweise

Wichtige allgemeine Hinweise zum Krypto-Paket:

Letzte Aktualisierung: 2026-06-07