DHDEMO:
    Demonstration program for Diffie-Hellman extensions to RSAREF
                            User's manual

                           RSA Laboratories
                            March 21, 1994

                             Version 2.0

    Copyright (C) 1993-4 RSA Laboratories, a division of RSA Data
                            Security, Inc.


This note describes DHDEMO, a program that demonstrates the
Diffie-Hellman part of the RSAREF cryptographic toolkit.

DHDEMO is a simple program that exercises the Diffie-Hellman
extensions to RSAREF. With DHDEMO users can perform the
Diffie-Hellman key agreements, as well as generating parameters.

DHDEMO has a main menu with four commands. The main menu is displayed
when you start up DHDEMO, and is displayed again after DHDEMO
performs a command. After you select a command DHDEMO prompts for
parameters such as file names.

DHDEMO's commands and their parameters are summarized in the
following table.


          DHDEMO COMMAND                       PARAMETERS

S - Set up key agreement        which parameters to use
  generate private value        length of private value
  compute public value          name of two files in which to save
    from private value            public, private values

C - Compute agreed-upon key     which parameters to use
  compute Diffie-Hellman        name of two files in which other
    key from private value,       party's public value, and private  
    other party's public          value are saved
    value                       name of file in which to save agreed-
                                  upon key

G - Generate parameters         length of prime in bits (16-1024)
  generate Diffie-Hellman       length of "subprime" in bits
    prime and generator         name of file in which to save
                                  parameters

Q - Quit


NOTES

  1. You select parameters by number: '1' or '2'. The first parameters
     are built in. The second is the one generated by DHDEMO's 'Generate
     parameters' command. The second parameters are not active until
     they are generated.

  2. How you specify file names to DHDEMO depends on your operating
     system. DHDEMO recognizes the special file name '-' as the
     standard output stream (typically the screen display). You can
     usually cancel an DHDEMO command by giving a blank line in
     response to a prompt for a parameter.

  3. DHDEMO reads and writes all files except the parameters file
     (which it only writes) in binary mode.

  4. If you want DHDEMO not to display the main menu or any prompts,
     put the string '-s' on the command line when you start DHDEMO.
     This is useful when DHDEMO's input stream comes from a script
     file.

  5. DHDEMO seeds RSAREF's random number generator with a fixed value.
     As a result, DHDEMO sessions with the same commands and
     parameters produce the same results. The use of a fixed seed
     value is not recommended for non-demonstration applications.

  6. Two test scripts exercise DHDEMO's commands. '512dh.in' uses
     the built-in parameters to agree on a key; the resulting files
     '512dha.key' and '512dhb.key' should match. '256dh.in' generates
     new parameters, then agrees on a key. It writes the parameters
     to the file '256dh.par'. You can compare the results against
     reference files in the 'rdemo/scripts' directory.