Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
cryptology_konspekt.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
3.09 Mб
Скачать

Раздел пятнадцатый

1. Одна схема псевдослучайного генератора.

Пусть f – односторонняя функция, которая после фиксации соответствующих параметров является перестановкой некоторого множества , причем . Примерами являются функции RSA, SQUARE, EXP, которые означают перестановки множеств Z , и Z соответственно. Пусть В – ядро функции f. Используя f и B, сконструируем генератор G с расширением l(n), где функция l(n) ограничена некоторым полиномом от n. Считаем, что и что принадлежность этому множеству можно эффективно распознать.

Вход: .

1) Если , то остановиться. Иначе, продолжать.

2) Для вычислить и .

3) Дать на выход последовательность .

Теорема. Для каждой односторонней перестановки f и ее ядра B описанный генератор G является псевдослучайным.

Замечание. Теорема говорит о том, что если выбирается равновероятно из , то никакой полиномиальный вероятностный алгоритм не в состоянии отличить последовательность от настоящей случайной последовательности такой же длины. На самом деле это утверждение остается справедливым и когда обнародуется последний элемент , т.е. последовательность нельзя отличить от последовательности за полиномиальное время, где – случайные и независимые между собой биты. Отметим, что и является случайным элементом множества .

Остановимся на реализации конструкции, описанной выше, на основе функции Рабина. Генератор, который при этом получается, называется генератором BBS (L.Blum, M. Blum, М. Shuba).

Пусть параметр ограничен полиномом от n. Чтобы получить из n случайных битов l псевдослучайных нужно:

1) выбрать случайные простые р и q такие, что для и ;

2) выбрать случайный элемент Z и вычислить ;

3) для i от 1 до l вычислять

, ;

4) дать на выход последовательность .

Легко видеть, что здесь выдержана общая конструкция, описанная выше, с функцией и ее ядром, предикатом четности . Следует напомнить, что функция не является биекцией на Z , но является таковой на . Именно поэтому выбиралось случайный элемент множества . По предыдущей теореме BBS генератор является псевдослучайным, а значит, криптографически надежным (при условии, что функция SQUARE действительно является односторонней). Некоторые его свойства являются особенно удобными.

Теорема. По и простым р и q можно эффективно вычислить всю последовательность , а значит, и последовательность .

Доказательство. Допустим, что известен элемент , где . Покажем, как получить . Ввиду биективности функции на , элемент однозначно определяется такими условиями:

, .

Введем обозначение и . По Китайской теореме вычеты у и z удовлетворяют условиям:

(15.1) и

(15.2) и, более того, такая пара однозначно определяет , причем эффективным образом. Так что достаточно найти у и z. Для этого используем соотношения:

, . (15.3)

Из них непосредственно видно, что у и z вычисляются эффективно с применением бинарного метода. Остается проверить условия (15.2) и (15.1). Условие (15.2) вытекает из замкнутости умножения в и . Условие (15.3) вытекает из формулы извлечения корня квадратного по модулю простого, сравнимого с 3 по (mod 4).

2. Приложение к потоковым шифрам.

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

3. Криптосистема Блюма-Гольдвассера.

1) Генерирование ключей.

Выбирают два больших простых числа Блюма р и q. Полагают открытым ключом произведение , а секретным ключом – р и q.

2) Шифрование.

Чтобы зашифровать двоичную последовательность длины l Алиса формирует двоичную последовательность из l псевдослучайных битов, полученных с помощью BBS генератора. Для этого она предварительно выбирает случайный квадратичный вычет по mod m, последовательным возведением в квадрат получает последовательность и полагает . Далее Алиса вычисляет и посылает Бобу шифртекст, который состоит из пары . Заметим, что описанное шифрование является вероятностным, ибо при разных выборах для генерирования псевдослучайной последовательности К сообщению будут соответствовать разные шифртексты.

3) Расшифрование.

Боб, который знает секретный ключ р и q, по числу вычисляет все члены последовательности (вычисления проводятся в обратном порядке, как это описано в последней теореме). На основе этой последовательности Боб воссоздает двоичный вектор К и получает

.

Эффективность. По скорости работы эта система сравнима с RSA.

Стойкость. Доказано, что система является стойкой при условии сложности задачи факторизации целых чисел Блюма. Один из вариантов соответствующей теоремы звучит так: для любого сообщения М длины случайную величину невозможно отличить от величины , которая состоит из настоящей случайной двоичной последовательности и случайного квадратичного вычета никакой схемой полиномиального от l размера.

Пример. Пусть – секретный ключ. Тогда открытым ключом будет . Пусть нужно зашифровать сообщение “NO”. Запишем сообщение в двоичной форме:

М = 001101 001110.

Запустим BBS генератор, выбрав r = 233. Потребуются 12 псевдослучайных битов. Их можно получить в соответствии с вышеописанной схемой.

i

0

1

2

3

4

5

6

7

8

9

10

11

12

101

150

213

358

123

271

25

188

384

187

9

81

6

1

0

1

0

1

1

1

0

0

1

1

1

0

Получаем К = 101011 100111 и . Тогда величина С имеет вид:

С = 100110 101001.

Таким образом, шифртекстом будет пара (100110 101001, 6).

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