5.2.5 Key Generation (Schlüsselerzeugung)
5.2.5 Key Generation (Schlüsselerzeugung)
Der private Schlüssel besteht aus 57 Oktetten (456 Bits, entsprechend b) kryptographisch sicherer Zufallsdaten. Siehe [RFC4086] zur Diskussion von Zufälligkeit.
Der 57-Byte-öffentliche Schlüssel wird durch folgende Schritte erzeugt:
-
Den 57-Byte-Privatschlüssel mit SHAKE256(x, 114) hashen und den Digest in einen 114-Oktett großen Puffer h speichern. Nur die unteren 57 Bytes werden zur Erzeugung des öffentlichen Schlüssels verwendet.
-
Den Puffer beschneiden: Die zwei niederwertigsten Bits des ersten Oktetts werden gelöscht, alle acht Bits des letzten Oktetts werden gelöscht, und das höchstwertige Bit des vorletzten Oktetts wird gesetzt.
-
Den Puffer als Little-Endian-Ganzzahl interpretieren und damit den geheimen Skalar s bilden. Bekannte-Basis-Punkt-Skalarmultiplikation [s]B ausführen.
-
Der öffentliche Schlüssel A ist die Kodierung des Punktes [s]B. Zuerst die y-Koordinate (im Bereich 0 <= y < p) als Little-Endian-Zeichenkette aus 57 Oktetten kodieren. Das höchstwertige Bit des letzten Oktetts ist stets Null. Um die Kodierung des Punktes [s]B zu bilden, das niederwertigste Bit der x-Koordinate in das höchstwertige Bit des letzten Oktetts kopieren. Das Ergebnis ist der öffentliche Schlüssel.