Асимметричное шифрование - PullRequest
7 голосов
/ 30 августа 2010

У меня завтра экзамен по Advanced Development, но я застрял в теме шифрования. Я прочитал об этом в http://support.microsoft.com/kb/246071. Однако я все еще в замешательстве.

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

Может ли кто-нибудь объяснить это так, чтобы неопытный мог понять это? Я не понимаю только его асимметричное шифрование, а не симметричное шифрование. Заранее спасибо.

С уважением,

Richard

Редактировать: Итак, чтобы суммировать все ответы в случае веб-приложения (конкретное использование, для которого мне нужно знать об этом):

  1. Пользователь заходит на сайт;
  2. Пользователю предлагается предоставить открытый ключ;
  3. Пользователь создает пару открытого и закрытого ключей, сохраняет частный частный ключ и отправляет открытый ключ на сервер;
  4. Сервер использует открытый ключ для шифрования всего, что необходимо отправить пользователю, и отправляет информацию пользователю;
  5. Пользователь использует свой закрытый ключ для расшифровки ответа от сервера;
  6. Пользователь делает то, что ему нужно, и отправляет ответ на сервер, используя закрытый ключ для его шифрования;
  7. Сервер расшифровывает с помощью открытого ключа. Шаги 4 - 7 могут продолжаться много раз, или они могут происходить только один раз, или могут происходить только 4 и 5.

Это все правильно? Если так, то это должно быть все, что мне нужно знать для экзамена. Я не должен думать, что мне нужно знать больше, чтобы получить максимум 40%, если возникнет вопрос на эту тему - хотя упомяну о существовании сертификатов и подписей.

Спасибо за помощь.

С уважением,

Richard

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

С уважением,

Richard

Ответы [ 5 ]

13 голосов
/ 31 августа 2010

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

Исходя из этого, вы можете получить 4 операции:

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

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

  • a сеть доверия , где люди подписывают связь друг с другом между открытым ключом и личностью: обычно это модель PGP.
  • a инфраструктура открытых ключей (PKI), где вы получаете полномочия центров сертификации на производство сертификатов, часто с промежуточными, в древовидной иерархии. (PGP также может использовать эту модель, но это кажется менее распространенным.)
7 голосов
/ 31 августа 2010

Алиса создает свой закрытый ключ + открытый ключ.Она держит свой закрытый ключ в секрете.Она делает свой Открытый ключ открытым.

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

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

5 голосов
/ 31 августа 2010

Другие предоставили «общее» описание, и я углублюсь в реальную сторону.

Большинство современных стандартов асимметричного шифрования работают не с необработанными открытыми и закрытыми ключами, а с более сложными оболочками,такие как сертификаты X.509 или ключи OpenPGP (сегодня это две наиболее популярные асимметричные инфраструктуры шифрования).И сертификаты, и ключи OpenPGP содержат дополнительную информацию, которая позволяет легко их идентифицировать, искать и управлять.

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

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

2 голосов
/ 30 августа 2010

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

1 голос
/ 31 августа 2010

Допустим, "decryptor" = D и "encryptor" = E.

D ранее отправил свой открытый ключ E, чтобы E мог зашифровать сообщение. Поскольку только D знает свой собственный закрытый ключ, только D будет знать, как расшифровать только что отправленное им сообщение E (помните: один ключ используется для шифрования, другой - для дешифрования). Таким образом, вы получаете конфиденциальность.

...