Я пытался сгенерировать ключ ECDSA Ed448 ... Похоже, что curve448 был реализован в последней версии.
Мы добавили OID для кривых 25519 и 448 некоторое время назад,Они были добавлены для облегчения тестирования кривой25519 и ed25519.Вы можете увидеть OID в oids.h
.
Они OID были добавлены в Commit 7ca5f7d3b53f 11 апреля 2016 года, а затем исправлены в тот же деньв Фиксация 29e9bd2b27a9 .11 апреля 2016 года они стали доступны для Crypto ++ 5.6.4.
Я могу скомпилировать этот код без ошибок, но когда он запускается, я получаю следующее исключение
Вы получаете исключение, потому что нет параметров домена для curve448 в eccrypto.cpp
.Вы попали в исключение ниже, потому что it == end
.
template <class EC> void DL_GroupParameters_EC<EC>::Initialize(const OID &oid)
{
const EcRecommendedParameters<EllipticCurve> *begin, *end;
GetRecommendedParameters(begin, end);
const EcRecommendedParameters<EllipticCurve> *it = std::lower_bound(begin, end, oid, OIDLessThan());
if (it == end || it->oid != oid)
throw UnknownOID();
const EcRecommendedParameters<EllipticCurve> ¶m = *it;
m_oid = oid;
...
}
Вот предыстория ...
Согласно кривой 25519 * Современное состояниеФункция Диффи-Хеллмана , исходный код кривой: SUPERCOP .SUPERCOP - это программа для тестирования криптографических алгоритмов.
У нас есть кривые25519 и ed25519 на тестовой вилке.Мы разорвали реализацию от SUPERCOP.SUPERCOP имеет оптимизированные эталонные реализации кривой25519, кривой448 и многих других вещей.После того как кривая 25519 и ed25519 были добавлены, мы планировали на кривую 448.
Мы добавили кривую 25519 на основе реализации Эндрю Муна.Это обеспечивает x25519
и ed25519
.Также см. Выпуск 761 (x25519) и Выпуск 764 (ed25519).
На данный момент реализации Crypto ++ для кривой 104 находятся в тупике.Я думаю, что вы можете выбирать свои варианты на основе SUPERCOP или использовать такие библиотеки, как libsodium
, Botan или OpenSSL.