home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / drafts / draft_ietf_j_p / draft-ietf-otp-01.txt < prev    next >
Text File  |  1997-03-19  |  54KB  |  1,276 lines

  1. INTERNET DRAFT                                             Neil Haller
  2. draft-ietf-otp-01.txt                                         Bellcore
  3. March 24, 1997                                              Craig Metz
  4.                                             Kaman Sciences Corporation
  5.                                                          Philip Nesser
  6.                                             Nesser & Nesser Consulting
  7.                                                             Mike Straw
  8.                                                               Bellcore
  9.  
  10.  
  11.                       A One-Time Password System
  12.  
  13.  
  14. STATUS OF THIS MEMO
  15.  
  16.   This document is an Internet Draft. Internet Drafts are working
  17.   documents of the Internet Engineering Task Force (IETF), its Areas
  18.   and Working Groups. Note that other groups may also distribute
  19.   working documents as Internet Drafts.
  20.  
  21.   Internet Drafts are draft documents valid for a maximum of six
  22.   months. Drafts may be updated, replaced, or obsoleted by other
  23.   documents at any time. It is not appropriate to use Internet Drafts
  24.   as reference material or to cite them other than as a "working
  25.   draft" or "work in progress."
  26.  
  27.   To learn the current status of any Internet Draft, please check the
  28.   1id-abstracts.txt listing contained in the Internet-Drafts Shadow
  29.   Directories on ftp.is.co.za (Africa), ds.internic.net (US East
  30.   Coast), nic.nordu.net (Europe), ftp.isi.com (US West Coast), or
  31.   munnari.oz.au (Pacific Rim).
  32.  
  33.   The distribution of this Internet Draft is unlimited. It is filed as
  34.   <draft-ietf-otp-01.txt> and it expires on October 1, 1997.
  35.  
  36. 1.0 ABSTRACT
  37.  
  38.   This document describes a one-time password authentication system
  39.   (OTP). The system provides authentication for system access (login)
  40.   and other applications requiring authentication that is secure
  41.   against passive attacks based on replaying captured reusable
  42.   passwords. OTP evolved from the S/KEY* One-Time Password System that
  43.   was released by Bellcore and is described in references [3] and [5].
  44.  
  45. 2.0 OVERVIEW
  46.  
  47.   One form of attack on networked computing systems is eavesdropping
  48.   on network connections to obtain authentication information such as
  49.   the login IDs and passwords of legitimate users. Once this
  50.   information is captured, it can be used at a later time to gain
  51.  
  52. ---------
  53.  *   S/KEY is a trademark of Bellcore
  54.  
  55.  
  56.  
  57. Haller, Metz, Nesser, & Straw                                 [Page 1]
  58.  
  59. INTERNET DRAFT        A One Time Password System        March 24, 1997
  60.  
  61.  
  62.   to the system. One-time password systems are designed to counter
  63.   this type of attack, called a "replay attack" [4].
  64.  
  65.   The authentication system described in this document uses a secret
  66.   pass-phrase to generate a sequence of one-time (single use)
  67.   passwords.  With this system, the user's secret pass-phrase never
  68.   needs to cross the network at any time such as during authentication
  69.   or during pass-phrase changes. Thus, it is not vulnerable to replay
  70.   attacks.  Added security is provided by the property that no secret
  71.   information need be stored on any system, including the server being
  72.   protected.
  73.  
  74.   The OTP system protects against external passive attacks against the
  75.   authentication subsystem. It does not prevent a network eavesdropper
  76.   from gaining access to private information and does not provide
  77.   protection against either "social engineering" or active attacks
  78.   [9].
  79.  
  80. 3.0 INTRODUCTION
  81.  
  82.   There are two entities in the operation of the OTP one-time password
  83.   system. The generator must produce the appropriate one-time password
  84.   from the user's secret pass-phrase and from information provided in
  85.   the challenge from the server. The server must send a challenge that
  86.   includes the appropriate generation parameters to the generator,
  87.   must verify the one-time password received, must store the last
  88.   valid one-time password it received, and must store the
  89.   corresponding one-time password sequence number. The server must
  90.   also facilitate the changing of the user's secret pass-phrase in a
  91.   secure manner.
  92.  
  93.   The OTP system generator passes the user's secret pass-phrase, along
  94.   with a seed received from the server as part of the challenge,
  95.   through multiple iterations of a secure hash function to produce a
  96.   one-time password. After each successful authentication, the number
  97.   of secure hash function iterations is reduced by one.  Thus, a
  98.   unique sequence of passwords is generated.  The server verifies the
  99.   one-time password received from the generator by computing the
  100.   secure hash function once and comparing the result with the
  101.   previously accepted one-time password.  This technique was first
  102.   suggested by Leslie Lamport [1].
  103.  
  104. 4.0 REQUIREMENTS TERMINOLOGY
  105.  
  106.   In this document, the words that are used to define the significance
  107.   of each particular requirement are usually capitalized.  These words
  108.   are:
  109.  
  110.     - MUST
  111.  
  112.       This word or the adjective "REQUIRED" means that the item is an
  113.  
  114.  
  115. Haller, Metz, Nesser, & Straw                                 [Page 2]
  116.  
  117. INTERNET DRAFT        A One Time Password System        March 24, 1997
  118.  
  119.  
  120.       requirement of the specification.
  121.  
  122.  
  123.  
  124.     - SHOULD
  125.  
  126.       This word or the adjective "RECOMMENDED" means that there might
  127.       exist valid reasons in particular circumstances to ignore this
  128.       item, but the full implications should be understood and the
  129.       case carefully weighed before taking a different course.
  130.  
  131.     - MAY
  132.  
  133.       This word or the adjective "OPTIONAL" means that this item is
  134.       truly optional.  One vendor might choose to include the item
  135.       because a particular marketplace requires it or because it
  136.       enhances the product, for example; another vendor may omit the
  137.       same item.
  138.  
  139. 5.0 SECURE HASH FUNCTION
  140.  
  141.   The security of the OTP system is based on the non-invertability of
  142.   a secure hash function. Such a function must be tractable to compute
  143.   in the forward direction, but computationally infeasible to invert.
  144.  
  145.   The interfaces are currently defined for three such hash algorithms,
  146.   MD4 [2] and MD5 [6] by Ronald Rivest, and SHA [7] by NIST.  All
  147.   conforming implementations of both server and generators MUST
  148.   support MD5.  They SHOULD support SHA and MAY also support MD4.
  149.   Clearly, the generator and server must use the same algorithm in
  150.   order to interoperate. Other hash algorithms may be specified for
  151.   use with this system by publishing the appropriate interfaces.
  152.  
  153.   The secure hash algorithms listed above have the property that they
  154.   accept an input that is arbitrarily long and produce a fixed size
  155.   output. The OTP system folds this output to 64 bits using the
  156.   algorithms in the Appendix A. 64 bits is also the length of the
  157.   one-time passwords. This is believed to be long enough to be secure
  158.   and short enough to be entered manually (see below, Form of Output)
  159.   when necessary.
  160.  
  161. 6.0 GENERATION OF ONE-TIME PASSWORDS
  162.  
  163.   This section describes the generation of the one-time passwords.
  164.   This process consists of an initial step in which all inputs are
  165.   combined, a computation step where the secure hash function is
  166.   applied a specified number of times, and an output function where
  167.   the 64 bit one-time password is converted to a human readable form.
  168.  
  169.   Appendix C contains examples of the outputs given a collection of
  170.   inputs.  It provides implementors with a means of verification the
  171.  
  172.  
  173. Haller, Metz, Nesser, & Straw                                 [Page 3]
  174.  
  175. INTERNET DRAFT        A One Time Password System        March 24, 1997
  176.  
  177.  
  178.   of these algorithms.
  179.  
  180.   Initial Step
  181.  
  182.   In principle, the user's secret pass-phrase may be of any length. To
  183.   reduce the risk from techniques such as exhaustive search or
  184.   dictionary attacks, character string pass-phrases MUST contain at
  185.   least 10 characters (see Form of Inputs below).  All implementations
  186.   MUST support a pass-phrases of at least 63 characters.  The secret
  187.   pass-phrase is frequently, but is not required to be, textual
  188.   information provided by a user.
  189.  
  190.   In this step, the pass phrase is concatenated with a seed that is
  191.   transmitted from the server in clear text. This non-secret seed
  192.   allows clients to use the same secret pass-phrase on multiple
  193.   machines (using different seeds) and to safely recycle their secret
  194.   pass-phrases by changing the seed.
  195.  
  196.   The result of the concatenation is passed through the secure hash
  197.   function and then is reduced to 64 bits using one of the function
  198.   dependent algorithms shown in Appendix A.
  199.  
  200.   Computation Step
  201.  
  202.   A sequence of one-time passwords is produced by applying the secure
  203.   hash function multiple times to the output of the initial step
  204.   (called S). That is, the first one-time password to be used is
  205.   produced by passing S through the secure hash function a number of
  206.   times (N) specified by the user. The next one-time password to be
  207.   used is generated by passing S though the secure hash function N-1
  208.   times. An eavesdropper who has monitored the transmission of a one-
  209.   time password would not be able to generate the next required
  210.   password because doing so would mean inverting the hash function.
  211.  
  212.   Form of Inputs
  213.  
  214.   The secret pass-phrase is seen only by the OTP generator. To allow
  215.   interchangeability of generators, all generators MUST support a
  216.   secret pass-phrase of 10 to 63 characters. Implementations MAY
  217.   support a longer pass-phrase, but such implementations risk the loss
  218.   of interchangeability with implementations supporting only the
  219.   minimum.
  220.  
  221.   The seed MUST consist of purely alphanumeric characters and MUST be
  222.   of one to 16 characters in length. The seed is a string of
  223.   characters that MUST not contain any blanks and SHOULD consist of
  224.   strictly alphanumeric characters from the ISO-646 Invariant Code
  225.   Set.  The seed MUST be case insensitive and MUST be internally
  226.   converted to lower case before it is processed.
  227.  
  228.   The sequence number and seed together constitute a larger unit of
  229.  
  230.  
  231. Haller, Metz, Nesser, & Straw                                 [Page 4]
  232.  
  233. INTERNET DRAFT        A One Time Password System        March 24, 1997
  234.  
  235.  
  236.   called the challenge. The challenge gives the generator the
  237.   parameters it needs to calculate the correct one-time password from
  238.   the secret pass-phrase. The challenge MUST be in a standard syntax
  239.   so that automated generators can recognize the challenge in context
  240.   and extract these parameters. The syntax of the challenge is:
  241.  
  242.           otp-<algorithm identifier> <sequence integer> <seed>
  243.  
  244.   The three tokens MUST be separated by a white space (defined as any
  245.   number of spaces and/or tabs) and the entire challenge string MUST
  246.   be terminated with either a space or a new line. The string "otp-"
  247.   MUST be in lower case.  The algorithm identifier is case sensitive
  248.   (the existing identifiers are all lower case), and the seed is case
  249.   insensitive and converted before use to lower case.  If additional
  250.   algorithms are defined, appropriate identifiers (short, but not
  251.   limited to three or four characters) must be defined. The currently
  252.   defined algorithm identifiers are:
  253.  
  254.       md4        MD4 Message Digest
  255.       md5        MD5 Message Digest
  256.       sha1       NIST Secure Hash Algorithm Revision 1
  257.  
  258.     An example of an OTP challenge is:   otp-md5 487 dog2
  259.  
  260.     Form of Output
  261.  
  262.     The one-time password generated by the above procedure is 64 bits
  263.     in length. Entering a 64 bit number is a difficult and error prone
  264.     process. Some generators insert this password into the input
  265.     stream and some others make it available for system "cut and
  266.     paste." Still other arrangements require the one-time password to
  267.     be entered manually. The OTP system is designed to facilitate this
  268.     manual entry without impeding automatic methods. The one-time
  269.     password therefore MAY be converted to, and all servers MUST be
  270.     capable of accepting it as, a sequence of six short (1 to 4
  271.     letter) easily typed words that only use characters from ISO-646
  272.     IVCS. Each word is chosen from a dictionary of 2048 words; at 11
  273.     bits per word, all one-time passwords may be encoded.
  274.  
  275.     The two extra bits in this encoding are used to store a checksum.
  276.     The 64 bits of key are broken down into pairs of bits, then these
  277.     pairs are summed together. The two least significant bits of this
  278.     sum are encoded in the last two bits of the six word sequence with
  279.     the least significant bit of the sum as the last bit encoded. All
  280.     OTP generators MUST calculate this checksum and all OTP servers
  281.     MUST verify this checksum explicitly as part of the operation of
  282.     decoding this representation of the one-time password.
  283.  
  284.     Generators that produce the six-word format MUST present the words
  285.     in upper case with single spaces used as separators. All servers
  286.     MUST accept six-word format without regard to case and white space
  287.  
  288.  
  289. Haller, Metz, Nesser, & Straw                                 [Page 5]
  290.  
  291. INTERNET DRAFT        A One Time Password System        March 24, 1997
  292.  
  293.  
  294.     as a separator. The two lines below represent the same one-time
  295.     password.  The first is valid as output from a generator and as
  296.     input a server, the second is valid only as human input to a
  297.     server.
  298.  
  299.           OUST COAT FOAL MUG BEAK TOTE
  300.           oust coat foal  mug  beak  tote
  301.  
  302.     Interoperability requires that all OTP servers and generators use
  303.     the same dictionary. The standard dictionary was originally
  304.     specified in the "S/KEY One Time Password System" that is
  305.     described in RFC 1760 [5].  This dictionary is included in this
  306.     document as Appendix D.
  307.  
  308.     To facilitate the implementation of smaller generators,
  309.     hexadecimal output is an acceptable alternative for the
  310.     presentation of the one-time password. All implementations of the
  311.     server software MUST accept case-insensitive hexadecimal as well
  312.     as six-word format. The hexadecimal digits may be separated by
  313.     white space so servers are REQUIRED to ignore all white space.  If
  314.     the representation is partitioned by white space, leading zeros
  315.     must be retained. Examples of hexadecimal format are:
  316.  
  317.          Representation                Value
  318.  
  319.          3503785b369cda8b              0x3503785b369cda8b
  320.          e5cc a1b8 7c13 096b           0xe5cca1b87c13096b
  321.          C7 48 90 F4 27 7B A1 CF       0xc74890f4277ba1cf
  322.          47 9 A68 28 4C 9D 0 1BC       0x479a68284c9d01bc
  323.  
  324.   In addition to accepting six-word and hexadecimal encodings of the
  325.   64 bit one-time password, servers SHOULD accept the alternate
  326.   dictionary encoding described in Appendix B.  The six words in this
  327.   encoding MUST not overlap the set of words in the standard
  328.   dictionary.  To avoid ambiguity with the hexadecimal representation,
  329.   words in the alternate dictionary MUST not be comprised solely of
  330.   the letters A-F.  Decoding words thus encoded does not require any
  331.   knowledge of the alternative dictionary used so the acceptance of
  332.   any alternate dictionary implies the acceptance of all alternate
  333.   dictionaries.  Words in the alternative dictionaries are case
  334.   sensitive.  Generators and servers MUST preserve the case in the
  335.   processing of these words.
  336.  
  337.   In summary, all conforming servers MUST accept six-word input that
  338.   uses the Standard Dictionary (RFC 1760 and Appendix D), MUST accept
  339.   hexadecimal encoding, and SHOULD accept six-word input that uses the
  340.   Alternative Dictionary technique (Appendix B).  As there is a remote
  341.   possibility that a hexadecimal encoding of a one-time password will
  342.   look like a valid six-word standard dictionary encoding, all
  343.   implementations MUST use the following scheme.  If a six-word
  344.   encoded one-time password is valid, it is accepted.  Otherwise, if
  345.  
  346.  
  347. Haller, Metz, Nesser, & Straw                                 [Page 6]
  348.  
  349. INTERNET DRAFT        A One Time Password System        March 24, 1997
  350.  
  351.  
  352.   one-time password can be interpreted as hexadecimal, and with that
  353.   decoding it is valid, then it is accepted.
  354.  
  355. 7.0 VERIFICATION OF ONE-TIME PASSWORDS
  356.  
  357.   An application on the server system that requires OTP authentication
  358.   is expected to issue an OTP challenge as described above. Given the
  359.   parameters from this challenge and the secret pass-phrase, the
  360.   generator can compute (or lookup) the one-time password that is
  361.   passed to the server to be verified.
  362.  
  363.   The server system has a database containing, for each user, the
  364.   one-time password from the last successful authentication or the
  365.   first OTP of a newly initialized sequence. To authenticate the user,
  366.   the server decodes the one-time password received from the generator
  367.   into a 64-bit key and then runs this key through the secure hash
  368.   function once. If the result of this operation matches the stored
  369.   previous OTP, the authentication is successful and the accepted
  370.   one-time password is stored for future use.
  371.  
  372. 8.0 PASS-PHRASE CHANGES
  373.  
  374.   Because the number of hash function applications executed by the
  375.   generator decreases by one each time, at some point the user must
  376.   reinitialize the system or be unable to authenticate.
  377.  
  378.   Although some installations may not permit users to initialize
  379.   remotely, implementations MUST provide a means to do so that does
  380.   not reveal the user's secret pass-phrase.  One way is to provide a
  381.   means to reinitialize the  sequence through explicit specification
  382.   of the first one-time password.
  383.  
  384.   When the sequence of one-time passwords is reinitialized,
  385.   implementations MUST verify that the seed or the pass-phrase is
  386.   changed.  Installations SHOULD discourage any operation that sends
  387.   the secret pass-phrase over a network in clear-text as such practice
  388.   defeats the concept of a one-time password.
  389.  
  390.   Implementations MAY use the following technique for
  391.   [re]initialization:
  392.  
  393.     o  The user picks a new seed and hash count (default values may
  394.        be offered).  The user provides these, along with the
  395.        corresponding generated one-time password, to the host system.
  396.  
  397.     o  The user MAY also provide the corresponding generated one
  398.        time password for count-1 as an error check.
  399.  
  400.     o  The user SHOULD provide the generated one-time password for
  401.        the old seed and old hash count to protect an idle terminal
  402.        or workstation (this implies that when the count is 1, the
  403.  
  404.  
  405. Haller, Metz, Nesser, & Straw                                 [Page 7]
  406.  
  407. INTERNET DRAFT        A One Time Password System        March 24, 1997
  408.  
  409.  
  410.        user can login but cannot then change the seed or count).
  411.  
  412.   In the future a specific protocol may be defined for
  413.   reinitialization that will permit smooth and possibly automated
  414.   interoperation of all hosts and generators.
  415.  
  416. 9.0 PROTECTION AGAINST RACE ATTACK
  417.  
  418.   All conforming server implementations MUST protect against the race
  419.   condition described in this section.  A defense against this attack
  420.   is outlined; implementations MAY use this approach or MAY select an
  421.   alternative defense.
  422.  
  423.   It is possible for an attacker to listen to most of a one-time
  424.   password, guess the remainder, and then race the legitimate user to
  425.   complete the authentication.  Multiple guesses against the last word
  426.   of the six-word format are likely to succeed.
  427.  
  428.   One possible defense is to prevent a user from starting multiple
  429.   simultaneous authentication sessions. This means that once the
  430.   legitimate user has initiated authentication, an attacker would be
  431.   blocked until the first authentication process has completed.  In
  432.   this approach, a timeout is necessary to thwart a denial of service
  433.   attack.
  434.  
  435. 10.0 SECURITY CONSIDERATIONS
  436.  
  437.   This entire document discusses an authentication system that
  438.   improves security by limiting the danger of eavesdropping/replay
  439.   attacks that have been used against simple password systems [4].
  440.  
  441.   The use of the OTP system only provides protections against passive
  442.   eavesdropping/replay attacks.  It does not provide for the privacy
  443.   of transmitted data, and it does not provide protection against
  444.   active attacks such as session hijacking that are known to be
  445.   present in the current Internet [9].  The use of IP Security
  446.   (IPsec), see [10], [11], and [12] is recommended to protect against
  447.   TCP session hijacking.
  448.  
  449.   The success of the OTP system to protect host systems is dependent
  450.   on the non-invertability of the secure hash functions used.  To our
  451.   knowledge, none of the hash algorithms have been broken, but it is
  452.   generally believed [6] that MD4 is not as strong as MD5.  If a
  453.   server supports multiple hash algorithms, it is only as secure as
  454.   the weakest algorithm.
  455.  
  456. 11.0 ACKNOWLEDGMENTS
  457.  
  458.   The idea behind OTP authentication was first proposed by Leslie
  459.   Lamport [1]. Bellcore's S/KEY system, from which OTP is derived, was
  460.   proposed by Phil Karn, who also wrote most of the Bellcore reference
  461.  
  462.  
  463. Haller, Metz, Nesser, & Straw                                 [Page 8]
  464.  
  465. INTERNET DRAFT        A One Time Password System        March 24, 1997
  466.  
  467.  
  468.  
  469. 12.0 REFERENCES
  470.  
  471.   [1]  Leslie Lamport, "Password Authentication with Insecure
  472.        Communication", Communications of the ACM 24.11 (November
  473.        1981), 770-772
  474.  
  475.   [2]  R. L. Rivest, The MD4 Message-Digest Algorithm, "Request For
  476.        Comments (RFC) 1320", MIT and RSA Data Security, Inc., April
  477.        1992
  478.  
  479.   [3]  Neil Haller, "The S/KEY One-Time Password System", Proceedings
  480.        of the ISOC Symposium on Network and Distributed System
  481.        Security, February 1994, San Diego, CA
  482.  
  483.   [4]  Neil Haller & Ran Atkinson, On Internet Authentication,
  484.        "Request for Comments (RFC) 1704", Bellcore and Naval Research
  485.        Laboratory, October 1994
  486.  
  487.   [5]  Neil Haller, The S/KEY One-Time Password System, "Request for
  488.        Comments (RFC) 1760", Bellcore, February 1995
  489.  
  490.   [6]  R. L. Rivest, The MD5 Message-Digest Algorithm, "Request For
  491.        Comments (RFC) 1321", MIT and RSA Data Security, Inc., April
  492.        1992
  493.  
  494.   [7]  National Institute of Standards and Technology (NIST),
  495.        "Announcing the Secure Hash Standard", FIPS 180-1, U.S.
  496.        Department of Commerce, April 1995.
  497.  
  498.   [8]  International Standard - Information Processing -- ISO 7-bit
  499.        coded character set for information interchange (Invariant Code
  500.        Set), ISO-646, International Standards Organization, Geneva,
  501.        Switzerland, 1983
  502.  
  503.   [9]  Computer Emergency Response Team (CERT), "IP Spoofing and
  504.        Hijacked Terminal Connections", CA-95:01, January 1995.
  505.        Available via anonymous ftp from info.cert.org in
  506.        /pub/cert_advisories.
  507.  
  508.   [10] R. Atkinson, Security Architecture for the Internet Protocol,
  509.        "Request for Comments (RFC) 1825", Naval Research Laboratory,
  510.        August 1995
  511.  
  512.   [11] R. Atkinson, IP Authentication Header, "Request for Comments
  513.        (RFC) 1826", Naval Research Laboratory, August 1995
  514.  
  515.   [12] R. Atkinson, IP Encapsulating Security Payload (ESP), "Request
  516.        for Comments (RFC) 1827", Naval Research Laboratory, August
  517.        1995
  518.  
  519.  
  520.  
  521. Haller, Metz, Nesser, & Straw                                 [Page 9]
  522.  
  523. INTERNET DRAFT        A One Time Password System        March 24, 1997
  524.  
  525.  
  526.  
  527. 13.0 AUTHOR'S ADDRESS
  528.  
  529.   Neil Haller
  530.   Bellcore
  531.   MCC 1C-265B
  532.   445 South Street
  533.   Morristown, NJ, 07960-6438, USA
  534.  
  535.   Phone: +1 201 829-4478
  536.   Fax:   +1 201 829-2504
  537.   Email: nmh@bellcore.com
  538.  
  539.  
  540.   Craig Metz
  541.   Kaman Sciences Corporation
  542.   For NRL Code 5544
  543.   4555 Overlook Avenue, S.W.
  544.   Washington, DC, 20375-5337, USA
  545.  
  546.   Phone: +1 202 404-7122
  547.   Fax:   +1 202 404-7942
  548.   Email: cmetz@cs.nrl.navy.mil
  549.  
  550.  
  551.   Philip J. Nesser II
  552.   Nesser & Nesser Consulting
  553.   13501 100th Ave NE
  554.   Suite 5202
  555.   Kirkland, WA 98034, USA
  556.  
  557.   Phone: +1 206 481 4303
  558.   Email: pjnesser@martigny.ai.mit.edu
  559.  
  560.  
  561.   Mike Straw
  562.   Bellcore
  563.   RRC 1A-225
  564.   445 Hoes Lane
  565.   Piscataway, NJ 08854-4182
  566.  
  567.   Phone:  +1 908 699-5212
  568.   Email:  mess@bellcore.com
  569.  
  570.  
  571.  
  572.  
  573.  
  574.  
  575.  
  576.  
  577.  
  578.  
  579. Haller, Metz, Nesser, & Straw                                [Page 10]
  580.  
  581. INTERNET DRAFT        A One Time Password System        March 24, 1997
  582.  
  583.  
  584.          Appendix A  -  Interfaces to Secure Hash Algorithms
  585.  
  586.  
  587. Original interoperability tests provided valuable insights into the
  588. subtle problems which occur when converting protocol specifications
  589. into running code.  In particular, the manipulation of bit ordered
  590. data is dependent on the architecture of the hardware, specifically
  591. the way in which a computer stores multi-byte data.  The method is
  592. typically called big or little "endian."  A big endian machine stores
  593. data with the most significant bit (msb) first, while a little endian
  594. machine stores the least significant bit (lsb) first.  Thus, on a big
  595. endian machine data is stored left to right, while little endian
  596. machines store data right to left.
  597.  
  598. For example, the four byte value 0x11AABBCC is stored in a big endian
  599. machine as the following series of four bytes, "0x11", "0xAA", "0xBB",
  600. and "0xCC", while on a little endian machine the value would be stored
  601. as "0xCC", "0xBB", "0xAA", and "0x11".
  602.  
  603. For historical reasons, and to promote interoperability with existing
  604. implementations, it was decided that ALL hashes incorporated into the
  605. OTP protocol MUST store the output of their hash function in LITTLE
  606. ENDIAN format BEFORE the bit folding to 64 bits occurs.  This is done
  607. in the implementations of MD4 and MD5 (see references [2] and [6]),
  608. while it must be explicitly done for the implementation of SHA1 (see
  609. reference [7]).
  610.  
  611. Any future hash functions implemented into the OTP protocol SHOULD
  612. provide a similar reference fragment of code to allow independent
  613. implementations to operate successfully.
  614.  
  615.  
  616. MD4 Message Digest (see reference [2])
  617.  
  618.           MD4_CTX md;
  619.           unsigned char result[16];
  620.  
  621.           strcpy(buf, seed);     /* seed must be in lower case */
  622.           strcat(buf, passwd);
  623.           MD4Init(&md);
  624.           MD4Update(&md, (unsigned char *)buf, strlen(buf));
  625.           MD4Final(result, &md);
  626.  
  627.           /* Fold the 128 bit result to 64 bits */
  628.           for (i = 0; i < 8; i++)
  629.                   result[i] ^= result[i+8];
  630.  
  631. MD5 Message Digest (see reference [6])
  632.  
  633.           MD5_CTX md;
  634.           unsigned char result[16];
  635.  
  636.  
  637. Haller, Metz, Nesser, & Straw                                [Page 11]
  638.  
  639. INTERNET DRAFT        A One Time Password System        March 24, 1997
  640.  
  641.  
  642.  
  643.           strcpy(buf, seed);     /* seed must be in lower case */
  644.           strcat(buf, passwd);
  645.           MD5Init(&md);
  646.           MD5Update(&md, (unsigned char *)buf, strlen(buf));
  647.           MD5Final(result, &md);
  648.  
  649.           /* Fold the 128 bit result to 64 bits */
  650.           for (i = 0; i < 8; i++)
  651.                   result[i] ^= result[i+8];
  652.  
  653.  
  654. SHA Secure Hash Algorithm (see reference [7])
  655.  
  656.           SHA_INFO sha;
  657.           unsigned char result[16];
  658.           strcpy(buf, seed);     /* seed must be in lower case */
  659.           strcat(buf, passwd);
  660.           sha_init(&sha);
  661.           sha_update(&sha, (unsigned char *)buf, strlen(buf));
  662.           sha_final(&sha);       /* NOTE:  no result buffer */
  663.  
  664.           /* Fold the 160 bit result to 64 bits */
  665.           sha.digest[0] ^= sha.digest[2];
  666.           sha.digest[1] ^= sha.digest[3];
  667.           sha.digest[0] ^= sha.digest[4];
  668.  
  669.           /*
  670.            * copy the resulting 64 bits to the result buffer in little endian
  671.            * fashion (analogous to the way MD4Final() and MD5Final() do).
  672.            */
  673.           for (i = 0, j = 0; j < 8; i++, j += 4)
  674.           {
  675.                   result[j]   = (unsigned char)(sha.digest[i] & 0xff);
  676.                   result[j+1] = (unsigned char)((sha.digest[i] >> 8) & 0xff);
  677.                   result[j+2] = (unsigned char)((sha.digest[i] >> 16) & 0xff);
  678.                   result[j+3] = (unsigned char)((sha.digest[i] >> 24) & 0xff);
  679.           }
  680.  
  681.  
  682.  
  683.  
  684.  
  685.  
  686.  
  687.  
  688.  
  689.  
  690.  
  691.  
  692.  
  693.  
  694.  
  695. Haller, Metz, Nesser, & Straw                                [Page 12]
  696.  
  697. INTERNET DRAFT        A One Time Password System        March 24, 1997
  698.  
  699.  
  700.           Appendix B   -   Alternative Dictionary Algorithm
  701.  
  702.  
  703. The purpose of alternative dictionary encoding of the OTP one-time
  704. password is to allow the use of language specific or friendly words.
  705. As case translation is not always well defined, the alternative
  706. dictionary encoding is case sensitive.  Servers SHOULD accept this
  707. encoding in addition to the standard 6-word and hexadecimal encodings.
  708.  
  709.  
  710. GENERATOR ENCODING USING AN ALTERNATE DICTIONARY
  711.  
  712.   The standard 6-word encoding uses the placement of a word in the
  713.   dictionary to represent an 11-bit number. The 64-bit one-time
  714.   password can then be represented by six words.
  715.  
  716.   An alternative dictionary of 2048 words may be created such that
  717.   each word W and position of the word in the dictionary N obey the
  718.   relationship:
  719.  
  720.           alg( W ) % 2048 == N
  721.   where
  722.           alg is the hash algorithm used (e.g. MD4, MD5, SHA1).
  723.  
  724.   In addition, no words in the standard dictionary may be chosen.
  725.  
  726.   The generator expands the 64-bit one-time password to 66 bits by
  727.   computing parity as with the standard 6-word encoding.  The six 11-
  728.   bit numbers are then converted to words using the dictionary that
  729.   was created such that the above relationship holds.
  730.  
  731.  
  732. SERVER DECODING OF ALTERNATE DICTIONARY ONE-TIME PASSWORDS
  733.  
  734.   The server accepting alternative dictionary encoding converts each
  735.   word to an 11-bit number using the above encoding. These numbers are
  736.   then used in the same way as the decoded standard dictionary words
  737.   to form the 66-bit one-time password.
  738.  
  739.   The server does not need to have access to the alternate dictionary
  740.   that was used to create the one-time password it is authenticating.
  741.   This is because the decoding from word to 11-bit number does not
  742.   make any use of the dictionary.  As a result of the independence of
  743.   the dictionary, a server accepting one alternate dictionary accept
  744.   all alternate dictionaries.
  745.  
  746.  
  747.  
  748.  
  749.  
  750.  
  751.  
  752.  
  753. Haller, Metz, Nesser, & Straw                                [Page 13]
  754.  
  755. INTERNET DRAFT        A One Time Password System        March 24, 1997
  756.  
  757.  
  758.                Appendix C  -  OTP Verification Examples
  759.  
  760.  
  761. This appendix provides a series of inputs and correct outputs for all
  762. three of the defined OTP cryptographic hashes, specifically MD4, MD5,
  763. and SHA1.  This document is intended to be used by developers for
  764. interoperability checks when creating generators or servers.  Output
  765. is provided in both hexadecimal notation and the six word encoding
  766. documented in Appendix D.
  767.  
  768. GENERAL CHECKS
  769.  
  770. Note that the output given for these checks is not intended to be
  771. taken literally, but describes the type of action that should be
  772. taken.
  773.  
  774. Pass Phrase Length
  775.  
  776.  Input:
  777.    Pass Phrase: Too_short
  778.    Seed: iamvalid
  779.    Count: 99
  780.    Hash: ANY
  781.  Output:
  782.    ERROR:  Pass Phrase too short
  783.  
  784.  Input:
  785.    Pass Phrase:
  786.      1234567890123456789012345678901234567890123456789012345678901234
  787.    Seed: iamvalid
  788.    Count: 99
  789.    Hash: ANY
  790.  Output:
  791.    WARNING: Pass Phrase longer than the recommended maximum length of
  792. 63
  793.  
  794. Seed Values
  795.  
  796.  Input:
  797.    Pass Phrase:  A_Valid_Pass_Phrase
  798.    Seed: Length_Okay
  799.    Count: 99
  800.    Hash: ANY
  801.  Output:
  802.    ERROR: Seed must be purely alphanumeric
  803.  
  804.  Input:
  805.    Pass Phrase:  A_Valid_Pass_Phrase
  806.    Seed: LengthOfSeventeen
  807.    Count: 99
  808.    Hash: ANY
  809.  
  810.  
  811. Haller, Metz, Nesser, & Straw                                [Page 14]
  812.  
  813. INTERNET DRAFT        A One Time Password System        March 24, 1997
  814.  
  815.  
  816.  Output:
  817.    ERROR: Seed must be between 1 and 16 characters in length
  818.  
  819.  Input:
  820.    Pass Phrase:  A_Valid_Pass_Phrase
  821.    Seed: A Seed
  822.    Count: 99
  823.    Hash: ANY
  824.  Output:
  825.    ERROR: Seed must not contain any spaces
  826.  
  827. Parity Calculations
  828.  
  829.  Input:
  830.    Pass Phrase: A_Valid_Pass_Phrase
  831.    Seed: AValidSeed
  832.    Count: 99
  833.    Hash: MD5
  834.  Output:
  835.    Hex: 85c43ee03857765b
  836.    Six Word(CORRECT):          FOWL KID MASH DEAD DUAL OAF
  837.    Six Word(INCORRECT PARITY): FOWL KID MASH DEAD DUAL NUT
  838.    Six Word(INCORRECT PARITY): FOWL KID MASH DEAD DUAL O
  839.    Six Word(INCORRECT PARITY): FOWL KID MASH DEAD DUAL OAK
  840.  
  841.  
  842. MD4 ENCODINGS
  843.  
  844. Pass Phrase     Seed    Cnt Hex                 Six Word Format
  845. ========================================================================
  846. This is a test. TeSt     0  D185 4218 EBBB 0B51 ROME MUG FRED SCAN LIVE LACE
  847. This is a test. TeSt     1  6347 3EF0 1CD0 B444 CARD SAD MINI RYE COL KIN
  848. This is a test. TeSt    99  C5E6 1277 6E6C 237A NOTE OUT IBIS SINK NAVE MODE
  849. AbCdEfGhIjK     alpha1   0  5007 6F47 EB1A DE4E AWAY SEN ROOK SALT LICE MAP
  850. AbCdEfGhIjK     alpha1   1  65D2 0D19 49B5 F7AB CHEW GRIM WU HANG BUCK SAID
  851. AbCdEfGhIjK     alpha1  99  D150 C82C CE6F 62D1 ROIL FREE COG HUNK WAIT COCA
  852. OTP's are good  correct  0  849C 79D4 F6F5 5388 FOOL STEM DONE TOOL BECK NILE
  853. OTP's are good  correct  1  8C09 92FB 2508 47B1 GIST AMOS MOOT AIDS FOOD SEEM
  854. OTP's are good  correct 99  3F3B F4B4 145F D74B TAG SLOW NOV MIN WOOL KENO
  855.  
  856.  
  857.  
  858. MD5 ENCODINGS
  859.  
  860. Pass Phrase     Seed    Cnt Hex                 Six Word Format
  861. ============================================================================
  862. This is a test. TeSt     0  9E87 6134 D904 99DD INCH SEA ANNE LONG AHEM TOUR
  863. This is a test. TeSt     1  7965 E054 36F5 029F EASE OIL FUM CURE AWRY AVIS
  864. This is a test. TeSt    99  50FE 1962 C496 5880 BAIL TUFT BITS GANG CHEF THY
  865. AbCdEfGhIjK     alpha1   0  8706 6DD9 644B F206 FULL PEW DOWN ONCE MORT ARC
  866. AbCdEfGhIjK     alpha1   1  7CD3 4C10 40AD D14B FACT HOOF AT FIST SITE KENT
  867.  
  868.  
  869. Haller, Metz, Nesser, & Straw                                [Page 15]
  870.  
  871. INTERNET DRAFT        A One Time Password System        March 24, 1997
  872.  
  873.  
  874. AbCdEfGhIjK     alpha1  99  5AA3 7A81 F212 146C BODE HOP JAKE STOW JUT RAP
  875. OTP's are good  correct  0  F205 7539 43DE 4CF9 ULAN NEW ARMY FUSE SUIT EYED
  876. OTP's are good  correct  1  DDCD AC95 6F23 4937 SKIM CULT LOB SLAM POE HOWL
  877. OTP's are good  correct 99  B203 E28F A525 BE47 LONG IVY JULY AJAR BOND LEE
  878.  
  879.  
  880. SHA1 ENCODINGS
  881.  
  882. Pass Phrase     Seed    Cnt Hex                 Six Word Format
  883. =============================================================================
  884. This is a test. TeSt     0  BB9E 6AE1 979D 8FF4 MILT VARY MAST OK SEES WENT
  885. This is a test. TeSt     1  63D9 3663 9734 385B CART OTTO HIVE ODE VAT NUT
  886. This is a test. TeSt    99  87FE C776 8B73 CCF9 GAFF WAIT SKID GIG SKY EYED
  887. AbCdEfGhIjK     alpha1   0  7B4C 5831 CCED CD36 LEST OR HEEL SCOT ROB SUIT
  888. AbCdEfGhIjK     alpha1   1  D07C E229 B5CF 119B RITE TAKE GELD COST TUNE RECK
  889. AbCdEfGhIjK     alpha1  99  27BC 7103 5AAF 3DC6 MAY STAR TIN LYON VEDA STAN
  890. OTP's are good  correct  0  D51F 3E99 BF8E 6F0B RUST WELT KICK FELL TAIL FRAU
  891. OTP's are good  correct  1  82AE B52D 9437 74E4 FLIT DOSE ALSO MEW DRUM DEFY
  892. OTP's are good  correct 99  4F29 6A74 FE15 67EC AURA ALOE HURL WING BERG WAIT
  893.  
  894.  
  895.  
  896.  
  897.  
  898.  
  899.  
  900.  
  901.  
  902.  
  903.  
  904.  
  905.  
  906.  
  907.  
  908.  
  909.  
  910.  
  911.  
  912.  
  913.  
  914.  
  915.  
  916.  
  917.  
  918.  
  919.  
  920.  
  921.  
  922.  
  923.  
  924.  
  925.  
  926.  
  927. Haller, Metz, Nesser, & Straw                                [Page 16]
  928.  
  929. INTERNET DRAFT        A One Time Password System        March 24, 1997
  930.  
  931.  
  932. Appendix D   -   Dictionary for Converting Between 6-Word and Binary Formats
  933.  
  934.  
  935. This dictionary is from the module put.c in the original Bellcore
  936. reference distribution.
  937.  
  938.  
  939. {        "A",     "ABE",   "ACE",   "ACT",   "AD",    "ADA",   "ADD",
  940. "AGO",   "AID",   "AIM",   "AIR",   "ALL",   "ALP",   "AM",    "AMY",
  941. "AN",    "ANA",   "AND",   "ANN",   "ANT",   "ANY",   "APE",   "APS",
  942. "APT",   "ARC",   "ARE",   "ARK",   "ARM",   "ART",   "AS",    "ASH",
  943. "ASK",   "AT",    "ATE",   "AUG",   "AUK",   "AVE",   "AWE",   "AWK",
  944. "AWL",   "AWN",   "AX",   "AYE",   "BAD",   "BAG",   "BAH",   "BAM",
  945. "BAN",   "BAR",   "BAT",   "BAY",   "BE",    "BED",   "BEE",   "BEG",
  946. "BEN",   "BET",   "BEY",   "BIB",   "BID",   "BIG",   "BIN",   "BIT",
  947. "BOB",   "BOG",   "BON",   "BOO",   "BOP",   "BOW",   "BOY",   "BUB",
  948. "BUD",   "BUG",   "BUM",   "BUN",   "BUS",   "BUT",   "BUY",   "BY",
  949. "BYE",   "CAB",   "CAL",   "CAM",   "CAN",   "CAP",   "CAR",   "CAT",
  950. "CAW",   "COD",   "COG",   "COL",   "CON",   "COO",   "COP",   "COT",
  951. "COW",   "COY",   "CRY",   "CUB",   "CUE",   "CUP",   "CUR",   "CUT",
  952. "DAB",   "DAD",   "DAM",   "DAN",   "DAR",   "DAY",   "DEE",   "DEL",
  953. "DEN",   "DES",   "DEW",   "DID",   "DIE",   "DIG",   "DIN",   "DIP",
  954. "DO",    "DOE",   "DOG",   "DON",   "DOT",   "DOW",   "DRY",   "DUB",
  955. "DUD",   "DUE",   "DUG",   "DUN",   "EAR",   "EAT",   "ED",    "EEL",
  956. "EGG",   "EGO",   "ELI",   "ELK",   "ELM",   "ELY",   "EM",    "END",
  957. "EST",   "ETC",   "EVA",   "EVE",   "EWE",   "EYE",   "FAD",   "FAN",
  958. "FAR",   "FAT",   "FAY",   "FED",   "FEE",   "FEW",   "FIB",   "FIG",
  959. "FIN",   "FIR",   "FIT",   "FLO",   "FLY",   "FOE",   "FOG",   "FOR",
  960. "FRY",   "FUM",   "FUN",   "FUR",   "GAB",   "GAD",   "GAG",   "GAL",
  961. "GAM",   "GAP",   "GAS",   "GAY",   "GEE",   "GEL",   "GEM",   "GET",
  962. "GIG",   "GIL",   "GIN",   "GO",    "GOT",   "GUM",   "GUN",   "GUS",
  963. "GUT",   "GUY",   "GYM",   "GYP",   "HA",    "HAD",   "HAL",   "HAM",
  964. "HAN",   "HAP",   "HAS",   "HAT",   "HAW",   "HAY",   "HE",    "HEM",
  965. "HEN",   "HER",   "HEW",   "HEY",   "HI",    "HID",   "HIM",   "HIP",
  966. "HIS",   "HIT",   "HO",   "HOB",   "HOC",   "HOE",   "HOG",   "HOP",
  967. "HOT",   "HOW",   "HUB",   "HUE",   "HUG",   "HUH",   "HUM",   "HUT",
  968. "I",     "ICY",   "IDA",   "IF",    "IKE",   "ILL",   "INK",   "INN",
  969. "IO",    "ION",   "IQ",   "IRA",   "IRE",   "IRK",   "IS",    "IT",
  970. "ITS",   "IVY",   "JAB",   "JAG",   "JAM",   "JAN",   "JAR",   "JAW",
  971. "JAY",   "JET",   "JIG",   "JIM",   "JO",    "JOB",   "JOE",   "JOG",
  972. "JOT",   "JOY",   "JUG",   "JUT",   "KAY",   "KEG",   "KEN",   "KEY",
  973. "KID",   "KIM",   "KIN",   "KIT",   "LA",    "LAB",   "LAC",   "LAD",
  974. "LAG",   "LAM",   "LAP",   "LAW",   "LAY",   "LEA",   "LED",   "LEE",
  975. "LEG",   "LEN",   "LEO",   "LET",   "LEW",   "LID",   "LIE",   "LIN",
  976. "LIP",   "LIT",   "LO",   "LOB",   "LOG",   "LOP",   "LOS",   "LOT",
  977. "LOU",   "LOW",   "LOY",   "LUG",   "LYE",   "MA",    "MAC",   "MAD",
  978. "MAE",   "MAN",   "MAO",   "MAP",   "MAT",   "MAW",   "MAY",   "ME",
  979. "MEG",   "MEL",   "MEN",   "MET",   "MEW",   "MID",   "MIN",   "MIT",
  980. "MOB",   "MOD",   "MOE",   "MOO",   "MOP",   "MOS",   "MOT",   "MOW",
  981. "MUD",   "MUG",   "MUM",   "MY",    "NAB",   "NAG",   "NAN",   "NAP",
  982. "NAT",   "NAY",   "NE",   "NED",   "NEE",   "NET",   "NEW",   "NIB",
  983.  
  984.  
  985. Haller, Metz, Nesser, & Straw                                [Page 17]
  986.  
  987. INTERNET DRAFT        A One Time Password System        March 24, 1997
  988.  
  989.  
  990. "NIL",   "NIP",   "NIT",   "NO",    "NOB",   "NOD",   "NON",   "NOR",
  991. "NOT",   "NOV",   "NOW",   "NU",    "NUN",   "NUT",   "O",     "OAF",
  992. "OAK",   "OAR",   "OAT",   "ODD",   "ODE",   "OF",    "OFF",   "OFT",
  993. "OH",    "OIL",   "OK",   "OLD",   "ON",    "ONE",   "OR",    "ORB",
  994. "ORE",   "ORR",   "OS",   "OTT",   "OUR",   "OUT",   "OVA",   "OW",
  995. "OWE",   "OWL",   "OWN",   "OX",    "PA",    "PAD",   "PAL",   "PAM",
  996. "PAN",   "PAP",   "PAR",   "PAT",   "PAW",   "PAY",   "PEA",   "PEG",
  997. "PEN",   "PEP",   "PER",   "PET",   "PEW",   "PHI",   "PI",    "PIE",
  998. "PIN",   "PIT",   "PLY",   "PO",    "POD",   "POE",   "POP",   "POT",
  999. "POW",   "PRO",   "PRY",   "PUB",   "PUG",   "PUN",   "PUP",   "PUT",
  1000. "QUO",   "RAG",   "RAM",   "RAN",   "RAP",   "RAT",   "RAW",   "RAY",
  1001. "REB",   "RED",   "REP",   "RET",   "RIB",   "RID",   "RIG",   "RIM",
  1002. "RIO",   "RIP",   "ROB",   "ROD",   "ROE",   "RON",   "ROT",   "ROW",
  1003. "ROY",   "RUB",   "RUE",   "RUG",   "RUM",   "RUN",   "RYE",   "SAC",
  1004. "SAD",   "SAG",   "SAL",   "SAM",   "SAN",   "SAP",   "SAT",   "SAW",
  1005. "SAY",   "SEA",   "SEC",   "SEE",   "SEN",   "SET",   "SEW",   "SHE",
  1006. "SHY",   "SIN",   "SIP",   "SIR",   "SIS",   "SIT",   "SKI",   "SKY",
  1007. "SLY",   "SO",    "SOB",   "SOD",   "SON",   "SOP",   "SOW",   "SOY",
  1008. "SPA",   "SPY",   "SUB",   "SUD",   "SUE",   "SUM",   "SUN",   "SUP",
  1009. "TAB",   "TAD",   "TAG",   "TAN",   "TAP",   "TAR",   "TEA",   "TED",
  1010. "TEE",   "TEN",   "THE",   "THY",   "TIC",   "TIE",   "TIM",   "TIN",
  1011. "TIP",   "TO",    "TOE",   "TOG",   "TOM",   "TON",   "TOO",   "TOP",
  1012. "TOW",   "TOY",   "TRY",   "TUB",   "TUG",   "TUM",   "TUN",   "TWO",
  1013. "UN",    "UP",    "US",   "USE",   "VAN",   "VAT",   "VET",   "VIE",
  1014. "WAD",   "WAG",   "WAR",   "WAS",   "WAY",   "WE",    "WEB",   "WED",
  1015. "WEE",   "WET",   "WHO",   "WHY",   "WIN",   "WIT",   "WOK",   "WON",
  1016. "WOO",   "WOW",   "WRY",   "WU",    "YAM",   "YAP",   "YAW",   "YE",
  1017. "YEA",   "YES",   "YET",   "YOU",   "ABED",  "ABEL",  "ABET",  "ABLE",
  1018. "ABUT",  "ACHE",  "ACID",  "ACME",  "ACRE",  "ACTA",  "ACTS",  "ADAM",
  1019. "ADDS",  "ADEN",  "AFAR",  "AFRO",  "AGEE",  "AHEM",  "AHOY",  "AIDA",
  1020. "AIDE",  "AIDS",  "AIRY",  "AJAR",  "AKIN",  "ALAN",  "ALEC",  "ALGA",
  1021. "ALIA",  "ALLY",  "ALMA",  "ALOE",  "ALSO",  "ALTO",  "ALUM",  "ALVA",
  1022. "AMEN",  "AMES",  "AMID",  "AMMO",  "AMOK",  "AMOS",  "AMRA",  "ANDY",
  1023. "ANEW",  "ANNA",  "ANNE",  "ANTE",  "ANTI",  "AQUA",  "ARAB",  "ARCH",
  1024. "AREA",  "ARGO",  "ARID",  "ARMY",  "ARTS",  "ARTY",  "ASIA",  "ASKS",
  1025. "ATOM",  "AUNT",  "AURA",  "AUTO",  "AVER",  "AVID",  "AVIS",  "AVON",
  1026. "AVOW",  "AWAY",  "AWRY",  "BABE",  "BABY",  "BACH",  "BACK",  "BADE",
  1027. "BAIL",  "BAIT",  "BAKE",  "BALD",  "BALE",  "BALI",  "BALK",  "BALL",
  1028. "BALM",  "BAND",  "BANE",  "BANG",  "BANK",  "BARB",  "BARD",  "BARE",
  1029. "BARK",  "BARN",  "BARR",  "BASE",  "BASH",  "BASK",  "BASS",  "BATE",
  1030. "BATH",  "BAWD",  "BAWL",  "BEAD",  "BEAK",  "BEAM",  "BEAN",  "BEAR",
  1031. "BEAT",  "BEAU",  "BECK",  "BEEF",  "BEEN",  "BEER",  "BEET",  "BELA",
  1032. "BELL",  "BELT",  "BEND",  "BENT",  "BERG",  "BERN",  "BERT",  "BESS",
  1033. "BEST",  "BETA",  "BETH",  "BHOY",  "BIAS",  "BIDE",  "BIEN",  "BILE",
  1034. "BILK",  "BILL",  "BIND",  "BING",  "BIRD",  "BITE",  "BITS",  "BLAB",
  1035. "BLAT",  "BLED",  "BLEW",  "BLOB",  "BLOC",  "BLOT",  "BLOW",  "BLUE",
  1036. "BLUM",  "BLUR",  "BOAR",  "BOAT",  "BOCA",  "BOCK",  "BODE",  "BODY",
  1037. "BOGY",  "BOHR",  "BOIL",  "BOLD",  "BOLO",  "BOLT",  "BOMB",  "BONA",
  1038. "BOND",  "BONE",  "BONG",  "BONN",  "BONY",  "BOOK",  "BOOM",  "BOON",
  1039. "BOOT",  "BORE",  "BORG",  "BORN",  "BOSE",  "BOSS",  "BOTH",  "BOUT",
  1040. "BOWL",  "BOYD",  "BRAD",  "BRAE",  "BRAG",  "BRAN",  "BRAY",  "BRED",
  1041.  
  1042.  
  1043. Haller, Metz, Nesser, & Straw                                [Page 18]
  1044.  
  1045. INTERNET DRAFT        A One Time Password System        March 24, 1997
  1046.  
  1047.  
  1048. "BREW",  "BRIG",  "BRIM",  "BROW",  "BUCK",  "BUDD",  "BUFF",  "BULB",
  1049. "BULK",  "BULL",  "BUNK",  "BUNT",  "BUOY",  "BURG",  "BURL",  "BURN",
  1050. "BURR",  "BURT",  "BURY",  "BUSH",  "BUSS",  "BUST",  "BUSY",  "BYTE",
  1051. "CADY",  "CAFE",  "CAGE",  "CAIN",  "CAKE",  "CALF",  "CALL",  "CALM",
  1052. "CAME",  "CANE",  "CANT",  "CARD",  "CARE",  "CARL",  "CARR",  "CART",
  1053. "CASE",  "CASH",  "CASK",  "CAST",  "CAVE",  "CEIL",  "CELL",  "CENT",
  1054. "CERN",  "CHAD",  "CHAR",  "CHAT",  "CHAW",  "CHEF",  "CHEN",  "CHEW",
  1055. "CHIC",  "CHIN",  "CHOU",  "CHOW",  "CHUB",  "CHUG",  "CHUM",  "CITE",
  1056. "CITY",  "CLAD",  "CLAM",  "CLAN",  "CLAW",  "CLAY",  "CLOD",  "CLOG",
  1057. "CLOT",  "CLUB",  "CLUE",  "COAL",  "COAT",  "COCA",  "COCK",  "COCO",
  1058. "CODA",  "CODE",  "CODY",  "COED",  "COIL",  "COIN",  "COKE",  "COLA",
  1059. "COLD",  "COLT",  "COMA",  "COMB",  "COME",  "COOK",  "COOL",  "COON",
  1060. "COOT",  "CORD",  "CORE",  "CORK",  "CORN",  "COST",  "COVE",  "COWL",
  1061. "CRAB",  "CRAG",  "CRAM",  "CRAY",  "CREW",  "CRIB",  "CROW",  "CRUD",
  1062. "CUBA",  "CUBE",  "CUFF",  "CULL",  "CULT",  "CUNY",  "CURB",  "CURD",
  1063. "CURE",  "CURL",  "CURT",  "CUTS",  "DADE",  "DALE",  "DAME",  "DANA",
  1064. "DANE",  "DANG",  "DANK",  "DARE",  "DARK",  "DARN",  "DART",  "DASH",
  1065. "DATA",  "DATE",  "DAVE",  "DAVY",  "DAWN",  "DAYS",  "DEAD",  "DEAF",
  1066. "DEAL",  "DEAN",  "DEAR",  "DEBT",  "DECK",  "DEED",  "DEEM",  "DEER",
  1067. "DEFT",  "DEFY",  "DELL",  "DENT",  "DENY",  "DESK",  "DIAL",  "DICE",
  1068. "DIED",  "DIET",  "DIME",  "DINE",  "DING",  "DINT",  "DIRE",  "DIRT",
  1069. "DISC",  "DISH",  "DISK",  "DIVE",  "DOCK",  "DOES",  "DOLE",  "DOLL",
  1070. "DOLT",  "DOME",  "DONE",  "DOOM",  "DOOR",  "DORA",  "DOSE",  "DOTE",
  1071. "DOUG",  "DOUR",  "DOVE",  "DOWN",  "DRAB",  "DRAG",  "DRAM",  "DRAW",
  1072. "DREW",  "DRUB",  "DRUG",  "DRUM",  "DUAL",  "DUCK",  "DUCT",  "DUEL",
  1073. "DUET",  "DUKE",  "DULL",  "DUMB",  "DUNE",  "DUNK",  "DUSK",  "DUST",
  1074. "DUTY",  "EACH",  "EARL",  "EARN",  "EASE",  "EAST",  "EASY",  "EBEN",
  1075. "ECHO",  "EDDY",  "EDEN",  "EDGE",  "EDGY",  "EDIT",  "EDNA",  "EGAN",
  1076. "ELAN",  "ELBA",  "ELLA",  "ELSE",  "EMIL",  "EMIT",  "EMMA",  "ENDS",
  1077. "ERIC",  "EROS",  "EVEN",  "EVER",  "EVIL",  "EYED",  "FACE",  "FACT",
  1078. "FADE",  "FAIL",  "FAIN",  "FAIR",  "FAKE",  "FALL",  "FAME",  "FANG",
  1079. "FARM",  "FAST",  "FATE",  "FAWN",  "FEAR",  "FEAT",  "FEED",  "FEEL",
  1080. "FEET",  "FELL",  "FELT",  "FEND",  "FERN",  "FEST",  "FEUD",  "FIEF",
  1081. "FIGS",  "FILE",  "FILL",  "FILM",  "FIND",  "FINE",  "FINK",  "FIRE",
  1082. "FIRM",  "FISH",  "FISK",  "FIST",  "FITS",  "FIVE",  "FLAG",  "FLAK",
  1083. "FLAM",  "FLAT",  "FLAW",  "FLEA",  "FLED",  "FLEW",  "FLIT",  "FLOC",
  1084. "FLOG",  "FLOW",  "FLUB",  "FLUE",  "FOAL",  "FOAM",  "FOGY",  "FOIL",
  1085. "FOLD",  "FOLK",  "FOND",  "FONT",  "FOOD",  "FOOL",  "FOOT",  "FORD",
  1086. "FORE",  "FORK",  "FORM",  "FORT",  "FOSS",  "FOUL",  "FOUR",  "FOWL",
  1087. "FRAU",  "FRAY",  "FRED",  "FREE",  "FRET",  "FREY",  "FROG",  "FROM",
  1088. "FUEL",  "FULL",  "FUME",  "FUND",  "FUNK",  "FURY",  "FUSE",  "FUSS",
  1089. "GAFF",  "GAGE",  "GAIL",  "GAIN",  "GAIT",  "GALA",  "GALE",  "GALL",
  1090. "GALT",  "GAME",  "GANG",  "GARB",  "GARY",  "GASH",  "GATE",  "GAUL",
  1091. "GAUR",  "GAVE",  "GAWK",  "GEAR",  "GELD",  "GENE",  "GENT",  "GERM",
  1092. "GETS",  "GIBE",  "GIFT",  "GILD",  "GILL",  "GILT",  "GINA",  "GIRD",
  1093. "GIRL",  "GIST",  "GIVE",  "GLAD",  "GLEE",  "GLEN",  "GLIB",  "GLOB",
  1094. "GLOM",  "GLOW",  "GLUE",  "GLUM",  "GLUT",  "GOAD",  "GOAL",  "GOAT",
  1095. "GOER",  "GOES",  "GOLD",  "GOLF",  "GONE",  "GONG",  "GOOD",  "GOOF",
  1096. "GORE",  "GORY",  "GOSH",  "GOUT",  "GOWN",  "GRAB",  "GRAD",  "GRAY",
  1097. "GREG",  "GREW",  "GREY",  "GRID",  "GRIM",  "GRIN",  "GRIT",  "GROW",
  1098. "GRUB",  "GULF",  "GULL",  "GUNK",  "GURU",  "GUSH",  "GUST",  "GWEN",
  1099.  
  1100.  
  1101. Haller, Metz, Nesser, & Straw                                [Page 19]
  1102.  
  1103. INTERNET DRAFT        A One Time Password System        March 24, 1997
  1104.  
  1105.  
  1106. "GWYN",  "HAAG",  "HAAS",  "HACK",  "HAIL",  "HAIR",  "HALE",  "HALF",
  1107. "HALL",  "HALO",  "HALT",  "HAND",  "HANG",  "HANK",  "HANS",  "HARD",
  1108. "HARK",  "HARM",  "HART",  "HASH",  "HAST",  "HATE",  "HATH",  "HAUL",
  1109. "HAVE",  "HAWK",  "HAYS",  "HEAD",  "HEAL",  "HEAR",  "HEAT",  "HEBE",
  1110. "HECK",  "HEED",  "HEEL",  "HEFT",  "HELD",  "HELL",  "HELM",  "HERB",
  1111. "HERD",  "HERE",  "HERO",  "HERS",  "HESS",  "HEWN",  "HICK",  "HIDE",
  1112. "HIGH",  "HIKE",  "HILL",  "HILT",  "HIND",  "HINT",  "HIRE",  "HISS",
  1113. "HIVE",  "HOBO",  "HOCK",  "HOFF",  "HOLD",  "HOLE",  "HOLM",  "HOLT",
  1114. "HOME",  "HONE",  "HONK",  "HOOD",  "HOOF",  "HOOK",  "HOOT",  "HORN",
  1115. "HOSE",  "HOST",  "HOUR",  "HOVE",  "HOWE",  "HOWL",  "HOYT",  "HUCK",
  1116. "HUED",  "HUFF",  "HUGE",  "HUGH",  "HUGO",  "HULK",  "HULL",  "HUNK",
  1117. "HUNT",  "HURD",  "HURL",  "HURT",  "HUSH",  "HYDE",  "HYMN",  "IBIS",
  1118. "ICON",  "IDEA",  "IDLE",  "IFFY",  "INCA",  "INCH",  "INTO",  "IONS",
  1119. "IOTA",  "IOWA",  "IRIS",  "IRMA",  "IRON",  "ISLE",  "ITCH",  "ITEM",
  1120. "IVAN",  "JACK",  "JADE",  "JAIL",  "JAKE",  "JANE",  "JAVA",  "JEAN",
  1121. "JEFF",  "JERK",  "JESS",  "JEST",  "JIBE",  "JILL",  "JILT",  "JIVE",
  1122. "JOAN",  "JOBS",  "JOCK",  "JOEL",  "JOEY",  "JOHN",  "JOIN",  "JOKE",
  1123. "JOLT",  "JOVE",  "JUDD",  "JUDE",  "JUDO",  "JUDY",  "JUJU",  "JUKE",
  1124. "JULY",  "JUNE",  "JUNK",  "JUNO",  "JURY",  "JUST",  "JUTE",  "KAHN",
  1125. "KALE",  "KANE",  "KANT",  "KARL",  "KATE",  "KEEL",  "KEEN",  "KENO",
  1126. "KENT",  "KERN",  "KERR",  "KEYS",  "KICK",  "KILL",  "KIND",  "KING",
  1127. "KIRK",  "KISS",  "KITE",  "KLAN",  "KNEE",  "KNEW",  "KNIT",  "KNOB",
  1128. "KNOT",  "KNOW",  "KOCH",  "KONG",  "KUDO",  "KURD",  "KURT",  "KYLE",
  1129. "LACE",  "LACK",  "LACY",  "LADY",  "LAID",  "LAIN",  "LAIR",  "LAKE",
  1130. "LAMB",  "LAME",  "LAND",  "LANE",  "LANG",  "LARD",  "LARK",  "LASS",
  1131. "LAST",  "LATE",  "LAUD",  "LAVA",  "LAWN",  "LAWS",  "LAYS",  "LEAD",
  1132. "LEAF",  "LEAK",  "LEAN",  "LEAR",  "LEEK",  "LEER",  "LEFT",  "LEND",
  1133. "LENS",  "LENT",  "LEON",  "LESK",  "LESS",  "LEST",  "LETS",  "LIAR",
  1134. "LICE",  "LICK",  "LIED",  "LIEN",  "LIES",  "LIEU",  "LIFE",  "LIFT",
  1135. "LIKE",  "LILA",  "LILT",  "LILY",  "LIMA",  "LIMB",  "LIME",  "LIND",
  1136. "LINE",  "LINK",  "LINT",  "LION",  "LISA",  "LIST",  "LIVE",  "LOAD",
  1137. "LOAF",  "LOAM",  "LOAN",  "LOCK",  "LOFT",  "LOGE",  "LOIS",  "LOLA",
  1138. "LONE",  "LONG",  "LOOK",  "LOON",  "LOOT",  "LORD",  "LORE",  "LOSE",
  1139. "LOSS",  "LOST",  "LOUD",  "LOVE",  "LOWE",  "LUCK",  "LUCY",  "LUGE",
  1140. "LUKE",  "LULU",  "LUND",  "LUNG",  "LURA",  "LURE",  "LURK",  "LUSH",
  1141. "LUST",  "LYLE",  "LYNN",  "LYON",  "LYRA",  "MACE",  "MADE",  "MAGI",
  1142. "MAID",  "MAIL",  "MAIN",  "MAKE",  "MALE",  "MALI",  "MALL",  "MALT",
  1143. "MANA",  "MANN",  "MANY",  "MARC",  "MARE",  "MARK",  "MARS",  "MART",
  1144. "MARY",  "MASH",  "MASK",  "MASS",  "MAST",  "MATE",  "MATH",  "MAUL",
  1145. "MAYO",  "MEAD",  "MEAL",  "MEAN",  "MEAT",  "MEEK",  "MEET",  "MELD",
  1146. "MELT",  "MEMO",  "MEND",  "MENU",  "MERT",  "MESH",  "MESS",  "MICE",
  1147. "MIKE",  "MILD",  "MILE",  "MILK",  "MILL",  "MILT",  "MIMI",  "MIND",
  1148. "MINE",  "MINI",  "MINK",  "MINT",  "MIRE",  "MISS",  "MIST",  "MITE",
  1149. "MITT",  "MOAN",  "MOAT",  "MOCK",  "MODE",  "MOLD",  "MOLE",  "MOLL",
  1150. "MOLT",  "MONA",  "MONK",  "MONT",  "MOOD",  "MOON",  "MOOR",  "MOOT",
  1151. "MORE",  "MORN",  "MORT",  "MOSS",  "MOST",  "MOTH",  "MOVE",  "MUCH",
  1152. "MUCK",  "MUDD",  "MUFF",  "MULE",  "MULL",  "MURK",  "MUSH",  "MUST",
  1153. "MUTE",  "MUTT",  "MYRA",  "MYTH",  "NAGY",  "NAIL",  "NAIR",  "NAME",
  1154. "NARY",  "NASH",  "NAVE",  "NAVY",  "NEAL",  "NEAR",  "NEAT",  "NECK",
  1155. "NEED",  "NEIL",  "NELL",  "NEON",  "NERO",  "NESS",  "NEST",  "NEWS",
  1156. "NEWT",  "NIBS",  "NICE",  "NICK",  "NILE",  "NINA",  "NINE",  "NOAH",
  1157.  
  1158.  
  1159. Haller, Metz, Nesser, & Straw                                [Page 20]
  1160.  
  1161. INTERNET DRAFT        A One Time Password System        March 24, 1997
  1162.  
  1163.  
  1164. "NODE",  "NOEL",  "NOLL",  "NONE",  "NOOK",  "NOON",  "NORM",  "NOSE",
  1165. "NOTE",  "NOUN",  "NOVA",  "NUDE",  "NULL",  "NUMB",  "OATH",  "OBEY",
  1166. "OBOE",  "ODIN",  "OHIO",  "OILY",  "OINT",  "OKAY",  "OLAF",  "OLDY",
  1167. "OLGA",  "OLIN",  "OMAN",  "OMEN",  "OMIT",  "ONCE",  "ONES",  "ONLY",
  1168. "ONTO",  "ONUS",  "ORAL",  "ORGY",  "OSLO",  "OTIS",  "OTTO",  "OUCH",
  1169. "OUST",  "OUTS",  "OVAL",  "OVEN",  "OVER",  "OWLY",  "OWNS",  "QUAD",
  1170. "QUIT",  "QUOD",  "RACE",  "RACK",  "RACY",  "RAFT",  "RAGE",  "RAID",
  1171. "RAIL",  "RAIN",  "RAKE",  "RANK",  "RANT",  "RARE",  "RASH",  "RATE",
  1172. "RAVE",  "RAYS",  "READ",  "REAL",  "REAM",  "REAR",  "RECK",  "REED",
  1173. "REEF",  "REEK",  "REEL",  "REID",  "REIN",  "RENA",  "REND",  "RENT",
  1174. "REST",  "RICE",  "RICH",  "RICK",  "RIDE",  "RIFT",  "RILL",  "RIME",
  1175. "RING",  "RINK",  "RISE",  "RISK",  "RITE",  "ROAD",  "ROAM",  "ROAR",
  1176. "ROBE",  "ROCK",  "RODE",  "ROIL",  "ROLL",  "ROME",  "ROOD",  "ROOF",
  1177. "ROOK",  "ROOM",  "ROOT",  "ROSA",  "ROSE",  "ROSS",  "ROSY",  "ROTH",
  1178. "ROUT",  "ROVE",  "ROWE",  "ROWS",  "RUBE",  "RUBY",  "RUDE",  "RUDY",
  1179. "RUIN",  "RULE",  "RUNG",  "RUNS",  "RUNT",  "RUSE",  "RUSH",  "RUSK",
  1180. "RUSS",  "RUST",  "RUTH",  "SACK",  "SAFE",  "SAGE",  "SAID",  "SAIL",
  1181. "SALE",  "SALK",  "SALT",  "SAME",  "SAND",  "SANE",  "SANG",  "SANK",
  1182. "SARA",  "SAUL",  "SAVE",  "SAYS",  "SCAN",  "SCAR",  "SCAT",  "SCOT",
  1183. "SEAL",  "SEAM",  "SEAR",  "SEAT",  "SEED",  "SEEK",  "SEEM",  "SEEN",
  1184. "SEES",  "SELF",  "SELL",  "SEND",  "SENT",  "SETS",  "SEWN",  "SHAG",
  1185. "SHAM",  "SHAW",  "SHAY",  "SHED",  "SHIM",  "SHIN",  "SHOD",  "SHOE",
  1186. "SHOT",  "SHOW",  "SHUN",  "SHUT",  "SICK",  "SIDE",  "SIFT",  "SIGH",
  1187. "SIGN",  "SILK",  "SILL",  "SILO",  "SILT",  "SINE",  "SING",  "SINK",
  1188. "SIRE",  "SITE",  "SITS",  "SITU",  "SKAT",  "SKEW",  "SKID",  "SKIM",
  1189. "SKIN",  "SKIT",  "SLAB",  "SLAM",  "SLAT",  "SLAY",  "SLED",  "SLEW",
  1190. "SLID",  "SLIM",  "SLIT",  "SLOB",  "SLOG",  "SLOT",  "SLOW",  "SLUG",
  1191. "SLUM",  "SLUR",  "SMOG",  "SMUG",  "SNAG",  "SNOB",  "SNOW",  "SNUB",
  1192. "SNUG",  "SOAK",  "SOAR",  "SOCK",  "SODA",  "SOFA",  "SOFT",  "SOIL",
  1193. "SOLD",  "SOME",  "SONG",  "SOON",  "SOOT",  "SORE",  "SORT",  "SOUL",
  1194. "SOUR",  "SOWN",  "STAB",  "STAG",  "STAN",  "STAR",  "STAY",  "STEM",
  1195. "STEW",  "STIR",  "STOW",  "STUB",  "STUN",  "SUCH",  "SUDS",  "SUIT",
  1196. "SULK",  "SUMS",  "SUNG",  "SUNK",  "SURE",  "SURF",  "SWAB",  "SWAG",
  1197. "SWAM",  "SWAN",  "SWAT",  "SWAY",  "SWIM",  "SWUM",  "TACK",  "TACT",
  1198. "TAIL",  "TAKE",  "TALE",  "TALK",  "TALL",  "TANK",  "TASK",  "TATE",
  1199. "TAUT",  "TEAL",  "TEAM",  "TEAR",  "TECH",  "TEEM",  "TEEN",  "TEET",
  1200. "TELL",  "TEND",  "TENT",  "TERM",  "TERN",  "TESS",  "TEST",  "THAN",
  1201. "THAT",  "THEE",  "THEM",  "THEN",  "THEY",  "THIN",  "THIS",  "THUD",
  1202. "THUG",  "TICK",  "TIDE",  "TIDY",  "TIED",  "TIER",  "TILE",  "TILL",
  1203. "TILT",  "TIME",  "TINA",  "TINE",  "TINT",  "TINY",  "TIRE",  "TOAD",
  1204. "TOGO",  "TOIL",  "TOLD",  "TOLL",  "TONE",  "TONG",  "TONY",  "TOOK",
  1205. "TOOL",  "TOOT",  "TORE",  "TORN",  "TOTE",  "TOUR",  "TOUT",  "TOWN",
  1206. "TRAG",  "TRAM",  "TRAY",  "TREE",  "TREK",  "TRIG",  "TRIM",  "TRIO",
  1207. "TROD",  "TROT",  "TROY",  "TRUE",  "TUBA",  "TUBE",  "TUCK",  "TUFT",
  1208. "TUNA",  "TUNE",  "TUNG",  "TURF",  "TURN",  "TUSK",  "TWIG",  "TWIN",
  1209. "TWIT",  "ULAN",  "UNIT",  "URGE",  "USED",  "USER",  "USES",  "UTAH",
  1210. "VAIL",  "VAIN",  "VALE",  "VARY",  "VASE",  "VAST",  "VEAL",  "VEDA",
  1211. "VEIL",  "VEIN",  "VEND",  "VENT",  "VERB",  "VERY",  "VETO",  "VICE",
  1212. "VIEW",  "VINE",  "VISE",  "VOID",  "VOLT",  "VOTE",  "WACK",  "WADE",
  1213. "WAGE",  "WAIL",  "WAIT",  "WAKE",  "WALE",  "WALK",  "WALL",  "WALT",
  1214. "WAND",  "WANE",  "WANG",  "WANT",  "WARD",  "WARM",  "WARN",  "WART",
  1215.  
  1216.  
  1217. Haller, Metz, Nesser, & Straw                                [Page 21]
  1218.  
  1219. INTERNET DRAFT        A One Time Password System        March 24, 1997
  1220.  
  1221.  
  1222. "WASH",  "WAST",  "WATS",  "WATT",  "WAVE",  "WAVY",  "WAYS",  "WEAK",
  1223. "WEAL",  "WEAN",  "WEAR",  "WEED",  "WEEK",  "WEIR",  "WELD",  "WELL",
  1224. "WELT",  "WENT",  "WERE",  "WERT",  "WEST",  "WHAM",  "WHAT",  "WHEE",
  1225. "WHEN",  "WHET",  "WHOA",  "WHOM",  "WICK",  "WIFE",  "WILD",  "WILL",
  1226. "WIND",  "WINE",  "WING",  "WINK",  "WINO",  "WIRE",  "WISE",  "WISH",
  1227. "WITH",  "WOLF",  "WONT",  "WOOD",  "WOOL",  "WORD",  "WORE",  "WORK",
  1228. "WORM",  "WORN",  "WOVE",  "WRIT",  "WYNN",  "YALE",  "YANG",  "YANK",
  1229. "YARD",  "YARN",  "YAWL",  "YAWN",  "YEAH",  "YEAR",  "YELL",  "YOGA",
  1230. "YOKE"   };
  1231.  
  1232.  
  1233.  
  1234.  
  1235.  
  1236.  
  1237.  
  1238.  
  1239.  
  1240.  
  1241.  
  1242.  
  1243.  
  1244.  
  1245.  
  1246.  
  1247.  
  1248.  
  1249.  
  1250.  
  1251.  
  1252.  
  1253.  
  1254.  
  1255.  
  1256.  
  1257.  
  1258.  
  1259.  
  1260.  
  1261.  
  1262.  
  1263.  
  1264.  
  1265.  
  1266.  
  1267.  
  1268.  
  1269.  
  1270.  
  1271.  
  1272.  
  1273.  
  1274.  
  1275. Haller, Metz, Nesser, & Straw                                [Page 22]
  1276.