欢迎来到论文网! 识人者智,自知者明,通过生日认识自己! 生日公历:
网站地图 | Tags标签 | RSS
论文网 论文网8200余万篇毕业论文、各种论文格式和论文范文以及9千多种期刊杂志的论文征稿及论文投稿信息,是论文写作、论文投稿和论文发表的论文参考网站,也是科研人员论文检测和发表论文的理想平台。lunwenf@yeah.net。
您当前的位置:首页 > 科技论文 > 计算机论文

DSA加密算法中素数选取的优化设计_密钥-论文网

时间:2015-03-30  作者:赵可新,刘振名,唐勇

论文摘要:数字签名技术是电子签章系统的技术基础。文中对数字签名原理、构成和公钥加密算法做了大量比较研究,在此基础上设计了一款适用有效的数字签名算法,并对算法中用到的大素数选取方法进行了优化。通过优化算法大大提高了数字签名加密的效率。实验证明该算法有效可行。
论文关键词:数字签名,算法,密钥,素数

1数字签名技术

近几年,政务电子化成为了社会数字化的一个新的发展方向,电子签章系统是政府部门用于电子文件安全认证的首选,而数字签名是电子签章系统的技术基础。

数字签名,是为了使接收方能够向第三方证明其收到消息的真实性和发送源的真实性而采取的一种加密措施。

数字签名作为一个手写签名的代替方案,必须提供以下安全服务:

(1)数据完整性服务;

用来防止非法用户的主动攻击,以保证数据接收方收到的信息与发送方发送的信息完全一致。

(2)数据源鉴别服务;

用来确保数据由合法实体发出,提供对数据源的对等实体进行鉴别,以防假冒。

(3)禁止否认服务;

又称不可否认性,这种服务用来防止发送数据方发送数据后否认自己发送过数据,或接收方接收数据后否认自己收到过数据。

1.1数字签名的原理流程

数字签名体系的目的在于保证数据来源的可靠性和其输入时间的不可否认性,一般由数字信封结构、签名算法、公钥基础设施PKI等部分组成。签名算法一般由公开密钥密码算法(RSA、ELGamal、DSA、ECDSDA等),对称密钥密码算法(DES,AES等)和单向散列函数(MD2、MD4、MD5或SHA等)构成。

具体的数字签名的原理如下:

(1)被发送文件采用哈希算法对原始报文进行运算,得到一个固定长度的数字串,称为报文摘要(MessageDigest),不同的报文所得到的报文摘要各异,但对相同的报文它的报文摘要却是唯一的。

(2)发送方生成报文摘要,用自己的私钥对摘要进行加密形成发送方的数字签名。

(3)这个数字签名将作为报文的附件和报文一起发送给接收方。

(4)接收方首先从接收到的原始报文中用同样算法计算出新的报文摘要,再用发送方的公钥对报文附件的数字签名进行解密,比较两个报文摘要,如果值相同,接收方就能确认该数字签名是发送方的。如图1所示。

1.2数字签名技术的安全性

数字签名方案是安全的,因为这些方案通常是基于加密技术的。如公钥加密体制。这样就保证了签名数据的完整性,和数字签名的不可否认性。

1.3数字签名算法构成

自从有了数字签名概念,提出了许多数字签名方案。按照签名验证方式,数字签名方案可以分为两大类:

(1)等式验证,如,RSA,ElGamal,DSS/DSA等;

(2)不等式验证,目前比较知名的只有一个,即ESIGN方案。

1.4公钥加密技术

1.4.1DSA签名算法

DSA(DigitSignatureArithmotic)是Schnorr和ElGamal算法的变型,美国国家标准技术研究所于94年公布了数字签名标准(DSS),标准中采用的数字签名算法便是DSA,密钥长度为512~1024,其算法所用到的数学基础为:

(1)参数的产生

算法中应用了下述参数:

p:Lbits长的素数。L是64的倍数,范围是512到1024;

q:p-1的160bits的素因子;

g:g=h^((p-1)/q)modp,h满足h1;

x:x,x为私钥;

y:y=g^xmodp,(p,q,g,y)为公钥;

H(x):One-WayHash函数。DSS中选用SHA(SecureHashAlgorithm)。

p,q,g可由一组用户共享。

(2)签名过程

设明文为m,0。签名者任选一整数k,0并计算:

r=(gmodp)modq

s=k(H(m)+xr)modq

其中kk≡1(modq),而(r,s)即为m的签名文件。

(3)验证过程

首先检查r和s是否属于[0,q],若不是,则(r,s)不是签名文件。然后计算:

t=smodq

r′=(gymodp)modq

若r′=r成立,则(r,s)为m的合法签名文件。

DSA的一个重要特点是两个素数公开,这样,当使用别人的p和q时,即使不知道私钥,也能确认它们是否是随机产生的,还是做了手脚。RSA算法却做不到。

2DSA加密算法的优化

2.1数字签名过程中素数的生成

由于编程采用的是MicrosoftVisual.NET软件,该软件提供了关于DSA加密算法的相关类,本文研究的是关于DSA加密算法中参数的生成方式。

在公钥密码体制中,有效生成公钥参数是一个先决条件。由于素数的分布非常不均匀,而且随着素数位数的增加,分布越稀疏,因此如何更快速地生成一个大素数是一个非常实际的问题。

素数的生成分成三个阶段:素数的搜索、预筛选以及素性验证。

2.2素数的生成

公钥密码体制实现的过程中,绝大部分时间是浪费在素数的寻找以及素性检测的过程上。因此,运用好的搜索方法来提高素数的生成速度非常重要。两种常用的搜索方法:

随机搜索法:随机产生一个奇数P,对这个奇数进行素性测试,如果是素数,则结束;不是,则重新随机产生一个新的奇数P进行素性测试,重复这一过程直到找到一个素数。

查看相关论文专题
加入收藏  打印本文
上一篇论文:影视制作人员技术素质研究_电子技术-论文网
下一篇论文:关于IRT应用于计算机自适应考试的综述_项目反应理论-论文网
科技论文分类
科技小论文 数学建模论文
数学论文 节能减排论文
数学小论文 低碳生活论文
物理论文 建筑工程论文
网站设计论文 农业论文
图书情报 环境保护论文
计算机论文 化学论文
机电一体化论文 生物论文
网络安全论文 机械论文
水利论文 地质论文
交通论文
相关计算机论文
最新计算机论文
读者推荐的计算机论文