Zum Inhalt springen
ecdsa.com

Kofaktor

Das Verhältnis h = #E / n zwischen der Anzahl der Punkte auf einer elliptischen Kurve und der Primordnung n der für die Kryptografie genutzten Untergruppe: 1 für die NIST-P-Kurven und secp256k1, 8 für Curve25519, 4 für Curve448.
Auch geschrieben alscurve cofactorsmall subgroup

Ist h größer als 1, enthält die Kurve kleine Untergruppen, sodass ein von der Gegenseite gelieferter Punkt außerhalb der Untergruppe mit Primordnung liegen kann. Protokolle begegnen dem, indem sie mit dem Kofaktor multiplizieren (Kofaktor-Diffie-Hellman in SP 800-56A), geheime Skalare per Clamping auf Vielfache des Kofaktors setzen (X25519, Ed25519), die Zugehörigkeit zur Untergruppe prüfen oder eine Abstraktion mit Primordnung wie ristretto255 oder decaf448 verwenden (RFC 9496).

Reale Fehler: 2017 erlaubte das Kofaktor-Problem von CryptoNote, dass ein Monero-Output mehrere gültige Key Images erzeugte, was bis zum Patch Doppelausgaben (Double Spending) hätte ermöglichen können. EdDSA-Verifizierer, die sich bei der Prüfung mit oder ohne Kofaktor uneinig sind (RFC 8032 §5.1.7 erlaubt beides), akzeptieren unterschiedliche Mengen gezielt konstruierter Signaturen, was in Konsenssystemen relevant ist.

Weierstraß-Kurven mit Kofaktor 1 haben keines dieser Probleme; das ist ein Grund, warum Kurven mit Primordnung für Protokolle beliebt bleiben, die eine einfache Gruppensemantik brauchen, etwa Mehrparteienberechnung und verifizierbare Zufallsfunktionen.

Standards und Quellen

Alle Begriffe