Есть ли смысл использовать какие либо другие експоненты для RSA кроме общепринятых 65537 и 3?? Имеет ли значение длинна експоненты в битах?
3 не является общепринятой. хотя 3 действительно известна, но с негативной стороны. общепринятыми скорее являются 17, 257, 65537
Цитата: "The NIST Special Publication on Computer Security (SP 800-78 Rev 1 of August 2007) does not allow public exponents e smaller than 65537, but does not state a reason for this restriction."
Размер (и формат: только 2 единичных бита) для E выбирают таким потому, что алгоритм exponentiation by squaring, вариациями которого производится возведение в степень работает при таких условия быстрее всего. Вот например скорость операции x^E mod n, n - простое 2048 bit E = 3 Ticks: 324258 (0.000147 s) E = 17 Ticks: 516164 (0.000234 s) 1.591831 times slower (e=3) E = 257 Ticks: 765237 (0.000347 s) 2.359963 times slower (e=3) E = 65537 Ticks: 1318163 (0.000598 s) 4.065167 times slower (e=3) а NISTовцы видимо страхуются от случая, когда вдруг кто нибудь изобретет эффективный способ извлечения корней mod N до 65537й степени. Е=3 кстати не рекомендуется именно по причине того, что корни третьей степени вычислить уже более менее реально. Это все еще офигенно ресурсоемко, но в теории возможно. А проверять на своей шкуре (сломают/нет?) дураков обычно не находится.
А вот в большинство случаев корни не помагают вообще даже если е=3, т.к. числа больше модуля...Думаю NIST другое имели ввиду...