Почему при обмене ключами Диффи-Хеллмана используются простые числа?

Алгоритм обмена ключами Диффи-Хеллмана использует такие операции, как 2^8 mod n, где n — простое число.

В чем причина использования простых чисел вместо других чисел?


person Shourob Datta    schedule 13.12.2016    source источник
comment
Вы должны спросить об этом на math.stackexchange.com. Здесь может быть неправильное место.   -  person Thorsten Dittmar    schedule 13.12.2016


Ответы (1)


Простые числа не разбиваются на более мелкие множители, что значительно усложняет взлом кода или хеш-функции, чем использование, скажем, 12, которое разбивается на /2, /3, /4 или /6. Простое число 7 меньше 12, но имеет только коэффициент 7, поэтому векторов атаки меньше. Это сильное упрощение, но, надеюсь, немного поможет.

Вот конкретный пример:

2^х мод 12

Это имеет только 2 возможных значения для любого x выше 1: 4 или 8. Поскольку это используется для генерации общего ключа аналогичным образом, вы получаете те же две возможности. Другими словами, как только вы узнаете, что база и модификация равны 2 и 12 (которые любой компьютер, прослушивающий разговор, сможет уловить), вы автоматически узнаете, что общий секретный ключ шифрования может быть только одним из двух возможных. Требуется всего две простые операции, чтобы определить, какая из них расшифровывает сообщение. Теперь давайте посмотрим на основной мод:

2^х мод 13

Это имеет 12 различных возможностей для x>1. Он также имеет 12 различных возможных общих ключей, которые можно сгенерировать. Таким образом, для расшифровки сообщения на основе этого простого модуля требуется в 6 раз больше вычислительной мощности, чем в примере с модом 12.

2^x mod 14 имеет 4 возможности.

2^x мод 15 имеет 4

2^x mod 16 полностью превращается в 1 возможность после x=3 (поэтому важно выбрать базу, соответствующую требованиям DH)

2^x mod 17 имеет... как вы уже догадались, 16 возможностей! Разве простые числа не круты? :)

Таким образом, факторизуемость числа модуля напрямую связана с возможностью взлома зашифрованного сообщения.

person Jeremy Gurr    schedule 13.12.2016
comment
Не могли бы вы уточнить два сценария 2^4 mod 7 и 2^4 mod 10 . Пожалуйста, расширьте здесь фактор риска. Если я использую 2^4 mod 10 вместо 2^4 mod 7 - person Shourob Datta; 13.12.2016
comment
Когда формула вызывает простое по модулю, это обычно означает, что им нужно, чтобы выходное пространство было Группой (Закрытое, Ассоциированное, Идентификационное, Инверсное), которое есть во всех пространствах с простым простым числом. Я никогда не видел ничего в мод-премьере, связанного со взламываемостью. - person bartonjs; 13.12.2016
comment
@JeremyGurr Я пробовал 2 ^ x мод 17, но это не дает 16 возможностей. Выходы 2, 4, 8, 16, 15, 13, 9, 1, после чего последовательность повторяется. Аналогичный сценарий происходит с 2^x по модулю 23. Как получается, что некоторые простые числа (скажем, p) дают возможность p-1, а некоторые нет? Существуют ли особые свойства простых чисел, которые необходимо учитывать? . - person Shashank Shet; 15.02.2019
comment
@ShashankShet Обычно результатом a mod n с 1 < a < n и n > 0 является число от 1 до n -1, но когда a является степенью 2, это уже не так. Это зависит не от того, является ли n простым числом, а от значений, используемых для a. - person apaderno; 26.08.2019