Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Теоретико-числовые методы в криптографии и криптопротоколах. Учебное пособие.pdf
X
- •ПРЕДИСЛОВИЕ
- •1. ОСНОВНЫЕ АЛГЕБРАИЧЕСКИЕ КОНСТРУКЦИИ
- •1.1. Группы
- •1.2. Кольца
- •2. ЭЛЕМЕНТЫ ТЕОРИИ ЧИСЕЛ, КОНЕЧНЫХ ПОЛЕЙ И ЭЛЛИПТИЧЕСКИХ КРИВЫХ
- •2.1. Элементы теории сложности алгоритмов
- •2.2. Свойства кольца
- •2.3. Конечные поля
- •2.4. Группа точек эллиптической кривой
- •3.2. Примеры асимметрических криптосистем
- •3.3. Электронная подпись
- •3.4. Примеры криптопротоколов
- •4. АЛГЕБРАИЧЕСКИЕ ОПЕРАЦИИ В КОНЕЧНЫХ КОЛЬЦАХ И ПОЛЯХ
- •4.1. Вычисления в кольцах
- •4.2. Решение квадратных уравнений в кольцах
- •5.1. Вычисления в поле Галуа
- •6. АСИММЕТРИЧЕСКИЕ КРИПТОСИСТЕМЫ И КРИПТОПРОТОКОЛЫ
- •6.1. Криптосистема RSA
- •6.2. Криптосистема Эль-Гамаля
- •6.3. Криптосистема Хора – Ривеста
- •6.4. Протоколы электронной подписи
- •ЗАКЛЮЧЕНИЕ
- •БИБЛИОГРАФИЧЕСКИЙ СПИСОК

3. КРИПТОПРОТОКОЛЫ
{ }
1
,,
n
aa=
12
, ,,
k
ii i
t aa a=
( )
k
E
⋅
kK∈
( )
k
cEt=
kK
∈
( )
k
E ⋅
( )
k
t Dc=
( )
( )
E
⋅
⋅
( )
( )
D
⋅
⋅
( )
k
E ⋅
( )
k
D ⋅
И АСИММЕТРИЧЕСКИЕ КРИПТОСИСТЕМЫ
3.1. ОСНОВНЫЕ ПОНЯТИЯ
АСИММЕТРИЧЕСКОЙ КРИПТОГРАФИИ
3.1.1. Основные определения
Напомним общеизвестные понятия, а для более детального изучения
асимметрической криптографии рекомендуем прочитать книгу [9].
Алфавитом
называется множество символов (чисел
или других объектов), в последовательности которых кодируется информация. Последовательность
фиксированной или произ-
вольной длины, в которой закодирована некоторая информация, называет-
ся текстом (открытым текстом). Через
(Encryption) обозначается
обратимая функция криптографического преобразования текста (функция
зашифрования) с ключом
зования
метр
функции зашифрования
называется шифротекстом (или криптотекстом). Пара-
. Результат криптографического преобра-
называется ключом, который
принадлежит некоторому множеству K допустимых ключей, называемому ключевым пространством (или пространством ключей). Функция об-
ратного преобразования
(Descryption). Шифр (или криптосистему) можно определить как совокупность таких объектов, как алфавит , множество допустимых текстов T,
функции зашифрования
странство K и т. д., а также регламент (правила) их использования.
ли функции зашифрования
один и тот же секретный ключ k.
называется функцией расшифрования
и расшифрования
, ключевое про-
Определение 18. Криптосистема называется симметрической, ес-
и расшифрования
81
используют

Криптосистема называется асимметрической, или криптосисте-
( )
k
E ⋅
( )
k
D ⋅
( )
(
)
k
k
EDc c=
( )
( )
k
k
DEt t=
(
)
,0kk
ψ=
( )
y Hx=
2
n
y ∈
160n =
256, 512n =
256, 512, 384n =
128n =
( )
Hx y=
мой с открытым ключом, если функции зашифрования
рования
ния k называется открытым (не секретным) ключом, а ключ расшифро-
вания k называется закрытым (секретным) ключом.
Ясно, что в силу очевидных равенств
открытый и закрытый ключи связаны некоторым соотношением
Основная аксиома асимметрических криптосистем: не существует
эффективного алгоритма вычисления из связи (3.1) закрытого ключа k
по известному ключу k.
Существует большое количество книг по криптографии, рассчитан-
используют различные ключи. При этом ключ зашифрова-
. (3.1)
и расшиф-
,
ных на различный начальный уровень подготовки читателя, а также разного уровня сложности. Руководствуясь субъективными предпочтениями,
можем порекомендовать некоторые из них, например [10].
Криптографической хеш-функцией (или хеш-функцией, функцией
хеширования) называется функция
1. Аргумент хеш-функции x – битовая строка произвольной длины.
2. Для любого значения аргумента x значение хеш-функции
битовая строка фиксированной длины, где n определяется стандартом данной хеш-функции. Например,
для ГОСТ Р 34.11-2012 «Стрибог»,
SHA-256, SHA-256, SHA-380,
3. Существует эффективный алгоритм вычисления значения хеш-
для SHA-1 (Secure Hash Algoritm),
для MD5 и т. д.
, для которой:
–
для
функции для любого аргумента x.
т. е. вычисления x, т.ч.
4. Не существует эффективного алгоритма обращения хеш-функции,
для заданного значения y.
82

5. Не существует какого-либо способа предъявления пары аргументов
12
xx≠
( ) ( )
12
Hx Hx=
1
x
2
x
12
xx
≠
( ) ( )
12
Hx Hx=
2
2
nn
=
XY→
( )
y fx Y= ∈
xX∈
( )
1
xf y
−
=
( ) ( )
1 2 12
fx fx x x= ⇒=
, т.ч.
Прокомментируем последний пункт. Пара
хеш-функции, если
.
, но
,
называется коллизией
. Так как множество воз-
можных аргументов хеш-функции бесконечно, а множество ее значений
конечно (
), то для любой функции хеширования существует бес-
конечное количество коллизий. Тем не менее, предъявить хотя бы одну из
них для «действующей» хеш-функции невозможно.
3.1.2. Односторонние функции
Всякая асимметрическая криптосистема основывается на какой-либо
односторонней функции.
Понятие односторонней функции следует давать на языке предикатов
и вероятностной машины Тьюринга, но сейчас мы пожертвуем строгостью, чтобы сделать определение более простым для понимания.
Определение 19. Функция f:
называется односторонней,
если:
1. Существует эффективный алгоритм вычисления значения функ-
ции
для любого значения аргумента
.
2. Не существует эффективного алгоритма обращения функции,
т. е. вычисления аргумента
3. Функция f инъективна, т. е.
по известному значению y.
.
Заметим, что первые два пункта определения односторонней функции
совпадают с третьим и четвертым пунктами определения хеш-функции.
Однако последний пункт по сути означает отсутствие у односторонней
функции коллизий, в то время как всякая хеш-функция их имеет. Поэтому
хеш-функция не является односторонней.
83

Односторонняя функция называется односторонней функцией с сек-
( )
1
xf y
−
=
x
yg=
,
yg G∈
x ∈
yG∈
log
g
xy=
p
G
∗
=
mod
x
yg p=
,
p
yg∈
1xp<−
ретом (с ловушкой), если существует некоторое секретное число s, зна-
ние которого позволяет эффективно вычислять обратное
.
Строго говоря, пока не доказано существование односторонних
функций и не известен ни один пример такой функции. Поэтому на практике используют так называемые кандидаты в односторонние функции,
т. е. для этих функций пока не найдены алгоритмы обращения, но и не доказано их отсутствие.
В дальнейшем слово «кандидат» мы будем опускать и говорить просто: односторонняя функция.
Наиболее часто встречающаяся и часто используемая в криптографии
односторонняя функция основана на проблеме логарифмирования в ка-
кой-либо группе, а именно:
,
,
. Здесь G – некоторая
группа, как правило конечная, элемент g является общеизвестным параметром односторонней функции, значение
также считается извест-
ным и, как правило, служит открытым ключом. Натуральное число x –
аргумент односторонней функции, является неизвестным и его нахождение составляет проблему логарифмирования в группе G (символическая
запись:
).
Перечислим наиболее известные примеры односторонних функций
и соответствующие проблемы их обращения. Основанные на них криптосистемы мы разберем в следующем разделе.
1. Проблема дискретного логарифмирования в мультипликативной
группе простого поля
По известным элементам
:
. (3.2)
требуется вычислить натуральное
число
На этой проблеме базируются многие асимметрические криптосистемы
(например, Эль-Гамаля), протокол Диффи – Хеллмана является основой
. Это наиболее известная проблема в криптографии.
84

стандартных интернет-протоколов (SLL, TLS и др.) и протоколов цифро-
Q nP=
( )
,,ab p
Q P EC∈
( )
( )
,
или 2
n
ab
EC GF
n ∈
, PQ
mod
e
ct n
=
n pq=
c
1
n
ii
i
S Cx
=
=
∑
( )
12
, ,,
n
n
CC C ∈
( )
12 2
,,,
n
n
xx x ∈
{ }
i
C
i
C
вой подписи (ГОСТ 34-10-94, DSS DSA и др.). Исторически появление
в 1976 г. статьи У. Диффи и М. Хеллмана, где описывался одноименный
протокол, считается началом асимметрической криптографии.
2. Проблема логарифмирования в группе точек эллиптической кривой:
По известным точкам кривой
,
, (
),
. (3.3)
требуется определить натураль-
ное число n. Эта проблема лежит в основе многих протоколов электронной подписи (DSS EC DSA, ГОСТ 34-10-2001, ГОСТ Р 34.10-2012, ГОСТ
Р 34.10-2018).
3. Проблема факторизации целых чисел:
. (3.4)
Здесь числа c, e, n – считаются известными, задача состоит в определении неизвестного числа t. При этом предполагается, что число n составное:
, где p, q – неизвестные простые числа. Самый простой
способ нахождения неизвестного t заключается в разложении числа n на
два простых сомножителя (задача факторизации). Знание простых
сомножителей есть тот самый секрет, который позволяет эффективно обращать функцию (3.4) и, таким образом, эта функция есть пример односторонней функции с секретом. По сути формула (3.4) представляет собой
алгоритм зашифрования первой в истории асимметрической криптосистемы RSA (Rivest, Shamir, Adleman, 1978 г.). Здесь t – открытый текст,
– криптотекст, e – открытый ключ, n – параметр системы RSA.
4. Задача об укладке рюкзака:
Здесь
ных чисел (
– возрастающая известная последовательность натураль-
– объем i-ой вещи); S – известное натуральное число
,
,
. (3.5)
85

(объем рюкзака);
{ }
i
x
1
i
x =
0
i
x =
{ }
i
x
{ }
i
C
2
mod yx n=
n pq
=
n
y ∈
– неизвестная последовательность битов (
– i-я
вещь кладется в рюкзак,
вестной последовательности
вестной последовательности
– нет). Задача состоит в нахождении неиз-
по известному объему рюкзака S и из-
. В общем случае неизвестно эффектив-
ного алгоритма решения этой проблемы. Шифры, основанные на этой проблеме, называются рюкзачными криптосистемами (например, Меркла –
Хеллмана и Шора – Ривеста).
5. Задача об извлечении квадратного корня в кольце классов вычетов
по составному модулю:
Здесь
, p, q – большие простые числа. По известному значению
. (3.6)
требуется найти прообраз x. Алгоритм Тонелли – Шенкса позволяет
без труда решить эту задачу, но лишь в том случае, когда число n простое.
Для составного числа n можно решить эту задачу, воспользовавшись китайской теоремой об остатках. Таким образом, знание сомножителей числа n
есть секрет, позволяющий эффективно извлекать квадратные корни. Следовательно, сложность этой задачи эквивалентна сложности задачи о факторизации целых чисел. Данная проблема лежит в основе некоторых протоколов
(например, протокола доказательства с нулевым разглашением), а также известного генератора псевдослучайных чисел – BBS-генератора.
3.1.3. Основные понятия криптопротоколов
Протокол можно определить как набор (регламент) правил действий,
которым согласны следовать участники для решения совместной задачи.
Криптопротокол – протокол, который использует криптографические
средства защиты информации так, чтобы никакой участник (или злоумышленник) не смог узнать или сделать больше, чем ему положено по
протоколу.
86

Каждый участник должен знать последовательность своих действий со-
AB↔
гласно протоколу, а сам протокол должен быть полон и непротиворечив.
Участники криптопротокола:
1) законные участники: A (Алиса), B (Боб);
2) доверенные посредники: T (Трент);
3) пассивные противники – могут прослушивать сообщения и пере-
сылать их другим участникам: E (Ева);
4) активные противники – могут перехватывать, пересылать, модифи-
цировать и удалять сообщения; генерировать новые сообщения, выдавать
себя за других участников: M (Мэлори).
Типы криптопротоколов:
1) самодостаточный протокол:
;
2) протокол с доверенным посредником:
Т
А В
3) арбитражный протокол:
док-во
Т
док-во
В А
Основные классы протоколов:
1) протоколы аутентификации;
2) протоколы доказательства с нулевым разглашением;
3) протоколы совместной выработки ключа;
4) криптопротоколы голосования;
5) протоколы разделения секрета.
Перейдем к рассмотрению наиболее известных криптосистем.
87

3.2. ПРИМЕРЫ АСИММЕТРИЧЕСКИХ КРИПТОСИСТЕМ
512
,2pq≈
1p ±, 1q ±
( )
1, 1 2pq− −=
1024
2
n pq
= ≈
(
) ( )(
)
11np qϕ=− −
( )
1 en< <ϕ
(
)
(
)
,1
enϕ=
( )
1
mod de n
−
= ϕ
( )
nϕ
n
t
∗
∈
n
∗
3.2.1. Криптосистема RSA
Криптосистема RSA – первая в мире криптосистема с открытыми
ключами, созданная тремя учеными: Роном Ривестом, Ади Шамиром
и Леонардом Адлеманом в 1977 г. Подробнее с этой асимметрической
криптосистемой можно ознакомиться в классической книге по криптографии [11]. Здесь мы дадим лишь ее краткое описание.
Параметры. Определим основные параметры криптосистем RSA.
Выбираются два больших простых числа
жат большие простые делители
простые числа обусловлено существованием эффективных методов решения задачи о факторизации для таких простых делителей.
1. Вычисляются числа
мулу (2.10)).
2. Выбирается случайное число
мощью расширенного алгоритма Евклида (формула (2.13)) вычисляется
число
Число n называется параметром криптосистемы и не держится в секрете, число e называется открытым ключом и также не является секрет-
ным, остальные числа p, q,
.
, d составляют секретную информацию,
и
, т.ч.
. Невыполнение условий на
, т.ч.
содер-
(см. фор-
и с по-
причем число d называется секретным (закрытым) ключом.
Опишем чуть подробнее, как можно представить произвольный текст T
в виде последовательности элементов из
любую информацию можно закодировать (представить) в виде двоичной
последовательности, т. е. можно считать, что T является битовой строкой.
Последняя естественным образом отождествляется с натуральным числом. Иначе говоря, произвольный текст можно представить большим
Зашифрование. Текстом криптосистемы выступает число
. Ранее уже отмечалось, что
88
.

натуральным числом
T
∈
2
01 2
T t tn tn=++ +
0
i
tn≤<
( )
01
,,T tt↔
in
t ∈
i
t
0
TT
=
mod
ii
tT n=
( )
1i ii
T Ttn
+
= −
in
t ∈
{ }
( )
1 min ,O pq
in
t
∗
∈
in
t
∗
∉
mod
d
tc n=
( )
(
) (
)
(
)
1
mod mod mod mod mod
k
d
kn n
d e ed
c n t nt nt ntt n
+ϕ ϕ
= = = = =
( )
( )
формула 2.11 1
k
tt= =⋅=
29p =, 13q =
377n =
( )
336
nϕ=
43e =
1
43 mod 336 211
d
−
= =
( )
1,0,1,0,0,1,0,0,1,0,1,0,0,0,0,1,0T =
84290T =
( )
( )
01
, 219,223T tt= =
. Запишем число T в n-ричной системе исчис-
ления:
находятся по рекуррентной схеме:
Вероятность того, что числа
оценивается как
что
. (Можно показать, что в случае
,
, т. е.
,
,
,
. Числа
.
не будут взаимо просты с числом n
, т. е. ничтожна, и поэтому будем считать,
операции зашифрования
и расшифрования в RSA по- прежнему корректны).
В криптосистеме RSA зашифрование осуществляется согласно формуле (3.4). Из этой формулы следует, что для зашифрования необходимо
знать только параметр n и открытый ключ e.
Расшифрование. Расшифрование происходит согласно формуле
. (3.7)
Проверим корректность этой формулы.
.
Как уже говорилось выше, криптостойкость шифра RSA основана на
задаче факторизации целых чисел.
Пример.
Выберем простые числа:
Выберем также открытый ключ
, тогда
,
и вычислим закрытый ключ
.
Пусть требуется зашифровать битовую строку
.
, которая представляется натуральным
числом
вательностью:
. В n-ричной системе это число представляется последо-
.
89

Выполним шифрование этой последовательности в режиме простой
43
00
mod 219 mod 377 132
e
ct n
= = =
43
11
mod 223 mod 377 210
e
ct n= = =
512
2p ≈
p
g ∈
p
1p −
1p
−
( )
1ppϕ−
11xp<<−
mod
x
yg p=
0
i
tp<<
{ }
12
,c cc=
11kp<<−
1
c
2
c
1
c
2
c
1
mod
k
cg p=
2
mod
k
c ty p= ⋅
замены. (Режим простой замены – шифрование каждого блока данных
выполняется независимо от других блоков).
,
.
При вычислении степени мы использовали алгоритм, основанный на
формуле (2.1).
3.2.2. Криптосистема Эль-Гамаля
Шифр Эль-Гамаля (Elgamal) – криптосистема с открытым ключом,
криптостойкость которой основана на сложности вычисления дискретного
логарифма в простом конечном поле.
Параметры. Определим основные параметры криптосистемы ЭльГамаля. Выбирается число
и число
, которое имеет боль-
шой порядок. Напомним (см. утверждение 4 и малую теорему Ферма
(2.12)), что порядок любого элемента из
является делителем числа
. Можно выбрать в качестве g примитивный элемент (элемент по-
рядка
ятностью
числяем открытый ключ
). Случайным выбором находим примитивный элемент с веро-
. Далее выбираем секретный ключ
и вы-
.
Зашифрование. В качестве текста выступает последовательность
натуральных чисел
. Шифротекстом является пара чисел
. Для зашифрования случайным образом выбирается число
, которое стирается после вычисления
вычисляются согласно формуле
,
90
.
и
. Числа
,
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
