С шифрованием RSA я должен использовать тот же сертификат, чтобы подписать и зашифровать сообщение?

Если я хочу подписать и зашифровать сообщение с помощью сертификата X509, там какая-либо причина не использовать тот же сертификат для шифрования и подписания?

Обновление: Оглядывание назад, я думаю, что это должно быть самым опрометчивым вопросом, на котором я когда-либо задавал ТАК.Извините.

5
задан Daniel Allen Langdon 28 February 2013 в 15:48
поделиться

2 ответа

Сертификат X509 содержит открытый ключ. Для шифрования вы используете открытый ключ получателя, предположительно полученный из его сертификата. Для подписи вы используете свой закрытый ключ, предположительно из безопасного хранилища. Получатель проверяет подпись, используя ваш открытый ключ, предположительно из вашего сертификата. Это основы.

1
ответ дан 14 December 2019 в 13:28
поделиться

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

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

При этом вы можете представить себе общий сценарий, в котором каждый может отправлять и получать электронную почту. Следовательно, у каждого есть пара ключей (с открытой частью в сертификате), которая используется для шифрования и дешифрования электронных писем (открытый ключ Боба используется для шифрования писем, отправленных Бобу, а Боб использует соответствующий закрытый ключ для их расшифровки, т. Е. Для чтения электронные письма). Также у каждого есть пара ключей для подписей (Боб использует свой закрытый ключ для подписи отправляемых им сообщений, Алиса использует открытый ключ Боба для проверки подписей, предположительно вычисленных Бобом).Тогда возникает вопрос: будет ли у Боба две пары ключей (одна для шифрования / дешифрования и одна для подписи / проверки) или только одна пара ключей, которая будет использоваться для обоих заданий?

Так получилось, что открытый алгоритм шифрования RSA и алгоритм подписи RSA может использовать тот же тип ключа, называемый (вполне логично) «ключами RSA». Так что это выполнимо, и на самом деле это случается довольно часто.

Однако, вообще говоря, ключи подписи и ключи шифрования имеют разные жизненные циклы и процедуры управления. В бизнес-контексте руководство хранит в сейфе копии всех закрытых ключей, используемых для шифрования, поскольку потеря ключа шифрования означает потерю данных. И сотрудники могут стать «недоступными» (сотрудник уволен, сотрудник увольняется, сотрудника сбивает автобус ...). И наоборот, когда ключ подписи утерян, ранее выпущенные подписи все еще действительны и поддаются проверке, поэтому просто нужно создать новую пару ключей, чтобы иметь возможность создавать другие подписи. Кроме того, цифровые подписи могут получить сильный юридический статус только в том случае, если нет копии ключа где-нибудь в сейфе. Поэтому общий совет - хранить ключи шифрования и подписи отдельно. Использование одного и того же ключа для обоих является приближением, которое может иметь нежелательные побочные эффекты (например, потерю данных или отсутствие юридической ценности). В зависимости от контекста это может быть или не быть проблемой.

5
ответ дан 14 December 2019 в 13:28
поделиться