- •11. Сжатие информации. Арифметическое кодирование
- •13 Алгоритм Евклида
- •14. Введение в теорию чисел. Функции Эйлера
- •15. Введение в теорию чисел. Модульная арфиметика
- •16. Введение в теорию чисел. Методы построения простых чисел.
- •17. Построение последовательностей псевдослучайных числа. Линейный конгруэнтный метод
- •18. Методы генерирования псевдослучайных чисел. Недостатки классических генераторов псевдослучайных чисел
- •19. Современные алгоритмы генерации псевдослучайных чисел.
- •20. Проверка статистических гипотез. Общая схема.
- •21. Проверка статистических гипотез. Критерий Пирсона.
- •22. Статистическая оценка качества последовательностей псевдослучайных чисел. Тесты серий.
- •26. Одноалфавитные и многоалфавитные шифры замены.
- •28. Механизация шифрования.
- •29.Потоковые шифрующие системы.
- •30.Стандартные системы шифрования. Алгоритм des.
- •32.Криптография с открытым ключом.
- •33. Криптография с открытым ключом. Алгоритм rsa
- •34.Криптография с открытым ключом. Алгоритм Диффи-Хеллмана.
- •35.Шифрование на базе эллиптических кривых.
- •36.Криптографические системы на базе эллип-тических кривых. Ана-лог rsa
- •37.Криптографические системы на базе эллип-тических кривых. Ана-лог алгоритма Диффи-Хеллмана.
- •38. Элементы теории сложности. Машина Тьюринга.
- •39. Элементы теории сложности. Функции вычислимые по Тьюрингу.
- •40. Защита программного обеспечения от обратного проектирования.
- •41.Запутывающие преобразования программ.
- •42.Алгоритмы разделения секрета
33. Криптография с открытым ключом. Алгоритм rsa
Существует 2 ключа: 1)Открытый (PK) –имеют доступ все. 2) Закрытый (SK) – создается локально каждым участником и не должен распространяться. Недостатки:1) шифровать можно лишь небольшие блоки. 2)Низкая скорость.3) Возможность подмены сообщений.
Разработка алгоритмов с открытым ключом зависит от наличия соответствующей односторонней функции с ключом.
RSA – основан на сложности факторизации больших чисел.Диффи – Хеллмана – основан на сложности вычисления дискретного логарифма. RSA – Ривест , Шамир , Адлеман , используетвыражение с экспонентами: 1) Данные шифруются блоками каждый блок рассматривается как число < некоторого n. 2)C = M^e(modn), M = C^d(modn)= (M^e)^d(modn) = M^ed (modn); 3)PK = ={e,n}, SK = {d,n}; 4)Должны выполняться следующие условия: а)Возможность найти значение е,d и n такие, что М^ed = Mmodn для всех M>n; b) Относительная легкость вычисления M^e и C^d для всех M<n. 5)Невозможность определить d , зная е и n.
AлгоритмRSA
Создание ключей:1)Выбрать большие простые p и q (=512 бит); 2)Вычислить n = p*q. Ф(n)= (p-1)(q-1); 3)Выбрать е: НОД(Ф(n)e) = 1 , 1<e<Ф(n); 4)Вычислить d: d= e^(-1)mod Ф(n); 5)Открытый ключ PK = {e,n}.e – открытая экспонента; 6) Закрытый ключ SK = {d,n}.d – секретная экспонента.
Шифрование и дэшифрование сообщений
Шифрование:1)Незашифроованый текст: M<n; 2)Зашифрованый текст : C = M^e(modn)
Дешифрование:1)Зашифрованый текст: С; 2) Незашифрованый текст :M = C^d (modn)
Вычислительные проблемы при использовании алгоритма
Шифрование и дешифрование: 1) C = M^e (modn) , M = C^d (modn); 2)Возведение целого числа в целую степень по модулю n :a) (a*b) modn = [(amodn) * (bmodn)] modn; b)x^16 = x..x – 16 раз;
Создание ключей:1) PK ={e,n} SK= {d,n}; 2)Включает две задачи: a) Определить 2 простых числа p и q . n=p*q; b)Выбрать е и вычислить d.
2)Простые числа - большие (10^100 – 10^200): a)Случайный выбор. b) Перебор (для n:ln(n)/2). Для 2^200 = ln(2^200)/2 = 70; 3
3)Генерация ПЧ d и проверка НОД (Ф(n),d)=1;
4)Расширенный алгоритм Евклида для решения уравнений dx = 1 (modn).x^-1=e;
КриптоанализRSA : определить SK = {d,n}
1)Лобовая атака : перебрать все возможные закрытые ключи. 2) Разложить n на 2 простых сомножителя. Это даст возможность вычислить Ф(n)=(p-1)*(q-1) и d = e^-1(mod Ф(n)). 3) Определить Ф(n) непосредственно, без начального определения p и q. Это также даст возможность определить d = e^-1 (mod Ф(n)). 4)Определить d непосредственно, без начального определения Ф(n).
34.Криптография с открытым ключом. Алгоритм Диффи-Хеллмана.
Алгори́тмДи́ффи — Хе́ллмана — алгоритм, позволяющий двум сторонам получить общий секретный ключ, используя незащищенный от прослушивания, но защищённый от подмены, канал связи. Этот ключ может быть использован для шифрования дальнейшего обмена с помощью алгоритма симметричного шифрования.
Проблема вычисления дискретных логарифмов:
1)Дискретный логарифм: a) g является примитивным корнем простого числа р , если modp,g^2 modp,…, g^p-1 modp являются различными и образуют {1,…,p-1}; b) В этом случаи для любого целого Y<p и примитивного корня g простого числа p можно найти единственную экспоненту X , такую, что Y = g^xmodp, где 0<X<(p-1); c) Экспонента Х называется дискретным логарифмом, или индексом Y по основанию gmodp. И обозначается как ing(g,p)(Y).
Криптоанализ алгоритма Диффи-Хеллмана
1)Известны – g,p,Ya,Yb; 2)Для вычисления ключа атакующей должен взломать дискретный логарифм, т.е вычислить Xb = INDg,p(Yb); 3) Для простых чисел задача считается неразрешимой.
Атака типа «man-in-the-middle»
1)Случаи активной атаки ,т.е М имеет возможность не только перехватывать сообщения но и заменять их другими. 2) М может перехватывать открытые ключи участников Yi и Yj , создать свою пару открытого и закрытого ключа (X,Y) и послать каждому из участников свой открытый ключ. 3)После этого каждый участник вычислит ключ, который будет общим с M , а не с другим участником.
