Сейчас на форуме: igorcauret, Rio (+6 невидимых)

 eXeL@B —› Вопросы новичков —› нужна помощь по ECDSA
Посл.ответ Сообщение

Ранг: 57.0 (постоянный), 10thx
Активность: 0.050.08
Статус: Участник

Создано: 03 мая 2015 01:20 · Поправил: zds
· Личное сообщение · #1

используется алгоритм проверки подписи ECDSA
объявление в программе такое
Code:
  1. <ECDSAKeyValue><ECDSAPublicKey>BM9qac9WjXV41q+yQW8YLgAua3ihpyvC5wi2Tq+zApq8DBOQMNqCt/Jok6B0y7PTBOX3FzIi5XBGBrZJKnVTv0c=</ECDSAPublicKey><ECCParameters>1.2.840.10045.3.1.7</ECCParameters></ECDSAKeyValue>

длинна паблик ключа 65
длинна подписи 64

вопрос как реализовать на Delphi или C# для начала проверку подписи с указанным ключом и потом создание своей подписи со своим приватным и паблик ключом по размеру таким же как в примере (чтобы потом подменить оригинальный)?
не могу найти подходящий компонент для Delphi... смотрел FGInt, но честно говоря не смог до конца разобраться в нем, да и как я понял только при наличии паблик ключа там нельзя осуществить проверку, нужна пара.
смотрел C#, но там паблик ключ из двух частей состоит X и Y
Code:
  1. <ECDSAKeyValue xmlns="http://www.w3.org/2001/04/xmldsig-more#">
  2.   <DomainParameters>
  3.     <NamedCurve URN="urn:oid:1.2.840.10045.3.1.7" />
  4.   </DomainParameters>
  5.   <PublicKey>
  6.     <X Value="42651676260412677482941698107907531447605949339875569640147381670139887238935" xsi:type="PrimeFieldElemType" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" />
  7.     <Y Value="16852190972430518941160668635933008435544472217513877104738800774638037641960" xsi:type="PrimeFieldElemType" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" />
  8.   </PublicKey>
  9. </ECDSAKeyValue>





Ранг: 253.5 (наставник), 684thx
Активность: 0.260.25
Статус: Участник
radical

Создано: 03 мая 2015 08:31 · Поправил: DimitarSerg
· Личное сообщение · #2

zds пишет:
но там паблик ключ из двух частей состоит X и Y

Так и есть, публичный ключ - это точка G, у точки 2 координаты G(x,y).
И параметров не хватает, где простое P, где базовая точка B(x,y), где n ? (или может кривая какая-то стандартная и все эти значения известные юзаются)

zds пишет:
смотрел FGInt, но честно говоря не смог до конца разобраться в нем, да и как я понял только при наличии паблик ключа там нельзя осуществить проверку, нужна пара

Фгинта достаточно, пару раз ecdsa на нём пилил. Поймешь как работает - реализуешь.

Добавлено спустя 13 минут
а, ну да
<ECCParameters>1.2.840.10045.3.1.7</ECCParameters>
1.2.840.10045.3.1.7 - "SEC 2" recommended elliptic curve domain - secp256r1

Добавлено спустя 24 минуты
--> дока, там параметры твоей кривой<--

-----
ds


| Сообщение посчитали полезным: zds


Ранг: 337.6 (мудрец), 224thx
Активность: 0.210.1
Статус: Участник
born to be evil

Создано: 03 мая 2015 12:41
· Личное сообщение · #3

вообще, брутится, если размер этот. но, это отдельная тема

-----
От многой мудрости много скорби, и умножающий знание умножает печаль





Ранг: 253.5 (наставник), 684thx
Активность: 0.260.25
Статус: Участник
radical

Создано: 03 мая 2015 13:10 · Поправил: DimitarSerg
· Личное сообщение · #4

ajax пишет:
вообще, брутится, если размер этот

Человек размер в байтах указал

Добавлено спустя 1 минуту
так что это не ecdsa-65, ecdsa-256

и еще: мне самому не очень ясно, что за еб.. формат хранения такой ? под бейзом 65 байт О_О:
04CF6A69CF568D7578D6AFB2416F182E002E6B78A1A72BC2E708B64EAFB3029ABC0C139030DA82B7F26893A074CBB3D304E5F7173222E5704606B6492A7553BF47

Вангую что тут 2 координаты...

redlord пишет:
можно подробности брута?

Хватит отжигать 113бит посчитать проблема, а тут 256

-----
ds




Ранг: 33.4 (посетитель), 24thx
Активность: 0.020
Статус: Участник

Создано: 03 мая 2015 13:11
· Личное сообщение · #5

ajax
secp256r1 здесь, если я правильно понял. можно подробности брута?



Ранг: 57.0 (постоянный), 10thx
Активность: 0.050.08
Статус: Участник

Создано: 03 мая 2015 13:42
· Личное сообщение · #6

проблема была не в том чтобы реализовать ECDSA. FGInt в принципе работал и на C# еще проще было... вопрос был чтобы реализовать именно с таким форматом паблик ключа...
сейчас вроде нашел нужный компонент, хотя он только в DCU, но на первый взгляд работает




Ранг: 337.6 (мудрец), 224thx
Активность: 0.210.1
Статус: Участник
born to be evil

Создано: 03 мая 2015 14:05 · Поправил: ajax
· Личное сообщение · #7

DimitarSerg
90 бит с фигом делалось с месяц на 4-х компах в 2006-м ради интереса (вы пешком под стол не ходили тогда? ). в данном случае, не реально за разумное время, про байты не поглядел
зы: шуткую, не стоит принимать все близко
zds
прежде всего понимать нужно математику, а не компоненты искать. тут и на тасме такие перлы делают

-----
От многой мудрости много скорби, и умножающий знание умножает печаль





Ранг: 253.5 (наставник), 684thx
Активность: 0.260.25
Статус: Участник
radical

Создано: 03 мая 2015 14:24 · Поправил: DimitarSerg
· Личное сообщение · #8

ajax пишет:
шуткую

Ничо, норм, то что я в 2010 узнал что такое отладчик не значит что мне 15 лет

ajax пишет:
прежде всего понимать нужно математику

Вот это очень верная мысль, это типа как CryptVerifySignature, обратную операцию можно CreateSignHash, а можно asn.header+хеш и modexp с любой либой больших чисел.

Я в свое время на ecdsa пару дней потратил чтоб понять что и как работает и как патчить паблик-кей, хотя если совсем банально и по-нубски - можно все параметры на свои зареплейсить :D

p.s. я тебя запомнил --> Link <-- а продолжение темы тут --> Link <--, в 2012 скиллов не хватало.

90 бит с фигом делалось с месяц на 4-х компах в 2006-м ради интереса
Верю, норм результат, и 113 вполне реально, а вот больше - очень проблемно

-----
ds



 eXeL@B —› Вопросы новичков —› нужна помощь по ECDSA
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати