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

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

Магический квадрат 9x9

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

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

Один из вариантов такого квадрата имеет следующий вид:

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

5.9. Трафарет в системах шифрования

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

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

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

Простой шифр с трафаретом

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

Так, например, трафарет для шифрования сообщений может выглядеть так, как показано на рис. 5.5.

Рис. 5.5 Один из вариантов трафарета для шифрования сообщений

На представленном рисунке черным цветом закрашены ячейки, которые следует вырезать.

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

В результате на листе получится следующая надпись:

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

Для того чтобы запутать незаконного пользователя, буквы можно вписать так, чтобы получился какой-либо вполне обычный текст.

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

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

Решетка Кардано

Более сложной системой шифрования, в которой также используется трафарет определенной формы, является шифр, называемый решеткой Кардано. Название этого шифра произошло от имени его автора, итальянского математика и философа Джероламо Кардано. Именно он в далеком 1566 году водной из своих работ опубликовал описание рассматриваемого шифра.

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

Рис. 5.8 Решетка Кардано размером 4x4

Так, например, вариант такого трафарета размером 4x4 имеет вид, изображенный на рис. 5.6.

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

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

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

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

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

Финансы / Программирование, программы, базы данных
97 этюдов для архитекторов программных систем
97 этюдов для архитекторов программных систем

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

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

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

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

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

Программирование, программы, базы данных / Интернет / Компьютерное «железо» / ОС и Сети / Программное обеспечение / Книги по 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

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