Пятница, 27 Дек 2024, 09:17
Приветствую Вас Гость
Меню сайта
Категории каталога
Информационная безопасность [6]
Общие вопросы информационной безопасности
Криптоанализ и методы взлома [1]
Обзор наиболее распространенных методов "взлома" информационных систем.
Криптология и защита информации [1]
Шифрование - криптография, основные методы.
История криптологии [5]
Криптология на различных этапах развития цивилизации человечества
Симметричные криптоалгоритмы [4]
Асимметричные криптоалгоритмы [1]
Криптоанализ [1]
Законодательный уровень ИБ [4]
Мини-чат
Главная » Статьи » Библиотека » Симметричные криптоалгоритмы

Простейшие методы шифрования текста
Глава 5. Симметричные криптоалгоритмы
5.1 Простейшие методы шифрования текста
Шифр Атбаш. Коды появились в глубокой древности в виде криптограмм. Порой священные иудейские тексты шифровались методом замены. Вместо первой буквы алфавита писалась последняя буква, вместо второй - предпоследняя и т.д. Этот древний шифр назывался атбаш.
Если попытаться изобразить механизм шифра атбаш наглядно, то это может выглядеть следующим образом:

А Б В Г Д … Э Ю Я _

Рис 5.1
Так, например, для текста, состоящего только из букв кириллического алфавита и пробела, замена будет осуществляться по правилу: А-пробел, Б-Я, В-Ю и т.д. Абсолютно аналогично справедлива обратная замена. При программной реализации методов шифрования текста на языке Object Pascal целесообразно использовать таблицу ASCII и функции работы с ней (ord и chr). В данном случае ключ шифрования не задан явным образом, но подразумевается, что он равен 1.
Можно вполне модифицировать данный простейший шифр и добавить некоторые дополнительные параметры (изменить первичный ключ или способ его генерации).
Данный алгоритм шифрования текста легко запрограммировать, например, следующим образом.
Function Atbash(openchar:char):char;
Begin
Atbash := 255 – ord(openchar);
End;
Как видно из фрагмента программы функция Atbash переводит символ открытого текста в шифр путем зеркального отражения по таблице ASCII, состоящей из 256 символов (0..255).
Шифр Цезаря. Известен факт шифрования переписки Юлия Цезаря (100 – 44 г.г. до н.э.) с Цицероном (106 – 43 г.г. до н.э.). Шифр Цезаря реализуется заменой каждой буквы в сообщении другой буквой этого же алфавита, отстоящей в алфавите от данной буквы на фиксированное число букв. В своих шифровках Цезарь заменял букву исходного открытого текста буквой, расположенной по отношению к исходной букве на три позиции вперед.
Общая схема шифра для латинского алфавита изображена на рис. 2.

А B C D E F G H I

Рис. 5.2
То есть, отображение происходит по правилу: A-D, B-E, C-F, D-G и т.д.
Например, слово BAG будет зашифровано в EDJ. Очевидно, что для обратного преобразования необходимо «сдвинуть» символы в обратную сторону на количество, равное исходному ключу.
Шифрование можно выразить общей формулой:
, где
С – шифрованный символ,
О – открытый текст,
key – ключ (сдвига).
Обратное же преобразование будет выполняться по формуле:
, где
С – шифрованный символ,
О – открытый текст,
key – ключ (сдвига).
О программировании данного шифра мы поговорим несколько позже.
Квадрат Полибия. В Древней Греции (II в. до н.э.) был известен шифр, который создавался с помощью квадрата Полибия. Для шифрования использовалась таблица, представляющая собой квадрат с пятью столбцами и пятью строками, которые нумеровались цифрами от 1 до 5. В каждую клетку такой таблицы записывалась одна буква. В результате каждой букве соответствовала пара чисел, и шифрование сводилось к замене буквы парой цифр.
Идею квадрата Полибия проиллюстрируем таблицей с русскими буквами. Число букв в русском алфавите отличается от числа букв в греческом, поэтому размер таблицы выбран иным (6×6). Заметим, что порядок расположения символов в квадрате Полибия является секретным ключом. Под ключом понимается секретная информация, определяющая, какое преобразование из множества возможных шифрующих преобразований выполняется в данном случае над открытым текстом (см рис. 3).
1 2 3 4 5 6
1 Ы Ь Э Ю Я .
2 , _ А Б В Г
3 Д Е Ё Ж З И
4 Й К Л М Н О
5 П Р С Т У Ф
6 Х Ц Ч Ш Щ Ъ
Рис 5.3
В данном случае шифрование происходит как Символ=№Строки№Столбца, причем существует еще ключ заполнения квадрата, который (как видно из рис. 3) равен 23 и обозначает положение начального символа алфавита. Зашифруем с помощью данного квадрата Полибия фразу «ФАКУЛЬТЕТ ИНФОРМАТИКИ»: 56 23 42 55 43 12 54 32 54 22 36 45 56 46 52 44 23 54 36 42 36. Обратное преобразование также производится по таблице.
Шифр Сцитала. В V в. до н.э. во времена войны Афин и Спарты существовал метод шифрования, основанный на использовании деревянного жезла – сциталы, на который наматывалась лента из папируса. Сообщение наносилось вертикально на ленту и затем лента разматывалась и передавалась получателю. Секретом (ключом) был диаметр сциталы, поскольку при различных размерах прочитать текст не представлялось возможным.
Рис 5.4
При современном представлении данного шифра рассмотрим в качестве ленты и жезла прямоугольную таблицу. При этом ключом будет ее размерность, то есть количество столбцов и строк. Порядок заполнения определим как сверху вниз/слева направо (также можно менять эти параметры в качестве дополнительных ключей). Зашифруем с помощью таблицы сциталы (10×6) фразу : «УЧИТЬСЯ В ИНСТИТУТЕ ТРУДНО ТОЛЬКО ПЕРВЫЕ ПЯТЬ ЛЕТ. ДЕКАНАТ.».
У Я С Т Д Л Е П Е К
Ч Т Е Н Ь Р Я Т А
И В И О К В Т . Н
Т Т Т О Ы Ь А
Ь И У Р Т Е Д Т
С Н Т У О П Л Е .
В результате получим текст «УЯСТДЛЕПЕКЧ ТЕНЬРЯТАИВИ ОКВТ. НТ ТТ ОЫЬ АЬИУРТ Е ДТСНТУОП ЛЕ.» Для обратного преобразования достаточно разделить текст на блоки по количеству столбцов в сцитале и прочитать текст вертикально.
Аффинные криптосистемы. В отличии от шифров, рассмотренных ранее, в Аффинных криптосистемах за счет математических преобразований буквы, заменяющие открытый текст, относительно хаотично перемешаны.
Все буквы алфавита нумеруются числами, например, от 0 до 32. Затем каждая буква открытого текста заменяется буквой, порядковый номер в алфавите которой вычисляется с помощью линейного уравнения.
Аффинные криптосистемы задаются при помощи двух чисел a и b. Для русского алфавита эти числа выбираются из условия a ≥ 0, b ≤ 32. Причем числа a и γ=33 должны быть взаимно простыми. Если это условие не будет выполняться, то две разные буквы могут отобразиться в одну. Каждый код (номер в алфавите) буквы криптограммы определяется по коду буквы открытого текста О по следующему правилу.
Вначале вычисляется число , а затем выполняется операция целочисленного деления числа α на число γ=33. Получившееся число β используется в качестве кода буквы шифрограммы.
Алгоритм шифрования можно записать следующим образом:
1) Выбор чисел (ключей) a ≥ 0, b ≤ 32; причем a и γ=33 взаимнопростые.
2) Определение кода буквы О = ord(A), где А – буква.
3) Вычисление .
4) Вычисление .
5) Определение шифрованного символа по коду С = chr(β).
Для расшифрования исходного текста необходимо знать ключи a, b и произвести операции в обратном порядке.
Таблица Вижинера. Рассмотрим шифр многоалфавитной, или многозначной, замены, который был описан в 1585 г. Французским дипломатом Блезом де Вижинером. Шифрование производится с помощью так называемой таблицы Вижинера.
Каждая строка в этой таблице соответствует одному шифру простой замены (наподобие шифра Цезаря). При шифровании сообщения его записывают в строку, а под ним помещают ключ. Если ключ оказывается короче сообщения, то ключ циклически повторяют. Шифровку получают, находя символ в матрице букв шифрограммы на пересечении столбца с буквой открытого текста и строки соответствующей буквой ключа.
Рассмотрим пример для алфавита, состоящего из 5 кириллических символов: {А, Б, О, Г, Р}. Размерность таблицы определим как 5×5.

А Б О Г Р
А А Б О Г Р
Б Р А Б О Г
О Г Р А Б О
Г О Г Р А Б
Р Б О Г Р А

Рис 5.5
Как видно из рис 4. первичный ключ (положение первого символа алфавита в первой строке) равен 1. Также можно ввести дополнительные параметры, например, шаг смещения букв в таблице в соответствии со строками (в данном случае +1). Предположим, нам нужно зашифровать слово «ГОРБ» с помощью данной таблицы Вижинера. Определим вторичный ключ как слово «РАБ» (если ключ короче сообщения, то повторяем буквы ключа в соответствии с длиной сообщения), тогда шифрование можно описать как:
Сообщение Г О Р Б
Ключ Р А Б Р
Шифровка Р О Г О
В результате и слово «ГОРБ» с помощью таблицы Вижинера 5×5 и набора ключей: (1, +1, РАБ) превратится в «РОГО».
Квадрат Бьюфорта. Существует много других шифров многоалфавитной замены, построенных на таблицах. Один из наиболее известных таких квадратов – квадрат Бьюфорта: его строками являются строки таблицы Вижинера, записанные в обратном порядке.
Рассмотрим пример для алфавита, состоящего из 6 кириллических символов: {А, Б, В, Г, Д, Е}. Размерность таблицы определим как 6×6. Первичный ключ равен 4, шаг = - 3.
Е Д Г В Б А

Е В Б А Е Д Г
Д Е Д Г В Б А
Г Г В Б А Е Д

В А Е Д Г В Б
Б Д Г В Б А Е
А Б А Е Д Г В

Рис 5.6
Зашифруем слово «БЕДА» с помощью данного квадрата Бьюфорта. Определим вторичный ключ как слово «ГАД» (аналогично таблице Вижинера, если ключ короче сообщения, то повторяем буквы ключа в соответствии с длиной сообщения), тогда шифрование можно описать как:
Сообщение Б Е Д А
Ключ Г А Д Г
Шифровка Е Б Д Д

Категория: Симметричные криптоалгоритмы | Добавил: cryptoland (12 Май 2006) | Автор: Павел
Просмотров: 29027 | Комментарии: 25 | Рейтинг: 3.0/1 |
Всего комментариев: 0
Имя *:
Email *:
Код *:
Форма входа
Поиск
Рекомендуем
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Партнеры