Cracking Keys with Current Intel CPUs -- written by Thomas Jerry Scott
Note:
This document discusses time constraints in decrypting a message
encrypted with a 64-bit key, a 74-bit key, ..., up to a 128-bit key using a brute force
attack. All throughout this document, we will use terms such as "cracking a 64-bit key" or
"to crack a 74-bit key," to mean is the longer and more technically
precise terms "decrypting a message encrypted with a 64-bit key" or "decrypting
a message encrypted with a 74-bit key."
Table of Contents for Cracking Keys Through Brute Force
- Some Definitions to be Used in this Article
- Brute Force Definitions
- Type of Computer Used in This Article
- Time Issues for Cracking
- Cracking a key in One Month
- Cracking a 128-bit Key by Brute Force
- Conclusions for our Current Pentiums
- How Fast is Intel Speeding Up Pentiums
- Return to the Main Menu
Return to the Beginning of This Document
Definitions Used in This Article
First some definitions are given, and then the times are generated. The document
ends with conclusions on cracking messages encrypted with keys of differing
lengths, as well as how the faster CPUs we will see in the future
can possibly speed up the decryption process.
In this note, we are only only discussing cracking symmetric keys.
The following table shows symmetric key and asymmetric key lengths on
the same line. The key lengths on each line present
approximately the same algorithmic complexity.
From the table, you can see that the time to crack a message encrypted
with a 56-bit symmetric key requires approximately the same time as
cracking a 384-bit asymmetric key. This table is found in Bruce
Schneier's Applied Cryptography as well as in a number
of places on the Internet.
Table 1: Key Lengths for Symmetric and Asymmetric Keys
| Symmetric Key Length |
Asymmetric Key Length |
| 56 bits |
384 bits |
| 64 bits |
512 bits |
| 80 bits |
768 bits |
| 112 bits |
1792 bits |
| 128 bits |
2304 bits |
Return to the Beginning of This Document
What is a Brute Force Attack?
A brute force attack
means that you will try ALL the POSSIBLE KEYS.
For a 64-bit key, there are 2^64 keys, and this number is approximately
1.85 * 10^19 or 18,500,000,000,000,000,000 keys.
Can you name that number????
Currently reported hacks, such as the EFF DES hack
and the Bovine DES hack, only had to look at
25% of the entire keyspace. So this would mean that in a
normal "brute force effort" to crack a message encrypted with a 64-bit
symmetric key, we would need to only look at (1.85*10^19)/4,
or 4.625 * 10^18 or 4,625,000,000,000,000,000 keys.
Return to the Beginning to This Document
What Type Computer Are We Using in This Document?
In this document, we will assume that you have a dual Pentium 4D computer, with
each processor running at 3.2 Ghz. Since not all algorithms have the
same computational complexity, our fast 2-processor computer would be able
to try between 1,000,000 and 4,000,000 keys per second, depending on the
cryptographic algorithm being used.
Giving that multi-Pentium its best shot, we will assume that our
fast computer will be able to test 4,000,000 keys per second.
In scientific notation, this is represented as 2 * 10 ^ 6 keys
per second.
Return to the Beginning to This Document
Time Issues: How Long Will It Take to Crack a 64-bit Key?
Our two processor Pentium 4D, 3.2 Ghz computer would take
4.625 *10^18 keys /(4 * 10 ^ 6 keys/second) = 1.6502 *10^12 seconds
to crack just one 64-bit encrypted message, or course, assuming that we only
have to try 25% of the possibilities.
How long is 1.6502 * 10 ^12 seconds?
We know that 1 hour is 60*60 = 3,600 seconds.
Similarly, 1 day = 24 * 60 * 60 seconds and
one year is 365 * 24 * 60 * 60 or 31,536,000 or 3.1536 * 10^7 seconds.
Finally, one century is 100 * 31,536,000 or 3.1536*10^9 seconds.
Dividing the values, we get
(1.6502 * 10^12) total keys to check /(3.1536 * 10^9) centuries
or the astonishing fact that our fast 4-processor pentium would take over 367 centuries
just to crack one 64-bit key.
Now considering that it would take 367 centuries for our
2 processor 3.2 Ghz pentium computer to crack even a 64-bit key, a 64-bit key seems
safe from a worst case brute force attack using currently available Intel Pentium technology.
To sum up, cracking one 64-bit encrypted message would take 367 centuries!!
Return to the Beginning to This Document
How Many Computers Needed to Crack a 64-bit Key in One Month?
Suppose you absolutely, positively have to crack one 64-bit crack in
one month. This was what the US government needed to do in WW2.
They solved this problem by taking over a German vessel each month and
getting the keys to the German Enigma encryption machine.
Since our Pentium Two Processor 3.2 Ghz computer takes so long, we need to have
lots and lots of these machines working in parallel.
If we had 1,000 of our machines, we could crack one message encrypted with
a single 64-bit key in 367 Centuries/Machine /1000 machines = .367 of a Century, or 36.7 years, or
36.7 * 12 = 440 months.
With a million of these machines working in parallel, we would need
440 months /1000 = 0.44 of a month, or approximately 13 days.
So it would take a million of our 2 processor P4 3.2D Ghz Pentiums
all working simultaneously for 13 days to crack one 64-bit key! Wow!
Remember, these one million computers are working on nothing else for
this whole time, are battery backed up, and will not stop at all
during this entire 13 day process!
Return to the Beginning to This Document
Going for the Gusto: Cracking a 128-bit Key
Next, we will consider a brute force crack of a 128-bit
key. We will determine the number of Pentiums required as
well as the time required by moving from key lengths of 64-bits to
key lengths of 128-bits in increments of 10 bits. At each increment, we
will increase either the time required or the number of Pentiums required.
We will use the numbers we have developed so far, i.e., we will use
the 1,000,000 Dual Processor 3.2 Ghz Pentium 4 computers and 13 days, which
is about 0.43 of one month
to crack a 64-bit key as a basis.
How Long to Crack a 74-bit key?
Since 2^74 = 2^10 * 2^64, that would add 2^10 times more keys, or 1,024 more keys.
Thus to crack a 74-bit key in one month would take at least
1,000,000 * 1,000 = 10^9 or 430 million of our 2 Processor 3.2 Ghz Pentium 4 Systems.
How about an 84-bit key?
Next, using the same arguments, it would take 430 billion or 10^12
high-speed Pentiums at least one month to crack an 84-bit key.
Since there are about 6 billion people on the planet, this would mean that
mean that we have 7 computers for every man, woman, and child on the planet.
Of course, if we counted those who have passed, we would get a lot more
computers, but those older ones (think Commodore 64, Apple 2, TRS-80, ...) would
be much slower than the PentiumD 3.2 GHz we are using in this analysis.
At this point, we have to give up on a realistic crack of an 84-bit key in one month.
Instead, we will move to more time!
How About a 94-bit Key?
Adding 10 more bits to the key, it would take
1 quadrillion or 10^15 high-speed pentium computers to crack a
94-bit key in at least one month.
Paraphrasing what these results tell us, this tells us that all
the computers ever built, working on nothing but cracking this one
94-bit key, could maybe do the job in approximately one month.
This is a very generous assessment, but we are being generous in this
discussion.
How About a 104-bit Key?
If we add 10 more bits to the key, ie, 104 bits,
this means that
if all the computers ever built ran only this key cracking
problem for approimately 90 years (90*12 = 1080, and ten more bits
=1024) they could possibly crack the one 104-bit key.
How About a 114-bit Key?
Now, if we add 10 more bits to the key, we would now
have a 114-bit key. Using the same time argument,
we decide that it would take over
90,000 years for all the computers ever built to crack
this one 114-bit key.
To sum up, it would takes all the computers ever built
90,000 years just to crack one 114-bit key!!!
How About a 124-bit Key?
Now, with a 124-bit key, it would take 90,000,000 years
for all the computers ever built to crack the key
by brute force! Wow! Is a 124-bit Key safe?
Of course, cracking a 128-bit key would be 16 times harder, so it would only
take 1,440,000,000 years!!!
Return to the Beginning to This Document
Drawing Some Conclusions From These Discussions
- A 64-bit key is safe for information that is not
being attacked by a governmental attack, provided it only needs
to be secure for less than a year. Remember that
a governmental attack is one some millions of dollars
could be spent and a year or so of effort expended to
solve the hacking problem. In this discussion, the hacking
problem discussed is how to decrypt a message encrypted with a
64-bit symmetric key.
- A 128-bit key is computationally safe from all types
of brute force attacks. As we just discovered it would
take 1,440,000,000 0r 1.44 billion years to crack a crack a 128-bit key.
- As the recent DES hacks have shown, a 56-bit key is
just not strong enough. 64-bit keys are much better, in fact, they
are 256 times stronger!
- Because of their immunity to brute force attacks,
cryptographers are clamoring for 128-bit key algorithms
to be accepted.
- For these reasons, the US government finally liberalized
encryption standards in 2000 and 2001 to allow 128-bit encrypted information
to be legally exported.
Hopefully, we have
just demonstrated that the government in right in this case!
Return to the Beginning to This Document
How Fast is Intel Speeding up their Pentium Capability?
Intel is well known for being able to make faster CPU's in short times.
We will assume that the Pentium design is scalable and Intel will double
its CPU speed every two years. In addition, we will assume that modern
operating systems will be able to handle much more massively parallel
Intel Pentium designs. (These are very dubious assumptions, but we
are being very generous to computer performance in this article!)
In other words, we will assume that the number of Intel CPUs that
current motherboards and OS's will support will double as fast as
Intel can double the CPU speed.
Finally, we will assume that performance in massively parallel
designs is also completely linear. Completely linear means that an
8-processor box would perform twice as fast as a 4-processor box.
In the real world, linear performance is clearly not the case.
Theoretical studies have shown that a goal of an 80% speed gain
when you add a second processor is near optimum. But, as we said
before in this discussion,
we are giving everyone the benefit of the doubt!.
As examples of these types of scalability problems with current systems,
consider recent history for the Windows NT and Solaris operating systems.
Microsoft NT 3.11 came out
in 1993 with the possibility of 4 CPUs, and a theoretical limit of 32 CPUs.
In 1999, we have a number of motherboard/NT combinations with 4 CPUs,
and a few with 8 CPUs. The Windows 2000 versions support a Server
with 2, 4, and 8 CPUs, and with OEM support, 16 and 32 CPUs.
In the Unix environment, Sun's Solaris operating system came out with
2 processors in the late 80's and early 90's. Some early Sparc/Solaris
two processor designs actually ran some benchmarks slower than a
single processor version with the same OS and CPU ran them.
Now with version 8 of Solaris, Sun has 64 CPUs that can be supported!
Putting all this together, and despite what has just been noted, we are
assuming that every two years produces both a 400% increase: twice as
much CPU speed, and operating systems and motherboards that support double
the number of CPU's with have totally linear performance. Putting all
these factors together, this means that every two years, we
have a four fold increase in performance.
Using this 4x speed gain every two years, we generate the following
table, starting with our 2-processor, 3.2 Ghz Pentium 4D machine in the
year 2006. This table shows the time it will take (in various units,
as needed) to decrypt a message encrypted with a 64-bit key, considering
that each two years brings a fourfold speed increase.
Table 2: Intel CPU Speed Increase
| Year |
Time |
Time Unit |
Year |
Time |
Time Unit |
| 2006 |
367 |
Centuries |
2008 |
92 |
Centuries |
| 2010 |
24 |
Centuries |
2012 |
6 |
Centuries |
| 2014 |
1.5 |
Centuries |
2016 |
38 |
Years |
| 2018 |
10 |
Years |
2020 |
2.5 |
Years |
| 2022 |
8 |
Months |
2024 |
2 |
Months |
| 2026 |
15 |
Days |
2028 |
4 |
Days |
Return to the Beginning to This Document