第13章数字签名.pptVIP

  • 9
  • 0
  • 约 15页
  • 2016-08-21 发布于重庆
  • 举报
第13章数字签名

第13章 数字签名 要点 数字签名是一种认证机制,它使得消息的产生者可以添加一个起签名作用的码字。通过计算消息的散列值并用产生者的私钥加密散列值来生成签名。签名保证了消息的来源和完整性。 数字签名标准(DSS)是NIST标准,它使用安全散列算法(SHA) 13.1 数字签名  特征: 它必须能验证签名者、签名日期和时间 它必须能认证被签的消息内容 签名应能由第三方仲裁,以解决争执 数字签名需求: 签名必须是与消息相关的二进制位串 签名必须使用发送方某些独有的信息,以防伪造和否认。 产生数字签名比较容易 识别和验证签名比较容易 伪造数字签名在计算上是不可行的。无论是从给定的数字签名伪造消息,还是从给定的消息伪造数字签名在计算上都是不可行的。 保存数字签名的拷贝是可行的。 数字签名标准DSS: 数字签名算法(Digital Signature Arithmetic,简称DSA)是ElGamal签名方案的改进,DSS最初提出于1991年,1993年根据公众对于其安全性的反馈意见进行了一些修改。1996年又稍做修改。2000年发布了该标准 的扩充版,好即FIPS 186-2. RSA数字签名: RSA公钥密码算法是一个既可应用于加密,也可应用于签名的密码方案。RSA加密算法和签名算法实际上是同一个算法,如果用于加密和解密,则加密密钥是公钥,解密密钥是私钥,如果用于签名和验证,则签名密钥是私钥,验证密钥是公钥。RSA签名过程如下图所示: DSS使用的是只提供数字签名功能的算法。 1. 构造参数 (1)全局参数 p: 是一个大的素数,2L-1p2L;其中512≤L≤1024,并且按64bit的幅度递增。 q: 是(p-1)的素因子,并且其字长为160bit,即2159q2160。 g: g≡h(p-1)/q mod p,其中h 是一个整数,1h(p-1)且要求g1。 ( 说明:从g≡h(p-1)/q mod p可推出g q≡h(p-1) mod p≡1 mod p,可见g的价为q。) 以上三个参数是所有用户公用的参数,所以称为全局参数,有的也称之为共享的公共模数。 (2)用户私钥 x:一个随机数,要求0xq。 (3)用户公钥 y≡gx mod p 2.签名过程 选取随机数k,0kq; 计算r: r ≡ (gk mod p) mod q; 计算s :s≡(k-1(H(M)+xr)) mod q 发送消息和签名结果(M,r,s)。 3.验证过程 接收者在收到(M,r,s)之后,按照如下步骤验证签名的有效性: 取得发送者的公钥y; 计算w: w≡s-1 mod q; 计算u1: u1≡(H(M)w) mod q; 计算u2: u2≡(rw) mod q; 计算v: v≡((gu1yu2) mod p) mod q 比较r、v ,如果r=v,表示签名有效,否则签名无效。 4.证明验证过程的正确性 证明v=r,也就是要证明:v≡(gk mod p) mod q 证明: v≡((gu1yu2) mod p) mod q ≡((gH(M)w mod q y(rw) mod q)mod p) mod q ≡((gH(M)w mod q g(xrw) mod q)mod p) mod q ≡((g(H(M)w+(xrw) ) mod q)mod p) mod q ≡((g((H(M)+xr)w) ) mod q)mod p) mod q ≡((gk)mod p) mod q ≡r 证毕。 预处理: 在DSA的签名算法中计算的r和k-1与消息无关,所以可以使用预先计算,从而可以提高DSA的签名速度。 预计算r: 在消息M到来之前产生一个随机数k,计算: r≡(gk mod p) mod q 预计算k-1:在mod q之下可以计算k-1,满足kk-1≡1 mod q. DSA算法的认证过程中不存在预先计算的条件,所以在验证阶段没有预计算。 作业: 思考题:(P291) 13.1 13.2 13.3 13.5 习题: 13.2 13.3 外加: 设DSS中,Hash函数为H(m)=m,p=652411,q=659,对消息m=12345签名。请构造DSA。 * *

文档评论(0)

1亿VIP精品文档

相关文档