Читаем Основы классической криптологии. Секреты шифров и кодов полностью

СЕКРЕТНОЕСООБЩЕНИЕ

Затем строго над буквами этого текста записываются буквы пароля. Для облегчения работы можно составить вот такую вспомогательную таблицу:

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

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

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

Вторая буква открытого текста должна шифроваться в той строке, которая начинается с буквы О. Это строка 14. На пересечении столбца Е и строки 14 находится клеточка с буквой У.

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

Аналогичным образом должны быть зашифрованы все буквы открытого текста. По окончании шифрования открытый текст СЕКРЕТНОЕ СООБЩЕНИЕ будет преобразован в криптограмму, которая имеет следующий вид:

БУОШТТЭЬЙ ЩЫОСЗЙХХЕ

Для большей скрытности этот текст можно произвольно разделить на группы букв:

БУ ОШТ ТЭЬЙ ЩЫ ОСЗЙ ХХЕ

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

Для облегчения работы можно составить вот такую вспомогательную таблицу:

Теперь для определения первой буквы открытого текста надо в строке, начинающейся на букву Р (первая буква пароля), найти клеточку с буквой Б (первая буква шифрованного текста). После этого определяется буква, с которой начинается открытый текст. Эго буква, с которой начинается данный столбец.

В рассматриваемом примере столбец таблицы, в шестнадцатой строке которого находится буква Б, начинается с буквы С. Это и есть первая буква открытого текста.

Для определения второй буквы открытого текста необходимо в строке, начинающейся на букву О (вторая буква пароля), найти клеточку с буквой У (вторая буква шифрованного текста).

Первая буква столбца, на пересечении которого с 14-й строкой находится буква У, будет второй буквой открытого текста. В нашей таблице это буква Е

Таким же образом осуществляется замена всех букв криптограммы до окончательной расшифровки всего текста В рассматриваемом примере в результате преобразования вновь получится первоначальный открытый текст СЕКРЕТНОЕ СООБЩЕНИЕ Наблюдательный читатель заметит, что при работе с шифром Виженера используются не все строки таблицы, а только те из них, которые начинаются с букв, входящих в состав ключевого слова или пароля. Поэтому при желании можно воспользоваться упрощенным вариантом шифровальной таблицы с ограниченным числом строк Так например, для пароля РОДИНА упрощенная шифровальная таблица будет иметь следующий вид:

Полную шифровальную таблицу можно использовать при шифровании с любым паролем.

Шифр Гронсфельда

В XVII веке граф Гронсфельд, руководивший специальной дешифровальной службой Германии, предложил усовершенствованный вариант шифра Цезаря, при использовании которого применяется не буквенный, а числовой пароль.

В качестве примера попробуем зашифровать с помощью шифра Гронсфельда открытый текст СЕКРЕТНОЕ СООБЩЕНИЕ

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

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

Значение цифры пароля, находящейся под каждой буквой, означает число позиций, на которое надо сдвинуть букву открытого текста вправо по алфавиту для получения криптограммы. Так, например, в русском алфавите буква С открытого текста будет заменена в криптограмме на букву Т, буква Е — на букву 3, буква К — на букву Н и так далее. Другими словами, в шифрограмме вместо буквы С следует записать букву Т, вместо буквы Е — букву 3, вместо буквы К — букву Н и так далее.

В результате такого преобразования наш первоначальный открытый текст СЕКРЕТНОЕ СООБЩЕНИЕ примет следующий вид:

ТЗНФЖФРТЖ УСТВЫИСЙЗ

Для большей скрытности этот текст можно произвольно разделить на группы букв:

ТЗНФ ЖФРТ ЖУСТ ВЫИ СЙЗ

При использовании шифра Гронсфельда с паролем 1234 для облегчения процесса шифрования и расшифровки можно составить вот такую шифровальную таблицу, которая должна быть как у отправителя, так и у получателя сообщения:

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

Перейти на страницу:

Похожие книги

1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных
1001 совет по обустройству компьютера
1001 совет по обустройству компьютера

В книге собраны и обобщены советы по решению различных проблем, которые рано или поздно возникают при эксплуатации как экономичных нетбуков, так и современных настольных моделей. Все приведенные рецепты опробованы на практике и разбиты по темам: аппаратные средства персональных компьютеров, компьютерные сети и подключение к Интернету, установка, настройка и ремонт ОС Windows, работа в Интернете, защита от вирусов. Рассмотрены не только готовые решения внезапно возникающих проблем, но и ответы на многие вопросы, которые возникают еще до покупки компьютера. Приведен необходимый минимум технических сведений, позволяющий принять осознанное решение.Компакт-диск прилагается только к печатному изданию книги.

Юрий Всеволодович Ревич

Программирование, программы, базы данных / Интернет / Компьютерное «железо» / ОС и Сети / Программное обеспечение / Книги по IT
97 этюдов для архитекторов программных систем
97 этюдов для архитекторов программных систем

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

Билл де Ора , Майкл Хайгард , Нил Форд

Программирование, программы, базы данных / Базы данных / Программирование / Книги по IT
Programming with POSIX® Threads
Programming with POSIX® Threads

With this practical book, you will attain a solid understanding of threads and will discover how to put this powerful mode of programming to work in real-world applications. The primary advantage of threaded programming is that it enables your applications to accomplish more than one task at the same time by using the number-crunching power of multiprocessor parallelism and by automatically exploiting I/O concurrency in your code, even on a single processor machine. The result: applications that are faster, more responsive to users, and often easier to maintain. Threaded programming is particularly well suited to network programming where it helps alleviate the bottleneck of slow network I/O. This book offers an in-depth description of the IEEE operating system interface standard, POSIX (Portable Operating System Interface) threads, commonly called Pthreads. Written for experienced C programmers, but assuming no previous knowledge of threads, the book explains basic concepts such as asynchronous programming, the lifecycle of a thread, and synchronization. You then move to more advanced topics such as attributes objects, thread-specific data, and realtime scheduling. An entire chapter is devoted to "real code," with a look at barriers, read/write locks, the work queue manager, and how to utilize existing libraries. In addition, the book tackles one of the thorniest problems faced by thread programmers-debugging-with valuable suggestions on how to avoid code errors and performance problems from the outset. Numerous annotated examples are used to illustrate real-world concepts. A Pthreads mini-reference and a look at future standardization are also included.

David Butenhof

Программирование, программы, базы данных