Лабораторная работа № 3. Потоковые криптосистемы




 

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

Ci = EKi (Mi) = Mi Å Ki, Mi, Ki, Ci Î {0,1}. (3)

При дешифровании выполняется обратное преобразование DKi:

DKi (Ci) = Ci Å Ki = (Mi Å Ki) Å Ki = Mi. (4)

Символом «Å» обозначена операция сложения «ИСКЛЮЧАЮЩЕЕ-ИЛИ». Благодаря линейным свойствам этой операции при шифровании и дешифровании используется одинаковый ключевой поток K. Очевидно, что в этом случае длина K должна быть равна длине передаваемого сообщения. Однако обмен ключами большого размера зачастую невозможен. Поэтому на практике для формирования ключевого потока используют генераторы псевдослучайной последовательности (рис. 1). Начальные параметры I генераторов на стороне отправителя и получателя должны совпадать, они являются секретным ключом алгоритма. Псевдослучайная последовательность каждого генератора обладает определенным периодом, после которого значения повторяются. Поэтому необходимо выбирать такие генераторы ключа, чтобы этот период превышал длину шифруемой информации.

Рис. 1. Схема потоковой криптосистемы

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

Рассмотрим генераторы ключей на основе сдвиговых регистров с линейной обратной связью LFSR (Linear Feedback Shift Register). Они достаточно просто реализуются в программном и аппаратном виде, обладают высокой скоростью генерации и большим периодом ключа. Регистр LFSR состоит из двух частей: сдвигового регистра, выполняющего сдвиг своих разрядов влево на один разряд, и функции обратной связи, вычисляющей вдвигаемое в первый разряд значение. В обобщенном виде структура LFSR представлена на рис. 2.

Рис. 2. Обобщенная схема LFSR

Структуру конкретного регистра LFSR принято задавать с помощью характеристического (задающего) многочлена:

P (x) = am xm + am- 1 xm- 1 + … + a 2 x 2 + a 1 x + 1, ak Î {0,1}, k = 1, …, m. (5)

Степень многочлена m задает длину сдвигового регистра. Ненулевые коэффициенты ak определяют разряды регистра, которые будут участвовать в формировании вдвигаемого в первый разряд значения. Через bk (bk Î {0,1}) обозначены текущие значения разрядов LFSR (k = 1, …, m). Новые значения разрядов b*k (b*k Î {0,1}) вычисляются по следующему закону:

 

  – функция обратной связи   (6)
– сдвиг.

 

Таким образом, новое значение для всех разрядов, кроме первого, берется из ближайшего младшего разряда. Символом обозначена многоместная операция сложения «ИСКЛЮЧАЮЩЕЕ-ИЛИ». Она используется для сложения значений из разрядов, которые отмечены ненулевыми коэффициентами ak характеристического многочлена. Полученная сумма вдвигается в первый разряд LFSR. Очередной бит ключа Ki для потоковой криптосистемы равен значению старшего разряда LFSR bm.

Пример 1. Построим сдвиговый регистр с линейными обратными связями, задаваемый характеристическим многочленом P (x) = x 4 + x + 1.

Схема регистра приведена на рис. 3. Если начальное состояние регистра I = 1111, то последовательность генерируемых состояний имеет вид

 

1111®1110®1101®1010®0101®1011®0110®1100®

1001®0010®0100®1000®0001®0011®0111®1111

Рис. 3. LFSR на основе многочлена P (x) = x 4 + x + 1

Последнее состояние совпадает с начальным, после этого указанная последовательность повторяется. Последовательность сгенерированных бит ключа: 1111010110010001.

Свойства генерируемой последовательности определяются постоянными коэффициентами характеристического многочлена ai. При их соответствующем выборе генерируемая последовательность K будет иметь максимально возможный период, равный 2 m – 1. Последовательность максимально возможного для данного генератора периода называется M-последовательностью. Основная задача синтеза генератора на основе LFSR – нахождение характеристического многочлена, позволяющего сформировать М-последовательность. Для того чтобы конкретный LFSR имел максимальный период, соответствующий многочлен должен быть примитивным. В общем случае не существует простого способа нахождения примитивных многочленов данной степени, проще выбирать многочлен случайным образом и проверять, является ли он примитивным. Эта задача аналогична задаче проверки на простоту случайно выбранного целого числа и решается с помощью вычислительной техники. Табл. 1 содержит некоторые примитивные многочлены.

Таблица 1

Примитивные многочлены

m P (x) m P (x) m P (x)
  x 23 + x 5 + 1   x 29 + x 2 + 1   x 35 + x 2 + 1
  x 24 + x 4 + x 3 + x + 1   x 30 + x 16 + x 15 + x + 1   x 36 + x 11 + 1
  x 25 + x 3 + 1   x 31 + x 3 + 1   x 37 + x 12 + x 10 + x 2 + 1
  x 26 + x 8 + x 7 + x + 1   x 32 + x 28 + x 27 + x + 1   x 38 + x 6 + x 5 + x + 1
  x 27 + x 8 + x 7 + x + 1   x 33 + x 13 + 1   x 39 + x 4 + 1
  x 28 + x 3 + 1   x 34 + x 15 + x 14 + x + 1   x 40 + x 21 + x 19 + x 2 + 1

 

Использование LFSR для создания потоковых криптосистем предполагает наличие уязвимости, связанной с линейным характером генерируемой последовательности. Обладая парой «исходный текст – шифротекст» длиной всего 2 m бит, взломщик может восстановить характеристический многочлен и дешифровать все сообщение. Для защиты от этой атаки следует увеличивать размер используемого LFSR или использовать более сложные схемы генерации ключа. Рассмотрим, для примера, генератор Геффе (Geffe), представленный на рис. 4.

Рис. 4. Генератор Геффе

В нем используются три регистра с линейной обратной связью, объединённые нелинейным образом. Два регистра LFSR являются входами мультиплексора, а третий – управляет его выходом. Через x 1, x 2 и x 3 обозначены выходы трёх LFSR, выход генератора Геффе xG описывается так: xG = (x 1 and x2) or (not x 1 and x 3). Период данного генератора равен , где m 1, m 2 и m 3 – длины первого, второго и третьего LFSR соответственно.

Благодаря простоте реализации, высокой скорости работы и сравнительно высокой криптостойкости потоковые шифраторы получили широкое распространение для шифрования информации средней степени секретности. Например, алгоритм A5, построенный на основе трех LFSR с прореженными обратными связями, входит в состав стандарта мобильной связи GSM.

 

Генератор «Стоп-пошел» Этот генератор использует выход одного LFSR для управления тактовой частотой другого LFSR. Тактовый выход LFSR-2 управляется выходом LFSR-1, так что LFSR-2 может изменять свое состояние в момент времени t только, если выход LFSR-1 в момент времени t–1 был равен 1.

 

Рисунок 5. Генератор «Стоп-пошел»

 

Задания

Вариант 1:

1. Реализуйте систему потокового шифрования файлов с помощью генератора ключевой последовательности на основе линейного сдвигового регистра с обратной связью LFSR1

P (x)= x 23 + x 5 + 1

2. Модифицируйте программу из задания 1 путем реализации схемы Геффе с тремя регистрами LFSR1, LFSR2 и LFSR3

P1 (x)= x 29 + x 2 + 1

P2 (x)= x 36 + x 11 + 1

P3 (x)= x 39 + x 4 + 1

Вариант 2:

1. Реализуйте систему потокового шифрования файлов с помощью генератора ключевой последовательности на основе линейного сдвигового регистра с обратной связью LFSR1

P (x)= x 24 + x 4 + x 3 + x + 1

2. Модифицируйте программу из задания 1 путем реализации генератора «Стоп-пошел» с двумя регистрами LFSR1, LFSR2

P1 (x)= x 30 + x 16 + x 15 + x + 1

P2 (x)= x 37 + x 12 + x 10 + x 2 + 1

Вариант 3:

1. Реализуйте систему потокового шифрования файлов с помощью генератора ключевой последовательности на основе линейного сдвигового регистра с обратной связью LFSR1

P (x)= x 24 + x 4 + x 3 + x + 1

2. Модифицируйте программу из задания 1 путем реализации схемы Геффе с тремя регистрами LFSR1, LFSR2 и LFSR3

P1 (x)= x 31 + x 3 + 1

P2 (x)= x 38 + x 6 + x 5 + x + 1

P3 (x)= x 40 + x 9 + x 3 + x + 1

Вариант 4:

1. Реализуйте систему потокового шифрования файлов с помощью генератора ключевой последовательности на основе линейного сдвигового регистра с обратной связью LFSR1

P (x)= x 26 + x 8 + x 7 + x + 1

2. Модифицируйте программу из задания 1 путем реализации генератора «Стоп-пошел» с двумя регистрами LFSR1, LFSR2

P1 (x)= x 32 + x 28 + x 27 + x + 1

P2 (x)= x 40 + x 21 + x 19 + x 2 + 1

Вариант 5:

1. Реализуйте систему потокового шифрования файлов с помощью генератора ключевой последовательности на основе линейного сдвигового регистра с обратной связью LFSR1

P (x)= x 25 + x 3 + 1

2. Модифицируйте программу из задания 1 путем реализации схемы Геффе с тремя регистрами LFSR1, LFSR2 и LFSR3

P1 (x)= x 33 + x 13 + 1

P2 (x)= x 32 + x 28 + x 27 + x + 1

P3 (x)= x 26 + x 6 + x 2 + x + 1

Вариант 6:

1. Реализуйте систему потокового шифрования файлов с помощью генератора ключевой последовательности на основе линейного сдвигового регистра с обратной связью LFSR1

P (x)= x 27 + x 8 + x 7 + x + 1

2. Модифицируйте программу из задания 1 путем реализации генератора «Стоп-пошел» с двумя регистрами LFSR1, LFSR2

P1 (x)= x 34 + x 15 + x 14 + x + 1

P2 (x)= x 31 + x 3 + 1

Вариант 7:

1. Реализуйте систему потокового шифрования файлов с помощью генератора ключевой последовательности на основе линейного сдвигового регистра с обратной связью LFSR1

P (x)= x 28 + x 3 + 1

2. Модифицируйте программу из задания 1 путем реализации схемы Геффе с тремя регистрами LFSR1, LFSR2 и LFSR3

P1 (x)= x 30 + x 23 + x 2 + x + 1

P2 (x)= x 25 + x 3 + 1

P3 (x)= x 40 + x 21 + x 19 + x 2 + 1

Вариант 8:

1. Реализуйте систему потокового шифрования файлов с помощью генератора ключевой последовательности на основе линейного сдвигового регистра с обратной связью LFSR1

P (x)= x 24 + x 7 + x 2 + x + 1

2. Модифицируйте программу из задания 1 путем реализации генератора «Стоп-пошел» с двумя регистрами LFSR1, LFSR2

P1 (x)= x 37 + x 12 + x 10 + x 2 + 1

P2 (x)= x 27 + x 8 + x 7 + x + 1

Вариант 9:

1. Реализуйте систему потокового шифрования файлов с помощью генератора ключевой последовательности на основе линейного сдвигового регистра с обратной связью LFSR1

P (x)= x 26 + x 6 + x 2 + x + 1

2. Модифицируйте программу из задания 1 путем реализации схемы Геффе с тремя регистрами LFSR1, LFSR2 и LFSR3

P1 (x)= x 32 + x 22 + x 2 + x + 1

P2 (x)= x 23 + x 5 + 1

P3 (x)= x 29 + x 2 + 1

Вариант 10:

1. Реализуйте систему потокового шифрования файлов с помощью генератора ключевой последовательности на основе линейного сдвигового регистра с обратной связью LFSR1

P (x)= x 26 + x 6 + x 2 + x + 1

2. Модифицируйте программу из задания 1 путем реализации генератора «Стоп-пошел» с двумя регистрами LFSR1, LFSR2

P1 (x)= x 40 + x 9 + x 3 + x + 1

P2 (x)= x 34 + x 15 + x 14 + x + 1

Вариант 11:

1. Реализуйте систему потокового шифрования файлов с помощью генератора ключевой последовательности на основе линейного сдвигового регистра с обратной связью LFSR1

P (x)= x 27 + x 5 + x 2 + x + 1

2. Модифицируйте программу из задания 1 путем реализации схемы Геффе с тремя регистрами LFSR1, LFSR2 и LFSR3

P1 (x)= x 35 + x 2 + 1

P2 (x)= x 24 + x 4 + x 3 + x + 1

P3 (x)= x 32 + x 22 + x 2 + x + 1

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-07-23 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: