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 >
Wrap
Text File
|
1997-07-17
|
11KB
|
373 lines
Internet Draft The ESP Blowfish Algorithm 23 June 1997
Security Working Group Ipsec Working Group
INTERNET DRAFT Rob Adams
Cisco Systems Inc.
23 June 1997
Expires in Six Months
The ESP Blowfish-CBC Algorithm Using an Explicit IV
<draft-ietf-ipsec-ciph-blowfish-cbc-00.txt>
Status of this Memo
This document is a submission to the IETF Internet Protocol
Security (IPSEC) Working Group. Comments are solicited and should
be addressed to the working group mailing list (ipsec@tis.com) or
to the editor.
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 draft documents are valid for a maximum of six
months and may be updated, replaced, or obsolete by other
documents at any time. It is inappropriate to use Internet-Drafts
as reference material or to cite them other than as "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), munnari.oz.au (Pacific Rim), ds.internic.net (US East
Coast), or ftp.isi.edu (US West Coast).
Distribution of this memo is unlimited.
Abstract
This draft describes the use of the Blowfish [Schneier] block
cipher algorithm to be used with the IPSec Encapsulating Security
Payload (ESP) [Kent97].
R. Adams [Page 1]
Internet Draft The ESP Blowfish Algorithm 23 June 1997
Table of Contents
1. Introduction..................................................2
1.1 Specification of Requirements..............................2
2. Cipher Algorithm..............................................2
2.1 Rounds.....................................................2
2.2 Background.................................................3
2.3 Performance................................................3
3. Key Size......................................................3
3.1 Weak Keys..................................................3
4. ESP Payload...................................................3
4.1 Block Size and Padding.....................................4
4.2 Interaction with Authentication............................4
5. Keying Material...............................................4
6. Security Considerations.......................................4
7. References....................................................5
8. Acknowledgements..............................................5
9. Editor's Address..............................................6
1. Introduction
This draft describes the use of the Blowfish cipher algorithm in
CBC mode to provide confidentiality in conjunction with the IPsec
ESP protocol [Kent97].
This document assumes readers are familiar with the terms and
concepts in [RFC-1825] and in [Kent97].
Blowfish is described in detail in [Schneier] and [Schneier93].
1.1 Specification of Requirements
The keywords "MUST", "MUST NOT", "REQUIRED", "SHOULD", "SHOULD
NOT", and "MAY" that appear in this document are to be interpreted
as described in [RFC-2119].
2. Cipher Algorithm
This document gives implementers specific instructions for using
the Blowfish block cipher algorithm in CBC mode with a block size
of 64 bits as described in [Schneier93] to secure ESP.
2.1 Rounds
Compliant implementations MUST use only 16 round Blowfish. Fewer
rounds are open to several different sorts of attacks outlined in
[Schneier95].
R. Adams [Page 2]
Internet Draft The ESP Blowfish Algorithm 23 June 1997
2.2 Background
Bruce Schneier of Counterpane Systems developed the Blowfish block
cipher algorithm. The algorithm is described in detail in
[Schneier93].
2.3 Performance
Blowfish is designed to encrypt data very efficiently on 32 bit
processors. Although setting up the keys for Blowfish is complex
and time consuming, actual encryption is efficient. Sixteen round
Blowfish uses only 18 clock cycles per byte encrypted on a Pentium
versus 45 clock cycles for 16 round DES with a 56 bit key, and 108
for 48 round Triple-DES.
For a comparison table of the speed of Blowfish and other cipher
algorithms, see [Schneier97].
3. Key Size
Blowfish accepts keying material of varying lengths up to 448 bits
inclusive. Implementations MUST prohibit the use of a zero length
key for this transform. Implementations SHOULD prohibit the use of
a key of length less than 40 bits. Implementations SHOULD support
keys longer than 128 bits up to 448 bits. Implementations MUST
only allow key sizes in 8 bit increments for interoperability
purposes. For example, implementations should allow 40, 48, 56,
64, ? 440, and 448 bit keys. The number of bits of keying material
required for Blowfish is a host specific policy issue.
3.1 Weak Keys
Weak keys for Blowfish have been discovered. Weak keys are keys
that produce the identical entries in a given S-box.
Unfortunately, there is no way to test for weak keys before the S-
box values are generated. However, the chances of randomly
generating such a key are small.
4. ESP Payload
Blowfish in CBC mode requires an initialization vector of eight
octet for use with ESP [Kent97]. The IV MUST precede the data to
be encrypted in the packet and must be eight octets (64 bits) in
length. The IV SHOULD be chosen at random. Common practice is to
use random data for the first IV and the last eight octets of
encrypted data from an encryption process as the IV for the next
encryption process.
R. Adams [Page 3]
Internet Draft The ESP Blowfish Algorithm 23 June 1997
The payload field, as defined in [Kent97], is broken down
according to the following diagram:
+---------------+---------------+---------------+---------------+
| |
+ Initialization Vector +
| |
+---------------+---------------+---------------+---------------+
| |
~ Encrypted Payload (Variable length) ~
| |
+---------------+---------------+---------------+---------------+
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
4.1 Block Size and Padding
The Blowfish-CBC cipher algorithm MUST use a block size of eight
octets (64 bits).
Padding is used to align the payload type and pad length octets as
specified in [Kent97]. Padding must be sufficient to align the
data to be encrypted to an eight octet (64 bit) boundary.
4.2 Interaction with Authentication
This Blowfish-CBC ESP document does not limit which authentication
algorithm ESP uses.
5. Keying Material
The key exchange protocol MUST provide this ESP algorithm with a
number of key material bits greater than or equal to the required
key size.
If the key exchange protocol does not negotiate key size, the key
must be 128 bits in length.
This ESP algorithm will take the Blowfish-CBC key from the first
<x> bits of keying material, where <x> represents the required key
size in bits.
6. Security Considerations
Blowfish is thought to be a secure encryption algorithm. Currently
there are no known attacks on 16 round Blowfish [Schneier].
R. Adams [Page 4]
Internet Draft The ESP Blowfish Algorithm 23 June 1997
7. References
[Kent97] Kent, S., Atkinson, R., "IP Encapsulating Security
Payload (ESP)", ftp://ietf.org/internet-drafts/draft-ietf-ipsec-
new-esp-00.txt, March 1997
[RFC-1825] Atkinson, R. "Security Architecture for the Internet
Protocol", ftp://ds.internic.net/rfc/rfc1825.txt, August 1995.
[RFC-2085] Oehler, M., Glenn, R., "HMAC-MD5 IP Authentication with
Replay Prevention," ftp://ds.internic.net/rfc/rfc2085.txt,
February 1997.
[RFC-2119] Bradner, S., "Key words for use in RFCs to indicate
Requirement Levels", ftp://ds.internic.net/rfc/rfc2119.txt, March
1997
[Schneier] Schneier, B., "Applied Cryptography Second Edition",
John Wiley & Sons, New York, NY, 1995. ISBN 0-471-12845-7
[Schneier93] Schneier, B., "Description of a New Variable-Length
Key, 64-Bit Block Cipher", from "Fast Software Encryption,
Cambridge Security Workshop Proceedings", Springer-Verlag, 1994,
pp. 191-204. http://www.counterpane.com/bfsverlag.html
[Schneier95] Schneier, B., "THE BLOWFISH ENCRYPTION ALGORITHM--
ONE YEAR LATER", Dr. Dobb's Journal, September 1995,
http://www.counterpane.com/bfdobsoyl.html
[Scheier97] Scheier, B. "Speed Comparisons of Block Ciphers on a
Pentium." February 1997, http://www.counterpane.com/speed.html
8. Acknowledgements
This document is based on work done in the IPsec working group and
suggestions from Roy Pereira and Stephen Kent.
The IPSec working group can be contacted through its chairs:
Robert Moskowitz
Rgm3@chrysler.com
Chrysler Corporation
Theodore Y. Ts'o
Tytso@MIT.EDU
Massachusetts Institute of Technology
or via the IPSec working group's mailing list (ipsec@tis.com).
R. Adams [Page 5]
Internet Draft The ESP Blowfish Algorithm 23 June 1997
9. Editor's Address
Rob Adams
adams@cisco.com
cisco Systems Inc.
101 Cooper St.
Santa Cruz, CA 95060
United States of America
+1 408 457 5397
R. Adams [Page 6]