Как расшифровать файлы зашифрованные в формат aes 256
Подробнее о том, как расшифровать файлы бесплатно и не платить выкуп программам-вымогателям, используя утилиты Avast по удалению вирусов-шифровальщиков.
Программы-вымогатели становятся «флагманом» вредоносного ПО. За последний год мы зафиксировали рост числа атак шифрователей более чем в два раза (на 105%). Подобные вирусы блокируют доступ к файлам на компьютере, кодируя их и вымогая выкуп за предоставление кода для расшифровки.
Как расшифровать файлы бесплатно? Мы рады объявить о выпуске четырех инструментов для удаления программ-вымогателей и дешифровки файлов: Alcatraz Locker, CrySiS, Globe и NoobCrypt. Все дешифраторы для файлов доступны на нашей странице и являются бесплатными.
Там же представлено подробное описание каждого вида программ-вымогателей. Наши инструменты смогут помочь вам удалить вирус-шифровальщик и разблокировать файлы. Утилиты постоянно обновляются по мере развития перечисленных видов угроз.
С момента выпуска первого пакета из семи инструментов Avast для дешифровки нам было приятно получить множество отзывов с благодарностями и рассказами о том, как наши утилиты спасли чьи-то ценные данные или даже бизнес. Надеемся, новые программы для дешифровки помогут еще большему количеству пользователей.
Ниже приведено краткое описание четырех новых видов программ-вымогателей, для удаления которых были разработаны новые бесплатные утилиты.
Alcatraz
В отличие от большинства видов шифрователей, программа Alcatraz не имеет заданного списка расширений файлов, на которые она нацелена. Иными словами, программа шифрует все, что может. Чтобы предотвратить нанесение ущерба операционной системе, Alcatraz Locker шифрует только файлы в каталоге %PROFILES% (обычно C:\Users).
Вымогатель шифрует файлы, используя встроенные функции Windows (API-интерфейс шифрования):
- Создается 256-битовый массив, заполняемый шестнадцатеричным значением 0x36.
- К первым 160 битам этого массива с начальным 160-битовым хэшем SHA1 применяется функция XOR.
- Рассчитывается SHA1 массива, к которому была применена функция XOR (назовем это Hash1).
- Создается 256-битовый массив, заполняемый шестнадцатеричным значением 0x5C.
- К первым 160 битам этого массива с начальным 160-битовым хэшем SHA1 применяется функция XOR.
- Рассчитывается SHA1 массива, к которому была применена функция XOR (назовем это Hash2).
- 160 битов Hash1 и 96 битов Hash2 объединяются.
Получившийся объединенный хэш используется в качестве исходного ключа для AES256.
После выполнения шифрования AES-256 программа-вымогатель также кодирует уже зашифрованный файл с помощью позиционной системы счисления с основанием 64 (BASE64), в результате чего зашифрованный файл приводится к типичной модели:
CrySiS
Программа CrySiS (известная также как JohnyCryptor и Virus-Encode) известна с сентября 2015 года. Использует сильные алгоритмы шифрования AES и RSA. Также особенность заключается в том, что она содержит список файловых расширений, которые не подвергаются блокировке.
Хотя идентификационный номер и адрес электронной почты меняются довольно часто, есть только три различных имени расширений, которые, используются до сих пор:
.xtbl, .lock и .CrySiS.
В результате имена зашифрованных файлов могут выглядеть так:
Каждый подобный элемент содержит все данные, которые необходимы для его расшифровки. Файлы размером менее 262 144 байта зашифровываются полностью, а в окончании находится код, содержащий зашифрованный ключ AES вместе с остальными данными, такими как исходное имя файла, что позволяет выполнить полную расшифровку. Стоит отметить, что файлы, размер которых превышает 262 144 байта, шифруются лишь частично, однако и в этом случае использовать их не удастся. Такой способ работы вымогателя приводит к тому, что крупные файлы после шифрования еще больше увеличиваются в размере.
Globe
Данная программа, существующая примерно с августа 2016 года, написана на языке Delphi и обычно упакована UPX. Некоторые варианты также упакованы при помощи установщика Nullsoft:
- bc4c0b2f6118d36f4d476db16dbd6bcc0e393f2ad08429d16efe51f3d2870d58
- fdc8de22653ebcf4cb8f5495b103e04079b0270efa86f713715f0a81f1b2e9b0
В распакованном бинарном виде программа представляет собой глобальный интерфейс «настройки», в которой автор вымогателя может вносить некоторые изменения в ее характеристики:
Так как злоумышленники могут изменять программу, мы столкнулись со множеством различных вариантов создания зашифрованных файлов с разнообразными расширениями.
Примечательно, что программа-вымогатель имеет режим отладки, который может быть включен при помощи следующей настройки реестра:
Вирус блокирует файлы при помощи алгоритмов RC4 или BlowFish. Когда программа-вымогатель настроена на шифрование имен файлов, она выполняет его при помощи того же алгоритма, который использовался в отношении самого файла. Затем название шифруется при помощи собственной реализации кодирования Base64.
Вот несколько примеров созданных расширений, которые могут быть расшифрованы при помощи утилиты Avast:
Как правило, данная программа-вымогатель создает файлы с именем «Read Me Please.hta» или «How to restore files.hta», которое отображается после входа пользователя в систему.
Не платите вымогателям! Используйте дешифратор для файлов Globe.
NoobCrypt
Чтобы расшифровать файлы, программа NoobCrypt предлагает «код разблокировки», который необходимо купить. В Twitter мной были опубликованы бесплатные ключи для удаления всех известных версий программы NoobCrypt (примеры: 1, 2, 3). Однако определять, какой из них следует использовать, приходилось вручную. Благодаря нашему инструменту для дешифровки вам уже не придется гадать, какой код нужно применить.
Вскоре после публикации кодов, исследователь программ-вымогателей с сетевым именем xXToffeeXx сообщил нам о создании новой версии NoobCrypt, которая рекламировалась во множестве магазинов в сетях Darknet. Стоимость этой версии, находящейся в продаже, составляет $300.
Автор даже подготовил демонстрационное видео, демонстрирующее функции, которые представлены как новые, в том числе использование «шифрования военного уровня» и «невозможность обнаружения антивирусами (кроме AVG)», что является обманом: многие антивирусы способны обнаружить эту программу.
Как видно на снимке внизу, автор даже упоминает мое имя на экране с инструкциями по выплате денег и за что-то меня благодарит. Возможно, за то, что я дал этому набору некачественного кода соответствующее название (теперь оно используется официально).
Сегодня мы представляем инструмент для дешифровки NoobCrypt, подходящий для всех его известных версий. Процесс разблокировки теперь выглядит намного проще, чем подбор нужного кода. Теперь вам не нужно платить деньги за предоставление ключа. И тем более полагаться на расшифровку своих файлов программе-вымогателю.
Ознакомьтесь с описанием программы NoobCrypt и инструментом для дешифровки на нашем сайте.
Как не стать жертвой программы-вымогателя
Прежде всего убедитесь, что на всех ваших устройствах установлен антивирус, например Avast (даже смартфоны могут быть заражены программой-вымогателем). Антивирус сможет заблокировать программы-вымогатели еще до того, как они причинят ущерб.
Необходимо также выполнять регулярное и правильное резервное копирование своих данных. Храните резервные копии данных удаленно, иначе они могут также быть заблокированы вредоносным ПО.
Если вам не повезло и вы стали жертвой программ-вымогателей, попробуйте наши инструменты для дешифровки и проверьте, сможем ли мы помочь вам вернуть свои файлы!
Выражаю благодарность своим коллегам, Ладиславу Зезуле (Ladislav Zezula ) и Петру Щепански (Piotr Szczepanski), за подготовку дешифраторов, а также Яромиру Горейши (aromír Hořejší) за его анализ программы Alcatraz Locker.
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Похожий контент
Доброго времени суток. Подскажите верно ли что aes56 и aes256 работает только когда шифруем диски/пользовательские данные с помощью kes. При отключенной функции шифрование разницы между пакетами нет. в Инструкциях и Интернете точного ответа не нашел.
Здравствуйте, все ваши файлы зашифрованы, свяжитесь с нами для их восстановления.
Для авторизации на сайте используйте:
ID: fbdd781d
HashID: 531cae80ed3fce6166e66534f01a5616
1) Внимание, 'переустановка/откат' windows не поможет восстановить файлы но может окончательно их повредить и тогда даже мы не сможем их восстановить.
2) Антивирусы nod32, drweb, kaspersky и т.д вам не помогут расшифровать файлы, даже если вы купите у них лицензию на 10 лет, они вам все равно не восстановят файлы.
3) Для шифрования файлов используется AES который был создан в 1998г, за 17 лет никто на планете земля не смог взломать алгоритм шифрования, даже АНБ.
4) Ключ других пользователей вам не подойдет, так как у каждого пользователя уникальный ключ, поэтому не ждите что кто-то оплатит и выложит ключ для расшифровки файлов.
Коротко о шифрование 'AES256' на примере 'Winrar', каждый файл помешается в архив 'Winrar', на архив 'Winrar' ставится пароль из 256 символов:
1) Открыть архив можно только введя пароль
2) Удалив 'Winrar' файл остается в архиве и открыть его нельзя.
3) Даже если перенести архив на другой windows, он все еще будет требовать пароль для открытия.
4) Если вы 'переустановите/откатите' windows, архив 'Winrar' останется архивом и для его открытия все еще потребуется 'Winrar' и пароль из 256 символов.
Прилагаю лог Autologger CollectionLog-2016.02.10-12.49.zip и архив с зашифрованнм файлом IMG_5550.JPG.zip.
Прошу помочь.
ПК, на котором зашифровалась флешка теперь дольше черного экрана не грузится. Но и не страшно, главное на флешке. В действительности там огромное количество данных связанных с работой, работаю педагогом в школе для неполноценных. Резервные копии некоторых данных имеются, но далеко не всех. В архиве два зашифрованных файла doc (для образца) и txt-файл с требованиями от создателей шифровальщика. Прошу помочь насколько это возможно. Спасибо заранее.
upd
добавил архив с логом, согласно тербованиям
Вирус.zip
CollectionLog-2016.01.11-20.02.zip
Помогите удалить вирус AES256. Файлы закодированы и не открываются.
CollectionLog-2014.10.26-07.31.zip
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Похожий контент
Доброго времени суток. Подскажите верно ли что aes56 и aes256 работает только когда шифруем диски/пользовательские данные с помощью kes. При отключенной функции шифрование разницы между пакетами нет. в Инструкциях и Интернете точного ответа не нашел.
Здравствуйте, все ваши файлы зашифрованы, свяжитесь с нами для их восстановления.
Для авторизации на сайте используйте:
ID: fbdd781d
HashID: 531cae80ed3fce6166e66534f01a5616
1) Внимание, 'переустановка/откат' windows не поможет восстановить файлы но может окончательно их повредить и тогда даже мы не сможем их восстановить.
2) Антивирусы nod32, drweb, kaspersky и т.д вам не помогут расшифровать файлы, даже если вы купите у них лицензию на 10 лет, они вам все равно не восстановят файлы.
3) Для шифрования файлов используется AES который был создан в 1998г, за 17 лет никто на планете земля не смог взломать алгоритм шифрования, даже АНБ.
4) Ключ других пользователей вам не подойдет, так как у каждого пользователя уникальный ключ, поэтому не ждите что кто-то оплатит и выложит ключ для расшифровки файлов.
Коротко о шифрование 'AES256' на примере 'Winrar', каждый файл помешается в архив 'Winrar', на архив 'Winrar' ставится пароль из 256 символов:
1) Открыть архив можно только введя пароль
2) Удалив 'Winrar' файл остается в архиве и открыть его нельзя.
3) Даже если перенести архив на другой windows, он все еще будет требовать пароль для открытия.
4) Если вы 'переустановите/откатите' windows, архив 'Winrar' останется архивом и для его открытия все еще потребуется 'Winrar' и пароль из 256 символов.
Прилагаю лог Autologger CollectionLog-2016.02.10-12.49.zip и архив с зашифрованнм файлом IMG_5550.JPG.zip.
Прошу помочь.
ПК, на котором зашифровалась флешка теперь дольше черного экрана не грузится. Но и не страшно, главное на флешке. В действительности там огромное количество данных связанных с работой, работаю педагогом в школе для неполноценных. Резервные копии некоторых данных имеются, но далеко не всех. В архиве два зашифрованных файла doc (для образца) и txt-файл с требованиями от создателей шифровальщика. Прошу помочь насколько это возможно. Спасибо заранее.
upd
добавил архив с логом, согласно тербованиям
Вирус.zip
CollectionLog-2016.01.11-20.02.zip
Помогите удалить вирус AES256. Файлы закодированы и не открываются.
CollectionLog-2014.10.26-07.31.zip
Какая польза от этих инструментов для шифрования текстов?
Цель этих полностью бесплатных онлайн-инструментов - позволить нам зашифровать введенный текст, и, настроив разные длины ключей, режимы шифрования и частный ключ дешифрования, мы получим полностью зашифрованный текст, которым мы сможем поделиться с кем угодно. Если мы применим исходный закрытый ключ к этому зашифрованному тексту, тот же режим и алгоритм шифрования, мы сможем легко и быстро получить доступную для чтения информацию.
Лучшие бесплатные онлайн-инструменты для шифрования и дешифрования текстов
В этой статье мы собираемся предложить вам список совершенно бесплатных инструментов для шифрования и дешифрования текстов, нам нужно будет только получить доступ к официальному веб-сайту инструмента и заполнить различные поля, доступные для адаптации симметричного шифрования AES к нашим конфигурациям ( закрытый ключ, вектор инициализации IV, тип шифрования, длина ключа, а также режим шифрования).
Шифрование AES
Чтобы начать использовать Шифрование AES мы должны получить доступ к его главной веб-странице, где мы найдем простой интерфейс для ввода текста и шифрования содержимого, хотя мы также можем расшифровать его в том же интерфейсе, просто введя пароль.
Его использование очень простое. Как мы видим, у нас есть 4 элемента в поле шифрования:
- Поле для ввода текста, который мы хотим зашифровать или расшифровать.
- Поле для ввода ключа шифрования. Чем длиннее и сложнее ключ, тем надежнее шифрование.
- Панель выбора длины ключа (128 бит, 192 бит или 256 бит).
- Кнопки, чтобы зашифровать текст или расшифровать его как нам нужно.
В текстовое поле мы должны ввести текст, который мы хотим зашифровать, а под ним ключ, которым мы собираемся его зашифровать. Мы нажмем кнопку «Зашифровать», и ниже мы сможем увидеть наш зашифрованный текст.
Чтобы расшифровать его, мы скопируем текст в текстовое поле на AES Шифрование веб-сайт и введите ключ шифрования. Мы нажмем на кнопку «Расшифровать» и внизу будет показан наш расшифрованный текст. Внизу веб-сайта шифрования AES мы можем увидеть исходный код для всех тех пользователей, которые хотят его проанализировать, чтобы убедиться, что это действительно безопасное шифрование, которое будет далеко от досягаемости АНБ, и они также могут его реализовать. на других сайтах или сервисах легко.
Онлайн-инструмент для шифрования и дешифрования Devglan AES
- Режим шифрования: ECB или CBC
- Длина ключа: 128, 192 или 256 бит
- Секретный пароль
После того, как все данные были введены, мы можем экспортировать вывод зашифрованного текста в BASE64 или шестнадцатеричный формат, этот вывод появится чуть ниже, где он указывает «AES Encrypted Output».
Генератор Javainuse AES
- Режим шифрования: ECB или CBC
- Длина ключа: 128, 192 или 256 бит
- Вектор инициализации, если вы используете CBC из 16 символов, если вы используете 128 бит, 24 символа, если вы используете 192 бит и 32 символа, если вы используете 256 бит.
- Секретный пароль
- Вывод в формате Base64 или шестнадцатеричном формате
Как только это будет сделано, мы нажмем кнопку «Зашифровать», и введенный текст будет зашифрован.
Чтобы расшифровать информацию, мы укажем зашифрованный текст в формате Base64 или Hexadecimal, остальные параметры конфигурации, которые нам нужно будет ввести, точно такие же, как и раньше, режим шифрования, длина ключа, вектор инициализации, если вы используете CBC и также секретный ключ. Как только все будет введено, мы нажимаем «Расшифровать», и он вернет нам простой текст.
Кодировать-декодировать
После того, как мы выбрали шифрование, нам нужно будет ввести открытый текст в поле слева вместе с ключом шифрования. В случае наличия зашифрованного текста нам нужно будет поместить его в поле справа, а также ввести ключ дешифрования в этом случае. Внизу мы найдем соответствующие кнопки «Зашифровать» или «Расшифровать», чтобы зашифровать или расшифровать информацию.
Этот инструмент является одним из самых полезных и быстрых, которые мы можем найти, кроме того, возможность выбора между различными алгоритмами симметричного шифрования является очень положительным моментом.
Криптии
- Блокировать шифрование (вы можете выбрать другой тип)
- Алгоритм: AES-128 или AES-256
- Режим шифрования: CBC или CTR
- Ключ дешифрования в шестнадцатеричном формате
- Вектор инициализации в шестнадцатеричном формате
В этом случае вам придется использовать шестнадцатеричный преобразователь для ввода ключа шифрования / дешифрования и вектора инициализации.
Хотя этот инструмент является отличной альтернативой, мы считаем, что дополнительная сложность использования Hex заставляет нас предпочесть использовать другие инструменты.
Инструментb AES
Этот бесплатный инструмент также позволит нам шифровать и расшифровывать данные с помощью AES. В левом поле мы введем открытый текст или шифрование, затем мы введем ключ шифрования, вектор инициализации, тип шифрования (AES-128, AES-192 или AES-256), а также режим шифрования (CBC, CFB, ECB, OFB и т. Д.), И как только мы его завершим, нажмите кнопку «AES Encryption» или «AES decryption».
Этот инструмент также очень полезен для тестирования зашифрованных и расшифрованных текстов.
Как вы видели, сегодня у нас есть большое количество возможностей для бесплатного онлайн-шифрования текстов с помощью AES и других алгоритмов симметричного шифрования. В зависимости от наших потребностей и тестов, мы можем выбрать те или иные инструменты, в зависимости от доступных параметров конфигурации и их возможностей.
Недавно в институте я столкнулся с любопытной криптографической задачей, которой хотел бы поделиться с Сообществом. Одним предложением задачу могу обозначить, как "Атака на LSX-шифр, не содержащий нелинейной компоненты, на основе открытых текстов". Так как русскоязычных примеров решения таких учебных «головоломок» встречается немного, а сама задача рекомендована для начинающих свой путь специалистов, я считаю, что такая статья может быть интересна юному криптоаналитику. Пожалуйте под кат.
Условие
Байтовая подстановка шифра AES-256 определяется некоторой последовательностью операций в поле и также может быть задана массивом из 256 байт:
63 7c 77 7b f2 6b 6f c5 30 01 67 2b fe d7 ab 76
ca 82 c9 7d fa 59 47 f0 ad d4 a2 af 9c a4 72 c0
b7 fd 93 26 36 3f f7 cc 34 a5 e5 f1 71 d8 31 15
04 c7 23 c3 18 96 05 9a 07 12 80 e2 eb 27 b2 75
09 83 2c 1a 1b 6e 5a a0 52 3b d6 b3 29 e3 2f 84
53 d1 00 ed 20 fc b1 5b 6a cb be 39 4a 4c 58 cf
d0 ef aa fb 43 4d 33 85 45 f9 02 7f 50 3c 9f a8
51 a3 40 8f 92 9d 38 f5 bc b6 da 21 10 ff f3 d2
cd 0c 13 ec 5f 97 44 17 c4 a7 7e 3d 64 5d 19 73
60 81 4f dc 22 2a 90 88 46 ee b8 14 de 5e 0b db
e0 32 3a 0a 49 06 24 5c c2 d3 ac 62 91 95 e4 79
e7 c8 37 6d 8d d5 4e a9 6c 56 f4 ea 65 7a ae 08
ba 78 25 2e 1c a6 b4 c6 e8 dd 74 1f 4b bd 8b 8a
70 3e b5 66 48 03 f6 0e 61 35 57 b9 86 c1 1d 9e
e1 f8 98 11 69 d9 8e 94 9b 1e 87 e9 ce 55 28 df
8c a1 89 0d bf e6 42 68 41 99 2d 0f b0 54 bb 16
Определим модифицированный вариант шифра – «AES-256-М», который будет отличаться от оригинального только подстановкой, а именно:
2b c4 4d a2 76 99 10 ff 56 b9 30 df 0b e4 6d 82
db 34 bd 52 86 69 e0 0f a6 49 c0 2f fb 14 9d 72
95 7a f3 1c c8 27 ae 41 e8 07 8e 61 b5 5a d3 3c
65 8a 03 ec 38 d7 5e b1 18 f7 7e 91 45 aa 23 cc
cb 24 ad 42 96 79 f0 1f b6 59 d0 3f eb 04 8d 62
3b d4 5d b2 66 89 00 ef 46 a9 20 cf 1b f4 7d 92
75 9a 13 fc 28 c7 4e a1 08 e7 6e 81 55 ba 33 dc
85 6a e3 0c d8 37 be 51 f8 17 9e 71 a5 4a c3 2c
6f 80 09 e6 32 dd 54 bb 12 fd 74 9b 4f a0 29 c6
9f 70 f9 16 c2 2d a4 4b e2 0d 84 6b bf 50 d9 36
d1 3e b7 58 8c 63 ea 05 ac 43 ca 25 f1 1e 97 78
21 ce 47 a8 7c 93 1a f5 5c b3 3a d5 01 ee 67 88
8f 60 e9 06 d2 3d b4 5b f2 1d 94 7b af 40 c9 26
7f 90 19 f6 22 cd 44 ab 02 ed 64 8b 5f b0 39 d6
31 de 57 b8 6c 83 0a e5 4c a3 2a c5 11 fe 77 98
c1 2e a7 48 9c 73 fa 15 bc 53 da 35 e1 0e 87 68
Задача. Имеется шифртекст длиной 5120 бит (40 блоков), который был получен шифрованием открытого текста шифром «AES-256-М» в режиме простой замены на неизвестном ключе. Известен первый блок открытого текста. Предложить осуществимый на практике способ вскрытия неизвестной части шифртекста.
Теоретическое введение
Рассмотрим общую структуру LSX-шифров, одним из представителей которых является AES Rijndael.
Структура LSX-шифра
В основе шифров LSX-архитектуры лежит итеративное применение раундовой функции к блоку a преобразуемого текста (длина блока a для большинства современных шифров – 128 бит).
Раундовая функция состоит из трех преобразований:
— сложение по модулю 2 входного блока с итерационным ключом (, где – число раундов шифра);
— применение фиксированной подстановки к каждому байту блока;
— линейное преобразование.
Схематично LSX-преобразование можно представить как
В каждом раунде LSX-шифра используется отдельный раундовый ключ некоторым образом формируемый из первичного ключа . Битовая длина первичного ключа обычно равна длине итерационного ключа или превосходит её. Процедуры ключевой развертки итерационных ключей из первичного существенным образом отличаются у различных шифров.
Общая формула шифрующего преобразования для LSX-шифра с числом раундов, равным , может быть записана в следующем виде:
Схематично общую структуру LSX-шифра можно представить как
Процесс расшифрования выполняется с помощью обратных преобразований:
— сложение по модулю 2 входного блока с итерационным ключом;
— применение обратной к подстановки;
— применение обратного -преобразования ( – единичная подстановка).
Формула для расшифрования -раундового LSX-шифра:
Подстановки в LSX-шифрах
В шифрах LSX-архитектуры огромную роль играют подстановки – биективные отображения вида , где . Неудачно выбранная подстановка может привести к снижению стойкости всего шифра, а в худшем случае к применимой на практике атаке на шифр.
Не буду поэтапно разбирать сам алгоритм AES, на этом ресурсе это делали уже не один раз: например, можно почитать такие замечательные статьи как эта, вот эта, и, конечно, официальную документацию шифра.
Решение
Я постараюсь воспроизвести ход решения данной задачи с точки зрения малоопытного криптографа (самого себя), чтобы показать логику размышлений в случае, когда абсолютно не знаешь, за что браться в первую очередь.
Разведка
Очевидно, что ключевая особенность этой задачи – это уязвимая подстановка (S-box), поэтому мое исследование проблемы началось с построения таблицы дифференциальных характеристик. Несмотря на то, что классический дифференциальный метод является непрактичным по отношению к AES-like шифрам (число раундов слишком велико), некоторую полезную информацию о модифицированном S-box'е можно попытаться извлечь.
Итак, строим таблицу:
И не удивляемся результату: оказывается, таблица имеет вырожденный вид – в каждой ее строке есть запись с вероятностью 256/256 (остальные записи соответственно равны 0).
Далее выдвигается предположение, что такой вид дифф. таблица модифицированной подстановки имеет в силу особенностей построения, т. е. она генерирована искусственно. В таком случае было бы неплохо найти возможный способ генерации таких подстановок.
Из базового курса криптографии известно, что основная роль S-box'а в блочном шифре заключается во внесении нелинейности в криптограмму (другими словами, в максимальном сокрытии статистической связи между открытым текстом и шифртекстом), и раз данный нам S-box является уязвимым местом AES-256-M, можно предположить, что он не выполняет свою целевую функцию. Значит, скорее всего, этот S-box является результатом применения какой-либо линейной функции к диапазону чисел .
Экспериментальным методом выясняем, что в роли генератора подстановки выступила простая аффинная функция вида , где
— двоичная матрица размера 8x8,
Таким образом, наше предположение оказалось верным: если представить байты подстановки в виде двоичных векторов, то модифицированная подстановка превращается в представленное выше аффинное преобразование с линейной зависимостью между входным и выходным набором бит.
Теперь даже можно написать небольшой скрипт для генерации таких подстановок.
Подготовка к атаке
Итак, единственный компонент шифра, который должен был быть нелинейным, оказался очень даже линейным, поэтому нетрудно догадаться, в каком направлении двигаться дальше.
Найдем альтернативное бит-ориентированное представление всех линейных преобразований шифра AES Rijndael такое, чтобы было возможно «встроить» линейную теперь операцию применения подстановки к каждому байту блока в одну большую линейную трансформацию.
SubBytes
Операция SubBytes, как раз представляющая преобразование в LSX-шифре, теперь выглядит как , где — шифруемый блок, и описаны выше.
Следовательно, бит-ориентированное представление операции SubBytes пример вид:
ShiftRows
Обратимся к [1] для определения матрицы, отвечающей за операцию ShiftRows. Эта матрица имеет следующий вид:
И преобразование ShiftRows принимает вид .
MixColumns
Далее: любой элемент из представи́м как сумма базисных . Тогда запомним результаты умножения элемента на все базисные:
Так как выполняется дистрибутивность по сложению и умножению, то в совокупности с рассуждениями выше элемент можно представить в виде матрицы с коэффициентами из :
Тогда очевидно, что элемент перейдет в единичную матрицу , а элемент перейдет в .
Для проверки наших рассуждений можно заглянуть в [2], где предлагается аналогичная матрица для бит-ориентированного умножения на элемент из .
В результате, принимая во внимание то, что во время оригинальной трансформации MixColumns строка MDS-матрицы умножается на столбец состояния state, составим матрицу для бит-ориентированного представления данной трансформации (под спойлером).
( C2 00 00 00 C3 00 00 00 C1 00 00 00 C1 00 00 00 )
( 00 C2 00 00 00 C3 00 00 00 C1 00 00 00 C1 00 00 )
( 00 00 C2 00 00 00 C3 00 00 00 C1 00 00 00 C1 00 )
( 00 00 00 C2 00 00 00 C3 00 00 00 C1 00 00 00 C1 )
( C1 00 00 00 C2 00 00 00 C3 00 00 00 C1 00 00 00 )
( 00 C1 00 00 00 C2 00 00 00 C3 00 00 00 C1 00 00 )
( 00 00 C1 00 00 00 C2 00 00 00 C3 00 00 00 C1 00 )
( 00 00 00 C1 00 00 00 C2 00 00 00 C3 00 00 00 C1 )
( C1 00 00 00 C1 00 00 00 C2 00 00 00 C3 00 00 00 )
( 00 C1 00 00 00 C1 00 00 00 C2 00 00 00 C3 00 00 )
( 00 00 C1 00 00 00 C1 00 00 00 C2 00 00 00 C3 00 )
( 00 00 00 C1 00 00 00 C1 00 00 00 C2 00 00 00 C3 )
( C3 00 00 00 C1 00 00 00 C1 00 00 00 C2 00 00 00 )
( 00 C3 00 00 00 C1 00 00 00 C1 00 00 00 C2 00 00 )
( 00 00 C3 00 00 00 C1 00 00 00 C1 00 00 00 C2 00 )
( 00 00 00 C3 00 00 00 C1 00 00 00 C1 00 00 00 C2 )
И тогда соответствующее преобразование примет вид .
Атака
Анализ практически завершен, подготовим все необходимое для атаки.
Один раунд
Рассмотрим один раунд шифра AES-256-M.
В стандартном виде:
В матричном виде над :
где — матрица, представляющая весь линейный рассеивающий слой AES-256-M.
Несколько раундов
где — условный «мастер-ключ», который можно использовать для дешифрования других блоков (т. к. шифрование проводится в режиме ECB):
И вот та самая «магическая» формула для дешифровки остальных блоков шифртекста, из-за который мы сегодня собрались:
Примечание
В оригинальной реализации AES Rijndael операция MixColumns опущена на последнем раунде шифра в силу своей бесполезности на этом этапе. В данном решении это не учитывается (т. е. MixColumns используется и после сложения с последним раундовым ключом) для упрощения демонстрации результата.
Заключение, код, литература
Сперва хотелось бы отметить, что матрицу можно легко получить с помощью алгебраического аппарата Sage:
Исходный код
Небольшое программное демо, которое покажет «вживую», как проходит взлом, выложено на Гитхабе.
Вывод
Что можно сказать о задачах такого рода? Такие задачи являются отличным примером того, как такая, на первый взгляд, несущественная модификация оригинального алгоритма, как «кастомная» подстановка (которая вроде бы даже выглядит псевдослучайной, даже более того – проходит некоторую часть статистических тестов NIST, см. спойлер ниже) может выродить международный стандарт шифрования в тривиальное аффинное преобразование с известной матрицей.
Читайте также: