Как безопасность алгоритма шифрования зависит от факторизации больших чисел?
Пропущенная фраза - «открытый ключ», например, «Какова безопасность алгоритма шифрования с открытым ключом ...»
В современной криптографии существуют две основные категории шифров: симметричный (секретный ключ) и открытый ключ (который использует пару открытый / закрытый ключ).
В каждой категории вы найдете ключевые размеры относительно близкими. Для систем с открытым ключом, таких как RSA и DH / DSA, которые используются в шифровании электронной почты OpenPGP, размеры общих ключей в наши дни составляют 1024-битные и более (начало 2010 года). Это связано с математическими требованиями подходящих ключей, используемых для шифрования и дешифрования сообщений. Короче говоря, для RSA намного проще сгенерировать множитель двух случайных больших простых чисел и выполнить с ними умножение, по сравнению с факторингом очень большого числа, в котором нет мелких факторов. Как вы обнаружили, факторинг очень больших чисел является «проблемой» или подходом, необходимым для разрыва RSA с помощью грубой силы.
Алгоритм Диффи-Хеллмана / цифровой подписи (DH / DSA) основан на другой математической задаче, вычисляющей дискретные логарифмы.
Из-за свойств пар открытого и закрытого ключей пространство поиска ограничено факторами больших чисел простых чисел, которые становятся невероятно редкими, поэтому имеет смысл попытаться быть далеко более умным, чем просто пытаясь учесть каждое очень большое число.
В то время как с симметричными шифрами, такими как AES, RC6, RC4, Twofish, DES и Triple-DES, эти алгоритмы используют случайный ключ заданной длины в битах. Подходит любой нетривиальный (т. Е. 0x000 ... 000 может быть плохой выбор ключа) случайный ключ. Таким образом, если в этих системах нет атаки на сам алгоритм, вы можете просто выполнить поиск грубой силы в пространстве ключей (то есть попробовать все 2 ^ 256 возможных ключей), чтобы расшифровать сообщение без секретного ключа. Поскольку любой ключ подходит, плотность ключей составляет 2 ^ 256.
Я игнорирую квантовые вычисления (теоретические и практические), главным образом потому, что а) я не могу дать четкий ответ, и б) он представляет большой сдвиг парадигмы, который потенциально превращает многие прикладные математические и компьютерные науки в вычислительную сложность его голова, это базовое понимание все еще движущаяся цель. О, и у большинства моих врагов еще нет квантового компьютера. :)
Я надеюсь, что это объясняет общую разницу между двумя типами криптосистем, такими как RSA и AES.
Боковая панель: Криптография - это богатая и сложная тема, в которой основы могут быть достаточно простыми для понимания, и даже написать наивную («учебную») реализацию, сложные тонкости безопасной реализации делают ее программистам, которые не являются экспертами в области криптографии, лучше всего использовать криптосистемы высокого уровня, в том числе хорошо известные стандартные протоколы, чтобы повысить ваши шансы на то, что криптография системы не является уязвимым недостатком системы.