公钥加密标准

1.简介

公钥加密标准(Public Key Cryptography Standards,PKCS)模型最初是由RSA实验室开发的,得到政府、行业和学术代表的帮助。PKCS的主要目的是把公钥基础设施(PKI)标准化。标准化包括许多方面,如格式、算法等。这样可以帮助组织开发与实现相互可操作的PKI方案,而不是个人选择自己的标准。下表总结了PKCS标准:

标准名称细节
PKCS# 1RSA加密标准定义了RSA公钥函数的基本格式规则,特别是数字签名。定义了数字签名的计算方法,包括签名的数据结构和签名格式。标准还定义了RSA私钥与公钥语法
PKCS# 2消息摘要的RSA加密标准这个标准概述消息摘要计算,但现已和PKCS# 1合并,不再独立存在
PKCS# 3Diffie-Hellman密钥协定标准定义实现Diffie-Hellman Key密钥交换协议的机制
PKCS# 4和PKCS# 1合并
PKCS# 5基于口令加密描述用对称密钥加密八进制字符串的方法,对称密钥从口令求出
PKCS# 6扩展证书语法标准定义扩展X.509数字证书基本属性的语法
PKCS# 7加密消息语法标准指定加密操作结果的数据格式/语法。这个标准提供许多格式选项
PKCS# 8私钥信息标准描述私钥信息语法,即生成私钥的算法与属性
PKCS# 9选择属性标准定义PKCS#扩展证书使用的所选属性类型
PKCS# 10证书请求标准定义请求数字证书的语法,数字证书请求包含区别名和公钥
PKCS# 11加密令牌接口标准这个标准也称为Cryptoki,指定单用户设备的API,包含加密信息,如私钥与数字证书。这些设备还可以完成加密功能。
PKCS# 12个人信息交换语法标准定义个人标识信息,使用户可以用标准机制将证书和其他个人标识信息从一个设备移到另一设备
PKCS# 13椭圆曲线加密标准正在开发,处理所谓椭圆曲线加密法的新加密机制
PKCS# 14伪随机数生成标准正在开发,指定随机数产生要求与过程。由于随机数在加密中大量使用,因此一定要将其生成方法标准化
PKCS# 15加密令牌信息语法标准定义加密令牌标准,使其可以相互操作
2.PKCS# 5:基于口令的加密标准

基于口令加密标准(Password-Based Encryption,PBE)是保证对称会话密钥安全的方案,这个技术保证保护对称密钥,防止非法访问基于口令加密标准方法用口令加密会话密钥,如下图所示:
在这里插入图片描述
如上图所示,首先用对称密钥加密明文消息,然后用密钥加密密钥(Key Encrypted Key,KEK)将对称密钥加密,使对称密钥防止非法访问,这个概念和数字信封很相似,任何人要访问对称密钥时,都要访问KEK。要保护密钥加密密钥,最好的方法是不把它存放在任何地方,保证谁也无法访问,但这样也就无法在需要时用其解密对称密钥。因此,基于口令加密标准所用的方法是在需要时生成,用其加密或解密对称密钥,然后立即放弃。这样就要能够在需要时生成密钥加密密钥,为此要使用口令。口令是密钥生成过程的输入(通常用消息摘要算法),输出是密钥加密密钥。
这种机制的缺点是敌人可以对其进行字典攻击,即预先计算所有英语单词及其置换组合,存放在一个文件中,试图把其中的每个单词作为口令。由于口令通常是简单的英语单词,因此这个攻击很可能成功,使敌人可以访问密钥加密密钥。为了防止这种攻击,除了口令外,密钥生成过程还使用另外两个信息,它们是盐和迭代计数。盐就是位字符串,与口令一起生成密钥加密密钥,迭代计数指定对口令与盐组合生成KEK时要执行的操作次数。盐和迭代计数不需要保密,而且不能保密,既不能存放成加密格式。如果保密,则无法访问;但如果不保密,则攻击者也能访问。攻击者可以用已知盐、迭代计数和对口令的字典攻击试验与生成KEK,这是完全可能的。但是这个攻击与上一次攻击的最大差别在于攻击者无法根据预先计算的值进行字典攻击,而要将字典中的每个字与盐组合,将密钥生成过程执行指定次数,是攻击任务困难的多。

3.PKCS# 8:私钥信息语法标准

这个标准安全存放用户私钥的语法,还描述如何存放私钥的另外几个属性。标准还描述了私钥加密语法,使其免受攻击。可以用基于口令加密算法加密私钥信息。PKCS# 8可以看成是PKCS# 12的前身。

4.PKCS# 10:证书请求语法标准

前面已经介绍用户如何生成与发送证书请求。PKCS# 10描述了证书请求语法。证书请求包括区别名、公钥和可选属性组。证书请求发送到证书机构,并把请求变成X. 509公钥证书或PKCS# 6扩展证书。
证书请求包括3个方面:证书请求信息、签名算法标识符和对证书请求信息的数字签名。证书请求信息包括实体区别名、实体公钥和实体的属性组,由请求证书的实体用签名私钥,然后向CA发送证书请求信息、签名请求和使用的签名算法。CA验证实体签名和其他方面,如果一切顺利,则签发证书。

5.PKCS# 11:加密令牌接口标准

这个标准指定用智能卡之类硬件令牌进行的操作。智能卡的样子像信用卡或ATM卡,但具有智能,即有自己的加密处理器和内存。智能卡中可以直接进行各种加密操作,如密钥生成、加密和数字签名。用户的数字证书
和私钥也存放在卡中,私钥不会向外部应用程序暴露,也不能从智能卡复制到其他地方。智能卡很小巧,便于携带,用户不用软盘就可以把私钥与数字证书带在身边。
智能卡阅读器是个小设备,对智能卡提供电源,使智能卡可以和外部应用程序通信。智能卡阅读器提供了启动通电和使用智能卡的电信号。如今,桌面计算机和手提电脑已经提供了内置智能卡阅读器,不再需要外部智能卡阅读器。

6.PKCS# 12:个人信息交换语法

PKCS# 12标准解决证书与私钥的存储和传输问题。具体地说,安全地存储和传输证书与私钥而不会被篡改。这在Web浏览器用户情形中更为重要。PKCS#12可以看
成是PKCS#8的改进版。
在PKCS# 12出现之前,Microsoft公司开发了PEX(个人文件交换)格式,最初没有实现,但Netscape实现了PFX格式。PFX格式是存储与交换个人信息(如私钥、证书,等等)的机制。PKCS# 12出现后,Microsoft nternet Explorer与Netscape Navigator浏览器只允许导人PFX文件(与旧文件兼容),而不允许导出PFX文件。但是,这两个浏览器都可以导入和导出PKCS# 12文件(扩展名为P12)。更为复杂的是,IE文件内部为PKCS# 12,而扩展名为PEX。

7.PKCS# 14:伪随机数生成标准

随机数在密码学中非常重要,因此这个标准定义了生成随机数的要求。随机数序列的特点是:给定其中的第n个数,无法预测第n+1个数。
随机数生成器(Random Number Generator,RNG)是一种专门用于生成一系列数字或符号的设备,这些数字或符号不会显示出任何特定的规律。生成随机数的主要技术有两种:第一种是度量一些随机的物理特定,然后计算度量过程中出现的偏差;第二种是使用计算能力,生成一长串的随机数,但这些数并不是随机的。
计算机伪随机数生成有三种方法:
(1)监视产生随机数据的硬件:这是用计算机生成随机数的最佳方法,但成本很高。生成器通常是一个电路,对某个随机物理时间敏感,如二级复杂波或气温改变,这个不可预测事件序列变成随机数。
(2)从用户交互收集随机数据:这个方法用键击、鼠标移动之类用户交互作为生成器的随机输入。
(4)从计算机内收集数据:这个方法从计算机内收集难以预测的数据,如系统的时钟、磁盘上文件个数、磁盘块数、未用和已用的内存空间量,等等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZhInen丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值