close

Вход

Забыли?

вход по аккаунту

?

Alekseev Mnogourovnevaya zawita informacii monografiya 2017

код для вставкиСкачать
А.П.Алексеев
Многоуровневая защита информации
Монография
Самара, ПГУТИ
2017
2
ISBN 978-5-904029-72-2
УДК 004.056
А 47
Рецензенты:
заведующий кафедрой «Вычислительная техника» Самарского государственного технического университета д.т.н., профессор
Орлов С.П.,
заведующий кафедрой «Безопасность информационных систем» Самарского университета к.ф.м.н., доцент
Осипов М.Н.
Алексеев А.П. Многоуровневая защита информации. Самара: ПГУТИ-ИУНЛ, 2017. – 128 с. ISBN 978-5-904029-72-2
Книга посвящена вопросам повышения криптостойкости передаваемой информации. Предлагается использовать несколько уровней защиты:
криптографический, стеганографический, а также пространственновременное распыление информации.
Дано описание классических симметричных шифров, асимметричного шифра RSA. Приведён криптоанализ шифра RSA, указаны уязвимости
шифра RSA.
Описаны оригинальные симметричные шифры: с помощью графических матриц, управляемых операций и многоалфавитный адаптивный
шифр.
Описаны новые способы скрытой передачи информации в ТСРпакетах, в старших разрядах WAV-файла.
Книга предназначена для студентов (специальности 10.03.01,
10.05.02), дипломников, магистров, аспирантов, преподавателей и специалистов, занимающихся вопросами защиты информации.
УДК 004.056
ISBN 978-5-904029-72-2
© Алексеев А.П., 2017
© ФГБОУВО ПГУТИ, 2017
3
Введение
Основными тенденциями развития методов защиты информации в настоящее время является комплексное использование криптографии и стеганографии.
Сообщение шифруется детально исследованным шифром, затем внедряется в
один из мультимедийных контейнеров.
Средства криптоанализа и стеганоанализа постоянно совершенствуются,
поэтому требуются новые идеи повышения криптостойкости. Одним из методов
увеличения криптостойкости может стать метод, основанный на пространственновременном распылении информации.
При пространственном распылении передаваемое сообщение дробится на
несколько частей и каждая часть помещается в отдельный мультимедийный контейнер, адрес которой противнику неизвестен.
При временном распылении внедрённое в контейнер сообщение находится
в нём не постоянно, а только короткий промежуток времени и этот промежуток
времени является секретным.
Реализация принципа пространственно-временного распыления информации основывается на создании нескольких объектов-близнецов, среди которых
только часть объектов содержит скрытую информацию, а остальные объекты являются маскирующими.
Успешной реализации пространственно-временного распыления информации способствует большое число существующих в Интернет услуг (социальные
сети, мессенджеры, чаты, электронная почта, облачные хранилища, базы аудио- и
видеоклипов, альбомы фотографий.
Криптоанализ должен начинаться с попытки обнаружения созданного стеганографического канала. Одним из способов обнаружения канала с временным
распылением информации является непрерывный контроль содержимого каждого
контейнера. Появление изменений в содержимом контейнера является сигналом о
передаче сообщения.
Если используется пространственное распыление информации, то анализ
наличия стего должен производиться на основании статистического анализа содержимого контейнера.
4
1. Принципы многоуровневой защиты информации
Защита передаваемой и хранимой информации в настоящее время базируется на принципах, разработанных в криптографии и стеганографии. С
помощью криптографических методов защищаемое сообщение преобразуется в набор символов, нечитаемый без ключа. Приёмы стеганографии позволяют создать скрытый канал связи, который сложно обнаружить даже с помощью специальных методов обработки информации [1, 2, 3]. Распределение
скрываемой информации в контейнерах происходит по секретному ключу.
Специалистами проведено большое число результативных криптографических атак на известные шифры и на стеганографические методы защиты. Наличие успешно проведённых атак говорит о имеющейся уязвимости
существующих принципов защиты информации.
Процесс разработки средств защиты информации и средств атаки на
шифры и методы сокрытия сообщений носит соревновательный (итерационный) характер. Как правило, через несколько лет после создания широко
распространённого шифра появляется эффективная атака на этот шифр и его
использование постепенно затухает. Мозговой штурм по разработке новых
алгоритмов защиты стимулируется проведением международных конкурсов.
Принципиально новым подходом к защите информации может стать
метод формирования нескольких уровней защиты сообщений (см. рисунок
1.1).
Рис.1.1. Пять барьеров защиты
5
На рисунке показано пять возможных барьеров защиты информации.
Под сообщением будем понимать любую передаваемую (хранимую) информацию или данные.
Одним из дополнительных барьеров защиты (помимо криптографического и стеганографического) может стать пространственное распыление
защищаемой информации.
Основная идея пространственного распыления информации состоит в
том, что сообщение дробят на возможно мелкие составляющие (предложения, слова, символы, блоки символов, группы байт, байты, группы бит, биты)
и передают частями, распределяя их по нескольким каналам связи ( K1 ...K n ) .
Рис. 1.2. Пространственное распыление информации
Перехват нарушителем C (см. рисунок 1.2) всех составляющих сообщения осложняется тем, что у корреспондентов А и В есть возможность использования нескольких доступных им телекоммуникационных каналов (радио, спутниковые, проводные, кабельные, радиорелейные).
Передача информации в глобальных сетях возможна с помощью множества существующих услуг (электронная почта, мессенджеры, чаты, форумы, блоги, социальные сети, распределённые базы данных WWW и т.п.). Использование сотовой связи позволяет распылить сообщение по нескольким
MMS или SMS и передать их с помощью большого числа телефонных каналов.
Помимо трёх перечисленных уровней защиты передаваемой информации можно создать ещё один уровень (четвёртый), который технически и
алгоритмически гармонично сочетается с ранее рассмотренными барьерами.
6
Это - временное разделение сообщения (передача данных по заранее согласованному расписанию).
Пространственное и временное разделение сообщения удачно сочетаются между собой, дополняя друг друга. Эти два барьера можно представлять в виде единого барьера и назвать его пространственно-временным распылением сообщения. Идею пространственно-временного распыления сообщения иллюстрирует рисунок 1.3.
Рис. 1.3. Пространственно-временное распыление информации
Информационные блоки 1…9, содержащие транслируемое сообщение,
передаются в псевдослучайном порядке по каналам связи ( K1 ...K n ) . Моменты
передачи блоков сообщения также является псевдослучайными. Передача
информационных блоков перемежается посылкой маскирующих (дезинформирующих) блоков 10…16. Порядок трансляции блоков, номера каналов и
временные окна устанавливают с помощью секретного ключа.
Заметим, что если для связи используется только один телекоммуникационный канал, то пространственно-временной барьер превращается во
временной барьер.
Пятый (алгоритмический) барьер базируется на таком способе обработки передаваемых блоков криптограммы, при котором отсутствие хотя бы
одного перехваченного блока вызывает у криптоаналитика труднопреодолимые вычислительные сложности. Ближе всего по идеологии (по замыслу и
использованию) к этому барьеру находятся режимы шифрования, которые
описаны в отечественном стандарте ГОСТ 28147-89, американском стандарте DES и многих публикациях. Пятый барьер как бы является продолжением
7
криптографического барьера, однако методологически его целесообразно
выделить в отдельный уровень защиты.
Таким образом, путём создания множества барьеров разного вида
можно осуществить принцип комплексной, многоуровневой защиты информации. В каждом конкретном случае стороны обоснованно выбирают достаточную степень защищённости сообщения (число используемых барьеров,
вид шифра, длину ключа, виды стеганографических контейнеров, способы
стеганографического внедрения информации в контейнеры, вид и число используемых каналов связи или носителей хранения информации, количество
временных окон для передачи информации).
Ясно, что реализация предлагаемых мер повышения криптостойкости
сопровождается увеличением времени передачи сообщения, числа ошибок
при передаче сообщения, усложняет процедуру передачи, снижает удобство
хранения информации. Регулировать степень защиты сообщения (значит, и
варьировать время передачи сообщения, изменять сервисные свойства) можно путём выборочного использования не всех барьеров, а только достаточной их части. Оперативная передача информации (когда ценность информации исчисляется часами и даже минутами) может происходить при минимальном числе используемых барьеров.
8
2. Криптографические методы защиты информации
Обозначим открытый текст символом М (от англ. Message, сообщение). Сообщение М в процессе шифрования на передающей стороне преобразуют таким образом, чтобы сделать его недоступным для прочтения противником. Для преобразования открытого текста используют шифратор, который может быть построен аппаратным или программным путём. Алгоритм
работы шифратора описывается функцией шифрования E (Encrypting).
Зашифрованный текст (криптограмму) обозначим символом С (Cryptogram). Шифратор преобразует открытое сообщение М, создавая нечитаемую криптограмму С:
Е(М) = С.
Очевидно, что вид криптограммы зависит как от исходного сообщения, так и от алгоритма работы шифратора.
На приёмной стороне дешифратор D, работа которого описывается
функцией дешифрования D (Decrypting), восстанавливает открытое сообщение М:
D(С) = М.
Понятно, что функции шифрования и дешифрования должны быть
обратимыми (симметричными), и на приёмной стороне должно быть принято сообщение, совпадающее с отправленным:
D(Е(М)) = М.
Если криптостойкость зашифрованного сообщения основана лишь на
сохранении в тайне самого алгоритма шифрования, то такой алгоритм в соответствии с правилом Керкгоффса использовать недопустимо. Такие алгоритмы представляют только исторический и учебный интерес.
Криптостойкость современных шифров основывается на секретном
ключе К (Key). Каждый ключ определяет, какой конкретный вид преобразований используется в данном случае (при неизменном и известном алгоритме шифрования). Результаты шифрования и дешифрования зависят от используемого ключа. При шифровании:
ЕК(М) = С,
где ЕК – функция шифрования на ключе К.
При дешифровании:
DК(С) = М,
где DК – функция дешифрования на ключе К.
Естественно, что при всех преобразованиях, производимых в процессе
передачи сообщения, должно выполняться соотношение:
DК(ЕК(М)) = М.
Последние соотношения выполняются в симметричных шифрах, у
которых ключи на предающей и приёмной сторонах одинаковые (или связа-
9
ны между собой очевидным способом). Перечислим наиболее известные
современные симметричные шифры: ГОСТ 28147-89, AES, CAST5, IDEA,
Blowfish, Twofish.
При использовании асимметричных шифров (шифры с открытым
ключом) на передающей и приёмной сторонах используются разные ключи
К1 и К2:
При шифровании выполняется соотношение:
EK1(M) = C,
где EK1 – функция шифрования на ключе К1.
Ключ К1 не секретный, он публикуются в доступных источниках.
При дешифровании криптограммы на приёмной стороне используется
ключ К2:
DK2(C) = M,
где DK2 – функция дешифрования на ключе K2.
Ключ К2 секретный, он известен только на приёмной стороне. Ключ
К2 функционально связан с ключом К1. Однако установить эту связь с помощью современной вычислительной техники сложно.
Весь процесс передачи шифрованного сообщения по схеме с двумя
ключами описывается соотношением:
DK2(EK1(M)) = M.
Криптостойкость рассмотренных алгоритмов базируется на секретных
ключах, а не на секретном алгоритме (способе) шифрования. Секретным
является ключ, а алгоритм шифрования (шифр), как правило подвергается
детальному публичному анализу [4].
Симметричные и асимметричные алгоритмы используются поотдельности, но разработана криптографическая система, которая сочетает
сильные стороны этих алгоритмов.
Гибридная криптосистема — это система шифрования, совмещающая достоинства симметричной и асимметричной криптосистем.
Достоинствами симметричной криптосистемы является высокая скорость шифрования и относительно кроткие ключи. Её недостаток – необходимость передачи ключей по секретному каналу связи. Асимметричная
криптосистема позволяет передавать ключи по открытому каналу связи, однако скорости шифрования и расшифрования низкие.
В гибридной криптосистеме симметричный алгоритм используется
для шифрования открытого текста, а асимметричный алгоритм - для шифрования симметричного ключа.
10
2.1. Симметричные шифры
В симметричных шифрах для зашифрования и расшифрования используется один и тот же ключ. Большинство разработанных шифров являются симметричными. Недостатком симметричных шифров является необходимость передачи ключа с помощью секретного канала (например, воспользоваться услугами курьера).
2.1.1. Классические симметричные шифры
Проблема защиты информации от несанкционированного (самовольного) доступа (НСД) заметно обострилась в связи с широким распространением локальных и особенно глобальных вычислительных сетей.
Защита информации необходима для уменьшения вероятности утечки (разглашения), модификации (умышленного искажения) или утраты
(уничтожения) информации, представляющей определённую ценность для её
владельца.
Проблема защиты информации волнует человечество с давних времён. По свидетельству Геродота, уже в V в. до н. э. использовалось преобразование, защищающее информацию от неразрешённого прочтения.
Одним из первых шифровальных приспособлений была скитала,
которая применялась во время войны Спарты против Афин (Пелопоннесская
война, 431—404 до н. э.). Скитала — это цилиндр, на который виток к витку
наматывалась узкая папирусная лента (без пробелов и нахлёстов). Затем на
этой ленте вдоль оси цилиндра (столбцами) записывался необходимый для
передачи текст. Лента сматывалась с цилиндра и отправлялась получателю.
Получатель наматывал присланную ему ленту на цилиндр такого же диаметра, как и диаметр скиталы отправителя. В результате можно было прочитать
зашифрованное сообщение.
Аристотелю принадлежит идея взлома такого шифра. Он предложил
изготовить длинный конус и наматывать на него ленту с шифрованным сообщением. На каком-то участке конуса начинали просматриваться фрагменты читаемого текста. Так определялся секретный диаметр цилиндра.
Некоторые священные иудейские рукописи шифровались методом
замены. Вместо первой буквы алфавита записывалась последняя буква, вместо
второй — предпоследняя и т. д. Этот древний шифр назывался атбаш. Известен факт шифрования переписки Юлия Цезаря (100—44 до н. э.) с Цицероном (106—43 до н. э.). Шифр Цезаря реализуется заменой каждой буквы в
сообщении другой буквой этого же алфавита, отстоящей от нее в алфавите
на фиксированное число позиций. В своих шифровках Цезарь заменял букву
исходного открытого текста буквой, отстоящей от исходной буквы впереди
на три позиции.
11
В Древней Греции (II в. до н.э.) был известен шифр, который создавался с помощью квадрата Полибия. Таблица для шифрования представляла собой квадрат с пятью столбцами и пятью строками, которые нумеровались цифрами от 1 до 5. В каждую клетку такой таблицы записывалась одна
буква. В результате каждой букве соответствовала пара цифр (номера строк
и столбцов), и шифрование сводилось к замене буквы парой цифр.
Идею квадрата Полибия проиллюстрируем таблицей с русскими
буквами. Число букв в русском алфавите отличается от числа букв в греческом алфавите, поэтому и размер таблицы выбран иным (квадрат 6  6). Заметим, что порядок расположения символов в квадрате Полибия является
секретной информацией (ключом).
1
2
3
4
5
6
1
А
Ё
Л
С
Ч
Э
2
Б
Ж
М
Т
Ш
Ю
3
В
З
Н
У
Щ
Я
4
Г
И
О
Ф
Ъ
,
5
Д
Й
П
Х
Ы
.
6
Е
К
Р
Ц
Ь
-
Зашифруем с помощью квадрата Полибия слово КРИПТОГРАФИЯ:
26 36 24 35 42 34 14 36 11 44 24 63
Из примера видно, что в шифрограмме первым указывается номер
строки, а вторым — номер столбца. В квадрате Полибия столбцы и строки
можно маркировать не только цифрами, но и буквами.
В настоящее время проблемы защиты информации изучает наука
криптология (kryрtos — тайный, logos — наука). Криптология разделяется
на два направления — криптографию и криптоанализ. Цели этих двух
направлений криптологии диаметрально противоположные.
Криптогра́фия (от др.-греч. κρυπτός — скрытый и γράφω — пишу)
— наука о методах обеспечения конфиденциальности (невозможности прочтения информации посторонним) и аутентичности (целостности и подлинности авторства, а также невозможности отказа от авторства) информации.
Сфера интересов криптоанализа противоположная — разработка и
исследование методов дешифрования (взлома) криптограммы без знания
секретного ключа.
Под шифрованием понимается такое преобразование информации,
которое делает исходный текст нечитаемым и трудно раскрываемым без знания специальной секретной информации — ключа. В результате шифрования открытый текст превращается в шифрограмму и становится нечитаемым
без использования дешифрирующего преобразования. Шифрограмма может
называться иначе: зашифрованный текст, криптограмма, шифровка или
шифротекст.
12
Под термином «ключ» понимается секретная информация, определяющая, какое преобразование из множества возможных шифрующих преобразований выполняется в данном случае над открытым текстом. При использовании скиталы ключом является диаметр цилиндра. Ключом в шифре
Полибия является размерность таблицы (матрицы) и порядок расположения
символов в таблице.
Расшифрование — обратный шифрованию процесс. При расшифровании зашифрованный текст (шифрограмма, шифровка) преобразуется в
исходный открытый текст.
Процесс получения криптоаналитиками открытого сообщения из
криптограммы без знания ключа называется дешифрованием (вскрытием или
взломом) шифра.
Существует несколько классификаций шифров.
По характеру использования ключа алгоритмы шифрования делятся
на два типа: симметричные (с одним ключом, по-другому — с секретным
ключом) и несимметричные (с двумя ключами или с открытым ключом).
Несимметричные алгоритмы шифрования и дешифрования порой называют
асимметричными.
В первом случае в шифраторе отправителя и дешифраторе получателя используется один и тот же ключ (Ключ 1, см. рис.). Шифратор образует шифрограмму, которая является функцией открытого текста. Конкретный
вид функции преобразования (шифрования) определяется секретным ключом. Дешифратор получателя сообщения выполняет обратное преобразование по отношению к преобразованию, сделанному в шифраторе. Секретный
ключ хранится в тайне и передаётся по каналу, исключающему перехват
ключа криптоаналитиком противника или коммерческого конкурента.
Рис. 2.1.1.1 Симметричный протокол шифрования
Во втором случае (при использовании асимметричного алгоритма)
получатель вначале по открытому каналу передаёт отправителю открытый
ключ (Ключ 1), с помощью которого отправитель шифрует информацию.
При получении информации получатель дешифрирует её с помощью второго
13
секретного ключа (Ключ 2). Перехват открытого ключа (Ключ 1) криптоаналитиком противника не позволяет дешифровать закрытое сообщение, так как
оно рассекречивается лишь вторым секретным ключом (Ключ 2). При этом
секретный Ключ 2 практически невозможно вычислить с помощью открытого Ключа 1.
Рис. 2.1.1.2. Асимметричный протокол шифрования
При оценке эффективности шифра обычно руководствуются правилом голландца Огюста Керкгоффса (1835—1903 г.г.), согласно которому
стойкость шифра определяется только секретностью ключа, т. е. криптоаналитику известны все детали алгоритмов шифрования и дешифрования, но
неизвестно, какой ключ использован для шифрования данного текста.
Криптостойкостью называется характеристика шифра, определяющая его устойчивость к дешифрованию без знания ключа (т. е. устойчивость
к криптоанализу). Имеется несколько показателей криптостойкости, среди
которых количество всех возможных ключей и среднее время, необходимое
для криптоанализа.
В симметричных алгоритмах используют более короткие ключи, поэтому шифрование и дешифрование происходят быстрее. Но в таких системах рассылка ключей является сложной процедурой. Передавать ключи
нужно по закрытым (секретным) каналам. Использование курьеров для рассылки секретных ключей дорогая, сложная и медленная процедура.
Можно утверждать, что на протяжении многих лет криптоанализу
помогает частотный анализ появления отдельных символов и их сочетаний.
Вероятности появления отдельных букв в осмысленном тексте сильно различаются. В русскоязычных текстах, например, буква «о» появляется в 45
раз чаще буквы «ф» и в 30 раз чаще буквы «э». Анализируя достаточно
длинный текст, зашифрованный методом замены, можно по частотам появления символов произвести обратную замену и восстановить исходный открытый текст. В таблице приведены относительные частоты появления русских букв.
14
Буква
Частота
Буква
Частота
Буква
Частота
Буква
Частота
о
е,ё
а
и
н
т
с
р
0.09
0.072
0.062
0.062
0.053
0.053
0.045
0.04
в
л
к
м
д
п
у
я
0.038
0.035
0.028
0.026
0.025
0.023
0.021
0.018
з
ы
б
ь,ъ
г
ч
й
х
0.016
0.016
0.014
0.014
0.013
0.012
0.01
0.009
ж
ш
ю
ц
щ
э
ф
0.007
0.006
0.006
0.004
0.003
0.003
0.002
Относительная частота появления пробела или знака препинания в
русском языке составляет 0,174. Приведённые цифры означают следующее:
среди 1000 букв текста в среднем будет 174 пробелов и знаков препинания,
90 букв «о», 72 буквы «е» и т. д.
При проведении криптоанализа требуется по небольшому отрезку
текста решить, что собой представляет дешифрованный текст: осмысленное
сообщение или набор случайных символов. Часто криптоаналитики вскрывают шифры на ЭВМ методом перебора ключей. Вручную выполнить анализ множества фрагментов дешифрированных текстов невозможно. Поэтому
задачу выделения осмысленного текста (т. е. обнаружение правильно дешифрированного текста) решают с помощью ЭВМ. В этом случае используют теоретические положения, разработанные в конце XIX в. петербургским
математиком А.А. Марковым, так называемые цепи Маркова.
Следует заметить, что, по мнению некоторых специалистов, нет
нераскрываемых шифров. Рассекретить (взломать) любую шифрограмму
можно либо за большое время, либо за большие деньги. Во втором случае
для дешифрования потребуется использование нескольких суперкомпьютеров, что приведёт к существенным материальным затратам. Все чаще для
взлома секретных сообщений используют распределённые ресурсы Интернета, распараллеливая вычисления и привлекая к расчётам сотни и даже тысячи ЭВМ.
Есть и другое мнение. Если длина ключа равна длине сообщения, а
ключ генерируется из случайных чисел с равновероятным распределением и
меняется с каждым новым сообщением, то шифр невозможно взломать даже
теоретически. Подобный подход впервые описал Г. Вернам в начале ХХ в.,
предложив алгоритм одноразовых шифроблокнотов. Клод Шеннон математически доказал абсолютную криптографическую стойкость этого шифра.
Рассмотрим ещё одну классификацию шифров.
Современные шифры можно разделить на четыре большие группы:
методы замены (подстановки), перестановок, аддитивные (гаммирования) и
комбинированные методы.
15
В шифре перестановок все буквы открытого текста остаются без изменений, но перемещаются с их исходных позиций на другие места (примером является шифрование с помощью скиталы).
Следующая простейшая «шифровка» получена методом перестановки двух соседних букв РКПИОТРГФАЯИ.
В этом «секретном» сообщении легко узнать слово КРИПТОГРАФИЯ.
Более сложный алгоритм перестановок сводится к разбиению сообщения на группы по три буквы. В каждой группе первую букву ставят на
третье место, а вторую и третью буквы смещают на одну позицию влево. В
результате получится криптограмма: РИКТОПРАГИЯФ.
Перестановки получаются в результате записи исходного текста и
чтения шифрованного текста по разным путям некоторой геометрической
фигуры.
В шифре замены позиции букв в шифровке остаются теми же, что и
у открытого текста, но символы открытого текста заменяются символами
другого алфавита. В качестве примера можно назвать квадрат Полибия.
Здесь буквы заменяются соответствующими цифрами.
Метод замены часто реализуется многими пользователями случайно
при работе на ЭВМ. Если по забывчивости не переключить на клавиатуре
регистр с латиницы на кириллицу, то вместо букв русского алфавита при
вводе текста будут печататься буквы латинского алфавита. В результате исходное сообщение будет «зашифровано» латинскими буквами. Например,
rhbgnjuhfabz - так трансформируется слово «криптография».
В аддитивном методе буквы алфавита вначале заменяются числами,
к которым затем добавляются числа секретной псевдослучайной числовой
последовательности (гаммы). Состав гаммы меняется в зависимости от использованного ключа. Обычно для шифрования используется логическая
операция «Исключающее ИЛИ». При дешифровании та же гамма накладывается на зашифрованные данные. Метод гаммирования широко используется в военных криптографических системах. Шифры, получаемые аддитивным методом, порой называют поточными шифрами.
Комбинированные методы предполагают использование для шифрования сообщения сразу нескольких методов (скажем, сначала замена символов, а затем их перестановка).
Например, используя расположение символов на стандартной клавиатуре, зашифруем слов КРИПТОГРАФИЯ методом замены:
RHBGNJUHFABZ
Затем поменяем местами каждые пары букв:
HRGBJNHUAFZB
Рассмотрим, как зашифровать сообщение методом замены (другими
словами методом подстановки). Вначале используем шифр Цезаря. Предположим, что требуется зашифровать сообщение «ГДЕ АББА».
16
Как известно, циклический шифр Цезаря получается заменой каждой
буквы открытого текста буквами этого же алфавита, расположенными впереди через определённое число позиций, например, через три позиции. Циклическим он называется потому, что при выполнении замены вслед за последней буквой алфавита вновь следует первая буква алфавита. Запишем фрагменты русского алфавита и покажем, как выполняется шифрование (порядок
замены):
АБВГДЕЁЖЗИК
АБВГДЕЁЖЗИК
В результате проведённого преобразования получится шифрограмма:
ЁЖЗ ГДДГ.
В данном случае ключом является величина сдвига (число позиций
между буквами). Число ключей этого шифра невелико (оно равно числу букв
алфавита). Не представляет труда вскрыть такую шифрограмму перебором
всех возможных ключей. Недостатком шифра Цезаря является невысокая
криптостойкость. Объясняется это тем, что в зашифрованном тексте буквы
по-прежнему располагаются в алфавитном порядке, лишь начало отсчёта
смещено на несколько позиций.
Замена может осуществляться на символы другого алфавита и с более
сложным ключом (алгоритмом замены). Для простоты опять приведём лишь
начальные части алфавитов. Линии показывают порядок замены букв русского алфавита на буквы латинского алфавита. Зашифруем фразу «ГДЕ АББА»:
В результате такого шифрования получится криптограмма:
CDB EFFE.
Рациональнее использованный в последнем случае ключ записать в
виде таблицы:
17
А
Б
В
Г
Д
Е
E
F
A
C
D
B
При шифровании буквы могут быть заменены числами (в простейшем
случае порядковыми номерами букв в алфавите). Тогда наша шифровка будет выглядеть так:
4—5—6—1—2—2—1.
Замена символов открытого текста может происходить на специальные символы, например, на «пляшущих человечков», как в рассказе К. Дойла
или с помощью флажков, как это делается моряками.
Более высокую криптостойкость по сравнению с шифром Цезаря
имеют аффинные криптосистемы.
В аффинных криптосистемах, за счёт математических преобразований, буквы, заменяющие открытый текст, хаотично перемешаны. В аффинных криптосистемах буквы открытого текста нумеруются числами, например, для кириллицы от 0 до 32. Затем каждая буква открытого текста заменяется буквой, порядковый номер которой вычисляется с помощью линейного уравнения и вычисления остатка от целочисленного деления.
Аффинные криптосистемы задаются при помощи двух чисел a и b.
Для русского алфавита эти числа выбираются из условия a ≥ 0, b ≤ 32. Максимальное число символов в используемом алфавите обозначаются символом . Причём числа a и  = 33 должны быть взаимно простыми. Если это
условие не будет выполняться, то две разные буквы могут отображаться
(превращаться) в одну. Каждый код буквы открытого текста  заменяется
кодом буквы криптограммы по следующему правилу. Вначале вычисляется
число  = a + b, а затем выполняется операция целочисленного деления
числа  на число  = 33, то есть  = (mod ()). В качестве кода символа
шифрограммы используется остаток от целочисленного деления .
Для определённости выберем такие числа: a = 5 и b =3.
Фрагмент процедуры, иллюстрирующей порядок шифрования, приведён в таблице.
Буква открытого текста
Код буквы открытого текста 
Код буквы шифрограммы 
Буква шифрограммы
А
0
3
Г
Б
1
8
З
В
2
13
М
Г
3
18
С
Д
4
23
Ц
Е
5
28
Ы
…
…
…
…
Я
32
31
Ю
Предположим, что нужно зашифровать сообщение «ГДЕ АББА». В
результате получим:
Открытый текст
Г
Д
Е
А
Б
Б
А
Шифрограмма
С
Ц
Ы
Г
З
З
Г
18
В ранее рассмотренных нами шифрах каждой букве открытого текста
соответствовала одна определённая буква криптограммы. Подобные шифры
называются шифрами одноалфавитной замены.
Длинные сообщения, полученные методом одноалфавитной замены
(другое название — шифр простой однобуквенной замены), раскрываются
с помощью таблиц относительных частот. Для этого подсчитывается частота
появления каждого символа, делится на общее число символов в шифрограмме. Затем с помощью таблицы относительных частот определяется, какая была сделана замена при шифровании.
В следующей таблице приведены результаты шифрования фразы
«ГДЕ АББА» разными одноалфавитными шифрами.
Шифр
Шифр атбаш
Шифр Цезаря
Квадрат Полибия
Аффинные криптоситстемы
Криптограмма
ЬЫЪ ЯЮЮЯ
ЁЖЗ ГДДГ
14 15 16 11 12 12 11
СЦЫ ГЗЗГ
Анализ последней таблицы показывает, что одинаковые буквы открытого текста заменяются одинаковыми символами в криптограмме. Нужно
обратить особое внимание на четыре последних символа криптограмм. Четвёртый и седьмой символы во всех криптограммах одинаковые. Одинаковыми являются пятый и шестой символы криптограмм. Эта же закономерность
наблюдается в открытом тексте.
Этот недостаток одноалфавитных шифров замены позволяет взломать шифрограммы большой длины без знания секретного ключа.
Повысить криптостойкость позволяют шифры многоалфавитной замены (или шифры многозначной замены). При этом каждому символу открытого алфавита ставят в соответствие не один, а несколько символов шифровки.
Ниже приведён фрагмент ключа многоалфавитной замены:
А
18
12
48
Б
7
4
14
В
5
90
22
Г
19
35
10
Д
21
83
99
Е
2
15
32
С помощью многоалфавитного шифра сообщение «ГДЕ АББА» можно
зашифровать несколькими способами:
19—83—32—48—4—7—12,
10—99—15—12—4—14—12 и т. д.
Для каждой буквы исходного алфавита создаётся некоторое множество символов шифрограммы так, что множества каждой буквы не содержат
19
одинаковых элементов. Многоалфавитные шифры изменяют картину статистических частот появления букв и этим затрудняют вскрытие шифра без
знания ключа.
Рассмотрим ещё один шифр многоалфавитной замены, который был
описан в 1585 г. французским дипломатом Блезом де Виженером. Шифрование производится с помощью так называемой таблицы Виженера. Здесь,
как и прежде, показана лишь часть таблицы для того, чтобы изложить лишь
идею метода.
Каждая строка в этой таблице соответствует одному шифру простой замены (типа шифра Цезаря). При шифровании открытое сообщение записывают в строчку, а под ним помещают ключ. Если ключ оказывается короче сообщения, то ключ циклически повторяют. Шифровку получают, находя символ в матрице букв шифрограммы. Символ шифрограммы находится на пересечении столбца с буквой открытого текста и строки с соответствующей буквой ключа.
Фрагмент таблицы Виженера
Строка букв
…
А
Б
В
Г
Д
Е
открытого
А
Б
В
Г
Д
Е
…
А
текста
Я
А
Б
В
Г
Д
…
Б
В
Г
Д
Е
…
Ю
Э
Ь
Ы
…
Я
Ю
Э
Ь
…
А
Я
Ю
Э
…
Б
А
Я
Ю
…
В
Б
А
Я
…
Г
В
Б
А
…
…
…
…
…
…
Матрица
букв
шифрограмм
Столбец ключа
Предположим, что нужно зашифровать сообщение «ГДЕ АББА».
В качестве ключа выберем слово «ДЕВА». В результате получим:
Сообщение
Ключ
Шифровка
Г
Д
Я
Д
Е
Я
Е
В
Г
А
А
А
Б
Д
Э
Б
Е
Ь
А
В
Ю
В результате преобразований получится шифровка
ЯЯГ АЭЬЮ.
Криптографическая система Плейфера создаёт многоалфавитные
шифры. Рассмотрим основную идею этой системы.
Шифрование производится с помощью квадрата (или прямоугольника), в который занесены буквы соответствующего национального алфавита.
Буквы записываются в квадрат или прямоугольник в произвольном порядке.
Этот порядок записи букв, и конфигурация таблицы являются секретным
ключом. Для определённости возьмём прямоугольную таблицу размером
20
8x4, в качестве букв алфавита – кириллицу, а буквы расположим в алфавитном порядке. Так как число русских букв 33, а число клеток – 32, исключим
из таблицы букву Ё.
Предположим, что требуется зашифровать слово КРИПТОГРАФИЯ.
Рассмотрим правила шифрования.
1. Открытый текст делится на блоки по две буквы (по два символа),
причём буквы в одном блоке не должны быть одинаковыми. Произведём
разделение исходного слова на блоки по две буквы КР-ИП-ТО-ГР-АФ-ИЯ.
2. Если буквы шифруемого блока находятся в разных строках и
столбцах таблицы, то в качестве заменяющих букв используются буквы таблицы, расположенные в углах прямоугольника, охватывающего буквы открытого текста. При формировании криптограммы первой берётся буква,
которая расположена в одном столбце со второй буквой блока открытого
текста.
Например, блок КР шифруется символами ИТ.
3. Если буквы открытого текста попадают в одну строку, то криптограмма формируется путём циклического сдвига вправо на одну клетку.
Например, блок ИП будет преобразован в символы ЙИ. Ещё один пример к
этому правилу. Если, предположим, требуется преобразовать блок КН, то
получится ЛО.
4. Если обе буквы открытого текста попадают в один столбец, то для
шифрования осуществляют циклический сдвиг на одну клетку вниз.
Блок открытого текста ЖЦ будет преобразован в символы ОЮ, а блок
ТЪ - в символы ЪВ.
5. Если открытый текст содержит нечётное число символов, то к открытому тексту добавляется незначащий символ (например, знаки препинания или пробел).
6. Если в открытом тексте есть блоки с одинаковыми символами, то
эти два символа разделяют знаками препинания или пробелом.
В соответствии с описанными правилами слово КРИПТОГРАФИЯ
будет преобразовано в криптограмму ИТЙИЦКАУДРПШ.
Заметим, что если блоки открытого текста состоят из одинаковых
букв, то криптограмма тоже будет содержать одинаковые пары символов. По
этой причине рассмотренный шифр относится к одноалфавитным. Однако
модификация этого шифра превращает его в многоалфавитную систему. Для
этого используется несколько таблиц Плейфера и производится многократное шифрование.
Здесь уместно рассмотреть криптографическую систему Хилла, в которой шифрование осуществляется с использованием математических преобразований: вычислений с помощью приёмов линейной алгебры.
Данный шифр для отдельно взятой буквы можно считать многоалфавитным. Однако пары букв шифруются везде одинаково. Поэтому в широ-
21
ком смысле понятия криптографическую систему Хилла следует отнести к
одноалфавитным шифрам.
Первоначально открытый текст методом замены следует преобразовать в совокупность чисел. Предположим, что шифруется текст, написанный
с использованием 26-ти латинских букв. Выберем следующий алгоритм замены букв на числа: латинские буквы A, B, C, D, …, Z будем заменять соответственно числами 1, 2, 3, 4,…, 26. Другими словами: пронумеруем буквы в
порядке их расположения в алфавите, и при замене будем использовать их
порядковые номера. В данном случае выбран такой алгоритм замены, но
понятно, что он может быть любым.
Предположим, что нужно зашифровать немецкое слово ZEIT. Заменим буквы в соответствии с их порядковыми номерами в алфавите четырьмя
числами: 26 – 5 – 9 – 20.
Далее следует выбрать некоторое число d ≥ 2. Это число показывает,
порядок разбиения открытого текста на группы символов (определяет,
сколько букв будет в каждой группе). С математической точки зрения число
d показывает, сколько строк должно быть в векторах-столбцах. Примем d =
2. Это означает, что числа 26 – 5 – 9 – 20 нужно разбить на группы по два
числа в каждой группе и записать их в виде векторов-столбцов:
P1
26
5
P2
9
20
Далее следует записать матрицу исходного текста:
M
26 9
5 20
Шифрование выполняется путём вычисления следующих выражений:
С1 = MP1 и C2 = MP2
В результате расчётов получится:
C1 
721
230
C2 
414
445
Окончательный результат шифрования получается путём целочисленного деления элементов векторов-столбцов С1 и С2 по модулю 26 (нахождение остатка от целочисленного деления).
22
C11
C21
mod C10  26
mod C11  26
mod C20  26
mod C21  26
C11 
19
22
C21 
24
3
В результате шифрования по каналу связи будет оправлена последовательность чисел: 19 – 22 – 24 – 3. Для ранее выбранного ключа замены это
будет соответствовать шифрограмме SVXC. Данный пример иллюстрирует
тот факт, что системы шифрования часто базируются на математических
преобразованиях.
Рассмотрим примеры шифрования сообщения методом перестановок.
Идея этого метода криптографии заключается в том, что запись открытого текста и последующее считывание шифровки производится по разным путям некоторой геометрической фигуры (например, квадрата).
Для пояснения идеи возьмём квадратную таблицу (матрицу) 8  8. Будем записывать открытый текст в эту матрицу последовательно по строкам
сверху вниз, а считывать криптограмму по столбцам последовательно слева
направо.
Предположим, что требуется зашифровать сообщение:
НА ПЕРВОМ КУРСЕ ТЯЖЕЛО УЧИТЬСЯ ТОЛЬКО ПЕРВЫЕ ЧЕТЫРЕ ГОДА ДЕКАНАТ.
Н А _ П Е Р В О
М _ К У Р С Е _
Т Я Ж Е Л О _ У
Ч И Т Ь С Я _ Т
О Л Ь К О _ П Е
Р В Ы Е _ Ч Е Т
Ы Р Е _ Г О Д А
_ Д Е К А Н А Т
В таблице символом «_» обозначен пробел.
В результате преобразований получится шифровка:
НМТЧОРЫ_А_ЯИЛВРД_КЖТЬЫЕЕПУЕЬКЕ_КЕРЛСО_ГАРСОЯ_ЧОНВЕ__ПЕДАО_УТЕТАТ
Как видно из примера, шифровка и открытый текст содержат одинаковые символы, но они располагаются на разных местах.
Ключом в данном случае является размер матрицы, порядок записи
открытого текста в матрицу и порядок считывания шифрограммы. Естественно, что ключ может быть другим. Например, запись открытого текста
23
по строкам может производиться в таком порядке: 48127653, а считывание
криптограммы может происходить по столбцам в следующем порядке:
81357642.
Будем называть порядок записи в строки матрицы ключом записи, а
порядок считывания шифрограммы по столбцам – ключом считывания.
Тогда правило дешифрирования криптограммы, полученной методом
перестановок, можно в общем виде записать так.
Чтобы дешифровать криптограмму, полученную с помощью матрицы
n x n, нужно криптограмму разбить на группы символов по n символов в
каждой группе. Крайнюю левую группу записать сверху - вниз в столбец,
номер которого совпадает с первой цифрой ключа считывания. Вторую
группу символов записать в столбец, номер которого совпадает со второй
цифрой ключа считывания и т.д. Открытый текст считывать из матрицы по
строкам в соответствии с цифрами ключа записи.
Рассмотрим пример дешифрации криптограммы, полученной методом
перестановок. Известно, что при шифровании использованы матрица 6х6,
ключ записи 352146 и ключ считывания 425316. Текст шифрограммы таков:
ДКАГЧЬОВА_РУААКОЕБЗЕРЕ_ДСОХТЕСЕ_Т_ЛУ
Разобьём шифрограмму на группы по 6 символов:
ДКАГЧЬ ОВА_РУ ААКОЕБ ЗЕРЕ_Д СОХТЕС Е_Т_ЛУ
Рис. 2.1.1.3. Схема расшифрования криптограммы
Затем первую группу символов запишем в столбец 4 матрицы 6x6, так
как первая цифра ключа считывания – 4 (см. рис. 2.1.1.3 а). Вторую группу
24
из 6 символов запишем в столбец 2 (см. рис. 2.1.1.3 б), третью группу символов – в столбец 5 (см. рис. 2.1.1.3 в), пропустив две фазы заполнения матрицы, изобразим полностью заполненную матрицу (см. рис. 2.1.1.3 г).
Считывание открытого текста в соответствии с ключом записи начинаем со строки 3, затем используем строку 5 и т.д. В результате дешифрования получаем открытый текст:
ХАРАКТЕР ЧЕЛОВЕКА СОЗДАЕТ ЕГО СУДЬБУ
Естественно, что описанная процедура дешифрования криптограммы
производится компьютером автоматически с помощью заранее разработанных программ.
Для повышения криптостойкости методы замены и перестановки нередко используют в сочетании с аддитивным методом.
При шифровании аддитивным методом вначале открытый текст
шифруют методом замены, преобразуя каждую букву в число. Затем к каждому числу прибавляют секретную гамму (псевдослучайную числовую последовательность). Технически добавление гаммы к открытому тексту в
криптографических системах осуществляется поразрядно (поточный шифр).
Процедуру добавления гаммы удобно реализовать с помощью двоичных чисел. При этом на каждый бит открытого текста накладывается бит секретной
гаммы.
Генератор гаммы выдаёт последовательность битов: 1, 2, 3,…, n.
Этот поток битов и поток битов открытого текста p1, p2, p3,…, pn подвергаются поразрядно логической операции Исключающее ИЛИ (суммирование по
модулю два). В результате получается поток битов криптограммы:
ci = pi  i.
При дешифровании на приёмной стороне операция Исключающее
ИЛИ выполняется над битами криптограммы и тем же самым потоком гаммы:
pi = ci  i .
Благодаря особенностям логической операции Исключающее ИЛИ на
приёмной стороне операция вычитания заменяется данной логической операцией. Сказанное иллюстрируется примером.
Предположим, что открытый текст Р = 10011001, а гамма G =
11001110. В результате шифрования криптограмма С будет иметь следующий вид:
Р
G
C
1
0
0
1
1
0
1
1
0
0
1
1
0
1
0
1
0
1
На приёмной стороне повторно выполняется логическая
ключающее ИЛИ:
0
1
1
0
1
1
операция Ис-
25
C
G
Р
0
1
1
1
1
0
0
0
0
1
0
1
0
1
1
1
1
0
1
1
0
1
0
1
Из этих таблиц видно, что переданный и принятый байты одинаковые.
В ЭВМ преобразование открытого текста в числа происходит естественным путём, так как каждый символ кодируется двоичным числом. Вид
этого преобразования зависит от используемой операционной системы. Для
определённости будем считать, что сообщение в ЭВМ кодируется с помощью кодовой таблицы CP-1251. Итак, будем считать, что секретная гамма
добавляется к открытому тексту по правилу сложения по модулю два без
переносов в старшие разряды (логическая операция Исключающее ИЛИ).
Результаты всех преобразований поместим в таблицу.
Открытый текст
Г
Д
Е
А
Б
Б
А
Десятичное число
195
196
197
192
193
193
192
11000011 11000100 11000101 11000000 11000001 11000001 11000000
Двоичное число
Гамма (десятич.)
32
18
36
11
61
23
3
00100000 00010010 00100100 00001011 00111101 00010111 00000011
Гамма (двоич.)
Криптогр. (двоич.) 11100011 11010110 11100001 11001011 11111100 11010110 11000011
Криптогр. (десят.)
227
214
225
203
252
214
195
Криптограмма
г
Ц
б
Л
ь
Ц
Г
Для наглядности результат шифрования (шифрограмма) переведён с
помощью таблицы CP-1251 в буквы. Из таблицы видно, что открытый текст
был записан прописными буквами, а криптограмма содержит как прописные,
так и строчные буквы. Естественно, что при реальном (а не учебном) шифровании набор символов в шифрограмме будет ещё богаче. Кроме русских букв
будут присутствовать латинские буквы, знаки препинания, управляющие
символы.
26
2.1.2. Шифрование с помощью графических матриц
Основная идея защиты информации с помощью графических матриц
заключается в следующем.
Для шифрования передаваемой информации буквы (точнее, символы) представляют в виде графических матриц, состоящих из белых и черных
точек. При шифровании точки в графических матрицах переставляются или
заменяются другими в соответствии с выбранным ключом. Зашифрованная
путем перестановки и замены пикселей информация дробится на биты, которые распыляются по множеству контейнеров [5].
Одним из возможных применений этого шифра является скрытная передача информации с помощью сайта, содержащего большое число фотографий (или аудио файлов, Web-страниц). При этом противник не знает, какие
фотографии являются контейнерами и в какой последовательности передаваемая информация распылена по контейнерам.
Для формирования практически равновероятной смеси битовых последовательностей изображения символов формируются из одинакового
числа белых и черных пикселей. Это позволяет формировать на выходе
шифратора последовательность двоичных сигналов с равномерным распределением.
Значительно усложняет стегоанализ распыление имеющейся битовой
последовательности по нескольким контейнерам. Причём распыление происходит не детерминировано, а по случайному закону в соответствии с секретным ключом.
Необходимо отметить следующий момент, касающийся криптоанализа. Многие методы криптоанализа основаны на создании и использовании
модели открытого текста (учёт повторения отдельных символов, создание
таблиц частот встречающихся отдельных символов, биграмм, триграмм…).
Автоматический криптоанализ предполагает использование цепей Маркова.
В результате автомат, а не человек определяет: получен открытый текст или
он нечитаемый (бессмысленный набор символов).
Однако модель открытого текста трудно применить для взлома сообщения, зашифрованного с помощью рассматриваемого шифра. Здесь символы представлены с помощью графических матриц и для силового взлома
криптограммы следует использовать автомат распознавания образов. Задача
становится принципиально неразрешимой, когда вместо традиционных символов используются графические матрицы с равновероятным распылением
белых и черных точек.
Наибольшая степень защиты достигается в том случае, когда вместо
символов даже, слегка напоминающих символы открытого текста, используется пёстрая, псевдослучайная мозаика. Автомат не будет знать, что искать.
Лишь при утечке сведений о таблице замен, которая связывает символы от-
27
крытого текста и секретные псевдослучайные графические матрицы, появляется возможность произвести автоматический криптоанализ.
Однако для полного криптоанализа потребуется преодолеть еще несколько уровней защиты информации. Первый уровень – это традиционная
криптографическая защита (сообщение должно быть предварительно зашифровано одним из криптостойких способов). Второй уровень – нужно определить размер графической матрицы, порядок расположения информативных,
маскирующих, пограничных пикселей. Затем нужно определить, какой вид
преобразования матрицы осуществлён в данном случае (сдвиг влево – вправо, вверх – вниз, перестановка столбцов, строк…), и каковы количественные
характеристики этого преобразования. Третий уровень защиты состоит в решении комбинационной задачи по собиранию битов из пространственно
распределённых контейнеров. При этом неизвестно, какие контейнеры содержат информацию и в какой последовательности распылены биты.
Рассмотрим примеры формирования изображения различных символов с помощью графических матриц (см. рис.2.1.2.1).
Рис.2.1.2.1. Четыре графические матрицы
с изображением букв «Ч», «П», «Р» и «С».
В данном случае выбрана матрица 8 х 8.
28
Следующая матрица имеет большее число пикселей: 10 x 10 (см.
рис.2.1.2.2).
Рис. 2.1.2.2. Четыре графические матрицы
с изображением букв «Щ», «Б», «Г» и «Ж»
Анализ приведённых изображений показывает, что для формирования
разных символов требуется разное число информативных пикселей. Буква
«Щ» содержит 29 черных точек, буква «Б» - 23, буква «Г» - 12, буква «Ж» 24. Понятно, что такое заметное количественное различие графических матриц даёт некоторую зацепку для криптоаналатиков. Например, они могут
попытаться восстановить передаваемые символы путем подсчета числа чёрных пикселей в каждой графической матрице.
Улучшить ситуацию можно за счёт формирования рамки вокруг изображения символов (рис.2.1.2.3). При этом общее число черных точек во всех
графических матрицах должно быть одинаковым.
29
Рис. 2.1.2.3. Изображение символов с нанесёнными рамками
В случае необходимости кроме рамки вводят маскирующие точки.
Благодаря такому дополнению число черных и белых пикселей (или единиц
и нулей) во всех матрицах делают одинаковыми. Равенство белых и черных
пикселей приводит к возникновению наибольшего хаоса (наибольшей энтропии).
Понятно, что полученные выше изображения символов все ещё легко
узнаваемы (распознаваемы). По этой причине сформированные графические
матрицы с изображением символов необходимо трансформировать путём
перемешивания пикселей. Перемешивание пикселей можно реализовать
большим числом различных способов. Например, можно менять местами
группы пикселей, расположенных в одной строке. Для этого все пиксели
разбивают на группы по одному (два, три, четыре...) пикселя и соседние
группы меняют местами. Такой же обмен можно произвести по столбцам.
30
Естественно, что менять местами можно не только соседние группы, но и
выбрать более сложный алгоритм.
Перемешивание можно осуществить перестановкой строк и столбцов.
Эффективным средством перемешивания пикселей являются циклические
сдвиги (например, влево для строк и вниз для столбцов).
Мощным инструментом изменения вида графической матрицы является генерация псевдослучайных целых чисел в диапазоне от 1 до n x m.
Здесь n – число строк в матрице, а m – число столбцов. Случайные числа используются для определения порядка перемещения пикселей из исходной
матрицы в перемешанную матрицу.
Изменить вид матрицы (трансформировать, преобразовать её) можно
не только методами перестановки пикселей, но и методами замены. Для этого достаточно выполнить операцию Исключающее ИЛИ, взяв некоторую
псевдослучайную последовательность чисел (гамму). Образно эту процедуру
можно представить, как наложение маскирующей матрицы на матрицу передаваемого символа.
Метод замены пикселей в графической матрице можно реализовать с
помощью схемы Фейстеля.
На следующем рисунке (рис. 2.1.2.4) показан пример перестановки
столбцов в графической матрице. Для упрощения картинки показаны заполненными только четыре столбца. Перестановка столбцов в исходной матрице
(изображена сверху) происходит по ключу: 3-4-1-2… В результате получается «перемешанная» матрица (показана снизу).
31
Рис. 2.1.2.4. Пример перестановки столбцов
Рисунок 2.1.2.5 иллюстрирует процедуру перестановок строк по ключу: 3-1-4-2…Исходная графическая матрица показана слева, а “перемешанная” графическая матрица – справа.
32
Рис. 2.1.2.5. Пример перестановки строк
Ещё один рисунок (рис. 2.1.2.6) иллюстрирует процесс перемешивания точек (пикселей) с помощью операции циклического сдвига влево. Можно использовать и циклический сдвиг вправо, но принципиальных отличий
этих двух видов сдвига нет. Слово «циклический» означает, что крайние
столбцы 1 и 12 являются, как бы соседними (смежными).
Рис. 2.1.2.6. Примеры циклического сдвига влево
Операцию сдвига технически удобно реализовать с помощью сдвиговых регистров. При этом каждая ячейка матрицы соответствует отдельному
триггеру. Повысить быстродействие устройств для реализации операций
сдвига можно с помощью переключаемых сетей [ 6 ].
Результат циклического сдвига можно наглядно увидеть в строке 3.
Исходная графическая матрица изображена слева. Результат перемешивание
33
показан в матрице справа. Содержимое строки 3 сдвинуто циклически влево
на 4 позиции.
Более простой вид циклического сдвига показан в строке 10. Здесь содержимое сдвинуто на две позиции влево. В этом случае не было перехода от
первого столбца к двенадцатому, поэтому можно сказать: осуществлён сдвиг
влево (слово «циклический» в этом случае можно опустить).
Рассмотрим, как осуществляется циклический сдвиг содержимого
столбцов вниз. Так же, как и при сдвиге строк можно осуществлять сдвиг
содержимого столбцов только вверх. Принципиального отличия нет. Для
всех видов сдвига (влево – вправо и вверх – вниз) криптоскойкость будет
зависеть только от величины сдвига. Другими словами, изменяя значение
ключа, можно перейти от сдвига влево к сдвигу вправо и от сдвига вниз к
сдвигу вверх. Перечисленные пары сдвигов являются взаимозаменяемыми.
Конечно, правильнее говорить: «циклический сдвиг содержимого
столбцов». Однако, иногда будем говорить короче: «циклический сдвиг
столбцов».
Исходная графическая матрица показана слева, а перемешанная матрица – справа (рис. 2.1.2.7). Содержимое столбцов 2 и 9 сдвинуто циклически
вниз на 2 позиции.
Рис. 2.1.2.7. Пример циклического сдвига вниз
Рассмотрим ещё один способ перемешивания (перестановок) пикселей
в графической матрице (рис. 2.1.2.8).
34
Рис. 2.1.2.8. Пример нумерации ячеек матриц
Пронумеруем последовательно все ячейки графической матрицы слева
– направо и сверху – вниз (традиционная траектория письма для европейской
письменности). Для упрощения изложения идеи заполним числами только
четыре строки. Ячейки второй графической матрицы пронумеруем с помощью псевдослучайных чисел (для ещё большего упрощения изложения идеи
пронумеруем только две строки правой матрицы).
Будем переносить содержимое левой матрицы в правую матрицу в
следующем порядке. В ячейку 1-1 (первой указывается номер строки, а второй номер столбца) правой матрицы занесём содержимое ячейки 3-8 левой
матрицы (эта ячейка отмечена числом 32). В ячейку 1-2 правой матрицы поместим содержимое ячейки 2-12 левой матрицы и т.д.
Возьмём конкретную матрицу и выполним указанные перестановки
(32-24-7-15-35…). Результат показан на следующем рисунке (рис. 2.1. 2.9).
Рис. 2.1.2.9. Пример перестановки пикселей
35
Итак, перестановки в графической матрице осуществлены в соответствии со следующим фрагментом ключа:
Необходимо ещё раз обратить внимание на то, что здесь рассмотрен
лишь упрощённый вариант перестановок. Фактически ключ должен содержать в данном случае 144 натуральных числа, расположенных в псевдослучайном порядке (сгенерированных генератором случайных чисел).
Рассмотрим порядок перемешивания пикселей путём перестановки
соседних групп пикселей. Для примера возьмём две графические матрицы
8х8 (рис. 2.1.2.10).
Рис. 2.1.2.10. Две графические матрицы
Образуем группы пикселей, объединив попарно соседние столбцы
(рис. 2.1.2.11).
Рис. 2.1.2.11. Порядок образования групп
36
Выполним перестановки соседних групп. Перемещения будем вести
построчно. Пиксель 1-1 перейдёт в ячейку 1-3, пиксель 1-2 в ячейку 1-4. Содержимое ячеек 1-3 и 1-4 перейдёт соответственно в ячейки 1-1 и 1-2. В результате перестановок всех групп матрица будет иметь следующий вид (рис.
2.1.2.12):
Рис. 2.1.2.12. Пример перестановок групп по строкам
Затем, объединив попарно строки, выполним перестановку групп пикселей в столбцах (рис.1.3.13).
Рис. 2.1.2.13. Пример перестановок групп по столбцам
Рассмотрим пример перемешивания пикселей для графической матрицы с изображением русской буквы «Э». Перемешивание осуществим с помощью операций циклического сдвига и перестановок строк и столбцов (рис.
2.1.2.14).
37
Рис. 2.1.2.14. Формирование графической матрицы для символа «Э»
Вокруг изображения выбранного символа, состоящего из w = 16 пикселей, разместим рамку, состоящую из r = 46 (двойная штрихпунктирная
рамка). Кроме того, нанесём q = 10 маскирующих точек. Общее число черных точек (пикселей) равно 72, то есть равно половине всех пикселей графической матрицы.
На следующем этапе шифрования информации необходимо перемешать пиксели в графической матрице.
В матрице, изображённой слева (рис. 2.1.2.15), произведена перестановка пикселей с помощью циклического сдвига строк влево в соответствии
со следующим ключом:
3-4-7-5-5-3-6-11-2-5-4-6
Рис2.1.2.15. Перемешивание пикселей с помощью операций
циклического сдвига влево и вниз
38
Ключ состоит из двенадцати чисел, которые определяют величину
сдвига в каждой строке. Числа могут изменяться в диапазоне от 0 до 11.
Приведённые числа в ключе нужно понимать так: содержимое первой
строки циклически сдвигается влево на 3 позиции, содержимое второй строки циклически сдвигается влево на 4 позиции, содержимое третьей строки
циклически сдвигается влево на 7 позиций и т.д.
Затем матрица претерпевает дальнейшее преобразование (рис.
2.1.2.15). Пиксели переставляются путём циклического сдвига столбцов вниз
в соответствии с ключом:
2-5-1-4-4-6-10-3-4-5-5
Эти числа следует понимать так: содержимое первого столбца циклически смещается на 2 позиции вниз, содержимое второго столбца циклически
смещается на 5 позиций вниз и т.д.
Дальнейшее перемешивание пикселей происходит путём перестановки столбцов в соответствии с ключом (рис. 2.1.2.16):
5-8-2-10-3-1-12-9-4-6-7-11
Этот ключ обязательно содержит все числа от 1 до 12 включительно и
определяет порядок перестановки столбцов.
Рис. 2.1.2.16. Перемешивание пикселей с помощью
операций перестановки строк и столбцов
Так содержимое столбца 5 исходной матрицы переписывается в новую
матрицу в ячейки первого столбца. Столбец 8 переносится на место столбца
2, столбец 2 исходной матрицы записывается в третий столбец новой матрицы и т.д. Программная реализация перестановок осуществляется с помощью
математических матриц.
Последняя операция перемешивания пикселей в рассматриваемом
примере – это перестановка строк в соответствии с ключом (рис. 2.1.2.16):
39
9-3-5-7-2-1-11-12-10-4-6-8
Приведённые числа нужно понимать так: в новой матрице в первый
столбец записывается содержимое столбца 9 исходной матрицы, во второй
столбец переносится содержимое столбца 3 и т.д.
Рассмотрим, как можно трансформировать исходную графическую
матрицу методом замены (методом гаммирования). Преобразование матриц
осуществим путём суммирования по правилу Исключающее ИЛИ содержимого строк и двоичной гаммы.
Выберем следующий алгоритм преобразований: нечётные строки будем поразрядно (побитно) суммировать с числом 10100110, а чётные строки
суммировать с двоичным числом 00011011. Другими словами, гамма состоит
из шестнадцати двоичных чисел, которые периодически (четырежды) повторяются.
Результат преобразования матриц показан под изображением символов (рис. 2.1.2.17).
Рис. 2.1.2.17. Преобразование матриц методом гаммирования
Справа показаны две матрицы, которые являются разностями между
изображениями исходных матриц и изображениями преобразованных матриц. Как видно из рисунков, разностные матрицы одинаковы. Это может
дать зацепку для криптоаналитиков. Разработан метод криптоанализа для
случаев повторного использования одной той же гаммы, либо для случая,
когда период гаммы мал.
40
Легко заметить, что в первой и восьмой строках преобразованных
матриц присутствует в чистом виде секретная гамма.
Приведённый пример показывает, что преобразование графической
матрицы можно осуществлять методом гаммирования. Однако следует строго выполнять рекомендации теории: период гаммы должен быть достаточно
большой и распределение единиц и нулей должно быть равномерным (равновероятным).
Наглядным примером влияния качества гаммы на криптостойкость
являются следующие факты. Если гамма состоит из одних нулей, то исходная матрица не изменяется. Если гамма состоит только из единиц, то получается негатив (на рис. 2.1.2.18 показан негатив буквы «Ч».) Поэтому всякое
отклонение от равновероятного распределения единиц и нулей гаммы увеличивает шансы криптоаналитиков на взлом шифра.
Рис. 2.1.2.18. Негатив изображения буквы «Ч»
Описанные преобразования графических матриц удобно комментировать, используя математические понятия: матрица, вектор-строка, векторстолбец. С помощью матрицы МЕ представим букву «Е». С помощью матрицы MRamka сформируем изображение рамки, которое обрамляет изображение символа. Следующий пример реализован с помощью математической
системы Mathcad.
41
Графическое представление матриц с изображением буквы «Е» и рамки дано на следующих рисунках (2.1.2.19).
42
Рис. 2.1.2.19. Графическое представление матриц
с изображением буквы «Е» и рамки
Просуммируем матрицы ME и MRamka. Изображение символа с рамкой по периметру показано на следующих двух рисунках (рис2.1.2.20).
Рис. 2.1.2.20. Изображение символа «Е» с рамкой
Рисунок слева (рис. 2.1.2.20) показывает трёхмерное изображение
символа с нанесённой рамкой. На рисунке справа верхний слой отображает
единичные элементы матрицы, а нижний слой – нулевые элементы.
Осуществим перестановку вектор - столбцов матрицы MER в соответствии с ключом:
43
5-3-7-6-8-2-1-4.
В матрице Col осуществлена перестановка столбцов в соответствии с
указанным ключом.
На рисунках (рис.1.3.21) показаны исходная матрица MER и перемешанная матрица Col.
Рис. 2.1.2.21. Исходная матрица MER и перемешанная матрица Col
44
Для перестановки строк сначала выполним транспонирование матрицы Col (таковы особенности математической системы Mathcad).
Теперь произведём перестановку строк в соответствии с ключом:
2-4-1-8-5-7-6-3.
Выполним обратное транспонирование матрицы.
В матрице Row по отношению к исходной матрице MER выполнены
перестановки столбцов и строк в соответствии с указанными ключами (рис.
2.1.2.22). На рисунке справа совместно изображены исходная и перемешанная матрицы.
45
Рис. 2.1.2.22. Результат перестановки столбцов и строк
Рассмотрим, как выполнить преобразование графической матрицы с
помощью схемы Фейстеля. Схема показана на рисунке. 2.1. 2.23.
Рис. 2.1.2.23. Схема Фейстеля
46
Принцип работы этой схемы рассмотрим на примере преобразования
одной строки. Схема состоит из двух шифраторов F1 и F2, двух сумматоров
по модулю два М1 и М2 (выполняют логическую операцию Исключающее
ИЛИ). Результаты шифрования (С1 и С3) зависят от алгоритма работы шифраторов F1 и F2 и ключей К1 и К2 соответственно. Для определённости будем считать, что и в шифраторах также реализуется логическая операция
Исключающее ИЛИ.
Исходная строка АВ делится на два равных блока А и В (по четыре
бита). Результаты преобразований приведены в таблице 2.1.2.1.
Таблица 2.1.2.1.
Аналогичные преобразования делают с содержимым всех строк исходной графической матрицы.
В рассмотренном шифре криптостойкость обеспечивается несколькими уровнями защиты.
На первом уровне открытый текст шифруется одним или несколькими
известными способами. На втором уровне защиты символы криптограммы
заменяются графическими матрицами, в которых осуществляется перестановка или замена всех пикселей. На третьем уровне пиксели из перемешанных матриц побитно псевдослучайно распыляется по нескольким контейнерам. На четвёртом уровне защиты рассредоточение заносимых битов происходит не линейно (не последовательно), а, например, равномерно по всей
графической картинке контейнера. Другими словами, адреса цветовых составляющих в графическом файле выбирают по сложному закону. Закон распределения пикселей по графическому контейнеру удобно выразить с помощью математической зависимости. Коэффициенты в этой зависимости
должны храниться в виде ключа.
Предположим, что криптоаналитику каким-то способом удалось преодолеть все уровни защиты, кроме восстановления графической матрицы.
При криптоанализе методом перебора всех возможных ключей восстанавливаемые матрицы придётся анализировать с помощью автоматических устройств. Устройство распознавания образов должно во множестве
47
точек графической матрицы мгновенно «увидеть» (выделить, вычислить)
замаскированный символ. Однако появление даже нескольких маскирующих
точек приводят к снижению надёжности автоматического распознавания
символов.
Эту мысль иллюстрирует рисунок (рис. 2.1.2.24), полученный при работе программы FineReader 6.0 Professional.
Рис. 2.1.2.24. Результаты распознавания с помощью FineReader
Три группы символов «ЧПРС» были в разной степени зашумлены
маскирующими точками. По мере увеличения числа маскирующих точек
результаты распознавания ухудшались. Рисунок показывает, что добавление
всего девяти новых точек исказило все четыре буквы исходного текста. Размещение вокруг символов штрихпунктирных рамок делает текст полностью
нечитаемым для автоматических устройств. Криптографическое перемешивание пикселей в графических матрицах ставит автомат в тупик.
Участие человека при криптоанализе в качестве распознавателя образов практически невозможно из-за необходимости перебора и анализа
огромного числа вариантов в короткий промежуток времени, поэтому возникает достаточно сложная проблема автоматического распознавания сложных
образов.
Рассмотрим ещё один способ перемешивания пикселей. Для реализации предлагаемой идеи нужно рядом разместить чётное число графических
матриц (2, 4, 6, 8, и т.д.). Рядом размещённые графические матрицы должны
образовать прямоугольную таблицу (многопиксельный экран) с общими
столбцами и строками. Затем производят операции перемешивания с экраном так, будто бы это единая графическая матрица.
Рассмотрим пример. Предположим, что даны четыре графические
матрицы с изображениями букв Щ, Б, Г и Ж (рис. 2.1.2.25).
48
Рис. 2.1.2.25. Многопиксельный экран
Сдвинем циклически все строки, начиная со второй, на 1, 2, 3, 4, 5, и
т.д позиций влево. Естественно, что в реальных системах данный ключ должен выбираться по псевдослучайному закону (в данном случае регулярный
ключ выбран для лучшей наглядности). В результате будет получен новый
(перемешанный) экран (рис. 2.1. 2.26).
49
Рис. 2.1.2.26. Результат перемешивания матрицы
многопиксельного экрана
После этого аналогично делаются циклические сдвиги столбцов всего
экрана.
50
2.1.3. Шифрование с помощью управляемых операций
Существует большое число методов шифрования простых в реализации и обладающих высокой криптостойкостью. Среди них можно выделить широко используемый симметричный метод шифрования – метод гаммирования. Как известно, основная идея шифрования заключается в замене
символов открытого текста на числа и суммировании их с псевдослучайными числами, которые называются «гаммой». При этом состав гаммы известен
только доверенным лицам на передающей и приёмной сторонах.
Известны методы взлома этого шифра [7, 8]. Скомпрометировать
шифр можно в случаях нештатного использования гаммы (некачественный
состав гаммы, малая длина или повторное использование одной и той же
гаммы для шифрования разных сообщений).
Ещё одним уязвимым элементом в аддитивном шифре является логическая операция Исключающее ИЛИ, которая используется для зашифрования. Другие названия этой операции: неравнозначность, суммирование по
модулю два без переносов.
Известно интересное свойство этой логической операции:
(1)
M GG  M .
Соотношение (1) говорит о том, что наличие чётного числа одинаковых слагаемых, участвующих в операции Исключающее ИЛИ, уничтожает
эти слагаемые. Таким образом, если определить период гаммы и произвести
логическую операцию Исключающее ИЛИ над символами криптограммы с
одинаковыми значениями гаммы (с одинаковыми фазами), то можно уничтожить гамму. В результате такого преобразования получаются данные,
представляющие собой результат выполнения логической операции Исключающее ИЛИ над символами открытого текста:
Это объясняется тем, что
Gi  Gi T ,
то есть элементы гаммы повторяются с периодом Т и поэтому они одинаковые. Если гамма дважды использована для шифрования двух разных текстов,
то задача криптоанализа становится ещё проще: достаточно выполнить операцию Исключающее ИЛИ над двумя криптограммами.
Известен пример неверного использования метода гаммирования в
операционной системе Windows 95. Одна и та же гамма применялась несколько раз для шифрования данных в файлах PWL [6].
Величину R (2) можно назвать разностью открытых текстов (сообщений). Разность R может быть подвержена успешному криптоанализу путём учёта статистических закономерностей открытых текстов или использо-
51
вания известных из других источников их особенностей. Часть передаваемого текста (особенно первые и последние строки) можно угадать на основании
того, что многие документы имеют стандартную форму.
Если сделать успешное предположение, что одно из сообщений
начинается со слов «Hello», «Совершенно секретно», либо «Центр – Юстасу»
и т.п., то легко дешифровать первые буквы другого сообщения. Рассмотрим
пример криптоанализа двух открытых текстов («Полк» и «План»), зашифрованных одинаковой гаммой (139-12-240-7). Процессы зашифрования и криптоанализа проиллюстрированы таблицей 2.1.3.1.
Таблица 2.1.3.1
Величины
1.
2.
Сообщение
M1
Сообщение
Значение
Полк
Символ
1
11001111
Символ
2
11101110
Символ
3
11101011
Символ
4
11101010
План
11001111
11101011
11100000
11101101
13912240-7
-
10001011
00001100
11110000
00000111
01000100
11100010
00011011
11101101
-
01000100
11100111
00010000
11101010
-
00000000
00000101
00001011
00000111
-
11001111
11101110
11101011
11101010
M2
3.
4.
Гамма G
Криптограмма
K1  M 1  G
5.
Криптограмма
K2  M 2  G
6.
Разность
R  K1  K 2
7.
Сообщение
M1  R  M 2
Каждое передаваемое сообщение данного примера состояло из четырёх символов. Символы были преобразованы в двоичные числа в соответствии с таблицей CP-1251. Понятно, что в таблице 2.1.3.1. приведён простейший пример. Здесь оба сообщения состоят из небольшого числа букв.
Успешно произвести криптоанализ коротких шифровок можно лишь в случае, если известен один из открытых текстов. При наличии длинных сообщений при криптоанализе нужно учитывать статистические свойства открытых
текстов (модель открытого текста) и специальные методы криптоанализа,
например, тест Казиски [8].
52
Разность R показывает «расстояние» между символами двух сообщений. Для первых символов двух открытых текстов разность R = 0. Это
означает, что первые символы в этих сообщениях одинаковые. Чем меньше
значение R, тем ближе в алфавите находятся данные две буквы. Последняя
строка таблицы 2.1.3.1. показывает возможность восстановления сообщения
M1 при неизвестном составе гаммы G, но известном (или угаданном) сообщении M2.
Таким образом, в аддитивном методе шифрования из-за симметричности
(обратимости) логической операции Исключающее ИЛИ и нештатного использования гаммы существует возможность произвести криптоанализ и
восстановить открытый текст даже без знания гаммы. По этой причине представляет интерес рассмотрение шифра, у которого нет подобного недостатка.
Повысить криптостойкость аддитивного шифра можно за счет использования управляемых операций шифрования [6, 9]. Основная идея рассматриваемой криптосистемы состоит в использовании в течение одного
сеанса связи не одной, а нескольких различных шифрующих операций. В
этой криптосистеме с изменением значения гаммы варьируются операции
преобразования, выполняемые над открытым текстом (на передаче) и над
криптограммой (на приёме). Причём на передаче и приёме операции зашифрования и расшифрования должны чередоваться синхронно. Например, если
на передаче осуществляется арифметическое сложение символа открытого
текста с элементом гаммы, то на приёме нужно вычесть гамму из полученной криптограммы. Синхронизация выполняемых операций должна осуществляться под управлением гаммы, которая одновременно определяет и
вид выполняемой операции и участвует в этих операциях.
На рис. 2.1.3.1 показана структурная схема криптографической системы с управляемыми операциями шифрования. Моделирование этой системы было осуществлено с помощью программы Electronics Workbench
Multisim 8.2.12 Pro [10].
Имитация передающей и приёмной сторон криптосистемы осуществлялась с помощью двух арифметико-логических устройств 74281J. Четырёхбитный открытый текст M подавался на вход А первого арифметикологического устройства (АЛУ). Четырёхбитная гамма G подавалась на входы
В каждого АЛУ. Вид выполняемой операции на передающей стороне задавался с помощью преобразователя кода ПК1. Управляющие сигналы S на
приёмной стороне формировались с помощью преобразователя кода ПК2.
Сигналы с выходов преобразователей кодов подавались на управляющие
шины АЛУ. Именно эти сигналы определяли вид выполняемых АЛУ операций. Криптограмма K формировалась на выходе F первого АЛУ. Расшифрование криптограммы осуществлялось на приёмной стороне с помощью второго АЛУ. Выполняемые операции синхронно изменялись под управлением
гаммы. Принятый открытый текст M` появлялся на выходе F второго АЛУ.
53
Рис. 2.1.3.1 Структурная схема криптосистемы
В качестве шифрующих преобразований можно использовать различные
логические и арифметические операции, а также математические функции и
их комбинации. Некоторые из них перечислены в таблице 2.1.3.2.
В таблице 2.1.3.2 приняты обозначения:
M - открытый текст (сообщение); G - гамма; K - криптограмма; 
- логическая операция Исключающее ИЛИ (неравнозначность);  - логическая операция равнозначность; «+» - арифметическая операция сложение;.
«–» - арифметическая операция вычитание; черта над переменными обозначает логическую операцию инверсии.
Первые 11 операций предполагают работу с целыми числами.
Остальные операции предназначены для работы с вещественными числами.
Задачей преобразователей кодов ПК1 и ПК2 являлось синхронное
изменение управляющих сигналов. Естественно, что конструкции преобразователей кодов ПК1 и ПК2 были разные, так как при одинаковых входных
воздействиях (гамма G) преобразователи кодов должны формировать разные
выходные (управляющие) сигналы S и S`.
54
1.
2.
3.
4.
5.
6.
Операции
на передающей стороне
Неравнозначность
K  M G
Равнозначность
K  M G  M  G
Сложение K  M  G
Вычитание K  M  G
Вычитание K  G  M
Инверсия от суммы
K  M G
7.
8.
Инверсия от разности
K  M G
Инверсия от разности
K GM
9.
10.
11.
12.
13.
14.
15.
Комбинированная сумма
K  M G
Комбинированная разность
Таблица 2.1.3.2
Операции
на приёмной стороне
Неравнозначность
M ` K  G
Равнозначность
M ` K  G  K  G
Вычитание M ` K  G
Сложение M ` K  G
Вычитание M ` G  K
Комбинированная разность
M ` K  G
Комбинированная сумма
M ` K  G
Комбинированная разность
M ` G  K
Комбинированная разность
M ` K  G
Комбинированная сумма
K  M G
M ` K  G
Умножение K  M  G
Деление K  M / G
Деление K  G / M
Функциональные
K  f (M , G)
Алгебраические
K  M nG s
Деление M  K / G
Умножение M  K  G
Деление M  G / K
Функциональные
M  f
1
( K , G)
Алгебраические
M  n K  Gs
Преобразователи кодов можно синтезировать различными способами: графически (с помощью карт Карно и диаграмм Вейча), аналитически
(методы Квайна, Мак-Класки, неопределённых коэффициентов) и с помощью графических символов, интерпретирующих булевы функции.
Перечисленные способы синтеза (минимизации) трудоёмки и имеют
ограничения на их использование при числе переменных более 5…6. При
разработке рассматриваемой модели криптосистемы преобразователи кодов
синтезировались с помощью блока Logic Converter (логический конвертор),
который входит в систему моделирования радиоэлектронных устройств Multisim 8.2.12 Pro. Этот инструмент позволяет создавать преобразователи кодов
с числом аргументов n  8 . Для получения математических выражений,
55
описывающих работу ПК, достаточно в конвертор ввести таблицу истинности, которая описывает работу преобразователя кода. Полученные математические выражения затем использовались для построения принципиальной
схемы ПК.
Рассмотрим подробнее порядок выбора логических и арифметических операций, которые можно использовать для шифрования текста.
Безусловно, при разработке новой криптосистемы нужно использовать многократно проверенную операцию Исключающее ИЛИ. Кроме того,
аналогичными свойствами обладает операция “равнозначность”, которая
является инверсией от операции Исключающее ИЛИ.
Таблица 2.1.3.3
№
УправляюГамма
п/п Ключ
щие
сигналы
B3B 2 B1B0
A
Операция
Мod
CN
S
S
(BCDE)
3 2 S1 S 0
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
M G
M G
M G
M G
M G
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
x
1
x
0
0
0
0
0
1
В виду того, что логические операции M  G  M  G эквивалентны операции неравнозначности M  G , использовать все три операции
при шифровании не имеет смысла, так как криптограммы для них будут одинаковыми.
56
В таблице 2.1.3. 3 символом «х» обозначены безразличные состояния
преобразователя кода (ПК). Вход устройства Mod определяет, какую операцию выполняет АЛУ: логическую или арифметическую. Входы S 3 S 2 S1 S 0 и
Mod предназначены для формирования управляющих сигналов, которые
позволяют выбрать одну из 32-х возможных операций данного АЛУ.
Для приёмной стороны составляется аналогичная по форме таблица
истинности.
Внешний вид конвертора, с помощью которого осуществлялся синтез
преобразователей кодов, показан на рисунке 2.1.3.2.
Рис. 2.1.3.2 Логический конвертор XLC1 с изображением фрагмента таблицы
истинности (S3)
С помощью логического конвертора и таблицы 2.1.3.3 были получены выражения, описывающие работу ПК1, находящегося на передающей
стороне:
S 3  S 0   2   2 S 2  S1   2   2 , Mod   3
(3) C N   2   2  S 3 .
Аналогично были получены выражения для ПК2, работающего на
приёмной стороне.
S 3  S 0  3 2  3  2  3  2  3  2
S 2  S1  3  2  3  2  3  2  3  2 Mod   3 ,
C N   2   2 .
На основании полученных выражений были составлены принципиальные схемы двух преобразователей кодов. Разработанная и исследованная
57
принципиальная схема модели криптографической системы работала с использованием четырёх операций: Исключающее ИЛИ, равнозначность, сложение и вычитание. При этом результат вычитания формировался на выходе
АЛУ в дополнительном коде. Смена сеансового ключа имитировалась с помощью переключателя А. Схема модели криптосистемы приведена ниже на
рисунке 2.1.3.3.
Исходный текст, принятый текст, гамма и криптограмма отображались с помощью индикаторов U3…U6. Значения гаммы и передаваемый
текст формировались с помощью генератора слов XWG1 (Word Generator).
Преобразователи кодов ПК1 и ПК2 расположены в нижней части
рисунка 2.1.3.3.
Как и всякая имитация, разработанная модель не полностью соответствует реальной криптографической системе. Например, при моделировании принималось, что соединение между передающей и приёмной сторонами
происходит по четырём проводам. В реальной криптосистеме связь должна
осуществляться по двухпроводной линии. Кроме того, при моделировании
считалось, что операнды, циркулирующие в криптосистеме, являются четырёхразрядными целыми числами. Диапазоны изменения чисел составляли
0  M  15 и 0  G  15 . В действующей криптосистеме разрядность
операндов должна быть, по крайней мере, в два раза больше. Кроме того, в
реальной криптосистеме при формировании криптограммы возможно использование не только целых, но и вещественных чисел.
В разработанной модели было использовано только четыре шифрующие операции: Исключающее ИЛИ, равнозначность, арифметическое сложение и вычитание. Имитация смены ключей осуществлялась только для
двух таблиц соответствия значений гаммы и выполняемых операций.
Несмотря на введённые упрощения, модель криптосистемы с управляемыми операциями шифрования позволила проверить работоспособность
системы, выбрать виды логических и арифметических операций, имитировать смену сеансового ключа, наметить пути совершенствования криптосистемы.
58
Рис. 2.1.3.3. Принципиальная схема модели криптосистемы
Таким образом, переход от операндов целочисленного вида к вещественным числам увеличивает число возможных математических операций
шифрования, включая элементарные и специальные функции. При этом
большинство операций не обладают свойством симметрии, и гамму нельзя
уничтожить при совместной обработке двух криптограмм (даже зашифрованных с помощью одной гаммы).
Разрядность гаммы определяет максимально возможное число различных видов операций, используемых при зашифровании открытого текста.
При использовании восьмиразрядной гаммы можно применить до 256 различных логических, арифметических, математических операций и их комбинаций.
59
2.1.4. Многоалфавитный адаптивный шифр
Одноалфавитные шифры не являются криптостойкими из-за имеющейся статистической устойчивости появления букв в открытом тексте. На
рисунке 2.1.4.1 показана гистограмма распределения частоты появления
строчных русских букв в книге [11]. Гистограмма получена путём обработки
текста, содержавшего 1,05 миллиона символов, среди которых было 786 тысяч русских строчных букв.
Как видно из рисунка 2.1.4.1. абсолютная частота появления букв
отличается большой неравномерностью, которая позволяет криптоаналитику
успешно произвести дешифрацию длинной криптограммы, созданной методом одноалфавитной замены. Чаще всего в статистически обработанном тексте встречались строчные гласные буквы «о», «е», «и», «а». Реже других русских строчных букв попадались «ш», «э», «ъ», «ё». Распределение символов
будет несколько изменяться в зависимости от предметной области, из которой берут текст, подвергаемый обработке. Так при анализе распределения
заглавных букв было замечено существенное увеличение частоты появления
буквы «Э». Это объяснилось тем, что книга [11] относится к области вычислительной техники, и в тексте часто встречалось слово «ЭВМ».
Русские строчные
100000
80000
60000
40000
20000
0
1
3
5
7
9 11 13 15 17 19 21 23 25 27 29 31 33
Рис. 2.1.4.1. Распределение строчных букв в открытом тексте
На рисунке 2.1.4.1. по горизонтальной оси отложены порядковые
номера букв в алфавите. По вертикальной оси отложены абсолютные частоты появления строчных букв в тексте.
Многоалфавитные шифры замены повышают криптостойкость. Тем
не менее, существует возможность взлома и многоалфавитных шифров, которые продолжают наследовать статистическую картину распределения частоты появления символов.
60
На рис. 2.1.4.2 показаны гистограммы, полученные при шифровании
трёхсот букв «А» (рис. 2.1.4.2 а) и трёхсот букв «Г» (рис. 2.1.4.2 б) многоалфавитным шифром, в котором каждой букве ставится только один интервал
замен [12]. Из рисунка видно, что распределения существенно различаются
(у них различные математические ожидания и дисперсии). Это даёт зацепку
для успешного криптоанализа.
..
а)
б)
Рис. 2.1.4.2. Гистограммы, иллюстрирующие возможность криптоанализа
Основная идея многоалфавитного адаптивного шифра заключается в
формировании криптограммы в виде равномерной смеси вещественных чисел. Равномерность распределения чисел криптограммы является одним из
признаков идеального шифра.
Равномерность распределения вещественных чисел в криптограмме
достигается тем, что в процессе шифрования ведётся анализ получающегося
распределения чисел шифрограммы. С этой целью непрерывно строится гистограмма распределения. При этом очередные элементы шифровки формируются таким образом, чтобы они попали в те места выходного распределения, где наблюдаются провалы. Возможность изменения (варьирования) положения очередного элемента криптограммы на числовой оси имеется благодаря тому, что при шифровании используются многоалфавитная замена и
интегральное преобразование [12]. Алгоритм шифрования таков, что осуществляется непрерывный анализ выходного распределения и выполняется
такая коррекция (адаптация) шифра, чтобы обеспечить приближение формируемого множества чисел к равномерному распределению.
Многоалфавитное шифрование предполагает, что каждый символ
открытого текста многократно встречается в таблице замен на различных
участках числовой оси. В таблице 2.1.4.1 приведён фрагмент некоторой
упрощённой таблицы многоалфавитной замены. При этом считается, что
буква «е» встречается в открытом тексте чаще других, а буква «д» - реже
других. По этой причине для буквы «е» выделено 6 интервалов многоалфавитной замены, а для буквы «д» - только 2.
Таблица 2.1.4.1
61
Рассмотрим, как осуществляется шифрование с помощью таблицы
многоалфавитной замены (ТМЗ). Предположим, что нужно зашифровать
фразу «где абба». Шифровку можно создать бесконечным числом способов.
При этом каждую букву допустимо заменять любым вещественным числом
из указанных интервалов. Приведём две криптограммы для указанной фразы:
15,33 – 9,101 – 22,99 – 18,06 – 14,57 – 2,331 – 5,064
7,105 – 1,102 – 12,98 – 8,473 – 10,16 – 14,91 – 23,26
В рассматриваемом шифре после многоалфавитной замены осуществляется интегральное преобразование полученного числа. Это даёт возможность один из пределов интегрирования выбирать по случайному закону
[12]. При этом нужно находить очередной предел интегрирования таким образом, чтобы формируемое число криптограммы попало в зону наибольшего
провала (в зону глобальной впадины) на гистограмме.
Для шифрования адаптивным (подстраиваемым) шифром необходимо постоянно решать обратную задачу шифрования: по найденному числу в
выходном распределении (находящегося в зоне глобальной впадины) выбирать такое значение предела интегрирования, которое обязательно попадёт в
заданный интервал гистограммы.
Следующий рисунок иллюстрирует эту идею. После зашифрования
очередного символа гистограмма достраивается (пополняется). На гистограмме выделяется максимальное значение (пик), минимальное значение
(глобальная впадина) и провалы (локальные впадины). Формирование криптограммы ведётся таким образом, чтобы с максимально возможной степенью
выровнять имеющееся выходное распределение.
62
Рис. 2.1.4.3. Гистограмма выходного распределения
Предположим, что наибольший провал на гистограмме наблюдается
в интервале чисел [Ci, Ci+1]. Пусть при этом для интегрального преобразования используется некоторая подынтегральная функция f(x):
Для того чтобы уменьшить глубину глобальной впадины, генерируется случайное число a из интервала [Ci, Ci+1]. По таблице многоалфавитной
замены определяется значение интеграла I, которое соответствует шифруемому символу. По известному значению нижнего предела интегрирования a
и величине интеграла I, находят значение верхнего предела интегрирования
b:
b = (a,I)
Полученные числа а и b передают в линию. Эти числа являются элементами криптограммы (шифровкой). Заметим, что пределы интегрирования
можно формировать и в обратном порядке: сначала выбирать b, а потом вычислять a.
На приёмной стороне известны вид использованного интегрального
преобразования (подынтегральная функция) и конфигурация таблицы многоалфавитной замены. Эти два элемента определяются секретным сеансовым
ключом. Поэтому процесс дешифрации криптограммы не вызывает затруднений. Он сводится к вычислению определённого интеграла по известным
значениям нижнего и верхнего пределов интегрирования и определению
принятого символа по таблице многоалфавитной замены.
Таким образом, сформированная величина а обязательно попадёт в
зону наибольшего провала, а верхний предел интегрирования b случайно
окажется в одной из зон гистограммы.
63
Величину b также можно приблизить к одной из локальных впадин
на гистограмме (эта величина даже может попасть в зону глобальной впадины). Для этого нужно произвести расчёты верхнего предела интегрирования
b при имеющемся значении нижнего предела интегрирования a, поочерёдно
выбирая допустимые значения интеграла I из таблицы многоалфавитной замены. При расчёте верхнего предела интегрирования b желательно не допустить попадание этого числа в зону пика гистограммы. Все другие результаты расчётов являются приемлемыми.
Выполним оценку числа интервалов на гистограмме выходного распределения. Число интервалов k на гистограмме, предназначенной для контроля выходного распределения, можно оценить по формуле Стержесса [13]:
k  3,32 lg n
(1)
где n - число элементов (вещественных чисел) в криптограмме.
Таблица 2.1.4.2 позволяет наглядно представить оценку числа интервалов в гистограмме k в зависимости от длины (числа символов) зашифрованного текста n.
Таблица 2.1.4.2
n
k
100
7,64
1000
10,96
10000
14,28
100000
17,6
1000000
20,92
С учётом того, что при шифровании каждый символ открытого текста s заменяется двумя вещественными числами (n = 2s), то при длине открытого текста (сообщения) s = 500 символов число интервалов k на гистограмме оценивается числом 10, 96.
Рассмотрим порядок формирования таблицы многоалфавитной замены. Таблица многоалфавитной замены служит на передающей стороне для
замены символа открытого текста на некоторое вещественное число. Это
число эквивалентно значению определённого интеграла, для которого определяются значения верхнего и нижнего пределов интегрирования. На приёмной стороне таблица многоалфавитной замены используется для определения значения принятого символа по величине определённого интеграла, вычисленного с помощью полученных значений верхнего и нижнего пределов
интегрирования. Таблица является элементом секретного ключа.
Рассмотрим порядок формирования таблицы многоалфавитной замены.
1. Вначале нужно задаться длиной открытого текста, подлежащего
шифрованию. Пусть Smax = 50000 символов. Тогда число вещественных чисел, из которых будет состоять криптограмма, n = 100000.
2. По формуле (1) следует оценить число необходимых интервалов
на гистограмме. Для выбранного значения Smax число интервалов k = 17,6.
3. Определить общее число интервалов в таблице многоалфавитной
замены t, которое должно быть на один – два порядка больше числа k. Кроме
того, число интервалов в ТМЗ должно быть в 3…4 раза больше числа симво-
64
лов в алфавите открытого текста. Таким образом, число интервалов в таблице многоалфавитной замены лежит в пределах 176…1760. Примем t = 1000.
4. Найти сумму нормированных частот символов открытого текста
Здесь r – число символов в алфавите открытого текста (r = 256 при
использовании всех символов таблицы CP-1251 и r = 33 при использовании
только русских строчных или заглавных букв); gi - нормированная частота.
Нормированные частоты появления символов в открытом тексте gi
получают путём деления абсолютных частот на наименьшее значение абсолютной частоты.
5. Вычислить число интервалов замен для каждого i-го символа алфавита открытого текста:
Для примера вычислим число интервалов замен для букв «а» и «б»:
5. Задать диапазон (ширину) гистограммы и её положение на числовой оси. Это означает, что задаются значения amin и bmax (это для случаев, когда определённый интеграл принимает только положительные значения).
Задать ширину и положение на числовой оси таблицы многоалфавитной замены, то есть определить значения Imin и Imax. Перечисленные величины связаны между собой и соотношения между ними зависят от вида подынтегральной функции:
,
а Imin  0.
Например, для подынтегральной функции f(x) = x4 правая граница
для таблицы многоалфавитной замены вычисляется по формуле:
Вычислить ширину одного интервала замен:
Пусть  = 0,1.
6. Составить таблицу многоалфавитной замены, в которой ширина
каждого интервала замен равна , а число интервалов замен равно t. Все интервалы замен образуют непрерывный интервал чисел шириной ·t. Для рассматриваемого случая ·t = 0,1·1000 = 100. Каждому интервалу замен ставят
65
в соответствие один из символов алфавита открытого текста. При этом число
интервалов замен для буквы «а» равно ta, для буквы «б» равно tб и т.д. Интервалы замен для каждого символа располагаются на числовой оси в случайном порядке.
Конфигурация таблицы многоалфавитной замены является одним из
элементов секретного ключа. Вторым элементом ключа является вид подынтегральной функции.
Рассмотрим примеры шифрования с помощью адаптивного многоалфавитного шифра.
Пример 1.
Предположим, что в текущий момент времени необходимо зашифровать букву «в». В качестве первого ключевого элемента используется таблица 2.1.4.1. Вторым элементом секретного ключа является вид подынтегральной функции. Пусть
f(x) = x4.
Предположим, что на гистограмме, составленной на предыдущих
шагах шифрования, наблюдается глобальная впадина в диапазоне чисел
[7…9).
Для зашифрования буквы «в» по случайному закону из таблицы
2.1.4.1. выбирается один из четырёх интервалов замен. Допустим, что выбран интервал 3, то есть (17…18]. Из этого интервала генерируется случайное число, например, I = 17,58.
Для заполнения провала на гистограмме генерируется случайное
число a из интервала [7…9). Пусть a = 8,02. С учётом формулы НьютонаЛейбница для выбранной подынтегральной функции получаем:
Расчёт верхнего предела интегрирования даёт значение: b =
8,0242448. Таким образом, оба числа a и b попали в зону глобальной впадины.
Пример 2.
Используем в качестве исходных данных числа, приведённые в
предыдущем примере, но другую подынтегральную функцию:
Для этой функции верхний предел интегрирования вычисляется по
формуле:
b = 3,46·108
Приведённые примеры показывают, что при одних видах подынтегральной функции рассеяние чисел малое, а при других большое.
66
В качестве подынтегральной функции желательно выбрать функцию, у которой с изменением аргумента меняются амплитуда и частота колебаний. График подобной функции приведён на следующем рисунке.
Такой график можно создать с помощью функции вида:
Коэффициенты A, B и С можно использовать в качестве элементов
ключа.
Рис. 2.1.4.4. График подынтегральной функции
67
2.2. Асимметричные шифры
Алгоритмы шифрования с открытым ключом (асимметричные шифры) используют так называемые необратимые или односторонние функции.
Эти функции обладают следующим свойством: при заданном значении аргумента x достаточно просто вычислить значение функции f(x). Однако если
известно значение функции y = f(x), то нет простого пути для вычисления
значения аргумента x.
Для реализации криптосистемы с открытым ключом используют один из
следующих типов необратимых преобразований.
1. Разложение больших чисел на простые множители (алгоритм RSA,
авторы — Райвест, Шамир и Адлеман — Rivest, Shamir, Adleman).
2. Вычисление логарифма или возведение в степень (алгоритм DH,
авторы — Диффи и Хелман).
3. Вычисление корней алгебраических уравнений.
4. Эллиптические кривые.
Рассмотрим простейший пример «необратимых» функций. Легко в
уме найти произведение двух простых чисел 11 и 13. Сложнее быстро в уме
найти два простых числа, произведение которых равно 437. Подобные трудности возникают и при использовании ЭВМ для отыскания двух простых
сомножителей для очень большого числа: найти сомножители можно, но
потребуется много времени.
2.2.1. Асимметричный шифр RSA
В алгоритме шифрования RSA используются два разных ключа: один
для шифрования сообщения, а второй — отличный от первого, но связанный
с ним — для расшифрования. Ключ шифрования (открытый, несекретный
ключ) основан на произведении двух огромных простых чисел, а ключ расшифрования (закрытый, секретный ключ) — на самих простых числах.
Заметим, что операцию разложения числа на множители называют
факторизацией.
Термин «необратимые» функции не совсем удачен. Правильнее было
бы их назвать быстро (или просто) необратимые функции. Необратимые
функции можно обратить, но потребуется много времени.
В 40-х годах ХХ века американский инженер и математик Клод Шеннон предложил разрабатывать новый шифр таким образом, чтобы его раскрытие было эквивалентно решению сложной математической задачи. Причём, сложность задачи должна быть такой, чтобы объем необходимых вычислений превосходил бы возможности современных ЭВМ.
68
В асимметричных криптографических системах приходится применять длинные ключи (2048 бита и больше). Длинный ключ увеличивает время шифрования открытого сообщения. Кроме того, генерация ключей становится весьма длительной. Зато пересылать открытые ключи можно по незащищённым (незасекреченным, открытым) каналам связи. Это особенно
удобно, например, для коммерческих партнёров, разделённых большими
расстояниями. Открытый ключ удобно передавать от банкира сразу нескольким вкладчикам. В таких случаях вкладчики могут зашифровать свои сообщение открытым ключом банкира, но прочитать эти сообщения может только банкир, обладающий секретным ключом.
Рассмотрим пример ассиметричной криптосистемы (см. таблицу).
Таблица 2.2.1.
Действия
1. Выбор двух простых
чисел p и q
2. Вычисление произведения r = pq
3. Расчёт функции Эйлера (r) = r–p–q+1
4. Выбор случайного
числа s, взаимно простого с (r) из интервала 0 < s < (r)
5. Расчёт секретного
ключа t с помощью
соотношения
st = 1(mod(r))
6. Публикация открытых ключей s, r
Абонент А
(банкир)
Абонент В
(вкладчик)
p1 = 7; q1 = 13
p2 = 11; q2 = 23
r1 = 713 = 91
r2 = 1123 = 253
(r1) = 72
(r2) = 220
s1 = 5
s2 = 31
5t = 1(mod(72))
t 1= 29
31t = 1(mod(220))
t2 = 71
s1 = 5,
r1 = 91
s 2= 31,
r 2= 253
Пример 1.
Пусть абонент А (например, банкир) и абонент В (например, вкладчик) решили организовать между собой секретную передачу информации с
помощью асимметричной криптосистемы.
Решение.
Каждый из абонентов независимо друг от друга выбирает два больших
простых числа, находит их произведение (модуль), функцию Эйлера от этого
произведения и выбирает случайное число, меньшее вычисленного значения
функции Эйлера и взаимно простое с ним.
69
Напомним, что простое число — это целое положительное число,
большее единицы, не имеющее других делителей, кроме самого себя и единицы. Взаимно простые числа — целые числа, не имеющие общих делителей (кроме единицы).
Порядок создания ключей иллюстрируется с помощью таблицы. Для
наглядности (в учебных целях) числа выбраны малой величины.
Использованная в таблице запись  = (mod()) означает, что при целочисленном делении числа  на число  остаток равен .
Например, 7 = 1(mod(3)), 11 = 2(mod(3)), 23 = 3(mod(5)).
Функция Эйлера — арифметическая функция (r), значение которой
равно количеству положительных чисел, не превосходящих r и взаимно простых с r.
Предположим, что абонент А решил послать сообщение абоненту В.
Вначале методом замены каждый символ сообщения заменяется (кодируется) числом.
Если требуется зашифровать число z, то необходимо из следующего
соотношения найти w:
z s 2  w(mod(r 2)) .
Допустим, что по открытому каналу связи нужно переслать число 2.
Абонент А (банкир) шифрует число 2 открытым ключом абонента В.
Для шифрования передаваемое число 2 возводится в степень s2 = 31:
m = 231 = 2147483648.
Затем абонент А находит остаток от деления числа m на величину
r
2= 253, в результате которого получается число 167, то есть:
231 = 167 (mod(253)).
Напомним, что числа s2 и r 2 являются открытым ключом абонента В.
В линию передаётся число w = 167, которое является криптограммой
исходного числа 2.
При расшифровании криптограммы w абонентом В используется соотношение:
wt 2  z (mod(r 2)) ,
из которого находят неизвестное число z.
В рассматриваемом примере абонент В, получив криптограмму (число
167), использует свой секретный ключ t2 = 71. Для расшифрования он возводит полученное число 167 в степень 71 и находит остаток от деления на число 253:
16771 = 2(mod(253)).
Остаток от деления равен 2, значит, шифрование и расшифрование
произошли правильно. Было передано число 2, и это же число было принято
после всех преобразований.
70
Предположим, что абонент В решил ответить абоненту А и направить
ему число 3.
Абонент В использует открытый (опубликованный) ключ абонента А
(s1 = 5, r 1= 91) и выполняет шифрующее преобразование числа 3. Математически это записывается так:
35 = 61(mod(91)).
В линию отправляется число 61. Получив это число, абонент А восстанавливает (расшифровывает) исходный текст с помощью своего секретного ключа t1 = 29:
6129 = 3(mod(91)).
В результате расшифрования на приёмной стороне получено число 3,
которое отправил абонент В.
Процесс обмена сообщениями между абонентами иллюстрирует следующая таблица.
Таблица 2.2.2.
Приём
Передача
Канал
Число
Число
Шифрование
Расшифрование
z
2
3
231 = 167(mod(253))
35 = 61(mod(91))
связи
167
61
16771 = 2(mod(253))
6129 = 3(mod(91))
z
2
3
Вторая снизу строка приведённой таблицы поясняет процесс передачи
числа 2 от абонента А к абоненту В. Нижняя строка показывает, как передаётся число 3 от абонента В к абоненту А.
В приведённом примере был рассмотрен порядок передачи одного
символа с каждой стороны. Понятно, что таким образом последовательно
передаётся целое сообщение, но преобразование над каждым символом происходит по рассмотренной схеме. Заметим, что для использования этого метода необходимо сообщение предварительно преобразовать в набор чисел,
например, с помощью кодовой таблицы.
Достоинством шифрования с открытым ключом является исключение
предварительной передачи секретного ключа по закрытым каналам связи,
например, с помощью курьера.
Однако у этого метода есть существенный недостаток. Используя
опубликованный ключ, сообщение может прислать любой абонент, выдавая
себя за другого абонента. В подобных случаях требуется аутентификация — подтверждение авторства присланного документа. Для этих целей
разработан способ шифрования, который называется электронной подписью. Сущность электронной подписи заключается в том, что сообщение
шифруется не только опубликованным открытым ключом абонента, принимающего сообщение, но и секретным ключом абонента, отправляющего сообщение.
71
Рассмотрим пример цифровой подписи.
Пример 2.
Предположим, что абонент В (вкладчик) решил послать сообщение,
состоящее из числа z = 41, абоненту А (банкиру).
Решение.
Вначале вкладчик шифрует сообщение открытым ключом банкира:
z s1  w(mod(r1)) , 415 = 6(mod(91)).
В результате шифрования получено число w = 6.
Дальше вкладчик повторно шифрует число w своим секретным ключом t2:
wt 2  v(mod(r 2)) , 671 = 94(mod(253)).
Шифрограмма v = 94 отправляется банкиру.
Банкир, получив секретное сообщение v, использует вначале открытый ключ вкладчика s2 и определяет w:
v s 2  w(mod(r 2)) , 9431 = 6(mod(253)).
Затем банкир использует свой секретный ключ t1 для определения
присланного и заверенного подписью числа z:
w t1  z (mod(r1)) , 629 = 41(mod(91)).
В результате абонент А (банкир) получает сообщение, состоящее из
числа z = 41.
При использовании электронной подписи никто другой не сможет
прислать банкиру сообщение (например, поручение перевести деньги) от
имени абонента В, так как на передаче нужно обязательно использовать секретный ключ вкладчика, который известен только абоненту В.
Наиболее сложным моментом при формировании ключей является
расчёт секретного ключа в соответствии с выражением st = 1(mod(r)).
Расчёт ведётся с помощью обобщённого алгоритма Евклида [9]. Его
можно выполнить с помощью математической системы Mathcad Prime 3 [10].
В программе приняты такие обозначения: φ( r ) → a, s → b. Понятно, что эти
величины должны быть введены в программу до выполнения расчёта. В результате получается секретный ключ t1.
72
Данная программа (обобщённый алгоритм Евклида) предназначена
для решения уравнения вида:
ax + by = gcd(a,b),
в котором известны два целых положительных числа a и b, а требуется
найти целые числа x, y и наибольший общий делитель чисел gcd(a,b), которые удовлетворяют указанному уравнению.
Пример 3.
Выполним ручной расчёт секретного ключа по алгоритму Евклида.
Результаты расчётов представим в виде таблицы. Согласно обобщённому
алгоритму Евклида вычисления нужно завершить при Т1 = 0. Результаты содержатся в переменных Т2 (x) и Т3 (y) на предпоследней итерации.
Решение.
Исходные числа: a = 72, b = 5.
73
Итерация
1
2
3
q
14
2
2
T1
2
1
0
T2
1
-2
T3
-14
29
Таблица 2.2.3.
P
-14
29
В результате расчётов получено: х = -2, y = 29.
Выполним проверку полученных результатов, для этого подставим
найденные числа в уравнение ax + by = gcd(a,b):
72·(-2) + 5·29 = 1, наибольший общий делитель чисел 72 и 5 также равен 1.
Проверка показала, что числа -2 и 29 вычислены верно. Секретный
ключ равен 29.
Более рационален, на наш взгляд, другой алгоритм вычисления секретного ключа.
При решении уравнения st = 1(mod(r)) нужно найти такое целое
число t, которое при целочисленном делении числа m = st на (r) даст остаток, равный единице. Таким образом, число m должно быть обязательно
больше числа (r) хотя бы на единицу (так как остаток от целочисленного
деления равен 1). Кроме того, число m =(r)+1 должно нацело делиться на
число s, поэтому нужно проверять является ли целым число k = m/s. Если на
первой итерации число k не является целым, то следует взять новое число m
=2(r)+1, проверить является ли целым новое число k = m/s и т.д.
Блок-схема предлагаемого алгоритма показана на следующем рисунке,
где использованы такие обозначения: φ( r ) → a, s → b.
Пример 4.
Выполним ручной расчёт секретного ключа с помощью рассмотренного алгоритма.
Решение.
Исходные числа: a = 72, b = 5.
Таблица 2.2.4.
Итерация
m
k
k целое ?
Ключ
1
73
14,6
Нет
2
145
29
Да
29
Сравнение примеров 2 и 3 показывает, что объём вычислений с использованием предлагаемого алгоритма значительно меньше, чем в обобщённом алгоритме Евклида. Количество вычислений в алгоритме Евклида
10, а в предлагаемом алгоритме 6.
74
Рис. 2.2.1. Блок-схема алгоритма
В соответствии с предложенным алгоритмом секретный ключ можно
рассчитать по формуле:
t
n   (r)  1
.
s
Здесь n определяет число итераций. Число n следует увеличивать от 1
до такого значения, при котором t станет целым.
Из формулы видно, что число n будет всегда меньше числа s.
Ниже приведён текст программы на языке Mathcad, составленной в
соответствии с блок-схемой алгоритма.
75
В программе использовано присвоение переменной d некоторого числа, отличного от нуля. Это сделано для исключения возможных ошибок, если
d задаётся по умолчанию.
Чисто внешнее сравнение данной программы с программой, составленной по обобщённому алгоритму Евклида, показывает её рациональность.
Экономия на времени счёта в предлагаемом алгоритме возможна на исключении вычисления функции целочисленного деления и на операциях с матрицами. Применительно к использованию ручных расчётов преимущество
последнего алгоритма очевидно.
76
2.2.2. Криптоанализ шифра RSA
Криптосистему RSA разработали R. Rivest, A. Shamir, L. Adleman
[14], а саму концепцию шифрования с помощью открытого ключа предложили W.Diffie и M.Hellman [15].
Асимметричная криптосистема RSA широко используется в современных инфокоммуникационных системах благодаря своим несомненным
достоинствам: передача приватной информации по незащищённым каналам
связи без предварительной передачи секретных ключей с помощью курьеров,
цифровая подпись финансовых документов. На базе RSA реализована известная почтовая программа PGP. Взлом криптосистемы RSA затруднён вычислительной сложностью факторизации большого целого числа, являющегося произведением простых чисел.
При формировании открытого ключа из множества допустимых значений рекомендуют формировать его по случайному закону [8, 16, 17]. В
некоторых источниках предлагают использовать открытые ключи, которые
содержат малое число единиц при их представлении в двоичной системе
счисления [18]. Это позволяет повысить скорость шифрования, так как
уменьшается число операций возведения в степень. В других источниках
рекомендуют использовать числа Мерсенна и Ферма [19] и малые нечётные
числа [20].
Рассмотрим случаи, когда использование некоторых из перечисленных рекомендаций приводит к появлению уязвимостей в криптосистеме.
Известно, что расчёт секретной экспоненты t в криптосистеме RSA
осуществляется с помощью сравнения [14]:
s·t  1(mod((r))
(1)
здесь s – число взаимно простое с (r), так называемая открытая экспонента; r – произведение двух простых чисел p и q (модуль); (r) – функция
Эйлера, которая вычисляется по формуле:
(r)) = (p – 1)·(q – 1)
(2)
Из соотношения (1) по вычисленному значению функции Эйлера
(r) и значению s требуется найти такое значение t, при котором целочисленное деление величины st на (r) даст остаток 1. Открытая экспонента s и
модуль r образуют открытый ключ, а числа t и r - закрытый ключ.
Для проведения анализа уязвимостей криптосистемы RSA рассмотрим несколько лемм.
Лемма 1
Значение функции Эйлера (r) является чётным числом при любых
значениях p и q.
Доказательство
77
Функция Эйлера вычисляется по формуле (2). Все простые числа нечётные, поэтому функция Эйлера, равная произведению двух чётных чисел p
- 1 и q - 1, является чётным числом. Заметим, что единственное чётное простое число 2 в практической криптографии не используется.
Лемма 2
Множество значений открытой экспоненты s состоит из нечётных
чисел.
Доказательство
В соответствии с алгоритмом формирования ключей для асимметричной криптосистемы числа s должны быть взаимно простыми с чётными
числами (r), поэтому числа s будут обязательно нечётными.
Лемма 3
Значение секретной экспоненты t является нечётным числом.
Доказательство
В соответствии с выражением (1) целочисленное деление произведения st на чётное число (r) должно дать остаток, равный единице. Это возможно только при нечётных значениях произведения st. В соответствии с
леммой 2 число s является нечётным. Произведение st будет нечётным только при нечётных значениях t.
Лемма 4
Значение функции Эйлера кратно 10, если хотя бы одно простое
число модуля (p или q) оканчивается на 1.
Доказательство
Используемые в практической криптографии простые числа могут
оканчиваться только цифрами 1, 3, 7 и 9. Единственное простое число, которое оканчивается на 5 – это само число 5. Однако оно слишком мало для
практического формирования криптографических ключей. В соответствии с
формулой для вычисления функции Эйлера (2) произведение указанных
сомножителей будет кратно 10, если хотя бы одно простое число оканчивается на 1.
Можно ожидать, что 25% ключей формируются при значениях
функции Эйлера, кратной 10.
Лемма 5
Если (r) кратно 10, а число s оканчивается цифрой 7, то число t
оканчивается цифрой 3.
Доказательство
Так как произведение указанных чисел s и t будет оканчиваться единицей, то в результате вычитания единицы из произведения st будет получено число, кратное 10.
Таким образом, величину t нужно искать среди чисел, у которых последняя цифра 3, например, 3, 13, 23 и т.д.
Пример 1.
78
Пусть (r) = 460, s = 27. Расчёт секретной экспоненты с помощью
обобщённого алгоритма Евклида дал t = 443.
Лемма 6
Если (r) кратно 10, а число s оканчивается цифрой 3, то число t
оканчиваться цифрой 7.
Доказательство
Доказательство аналогично доказательству леммы 5.
Итак, величину t нужно искать среди чисел, оканчивающихся на
цифру 7, например, 7, 17, 27 и т.д.
Пример 2.
Пусть (r) = 460, s = 33, тогда t = 237.
Лемма 7
Если (r) кратно 10, а s оканчивается цифрой 9, то последняя цифра
числа t должна быть 9.
Доказательство
Только произведение двух чисел, оканчивающихся цифрами 9 (при
s, оканчивающимся на 9), даёт число, у которого последняя цифра 1. В этих
случаях число st-1 будет кратно 10.
Пример 3.
Пусть (r) = 120, s = 19. Расчёт дал t = 19.
Лемма 8
Если (r) кратно 10, а s оканчивается цифрой 1, то последняя цифра
числа t должна быть 1.
Доказательство
Только произведение двух чисел, оканчивающихся цифрами 1 (при
числе s, оканчивающимся цифрой 1), даёт число, у которого последняя цифра 1. В этих случаях число st-1 будет кратно 10.
Пример 4.
Пусть (r) = 120, s = 31. Расчёт дал t = 31.
Леммы 7 и 8 указывают на снижение криптостойкости в рассмотренных случаях (последние цифры открытой и закрытой экспоненты обязательно совпадают). Можно предположить, что могут быть сформированы
полностью совпадающие числа s и t (ключи близнецы), то есть секретный
ключ может быть ошибочно опубликован абонентом. Примеры 3 и 4 подтверждают это утверждение.
Другими словами, при (r), кратном десяти и открытых экспонентах,
оканчивающихся цифрами 1 и 9 есть отличная от нуля вероятность открытой
публикации секретного ключа. Если величина s выбирается по случайному
закону, то для (r), кратных 10, вероятность формирования ключей, оканчивающихся цифрами 1 или 9, составляет 0,125. При этом некоторая часть секретных ключей полностью совпадёт с открытыми ключами.
79
Рассмотренная гипотеза о возможности совпадения открытых и закрытых ключей была проверена расчётным путём с помощью математической системы Mathcad. Для (r) = 460 выявлено 7 уязвимостей (открытый и
закрытый ключи полностью совпали, например, 229, 231, 321, 369). Для (r)
= 18240 выявлено также 15 уязвимостей (например, 14401, 14591, 15391). В
последнем случае анализировались только ключи, оканчивающиеся на единицу.
При практическом формировании ключей в криптосистеме RSA в
случаях, когда функция Эйлера кратна 10, а открытая экспонента оканчивается цифрами 1 или 9, следует произвести проверку на полное совпадение
сформированных открытого и закрытого ключей. Очевидно, что совпадающие ключи не должны быть использованы.
Среди существующих рекомендаций по выбору открытой экспоненты следует считать предпочтительным использование чисел Ферма.
80
3. Стеганографические методы защиты
В отличие от криптографии, которая превращает открытый текст в
нечитаемый, криптография позволяет скрыть передаваемое сообщение.
Удобнее всего для скрытой передачи использовать цифровые данные.
3.1. Основные понятия стеганографии
Стеганография — это наука, изучающая такие методы организации
передачи (и хранения) секретных сообщений, которые скрывают сам факт
передачи информации.
Криптография превращает открытый текст в нечитаемый набор символов (шифрограмму). Шифрограмма передаётся по открытому каналу связи, и защита информации держится на сложности подбора секретного ключа.
Факт передачи криптограммы не скрывается от противника.
Стеганография нацелена на сокрытие факта передачи информации.
Сообщение (его называют вложением) помещают (внедряют) в контейнер,
вид и потребительские свойства которого практически не меняется из-за
сделанного внедрения.
Стеганография чаще всего используется совместно с криптографией.
Скрываемое сообщение помещается внутрь безобидного на вид контейнера таким образом, чтобы постороннему наблюдателю было бы сложно
заметить наличие встроенного тайного послания. Контейнерами могут быть
чемодан с двойным дном, монета с отворачивающейся крышкой, почтовая
марка с микроплёнкой, письмо, написанное симпатическими чернилами
(например, хлоридом кобальта).
В настоящее время чаще используются электронные контейнеры, в
которых может быть скрыт текст, рисунок (фотография), звук и даже видео.
Все контейнеры можно разделить на контейнеры-оригиналы и контейнеры-результаты. Контейнер-оригинал (или «пустой» контейнер) — это
контейнер, который не содержит скрытой информации. Контейнер-результат
(или «заполненный» контейнер, стего) — это контейнер, который содержит
скрытую информацию. Под ключом понимается секретный элемент, который определяет порядок занесения (внедрения) сообщения в контейнер.
Все контейнеры могут быть разделены на два типа: статические и динамические. Статические контейнеры могут быть использованы как для
скрытого хранения информации, так и для её скрытой передачи. Примером
может служить цифровая фотография. Динамические контейнеры могут
быть использованы только для скрытой передачи информации. В качестве
примера можно назвать пакеты, передаваемые по протоколу TCP/IP [21].
Число разнообразных контейнеров и методов внедрения вложений велико. Многие приёмы сокрытия информации основываются на «обмане»
81
органов чувств человека. При сокрытии информации в графических и видео
файлах изменение изображения столь незначительно, что глаз человека не
регистрирует это изменение.
При сокрытии информации в текстовых документах умышленно выбирают цвета символов и бумаги одинаковыми (скажем, зелёные). В электронных документах используют невидимые (непечатаемые) символы (пробел, табуляцию).
В звуковых Midi-файлах незначительно изменяют длительности звучания нот и за счёт этого скрывают передаваемое сообщение. При вложении
информации в аудио файлы изменения контейнера не должны регистрироваться слухом человека.
Однако такие требования к степени сокрытия информации могут использоваться лишь в простейших случаях. При передаче ценной конфиденциальной информации сделанные вложения не должны обнаруживаться даже с помощью специальных программно-аппаратных средств и профессиональных алгоритмов стегоанализа (например, с помощью статистического
анализа контейнеров, спектрального анализа и т.п.).
Упрощённо идею стеганографии иллюстрирует следующий рисунок.
Рисунок нужно трактовать так. Добавление скрываемого текста практически
не изменяет контейнер. В данном случае контейнером служит графическое
изображение. Заметим, что внедрение дополнительной информации в контейнер не изменяет потребительских свойств контейнера (рисунок попрежнему можно использовать).
Обычно размеры контейнера в несколько раз превышают объем
встраиваемых в них сообщений. Колоссальные объёмы HTML-страниц, графических, текстовых, звуковых и видео файлов, хранящихся на серверах Интернета, позволяют практически неконтролируемо и незаметно обмениваться
секретной информацией между пользователями, находящимися в разных
точках земного шара.
Рассмотрим пример скрытой передачи информации в текстовых документах. Следующая фраза на первый взгляд посвящена описанию природы:
Среди темных елей гроздьями алели небольшие островки густой рябины – абсолютно фантастические, изумительно яркие.
Тем не менее, предыдущий текст — это всего лишь контейнер, в котором студентка Виктория Подольская запрятала секретное слово стегано-
82
графия (нужно читать только первые буквы каждого слова). Подобным образом можно передавать различные скрытые сообщения. Сходная идея используется в акростихах.
Акростих — стихотворение, в котором начальные буквы строк составляют слово или фразу.
В следующем стихотворении поэт Николай Гумилёв поместил имя
любимой женщины - Анны Ахматовой.
Ангел лёг у края небосклона.
Наклонившись, удивлялся безднам.
Новый мир был синим и беззвёздным.
Ад молчал, не слышалось ни стона.
Алой крови робкое биение,
Хрупких рук испуг и содроганье.
Миру снов досталось в обладанье
Ангела святое отраженье.
Тесно в мире! Пусть живёт, мечтая
О любви, о грусти и о тени,
В сумраке предвечном открывая
Азбуку своих же откровений.
Скрытно информацию можно передать, используя телестих.
Телестих — особая стихотворная форма, в которой последние буквы
каждой строки, при чтении сверху вниз, образуют какое-либо слово. В качестве примера приведём стихотворение И.Чудасова «Колокол».
Произнося чудесный чистый звук,
Вишу на колокольне. Высоко!
Неоднократно сам звенеть хотел,
Разлиться песней сердца далеко,
Но мой язык во власти чьих-то рук.
Вздохнул бы я свободно и легко,
Когда бы сам, не по заказу, пел.
Ещё один способ скрытой передачи информации в стихах реализуется
с помощью месостихов.
Месостих – стихотворная форма, в которой сообщение скрыто в
средней части стихотворения.
Приведём пример такого стихотворения (автор Семён Гонсалес).
Хороший месостих приятно
Любому человеку посвятить.
Поэта месседж – звучно! внятно!
В нем тень Орфея, Ариадны нить,
В нем лоск античности, песнь лиры;
Любой эстет найдёт душе приют.
Слова сияют, как сапфиры…
Стихи своих читателей найдут.
83
Известны исторические примеры, когда для сокрытия факта передачи
информации сообщение писали молоком между строк письма (симпатические чернила). После нагревания листка с невидимым текстом над открытым
пламенем свечи появлялся текст. В приведённом примере контейнером для
передачи скрытого сообщения служило безобидное бытовое письмо с описанием каких-то повседневных подробностей. Но ценная информация была
записана между строк и на беглый взгляд цензоров была незаметна.
Хрестоматийным стал пример передачи скрытой информации, использованный в древности. Рабу брили голову, делали татуировку на голове,
ждали, когда вырастут волосы, и отправляли раба в назначенное место.
В месте приёма информации его опять брили и читали секретное сообщение.
Контейнером служила курчавая голова человека.
Легче всего проиллюстрировать идею скрытой передачи информации
с помощью фотографий и рисунков. В настоящее время практически у каждого взрослого человека имеется фотоаппарат (например, встроенный в сотовый телефон). Число фотографий, ежедневно появляющихся на нашей
планете, оценивается миллиардами штук. Фотографии легко использовать
для скрытой передачи информации, например, с помощью MMS или электронной почты.
Рассмотрим несколько примеров скрытой передачи информации.
На следующих фотографиях скрыто слово «ФБТО». Эта аббревиатура
означает: «Факультет Базового Телекоммуникационного Образования». На
первой фотографии изображены 32 студента (средний ряд), которые сидят в
определённом порядке (в виде матрицы 8х4). Каждая буква закодирована
одним байтом (причём юноши соответствуют логическим единицам, а девушки - нулям).
Первый байт 11010100 (отсчёт сверху вниз, слева направо). Эта комбинация соответствует букве «Ф». Второй байт – 11000001 - буква «Б» и т.д.
Это же слово на второй фотографии скрыто несколько иным способом: единицы – это сидящие студенты, а нули – это пустые места.
Рис. 3.1.1. Информация скрыта в расположении людей
Потенциальные возможности сокрытия информации в фотографиях
огромные: можно в качестве отличительных признаков использовать наличие или отсутствие головных уборов, цвет одежды, положение рук и т.п.
84
Информацию можно скрыть, нанеся малозаметные метки на рамке рисунка. При этом логические единицы и нули заменяются точками разных
цветов. Следующая фотография содержит портрет велосипедистки, помещённый в рамку. Справа изображён левый верхний угол фотографии в увеличенном масштабе. Здесь хорошо видны внедрённые знаки.
Рис. 3.1.2. Информация скрыта в рамке рисунка.
Очевидно, что если противнику известно, где размещена скрытая информация, то извлечение и декодирование сообщения не представляет труда.
Усложнить стеганоанализ можно путём предварительного шифрования
скрываемого текста.
Ещё один способ повышения криптостойкости скрытого сообщения
заключается в том, что окрашиваемые пиксели размещают не линейно (последовательно), а с помощью псевдослучайных чисел. При этом эта последовательность чисел становится секретным ключом, который известен только
доверенным лицам на передающей и приёмной сторонах.
Скрыть секретный текст на фотографии можно, разукрасив определённым способом лампочки на ёлочной гирлянде.
Рис. 3.1.3. Информация скрыта с помощью разноцветных фонарей
Скрыть буквы можно с помощью рисунка, у которого фон выглядит в
виде пёстрой мозаики. При этом скрываемые символы располагаются в
определённых (заранее оговорённых) местах изображения. На следующем
рисунке скрытно передаваемые буквы расположены в углах картинки в виде
85
искажённой матрицы пикселей. Алгоритм искажения символов определяется
секретным ключом.
Рис. 3.1.4. Информация скрыта в углах рисунка
В войсках для маскировки военной техники используют маскирующие
сети. Благодаря сетям объекты сложно различить с большой высоты и с
большого расстояния. Эту идею можно использовать для сокрытия информации в электронных графических контейнерах.
Одна из возможных реализаций может быть выполнена следующим
образом. В графическом редакторе на белом листе пишется секретный текст
буквами определённого цвета. Поверх текста наносится сетка хаотической
формы, причём цвет сетки должен незначительно отличаться от цвета скрываемых букв (одна из цветовых составляющих R, G, B изменяется на одну
единицу).
На приёмной стороне рисунок «проявляют» (извлекают скрытую информацию). Для извлечения скрытого текста в графическом редакторе выполняют заливку сетки белой краской. В результате этого сетка исчезает и
проступает секретный текст.
Рис. 3.1.5. Информация скрыта сеткой
Возможно внедрение не только скрываемого текста в мультимедийные контейнеры, но и скрытая передача одного мультимедийного продукта в
другом мультимедийном контейнере.
Примером может служить стегосистема для сокрытия цифровых данных в графических или звуковых файлах [22]. Стегосистема делит исходный
(скрываемый) файл и файл контейнер на множество одинаковых по размеру
86
блоков данных, нумерует блоки данных файла контейнера (формирует индексы), сравнивает каждый блок данных скрываемого файла с блоками данных контейнера, отыскивает наиболее похожие блоки данных в контейнере,
определяет номера индексов наиболее сходных блоков данных в контейнере
для каждого блока данных из скрываемого файла и скрывает все полученные
индексы в младших разрядах младших слов контейнера.
Рис. 3.1.6. Скрытая передача рисунка с помощью другого рисунка
Идея скрытой передачи одного рисунка в другом рисунке состоит в
том, что исходный рисунок и графический контейнер разбивают на блоки
одинакового размера (в показанном выше примере размер каждого блока 8х8
пикселей, а число блоков равно 16). Каждый блок передаваемого рисунка
заменяют блоком контейнера, который имеет наибольшее сходство с заменяемым блоком. Для нахождения наиболее сходных блоков используется логическая операция Исключающее ИЛИ.
На принимающую сторону передают номера блоков контейнера в
нужной последовательности. Для показанных рисунков последовательность
такая: 3-4-2-2-7-16-9-10-11-2-13-14-2-1-2-2. Нумерация блоков выполнена
слева направо и сверху вниз.
Таким образом, передаваемый рисунок заменяется числами (индексами). Принятый рисунок будет отличаться от переданного, так как он состоит из фрагментов другого рисунка. Понятно, что воспроизведение на приёме будет тем точнее, чем больше полностью совпадающих блоков в передаваемом рисунке и контейнере. В приведённых рисунках полностью совпадают незаполненные (пустые) блоки, а также блок 6 исходного рисунка полностью идентичен блоку 16 контейнера.
Этот способ позволяет не только скрытно передать изображение, но
и сжать информацию. Каждый блок исходного изображения (для цветного
изображения 8х8х24 = 1536 бит) заменяется одним числом. В 24-х битном
рисунке 1600х800 (объём 3,66 Мбайт) содержится 20 тысяч блоков 8х8. Для
записи номеров этих блоков достаточно пяти десятичных цифр, то есть 40
87
бит на каждый блок. Для скрытой передачи рисунка с помощью индексов
достаточно 0,1 Мбайт информации. Таким образом можно осуществить сжатие в 36 раз. Однако это будет сжатие с потерями, так как принятый рисунок
отличается от исходного.
Эта идея может быть использована и для скрытой передачи одного
звукового файла в другом звуковом файле (в контейнере). В этом случае
отыскивают сходные отсчёты (семплы) и также передают лишь номера отсчётов контейнера.
Рис. 3.1.7. Форма WAV сигнала
Для внедрения цифровых данных в мультимедийные контейнеры разработано большое число коммерческих и любительских программ. Например, S-Tools, JPHS, Open Puff, Courier, StegoMagic и др.
Рис. 3.1.8. Пользовательский интерфейс программы Courier
На рисунке показан пользовательский интерфейс программы Courier
(автор программы — Kelce Wilson). Программа позволяет скрыть передаваемое сообщение внутри рисунка или фотографии. В качестве контейнера используется рисунок, созданный студенткой Е. Яшновой.
Программа управляется с помощью пяти командных кнопок: Open a
New Bitmap (Открыть новый рисунок), Extract Message (Извлечь сообщение), Hide New Message (Скрыть новое сообщение), Save Bitmap (Сохранить
рисунок), Help — Instructions (Помощь).
88
Максимально возможное число символов в сообщении зависит от
размера выбранного рисунка-контейнера.
Перед внесением скрываемого текста изображение-контейнер преобразуется в 24-битный рисунок. Это позволяет сделать незаметным для глаза
изменения цветов пикселей, в которых запрятана информация. Более 16
миллионов цветовых оттенков делают практически неразличимыми происходящие с рисунком небольшие изменения.
Теоретически один пиксель 24-битной цветной картинки позволяет
скрыть 3 бита секретной информации.
Если размер цветного рисунка или фотографии составляет 400  600
пикселей, то такой контейнер способен вместить 400  600  3 = 720000 бит
секретной информации. Так как для передачи (или хранения) одного символа текста требуется 1 байт информации, то контейнер может содержать
«начинку» объёмом 90 000 байт (т. е. символов, букв, цифр). Такой контейнер-рисунок способен уместить более 30 страниц секретного текста.
Анализ работы программы Courier показал, что её автор не полностью
руководствовался теорией стеганографии и для маскировки сообщения использовал два последних (младших) бита файла-контейнера (а не один, как
этого требует теория). Это позволило ему вдвое увеличить объем хранимой в
контейнере информации.
Заметим, что данная программа может быть использована лишь для
учебных целей (для иллюстрации идей стеганографии). Для криптоаналитиков выделить скрытое с помощью программы Courier сообщение не составит
особого труда.
Значительно профессиональнее сделана программа SteganographyTools (сокращённое название S-Tools, автор — Andrew Brown). Данная программа вначале сжимает текст сообщения, затем шифрует его методами
криптографии и лишь потом помещает сообщение в файл-контейнер. При
этом скрываемая информация равномерно «распыляется» по всей поверхности рисунка.
В качестве контейнера программа допускает использовать как графические, так и звуковые файлы. Графические файлы должны быть представлены в форматах BMP или GIF, а звуковые файлы — в формате WAV.
Криптографическое шифрование осуществляется по одному из алгоритмов (IDEA, DES, Triple DES или MDC) со 128-битным ключом, причём
ключ формируется из символов пароля, введённого пользователем.
Порядок работы с программой достаточно прост. Он базируется на
принципе Drag and Drop (перенеси и положи). Вначале нужно развернуть
окно программы так, чтобы оно занимало часть экрана. На свободной части
экрана развернуть Проводник или папку Мой компьютер с изображением
значка (пиктограммы, иконки) файла-контейнера. Иконку файла-контейнера
следует перенести внутрь окна программы S-Tools. В правом нижнем углу
программы появится информация с указанием допустимого объёма файла-
89
сообщения. Затем по технологии Drag and Drop внутрь окна нужно перенести иконку файла-сообщения. После этого следует ввести пароль и сохранить зашифрованное сообщение.
Дешифрация скрытого сообщения ведётся в обратном порядке: вначале скрытый файл перетаскивается (буксируется) внутрь окна программы.
Затем правой кнопкой вызывается контекстное меню и вводится использованный пароль (пункт Reveal).
На рисунке показан внешний вид программы S-Tools с изображённым
звуковым файлом-контейнером (его имя — AUTORUN). Надпись в правом
нижнем углу информирует пользователя о том, что внутрь программы можно запрятать текст объёмом 10 810 байт.
Музыкальные файлы позволяют скрывать большой объем информации. Так, если преобразование аналогового сигнала в цифровой сигнал происходит с частотой дискретизации 44,1 кГц, то это позволяет ежесекундно
сохранять 44 100 бит информации в монофоническом сигнале и 88 200
бит — в стереофоническом. Таким образом, в звуке, длящемся 1 секунду,
можно поместить текст объёмом более 10 Кбайт.
Рис. 3.1.9. Пользовательский интерфейс программы S-Tools
90
Рис. 3.1.10. Окно программы S-Tools
Завершая данный раздел, приведём краткое сравнение способов создания шифрованных сообщений методами криптографии и стеганографии.
Криптография и стеганография решают сходные задачи, но разными
способами. Криптография превращает секретное сообщение в непонятный
для непосвящённого человека текст, а стеганография делает секретное сообщение невидимым.
91
3.2. Метод LSB
Многие способы скрытой передачи информации основываются на том
факте, что мультимедийные файлы имеют цифровую форму. При этом последние биты отсчётов практически не влияют на качество мультимедийного
продукта, так как они содержат шумы аналогоцифрового преобразования.
Современные технологии сбора, преобразования, хранения и передачи
информации базируются на цифровых способах обработки информации. Современные вычислительные машины, фотоаппараты, видеокамеры, телефоны, магнитофоны являются цифровыми. Эти устройства работают с цифровыми сигналами двух уровней: сигналом высокого уровня (его условно
называют логической единицей) и сигналом низкого уровня, который именуют логическим нулём.
Всё разнообразие результатов, получаемых цифровыми устройствами
(звуки, изображения, фильмы, результаты вычислений и т.д.), складывается
из бесчисленных преобразований цифровых сигналов.
Следует помнить, что исходные сигналы (существующие в окружающем мире, а не искусственно созданные человеком) имеют аналоговую (непрерывную) природу. Освещённость небосвода на рассвете при бесконечно
малом изменении времени изменяется на бесконечно малую величину. Уровень шума водопада может варьироваться на очень малую величину. Смещение улитки при её движении происходит плавно, а не дискретно.
Непрерывная форма информации характеризует процесс, который не
имеет перерывов и теоретически может изменяться в любой момент времени
и на любую величину.
В отличие от аналогового цифровой сигнал может варьироваться лишь
в определённые моменты времени и принимать лишь заранее обусловленные
значения (например, только значения напряжений 0 и 3,5 В). Моменты допустимого изменения уровня цифрового сигнала задаёт тактовый генератор
конкретного цифрового устройства.
Для преобразования звукового аналогового сигнала в цифровой сигнал требуется провести дискретизацию непрерывного сигнала во времени,
квантование по уровню, а затем кодирование отобранных значений. Таким
образом, при преобразовании аналогового сигнала в цифровой сигнал неизбежно должно происходить небольшое искажение сигнала, так как потребуется округление цифрового сигнала до ближайшего допустимого значения.
Длинная сплошная линия, снимаемая цифровым фотоаппаратом, с помощью дискретной светочувствительной матрицы, превращается во множество близкорасположенных точек. Непрерывное движение объекта при видеосъёмке заменяется конечным числом быстро чередующихся кадров.
Дискретизация — замена непрерывного (аналогового) сигнала последовательностью отдельных во времени (или в пространстве) отсчётов это-
92
го сигнала. Наиболее распространена равномерная дискретизация, в основе
которой лежит теорема Котельникова.
На рисунке 3.2.1. схематично показан процесс преобразования аналогового (например, звукового) сигнала в цифровой сигнал. Подобный аналоговый сигнал можно наблюдать на выходе микрофона при записи речи, фоточувствительного элемента при изменении освещённости, датчика давления
перед грозой и т.д.
Рис. 3.2.1. Схема преобразования аналогового сигнала в цифровой
Цифровой сигнал в данном случае может принимать лишь пять различных значений по уровню. Естественно, что качество такого преобразования невысокое (погрешность велика). Из рисунка видно, что изменение цифрового сигнала возможно лишь в некоторые моменты времени (в данном
случае этих моментов одиннадцать).
После такого преобразования непрерывный сигнал представляют последовательностью чисел. Показанный на рисунке непрерывный сигнал заменяется числами 2-3-4-4-4-3-2-2-3-4-4. Десятичная система счисления в рассматриваемом примере использована лишь для большей наглядности. Фактически аналоговый сигнал преобразуют в последовательность единиц и нулей. Результаты данного преобразования можно представить таблицей 3.2.1.
В данном случае цифровые сигналы представлены четырьмя разрядами двоичных чисел. Очевидно, что, чем больше разрядов у двоичных чисел
(а значит, тем больше число уровней квантования) и чем чаще во времени
осуществляются отсчёты (выборки), тем точнее будет преобразован непрерывный сигнал в цифровой.
С другой стороны, очевидным является тот факт, что замена непрерывного быстро изменяющегося сигнала дискретным и квантованным будет
сопровождаться появлением искажений (возникновением шумов).
93
Время
t1
t2
t3
t4
t5
t6
t7
t8
t9
t10
t11
Десятичные
числа
2
3
4
4
4
3
2
2
3
4
4
Таблица 3.2.1.
Двоичные
числа
0010
0011
0100
0100
0100
0011
0010
0010
0011
0100
0100
Помимо шумов, создаваемых аналого-цифровым преобразователем,
шумы в цифровом сигнале появляются по многим другим причинам. Электромагнитные эфирные помехи (действующих при записи сигнала), изменение напряжения в сети электропитания записывающей аппаратуры, дыхание
певца или певицы в момент записи песни, дрожание фотокамеры или быстрое смещение снимаемого объекта, изменение цвета сканируемой страницы,
шумы электронных приборов (матрицы) приводят к тому, что последний бит
цифрового сигнала изменяется по случайному закону.
При цифровой аудиозаписи используется процесс выборки, заключающийся в периодическом измерении уровня (громкости) аналогового звукового сигнала (например, поступающего с выхода микрофона) и превращении полученного значения в последовательность двоичных чисел.
При сканировании, фото- и видеосъёмке дискретизация осуществляется за счёт дискретной (точечной) конструкции светочувствительных матриц.
Для преобразования аналогового сигнала в цифровой используется
специальный конвертор, называемый аналогово-цифровой преобразователь
(АЦП). Сигнал на выходе АЦП представляет собой последовательность двоичных чисел, которая может быть записана на лазерный диск, отправлена по
сети другому корреспонденту. Обратная конверсия цифрового сигнала в непрерывный сигнал осуществляется с помощью цифроаналогового преобразователя (ЦАП).
94
Рис. 3.2.2. Схема передачи аналогового сигнала
Качество аналогово-цифрового преобразования характеризует параметр, называемый разрешением. Разрешение — это количество уровней
квантования, используемых для замены непрерывного аналогового сигнала
цифровым сигналом. Восьмиразрядная выборка позволяет получить только
256 различных уровней квантования цифрового сигнала, а шестнадцатиразрядная выборка — 65 536 уровней.
Ещё один показатель качества трансформации непрерывного звукового сигнала в цифровой сигнал — это частота дискретизации — количество
преобразований аналог-цифра (выборок), производимое устройством в одну
секунду. Этот показатель измеряют килогерцами (килогерц — тысяча выборок в секунду). Типичное значение частоты дискретизации современных лазерных (оптических) аудиодисков — 44,1 кГц.
Преобразование аналогового изображения в цифровой сигнал происходит в фотоаппаратах, видеокамерах, сканерах с помощью матрицы, содержащей несколько миллионов светочувствительных элементов. Рассмотренный принцип преобразования непрерывного сигнала в цифровой показывает,
что цифровой сигнал содержит шумы, которые проявляются в практически
случайном изменении последнего бита цифрового отсчёта.
Это дает возможность скрытно передавать информацию в электронных контейнерах за счёт внедрения информации в последний малозначимый
бит цифрового отсчёта.
При сокрытии сообщений методами компьютерной стеганографии часто используют информацию, скрытую в последнем (наименьшем) значащем
бите LSB (Last Significant Bits). В отечественных публикациях для его обозначения используют аббревиатуру НЗБ (наименьший значащий бит). При
цифровом представлении графики и звука последний бит контейнера является малозначимым, часто изменяющимся по случайному закону. Шумы, возникающие при аналого-цифровом преобразовании звука и изображения
(шумы квантования), случайным образом изменяют последний бит каждого
отсчёта.
Рассмотрим простейший пример.
95
Предположим, что имеется последовательность двоичных чисел (8
байт), отображающих в цифровом виде какой-то графический образ в формате BMP:
10100001-10101110-11010110-11001110-11000111-11001010-11010110-11101101
В данном примере каждое число контейнера представлено восьмью
битами информации. Во многих случаях последний бит может быть безболезненно изменён, и пользователь не заметит произошедшей подмены.
Например, при вариации младшего бита невозможно визуально заметить
отличия в цветной графической картине, где каждый пиксель представлен
двадцатью четырьмя битами. Также нельзя на слух уловить изменения, происходящие в звуковом файле с 16-ти битным квантованием по уровню.
Предположим, что в приведённый выше фрагмент контейнера необходимо «запрятать» русскую букву «А», представленную с помощью кодовой таблицы CP-1251. Десятичное представление буквы «А» имеет вид
192D, а двоичное — 11000000B.
Модифицируя имеющийся блок двоичных чисел (контейнер), поместим в контейнер двоичное число 11000000В. При этом 8 бит файласообщения записываются в 8 чисел файла-контейнера:
10100000-10101110-11010110-11001110-11000110-11001010-11010111-11101101
Эта же процедура внедрения скрытой информации иллюстрируется
следующей таблицей. Заметим, что здесь буква «А» записана, начиная с
младших битов.
Следующая таблица наглядно показывает порядок внедрения битов.
R
Пиксель 1
G
B
R
Пиксель 2
G
B
R
Пиксель 3
G
B
Байт
1
Байт
2
Байт
3
Байт
4
Байт
5
Байт
6
Байт
7
Байт
8
Байт
9
0
0
0
0
0
0
1
1
…
0
0
0
0
0
0
1
1
Биты
При использовании в качестве контейнера звукового файла формата
WAV внедрение ведётся в последний бит отсчёта (семпла).
96
3.3. Форматная стеганография
Существует большое число способов скрытой передачи информации
в графических файлах. Рассмотрим возможность использования для этого
особенности формата BMP. Дамп памяти для рисунка размером 5х3 пикселя
показан ниже.
Рис. 3.3.1. Дамп памяти
Два байта 42H и 4DH, представленные в шестнадцатеричной системе счисления, указывают на то, что формат данного файла BMP. В соответствии с кодовой таблицей CP-1251 эти числа после декодирования дают латинские буквы BM (то есть, графический формат Bit Map).
Рис. 3.3.2. Расположение
пикселей
Шестнадцатеричное число 66Н, расположенное по адресу 02Н, говорит о том, что размер данного файла равен 102 байта. Это значение получено путём перевода шестнадцатеричного числа 66Н в десятичную систему
счисления. Число 36Н, записанное по адресу 0AH, указывает, с какого адреса начинается запись картинки (это смещение от начала файла, длина заголовка). По адресу 12H указана ширина рисунка, выраженная в пикселях. В
данном случае число пикселей равно 5. Высота рисунка указывается в ячейке 16Н (для рассматриваемого рисунка высота - 3 пикселя). В ячейке 1AH
указано число плоскостей (рис. 3.3.1). По адресу 1СН указана глубина цвета.
В данном случае число 18Н говорит о том, что для формирования цветовых
оттенков этого рисунка используется 24 бита (по 8 бит на каждую цветовую
составляющую). В ячейке 22Н указывается объем памяти (в байтах), необхо-
97
димый для запоминания битовой карты (объем рисунка без служебной информации).
Дамп памяти (рис. 3.3.1.) описывает рисунок (3.3.2). Рисунок состоит из 15-ти пикселей (прямоугольник 5х3). Из них одиннадцать пикселей белые, пиксель в левом верхнем углу прямоугольника - чёрный (1), в левом
нижнем углу - красный (2), в правом нижнем – зелёный (3) и в верхнем правом – синий (4).
Запись битовой карты в память начинается с левого нижнего угла
рисунка, ведётся построчно слева – направо, снизу - вверх. Красный пиксель
(2) описывается составляющими R=255, G=0, B=0. Запись информации в
памяти (при увеличении адреса ячейки) ведётся в обратном порядке B-G-R
(синий – зелёный – красный). Таким образом, в самую первую ячейку битовой карты (адрес 36Н) заносится синяя составляющая B=00. В ячейку 37Н
записывается зелёная составляющая красного пикселя G=00, а в ячейку 38Н
красная составляющая R=FF (см. следующий рисунок). На рисунке 3.3.2.
составляющие красного пикселя обозначены цифрой 2.
Рис. 3.3.3. Дамп памяти с обозначениями
Следующие три пикселя в нижней строке рисунка - белые. Поэтому
очередные девять байт имеют максимальное значение FFH (255D). В ячейках 42Н, 43Н и 44Н размещаются три байта зелёного пикселя (цифра 3).
В ячейке 45Н размещён байт 00 – это дополнение, предназначенное
для выравнивания строк дампа памяти. Содержимое этой ячейки избыточно,
оно не несёт никакой полезной информации. Однако содержимое этой ячейки передаётся в файле вместе с рисунком.
Следующие пять пикселей рисунка 3.3.2. (вторая строка) – белые.
Эти пиксели описываются с помощью пятнадцати байт FFH, которые размещены в ячейках памяти 46Н…54Н. В ячейке памяти 55Н помещается выравнивающий байт 00.
В ячейках 56Н, 57Н и 58Н размещаются байты 00 – это цветовые
компоненты чёрного пикселя. Далее на рисунке размещены 3 белых пикселя
верхней строки. Им соответствуют девять байт FFH.
98
В ячейках 62Н, 63Н и 64Н размещаются цветовые составляющие
синего пикселя. Ячейка 65Н используется для выравнивания. Три дополнительных байта обозначены цифрой 5.
Дополнительные ячейки появляются в тех случаях, когда число пикселей в строке рисунка не кратно четырём. Именно дополнительные байты в
графическом файле, предназначенные для выравнивания строк, могут быть
использованы для скрытой передачи информации в графическом файле.
Рассмотрим несколько примеров анализа дампов памяти для картинок разного размера и разного содержания.
Ниже показан рисунок размером 4х3 пикселя, который содержит белые и цветные пиксели.
Рис. 3.3.4. Рисунок с четырьмя цветными пикселями
На следующем рисунке показан дамп памяти для указанного рисунка. В таблице выделены области памяти, в которых содержится описание
цветовых составляющих пикселей.
Рис. 3.3.5. Дамп памяти с выделенными ячейками
Заголовок файла занимает в памяти 54 байта (ячейки с адреса 00Н до
36Н). Сам рисунок занимает 36 байт (информация о размере рисунка содержится в ячейке 22Н). Файл занимает 90 байт (см. ячейку 02Н, где содержится
шестнадцатеричное число 5АН).
Проверим указанные данные с помощью простейших вычислений.
Рисунок содержит 12 пикселей с глубиной цвета 24 бита. Перемножение
этих чисел и перевод результата в байты даёт число 36, и оно совпадает с
числом, указанным в заголовке. Суммирование объёма заголовка и объёма
рисунка даёт значение 90 байт, что также совпадает с числом, указанным в
заголовке. Рассмотрим рисунок 8х3 пикселей, содержащий жёлтый, красный
и синий пиксели, расположенные на белом фоне.
Рис. 3.3.6. Рисунок с тремя пикселями
99
Из заголовка видно, что рисунок содержит 8 столбцов и 3 строки
(ячейки 12Н и 16Н).
Рис.3.3.7. Дамп памяти с выделенными ячейками
В ячейке 22Н указан объём памяти (в байтах), необходимый для сохранения рисунка (без служебной информации). Перевод шестнадцатеричного числа 48Н в десятичную СС даёт десятичное число 72 байта.
Выполним элементарную проверку указанной информации. Рисунок
содержит 8 х 3 = 24 пикселей. Для описания одного пикселя требуется 24
бит, а для описания всех пикселей рисунка необходимо 576 бит (или 72 байта). Результаты расчёта совпали с данными в заголовке файла.
Объём файла указан в ячейке 02Н. По этому адресу сохранено десятичное число 126. Суммирование объёма рисунка с объёмом заголовка даёт
такое же число: 72 + 54 = 126. Объём заголовка определяется путём непосредственного подсчёта числа занимаемых ячеек, либо эту информацию
можно считать в ячейке 0АН. Ниже показан рисунок размером 3х3 пикселя,
который содержит белые и цветные пиксели.
Рис. 3.3.7. Рисунок 3х3
На изображении дампа памяти выделены области, где записана информация о цветных пикселях.
100
Рис. 3.3.8. Дамп памяти с выделенными ячейками
Заголовок занимает в памяти 54 байта, а непосредственно рисунок
36 байт. Весь файл занимает 90 байт. Описание красного пикселя содержится
в ячейках 36Н, 37Н и 38Н (цветовые составляющие с увеличением адреса
располагаются в таком порядке: синий – зелёный – красный). Описание зелёного пикселя находится в ячейках 3СН, 3DH и 3EH. Информация о цветовых
составляющих синего пикселя приведены в ячейках 54Н, 55Н, 56Н.
Рисунок содержит 9 пикселей и для его описания требуется 27 байт.
Однако по адресу 22Н указано десятичное число 36 (на 9 байт больше). Это
говорит о том, что в файле имеется девять ячеек памяти, в которых не переносится никакая информация и их содержимое не отображается на экране
монитора. Эти ячейки на предыдущем рисунке закрашены серым цветом.
Очевидно, что указанные ячейки памяти могут быть использованы для скрытой передачи дополнительной информации внутри этого рисунка. При этом
потребительские свойства рисунка не изменятся, он будет занимать прежний
объём памяти, а само изображение не изменится.
Внедрим в этот контейнер слово «Аллегория». В шестнадцатеричной
системе счисления это слово будет выглядеть так:
C0 EB EB E5 E3 EE F0 E8 FF.
Внедрение слова выполним в соответствии со следующей таблицей:
Таблица 3.3.1.
Адрес 3F
40
41
4B
4C
4D
57
58
59
Байты C0
EB
EB
E5
E3
EE
F0
E8
FF
В результате внедрения информации дамп памяти будет выглядеть
так.
Рис. 3.3.9. Дамп памяти
101
Закономерность появления дополнительных байтов в графическом
файле формата BMP иллюстрируется с помощью следующей таблицы.
Таблица
Число пикселей Число байт,
Ближайшее неЧисло выравнив строке (шинеобходимых
меньшее целое
вающих байтов
рина рисунка)
для описания
число, кратное
строки
4
4
12
12
0
5
15
16
1
6
18
20
2
7
21
24
3
8
24
24
0
Таблицу следует трактовать следующим образом.
Если ширина рисунка, выраженная в пикселях, кратна четырём
(например, 4, 8, 12), то в файле не будет дополнительных (выравнивающих)
байтов. Если ширина рисунка, например, пять пикселей, то сначала располагаются 15 байтов строки, а затем один выравнивающий байт, так как ближайшее большее целое число, кратное четырём, равно 16. Если ширина рисунка 6 пикселей, то потребуется 18 ячеек для их размещения и две выравнивающие ячейки. Объясняется это тем, что ближайшее число, кратное четырём, это 20.
Самое большое возможное число дополнительных байтов для каждой строки рисунка 3 будет, если ширина рисунка равна 7 +4n пикселям, где
n = 0, 1, 2, 3 и т.д. (натуральные числа, начиная с нуля). С увеличением ширины рисунка на один пиксель число дополнительных байтов для каждой
строки будет циклически изменяться по закону: 0-1-2-3-0-1-2-3….
Рассмотренная закономерность хорошо прослеживается на белом
прямоугольнике шириной 6 пикселей, а высотой 2. Четыре дополнительных
байта заполнены нулями.
Рис. 3.3.10. Дамп памяти
102
3.4. Внедрение информации в старшие разряды WAV-файла
Существует большое число способов внедрения дополнительной
информации в мультимедийные контейнеры. Возможно незаметное размещение скрытой информации на HTML-страницах с помощью непечатаемых
знаков, в TCP-пакетах за счёт изменения длины пакетов [5], в MIDI-файлах
благодаря незначительному изменению громкости и длительности звучания
нот [23], в текстовых файлах посредством использования дополнительных
пробелов [24], в видео клипах путём внедрения информации в отдельные
кадры. Скрытно передать информацию можно за счёт использования особенностей формата мультимедийных контейнеров с помощью форматной
стеганографии [25], а также с помощью других методов [26,27].
Идея стеганографического внедрения дополнительной информации в
семплы цифровых звуковых сигналов состоит в том, что зашифрованную
скрываемую информацию в двоичной форме побитно внедряют в семплы
путём замены бита семпла на скрываемый бит дополнительной информации.
Причём используемые для внедрения дополнительной информации
звуковые каналы, номера разрядов семплов, интервал между используемыми
для внедрения семплами выбирают в соответствии с секретным псевдослучайным ключом и с учётом психофизических характеристик человеческого
слуха.
Подтверждением высокой криптостойкости заявляемого способа
скрытой передачи информации являются следующие соображения.
Для извлечения информации из контейнера без ключа криптоаналитик должен решить такие задачи.

Определить, в каких звуковых каналах имеются семплы с
внедрённой информацией.

Определить, в какие семплы произведено внедрение (разделить семплы на информационные и маскирующие).

Определить, в какие разряды используемых (информационных) семплов произведено внедрение.

Дешифровать полученную последовательность извлечённых
битов.
Такая задача является нетривиальной и вычислительно сложной.
При условии, что ключ является криптографически надёжным, используется
современный шифр [4] данная задача неразрешима на данном уровне науки и
техники за приемлемое время.
Решение задачи осложняется тем, что выбор звуковых каналов (левый-правый, первый-пятый-третий…), номеров используемых семплов, номеров разрядов происходит по псевдослучайному закону. Два соседних
внедряемых бита могут оказаться в разных звуковых каналах, в разных сем-
103
плах, а используемый разряд семпла непредсказуем. Предварительное шифрование внедряемой информации в ещё большей степени усложняет криптоанализ.
С помощью рассматриваемого способа можно организовать скрытую
передачу (или хранение) различного вида информации: текстовой, графической, звуковой. В любом случае скрываемая информация должна быть перед
внедрением преобразована в цифровой вид.
Наиболее наглядно проиллюстрировать реализацию данного технического решения можно на примере скрытого внедрения текста (сообщения)
в оцифрованный звуковой сигнал.
Внедряемый текст целесообразно предварительно зашифровать, а
затем преобразовать в двоичный код (это можно сделать и в обратной последовательности: преобразовать текст в двоичный код, а затем зашифровать).
Известно большое число алгоритмов шифрования, некоторые из которых
стали национальными стандартами [4].
В соответствии с секретным ключом выбирается для внедрения один
из каналов звукового файла. Будем считать, что в данный момент используется стереозвучание и для внедрения сеансовым ключом определён левый
звуковой канал.
На рис.3.4.1. схематично показана диаграмма некоторого оцифрованного звука.
Рис. 3.4.1. Оцифрованный звук
В формате звука WAV при глубине звука (разрядности) более 8 отсчёты представляют положительными и отрицательными целыми числами.
Семплы на рисунке условно показаны в виде многоразрядных двоичных чисел (младшие разряды располагаются вблизи оси времени). Семплы, расположенные в первом квадранте, представляют положительными числами. От-
104
счёты из четвёртого квадранта представляют отрицательными числами. Высота семплов пропорциональна интенсивности звука.
На рисунке 3.4.2. семплы, в которые производится внедрение дополнительной информации, заштрихованы. Такие семплы можно назвать информационными. Остальные семплы можно назвать маскирующими (не используемыми), так как в них нет скрываемой информации.
Рис. 3.4.2. Информационные семплы
Разделение семплов на информационные и маскирующие происходит в соответствии с секретным ключом.
На рис.3.4.3. тёмной штриховкой показаны разряды семплов, в которые производится внедрение скрываемой информации.
Рис. 3.4.3. Выбранные разряды семплов
Таким образом, для технической реализации заявляемого способа
потребуется три генератора псевдослучайных чисел.
105
С помощью первого генератора псевдослучайных чисел (ГПСЧ) на
передающей стороне выбирается звуковой канал для внедрения. Например,
для стереофонической системы последовательность, формируемая ГПСЧ 1,
может быть такой: левый-левый- правый-левый-правый-правый… Для шестиканального звукового файла последовательность используемых каналов
может быть такой: 3-4-2-2-6-1-2-5-5-6-3-1…
С помощью ГПСЧ 2 производится деление всех файлов на информационные и маскирующие. Удобнее всего формировать псевдослучайные
числа, которые показывают, сколько маскирующих семплов располагается
после информационного семпла. Например, число 0 говорит о том, что два
информационных семпла следуют друг за другом. Число 1 говорит, что между информационными семплами располагается один маскирующий семпл.
Число 2 сигнализирует, что между информационными отсчётами находятся
два «пустых» семпла и т.д.
Генератор ГПСЧ 3 выбирает разряды отсчётов для внедрения дополнительной информации в выбранный семпл.
Порядок работы устройства на передающей стороне будет таков.
Устройство синхронизации после формирования маркера начала работы криптосистемы запускает ГПСЧ 1, который определяет в какой звуковой канал производится первое внедрение. Затем включается ГПСЧ 2, который выбирает номер информационного семпла. Наконец, срабатывает ГПСЧ
3, который указывает, в какие разряды семпла происходит внедрение дополнительной информации.
Естественно, что три аналогичных ГПСЧ с теми же начальными
установками и в той же последовательности должны работать на приёмной
стороне. Этим осуществляется синхронизация выбора звукового канала, номера и разряда семпла.
При ознакомлении с порядком работы генераторов ГПСЧ2 и ГПСЧ 3
может сложиться впечатление, что все семплы и разряды информационных
семплов выбираются по случайному закону. На самом деле существуют
ограничения, которые определены на основании экспериментальных исследований психофизических особенностей слуха человека. И эти ограничения
заложены в конструкцию генераторов псевдослучайных чисел.
На рисунке 7 показана зависимость слышимости звукового сигнала
f(x) от номера разряда, в который было произведено внедрение дополнительной информации. Были использованы 16-ти разрядные семплы, причём нумерация разрядов производилась от старших разрядов к младшим (старший
разряд имел порядковый номер 1, а младший – номер 16).
В экспериментальных исследованиях участвовало 20 студентов, которые оценивали громкость звучания предъявленных 555 файлов по пятибалльной системе (от 0 до 4). Файлы представляли собой запись «тишины» и
отличались друг от друга тем, что производилась запись единицы в разные
106
семплы и разные разряды. Наибольшей громкости звучания соответствовал
балл 4, а файлу без вложения («полная тишина») соответствовал балл 0.
Рисунок 3.4.4. показывает, что внедрение единицы в 16, 15, 14 и 13
разряды слушателями не воспринимаются даже при воспроизведении «тишины» (паузы между музыкальными произведениями). Очевидно, что с увеличением громкости звукового сигнала становится допустимым внедрение
информации в более старшие разряды.
Рис. 3.4.4. Зависимость слышимости от использованного разряда
Экспериментально было установлено, что органолептическое восприятие звука зависит от частоты появления громких звуков. Наличие редких даже громких звуков человеком не воспринимается из-за инерционности
слуха. На рисунке 8 показано, как зависит слышимость (громкость звучания)
наличия вложений при изменении интервала между информационными семплами (внедрение осуществлялось в разряд 12).
107
Рис. 3.4.5. Зависимость слышимости от интервала между семплами
На приведённом рисунке видна нелинейная частотная зависимость
слуховой системы людей. Наибольшая чувствительность наблюдается на
частоте около 3,4 кГц. Это хорошо согласуется с ранее опубликованными
данными. Из рисунка также видно, что если между информационными семплами располагается 60-70 маскирующих семплов, то звуковой сигнал не
слышен даже при внедрении во фрагменты звукового файла с записью полной «тишины».
Параметры генераторов ГПСЧ 2 и ГПСЧ 3 связаны между собой:
чем больше интервал между информационными семплами, тем в более
старшие разряды можно внедрять информацию. При выборе параметров
ГПСЧ 2 и ГПСЧ 3 рекомендуется ориентироваться на данные следующей
таблицы.
Таблица 3.4.1. Связь длины интервала с номером разряда
Интервал, k
20
100
1000
1000
0
Разряд, х
13
11
10
9
Таблицу 3.4.1. нужно трактовать следующим образом.
Если для настройки выбрать данные из второй колонки, то ГПСЧ 3
должен случайно генерировать числа 13, 14, 15, и 16, то есть во второй строке таблице указан старший разряд семпла, разрешённый для внедрения.
Напомним, что младший разряд здесь имеет номер 16. ГПСЧ 2 должен генерировать псевдослучайное число, указывающее на число маскирующих семплов, расположенных между двумя соседними информационными семплами.
В данном случае это число должно быть 20 и более. Верхнюю границу случайных чисел, генерируемых ГПСЧ 2, выбирают из соображений необходимой криптостойкости и производительности. Чем больше верхняя граница
чисел, тем выше криптостойкость, но меньше производительность, то есть в
единицу времени передаётся меньшее количество дополнительной информации.
Остальные данные таблицы трактуются аналогично. Например, числа в столбце 3 говорят, что псевдослучайно должны формироваться числа
номеров используемых разрядов 11, 12,..,16 и числа маскирующих семплов
должно быть более 100.
Необходимо заметить, что данные таблицы 1 составлены с учётом
использования фрагмента звуковой картины с минимальной интенсивностью
звука (наихудший возможный случай). Это гарантирует отсутствие слышимости вложений в реальных звуковых файлах.
Рассмотренный способ следует использовать преимущественно для
скрытой передачи текста, ключей, паролей, номеров кредитных карточек или
108
небольших
графических
файлов
(например,
логотипа
фирмыправообладателя).
При его использовании для защиты авторских прав логотип фирмы
может быть записан в музыкальное произведение несколько раз. При этом
разделение продукта на части не позволить скрыть авторство, так как логотип будет присутствовать во всех фрагментах (во всех подмножествах мультимедийного продукта).
Разработанное техническое решение позволяет выбрать требующееся соотношение между криптостойкостью и производительностью за счёт
регулировки генераторов псевдослучайных чисел, отвечающих за выбор звуковых каналов, информационных семплов и разрядов в семплах.
Для получения стегосистемы, имеющей максимальную криптостойкость (стегостойкость), следует внедрение производить только в младшие
разряды семплов, максимально увеличивая число маскирующих семплов
(распылять вложение по всему контейнеру) и по возможности реже использовать каждый звуковой канал.
Максимальная производительность стегосистемы достигается при
внедрении в несколько разрядов каждого информационного семпла,
наибольшем сокращении числа маскирующих семплов и интенсивном использовании каждого звукового канала.
Способ позволяет надёжно защитить авторские права, так как удалить дополнительную информацию в старших разрядах семплов и сохранить
приемлемое качество звучания невозможно. Если бы запись велась только в
младшие разряды семплов, то можно было заполнить их псевдослучайными
единицами и нулями.
109
3.5. Скрытая передача информации в сегментах TCP
Методы стеганографии позволяют организовать скрытый канал связи,
маскируя его под обмен ничем непримечательной информацией в сети
TCP/IP.
Рассматриваемый метод скрытой передачи информации заключается в
изменении длины TCP-сегмента таким образом, чтобы значение длины данных (число передаваемых символов), переносимых TCP-сегментом, содержало в себе информацию о секретном тексте [5].
В дальнейшем будем называть число символов открытого текста, помещённого в поле данных сегмента, длиной открытого текста (ДОТ).
Выбор TCP-сегментов в качестве контейнеров позволил добиться того,
что ни в заголовке TCP-сегмента (рис.3.5.1), ни в заголовке IP-дейтаграммы
(рис.3.5.2) биты секретного текста не содержатся в явном виде. Вместе с тем,
размер данных, передаваемых в TCP-сегменте, можно вычислить по значениям полей Общая длина и ДЗ (Длина заголовка) IP-дейтаграммы, и поля
Смещение данных заголовка TCP-сегмента.
Рис 3.5.1. Формат заголовка IP-дейтаграммы
Отметим важные для реализации метода скрытой передачи информации поля IP-заголовка.
Длина Internet-заголовка (Internet Header Length) измеряется в четырехоктетных словах (октет равен восьми битам). Длина заголовка IPдейтаграммы не может быть меньше 5 четырехоктетных слов.
Общая длина (Total Length) – это длина, измеренная в октетах, включая заголовок Internet и поле данных. Размер поля составляет 16 бит, что позволяет формировать дейтаграмму длиной до 65535 октетов. Однако в большинстве сетей такие большие дейтаграммы не используются. Спецификация
RFC 791 устанавливает минимальный размер дейтаграммы, равный 576 октетам. Такая дейтаграмма должна быть принята любым хостом.
Рассмотрим формат заголовка TCP-сегмента (рис. 3.5.2) и выделим
некоторые важные для данного случая поля.
110
Рис. 3.5.2. Формат заголовка TCP-сегмента спецификации RFC 793
Смещение данных (Data Offset) – длина TCP-заголовка в четырёхоктетных словах.
PSH – функция проталкивания (PUSH);
Проиллюстрируем предлагаемый метод сокрытия информации с помощью примера.
Предположим, что между сторонами (корреспондентами) уже установлено TCP-соединение. В целях упрощения будем считать, что передаваемые TCP-сегменты и IP-дейтаграммы не содержат полей Options и Padding.
Символы секретного текста кодируются значением длины данных, передаваемых очередным TCP-сегментом.
Рассмотрим пример скрытой передачи символа «Z», имеющий десятичный код 90 по таблице ASCII.
На передающей стороне формируется TCP-сегмент, который должен
перенести пользовательские (открытые, не содержащие секретных сведений)
данные. Длина передаваемых открытых данных должна совпадать с кодом
скрытно передаваемого символа. Для передачи формируется блок открытых
данных длиной 90 октет. К пользовательским данным добавляется TCPзаголовок длиной 20 октет (5 слов по 4 байта). Полученный TCP-сегмент,
общая длина которого составляет 110 байт, передаётся программе IPпротокола, которая, добавив 20-ти байтовый IP-заголовок, формирует IPдейтаграмму. Общая длина IP-дейтаграммы записывается в поле общей длины (в данном случае длина составляет 130 байт). Сформированная IPдейтаграмма передаётся на канальный уровень (модель OSI) и затем транслируется по открытому каналу.
На приёмной стороне для извлечения скрытого символа требуется вычислить длину данных, переносимых TCP-сегментом. Для извлечения информации из общей длины IP-дейтаграммы (поле Total Length) вычитается
длина IP-заголовка 130 – 5 ∙ 4 = 110 байт. Из полученного значения общей
длины TCP-сегмента вычитается значение смещения данных (поле Data Offset) 110 – 5 ∙ 4 = 90 байт. Полученное значение длины открытого текста трак-
111
туется как код принятого символа секретного текста, то есть на приёме будет
зафиксирован символ «Z».
Реальный IP-заголовок принятой из сети дейтаграммы может выглядеть следующим образом (поля заголовка заполнены двоичными данными в
соответствии с рис. 3.5.1).
Рис. 3.5.3. Пример заголовка реальной IP-дейтаграммы
Здесь поле общей длины содержит двоичное число 0000000010001110,
что эквивалентно десятичному числу 142. Поле длины заголовка Internet содержит двоичное число 0101, то есть 5 в десятичной форме. Это означает,
что длина IP-заголовка равна пяти четырёхбайтным словам (20 байтам). Таким образом, длина TCP-сегмента равна 142 – 20 = 122 байта.
На рис.3.5.3 упомянутые поля выделены серым цветом. Ниже показан
дамп заголовка TCP-сегмента.
3.5.4. Пример заголовка реального TCP-сегмента
Здесь в поле смещения данных (Data Offset) записано двоичное число
1000, равное 8 в десятичной системе счисления (на рисунке поле выделено
серым цветом). Это означает, что размер заголовка TCP-сегмента равен
восьми четырёхбайтным словам, то есть 8 ∙ 4 = 32 байтам.
Таким образом, количество символов, содержащихся в TCP-сегменте,
составляет 122 – 32 = 90 байт. Согласно кодовой таблице ASCII, десятичный
код 90 соответствует символу «Z».
Так как два соседних символа секретного текста передаются в разных
TCP-сегментах и IP-дейтаграммах, то можно говорить о сокрытии информации с пространственным распределением текста по контейнерам.
112
Учитывая требования спецификации протокола TCP, описываемый
метод внедрения секретной информации в TCP-сегменты технически может
быть реализован путём управления флагом проталкивания (PUSH). Действительно, в соответствии со спецификацией RFC 793, данные пользователя,
подготовленные для передачи по сети, могут накапливаться в буфере. Отправка данных адресату в этом случае будет производиться при полном заполнении буфера передачи. При этом передача строго заданного объёма информации будет невозможна. Однако если в заголовке TCP-сегмента выставлен флаг проталкивания, то программа TCP должна немедленно отправить
все имеющиеся в буфере данные. Аналогично на приёме программаобработчик TCP встретив флаг проталкивания, должна передать принятые в
буфер приёма данные программам протоколов верхних уровней.
Развивая рассмотренную идею, возможно создать стеганографическую
систему с использованием ключа.
Для этого секретный текст представляют в двоичном виде. Биты фрагмента секретного текста размещают в разрядах двоичного значения ДОТ,
передаваемого с помощью TCP-сегмента. При этом некоторые TCPсегменты, передаваемые по сети, не будут содержать секретной информации.
Заголовки TCP-сегментов и IP-дейтаграмм не будут содержать секретной
информации, что позволяет защитить скрытый канал от обнаружения. Кроме
того, биты секретного текста оказываются распределёнными между различными TCP-сегментами, а также внутри двоичного значения ДОТ каждого
информационного сегмента. Распределение бит секретного текста между
сегментами и внутри двоичного значения ДОТ должно осуществляться на
основе псевдослучайных последовательностей, генерируемых на основе известных только корреспондентам системы данных – стеганографического
ключа.
Рассмотрим пример передачи секретного текста, представляющего последовательность бит 1, 1, 0, 1, 0. Предположим, что на основании ключа
выработана следующая псевдослучайная последовательность, определяющая
порядок передачи информационных и маскирующих TCP-сегментов: 0, 1. В
рассматриваемом примере будем полагать, что значение MSS для сети равно
556 октет. Также будем считать, что TCP-заголовки не содержат опции и
имеют длину LTCPзаг = 20 октет.
Максимальная длина открытого текста, передаваемого по данной сети,
будет составлять MSS – LTCPзаг = 556 – 20 = 536 (октет). Следовательно, максимальное число разрядов двоичного значения ДОТ:
LTCPmax = log2(MSS – LTCPзаг) = log2(536) = 9,066
С учетом округления до ближайшего большего целого значения получаем LTCPmax = 10 бит.
Так как первый бит псевдослучайной последовательности, определяющей порядок передачи информационных и маскирующих сегментов, равен
0, первый сегмент будет маскирующим. Длина открытого текста, переноси-
113
мого с помощью этого сегмента выбирается произвольно (случайно) из диапазона [1; 536] октет. Фрагмент открытого текста выбранной длины передаётся с помощью TCP-сегмента. На этом передача маскирующего сегмента
завершается.
Следующий TCP-сегмент должен быть информационным, то есть
должен переносить секретные данные. Для его формирования псевдослучайно на основании ключа генерируется начальное значение ДОТ в виде последовательности бит, длиной LTCPmax – 1 = 9 бит. Для примера возьмём следующую последовательность: 1, 0, 0, 1, 0, 1, 1, 0, 1. Затем в разрядах, в позициях которых биты имеют единичное значение, размещают биты секретного
текста:
1 0 0 1 0 0 1 0 0
Разряды начального значения ДОТ, в позициях которых биты имеют
нулевые значения, записывается случайная последовательность нулей и единиц:
1 0 1 1 1 0 1 0 0
Полученное двоичное значение ДОТ переводится в десятичную форму: 1001110100(2) = 372(10). Таким образом, для передачи фрагмента секретного текста 1, 1, 0, 1, 0 нужно передать в сеть TCP-сегмент, содержащий блок
открытого текста длиной 372 символа.
На приёмной стороне перед началом сеанса связи получатель, зная
ключ, генерирует (воссоздаёт) имеющуюся последовательность следования
информационных и маскирующих сегментов. В силу симметричности рассматриваемой системы, эта последовательность будет 0, 1.
Первый пришедший TCP-сегмент, содержащий данные, получатель
трактует как маскирующий, так как первый элемент последовательности,
определяющей порядок следования информационных и маскирующих сегментов, равен 0.
Следующий сегмент является информационным. Приняв его, получатель вычисляет длину открытого текста, переносимого данным сегментом, и
переводит его в двоичную форму:
1 0 1 1 1 0 1 0 0
Затем на основании ключа получатель воссоздаёт начальное двоичное
значение ДОТ:
1 0 0 1 0 1 1 0 1
Извлечение бит секретного текста осуществляется из тех разрядов
ДОТ, где в соответствующих разрядах начального значения ДОТ размещены
единичные биты:
1
1
0 1
0
Таким образом, на приёме получаем секретный текст 1, 1, 0, 1, 0.
114
4. Пространственное распыление информации
Рассмотрим ещё один подход к сокрытию информации. Он заключается в распылении сообщения по нескольким контейнерам. Такие контейнеры
будем называть распределёнными в пространстве контейнерами.
Перед внедрением сообщение разбивается на n блоков (частей). Затем
выбирается ключ, состоящий из n натуральных чисел. Числа перемешиваются в псевдослучайном порядке. Ключ определяет порядок внедрения блоков
секретного сообщения в пространственно распределённые контейнеры. После сокрытия текста контейнеры передаются по одному или нескольким открытым каналам связи. При этом некоторые контейнеры могут быть пустыми, а некоторые контейнеры могут содержать дезинформацию (шум). На
приёмной стороне производится извлечение блоков секретного послания в
порядке, который определён секретным ключом. Если противнику удастся
перехватить отдельный контейнер, то это не позволит ему восстановить сообщение в полном объёме.
Рассмотрим пример. Разобьём секретный текст на блоки, состоящие из
одной буквы (символа). Скроем блоки текста в графических контейнерах.
Для упрощения изложения используем запись данных в конец файла изображения формата JPEG. Вместе с блоком секретного текста в файл будем
записывать длину текстового блока, выраженную в байтах. Предположим,
что для внедрения выбрано 4 отдельных контейнера (например, фотографии
в формате JPEG). Пусть требуется передать секретный текст – «УДАР». Будем считать, что при выбранном ключе контейнеры используются в следующем порядке: 4, 2, 1, 3.
Вначале нужно разбить секретное сообщение на блоки. Разделим
текст на четыре блока (символа): «У», «Д», «А», «Р». В соответствии с выбранным ключом блок «У» будет записан в контейнер с номером 4, блок «Д»
- в контейнер с номером 2 и т. д., наконец, блок «Р» будет скрыт в контейнере с номером 3. На рисунке 4.1 представлена часть дампа файла JPEG до
внедрения блока сообщения.
Рис. 4.1. Часть дампа файла контейнера до внедрения сообщения
115
Нетрудно заметить, что файл заканчивается двумя байтами FF D9
(значения представлены в шестнадцатеричной системе счисления). Эти байты являются маркером, обозначающим конец JPEG изображения. На рисунке
4.2 показана часть дампа того же файла после внедрения блока секретной
информации.
Рис. 4.2. Часть дампа файла контейнера после внедрения сообщения
На рисунке видно, что сразу за маркером конца сообщения следует
байт D3, представляющий символ первого блока секретного текста «У». Далее записаны четыре байта – это длина записанного блока. Аналогичным
образом скрыты и другие части секретного послания.
Процесс распределения информации в пространстве, можно представить в виде простой схемы (рисунок 4.3).
У
img1.jpg
Д
img2.jpg
А
img3.jpg
Р
img4.jpg
Рис. 4.3. Распределение информации в пространстве
На приёмной стороне с помощью ключа «СЕКРЕТ» восстанавливается
необходимая последовательность извлечения блоков секретной информации
из распределённых контейнеров: 4, 2, 1, 3. Первый блок извлекается из контейнера под номером 4. Для этого из файла считываются последние 4 байта,
в которых указывается длина блока секретной информации. Затем считывается сам блок – символ «У». После этого обрабатывается контейнер под но-
116
мером 2 и т. д. Наконец, извлечённые блоки соединяются, образуя читаемый
текст: «У» + «Д» + «А» + «Р» = «УДАР».
Если злоумышленник перехватит один или несколько контейнеров, то
он будет обладать не всей информацией, а только лишь её частью. Если же
перехвачены будут все отдельные контейнеры, то нарушителю предстоит
решить задачу восстановления верной последовательности блоков секретной
информации. Ещё больше осложнить криптоанализ можно за счёт введения
ложных контейнеров, которые будут содержать дезинформацию (шум). На
приёмной стороне ложные контейнеры будут отброшены, так как известен
ключ распыления информации.
Заметим, что исходная информация должна быть предварительно зашифрована одним из криптографических способов. Другими словами, в распределённые контейнеры помещается не открытый текст, а криптограмма.
Распределение информации в пространстве создаёт ещё один уровень защиты.
Рассмотренный принцип сокрытия информации с распылением данных в пространстве был реализован в программе Di-stego (от английского
«distributed steganography», т. е. «распределённая стеганография»). Внешний
вид приложения показан на рисунке 4.4.
Рис. 4.4. Главное окно программы di-stego
Для работы с программой сначала нужно составить список распределённых в пространстве контейнеров – файлов изображений формата JPEG.
Затем нужно задать ключ, на основании которого будет выбран порядок размещения частей секретного текста в общем контейнере. Если программа используется для сокрытия сообщения, то следует ввести текст в соответствующее поле и нажать кнопку «Скрыть текст». Если программа используется
для извлечения ранее внедрённого сообщения, то следует нажать кнопку
117
«Извлечь текст». Дальнейшее совершенствование метода пространственного
распыления информации сводится к побитному распределению информации
по контейнерам. В этом случае каждый отдельный контейнер не будет содержать ни одного распылённого (цельного, единого, полного) байта скрываемого текста.
Рассмотрим побитное распределение информации на примере. В качестве исходных данных возьмем условия предыдущего примера.
Сначала представим секретный текст в двоичной форме, используя
таблицу CP1251 (таблица 4.1).
Таблица 4.1
Десятичный ANSIДвоичный
Символ
код
ANSI-код
У
211
11010011
Д
196
11000100
А
192
11000000
Р
208
11010000
Следующий шаг – генерация последовательности внедрения на основе
ключа. Для примера возьмём следующую последовательность: 1, 3, 2, 2, 4, 1,
1, 3; 3, 3, 1, 1, 4, 3, 2, 4; 1, 3, 3, 3, 1, 3, 1, 3; 1, 4, 4, 1, 2, 2, 2, 1. Биты текста
внедряются последовательно от старших разрядов к младшим. Порядок
внедрения бит первого символа секретного текста показан на рисунке 4.5.
1
img1.jpg
1
0
img2.jpg
1
0
0
img3.jpg
1
1
img4.jpg
Рис. 4.5. Побитовое распределение сообщения в пространстве
При использовании такого сокрытия биты сообщения претерпевают
псевдослучайную перестановку, что увеличивает криптографическую стойкость внедренного сообщения. Вместе с тем, ни один из отдельных контейнеров не содержит информации ни об одном полном символе секретного
текста, а значит, перехват отдельных контейнеров не позволит нарушителю
восстановить сообщение. При перехвате всех контейнеров злоумышленнику
будет сложно восстановить сообщение, так как необходимо определить по-
118
следовательность извлечения бит секретного текста. Эта задача многократно
усложняется при внедрении в контейнеры криптограммы.
Таким образом, для повышения криптостойкости передаваемых сообщений рекомендуется вначале шифровать сообщение, дробить зашифрованное сообщение на возможно мелкие части и распылять эти части в пространстве по большому числу контейнеров. Повысить криптостойкость распыленной в пространстве информации можно за счет использования пустых контейнеров, а также ложных контейнеров, в которых содержится шум и отсутствует полезная информация.
Рассмотрим, как создать еще один барьер защиты информации с помощью временного распыления информации.
Основная идея заключается в том, что сообщение, представленное в
двоичной форме, дробят на части (блоки). Каждый блок помещают в отдельный информационный контейнер. Для каждого информационного контейнера формируют контейнер-близнец. Информационное пространство заполняется контейнерами-близнецами. В определенные моменты времени контейнеры-близнецы автоматически подменяют информационными контейнерами.
Демонстрация информационного контейнера идет непродолжительное время
(достаточное для считывания информации). Время начала демонстрации
каждого информационного контейнера определяется ключом.
Техническая реализация предлагаемого метода может осуществляться
с помощью нескольких сайтов, расположенных на разных серверах.
Среди множества Web-страниц всех сайтов заранее выбираются страницы, на которых будет размещаться скрываемая информация (информационные страницы). Для каждой информационной страницы создают страницу
- близнец, которая внешне ничем не отличается от информационной страницы. На всех сайтах постоянно демонстрируются страницы-близнецы, которые не содержат секретной информации. В определенный момент времени
(известный только на передающей и на приемной сторонах) происходит замена страницы-близнеца на информационную страницу. Время (момент)
замены страниц определяется секретным ключом.
Сокрытие информации на Web-страницах может осуществляться в рисунках, звуковых файлах, видеоклипах, анимационных картинках, баннерах,
текстах гостевых книг, форумах, блогах, показаниях счетчиков и т.д. Скрипты, осуществляющие подмену страниц, можно реализовать с помощью языков программирования PHP, Perl, JavaScript.
Таким образом, пространственно-временное распыление информации
позволяет формировать несколько уровней защиты. Первый уровень – криптографический. Следующий уровень стеганографический пространственный,
предполагающий дробление и распыление зашифрованной информации по
нескольким контейнерам (каналам).
119
5. Временное распыление информации
При использовании принципа временного распыления информации
блоки сообщений передают по каналам связи в псевдослучайные моменты
времени, причём для уменьшения вероятности перехвата продолжительность
передачи фрагмента сообщения устанавливают минимально возможной, но
достаточной для принимающей стороны. Расписание передачи информации
(временные окна) определяется корреспондентами с помощью ключа. Передачу информационных блоков в канале связи перемежают трансляцией информационно пустых (маскирующих) блоков.
Идею передачи информации по расписанию рассмотрим на примере
использования для связи глобальной сети Internet. Программную реализацию
принципа временного разделения сообщения можно осуществить с помощью
различных языков программирования (JavaScript, Perl, PHP, Java и т.д.).
Рассмотрим, как выполнить временное распыление с помощью языка
программирования JavaScript. Приведённый ниже скрипт позволяет кратковременно заменять фотографию const.jpg на фотографию secret.jpg. В данном
случае замена будет происходить в 17 часов 18 минут 35 секунд, а обратная
замена - в 17 часов 19 минут 26 секунд. Передаваемое сообщение предварительно скрыто размещают в контейнере secret.jpg.
<script language="JavaScript">
var start = new Date();
var end = new Date();
start.setHours(17);
start.setMinutes(18);
start.setSeconds(35);
end.setHours(17);
end.setMinutes(19);
end.setSeconds(26);
var now = new Date();
st = start.getTime();
et = end.getTime();
time = now.getTime();
if ((time >= st) && (time < et))
src=\"secret.jpg\">");
else document.write("<img src=\"const.jpg\" >");
</script>
document.write("<img
В рассмотренном примере демонстрация секретной информации на
Web-странице происходит в течение короткого времени. Внешне две демон-
120
стрируемые фотографии должны быть одинаковыми (объекты-близнецы).
Однако фотография secret.jpg является стегоконтейнером и содержит в себе
скрытую информацию.
Приведённый пример иллюстрирует идею временного распыления
информации. Но проводить практическую реализацию этой идеи с помощью
JavaScript нежелательно. Недостатком подобной защиты сообщения является
имеющаяся у криптоаналитика возможность ознакомления с кодом скрипта,
за счёт чего он в состоянии определить момент демонстрации (передачи)
стегоконтейнера. Просмотр текста программы осуществляется стандартным
путём с помощью любого браузера. Этот недостаток присущ всем скриптам,
исполняемым на клиентской ЭВМ. Однако даже при имеющейся возможности по коду скрипта установить время подмены контейнеров у криптоаналитика остаётся нерешённой задача определения доменного адреса (IP-адреса)
Web-страницы, на которой размещён стегоконтейнер. Доменные адреса используемых Web-страниц известны только корреспондентам. Выбор корреспондентами используемых серверов и Web-страниц (каналов связи) осуществляется с помощью ключа.
Рассмотрим пример реализации этой же идеи с помощью языка программирования РНР. Следующий скрипт заменяет в 10 часов 47 минут Webстраницу page2.html страницей page1.html, которая является стегоконтейнером. Через минуту происходит обратная замена.
<?php
// формат ччмм
//Установка времени начала демонстрации стегоконтейнера
$start_time = '1047';
//Установка времени конца демонстрации стегоконтейнера
$end_time = '1048';
//Считывание текущего времени
$now_time = date('Gi');
//Сравнение текущего времени с моментами начала и конца демонстрации
if ($now_time >=$start_time && $now_time <$end_time) {
//Загрузка страницы, содержащей скрытые данные
header('location:page1.html');
exit;
}
else {
//Загрузка маскирующей страницы
header('location:page2.html');
exit;
}
?>
121
Повышение криптостойкости в результате применения принципа временного распыления сообщения происходит за счёт того, что за определённое время может осуществляться многократная подмена оригинального объекта различными объектами-близнецами, но только контейнер, переданный в
заранее обусловленное время, содержит полезную для получателя информацию. При этом маскирующие объекты-близнецы могут содержать дезинформацию (вложение в контейнере есть, но оно не относится к передаваемому
сообщению).
Рассмотренный принцип легко развить и усовершенствовать, например, можно на одной Web-странице сразу демонстрировать несколько стегоконтейнеров (рисунки, тексты, фотографии, видео) и передавать не один
блок информации за определённый промежуток времени, а несколько. Другими словами, пространственно-временное распыление информации можно
вести не только по каналам связи, но и по контейнерам. При этом блоки разных сообщений целесообразно переставлять и передавать их не последовательно, а в псевдослучайном порядке. Это повышает вычислительную сложность криптоанализа.
Скрипты, написанные на языке РНР, являются серверными приложениями, поэтому криптоаналитик не может самостоятельно получить листинги программ и на основе анализа кода определить, в какое время происходит
подмена объекта. Обнаружить подмену можно по изменяющемуся содержимого контейнера, но для этого придётся непрерывно контролировать (сканировать) множество Web-страниц. Сложность пеленгации Web-страницы состоит ещё и в том, что доменный адрес криптоаналитику неизвестен, а до
момента обнаружения роботом поисковой системы нового доменного адреса
проходит несколько дней.
Технологически надёжно реализовать непрерывный мониторинг
большого числа Web-страниц сложно. Это требует от криптоаналитика существенных капитальных и эксплуатационных вложений. Таким образом,
временное распыление – это технологический барьер, сложность преодоления которого состоит в необходимости непрерывного контроля множества
Web-страниц, для чего требуется использование вычислительных средств
большой мощности.
122
Заключение
В будущем для защищённой передачи и хранения ценной информации
будут использоваться самые фантастические методы. Можно пофантазировать на эту тему.
Наряду с контейнерами, которые используют зрительные и акустические образы, видимо, будут использоваться контейнеры, связанные с другими чувствами человека: осязанием, обонянием, вестибулярным аппаратом
[28..38]..
Скрыть информацию можно будет в оттенках запахов, которые наверняка будут передаваться по будущим каналам связи. Телевизионный приемник во время демонстрации фильма будет передавать, например, запах свежих роз, а MMS-сообщение будет пахнуть любимыми духами отправителя
сообщения.
Осязание также будет использоваться для этих целей. Технология виртуальной реальности позволит передавать форму и фактуру изображаемых
предметов (шероховатые - гладкие, холодные - теплые, деревянные – металлические, круглые - квадратные). Информационные перчатки незаметными
поглаживанием руки скрытно передадут информацию.
Ученые смогут передавать по каналам связи эмоции (конечно, не так
примитивно, как это делается сейчас с помощью смайликов). Возможно, что
чувства страха, радости, умиротворенности, любви, ревности, зависти, голода, тщеславия, злости будут такими же контейнерами, какими сейчас являются графические, звуковые, текстовые и видео файлы.
Не исключено, что одним из контейнеров станет сам Человек. Запись
информации в отдельные участки мозга, хирургические операции, которые
позволяют поместить микроконтейнеры в органах человека. Генетика, биохимия, молекулы ДНК – реальность, которая превзойдёт все предсказания
самых раскрепощённых фантастов.
По крайней мере, проблема идентификации Человека, вероятно, будет
решаться с помощью эффективных способов криптографии и стеганографии
(например, путём вживления микрочипа с полной информацией о Человеке).
По мере развития Человека информация о нём будет дополняться (дети, супруги, сведения об образовании, перенесенных заболеваниях, группа крови,
судимости, награды, звания, степени…). Паспорт будет не нужен, так как
считывание информации будет происходить автоматически в аэропорту, в
гостинице, на границе…Первая запись в встроенный в Человека микрокомпьютер произойдёт в роддоме, а последняя запись - при кремации.
Компьютер будет всегда с Человеком (точнее – в Человеке). В нужный момент он свяжется со службой медицинской помощи, указав координаты Человека, попавшего в беду. Очевидно, что во всех случаях необходима
123
защита передаваемой информации, для того чтобы исключить подтасовки,
злонамеренные искажения. Здесь потребуются наработки, сделанные специалистами по защите информации. Встроенный в Человека микрокомпьютер
будет выполнять роль «черного ящика, которыми оснащены современные
самолёты. Вероятно, встроенные в Человека устройства позволять вести
аудиозаписи на протяжении всей жизни человека, выполняя роль дневника.
Исчезнут обычные деньги, а электронные средства оплаты будут храниться во вживленном в организм микрокомпьютере, который будет снабжен
приемопередатчиком. Сам Человек станет свидетельством о рождении, паспортом, блокнотом, медицинской карточкой, диктофоном и кошельком одновременно. «Всё своё ношу с собой» - этот принцип будет реализован в
полной мере.
На встроенном в тело микрокомпьютере будет сохраняться информация об отношениях окружающих людей к данному Человеку. В будущем,
если какой-то водитель автомобиля (или гравилёта) не пропустит пешехода
на перекрестке, то на встроенный в него компьютер поступит информация об
отношении окружающих к данному поступку. Это будет та самая чаша весов, которая определит кто Вы такой на самом деле (агнец или козлище).
Примитивно говоря: микрокомпьютер будет сохранять Ваш рейтинг в окружающем Мире. Говоря возвышенно можно сказать: это будет Ваш документ
для Страшного суда (документальное описание Вашей Души).
Хотя автор считает, что «Страшный суд» находится внутри нас, в
нашей собственной памяти. Анализируя свои поступки, мы судим себя сами.
И это – самый беспристрастный жёсткий суд.
Состязание между криптографами и криптоаналитиками превратится
в непрерывное бесконечное соревнование Людей (интеллектуальный футбол,
умственная коррида, бой гладиаторов разума, мозговой бокс). Это будет соревнование Разума и Интеллекта на благо нас, обычных потребителей достижений цивилизации. На благо Человека, стремящегося к Свободе, желающего быть открытым, но сохраняющим в неприкосновенности самые интимные, сокровенные стороны Души.
Большое разнообразие всевозможных контейнеров, принципов их
наполнения (протоколов, алгоритмов) превращают криптографию и стеганографию в интереснейшую сферу человеческой деятельности, где каждый
Человек в состоянии предложить неординарную идею, найти новый метод,
оригинальной алгоритм.
Разрабатываемые методы криптоанализа и стегоанализа, видимо, помогут в будущем при общении с разумными существами других цивилизаций.
124
Список литературы
1. Алексеев А.П. Способ стеганографического внедрения дополнительной информации в семплы цифровых звуковых сигналов. Заявка
2016111525/08(018191), МПК H04L 9/00 (2006.01) H04K 1/00 (2006.01).
[Текст] Положительное решение от 22.03.2017 г.
2. Алексеев А.П., Аленин А.А. Исследование методов обнаружения
вложений в звуковых файлах формата WAV [Текст] //Безопасность информационных технологий, 2011, том 9, №1. С 51-56.
3. Алексеев А.П., Аленин А.А., Михайлов В.И. Выявление стеганографических вложений в WAV-файлах с помощью спектрального анализа
[Текст] // Инфокоммуникационные технологии, том 10, № 2, 2011. Стр.53-57.
4. Панасенко С.П. Алгоритмы шифрования. Специальный справочник [Текст]. – СПБ.: БХВ-Петербург, 2009. – 576 с.
5. Алексеев, А. П. Способ стеганографического сокрытия информации [Текст]: Патент 2374770. Опубл. 27.11.2009 / А. П. Алексеев, В. В. Орлов.
6. Криптография: скоростные шифры [Текст] / А. А. Молдовян [и
др.]. – СПб.: БХВ-Петербург, 2002. – 495 с.
7. Бабаш А.В., Шанкин Г.П. Криптография. [Текст] - М.: СОЛОН-Р,
2002. - 512 с.
8. Алферов А.П., Зубов А.Ю., Кузьмин А.С., Черемушкин А.В. Основы криптографии. [Текст] - М.: Гелиос АРВ, 200. - 480 с.
9. Криптография: скоростные шифры [Текст] / А. А. Молдовян [и
др.]. – СПб.: БХВ-Петербург, 2002. – 495 с.
10. Карлащук В. И. Электронная лаборатория на IBM PC. Том 2: Моделирование элементов телекоммуникационных и цифровых систем [Текст] /
В. И. Карлащук. - М.: СОЛОН-ПРЕСС, 2006. – 640 с.
11. Алексеев А. П. Информатика 2007 [Текст] / А. П. Алексеев. – М.:
СОЛОН-ПРЕСС, 2007. - 608 с.
12. Алексеев А. П. Математические методы формирования многоалфавитных шифров замены [Текст] / А. П. Алексеев // Инфокоммуникационные технологи. 2009. – Т. 7, № 2. - С. 21-25.
13. Алексеев А. П. Использование ЭВМ для математических расчётов
[Текст] / А. П. Алексеев, Г. Е. Камышенков. – Самара: Парус, 1998. - 190 с.
14. Rivest R., Shamir A., Adleman L. A Method for Obtaining Digital
Signatures and Public-Key Cryptosystems//Communications of the ACM.— New
York, NY, USA: ACM, 1978.— Т.21.— № 2, Feb. 1978.— pp. 120 —126.—
ISSN 0001-0782.
15. Diffie, W., Hellman, M. New Directions in Cryptography. IEEE Trans.
Inform. Theory IT-22, (Nov. 1976). — pp. 644-654.
125
16. Шнайер Б. Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си. [Текст] – Издательство ТРИУМФ, 2002. -816 с.
17. Романец Ю.В., Тимофеев П.А., Шаньгин В.Ф. Защита информации
в компьютерных системах и сетях. [Текст] – М.: Радио и связь, 2001. – 376 с.
18. Смарт Н. Криптография. [Текст] – М.: Техносфера, 2006. - 528 с.
19. RSA.
Википедия,
свободная
энциклопедия.
https://ru.wikipedia.org/wiki/RSA. (дата обращения 11.04.2017).
20. Фергюсон Н., Шнайер Б. Практическая криптография: Перевод с
англ. [Текст] – М.: Издательский дом «Вильям», 2005. - 424 с.
21. Алексеев А.П. Информатика 2015: учебное пособие [Текст] / Алексеев А.П. – М: СОЛОН-Пресс, 2015. – 400 с. ISBN 978-5-91359-158-6.
22. Cryptosystem for encrypting digital image or voice file; пат. США US
6023511 A.
23. Алексеев А.П., Аленин А.А. Методы внедрения информации в звуковые файлы формата MIDI [Текст] // Инфокоммуникационные технологии,
том 9, № 1, 2011. Стр. 84-89.
24. Конахович Г.Ф., Пузыренко А.Ю. Компьютерная стеганография.
Теория и практика [Текст].-М.: МК-Пресс, 2006. – 288 с. ISBN: 966-8806-069.
25. Алексеев А.П., Ванютин А.Р., Королькова И.А., Репечко Д.А.,
Мытько С.С. Современные мультимедийные информационные технологии.
[Текст] – М.: СОЛОН-Пресс, 2017. – 108 с.
26. Method of transmitting audio information and additional information in
digital form; пат. США US 4750173.
27. W.Bender, D.Gruhl, N.Morimoto, A.Lu. Techniques for Data Hiding.
IBM Systems Journal, no. 35. Pp. 313-336, 1996.
28. А.П. Алексеев. Метод пространственно-временного распределения
информации. [Текст] XVI Российская научная конференция профессорскопреподавательского состава, научных сотрудников и аспирантов. - Самара,
ПГУТИ, 2009 г., стр. 167-168.
29. Алексеев А.П., Макаров М.И. Принципы многоуровневой защиты
информации [Текст]// Инфокоммуникационные технологии, том 10, № 2,
2012. Стр. 88-93.
30. А.П. Алексеев, В.Е. Рысаков. Искусственный язык «АСПИРАНТО» [Текст]. XXIII Российская научная конференция профессорскопреподавательского состава, научных сотрудников и аспирантов 1 – 5 февраля 2016 г. г. Самара, ПГУТИ, стр.270-271.
31. А.П. Алексеев. Многоуровневая защита информации. [Текст] XVII
Международная НТК «Проблемы техники и технологий телекоммуникаций»
ПТиТТ-2016, 22-24 ноября 2016 г. Самара, ПГУТИ. Стр.403.
32. Алексеев А.П. Информатика для криптоаналитиков [Текст] / Алексеев А.П. – Самара: ИУНЛ ПГУТИ, 2015. – 376 с
126
33. Алексеев А. П. Уязвимости алгоритма вычисления секретного
ключа в криптосистеме RSA [Текст] // Системы управления, связи и безопасности. 2015. № 3. С. 83-91.URL: http://journals.intelgr.com/sccs/archive/201503/05-Alekseev.pdf
34. Алексеев А. П., Дикарева К. Н., Макаров М. И. Анализ быстродействия алгоритмов вычисления секретного ключа в асимметричной криптосистеме RSA [Текст] // Системы управления, связи и безопасности. 2015. №3.
С. 186-209.
URL:
http://journals.intelgr.com/sccs/archive/2015-03/08Alekseev.pdf.
35. Алексеев А.П. Ключи близнецы в асимметричной криптосистеме
RSA [Текст]. XVI Международная научно-техническая конференция «Проблемы техники и технологии телекоммуникаций», том 3. – Уфа. – 2015. Стр.
120-122.
36. Алексеев А.П. Анализ уязвимости алгоритма вычисления секретного ключа в криптосистеме RSA [Текст]. Инфокоммуникационные технологии. Том 13, № 4, 2015. Стр. 464 – 467.
37. Алексеев А.П., Макаров М.И., Орлов В.В. Криптография и стеганография в учебном процессе. Конференция: Новите предизвикателства пред
системите за информационна сигурност. Болгария, 4 и 5 июня 2015 г.
38. Алексеев, А. Изучение криптографии и стеганографии в Поволжском государственном университете телекоммуникаций и информатики (ПГУТИ). В: Сборнике научни трудове на Международна научна конференция МАТТЕХ2014, Шумен 2014 (Болгария). стр.111-113. ISSN 1314-3921.
127
Оглавление
1
2.
3.
4.
5.
Введение ……………………………………………………..........
Принципы многоуровневой защиты информации…………..
Криптографические методы защиты информации ………….
2.1. Симметричные шифры…………..…………………………..
2.1.1. Классические симметричные шифры…………….
2.1.2. Шифрование с помощью графических матриц…..
2.1.3. Шифрование с помощью управляемых операций
2.1.4. Многоалфавитный адаптивный шифр……………
2.2. Асимметричные шифры……………..…………..................
2.2.1. Асимметричный шифр RSA ……………………..
2.2.2. Криптоанализ шифра RSA………………………..
Стеганографические методы защиты информации ………….
3.1. Основные понятия стеганографии………………………….
3.2. Метод LSB…………………………………………………..
3.3. Форматная стеганография…………………………………..
3.4. Внедрение информации в старшие разряды WAV-файла…
3.5. Скрытая передача информации в сегментах TCP/IP………
Пространственное распыление информации………………….
Временное распыление информации…………………………..
Заключение…………………………………………………….......
Список литературы……………………………………………......
Оглавление…………………………………………………………
3
4
8
10
10
26
50
59
67
67
76
80
80
91
96
102
109
114
119
122
124
127
128
Научное издание
Алексеев Александр Петрович
Многоуровневая защита информации
Федеральное государственное бюджетное образовательное учреждение
высшего образования
«Поволжский государственный университет
телекоммуникаций и информатики»
443010, г. Самара, ул. Льва Толстого, 23
________________________________________________________________
Подписано в печать 26.05.17 г. Формат 60х84/16.
Бумага офсетная № 1. Гарнитура Таймс.
Заказ № 1007962. Печать оперативная. Усл. печ. л. 7.29 Тираж 100 экз.
_________________________________________________________________
Отпечатано в издательстве учебной и научно литературы
Поволжского государственного университета
телекоммуникаций и информатики
443090, г. Самара, Московское шоссе, 77, т. (846) 228-00-44
Документ
Категория
Без категории
Просмотров
14
Размер файла
3 015 Кб
Теги
2017, informacii, mnogourovnevyj, monografiya, zawite, alekseevne
1/--страниц
Пожаловаться на содержимое документа