Warum ist die Schlüsselgenerierung von Ethereum so viel schneller als die von GPG?

Ethereum verwendet asymmetrische öffentliche/private Schlüsselpaare, um seine Konten zu generieren. So auch GPG.

Die Generierung von GPG-Schlüsseln dauert Ewigkeiten und benötigt viel Zeit/Entropie. Ethereum nicht. Warum der große Unterschied?

Antworten (1)

Standardmäßig generiert GPG einen 2048-Bit-RSA-Schlüssel. Dazu muss eine sehr große Zufallszahl generiert werden, die strukturelle Anforderungen erfüllt, um sie zu einem gültigen privaten RSA-Schlüssel zu machen. Es reicht also keine Zufallszahl. Möglicherweise müssen Sie mehrere ausprobieren, bevor Sie einen finden, der die Anforderungen erfüllt.

GPG erstellt normalerweise auch einen Hauptschlüssel und einen Unterschlüssel. Sie erstellen also zwei Schlüssel, nicht nur einen.

Im Gegensatz dazu sind die privaten Schlüssel von Ethereum nur 256 Bit lang und erfordern keine besondere Struktur. Fast alle zufälligen 256 Bits reichen aus, und meistens benötigen Sie nur 256 zufällige Bits, um eines zu erzeugen.

Dies ist jedoch eine Art Äpfel-Orangen-Vergleich, da GPG-Schlüssel sowohl für die Verschlüsselung als auch für digitale Signaturen geeignet sind, während Ethereum-Schlüssel nicht für die Verschlüsselung vorgesehen sind.

Nitpick: Nicht jeder zufällige 256-Bit-Schlüssel reicht aus. Ethereum verwendet die secp256k1-Kurve, siehe crypto.stackexchange.com/questions/30269/… .
Stimmt, ich werde es aufräumen.
Beachten Sie, dass dies nicht wirklich ein praktisches Problem ist: Die Wahrscheinlichkeit, zufällig einen ungültigen Schlüssel zu generieren, liegt unter 2^-128.
Zitierst du The all-zero bitsring, and the bitsring representing n or more in big-endian convention, have no corresponding public key per the standard. They are in a proportion about 2^−128 for secp256k1? Es klingt, als sollte es trivial sein, fehlerhafte Schlüssel zu testen und neu zu generieren. Warum also die Unsicherheit?
Wenn Sie 256 zufällige Bits greifen und sie einen ungültigen privaten Schlüssel erzeugen, haben Sie zwei Möglichkeiten. Sie können 256 neue zufällige Bits generieren. Oder Sie können den Schlüssel in einen gültigen Schlüsselraum falten. Die üblichere Lösung besteht darin, 256 weitere zufällige Bits zu greifen, was bedeuten würde, dass Sie manchmal mehr als 256 zufällige Bits benötigen, um einen privaten Schlüssel zu generieren.