数字签名标准(DSS)

来自EEWiki.

跳转到: 导航, 搜索

DSS是Data Signature Standard的缩写。包括数字签名和验证两部分。DSS的主要参数有:

1.素数2511<p<2512。


2.q是p-1的一个因子,2159<p<2160。


3.g≡h(p-1)/qmod p,h≠0, 0<h

1。 4.正整数x,0<x<q.x作为密钥。 5.y≡gxmod p, 6.K为尾随机数,0<K<q。 其中p,q,g公开,也可以为用户公用。一个用户的私钥为x,y为公钥。 签名的过程为 用户随机选择数K,计算 r≡(gkmod p)mod q s≡[K-1(H(m)+xr)]]mod q 其中K-1K mod q≡1,0< K-1<q,则(r,s)构成了对信息m的数字签名。 验证过程: 如果接收者收到m,r,s后,若0<r<q, 0<s<q,则计算 ω≡(s)-1mod q u1≡((H(m)ω) mod q u2≡((r)ω) mod q image:bk064422l-1.jpg 若r=v,则确认签名正确。可以证明当m=m’,r=r’,v=v’时,必然v=v' image:bk064422l-2.jpg 从上可见DSS基于一般的公钥密码体制的理论基础是一个公钥数字签名系统。如果说公呀密码需要一陷门单向函数,而公钥签名系统由于无需加密,只需要单向函数就可以了。所谓单向函数就是已知自变量不难求的函数值,但是已知函数值反过来求自变量确是不可能的一类函数。 DSS的实现要解决寻找满足条件2511<p<2512的素数p,以及满足条件2159<p<2160的p-1的素因子q,素因子的产生多采用概率算法,至于q的产生可以按照如下步骤进行: 1.设q为素数,2159<p<2160。 2.在((2511-1)/2q,(2512-1)/2q)之间产生一个整数n.. 3.tß2nq+1. 4 测试t是否为素数,若t是素数,则作始pßt,结束。终止。否则转2。 可见,实际上先产生q,再去生成p,而不是生成p,然后印数分解(p-1)产生q.

个人工具箱
导航
支持单位