Zum Inhalt springen
ecdsa.com

Hidden Number Problem

Das Gitterproblem, ein Geheimnis aus vielen verrauschten linearen Relationen zu rekonstruieren, die einige seiner Bits verraten; es macht aus kleinen Verzerrungen oder Lecks in ECDSA- und DSA-Nonces die vollständige Rekonstruktion des privaten Schlüssels.
Auch geschrieben alsHNPlattice attackbiased nonce attack

Jede ECDSA-Signatur liefert s·k = z + r·d (mod n). Ist bekannt, dass die oberen Bits jedes k null sind, oder dringen sie über einen Seitenkanal nach außen, wird jede Signatur zu einer näherungsweisen linearen Gleichung im privaten Schlüssel d; mit genügend vielen davon findet eine Gitterreduktion (LLL oder BKZ) auf einer Matrix aus den Tripeln (r, s, z) den Wert d. Das ist das Hidden Number Problem von Boneh und Venkatesan (1996), das Howgrave-Graham und Smart (2001) sowie Nguyen und Shparlinski (2002) auf DSA angewandt haben.

Schon eine Handvoll verratener Bits pro Signatur reicht bei einigen Hundert bis einigen Tausend Signaturen, und neuere Techniken drücken das Leck unter ein Bit. Dokumentierte Fälle sind unter anderem Minerva (2019, Timing-Lecks über die Bitlänge in Smartcards und Bibliotheken), TPM-Fail (2019, Intels Firmware-TPM und ein TPM von STMicroelectronics), LadderLeak (2020) und die Studie „Biased Nonce Sense“ von 2019, die Schlüssel aus echten Bitcoin- und Ethereum-Signaturen mit kurzen Nonces rekonstruiert hat.

Gegenmaßnahmen: Erzeuge Nonces gleichverteilt über den gesamten Wertebereich (deterministisch nach RFC 6979 oder per Hedging), rechne mit zeitkonstantem Code, der die Bitlänge der Nonce nicht verrät, und behandle jedes gemeldete Nonce-Leck als Schlüsselkompromittierung statt als kosmetischen Fehler.

Standards und Quellen

Alle Begriffe