ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 10.01.2024
Просмотров: 17
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Введение
Основная идея поточного шифрования состоит в том, что каждый из последовательных знаков открытого текста подвергается своему преобразованию. В идеале разные знаки открытого текста подвергаются разным преобразованиям, т.о. преобразование, которому подвергаются знаки открытого текста, должно изменяться с каждым следующим моментом времени. Реализуется эта идея следующим образом. Некоторым образом получается последовательность знаков k1, k2, … , называемая ключевым потоком (keystream) или бегущим ключом (running key, RK). Затем каждый знак xi открытого текста подвергается обратимому преобразованию, зависящему от ki – соответствующего знака ключевого потока. Хотя подавляющее большинство существующих шифров с секретным ключом с определенностью могут быть отнесены или к поточным или к блочным шифрам, теоретически граница между этими классами остается довольно размытой. Так, например, допускается использование алгоритмов блочного шифрования в режиме поточного шифрования (например, режимы CBF и OFB для алгоритма DES или режим гаммирования для алгоритма ГОСТ 28147-89). Как крайний случай любой блочный шифр можно рассматривать как подстановочный поточный шифр, использующий знаки алфавита большой мощности. Например, алгоритмы DES и ГОСТ 28147-89 – подстановочные шифры над алфавитом мощности 264
1,8·1019. Кроме того, известны поточные шифры, построенные на основе криптографических алгоритмов с открытым ключом.Поточные шифры могут быть очень быстрыми в работе, в общем случае они намного быстрее блочных шифров. Поскольку шифрующая последовательность часто может генерироваться независимо от открытого текста или шифртекста, такие генераторы имеют преимущество в том, что шифрпоследовательность может вырабатываться до процесса шифрования или расшифрования, на который остается лишь единственная легкая операция наложения.
-
Описание алгоритма
Рисунок 2. Первый регистр
Рисунок 1. Общая схема
Алгоритм основан на операции исключающего или. Разберем его на рисунке 1 – общей схеме и рисунке 2, в котором изображен первый регистр.
Мы применим нашу операцию в отношении нулевого, первого и последнего битов. Затем, сдвигаем все биты на один разряд вправо и полученный в предыдущем действии бит вставим в нулевой в регистре. Таким образом, выдвинутый бит из регистра будет являться выходным т. е в формуле (1) – это «a1».
Рисунок 3. Второй регистр
Аналогично работают схемы на рисунке 3, в котором выходным битом будет являться «а2» и рисунке 4 – «а3».
Затем исходя из формулы (1) мы выбираем бит какого из регистров включать в последовательность.
(1)
В результате так образуется последовательность из битов «а», которая будет накладываться на открытый текст.
Рисунок 4. Общая блок-схема
-
Б
лок-схемы
Рисунок 5. Блок-схема алгоритма Берлекэмпа-Месси
-
Инструкция по работе программы
При запуске программы автоматически генерируется последовательность из 1000 элементов. На экране вы видите массив битов и вычисленную линейную сложность (62). Также выводит количество нулей и единиц, их максимальные длины и частоту появления этих длин.
Рисунок 6. Результат из последовательности.
-
Р
езультат работы
Рисунок 7. Линейная сложность, максимальные длины и частоты
-
Заключение
Реализованная программа работает как мы и предполагали и генерирует последовательность из битов. Вычисленная программно линейная сложность (62) практически совпадает с вычисленной вручную равной 63.