Вопрос

Я работал над системой, которая использует асимметричное шифрование в большом количестве файлов. В настоящее время я использую RSA с помощью 4096-битных ключей, чтобы зашифровать 256-битный случайно сгенерированный ключ AES для каждого файла, но производительность несколько не хватает, поскольку одна необходимая операция должна сканировать все файлы (расчетное число, когда система находится в Использование составляет около 10 000) и определить, какие из них можно расшифровать с помощью конкретного закрытого ключа. Хотя я не ожидаю, что эта операция будет мгновенно, она слишком длинная в данный момент (~ 2 файла обрабатываются в секунду). Я считал снижение ключа длины, но даже до 2048 битов не обеспечивает уровень производительности, который мне нужен. 512 битов только что обрезали его, но, поскольку такие ключи теперь можно взломать тривиально, что выходит из вопроса.

Может кто-нибудь указать мне в направлении системы, которая быстрее, но подобная криптографическая сила? Это необходимо будет реализовать через провайдер Java JCA (например, что-то вроде BounCycastle), чтобы аккуратно подключить к моему существующему приложению. Я знаю, что Bouncy Castle поддерживает El Gamal, но я не могу найти какие-либо подробности о том, насколько сильный этот алгоритм, или если он даже может быть любым быстрее, чем RSA. Я также слышу об эллиптических системах кривых, которые нужны только относительно короткие клавиши (384 бита или тому подобное), но не знают, где найти реализацию одного из них.

Это было полезно?

Решение

За ваш вопрос, как спросил, попробуйте диффи-Hellman над эллиптическими кривыми, также известный как «ECDH». Оценка безопасности немного сложно, когда мы имеем дело с размерами, которые нельзя взломать с текущей технологией, поскольку это зависит от того, как мы ставим о будущих технологических эволюциях. Тем не менее, можно сказать, что ECDH над кривой P-256 предоставляет «128 бит» безопасности, уровень, который аналогичен тому, что вы получите от 2048-битной RSA. Этот уровень широко достаточна для всех употреблений тока, или, более надлежащим образом сказано, если P-256 недостаточно для вас, то ваша проблема имеет очень особые потребности, и криптографическая сила, скорее всего, будет наименьшим количеством ваших забот.

На моем ПК (A 2,4 GHZ Intel Core2, 64-битный режим, работающий в Linux), OpenSSL претензию, чтобы извлечь около 900 экземпляров ECDH в секунду, используя одно ядро.

Редактировать: Для оценки ключевой безопасности, в зависимости от длины, для нескольких алгоритмов см. этот сайт.

Другие советы

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

Я бы пошел на подход, который требует меньше операций RSA. SSL / TLS, хотя они используют RSA и т. Д. Для шифрования клавиш AES и т. Д., Не используйте AES для данных, просто потому, что это вычислительно дорогая операция при достаточно больших размерах ключей для обеспечения безопасности на Per-Packet или в вашем случае , за файл.

Еще одна система открытых ключей: http://en.wikipedia.org/wiki/elgamal_encryption.. Отказ Безопасность Я считаю, что это еще не сломано, но лично будет нанести мое доверие в RSA. Я не знаю, есть ли есть какие-либо алгоритмы шифрования эллиптической кривой, имеющиеся в настоящее время - то есть я знаю, что они исследуются, но понимают, что они не могут быть готовы к использованию производства, и я слышал, что были патентные вопросы.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top