Home 数字签名及认证协议
数字签名及认证协议
取消

数字签名及认证协议

散列值(消息摘要)

认证协议

双向认证

单向认证(如CA)

 

DSS签名标准

核心是RSA算法

它使用安全散列算法

 

一、数字签名(Digital Signature)

1、定义

    1、确认消息发送者的身份

    2、对消息进行多次签名

2、基本要求

    1、当双方不能完全信任的情况,需要除了认证以外的方法,就是数字签名

    2、数字签名不可伪造

    3、发生争议时,可以有第三方协商

3、基本形式

    1、签名和消息认证的区别

        认证是保证消息没有被修改,但是签名是解决收发放的冲突

    2、签名的两种方法

        对消息的整个签名

        对消息摘要进行签名

    3、两类数字签名

        确定性签名:明文与签名一一对应

        概率性签名:由于散列值多对一的特性,一个明文可以有多个合法的数字签名

其他分类

    直接数字签名

    仲裁数字签名    

 一般不对消息直接签名而是对它的哈希函数签名

    不同长度的消息输入会获得定长的hash函数输出,更加适合签名

    hash函数具有单向性,可以体现签名的唯一性

 

二、认证协议

身份认证(通信对象)和报文认证(报文认证)

保证:信息的真实性    存储数据的真实性    接收方提供回执(接收方要应答)    发送方不可否认(单向认证)    时效性和公正可能性

防窃听,防假冒, 防窃取

 

单向认证(对称加密,一次一密的变形    改进口令方式    有密钥加密送B,B用A的公开密钥验证

                    使用公开密钥方法,A想B生成是A,B则向A送一随机数R,A用其私钥

双向认证(对称密钥(三次握手) , 公开密钥方式,AB双方采取不同的随机值, 时标方式

可信中继 使用KDC密钥分发中心,    通过DASS(如CA)

群认证

 

双向认证协议可以市通信双方达成一致并交换回话密钥

 

(以下考)

重放攻击:合法的签名消息被拷贝后重新送出

双向认证:防止重放

    使用序列号(面向连接的TCP协议

    使用时间戳(需要同步时钟

    挑战应答(使用单独的nonce)

 

对称加密实现双向验证

1、使用两层传统的加密密钥结构保证分部环境中通信的保密性

2、通常需要可信密钥分发中心KDC

    每一方与KDC共享主密钥

    KDC产生双方通信要用的会话密钥

    用主密钥来分发会话密钥

 

ELGamal的数据加密算法(考):用公钥加密私钥解密

AB 共享大素数q,本原元素 a,明文m:0<= m <=q-1

1、A选取随机数XA作为私钥,其中0<= XA <=q-1

2、A求公钥,并发布

    YA = a^XA mod q

    公钥 = {YA,a,q}

 

3、B使用A的公钥加密

    (1)首先算出加密密钥K

    (2)B选取任意k( 0<= k <=q-1)

    (3)K = YA^k mod q

    (4)加密分别为加密密钥和加密明文

            C1 = a^k mod q,    C2 = MK mod q

4、A接收消息后解密

    先求出密钥K = C1^XA mod q                        C1^XA mod q = a^k*XA mod q = YA^k mod q  = K

    再求出明文M = (C2*K^-1) mod q 

 

ELGamal的数字签名算法(考):用私钥加密公钥解密

首先从有限域GF(q)的本原根序列中选取一个本原根a

A选择XA

则YA = a^XA mod q

则A的私钥为XA,公钥为{q,a,YA}

签名过程:注意m是明文,hm是明文的散列值,考试的时候是用hm替代m的

    A选择K,要与q-1互素

    S1 = aK mod q

    K*K^-1(K的逆元)mod (q-1)=1    求K关于q-1的乘法逆元

    S2 = K^-1(m - XA - S1) mod (q-1)

验证签名过程

    V1 = a^m mod q

    V2 = (YA)^S1 * (S1)^S2 mod q

    V1 = V2

 

A为B签署m,0<=m<=p-1

A随机选择k[0,p-1],gcd(k, p-1) = 1

计算:

 

eg p=17, a =3 XA = 2, XB = 5, m =11, k =5 ,求签名及验证

 

 

 

 

 

 

 

 

 

 

 

 

该博客文章由作者通过 CC BY 4.0进行授权。