2009-03-30 3 views
17

У меня есть прослеживание вопрос Given a private key, is it possible to derive it’s public key?Как различаются общедоступные и закрытые ключи?

ли общественность и закрытые ключи «же» (в том смысле, что вы просто решили сделать один публичный) или вы можете сделать больше с закрытым ключом, чем с открытый ключ?

EDIT - лучше заявить мой вопрос:

Когда два ключа генерируется, я мог просто случайно выбрать одну из них, чтобы быть открытым ключом?

+0

I * think * это сильно зависит от используемого алгоритма шифрования. В некоторых они взаимозаменяемы, в других - нет. Это связано с этим вопросом: http://stackoverflow.com/questions/696472/given-a-private-key-is-it-possible-to-derive-its-public-key –

+2

+1 за то, я долго размышлял. –

+0

Связано с http://security.stackexchange.com/questions/52495/can-rsa-keys-be-swapped для RSA. – Gnubie

ответ

10

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

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

+4

В RSA, поскольку открытый ключ вычисляется из закрытого ключа, их переключение означает, что ваш ранее закрытый ключ теперь является открытым ключом, и любой может легко сгенерировать ранее открытый ключ, который вы теперь используете в качестве своего закрытого ключа.Переключение открытых/закрытых ключей в RSA делает RSA небезопасным. – Martijn

2

От http://www.webopedia.com/TERM/P/public_key_cryptography.html:

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

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

2

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

12

Некоторых бумага дескрипция роль государственных и частных ключи как вполне симметричны, но вы определенно не можете поменять роли частного и публичного ключа в реальном мире.

Общее использование:

  • открытый ключ должен использоваться для шифрования и проверки подписи
  • секретный ключ должен использоваться для дешифрования и подписания

Существует несколько причин что:

  • Вы не хотите оставлять пользователю выбор, который должен быть опубликован, и который не. Публичный ключ публикуется во всем мире, и вы можете рассматривать его как свою публичную идентификацию. Частная часть необходима, когда вам нужно доказать кому-то еще, что у вас есть более глубокое понимание, чем другие об этом удостоверении: вы можете читать сообщения, отправленные на него, вы можете подписывать сообщения, которые могут быть подтверждены любым, кто знает ваш публичный идентификатор. Если какая часть открытого/закрытого ключа для публикации была оставлена ​​пользователю, вы в конце концов прекратите публикацию обоих. Но это не главная причина.

  • , когда у вас есть секретные ключи, у вас действительно есть оба ключа. всякая распространенная реализация. Я знаю, предлагают инструменты для извлечения открытых ключей из личных файлов. Это верно для pgp, gpg, openssl. Это означает, что так называемые файлы закрытого ключа хранят как частные, так и открытые ключи, как описано в алгоритмах. Это по дизайну.

Для Exemple с OpenSSL последовательность команд для генерирования пары ключей RSA может быть:

openssl genrsa -out private.key 2048 
openssl rsa -in private.key -pubout -out public.key 

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

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

  • шифрования с закрытым ключом является математически слабым: хорошо, предыдущий пункт уже достаточно, но некоторые изощренные пользователи могут рассматривать с использованием асимметричной криптографии держа обе клавиши скрытые для обмена данными. Не используйте симметричное шифрование, если вы хотите делать такие обмены. Да, можно шифровать сообщение с помощью закрытого ключа и расшифровывать его с помощью общедоступного (это в основном то, что используется для подписания, но вариант использования отличается, поскольку у вас также есть начальное сообщение). Внутренние параметры двух клавиш не являются именами, и вся силовость криптографии была применена только для обычного направления и общего использования.
+0

Удивительный ответ. Благодарю. Короткий длинный рассказ! – egelev

 Смежные вопросы

  • Нет связанных вопросов^_^