在公钥密码体制出现之前,所有的密码算法都是基于替换和置换两个基本工具。公钥密码体制为密码学的发展提供了新的理论和技术基础: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的公钥解密,解密过程如下:
流程如下:
公钥加密算法要求