Почему генерация ключей Ethereum намного быстрее, чем у GPG?

Ethereum использует асимметричные пары открытого и закрытого ключей для создания своих учетных записей. Как и ГПГ.

Генерация ключа GPG занимает много времени и требует много времени/энтропии. Эфириум — нет. Почему большая разница?

Ответы (1)

По умолчанию GPG генерирует 2048-битный ключ RSA. Это требует создания очень большого случайного числа, которое имеет структурные требования, чтобы сделать его действительным закрытым ключом RSA. Так что не любое случайное число подойдет. Возможно, вам придется попробовать несколько, прежде чем вы найдете тот, который соответствует требованиям.

GPG также обычно создает как главный ключ, так и подключаемый ключ. Таким образом, вы создаете два ключа, а не один.

Напротив, закрытые ключи Ethereum имеют длину всего 256 бит и не требуют особой структуры. Подойдут почти любые случайные 256 бит, и в большинстве случаев вам нужно только 256 случайных бит для генерации одного.

Это своего рода сравнение яблок с апельсинами, потому что ключи GPG подходят как для шифрования, так и для цифровых подписей, в то время как ключи Ethereum не предназначены для шифрования.

Nitpick: Не любой случайный 256-битный ключ подойдет. Ethereum использует кривую secp256k1, см . crypto.stackexchange.com/questions/30269/… .
Правда, почищу.
Обратите внимание, что на самом деле это не практическая проблема: вероятность случайной генерации недопустимого ключа меньше 2 ^ -128.
Вы цитируете 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? Похоже, тестировать и восстанавливать плохие ключи должно быть тривиально. Так почему неуверенность?
Если вы возьмете 256 случайных битов, и они создадут недействительный закрытый ключ, у вас есть два варианта. Вы можете сгенерировать 256 новых случайных битов. Или вы можете сложить ключ в действительное ключевое пространство. Более распространенным решением является получение еще 256 случайных битов, что означает, что иногда вам потребуется более 256 случайных битов для генерации закрытого ключа.