首先我们根据需要选择所需要的密钥长度,然后生成公开参数P,Q,G,Y(为前面所说的几个参数),再选择待签名的文件,选择所用的算法MD5或是SHA1,选择好一切后进行数字签名,生成R,S,此时签名即完成,最终的签名结果是(R,S,M)一起发送给接收方。(M为发送的消息摘要)。
验证,接受方根据公开参数P,Q,G,Y验证发送方的签名(R,S,M),根据理论,得到参数V,如果R等于V,即签名被验证,否则验证失败。
3.3.3实验结果分析① 进行数字签名:
② 签名验证:
③结论:
根据图4可以看到R等于V,即验证数字被签名。
但实验中也发现几个问题。首先公钥算法的效率是不太高的,不易用于长文件的加密,为此可以采用Hash函数,将原文件P通过一个单向(one-way)的Hash函数作用,生成相当短的(仅几十或几百bits)的输出H,即Hash(P)=H,这里由P可以很快生成H,但由于H几乎不可能生成P,然后再将公钥算法作用在 H上生成"签字 "S,记为Ek1(H)=S,k1为A的公钥,A将(P,S)传给B,B收到(P,S)后,需要验证S是A的签字。若有H1=H2,即Dk2(S)= Hash(P),才能认为S就是A的签字。 另外如果在Hash签名使用一个密钥k,让只有知道此密钥k的人才能使用hash,即用H(m,k)代替H(m),则可以增强Hash加密的安全性。以上方法实际上就是把签字过程从对原文件转移到一个很短的hash值上,可以大大地提高了效率。 4结语本文采用的DSA算法可以很好的解决问题,根据模拟实验可以解决数字签名的技术难关.本文讨论了现代电子商务中的安全性问题,应用数字签名这一强大手段来解决实际问题,并利用DSA算法思想来具体实现了这一类问题。当然数字签名在我国发展还是存在很多问题,由于我国电子商务起步相对较晚,技术相对落后,缺乏具有自主知识产权的安全产品,因此在安全问题方面还存在着更多的风险与危机。必须大力发展先进的、具有自主知识产权的信息技术,建立一个完整的信息网络安全体系。数字签名技术仍需进一步完善,大力改进数字签名内在的安全技术措施。不可否认数字签名是未来信息安全发展的潮流,不断完善数字签名的基础设施环境和法律、技术问题,自然成了我国目前发展数字签名的当务之急。
参考文献
[1]数字签名的应用. http://www.xici.net/b660239/d45154859.htm
[2]张先红. 数字签名原理及技术[M].北京:机械工业出版社,2004:15-98
[3]数字签名算法分析与Hash签名. http://www.upsdn.net/html 2005,10
[4]林克正,庄虔玉. 结合数字水印与数字签名的认证算法的研究[J]. 中国学术期刊(光盘版)电子杂志社,2009:9-12
[5]陈相琳. 数字签名技术及算法的研