Безопасность данных, защищенных RSA, в долгосрочной перспективе - PullRequest
2 голосов
/ 02 апреля 2011

Я использую .net 3.5 и vb.net.Я мало знаю о внутренней работе каждого шифрования, упомянутого ниже.Я просто использую классы, предоставленные в библиотеке классов .net.

У меня есть часть информации, которая была зашифрована с помощью TripleDes, затем Rijndael и, наконец, алгоритмы RC2.И все KEY и IV этих алгоритмов были зашифрованы с помощью RSA с использованием 1024 размера ключа соответственно.

Это считается безопасным на данный момент и для долгосрочного ?

Потому что я слышалчто шифрование RSA можно считать безопасным только в течение определенных лет.Например, в этой статье 768-битный RSA взломан, 1024-битный (на данный момент)

Должен ли я увеличить размер ключа RSA до 2048 или более?

ОБНОВЛЕНИЕ :

Сейф здесь означает для долгосрочный и для очень важный секрет

Ответы [ 2 ]

6 голосов
/ 02 апреля 2011

Ниже приведен список длины ключей для различных алгоритмов шифрования: http://www.keylength.com. Номера, указанные на этом сайте, считаются стандартными.Если есть сомнения, проверьте там.Метод Ecrypt II является самой последней публикацией.Вы можете найти PDF-файл здесь: http://www.ecrypt.eu.org/documents/D.SPA.13.pdf. Это интересно для чтения и кажется довольно доступным, даже если вы мало знаете о криптографии (хотя я не уверен, так как я работаю в поле).

Что касается многократного шифрования исходных данных различными алгоритмами: это бесполезно, если вы используете надежный алгоритм шифрования.Мое предложение было бы использовать де-факто стандарт AES (= Rijndael).

Что касается длины вашего симметического ключа, если вы придерживаетесь AES, любой из трех вариантов (128, 192 или 256-бит)Это хорошо.На самом деле, существуют определенные атаки на 256-битные AES, которые не работают на 128-битной версии (из-за планирования ключей).В любом случае, ни одна из опубликованных атак на AES пока не имеет практического применения, поэтому выбирайте все, что хотите.

Если вы хотите быть уверены, что ваш ключ не будет расшифрован, да, используйте RSA-2048,Кстати, как вы можете видеть в этой таблице: http://www.keylength.com/en/3/, AES-128 по силе равен RSA-3248.

[Edit] Хотя один вопрос: почему вышифровать ваши ключи?Вам фактически придется хранить 2048-битный ключ RSA в безопасном месте, чтобы иметь возможность расшифровывать ваш 128-битный ключ AES.Я не вижу смысла.Вы можете также хранить 128-битный ключ где-нибудь в безопасности и покончить с этим.Или вы используете несколько ключей RSA для создания симметричного ключа?

Кроме того, предполагается, что IV являются открытыми, их не нужно скрывать / шифровать, что фактически делает их вторым ключом.У вас уже есть ключ.Так что не пытайтесь их зашифровать.

3 голосов
/ 02 апреля 2011

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

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

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

Эта ссылка тоже кажется хорошей. Рисунок на странице показывает, что время расшифровки RSA является экспоненциальным.

Вот еще одна статья , прямо из RSA Laboratories, в которой говорится о том, как долго ключи определенного размера считаются менее защищенными.

Итог: если вы ищете что-то, что будет работать долго, обязательно используйте 2048-битное шифрование. Он будет работать сейчас, хотя вашему серверу потребуется немного больше времени для шифрования (и, наконец, дольше, чтобы расшифровать), и будет работать в будущем.

...