На программистском форуме StackExchange один из пользователей задался вопросом, почему RSA Security рекомендует использовать ключи длиной 1024 бита, 2048 бит и даже 3072 бит, в то время как большинство алгоритмов симметричного шифрования ограничиваются длиной от 112 до 256 бит. Мол, почему бы нам не увеличить длину ключей, например, до миллиона — чтобы защититься от потенциального брутфорса со стороны суперкомпьютеров, которые ещё не изобретены.
Несмотря на свою банальность, вопрос набрал достаточно много баллов, то есть у многих ещё нет чёткого понимания, чем отличается ассиметричный шифр криптографический алгоритм с открытым ключом от симметричного шифра, где для шифрования и расшифрования используется один и тот же ключ.
С точки зрения брутфорса, принципиальная разница в том, что для взлома ключа RSA нужно найти сомножитель определённой длины (причём можно использовать предвычисленные таблицы). Это математическая задача, которую нельзя сильно усложнять, иначе обычная расшифровка сообщения будет занимать слишком много времени. На диаграмме показана скорость расшифровки на 2-гигагерцовом процессоре Pentium.
Для взлома симметричного шифра требуется перебрать 2^N комбинаций, где N — длина ключа. Расшифровка сообщения в любом случае происходит мгновенно, имея симметричный ключ. По оценке NIST, 256-битный симметричный ключ примерно соответствует 15360-битному ключу RSA. Лучше всего этот пример описан в книге «Прикладная криптография» Брюса Шнайера, которую можно процитировать.