home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / drafts / draft_ietf_i / draft-ietf-ipsec-ciph-blowfish-cbc-00.txt < prev    next >
Text File  |  1997-07-17  |  11KB  |  373 lines

  1.  
  2. Internet Draft       The ESP Blowfish Algorithm         23 June 1997
  3.  
  4.  
  5.  
  6. Security Working Group                            Ipsec Working Group
  7. INTERNET DRAFT                                              Rob Adams
  8.                                                    Cisco Systems Inc.
  9.                                                          23 June 1997
  10.  
  11.                                                 Expires in Six Months
  12.  
  13.  
  14.  
  15.  
  16.          The ESP Blowfish-CBC Algorithm Using an Explicit IV
  17.              <draft-ietf-ipsec-ciph-blowfish-cbc-00.txt>
  18.  
  19.  
  20.  
  21. Status of this Memo
  22.  
  23.    This document is a submission to the IETF Internet Protocol
  24.    Security (IPSEC) Working Group. Comments are solicited and should
  25.    be addressed to the working group mailing list (ipsec@tis.com) or
  26.    to the editor.
  27.  
  28.    This document is an Internet-Draft.  Internet Drafts are working
  29.    documents of the Internet Engineering Task Force (IETF), its
  30.    areas, and its working Groups. Note that other groups may also
  31.    distribute working documents as Internet Drafts.
  32.  
  33.    Internet-Drafts draft documents are valid for a maximum of six
  34.    months and may be updated, replaced, or obsolete by other
  35.    documents at any time. It is inappropriate to use Internet-Drafts
  36.    as reference material or to cite them other than as "work in
  37.    progress."
  38.  
  39.    To learn the current status of any Internet-Draft, please check
  40.    the "1id-abstracts.txt" listing contained in the Internet-Drafts
  41.    Shadow Directories on ftp.is.co.za (Africa), nic.nordu.net
  42.    (Europe), munnari.oz.au (Pacific Rim), ds.internic.net (US East
  43.    Coast), or ftp.isi.edu (US West Coast).
  44.  
  45.    Distribution of this memo is unlimited.
  46.  
  47. Abstract
  48.  
  49.   This draft describes the use of the Blowfish [Schneier] block
  50.   cipher algorithm to be used with the IPSec Encapsulating Security
  51.   Payload (ESP) [Kent97].
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61. R. Adams                                                     [Page 1]
  62.  
  63.  
  64.  
  65. Internet Draft       The ESP Blowfish Algorithm         23 June 1997
  66.  
  67. Table of Contents
  68.  
  69.    1. Introduction..................................................2
  70.      1.1 Specification of Requirements..............................2
  71.    2. Cipher Algorithm..............................................2
  72.      2.1 Rounds.....................................................2
  73.      2.2 Background.................................................3
  74.      2.3 Performance................................................3
  75.    3. Key Size......................................................3
  76.      3.1 Weak Keys..................................................3
  77.    4. ESP Payload...................................................3
  78.      4.1 Block Size and Padding.....................................4
  79.      4.2 Interaction with Authentication............................4
  80.    5. Keying Material...............................................4
  81.    6. Security Considerations.......................................4
  82.    7. References....................................................5
  83.    8. Acknowledgements..............................................5
  84.    9. Editor's Address..............................................6
  85.  
  86. 1. Introduction
  87.  
  88.    This draft describes the use of the Blowfish cipher algorithm in
  89.    CBC mode to provide confidentiality in conjunction with the IPsec
  90.    ESP protocol [Kent97].
  91.  
  92.    This document assumes readers are familiar with the terms and
  93.    concepts in [RFC-1825] and in [Kent97].
  94.  
  95.    Blowfish is described in detail in [Schneier] and [Schneier93].
  96.  
  97. 1.1 Specification of Requirements
  98.  
  99.    The keywords "MUST", "MUST NOT", "REQUIRED", "SHOULD", "SHOULD
  100.    NOT", and "MAY" that appear in this document are to be interpreted
  101.    as described in [RFC-2119].
  102.  
  103. 2. Cipher Algorithm
  104.  
  105.    This document gives implementers specific instructions for using
  106.    the Blowfish block cipher algorithm in CBC mode with a block size
  107.    of 64 bits as described in [Schneier93] to secure ESP.
  108.  
  109. 2.1 Rounds
  110.  
  111.    Compliant implementations MUST use only 16 round Blowfish. Fewer
  112.    rounds are open to several different sorts of attacks outlined in
  113.    [Schneier95].
  114.  
  115.  
  116. R. Adams                                                     [Page 2]
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124. Internet Draft       The ESP Blowfish Algorithm         23 June 1997
  125.  
  126.  
  127. 2.2 Background
  128.  
  129.  
  130.    Bruce Schneier of Counterpane Systems developed the Blowfish block
  131.    cipher algorithm.  The algorithm is described in detail in
  132.    [Schneier93].
  133.  
  134. 2.3 Performance
  135.  
  136.    Blowfish is designed to encrypt data very efficiently on 32 bit
  137.    processors.   Although setting up the keys for Blowfish is complex
  138.    and time consuming, actual encryption is efficient.  Sixteen round
  139.    Blowfish uses only 18 clock cycles per byte encrypted on a Pentium
  140.    versus 45 clock cycles for 16 round DES with a 56 bit key, and 108
  141.    for 48 round Triple-DES.
  142.  
  143.    For a comparison table of the speed of Blowfish and other cipher
  144.    algorithms, see [Schneier97].
  145.  
  146.  
  147. 3. Key Size
  148.  
  149.    Blowfish accepts keying material of varying lengths up to 448 bits
  150.    inclusive. Implementations MUST prohibit the use of a zero length
  151.    key for this transform. Implementations SHOULD prohibit the use of
  152.    a key of length less than 40 bits. Implementations SHOULD support
  153.    keys longer than 128 bits up to 448 bits. Implementations MUST
  154.    only allow key sizes in 8 bit increments for interoperability
  155.    purposes. For example, implementations should allow 40, 48, 56,
  156.    64, ? 440, and 448 bit keys. The number of bits of keying material
  157.    required for Blowfish is a host specific policy issue.
  158.  
  159.  
  160. 3.1 Weak Keys
  161.  
  162.    Weak keys for Blowfish have been discovered.  Weak keys are keys
  163.    that produce the identical entries in a given S-box.
  164.    Unfortunately, there is no way to test for weak keys before the S-
  165.    box values are generated. However, the chances of randomly
  166.    generating such a key are small.
  167.  
  168.  
  169. 4. ESP Payload
  170.  
  171.    Blowfish in CBC mode requires an initialization vector of eight
  172.    octet for use with ESP [Kent97].  The IV MUST precede the data to
  173.    be encrypted in the packet and must be eight octets (64 bits) in
  174.    length.  The IV SHOULD be chosen at random. Common practice is to
  175.    use random data for the first IV and the last eight octets of
  176.    encrypted data from an encryption process as the IV for the next
  177.    encryption process.
  178.  
  179.  
  180.  
  181. R. Adams                                                     [Page 3]
  182.  
  183.  
  184.  
  185.  
  186. Internet Draft       The ESP Blowfish Algorithm         23 June 1997
  187.  
  188.  
  189.    The payload field, as defined in [Kent97], is broken down
  190.    according to the following diagram:
  191.  
  192.  
  193.    +---------------+---------------+---------------+---------------+
  194.    |                                                               |
  195.    +                     Initialization Vector                     +
  196.    |                                                               |
  197.    +---------------+---------------+---------------+---------------+
  198.    |                                                               |
  199.    ~               Encrypted Payload (Variable length)             ~
  200.    |                                                               |
  201.    +---------------+---------------+---------------+---------------+
  202.     1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8
  203.  
  204.  
  205.  
  206.  
  207. 4.1 Block Size and Padding
  208.  
  209.  
  210.    The Blowfish-CBC cipher algorithm MUST use a block size of eight
  211.    octets (64 bits).
  212.  
  213.    Padding is used to align the payload type and pad length octets as
  214.    specified in [Kent97].  Padding must be sufficient to align the
  215.    data to be encrypted to an eight octet (64 bit) boundary.
  216.  
  217.  
  218. 4.2 Interaction with Authentication
  219.  
  220.  
  221.    This Blowfish-CBC ESP document does not limit which authentication
  222.    algorithm ESP uses.
  223.  
  224. 5. Keying Material
  225.  
  226.  
  227.    The key exchange protocol MUST provide this ESP algorithm with a
  228.    number of key material bits greater than or equal to the required
  229.    key size.
  230.  
  231.    If the key exchange protocol does not negotiate key size, the key
  232.    must be 128 bits in length.
  233.  
  234.    This ESP algorithm will take the Blowfish-CBC key from the first
  235.    <x> bits of keying material, where <x> represents the required key
  236.    size in bits.
  237.  
  238. 6. Security Considerations
  239.  
  240.    Blowfish is thought to be a secure encryption algorithm. Currently
  241.    there are no known attacks on 16 round Blowfish [Schneier].
  242.  
  243.  
  244.  
  245.  
  246.  
  247. R. Adams                                                     [Page 4]
  248.  
  249.  
  250.  
  251.  
  252. Internet Draft       The ESP Blowfish Algorithm         23 June 1997
  253.  
  254.  
  255. 7. References
  256.  
  257.  
  258.    [Kent97] Kent, S., Atkinson, R., "IP Encapsulating Security
  259.    Payload (ESP)", ftp://ietf.org/internet-drafts/draft-ietf-ipsec-
  260.    new-esp-00.txt, March 1997
  261.  
  262.    [RFC-1825] Atkinson, R. "Security Architecture for the Internet
  263.    Protocol", ftp://ds.internic.net/rfc/rfc1825.txt, August 1995.
  264.  
  265.    [RFC-2085] Oehler, M., Glenn, R., "HMAC-MD5 IP Authentication with
  266.    Replay Prevention," ftp://ds.internic.net/rfc/rfc2085.txt,
  267.    February 1997.
  268.  
  269.    [RFC-2119] Bradner, S., "Key words for use in RFCs to indicate
  270.    Requirement Levels", ftp://ds.internic.net/rfc/rfc2119.txt, March
  271.    1997
  272.  
  273.    [Schneier] Schneier, B., "Applied Cryptography Second Edition",
  274.    John Wiley & Sons, New York, NY, 1995.  ISBN 0-471-12845-7
  275.  
  276.    [Schneier93] Schneier, B., "Description of a New Variable-Length
  277.    Key, 64-Bit Block Cipher", from "Fast Software Encryption,
  278.    Cambridge Security Workshop Proceedings", Springer-Verlag, 1994,
  279.    pp. 191-204. http://www.counterpane.com/bfsverlag.html
  280.  
  281.    [Schneier95] Schneier, B., "THE BLOWFISH ENCRYPTION ALGORITHM--
  282.    ONE YEAR LATER", Dr. Dobb's Journal, September 1995,
  283.    http://www.counterpane.com/bfdobsoyl.html
  284.  
  285.    [Scheier97] Scheier, B. "Speed Comparisons of Block Ciphers on a
  286.    Pentium." February 1997, http://www.counterpane.com/speed.html
  287.  
  288. 8. Acknowledgements
  289.  
  290.    This document is based on work done in the IPsec working group and
  291.    suggestions from Roy Pereira and Stephen Kent.
  292.  
  293.    The IPSec working group can be contacted through its chairs:
  294.  
  295.         Robert Moskowitz
  296.         Rgm3@chrysler.com
  297.         Chrysler Corporation
  298.  
  299.  
  300.         Theodore Y. Ts'o
  301.         Tytso@MIT.EDU
  302.         Massachusetts Institute of Technology
  303.  
  304.  
  305.    or via the IPSec working group's mailing list (ipsec@tis.com).
  306.  
  307.  
  308.  
  309. R. Adams                                                     [Page 5]
  310.  
  311.  
  312.  
  313.  
  314.  
  315. Internet Draft       The ESP Blowfish Algorithm         23 June 1997
  316.  
  317.  
  318. 9. Editor's Address
  319.  
  320.  
  321.    Rob Adams
  322.    adams@cisco.com
  323.    cisco Systems Inc.
  324.    101 Cooper St.
  325.    Santa Cruz, CA 95060
  326.    United States of America
  327.  
  328.    +1 408 457 5397
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338.  
  339.  
  340.  
  341.  
  342.  
  343.  
  344.  
  345.  
  346.  
  347.  
  348.  
  349.  
  350.  
  351.  
  352.  
  353.  
  354.  
  355.  
  356.  
  357.  
  358.  
  359.  
  360.  
  361.  
  362.  
  363.  
  364.  
  365.  
  366.  
  367.  
  368.  
  369.  
  370. R. Adams                                                     [Page 6]
  371.  
  372.  
  373.