Как закрытые ключи распространяются безопасно? - PullRequest
0 голосов
/ 01 мая 2018

Я прохожу алгоритм RSA и у меня мало вопросов. Вопросы могут быть глупыми, пожалуйста, помогите мне.

Мое понимание алгоритма RSA . enter image description here

Мой вопрос такой: как Получатель получает свои закрытые ключи P и Q .

Для конкретного открытого ключа: если у каждого получателя есть одинаковые закрытые ключи, то один злонамеренный получатель может расшифровать любое сообщение, предназначенное для отправки другим получателям?

Ответы [ 2 ]

0 голосов
/ 01 мая 2018

Как правило, каждый «получатель» имеет свой собственный закрытый ключ, который никогда не передается. Обычно вы полагаетесь на PKI, чтобы подписать разные ключи для каждого «получателя». В этом контексте распределение ключей является относительно простым, потому что «получатель» генерирует свой закрытый ключ локально и получает свой открытый ключ, подписанный СА. Это именно то, как работает HTTPS, так что вы можете посмотреть, как зашифровать это в качестве ссылки.

Необходимо обеспечить безопасность корневого ключа PKI и закрытого ключа подписи. Например, используйте HSM или холодильную камеру.

0 голосов
/ 01 мая 2018

Общая модель заключается в том, что отправитель сгенерировал свой собственный закрытый ключ, поэтому ключ не передается, он просто изготовлен из цельной ткани.

При рассмотрении небольших чисел не так много простых чисел, поэтому риск столкновения велик. Например, есть только 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.


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

Решение: не делитесь секретными ключами. Создайте свой собственный и сделайте это в достаточно большом пространстве ключей. (Не только для предотвращения столкновений, но и для того, чтобы целевой ключ сильно ломался)

...