powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Как узнать, какую кривую использует провайдер bouncy castle?
2 сообщений из 2, страница 1 из 1
Как узнать, какую кривую использует провайдер bouncy castle?
    #38991232
BaurzhanS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мой код для подписи и проверки ECDSA.
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
 
            Signature ecdsaSign = Signature.getInstance("SHA256withECDSA", "BC");
            ecdsaSign.initSign(privateKey);
            ecdsaSign.update("aaaa".getBytes("UTF-8"));
            byte[] signature = ecdsaSign.sign();
            System.out.println("signature");
            System.out.println(new String(signature));

            Signature ecdsaVerify = Signature.getInstance("SHA256withECDSA", "BC");
            ecdsaVerify.initVerify(publicKey);
            ecdsaVerify.update("aaaa".getBytes("UTF-8"));
            System.out.println();
            System.out.println(ecdsaVerify.verify(signature));



Цель - узнать параметры кривой, используемой "под капотом".
Код: java
1.
ecdsaSign.getParameters()

выдает UnsupportedOperationException что означает, что имплементация от провайдера не поддерживает такую операцию, то есть именно так узнать нельзя. Но ведь какая-то кривая используется - как узнать ее параметры (a,b,q,G)?

Вообще говоря, это было бы не важно, но мне надо протестить совместимость ГОСТ и ЕСДСА ключей . То есть, есть выданные ГОСТ ключи, я их выгрузил из .p12 контейнера и подсунул в ECDSA код, указанный выше. Вроде все работает, но меня смущает, что в алгоритме подписания и проверки используется кривая, которая у меня спрятана под капотом у провайдера
Код: java
1.
Signature ecdsaSign = Signature.getInstance("SHA256withECDSA", "BC");

, а ГОСТ паблик ключ мог генерится по другой кривой, там же надо умножить приватный ключ на опорную точку на кривой. Это нормально, если ГОСТ кривая, соответствующая priv*curve(G)=public, окажетса не равна кривой, используемой в плгоритме подписи и проверки?

Мне кажется, что ГОСТ ключи заработали в ECDSA подписании потому, что там одинаковая кривая используется, какая-то системная, просто это скрыто от меня во внутренностях и поэтому все заработало. Но для генерации ключа использовалась СНГ-ная кривая, что-то из серии GostR3410-бла-бла-бла, вряд ли SHA256withECDSA использует эту кривую.

Так что же получается, можно разные кривые использовать для генерации ключа и для работы алгоритма? (там же есть пункт умножить на точку на кривой) или это мне просто повезло, что ГОСТовые ключи правильно отработали на ЕСДСА?
...
Рейтинг: 0 / 0
Как узнать, какую кривую использует провайдер bouncy castle?
    #38991541
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А какой смысл в таком использовании?

Помесь ежа с удавом - 15 метров колючей проволоки.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Как узнать, какую кривую использует провайдер bouncy castle?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]