Я создаю приложение, где я должен использовать RSA для шифрования некоторого материала с помощью открытого ключа. Я хочу, чтобы это шифрование было действительно быстро. Первоначально, я попробовал ключ на 2 048 битов F4 (=65537) как экспонента, но это не достаточно быстро. Таким образом, теперь я рассматриваю следующие 2 возможности:
Оба удовлетворяют мои требования к производительности, но какой обеспечивает лучшую безопасность? Я должен также отметить, что использую дополнительную схему PKCS#1.
Если вы используете случайную прокладку, такую как OAEP в PKCS#1, то большинство (все?) известных слабых мест от использования низких экспонентов уже не актуальны.
Также вы пробовали использовать e=17? Нет правила, по которому вы должны выбрать 3 или 65537.
.В своей книге " Практическая криптография " Брюс Шнайер и Нильс Фергюсон предлагают использовать общественный показатель 3 для подписей и 5 для шифрования. Вы должны дважды проверить другие критерии, которые они рекомендуют, чтобы избежать катастроф. Раздел 13.4 описывает это (p229ff) и обсуждает не очень сложное требование, которое, учитывая n = pq (где p и q - случайные праймы), ни (p-1), ни (q-1) не может быть кратным 3 или 5. Но все же дважды проверьте книгу на детали.
(Полагаю, что есть новое издание книги, которое должно выйти в 2010 г.)
.Если ваш экспонент низкий и значение m*e <модуль, вы можете просто взять этический корень шифрованного текста для расшифровки.
Это из моих записок по криптографии двухлетней давности. Но, отвечая на ваш вопрос, кажется, что вариант 2 лучше.
Тот, кто больше хочет заниматься математикой, возможно, сможет дать вам лучшее объяснение.
.при условии, что вы используете хорошую схему прокладки, то нет известной причины, почему E = 3 должна иметь хужее безопасность, чем любой другой государственный показатель. Использование короткого показателя имеет проблемы, если вы также не используете хорошую схему прокладки, но проблема более лежит в схеме прокладки, чем в экспоненте.
«Чувство кишечника» многих исследователей состоит в том, что E = 3 не лучше , чем любой другой общедоступный показатель, и E = 3 может оказаться немного слабее на некоторой не указанной будущей дате, хотя ничего не указывает на такую слабость прямо сейчас.
Длина ключа имеет гораздо более высокое практическое влияние на безопасность. 768-битный ключ RSA был взломан недавно взломан (это было непросто! Четыре года работы с большими компьютерами и большим мозгом). 1024-битный ключ считается адекватным в краткосрочной перспективе, но долгосрочное использование (например, зашифрованные данные имеют высокое значение и все равно должны быть конфиденциальными в 2030 году). 2048 бит. См. Этот сайт для большой информации о том, как можно оценить криптографическую прочность и оценивается различными исследователями и организациями.
Если вы находитесь после очень быстрого асимметричного шифрования, вы можете расследовать схему шифрования Rabin-Williams , которая является быстрее, чем RSA, обеспечивая, по меньшей мере, одинакового уровня безопасности для той же длины вывода ( Но нет простого в использовании подробных стандарта для этой схемы, противоречит RSA с PKCS # 1, так что вы немного на вашем собственном).
В настоящее время нет известной атаки против того, что используется правильная прокладка, небольшие показатели с большей вероятностью приведут к использованию в случае ошибок реализации. И ошибки реализации, к сожалению, все еще угрозу. Например. Это - это уязвимость, которая была довольно «популярной». (Примечание, это для подписей. Я просто хочу показать, что даже коммерческое программное обеспечение может иметь серьезные ошибки.)
Если вы должны сократить углы, то вам нужно учитывать потенциальные последствия ваших действий. Я Выбор небольшого модуля или небольшого показателя оба имеет свои собственные недостатки.
Если вы выбираете небольшой (1024-битный) модуль, вы не можете предположить, что ваши данные могут быть конфиденциальными на протяжении десятилетий.
Если вы выбираете небольшой показатель, вы можете быть более подвержены ошибкам реализации.
В первом случае вы в значительной степени знаете, когда ваши секреты опасны, поскольку довольно легко следовать прогрессу, достигнутому в факторинге. (Это предполагает, конечно, что агентства, которые не публикуют E.g. NSA, не является вашим врагом). Во втором случае (ошибки реализации) вы не знаете, когда вы допустили ошибку. Вы можете быть в безопасности, используя E = 3 или вы могли бы сделать большую ошибку. Я В одном случае у вас есть довольно хороший способ оценить свой риск, а в другом случае у вас нет.
Поэтому я рекомендую не использовать E = 3 вообще. Я бы использовал больше запасов безопасности против этих угроз, которые трудно предсказать, чем эти угрозы, которые широко распространены.