У меня завтра экзамен по Advanced Development, но я застрял в теме шифрования. Я прочитал об этом на http://support.microsoft.com/kb/246071 . Однако я все еще в замешательстве.
Если сообщение зашифровано с использованием асимметричного шифрования, используя открытый ключ, как расшифровщик узнает закрытый ключ, с помощью которого его можно расшифровать? Конечно, единственный способ сделать это - сделать закрытый ключ открытым, но это побеждает объект асимметричного шифрования.
Может кто-нибудь объяснить это таким образом, чтобы неопытный мог понять это? Я не понимаю только его асимметричное шифрование, а не симметричное шифрование. Заранее спасибо.
С уважением,
Ричард
Редактировать: Итак, чтобы подвести итог всем ответам в случае веб-приложения (конкретное использование, для которого мне нужно знать об этом):
Это все правильно? Если так, то это должно быть все, что мне нужно знать для экзамена. Я не должен думать, что мне нужно знать больше, чтобы получить максимум 40%, если возникнет вопрос по этому вопросу - хотя упомяну о существовании сертификатов и подписей.
Спасибо за помощь.
С уважением,
Ричард
Редактировать: Ну, я только что вернулся с экзамена, и я думаю, что все прошло довольно хорошо. Но никаких вопросов по криптографии не возникло, однако ... Помощь все равно была оценена. Спасибо всем.
С уважением,
Ричард
Алиса создает свой закрытый ключ + открытый ключ. Она держит свой закрытый ключ в секрете. Она делает свой открытый ключ общедоступным.
Боб берет открытый ключ Алисы (сначала он должен убедиться, что это действительно открытый ключ Алисы!), и использует его для шифрования сообщения, которое он посылает Алисе.
Алиса может расшифровать сообщение, используя свой закрытый ключ.
Закрытый ключ должен быть известен только законному пользователю и не должен распространяться. Его аналог, открытый ключ, может быть передан кому угодно.
На основании этого можно получить 4 операции:
Следующая проблема, с которой вы можете столкнуться, — это привязка личности к открытому ключу (поскольку вы не захотите что-то шифровать или доверять чему-то, подписанному открытым ключом самозванца). Существуют различные модели распределения открытых ключей. Как правило, у вас может быть:
Давайте скажем, «дешифратор» = D, а «шифровальщик» = E.
D ранее отправил свой открытый ключ E, поэтому E может зашифровать сообщение. Поскольку только D знает свой закрытый ключ, только D будет знать, как расшифровать только что отправленное ему сообщение E (помните: один ключ используется для шифрования, а другой — для расшифровки). Таким образом, вы получаете конфиденциальность.
Другие предоставили "общее" описание, и я углублюсь в реальную сторону.
Большинство современных стандартов асимметричного шифрования работают не с необработанными открытыми и закрытыми ключами, а с более сложными оболочками, такими как сертификаты X.509 или ключи OpenPGP (на сегодняшний день это две самые популярные инфраструктуры асимметричного шифрования). И сертификаты, и ключи OpenPGP содержат дополнительную информацию, позволяющую легко их идентифицировать, искать и управлять ими.
Зашифрованный блок данных обычно включает общедоступную часть (то есть сертификат или открытый ключ OpenPGP), используемую для шифрования, или, по крайней мере, идентификатор (хэш этой общедоступной части). Получатель данных обычно имеет (или должен иметь) как открытые, так и закрытые части (закрытые ключи обычно хранятся вместе с сертификатами или открытыми ключами openpgp). Поэтому, когда получатель получает зашифрованные данные, он знает, что ему нужно искать в своем хранилище закрытых ключей публичную часть с заданным идентификатором (или данную публичную часть, когда она включена в зашифрованные данные).
Бывают случаи, когда ничего не включено. Тогда получателю ничего не остается, как попробовать все доступные приватные ключи для расшифровки. Но такие случаи редки, так как по умолчанию сертификат или идентификатор ключа присутствуют в зашифрованном блоке данных.
Открытый ключ предоставляется "шифровальщику" "расшифровщиком", следовательно, по определению "расшифровщик" знает закрытый ключ (поскольку он является частью пары ключей, созданной «расшифровщик».