第08章 数字签名及认证协议.pptVIP

  • 40
  • 0
  • 约1.06万字
  • 约 45页
  • 2018-06-06 发布于湖北
  • 举报
第08章 数字签名及认证协议

2. 认证协议 单向认证 单向认证的基于数字证书的公开密钥加密方案描述 认证 A → B:M || EKRa[H(M)] || EKRas[T || IDA || KUa] 方案优点 通过认证服务器的数字签名确认发方的公开密钥并验证它是可信的。 方案缺点 难以防止用户X对信息M的剽窃。 X → B:M || EKRx[H(M)] || EKRas[T || IDX || KUx] 3. 数字签名标准(DSS) 算法由来 美国国家标准技术研究所(NIST)已经公布了联邦信息处理标准FIPS 186,即所谓的数字签名标准(DSS)。DSS利用了安全散列算法(SHA)并提出了一种新的数字签名技术,即数字签名算法。DSS最早发表于1991年,并根据公众对该体制安全性担心的反应在1993年进行了修改。1996年又进行了更进一步的小修改。2000年发布了扩充版FIPS 186-2。 算法特征 DSS使用一个算法,该算法设计用来提供惟一的数字签名函数。不像RSA,它不能用作加密或密钥交换。然而,它是一种公开密钥技术。 3. 数字签名标准(DSS) DSS签名算法与RSA签名算法使用的差异 除了采用散列函数和私有密钥外,还需要下述2个参数: 每个消息需要一个随机数k 全局公开密钥KUG。 2. 签名值为两个数r和s 3. 数字签名标准(DSS) 密钥选择 全局公开密钥选定 选择一个160 bit的素数q。 选择一个素数p,要求长度在512到1024 bit之间且(p - l)能被q整除。 选择g等于h(p – 1)/q mod p,其中h是大于1小于(p - l)的整数,要求g大于l。 私有密钥 x 选定 0到q之间的随机数或伪随机数。 公开密钥计算 y = gx mod p 每个消息的密数k选择 0 k q的随机或伪随机整数。 3. 数字签名标准(DSS) 算法描述 签名算法 r = (gk mod p) mod q s = [k-1(H(M) + xr)] mod q 验证算法 w = (s’)-1 mod q u1 = [H(M’)w] mod q u2 = (r’)w mod q v = [(gu1yu2) mod p] mod q 验证: v = r’ 其中: M’, s’, r’ = 接收到的M, s和r版本 3. 数字签名标准(DSS) 算法描述等价框图 签名算法示意图 验证算法示意图 3. 数字签名标准(DSS) 数字签名算法的证明 对任何整数t,若g = h(p – 1)/q mod p,则gt mod p = gt mod q mod p 证明: gnq mod p = (h(p – 1)/q mod p)nq mod p = h((p – 1)/q)nq mod p mod p = h(p – 1)n mod p mod p = (h(p – 1) mod p)n mod p 因此,对非负整数n和z,有: gnq+z mod p = (gnqgz) mod p = ((gnq mod p)(gz mod p)) mod p = gz mod p 由于任意非负整数t可惟一表示为t = nq + z,其中n和z是非负整数,且0<z<q。因此z = t mod q。 因而结论成立。 3. 数字签名标准(DSS) 数字签名算法的证明 对非负的整数a和b,g(a mod q + b mod q) mod p = g(a + b) mod q mod p 证明: 由于gt mod p = gt mod q mod p,因此 g(a mod q + b mod q) mod p = g(a mod q + b mod q) mod q mod p = g(a + b) mod q mod p y(nw) mod q mod p = g(xnw) mod q mod p 证明: 由于y = gx mod p,那么: y(nw) mod q mod p = (gx mod p)(nw) mod q mod p = gx((nw) mod q) mod p = g(x((nw) mod q)) mod q mod p

文档评论(0)

1亿VIP精品文档

相关文档