Разница между асимметричным и симметричным методами шифрования? - PullRequest
9 голосов
/ 30 марта 2011

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

В основном, я хочу знать

  1. Принципы их работы

  2. Их назначение

  3. Их относительная производительность

асимметричных и симметричных методов шифрования.

Ответы [ 2 ]

21 голосов
/ 30 марта 2011

Краткое содержание:

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

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

На практике их можно объединить, чтобы получить лучшее из обоих миров (например, HTTPS).

21 голосов
/ 30 марта 2011

Я предлагаю начать с Прикладная криптография .Это отличное введение в принципы криптографии.

Если вы серьезно интересуетесь криптографией, я настоятельно рекомендую Справочник по прикладной криптографии как замечательный справочникРабота.Сначала это будет слишком много для обработки, но это бесплатно, поэтому возьмите копию сейчас :), и когда вы закончите с AC, прочитайте HAC.(На самом деле, издание в твердом переплете очень хорошо сделано и намного легче читать, чем несколько сотен страниц бумаги с лазерной печатью; подумайте о покупке, если вам нравится внешний вид PDF-файлов.)

Симметричное шифрование работает путем смешивания секретного ввода с секретным ключом таким образом, что оно (а) быстро (б) не может получить ввод или ключ из вывода.Детали смешивания значительно различаются, но есть блочные шифры и потоковые шифры ;блочные шифры работают, просматривая входные данные в 8- или 16- или 32-байтовых блоках за раз, и распределяя ввод и ключ в этих блоках.Различные режимы работы необходимы для шифрования большего количества данных, чем умещается в блоках, и различные режимы работы могут или не могут распространять данные между блоками тоже.

Симметричные шифры отлично подходят для больших объемов данныхшифрование, от 8 байтов до 8 терабайт, это лучший выбор для шифрования данных .

. Асимметричное шифрование работает за счет использования очень сложных математических задач с задними дверями , которые позволяют быстрое решение проблемы, если , у вас есть небольшой кусок очень важных данных.Обычные математические задачи: с учетом больших чисел и дискретных логарифмов .Асимметричные алгоритмы работают с фиксированным размером данных, обычно 1024-2048 бит для RSA и Эль-Гамаль и 384 бит для Эллиптическая кривая версии RSA или Эль-Гамаль,(В версиях эллиптической кривой для вычислений используется поле , отличное от целых чисел. RSA и El Gamal и аналогичные системы работают с любым полем , в котором указано multiply иоперация add , и ECC имеет другое представление этого поля, которое волшебным образом упаковывает «больше» данных в бит. Это очень умный способ сделать хорошо известные механизмы вписывающимися в меньшее количество памяти, и мойвведение предложения не может начать делать это справедливо. Простота - удивительная часть.)

Асимметричное шифрование помогает решить проблему распределения ключей , но только лишь: вместо того, чтобы требовать O (N^ 2) пары ключей между каждой парой людей, желающих использовать криптографию для общения между собой, для этого требуются O (N) ключей, одна открытая / закрытая пара на человека, и каждому нужно просто знать открытую для всех остальныхчасть.Это все еще не проблема easy , как демонстрирует сложность x509 , но такие механизмы, как openPGP и OpenSSH имеют более простые модели имеханизмы, которые хорошо работают для многих целей.

Асимметричные шифры обычно используются для передачи сеансовых ключей для симметричных шифров.Даже когда будет передаваться только небольшой объем данных, криптографы обычно предпочитают отправлять фактические данные, зашифрованные с помощью симметричного шифра, и отправляют ключ, зашифрованный с помощью асимметричного шифра.Одним из огромных преимуществ является то, что вы можете отправить сообщение сотне разных получателей, и размер сообщения будет O (размер сообщения + 100 * 2048 бит) - вы можете зашифровать ключ сеанса для каждого из получателей по отдельности,и передать сообщение только один раз.Большой успех.

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

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

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

...