青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Khan's Notebook GCC/GNU/Linux Delphi/Window Java/Anywhere

路漫漫,長(zhǎng)修遠(yuǎn),我們不能沒有錢
隨筆 - 173, 文章 - 0, 評(píng)論 - 257, 引用 - 0
數(shù)據(jù)加載中……

RSA加密 版本1.5(RFC2313)

組織:中國(guó)互動(dòng)出版網(wǎng)(http://www.china-pub.com/)
RFC文檔中文翻譯計(jì)劃(http://www.china-pub.com/compters/emook/aboutemook.htm)
E-mail:ouyang@china-pub.com
譯者:徐孜駿(happygogo happygogo@sina.com)
譯文發(fā)布時(shí)間:2001-7-14
版權(quán):本中文翻譯文檔版權(quán)歸中國(guó)互動(dòng)出版網(wǎng)所有。可以用于非商業(yè)用途自由轉(zhuǎn)載,但必須
保留本文檔的翻譯及版權(quán)信息。


Network Working Group B. Kaliski
Request for Comments: 2313 RSA Laboratories East
Category: Informational March 1998

PKCS#1:RSA加密 版本1.5

本備忘錄的狀態(tài)
本備忘錄為Internet社區(qū)提供了信息。它沒有講述任何一種Internet標(biāo)準(zhǔn).本備忘錄的發(fā)
布不受任何限制。
版權(quán)聲明
Copyright (C) The Internet Society (1998). 保留所有權(quán)利。
略讀
此篇文章描述了如何使用RSA公鑰密碼體系加密數(shù)據(jù)。
目錄
1、范圍 2
2、參考 2
3、定義 4
4、標(biāo)志和縮寫 5
5、總的概述 5
6、密鑰生成 5
7、密鑰語法 6
7.1公鑰語法 6
7.2私鑰語法 6
8、加密過程 7
8.1加密塊格式化 7
8.2 8位字節(jié)串到整數(shù)的轉(zhuǎn)換 8
8.3 RSA計(jì)算 8
8.4 整數(shù)到字節(jié)串的轉(zhuǎn)換 9
9、解密過程 9
9.1 字節(jié)串到整數(shù)的轉(zhuǎn)換 9
9.2 RSA計(jì)算 9
9.3 整數(shù)到字節(jié)串的轉(zhuǎn)換 9
9.4 需加密塊解析 10
10、簽名算法 10
10.1 簽名過程 10
10.2 驗(yàn)證過程 12
11、對(duì)象標(biāo)識(shí)符 13
安全考慮 14
修訂版記錄 14
鳴謝 14
作者地址 14
版權(quán)聲明 15

1、范圍
此篇文檔描述了如何使用RSA公鑰密碼體系加密數(shù)據(jù)。這將被用作數(shù)字簽名和數(shù)字信
封,且在PKCS#7中有描述:
? 數(shù)字簽名:簽名內(nèi)容首先被消息散列算法(如MD5)縮減成一個(gè)消息散列,然后
使用簽名者的RSA私鑰加密含有消息散列的字符串。原文和被加密的消息散列一
起組成符合PKCS #7中語法的數(shù)字簽名。這種應(yīng)用和PEM是兼容的。
? 數(shù)字信封:首先將被加信封的內(nèi)容使用一個(gè)內(nèi)容加密算法(例如DES)的內(nèi)容加
密密鑰加密,然后使用收件人的RSA公鑰加密內(nèi)容加密密鑰。那個(gè)被加密內(nèi)容和
被加密的密鑰一起組成符合PKCS #7中語法的數(shù)字信封。這種應(yīng)用和PEM是兼
容的。
此篇文檔還描述了有關(guān)一個(gè)RSA公鑰和私鑰的語法。公鑰語法被用于證書;私鑰語法
被用于PKCS#8中的私鑰信息。公鑰語法在X.509和PEM是完全相同的。這樣X.509/PEM
RSA密鑰能被用于此篇文當(dāng)中。
此篇文檔還定義了三個(gè)簽名算法,它們被用于簽署X.509/PEM證書和CRL,PKCS#6
擴(kuò)展證書,和其他使用數(shù)字簽名的對(duì)象(例如X.401消息標(biāo)記)。
有關(guān)消息散列和內(nèi)容加密算法的細(xì)節(jié)并不屬于此篇文檔的范圍,并且有關(guān)被文檔要求
的假隨機(jī)位的來源也不在此文檔范圍中。

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、定義
由于此篇文檔的目的,下列定義將被使用。
算法標(biāo)識(shí)符:通過對(duì)象標(biāo)識(shí)符定義一種算法和相關(guān)參數(shù)的類型,此類型被定義在X.509
中。
ASN.1:抽象語法標(biāo)記1,定義在X.208中。
BER:基礎(chǔ)編碼規(guī)則,定義在X.209中。
DES:數(shù)據(jù)加密標(biāo)準(zhǔn),定義在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(模數(shù)):由兩個(gè)素?cái)?shù)形成的整數(shù)。
PEM:因特網(wǎng)私人加密郵件,定義在RFC 1423和相關(guān)文當(dāng)中。
RSA:RSA公鑰密碼體系,定義在[RSA78]中。
私人密鑰:模數(shù)和私人指數(shù)。
公開密鑰:模數(shù)和公開指數(shù)。

4、標(biāo)志和縮寫
大寫標(biāo)志(例如BT)表示字符串和位串(就簽名S而言),小寫標(biāo)志(例如c)表示
整數(shù)。
ab 16進(jìn)制8位組值 c 指數(shù)
BT 塊類型 d 私人指數(shù)
D 數(shù)據(jù) e 公開指數(shù)
EB 需加密塊 k 模數(shù)的8位組長(zhǎng)度
ED 被加密的數(shù)據(jù) n 模數(shù)
M 消息 p, q 模數(shù)的素?cái)?shù)組成
MD 消息散列 x 整數(shù)需加密塊
MD' 比較的消息散列 y 整數(shù)被加密數(shù)據(jù)
PS 填充字符串 mod n 模 n
S 簽名 X || Y X,Y的級(jí)連
||X|| X字節(jié)長(zhǎng)

5、總的概述
下面的六個(gè)章節(jié)詳細(xì)的敘述了密鑰生成,密鑰語法,加密過程,解密過程,簽名算法
和對(duì)象標(biāo)識(shí)符。每個(gè)實(shí)體都要生成一對(duì)密鑰:公鑰和私鑰。加密過程需要使用其中一個(gè)密鑰,
解密過程需要使用另一個(gè)密鑰。所以加密過程或是一個(gè)公鑰操作過程或是一個(gè)私鑰操作過
程,解密過程也一樣。這兩種過程都是把一個(gè)8位字符串轉(zhuǎn)化成另一個(gè)8位字符串。這兩個(gè)
過程是互相相反的,如果一個(gè)過程使用了一個(gè)實(shí)體的公鑰,那么另一個(gè)過程使用同一實(shí)體的
私鑰。加密和解密過程或是能實(shí)現(xiàn)典型的RSA轉(zhuǎn)換,或是實(shí)現(xiàn)填充變換。

6、密鑰生成
此章節(jié)描述RSA密鑰生成。每個(gè)實(shí)體都需要選擇一個(gè)正整數(shù)e作為它的公開指數(shù)。每
個(gè)實(shí)體都需要私人的隨機(jī)的選擇兩個(gè)不同的奇素?cái)?shù)p和q,以便e和(p-1)*(q-1)互素。
公開模數(shù)n是私人的素?cái)?shù)p,q的乘積:n=p*q 。私人指數(shù)是一個(gè)正整數(shù)d,以便d*e-1可
以被(p-1)*(q-1)整除。模數(shù)n的字節(jié)長(zhǎng)為k,k滿足2^(8(k-1)) <= n < 2^(8k)。模數(shù)長(zhǎng)度
k必須是至少12個(gè)字節(jié),使之適應(yīng)此文檔中的塊格式(見第8章)。
注意:
(1) 公開模數(shù)在特殊應(yīng)用程序中可以是標(biāo)準(zhǔn)化的。在X.509的附錄C中提到使用3
或65537可以有一些實(shí)際的好處。
(2) 為了使模數(shù)n的因數(shù)分解更困難,可以考慮一些額外的選擇素?cái)?shù)的條件。這些
保障安全的條件超出了此文檔的論述范圍。長(zhǎng)度k的下限是為了適應(yīng)塊格式,
并不是為了保障安全。

7、密鑰語法
此章節(jié)給出了RSA公鑰和私鑰的語法

7.1公鑰語法
一個(gè)RSA公鑰需要有ASN.1的RSAPublicKey類型:

RSAPublicKey ::= SEQUENCE {
modulus INTEGER, -- n
publicExponent INTEGER -- e }
(這個(gè)類型被定義于X.509中,保留在此處是為了兼容性。)
RSAPublicKey類型的字段有下列含義:
modulus是模數(shù)n;
publicExponent是公開指數(shù)e。

7.2私鑰語法
一個(gè)RSA私鑰有一個(gè)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是一個(gè)為兼容將來此文檔的修改的版本號(hào)。為了適應(yīng)此文檔的版本它
應(yīng)該是0;
? modulus是模數(shù)n;
? publicExponent是公開指數(shù)e;
? privateExponent是私人指數(shù)d;
? prime1是組成模數(shù)n的一個(gè)素?cái)?shù)p;
? prime2是組成模數(shù)n的一個(gè)素?cái)?shù)q;
? exponent1是d mod (p-1);
? exponent2是d mod (q-1);
? coefficient是中國(guó)剩余理論中的系數(shù)q-1 mod p。
注意:
(1) 一個(gè)RSA私鑰邏輯上僅包含模數(shù)n和私人指數(shù)d。p,q, d mod (p-1), d
mod (p-1)和q-1 mod p的出現(xiàn)是為了提高效率,正如Quisquater和Couvreur
顯示在[QC82]中。如果公鑰知道的話,按照Miller[Mil76]的結(jié)果,一個(gè)不
包含其他值的私人密鑰語法是很容易轉(zhuǎn)化成此處定義的語法。
(2) 公開指數(shù)e的出現(xiàn)是為了可以容易的從私鑰中得到公鑰。

8、加密過程
此章節(jié)描述了RSA的加密過程。
加密過程包括4個(gè)步驟:加密塊格式化,8位字符串到整數(shù)的轉(zhuǎn)化,RSA計(jì)算,整數(shù)
到8位字符串的轉(zhuǎn)化。加密過程的輸入為數(shù)據(jù)8位字符串,模數(shù)n,指數(shù)c。對(duì)于公鑰操作
來說,整數(shù)c是實(shí)體的公開指數(shù)e;對(duì)于私鑰操作來說,整數(shù)c是實(shí)體的私人指數(shù)d。加密
過程的輸出為被加密的數(shù)據(jù),一個(gè)8位字符串ED。
數(shù)據(jù)D的長(zhǎng)度不應(yīng)該長(zhǎng)于k-11個(gè)8位字節(jié),其必為正數(shù),因?yàn)槟?shù)的長(zhǎng)度k是至少
12個(gè)8位字節(jié)。這種限制保證了填充串PS的長(zhǎng)度至少為8個(gè)8位字節(jié),這是一項(xiàng)安全措施。
注意:
(1) 在此文檔的對(duì)于加密內(nèi)容加密密鑰和消息散列的典型應(yīng)用中,||D|| <= 30。這樣
RSA模數(shù)的長(zhǎng)度至少需要328位(41個(gè)8位字節(jié)),這是合理的,并且和安全
建議是一致的。
(2) 如果被加密的數(shù)據(jù)在傳輸中被破壞,加密過程并不提供一個(gè)幫助錯(cuò)誤偵察的外
在的完整性檢查。然而,加密塊的結(jié)構(gòu)保證了破壞沒被檢查出的可能性小于
2-16,這是一個(gè)隨機(jī)加密塊看起來像類型2的可能性的上限。
(3) 定義在此的對(duì)于除了包含一個(gè)消息散列的8位字節(jié)串的數(shù)據(jù)的私鑰操作的應(yīng)用
并不被推薦,需要更多的研究。
(4) 此文檔可以被擴(kuò)展,來控制長(zhǎng)度長(zhǎng)于k-11個(gè)8位字節(jié)串

8.1加密塊格式化
加密塊是一個(gè)8位字節(jié)串EB,由塊標(biāo)記BT,填充塊PS和數(shù)據(jù)D組成。
EB = 00 || BT || PS || 00 || D (1)
塊標(biāo)記BT是一個(gè)標(biāo)記字節(jié),表示加密塊的結(jié)構(gòu)。對(duì)于此文檔的版本,它有00,
01,或02值。私鑰操作為00,或01;公鑰操作為02。
填充串PS為k-3-||D||長(zhǎng)的8位字節(jié)字符串。對(duì)于00型,填充串為00;對(duì)于01型,
填充串為ff;對(duì)于02型,填充串為假散列生成的非0值。這使得加密塊EB的長(zhǎng)度為
k。
注意:
(1) 開始的00值字節(jié)保證了轉(zhuǎn)化成整數(shù)后的加密塊小于模數(shù)。
(2) 對(duì)于00型來說,數(shù)據(jù)D必須以一個(gè)非0字節(jié)開始,或是必須知道長(zhǎng)度,
以便加密塊能被清楚的解析。對(duì)于01和02型來說,加密塊能被清楚的解
析,這是因?yàn)樘畛鋲KPS不包含00值字節(jié),它可以被一個(gè)00值字節(jié)從數(shù)據(jù)
D分開。
(3) 01型被推薦為私鑰操作標(biāo)志。01型有保證轉(zhuǎn)化成整數(shù)的加密塊很大的性
能,這能防止Desmedt和Odlyzko [DO86]所建議的某種攻擊。
(4) 01和02型是和被描述在RFC1423中的PEM RSA的內(nèi)容加密密鑰和消息
散列的加密是兼容的。
(5) 對(duì)于02類型來說,建議為每一個(gè)加密過程都獨(dú)立生成假散列字節(jié),特別是
如果相同的數(shù)據(jù)被輸入多于一個(gè)的加密過程。Hastad的結(jié)果 [Has88]促進(jìn)
了這種建議。
(6) 對(duì)于02類型來說,填充串至少是8個(gè)字節(jié)長(zhǎng),這是對(duì)于公鑰操作的一個(gè)安
全措施,為了防止攻擊者通過測(cè)試所有可能的加密塊來恢復(fù)數(shù)據(jù)。類似的,
對(duì)于01類型最小長(zhǎng)度是一樣的。
(7) 此文檔將來可以擴(kuò)展為包括其他類型。

8.2 8位字節(jié)串到整數(shù)的轉(zhuǎn)換
加密塊EB需要被轉(zhuǎn)化為一個(gè)整數(shù)x,即整數(shù)加密塊。從頭到尾讓EB1, ..., Ebk
組成EB字節(jié)串。然后整數(shù)x應(yīng)該滿足:
k
x = SUM 2^(8(k-i)) EBi (2)
i = 1
換句話來說,EB的第一個(gè)字節(jié)在整數(shù)中意義最重大,最后一個(gè)字節(jié)的重要性最
低。
注意:因?yàn)镋B1 = 00并且 2^(8(k-1)) <= n,所以整數(shù)加密塊x滿足0 <= x < n。

8.3 RSA計(jì)算
整數(shù)加密塊x需要被求c次方冪,然后模n,最后被賦給整數(shù)y,即整數(shù)被加密
數(shù)據(jù)。
y = x^c mod n, 0 <= y < n
這是一個(gè)典型的RSA計(jì)算。

8.4 整數(shù)到字節(jié)串的轉(zhuǎn)換
整數(shù)被加密數(shù)據(jù)y需要被轉(zhuǎn)換成一個(gè)長(zhǎng)度k的8位字節(jié)串ED,即被加密數(shù)據(jù)。
被加密數(shù)據(jù)應(yīng)該滿足:
k
y = SUM 2^(8(k-i)) EDi (3)
i = 1
這里ED1, ..., Edk就是字節(jié)串ED的組成。
換句話說,ED的第一個(gè)字節(jié)在整數(shù)中最為重要,ED的最后一個(gè)字節(jié)重要性最低。

9、解密過程
此章節(jié)描述了RSA解密過程。
解密過程包含4個(gè)步驟:字節(jié)串到整數(shù)的轉(zhuǎn)換,RSA計(jì)算,整數(shù)到字節(jié)串的轉(zhuǎn)換,和
需加密塊解析。解密過程的輸入是一個(gè)8位字節(jié)串ED,即被加密數(shù)據(jù);模數(shù)n;指數(shù)c。對(duì)
一個(gè)公鑰操作來說,整數(shù)c是一個(gè)實(shí)體的公開指數(shù)e;對(duì)一個(gè)私鑰操作來說,整數(shù)c是一個(gè)
實(shí)體的私人指數(shù)d。解密過程的輸出是一個(gè)8位字節(jié)串D,即原始數(shù)據(jù)。
如果被加密數(shù)據(jù)ED的長(zhǎng)度不是k,則為錯(cuò)誤。
簡(jiǎn)短來說,解密過程是根據(jù)加密過程來描述的。
9.1 字節(jié)串到整數(shù)的轉(zhuǎn)換
被加密的數(shù)據(jù)ED根據(jù)等式(3)被轉(zhuǎn)化成整數(shù)被加密數(shù)據(jù)y。
如果整數(shù)被加密數(shù)據(jù)不滿足0 <= y < n,則為錯(cuò)誤。

9.2 RSA計(jì)算
整數(shù)被加密數(shù)據(jù)y需要被求c次方冪,然后模n,最后被賦給整數(shù)x,即整數(shù)需加密塊。
x = y^c mod n, 0 <= x < n
這是一個(gè)典型的RSA計(jì)算。

9.3 整數(shù)到字節(jié)串的轉(zhuǎn)換
整數(shù)需加密塊x根據(jù)等式(2)被轉(zhuǎn)化成一個(gè)長(zhǎng)度k的8位字節(jié)串EB,即需加密塊。

9.4 需加密塊解析
需加密塊EB根據(jù)等式(1)被解析成一個(gè)由塊標(biāo)記BT,填充塊PS和數(shù)據(jù)D組成的
數(shù)據(jù)塊。
如果有下列情況發(fā)生,則為錯(cuò)誤:
? 需加密塊不能被明白的解析(見8.1節(jié)的注意)。
? 填充串PS少于8字節(jié),或是和塊標(biāo)記BT不匹配。
? 解密過程是一個(gè)公鑰操作過程,塊標(biāo)記不能為00或01;或者解密過程是一個(gè)私
鑰操作過程,塊標(biāo)記不能為02。

10、簽名算法
本章定義了3個(gè)基于被描述在第8、9章中的RSA加密過程的簽名算法。簽名算法主
要被用于簽署X.509/PEM證書,CRL,PKCS #6擴(kuò)展證書,以及其他使用數(shù)字簽名的對(duì)象,
例如X.401消息環(huán)。算法并不被特意用來構(gòu)建PKCS #7的數(shù)字簽名。第一個(gè)簽名算法把MD2
散列算法和RSA結(jié)合起來(簡(jiǎn)稱MD2 with RSA);第二個(gè)簽名算法把MD4散列算法和RSA
結(jié)合起來(簡(jiǎn)稱MD4 with RSA);第三個(gè)簽名算法把MD5散列算法和RSA結(jié)合起來(簡(jiǎn)
稱MD5 with RSA)。
本章節(jié)描述了兩個(gè)算法的簽名過程和驗(yàn)證過程。所選的散列算法取決于簽名算法,
MD2或MD5。簽名過程使用一個(gè)實(shí)體的私鑰;而驗(yàn)證過程使用一個(gè)實(shí)體的公鑰。簽名過程
把一個(gè)8位字節(jié)串(消息)轉(zhuǎn)化成一個(gè)位串(簽名);而驗(yàn)證過程檢驗(yàn)一個(gè)位串(簽名)是
否為一個(gè)8位字節(jié)串(消息)的簽名。
注意:被定義在此的簽名算法和在PKCS #7中構(gòu)建簽名的方法(加密消息散列)之間
的僅有的不同是此處的簽名用位串表示,這和X.509 SIGNED宏是一致的。在PKCS #7中
被加密的消息散列是8位字節(jié)串。

10.1 簽名過程
簽名過程包括4個(gè)步驟:消息散列,數(shù)據(jù)編碼,RSA加密和8位字節(jié)串到位串的轉(zhuǎn)換。
簽名過程的輸入是一個(gè)8位字節(jié)串M,即消息;簽名者的私人密鑰。其輸出是一個(gè)位串S,
即簽名。

10.1.1 消息散列
使用所選的消息散列算法來散列消息M,得到一個(gè)8位字節(jié)串MD,即消息散列。

10.1.2 數(shù)據(jù)編碼
消息散列MD和消息散列算法標(biāo)識(shí)符組成了以下描述的ASN.1類型DigestInfo的值,
此類型將通過BER編碼來生成一個(gè)8位字節(jié)串D,即原始數(shù)據(jù)。
DigestInfo ::= SEQUENCE {
digestAlgorithm DigestAlgorithmIdentifier,
digest Digest }

DigestAlgorithmIdentifier ::= AlgorithmIdentifier

Digest ::= OCTET STRING

類型DigestInfo的域有下列含義:
? digestAlgorithm表示用于散列的算法(以及相關(guān)參數(shù))。對(duì)應(yīng)用程序來說,它標(biāo)識(shí)
了所選的散列算法,MD2,MD4或MD5。作為參考,以下是相關(guān)的對(duì)象標(biāo)識(shí)符:
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 }
對(duì)這些對(duì)象標(biāo)識(shí)符來說,散列算法的參數(shù)域是空。
? digest是消息散列過程的結(jié)果,例如消息散列MD。

注意:
1. DigestInfo值包含了一個(gè)消息散列算法標(biāo)識(shí)符,用來限制由于使用消息散列算法
壓縮數(shù)據(jù)而導(dǎo)致的破壞。舉例來說,如果攻擊者能夠找出帶有給定的MD2消息
散列的消息,那么他就可以通過找出一個(gè)表面無害的帶有相同MD2散列的消息,
并強(qiáng)迫簽名者簽署這個(gè)表面無害的消息,來偽造消息簽名。這種攻擊方法只有在
使用MD2散列算法時(shí)才會(huì)成功。如果DigestInfo值只包括消息散列,攻擊者就能
攻擊使用任何消息散列的簽名者。
2. 雖然使用SEQUENCE類型違背了在X.509 SIGNED和SIGNATURE宏中的簽名
是一個(gè)ENCRYPTED OCTET STRING的書面聲明,但是正如I'Anson和Mitchell
在[IM90]中指出的,這樣的書面闡明并不被要求。
3. 沒有理由說MD4不是一個(gè)安全度很高的數(shù)字簽名方案,但是由于MD4被設(shè)計(jì)的
非常快,所以它處于被成功攻擊的危險(xiǎn)中。如果有人找出擁有同一個(gè)散列的兩個(gè)
消息這樣的沖突,那么這個(gè)散列算法可以被認(rèn)為是打破的(broken)。當(dāng)沖突被發(fā)
現(xiàn)在僅有兩個(gè)散列循環(huán)[Mer90][dBB92]的MD4的變體中,并沒有沖突出現(xiàn)在有三
個(gè)散列循環(huán)的MD4中。在進(jìn)一步的研究后,我們可以認(rèn)為MD4有很高的安全性。
MD5有四個(gè)散列循環(huán),比MD4更慢。在MD4被研究前,它是被推薦使用的。
在MD5內(nèi)部的壓縮功能[dBB93]中的假?zèng)_突并沒有任何實(shí)際的安全影響。
MD2是三者中最慢的一個(gè),它有最保守的設(shè)計(jì),沒有任何對(duì)MD2的攻擊被公布
出來。

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

10.1.4 8位字節(jié)串到位串的轉(zhuǎn)換
被加密數(shù)據(jù)ED被轉(zhuǎn)換成一個(gè)位串S,即簽名。具體來說,被加密數(shù)據(jù)的第一個(gè)字節(jié)
的第一位成為簽名的第一個(gè)數(shù)據(jù)位,以此類推,直到被加密數(shù)據(jù)的最后一個(gè)字節(jié)的最后一位,
它將變成簽名的最后一個(gè)數(shù)據(jù)位。
注意:簽名S的位長(zhǎng)度是8的倍數(shù)。

10.2 驗(yàn)證過程
驗(yàn)證過程包括四個(gè)步驟:位串到字節(jié)串的轉(zhuǎn)換,RSA解密,數(shù)據(jù)解碼,消息散列和比
較。驗(yàn)證過程的輸入是字節(jié)串M,即消息;簽名者的公鑰;位串S,即簽名。其輸出是驗(yàn)證
成功或失敗的標(biāo)記號(hào)。

10.2.1 位串到字節(jié)串的轉(zhuǎn)換
簽名S被轉(zhuǎn)換成字節(jié)串ED,即被加密的數(shù)據(jù)。具體來說,假設(shè)S的位長(zhǎng)度是8的倍
數(shù),S的第一位將變成字節(jié)串的第一個(gè)字節(jié)的第一位,以此類推,直到簽名的最后一位變成
字節(jié)串的最后一個(gè)字節(jié)的最后一位。
如果簽名的位長(zhǎng)度不是8的倍數(shù),則是錯(cuò)誤。

10.2.2 RSA解密
正如在第8章節(jié)中描述的使用簽名者的公鑰對(duì)被加密數(shù)據(jù)ED進(jìn)行解密,得到字節(jié)串
D,即原始數(shù)據(jù)。
如果在解密過程中恢復(fù)的塊標(biāo)記位不是01,則是錯(cuò)誤的(見9.4節(jié))。

10.2.3 數(shù)據(jù)解碼
原始數(shù)據(jù)D將被BER解碼為類型DigestInfo的ASN.1值,此值被分成消息散列MD
和消息散列算法標(biāo)識(shí)符。消息散列算法標(biāo)識(shí)符決定了下一步所選的消息散列算法。
如果消息散列算法標(biāo)識(shí)符不是MD2,MD4或MD5消息散列算法,則為錯(cuò)誤。

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

11、對(duì)象標(biāo)識(shí)符
本文檔定義了5個(gè)對(duì)象標(biāo)識(shí)符:pkcs-1,rsaEncryption,md2WithRSAEncryption,
md4WithRSAEncryption和md5WithRSAEncryption。
對(duì)象標(biāo)識(shí)符pkcs-1等同于本篇文檔。
pkcs-1 OBJECT IDENTIFIER ::=

{ iso(1) member-body(2) US(840) rsadsi(113549)
pkcs(1) 1 }
對(duì)象標(biāo)識(shí)符rsaEncryption等同于定義在第7章節(jié)中的RSA公/私鑰和定義在第8、9章
節(jié)中的RSA加/解密過程。
rsaEncryption OBJECT IDENTIFIER ::= { pkcs-1 1 }
rsaEncryption對(duì)象標(biāo)識(shí)符被用于AlgorithmIdentifier類型的algorithm域的一個(gè)值。此
類型的parameters域有算法特定的語法ANY DEFINED BY algorithm,在rsaEncryption算法
中,其值為空。
對(duì)象標(biāo)識(shí)符md2WithRSAEncryption,md4WithRSAEncryption和
md5WithRSAEncryption各自表示定義在第10章節(jié)中的MD2 with RSA,MD4 with RSA和
MD5 with RSA簽名及驗(yàn)證過程。
md2WithRSAEncryption OBJECT IDENTIFIER ::= { pkcs-1 2 }
md4WithRSAEncryption OBJECT IDENTIFIER ::= { pkcs-1 3 }
md5WithRSAEncryption OBJECT IDENTIFIER ::= { pkcs-1 4 }
這些對(duì)象標(biāo)識(shí)符被用于AlgorithmIdentifier類型中的algorithm域的一個(gè)值。此類型的
parameters域有算法特定的語法ANY DEFINED BY algorithm,在此三個(gè)算法中,其值為空。
注意:X.509的對(duì)象標(biāo)識(shí)符rsa也表示定義在第7章節(jié)中的RSA公鑰,但并不表示私鑰,
并且表示不同的加/解密過程。一些應(yīng)用程序期望將鑒別RSA公鑰。這些公鑰和本文檔是兼
容的,使用RSA公鑰的rsaEncryption過程等同于使用rsaEncryption公鑰的rsaEncryption過
程。


安全考慮
安全內(nèi)容在此備忘錄中討論。

修訂版記錄
版本1.0-1.3
此版本在1991的2月和3月被分發(fā)給RSA Data Security, Inc.的 Public-Key
Cryptography Standards會(huì)議的參加者。

版本1.4
此版本是在1991.6.3的第一次公開發(fā)布的PKCS中的一部分內(nèi)容,并被發(fā)行作為
NIST/OSI Implementors的工作組文檔SEC-SIG-91-18。

版本1.5
此版本包括了幾處改變,其中有參考的更新和修訂版記錄的增加。下列是幾處實(shí)質(zhì)的
改變:
? 第10章節(jié):增加了MD4 with RSA的簽名和驗(yàn)證過程。
? 第11章節(jié):增加了md4WithRSAEncryption對(duì)象標(biāo)識(shí)符。
代替1991.6.3的版本,它也被作為NIST/OSI Implementors的工作組文檔
SEC-SIG-91-18。

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

作者地址

Burt Kaliski
RSA Laboratories East
20 Crosby Drive
Bedford, MA 01730

Phone: (617) 687-7000
EMail: burt@rsa.com

版權(quán)聲明
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


1
RFC文檔中文翻譯計(jì)劃


posted on 2007-05-17 13:54 Khan 閱讀(2413) 評(píng)論(0)  編輯 收藏 引用 所屬分類: GCC/G++跨平臺(tái)開發(fā)周邊技術(shù)

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久免费高清| 中文久久精品| 欧美亚洲自偷自偷| 亚洲私人影院| 一区二区激情| 亚洲香蕉伊综合在人在线视看| 一区在线观看| 亚洲电影观看| 在线观看福利一区| 日韩一级在线| 亚洲欧美在线免费观看| 欧美在线观看视频在线| 久久先锋影音av| 亚洲成人在线视频播放| 久久9热精品视频| 午夜亚洲福利| 免费日本视频一区| 亚洲精品中文字幕女同| 亚洲一区二区网站| 久久精品一区二区三区四区 | 国产日韩精品一区| 国产一区二区| 亚洲欧美视频在线观看| 久久久噜噜噜久久中文字幕色伊伊| 午夜精品免费视频| 久久躁日日躁aaaaxxxx| 欧美日本久久| 国内精品久久久| 亚洲精品一区二区网址| 香蕉乱码成人久久天堂爱免费| 欧美制服第一页| 久久阴道视频| 一区二区三区高清| 免费欧美日韩国产三级电影| 欧美极品一区二区三区| 国模吧视频一区| 亚洲一区二区三区视频| 久久婷婷久久| 午夜伦理片一区| 欧美精品一卡| 亚洲国产精品久久久久秋霞蜜臀| 欧美激情区在线播放| 午夜精品视频| 国产精品国产一区二区| 日韩午夜三级在线| 欧美激情一区二区三区| 久久久成人精品| 久久精品国产久精国产一老狼| 国产综合香蕉五月婷在线| 久久激情五月激情| 欧美精品v日韩精品v国产精品| 国产精品主播| 麻豆精品91| 亚洲美女免费精品视频在线观看| 亚洲黄色在线视频| 久久综合给合| 亚洲欧美日韩一区在线| 国产精品免费看久久久香蕉| 国产精品久久久久免费a∨| 亚洲精品久久久久久久久| 亚洲精品一区二区在线观看| 狼人天天伊人久久| 亚洲第一福利社区| 国产精品日产欧美久久久久| 亚洲日本黄色| 一区三区视频| 欧美在线一级视频| 免费视频亚洲| 亚洲欧美激情一区二区| 国产一区二区三区四区hd| 欧美专区亚洲专区| 日韩视频不卡| 欧美性猛交99久久久久99按摩| 一本在线高清不卡dvd | 一区二区三区视频在线观看| 欧美人成在线| 亚洲视频你懂的| 亚洲视频中文字幕| 国产精品日韩专区| 久久免费黄色| 美女爽到呻吟久久久久| 亚洲激情社区| 夜夜嗨网站十八久久| 国产精品手机在线| 久久精品亚洲国产奇米99| 久久婷婷国产综合精品青草| 亚洲精品黄网在线观看| 国模私拍一区二区三区| 久久精品视频在线免费观看| 久久伊人亚洲| av不卡免费看| 亚洲男女自偷自拍| 国内久久精品视频| 亚洲激情在线| 国产精品女人网站| 欧美成人国产一区二区| 欧美日韩性视频在线| 久久精品日产第一区二区| 欧美插天视频在线播放| 亚洲欧美日韩一区二区| 欧美综合第一页| 亚洲最快最全在线视频| 久久精品国产清自在天天线| 亚洲精品日韩欧美| 欧美一区二区三区免费在线看| 亚洲电影免费观看高清完整版在线观看 | 亚洲色图自拍| 欧美成人亚洲成人| 欧美精品久久一区| 亚洲欧美久久| 欧美成人情趣视频| 香蕉精品999视频一区二区| 久久久亚洲影院你懂的| 一级成人国产| 久久www成人_看片免费不卡| 99国产精品99久久久久久| 午夜亚洲一区| 亚洲一区二区久久| 久久精品在线免费观看| 欧美在线免费观看视频| 亚洲少妇在线| 中文精品视频一区二区在线观看| 亚洲性人人天天夜夜摸| 亚洲精品午夜| 国产精品午夜电影| 在线视频欧美一区| 一区二区av| 久久夜精品va视频免费观看| 国产手机视频精品| 日韩一级成人av| 影音先锋中文字幕一区| 亚洲欧美日韩系列| 亚洲图片欧洲图片日韩av| 开心色5月久久精品| 久久精品国产视频| 国产精品户外野外| 最新日韩av| 亚洲激情图片小说视频| 亚洲欧美亚洲| 欧美在线播放一区| 欧美伦理91i| 亚洲精品免费一区二区三区| 亚洲国产高清一区| 久久久av水蜜桃| 你懂的视频一区二区| 在线日韩av片| 亚洲香蕉视频| 久久精品国产一区二区三区| 国产精品一区二区在线观看网站| 亚洲特黄一级片| 99精品欧美一区| 欧美调教vk| 亚洲欧美影音先锋| 久久国产66| 国内外成人免费激情在线视频网站 | 亚洲欧美一区二区激情| 欧美日韩中文字幕在线| 亚洲私拍自拍| 久久裸体艺术| 亚洲人成欧美中文字幕| 欧美人成在线视频| 亚洲欧洲av一区二区| 久久视频一区二区| 亚洲精品美女在线| 国产精品久久国产精品99gif| 午夜久久一区| 亚洲在线视频观看| 欧美精品在线看| 亚洲一区视频在线| 久久影视三级福利片| 亚洲精品久久久久久一区二区| 欧美久久久久久久久久| 亚洲无玛一区| 国产日韩av一区二区| 欧美高清视频免费观看| 亚洲性线免费观看视频成熟| 久久精品国产成人| 日韩视频在线你懂得| 国产精品高潮视频| 欧美一区二区三区的| 亚洲国产日韩精品| 香蕉久久a毛片| 亚洲看片免费| 一区二区三区自拍| 国产精品va在线播放我和闺蜜| 久久国产精品亚洲77777| 亚洲黄色在线观看| 久久精品一区二区三区不卡| 免费日韩av| 欧美在线视频一区二区| 亚洲精品久久久久久久久| 国产亚洲网站| 欧美视频一区二区三区四区| 欧美一区二区在线观看| aa亚洲婷婷| 欧美暴力喷水在线| 久久国产主播精品| 亚洲女人天堂成人av在线| 亚洲精品乱码| 亚洲精品1区|