第十三章-上-数字签名

第十三章 数字签名和认证协议

数字签名是一种认证机制,使得消息的产生者可以添加一个起签名作用的码字。通过计算消息的散列值并用产生者的私钥加密散列值来生成签名。签名保证了消息的来源和完整性。

互相认证协议使得通信的各方对互相的身份感到放心,并交换会话密钥。

单向认证时,接收方想确信消息确实来自声称的发送方。

数字签名标准DSSNIST标准,它使用安全散列算法(SHA)。

 

消息认证可以保护信息交换双方不受第三方的攻击,但是它不能处理通信双方自身发生的攻击。

对数字签名的要求:

     它必须能验证签名者、签名日期和时间。

     它必须能认证被签的消息内容。

     签名应能由第三方仲裁,以解决争端。

因此,数字签名具有认证功能

 

数字签名应满足的条件:

     签名必须是与消息相关的二进制位串。

     签名必须使用发送方某些独有的信息,以防伪造和否认。

     产生数字签名比较容易。

     识别和验证签名比较容易。

     伪造签名在计算式不可行。

     保存数字签名的拷贝是可行的。

 

数字签名可分为两类:直接数字签名和仲裁数字签名

 

1 直接数字签名

先进行签名,然后才执行外层的加密,这样在发生争执时,第三方可以查看消息及其签名。

若先对消息加密,然后对消息的密文签名,那么第三方必须知道解密密钥才能读取原始信息。

 

2 仲裁数字签名

从发送方X到接收方Y的每条已签名信息都先发给仲裁者AA对消息及其签名进行检查以验证消息源及其内容,然后给消息加上日期并发给Y,同时指明该消息已通过仲裁者的检验。

 

认证协议

相互认证是一个重要的应用领域,相互认证协议可以使通信双方确信对方的身份并交换会话密钥。

保密性和及时性是认证的密钥交换中两个重要的问题。

 

对付重放攻击的方法之一是,在每个用于认证交换的消息后附加一个序列号,只有序列号正确的消息才被接收。

     时间戳:需要时钟同步。

     挑战/应答:临时交易号。

 

时间戳方法不适用于面向连接的应用。

挑战/应答不适用于无连接的应用。

 

单向认证

“信封”的头必须是明文形式,这样,简单邮件传输协议SMTPX.400这样的存储~转发电子邮件协议才能够对它们进行处理。

 

数字签名标准DSS

DSS使用的是只提供数字签名功能的算法。与RSA不同,DSS是一种公钥方法,但不能用于加密或密钥分配

RSA方法中,散列函数的输入是要签名的消息,输出定长的散列码,用发送方的私钥对该散列码进行加密形成签名,然后发送消息及其签名。

DSS方法中,产生的散列码和为此次签名而产生的随机数k作为签名函数的输入签名函数依赖于发送方的私钥和一组参数。

 

数字签名算法DSA

DSA建立在求离散对数的困难性上。

 

1 全局公钥组成。

p是素数,其中 2L -1<p< 2 L , 512L1024L64的倍数,即L的位长在5121024之间并且其增量为64q(p-1)的素因子,其中2159<q<2160;即位长为160g=h(p-1)/q mod p,其中h是满足1<h<(p-1),并且h(p-1)/q mod p > 1的任何整数。

 

2 用户是私钥

x为随机或伪随机整数,且0<x<q

 

3 用户的公钥

y = gx mod p

 

4 与用户每条消息有关的秘密值

k 等于随机或伪随机整数,且0<k<q

 

5 签名

r = (gk mod p) mod q      s = [k-1 (H(M) + xr)] mod q

签名 = (r, s)

 

6 验证

w = (s’)-1 mod q

u1 = [H(M’) w] mod q

u2 = (r’) w mod q

v = [(gu1yu2) mod p] mod q   验证:v = r’

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值