对称和非对称加密体制
对称密码体制的问题
加密能力与解密能力是捆绑在一起的
密钥更换、传递和交换需要可靠信道,密钥分发困难
密钥管理困难
无法满足不认识的人之间通信的保密要求
不能实现数字签名
非对称密码体制
加密能力和解密能力是分开的
密钥分发简单
需要保存的密钥两大大减少
可满足不认识的人之间保密通信
可以实现数字签名
公开密钥密码体制
仅根据密码算法和加密密钥来确定解密密钥在计算上是不可行的
两个密钥的任何一个都可用来加密,另一个用来解密
公钥密码体制的组成
明文:算法的输入,可读信息或数据
加密算法:对明文进行各种转换
公钥和私钥:算法的输入,分别用于加密和解密
密文:算法的输出,依赖于明文和密钥
解密算法:根据密文和密钥,还原明文
公钥密码体制的应用
加密/解密:发送方用接收方的公钥对消息加密
数字签名:发送方用其私钥对消息签名,可以对整体消息签名或对消息的摘要签名
密钥交换:通信双方交换会话密钥
RSA算法
基于大合数的质因子分解问题的困难性
select
,
calculate
calculate
select integer
,
calculate
,
-1
public key,
private key,
加密
for plaintext:
, ciphertext:
(
)
解密
for ciphertext:
plaintext:
(
)
针对RSA的计时攻击
类似通过观察他人转动保险柜拨号盘的时间长短来猜测密码
可能的解决方法
不变的幂运行时间,可能会降低性能
在求幂运算中加入随机延时
隐蔽:在执行幂运算之前先将密文乘上一个随机数