Как определить количество тестов, выполняемых процессором в секунду?

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

в качестве примера в лекции у меня есть:

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

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

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

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

Извините, если звучит глупо, но лучше казаться дураком, нежели плохого.

5
задан Aubergine
источник

1 ответов

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

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

Что делает ответ довольно тривиален:

256 количество ключей / 1.000.000 ключей в секунду

72057594037 второе необходимое для целого ключей.

(что равно 833999 дням или 2283 годам).

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

для бонусных очков:

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

    это явно не путь для выполнения этой задачи.

    приятно смотреть: большая запись CCC



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

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

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

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

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

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

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

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

3
отвечен Hennes 2013-08-17 16:30:44
источник

Другие вопросы calculator cpu speed