Crypto++ AES Расшифровать как?

Практически нет руководств для нубов по крипто++. Или ничего, что я нашел в любом случае. Что я хочу сделать, так это расшифровать массив uchars, которые я генерирую с помощью другого шифровальщика AES. С чего бы мне начать? Я построил библиотеку и связал grand. Нужно ли мне что-то настраивать или я просто вызываю функцию в моем массиве (и если да, то какую функцию)?

Я бы очень хотел получить помощь от кого-то, кто разбирается в этом.

Спасибо


person indigoOrange    schedule 28.06.2010    source источник
comment
Опыт показал, что современное состояние криптографических API опасно для новичков. Кажется, что для их понимания требуется много знаний в области криптографии, которые невозможно изучить в кратком руководстве по началу работы.   -  person President James K. Polk    schedule 28.06.2010
comment
indigoOrange — имейте в виду, что одного лишь шифрования редко бывает достаточно. Обычно вам нужен аутентифицированный режим шифрования. В отсутствие другой информации вы почти всегда предпочитаете режимы EAX, GCM или CCM другим режимам, таким как режим CBC. И вы почти всегда избегаете режима ECB, как чумы, потому что он теряет семантическую безопасность, когда вы повторно используете ключ шифрования или шифруете более одного блока.   -  person jww    schedule 18.01.2014


Ответы (2)


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

string output;
CTR_Mode<AES>::Encryption encrypt((const byte*)key,AES::DEFAULT_KEYLENGTH,(const byte*)iv);
StringSource(plaintext, true, new StreamTransformationFilter(encrypt, new StringSink(output)));
cout << "Encrypted: " << output << endl;

string res;
CTR_Mode<AES>::Decryption decrypt((const byte*)key,AES::DEFAULT_KEYLENGTH,(const byte*)iv);
StringSource(output, true, new StreamTransformationFilter(decrypt, new StringSink(res)));
cout << "Decrypted: " << res << endl;

Работая над этим, я обнаружил, что исходный код в тестовой программе Crypto++ (проект VisualStudio под названием «cryptest») очень помогает. Сначала было немного сложно читать, но по мере работы становится легче. Я также получил большую помощь в понимании доступных режимов блочного шифрования из Википедии (http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation).

person A.J.    schedule 23.11.2010

Вот пара ресурсов из поиска Google:

http://www.bitvise.com/users-guide.html

http://andreyvit.livejournal.com/37576.html

person Andrei Sosnin    schedule 28.06.2010