Создать общедоступную парную пару RSA с уже созданными номерами


7

Я хочу знать, как генерировать рабочие пары ключей RSA с правильным синтаксисом. Допустим, я уже сформировался как-то мои номера для 512bit ключа, которые:

е =

d = 2a3ff2f501835d7d0f7ccad34265525b0c91f800fc252324e4bb5668392ba55a65d812d658b7065725c259a12115918dbdbbea6cead9225a91c3fcc6b43f1cb3

м = 4bb26cf2e1e1cdbbf78f89a60d5af5cf094a7 216f9fe2d0e2288dc14e6005e0b6de46dc38f0e92b8b3281e9f1cf87257fb54bff579907e8a3c114133b74cb815

Как создать правильную пару ключей от этого? Есть ли где-нибудь генератор для автоматизации этого? Лучшим решением для меня было бы сгенерировать эту ключевую пару в javascript, которая будет работать здесь https://www.pidder.com/pidcrypt/?page=demo_rsa-encryption с pidcrypt.

9

пары ключ А RSA состоит в следующем:

  • Модуль п, большое целое число, равное произведению двух больших простых чисел, р и д.
  • Публичный экспонент e.
  • Частный экспонент d. д такова, что изд = 1 когда взято по модулю р-1, а также при приеме по модулю Q-1.
  • Первый фактор p.
  • Второй фактор q.
  • Значение д р = д мод р-1.
  • Значение д д = д мод Q-1.
  • Значение д»= д -1 мод р.

The открытого ключа содержит только п и е.

закрытый ключ содержит все значения, указанные выше.в строгом смысле слова, только п и д необходимо для небрежной реализации RSA, но другие значения позволяют более быструю работу, а также «маскировка» (защита от утечек бокового канала), так что RSA standard определяет, что закрытый ключ содержит все значения (см. appendix A.1).

От значения, которое вы имеете, считая, что ваш «m» действительно является модулем RSA, другие значения могут быть пересчитаны с некоторым усилием (менее одной секунды CPU, но больше человеческого времени, чем я хочу инвестировать в этом). Из всех этих значений вы можете затем кодировать стандартные и общедоступные ключи RSA; но это требует некоторых знаний о ASN.1. Наконец, 512-битный ключ RSA слабый; используйте как минимум 1024 бит, желательно больше (2048 бит должны быть точными). Некоторые реализации RSA откажутся работать с ключами RSA короче 1024 бит.

Нижняя линия: не генерировать ключ самостоятельно; использование OpenSSL. С помощью инструмента командной строки:

openssl genrsa -out rsakey.pem 2048 

будет генерировать 2048-битный RSA секретный ключ со всеми продходящие; то это:

openssl rsa -in rsakey.pem -pubout 

распечатает открытого ключа, там снова с кодировкой сделано.