Рейтинг:0

Тестовый вектор кривых Эдварда E382 и E521

флаг cn

Мне нужны тестовые векторы для кривых Эдварда E382 и E521, чтобы проверить процесс подписи и проверки программного обеспечения.

kelalaka avatar
флаг in
Добро пожаловать на [cryptography.se]. Тому, кто проголосовал близко; это по теме в нашей жизни.
Рейтинг:0
флаг tr

Нет таких, о которых я знаю. Лучше всего создавать их самостоятельно. Например, вы можете получить эталонную реализацию Python из RFC 8032 и параметризовать его желаемыми кривыми.

Ed521 был стандартизирован бразильским правительством CA, вы можете увидеть параметризацию в страница 12 этого PDF. Таким образом, вы можете подключить эти параметры к RFC-скрипту и сгенерировать тестовые векторы. (Или выбрать параметры самостоятельно.)

Рейтинг:0
флаг es

E382 и E521 — это просто кривые, точно так же, как Ed448-Златовласка — это просто кривая.

Для реализации схемы подписи необходимо принять проектные решения. Например, «Ed448» — это имя, данное стандарту, документированному в RFC 8032. Одним из таких проектных решений, например, было использование 57-байтовых закрытых ключей, несмотря на то, что старший байт всегда содержал нули.

Еще одно дизайнерское решение – выбор хэша. Ed25519 использует SHA-512, а Ed448 выбирает SHAKE-256. RFC 8032 ссылается на документ EdDSA для большего количества кривых в котором упоминается SHAKE-256, но затем решается использовать SHA-512 из-за его «широкого распространения».

Суть в том, что пока не будет стандарта подписи для E382 и E521, такого как вариант EdDSA, не может быть никаких официальных тестовых векторов для подписи. Если вы ищете способ проверить вывод ваших основных операций с кривой, здесь является реализацией E521, вы можете сравнить свои результаты, с которыми утверждается, что они «полностью протестированы и отлажены».

kelalaka avatar
флаг in
Это не тестовый вектор. Тестовые векторы официально выводятся разработчиками или стандартными учреждениями. Этот вопрос задавался ранее в [so], и я не смог найти его, кроме некоторых кодов Magma из [статьи E382] (https://eprint.iacr.org/2013/647.pdf)
knaccc avatar
флаг es
@kelalaka Чтобы избежать двусмысленности, я переформулировал свой ответ, чтобы полностью избежать использования этого термина, когда речь идет о реализации, на которую ссылается ответ.
1chenar avatar
флаг cn
Спасибо за описание. Мне нужен тестовый вектор только для проверки кода, нет необходимости быть официальным тестовым вектором. если работает то нормально
knaccc avatar
флаг es
@ 1chenar Я истолковал ваш вопрос как означающий, что вам нужны тестовые векторы для подписи. Они не могут существовать, пока не будут приняты проектные решения и кто-то не напишет реализацию. Может быть, вы искали только базовые результаты операций с кривыми для проверки, например скалярное умножение? Если да, то какие операции?
1chenar avatar
флаг cn
Я имею в виду, что мне нужны входные данные, закрытый и открытый ключ и результирующая подпись, чтобы проверить мою реализацию для этих кривых.
knaccc avatar
флаг es
@1chenar а, ладно, я так и думал. Как я уже говорил, невозможно проверить вашу реализацию на соответствие несуществующему стандарту.
1chenar avatar
флаг cn
Вы имеете в виду, что нет стандарта для цифровой подписи Эдварда Кривая? но есть реализации в библиотеке надувных замков для EDDSA.
knaccc avatar
флаг es
@ 1chenar, как я объяснил в своем ответе, EdDSA на кривой ed25519 использует SHA-512 в качестве хэша. EdDSA на кривой ed448-златовласки использует SHAKE256 в качестве хэша. Никто не определил какой-либо стандарт того, каким должен быть хэш EdDSA для E382 или E521.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.