На программистском форуме StackExchange один из пользователей задался вопросом, почему RSA Security рекомендует использовать ключи длиной 1024 бита, 2048 бит и даже 3072 бит, в то время как большинство алгоритмов симметричного шифрования ограничиваются длиной от 112 до 256 бит. Мол, почему бы нам не увеличить длину ключей, например, до миллиона — чтобы защититься от потенциального брутфорса со стороны суперкомпьютеров, которые ещё не изобретены.
Несмотря на свою банальность, вопрос набрал достаточно много баллов, то есть у многих ещё нет чёткого понимания, чем отличается ассиметричный шифр криптографический алгоритм с открытым ключом от симметричного шифра, где для шифрования и расшифрования используется один и тот же ключ.
С точки зрения брутфорса, принципиальная разница в том, что для взлома ключа RSA нужно найти сомножитель определённой длины (причём можно использовать предвычисленные таблицы). Это математическая задача, которую нельзя сильно усложнять, иначе обычная расшифровка сообщения будет занимать слишком долго времени. На диаграмме показана скорость расшифровки на 2-гигагерцовом процессоре Pentium.
[IMG]http://www.xakep.ru/post/59888/RSADecryptionTime.png[/IMG]
Для взлома симметричного шифра требуется перебрать 2^N комбинаций, где N — длина ключа. Расшифровка сообщения в любом случае происходит мгновенно, имея симметричный ключ. По оценке NIST, 256-битный симметричный ключ примерно соответствует 15360-битному ключу RSA. Лучше всего этот пример описан в книге «Прикладная криптография» Брюса Шнайера, которую можно процитировать.
[QUOTE]Одним из следствий закона второго термодинамики является то, что для представления информации необходимо некоторое количество энергии. Запись одиночного бита, изменяющая состояние системы, требует количества энергии не меньше чем kT; где Т — абсолютная температура системы и k — постоянная Больцмана. (Не волнуйтесь, урок физики уже почти закончен.)
Приняв, что k = 1,38*10^-16 эрг/K, и что температура окружающей вселенной 3,2K, идеальный компьютер, работая при 3,2K, потреблял бы 4,4*10^-16 эрга всякий раз, когда он устанавливает или сбрасывает бит. Работа компьютера при температуре более низкой, чем температура космического пространства, потребовала бы дополнительных расходов энергии для отвода тепла.
Далее, энергия, излучаемая нашим Солнцем за год, составляет около 1,21*10^41 эргов. Это достаточно для выполнения 2*10^56 перемен бита в нашем идеальном компьютере, а этого, в свою очередь, хватит для того, что бы 187-битовый счетчик пробежал все свои значения. Если мы построим вокруг Солнца сферу Дайсона и перехватим без всяких потерь всю его энергию за 32 года, мы сможем получить компьютер для вычисления 2^192 чисел. Конечно, энергии для проведения каких-нибудь полезных вычислений с этим счетчиком уже не останется.
Но это только одна жалкая звезда. При взрыве типичной сверхновой выделяется около 10^51 эргов. (В сто раз больше энергии выделяется в виде нейтрино, но пусть они пока летают). Если всю эту энергию удастся бросить на одну вычислительную оргию, то все свои значения сможет принять 219-битовый счетчик.
Эти числа не имеют ничего общего с самой аппаратурой, они просто показывают максимальные значения, обусловленные термодинамикой. Кроме того, эти числа наглядно демонстрируют, что вскрытие грубой силой 256-битового ключа будет невозможно, пока компьютеры построены из обычной материи и располагаются в обычном пространстве.[/QUOTE]
Изменено:
СИёжик - 28.12.2012 10:34:22