
Kryptologisch verzaubertes Shamir's Secret

Ein Kryptograf oder ein ernsthafter Implementierer, der CESS prüft, öffnet in der Regel zuerst vectors/ und testdata/, bevor er den Prosa-Teil liest. Die Testsuite ist der Beweis der Arbeit: Sie kodiert Domänenwissen, das sich nicht allein durch Erzählungen ersetzen lässt.
Das ist kein Grund, den Punkt vor allen anderen zu verbergen. Personen, die das Projekt für die Beschaffung bewerten, entscheiden, ob sie einen Beitrag leisten, Richtlinien schreiben oder Code ausliefern, ohne eine tiefgehende Ausbildung in kryptografischen Testmethoden zu haben, verdienen dennoch einen Hinweis auf die konkreten Beweise. Das Repository gibt bereits Prüfregeln und Algorithmenausschlüsse an; die Verknüpfung dieser Geschichte mit veröffentlichten Testvektoren schließt die Lücke zwischen „Behauptungen auf der Seite“ und „Artefakten, die man ausführen kann“.
Was man sich ansehen sollte: Das Konformitätsmaterial enthält RFC 8439-Arbeitsbeispiele für ChaCha20-Poly1305 (die IETF-AEAD, auf die dieses Projekt normativ verweist) und eingebettetes Wycheproof-JSON für ChaCha20-Poly1305-Randfälle unter testdata/wycheproof/. Zusammen mit den projekteigenen TOML-Vektoren in vectors/ bilden sie die Grundwahrheit, die der Runner und die Prüfer ausführen können.
RFC 8439 wird von der Internet Engineering Task Force (IETF) veröffentlicht, der Organisation, die einen Großteil der Interoperabilität des Internets standardisiert. RFCs (Request for Comments) sind die übliche Form für viele Protokoll- und kryptografische Spezifikationen. RFC 8439 definiert die authentifizierte Verschlüsselung mit ChaCha20-Poly1305 (aufbauend auf Daniel Bernsteins Entwürfen) und enthält konkrete Arbeitsbeispiele mit bestimmten Eingaben und erwarteten Ausgaben, damit unabhängige Implementierungen überprüfen können, ob sie dem Standard bytegenau entsprechen. Der viel zitierte Klartext, der mit Ladies and Gentlemen of the class of '99: wear sunscreen beginnt, erscheint in den Anhangsbeispielen der RFC: Wenn Ihr Code die AEAD-Ausgabe exakt reproduziert, haben Sie eine starke Überprüfung, dass Sie die Konstruktion korrekt implementiert haben. Es ist das kryptografische Äquivalent eines offiziellen Lösungsschlüssels. (Die frühere RFC 7539 dokumentierte ChaCha20 und Poly1305 für andere IETF-Kontexte; RFC 8439 ist die übliche Referenz für diese AEAD, so wie sie hier und in spec/CESS-v0.2.md verwendet wird.)
Wycheproof ist ein Testkorpus, der vom Google-Sicherheitsteam (2017) veröffentlicht wurde. Der Name bezieht sich auf den Mount Wycheproof in Australien – oft als kleinster Berg der Welt bezeichnet –, weil sich das Projekt auf die Beseitigung kleiner, aber tödlicher Hürden konzentriert: Ganzzahlüberläufe, Grenzfälle, fehlerhafte Eingaben und manipulierte Authentifizierungstags; Fehler, die in der Praxis immer wieder in eingesetzter Kryptographie auftreten. Es ergänzt RFC-artige Vektoren: RFC 8439-artige Beispiele demonstrieren Korrektheit gegenüber der veröffentlichten AEAD; Wycheproof testet die Robustheit an Stellen, an denen Implementierungen in der Vergangenheit brachen.
Was das über diesen Standard aussagt, bleibt dem gut informierten Leser überlassen.
Man kann auch die Integrität von Crates mit diesem Tool überprüfen, wenn der PR geschlossen ist: https://github.com/rust-lang/cargo/issues/16850
Version: 0.2
Status: Nur Spezifikation (normativer Text und Testvektoren)
Dieses Projekt ist beim Open Invention Network (OIN) registriert, einem defensiven Patentpool zum Schutz von Linux-bezogener Open-Source-Software. Die Kombination aus offener Vorabdruckveröffentlichung (Begründung des Standes der Technik), OIN-Mitgliedschaft und GPL-3.0-Lizenzierung soll sicherstellen, dass diese Technologie frei verfügbar bleibt und von keinem staatlichen oder kommerziellen Akteur proprietär gemacht oder eingeschränkt werden kann.
CESS ist ein offener kryptografischer Standard für Threshold Secret Sharing kombiniert mit cipher-agnostischer authentifizierter Verschlüsselung, passwortbasierter Share-Umschließung und optionalem Post-Quantum-Hybrid-Schlüsselaustausch. Es ist für Einsätze konzipiert, die langfristige Vertraulichkeit, abgeschottete Registrierung, Hardware-Token-Bindung und Beschaffungswege erfordern, die unabhängig von NSA/NIST-Only-Algorithmusbaselines sind.
Nicht-technische Leser können mit dem Glossar beginnen (allgemeinverständliche Begriffe A–Z).
Bestehende Ökosysteme adressieren Teile dieses Problems, lassen aber Lücken:
CESS definiert den Standard; SplitDisk (und ähnliche Produkte) sind Referenzszenarien und Beispielbereitstellungen, nicht der Standard selbst.
CESS legt Shamir's Secret Sharing über GF(2^8) und mehrere geprüfte nicht-optionale Integritäts- und Passwort-Primitive fest. Alle Bulk-Verschlüsselungs-, KEM-, KDF- und MAC-Schichten sind auswählbar aus einem geprüften Register, unterliegen der Zwei-unabhängige-Prüfer-Regel und der harten Ausschlussliste (siehe spec/CESS-v0.2.md und ALGORITHM-REGISTRY.md).
Die NIST-Primkörper-Kurven, die in der US-Regierung und -Industrie weit verbreitet sind (P-256, P-384, P-521), wurden durch einen Prozess ausgewählt, bei dem die NSA eine dokumentierte Rolle spielte. CESS stützt sich nicht auf einen einzigen mathematischen Beweis, dass diese Kurven schwach sind; es wendet einen Policy-Ausschluss an, damit der Standard Beschaffungs-, Verbindungs- und Engineering-Wege bedienen kann, die Kryptographie erfordern, die außerhalb einer NSA/NIST-Only-Baseline gerechtfertigt ist, und die unabhängig geprüfte Primitive bevorzugen (siehe spec/CESS-v0.2.md Abschnitt 3 und ALGORITHM-REGISTRY.md).
Klassisches ECDH in CESS verwendet Brainpool-Kurven (RFC 5639) stattdessen. Ihre Parameter werden durch veröffentlichte Generierungsregeln erzeugt und sie sind eine natürliche Wahl für BSI-orientierte und EU-zentrierte Diskussionen, während sie vergleichbare Sicherheitsziele abdecken (z.B. BrainpoolP384r1 vs. P-384-Klassensicherheit) ohne die ausgeschlossene NIST-Kurvenfamilie zu übernehmen.
Details: spec/CESS-v0.2.md Abschnitt 3, spec/CRYPTO.md und ALGORITHM-REGISTRY.md.
Beitragende stimmen der Patent-Nichtangriffsklausel in PATENTS.md zu. Das Projekt ist beim Open Invention Network (OIN) registriert, einem defensiven Patentpool für Linux-bezogene Open-Source-Software. Die Kreuzlizenzierung über OIN deckt nicht von sich aus Parteien außerhalb dieses Ökosystems ab; die Klausel soll diese Lücke für konforme Implementierungen schließen.
Siehe CONTRIBUTING.md. Pull Requests gelten als Zustimmung zu PATENTS.md. Spezifikationsänderungen erfordern zwei Prüfer in verschiedenen Ländern. Neue Algorithmen verwenden ALGORITHM-REGISTRY.md (öffnen Sie einen PR gegen das Register, dann ggf. gegen Querverweise in spec/CESS-v0.2.md).
ALGORITHM-REGISTRY.md bearbeitet (Nachweistabelle, Kennungszuweisung).vectors/ hinzu oder erweitern Sie sie, die die neue Suite abdecken.CONTRIBUTING.md ein.CESS ist der Standard. SplitDisk ist ein beispielhaftes Implementierungsszenario (z.B. Festplattenverschlüsselung plus Share-Verteilung); die Werkzeugspezifikation lebt in diesem Repository. Produkte können CESS-CORE, CESS-FULL oder CESS-PQ-Konformität gemäß CONFORMANCE.md beanspruchen, ohne den Namen SplitDisk zu verwenden.
| Pfad | Rolle |
|---|
spec/CESS-v0.2.md | Hauptnormativer Standard (RFC 2119-Schlüsselwörter) |
spec/CRYPTO.md | Kryptografische Begründung und Beweisskizzen |
spec/GOVERNMENT.md | Hinweise für Regierungen und Hochsicherheitseinsätze |
ALGORITHM-REGISTRY.md | Lebendes Register der zugelassenen und ausgeschlossenen Algorithmen |
GLOSSARY.md | Allgemeinverständliches Glossar kryptografischer und CESS-Begriffe (A–Z) |
vectors/ | Maschinenlesbare Testvektoren (TOML: ChaCha/Serpent/Twofish-Bulk, Integration usw.); CC0 |
testdata/wycheproof/ | Eingebettetes Wycheproof ChaCha20-Poly1305 JSON (Apache-2.0-Upstream); siehe testdata/wycheproof/README.md |
scripts/ | Hilfsprogramme zur Vektorgenerierung (GPL-3.0 wo Code) |
runner/ | Konformitätstest-Runner (Rust, GPL-3.0) |
LICENSE-SPEC | CC0 1.0 — Spezifikation und Vektoren |
LICENSE-CODE | GPL-3.0 — Code |
PATENTS.md | OIN-Kontext und Beitragende-Patent-Nichtangriffsklausel |
CONTRIBUTING.md | Beitragsregeln und Überprüfungsrichtlinie |
CONFORMANCE.md | Wie man Konformität beansprucht und dokumentiert |
IMPLEMENTATIONS.md | Optionale Auflistung konformer Produkte |
| Inhalt | Lizenz |
|---|
Spezifikationstexte (spec/*.md), README.md, ALGORITHM-REGISTRY.md, GLOSSARY.md, vectors/*.toml | CC0 1.0 Universal (Public-Domain-Widmung) — siehe LICENSE-SPEC |
Rust-Runner, Referenzimplementierungen, scripts/serpent_helper/ | GNU GPL v3.0 — siehe LICENSE-CODE |