Последний потоковый шифр считается достаточно безопасным и легко внедряемым? - PullRequest
1 голос
/ 07 июня 2010

(A) RC4 использовался, чтобы соответствовать счету, так как это было так просто написать.Но в наши дни он также менее безопасен.

Мне интересно, есть ли преемник, который:

  • Код достаточно мал, чтобы писать и отлаживать в течение часа или около того,использование псевдокода в качестве шаблона.
  • По состоянию на 2010 г. все еще считается безопасным.
  • Оптимизировано для программного обеспечения.
  • Не обременено проблемами лицензирования.

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

Спасибо.

Ответы [ 2 ]

1 голос
/ 07 июня 2010

Честно говоря, вам лучше всего использовать крипто-библиотеку.Это уже проверенная платформа, и когда даже криптографические библиотеки могут / могут иметь проблемы с реализацией алгоритмов ... Лучше использовать уже существующие криптографические библиотеки, это уже достаточно сложно, чтобы правильно выполнять шифрование / дешифрование с использованием API как есть.как в этом посте на Coding Horror: Почему не мое шифрование .. Шифрование?

Теперь я перешел к статье в Википедии о Потоковые шифры это можетСтоит ознакомиться со списком шифров в этой статье, с RC4 в 1987 году было разработано несколько шифров, и, насколько я знаю, по некоторым ограниченным знаниям в области криптографии некоторые из них кажутся более безопасными, чем RC4.Возможно, вы также захотите проверить статью в Википедии eSTREAM .В портфеле есть несколько шифров: HC-128 , Кролик , Salsa20 / 12 , SOSEMANUK .

0 голосов
/ 07 июня 2010

Ни один шифр не может быть легко реализован, особенно симметричные, и им никогда не будет. Есть много вещей, которые могут пойти не так, и большинство программистов не осознают этого. Вам нужно намного больше прочесть эту тему.

С блочными шифрами вы должны иметь дело с режимом , который вы используете, и различные режимы удовлетворяют различные потребности (но ECB - всегда неправильный выбор). Вы также должны быть очень осторожны с сохранением уникального IV для каждого сообщения. Если вы используете «пароль» в качестве ключа, то вам нужно использовать функцию string2key.

Потоковые шифры не имеют IV или режимов, и это на самом деле делает вещи более сложными . Функция потокового шифра принимает только ключ, и на выходе получается «поток PRNG», который бесконечно велик. Этот поток случайных данных затем XOR'ed с вашим сообщением. Таким образом, если вы используете тот же ключ, вы получите тот же поток PRNG. Если злоумышленник знает обычный текст 1 сообщения (или часть сообщения), он может вычеркнуть PRNG из зашифрованного текста и затем расшифровать все другие сообщения, используя этот ключ, в постоянное время O (1). Для того чтобы потоковый шифр был практически безопасным, вы никогда не сможете использовать один и тот же ключ.

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

...