Важно. !!!_Важно!!!_МетодПособие-ИнБезОС-21(БИ-4). Методическое пособие к лабораторным работам Составитель др техн наук, проф. Ю. М. Краковский 2022 оглавление
Скачать 341.83 Kb.
|
Лабораторная работа № 4 «Поточное шифрование информации» Цель работы– освоить технологию создания ключа для поточного шифрования на основе регистра сдвига с линейной обратной связью. Введение В современных системах симметричного шифрования информации широкое применение находят системы поточного шифрования. Необходимо различать процедуру создания поточного ключа и процедуру поточного шифрования (хотя эти процедуры очень связаны и могут выполняться совместно). В связи с этим разделим поточное шифрование на две процедуры: а) само поточное шифрование; б) создание ключа для поточного шифрования. Примечание – в российских национальных стандартах, такое разделение не выделяется, что усложняет процесс их понимания. Поточное шифрование Современные поточные системы при шифровании используют побитное сложение по модулю 2 (операцию XOR). Мы ее уже не однократно использовали, например, при контроле целостности информации, когда рассматривали контроль целостности при случайных воздействиях. Пусть m – исходное электронное сообщение, конфиденциальность которого необходимо обеспечить; с – зашифрованное сообщение, полученное из исходного; К – секретный поточный ключ. Тогда при зашифровании используется следующая операция ci=mi(+)Кi, i=1,2,…,I, (4.1) где mi – i-й бит исходного сообщения; Кi – i-й бит поточного ключа; ci – i-й бит зашифрованного сообщения; I – число битов в сообщениях и в ключе; (+) – операция сложения по модулю 2. При расшифровании используется та же операция mi=ci(+)Кi, i=1,2,…,I. (4.2) Убедимся, что ci(+)Кi =(mi(+)Кi)(+)Кi)=mi(+)(Кi(+)Кi)=mi. Для поточного шифрования справедливо равенство, которое вытекает из свойства операции сложения по модулю 2 Ki=mi(+)ci, i=1,2,…,I. (4.3) Заметим, что в российских национальных стандартах поточное шифрование называют гаммированием, а поточный ключ – гаммой. Подчеркнем, что поточный ключ К по длине должен быть не меньше длин исходного и зашифрованного сообщений. Дополнительными условиями являются его случайность при создании (равновероятность) и одноразовость (используется один раз). При этих условиях в соответствии с теоремой К. Шеннона поточная система шифрования является совершенно криптостойкой. Рассмотрим пример. Отправитель А создает исходное сообщение и поточный ключ необходимой длины. Пусть исходное сообщение: 1100100100110101; поточный ключ: 1001110010110011. Тогда используя (4.1), отправитель при зашифровании выполняет следующую операцию, получая зашифрованное сообщение. А: m – 1100100100110101 (+) К – 1001110010110011 с – 0101010110000110 Зашифрованное сообщение (с) отправляется получателю В. Получатель, получив это сообщение и сам создав поточный ключ (он обязательно должен совпадать с поточным ключом, созданным отправителем), а также используя (4.2), осуществляет расшифрование. В: с – 0101010110000110 (+) К – 1001110010110011 m – 1100100100110101 Убедимся, что расшифрованное сообщение, полученное получателем, равно исходному, созданное отправителем (в нашем случае совпадение получено). Убедимся также в справедливости равенства (4.3). m – 1100100100110101 (+) с – 0101010110000110 К – 1001110010110011 Что необходимо выделить в приведенном примере: при поточном шифровании поточный ключ не распределяется заранее. Отправитель и получатель создают его каждый для себя. Более подробно этот вопрос будет рассмотрен ниже. Важным достоинством поточного шифрования является его высокая скорость (пока не рассматривается вопрос создания поточного ключа). Недостатком поточного шифрования является проблема синхронизации сообщений при зашифровании и расшифровании (вставка или потеря битов). Выделяют синхронные поточные криптосистемы, когда гамма создается независимо от исходного сообщения, и самосинхронизирующие поточные криптосистемы, когда такая связь имеется. В синхронных поточных криптосистемы, в отличии от самосинхронизирующихся, отсутствует эффект размножения ошибок, т.е. количество ошибок в зашифрованном сообщении равно количеству ошибок в расшифрованном. Но при использовании синхронных поточных криптосистем необходимо решить задачу синхронизации генераторов гаммы у отправителя и получателя. Кроме того, выпадение или вставка битов в зашифрованном сообщении приведет к ошибкам в расшифрованном тексте. В синхронных шифрах используют специальные маркеры, которые вставляют в сообщения, а в самосинхронизирующих проблема синхронизации решается технологией создания поточного ключа или средствами контроля целостности. Исторически первой поточной криптосистемой является система Вернама (1917), в которой в качестве ключевой последовательности использовалась уникальная случайная гамма. При этом размер ключа соответствовал длине исходного текста. Создание поточного ключа Как отмечено выше, современные поточные криптосистемы используют при шифровании побитное сложение по модулю 2. Многообразие поточных криптосистем определяется технологией создания поточного ключа. Создание поточных ключей это значительное по многообразию методов направление в криптографии. Этому направлению уделяется значительное место в литературе по криптографии. Существуют различные классификации этих методов. Мы рассмотрим следующую. Все многообразие методов создания поточных ключей разделим на три группы: использование всевозможных регистров сдвига, среди которых можно выделить регистры сдвига с линейной обратной связью; использование блочных алгоритмов шифрования; использование всевозможных генераторов псевдослучайных последовательностей (генераторов случайных чисел). В российских национальных стандартах поточный ключ создается блоками с использованием блочного шифрования, поэтому этот вопрос мы рассмотрим позже, когда будем рассматривать эти стандарты. В этой лабораторной работе рассматривается технология создания поточного ключа на основе регистра сдвига с линейной обратной связью (РСЛОС). Подобные регистры имеют большое практическое значение в современной криптографии. Как правило под регистром понимают некую память, содержащую n битов. Как правило нумерация битов происходит справа налево. Подобные регистры используются, например, в процессорах для промежуточного хранения информации. Существуют регистры, в которых информацию можно сдвигать влево, вправо или циклически. В рассматриваемом методе сдвиг происходит вправо на один бит. Введем понятие исходного состояния регистра, такта и шага. Исходное состояние регистра, это некоторый заданный набор его битов. Если используется регистр сдвига при n=8 (реально такие регистры не используются), то можно выбрать любую комбинацию, например: 11000101. Такт это два шага, которые позволяют получить новое состояние регистра сдвига и один бит поточного ключа. На первом шаге регистр сдвигается вправо на один бит. Тем самым началось создание следующего состояния регистра (назовем его текущим). При этом значение младшего бита «выдавливается» и попадает в последовательность битов поточного ключа. В результате сдвига значение старшего бита текущего регистра неопределённо, поэтому его необходимо определить. В данном методе используется понятие отводной последовательности. Отводная последовательность – это некоторая совокупность битов регистра, выбранная специальным образом (выбор номеров битов отводной последовательности осуществляется на основе рекомендаций специального раздела математики). На втором шаге такта биты отводной последовательности предыдущего состояния регистра складываются по модулю два. Полученное значение заносится в старший бит текущего регистра. Таким образом, за один такт, содержащий два шага, создано новое состояние регистра сдвига и получен один бит в последовательности битов поточного ключа. Такты последовательно выполняются требуемое число раз (в зависимости от необходимой длины поточного ключа). Если n – число битов (разрядов) в регистре сдвига, то максимальный период этого генератора равен 2n-1 (регистр должен принять значения всех возможных комбинаций значений битов, исключая нулевую комбинацию). Отсюда вытекает, что начальное состояние регистра может быть любой комбинацией битов. Для того, чтобы конкретный РСЛОС имел максимальный период, многочлен, ассоциированный с отводной последовательностью, должен быть примитивным по модулю 2, т.е. не раскладываться на произведение двоичных многочленов меньшей степени. Например, многочлен х32+х7+х5+х3+х2+х+1 (4.4) примитивен по модулю 2. Степень многочлена задает длину РСЛОС в битах. Тогда многочлен (4.4) определяет 32-битовый регистр сдвига, когда новый старший бит определяется сложением по модулю 2 битов с номерами: 32, 7, 5, 3, 2, 1 (эти биты являются правильной отводной последовательностью). Максимальная длина гаммы равна 232-1 битов (более четырех миллиардов). Рассмотрим пример. Рассмотрим четырехбитный регистр сдвига, для которого многочлен, примитивный по модулю 2 имеет вид х4+х+1, поэтому отводная последовательность определяется первым и четвертым битами. При такой отводной последовательности максимальный период равен 24-1=15. Выберем в качестве начального состояние регистра следующую комбинацию: 1010 (подчеркнутые биты являются отводной последовательностью). Правый бит имеет номер 1 (младший бит), левый бит имеет номер 4 (старший бит), сдвиг происходит вправо на один бит. Напомним, что такт состоит из двух шагов: сдвиг вправо и вычисление старшего бита путем сложения по модулю 2 битов отводной последовательности (не определенный старший бит после первого шага обозначим ≈). На первом шаге получим: ≈101→0. Один бит поточного ключа сформировали (0). На втором шаге сначала вычислим бит, используя значения отводной последовательности предыдущего состояния регистра: 1(+)0=1. Затем занесем его в старший бит текущего состояния регистра, получим: 1101 (создали новое состояние регистра). Эти такты повторяем. Ниже приведены состояния регистра сдвига и полученная гамма длиной 15 бит (рис. 3.1) 1010 1101 0110 0011 1001 0100 0010 0001 – Состояния 1000 1100 1110 1111 0111 1011 0101 1010 – регистра 010110010001111 0 – поточный ключ Рис. 3.1. Состояния регистра сдвига и значения поточного ключа Как мы видим, 16-е состояние регистра совпало с первым, а 16-й бит поточного ключа совпал с 1-м. Рассмотрим реальный поточный алгоритм А5, который используется при шифровании GSM европейского стандарта для цифровых сотовых телефонов. В нем используются три РСЛОС длиной 19, 22 и 23 битов; i-й бит гаммы является функцией от трех РСЛОС (в этом алгоритме используется так называемое управление тактированием, когда в каждом такте взаимодействуют два РСЛОС). Доказано, что если длины регистров взаимно просты и у них правильно выбраны отводные последовательности, то итоговый ключ имеет максимально возможную длину. В алгоритме А5 это условие выполняется. Секрет, который должна знать лишь одна пара (отправитель-получатель), – это начальное состояние регистра сдвига. Если регистров сдвига несколько, то секрет это начальные состояния всех регистров. Зная этот секрет, отправитель и получатель смогут создать одинаковый поточный ключ. Имея поточный ключ, можно провести шифрование сообщений. Рассмотрим пример. В этом примере отправитель А сформировал 12-битное сообщение (m) и подготовил для него 12-битный поточный ключ К. Далее он провел зашифрование сообщения, используя операцию (4.1). Затем он отправил зашифрованное сообщение c получателю. Получатель B получил зашифрованное сообщение с, подготовил для него поточный ключ К (ключи отправителя и получателя совпадают) и провел расшифрование, используя операцию (4.2). В результате он получил сообщение m, которое сформировал отправитель. А – m: 100110110010 (+) К: 100011001111 c: 000101111101 → B B – c: 000101111101 (+) К: 100011001111 m: 100110110010 К настоящему моменту созданы и используются различные поточные криптосистемы, например, А5, RC4, SEAL и др. Также используются специальные режимы поточного шифрования в национальных стандартах, например, ГОСТ 28147-89, ГОСТ Р 34.13-2015, система АES и др. Описание лабораторной работы В лабораторной работе № 4, используя 8-ми битовый РСЛОС, необходимо получить ключ для поточной криптосистемы максимальной длины. Биты в РСЛОС нумеруются справа налево. Исходное состояние регистра задается двухзначным 16-ричным числом. Таблица соответствия для 16-ричных цифр (тетрад) приведена в таблице 4.1. Таблица 4.1 Таблица соответствия двоичных тетрад и шестнадцатиричных цифр
Отводная последовательность выбрана произвольно, поэтому гамма не обязательно имеет длину 28-1. Студент для своего варианта должен определить ключ (гамму) длиной 15 битов. Необходимо проверить условие (4.3). Исходные данные для своего варианта приведены в таблице 4.2. Лабораторную работу можно выполнить «вручную» или написав программу. После получения ключа студент должен провести поточное шифрование «вручную», используя фрагмент ключа, например, используя полученный ключ с 3-го бита. Список контрольных вопросов 1. Основные понятия криптографии. 2. Классификация криптосистем. 3. Общая схема симметричного шифрования. 4. В чем отличие шифрования от дешифрования. 5. Способы формирования ключей для поточного шифрования. 6. Какой аспект безопасности обеспечивает шифрование. 7. Что такое отводная последовательность. 8. Как работает РСЛОС. 9. Вопросы по поточному шифрованию. Варианты лабораторной работы Таблица 4.2
|