Вопрос 8.Криптография с заменой алфавита.
В шифрах с заменой алфавита изначальный алфавит модернизируется с помощью ключа следующим образом:
- ключевое слово (с удалением повторяющихся букв, если они имеются) записывается в начало алфавита:
-оставшиеся буквы дописываются после ключевого слова в привычном порядке. Например, если ключ- слово «командир», то алфавит выглядит следующим образом:
командирбвгежзлпстуфхцчшщьыэюя
-производится шифрование исходного текста любым способом
Пример (шифр Плейфера)
Основой шифра Плейфера является прямоугольная таблица, в которую записан систематически перемешанный алфавит (для удобства запоминания).
Пусть шифр использует прямоугольник размером 5 х 6, в который записан систематически перемешанный русский 30-буквенный алфавит на основе ключевого слова командир:
к | о | м | а | н | д |
и | р | б | в | г | е |
ж | л | п | с | т | |
у | ф | х | ц | ч | ш |
щ | ь | ы | э | ю | я |
Правило зашифрования состоит в следующем.
Буквы биграммы (являющейся шифрвеличиной) находятся в данной таблице. При зашифровании биграмма (i,j) заменяется биграммой (k,l), где k и lопределяются в соответствии с правилами 1-3.
4. Если i и j не лежат в одной строке или одном столбце, то их позиции образуют противоположные вершины прямоугольника. Тогда k и l — другая пара вершин, причем к — вершина, лежащая в той же строке, что и i.
5. Если i и j лежат в одной строке, то k и l — буквы той же строки, расположенные непосредственно справа от i и j соответственно. При этом если одна из букв — последняя в строке, то считается, что ее “правым соседом” является первая буква той же строки.
Аналогично, если i и j лежат в одном столбце, то они заменяются их “соседями снизу.
Зашифруем фразу “автором метода является Уитстон”. В качестве “пустышки” будем использовать редкую букву ф. Представим фразу в виде последовательности биграмм:
АВ ТО РО МФ ME ТО ДА ЯВ ЛЯ ЕТ ТЯ УИ ТС ТО НФ
(Нам пришлось дважды вставить “пустышку”.)
В соответствии со сформулированными правилами получаем шифртекст:
ВП ЗД ЗР ОХ ДБ ЗД КН ЭЕ ТЫ ТШ ШД ЩЖ ЖТ ЗД 04
или без пробелов
Впздзрохдбздкнэетытшгидщжжтздоч
Вопрос 9.Криптография с использованием шифров двоичного гаммирования.
Пусть есть какой-то алфавит, его символы закодированы числами. Каждое число предстваляется в виде группы из m бит, а m выбирается так, чтобы можно было закодировать все символы алфавита. Допустим, в алфавите 8 символов. Если m = 2, можем закодировать только 4 из них, а вот m = 3 - пойдёт.
Есть открытый текст. Каждый символ имеет какой-то номер в алфавите, поэтому может быть закодирован теми самыми битами. Например, алфавит: {А = 00, Б = 01, В = 10, Г = 11}, m = 2. Тогда БАГ => 01 00 11. Эти группы бит соединяем в одну цепочку. То есть был БАГ, а стало 010011.
На всякий случай стоит пояснить, что такое псевдослучайные числа. Это числа, последовательность которых получена по некоторому алгоритму, причём так, что со стороны её трудно отличить от случайной. Некоторые алгориты получения псевдослучайных чисел можно узнать здесь.
Что дальше? Полученная ранее цепочка разбивается на блоки по q бит, пусть всего получилось N блоков. Пусть есть ещё группа G из p целых разных псевдослучайных чисел, не меньших 0 и не больших 2^q - 1 (^ - значок степени). Нумерация блоков и псевдослучайных чисел ведётся с нуля, i-ый блок складываем с q-битным представлением (i mod p)-го числа группы G, получаем какую-то группу бит B(i). Все полученные таким способом группы бит (то есть B(i), i = 0,1,...,N-1) объединяем и далее по полученному набору бит выписываем символы шифрованного текста.
Сложение бит делается так: если оба бита одинаковые, в итоге 0, иначе 1 (известно как операция XOR). Например, 101 + 110 = 011.
пример. Здесь просто покажем сложение блоков с псевдослучайной последовательностью, без пояснений по ГПСЧ. Возьмём русский алфавит без Ё, Тогда можно кодировать по 5 бит (A = 00000, Б = 00001, В = 00010...). Тогда БАГ = 000010000000011. Пусть q = 3, p = 2, G = десятичный вид:{4, 5} = двоичный вид: {100, 101} (для демонстрации пойдёт, хотя вообще это не особо случайный ряд, да и период маловат). БАГ = 000 010 000 000 011.
Блок "Налагаемые"
Биты Сложение
000 100 100
010 101 111
000 100 100
000 101 101
011 100 111
Посмотрите внимательно на среднюю колонку - "налагаемые" битовые наборы циклически повторяются: их меньше, чем блоков.
Наборы из правой колонки объединяем. Поскольку символы алфавита кодируются 5 битами, группируем по 5 бит: ШИФР(БАГ) = 100111100101111 = {19, 25, 15}, то есть нам нужно найти в алфавите символы номер 19, 25, 15 (нумерация ведётся с нуля).
АБВГДЕЖЗИЙ
КЛМНОПРСТУ
ФХЦЧШЩЪЫЬЭ
ЮЯ
Итог - пресловутое УЩП. То естьБАГ изменился до неузнаваемости.