Что различие в производительности pki к симметричному шифрованию?

Перед установкой проверьте, есть ли запись с теми же значениями:

if not exists (select * from Delegates d where d.FromYr = @FromYr and d.MemNo = @MemNo)
    INSERT INTO Delegates ([MemNo],[FromYr],[ToYr]) values(@MemNo, @FromYr,@ToYr)
11
задан Artjom B. 2 August 2015 в 12:08
поделиться

6 ответов

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

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

28
ответ дан 3 December 2019 в 00:44
поделиться

Используйте OpenSSL speed управляйте, чтобы сравнить алгоритмов и лично убедиться.

[dave@hal9000 ~]$ openssl speed aes-128-cbc
Doing aes-128 cbc for 3s on 16 size blocks: 26126940 aes-128 cbc's in 3.00s
Doing aes-128 cbc for 3s on 64 size blocks: 7160075 aes-128 cbc's in 3.00s
...
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
aes-128 cbc     139343.68k   152748.27k   155215.70k   155745.61k   157196.29k


[dave@hal9000 ~]$ openssl speed rsa2048
Doing 2048 bit private rsa's for 10s: 9267 2048 bit private RSA's in 9.99s
Doing 2048 bit public rsa's for 10s: 299665 2048 bit public RSA's in 9.99s
...
                  sign    verify    sign/s verify/s
rsa 2048 bits 0.001078s 0.000033s    927.6  29996.5
7
ответ дан 3 December 2019 в 00:44
поделиться

На MacBook рабочий OS X 10.5.5 и сборка запаса OpenSSL, "openssl скорость" синхронизирует AES-128-CBC в 46 000 блоков на 1 024 бита в секунду. То же самое поле синхронизирует RSA на 1 024 бита в 169 подписях в секунду. AES-128-CBC является алгоритмом блочного шифрования "учебника", и RSA 1024 является алгоритмом с открытым ключом "учебника". Это - яблоки к оранжевым, но ответ: RSA очень, намного медленнее.

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

  1. Открытый ключ crypto операции не предназначается для шифрования необработанных данных. Алгоритмы как Diffie-Hellman и RSA были разработаны как способ обмениваться ключами для блока crypto алгоритмы. Так, например, Вы использовали бы безопасный генератор случайных чисел, чтобы генерировать случайный ключ на 128 битов для AES и зашифровать те 16 байтов с RSA.

  2. Алгоритмы как RSA намного менее "удобны для пользователя", чем AES. Со случайным ключом блок простого текста, который Вы подаете к AES, собирается выйти случайный любому без ключа. Это - на самом деле не случай с RSA, который является---больше, чем AES---просто математическое уравнение. Таким образом в дополнение к хранению и руководящим ключам правильно, необходимо быть чрезвычайно осторожными со способом, которым Вы форматируете свои блоки простого текста RSA, или Вы заканчиваете с уязвимостями.

  3. Открытый ключ не работает без инфраструктуры управления ключами. Если у Вас нет плана проверить открытые ключи, взломщики могут заменить своими собственными парами ключей реальные для запуска "человека в средних" нападениях. Поэтому SSL вынуждает Вас пройти rigamarole сертификатов. Блок crypto алгоритмы как AES действительно страдает от этой проблемы также, но без PKI, AES не менее безопасна, чем RSA.

  4. Открытый ключ crypto операции восприимчив к большему количеству уязвимостей реализации, чем AES. Например, обе стороны транзакции RSA должны договориться о параметрах, которые являются числами, питаемыми к уравнению RSA. Существуют злые взломщики значений, может занять место в тихо отключить шифрование. То же идет для Diffie Hellman и еще больше для Эллиптической кривой. Другим примером является уязвимость Подделки Подписи RSA, которая произошла 2 года назад в нескольких высокопроизводительных реализациях SSL.

  5. Используя открытый ключ доказательство, что Вы делаете что-то "необычное". Необычный точно, чем Вы никогда не хотите быть с криптографией; вне просто алгоритмов, crypto проекты контролируются и тестируются в течение многих лет, прежде чем их будут считать безопасными.

Нашим клиентам, которые хотят использовать криптографию в их приложениях, мы предоставляем две рекомендации:

  • Для "данных в покое", используйте PGP.В самом деле! PGP избивали больше десятилетия и считают безопасным от немых ошибок реализации. Существуют и коммерческие варианты с открытым исходным кодом его.

  • Для "данных в полете", используют TLS/SSL. Никакой протокол системы защиты в мире лучше не понят и лучше протестирован, чем TLS; финансовые учреждения везде принимают, что он как безопасный метод перемещает наиболее уязвимые данные.

Вот достойная рецензия [matasano.com] меня, и Nate Lawson, профессиональный шифровальщик, описал несколько лет назад. Это отвечает на эти вопросы более подробно.

25
ответ дан 3 December 2019 в 00:44
поделиться

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

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

В прошлый раз я протестировал это, проверив цепочку приблизительно 3 сертификатов X.509 [редактирование для добавления: и данные, которые они подписывали], брали часть секунды на ARM, достигающем приблизительно 100 МГц (усредненный по многим повторениям, очевидно). Я не могу помнить как маленький - не незначительный, но хорошо менее чем секунда.

Извините я не могу помнить точные детали, но сводка - то, что, если Вы не находитесь в очень ограниченной системе или выполнении большого шифрования (как то, если Вы хотите принять как можно больше соединения SSL секунда), утвержденные NIST асимметричные методы шифрования быстры.

4
ответ дан 3 December 2019 в 00:44
поделиться

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

Например, сертификаты X509 являются промышленным стандартным способом защитить клиент-серверные конечные точки. Бронирование PGP может использоваться для обеспечения файлов лицензии. Для простоты Сцепление блоков шифра с Шифром (и хост других шифров) просто в использовании в Perl или Java при управлении обеими конечными точками.

Спасибо.

0
ответ дан 3 December 2019 в 00:44
поделиться

По-видимому, это 1000x хуже. (http://windowsitpro.com/article/articleid/93787/symmetric-vs-asymmetric-ciphers.html). Но если Вы действительно не работаете через большое количество данных, это не будет иметь значение. То, что можно сделать, использовать асимметричное шифрование для обмена симметричным ключом шифрования.

2
ответ дан 3 December 2019 в 00:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: