По поводу использования secp256r1 и x25519?C++

Программы на C++. Форум разработчиков
Anonymous
По поводу использования secp256r1 и x25519?

Сообщение Anonymous »

Я реализую некоторый протокол, используя какой-то сторонний репозиторий (Private Join and Compute), и репозиторий поддерживает только встроенные кривые в модулях FIPS (P-224, 256, 348 и 512) в openssl при создании группы EC. :

Код: Выделить всё

StatusOr CreateGroup(int curve_id) {
auto ec_group_ptr = EC_GROUP_new_by_curve_name(curve_id);
// If this fails, this is usually due to an invalid curve id.
if (ec_group_ptr == nullptr) {
return InvalidArgumentError(
absl::StrCat("ECGroup::CreateGroup() - Could not create group. ",
OpenSSLErrorString()));
}
return ECGroup::ECGroupPtr(ec_group_ptr);
}
(

Код: Выделить всё

EC_GROUP_new_by_curve_name
находится в openssl/crypto/fipsmodule)
Мои вопросы:
  • Могу ли я изменить код, чтобы заменить встроенные кривые на X25519 для моего протокола? Мой протокол использует его для ECDH.
  • Если нет, то в чем проблема, кроме того, что X25519 не проверен по FIPS?
  • Или, проще говоря, в чем вариант использования: мне следует использовать secp256r1/k1, а что за X25519?


Подробнее здесь: https://stackoverflow.com/questions/758 ... and-x25519

Вернуться в «C++»