ПРАКТИЧЕСКАЯ КРИПТОГРАФИЯ АЛГОРИТМЫ И ИХ ПРОГРАММИРОВАНИЕ

Стpуктуpа глав, или Как читать эту книгу


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

Как наверняка уже успел заметить внимательный читатель, всего в книге семь глав. Основные материалы в ней разделены между всеми главами поровну. Три главы носят вводный характер, остальные три носят прикладной характер. Первая глава является вводной.

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

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

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

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

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

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

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

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

Каждое ружье, висящее на стене, должно когда-либо выстрелить. Этой непререкаемой истине последовали и авторы книги. Потому в седьмой главе "Прикладные задачи шифрования" все "ружья" оказались при деле. Именно в ней раскрываются решения прикладных задач: конфиденциальной связи, защищенных контейнеров данных, защиты исходных текстов и данных с помощью криптографических методов, о которых рассказано ранее. Кроме этого, в главе представлен пример исследования программного обеспечения на предмет надежности использования криптографических средств шифрования. Авторы провели небольшое исследование метода шифрования криптодиска популярной программы PGPDisk.

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

Таким образом, логическую цепочку связи глав можно представить приблизительно так:

I глава | \ | II глава | / III глава | \ | V глава | | IV глава | | | VI глава --^ | VII глава

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



Содержание раздела