Проблемы защиты информационных систем постоянно находятся в поле зрения, что оказывает весьма существенное влияние на книжный рынок, а приподнявшаяся завеса секретности над криптографическими занятиями открыла широкому кругу, что же сделано в этой области за последние полвека, которые можно считать золотыми временами криптографии.
А.В. Аграновский, Р.А. Хади. Практическая криптография: алгоритмы и их программирование. М.: СОЛОН-Пресс, 2002. 256 с., с ил.

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

В работе А.В. Аграновского и Р.А. Хади «Практическая криптография: алгоритмы и программирование» можно найти справочные и учебные материалы по вопросам защиты информации, полезные как для профессионалов, так и для новичков. В книге доминируют темы архитектуры систем шифрования и методов криптоанализа с использованием программных средств. Авторы представляют в качестве основного предмета книги классическую криптографию, симметричные криптосистемы, блочные и поточные шифры, что по их мнению позволит читателям ориентироваться в существующих схемах шифрования и криптоанализа, архитектурах построения шифров, а также перспективных методах их анализа.

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

В каждой главе приводятся примеры программ на языках Си и Perl, для выполнения которых необходим Borland C++ Builder 5, а для исполнения скриптов на языке Perl требуется ActiveState Perl или другой подходящий интерпретатор. При практической работе по усвоению материала книги понадобится еще шестнадцатеричный редактор наподобие Far. К книге прилагается компакт-диск с проиндексированным содержанием и файлами с исходными текстами программ.

Очень уместной в книге выглядит справка об используемой терминологии. Следует признать также удачной попытку изложения теории секретных систем, обратившись к наследию Клода Шеннона. Для начинающих программистов, пожалуй, весьма полезной будет третья глава, ознакомившись с которой они обретут технические навыки работы с кодами при решении криптографических задач, представленных в историческом контексте.

Устройство современных шифров проиллюстрировано на ряде примеров: блочные, сети Файстеля, SP-сети и шифры Файстеля, криптосистема преобразования данных Lucifer, стандартные, архитектуры SQUARE. Также описаны режимы шифрования и устройство поточных шифров.

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

Оценивая в целом книгу, следует, прежде всего, отметить ее прикладную направленность, которая в значительной мере связана с личным опытом авторов. Полезности книги служит также обилие включенных в текст примеров. Богатая библиография позволяет серьезно углубить знания, полученные при изучении книги, которая, надеемся, найдет широкий круг читателей.