ECDSA определяется ANSI X9.62. Этот стандарт определяет тип кривых, на которых определяется ECDSA, включая детальные уравнения кривых, ключевые представления и так далее. Они не соответствуют Curve25519: часть оптимизаций, которые делают Curve25519 быстрее, чем стандартные кривые того же размера, полагаются на специальное уравнение кривой, которое не входит в формализм X9.62. Соответственно, не может быть никакой реализации ECDSA, которая соответствует ANSI X9.62 и использует Curve25519. На практике я не знаю реализации ECDSA-подобного алгоритма на Curve25519.
Если быть кратким, вы сами по себе. Возможно, вы захотите внедрить ECDSA поверх реализации Curve25519, следуя X9.62 (там черновик 1998 года, который можно скачать из нескольких мест, например, там , или вы можете потратить сто долларов и получить подлинный 2005 версия от Techstreet ). Но имейте в виду, что вы выходите за пределы тщательно проходимых путей анализируемой криптографии; другими словами, я категорически отрицаю любые гарантии того, насколько безопасным будет этот тип ECDSA.
Мой совет - придерживаться стандартных кривых (таких как NIST P-256). Обратите внимание, что хотя Curve25519 работает быстрее, чем большинство кривых того же размера, меньшие стандартные кривые будут быстрее, но при этом будут обеспечивать достаточную безопасность для большинства целей. NIST P-192, например, обеспечивает «96-битную безопасность», чем-то похожую на 1536-битный RSA. Кроме того, стандартные кривые уже обеспечивают производительность порядка нескольких тысяч сигнатур в секунду на небольшом ПК, и у меня возникают трудности с представлением сценария, в котором требуется более высокая производительность.