[C++] White-box AES Implementation Generator
От: gear nuke  
Дата: 30.04.08 04:52
Оценка: 21 (3)
White-Box Cryptography — относительно новое направление (основные применения — DRM и watermarking) в сети публикаций не так много, а готовые реализации, вероятно, можно вообще не найти. Данный генератор представляет скорее академический, чем практический интерес. Это не пример, как надо делать, а на тему "что это вообще такое". Исследования стойкости не проводились. Написан в 2004 году и сейчас является Public Domain (*).

http://files.rsdn.ru/45067/aesig.zip



О программе.

AESIG создаёт программные реализации алгоритма дешифрования AES, предназначенные для работы в условиях "White-Box". Это подразумевает выполнение алгоритма в условиях, полностью контроллируемых криптоаналитиком. В такой ситуации недопустимо открытое использование секретного ключа.

White-Box AES обладает повышенной стойкостью к извлечению ключа дешифрации криптотекста. Это достигается за счёт хранения ключа в неявном виде в коде дешифратора. Дешифратор представляет собой серию табличных замен. В свою очередь каждая табличная замена компилируется в последовательность вида:
if( ! (y += XX) ) var <operator>= ZZ;
где operator представляет собой псевдослучайную арифметическую операцию.

Как это работает.

AESIG получает на вход файл сценария с параметрами. На основании информации из сценария и данных ключа генерируется листинг функции на языке Си пригодной для непосредственного использования в составе сторонней Си-программы. После компиляции эта функция способна осуществлять дешифрацию без использования каких-либо дополнительных данных.




(*) Так как под рукой нет 2003 Студии, что бы собрать exe без ненужных хависимостей, в память о почившем в бозе заказчике оставлен copyrighted бинарник. Его использование может быть незаконно.
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.