[译] PKCS 是什么?

看到一篇 EMC 的文档,介绍 PKCS 的,叫 《WHAT IS PKCS?》,觉得写得蛮好的,但是没有发现中文版,干脆我来翻译一下,如有错误欢迎指正。

公钥密码学标准(PKCS)是由 RSA 实验室与一个非正式联盟合作共同开发的一套公钥密码学的标准,这个非正式联盟最初包括 Apple、Microsoft、DEC、Lotus、Sun 和 MIT。PKCS 已经被 OIW(OSI 标准实现研讨会)作为一个 OSI 标准实现。PKCS 是基于二进制和 ASCII 编码来设计的,也兼容 ITU-T X.509 标准。已经发布的标准有 PKCS #1、#3、#5、#7、#8、#9、#10、#11、#12 和 #15。PKCS #13 和 #14 正在开发中。

PKCS 包括算法指定(algorithm-specific)和算法独立(algorithm-independent)两种实现标准。多种算法被支持,包括 RSA 算法和 Diffie-Hellman 密钥交换算法,然而只有后两种才特别详尽。PKCS 也为数字签名、数字信封、可扩展证书定义了一种算法独立(algorithm-independent)的语法;这就意味着任何加密算法都可以实现这套标准的语法,并且因此获得互操作性。

以下是公钥加密标准(PKCS):

  • PKCS #1 定义了基于 RSA 公钥密码系统加密和签名数据的机制
  • PKCS #3 定义了 Diffie-Hellman 密钥协商协议
  • PKCS #5 描述了一种通过从密码衍生出密钥来加密字符串的方法
  • PKCS #6 被逐步淘汰,取而代之的是 X.509 的第三版本
  • PKCS #7 为信息定义了大体语法,包括加密增强功能产生的信息,如数字签名和加密
  • PKCS #8 描述了私钥信息的格式,这个信息包括某些公钥算法的私钥,和一些可选的属性
  • PKCS #9 定义了在其他的 PKCS 标准中可使用的选定的属性类型
  • PKCS #10 描述了认证请求的语法
  • PKCS #11 为加密设备定义了一个技术独立的(technology-independent)编程接口,称之为 Cryptoki,比如智能卡、PCMCIA 卡这种加密设备
  • PKCS #12 为存储或传输用户的私钥、证书、各种秘密等的过程指定了一种可移植的格式
  • PKCS #13 的目的是为了定义使用椭圆曲线加密和签名数据加密机制
  • PKCS #14 正在酝酿中,涵盖了伪随机数生成
  • PKCS #15 是一个 PKCS #11 的补充,给出了一个存储在加密令牌上的加密证书的格式的标准

RSA 实验室的意图就是要时不时修改 PKCS 文档以跟得上密码学和数据安全领域的新发展,以及当机会出现时转变文档成开放标准的研制计划。

有任何问题和留言请直接联系 pkcs-editor@rsasecurity.com