Нотация Big-O: Алгоритмы шифрования

В настоящее время я заканчиваю диссертацию о шифровании данных с помощью различных криптографических алгоритмов.

Я потратил много времени на чтение журналов и статей, но до сих пор не смог найти никаких сведений об их сложности исполнения.

Кто-нибудь может представить себе сложность Big-O следующих алгоритмов?

  • ЮАР
  • ДЕС
  • Тройной DES (который, как я ожидаю, будет того же порядка, что и DES)
  • АЕС
  • иглобрюх

Заранее спасибо; если бы вы могли предоставить ссылку на авторитетный и цитируемый источник, если бы вы были очень признательны.


person Mered Williams    schedule 10.04.2012    source источник
comment
Возможно, вам повезет больше на crypto.stackexchange.com.   -  person ggozad    schedule 10.04.2012
comment
Кросс-пост на crypto.SE: crypto.stackexchange .com/questions/2338/   -  person CodesInChaos    schedule 11.04.2012
comment
Вы закончили свою диссертацию, сэр? Не возражаете, если поделитесь ссылкой на свою диссертацию? В настоящее время я пишу статью о временной сложности алгоритма RSA. Спасибо, сэр, заранее.   -  person alyssaeliyah    schedule 17.09.2018


Ответы (3)


Частичный ответ: RSA Laboratories предоставляет этот анализ, архивировано с rsa.com, сравнение операций RSA и DES.

Насколько быстр алгоритм RSA?

«Операция RSA», будь то шифрование, дешифрование, подпись или проверка, по существу является модульным возведением в степень. Это вычисление выполняется серией модульных умножений.

В практических приложениях обычно выбирают небольшой открытый показатель для открытого ключа. На самом деле целые группы пользователей могут использовать один и тот же общедоступный показатель, каждый с разным модулем. (Существуют некоторые ограничения на простые множители модуля, когда общедоступная экспонента фиксирована.) Это делает шифрование быстрее, чем дешифрование, и проверку быстрее, чем подпись. С типичными алгоритмами модульного возведения в степень, используемыми для реализации алгоритма RSA, операции с открытым ключом выполняются за O(k^2) шагов, операции с закрытым ключом выполняются за O(k^3) шагов , а генерация ключа занимает O(k^4) шагов, где k — количество битов в модуле. Методы «быстрого умножения», такие как методы, основанные на быстром преобразовании Фурье (БПФ), требуют асимптотически меньшего количества шагов. На практике, однако, они не так распространены из-за их большей сложности программного обеспечения и того факта, что они могут быть медленнее для типичных размеров ключей.

Скорость и эффективность многих коммерчески доступных программных и аппаратных реализаций алгоритма RSA быстро растут; последние данные см. на http://www.rsasecurity.com/.

Для сравнения, DES (см. раздел 3.2) и другие блочные шифры намного быстрее, чем алгоритм RSA. DES обычно как минимум в 100 раз быстрее в программном обеспечении и от 1000 до 10000 раз быстрее в аппаратном, в зависимости от реализации. Реализации алгоритма RSA, вероятно, немного сократят разрыв в ближайшие годы из-за высокого спроса, но блочные шифры также станут быстрее.

person user1324865    schedule 10.04.2012

Следует отметить одну вещь (в зависимости от того, пишете ли вы код для своей диссертации): большинство реальных реализаций RSA фактически используют RSA для обмена ключами AES. Таким образом, операции O(k^2) и O(k^3) для шифрования/дешифрования соответственно относятся только к шифрованию ключа AES. AES, который в 100-10 тысяч раз быстрее в программном/аппаратном обеспечении, выполняет фактический блочный шифр для обмениваемых данных - таким образом, вы можете воспользоваться преимуществами PKI (через RSA) без необходимости платить непомерную вычислительную цену.

person David Beveridge    schedule 26.11.2012

Сложность симметричных шифров составляет O(1) для одного блока.

Это оставляет только RSA из вашего списка, и ответ очень зависит от реализации, в зависимости от того, насколько хорошо реализовано умножение больших целых чисел, выбор показателей и т.д.

person Bruno Rohée    schedule 16.04.2012