Brute force searches in cryptography

Keshava P Subramanya
keshava@cs.ucsb.edu

Introduction:

Brute-force search or exhaustive search is a trivial but very general problem-solving technique, that consists of systematically enumerating all possible candidates for the solution and checking whether each candidate satisfies the problem's statement. The main disadvantage of the brute-force method is that, for many real-world problems, the number of natural candidates is prohibitively large. The DES secret key encryption algorithm uses a key that is 56 bits, or seven characters long. At the time it was believed that trying out all 72,057,594,037,927,936 possible keys (a seven with 16 zeros) would be impossible because computers could not possibly ever become fast enough. In 1998 the Electronic Frontier Foundation (EFF) built a special-purpose machine that could decrypt a message by trying out all possible keys in less than three days. The machine cost less than $250,000 and searched over 88 billion keys per second. Today, with the introduction of  Parallel computers and distributed problem solving, the paradigm of Brute force searches in cryptography has dramatically transformed. Distributed.net, the subject of this work, is one such distributed service which aims at using the idle time of millions of PC's to solve more and more ambitious problems of decryption.

Distributed.net:

The objective of distributed.net is to deploy software to form an immense, globally distributed computer that solves large-scale problems and provides an accessible pool of computational power to projects that need it. This deployment also aims at  demonstrating the real-world utility of both distributed computing in general and for their software in particular. Currently the problems that are being solved by distributed.net are as follows.
  1. RC5-72:

    Having successfully completed RC5-56 and RC5-64, Distributed.net is  now working on the 72-bit variant of this encryption algorithm.

  2. Optimal 25 Mark Golomb Rulers:

    Essentially, a Golomb Ruler is a mathematical term given to a set of whole numbers where no two pairs of numbers have the same difference. An Optimal Golomb Ruler (OGR) is just like an everyday ruler, except that the marks are placed so that no two pairs of marks measure the same distance. OGR's have many uses in the real world.

Comment about this project:

  1. How well did the application achieve its scientific / engineering objective? Are simulation results compared to physical results?

    Since this is a distributed problem solver and has succesfully solved RC5-56 and RC5-64, we can conclude that it has done this task pretty well. Further, it has won the key challenge which proves that this model has worked well and they were the first to be able to do this.
  2. What type of parallel platform was the application developed for? (distributed vs. shared memory, vector, etc.) What tools were used to build the application? (languages, libraries)

    This used the distributed approch. The code base was almost exclusively in C++ which helped in porting it to almost all popular platforms. LibC is the library of choice.
  3. If the application is run on a major supercomputer, where does that computer rank on the Top 500 list?

    This is not on the Top500 list.
  4. How well did the application perform? How does this compare to the platform's best possible performance?

Cryptography

    * RSA Lab's 56-bit RC5 Encryption Challenge — Completed 19 October 1997 (after 250 days and 47% of the key space tested).
    * RSA Lab's 56-bit DES II-1 Encryption Challenge — Completed 24 February 1998 (after 39 days)
    * RSA Lab's 56-bit DES II-2 Encryption Challenge — Ended 17 July 1998 (found independently by EFF's Deep Crack custom DES cracker after 2.5 days)
    * RSA Lab's 56-bit DES-III Encryption Challenge — Completed 19 January 1999 (after 22.5 hours with the help of EFF's Deep Crack custom DES cracker)
    * CS-Cipher Challenge — Completed 16 January 2000 (after 60 days and 98% of the key space tested).

By the details above, one could say that the application performed very well.


Screenshot

DN



Latest Statistics:


Aggregate Statistics

Total Blocks to Search: 68,719,476,736
Total Blocks Tested: 61,250,810,321
Overall Rate: 394 Blocks/sec
Total Keys to Search: 18,446,744,073,709,552,000
Total Keys Tested: 16,441,889,198,887,142,000
Overall Rate: 105,722,024,170 Keys/sec
Percent Complete: 89.132%
Time Working: 1,800 days


Project Progress Meter:


Current Information:

38,850,941 Blocks were completed yesterday (0.056536% of the keyspace)(0.517494% of the remaining keyspace)
at a sustained rate of 450 Blocks/sec.

10,428,970,063,364,096 Keys were completed yesterday (0.056536% of the keyspace)(0.517494% of the remaining keyspace)
at a sustained rate of 120,705,672,030 Keys/sec.

The odds are 1 in 192 that we will wrap this thing
up in the next 24 hours. (This also means that we'll
hit 100% in 192 days at yesterday's rate.)

There have been 331,464 participants
since the beginning of this project.
25,739 of them were active yesterday
and of those, 26 were brand-new participants.

There are 12,645 registered teams.
3,697 of them submitted work units yesterday.
(0 of them are brand new!)

References:

  1.  RC5-72 project page. distributed.net.
  2.  OGR project page. distributed.net.
  3. "Macho Computing at Root of RSA Contest Flap", Wired, 1997-03-03.
  4.  distributed.net History & Timeline. distributed.net.
  5. distributed.net completes rc5-64 project list announcement (txt). distributed.net (2002-09-26).
  6.  What's with all the cows?. distributed.net.
  7. RC5-72 / CPU Participation. distributed.net.
  8. Plan entry by Greg Hewgill (2004-11-01).