Como determinar o número de testes realizados pela CPU por segundo?

0

Meu contexto é que, para o exame dos métodos de criptografia, preciso calcular o tempo estimado para que o ataque de força bruta seja bem-sucedido. Portanto, preciso fazer uma suposição sobre o sistema usado para quebrar o algoritmo.

Como exemplo na palestra eu tenho:

  • Assuma um milhão de testes por segundo (rápido)
  • E então o DES tem 2 ^ 56 números de chaves

Eu gostaria de contrastar o PC moderno e os sistemas complexos (muitos processadores - como 90 bilhões de testes / chaves por segundo)

Como é possível converter aproximadamente o processador 4 núcleos de 3,5 GHz em número de operações por segundo?

E um milhão de testes por segundo equivale a 800 Mhz / 3k mhz?

Desculpe se parece bobo, mas é melhor parecer estúpido do que errado.

    
por Aubergine 17.08.2013 / 17:29

1 resposta

3

Eu suspeito que você esteja interpretando mal sua pergunta dos palestrantes.

Quando o Q escreve “Suponha que um milhão [sic] de testes por segundo”, isso significa “presumir que ele pode testar um milhão de chaves por segundo”. A implementação física real não é importante.

O que torna a resposta bastante trivial:
2 56 número de chaves / 1.000.000 chaves por segundo

72057594037 segundo necessário para todo o espaço de chaves.
(que é igual a 833999 dias ou 2283 anos).

Qual, é para o todo keyspace. Em média você só precisa verificar metade disso, o que torna a resposta 1141 anos.

Para pontos de bônus:

  1. Isso presume que as velocidades do PC não aumentem durante esses 1141 anos.
  2. Isso é com um único sistema trabalhando no problema. (Veja dnetc e similar para ver como você pode contornar esse problema)
  3. E assume a mesma arquitetura. PCs idiotas padrão, bons em tarefas de propósito geral, fazendo nada além de um conjunto muito especializado de operações por mil anos.
    Este não é claramente o caminho a seguir para essa tarefa.
    Bom de assistir: Gravação grande do CCC


I would like to contrast modern PC and complex systems(many processors - like 90 billions of tests/keys per second)

A maneira mais fácil de obter a velocidade prática (muito NÃO teórica) de fazer isso em um PC moderno é simplesmente percorrer parte de um espaço-chave. Meça quantas chaves são realmente registradas e hora. (Ou qualquer período longo o suficiente para mediar as coisas).

Esta não é uma solução muito científica, mas lhe dará ótimas respostas práticas.

How is it possible to roughly convert say 4 cores 3.5 GHz processor into number of operations per second?

Não é. Operações diferentes levam um número diferente de ciclos. Uma adição simples pode levar apenas um ciclo de clock. Uma multiplicação pode levar 80. Então você precisa saber o que vai usar antecipadamente. E para tornar as coisas ainda mais complicadas, você precisará ajustar o forro do tubo, você precisará assumir que não há estrangulamento térmico. Você precisará compensar o turbo-boost inicial que tornará os primeiros segundos dos cálculos mais rápidos. Você precisará compensar a temperatura ambiente, a qualidade do resfriamento, ...

And one million of tests per second is equivalent to 800 MHz / 3k MHz ?

Nem desde o MHz não informa a velocidade da CPU.

A analogia não técnica mais próxima que eu tenho é compará-lo com o RPM do motor ou o quão rápido suas pernas giram quando pedalam. Sem especificando em qual engrenagem você está ou se você usa um motor de 10CC ou um enorme motor de 10 litros.

    
por 17.08.2013 / 18:30