信息的签名可以通过=来生成。为生成的信息摘要,信息可以由密码学中的单向散列或杂凑函数得到。
(3)验证签名
接受方获得签名后取得发送方的公钥,计算,若,则签名验证成功。否则失验证败。
DSA是一种公开密钥算法,它不能用作加密,只用作数字签名。DSA使用公开密钥,为接收者验证数据的完整性和数据发送者的身份。它也可用于第三方去确定签名和所签数据的真实性。在信息交流中,接收方希望收到的信息不被篡改,还希望接收到的信息是自己认定的发送方所发,那么接收方和发送方就可以约定,共同实现DSA算法来实现。算法的具体过程如下所示:
(1)参数的建立
①选取任一大素数且2<<2,其中5121024,并且要求按64的幅度递增;
②选取-1的中一个素数因子,且2<<2;
③取=,(为整数),1<<(-1)并且>1;
④选取任意一个随机的数,0<<;
⑤计算=;
⑥为公开参数,和分别为签名者的私人密钥与公开密钥,要同时选取安全的散列函数。
(2)签名的生成
随机选取任一整数使:1<<;
①计算=();
②计算=((+));
③发送消息和签名()给接收方。
(3)签名的验证
①取得发送方的公钥;
②计算w=;
③计算u=(w);
④计算u=();
⑤计算=(()),若,则验证成功,否则签名验证失败。
DSA算法只能用于数字签名中,其不能用于对数据的加密和解密,DSA算法得安全性依赖于有限域上的离散对数问题。和RSA算法相比,安全强度和运行速度相对较低[7]。
上一页 [1] [2] [3] [4] [5] [6] 下一页
数字签名在电子病历系统中的实现(XML数字签名的实现) 第4页下载如图片无法显示或论文不完整,请联系qq752018766