
- •2. Наведіть приклад найдавніших криптосистем
- •3. У чому складається робота криптоаналітика
- •8.Использование поворотной решетки
- •6. Диск Альберті
- •7.Відмінності Виженера от Тритемия
- •9 Шифр Ришелье(какой прием используется)
- •14. Приведите примеры известных Вам криптосистем, которые можно отнести к классу шифров замены?
- •Hhwtjob
- •18 Різниця між блоковим і потоковим алгоритмами шифрування
- •23. Вимоги до множників p і q. Правила модульної арифметики
- •24. За яких причин алгоритм rsa повільний і як його можна прискорити?
- •21. Захист інформації за допомогою протокола ssl
- •28. Цифровий підпис і його призначення
- •30. Функціонування системи сертифікації ключів
- •25.26.Алгоритм Диффи-Хеллмана
- •20.Удосконалення алгоритму des
25.26.Алгоритм Диффи-Хеллмана
Цель алгоритма состоит в том, чтобы два участника могли безопасно обменяться ключом, который в дальнейшем может использоваться в каком-либо алгоритме симметричного шифрования. Сам алгоритм Диффи-Хеллмана может применяться только для обмена ключами.
Алгоритм основан на трудности вычислений дискретных логарифмов. Дискретный логарифм определяется следующим образом. Вводится понятие примитивного корня простого числа Q как числа, чьи степени создают все целые от 1 до Q - 1. Это означает, что если A является примитивным корнем простого числа Q, тогда числа A mod(Q), A2 mod(Q), . . . , AQ - 1 mod(Q) являются различными и состоят из целых от 1 до Q - 1 с некоторыми перестановками. В этом случае для любого целого Y < Q и примитивного корня A простого числа Q можно найти единственную степень Х, такую, что Y = AХ mod(Q), где 0 ≤ X ≤ (Q - 1). Степень X называется дискретным логарифмом, или индексом Y, по основанию A mod(Q). Это обозначается как X = indA, Q (Y).
Теперь опишем алгоритм обмена ключей Диффи-Хеллмана.
Предполагается, что существуют два известных всем числа: простое число Q и целое A, которое является примитивным корнем Q. Теперь предположим, что пользователи I и J хотят обменяться ключом для алгоритма симметричного шифрования. Пользователь I выбирает случайное число Хi < Q и вычисляет Yi = AXimod(Q). Аналогично пользователь J независимо выбирает случайное целое число Хj < Q и вычисляет Yj = AXjmod(Q). . Каждая сторона держит свое значение Х в секрете и делает значение Y доступным для другой стороны. Теперь пользователь I вычисляет ключ как Кi = YjXimod(Q), и пользователь J вычисляет ключ как Кj = YiXjmod(Q). В результате оба получат одно и то же значение: K = YjXi mod(Q) = (AXj mod(Q))Ximod(Q) = (AXj)Ximod(Q) по правилам модульной арифметики = AXj Xi mod(Q) = (AXi) Xj mod(Q) = (AXimod(Q))Xjmod(Q) = (Yi)Xjmod(Q)
Таким образом, две стороны обменялись секретным ключом. Так как Хi и Хj являются закрытыми, противник может получить только следующие значения: Q, A, Yi и Yj. Для вычисления ключа атакующий должен взломать дискретный логарифм, т.е. вычислить Xj = indA, Q (Yj).
Безопасность обмена ключа в алгоритме Диффи-Хеллмана вытекает из того факта, что, хотя относительно легко вычислить экспоненты по модулю простого числа, очень трудно вычислить дискретные логарифмы. Для больших простых чисел задача считается неразрешимой.
19. Агоритм шифрування DES (Data Encryption Standard) — это симметричный алгоритм шифрования, то есть один ключ используется здесь как для зашифровывания, так и для расшифровывания сообщений. Алгоритм имеет блоки по 64 бит и основан на 16-кратной перестановке данных; для зашифровывания он использует ключ длиной 56 бит. Существует несколько режимов DES, например Electronic Code Book (ECB) и Cipher Block Chaining (CBC). 56 бит — это 8 семибитовых ASCII-символов, то есть секретный ключ не может иметь длину свыше 8 символов. Если вдобавок использовать только буквы и цифры, то количество возможных вариантов будет существенно меньше максимально возможных 256.