поточные шифры
Характерной особенностью поточных шифров есть побитная обработка информации. При этом шифрование и дешифрование может обрыватся в произвольный момент времени. И как только связь восстановлена можно продолжать процедуру без проблем. Шифрование происходит путем логических операций над битом ключа и битом исходного текста. Это происходит по тому, что сколько бы мы не создавали шифрующих битов, все равно накладываться будет один бит шифрующего на один бит исходного путем комбинации из функций XOR и отрицаний. Классический пример шифра Вернама показана на рис.1. Такие шифры отлично подходят для локальный сетей, где решают часть проблем защиты информации в сетях.
Рисунок — 1
Поточные шифры называют шифры гаммирования. Также само шифрование есть методом защиты информации. Эти шифры в разы быстрее своих конкурентов — блочных шифров, если оно реализовано аппаратно. Если же реализация программная, здесь скорость может быть даже меньше блоковых шифров. Функция которая формирует гамму, руководствуется трёма компонентами:
- Ключ.
- Номер текущего шага шифрования.
- ближние биты исходного или зашифрованного текста от текущей позиции.
Если схема формирования гаммы и ключ не секретные, то такой шифр превращается в скремблер. Скремблеры много используются в системах связи для повышения характеристик транслируемого сигнала. Частота появления нулей и единиц в таком сигнале близка к 0,5.
Зависимость от номера текущей позиции, если и присутствует в функции то пассивно. Просто на каждом шаге шифрования производятся однотипные преобразования где в любом случае используют текущий номер в общем потоке гаммы. Включения в функцию бит ближний бит исходного или шифрованного потока увеличивает криптостойкость шифра но при этом уменьшает скорость шифрования.
Шаблон зависимости основных свойств потоковых шифров показана на рис.2. Это только шаблон, нужно всегда учитывать конкретную ситуацию.
Рисунок — 2
Стойкость шифров гаммирования
Атаки на такие шифры, основаны на статистических особенностях гаммы от примера со случайным потоком гаммы, или на повторяющие участки шифрования гаммой. Первый случай нужно учитывать проведения различных форм частотного и корреляционного криптоанализа. Во втором же все проще, так как повторное наложение ИЛИ на новый исходный блок p2 дает открытый текст, с помощью формулы:
(p1 XOR g) XOR (p2 XOR g) = p1 XOR p2.
Что бы избежать таких неловких моментов, шифр гаммирования должен упираться на два критерия:
- Гамма, должна иметь очень хорошие статистические характеристики.
- Период гаммы должен превышать длину самого большого сообщения, которые должны быть переданы и зашифрованы с помощью одного ключа.
В каналах где возможно модификация данных при передачи, такие шифры беззащитны. Сделав модификацию принимающая сторона не сможет расшифровать данные. Поэтому в канала такого типа нужно реализации подтверждения целостности сообщения. А это уже реальные угрозы информационной безопасности.
Линейные регистры сдвига
ЛРС является простой схемой потокового шифрования. ЛРС имеет от 20 до 100 ячеек памяти, где находятся биты информации. Биты которые находятся на данный момент в ячейках, имеют название — состояние. Для реализации следующего шага выработки бита гаммы, есть цикл.
- Первый бит из потока поступает на выход ЛРС — это уже бит гаммы.
- Содержимое всех остальных ячеек сдвигается на одну позицию вправо.
- В пустую ячейку помещается новый бит, который записывается как результат операции XOR над значениями ячеек с определенными номерами.
Направление сдвига не имеет значение. ЛРС показано на рис.3.
Рисунок — 3
Количество ячеек в памяти имеет название — разрядность. В начале формирования гаммы, в ячейки помещают ключ. Пример работы ЛРС с разрядностью 3 с операциями над нулевым и вторым битом, с начальным ключом 011 показано на рис.4. При долгой работе скремблера неизбежно возникает зацикливание — когда исчерпались все возможные варианты состояний ЛРС, и начинает повторятся. Также получается что есть некий период зацикливаний. Графически это выглядит в форме топологий, которые показано на рис. 4.
Рисунок — 4
Основной проблемой использования ЛРС в качестве шифра это неспособность противодействовать атаке по известному исходному тексту.
Нелинейные поточные шифры
На сегодня из известных есть три типа нелинейных шифров, это фильтрующие, комбинирующие и динамические. Все они в основе реализуют ЛРС. Во всех трех типах основная цель это получение большего периода гаммы, устойчивости к атакам по корреляционным атакам и открытому тексту. Тип который должен использоваться, должен быть описан в политике безопасности предприятия.
Фильтрующие шифры имеют самую простую структуру. Реализованы с помощью одного ЛРС. Значение получаемые от ЛРС проходят сквозь фильтр и потом уже полноценный бит гаммы. Это показано на рис.5.
Рисунок — 5
Комбинирующие шифры реализованы на основе нескольких ЛРС, где объединяются выходные биты из каждого ЛРС. Это показано на рис.6. Одной из проблем такого типа шифров это просачивания из одного или нескольких ЛРС битов в выходную гамму. Такой тип есть корреляционно-стойким, если для любых вариантов комбинирования ЛРС значение коэффициента корреляции между битами ЛРС и выходным битом — 1/2.
Рисунок — 6
Этот тип также использует несколько ЛРС, но они объединены не на равноправных правах, а по схеме начальник-подчиненный. Это показано на рис.7. Такие шифры иногда используют при контроле удаленного доступа.
Рисунок — 7
Синхронные поточные шифры
Синхронные поточные шифры (СПШ) — шифры, где поток ключей генерируется независимо от шифротекста и открытого текста. В процессе шифрования генератор потока ключей дает биты потока ключей, которые идентичны битам потока ключей при процессе дешифрования. При потере любого знака шифротекста нарушается синхронизация между двумя генераторами и возможность расшифровать оставшиеся куски текста. Синхронизация обычно реализуется через специальные вставные маркеры. При потере знака рассинхроность текста будет незначительно, а именно до следующего маркера. После него синхронность опять настроена. Плюсы синхронного шифра:
- Отсутствие эффекта распространения ошибок (только искаженные биты будут неправильно расшифрованны)
- Страхует от любых вставок и удаление шифротекста, так как поток будет рассинхронизирован и будут выявлены
Минусы синхронного шифра:
- Уязвим к изменению отдельных бит шифрованного текста. Если известен открытый текст, то можно изменить биты таким образом, что бы расширование было подделано
Асинхронные поточные шифры
Асинхронные поточные шифры (АПШ) — шифры, где поток ключей реализуется функцией ключа и определенного числа знаков шифротекста. Внутреннее состояние генератора потока ключей представляется функцией предыдущих N битов шифротекста. Поэтому на другой стороне, расшифрующие генератор потока ключей при приеме N битов, автоматически синхронизируется с шифрующим генератором.
Каждое сообщение начинается из случайного заголовка N битов. Заголовок шифруется и передается на расшифровку. Расшифровка будет неправильной, однако потом, после N битов 2 генератора будут синхронизированы. Плюсы такого шифрования:
- Размешивание статистики открытого текста. Каждый знак открытого текста влияет на следующий. АПШ может быть более устойчивым к атакам на основе избыточности открытого текста, чем СПШ
Минусы асинхронного шифра:
- Чувствительные к вскрытию повторной передачей
- Распространение ошибки (каждому неправильному биту шифротекста есть N ошибок в открытом тексте)
Проектирование поточных шифров
Можно выделить 4 главных подхода к проектированию поточных шифров согласно Райнеру Рюппелю:
- Системно-теоретический метод реализован на создании для криптоаналитика сложной, ранее неисследованной проблемы
- Информационно-технический подход реализован на попытке скрыть открытый текст от криптоаналитика — вне зависимости от количества времени потраченного на дешифрование, криптоаналитик не найдет однозначно решения
- Сложно-теоретический подход реализован на сложной, но известной проблеме
- Рандомизированный подход реализован на реализации объёмной задачи. К примеру криптограф зашифрует текст на ключе, который состоит из указаний на то, какие части были реализованы при шифровании
Для проектирования поточных систем Райнер Рюппель вывел теоретические критерии:
- Большая линейная сложность
- Длинные периоды выходных последовательностей
- Диффузия — рассеивание избыточности, размазывание статистики по всему тексту
- Каждый бит потока ключей должен является сложным преобразованием множества битов ключа
- Критерий нелинейности для логических функций
На сегодня не доказано, что такие критерии достаточны для безопасности поточный системы шифрования. Также нужно отметить, что если криптоаналитик имеет неограниченное время и мощь вычислительных машин, то единым защищенным потоковым шифром является — одноразовый блокнот.
Атаки на поточные шифры
1. Силовые. Атаки основаны на полном переборе возможных вариантов. Сложность такого перебора зависит от количества допустимых решимых решений задачи (размер ключей, открытого текста). При проектировании систем шифрования, разработчики пытаются сделать так, что бы такой метод атаки был самым эффективным в сравнении с другими видами атак.
2. Статистические.
- Метод криптоанализа статистических свойств шифрующей гаммы: направлен на изучение выходной последовательности криптосистемы. Значение следующего бита устанавливается с вероятностью выше вероятности случайного выбора
- Метод криптоанализа сложности последовательности: криптоаналитик пробует найти метод генерировать последовательность такую же как гамма, однако более простым методом.
3. Аналитические методы — Метод работает тогда, когда криптоаналитику известно описание генератора, открытый и закрытый текста. Задача состоит в том, что бы узнать начальный ключ. Бывают следующие виды атак:
- Инверсионная
- Корреляционная
- на ключевую загрузку и реинициализацию
- XSL-атака
Ниже описаны варианты элементов для ИС использование поточных шифров: