1
$\begingroup$

Assume it takes 512 clock cycles to check if a 64 cryptographic bit key is correct. Given a 64 bit plain text and its ciphertext, how long does it take to check all keys using a single core of a 4 GHz processor?

What is the time taken if it is done using a cluster of 1024 servers, each with a quad core processor?

I need help to understand if my approach is correct.
Number of keys tested in 1 second (using a single core): $\quad 2^2 \cdot 2^{30} / 2^9 = 2^{23}$ keys are tested.
Amount of time taken for a 64 bit key: $\quad 2^{64} / 2^{23} = 2^{41}$.

Using a cluster of 1024 servers:
Number of keys tested in 1 second: $\quad 2^2 \cdot 2^2 \cdot 2^{30} \cdot 2^{10} / 2^9 = 2^{35}$.
Total time taken: $\quad2^{64}/2^{35} = 2^{29}$

$\endgroup$

migrated from security.stackexchange.com Mar 7 '17 at 21:15

This question came from our site for information security professionals.

  • 9
    $\begingroup$ That sounds like you homework, doesn't it? $\endgroup$ – Ricardo Reimao Mar 6 '17 at 13:55
  • $\begingroup$ The numbers of key tested in one second seems wrong. With a CPU of clock-frequency 4*10^9 Hz with one key check needing 512 clock cycles, we have a key-cracking speed of (4*10^9 / 512) Keys/sec. To crack 2^64 keys, we need a time of 2^64 [Keys] / (4*10^9 / 512 [Keys per sec]) (unit: keys / (keys/sec) = sec). (That number is equal to 74873 years, yours would be 278922 years due setting the clock to 2^30 Hertz, which is 1.074 gigahertz). A gigahertz is 10^9 Hz in SI units. $\endgroup$ – Maximilian Gerhardt Mar 6 '17 at 13:55
  • $\begingroup$ My bad i should have used 4*2^30 instead. would the calculation be right now along with the cluster part? $\endgroup$ – grenn Mar 6 '17 at 14:05
  • $\begingroup$ 4 Gigahertz is still not 4*2^30 Hz, but 4*10^9 Hz, in SI units. Giga is the true "1 billion" here. Unless you have an explicit redefinition order from your lecturer. $\endgroup$ – Maximilian Gerhardt Mar 6 '17 at 14:08
  • 1
    $\begingroup$ The difference between taking giga = 1,000,000,000 and giga = 1,073,741,824 can make quite the difference in the number of years that are there. Particularly here the difference between 69,731 years and 74873 years. For the next part: If the server has a 4-core 4GHz processor then we can deduce 4times the cracking speed of it. With that, multiplied by 1024 servers, you can compute the numbers of keys tested by 1024 * 4 cores * 4 GHz / 512 clock cycles, and the total time taken as 2^64 / num_keys_per_sec. $\endgroup$ – Maximilian Gerhardt Mar 6 '17 at 14:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy