PKCS标准

上一篇 / 下一篇  2011-07-05 15:55:17

最近看到项目里面的安全方案中写描述的“数据签名采用标准的PKCS#1格式”。不太明白这段话的含义,特意到网上去搜索了一下PKCS的含义,现在摘出来分享一下,也算是给自己记录一下

公钥密码标准PKCS最初是为推进公钥密码系统的互操作性,由RSA实验室与工业界、学术界和政府代表合作开发的。在RSA带领下,PKCS的研究随着时间不断发展,它涉及了不断发展的PKI格式标准、算法和应用程序接口。PKCS标准提供了基本的数据格式定义和算法定义,它们实际是今天所有PKI实现的基础。

PKCS标准的内容

PKCS标准如下:

1PKCS#1RSA加密标准。PKCS#1定义了RSA公钥函数的基本格式标准,特别是数字签名。它定义了数字签名如何计算,包括待签名数据和签名本身的格式;它也定义了PSA/私钥的语法。

2PKCS#2:涉及了RSA的消息摘要加密,这已被并入PKCS#1中。

3PKCS#3Diffie-Hellman密钥协议标准。PKCS#3描述了一种实现Diffie- Hellman密钥协议的方法。

4PKCS#4:最初是规定RSA密钥语法的,现已经被包含进PKCS#1中。

5PKCS#5:基于口令的加密标准。PKCS#5描述了使用由口令生成的密钥来加密8位位组串并产生一个加密的8位位组串的方法。PKCS#5可以用于加密私钥,以便于密钥的安全传输(这在PKCS#8中描述)。

6PKCS#6:扩展证书语法标准。PKCS#6定义了提供附加实体信息的X.509证书属性扩展的语法(当PKCS#6第一次发布时,X.509还不支持扩展。这些扩展因此被包括在X.509中)。

7PKCS#7:密码消息语法标准。PKCS#7为使用密码算法的数据规定了通用语法,比如数字签名和数字信封。PKCS#7提供了许多格式选项,包括未加密或签名的格式化消息、已封装(加密)消息、已签名消息和既经过签名又经过加密的消息。

8PKCS#8:私钥信息语法标准。PKCS#8定义了私钥信息语法和加密私钥语法,其中私钥加密使用了PKCS#5标准。

9PKCS#9:可选属性类型。PKCS#9定义了PKCS#6扩展证书、PKCS#7数字签名消息、PKCS#8私钥信息和PKCS#10证书签名请求中要用到的可选属性类型。已定义的证书属性包括E-mail地址、无格式姓名、内容类型、消息摘要、签名时间、签名副本(counter signature)、质询口令字和扩展证书属性。

10PKCS#10:证书请求语法标准。PKCS#10定义了证书请求的语法。证书请求包含了一个唯一识别名、公钥和可选的一组属性,它们一起被请求证书的实体签名(证书管理协议中的PKIX证书请求消息就是一个PKCS#10)。

11PKCS#11密码令牌接口标准PKCS#11“Cryptoki”为拥有密码信息(如加密密钥和证书)和执行密码学函数的单用户设备定义了一个应用程序接口(API)。智能卡就是实现Cryptoki的典型设备。注意:Cryptoki定义了密码函数接口,但并未指明设备具体如何实现这些函数。而且Cryptoki只说明了密码接口,并未定义对设备来说可能有用的其他接口,如访问设备的文件系统接口。

12PKCS#12:个人信息交换语法标准。PKCS#12定义了个人身份信息(包括私钥、证书、各种秘密和扩展字段)的格式。PKCS#12有助于传输证书及对应的私钥,于是用户可以在不同设备间移动他们的个人身份信息。

13PDCS#13:椭圆曲线密码标准。PKCS#13标准当前正在完善之中。它包括椭圆曲线参数的生成和验证、密钥生成和验证、数字签名和公钥加密,还有密钥协定,以及参数、密钥和方案标识的ASN.1语法。

14PKCS#14:伪随机数产生标准。PKCS#14标准当前正在完善之中。为什么随机数生成也需要建立自己的标准呢?PKI中用到的许多基本的密码学函数,如密钥生成和Diffie-Hellman共享密钥协商,都需要使用随机数。然而,如果随机数不是随机的,而是取自一个可预测的取值集合,那么密码学函数就不再是绝对安全了,因为它的取值被限于一个缩小了的值域中。因此,安全伪随机数的生成对于PKI的安全极为关键。

15PKCS#15:密码令牌信息语法标准。PKCS#15通过定义令牌上存储的密码对象的通用格式来增进密码令牌的互操作性。在实现PKCS#15的设备上存储的数据对于使用该设备的所有应用程序来说都是一样的,尽管实际上在内部实现时可能所用的格式不同。PKCS#15的实现扮演了翻译家的角色,它在卡的内部格式与应用程序支持的数据格式间进行转换。

PKCS主要用途

以上标准主要用于用户实体通过RA的证书申请、用户的证书更新过程。当证书作废时,RA通过CA向目录服务器中发布证书撤销列表CRL,用于扩展证书内容,以及数字签名与验签过程和实现数字信封格式定义等一系列相关协议。

Note: PKCS #2 and PKCS #4 have been incorporated into PKCS #1 
PKCS #1: RSA Cryptography Standard 
PKCS #3: Diffie-Hellman Key Agreement Standard 
PKCS #5: Password-Based Cryptography Standard 
PKCS #6: Extended-Certificate Syntax Standard 
PKCS #7: Cryptographic Message Syntax Standard 
PKCS #8: Private-Key Information Syntax Standard 
PKCS #9: Selected Attribute Types 
PKCS #10: Certification Request Syntax Standard 
PKCS #11: Cryptographic Token Interface Standard 
PKCS #12: Personal Information Exchange Syntax Standard 
PKCS #13: Elliptic Curve Cryptography Standard 
PKCS #15: Cryptographic Token Information Format Standard 
PKCS Mailing Lists

PKCS#7 
PKCS#7,
也叫做加密消息的语法标准,由RSA安全体系在公钥加密系统中交换数字证书产生的一种加密标准。 
概述 
PKCS#7
描述数字证书的语法和其他加密消息——尤其是,数据加密和数字签名的方法,也包含了算法。当使用PKCS#7进行数字签名时,结果包含签名证书(一列相关证书撤回列表)和已证明路径上任何其他证书。如果使用PKCS#7加密数据,通常包含发行者的参考消息和证书的序列号,它与用于解密已加密数据的公共密钥相关。 
PKCS#7
也支持另外一些特征,如: 
·
递归,在一个数字信封上附上一个数字信封,还可再附上一个数字信封,如此等等。 
·
加密消息和数字签名的时间标记。 
·
签名计数和用户定义属性。 
实现 
PKCS#7
可用于加密两类数据: 
1)基本数据:没有加密的数据,并且不包含了的附带物如散列或数字签名。 
2)增强的数据:数据已加密或包含了的附带物,或两者都有。增强的内容以一种形式压缩进另外的内容里面。 
PKCS#7
标准定义了多种内容类型,包括下面这些: 
·
数据:字节或8位元组串。 
·
签名设计:随加密数据摘要一起的数据。一个信息摘要是一个哈希算法的结果(术语摘要和散列是相同定义的)。使用信息摘要保证原始消息在传输过程中没有被篡改,并确认发送者的身份。 
·
封装数据:密文加上公钥能够解密数据。用这种方法保持消息内容对所有人保密,都是信任收件人。 
·
签名和加密数据:有公钥的加密内容和双重加密的消息摘要。 
·
摘要数据:数据加上消息摘要。 
·
单独的加密数据:在这种情况,加密数据的公钥必须通过其他机制传输。


TAG: PKCS

 

评分:0

我来说两句

日历

« 2024-05-07  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 2052
  • 日志数: 2
  • 建立时间: 2010-12-21
  • 更新时间: 2011-07-05

RSS订阅

Open Toolbar