Helgus ~ µастер ~ Kласс: Это незавершённая статья по ивентологии и её применениям |
Гаммирование - преобразование исходного текста, при котором символы исходного текста складываются, по модулю, равному количеству символов алфавита из которого составлено сообщение, с символами псевдослучайной последовательности, вырабатываемой по некоторому правилу.
Алгоритм[]
Пусть нам дано некоторое сообщение, состоящее из n символов, включая пробел. Ключом является последовательность из некоторого числа i символов. Под открытый текст подписывается ключ
…
…
Если длина ключа меньше длины сообщения, то ключ периодически повторяется.
Каждому знаку открытого текста и ключа ставится в соответствие некоторый вычет по модулю n.
Ключом является символы последовательности = (,, , …) – ее называют гаммой. А шифртекст получается по правилу
y(t)=
Гаммирование чаще осуществляется:
- по модулю 2, если открытый текст представляется в виде бинарной последовательности;
- по модулю 256, если открытый текст представляется в виде последовательности байтов;
- по модулю 10, если открытый текст последовательность цифр.
Какие же требования должны быть предъявлены, чтобы обеспечить достаточное качество шифра?
1. Необходимо, чтобы период повторения генерируемой гаммы был достаточно большим, лучше – максимально возможным. По крайней мере, он должен превосходить наибольшее возможное количество символов в шифруемом сообщении.
2. Необходимо, чтобы соседние или близкие по расположению элементы последовательности {} отличались друг от друга. Было бы крайне желательно, чтобы различия между ними были в каждом позиции.
Смысл в том, что метод гаммирования по своей сути требует одноразовой гаммы, иначе он легко вскрывается по алгоритмической линии. Если же период повторения вырабатываемой гаммы недостаточно велик, различные части одного и того же длинного сообщения могут оказаться зашифрованными с помощью одинаковых участков гаммы.
Второе требование является менее очевидным, и имеет место только для шифров вполне определенных архитектур, в которых шаг шифрования является комбинацией нескольких сравнительно простых преобразований, в ходе каждого из которых различия в шифруемых блоках данных увеличиваются весьма незначительно.
Пример[]
Исходное сообщение из букв русского алфавита преобразуется в числовое сообщение заменой каждой его буквы числом по следующей таблице:
А | Б | В | Г | Д | Е | Ж | З | И | К | Л | М | Н | О | П |
00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 | 13 | 14 |
Р | С | Т | У | Ф | Х | Ц | Ч | Ш | Щ | Ь | Ы | Э | Ю | Я |
15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 |
Для зашифрования полученного числового сообщения используется шифрующий отрезок последовательности , ,… подходящей длины, начинающийся с .
При зашифровании каждое число числового сообщения складывается с соответствующим числом шифрующего отрезка. Затем вычисляется остаток от деления полученной суммы на 30, который по данной таблице заменяется буквой. Восстановите сообщение КЕНЗЭРЕ, если шифрующий отрезок взят из последовательности, у которой = 3 и для любого натурального k. [19]
Решение: Заметим, что для всех натуральных k. Складывая почленно эти равенства при k=1,2,…,(n-1), получим Невозможно разобрать выражение (синтаксическая ошибка): {\displaystyle A_n – A_1 = n^3-3+2n} . По условию =3. Следовательно, справедливо соотношение . Ясно, что при расшифровании так же, как и при зашифровании, вместо чисел , , , , , , можно воспользоваться их остатками от деления на 30. Так как для каждого целого неотрицательного i где z - некоторое целое число, то получаем следующие остатки при делении чисел ,…, на 30:
0 | 3 | 12 | 3 | 12 | 15 | 18 |
Заключительный этап представлен в таблице: Таблица 22. Дешифрование сообщения
Шифрованное сообщение | К | Е | Н | З | Э | Р | Е |
Числовое шифрованное сообщение | 9 | 5 | 12 | 7 | 27 | 15 | 5 |
Шифрующий отрезок | 0 | 3 | 12 | 3 | 12 | 15 | 18 |
Числовое исходное сообщение | 9 | 2 | 0 | 4 | 15 | 0 | 17 |
Исходное сообщение | К | В | А | Д | Р | А | Т |
Исходное сообщение: КВАДРАТ