Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Войти
 
Страницы: 1
RSS
RSA подпись
 

RSA подпись.

Картинка подписана 512 битной сигнатурой:

9ABA184A CE3FE3B3 26BF415E 76AC5791  
81230280 47FCA8AB 5971FFB5 F041DB8E  
1A2F8C09 D2939BCD 44D89259 F92F31A2  
77C2AC3D F8FD6D98 07B652A0 B3D80F58

посредсвом математический операций подписи и этим ключом шифрования:

BC0B1990 86C7F26C BC9D50F4 04944DB4  
789FCBFC F7AD8DBC 2120898A BEAAF311  
EEA20229 03560884 1FA41073 ABBD5D37  
500C60B5 3BFB4660 5740381B 72C9DB71


Получается сверочный ключ:

0001FFFF FFFFFFFF FFFFFFFF FFFFFFFF  
FFFFFFFF FFFFFFFF FFFFFFFF FF003020
300C0608 2A864886 F70D0205 05000410  
60CD6D08 6354D6C6 7B093A57 4717FE03


Можно ли, зная сверочный ключ, ключ шифрования(см. выше) и алгоритм (получения сверочного ключа)
получить подпись(сигнатуру)?
Т.е по сути сделать обратное преобразование.

Вот ещё несколько подписей картинок и соответвенно их проверочных ключей

-----------------------------------------------
Подпись к картинке:
B8B23E33 FB7251D7 675B5396 5D8FDCD7  
FF23BF88 1665B6AD BABCB81B 2BA82DAF  
4605DE16 AFC78839 AB58F112 02D70728
68F32557 2A20C688 E0F97C6F 50EEB1EC  

сверочный ключ:

0001FFFF FFFFFFFF FFFFFFFF FFFFFFFF  
FFFFFFFF FFFFFFFF FFFFFFFF FF003020
300C0608 2A864886 F70D0205 05000410  
02A9E49A C6ADEBA1 EA6E4713 5E311A41

-----------------------------------------------



Другая картинка, сначала подпись, потом сверочный ключ
-----------------------------------------------

1F8BB2BE 7E7884EE BCAD1436 C09AB57E  
6269EC70 EB0B0040 DF745BF6 354DCC12  
15B2E854 1B900FF9 7BC215E3 23BC35A2  
BC051E89 DF4CDEFD BA351FB7 CA0FB25C  


0001FFFF FFFFFFFF FFFFFFFF FFFFFFFF  
FFFFFFFF FFFFFFFF FFFFFFFF FF003020  
300C0608 2A864886 F70D0205 05000410  
8854BB9A 1D2B350F FC1212D9 3E14172A

-----------------------------------------------


Как получается сверочный ключ я уже говорил в начале.
И понятное дело, что его вычисляет прога, а не человек с калькулем :)

У каждой картинки естественно свой сверочный ключ.
Но как вы заметили у всех сверочных ключей первые 48 байт одинаковые.
И причём только у правильных(математически) подписей, в результате получается
сверочный ключ, где первые 48 байт:

0001FFFF FFFFFFFF FFFFFFFF FFFFFFFF  
FFFFFFFF FFFFFFFF FFFFFFFF FF003020  
300C0608 2A864886 F70D0205 05000410

И похоже это единственная зацепка.

Значит есть какая-то закономерность у правильных подписей.
Как-то же они получаются эти странные закономерности!
И интересно было бы знать сколько всего может быть этих -правильных- подписей?
Если их немного, то можно было бы их все перебрать и найти тот что нужен.

Не знаю есть ли смысл описывать точный алгоритм функции получения
сверочного ключа. Там всего-лишь три операции.
Два сложения и одно вычитание, в цикле(~8192 раз)

Алгоритм получения сверочного ключ я знаю досконально.
Т.к. просидел неделю в ДизАссемблере, разбираясь во всём этом безобразии.
Очень похоже на то, что функция необратима, так как там есть ветвления функции в зависимости
от значения битов подписи. Ветвление такое:

Взять из подписи бит номер Х , Х изменяется от 511 до 0 (цикл 512 раз)
Проверяются по очереди все биты в подписи, начиная со старшего бита.
Если бит X =0 то сложение пропускается
если бит X =1 то делается сложение
и т.д в цикле.

Есть у кого какие идеи?
 
в самом вопросе практически есть ответ если вам известен алгоритм проанализируйте его является ли он обратимым
 
Цитата
Взять из подписи бит номер Х , Х изменяется от 511 до 0 (цикл 512 раз)
Проверяются по очереди все биты в подписи, начиная со старшего бита.
Если бит X =0 то сложение пропускается
если бит X =1 то делается сложение
и т.д в цикле.
А точно здесь используется сложение, а не умножение? В противном случае вся процедура была бы похожа на возведение в степень, что является базовой операцией в RSA. Лучше бы вы привели точный алгоритм и продемострировали его на конкретном численном примере.

А ваши "сверочные" ключи очень похожи на формат PKCS#1 со всеми вытекающими.
Страницы: 1
Читают тему