⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rfc2630.txt

📁 著名的RFC文档,其中有一些文档是已经翻译成中文的的.
💻 TXT
📖 第 1 页 / 共 5 页
字号:
Network Working Group                                        R. HousleyRequest for Comments: 2630                                       SPYRUSCategory: Standards Track                                     June 1999                      Cryptographic Message SyntaxStatus of this Memo   This document specifies an Internet standards track protocol for the   Internet community, and requests discussion and suggestions for   improvements.  Please refer to the current edition of the "Internet   Official Protocol Standards" (STD 1) for the standardization state   and status of this protocol.  Distribution of this memo is unlimited.Copyright Notice   Copyright (C) The Internet Society (1999).  All Rights Reserved.Abstract   This document describes the Cryptographic Message Syntax.  This   syntax is used to digitally sign, digest, authenticate, or encrypt   arbitrary messages.   The Cryptographic Message Syntax is derived from PKCS #7 version 1.5   as specified in RFC 2315 [PKCS#7].  Wherever possible, backward   compatibility is preserved; however, changes were necessary to   accommodate attribute certificate transfer and key agreement   techniques for key management.Housley                     Standards Track                     [Page 1]RFC 2630              Cryptographic Message Syntax             June 1999Table of Contents   1   Introduction .................................................  4   2   General Overview .............................................  4   3   General Syntax ...............................................  5   4   Data Content Type ............................................  5   5   Signed-data Content Type .....................................  6       5.1  SignedData Type .........................................  7       5.2  EncapsulatedContentInfo Type ............................  8       5.3  SignerInfo Type .........................................  9       5.4  Message Digest Calculation Process ...................... 11       5.5  Message Signature Generation Process .................... 12       5.6  Message Signature Verification Process .................. 12   6   Enveloped-data Content Type .................................. 12       6.1  EnvelopedData Type ...................................... 14       6.2  RecipientInfo Type ...................................... 15            6.2.1  KeyTransRecipientInfo Type ....................... 16            6.2.2  KeyAgreeRecipientInfo Type ....................... 17            6.2.3  KEKRecipientInfo Type ............................ 19       6.3  Content-encryption Process .............................. 20       6.4  Key-encryption Process .................................. 20   7   Digested-data Content Type ................................... 21   8   Encrypted-data Content Type .................................. 22   9   Authenticated-data Content Type .............................. 23       9.1  AuthenticatedData Type .................................. 23       9.2  MAC Generation .......................................... 25       9.3  MAC Verification ........................................ 26   10  Useful Types ................................................. 27       10.1  Algorithm Identifier Types ............................. 27             10.1.1  DigestAlgorithmIdentifier ...................... 27             10.1.2  SignatureAlgorithmIdentifier ................... 27             10.1.3  KeyEncryptionAlgorithmIdentifier ............... 28             10.1.4  ContentEncryptionAlgorithmIdentifier ........... 28             10.1.5  MessageAuthenticationCodeAlgorithm ............. 28       10.2  Other Useful Types ..................................... 28             10.2.1  CertificateRevocationLists ..................... 28             10.2.2  CertificateChoices ............................. 29             10.2.3  CertificateSet ................................. 29             10.2.4  IssuerAndSerialNumber .......................... 30             10.2.5  CMSVersion ..................................... 30             10.2.6  UserKeyingMaterial ............................. 30             10.2.7  OtherKeyAttribute .............................. 30Housley                     Standards Track                     [Page 2]RFC 2630              Cryptographic Message Syntax             June 1999   11  Useful Attributes ............................................ 31       11.1  Content Type ........................................... 31       11.2  Message Digest ......................................... 32       11.3  Signing Time ........................................... 32       11.4  Countersignature ....................................... 34   12  Supported Algorithms ......................................... 35       12.1  Digest Algorithms ...................................... 35             12.1.1  SHA-1 .......................................... 35             12.1.2  MD5 ............................................ 35       12.2  Signature Algorithms ................................... 36             12.2.1  DSA ............................................ 36             12.2.2  RSA ............................................ 36       12.3  Key Management Algorithms .............................. 36             12.3.1  Key Agreement Algorithms ....................... 36                     12.3.1.1  X9.42 Ephemeral-Static Diffie-Hellman. 37             12.3.2  Key Transport Algorithms ....................... 38                     12.3.2.1  RSA .................................. 39             12.3.3  Symmetric Key-Encryption Key Algorithms ........ 39                     12.3.3.1  Triple-DES Key Wrap .................. 40                     12.3.3.2  RC2 Key Wrap ......................... 41      12.4  Content Encryption Algorithms ........................... 41            12.4.1  Triple-DES CBC .................................. 42            12.4.2  RC2 CBC ......................................... 42      12.5  Message Authentication Code Algorithms .................. 42            12.5.1  HMAC with SHA-1 ................................. 43      12.6  Triple-DES and RC2 Key Wrap Algorithms .................. 43            12.6.1  Key Checksum .................................... 44            12.6.2  Triple-DES Key Wrap ............................. 44            12.6.3  Triple-DES Key Unwrap ........................... 44            12.6.4  RC2 Key Wrap .................................... 45            12.6.5  RC2 Key Unwrap .................................. 46   Appendix A:  ASN.1 Module ........................................ 47   References ....................................................... 55   Security Considerations .......................................... 56   Acknowledgments .................................................. 58   Author's Address ................................................. 59   Full Copyright Statement ......................................... 60Housley                     Standards Track                     [Page 3]RFC 2630              Cryptographic Message Syntax             June 19991  Introduction   This document describes the Cryptographic Message Syntax.  This   syntax is used to digitally sign, digest, authenticate, or encrypt   arbitrary messages.   The Cryptographic Message Syntax describes an encapsulation syntax   for data protection.  It supports digital signatures, message   authentication codes, and encryption.  The syntax allows multiple   encapsulation, so one encapsulation envelope can be nested inside   another.  Likewise, one party can digitally sign some previously   encapsulated data.  It also allows arbitrary attributes, such as   signing time, to be signed along with the message content, and   provides for other attributes such as countersignatures to be   associated with a signature.   The Cryptographic Message Syntax can support a variety of   architectures for certificate-based key management, such as the one   defined by the PKIX working group.   The Cryptographic Message Syntax values are generated using ASN.1   [X.208-88], using BER-encoding [X.209-88].  Values are typically   represented as octet strings.  While many systems are capable of   transmitting arbitrary octet strings reliably, it is well known that   many electronic-mail systems are not.  This document does not address   mechanisms for encoding octet strings for reliable transmission in   such environments.2  General Overview   The Cryptographic Message Syntax (CMS) is general enough to support   many different content types.  This document defines one protection   content, ContentInfo.  ContentInfo encapsulates a single identified   content type, and the identified type may provide further   encapsulation.  This document defines six content types: data,   signed-data, enveloped-data, digested-data, encrypted-data, and   authenticated-data.  Additional content types can be defined outside   this document.   An implementation that conforms to this specification must implement   the protection content, ContentInfo, and must implement the data,   signed-data, and enveloped-data content types.  The other content   types may be implemented if desired.   As a general design philosophy, each content type permits single pass   processing using indefinite-length Basic Encoding Rules (BER)   encoding.  Single-pass operation is especially helpful if content is   large, stored on tapes, or is "piped" from another process.  Single-Housley                     Standards Track                     [Page 4]RFC 2630              Cryptographic Message Syntax             June 1999   pass operation has one significant drawback: it is difficult to   perform encode operations using the Distinguished Encoding Rules   (DER) [X.509-88] encoding in a single pass since the lengths of the   various components may not be known in advance.  However, signed   attributes within the signed-data content type and authenticated   attributes within the authenticated-data content type require DER   encoding.  Signed attributes and authenticated attributes must be   transmitted in DER form to ensure that recipients can verify a   content that contains one or more unrecognized attributes.  Signed   attributes and authenticated attributes are the only CMS data types   that require DER encoding.3  General Syntax   The Cryptographic Message Syntax (CMS) associates a content type   identifier with a content.  The syntax shall have ASN.1 type   ContentInfo:      ContentInfo ::= SEQUENCE {        contentType ContentType,        content [0] EXPLICIT ANY DEFINED BY contentType }      ContentType ::= OBJECT IDENTIFIER   The fields of ContentInfo have the following meanings:      contentType indicates the type of the associated content.  It is      an object identifier; it is a unique string of integers assigned      by an authority that defines the content type.      content is the associated content.  The type of content can be      determined uniquely by contentType.  Content types for data,      signed-data, enveloped-data, digested-data, encrypted-data, and      authenticated-data are defined in this document.  If additional      content types are defined in other documents, the ASN.1 type      defined should not be a CHOICE type.4  Data Content Type   The following object identifier identifies the data content type:      id-data OBJECT IDENTIFIER ::= { iso(1) member-body(2)          us(840) rsadsi(113549) pkcs(1) pkcs7(7) 1 }   The data content type is intended to refer to arbitrary octet   strings, such as ASCII text files; the interpretation is left to the   application.  Such strings need not have any internal structureHousley                     Standards Track                     [Page 5]RFC 2630              Cryptographic Message Syntax             June 1999   (although they could have their own ASN.1 definition or other   structure).   The data content type is generally encapsulated in the signed-data,   enveloped-data, digested-data, encrypted-data, or authenticated-data   content type.5  Signed-data Content Type   The signed-data content type consists of a content of any type and   zero or more signature values.  Any number of signers in parallel can   sign any type of content.   The typical application of the signed-data content type represents   one signer's digital signature on content of the data content type.   Another typical application disseminates certificates and certificate   revocation lists (CRLs).   The process by which signed-data is constructed involves the   following steps:      1.  For each signer, a message digest, or hash value, is computed      on the content with a signer-specific message-digest algorithm.      If the signer is signing any information other than the content,      the message digest of the content and the other information are      digested with the signer's message digest algorithm (see Section      5.4), and the result becomes the "message digest."      2.  For each signer, the message digest is digitally signed using      the signer's private key.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -