13 数字签名
数字签名前面已经讲过很多次了,我们再来详细的看一下
13.1 数字签名概述
13.1.1 特征
消息认证可以保护消息不受第三方攻击,但是不能保证交易双方的错误
- 必须能验证签名者、签名日期和时间
- 必须能认证被签的消息内容
- 由第三方仲裁以解决争执
13.1.2 攻击和伪造
- 唯密钥攻击,破解私钥
- 已知消息攻击,用公钥和合法签名破解
- 一般选择消息攻击,基于消息攻击
- 定向选择消息攻击,可以轮训A
何为成功破解
- 完全破译
- 通用伪造;能伪造出合法签名
- 选择伪造;伪造出对特定信息的合法签名
- 存在性伪造,至少可伪造一个合法签名
13.1.3 数字签名需求
- 签名必须是和消息相关的二进制位串
- 签名包含A的某些独有信息,以防伪造和否认
- 产生签名容易
- 识别和验证签名容易
- 伪造在计算上不可行
- 保存签名副本可行
13.1.4 直接数字签名
A和B使用共享密钥(对称加密)对整个消息和签名加密,问题在一A可以否认以及密钥可以丢失或窃取,解决方案使用数字证书的证书管理中心
13.2 ElGamal 数字签名方案
私钥加密,公钥解密,能判断信息来源
13.3 Schnorr数字签名方案
同上,也是基于离散对数
13.4 数字签名标准
13.4.1 DSA算法
DSA使用哈希码和为此次签名所产生的随机数k 作为签名函数的输入,签名函数依赖于发送方的私钥和一组参数,签名由两部分组成,s和r
13.4.2 数字签名算法
DSA也是的建立在求离散对数的困难性上面的
13.5 椭圆曲线数字签名算法
13.5.1 全局参数
- q
- a,b
- G,满足椭圆曲线等式的基点,计算Q=dG,得到一个曲线Eq(a,b)上的解点
- n,点G的阶,n满足nG=O的最小正整数,也等于曲线上点点个数
13.5.2 密钥产生
选一个随机数d[1,n-1],计算曲线上的点,即为公钥
13.5.3 数字签名的产生和认证
- 选择随机数k,k = [1,n-1]
- 计算kG(x,y),以及r= x mod n, 若r =0,则回到步骤1
- t = k^-1 mod n
- e = Hash(m)Hash函数为SHA-2或SHA-3
- 计算s = k^-1(e + dr) mod n,如果 s = 0,回到步骤1
- 消息m的签名是(r,s)对
验证
- 检验r和s是否为在[1,n-1]之间
- 使用SHA,计算160位的Hash值e = H(m)
- 计算w = s^-1 mod n
- 计算u1 = ew和u2 = rw
- 计算解点 X=(x1,y1)=u1G + u2G
- 若X = O拒绝签名,否则计算v = x1 mod n
- 当v = r时,接受签名
13.6 RSA-PSS数字签名算法
13.6.1 掩码产生函数
一般基于安全的Hash函数构造
13.6.2 签名操作
13.6.3 签名验证
此种签名算法广泛的应用在金融各类应用中
14 密钥的管理和分发
14.1 基于对称加密的对称密钥分发
在对称密码的情况下分发密钥
- A以物理方式给B
- 第三方以物理方式给A和B
- 用旧密钥加密新密钥发送给B
- 通过第三方的加密连接发送给A和B
密钥分发中心是基于密钥层次体系的,最少需要两个密钥层。两个终端系统之间使用临时密钥加密,这种情况下需要N个密钥
14.1.1 密钥分发方案
A和B通过中KDC获得一次性会话密钥然后建立安全连接
14.1.2 层次密钥控制
主要目的是密钥分发的开销最小化
14.1.3 会话密钥的生命周期
首先会话密钥更换的越频繁越安全,但是成本大,网络负担重
面向连接的协议,会话整个生命周期使用一个会话密钥,每一次则使用新的密钥
无连接协议则最好是根据特定时期或者特定数量的事务分配不同的会话密钥
14.1.4 透明的密钥控制策略
主机发送请求连接包-安全服务缓存请求包,向KDC请求会话密钥- KDC给两个主机分发会话密钥-传输缓存的请求包
14.1.5 分布式的密钥控制
在局部网络中可以使用分布式分发方式,需要确保终端能以安全的方式与临近的伙伴通信
14.1.6 控制密钥的使用
因为不同的场景应用的密钥是不同的,所以要添加控制。具体是使用控制向量和标签,第一,控制向量的长度没有限制,可以给密钥的使用添加任意复杂的控制,第二,在所有的操作层面上,明文的形式控制向量是有效的,即密钥应用的控制可以在多个位置使用
14.2 基于非对称加密的对称密钥分发
效率低不会用于大数据块的加密
14.2.1 简单密钥分发方案
但是存在中间人攻击
14.2.2 确保保密性和身份验证的密钥分发方案
14.2.3 混合方案
公钥分发主密钥,主密钥分发会话密钥
14.3 公钥分发
公开发布
公开可访问目录
公钥授权
公钥证书
14.4 X.509证书
定义了一个认证服务框架,每个证书包含该用户的公钥由一个可信的签证机构用私钥签名,还定义了一个基于公钥证书的一个认证协议
14.4.1 证书
证书通常包含一些格式和标准
CA生成的用户证书特点:
任何可以访问CA公钥的用户可获得证书中的认证公钥
只有CA可以修改证书
14.5 公钥基础设施
一个可以用来构建网络认证体系的基本模型PKIX,其中的各个元素:
- 端实体
- 签证机构CA
- 注册机构RA
- 证书撤销列表
- 证书存取库
14.5.1 PKIX管理任务
- 用户注册
- 初始化
- 认证书
- 密钥对的恢复
- 密钥对更新
- 证书撤销请求
- 交叉认证
14.5.2 PKIX协议
在实体间,管理协议有CMP和CMC