[FAFNER Home][RSA130 Home][Personal Home][Hall of Fame][Sign Up][Start Sieving][Help!?]

RSA130: GETTING STARTED WITH FAFNER


This is a very brief overview of the software we're using to crack RSA-130. Please follow the embedded hyperlinks for more details.

Thanks for reading -- we need your help!


--- Contents ---

  1. The Primary Components
  2. How It All Fits Together
  3. How You Can Help


  1. The Primary Components

    FAFNER
    FAFNER is a collection of Perl scripts, HTML pages, and associated documentation which together comprise the "server-side" of the Web factoring effort. The FAFNER software doesn't actually make any progress towards factoring RSA130; rather, it provides interactive registration, task assignment, and solution database services to sieving clients. (More Details)

    GNFS (General Number Field Sieve)
    The GNFS client package implements the sieving algorithms that converts a task specification into a set of useful results (called "relations"). GNFS is implemented in C, and has been ported to most Unix environments. GNFS performs relatively little I/O, does not use the network, and has large (but configurable and constant for an entire run) memory requirements. This makes it a good code to run on idle workstations, because it is almost entirely CPU-bound. GNFS is the original sieving client, but it executes exactly one task specified on its command line, and is not network-aware. (More Details)

    GNFSD (General Number Field Sieving Daemon)
    GNFSD is an augmented sieving client (also written in C) that allows a GNFS process to interact with a "task server" over the net, rather than requiring task specification on the GNFS command line. Other key features are automatic failure detection and restart via a watchdog timer, persistent configuration state, and a TCP/IP monitor interface at port 5453. (More Details)

  2. How It All Fits Together

    The FAFNER servers (which are just big collections of Web pages) are hierarchical; that is, there's a root server (at Cooperating Systems), plus several major subservers (at Boston University, Syracuse University, and elsewhere). Each of these subservers in turn has subservers, and so forth.

    A FAFNER subserver depends on its parent for sieving tasks. The tasks given out by the root server are large indeed (hundreds of thousands or millions of Q-values). As they pass from subserver to subserver, they are broken up into smaller and smaller bites. By the time they are handed out to clients, there may be as few as 100 Q-values per task.

    The sieving clients (GNFS or GNFSD processes) are the leaves of the FAFNER tree; they get a single task from a FAFNER server, and then spend anywhere from 15 minutes to several days chewing on the problem (depending on the speed of the machine used and the size of the task). When the answers are ready (in the form of a text file containing a few hundred or a few thousand relations), the clients send them back to their FAFNER server. There, they are distilled, archived, and ultimately sent back to Bellcore, where they are integrated into the final solution -- the factoring of RSA130.

  3. How You Can Help

    There are three ways you can directly help the RSA130 factoring effort, depending on what kinds of underutilized machines you have lying around and how dirty you want to get your hands. return to the tutorial index,
  4. go straight to the place where you can grab a client and start sieving!

    Questions, comments to factor-help@cooperate.com. Script last modified 8 Jun 109.