Internet DRAFT - draft-karn-photuris

draft-karn-photuris



HTTP/1.1 200 OK
Date: Tue, 09 Apr 2002 09:26:46 GMT
Server: Apache/1.3.20 (Unix)
Last-Modified: Tue, 11 Apr 1995 22:00:00 GMT
ETag: "323f44-f0f4-2f8afbe0"
Accept-Ranges: bytes
Content-Length: 61684
Connection: close
Content-Type: text/plain


Network Working Group                                          Phil Karn
Internet Draft                                                  Qualcomm
                                                             W A Simpson
                                                              DayDreamer
expires in six months                                         March 1995


              The Photuris Session Key Management Protocol
                       draft-karn-photuris-01.txt



Status of this Memo

   This document is a submission to the IP Security Working Group of the
   Internet Engineering Task Force (IETF).  Comments should be submitted
   to the ipsec@ans.net mailing list.

   Distribution of this memo is unlimited.

   This document is an Internet-Draft.  Internet Drafts are working
   documents of the Internet Engineering Task Force (IETF), its Areas,
   and its Working Groups.  Note that other groups may also distribute
   working documents as Internet Drafts.

   Internet Drafts are draft documents valid for a maximum of six
   months, and may be updated, replaced, or obsoleted by other documents
   at any time.  It is not appropriate to use Internet Drafts as
   reference material, or to cite them other than as a ``working draft''
   or ``work in progress.''

   To learn the current status of any Internet-Draft, please check the
   ``1id-abstracts.txt'' listing contained in the internet-drafts Shadow
   Directories on:

      ftp.is.co.za (Africa)
      nic.nordu.net (Europe)
      ds.internic.net (US East Coast)
      ftp.isi.edu (US West Coast)
      munnari.oz.au (Pacific Rim)



Abstract

   Photuris [1] is an experimental session-key management protocol
   intended for use with the IP Security Protocols (AH and ESP) in a
   point-to-point mode.



Karn & Simpson           expires in six months                  [Page i]
DRAFT                           Photuris                      March 1995


   Photuris is still in the early design stages and has not yet been
   completely specified.  It is hoped that this draft will stimulate
   discussion about the merits of the design philosophy.
















































Karn & Simpson           expires in six months                 [Page ii]
DRAFT                           Photuris                      March 1995


1.  Introduction

   The ultimate goal of Internet Security is to facilitate direct IP
   connectivity between sensitive hosts and users across the Internet.
   Users must have confidence in every Internet Security component,
   including key management.

   Users will rely on Internet Security to protect the confidentiality
   of the traffic they send across the Internet and depend on it to
   block unauthorized external access to their internal hosts and
   networks.  Without this confidence, users may erect barriers that
   impede legitimate use of the Internet, or forego the Internet
   entirely.

   Internet Security does not place any significance on easily forged IP
   Source addresses.  It relies instead on proof of possession of secret
   knowledge: that is, a cryptographic key.

   Photuris combines Diffie-Hellman key exchange with authentication to
   provide perfect forward secrecy, as defined by Diffie [2].  The
   protocol is also designed to thwart certain types of denial of
   service attacks on host resources.

   This draft assumes familiarity with the Diffie-Hellman public-key
   algorithm.  A good description can be found in [5].



1.1.  Terminology


   Initiator        The key establishment party which sends the first
                    Photuris session request.

   public/private key-pair
                    A pair of keys, one of which is publically
                    distributable, the other of which is kept secret.

   public-value     As used in this document, the publically
                    distributable value used in the D-H exchange to
                    calculate a shared-secret.

   Responder        The key establishment party which receives the first
                    Photuris session request.

   shared-secret    As used in this document, the calculated result of
                    the D-H exchange.




Karn & Simpson           expires in six months                  [Page 1]
DRAFT                           Photuris                      March 1995


   secret-key       A single key which is not publically distributable
                    and not part of a public/private key-pair.

   Security Association
                    A collection of parameters describing the security
                    relationship between two nodes.  These parameters
                    include the transform (including algorithm and
                    algorithm mode), the key(s) (such as a secret-key,
                    or appropriate public/private key-pair), and
                    possibly other information such as sensitivity
                    labelling.  For further details, see [A-SA].



1.2.  Use of Public-Key Cryptography

   Photuris is based on public-key cryptography, specifically Diffie-
   Hellman key exchange.  Exchange of D-H public-values based on
   private/secret values results in a mutual shared-secret between the
   parties.  This shared-secret can be used on its own, or to generate a
   series of session-keys for authentication and encryption of
   subsequent traffic.

   Widespread deployment and use of an Internet Security protocol is
   possible without public-key cryptography.  For example, Kerberos [6]
   can generate host-pair keys for use in Internet Security, much as it
   now generates session-keys for use by encrypted telnet and other
   "kerberized" applications.

   The Kerberos model has some widely recognized drawbacks.  Foremost is
   the requirement for a highly available on-line Key Distribution
   Center (KDC), with a database containing every principal's secret-
   key.  This carries significant security risks.

   Public-key cryptography enables decentralization.  Entities generate
   session-keys without real-time communication with any other party.



1.3.  Authentication

   It has been shown in [DOW92] that key exchange must be coupled to
   authentication.  Photuris supports the use of a variety of digital
   signature methods.

   The Photuris messages include selection of authentication algorithms,
   and facilitate the exchange of any chosen certificate type.  The DSS
   and RSA are examples of digital signatures which will provide strong



Karn & Simpson           expires in six months                  [Page 2]
DRAFT                           Photuris                      March 1995


   authentication.  Details of DSS, RSA, and other signature algorithms
   may be found in [5].



1.4.  Defense against Clogging

   Protecting sensitive data on the Internet against compromise --
   either by interception or by unauthorized access -- is necessary, but
   not sufficient.  The computing resources themselves must also be
   protected against malicious attack or sabotage.

   To grant access to authorized users regardless of location, it must
   be possible to cheaply detect and discard bogus datagrams.
   Otherwise, an attacker intent on sabotage might rapidly send
   datagrams to exhaust the host's CPU or memory resources.

   Using Internet Security authentication facilities, when a datagram
   does not pass an authentication check, it can be discarded without
   further processing.  This is easily done with manual (null) key
   management between trusted hosts at relatively little cost, given the
   speed of cryptographic hash functions compared to public-key
   algorithms.

   Unfortunately, such a trusted host will have only a fixed number of
   keys available.  The keys will tend to have long lifetimes.  This
   carries significant security risks.

   Automatic key management is necessary to generate keys between
   parties without prior arrangement.  But, there is a potential
   Achilles heel in the key management protocol.

   Because of their use of CPU-intensive operations, such as modular
   exponentiation, key management schemes based on public-key
   cryptography are vulnerable to resource clogging attacks.  Although a
   complete defense against such attacks is impossible, a simple feature
   makes them much more difficult.

   Photuris exchanges a "cookie" before initiating public-key
   operations, thwarting the saboteur from using random IP Source
   addresses.  The simple validation of this cookie uses the same level
   of resources as other Internet Security authentication mechanisms.

   This limits an attacker to methods which intercept the cookie,
   forcing the attacker to:

   1) use her own IP address,




Karn & Simpson           expires in six months                  [Page 3]
DRAFT                           Photuris                      March 1995


   2) gain access to a transmission link to a subnet whose addresses she
      appropriates, or

   3) subvert Internet routing for the same purpose.

   The first option allows the target to detect and filter out such
   attacks, and significantly increases the likelihood of identifying
   the attacker.  The latter two options are much more difficult than
   merely sending large numbers of datagrams with randomly chosen IP
   Source addresses from an arbitrary point on the Internet.

   The cookie does not protect against an observer which can copy a
   valid cookie, or an interceptor which can modify or substitute
   another cookie.  These attacks are mitigated through using time-
   variant cookies, and the elimination of receiver state during initial
   exchanges of the protocol.



1.5.  Perfect Forward Secrecy

   Many security breaches in cryptographic systems have been facilitated
   by designs which generate traffic-encrypting keys (or their
   equivalents) well before they are needed, and then keep them around
   longer than necessary.  This creates many opportunities for
   compromise, especially by insiders.  A carefully designed public-key
   system can avoid this problem.

   The rule is to avoid using any long-lived keys (such as an RSA key-
   pair) to encrypt session-keys or actual traffic.  Such keys should be
   used solely for authentication purposes.  All keys for traffic
   encryption should be randomly generated immediately before use, and
   then destroyed immediately after use, so that they cannot be
   recovered.

   Photuris uses a combination of Diffie-Hellman (for key exchange) and
   digital signature authentication, as follows:

   1.    Agree on a shared-secret using the Diffie-Hellman algorithm.

   2.    Authenticate the Diffie-Hellman exchanges with a digital
         signature algorithm, such as RSA or DSS.  This authenticates
         the parties to each other, thwarting the "man in the middle"
         active attack against Diffie-Hellman.

   When the shared-secret generated in step 1 is eventually destroyed,
   it is unrecoverable.  The generating information is not based on any
   other stored information.



Karn & Simpson           expires in six months                  [Page 4]
DRAFT                           Photuris                      March 1995


   Theft of the private/secret key used to sign the exchanges in step 2
   would allow the thief to impersonate the party in future
   conversations, but it would not decode any past traffic that might
   have been recorded.



1.6.  Traffic Anonymity

   As noted above, a fundamental role of a key management protocol is to
   verify the identities of the communicating parties to each other.
   One would often like to deny this information to an eavesdropper,
   especially when this would reveal the location of a user.  Although
   each datagram carries a cleartext IP Destination address, the
   ultimate destination could be hidden by "laundering" it through an
   encrypted tunnel.

   A user's IP Source address could be hidden in the same manner.  If
   the address has been dynamically allocated, it provides no useful
   information to an eavesdropper.

   This leaves the identifying authentication information that the user
   sends during key exchange.  The identification can be easily
   protected in the Photuris protocol by encrypting the digital
   signature exchanges with the key just established with Diffie-
   Hellman.  This keeps a passive eavesdropper from learning the
   identities of the parties by intercepting possible exchanges of
   public keys and certificates, or by checking the signatures against a
   known database of public keys.

   The scheme is not foolproof.  By posing as the Responder, an active
   attacker could trick the Initiator into revealing her identity.
   However, this active attack is considerably more difficult than
   passive vacuum-cleaner monitoring.  Unless the attacker can steal the
   private/secret key belonging to the Responsder, the Initiator will
   discover the deception when checking the digital signature of the key
   exchange.



1.7.  Security Parameters

   In addition to the key(s) used to encrypt, decrypt or authenticate
   the payload, the key management mechanism is used to determine a
   number of parameters for each Security Association between the
   communicating parties.  This includes the particular authentication
   and/or encryption transforms.




Karn & Simpson           expires in six months                  [Page 5]
DRAFT                           Photuris                      March 1995


   The key management implementation usually maintains a table
   containing the several parameters for each current Security
   Association.  The implementation needs to access that security
   parameter table to determine how to process each datagram.

   The Security Parameters Index (SPI) is assigned by the entity
   controlling the IP Destination address.  A session between two
   parties will normally have two SPI values (one in each direction).
   The parties use the combination of SPI and IP Destination to
   distinguish the correct association.

   The selection mechanism used for the SPI is implementation dependent.
   However, selection of a random value can help prevent attacks which
   depend on a predicatable sequence of values.

   To provide protection against an interceptor which can modify or
   substitute another SPI, the SPI is used in creating a separate
   session-key in each direction.  While alteration of the SPI will
   interrupt communication, the attacker will gain no additional
   information.



1.8.  Multicast Support

   Key management is more difficult in a multicast environment.

   Senders to a multicast group may share common a Security Parameters
   Index, if all communications are using the same security
   configuration parameters.  In this case, the receiver only knows that
   the message came from a node knowing the SPI for the group, and
   cannot authenticate which member of the group sent the datagram.

   Multicast groups may also use a separate SPI value for each Source.
   If each sender is keyed separately and asymmetric algorithms are
   used, data origin authentication is also provided.

      A given Destination is not necessarily in control of the selection
      process.  In the case of multicast groups, a single node or
      cooperating subset of the multicast group may work on behalf of
      the entire group to set up a Security Association.

   The author is also open to suggestions on how multicast capability
   might be added to Photuris, without compromising its fundamental
   features.






Karn & Simpson           expires in six months                  [Page 6]
DRAFT                           Photuris                      March 1995


2.  Protocol Description

   The Photuris protocol consists of several simple phases:

   1.    A "cookie" exchange to guard against simple flooding attacks
         with bogus IP Source addresses.

   2.    A Diffie-Hellman exchange to establish a session-key for
         conventional authentication or encryption.

   3.    An exchange of digital signatures on the Diffie-Hellman
         messages that were sent in phase 2, to verify their integrity
         and the identities of the two parties.  This exchange may be
         encrypted to protect the privacy of the parties.

   4.    Once an initial Security Association has been established,
         regular operation of the Internet Security protocol begins
         encryption and/or authentication of user datagrams.

   5.    Additional messages may be exchanged to periodically change the
         session-key and to establish new security parameters.

   Either party may initiate a session at any time.  For example, the
   Initiator need not be a "caller" in a telephony link.

   The Initiator is responsible for recovering from all message losses
   by retransmission.  The Responder remains stateless until a session-
   key has been created.  Once the session-key calculation has been
   initiated, the Responder cooperates in creating a second
   serendipitous session-key, in order to save the effort of another
   round of key establishment in the other direction.

   When both parties initiate Photuris key establishment concurrently,
   or one party initiates more than one Photuris session, the UDP Ports
   keep the sessions separate.  This results in more than one SPI for
   each Destination.  There is no requirement that all such SPIs be
   used.  The sender chooses the SPI for each transmission.

   Old SPI simply expires after a short period of time (typically 30
   seconds), and is purged sometime later (typically 10 minutes).
   LifeTimes are implementation dependent.

   Should an expired SPI (which is not yet purged) arrive from an IP
   Source, a new COOKIE_REQUEST is sent, and the Photuris exchange
   begins again.






Karn & Simpson           expires in six months                  [Page 7]
DRAFT                           Photuris                      March 1995


   Implementation Notes:

      To provide user-oriented keying, or create multiple Security
      Associations with different parameters, the sender can initiate
      multiple Photuris exchanges.

      It is the responsibility of the sender to assign and segregate the
      different session-keys.

      The Destination SHOULD be capable of maintaining multiple SPI
      values for each Source.



2.1.  UDP

   All Photuris messages use the User Datagram Protocol header [RFC-
   768].  The Initiator sends to UDP Destination Port <tbd>.  The
   Responder reverses the IP Source and Destination, and the UDP Source
   and Destination Ports.

   The UDP checksum is required.  Any message with an incorrect or zero
   UDP checksum is silently discarded.



2.2.  Variable Precision Numbers

   Many of the message fields require a value which may vary in the
   number of bits.  These bits may not make up an integral number of
   octets.  Each variable precision number is composed of two parts.

   Size             2 octets.  Number of bits used in the value.  Always
                    transmitted most significant octet first.

   Value            variable.  The bits used are right justified and
                    zero filled on octet boundaries; that is, any unused
                    bits are in the most significant octet.  Always
                    transmitted most significant octet first.



2.3.  Transforms

   Whether authenticating or encrypting, selection among several
   different transforms is needed to enable future implementation
   changes without affecting the basic protocol.  Each party specifies a
   list of the transforms supported.



Karn & Simpson           expires in six months                  [Page 8]
DRAFT                           Photuris                      March 1995


   The list includes authentication, encryption, and signature types.
   These are mixed in the same list for simplicity.  The implementation
   can easily distinguish between the separate uses of each supported
   type.

   This is not a "negotiation".  The Destination indicates what
   facilities it supports in order of preference, and the Source selects
   from that list.

   Each party selects an authentication function from the list of
   mechanisms supported by the other party.  Authentication policy is in
   the receiver direction.  Only the receiver can determine that
   arriving traffic is authentic.  It indicates its need for
   authentication by including authentication transforms, and/or
   authenticated encryption transforms, in its transform list.  It
   enforces the authentication through the simple expedient of dropping
   all datagrams that don't arrive with authentication.

   Each party additionally selects an encryption mode (if any) according
   to its own local policy database.  Encryption policy is in the
   transmitter direction.  Only the sender knows whether each datagram
   needs privacy protection.  If no, it picks an authentication-only
   algorithm SPI.  If yes, it picks an encryption algorithm SPI.

   Note that the authentication, encryption and signature mechanisms, as
   well as the encapsulation mode (if any), need not be the same in both
   directions.

   Up-to-date values for the Transform are specified in the most recent
   "Assigned Numbers" [RFC-1700].  Initial values are assigned as
   follows:

                                           Transforms
                                           K   INR   S
     0     Administratively Configured     +    +    +
     1     SHA                             +    +    +
     2     MD2                             +    +    +
     3     unassigned
     4     MD4                             +    +    +
     5*    MD5                             +    +    +
     6     RSA                                       +
     7     DSS                                       +
     8     PGP certificate                           +
     9     X.509 certificate                         +
    10     DNS-SIG certificate                       +
    11     unassigned
    12     RC2                                  +
    13     unassigned



Karn & Simpson           expires in six months                  [Page 9]
DRAFT                           Photuris                      March 1995


    14     RC4                                  +
    15     IDEA                                 +
    16     DES-CBC, 0-bit IV                    +
    17*    DES-CBC, 32-bit IV                   +
    18*    DES-CBC, 64-bit IV                   +
    19     unassigned
    20     Triple DES-CBC, 0-bit IV             +
    21     Triple DES-CBC, 32-bit IV            +
    22     Triple DES-CBC, 64-bit IV            +
    24     unassigned

      *    (implementation required)



2.4.  Modular Exponentiation Groups

   The original Diffie-Hellman technique specified modular
   exponentiation.  A public-value is generated using a generator (g),
   raised to a private/secret exponent (x), modulo a prime (p).

      (g**x) mod p

   When two of these public-values are exchanged between parties, the
   parties can calculate a shared-secret value between themselves.

   Each modular exponentiation prime (p) must have the property that
   both p and (p-1)/2 are prime.  A small set of such recommended strong
   primes for use as Photuris moduli are specified.

   The modulus-index takes the form of a small index into a well-known
   table (see "Group Table" Appendix).  Since only the first few indices
   will be published, the remaining values may be used by cooperating
   parties to indicate private moduli.

   Use of a very limited number of moduli (preferably one) has one minor
   and two very significant advantages:

   Overhead

      Avoiding the overhead of sending the full modulus.

   Prime and Generator Pair Selection

      Discovery of strong primes is extremely computationally intensive,
      and practically impossible for commercially available processors
      to find in a reasonable interactive time.  Thus, the primes used
      will be well-known, and embedded in the implementations.



Karn & Simpson           expires in six months                 [Page 10]
DRAFT                           Photuris                      March 1995


      The generator (g) should be chosen such that the secret exponents
      will generate all possible public exponential values, evenly
      distributed throughout the range, without cycling through a
      smaller subset.  Such a generator is called a "primitive root"
      (which is trivial to find when p is strong) [!!! reference].

      When the strong prime and generator pair are well chosen, the
      difficulty of a discrete log attack is maximized.  By choosing the
      pairs in advance, thorough analysis of the pair characteristics is
      possible.  This analysis can promote confidence in the security of
      the implementations.

   Precomputation

      Each party can precompute the D-H public-value.

      A background process can periodically destroy the old values,
      generate a new random secret exponent, and recalculate the
      public-value.  This limits the exposure of both the secret
      exponenent and shared-secret, as past secrets are not kept for
      possible discovery by a future intrusion, protecting earlier
      communications.  Also, the secret exponent currently in use is
      less likely to be anticipated, as the element of random timing is
      introduced.

      Since these operations involve several time-consuming modular
      exponentiations, moving them to the "background" substantially
      speeds up the apparent execution speed of the Photuris protocol.
      It also reduces CPU loading sufficiently to allow a single
      public/private key-pair to be used in several closely spaced
      Photuris executions, when setting up Security Associations with
      several different hosts over a short period of time.

      Other precomputation suggestions are described in [w].



2.5.  Elliptic Curve Groups

   The points on an elliptic curve form a group under addition CITE[x].
   This group can be used as the basis for the efficient implementation
   of the Diffie-Hellman operations.  In order to uniquely specify the
   computation, the implementor must know the finite field for
   representation of the point coordinates, the elliptic curve, and the
   generator.

   Note that while the literature uses the term "addition" for the group
   operation, it is directly analogous to "multiplication" in modular



Karn & Simpson           expires in six months                 [Page 11]
DRAFT                           Photuris                      March 1995


   exponentiation groups.  Thus, the analogous term for "g**r" is "r*g"
   (that is, the scalar multiple r of g).

   The generator is specified as the (x,y) coordinates of an elliptic
   curve point, and the representation of x and y is given with respect
   to a finite field.  Multiples of the generator are (x,y) pairs.
   Thus, the Initiator and Responder D-H public-values are to be
   interpreted as two concatenated bit values in the order (x,y).  The
   lengths of the numbers are implicit in the specification of the
   field.

   The field representation is uniquely determined by the irreducible
   polynomial specified in the group description.

   The elliptic curve addition formulas are more complicated than
   straight-forward component-wise addition, and the use of finite
   fields further complicates the description of the algorithms.  A good
   reference for a succinct description of elliptic curves with finite
   fields is CITE[y]; a more general treatment can be found in CITE[y].
   (same cite ???)

   Use of a very limited number of fields has similar advantages to
   those cited for modular exponentiation: reduced overhead, generator
   selection, and precomputation of the public-values.



























Karn & Simpson           expires in six months                 [Page 12]
DRAFT                           Photuris                      March 1995


3.  Cookie Exchange

3.1.  Cookie Request

   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Type      |                   Reserved                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           Reserved                            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   ~                       Initiator-Cookie                        ~
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Groups ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-


   Type             0

   Reserved         Unused.  Zero filled.

   Initiator-Cookie  16 octets.  A randomized value which identifies the
                    exchange.

   Groups           variable.  A list of one or more groups supported by
                    the Responder, in order of preference (see "Group
                    Table" Appendix).  Each value is one octet.  The end
                    of the list is indicated by the Length of the UDP
                    datagram.

   The Initiator initializes local state, and sends a COOKIE_REQUEST
   message to the Responder.

   The Initiator also starts a retransmission timer.  If no
   COOKIE_RESPONSE is obtained within the time limit, a new
   COOKIE_REQUEST is retransmitted.  The I-Cookie value in each
   successive request SHOULD be different.














Karn & Simpson           expires in six months                 [Page 13]
DRAFT                           Photuris                      March 1995


3.2.  Cookie Response

   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Type      |  Group-Index  |           Reserved            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           Reserved                            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   ~                       Initiator-Cookie                        ~
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   ~                       Responder-Cookie                        ~
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   ~                     Responder-Public-Value                    ~
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Transforms ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-


   Type             1

   Group-Index      A Responder selected value which indicates which
                    group will be used for the exchange (see "Group
                    Table" Appendix).

   Reserved         Unused.  Zero filled.

   Initiator-Cookie  16 octets.  Copied from the COOKIE_REQUEST.

   Responder-Cookie  16 octets.  A randomized value which identifies the
                    exchange.

   Responder-Public-Value
                    variable precision number.  The format is indicated
                    by the Group-Index.  Must not be zero or one.

   Transforms       variable.  A list of one or more transforms
                    supported by the Responder, in order of preference.
                    Each value is one octet.  The end of the list is
                    indicated by the Length of the UDP datagram.

   On receipt of a COOKIE_REQUEST, the Responder generates a cookie, and
   returns it in a COOKIE_RESPONSE message.  The R-Cookie value in each
   successive response MAY be different.



Karn & Simpson           expires in six months                 [Page 14]
DRAFT                           Photuris                      March 1995


   When too many SPI values are already in use, the COOKIE_REQUEST Is
   ignored.

   Note that the Responder creates no state at this time.



3.3.  Cookie Generation

   The exact method by which a Photuris party generates a cookie is
   implementation dependent.  The function chosen must satisfy some
   basic requirements:

   1.    The cookie must depend on the specific parties.  This prevents
         an attacker from obtaining a cookie using a real IP address and
         UDP port, and then using it to swamp the victim with Diffie-
         Hellman requests from randomly chosen IP addresses or ports.

   2.    It must not be possible for anyone other than the issuing
         entity to generate cookies that will be accepted by that
         entity.  This implies that the issuing entity must use local
         secret information in the generation and subsequent
         verification of a cookie.  It must not be possible to deduce
         this secret information from any particular cookie.

   3.    The cookie generation function must be fast to thwart attacks
         intended to sabotage CPU resources.

   A recommended method is to calculate a fast cryptographic one-way
   hash function (such as MD5) over the IP Source and Destination
   addresses, the UDP Source and Destination ports, and a locally
   generated secret random value.  An incoming cookie can be verified at
   any time by regenerating it locally from values contained in the
   incoming IP datagram and the local secret random value.

   When an old (or invalid) cookie is detected by the Initiator, the
   message is silently discarded.

   When an old (or invalid) cookie is detected by the Responder, it is
   indicated to the Initiator in an ERROR_MESSAGE, which begins the
   Photuris exchange again from the COOKIE_REQUEST.

   Implementation Notes:

      The Initiator secret random value which affects the cookie SHOULD
      change for each new COOKIE_REQUEST, and is thereafter cached on a
      Responder basis.  This provides improved synchronization and
      protection against replay attacks.



Karn & Simpson           expires in six months                 [Page 15]
DRAFT                           Photuris                      March 1995


      The Responder secret random value is changed whenever the
      Responder D-H public-value is changed, in order to detect changes
      between COOKIE_RESPONSE and KEY_REQUEST.
















































Karn & Simpson           expires in six months                 [Page 16]
DRAFT                           Photuris                      March 1995


4.  Security Parameter Exchange

4.1.  Key Request

   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Type      |  I-Transform  |         I-Parameters          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |               Initiator-Security-Parameter-Index              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   ~                       Initiator-Cookie                        ~
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   ~                       Responder-Cookie                        ~
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           LifeTime                            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   ~                     Initiator-Public-Value                    ~
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Transforms ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-


   Type             2

   I-Transform      An authentication or encryption transform selected
                    by the Initiator from the list of Transforms in the
                    COOKIE_RESPONSE.

   I-Parameters     The format and contents of this field are specific
                    to the I-Transform chosen.  The formats are detailed
                    in the transform specifications.  Common transform
                    formats are included in the "Transform Parameters"
                    Appendix.

   Initiator-Security-Parameter-Index (I-SPI)
                    The SPI to be used for communicating with the
                    Initiator.

   Initiator-Cookie  16 octets.  Copied from the COOKIE_RESPONSE.

   Responder-Cookie  16 octets.  Copied from the COOKIE_RESPONSE.

   LifeTime         The number of seconds remaining before the I-SPI



Karn & Simpson           expires in six months                 [Page 17]
DRAFT                           Photuris                      March 1995


                    expires.

   Initiator-Public-Value
                    variable precision number.  The format is indicated
                    by the Group-Index in the COOKIE_RESPONSE.  Must not
                    be zero or one.

   Transforms       variable.  A list of one or more transforms
                    supported by the Initiator, in order of preference.
                    Each value is one octet.  The end of the list is
                    indicated by the Length of the UDP datagram.

   On receipt of a COOKIE_RESPONSE, the Initiator validates the
   Initiator-Cookie.  Invalid messages are silently discarded.

   When a valid COOKIE_RESPONSE has been received, a KEY_REQUEST is
   sent.  Later COOKIE_RESPONSES between the same parties are silently
   discarded, until a new COOKIE_REQUEST is sent.

   The Initiator also starts a retransmission timer.  If no KEY_RESPONSE
   is obtained within the time limit, the same KEY_REQUEST is
   retransmitted.

   Implementation Notes:

      At this time, the Initiator can begin calculation of the D-H
      shared-secret.  This may take a substantial amount of time.  The
      implementor should ensure that retransmission is not blocked by
      this calculation.  Typically, this is not a problem, as
      retransmission timeouts exceed calculation time.





















Karn & Simpson           expires in six months                 [Page 18]
DRAFT                           Photuris                      March 1995


4.2.  Key Response

   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Type      |  R-Transform  |         R-Parameters          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |               Responder-Security-Parameter-Index              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   ~                       Initiator-Cookie                        ~
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   ~                       Responder-Cookie                        ~
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           LifeTime                            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    Reserved   |  K-Transform  |         K-Parameters          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


   Type             3

   R-Transform      An authentication or encryption transform selected
                    by the Responder from the list of Transforms in the
                    KEY_REQUEST.

   R-Parameters     The format and contents of this field are specific
                    to the R-Transform chosen.  The formats are detailed
                    in the transform specifications.  Common transform
                    formats are included in the "Transform Parameters"
                    Appendix.

   Responder-Security-Parameter-Index (R-SPI)
                    The SPI to be used for communicating with the
                    Responder.

   Initiator-Cookie  16 octets.  Copied from the KEY_REQUEST.

   Responder-Cookie  16 octets.  Copied from the KEY_REQUEST.

   LifeTime         The number of seconds remaining before the R-SPI
                    expires.

   Reserved         Unused.  Zero filled.

   K-Transform      A cryptographic hash function selected by the
                    Responder from the intersection of the two lists of



Karn & Simpson           expires in six months                 [Page 19]
DRAFT                           Photuris                      March 1995


                    Transforms, which is used to calculate the session-
                    key.  This transform is not necessarily the same as
                    either SPI Transform in use.

   K-Parameters     The format and contents of this field are specific
                    to the K-Transform chosen.  Common transform formats
                    are included in the "Transform Parameters" Appendix.

   On receipt of a KEY_REQUEST, the Responder validates the Responder-
   Cookie.  Invalid messages are silently discarded.

   The Responder keeps a copy of the incoming KEY_REQUEST message, and
   its KEY_RESPONSE message.  If a duplicate KEY_REQUEST is received, it
   merely resends the previous KEY_RESPONSE message, and takes no
   further action.

   Implementation Notes:

      At this time, the Responder begins calculation of the D-H shared-
      secret.  This may take a substantial amount of time.  The
      implementor should ensure that retransmission is not blocked by
      this calculation.  Typically, this is not a problem, as
      retransmission timeouts exceed calculation time.



4.3.  Session-Key Computation

   Each session-key is the K-Transform cryptographic hash of the the
   computed D-H shared-secret, followed by (concatenated with) the SPI,
   followed by (concatenated with) the remote party (SPI owner) Cookie
   followed by (concatenated with) the local party Cookie.  Since the
   SPI is likely to be different in each direction, and the order of the
   Cookies is different in each direction, the resulting session-key
   will usually be different in each direction.

   Both the Initiator and Responder use the resulting SPI session-keys
   to authenticate or encrypt subsequent messages, including the
   SIGNATURE_MESSAGE, REKEY_MESSAGE, and new instantiations of the
   Photuris exchange between the same nodes.

   Implementation Notes:

      Calculation of the D-H shared-secret by the Initiator and
      Responder is executed in parallel to minimize delay.

      The D-H public-values and resulting shared-secret SHOULD be cached
      for the LifeTime of the SPI.  When multiple Photuris exchanges



Karn & Simpson           expires in six months                 [Page 20]
DRAFT                           Photuris                      March 1995


      occur between the same parties, and the public-values are
      discovered to be unchanged, the cached shared-secret can be used
      to rapidly generate new session-keys.

      Note that the Cookie order is reversed when calculating the
      Responder session-key.



4.4.  Random Number Generation

   The security of Diffie-Hellman depends critically on the quality of
   the secret random numbers generated by each party.  A poor random
   number generator at either party will compromise the shared-secret
   produced by the algorithm.

   Generating cryptographic quality random numbers on a general purpose
   computer without hardware assistance is a very tricky problem.  In
   general, this requires using a cryptographic hash function to
   "distill" the entropy from a large number of semi-random external
   events, such as the timing of key strokes.  An excellent discussion
   can be found in [4].



4.5.  Secret D-H Components

   There is surprisingly little guidance in the literature about how
   large the randomly chosen secret exponent in Diffie-Hellman should
   be.  The size of this exponent dramatically affects the speed of both
   modular exponentiations involved in Diffie-Hellman.

   The exponent 0 will generate the public value 1, and exponent 1 will
   generate the public value g mod p.  These exponents do not qualify as
   secret.  In general, small secret exponent values should not be used.

   Therefore, it is desirable to use the smallest random exponent that
   is consistent with good security.  The most conservative advice
   received to date [3] is to make the random exponent twice as long as
   the intended session-key.  This ensures that any space/time "meet in
   the middle" attack on the discrete logarithm problem will be at least
   as complex as a brute-force search on the resulting session-key
   space.

   Implementation Notes:

      A single modular exponentiation on a 486-66DX2 processor using
      RSAREF and Borland C under MS-DOS took 20 seconds with a 1024-bit



Karn & Simpson           expires in six months                 [Page 21]
DRAFT                           Photuris                      March 1995


      prime modulus and a 1024-bit random exponent.  This dropped to
      about 1 to 1.5 seconds when the random exponent was shortened to
      128 bits, with the same 1024-bit modulus.

      The size of the exponent is entirely implementation dependent, is
      unknown to the other party, and can be easily changed.













































Karn & Simpson           expires in six months                 [Page 22]
DRAFT                           Photuris                      March 1995


5.  Signature Exchange

5.1.  Signature Message

   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Type      |  S-Transform  |         S-Parameters          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           Reserved                            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   ~                       Initiator-Cookie                        ~
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   ~                       Responder-Cookie                        ~
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   ~                           Signature                           ~
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   ~                          Certificate                          ~
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


   Type             4

   S-Transform      An authentication or certificate transform selected
                    from the list of Transforms sent by the peer, which
                    is used to calculate the Signature.  This transform
                    is not necessarily the same as any SPI Transform in
                    use.

   S-Parameters     The format and contents of this field are specific
                    to the transform chosen.  Common transform formats
                    are included in the "Transform Parameters" Appendix.

   Reserved         Unused.  Zero filled.

   Initiator-Cookie  16 octets.  Copied from the KEY_REQUEST.

   Responder-Cookie  16 octets.  Copied from the KEY_REQUEST.

   Signature        variable precision number.  The indicated S-
                    Transform is calculated over the SPI session-key for
                    this direction, followed by (concatenated with) the



Karn & Simpson           expires in six months                 [Page 23]
DRAFT                           Photuris                      March 1995


                    remote party (SPI owner) Public-Value, followed by
                    (concatenated with) the local party Public-Value,
                    and optionally followed by (concatenated with) an
                    identifying public-key, certificate, or
                    distinguishing name of the local party.

                    Note that the order of the Public-Values is
                    different in each direction.

   Certificate      variable precision number.  The presence or absence
                    of this field is indicated by the Length of the UDP
                    datagram.

                    When the S-Transform indicates a certification
                    method, such as X.509, PGP or DNS-SIG, the
                    certificate is always included.

   When the Initiator completes its parallel computation of the D-H
   shared-secret, and upon receipt of a valid KEY_RESPONSE, it sends a
   SIGNATURE_MESSAGE to the Responder.  This message is required to be
   authenticated or encrypted, using the R-SPI Transform indicated in
   the KEY_RESPONSE.

   The Initiator also starts a retransmission timer.  If no
   SIGNATURE_MESSAGE is obtained within the time limit, the same
   SIGNATURE_MESSAGE is retransmitted.

   When the Responder completes its parallel computation of the D-H
   shared-secret, and upon receipt of a valid SIGNATURE_MESSAGE, it
   sends a SIGNATURE_MESSAGE to the Initiator.  This message is required
   to be authenticated or encrypted, using the I-SPI Transform indicated
   in the KEY_REQUEST.

   The Responder keeps a copy of its SIGNATURE_MESSAGE.  If a duplicate
   SIGNATURE_MESSAGE is received, it merely resends the previous
   SIGNATURE_MESSAGE, and takes no further action.



5.2.  Signature Verification

   The two parties now verify the signatures received.  If they fail,
   the users are notified, and the Security Association is destroyed.
   If they succeed, normal operation begins with the encryption and/or
   authentication of user datagrams.

   Each party implements local policy that determines what access, if
   any, is granted to the holder of a particular certification.



Karn & Simpson           expires in six months                 [Page 24]
DRAFT                           Photuris                      March 1995


   Implementation Notes:

      Any encrypted and/or authenticated user datagrams received before
      the completion of signature verification can be placed on a queue
      pending completion of this step.  If the verification succeeds,
      the queue is processed as though the datagrams had arrived
      subsequent to the verification.  If the verification fails, the
      queue is discarded.

      Early implementations may wish to keep their own trusted public-
      key databases, such as the Pretty Good Privacy web of trust, and
      accept only those users found there.







































Karn & Simpson           expires in six months                 [Page 25]
DRAFT                           Photuris                      March 1995


6.  Other Message Types

6.1.  Re-Key Message

   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Type      |  N-Transform  |         N-Parameters          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                   Security-Parameter-Index                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   ~                       Initiator-Cookie                        ~
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   ~                       Responder-Cookie                        ~
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           LifeTime                            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


   Type             5

   N-Transform      An authentication or encryption transform selected
                    from the list of Transforms sent by the peer, which
                    is used for the new SPI.  This transform is not
                    necessarily the same as any SPI Transform in use.

   N-Parameters     The format and contents of this field are specific
                    to the N-Transform chosen.  Common transform formats
                    are included in the "Transform Parameters" Appendix.

   Security-Parameter-Index
                    The SPI to be used for incoming communications.
                    This value is required to be different from existing
                    SPI values.  The value zero indicates all old SPIs
                    for this IP Destination.

   Initiator-Cookie  16 octets.  Copied from the KEY_REQUEST.

   Responder-Cookie  16 octets.  Copied from the KEY_REQUEST.

   LifeTime         The number of seconds remaining before the SPI
                    expires.  A value of zero indicates deletion of the
                    indicated SPI.

   At any time after the validation of signatures, either party can send
   a REKEY_MESSAGE.  The message has effect only in one direction.



Karn & Simpson           expires in six months                 [Page 26]
DRAFT                           Photuris                      March 1995


   When too many SPI values are already in use, an ERROR_MESSAGE is
   sent.

   No retransmission timer is necessary.  Success of the re-keying is
   indicated by the peer use of the new SPI.  Failure will be indicated
   at expiration of the old SPI, which begins the Photuris exchange
   again from the COOKIE_REQUEST.

   This message is required to be authenticated or encrypted.

   The new session-key is calculated in the same fashion as described
   previously.  The resulting session-key will be different because the
   SPI value is different.  Since the cached D-H shared-secret remains
   the same, no new exponentiation is needed.





































Karn & Simpson           expires in six months                 [Page 27]
DRAFT                           Photuris                      March 1995


6.2.  Error Message

   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Type      |     Code      |           Reserved            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           Reserved                            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   ~                       Initiator-Cookie                        ~
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   ~                       Responder-Cookie                        ~
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


   Type             7

   Code             Indicates the problem:

                      0   reserved
                      1   invalid/expired cookie
                      2   too many concurrent key requests


   Reserved         Unused.  Zero filled.

   Initiator-Cookie  16 octets.  Copied from the offending message.

   Responder-Cookie  16 octets.  Copied from the offending message.

   Issued in response to Photuris state loss or other problems.  The
   message has effect only in one direction.

   No retransmission timer is necessary.

   This message is not required to be authenticated or encrypted.













Karn & Simpson           expires in six months                 [Page 28]
DRAFT                           Photuris                      March 1995


A.  Group Table

   Although these groups are suggested for use in this protocol,
   cooperating installations might use additional groups.

   (1)   Implementation Required.  A 1024-bit strong prime (p),
         expressed in hex:

         a478 8e21 84b8 d68b fe02 690e 4dbe 485b
         17a8 0bc5 f21d 680f 1a84 1313 9734 f7f2
         b0db 4e25 3750 018a ad9e 86d4 9b60 04bb
         bcf0 51f5 2fcb 66d0 c5fc a63f bfe6 3417
         3485 bbbf 7642 e9df 9c74 b85b 6855 e942
         13b8 c2d8 9162 abef f434 2435 0e96 be41
         edd4 2de9 9a69 6163 8c1d ac59 8bc9 0da0
         69b5 0c41 4d8e b865 2adc ff4a 270d 567f

         The recommended generator (g) for this prime is 5.

         This prime was randomly generated by a freely available program
         written by the author.

   (2)   Implementation Optional.  Elliptic curve:

         curve: y^2 + xy = x^3 + 0x7338F
         generator: (0x7B, 0x1C8)
         irreducible polynomial: u^155 + u^62 + 1

         Supplied by Hilarie Orman <ho@cs.arizona.edu>.

   (129) Moduli-indices of 129 to 254 are available for private use.



B.  Transform Parameters

B.1.  (Triple) DES-CBC

B.2.  MD5

   There are no parameters.  The Parameters field may be any (preferably
   random) value on transmission, and will be ignored on receipt.









Karn & Simpson           expires in six months                 [Page 29]
DRAFT                           Photuris                      March 1995


Security Considerations

   Security issues are the topic of this memo.



Acknowledgements

   This protocol has many elements in common with the Station-To-Station
   authentication protocol, described in [DOW92].

   Hilarie Orman provided text regarding elliptic curves, and extensive
   review of the protocol details.

   Paul C van Oorschot suggested signing both the public exponents and
   the session-key, in order to provide an authentication-only version
   of signature verification.

   Randall Atkinson, Cheryl Madson, James Hughes, and Perry Metzger
   provided useful critiques of earlier versions of this document.

   Thanks to Bill Simpson for his protocol suggestions, editorial
   changes and NROFF formatting.  All such mistakes are his
   responsibity.



References

   [1]  "Photuris" is the latin name for the firefly. "Firefly" is in
        turn the name for NSA's (classified) key exchange protocol for
        the STU- III secure telephone.  Informed speculation has it that
        Firefly is based on very similar design principles.

   [2]  Whitfield Diffie, "Authenticated Key Exchange and Secure
        Interactive Communication", Northern Telecom, Securicom '90,
        Paris France, 16 March 1990.

   [3]  Martin Hellman, personal communication.

   [4]  Eastlake, Crocker & Schiller, "Randomness Requirements for
        Security", work in progress.

   [5]  Bruce Schneier, "Applied Cryptography", ISBN 0- 471-59756-2.



Karn & Simpson           expires in six months                 [Page 30]
DRAFT                           Photuris                      March 1995


   [6]      Kerberos?

   [A-SA]   Randall Atkinson, "Security Architecture for the Internet
            Protocol", work in progress.

   [DOW92]  Whitfield Diffie, Paul C van Oorshot, Michael J Wiener,
            "Authentication and Authenticated Key Exchanges", Designs,
            Codes and Cryptography, v 2 pp 107-125, Kluwer Academic
            Publishers, 1992.

   [w]      E. Brickell, D. Gordon, K. McCurley, and D. Wilson, "Fast
            Exponentiation with Precomputation (Extended Abstract)",
            Advances in Cryptology -- EUROCRYPT '92, Lecture Notes in
            Computer Science, 658 (1993), Springer-Verlag, 200-207.

   [x]      Alfred J. Menezes, "Elliptic Curve Public Key
            Cryptosystems", Kluwer Academic Publishers, 1993.

   [y]      Alfred J. Menezes, Minghua Qu, and Scott A. Vanstone,
            "Standard for RSA, Diffie-Hellman and Related Public Key
            Cryptography", Working Draft of IEEE P1363 Standard, Oct.
            30, 1994. http://www.rsa.com/pub/p1363/draft/



Author's Address

   Questions about this memo can also be directed to:

      Phil Karn
      Qualcomm, Inc.
      6455 Lusk Blvd.
      San Diego, California  92121-2779

      karn@qualcomm.com
      karn@unix.ka9q.ampr.org


      William Allen Simpson
      Daydreamer
      Computer Systems Consulting Services
      1384 Fontaine
      Madison Heights, Michigan  48071

      Bill.Simpson@um.cc.umich.edu
          bsimpson@MorningStar.com



Karn & Simpson           expires in six months                 [Page 31]