Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Криптографические протоколы - Lection

.pdf
Скачиваний:
36
Добавлен:
17.03.2015
Размер:
533.67 Кб
Скачать

Содержание

Формальные модели шифров. Определение и примеры

3

Стойкость шифров. Совершенные шифры. Теорема Шеннона

4

Практическая стойкость шифра. Стандарт шифрования DES

7

Стандарт шифрования DES . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8

Имитостойкость симметрических шифров

11

Протоколы контроля целостности информации

13

Протоколы аутентификации сообщений и хэш-функции . . . . . . . . . . . . .

13

Эллиптические кривые над конечным полем

15

Группа точек эллиптической кривой . . . . . . . . . . . . . . . . . . . . . . . .

15

Строение некоторых классов групп Ep(a, 0) и Ep(0, b) . . . . . . . . . . . . . .

16

Порядок группы Ep(a, b) с нулевым дискриминантом . . . . . . . . . . . . . .

18

Элементарные верхние и нижние оценки порядка группы Ep(a, b) . . . . . . .

19

Теорема Хассе . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

21

Параметризация . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

21

Построение последовательности решений ξ = {(xn; yn)} . . . . . . . . . .

22

Построение последовательности d = {dn} . . . . . . . . . . . . . . . . . .

23

Леммы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

23

Доказательство теоремы Хассе . . . . . . . . . . . . . . . . . . . . . . . . .

29

Стандарт ЭЦП ГОСТ P.34.10-2001

30

Модели интерактивных протоколов доказательств

 

с нулевым разглашением

32

Протокол доказательства знания разложения натурального числа на два про-

 

стых множителя . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

32

Описание раундов вычислений и процедур . . . . . . . . . . . . . . . . . .

32

Протокол доказательства знания дискретного логарифма . . . . . . . . . . . .

33

Протокол доказательства правильности выбора модуля вычислений для систе-

 

мы RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

34

Раунд доказательства правильности выбора числа . . . . . . . . . . . . .

38

Доказательство корректности протокола . . . . . . . . . . . . . . . . . . .

38

Протоколы распределения ключей

39

Протоколы передачи секретных сеансовых ключей . . . . . . . . . . . . . . . .

39

Двухсторонние протоколы на основе симметричных криптосистем . . . .

39

Трёхсторонние протоколы . . . . . . . . . . . . . . . . . . . . . . . . . . .

42

Базовый протокол Kerberos . . . . . . . . . . . . . . . . . . . . . . . . . . .

42

Полный протокол Kerberos . . . . . . . . . . . . . . . . . . . . . . . . . . .

44

1

Депонирование ключей и возможность контроля

 

информационного взаимодействия

45

Описание протокола депонирования ключей . . . . . . . . . . . . . . . . . . . .

45

Протоколы голосования

46

Требования к протоколам голосования . . . . . . . . . . . . . . . . . . . . . . .

46

Модель протокола с одним доверенным центром . . . . . . . . . . . . . . . . .

46

Предварительные условия . . . . . . . . . . . . . . . . . . . . . . . . . . .

46

Голосование и подсчёт голосов . . . . . . . . . . . . . . . . . . . . . . . . .

46

Проверка честности центра . . . . . . . . . . . . . . . . . . . . . . . . . . .

47

Протокол Шаума-Педерсона . . . . . . . . . . . . . . . . . . . . . . . . . .

47

Неинтерактивный протокол Шаума-Педерсона . . . . . . . . . . . . . . .

48

Протокол голосования с несколькими центрами . . . . . . . . . . . . . . . . . .

48

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

49

Постановка задачи . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

49

Формальная модель подбрасывания монеты . . . . . . . . . . . . . . . . . . . .

49

Описание протокола . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

50

Экспоненциальный протокол совместной выработки случайного бита . . . . .

50

Описание протокола . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

50

Обоснование корректности протокола . . . . . . . . . . . . . . . . . . . . .

50

Экспоненциальный протокол подбрасывания монеты . . . . . . . . . . . . . . .

51

Обоснование корректности протокола . . . . . . . . . . . . . . . . . . . . .

51

Протокол подбрасывания монеты на основе квадратичного

 

вычета по модулю числа Блюма . . . . . . . . . . . . . . . . . . . . . . . .

51

Обоснование корректности протокола . . . . . . . . . . . . . . . . . . . . .

52

Протокол подбрасывания монеты на основе символа Якоби . . . . . . . . . . .

52

Обоснование корректности протокола . . . . . . . . . . . . . . . . . . . . .

53

Протокол подбрасывания монеты на основе корней сравнения x2 = a (mod n)

53

Описание протокола . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

53

Обоснование корректности протокола . . . . . . . . . . . . . . . . . . . . .

54

A Вопросы к экзамену

55

2

Формальные модели шифров. Определение и примеры

Пусть A = {a1, . . . , au} и B = {b1, . . . , bv} некоторые конечные множества (алфавиты). В множествах A и B выделим подмножества X A и Y B , которые будем называть множеством открытых и шифрованных текстов соответственно.

Далее, пусть K Kз × Kр множество параметров, определяющих для каждо-

го k = (kз, kр) K пару отображений Ekз : X → Y и Dkр : Y → X . Множество K будем называть пространством ключей. Отображение Ekз определяет алгоритм за-

шифрования открытых текстов, а отображение Dkр задаёт алгоритм расшифрования шифрованного текста.

Пусть E = {Ekз : kз Kз}, D = {Dkр : kр Kр}.

Определение. Пятёрка ΣA = (X , Y, K, E, D) называется шифром (алгебраическим), если выполняются следующие условия:

(1)

x X , k = (kз, kр) K Dkр (Ekз (x)) = x,

 

[

(2)

Y = Ekз (X ).

kKз

Выполнение условия (1) обеспечивает однозначность процедуры расшифрования. Условие (2) означает, что любой шифрованный текст получен из некоторого откры-

того текста, зашифрованного на некотором ключе.

Если на множествах X и K заданы некоторые априорные распределения P (X ) и P (K), то система

ΣB = (X , Y, K, E, D, P (X ), P (K))

задаёт вероятностную модель шифра.

Алгебраическая модель шифра, как правило, используется при методах синтеза шифров, а вероятностная при проведении криптоанализа.

Если для любого данного ключа K = (kз, kр) K ключ kр просто получается из ключа kз, то соответствующая криптосистема называется симметрической или одноключевой. В противном случае криптосистема называется асимметрической.

Приведём несколько примеров шифров.

1. Шифр простой замены.

A = B, K SA×SA, где SA группа подстановок на множестве A. Для данного k = (kз, kр) K, kр = kз−1. Если x˜ = x1x2 . . . xt ( xi A ) открытый текст, то

Ekз (˜x) = kз(x1)kз(x2) . . . kз(xt) = y1y2 . . . yt = y,˜

Dkр (˜y) = kз−1(y1)kз−1(y2) . . . kз−1(yt) = x˜.

2. Шифр перестановки.

A = B, X , Y (Al) , K Sl ×Sl, K = {(kз, kз−1)} , Sl симметрическая группа степени l. Если kз Sl, x = x1x2 . . . xl, xi A, то Ekз (x) = xkз(1)xkз(2) . . . xkз(l),

то есть в блоке длины l символы переставляются по заданной ключевой перестановке kз. Очевидно, что Dkр (y) = Ekз−1 (y) = x.

3

3. Шифр модульного гаммирования.

A = B = Zn, K (Zn) × (Zn) , X (Zn) , Y (Zn) . Если kз = γ1γ2 . . . γt, то kр = (−γ1)(−γ2) . . . (−γt) и Ekз (x) = c1c2 . . . ct d1d2 . . . dt, где ci = xi + γi (mod n), di = ci − γi (mod n).

x = a1a2 . . . at,

= y, Dkр (y) =

Очевидно, что все приведённые выше шифры являются симметрическими.

4. Криптосистема (шифр) Ривеста, Шамира, Адлемана (RSA).

A = B = X = Y = Zn, n = pq, p 6= q, p, q

простые секретные числа. Число n

является модулем вычислений и всем известно.

Выбираются два числа e и d такие, что

ed ≡ 1 (mod ϕ(n) = (p − 1)(q − 1))

( ϕ(n) функция Эйлера). K Zϕ(n) × Zϕ

(n) = {(e, d): ed ≡ 1 (mod ϕ(n))} .

Ключ зашифрования e является открытым, а ключ расшифрования d секретным. При этом зашифрование и расшифрование происходят по следующим правилам:

y = Ekз (x) = xe

(mod n), x Zn,

Dkр (y) = yd

(mod n), y Zn.

5. Криптосистема Эль Гамаля.

A = B = X = Y = Fq конечные поля из q элементов, q = pw, p простое, g примитивный элемент поля Fq. K Zq−1 × Fq, Zq−1 × Fq . Каждый участник информационного обмена A имеет свой индивидуальный секретный ключ kA Zq−1 и собственный открытый ключ sA = gkA. Если участник A желает послать зашифрованное сообщение x участнику B, то kз = (kA, sB), kр = (kB, sA). Зашифрование и расшифрование происходят следующим образом:

y = Ekз (x) = x·(sB)kA,

Dkр (y) = (sA)−kB ·y.

Очевидно, что шифры RSA и Эль Гамаля являются асимметрическими.

Стойкость шифров. Совершенные шифры. Теорема Шеннона

Основным параметром шифра (криптосистемы), который определяет надёжность шифра, является его способность противостоять атакам “противника” (злоумышленник, несанкционированный пользователь). Цель противника получить доступ к конфиденциальной (зашифрованной) информации и/или изменить, модифицировать её. Атака противника это его попытка добиться указанных целей, в частности, прочитать исходный текст. Ясно, что если противник сможет определить ключ зашифрования, то ему будет вся информация, зашифрованная этим ключом. В криптографии при синтезе и анализе шифров предполагается, что противнику известно о шифре всё, кроме ключа.

4

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

Рассмотрим возможность пассивной атаки для вероятностной модели шифра. Пусть ΣB = (X , Y, K, E, D, P (X ), P (K)) вероятностная модель шифра. На множестве X задана дискретная случайная величина ξ, с распределением

PX {ξ = x} = p(x),

X

p(x) = 1.

 

x X

Аналогично на пространстве ключей K определена дискретная случайная величина η с распределением

PK {η = k} = p(k),

X

 

p(k) = 1.

 

 

k K

 

Будем предполагать, что величины η и ξ

независимые, и выполняется условие

 

p(x) > 0, p(k) > 0

x X , k K.

(3)

Случайные величины ξ и η индуцируют случайную величину ω на множестве шифртекстов Y с распределением

 

 

PY {ω = y} =

(X

 

 

p(x)p(k) = p(y).

 

 

 

x,k)

 

 

Ek(x)=y

Очевидно, что

p(y) = 1 и p(y) > 0. Последнее неравенство вытекает из опреде-

 

y Y

 

 

ления шифра (условиеP

(2) ).

 

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

PY|X {ω = y|ξ = x} =

X

X

p(k) = p(y|x),

p(y|x) = 1;

 

k K

y Y

Ek(x)=y

X

PK|X {ω = y|η = k} =

X

p(x) = p(y|k),

p(y|k) = 1.

 

x X

y Y

Ek(x)=y

 

Определение. Шифр ΣB назовём совершенным, если для любого x из X и любого y из Y выполняется равенство

p(x) = p(x|y).

(4)

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

5

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

Замечание. Из формулы Байеса

 

 

 

 

p(x

y) =

p(x)p(y|x)

 

|

 

 

p(y)

 

следует, что если шифр совершенный, то

 

 

p(y|x) = p(y) > 0,

x X , y Y.

(5)

Лемма 1.

Если ΣB совершенный шифр, то |X | 6 |Y| 6 |K|.

Доказательство.

Из определение шифра следует, что при любом k K отображение Ek: X → Y является инъективным (однозначность расшифрования при данном ключе) поэтому

|X | 6 |Y|.

k K такой, что

Далее покажем, что для любых x X и y Y найдётся

Ek(x) = y. Допустим, что это не так, то есть найдутся такие x0

X и y0 Y та-

кие, что для всех k K Ek(x0) 6= y0. Это означает, что p(y0|x0) = 0. Учитывая (5), приходим к противоречию.

Из доказанного выше следует, что при любом фиксированном x X выполняется

соотношение

 

{Ek(x)|k K} = Y.

(6)

Следовательно, |Y| 6 |K|. Лемма доказана.

 

Теорема 1 (Шеннон).

 

Если |X | = |Y| = |K| = N, то шифр ΣB = (X , Y, K, E, D, P (X ), P (K))

является

совершенным тогда и только тогда, когда выполняются условия

 

x X , y Y ! k K: Ek(x) = y;

(7)

1

 

 

k K p(k) =

 

.

(8)

N

Доказательство.

Необходимость. Из условия |K| = |Y| и соотношения (6) следует, что при любых

k1 6= k2, k1, k2 K и любого x X выполняется условие Ek1 (x) 6= Ek2 (x). Тем самым установлена необходимость условия (7).

Далее, учитывая справедливость условия (7), для данного фиксированного y Y упорядочим элементы множеств X = {x1, . . . , xN } и K = {k1, . . . , kN } таким образом, чтобы выполнялось соотношение

Eki(xi) = y.

(9)

Из определения условной вероятности p(y|xi)

следует:

p(y|xi) =

X

 

p(k) = p(xi)

kK

Ek(x)=y

6

С другой стороны, из формулы Байеса имеем

p(xi|y) = p(xi)p(y|xi). p(y)

Из этого соотношения немедленно следует, что p(ki) = p(y) i = 1, N, то есть p(xi) = 1/N. Таким образом установлена необходимость выполнения условия (8).

Достаточность. Из определения вероятностей p(y) и p(y|x) с учётом (9) имеем:

 

 

 

 

 

 

1

N

1

 

(xXi i

 

 

 

 

 

X

 

 

 

 

 

p(xi)p(ki) = N

 

 

 

 

 

p(y) =

 

 

 

 

p(xi) = N ;

 

,k )

 

 

 

 

i=1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Eki(xi)=y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

p(y|xi) =

p(k) = p(ki) =

 

.

 

 

N

 

 

 

 

 

kK

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ek(xi)=y

 

 

 

 

 

 

 

 

 

 

 

Поэтому

 

p(xi)p(y|xi)

 

 

 

 

 

1/N

 

 

 

 

 

 

p(x y) =

 

 

= p(x )

 

= p(x

).

 

 

·1/N

i|

 

 

p(y)

 

 

 

 

i

 

 

i

 

 

Таким образом, ΣB совершенный шифр.

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

Практическая стойкость шифра. Стандарт шифрования DES

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

7

шифр с точностью до ключей, то данный шифр практически стойкий, если сложность задачи определения ключа равна L(n) = O(2n), где n длина секретного ключа.

К практически стойким шифрам относятся современные стандарты шифрования данных, разработанные в России и США. Первый открытый стандарт шифрования был разработан в США (1975–76 гг.). Это широко известный криптоалгоритм DES (Data Encryption Standard). В России (СССР) подобным стандартом, опубликованном в 1989 году, является ГОСТ 28147-89. Новый американский стандарт AES (Advanced Encryption Standard), основанный на алгоритме Rijndael, опубликован (проект) в 2001 году. Этот стандарт заменяет DES, что связано с относительно маленькой длиной ключа (56 бит). Такая длина ключа позволяет при современном уровне развития вычислительной техники осуществить полный перебор всех ключей.

Стандарт шифрования DES

Криптоалгоритм DES это, по существу, шифр простой замены на алфавите {0, 1}64. Этот шифр блочный текст (открытый и шифрованный) разбивается на бинарные блоки длины 64. Шифр DES симметрический kз = kр {0, 1}56 и реализован в виде сети Фейстела (H. Feistel), а именно, каждый блок открытого (шифрованного) текста и результаты промежуточных вычислений представляются в виде двух бинарных подблоков (левый Li , правый Ri ) длины 32. Основная процедура вычислений имеет вид:

Li = Ri−1,

 

 

 

(1)

i = 1, n.

Ri = f(Ri−1, ki) Li−1,

 

 

 

 

Здесь n число раундов (итераций), ki раундовый ключ, вырабатываемый по определённому алгоритму из основного ключа k, f функция усложнения.

Из (1) следует, что отображение ϕki: (Li−1, Ri−1) → (Li, Ri) при любой функции f является обратимым. Тем самым обеспечивается выполнение условия однозначности расшифрования.

Перейдём к точному описанию всех вычислительных процедур криптоалгоритма DES.

1.Обеспечение целостности ключа.

Исходный ключ длины 56 расширяется до ключевой последовательности длины 64 следующим образом. Исходный ключ разбивается на блоки длины 7 и каждый блок дополняется контрольным битом (проверка на чётность). Таким образом преобразованный ключ имеет вид:

 

8i−1

 

M

 

 

k = γ1γ2 . . . γ64, γ8i =

γj, i = 1, 8.

j=8(i−1)+1

2.Описание основной процедуры зашифрования.

Вход: x бинарный блок ( |x| = 64 ) и k ключ ( |k| = 64 ).

8

2.1Вычисляется x0 = IP(x) = αIP(1)αIP(2) . . . αIP(64). x = α1α2 . . . α64, IP S64

фиксированная перестановка:

 

 

57 + 2(i − 5) − 8(j − 1),

 

 

 

 

 

 

 

i = 1, 8, j = 5, 8.

IP(j + 8(i

 

1)) =

58 + 2(i − 1) − 8(j − 1),

i = 1, 8, j = 1, 4,

 

 

 

 

 

 

2.2 Последовательность (блок) x0 представляется в виде конкатенации двух блоков L0 и R0 :

x0 = L0R0, |L0| = |R0| = 32.

2.3 Далее вычисления проводятся по рекуррентным формулам:

 

 

 

Li = Ri−1,

 

 

(2)

Ri = Li−1 f(Ri−1, ki), i = 1, n − 1,

 

где ki раундовый ключ, алгоритм выработки которого будет описан ниже.

2.4 Вычисляются последние блоки:

Ln = Ln−1 f(Rn−1, kn),

Rn = Rn−1;

Y0 = LnRn.

2.5К блоку Y0 применяется перестановка IP−1 S64. Y = IP−1(Y0) выход алгоритма, зашифрованный блок.

3.Описание функции усложнения.

Рассматриваем функцию f(V, Z), |V | = 32, |Z| = 48.

3.1Расширение блока V = δ1δ2 . . . δ32 до блока E = ε1ε2 . . . ε48. Эта процедура задаётся формулами

ε6i+j = δ4i+j−1, i = 0, 7, j = 1, 6, δ0 = δ32, δ33 = δ1.

3.2Процедура наложения раундового ключа: W = E Z.

3.3Основная процедура усложнения (узлы замены). Блок W разбивается на 8 наборов длины 6 :

W = W1W2 . . . W8, |Wi| = 6, i = 1, 8.

К каждому набору применяется отображение (узел замены)

Si: {0, 1}6 → {0, 1}4.

Аналитически Si задаются системой четырёх булевых функций от шести переменных. Каждое отображение Si кодируется матрицей размера 4 на 16.

Элементы матрицы ast Z16, s = 0, 3, t = 0, 15.

9

Если b = β1β2β3β4β5β6 {0, 1}6, то биты β1, β6 определяют номер строки, а биты β2, β3, β4, β5 номер столбца, то есть

Si(b) = ast, где s = β1 + 2β6, t = β2 + 2β3 + 4β4 + 8β5.

Таким образом,

S(W ) = S1(W1)S2(W2) . . . S8(W8) = ν1ν2 . . . ν32 = U.

3.4 К набору U применяется фиксированная подстановка P :

P(U) = νP(1)νP(2) . . . νP(32) = f(V, Z).

Циклическая запись подстановки P :

P = (1 16 10 15 31 4 21 32 25 19 24 9)

(2 7 28 6 12 26 13 5 29 22 27 30 11 23 3 20 14 18 8 17)

4.Вычисление раундовых ключей.

4.1Из ключа γ = γ1γ2 . . . γ64 {0, 1}64 выбираются две последовательности

a0 = α1α2 . . . α28 и b0 = β1β2 . . . β28 по формулам

αi+8j = γ57+j−8(i−1), i = 1, 8, j = 0, 2,

α25+s = γ60−8s, s = 0, 3;

βi+8j = γ63−5−8(i−1), i = 1, 8, j = 0, 2, β25+s = γ28−8s, s = 0, 3.

Например,

α21 = α5+8·2 = γ57+2−4·8 = γ27, β19 = β3+8·2 = γ63−2−8·2 = γ45.

4.2 Определяется параметр сдвига τi для i -го раунда ( i = 1, 16 ) по правилу:

 

τi =

1,

если i = 1, 2, 6, 9,

 

2,

в остальных случаях.

 

16

 

 

Очевидно,

iP

 

 

τi = 28.

 

 

 

=1

 

 

4.3 Окончательно раундовый ключ вычисляется по следующему алгоритму: ki = PC(Lτi(ai−1)Lτi(bi−1)), i = 1, 6,

где Lq оператор сдвига на q разрядов, PC фиксированное отображение, PC: {0, 1}56 → {0, 1}48. Отображение задаётся определённой выборкой объёма 48 без повторения из множества {1, 2, . . . , 56}, то есть из последовательности длины 56 выбираются 48 определённых разрядов, а именно:

14 . 17 . 11 . 24 . 1 . 5 . 3 . 28 . 15 . 6 . 21 . 10 . 23 . 19 . 12 . 4 . 26 . 8 . 16 . 7 . 27 . 20 . 13 . 2 41.52.31.3.7.47.55.30.40.51.45.33.48.44.49.39.56.34.53.46.42.50.36.29.32

10