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

 eXeL@B —› Основной форум —› AES. Имея исходный кусок и криптованный возможно ли восстановить ключ ?
Посл.ответ Сообщение


Ранг: 450.3 (мудрец), 13thx
Активность: 0.20
Статус: Участник

Создано: 23 марта 2006 03:31 · Поправил: ToBad
· Личное сообщение · #1

Известно, что алгоритм AES. Имея исходный кусок и криптованный возможно ли восстановить ключ ?

Вот пример:

Исходный:
0000000000: 4D 5A 50 00 02 00 00 00 │ 04 00 0F 00 FF FF 00 00 MZP ☻ ♦ ☼   
0000000010: B8 00 00 00 00 00 00 00 │ 40 00 1A 00 00 00 00 00 ╕ @ →
0000000020: 00 00 00 00 00 00 00 00 │ 00 00 00 00 00 00 00 00
0000000030: 00 00 00 00 00 00 00 00 │ 00 00 00 00 00 01 00 00 ☺
0000000040: BA 10 00 0E 1F B4 09 CD │ 21 B8 01 4C CD 21 90 90 ║► ♫▼┤○═!╕☺L═!РР
0000000050: 54 68 69 73 20 70 72 6F │ 67 72 61 6D 20 6D 75 73 This program mus
0000000060: 74 20 62 65 20 72 75 6E │ 20 75 6E 64 65 72 20 57 t be run under W
0000000070: 69 6E 33 32 0D 0A 24 37 │ 00 00 00 00 00 00 00 00 in32♪◙$7
0000000080: 00 00 00 00 00 00 00 00 │ 00 00 00 00 00 00 00 00
0000000090: 00 00 00 00 00 00 00 00 │ 00 00 00 00 00 00 00 00
00000000A0: 00 00 00 00 00 00 00 00 │ 00 00 00 00 00 00 00 00
00000000B0: 00 00 00 00 00 00 00 00 │ 00 00 00 00 00 00 00 00
00000000C0: 00 00 00 00 00 00 00 00 │ 00 00 00 00 00 00 00 00
00000000D0: 00 00 00 00 00 00 00 00 │ 00 00 00 00 00 00 00 00
00000000E0: 00 00 00 00 00 00 00 00 │ 00 00 00 00 00 00 00 00
00000000F0: 00 00 00 00 00 00 00 00 │ 00 00 00 00 00 00 00 00
0000000100: 50 45 00 00 4C 01 0B 00 │ 5B 41 73 70 61 63 6B 44 PE L☺♂ [AspackD


Криптованный:
0000000000: 81 ED 23 00 F5 CA 22 F9 │ 4E 37 4B 27 F1 8C 4F 3F Бэ# ї╩"∙N7K'ёМO?
0000000010: 5B C6 26 1E D0 22 12 37 │ E1 44 8B 6D B7 85 E6 BA [╞&▲╨"↕7сDЛm╖Ец║
0000000020: 7F 0E CA 51 97 71 98 DD │ 31 D6 9C A4 A5 0E 63 D7 ?♫╩QЧqШ▌1╓Ьде♫c╫
0000000030: DB 9F B5 03 87 E0 F2 14 │ 7D DF 9E AA 4A B8 15 90 █Я╡♥ЗрЄ¶}▀ЮкJ╕§Р
0000000040: F7 22 52 52 A5 EE 13 69 │ 2B 51 F0 14 3D 23 3E 7A ў"RRею‼i+QЁ¶=#>z
0000000050: F5 28 34 F6 01 DE 4D 2A │ DF B2 0E D5 DB E4 AB 0F ї(4Ў☺▐M*▀▓♫╒█фл☼
0000000060: 1F 7D 06 D3 24 54 36 F5 │ 13 D3 BF 9B C6 38 07 56 ▼}♠╙$T6ї‼╙┐Ы╞8•V
0000000070: 8C E9 8B 80 76 B7 0D A7 │ 6C 74 88 E5 B7 A4 98 DD МщЛАv╖♪зltИх╖дШ▌
0000000080: 51 91 55 0A 97 71 98 DD │ 31 D6 9C A4 A5 0E 63 D7 QСU◙ЧqШ▌1╓Ьде♫c╫
0000000090: DB 9F B5 03 97 71 98 DD │ 31 D6 9C A4 A5 0E 63 D7 █Я╡♥ЧqШ▌1╓Ьде♫c╫
00000000A0: DB 9F B5 03 97 71 98 DD │ 31 D6 9C A4 A5 0E 63 D7 █Я╡♥ЧqШ▌1╓Ьде♫c╫
00000000B0: DB 9F B5 03 97 71 98 DD │ 31 D6 9C A4 A5 0E 63 D7 █Я╡♥ЧqШ▌1╓Ьде♫c╫
00000000C0: DB 9F B5 03 97 71 98 DD │ 31 D6 9C A4 A5 0E 63 D7 █Я╡♥ЧqШ▌1╓Ьде♫c╫
00000000D0: DB 9F B5 03 97 71 98 DD │ 31 D6 9C A4 A5 0E 63 D7 █Я╡♥ЧqШ▌1╓Ьде♫c╫
00000000E0: DB 9F B5 03 97 71 98 DD │ 31 D6 9C A4 A5 0E 63 D7 █Я╡♥ЧqШ▌1╓Ьде♫c╫
00000000F0: DB 9F B5 03 97 71 98 DD │ 31 D6 9C A4 A5 0E 63 D7 █Я╡♥ЧqШ▌1╓Ьде♫c╫
0000000100: DB 9F B5 03 F6 37 D2 50 │ 38 06 97 13 D5 C4 39 3E █Я╡♥Ў7╥P8♠Ч‼╒─9>
0000000110: BA 01 5E 61 75 1B 34 27 │ 7A 6A B8 68 A6 EC 74 AA ║☺^au←4'zj╕hжьtк


Ключ передающийся в процедуру (в HEX):
33 45 36 32 39 37 30 44 44 35 46 37 42 30 39 46

В этом случае ключ уже есть. Это пример.

Прошу не пинать сильно. Понимаю, что найти можно массу книг по криптографии, интересные статьи и описание почти всех алгоритмов с исходниками. Меня интересует перспектива нахождения ключа имея только криптованный EXE и сложность этого. Буквально в двух словах. Может софтинка есть какая для этого ? Вижу явно повторяющиеся куски, тем более это заголовок EXE и складывается впечатление, что всё совсем не сложно, только я не знаю как.



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 23 марта 2006 07:22
· Личное сообщение · #2

ToBadToBad пишет:
Известно, что алгоритм AES. Имея исходный кусок и криптованный возможно ли восстановить ключ ?

1) Ключ, точнее ключевое слово, которое ты привел сначала преобразуется в
"ключ криптования" и именно он используется в алгоритме. Судя по периодическим частям
и высказываниям, что 128 бит сейчас мало - его длина 256 бит.
2) Восстановить "ключ криптования" зная исходный кусок и криптованный можно, но
для правильных алгоритмов требует, либо огромных вычислительных мощностей,
либо большого времени. AES вроде именно такой, т.ч. займись более продуктивными задачами.



Ранг: 253.9 (наставник)
Активность: 0.130
Статус: Участник

Создано: 23 марта 2006 07:24
· Личное сообщение · #3

ToBad пишет:
складывается впечатление, что всё совсем не сложно

Мне когда-то тоже так казалось... Пока я сам не попробовал... Прога работала 2 дня без перерыва. Ничего так и не наработала.
Хотя малюсенькие файлы раскриптовывала.
У меня там была проверка, чтобы первые 4 байта в буфере соответствовали сигнатуре. Так и работало.

-----
MicroSoft? Is it some kind of a toilet paper?




Ранг: 253.9 (наставник)
Активность: 0.130
Статус: Участник

Создано: 23 марта 2006 07:34
· Личное сообщение · #4

ToBad
Ха-ха-ха!!! Я вначале на этот топик зашел, потом на твой ответ про е-буки. Теперь ты иди смотри на мой ответ.
Вообще чушь получилась с ответами и рассуждениями!!!

Ржунимагу!

-----
MicroSoft? Is it some kind of a toilet paper?





Ранг: 450.3 (мудрец), 13thx
Активность: 0.20
Статус: Участник

Создано: 23 марта 2006 14:36
· Личное сообщение · #5

tundra37 пишет:
Судя по периодическим частям и высказываниям, что 128 бит сейчас мало - его длина 256 бит.

Глядя 16 байтные повторения в блоке с нулями мне показалось, что ключ 128 бит. Хотя я могу ошибаться.

Как мне кажется каждые 16 байт кодируются независимо друг от друга одним и тем же ключом. Судя по повторениям.

Tim пишет:
Я вначале на этот топик зашел, потом на твой ответ про е-буки.

Да, ты правильно провёл аналогию. Речь идёт о книге. Скажу сразу, что имея одну рабочую версию - отрывается элементарно. Достаточно в нужном месте подкинуть такой ключик как я привёл и не зависимо от введённого кода и конфигурации железа - всё работает. Но вот когда ключика нет...

Насчёт сравнения с Раром - не знаю. По крайней мере когда смотришь в запароленный рар таких явных повторяющихся моментов не найдёшь, вот и не возникает желание ломать. А тут очень похоже на элементарное кодирование ксором. Мне кажется, что правильный алгоритм кодирования должен даже на мегабайте пробелов выдавать такой бред, где не увидишь повторяющихся кусков. А тут так явно видно....

Блин. Так хотелось услышать компетентный ответ хотя бы типа:
Что бы найти ключ превращающий
DB 9F B5 03 97 71 98 DD 31 D6 9C A4 A5 0E 63 D7 в 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
зная что это AES 128, тебе потребуется брутфорсить много лет.....

Или что кроме брутфорса вариантов нет....



Ранг: 33.1 (посетитель)
Активность: 0.010
Статус: Участник

Создано: 23 марта 2006 15:19
· Личное сообщение · #6

Ну нарассуждали!...
Ключ 128 бит, размер блока 128 бит. Нет там 256. Но и 128 бит перебрать тотальным опробыванием НЕВОЗМОЖНО! Это доказывается.

Одна из задач любого криптоалгоритма (и AES в том числе) обеспечить стойкость к атакам на основе открытого текста - т.е. должно быть нереально (в преемлемое время) восстановить ключ по известной паре открытый/шифрованый текст.

А повторяющиеся куски там встречаются, потому что применено шифрование в режиме простой замены (без сцепления блоков) и не используется предварительная упаковка.
Во многих случаях этот режим использовать не рекомендуется, но при правильном (случайном) выборе ключа длиной 128 бит, это вполне стойко.



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 23 марта 2006 15:34 · Поправил: tundra37
· Личное сообщение · #7

ToBad пишет:
Глядя 16 байтные повторения в блоке с нулями мне показалось, что ключ 128 бит.

Я осчитался - рано проснулся
А тут очень похоже на элементарное кодирование ксором
Там и есть ксор, только ключ меняется в зависимости от предыдущих/последующих байт.
В данном случае придется прокручивать алгоритм до нулей и вычислить заранее
какой будет ключ - невозможно. Точнее - наука не знает быстрого алгоритма
Про AES ничего не знаю, это верно для blowfish. Я так думаю, что профессионалы
по криптографии сюда редко заглядывают, а без университетского курса математики
лучше этим не заниматься - поэтому вряд ли тебе скажут точно про AES.



Ранг: 39.1 (посетитель)
Активность: 0.030
Статус: Участник

Создано: 23 марта 2006 17:22 · Поправил: Gelios
· Личное сообщение · #8

"Одна из задач любого криптоалгоритма (и AES в том числе) обеспечить стойкость к атакам на основе открытого текста - т.е. должно быть нереально (в преемлемое время) восстановить ключ по известной паре открытый/шифрованый текст."
да, но на самом деле можно, вот только таких пар нужно ОЧЕНЬ много. для конкретных алгоритмов можно найти конкретные цифры, но тут такой подход наверно не поможет



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 23 марта 2006 17:37
· Личное сообщение · #9

Вспомнил в чем там соль - в blowfish, думаю в AES тоже самое.
Берется ключ и первый блок из файла и долго-долго "мурыжат",
дальше используются простецкие преобразования блока и ключа.
Именно из-за продолжительности начального этапа брут-форс
требует массу времени. Поэтому периодичность в середине не должна
радовать - возьми прогу для AES и зашифруй с нулями в первом
блоке - там будет очень непериодично сначала.




Ранг: 450.3 (мудрец), 13thx
Активность: 0.20
Статус: Участник

Создано: 24 марта 2006 00:07
· Личное сообщение · #10

Спасибо за высказывания. Теперь представляю всё более ясно. Действительно, смысла не имеет идти этим путём. По крайней мере трудозатраты на любой метод взлома без ключа, будь то брутфорс или попытка вычислить математически будут превосходить во много раз цену одной лицензии на книгу (а речь идёт именно о криптованных книгах) заимев которую патч делается за пять минут. По этому будем идти лёгким путём.



Ранг: 172.2 (ветеран)
Активность: 0.070
Статус: Участник

Создано: 24 марта 2006 23:08
· Личное сообщение · #11

судя по закрытому тексту, юзается rijndael в режиме CBC БЕЗ использования вектора инициализаЦии, 4то, возможно, может помо4ь для атаки на отдельные блоки закрытого сообщения. может эта инфа 4ем-то поможет, если, коне4но, идею уже окон4ательно не забросил...

-----
HOW MUCH BLOOD WOULD YOU SHED TO STAY ALIVE





Ранг: 450.3 (мудрец), 13thx
Активность: 0.20
Статус: Участник

Создано: 25 марта 2006 01:00
· Личное сообщение · #12

ProTeuS пишет:
может помо4ь для атаки на отдельные блоки

Я так понял всё равно к брутфорсу приходим ?

ProTeuS пишет:
rijndael в режиме CBC БЕЗ использования вектора инициализаЦии

Да, для меня это тёмный лес. Я в криптографии вообще не силён. Наверное придётся идею забросить, да и нет такой прямо острой необходимости, просто стало интересно насколько реально получить ключ.



Ранг: 33.1 (посетитель)
Активность: 0.010
Статус: Участник

Создано: 25 марта 2006 01:28
· Личное сообщение · #13

ProTeuS пишет:
судя по закрытому тексту, юзается rijndael в режиме CBC БЕЗ использования вектора инициализаЦии


С чего это судя???

ты CBC не с чем не путаешь? ;)




Ранг: 218.9 (наставник), 42thx
Активность: 0.160
Статус: Участник
dotnet

Создано: 25 марта 2006 06:41
· Личное сообщение · #14

ToBad

Задай свой вопрос на reng.ru там криптографы сидят.

PS: то что есть повторяющиеся блоки действительно ставит под сомнение криптостойкость этого шифра.

-----
have a nice day




Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 25 марта 2006 08:32 · Поправил: tundra37
· Личное сообщение · #15

ToBad пишет:
Я так понял всё равно к брутфорсу приходим ?

Т.к. в середке файла есть шансы продолжить расшифровку до конца, то можно
быстро восстановить "ключ" и расшифровать файл начиная от нулей.
Но тут уж надо к спецам обращаться. Возможно в данном случае алгоритм
построения "начального ключа" строит заведомо "слабый ключ", который
на нулях прокалывается. Возможно AES вообще не предполагает передачи
кучи нулей или ребята ошиблись с его реализацией. Возможно быстрого
алгоритма построения "промежуточного ключа" вообще не существует,
если алгоритм не симметричный ?!


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


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