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

📄 rfc2313.txt

📁 著名的RFC文档,其中有一些文档是已经翻译成中文的的.
💻 TXT
📖 第 1 页 / 共 3 页
字号:
Network Working Group                                      B. KaliskiRequest for Comments: 2313                      RSA Laboratories EastCategory: Informational                                    March 1998                        PKCS #1: RSA Encryption                              Version 1.5Status of this Memo   This memo provides information for the Internet community.  It does   not specify an Internet standard of any kind.  Distribution of this   memo is unlimited.Copyright Notice   Copyright (C) The Internet Society (1998).  All Rights Reserved.Overview   This document describes a method for encrypting data using the RSA   public-key cryptosystem.1. Scope   This document describes a method for encrypting data using the RSA   public-key cryptosystem. Its intended use is in the construction of   digital signatures and digital envelopes, as described in PKCS #7:        o    For digital signatures, the content to be signed             is first reduced to a message digest with a             message-digest algorithm (such as MD5), and then             an octet string containing the message digest is             encrypted with the RSA private key of the signer             of the content. The content and the encrypted             message digest are represented together according             to the syntax in PKCS #7 to yield a digital             signature. This application is compatible with             Privacy-Enhanced Mail (PEM) methods.        o    For digital envelopes, the content to be enveloped             is first encrypted under a content-encryption key             with a content-encryption algorithm (such as DES),             and then the content-encryption key is encrypted             with the RSA public keys of the recipients of the             content. The encrypted content and the encryptedKaliski                      Informational                      [Page 1]RFC 2313                PKCS #1: RSA Encryption               March 1998             content-encryption key are represented together             according to the syntax in PKCS #7 to yield a             digital envelope. This application is also             compatible with PEM methods.   The document also describes a syntax for RSA public keys and private   keys. The public-key syntax would be used in certificates; the   private-key syntax would be used typically in PKCS #8 private-key   information. The public-key syntax is identical to that in both X.509   and Privacy-Enhanced Mail.  Thus X.509/PEM RSA keys can be used in   this document.   The document also defines three signature algorithms for use in   signing X.509/PEM certificates and certificate-revocation lists, PKCS   #6 extended certificates, and other objects employing digital   signatures such as X.401 message tokens.   Details on message-digest and content-encryption algorithms are   outside the scope of this document, as are details on sources of the   pseudorandom bits required by certain methods in this document.2. References   FIPS PUB 46-1  National Bureau of Standards. FIPS PUB 46-1:             Data Encryption Standard. January 1988.   PKCS #6   RSA Laboratories. PKCS #6: Extended-Certificate             Syntax. Version 1.5, November 1993.   PKCS #7   RSA Laboratories. PKCS #7: Cryptographic Message             Syntax. Version 1.5, November 1993.   PKCS #8   RSA Laboratories. PKCS #8: Private-Key Information             Syntax. Version 1.2, November 1993.   RFC 1319  Kaliski, B., "The MD2 Message-Digest             Algorithm," RFC 1319, April 1992.   RFC 1320  Rivest, R., "The MD4 Message-Digest             Algorithm," RFC 1320, April 1992.   RFC 1321  Rivest, R., "The MD5 Message-Digest             Algorithm," RFC 1321, April 1992.   RFC 1423  Balenson, D., "Privacy Enhancement for             Internet Electronic Mail: Part III: Algorithms,             Modes, and Identifiers," RFC 1423, February 1993.Kaliski                      Informational                      [Page 2]RFC 2313                PKCS #1: RSA Encryption               March 1998   X.208     CCITT. Recommendation X.208: Specification of             Abstract Syntax Notation One (ASN.1). 1988.   X.209     CCITT. Recommendation X.209: Specification of             Basic Encoding Rules for Abstract Syntax Notation             One (ASN.1). 1988.   X.411     CCITT. Recommendation X.411: Message Handling             Systems: Message Transfer System: Abstract Service             Definition and Procedures.1988.   X.509     CCITT. Recommendation X.509: The Directory--             Authentication Framework. 1988.   [dBB92]   B. den Boer and A. Bosselaers. An attack on the             last two rounds of MD4. In J. Feigenbaum, editor,             Advances in Cryptology---CRYPTO '91 Proceedings,             volume 576 of Lecture Notes in Computer Science,             pages 194-203. Springer-Verlag, New York, 1992.   [dBB93]   B. den Boer  and A. Bosselaers. Collisions for the             compression function of MD5. Presented at             EUROCRYPT '93 (Lofthus, Norway, May 24-27, 1993).   [DO86]    Y. Desmedt and A.M. Odlyzko. A chosen text attack             on the RSA cryptosystem and some discrete             logarithm schemes. In H.C. Williams, editor,             Advances in Cryptology---CRYPTO '85 Proceedings,             volume 218 of Lecture Notes in Computer Science,             pages 516-521. Springer-Verlag, New York, 1986.   [Has88]   Johan Hastad. Solving simultaneous modular             equations. SIAM Journal on Computing,             17(2):336-341, April 1988.   [IM90]    Colin I'Anson and Chris Mitchell. Security defects             in CCITT Recommendation X.509--The directory             authentication framework. Computer Communications             Review, :30-34, April 1990.   [Mer90]   R.C. Merkle. Note on MD4. Unpublished manuscript,             1990.   [Mil76]   G.L. Miller. Riemann's hypothesis and tests for             primality. Journal of Computer and Systems             Sciences, 13(3):300-307, 1976.Kaliski                      Informational                      [Page 3]RFC 2313                PKCS #1: RSA Encryption               March 1998   [QC82]    J.-J. Quisquater and C. Couvreur. Fast             decipherment algorithm for RSA public-key             cryptosystem. Electronics Letters, 18(21):905-907,             October 1982.   [RSA78]   R.L. Rivest, A. Shamir, and L. Adleman. A method             for obtaining digital signatures and public-key             cryptosystems. Communications of the ACM,             21(2):120-126, February 1978.3. Definitions   For the purposes of this document, the following definitions apply.   AlgorithmIdentifier: A type that identifies an algorithm (by object   identifier) and associated parameters. This type is defined in X.509.   ASN.1: Abstract Syntax Notation One, as defined in X.208.   BER: Basic Encoding Rules, as defined in X.209.   DES: Data Encryption Standard, as defined in FIPS PUB 46-1.   MD2: RSA Data Security, Inc.'s MD2 message-digest algorithm, as   defined in RFC 1319.   MD4: RSA Data Security, Inc.'s MD4 message-digest algorithm, as   defined in RFC 1320.   MD5: RSA Data Security, Inc.'s MD5 message-digest algorithm, as   defined in RFC 1321.   modulus: Integer constructed as the product of two primes.   PEM: Internet Privacy-Enhanced Mail, as defined in RFC 1423 and   related documents.   RSA: The RSA public-key cryptosystem, as defined in [RSA78].   private key: Modulus and private exponent.   public key: Modulus and public exponent.4. Symbols and abbreviations   Upper-case symbols (e.g., BT) denote octet strings and bit strings   (in the case of the signature S); lower-case symbols (e.g., c) denote   integers.Kaliski                      Informational                      [Page 4]RFC 2313                PKCS #1: RSA Encryption               March 1998   ab   hexadecimal octet value  c    exponent   BT   block type               d    private exponent   D    data                     e    public exponent   EB   encryption block         k    length of modulus in                                        octets   ED   encrypted data           n    modulus   M    message                  p, q  prime factors of modulus   MD   message digest           x    integer encryption block   MD'  comparative message      y    integer encrypted data          digest   PS   padding string           mod n  modulo n   S    signature                X || Y  concatenation of X, Y                                 ||X||  length in octets of X5. General overview   The next six sections specify key generation, key syntax, the   encryption process, the decryption process, signature algorithms, and   object identifiers.   Each entity shall generate a pair of keys: a public key and a private   key. The encryption process shall be performed with one of the keys   and the decryption process shall be performed with the other key.   Thus the encryption process can be either a public-key operation or a   private-key operation, and so can the decryption process. Both   processes transform an octet string to another octet string. The   processes are inverses of each other if one process uses an entity's   public key and the other process uses the same entity's private key.   The encryption and decryption processes can implement either the   classic RSA transformations, or variations with padding.6. Key generation   This section describes RSA key generation.   Each entity shall select a positive integer e as its public exponent.   Each entity shall privately and randomly select two distinct odd   primes p and q such that (p-1) and e have no common divisors, and   (q-1) and e have no common divisors.   The public modulus n shall be the product of the private prime   factors p and q:                                 n = pq .   The private exponent shall be a positive integer d such that de-1 is   divisible by both p-1 and q-1.Kaliski                      Informational                      [Page 5]RFC 2313                PKCS #1: RSA Encryption               March 1998   The length of the modulus n in octets is the integer k satisfying                        2^(8(k-1)) <= n < 2^(8k) .   The length k of the modulus must be at least 12 octets to accommodate   the block formats in this document (see Section 8).   Notes.        1.   The public exponent may be standardized in             specific applications. The values 3 and F4 (65537) may have             some practical advantages, as noted in X.509 Annex C.        2.   Some additional conditions on the choice of primes             may well be taken into account in order to deter             factorization of the modulus. These security conditions             fall outside the scope of this document. The lower bound on             the length k is to accommodate the block formats, not for             security.7. Key syntax   This section gives the syntax for RSA public and private keys.7.1 Public-key syntax   An RSA public key shall have ASN.1 type RSAPublicKey:   RSAPublicKey ::= SEQUENCE {     modulus INTEGER, -- n     publicExponent INTEGER -- e }   (This type is specified in X.509 and is retained here for   compatibility.)   The fields of type RSAPublicKey have the following meanings:        o    modulus is the modulus n.        o    publicExponent is the public exponent e.Kaliski                      Informational                      [Page 6]RFC 2313                PKCS #1: RSA Encryption               March 19987.2 Private-key syntax   An RSA private key shall have ASN.1 type RSAPrivateKey:   RSAPrivateKey ::= SEQUENCE {     version Version,     modulus INTEGER, -- n     publicExponent INTEGER, -- e     privateExponent INTEGER, -- d     prime1 INTEGER, -- p     prime2 INTEGER, -- q     exponent1 INTEGER, -- d mod (p-1)     exponent2 INTEGER, -- d mod (q-1)     coefficient INTEGER -- (inverse of q) mod p }

⌨️ 快捷键说明

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