входит разработка средств и методов скрытия факта передачи сообщения.

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

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

Оттуда же известен метод «микроточки»: сообщение записывается с помощью современной техники на очень маленький носитель (микроточку), который пересылается с обычным письмом, например, под маркой или где-нибудь в другом, заранее обусловленном месте.

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

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

12.1. Основы криптографии

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

Для начала рассмотрим эти шифры, а позжереализуем их. Начнем, пожалуй, с шифра замены как с самого простого и наиболее популярного. Примерами самых распространенных из известных шифров замены могут служить шифр Цезаря, «цифирная азбука» Петра Великого и «пляшущие человечки» А. Конан Дойла. Из самого названия видно, что шифр замены осуществляет преобразование заменой букв или других «частей» открытого текста на аналогичные «части» шифрованного текста. Легко дать математическое описание шифра замены. Пусть X и Y – два алфавита (открытого и шифрованного текстов соответственно), состоящие из одинакового количества символов. Пусть также g: X → Y – взаимнооднозначное отображение X в Y. Тогда шифр замены действует так: открытый текст х1х2…хп преобразуется в шифрованный текст g(x1)g (x2)…g(xn).

Шифр перестановки, как видно из названия, осуществляет преобразование перестановки букв в открытом тексте. Примером одного из известных шифров перестановкой может служить шифр «Сцитала». Обычно открытый текст разбивается на отрезки равной длины, и каждый отрезок шифруется независимо. Пусть, например, длина отрезков равна п и g – взаимнооднозначное отображение множества {1,2…., п} в себя. Тогда шифр перестановки действует так: отрезок открытого текста х1х2…хп преобразуется в отрезок шифрованного текста xg(1)xg(2)…xg (n).

Важнейшим для развития криптографии был вывод К. Шеннона о существовании и единственности абсолютно стойкого шифра. Единственным таким шифром является какая-нибудь форма так называемой ленты однократного использования, в которой открытый текст «объединяется» с полностью случайным ключом такой же длины.

Этот вывод был доказан К. Шенноном с помощью разработанного им теоретико-информационного метода исследования шифров. Мы не будем здесь останавливаться на этом подробно, заинтересованному читателю рекомендуем изучить работу К. Шеннона.

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

• полная случайность (равновероятность) ключа (это, в частности, означает, что ключ нельзя выработать с помощью какого-либо детерминированного устройства);

• равенство длины ключа и длины открытого текста;

• однократность использования ключа.

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

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

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

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

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

У пользователя остается единственный путь – получение практических оценок стойкости. Этот путь состоит из следующих этапов.

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

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

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

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

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

12.2. Шифр простой подстановки

В шифре простой подстановки производится замена каждой буквы сообщения некоторым заранее определенным символом (обычно это также буква). В результате сообщение, имеющее видМ = т1т2 тЗт4…, где т1, тп2…. – последовательность букв, переходит в сообщение вида Е = е1е2еЗе4… = f(m1)f(m2)f(m3)f(m4)…, причем функция f(m) имеет обратную функцию g, для которой верно g(f(m)) = m, при всех возможных значениях т. В данном шифре ключом является просто перестановка алфавита (это верно в том случае, если буквы заменяются буквами). Например, подобная перестановка: ЛРЭИБПВЪДЁЗЩЙГХМЦАУОСЖТЯФКЕШНЫЬЧЮ. Она используется следующим образом:

• буква А открытого текста заменяется буквой Л;

• Б заменяется Р;

• В заменяется Э и т. д.

Как можно понять из определения, данный шифр является довольно простым. Перейдем к примеру, показывающему одну из возможных его реализаций. Для этого нам понадобится создать новое приложение, а на форму поместить следующие компоненты: по два компонента классов ТМето и TLabel с соответствующими именами mmDecryptMessage, mmEncryptMessage, IbDecryptMessage, IbEncryptMessage, три компонента класса TButton – btnEncryptMessage, btnDecpyptMessage, btnGenRearrangement, а также один компонент класса TValueListEditor – vleSubst. По умолчанию все перечисленные компоненты находятся на вкладке Standard, кроме компонента класса TValueListEditor, который расположен на вкладке Additional Когда вы закончите создание интерфейса программы, то у вас получится нечто подобное тому, что изображено на рис. 12.1.

Рис. 12.1. Интерфейс программы «Шифр простой подстановки»

Текстовый редактор mmDecryptMessage будет служить для ввода и отображения открытого текста нашего сообщения, mmEncryptMessage – для текста, преобразованного при помощи шифра. Редактор значений vleSubst мы будем использовать для задания перестановки алфавита, при

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату