- •Лекция
- •Хронология развития систем с ОК
- •Односторонняя функция
- •Пример односторонней функции функции
- •Оценки сложности вычислений прямой и обратной функций
- •Односторонняя функция с потайным ходом
- •Общий принцип построения криптосиcтемы с открытым ключем
- •Требования к системам с открытым ключем
- •Система шифрования Эль-Гамаля 1985г.
- •Система шифрования Эль-Гамаля
- •Стойкость системы Эль-Гамаля
- •Пример системы Эль-Гамаля
- •Система РША (1978г.)
- •Доказательство обратимости операции дешифрования операции шифрования
- •Пример системы РША
- •Оценки стойкости системы РША
- •2. Другой естественной атакой на КС РША является дискретное логарифмирование. Эта атака (при
- •3. Циклическая атака. Будем последовательно возводить полученную криптограмму в степень равную значению открытого
- •4. Отсутствие шифрования. Этот случай возможен, если в результате шифрования получаем открытое сообщение,
- •5. Атака при малом объеме возможных сообщений
- •Понятие об эллиптической кривой
- •Вспомогательные определения
- •Пример ЭК на полем вещественных чисел
- •Операции сложения
- •Обобщение КС Эль-Гамаля на случай эллиптических кривых
- •Шифрование
- •Стойкость КС Эль-Гамаля, реализованной на эллиптических кривых
- •Именно то обстоятельство, что «логарифмирование» над эллиптическими кривыми значительно сложнее логарифмирования над конечными
- •Использование ЭК в криптосистемах
- •Алгоритм формирования ключей на основе однонаправленных функций
- •А, приняв от В yB , вычисляет
- •Гибридные системы шифрования
Стойкость системы Эль-Гамаля
1.Раскрытие секретного ключа эквивалентно решению задачи дискретного логарифмирования.
2.Нахождение m без знания ключа возможно, если случайное число k используется дважды и в одном случае нарушитель знает открытый текст
C |
2 |
= m (y -1)k (mod p), |
c’ = m’ (y -1)k (mod p) |
|
|
|||
|
|
|
A |
2 |
A |
|
|
|
Зная c |
2, |
c’ и m несложно найти m’ |
m’= c’ m c-1 |
2 |
(mod p) |
|||
|
|
|
2 |
|
2 |
|
k должно меняться случайным образом при шифровании нового сообщения.
Пример системы Эль-Гамаля
p = 11, a = 4, a - примитивный элемент GF(2p)
Пусть x = 3 – закрытый ключ
Y = 43 (mod 11) = 64 (mod 11) = 9 открытый ключ
y |
|
|
y |
|
|
|
|
||
|
Шифрование сообщения m = 6 |
Генерирование СЧ k = 4 Вычисление:
С1 = ak(mod p) = 44(mod1 1) = 256(mod 11) = 3
y-1 = yp-2(mod p)= 99(mod 11)=929292929(mod11)= 4*4*4*4*9(mod11)=5*5*9(mod11) = 5
C2 = my-1k(mod p) = 6*54(mod 11)=6*3*3(mod11) = 10 C1,C2 C1,C2
Расшифрование
C1x (mod p)=33(mod 11) = 5
C2*C1x (mod p) = 10*5 (mod 11) = 50(mod 11)=6
Система РША (1978г.)
Генерирование ключей.
Случайно выбираются два простых числа p и q. Находится модуль N = pq. Находится функция Эйлера (N)= (p-1)(q-1). Выбираем число e такое, что НОД(e, (N)) = 1.
Находим d, как обратный элемент к e, de = 1(mod (N)). Объявляем d = SK, (e, N) = PK. PK сообщается всем корреспондентам.
Шифрование
Корр. А передает зашифрованное сообщение корр.В (использует открытый ключ корр. В)
E = me (mod N)
Расшифрование.
Корр. В расшифровывает принятую криптограмму от корр.А,используя свой секретный ключ.
m = Ed (mod N)
Доказательство обратимости операции дешифрования операции шифрования
Покажем, что Ed(mod N) = (me)d(mod N) = m
По т. Эйлера m (N) 1(modN) для любого m взаимно простого с N.
Умножая обе части сравнения на m, получаем сравнение
m (N)+1 m(mod N) справедливое уже для любого целого m.
Перепишем соотношение ed 1(mod (N)) в виде ed=1+k (N)
для некоторого целого k.
Тогда Ed=(me)d=m1+k (N)= m1+ (N) m(k-1) (N)= =m m(k-1) (N)= m1+(k-1) (N) =m1+ (N) m(k-2) (N)=
…. = m1+ (N) =m
Что и требовалось доказать.
Пример системы РША
p = 3, q =11 N = 33 |
( N) 20 |
Генерирование ключей |
|
e =7, НОД(7, 20) =1 |
|
d =7-1(mod 20) = 3 |
|
Шифрование
m = 6 E = me(mod N)= 67(mod 33)=62 62 62 61(mod 33)= =3*3*3*3*2 = 30
Расшифрование
Ed(mod N) = 303(mod 33) = 900*30(mod33)=9*30(mod 33) = 6
Оценки стойкости системы РША
1. Система РША может быть вскрыта, если удастся найти p и q,
т. е. факторизовать N.
Исходя из этого факта p и q должны выбираться такой большой разрядности, чтобы факторизация числа n потребовала необозримо большого времени, даже с использованием всех доступных и современных средств вычислительной техники.
В настоящее время задача факторизации чисел не имеет полиномиального решения. Разработаны лишь некоторые алгоритмы, упрощающие факторизацию, но их выполнение для факторизуемых чисел большой разрядности все равно требует необозримо большого времени. Действительно, сложность решения задачи факторизации для наилучшего известного сейчас алгоритма факторизации равна
O eln n ln ln n [3]. Так, например ln n = 200, если , то число операций будет приблизительно равно 1,37 ∙ 1014 .
При увеличении числа разрядов n до 1000 и более время факторизации становится совершенно необозримым.
2. Другой естественной атакой на КС РША является дискретное логарифмирование. Эта атака (при известном сообщении) выполняется следующим образом: d = log E M mod N. Однако задача дискретного логарифмирования по модулю многоразрядных чисел также относится к трудным в математике, и оказывается, что она имеет почти такую же сложность, как и задача факторизации [3].
3. Циклическая атака. Будем последовательно возводить полученную криптограмму в степень равную значению открытого ключа т.е. (((((Ee)e)…..)e .
Если при некотором шаге окажется, что Ei=E , то это означает, что Ei-1=m. Доказывается, что данная атака не лучше атаки факторизации N.
4. Отсутствие шифрования. Этот случай возможен, если в результате шифрования получаем открытое сообщение, т. е. M e mod n = M. Такое условие должно выполниться хотя бы для одного из сообщений, например, для сообщений M = 0, 1, n – 1 . На самом деле таких сообщений, которые вообще! не шифруются [3], существует в точности [1 + gcd (e – 1, p – 1)][1 + gcd (e – 1, q – 1)] . Их число всегда не менее 9. Однако при случайном выборе q и p доля таких сообщений будет ничтожно мала и они почти никогда не встретятся на практике.
5. Атака при малом объеме возможных сообщений
Предположим, что количество сообщений ограничено значениями M1 , M2 ,… , Mr , где r обозримо. (Это могут быть, например, различные команды – вперед, назад, влево, вправо и т. п.). Тогда
сообщение может быть легко расшифровано.
Действительно, пусть криптограмма C перехвачена. Тогда необходимо попытаться зашифровать все команды известным открытым ключом и определить ту криптограмму, которая совпадает с принятой C:
C1 C2
Cr
M 1eM 2e
M re
mod n;
mod n; ?
C.
mod n
Способ борьбы с такой атакой – это «подсаливание» сообщений (т. е. присоединение к ним небольших цепочек бит, полученных с использованием чисто случайного датчика).