公钥密码体制
- 公钥密码体制的概念
- 公钥密码体制的原理
- 使用公钥密码体制加密传送消息的过程
- 使用公钥密码体制进行消息认证的过程
- 使用公钥密码体制的加密和认证过程
- 公钥密码算法要求
- 公钥密码体制的攻击
- 1.穷搜索攻击
- 2.根据公钥计算密钥
- 3.可能字攻击
在公钥密码体制之前,所有的密码算法都是基于代换和置换这两个基本工具。公钥密码体制为密码学的发展提供了新的理论和技术基础:1.公钥密码算法的基本攻击不再是代换和置换,而是数学函数;2.公钥密码以非对称的形式使用两个密钥,两个密钥的使用对保密性、密钥分配、认证等都有着深刻的意义。
公钥密码体制的概念
公钥密码体制的概念是在解决数字签名和公钥分配这两个问题时提出的。
在解决公钥分配时,要求通信双方要么已经有一个共享的密钥,要么有一个可借助的密钥分配中心
在解决数字签名时,考虑的是如何为数字化的消息或文件提供一种类似于为书面文件签字的方法,主要是用来保证传送数据不被修改
公钥密码算法的最大特点是采用两个相关密钥将加密和解密能力分开,其中一个是公开的,称为公钥,用于加密;其中一个是为用户专用的,是保密的,称为私钥,用于解密。因此公钥密码体制也被称双钥密码体制
公钥密码体制的原理
公钥密码体制的加密和解密依赖于:已知密码算法和加密密钥,求解密密钥在计算上是不可行的
使用公钥密码体制加密传送消息的过程
1.消息接受者B需要产生一对用来加密和解密的密钥
2.消息接受者B将加密密钥PKB予以公开,另一解密密钥SKB保密
3.消息发送者A使用PKB对要发送的消息m进行加密,得到密文c,表示如下:
4.B收到密文c后,用私钥SKB进行解密操作,解密过程如下:
由于密钥SKB只有B知道,因此只有B能对密文c解密。
过程如图所示:
使用公钥密码体制进行消息认证的过程
公钥加密算法不仅能用来加密和解密,还能用来对A发送的消息m进行一个认证操作。
过程:
1.用户A用自己的私有密钥SKA对明文m进行加密,加密过程如下:
2.将c传送给B
3.B用A的公开密钥PKA对c解密,解密过程如下:
因为数字签名的加密密钥SKA只有A才有,因此没有人能够对m进行修改,保证了消息完整性和消息来源的认证
流程如图所示:
使用公钥密码体制的加密和认证过程
发送方A先用自己的私钥SKA对消息m加密,用于提供数字签名,然后用接收者B的公钥PKB进行第二次加密,加密过程为:
接受者先用自己的私钥解密,然后再用发送方A的公钥进行解密,解密过程如下:
流程如下:
公钥密码算法要求
公钥密码算法应满足如下条件:
- 接收方B产生密钥对是计算上容易的
- 发送方用收方的公钥对消息m加密产生密文c在计算上容易的
- 接收方B用密钥对密文c进行解密得到明文m在计算上是容易的
- 敌手根据公钥求私钥在计算上不可行的
- 敌手根据密文c和公钥恢复明文m在计算上是不可行的
- 加解密次序可以调换(某些算法满足),即:
以上要求的本质就是一个陷门单向函数。陷门单向函数是指该函数是易于计算的,除非已知某些信息,否则求它的逆是不可行的,且当给定信息后,求逆可在多项式时间完成。即陷门单向函数需要满足:
1.已知k和X时,Y=f(X)容易计算
2.已知k和Y时,X=f-1容易计算
3.已知Y,但未知k时,X=f-1在计算是不可行的
公钥密码体制的攻击
1.穷搜索攻击
由于密码太短,公钥密码体制很容易受到穷搜索攻击,因此密钥需要满足一定长度,但是密钥太长,解密运算又会太慢导致算法不实用。因此目前公钥密码体制主要用于密钥管理和数字签名
2.根据公钥计算密钥
3.可能字攻击
仅适用于对公钥密码算法的攻击。
该方法的本质还是穷搜索攻击,只是已知了某些信息,如截获某段密文,根据公钥对所有可能的密钥进行穷举,用所以可能的密钥加密后与截获的密文记行比较,若一样,则密钥就被找出
可以通过在要发送的明文消息后面添加一些随机比特