Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теоретико-числовые методы в криптографии и криптопротоколах. Учебное пособие.pdf
Скачиваний:
1
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
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
.
и
. Числа
,
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]