数字签名
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
论文
设计题目
数字签名设计
专业、班级: 计优0801班姓名: 学号:
内容摘要
数字签名作为密码学的一个分支,可实现身份认证、数据完整性、不可抵赖性等重要功能;数字证书可实现公钥的统一管理,是数字签名非常重要的应用领域;SSL作为运输层的重要
安全协议
租房安全协议拆除工程安全协议书房屋拆除合同及安全协议书高空作业安全协议书范本高空作业安全协议责任书
,吸取了对称和非对称密钥体制的优点。以上三者在实际生活中被巧妙结合并泛应用于电子商务、电子政务、电子邮件等各个领域。本文首先概述了数字签名的基本知识,指出该领域当前的研究方向和现状。接着阐述了基于非对称密钥体制的数字签名中的三大算法—RSA、DS ECDSA的参数生成、签名和验证过程,以及算法正确性证明,详细说明了数字证书的概念、功能、由来、格式和组织形式,简要说明了SSL的功能。最后简介java类库对消息摘要、加解密、数字签名、SSL的实现,并重点介绍笔者编写的SHA、RSA、Elgamal算法的改进。
【关键词】 数字证书; 非对称密钥体制; 数字签名;SSL
目录
基于RSA的数字签名的设计 ................................................................................................................1 一. 绪论 ............................................................................................................................................1 1.1 研究背景 .....................................................................................................................................2 1.2 国内外研究现状 .........................................................................................................................3 1.3 本文研究思路与分析 ..................................................................................................................6 二. 基于非对称密钥体制的数字签名 ...............................................................................................1 2.1 RSA公钥密码.............................................................................................................................1 2.1.1 参数生成 .................................................................................................................................1 2.1.2 加密过程 .................................................................................................................................2 2.1.3 解密过程 .................................................................................................................................2 2.1.4 签名过程 .................................................................................................................................2 2.2 DSA签名算法 ............................................................................................................................5 2.2.1 参数构成 .................................................................................................................................6 2.2.2 签名过程 .................................................................................................................................6 2.2.3 验证过程 .................................................................................................................................7 2.2.4 DSA算法正确性证明 ..................................................................................................................7 2.3 ECDSA签名算法 .......................................................................................................................9 2.3.1 椭圆曲线 ............................................................................................................................... 10 2.3.2 椭圆曲线上的加法 ................................................................................................................ 12 2.3.3 椭圆曲线上的离散对数问题................................................................................................. 13 2.3.4 参数构成 ............................................................................................................................... 14 2.3.5 签名过程 ............................................................................................................................... 14
2.3.6 验证过程 ............................................................................................................................... 15 三. RSA数字签名的设计与实现 ..................................................................................................... 16 3.1 RSA数字签名的总体设计 ......................................................................................................... 16 3.1.1 RSA数字签名所需实现的功能 .............................................................................................. 16 3.1.2 本软件的总体要求和设计 .................................................................................................... 17 3.2 各部分的设计实现 .................................................................................................................... 17 3.2.1 密钥产生的实现 ................................................................................................................... 17 3.2.2 产生消息摘要的设计实现 .................................................................................................... 22 3.2.3 数字签名的设计实现 ............................................................................................................ 22 四. 结果展示 ................................................................................................................................... 23 五. 结论 .......................................................................................................................................... 23
沈阳化工大学安全算法设计
基于RSA的数字签名的设计
一. 绪论
数字签名是密码学的一个分支,其主要用途是抵御伪造、篡改、重放、抵赖等网络攻击,确保消息的完整性、不可否认性。除少数数字签名算法是基于对称密钥体制外,绝大多数的数字签名算法是基于公钥密码体制(非对称密钥体制)的。下面对这两种体制作简要说明。 对称密钥体制的加密密钥与解密密钥相同,因此也称单密钥体制。该体制分为分组密码和流密码两类。前者一次操作多位明文,后者一次操作一位明文,其实二者并无本质上的严格界限。典型的分组密码算法有:DES , CAST , RC5 , 3DES , SAFER , Blowfish , FEAL , IDEA, Skipjack,
Rijndael等。典型的流密码算法有:A5,Rambutan,Gifford等[1]。 公钥密钥体制与对称密钥体制相对,加密解密用不同的密钥,其中一个公开,称为公钥,另一个自己保存,称私钥。公钥密码体制的前提是:按公钥来算私钥,在计算上是不可行的。公钥密码体制一般基于以下三个数学上的难问题 [10]:
(1) 背包问题:给定一个互不相同的数组成的集合,找出一个子集,其和为N。
(2) 离散对数问题:如果p是质数,g和M是整数,找出x,使xg,M(modp)。它的另一种形式:椭圆曲线上的离散对数问题。 (3) 因子分解问题:设N是两质数乘积,则:
? 分解N。
dM,C(modN)? 给定整数M和C,寻找d满足。
eM,C(modN)? 给定整数e和C,寻找M满足。
1
沈阳化工大学安全算法设计
2x,y(modN)? 给定整数x,求解。
1.1 研究背景
数字签名已广泛应用到众多领域,但仍有较大的可开拓空间。目前数字签名研究的主要方向有:
(1) 新数学模型和单向函数研究。如前文所述,目前公钥密码体制的数学基础仅局限于三个数学上的难问题中。随着攻击者攻击手段的改进,建立在如此狭隘的数学领域的数字签名的安全性不得不让人担忧。因此新的数学难题及单向陷门函数的寻找成为当前数字签名研究中的首要问题。
(2) 针对实际应用环境的数字签名设计,尤其是智能卡上的数字签名设计。由于智能卡存储空间的局限,很多早期被广泛应用的算法,如RSA、DSA等等,当其要求密钥长度达到512 bit、1024 bit时[4],根本无法应用到智能卡中。目前智能卡上的数字签名一般采用椭圆曲线上的密钥体制,该体制已经发展得较为完善,相应地,针对它的攻击手段也不断翻新。当前这方面的研究方向主要集中在超椭圆曲线密钥体制上,它对空间的要求低于椭圆曲线密钥体制,也更适合智能卡这一特殊环境。但是,超椭圆曲线的数学难度远胜于椭圆曲线,同时,这个领域需要解决的问题还有很多,要真正把超椭圆曲线密钥体制投入到实际应用中,还有很长的一段路要走[5]。
(3) 算法和程序优化、软硬件实现。优化和实现这一块的难度,说实话,是要远低于发明创造的。实现DES算法的芯片数不胜数。java类库也已经把绝大多数常用的数字签名算法纳入其中,笔者在下文中作了陈述,这里不再赘述。这一方向的可提高之处主要在于效率上的进步,以及对已有算法的各种变体性地优化研究。
(4) 安全性评估。目前对数字签名中重要算法的安全性衡量和比对已经做得比较完善,网上可以搜出无数张表,对RSA、DSA、ECDSA
2
沈阳化工大学安全算法设计
各长度密钥需要多少台计算机联解多少年,某算法各长度密钥安全性相当于另一算法多长的密钥。这一方向主要可提高之处在于对新攻击手段的研究。由于攻击者水平在不断提高,针对已有算法的攻击方式也在不断翻新,如何对某算法的安全隐患做出预测性的评估,是当前研究者需要考虑的问题。
1.2 国内外研究现状
现代密码体制的研究成果,最重要的集中在新数学基础和新算法的不断提出,这里简要介绍几个主要算法的诞生:
1976年,斯坦福大学的Diffie和Hellman提出公钥密码思想,并提出Diffie-Hellman密钥交换协议。该协议貌似简陋,实际上是离散对数问题在通信领域里程碑式的开创,目前仍广泛用于密钥交换中。
1977年,IBM公司提出DES算法,并被美国国家
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
局颁布。该算法是分组加解密算法中第一个成熟算法,应用十分广泛。
1978年,MIT的三位科学家开发出RSA算法。RSA是这三位科学家姓氏的首字母。这二十多年来,RSA始终是非对称密钥体制中最著名,也被最广泛应用的算法。在网络上、银行系统、军事情报等等许多领域都能见到它的身影。
1985年,Koblitz和Miller提出ECDSA算法。该算法开曲线上实现密码算法之先河,为此后圆锥曲线密钥体制和超椭圆曲线密钥体制的建立奠定了坚实的基础。
1985年,ElGamal提出ElGamal算法。该算法为基于离散对数的数字签名,已被纳入ANSI X9.30-199X标准。
1989年,Schnorr提出Schnorr签名算法。该算法是ElGamal签名算法的变体,安全性低于ElGamal算法,但空间需求和时间需求低于Elgamal算法,可用于某些特定环境。
1991年,NIST开发出DSA算法。该算法是ElGamal签名算法和
3
沈阳化工大学安全算法设计
Schnorr签名算法的变体,从产生至今,它一直饱受争议,但客观地说,它确实是目前基于离散对数问题的数字签名算法中用得最广泛,评价也最高的。
1993年,NIST和NSA共同设计了SHA算法, 并于1995年修订为SHA-1。SHA算法脱胎于MD4算法,并且从其产生至今,它的成就一直压倒MD系列算法,成为消息摘要算法的首选。
同期,欧共体开发出了RIPE-MD算法及其改进型:RIPEMD-160算法。该算法同样取材于MD4算法,但它的运算远比SHA算法复杂,也远不如SHA算法应用得广泛。
下文给出一个数字签名算法简表,囊括了绝大多数数字签名领域中里程碑式的算法,如表1-1所示:
表1-1 数字签名算法简表
算法名称 对数学基础 能否
称/非用于加解
对称 密
Lamport-对— 能 Diffie 称
Rabin概对— 能 率 称
RSA 非因子分解 能
对称
ElGamal 非离散对数 能
4
沈阳化工大学安全算法设计
对称
Schnorr 非离散对数 能
对称
DSA 非离散对数 否
对称
ECDSA 非椭圆曲线上的否
对称 离散对数
Shamir 非背包 否
对称
Rabin 非因子分解 能
对称
GOST 非离散对数 否
对称
OSS 非模n多项式 能
对称
FA 非FA可逆性 能
对称
ESIGN 非因子分解 否
对称
Okamoto 非离散对数 否
对称
GQ 非零知识证明 否
5
沈阳化工大学安全算法设计
对称
McEliece 非Goppa码 能
对称
Xinmei 非大矩阵分解 能
对称
1.3 本文研究思路与分析
在或粗或细地看完多个数字签名算法之后,笔者断然放弃了从(1)着手的念头。毫不夸张地说,笔者整理的数字签名算法简表中的算法,每个都是几十年的数学基础,几年甚至十几年辛勤耕耘的结晶。如果笔者有能力在几个月时间内,在这张表的最后一行附上一个自己创造的自成一体的算法的话,恐怕笔者的人生轨迹也会发生重大变化了。
退而求其次,想到了从(2)着手。超椭圆曲线密钥体制业已建立,但还有不少算法未平移到超椭圆曲线密钥体制中,将已有算法作平移的工作量要远远小于自创一个全新的算法。但几个月的努力之后,发现(2)同样远远超出了笔者的能力范围。笔者很想做RSA算法在超椭圆曲线密钥体制上的实现:想先吃透椭圆曲线上RSA算法的资料,再参照几部超椭圆曲线密钥体制的文献,然后自己写出来。着手做的时候,才发觉困难重重:目前绝大多数关于椭圆曲线密钥体制的文献是写ECDSA的,也就是基于域上的椭圆曲线;而椭圆曲线上RSA算法,即ECRSA,是基于环上的椭圆曲线的。这方面的资料可以用寥若晨星来形容。笔者能找到的所有超椭圆曲线密钥体制的文献都是基于域上的超椭圆曲线,而环上的超椭圆曲线根本找不出一个字的资料。笔者也试图自己建立环上的超椭圆曲线密钥体制,但困难重重,最后选择了放弃(2)。
退而求其再次,从(3)和(4)着手。Java类库确实提供了绝大多数数字
6
沈阳化工大学安全算法设计
签名算法的实现,但用过以后就知道,它在效率上并不能令人满意。在 2.4GHz,512MB的机子上运行最简单的java类库进行RSA算法加解密的程序大概需要700ms左右,如果拿到配置更差的机子上,也许无法排除超过1s的可能性,这样就与实际应用的要求相去甚远了。于是笔者想到自己手动实现RSA算法。目前网上java手动实现RSA算法的程序有很多,但存在不少问题,归纳了一下,在安全性和功能性上各有三条缺陷:
(1) 安全性缺陷:
? 普遍使用long或int作为p,q,n,e,d的数据类型
? 普遍硬指定或手工输入参数,而不是通过随机生成
? 未考虑任何攻击抵御
(2) 功能缺陷:
? 未考虑消息分组,极有可能加解密失败
? 采用效率最低的素性判断函数
? 只能对字符串进行操作
针对这些缺陷,笔者写出了MyRSA类,时间性能上要优于java类库提供的RSA算法。
java类库中未提供Elgamal算法的实现,网上也找不到任何用java手动实现Elgamal算法的程序。于是,在发现[9]中存在的重大安全隐患,并对其提出自己的改进方法之后,笔者动手编写了MyElgamal类。应该来说,该类不如MyRSA类那样有价值,而且效率上存在重大瓶颈,但毕竟是对这一空白的一个小小的填补,留待今后大方之家斧正吧。
在研究过程中,用了一定的时间在数字证书的概念以及SSL的java实现上。在阅读过[2]、[3]、[8]、[11]的相应章节之后,借用java类库实现了SSL。
在做这个毕业设计时,重点是在算法的学习和证明上,这里主要是
7
沈阳化工大学安全算法设计
以[10]为提纲,并查阅了大量数学资料。因为计算机系本科生所学的数学知识是远远达不到密码学领域的要求的,几乎每一种数字签名算法都要求数学系本科生乃至研究生的数学基础才能勉强看懂,正如每一种算法的发明都需要极深的数学功底一样。下文中对花时间最久,也是在数字签名领域最重要的三个算法作了较为详尽,较为浅显的介绍,并给出了相应证明过程。如果读者对数学完全没兴趣,可以跳过这一段。不过笔者是希望能跟着证明步骤一步步走一遍,否则无法深入体味算法的妙处和乐趣。
本文第三部分RSA算法的介绍引用了张先红(2003)(RSA数字签名体制的介绍)《数字签名原理及技术》,(北京: 机械工业出版社)中的相关介绍内容;第六部分网络各层的安全技术引用了胡道元,闵京华(2002)(OSI七层中各层安全技术)《网络安全》,(北京: 清华大学出版社)中的观点;第六部分SSL的介绍引用了张友纯(2006)(SSL的组成部分、步骤及功能)《计算机网络安全》,(武汉: 华中科技大学出版社)中的相关介绍内容。
8
二. 基于非对称密钥体制的数字签名
早期人们不确定非对称密钥体制的安全性时,曾开发过对称密钥数字签名。由于对称密钥体制要求通信双方持有相同的密钥,所以通信时必然涉及密钥本身的传输,带来安全方面的隐患(如密钥被窃听、篡改等等)。其主要解决方法是:使用多个私钥,每次泄露其中的一半。典型的算法有Lamport-Diffie和Rabin概率签名。它们共同的缺点是:(1)签名太长;(2)每次使用时要更换密钥(由于前一次的密钥已经泄露了一半,再使用将很危险)。尽管可以通过压缩函数解决(1),但(2)的问题始终无法很好地解决,造成计算量十分庞大,于是有了基于非对称密钥体制的数字签名。
在此着重阐述公钥密码体制中的三个数字签名算法:RSA、DSA和ECDSA。 2.1 RSA公钥密码
1978年,Ron Rivest, Adi Shamir和Leonard Adleman三人发明了世界上第一个既能用于加密也能用于数字签名的算法,并以他们自己姓氏的首字母组合将其命名为RSA算法[6]。
这二十多年来,RSA始终是非对称密钥体制中最著名,也被最广泛应用的算法。在网络上、银行系统、军事情报等等许多领域都能见到它的身影。
RSA算法是基于因数分解问题的,包括以下几个过程:
2.1.1 参数生成
选两个大质数p、q;
计算n=p*q;
1,e,,(n),gcd(e,,(n)),1随机选e,满足,公钥为(e,n);
(ed)mod,(n),1计算d,满足,私钥为(d,n);
1
,(n)销毁p、q、。
,(n)注:gcd为求最大公约数运算,为小于n且与n互质的正整数个数。此处,(n)=(p-1)(q-1)[7][9]。
加解密时,发送方用接收方的公钥来加密,接收方用自己的私钥来解密,这样确保密文在传输过程中不被破译,因为只有接收方才拥有接收方私钥。 2.1.2 加密过程
(1) 把消息m分组为mi,i=1,2,… |mi|= |n|-1;(|a|表示a的二进制形式的长度)
ec,mmodnii(2) 加密每个分组mi:;
(3) 连接ci,得密文c 。
2.1.3 解密过程
(1) 将c分组为ci,i=1,2,… |ci|= |n|-1;
dm,cmodnii(2) 解密每个分组ci:;
(3) 连接mi,得到明文m 。
签名时,发送方用自己的私钥来处理消息散列值(散列函数概念类似上文中的压缩函数,它能起到类似指纹的效果)。接收方用发送方公钥来验证。这样能保证签名不被伪造,因为只有发送方拥有发送方私钥,接收方用发送方公钥验证其他私钥的签名将肯定失败。
RSA数字签名过程如下:
2.1.4 签名过程
计算消息散列值H(M);
2
用私钥处理散列值s=(H(M))d mod n;
发送消息和签名(M,s)。
2.1.5 验证过程
验证签名s: h=se mod n;
计算消息散列值 H(M);
比较h和H(M),相等则通过,否则验证失败。
2.1.6 RSA算法正确性证明
(1) 命题:((a mod n)(b mod n)) mod n= (ab) mod n. (2.1.1)
a,cn,d(0,d,n),b,en,f(0,f,n)证明:设,则
右边=((cn+d)(en+f)) mod n
=(cen2+cfn+den+df) mod n
=(df) mod n
=左边
(2.1.1)式说明,取模之下,任意两数的积可以把取模符任意地内置或外提,
这个等式将在后文中大量应用。
(2) 命题:若ac=bc mod t ,且gcd(c,t)=1,则a=b mod t. (2.1.2)
证明:若ac=bc mod t,则ac-bc必为t的倍数,设ac-bc=dt,即(a-b)c=dt 又gcd(c,t)=1,即等式左侧t的因子完全由a-b提供,即a-b是t的倍数,设
a-b=et
所以a=b mod t得证。
(2.1.2)式说明,两取模下相等数,可以消去与模数互质的一个因子,仍然保
持相等。
,(m)a,1(3) Euler定理:gcd(a,m)=1,则 mod m. (2.1.3)
3
,(m),k证明:设,令0
1。
私钥
x:选取的一个随机数,0=160 bit的比特串seedE(可选项,用于合法性检查);
Fn2方程系数a,b 用于y2=x3+ax+b(基于Fp)或y2+xy=x3+ax2+b(基于);
xG、yG,定义点G,要求G的阶为质数;
n,4qG的阶n,n>2160且;
h=#E(Fq)/n.
私钥与公钥的选取:
1,d,n,1选取随机整数d,要求; 求Q=dG;
则私钥为d,公钥为Q;
2.3.5 签名过程
1,k,n,1选择随机数k,要求;
求kG=(x1,y1) ;
注:kG不是整数k乘以G,而是k个G连加,下文中也类似。
求r=x1 mod n,若r=0,回到(1); 求k-1 mod n;
14
求e=SHA1(m);
求s=k-1(e+dr) mod n,若s=0,回到(1);
将消息m和签名(r,s)发送。
从以上过程可以看出:ECDSA算法同样不可用于加解密。因为发送方只有
对方的公钥,而此处须用到私钥。
2.3.6 验证过程
1,r,n,1,1,s,n,1检查r和s,要求;
求e=SHA1(m);
求w=s-1 mod n;
求u1=ew mod n, u2=rw mod n;
求X=u1G+u2Q;
若X=O,则验证失败,否则,设X=(x1,y1),计算v=x1 mod n;
若v=r,则验证通过,否则失败。
2.3.7 ECDSA算法正确性证明
s=k-1(e+dr) mod n,则
ks mod n=((k mod n)* (k-1(e+dr) mod n)) mod n
=(kk-1(e+dr)) mod n
=( ((kk-1) mod n )* ((e+dr) mod n)) mod n
=(e+dr) mod n (2.3.1) k=k mod n= (kss-1) mod n
=((ks mod n) * (s-1 mod n)) mod n
=(((e+dr)mod n) *(w mod n)) mod n
15
=((e+dr)w) mod n
=(ew+drw) mod n
=((ew) mod n +(drw) mod n) mod n
=(u1+((d mod n) *( (rw) mod n)) mod n) mod n
=(u1+du2 mod n) mod n
=(u1+u2d) mod n (2.3.2)
2Q=u1G+u2dG=(u1+u2d)G X=u1G+u
设u1+u2d=jn+k (3.2),则X=(jn+k)G
=jnG+kG
=kG(因为n是G的阶,所以nG=O)
所以X的横坐标x1与kG的横坐标x1’相等,故
v=x1 mod n=x1’ mod n=r
所以ECDSA算法得证。
三. RSA数字签名的设计与实现 3.1 RSA数字签名的总体设计
3.1.1 RSA数字签名所需实现的功能
在本软件中需要实现的功能有以下几个:
(1)生成RSA密钥:公钥ke=(e,n),私钥kd=(d,n);
(2)利用MD5算法计算出消息摘要MD;
(3)数字签名的实现:用私钥d对消息摘要进行加密计算(RSA算法中的加密方法);
16
(4)验证数字签名:用公钥e对数字签名进行解密计算(RSA算法中的解密方法),得到的解密结果与(2)步计算出的消息摘要比较,如果两个消息摘要一样则签名成功。
3.1.2 本软件的总体要求和设计
本软件的总体要求有:
1)按要求生成非对称密钥——公钥和私钥;
2)按任意写入的的消息字符串(明文信息)生成所需要的消息摘要MD; 3)在本设计中用产生的私钥d根据RSA算法的加密原理对所生成的消息摘要进行加密运算,得到数字签名;
4)在本设计中用产生的公钥e根据RSA算法的解密原理对所加密的消息摘要即数字签名进行解密运算,得到对应的消息摘要(在本设计中标示的为解密信息),比较两个消息摘要,验证数字签名者的身份的真实与否;
5)提示信息完整、操作舒适、图形界面雅观。
本软件的总体设计都是基于C++的开发环境,采用的是Microsoft Visual c++ 6.0
的运行环境。
3.2 各部分的设计实现
3.2.1 密钥产生的实现
在密钥的产生部分中起决定性作用的是素数的选择, 对随机数作素性检测,若通过则为素数;否则增加一个步长后再做素性检测,直到找出素数。素性检测采用Fermat测试。这个算法的理论依据是费尔马小定理:如果m是一个素数,且a不是m的倍数,那么根据费尔马小定理有:a m-1=1 ( mod m)。 实际应用时:a m-1 = 1 ( mod m)Û a m = a ( mod m) Ûa= a m ( mod m), 因此对于整数m,只需计算a m ( mod m),再将结果与a比较,如果两者相同,则m为素数。
17
选取a=2,则a一定不会是任何素数的倍数。根据所选的素数的不同产生不同的
密钥。
密钥的理论产生模块流程图如图3-1所示: 产生任意素数p和q
计算n=p*q
计算ou_la=(p-1)(q-1) 选择e作为公钥
计算d作为私钥
密钥产生的部分代码实现:
CString str;
//第一步 产生任意素数
GeneratePrimeNumbers();
//第二步 计算 n=p*q
m_n = m_Prime1 * m_Prime2;
//第三步 0=(p-1)(q-1)
m_Undef = (m_Prime1-1) * (m_Prime2-1);
//第四步 选择'e'
SelectE();
//第五步 计算D
CalculateD();
//显示公钥和私钥
//(1) 公钥 KU={e,n}
18
str.Format("{%d, %d}",m_e,m_n);
m_public_key.SetWindowText(str);
//(2) 私钥KU={d,n}
str.Format("{%d, %d}",m_d,m_n);
m_private_key.SetWindowText(str);
// 选择一个 'e' 使 'e'与 m_Undef互素
//选择e的函数的实现
SelectE()
{ CString str;
for(float i=2;i<100000;i++)
{
if(IsRelativePrime((float)m_Undef,(float)i))
{
m_e=(long)i;
return;
}
}
}
//互为素数的函数的实现
IsRelativePrime(float X,float Y) { float R;
//输入: X,Y
if(X
公式
小学单位换算公式大全免费下载公式下载行测公式大全下载excel公式下载逻辑回归公式下载
1进行运算,得到的d为该步的结果,公式1:c=2*c;d=fmod(d*d,n); 4)若二进制数是1,则在上面的运算后继续以下运算:c=c+1;d=fmod(d*a,n);得到的结果d才为该步的最终结果。
四. 结果展示
五. 结论
数字签名技术是网络系统虚拟环境中确认身份的重要技术,在技术和法律上有保证。在数字签名应用中,公开密钥可以保存在系统目录内、未加密的电子邮件信息中、电话黄页上或公告牌里等,网上的任何用户都可获得公开密钥。而私
23
有密钥是用户专用的,由用户本身持有.它可以对由公开密钥加密信息进行解密。本文对数字签名进行了初步研究探讨,下一步主要研究该
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
与其他算法结合的运行速度。
24
参考文献
[1] 洪艳, 林公源. 素数生成和分布的计算机实验研究. 云南民族学院学报, 2003, 12(1): 48-51
[2] 胡道元, 闵京华. 网络安全. 北京: 清华大学出版社, 2002
[3] JavaResearch.org. J2SE进阶. 北京: 机械工业出版社, 2004
[4] 王宇洁, 许占文, 郑守春. RSA公钥密码体制素数生成的研究. 沈阳工业大学学报, 2000, 22(6): 516-518
[5] 肖应雄, 张韶华. 一类强素数的确定与生成. 孝感学院学报, 2006, 26(6): 59-61
[6] 谢建全. 一种实用的大素数快速生成方法. 信息安全与通讯保密,2006,09:56-58
[7] 杨淑群. 一种强素数生成算法. 科技广场, 2006,11:74-75
[8] 殷兆麟, 张永平, 姜淑娟. Java网络高级编程. 北京: 清华大学出版社, 2005 [9] 张清华. 基于密钥交换中离散对数生成元的研究. 重庆邮电学院学报, 2002, 14(3): 90-92
[10] 张先红. 数字签名原理及技术. 北京: 机械工业出版社, 2003
[11] 张友纯. 计算机网络安全. 武汉: 华中科技大学出版社, 2006
[12] Marco Pistoia, Duane F. Reller, Deepak Gupta, Milind Nagnur, Ashok K.
Ramani. Java 2 Network Security. 美国:IBM Corporation, International Technical
Support Organization, 1999
[13] Scott Oaks. Java Security. 美国: O’Reilly, 2001
25