- •Основные понятия криптографии. Основные виды криптоанализа, уровни криптоатак.
- •Шифры одноалфавитных подстановок.
- •Шифры многоалфавитных подстановок. Шифр Вижинера.
- •Основные требования, предъявляемые к блочным шифрам.
- •Сети Фейстеля.
- •Параметры стандартных блочных шифров (гост 28147.89, des, aes).
- •Режимы применения блочных шифров.
- •Функции хеширования.
- •Определение односторонней функции.
- •Примеры односторонних функций.
- •Криптосистемы с открытыми ключами. Криптосистема rsa. Криптосистема Эль-Гамаля.
- •Основные виды криптопротоколов. Протокол Диффи-Хелманна. Электронная подпись.
- •Электронная подпись rsa.
- •Электронная подпись Эль-Гамаля. Поля Галуа. Основные сведения о шифре aes.
Определение односторонней функции.
Всякая асимметрическая криптосистема основывается на какой-либо односторонней функции.
Понятие односторонней функции следует давать на языке предикатов и вероятностной машины Тьюринга, но сейчас мы пожертвуем строгостью, чтобы сделать определение более простым для понимания.
Определение 19. Функция f : X → Y называется односторонней, если
1. Существует эффективный алгоритм вычисления значения функции y = f(x) ∈ Y для любого значения аргумента x ∈ X.
2. Не существует эффективного алгоритма обращения функции, т.е. вычисления аргумента x = f−1(y) по известному значению y.
3. Функция f инъективна, т.е. f(x1) = f(x2) ⇒ x1 = x2.
Примеры односторонних функций.
Строго говоря, пока не доказано существования односторонних функций и не изве стен ни один пример такой функции. Поэтому на практике используют, так называемые кандидаты в односторонние функции, т.е. для этих функций пока не найдены алгоритмы обращения, но и не доказано их отсутствие.
Перечислим наиболее известные примеры односторонние функций и соответствующие проблемы их обращения. Упоминаемые на них криптосистемы мы разберем в следующем разделе.
1. Проблема дискретного логарифмирования в мультипликативной группе простого поля G = Z∗p:y = gx mod p. (3.2)
По известным элементам g, y ∈ Zp требуется вычислить натуральное число x < p − 1. Это наиболее известная проблема в криптографии. На этой проблеме бази руются многие асимметрические криптосистемы (например, Эль–Гамаля), протокол Диффи–Хеллмана (является основой стандартных интернет протоколов SLL, TLS и др.) и протоколов цифровой подписи (ГОСТ 34-10-94, DSS DSA и др.). Историче ски, появление в 1976 г. статьи Диффи и Хеллмана, где описывалься одноименный протокол, считается началом асимметричной криптографии.
2. Проблема логарифмирования в группе точек эллиптической кривой.
Q = nP, Q, P ∈ ECa,b(Zp) (или ECa,b(GF(2n))), n ∈ N. (3.3)
По известным точкам кривой P, Q требуется определить натуральное число n. Эта проблема лежит в основе многих протоколов электронной подписи (DSS EC DSA, ГОСТ 34-10-2001, ГОСТ Р 34.10-2012, ГОСТ Р 34.10-2018).
3. Проблема факторизации целых чисел.
c = te mod n. (3.4)
Здесь числа c, e, n — считаются известными, задача состоит в определении неиз вестного числа t. При этом предполагается, что число n составное: n = pq, где p, q
50
— неизвестные простые числа. Самый простой способ нахождения неизвестного t заключается в разложении числа n на два простых сомножителя (задача фактори зации). Знание простых сомножителей есть тот самый секрет, который позволяет эффективно обращать функцию (3.4) и, таким образом, эта функция есть пример односторонней функцией с секретом. По сути формула (3.4) представляет собой алго ритм зашифрования первой в истории асимметрической криптосистемы RSA (Rivest, Shamir, Adleman, 1978 г.). Здесь t — открытый текст, c — криптотекст, e — открытый ключ, n — параметр системы RSA.
4. Задача об укладке рюкзака.
S =Xn i=1
Cixi, (C1, C2, . . . , Cn) ∈ Nn, (x1, x2, . . . , xn) ∈ Zn2. (3.5)
Здесь {Ci} возрастающая известная последовательность натуральных чисел (Ci — объем i–ой вещи), S — известное натуральное число (объем рюкзака), {xi} — неиз вестная последовательность битов (xi = 1 — i–ая вещь кладется в рюкзак, xi = 0 — нет). Задача состоит в нахождении неизвестной последовательности {xi} по из вестному объему рюкзака S и известной последовательности {Ci}. В общем случае неизвестно эффективного алгоритма решения этой проблемы. Шифры, основанные на этой проблеме называются рюкзачными криптосистемами (например, Меркля– Хеллмана и Хора–Ривеста).
5. Задача об извлечении квадратного корня в кольце классов вычетов по составному модулю.
y = x2 mod n. (3.6)
Здесь n = pq, p, q — большие простые числа. По известному значению y ∈ Zn тре буется найти прообраз x. Алгоритм Тонелли — Шенкса позволяет без труда решить эту задачу, но лишь в том случае, когда число n простое. Для составного числа n мы можем решить эту задачу воспользовавшись китайской теоремой об остатках. Та ким образом, знание сомножителей числа n есть секрет, позволяющий эффективно извлекать квадратные корни. Следовательно, сложность этой задачи эквивалентна сложности задачи о факторизации целых чисел. Данная проблема лежит в основе некоторых протоколов (например, протокола доказательства с нулевым разглашени ем), а также известного генератора псевдослучайных чисел — BBS–генератора.