RFC 2984 (rfc2984) - Page 2 of 6
Use of the CAST-128 Encryption Algorithm in CMS
Alternative Format: Original Text Document
RFC 2984 CAST-128 in CMS October 2000 commercial and non-commercial uses worldwide [IPR], and therefore is widely used in a number of applications around the Internet. It thus seems to be a suitable optional encryption algorithm for S/MIME. This document describes how to use CAST-128 within the S/MIME CMS specification. 2. Specification This section provides the OIDs and processing information necessary for CAST-128 to be used for content and key encryption in CMS. 2.1 OIDs for Content and Key Encryption CAST-128 is added to the set of optional symmetric encryption algorithms in CMS by providing two unique object identifiers (OIDs). One OID defines the content encryption algorithm and the other defines the key encryption algorithm. Thus a CMS agent can apply CAST-128 either for content or key encryption by selecting the corresponding object identifier, supplying the required parameter, and starting the program code. For content encryption the use of CAST-128 in cipher block chaining (CBC) mode is RECOMMENDED. The key length is variable (from 40 to 128 bits in 1-octet increments). The CAST-128 content-encryption algorithm in CBC mode has the following object identifier: cast5CBC OBJECT IDENTIFIER ::= {iso(1) member-body(2) us(840) nt(113533) nsn(7) algorithms(66) 10} The parameter associated with this object identifier contains the initial vector IV and the key length: cast5CBCParameters ::= SEQUENCE { iv OCTET STRING DEFAULT 0, -- Initialization vector keyLength INTEGER -- Key length, in bits } Comments regarding the use of the IV may be found in [RFC 2144]. The key-wrap/unwrap procedures used to encrypt/decrypt a CAST-128 content-encryption key with a CAST-128 key-encryption key are specified in Section 2.2. Generation and distribution of key- encryption keys are beyond the scope of this document. Adams Standards Track



