Мой контекст таков: для экзамена по методам шифрования мне нужно рассчитать примерное время, необходимое для успешной атаки методом перебора. Поэтому мне нужно сделать предположение о системе, используемой для взлома алгоритма.

В качестве примера в лекции я имею:

  • Предположим, один миллион тестов в секунду (быстро)
  • И тогда DES имеет 2 ^ 56 ключей

Я хотел бы сравнить современные ПК и сложные системы (многие процессоры - например, 90 миллиардов тестов / ключей в секунду)

Как можно примерно преобразовать, скажем, 4-ядерный процессор с частотой 3,5 ГГц в количество операций в секунду?

И один миллион тестов в секунду эквивалентен 800 МГц / 3 КГц?

Извините, если звучит глупо, но лучше выглядеть глупым, чем ошибочным.

1 ответ1

3

Я подозреваю, что вы неверно истолковываете свой вопрос лекторов.

Когда Q пишет «Предположим, один миллион [sic] тестов в секунду», это означает «предположим, что он может тестировать один миллион ключей в секунду». Реальная физическая реализация не важна.

Что делает ответ довольно тривиальным:
2 56 количество ключей / 1 000 000 ключей в секунду

72057594037 секунд, необходимых для всего пространства ключей.
(что равно 833999 дням или 2283 годам).

Который, для всего пространства ключей. В среднем вам нужно будет проверить только половину, что дает ответ 1141 год.

Для бонусных баллов:

  1. Это предполагает, что скорости ПК не будут увеличиваться в течение этих 1141 года.
  2. То есть с единственной системой, работающей над проблемой. (См. Dnetc и аналогичные, чтобы увидеть, как вы можете обойти эту проблему)
  3. И это предполагает ту же архитектуру. Стандартные тупые ПК, хорошо справляющиеся с задачами общего назначения, не выполняющие ничего, кроме очень специализированного набора операций в течение тысячи лет.
    Это явно не путь для решения этой задачи.
    Приятно смотреть: большая запись CCC


Я хотел бы сравнить современный ПК и сложные системы (многие процессоры - например, 90 миллиардов тестов / ключей в секунду)

Самый простой способ получить практическую (а не теоретическую) скорость выполнения этого на современном ПК - это просто пересечь часть ключевого пространства. Измерьте, сколько ключей действительно проверено за час. (Или любой период, достаточно длинный, чтобы усреднить вещи).

Это не очень научное решение, но оно даст вам очень хорошие практические ответы.

Как можно примерно преобразовать, скажем, 4-ядерный процессор с частотой 3,5 ГГц в количество операций в секунду?

Это не. Различные операции занимают разное количество циклов. Простое добавление может занять всего один такт. Умножение может занять 80. Так что вам нужно знать, что вы собираетесь использовать заранее. А чтобы еще больше усложнить ситуацию, вам нужно будет отрегулировать облицовку труб, вам не нужно будет допускать термического дросселирования. Вам нужно будет компенсировать начальный турбо-буст, который ускорит первые несколько секунд вычислений. Вам нужно будет компенсировать температуру окружающей среды, качество охлаждения, ...

А миллион тестов в секунду эквивалентен 800 МГц / 3k МГц?

Ни с тех пор, как МГц не говорит вам, насколько быстрым является процессор.

Самая близкая нетехническая аналогия, которую я имею, сравнивает ее с частотой вращения двигателя или скоростью вращения ваших ног при езде на велосипеде. Не уточняя, в какой передаче вы находитесь, или используете ли вы двигатель 10CC или огромный 10-литровый двигатель.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .