Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
3_Курс лекций МиСЗИ.doc
Скачиваний:
62
Добавлен:
11.04.2015
Размер:
258.56 Кб
Скачать

Криптографическое закрытие информации

1. ШИФРОВАНИЕ

Замена

простая (одноалфавитная)

(подстановка) многоалфавитная одноконтурная обыкновеннная

многоалфавитная одноконтурная монофоническая

многоалфавитная многоконтурная

перестановка

простая

усложненная по таблицам

усложненная по маршрутам

аналитическое

по правилам алгебры матриц

преобразование

по особым зависимостям

гаммирование

с конечной короткой гаммой*

с конечной длинной гаммой*

с бесконечной гаммой*

комбинированные

замена + перестановка*

замена + гаммирование*

*перестановка + гаммирование*

*гаммирование + гаммирование*

2. КОДИРОВАНИЕ

смысловое

по специальным таблицам (словарям)

символьное

по кодовому алфавиту*

3. ДРУГИЕ ВИДЫ

рассечение

смысловое

(разнесение) механическое *

сжатие

(расширение)

Все указанные методы реализованы программно, * означает еще и аппаратную реализацию.

Алгоритмы шифрования, предназначенные для массового применения в ВС должны удовлетворять следующим требованиям:

1) зашифрованный текст должен поддаваться чтению только при наличии ключа шифрования;

2) число операций, необходимых для определения использованного ключа по фрагменту шифрованного текста и соответствующего ему открытого текста, должно быть не меньше общего числа возможных ключей;

3) знание алгоритма шифрования не должно влиять на надежность защиты;

4) незначительные изменения ключа шифрования должны приводить к существенному изменению вида зашифрованного текста.

5) незначительные изменения шифруемого текста должны приводить к существенному изменению вида зашифрованного текста даже при использовании одного и того же ключа;

6) структурные элементы алгоритма шифрования должны быть неизменны;

7) длина зашифрованного текста должна быть равной длине исходного текста;

8) любой ключ из множества возможных должен обеспечивать надежную защиту информации;

9) алгоритм должен допускать как программную, так и аппаратную реализацию.

Симметричные криптоалгоритмы. Для зашифровки и расшифровки сообщения используется один и тот же блок информации (ключ).

Асимметричные криптоалгоритмы. Алгоритм таков, что для зашифровки сообщения используется один ("открытый") ключ, известный всем желающим, а для расшифровки – другой ("закрытый"), существующий только у получателя.

Большинство специалистов используют термин криптография по отношению к криптоалгоритмам с ключом, что вполне оправдано. Так, например, любой криптоалгоритм с ключом можно превратить в тайнопись, просто "зашив" в исходном коде программы некоторый фиксированный ключ. Обратное же преобразование практически невозможно.

Следует заметить: любые криптографические преобразования не увеличивают объем информации, а лишь изменяют ее представление. Поэтому, если программа шифрования значительно (более, чем на длину заголовка) увеличивает объем выходного файла, то в ее основе лежит неоптимальный, а возможно и вообще некорректный криптоалгоритм. Уменьшение объема закодированного файла возможно только при наличии встроенного алгоритма архивации в криптосистеме и при условии сжимаемости информации (так, например, архивы, музыкальные файлы формата MP3, видеоизображения формата JPEG сжиматься более чем на 2-4% не будут).

В зависимости от размера блока информации криптоалгоритмы делятся на:

  1. Потоковые (поточные) шифры.

Единицей кодирования является один бит. Результат кодирования не зависит от прошедшего ранее входного потока. Схема применяется в системах передачи потоков информации, то есть в тех случаях, когда передача информации начинается и заканчивается в произвольные моменты времени и может случайно прерываться. Наиболее распространенными представителями поточных шифров являются скремблеры. О них – ниже.

Шифрование в поточных шифрах осуществляется на основе сложения некоторой ключевой последовательности (гаммы) с открытым текстом сообщения. Сложение осуществляется познаково посредством операции XOR. Уравнение зашифрования выглядит следующим образом:

ci = mi ki для i=1,2,3...

где ci- знак шифротекста,mi- знак открытого текста,ki- знак ключевой последовательности. Расшифрование выглядит так:

mi = ciki для i=1,2,3...

В качестве знаков могут выступать как отдельные биты, так и символы (байты). Таким образом, поточные шифры подходят для шифрования непрерывных потоков данных - голоса, видео и т.д. В общем виде схему шифра можно изобразить следующим образом (рис. 2):

Рис. 2. Схема шифрования

Можно сказать, что шифрование осуществляется наложением гаммы (шифрованиегаммированием). А сама гамма является ключом шифрования. Но иметь ключ, равный по размеру шифруемым данным представляется проблематичным. Поэтому поточные шифры и вырабатывают выходную гамму на основе некоторого секретного ключа небольшого размера, а значит основной задачей поточных шифров является выработка некоторой последовательности (выходной гаммы) для шифрования. Т.е. выходная гамма является ключевым потоком для сообщения. Поточные шифры классифицируют следующим образом:

  • синхронные;

  • самосинхронизирующиеся (асинхронные).

Синхронные поточные шифры - ключевой поток (выходная гамма) получается независимо от исходного и шифрованного текстов. Шифр вырабатывает гамму на основе секретного ключа, она складывается с открытым текстом и результат посылается другому абоненту и расшифровывается аналогично. Блок, вырабатывающий гамму называетсягенератором гаммыилипсевдослучайным генератором (гаммы) - PRG(Pseudo Random Generator).

Очевидно, что на вырабатываемую последовательность накладываются требования. Ведь если в ней есть большие последовательности нулей, то получается, что в линию при передаче передается текст сообщения в открытом виде. Или если последовательность из единиц - тот же эффект (т.к. ничто не мешает противнику попробовать "протянуть" несколько подряд идущих единиц в качестве гаммы для перехваченного сообщения. Результат - кусок открытого текста у противника). Поэтому наилучшей гаммой является случайная последовательность. Однако нельзя независимо друг от друга сгенерировать 2 одинаковые случайные последовательности.

Генераторы гаммы вырабатывают так называемые псевдослучайные последовательности, которые зависят от ключа шифрования, но, тем не менее, по своим характеристикам сходны со случайными. Задача ставится таким образом, чтобы при наличии определённого количества битов последовательности нельзя было предсказать следующие биты. Помимо этого 1 и 0 на входе должны быть равновероятны (т.е. вероятность появления 1 = вероятности появления 0 = 0.5). Для достижения этого последовательности исследуются статистическими тестами.

Вообще, генерирование непредсказуемых псевдослучайных последовательностей является одной из важных криптографических задач на сегодняшний день (и проблем). Придумано множество генераторов, статистических тестов. Исследование псевдослучайных последовательностей мы рассмотрим далее.

Синхронные поточные шифры обладают следующими свойствами:

  • требования по синхронизации. При использовании синхронных поточных шифров получатель и отправитель должны быть синхронизированы - т.е. вырабатывать одинаковые значения ключевого потока для соответствующих знаков передаваемого потока данных. Если синхронизация нарушится (например, вследствие потери знака при передаче), процесс расшифрования не даст корректного результата.

  • отсутствие размножения ошибок. Изменение знака шифртекста при передаче не вызывает ошибок при расшифровании других знаков шифртекста.

  • свойство активной атаки. Как следствие первого свойства, любая вставка или удаление символа в шифртексте активным противником приводит к нарушению синхронизации и обнаруживается получателем, расшифровывающим сообщение. Как следствие второго свойства, активный противник может изменять символы шифртекста и эти изменения приведут к соответствующим изменениям в открытом тексте, получаемом при расшифровании. Посему необходимы дополнительные механизмы, позволяющие предотвратить это.

Самосинхронизирующиеся поточные шифры- каждый знак ключевого потока определяется фиксированным числом предшествующих знаков шифротекста. Схематично это можно изобразить так (рис. 3):

Рис. 3

Самосинхронизирующиеся поточные шифры обладают следующими свойствами:

  • самосинхронизация. Самосинхронизация существует при удалении или вставке некоторых знаков шифртекста, поскольку процесс расшифрования зависит от некоторого фиксированного числа предшествующих знаков шифртекста. Это означает, что в случае удаления знака из шифртекста сначала будут ошибки при расшифровании, а затем все станет хорошо и ошибок не будет.

  • ограниченное размножение ошибок. Предположим, что состояние шифра зависит от t предыдущих знаков шифртекста. Если во время передачи один знак шифротекста был изменен или удален/вставлен, то при расшифровке будет искажено не более t знаков, после которых пойдет опять нормальный текст.

  • свойство активной атаки. Из второго свойства следует, что любое изменение знаков шифртекста активным противником приведет к тому, что несколько знаков шифротекста расшифруются неправильно и это с большей (по сравнению с синхронными шифрами) вероятностью будет замечено со стороны получателя, расшифровывающего сообщение. Однако в случае вставки или удаления знаков шифртекста (по свойству 1) это намного труднее обнаружить (по сравнению с синхронными шифрами - там получается рассинхронизация). Поэтому необходимы дополнительные механизмы для контроля этой ситуации.

  • рассеивание статистики открытого текста. Поскольку каждый знак открытого текста влияет на весь последующий шифртекст, статистические свойства открытого текста (ведь он далеко не случаен) не сохраняются в шифртексте.

  1. Блочные шифры

Единицей кодирования является блок из нескольких байтов (в настоящее время 4-32). Результат кодирования зависит от всех исходных байтов этого блока. Схема применяется при пакетной передаче информации и кодировании файлов.

1.2.Симметричные криптоалгоритмы

Симметричные криптоалгоритмы выполняют преобразование небольшого (1 бит либо 32-128 бит) блока данных в зависимости от ключа таким образом, что прочесть исходное сообщение можно только, зная этот секретный ключ.

Общая схема связи в случае симметричных криптосистем изображена на рисунке 4.

Рис. 4.

Здесь М - открытый текст, К - секретный ключ, передаваемый по закрытому каналу, Ек(М) - операция зашифрования, а Dk(M) - операция расшифрования. Возникает вопрос - почему нельзя передавать данные сразу по закрытому каналу, ведь используется же он для передачи ключа? Ответ прост. Как правило, закрытый канал имеет очень высокую защищенность, но в то же время и очень низкую пропускную способность, т.е. работает на очень низких скоростях. Гораздо проще передать по нему маленький ключ, чем мегабайты информации. Или же в качестве закрытого канала используется курьерская доставка, обмен секретным ключом при встрече и т.д.

1.2.1.Скремблеры

Скремблерами называются программные или аппаратные реализации алгоритма, позволяющего шифровать побитно непрерывные потоки информации. Сам скремблер представляет из себя набор бит, изменяющихся на каждом шаге по определенному алгоритму. После выполнения каждого очередного шага на его выходе появляется шифрующий бит – либо 0, либо 1, который накладывается на текущий бит информационного потока операцией XOR.

В последнее время сфера применения скремблирующих алгоритмов значительно сократилась. Это объясняется в первую очередь снижением объемов побитной последовательной передачи информации, для защиты которой были разработаны данные алгоритмы. Практически повсеместно в современных системах применяются сети с коммутацией пакетов, для поддержания конфиденциальности которой используются блочные шифры. А их криптостойкость превосходит, и порой довольно значительно, криптостойкость скремблеров.

Суть скремблирования заключается в побитном изменении проходящего через систему потока данных. Практически единственной операцией, используемой в скремблерах является XOR – "побитное исключающее ИЛИ". Параллельно прохождению информационного потока в скремблере по определенному правилу генерируется поток бит – кодирующий поток. Как прямое, так и обратное шифрование осуществляется наложением по XOR кодирующей последовательности на исходную.

Генерация кодирующей последовательности бит производится циклически из небольшого начального объема информации – ключа по следующему алгоритму. Из текущего набора бит выбираются значения определенных разрядов и складываются по XOR между собой. Все разряды сдвигаются на 1 бит, а только что полученное значение ("0" или "1") помещается в освободившийся самый младший разряд. Значение, находившееся в самом старшем разряде до сдвига, добавляется в кодирующую последовательность, становясь очередным ее битом (см. рис. 5).

Рис. 5.

Из теории передачи данных криптография заимствовала для записи подобных схем двоичную систему записи. По ней изображенный на рисунке скремблер записывается комбинацией "100112" – единицы соответствуют разрядам, с которых снимаются биты для формирования обратной связи.

Рассмотрим пример кодирования информационной последовательности 0101112скремблером 1012с начальным ключом 1102.

скремблер код.бит инф.бит рез-т

1 1 0 _

\ \ \_

1 1 1 _ \_

\ \ \_ 0 XOR 0 = 0

0 1 1 _ \_

\ \ \_ 1 XOR 1 = 0

1 0 1 \_

\ \ 1 XOR 0 = 1

и т.д.

Как видим, устройство скремблера предельно просто. Его реализация возможна как на электронной, так и на электрической базе, что и обеспечило его широкое применение в полевых условиях. Более того, тот факт, что каждый бит выходной последовательности зависит только от одного входного бита, еще более упрочило положение скремблеров в защите потоковой передачи данных. Это связано с неизбежно возникающими в канале передачи помехами, которые могут исказить в этом случае только те биты, на которые они приходятся, а не связанную с ними группу байт, как это имеет место в блочных шифрах.

Декодирование заскремблированных последовательностей происходит по той же самой схеме, что и кодирование. Именно для этого в алгоритмах применяется результирующее кодирование по "исключающему ИЛИ" – схема, однозначно восстановимая при раскодировании без каких-либо дополнительных вычислительных затрат.

Как Вы можете догадаться, главная проблема шифров на основе скремблеров - синхронизация передающего (кодирующего) и принимающего (декодирующего) устройств. При пропуске или ошибочном вставлении хотя бы одного бита вся передаваемая информация необратимо теряется. Поэтому, в системах шифрования на основе скремблеров очень большое внимание уделяется методам синхронизации. На практике для этих целей обычно применяется комбинация двух методов: а) добавление в поток информации синхронизирующих битов, заранее известных приемной стороне, что позволяет ей при ненахождении такого бита активно начать поиск синхронизации с отправителем, и б) использование высокоточных генераторов временных импульсов, что позволяет в моменты потери синхронизации производить декодирование принимаемых битов информации "по памяти" без синхронизации.

Число бит, охваченных обратной связью, то есть разрядность устройства памяти для порождающих кодирующую последовательность бит называется разрядностью скремблера. Изображенный выше скремблер имеет разрядность 5. В отношении параметров криптостойкости данная величина полностью идентична длине ключа блочных шифров, который будет проанализирован далее. На данном же этапе важно отметить, что чем больше разрядность скремблера, тем выше криптостойкость системы, основанной на его использовании.

При достаточно долгой работе скремблера неизбежно возникает его зацикливание. По выполнении определенного числа тактов в ячейках скремблера создастся комбинация бит, которая в нем уже однажды оказывалась, и с этого момента кодирующая последовательность начнет циклически повторяться с фиксированным периодом. Данная проблема неустранима по своей природе, так как в N разрядах скремблера не может пребывать более 2Nкомбинаций бит, и, следовательно, максимум, через, 2N-1 циклов повтор комбинации обязательно произойдет. Комбинация "все нули" сразу же исключается из цепочки графа состояний скремблера – она приводит скремблер к такому же положению "все нули". Это указывает еще и на то, что ключ "все нули" неприменим для скремблера. Каждый генерируемый при сдвиге бит зависит только от нескольких бит хранимой в данный момент скремблером комбинации. Поэтому после повторения некоторой ситуации, однажды уже встречавшейся в скремблере, все следующие за ней будут в точности повторять цепочку, уже прошедшую ранее в скремблере.

Возможны различные типы графов состояния скремблера. На рисунке 6 приведены примерные варианты для 3-разрядного скремблера. В случае "А" кроме всегда присутствующего цикла "000">>"000" мы видим еще два цикла – с 3-мя состояниями и 4-мя. В случае "Б" мы видим цепочку, которая сходится к циклу из 3-х состояний и уже никогда оттуда не выходит. И наконец, в случае "В" все возможные состояния кроме нулевого, объединены в один замкнутый цикл. Очевидно, что именно в этом случае, когда все 2N-1 состояний системы образуют цикл, период повторения выходных комбинаций максимален, а корреляция между длиной цикла и начальным состоянием скремблера (ключом), которая привела бы к появлению более слабых ключей, отсутствует.

Рис. 6.

И вот здесь математика преподнесла прикладной науке, каковой является криптография, очередной подарок. Следствием одной из теорем доказывается (в терминах применительно к скремблированию), что для скремблера любой разрядности N всегда существует такой выбор охватываемых обратной связью разрядов, что генерируемая ими последовательность бит будет иметь период, равный 2N-1 битам. Так, например, в 8-битном скремблере, при охвате 0-го, 1-го, 6-го и 7-го разрядов действительно за время генерации 255 бит последовательно проходят все числа от 1 до 255, не повторяясь ни разу.

Схемы с выбранными по данному закону обратными связями называются генераторами последовательностей наибольшей длины (ПНД), и именно они используются в скремблирующей аппаратуре. Из множества генераторов ПНД заданной разрядности во времена, когда они реализовывались на электрической или минимальной электронной базе выбирались те, у которых число разрядов, участвующих в создании очередного бита, было минимальным. Обычно генератора ПНД удавалось достичь за 3 или 4 связи. Сама же разрядность скремблеров превышала 30 бит, что давало возможность передавать до 240бит = 100 Мбайт информации без опасения начала повторения кодирующей последовательности.

ПНД неразрывно связаны с математической теорией неприводимых полиномов. Оказывается, достаточно чтобы полином степени N не был представим по модулю 2 в виде произведения никаких других полиномов, для того, чтобы скремблер, построенный на его основе, создавал ПНД. Например, единственным неприводимым полиномом степени 3 является x3+x+1, в двоичном виде он записывается как 10112(единицы соответствуют присутствующим разрядам). Скремблеры на основе неприводимых полиномов образуются отбрасыванием самого старшего разряда (он всегда присутствует, а следовательно, несет информацию только о степени полинома), так на основе указанного полинома, мы можем создать скремблер 0112с периодом зацикливания 7(=23-1). Естественно, что на практике применяются полиномы значительно более высоких порядков. А таблицы неприводимых полиномов любых порядков можно всегда найти в специализированных математических справочниках.

Существенным недостатком скремблирующих алгоритмов является их нестойкость к фальсификации.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]