彩神彩票

PKCS#1:RSA加密

        組織:中國互動出版網(http://www.china-pub.com/)

        E-mail:ouyang@china-pub.com

        譯者:徐孜駿(happygogo happygogo@sina.com)

        譯文發布時間:2001-7-14

        版權:本中文翻譯文檔版權歸中國互動出版網所有。可以用於非商業用途自由轉載,但必須保留本文檔的翻譯及版權信息。

        Network Working Group B. Kaliski

        Request for Comments: 2313 RSA Laboratories East

        Category: Informational March 1998

        PKCS#1:RSA加密 版本1.5

        本備忘錄的狀態

        本備忘錄為Internet社區提供了信息。它沒有講述任何一種Internet標準.本備忘錄的發布不受任何限製。

        版權聲明

        Copyright (C) The Internet Society (1998). 保留所有權利。

        略讀

        此篇文章描述了如何使用RSA公鑰密碼體係加密數據。

        目錄

        1、範圍 2

        2、參考 2

        3、定義 4

        4、標誌和縮寫 5

        5、總的概述 5

        6、密鑰生成 5

        7、密鑰語法 6

        7.1公鑰語法 6

        7.2私鑰語法 6

        8、加密過程 7

        8.1加密塊格式化 7

        8.2 8位字節串到整數的轉換 8

        8.3 RSA計算 8

        8.4 整數到字節串的轉換 9

        9、解密過程 9

        9.1 字節串到整數的轉換 9

        9.2 RSA計算 9

        9.3 整數到字節串的轉換 9

        9.4 需加密塊解析 10

        10、簽名算法 10

        10.1 簽名過程 10

        10.2 驗證過程 12

        11、對象標識符 13

        安全考慮 14

        修訂版記錄 14

        鳴謝 14

        作者地址 14

        版權聲明 15

        1、範圍

        此篇文檔描述了如何使用RSA公鑰密碼體係加密數據。這將被用作數字簽名和數字信封,且在PKCS#7中有描述:

        數字簽名:簽名內容首先被消息散列算法(如MD5)縮減成一個消息散列,然後使用簽名者的RSA私鑰加密含有消息散列的字符串。原文和被加密的消息散列一起組成符合PKCS #7中語法的數字簽名。這種應用和PEM是兼容的。

        數字信封:首先將被加信封的內容使用一個內容加密算法(例如DES)的內容加密密鑰加密,然後使用收件人的RSA公鑰加密內容加密密鑰。那個被加密內容和被加密的密鑰一起組成符合PKCS #7中語法的數字信封。這種應用和PEM是兼容的。

        此篇文檔還描述了有關一個RSA公鑰和私鑰的語法。公鑰語法被用於證書;私鑰語法被用於PKCS#8中的私鑰信息。公鑰語法在X.509和PEM是完全相同的。這樣X.509/PEMRSA密鑰能被用於此篇文當中。

        此篇文檔還定義了三個簽名算法,它們被用於簽署X.509/PEM證書和CRL,PKCS#6擴展證書,和其他使用數字簽名的對象(例如X.401消息標記)。

        有關消息散列和內容加密算法的細節並不屬於此篇文檔的範圍,並且有關被文檔要求的假隨機位的來源也不在此文檔範圍中。

        2、參考

        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.

        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.

        [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、定義

        由於此篇文檔的目的,下列定義將被使用。

        算法標識符:通過對象標識符定義一種算法和相關參數的類型,此類型被定義在X.509中。

        ASN.1:抽象語法標記1,定義在X.208中。

        BER:基礎編碼規則,定義在X.209中。

        DES:數據加密標準,定義在FIPS PUB 46-1中。

        MD2:RSA Data Security, Inc.的MD2消息散列算法,定義在RFC 1319中。

        MD4:RSA Data Security, Inc.的MD4消息散列算法,定義在RFC 1320中。

        MD5:RSA Data Security, Inc.的MD5消息散列算法,定義在RFC 1321中。

        Modulus(模數):由兩個素數形成的整數。

        PEM:因特網私人加密郵件,定義在RFC 1423和相關文當中。

        RSA:RSA公鑰密碼體係,定義在[RSA78]中。

        私人密鑰:模數和私人指數。

        公開密鑰:模數和公開指數。

        4、標誌和縮寫

        大寫標誌(例如BT)表示字符串和位串(就簽名S而言),小寫標誌(例如c)表示整數。

        ab 16進製8位組值 c 指數

        BT 塊類型 d 私人指數

        D 數據 e 公開指數

        EB 需加密塊 k 模數的8位組長度

        ED 被加密的數據 n 模數

        M 消息 p, q 模數的素數組成

        MD 消息散列 x 整數需加密塊

        MD' 比較的消息散列 y 整數被加密數據

        PS 填充字符串 mod n 模 n

        S 簽名 X || Y X,Y的級連

        ||X|| X字節長

        5、總的概述

        下麵的六個章節詳細的敘述了密鑰生成,密鑰語法,加密過程,解密過程,簽名算法和對象標識符。每個實體都要生成一對密鑰:公鑰和私鑰。加密過程需要使用其中一個密鑰,解密過程需要使用另一個密鑰。所以加密過程或是一個公鑰操作過程或是一個私鑰操作過程,解密過程也一樣。這兩種過程都是把一個8位字符串轉化成另一個8位字符串。這兩個過程是互相相反的,如果一個過程使用了一個實體的公鑰,那麽另一個過程使用同一實體的私鑰。加密和解密過程或是能實現典型的RSA轉換,或是實現填充變換。

        6、密鑰生成

        此章節描述RSA密鑰生成。每個實體都需要選擇一個正整數e作為它的公開指數。每個實體都需要私人的隨機的選擇兩個不同的奇素數p和q,以便e和(p-1)*(q-1)互素。

        公開模數n是私人的素數p,q的乘積:n=p*q 。私人指數是一個正整數d,以便d*e-1可以被(p-1)*(q-1)整除。模數n的字節長為k,k滿足2^(8(k-1)) <= n < 2^(8k)。模數長度k必須是至少12個字節,使之適應此文檔中的塊格式(見第8章)。

        注意:

        (1) 公開模數在特殊應用程序中可以是標準化的。在X.509的附錄C中提到使用3或65537可以有一些實際的好處。

        (2) 為了使模數n的因數分解更困難,可以考慮一些額外的選擇素數的條件。這些保障安全的條件超出了此文檔的論述範圍。長度k的下限是為了適應塊格式,並不是為了保障安全。

        7、密鑰語法

        此章節給出了RSA公鑰和私鑰的語法

        7.1公鑰語法

        一個RSA公鑰需要有ASN.1的RSAPublicKey類型:

        RSAPublicKey ::= SEQUENCE {

        modulus INTEGER, -- n

        publicExponent INTEGER -- e }

        (這個類型被定義於X.509中,保留在此處是為了兼容性。)

        RSAPublicKey類型的字段有下列含義:

        modulus是模數n;

        publicExponent是公開指數e。

        7.2私鑰語法

        一個RSA私鑰有一個ASN.1的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 }

        Version ::= INTEGER

        RSAPrivateKey類型的字段有下列含義:

         version是一個為兼容將來此文檔的修改的版本號。為了適應此文檔的版本它應該是0;

         modulus是模數n;

         publicExponent是公開指數e;

         privateExponent是私人指數d;

         prime1是組成模數n的一個素數p;

         prime2是組成模數n的一個素數q;

         exponent1是d mod (p-1);

         exponent2是d mod (q-1);

         coefficient是中國剩餘理論中的係數q-1 mod p。

        注意:

        (1) 一個RSA私鑰邏輯上僅包含模數n和私人指數d。p,q, d mod (p-1), dmod (p-1)和q-1 mod p的出現是為了提高效率,正如Quisquater和Couvreur顯示在[QC82]中。如果公鑰知道的話,按照Miller[Mil76]的結果,一個不包含其他值的私人密鑰語法是很容易轉化成此處定義的語法。

        (2) 公開指數e的出現是為了可以容易的從私鑰中得到公鑰。

        8、加密過程

        此章節描述了RSA的加密過程。

        加密過程包括4個步驟:加密塊格式化,8位字符串到整數的轉化,RSA計算,整數到8位字符串的轉化。加密過程的輸入為數據8位字符串,模數n,指數c。對於公鑰操作來說,整數c是實體的公開指數e;對於私鑰操作來說,整數c是實體的私人指數d。加密過程的輸出為被加密的數據,一個8位字符串ED。

        數據D的長度不應該長於k-11個8位字節,其必為正數,因為模數的長度k是至少12個8位字節。這種限製保證了填充串PS的長度至少為8個8位字節,這是一項安全措施。

        注意:

        (1) 在此文檔的對於加密內容加密密鑰和消息散列的典型應用中,||D|| <= 30。這樣RSA模數的長度至少需要328位(41個8位字節),這是合理的,並且和安全建議是一致的。

        (2) 如果被加密的數據在傳輸中被破壞,加密過程並不提供一個幫助錯誤偵察的外在的完整性檢查。然而,加密塊的結構保證了破壞沒被檢查出的可能性小於2-16,這是一個隨機加密塊看起來像類型2的可能性的上限。

        (3) 定義在此的對於除了包含一個消息散列的8位字節串的數據的私鑰操作的應用並不被推薦,需要更多的研究。

        (4) 此文檔可以被擴展,來控製長度長於k-11個8位字節串8.1加密塊格式化加密塊是一個8位字節串EB,由塊標記BT,填充塊PS和數據D組成。

        EB = 00 || BT || PS || 00 || D (1)塊標記BT是一個標記字節,表示加密塊的結構。對於此文檔的版本,它有00,01,或02值。私鑰操作為00,或01;公鑰操作為02。

        填充串PS為k-3-||D||長的8位字節字符串。對於00型,填充串為00;對於01型,填充串為ff;對於02型,填充串為假散列生成的非0值。這使得加密塊EB的長度為k。

        注意:

        (1) 開始的00值字節保證了轉化成整數後的加密塊小於模數。

        (2) 對於00型來說,數據D必須以一個非0字節開始,或是必須知道長度,以便加密塊能被清楚的解析。對於01和02型來說,加密塊能被清楚的解析,這是因為填充塊PS不包含00值字節,它可以被一個00值字節從數據D分開。

        (3) 01型被推薦為私鑰操作標誌。01型有保證轉化成整數的加密塊很大的性能,這能防止Desmedt和Odlyzko [DO86]所建議的某種攻擊。

        (4) 01和02型是和被描述在RFC1423中的PEM RSA的內容加密密鑰和消息散列的加密是兼容的。

        (5) 對於02類型來說,建議為每一個加密過程都獨立生成假散列字節,特別是如果相同的數據被輸入多於一個的加密過程。Hastad的結果 [Has88]促進了這種建議。

        (6) 對於02類型來說,填充串至少是8個字節長,這是對於公鑰操作的一個安全措施,為了防止攻擊者通過測試所有可能的加密塊來恢複數據。類似的,對於01類型最小長度是一樣的。

        (7) 此文檔將來可以擴展為包括其他類型。

        8.2 8位字節串到整數的轉換加密塊EB需要被轉化為一個整數x,即整數加密塊。從頭到尾讓EB1, ..., Ebk組成EB字節串。然後整數x應該滿足:

        k

        x = SUM 2^(8(k-i)) EBi (2)

        i = 1

        換句話來說,EB的第一個字節在整數中意義最重大,最後一個字節的重要性最低。

        注意:因為EB1 = 00並且 2^(8(k-1)) <= n,所以整數加密塊x滿足0 <= x < n。

        8.3 RSA計算

        整數加密塊x需要被求c次方冪,然後模n,最後被賦給整數y,即整數被加密數據。

        y = x^c mod n, 0 <= y < n

        這是一個典型的RSA計算。

        8.4 整數到字節串的轉換

        整數被加密數據y需要被轉換成一個長度k的8位字節串ED,即被加密數據。

        被加密數據應該滿足:

        k

        y = SUM 2^(8(k-i)) EDi (3)

        i = 1

        這裏ED1, ..., Edk就是字節串ED的組成。

        換句話說,ED的第一個字節在整數中最為重要,ED的最後一個字節重要性最低。

        9、解密過程

        此章節描述了RSA解密過程。

        解密過程包含4個步驟:字節串到整數的轉換,RSA計算,整數到字節串的轉換,和需加密塊解析。解密過程的輸入是一個8位字節串ED,即被加密數據;模數n;指數c。對一個公鑰操作來說,整數c是一個實體的公開指數e;對一個私鑰操作來說,整數c是一個實體的私人指數d。解密過程的輸出是一個8位字節串D,即原始數據。

        如果被加密數據ED的長度不是k,則為錯誤。

        簡短來說,解密過程是根據加密過程來描述的。

        9.1 字節串到整數的轉換

        被加密的數據ED根據等式(3)被轉化成整數被加密數據y。

        如果整數被加密數據不滿足0 <= y < n,則為錯誤。

        9.2 RSA計算

        整數被加密數據y需要被求c次方冪,然後模n,最後被賦給整數x,即整數需加密塊。

        x = y^c mod n, 0 <= x < n

        這是一個典型的RSA計算。

        9.3 整數到字節串的轉換

        整數需加密塊x根據等式(2)被轉化成一個長度k的8位字節串EB,即需加密塊。

        9.4 需加密塊解析

        需加密塊EB根據等式(1)被解析成一個由塊標記BT,填充塊PS和數據D組成的數據塊。

        如果有下列情況發生,則為錯誤:

        需加密塊不能被明白的解析(見8.1節的注意)。

        填充串PS少於8字節,或是和塊標記BT不匹配。

        解密過程是一個公鑰操作過程,塊標記不能為00或01;或者解密過程是一個私鑰操作過程,塊標記不能為02。

        10、簽名算法

        本章定義了3個基於被描述在第8、9章中的RSA加密過程的簽名算法。簽名算法主要被用於簽署X.509/PEM證書,CRL,PKCS #6擴展證書,以及其他使用數字簽名的對象,例如X.401消息環。算法並不被特意用來構建PKCS #7的數字簽名。第一個簽名算法把MD2散列算法和RSA結合起來(簡稱MD2 with RSA);第二個簽名算法把MD4散列算法和RSA結合起來(簡稱MD4 with RSA);第三個簽名算法把MD5散列算法和RSA結合起來(簡稱MD5 with RSA)。

        本章節描述了兩個算法的簽名過程和驗證過程。所選的散列算法取決於簽名算法,MD2或MD5。簽名過程使用一個實體的私鑰;而驗證過程使用一個實體的公鑰。簽名過程把一個8位字節串(消息)轉化成一個位串(簽名);而驗證過程檢驗一個位串(簽名)是否為一個8位字節串(消息)的簽名。

        注意:被定義在此的簽名算法和在PKCS #7中構建簽名的方法(加密消息散列)之間的僅有的不同是此處的簽名用位串表示,這和X.509 SIGNED宏是一致的。在PKCS #7中被加密的消息散列是8位字節串。

        10.1 簽名過程

        簽名過程包括4個步驟:消息散列,數據編碼,RSA加密和8位字節串到位串的轉換。簽名過程的輸入是一個8位字節串M,即消息;簽名者的私人密鑰。其輸出是一個位串S,即簽名。

        10.1.1 消息散列

        使用所選的消息散列算法來散列消息M,得到一個8位字節串MD,即消息散列。

        10.1.2 數據編碼

        消息散列MD和消息散列算法標識符組成了以下描述的ASN.1類型DigestInfo的值,

        此類型將通過BER編碼來生成一個8位字節串D,即原始數據。

        DigestInfo ::= SEQUENCE {

        digestAlgorithm DigestAlgorithmIdentifier,

        digest Digest }

        DigestAlgorithmIdentifier ::= AlgorithmIdentifier

        Digest ::= OCTET STRING

        類型DigestInfo的域有下列含義:

        digestAlgorithm表示用於散列的算法(以及相關參數)。對應用程序來說,它標識了所選的散列算法,MD2,MD4或MD5。作為參考,以下是相關的對象標識符:

        md2 OBJECT IDENTIFIER ::=

        { iso(1) member-body(2) US(840) rsadsi(113549)

        digestAlgorithm(2) 2 } md4 OBJECT IDENTIFIER ::=

        { iso(1) member-body(2) US(840) rsadsi(113549)

        digestAlgorithm(2) 4 } md5 OBJECT IDENTIFIER ::=

        { iso(1) member-body(2) US(840) rsadsi(113549)

        digestAlgorithm(2) 5 }

        對這些對象標識符來說,散列算法的參數域是空。

        digest是消息散列過程的結果,例如消息散列MD。

        注意:

        1.DigestInfo值包含了一個消息散列算法標識符,用來限製由於使用消息散列算法壓縮數據而導致的破壞。舉例來說,如果攻擊者能夠找出帶有給定的MD2消息散列的消息,那麽他就可以通過找出一個表麵無害的帶有相同MD2散列的消息,並強迫簽名者簽署這個表麵無害的消息,來偽造消息簽名。這種攻擊方法隻有在使用MD2散列算法時才會成功。如果DigestInfo值隻包括消息散列,攻擊者就能攻擊使用任何消息散列的簽名者。

        2.雖然使用SEQUENCE類型違背了在X.509 SIGNED和SIGNATURE宏中的簽名是一個ENCRYPTED OCTET STRING的書麵聲明,但是正如I'Anson和Mitchell在[IM90]中指出的,這樣的書麵闡明並不被要求。

        3.沒有理由說MD4不是一個安全度很高的數字簽名方案,但是由於MD4被設計的非常快,所以它處於被成功攻擊的危險中。如果有人找出擁有同一個散列的兩個消息這樣的衝突,那麽這個散列算法可以被認為是打破的(broken)。當衝突被發現在僅有兩個散列循環[Mer90][dBB92]的MD4的變體中,並沒有衝突出現在有三個散列循環的MD4中。在進一步的研究後,我們可以認為MD4有很高的安全性。

        MD5有四個散列循環,比MD4更慢。在MD4被研究前,它是被推薦使用的。

        在MD5內部的壓縮功能[dBB93]中的假衝突並沒有任何實際的安全影響。

        MD2是三者中最慢的一個,它有最保守的設計,沒有任何對MD2的攻擊被公布出來。

        10.1.3 RSA加密

        正如在第7章中描述的數據D被簽名者的RSA私鑰加密,生成一個8位字節串ED,即被加密的數據。其塊標記為01(見8.1節)。

        10.1.4 8位字節串到位串的轉換

        被加密數據ED被轉換成一個位串S,即簽名。具體來說,被加密數據的第一個字節的第一位成為簽名的第一個數據位,以此類推,直到被加密數據的最後一個字節的最後一位,它將變成簽名的最後一個數據位。

        注意:簽名S的位長度是8的倍數。

        10.2 驗證過程

        驗證過程包括四個步驟:位串到字節串的轉換,RSA解密,數據解碼,消息散列和比較。驗證過程的輸入是字節串M,即消息;簽名者的公鑰;位串S,即簽名。其輸出是驗證成功或失敗的標記號。

        10.2.1 位串到字節串的轉換

        簽名S被轉換成字節串ED,即被加密的數據。具體來說,假設S的位長度是8的倍數,S的第一位將變成字節串的第一個字節的第一位,以此類推,直到簽名的最後一位變成字節串的最後一個字節的最後一位。

        如果簽名的位長度不是8的倍數,則是錯誤。

        10.2.2 RSA解密

        正如在第8章節中描述的使用簽名者的公鑰對被加密數據ED進行解密,得到字節串D,即原始數據。

        如果在解密過程中恢複的塊標記位不是01,則是錯誤的(見9.4節)。

        10.2.3 數據解碼

        原始數據D將被BER解碼為類型DigestInfo的ASN.1值,此值被分成消息散列MD和消息散列算法標識符。消息散列算法標識符決定了下一步所選的消息散列算法。

        如果消息散列算法標識符不是MD2,MD4或MD5消息散列算法,則為錯誤。

        10.2.4 消息散列和比較

        使用所選的消息散列算法對消息M進行散列,得到字節串MD`,即將進行比較的消息散列。如果MD`和MD相同,則表示驗證成功,否則為失敗。

        11、對象標識符

        本文檔定義了5個對象標識符:pkcs-1,rsaEncryption,md2WithRSAEncryption,

        md4WithRSAEncryption和md5WithRSAEncryption。

        對象標識符pkcs-1等同於本篇文檔。

        pkcs-1 OBJECT IDENTIFIER ::=

        { iso(1) member-body(2) US(840) rsadsi(113549)

        pkcs(1) 1 }

        對象標識符rsaEncryption等同於定義在第7章節中的RSA公/私鑰和定義在第8、9章節中的RSA加/解密過程。

        rsaEncryption OBJECT IDENTIFIER ::= { pkcs-1 1 }rsaEncryption對象標識符被用於AlgorithmIdentifier類型的algorithm域的一個值。此類型的parameters域有算法特定的語法ANY DEFINED BY algorithm,在rsaEncryption算法中,其值為空。

        對象標識符md2WithRSAEncryption,md4WithRSAEncryption和md5WithRSAEncryption各自表示定義在第10章節中的MD2 with RSA,MD4 with RSA和MD5 with RSA簽名及驗證過程。

md2WithRSAEncryption OBJECT IDENTIFIER ::= { pkcs-1 2 }        

        md4WithRSAEncryption OBJECT IDENTIFIER ::= { pkcs-1 3 }

        md5WithRSAEncryption OBJECT IDENTIFIER ::= { pkcs-1 4 }

        這些對象標識符被用於AlgorithmIdentifier類型中的algorithm域的一個值。此類型的parameters域有算法特定的語法ANY DEFINED BY algorithm,在此三個算法中,其值為空。

        注意:X.509的對象標識符rsa也表示定義在第7章節中的RSA公鑰,但並不表示私鑰,並且表示不同的加/解密過程。一些應用程序期望將鑒別RSA公鑰。這些公鑰和本文檔是兼容的,使用RSA公鑰的rsaEncryption過程等同於使用rsaEncryption公鑰的rsaEncryption過程。

        安全考慮

        安全內容在此備忘錄中討論。

        修訂版記錄

        版本1.0-1.3

        此版本在1991的2月和3月被分發給RSA Data Security, Inc.的 Public-KeyCryptography Standards會議的參加者。

        版本1.4

        此版本是在1991.6.3的第一次公開發布的PKCS中的一部分內容,並被發行作為NIST/OSI Implementors的工作組文檔SEC-SIG-91-18。

        版本1.5

        此版本包括了幾處改變,其中有參考的更新和修訂版記錄的增加。下列是幾處實質的改變:

        第10章節:增加了MD4 with RSA的簽名和驗證過程。

        第11章節:增加了md4WithRSAEncryption對象標識符。

        代替1991.6.3的版本,它也被作為NIST/OSI Implementors的工作組文檔SEC-SIG-91-18。

        鳴謝

        本文檔基於RSA Data Security, Inc.的一個部門RSA Laboratories的撰稿。任何實質的使用本文檔都必須感謝RSA Data Security, Inc.。RSA Data Security, Inc.要求所有對此文檔的資料的闡述和參考都必須表示為RSA Data Security, Inc. PKCS #1。

        作者地址

        Burt Kaliski

        RSA Laboratories East

        20 Crosby Drive

        Bedford, MA 01730

        phones: (617) 687-7000

        EMail: burt@rsa.com

        版權聲明

        Copyright (C) The Internet Society (1998). All Rights Reserved.

        This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English.

        The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns.

        This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

        RFC2313——PKCS #1: RSA EncryptionVersion 1.5 PKCS#1:RSA加密 版本1.5

        RFC文檔中文翻譯計劃

彩神彩票