Общая модель заключается в том, что отправитель сгенерировал свой собственный закрытый ключ, поэтому ключ не передается, он просто изготовлен из цельной ткани.
При рассмотрении небольших чисел не так много простых чисел, поэтому риск столкновения велик. Например, есть только 25 простых чисел, меньших 100, поэтому всего 300 закрытых ключей (25 * 24/2). Вероятность того, что вторая сторона имеет тот же ключ, что и вы в этом ограниченном пространстве, 1 на 300.
Однако, когда вы попадаете в большее пространство для ключей, вероятность того, что две стороны случайно получат один и тот же закрытый ключ, будет крайне мала. RSA-1024 (который теперь «слишком мал») использует 512-битные значения для p
и q
. Теорема простого числа гласит, что существует приблизительно 2^511 / ln(2^511)
(~ 1.9e151) 512-битных простых чисел, что составляет около 1.8e302 различных закрытых ключей. проблема дня рождения говорит, что есть вероятность 1%, что два случайно сгенерированных ключа RSA-1024 будут одинаковыми после того, как ключи 1.9e150 были сгенерированы. Это много ключей.
Для RSA-2048: 1,3e305 1024-разрядных простых чисел, 8e609 секретных ключей. Вероятность столкновения 1% при ключевых поколениях 1.3e304.
Однако вы правы, если две стороны имеют один и тот же закрытый ключ, каждый из них может дешифровать сообщения, предназначенные для другой стороны (и может подписывать сообщения от имени другой стороны).
Решение: не делитесь секретными ключами. Создайте свой собственный и сделайте это в достаточно большом пространстве ключей. (Не только для предотвращения столкновений, но и для того, чтобы целевой ключ сильно ломался)