两个基于RSA的特殊数字签名方案
- 格式:doc
- 大小:19.50 KB
- 文档页数:5
几种数字签名方案简介1、RSA数字签名方案RSA是最早公钥密码算法之一,由Ron Rivest、Adi Shamir和Leonard Adleman于1978年发明。
RSA数字签名方案基于大数分解难题,其安全性与RSA问题紧密相关。
在RSA数字签名方案中,发送方使用私钥对消息进行签名,接收方使用公钥验证签名。
2、DSA数字签名方案DSA数字签名算法由美国国家标准与技术研究院(NIST)提出,并被采纳为联邦数据处理标准(FIPS)。
DSA数字签名方案基于离散对数难题,其安全性主要依赖于有限域上的离散对数问题。
DSA算法相较于RSA 算法,具有签名长度短、速度快以及抗量子攻击等优点。
3、ECDSA数字签名方案ECDSA是椭圆曲线数字签名算法,其基于椭圆曲线密码学,是在有限域上的椭圆曲线离散对数问题的基础上构建的。
ECDSA数字签名方案相较于RSA和DSA算法,具有更高的安全性和更低的计算开销。
因为椭圆曲线密码学具有较高的安全性和较低的计算复杂性,所以ECDSA 被广泛应用于比特币等加密货币中。
4、EdDSA数字签名方案EdDSA数字签名算法是对标DSA的抗量子攻击算法,由欧洲电信标准化协会(ETSI)提出。
EdDSA使用的是Schnorr签名算法的一种变体,具有较高的安全性和抗量子攻击能力。
此外,EdDSA算法还具有速度快、签名长度短等优点。
以上几种数字签名方案都是目前广泛应用的算法,每种方案都有其特定的应用场景和优缺点。
在实际应用中,我们需要根据具体需求选择合适的数字签名算法以保证信息的安全性和完整性。
随着互联网的快速发展,数字签名方案在信息安全领域变得越来越重要。
数字签名方案用于验证信息的完整性、真实性和不可抵赖性,广泛应用于电子政务、电子商务和网络安全等领域。
无证书数字签名方案作为一种新兴的数字签名技术,因无需证书颁发机构颁发证书,具有降低成本、提高效率等优点,逐渐受到广泛。
本文将对几种无证书数字签名方案进行介绍,并对其安全性进行分析及改进。
安全增强的基于RSA可验证门限签名方案摘要本文提出一种验证功能完善、安全性更高的门限RSA签名方案。
该门限签名方案利用有理数域上的插值公式,Shamir秘密共享方案以及改进的门限RSA签名方案等理论,解决了在中对元素求逆和代数结构扩张的问题以及共享服务器合谋的问题。
关键词门限密码体制,门限签名,RSA算法,门限RSA签名方案1 引言门限签名是门限密码学的主要研究内容之一,最初由Desmedt和Frankel等人引进的,并基于ElGamal密码方案建立了第一个(t,n)门限密码体制。
在(t,n)门限签名方案中,n个成员共享群体的签名密钥,使得任何不少于t个成员的子集可以代表群体产生签名,而任何少于t个成员的子集则不能产生签名。
门限签名方案的基本假设是:在系统生命周期中,至少有(t-1)个非诚实成员。
由于RSA算法满足构成门限密码体制的同态性要求,并且在CA中被广泛使用,所以这里选择基于RSA的门限签名方案。
但是对于RSA密码系统,情况要复杂一些。
首先剩余环Shamir的秘密共享方案为基础,将改进的门限RSA签名体制、两方共享与(t,n)门限方案相结合,提出了一个需要可信任中心的安全性增强的基于门限RSA签名方案。
利用由hash函数建立的特殊形式的RSA2 门限秘密共享方案分析通过前面的分析我们知道门限秘密共享方案是构成门限签名方案的基础。
现有的许多门限签名方案采用的是ITTC项目中的方案,采用随机和的拆分方法,也就是将秘密密钥d按多种(t,t)共享方案分割,每种分割称为一种联合,每种联合含有t份子密钥,这t份子密钥分别存储在n个服务器中的t个不同共享服务器上,不同的子密钥联合对应不同的t个共享服务器组合。
这种方案具有方法简单,运算效率高的特点,但是它的子密钥分发和管理都比较困难。
它需要客户机或是组合者指定共享服务器而不具有任意性,对于客户机的要求很高,实现起来比较困难。
本文采用有理数域上的插值公式和经典的Shamir(t,n)秘密共享方案作为构造门限签名方案的理论基础。
5 基于RSA算法的数字签名的实现5.1开发环境介绍以其强大的性能,世界级的工具支持,操作简易性,扩展性,安全性等等优点,迅速的风靡全球,随着使用者的越来越多,数字签名的问题就越来越受关注。
C# 是.NET的关键性语言,它整个.NET平台是的基础。
5.1.1 C#语言概述在过去的20年里,C和C++已经成为在商业软件的开发领域中使用最广泛的语言。
他们为程序员提供了十分灵活的操作,不过同时也牺牲了一定的效率。
与诸如Microsoft V isual Basic等语言相比,同等级别的C/C++应用程序往往需要更长时间来开发。
由于C/C++语言的复杂性,许多程序员都试图寻找一种新的语言,希望能在功能与效率之间找到一个更为理想的平衡点。
对于C/C++用户来说,最理想的解决方案无疑是在快速开发的同时又可以调用底层平台的所有功能。
他们想要一种和最新的网络标准保持同步并且能和已有的应用程序良好整合的环境。
另外,一些C/C++开发人员还需要在必要的时候进行一些底层的编程。
C#是微软对这一问题的解决方案。
C#是一种最新的,面向对象的编程语言,他使得程序员可以快速地编写各种基于平台的应用程序。
提供了一系列的工具和服务来最大程度地开发利用计算与通信领域。
正是由于C#面向对象的卓越设计,使他成为构建各类组件的理想之选,无论是高级的商业对象还是系统级的应用程序,使用简单的C#语言结构,这些组件可以方便地转化为XML 网络服务,从而使它们可以由任何语言在任何操作系统上通过Internet进行调用。
最重要的是,C#使得C++程序员可以高效地开发程序,而绝不损失C/C++原有的强大功能。
因为这种继承关系,C#与C/C++具有极大的相似性,熟悉类似语言的开发者可以很快地转向C#。
5.1.2C#语言的特点C#语言自C/C++演变而来,它是给那些愿意牺牲C++一点底层功能,以获得更方便和更产品化的企业开发人员而创造的。
C#主要特点:简洁、与Web紧密结合、完全面向对象、强壮安全、灵活性和兼容性。
数字签名算法-RSA、DSA、ECDSA、ECDH数字签名算法介绍和区别原⽂阅读:数字签名是⼀个带有密钥的消息摘要算法,这个密钥包括了公钥和私钥,⽤于验证数据完整性、认证数据来源和抗否认,遵循OSI参考模型、私钥签名和公钥验证。
也是⾮对称加密算法和消息摘要算法的结合体,常见的数字签名算法主要有RSA、DSA、ECDSA三种,本⽂对数字签名算法进⾏详细介绍。
Hash⼜译散列、摘要等名,本⽂统⼀称Hash。
1. RSA数字签名算法RSA是⽬前计算机密码学中最经典算法,也是⽬前为⽌使⽤最⼴泛的数字签名算法,RSA数字签名算法的密钥实现与RSA的加密算法是⼀样的,算法的名称都叫RSA。
密钥的产⽣和转换都是⼀样的,包括在售的所有SSL数字证书、代码签名证书、⽂档签名以及邮件签名⼤多都采⽤RSA算法进⾏加密。
RSA数字签名算法主要包括MD和SHA两种算法,例如我们熟知的MD5和SHA-256即是这两种算法中的⼀类,具体如下表格分布1.1. MD2、MD4、MD5算法最常见的是我们熟知的MD5加密算法,MD5全称Message-Digest Algorithm 5(信息-摘要算法 5),⽬前⽐较普遍的Hash算法,是散列算法的基础原理,MD5的前⾝有MD2、MD3和MD4。
MD5算法法是输⼊任意长度字符,输出固定长度128位的算法。
经过程序流程,⽣成四个32位数据,最后联合起来成为⼀个128位Hash值,主要⽅式是通过求余、取余、调整长度、与链接变量进⾏循环运算进⽽得出结果。
1.2. SHA-1算法SHA-1是由NIST NSA设计为同DSA⼀起使⽤的,SHA-1设计时基于和MD4相同原理,并且模仿了该算法,SHA-1抗穷举(brute-force)性更好,它产出160位的Hash值,对于⾮线性运算、移位和加法运算也与MD5类似。
SHA-1也应⽤于包括TLS和SSL、PGP、SSH、S/MIME和IPsec等多种协议中,曾被视为是MD5的后继者。
密码学与信息安全技术实验报告实验名称:RSA算法数字签名实验编号:实验七实验内容描述:通过实验实例了解RSA算法数字签名。
实验设计与实现:1、RSA数字签名体制:RSA算法中数字签名技术实际上是通过一个Hash函数来实现的。
数字签名的特点是它代表了文件的特征,文件如果发生改变,数字签名的值也将发生变化。
不同的文件将得到不同的数字签名。
一个最简单的Hash函数是把文件的二进制码相累加,取最后的若干位。
Hash函数对发送数据的双方都是公开的。
只有加入数字签名及验证才能真正实现在公开网络上的安全传输。
加入数字签名和验证的文件传输过程如下: (1) 发送方首先用Hash函数从原文得到数字签名,然后采用公开密钥体系用发达方的私有密钥对数字签名进行加密,并把加密后的数字签名附加在要发送的原文后面; (2) 发送一方选择一个秘密密钥对文件进行加密,并把加密后的文件通过网络传输到接收方; (3) 发送方用接收方的公开密钥对密秘密钥进行加密,并通过网络把加密后的秘密密钥传输到接收方; (4) 接受方使用自己的私有密钥对密钥信息进行解密,得到秘密密钥的明文; (5) 接收方用秘密密钥对文件进行解密,得到经过加密的数字签名; (6) 接收方用发送方的公开密钥对数字签名进行解密,得到数字签名的明文; (7) 接收方用得到的明文和Hash函数重新计算数字签名,并与解密后的数字签名进行对比。
如果两个数字签名是相同的,说明文件在传输过程中没有被破坏。
如果第三方冒充发送方发出了一个文件,因为接收方在对数字签名进行解密时使用的是发送方的公开密钥,只要第三方不知道发送方的私有密钥,解密出来的数字签名和经过计算的数字签名必然是不相同的。
这就提供了一个安全的确认发送方身份的方法。
2、RSA数字签名体制的基本算法表述:(1)体制参数 假设用户甲使用如下的参数: 大合数n=p1*p2,其中p1和p2是大素数; 用户甲将公开模数n和公钥e,而将p1,p2与私钥d严格保密。
基于RSA的数字签名技术胡思雨1,孙秀丽2,张瑞华3(1安徽师范大学数学计算机科学学院,安徽,芜湖,2410002安徽师范大学数学计算机科学学院,安徽,芜湖,2410003安徽师范大学数学计算机科学学院,安徽,芜湖,241000)摘要:信息是推动社会向前发展的重要资源。
随着计算机网络技术的不断发展,Internet技术的日趋成熟,由此而来的互联网信息交换技术给人们的工作、学习和生活等带来了便捷和好处,但是同时网络中的安全问题也日趋严重,病毒、木马程序、远程监听,远程攻击等无时无刻都在困扰着人们,特别是一些商业,科研,国防机构,常常要在互联网上传输一些机密资料。
计算机网络的开放性与共享性,系统的复杂性,边界不确定性,以及路径不确定性都导致了网络安全性问题的发生,使得网络很容易受到外界的攻击和破坏同样也使数据信息的保密性受到了严重影响。
因此,网络中的信息安全技术和加密技术就显得尤为重要。
密码技术是信息安全的核心技术。
公钥密码在信息安全中担负起密钥协商、数字签名、消息认证等重要角色,已成为最核心的密码。
本文介绍了数字签名技术的基本功能、原理和实现条件,并实现了基于RSA的数字签名算法。
关键词:网络安全;加密技术;数字签名技术;密钥管理;加密技术应用;RSA算法;The Digital Signature Technology Based on RSAHU Siyu,SUN Xiuli,ZHANG Ruihua(School of Mathematics & Computer Science,Anhui Normal University,Wuhu241000,China) Abstract:Inf ormation is an important resource to push society forward. With the continuous development of computer network technology, Internet technology becoming mature, and Internet information exchange technology to give people work, study and life has brought convenience and benefits, but at the same time in the network security problem is increasingly serious, viruses, Trojan horse program, remote monitoring, plagued by ranged attacks, etc. All the people, especially some business, scientific research, the defense agencies, often need to transport some confidential data on the Internet. Openness and sharing of computer network, the complexity of the system, the boundary uncertainty, and the path of uncertainty are lead to the network security problems, and makes the network very vulnerable to the outside world and also the data information privacy has been seriously affected. Therefore, in the network information security technology and encryption technology is particularly important. Cryptography is the core of information security technology. Public key password for key agreement in information security, digital signatures, message authentication and other important role, has become the core of the password. This paper introduces the basic function of digital signature technology, principle and the implementation condition, and realizes digital signature based on RSA algorithm.Key words:Internet security , encryption techniques, digital signature technology, key management ,encryption techniques application,RSA algorithm1、引言21世纪的特征就是数字化、网络化和信息化,它是一个以网络为核心的信息时代。
摘要当今世界信息技术获得了前所未有的大发展,因而信息的安全性必将变得越来越受到人们的重视。
而数字签名技术是目前网络安全领域的研究热门方向。
RSA算法是第一个能同时用于加密和数字签名的算法,易于应用和理解。
RSA从提出一直到现在,它经历了各种考验。
它通过认证技术来分辨真与假。
RSA数字签名体制使用地是RSA公开密钥算法进行得数字签名。
本文主要是对RSA公开密钥密码体制的研究,并在此基础上实现了RSA的数字签名的体制。
本文的主要内容包括:关键词:加密解密RSA算法RSA数字签名AbstractNow the information of the world is developing fastly.So the security of the information is becoming more and more importantly. Digital signature filed will become hot spots in future.It is the first algorithm for both data encryption and digital signature.It can be understood easily by people.RSA has undergone various tests when it is put out.RSA as the public key cryptosystem representative approved data integrity is a kind of information technology. It is through the authentication techniques to distinguish true and false. RSA digital signature system using a RSA public key algorithm for digital signature.The text is about the study of RSA public key encryption,based on this generating RSA digital signature.including:,Firstly on the basis of previous research, a system based on elliptical curve proxy signature, The advantage of public key encryption and the security of RSA digital signature(attack )Secondly,it analyzes the principle of RSA,including how to generat a prime number,how to generat the secret keys and how to encryption as well as decrypt, Thirdly,it states the principle of MD5 in detail.Fourthly, it states design and realization of RSA digital signature in detail. The main modules includes producing RSA secret keys, implementation of RSA encryption algorithm and decryption algorithm, producing message digest and realizing digital signature and verification by RSA.Key words: RSA algorithm; encryption; decryption; RSA digital signature目录摘要 (I)Abstract (II)1绪论 (1)1.1 研究背景 (2)1.2 研究现状 (3)2密码学基本概念 (4)2.1 公钥密码基本概念 (4)2.1.1 公钥密码原理 (4)2.1.2公钥密码的理论基础 (5)2.2 对称加密体制 (5)3数字签名的基本概念和理论 (7)3.1数字签名概念 (7)3.2 数字签名理论 (7)3.3数字签名过程 (7)3.3.1.发送方签名过程 (8)3.3.2.接收方验证过程 (9)4数字签名常见的算法及其数字签名 (11)4.1 DSA数字签名算法 (11)4.1.1 DSA数字签名实现的三个步骤 (11)4.1.2 DSA的安全性 (12)4.2 椭圆曲线代理签名体制 (12)4.2.1椭圆曲线数字签名ECDSA (12)4.2.2椭圆曲线数字签名的安全性 (13)5 RSA算法及其数字签名 (14)5.1 RSA简述 (14)5.2 RSA加密的可行性 (15)5.3 RSA算法的介绍 (15)5.3.1 RSA中素数的选取 (16)5.3.2 RSA用到的公式和定理 (16)5.3.3 RSA安全性的分析 (16)5.3.4 RSA的攻击 (17)5.3.5 RSA的缺点 (18)5.3.6 RSA的优点 (19)5.4 RSA数字签名 (19)5.4.1 RSA数字签名的过程 (19)5.4.2 RSA数字签名算法实现步骤 (19)5.4.3 散列函数的原理 (20)5.4.4 MD5算法的简介 (21)6 RSA数字签名设计与实现 (23)6.1 开发环境的介绍 (23)6.1.1 C#语言概述 (23)6.1.2 C#语言特点 (23)类的介绍 (24)6.3 RSA数字签名所需实现的功能 (25)6.4 本软件的总体要求和设计 (25)6.5主要实现代码及软件运行结果 (26)结论 (30)致谢 (32)参考文献 (33)附录1 (34)1绪论1.1 研究背景当今社会是信息化社会,电子计算机和通信网络己经广泛的应用于社会的各个领域,以此为基础建立起来的各种信息系统,给人们的生活、工作带来了巨大变革。
基于RSA的前向安全的防欺诈的门限数字签名方案第25卷第6期2008年6月计算机应用与软件ComputerApplicationsandSoftwareV o1.25No.6Jun.2008基于RSA的前向安全的防欺诈的门限数字签名方案温翔袁丁(四川师范大学计算机科学学院四川成都610068)摘要以RSA数字签名方案和前向安全的理论为基础,结合Feldman可验证的秘密共享方案,提出了一种基于RSA的前向安全和防欺诈的门限数字签名方案.该方案中用于数字签名的私有密钥由一个单向函数控制随时间的推移不断更新,而公有密钥保持不变,即使攻击者获得了某个时期的私钥,他也无法伪造该时期之前的签名.该方案在签名过程中溶入了部分签名和防欺骗的秘密共享方案,相比干现有的RSA签名方案,该方案具有更高的安全性.关键词RSA前向安全防欺诈门限部分签名ATHRESHoLDDIGITALSIGNATURESCHEMEWITHFoRWARD.SECUREANDCHEA T.PRooFBASEDoNRSA WenXiangYuanDing(CollegeofComputerScience,SichuanNormalUniversity,Chengdu610068,Sichuan,Chin a)AbstractProposedaforward—secureandcheat?proofthresholddigitalsignaturescheme,whichbasedonRSAdigitalsignat ureschemeandtheforward—securetheory,whileFeldman'Sverifiablesecretsharing(VSS)wasemployed.Inthisscheme ,thedigitalsignature'Sprivatekeyisunderthecontrolofaone—wayfunctionandcontinuallychangeswithtimegoingby,butitspublickeyremainsthesame. Evenifanattack—erinterceptsandcapturestheprivatekeyatacertaintime,he/shestillcannotfakethesignature ofthetimebefore.Thedistributivesigna—tureandcheat?proofsecretsharingschemeareusedduringthecourseofthesignatureinthissc paredwithrecentRSAdigitalsig?nature,thisschemehasahighersecurity.KeywordsRSAForward??secureCheat-?proofThresholdDistributivesignature0引言数字签名技术作为信息安全领域的一项重要技术,在当今的信息时代所起到的作用越来越大.特别在电子商务领域,数字签名可以说是电子商务发展的基石.多年来,RSA是被研究得最广泛的公钥算法之一,经历了各种攻击的考验,逐渐成为比较安全的加密算法.相应的以RSA加密算法为基础的诸多RSA数字签名方案被广泛地加以应用.但是数字签名方案的安全性不仅体现在其签名算法本身基于数学理论的安全性,密钥的安全也是其安全性的重要体现.Shamir在1979年提出了一种秘密共享体制…,把密钥分解成多个子密钥,供多个秘密共享参与者共享密钥,密钥的安全性得到了一定的提高.于是基于此理论的门限的数字签名方案得到了广泛的应用.但实际上,对于一些应用时间比较长的数字签名方案,攻击者还是有足够的时间逐一攻破,使被攻破的子密钥的数量达到其门限数,从而攻破密钥.这就成为了传统数字签名方案的一个安全隐患.针对以上问题,1997年Anderson第一次提出了前向安全的数字签名方案.前向安全的基本思想是:将整个签名体制的生存期化为若干时间段,用于签名的私钥在不同的时间段更新,这样即使攻击者获得了某个时期的密钥,也无法对该时期之前的签名构成威胁.1999年,在文献[3]中,M.Bellare和S.K.Miner对前向签名进行了形式化定义,提出了一套系统公钥保持不变,私钥不断更新的前向数字签名方案.此后文献[4]和文献[5]根据此方案分别提出了一种基于椭圆曲线密码体制的前向的数字签名方案和基于ELGamal的前向数字签名方案,但文献[6]和文献[7]分别指出了上述两种方案不是真正的前向更新的签名方案,并提出了新的可前向更新的签名方案.本文提出的基于RSA的前向安全的防欺骗的门限数字签名,不仅对文献[7]的签名方案进行了简化和改进,而且结合了Feldman可验证的秘密共享方案j,是一种比较完备的RSA门限签名方案.1预备知识1.1一种基于RSA的前向安全的数字签名此方案对文献[7]的方案进行了简化和改进,是一种更为简单实用的RSA前向数字签名方案.其具体实现过程如下:1.1.1初始化设置任选两个互异强素数P,q,即有P=2u+1,q=2v+1.其中u和V是两个互异大的素数.令N=Pq,N=.有(』,『)=(P一1)(q一1)=4uv=4N.设g为z的一个阶为Ⅳ的收稿日期:2007一O6一Ol.四川I省科技厅科技攻关项目(05GGO07—008).温翔,硕士生,主研领域:信息安全和网络安全.第6期温翔等:基于RSA的前向安全的防欺诈的门限数字签名方案281 元素.任取e∈且满足(e,咖(,v))=1,计算d0,使得ed0=lmod4~(,v).将签名系统有效期分为个阶段.系统公钥为(e,,v),系统初始私钥为(u,,).任取一正整数n,且n满足1<n<,v,一般隋况下n取2.H()是一个公开的安全哈希函数,且H()<,v.1.1.2密钥的更新i表示第i时间段,d表示第i时间段的签名密钥.当时间从i一1时刻进入i时刻时,密钥进行以下更新.第一步:如果i=T+1,签名密钥d设为空串.第二步:如果1≤i<T+1,则d=mod4~(N),然后删除dH.1.1.3签名过程假设待签名的明文信息为m,则在i时间段,签名者计算U =gmodN,c=H(m『Ii),5=g~idlmodN.则签名为(i,U,c,S).1.1.4验证过程第一步:验证者首先检验i≤T是否成立,如果不成立,则为无效签名.否则进行下面计算..f第二步:验证者计算y=SimodN.如果y=modN,则签名为有效签名,否则为无效签名.1.1.5方案的有效性证明由数学归纳法可知d=簖'mod4~(,v),并且很容易得出'e=lmod4~(N)=1modN,g=gmodN.事实上:ySimodNgUCidienlmodNni.modNgimodN=DmodN因此y=-modN,即签名方案是有效的.由此我们可以看到,在整个签名过程中,用于验证的公钥e是不变的,而私钥d却通过一个单向函数的作用随着时间不断地改变,这样即使攻击者获得了当前时间段的密钥,他也无法伪造这之前的签名,这样就把损失减小到最低.1.2Feldman可验证秘密分享方案为了防止秘密分发者分发错误的密钥,Feldman于1987年提出了一个可验证秘密分享方案j,每个共享秘密参与者可以验证他所拥有子秘密的正确性.该方案的具体过程如下:1.2.1初始化阶段可信中心选择一个可公开大素数P,并有一素数q是P一1的大的素因子,即:qIP一1,再随机选择g∈Z.,且g的阶为q,即:g=lmodp.1.2.2密钥分发阶段假设共享秘密为,其中∈可信中心随机选择t一1阶多项式,()=00+0l+02+…+0—l'一,其中0=,计算并公布=g~modp(=0,1,2…,t一1).可信中心把子密钥=,()modq秘密分发给各个共享秘密参与者i(i=1,2, 3,…,n).1.2.3子密钥验证阶段l一1共享秘密参与者i接收到后,计算=兀m.,如JO果=moap,则接收,否则拒绝接收并且发送验证消息告知可信中心.2基于RSA的前向安全和防欺诈的门限数字签名方案基于上述理论,本文提出了一种基于RSA的前向安全和防欺诈的门限数字签名方案.该方案具有前向安全,防欺诈等功能,而且考虑到传统门限RSA签名体制中需要对剩余环中元素求逆的问题,所以对原有秘密共享体制作了一些改进,具有良好的抗攻击能力.该方案中有一个可信中心,一个是秘密分发中心CA,负责子密钥的发放和密钥的更新;一个是签名合成中心sc,负责部分签名的验证和密钥的合成.该方案有7个阶段构成.2.1初始化阶段在T=0时刻,CA任选两个互异强素数P,,即有P=2u+1,q=2v+1.其中u和是互异的两个大素数.令,v=Pq,=u.有(,v)=(P一1)(q一1)=4uv=4N.设g为的一个阶为,v的元素.任取e∈且满足(e,咖(,v))=1,计算d∞,使得ed=lmod4~(,v).系统公钥为(e,,v),系统初始私钥为(u,,d【0).明文为m,H()是一个公开的安全哈希函数,且1t()<,v.2.2私钥的分发阶段在T=时段,CA根据(t,n)f-j限方案分派时段的签名密钥d",具体的分发过程如下:第一步:cA密钥分发者随机选择t一1阶段多项式/()=d'+0l+02+…+0f-l卜modN,满足(0)=d∽,其中0∈zⅣ](=1,2,…,t一1),且1<0<,v一1,并计算d=()兀m.dN(12",n).注意,f1.2,…,且f≠I—I—f这里考虑到对剩余环z㈤中元素求逆的问题,在选择参数时,1≤.<rain(u,),且尽量取小整数,而且应该满足对任意的s,有((一),咖(,v))=1,即(一)在剩余环z()中有逆元素.为了简便地找到这样的,只需让(—)为奇数,且1≤(一)<rain(u,).第二步:cA向各共享秘密参与者i秘密发送,并令..=d∽,计算=g_1.2互音'modN(f=0,1,2,…,f一1),U=g"modN,并公布(i,,U).第三步:共享秘密参与者i接收到后,开始计算=一1兀()Im1od,v,(f=0,1,2,…,f一1),如果=modN亏,则各个共享秘密参与者i广播"确认"信息,否则广播"终止" 信息.第四步:如果所有共享秘密参与者i都广播的是"确认"信息,那么共享秘密参与者i接受并各自保存.2.3私钥更新阶段当时间从一1时刻进入时刻时,CA执行以下过程:如果=T+1,签名密钥d"设为空串.如果1≤<T+1,则有d"=(d【J)modN.然后删?除,随机选择一多项式使得/(0)=d【J,重复初始化密钥分发阶段的工作.这时各共享秘密参与者i得到的密钥是(i=1,2,…,n).282计算机应用与软件2008_q-2.4签名阶段当密钥分发等初始化工作结束后,各个共享秘密参与者就开始进行"部分签名".假设在时间段有t个共享秘密参与者G.,G2,…G来进行门限签名,签名者计算c"'=(mll),s=一f"modN.并把签名(i,c",)发送给sc.2.5验证部分签名阶段在时段,Sc新收到G的签名后,对G的签名进行验证.卜1,,SC计算=【丌()modN(z=0,1,2…,一1),如_-百果":smodN,则G部分签名是合法的,否则不合法,并且可信中心发送"警告"消息告知G.2.6合成签名阶段如果所有用户的部分签名都合法,则由sc负责合成签名.可信中心只需针对每个合法G(i=1,2,…,t)计算s"=rH,)rnodN,则合成的签名为(i,U,c,s'.f=l2.7验证合成签名阶段第一步:验证者首先检验i≤T是否成立,如果不成立,则为无效签名.第二步:要验证(i,U,C",S")是消息m的合法签名,即计算y=(.s)'modN,如果Y=modN,则签名为时段的有效签名,否则为无效签名.3安全性分析(1)本方案加密系统的设计是建立在经典加密算法RSA之上的,即基于大数分解的困难性问题.在一般情况下,RSA应当认为是安全的加密算法.(2)本方案的密钥的更新所用到的单向函数是建立在模合数的平方根计算困难性问题上的,d=.mo(N),即使攻击者得到当前密钥d,也无法计算之前的密钥d,从而无法伪造之前的签名.(3)在密钥的有效期内,用于签名的私钥随时间的推移不断更新,而公钥保持不变,相对于一般的密钥的前向更新来说,做到了真正意义上的前向安全.(4)本方案结合了Fledman可验证的秘密共享方案,使得可信中心和共享秘密参与者可以互相检验,从而比一般的门限方案具有更高的安全性.(5)在具体门限实现过程中,不是简单的合成私有密钥,而是每个共享秘密参与者都先用子密钥生成部分签名,再由部分签名来合成新的签名,从而使密钥的安全性大大提高.(6)本方案可以非常方便地直接对签名进行验证,在实际操作中易于实现.4结论本方案将RSA公钥加密体制,前向安全的理论和防欺诈的门限思想有机地集合在一起,形成了一套完整和安全的秘密共享体制,使其能够有效地抵御伪造签名和密钥的欺诈.在该方案中,用于签名的私有密钥由一单向函数控制,随时间的推移不断更新,而用于验证签名的共钥始终保持不变.在RSA门限的实现中,不是进行简单的秘密的恢复,而是用到了对分发的子密钥和签署的部分签名的验证,防止了门限中的欺诈行为的发生,从而保证了签名的可靠性.参考文献[municationsoftheACM,1979,24(11):612—613.[21AndersonR.TworemarksonpublickeycryptologT[R]InvitedLec—ture,ACM—CCS97,1997.[3]BellareM,MinerS.Aforward—securedigitalsignaturescheme[A.M Wiener.CRYPTO99,vol1666ofLNCS,Berlin:Springer—V erlag, 1999:431—448.[4]詹雄泉,洪景新.基于椭圆曲线密码体制的一种具有前向安全的数字签名方案[J].厦门大学,2005,44(2):189~192.[5]吴克力,王庆梅,刘风玉.一种具有前向安全的数字签名方案[J].计算机工程,2003,29(8):122—123.[6]符茂胜,任哲,侯整风.基于ECC的前向安全数字签名的研究与改进[J].计算机工程,2006,23(14):109一l10,l13.[7]李旒,何明星.基于RSA的前向安全的数字签名[J].计算机工程与应用,2006,42(16):124—126.『81FeldmanP.Apracticalschemefornon—interactiveverifiablesecretsha—ring『A].Proc.ofIEEEFund.ofComP.Sci,1987:427—437.(上接第261页)时贯用的平均方法所带来的水印信息严重削弱的缺点,使水印的鲁棒性特别是抗局部攻击能力大大提高.这种算法移植性高,已在小波域的算法上得到验证.参考文献[1]VanSchyndelRG,TirkelAZ,OsborneCF.Adigitalwatermark[A]. ProceedingoftheIEEEInternationalConferenceonImageProcessing, 1994:86—90.『21AndrewBWatson.Dctquantizationmatricesvisuallyoptimizedforindi—vidualimages[A].ProceedingofSPIE,1993:1913—1914.[3]MartinKutter,FabienAPPetttcolasb.Afairbenchmarkforimagewa—termarkingsystems[A].ProceedingofElectronicImaging,Securityand WatermarkingofMultimediaContents,1999:226—239.[4]张卫,高政.STIRMARK基准测试程序在数字水印方案评价中的应用[J].电视技术,2004,266(8):75—77.[5]燕晓,蒙应杰,王阳,郁军.一种强干扰背景下的盲加性水印算法[J].软件,2005,16(9):1678—1684.[6]JiannShuLee,ShihTsungLiang,KoChinaHsu.Promotingwatermark performancebyusingenergyreallocation[c].Proceedingofthe8th IEEEInternationalSymposiumonComputersandCommunication,Ke—merAntalya.Turkey,2003.(上接第279页)[7]ZhangZhen,WangXiaoming.AP2PGLOBALTRUSTMODELBASED ONRECOMMENDATION.ProceedingsoftheFourthInternationalCon—fereneeonMachineLearningandCybernetics,Guangzhou,18—2IAu—gust,2005.[8]XiongLi,LiuLing.PeerTrust:SupportingReputation—BasedTrustforPeerto—PeerElectronicCommunities.IEEEtransactionsonknowledge anddataengineering,2004,16(7).。
两个基于RSA的特殊数字签名方案
作者:蒋俊锋
来源:《电脑知识与技术》2008年第35期
摘要:介绍了数字签名背景、签名体制的形式化描述以及两个特殊的数字签名方案。
对如何用RSA实现盲签名和多重数字签名方案进行了研究,分析了两种具体方案实现的安全性。
最后总结了这两种特殊数字签名实现过程中算法设计的优劣。
关键词:数字签名;RSA;盲签名;多重签名
中图分类号:TP316文献标识码:A文章编号:1009-3044(2008)35-2095-02
Two RSA-based Special Digital Signature Schemes
JIANG Jun-feng
(Engineering of Information Hohai University,Changzhou 213022,China)
Abstract: The background, the formal definition and some special form of digital signature are firstly introduced.The research of how to realize the blind signature and the multisignature with RSA signature scheme are carried out secondly. The virtue and shortcoming of the two realized special digital signature schemes and the research to be continued are lastly put forward.
Key words: digital signature;RSA;blind signature;multisignature
1 引言
1.1 背景
签名一直被作为一种证明签名者身份的标识,它表明签名人看过乃至同意文件的内容。
签名人作出签名后将无法否认,并要为自己的签名负责。
随着密码学的发展,数字签名(digital signature)克服了手写签名的缺点。
数字签名[1]具有签名可信性、不可抵赖性、不可复制性、不可伪造性和数据完整性的优点。
2004年8月我国正式颁布了《中华人民共和国电子签名法》,确立了数字签名在我国的法律效力和地位。
1.2 数字签名的形式化定义
签名体制[2]是一个满足一下两个条件的概率多项式时间算法的三元组(G,S,V)。
1) 当输入1n时,算法G(调用密钥生成器)输出一对比特串。
2) 对G(1n)值域中的每一对(s,v),以及每个α∈{0,1}*,算法S(签名)和V(验证)满足:Pr[V(v, α,S(s, α)=1)]=1
这里的概率定义在算法S和V的所有内部掷币值上的。
S(s, α)称为签名密钥对文档α产生的签名,当V(v, α,β)=1时称β是α对应与验证密钥v的有效签名。
数字签名主要基于公钥算法。
其中RSA基于大整数难以分解为两个素数的乘积。
特点是算法简单和安全。
RSA是目前使用比较普遍的数字签名算法。
ISO/IEC 9796和ANSI X9.30-199X已将RSA作为建议数字签字标准算法。
在制定的标准中,PKCS#1是一种采用杂凑算法(如MD2或MD5等)和RSA相结合的公钥密码标准。
1.3 几种特殊的数字签名
人们根据不同的应用背景和签名目的,研究出了几种特殊的签名方案:盲签名方案,多重签名方案,代理签名方案,群签名方案等等。
盲签名方案(Blind-signature Scheme)是由D.Chaum[3]与1982年最先提出的。
某人对一个文件签字,但又不让他知道文件内容,这点使盲签名应用在许多领域,比如电子投票系统,电子拍卖系统和电子现金系统。
一般的数字签名是由单个用户完成的,而由多人参与对同一文件进行的签名方案,称为多重签名方案(Multisignature Scheme)。
多重签名方案是D. Chaum 和E.van Heyst[4]于1991 年提出的。
根据签名过程的不同,多重数字签名可分为有序多重数字签名方案和广播多重数字签名方案。
2 方案实现
2.1 盲签名方案
下面介绍用RSA实现的盲签名方案。
整个过程分为:密钥建立与管理、消息盲化、签名、消息解盲和签名验证。
2.1.1 盲签名过程
1) 密钥的建立与管理
设有参与盲签名的人分别是A和B,A知道消息M,让B进行盲签名。
首先建立RSA密钥,任意选取两个大素数p及q ,计算n = pq。
φ(n)为n的欧拉函数。
任意选择一个整数e, 使得(e,φ(n))=1,计算d (1
2) 消息盲化
A进行对消息M盲化:选用盲因子k,1
3) 签名过程:A把盲化过的消息t发送给B,B对t进行RSA签名,计算S(t) = td = (Mke)d (mod n)
4) 消息解盲: B将签名S(t)传送给A。
A通过下面的运算获得B对消息M的直接RSA签名。
Sig = S(t)/k≡ td/k≡ Md (mod n)
对上步等式的证明:td≡(Mke)d≡Mdk(mod n)⇒td/k≡Mdk/k≡Md(mod n)。
5) 签名验证:A利用B公布的(e,n)对消息进行验证。
M'=Sige(mod n)
若M'=M,则验证通过,否则验证失败。
2.1.2 盲签名方案的安全性分析
匿名性和不可伪造性:B在获取了t=Mke (mod n),B不知道盲因子k,所以B在多项式时间内无法推出M的值。
这种盲化方法具有匿名性。
B签名后如果被攻击者截取,因为攻击者不知道B的私钥d,所以也无法伪造签名Sig。
2.2 多重签名方案
下面介绍基于RSA的有序多重签名方案。
整个过程分为:密钥建立与管理、多重签名、部分签名多重验证和签名验证。
2.2.1 多重签名过程
1)用户密钥建立和管理
设有参与多重签名的人分别是U1,U2,…,Un。
他们都使用RSA密码体制进行签名。
首先建立RSA密钥,任意选取两个大素数pi及qi ,计算ni = piqi。
任意选择一个整数ei ,使得(ei,φ(ni))=1,计算di (1
2) 有序多重签名
签名者U1 对M的散列值进行签名,计算m=H (M), S1≡(m)d1(mod n1)。
U1把签名结果S1传递给下一个签名者U2 , U2首先验证签名S1的正确性,验证如下:
计算m'(S1)e1(mod n1)以及m =H (M),如果m′ =m说明签名正确,否则,签名不正确。
当验证部分签名通过后, U2 签名如下:S2≡(S1)d1(mod n2)然后U2把S2传递给U3,U3首先验证签名S2的正确性。
同样首先计算m'≡[(S2)e2(mod n2)]e1(mod n1), 如果m′ =m说明签名正确,否则,签名不正确。
依次类推,当签名者Ui(1≤i
3) 验证多重签名:
计算m'≡(((Sn)en(mod nn))en-1(mod nn-1)…)e1(mod n1)和m=H (M )
如果m′=m,说明签名正确,否则签名不正确。
2.2.2 多重签名方案的安全性分析
1) 签名可信性:对于最终的签名Sn,其他人接收到最终签名的过程中,攻击者有可能窃取并对其进行篡改。
但是其他人都可以利用公布的(en,nn)来验证签名Sn的正确性;对于部分签名Si(1≤i
2) 不可伪造性:对于最终的签名Sn,攻击者截取进行冒充签名是不可能的,因为攻击者不知道dn。
对于部分签名Si(1≤i
3) 防止收到已知签名攻击(know-signature attack):文献[1]中提到,克服已知签名攻击的有效方法是选择安全Hash函数对签名的消息做Hash变换,然后再对变换后的消息摘要进行签名。
因此在多重签名方案中,在签名之前现对消息M做了Hash变换,所以这个方案可以有效防止收到已知签名攻击。
3 小结
文章使用RSA分别实现了盲签名和有序多重签名。
通过安全性分析,盲签名方案具有匿名性和不可伪造性。
在实现盲签名时没有使用哈希函数,对于短消息适用并且签名速度快。
但是对于长消息签名速度比较慢,RSA是幂模运算,当底数M很大时,运算量很大。
下面要做的工作是考虑如何把签名和摘要结合起来。
多重签名具有可信性、不可伪造性和防止收到已知签名攻击。
由于多重签名中产生的密钥对较多,密钥的产生、发放和管理等操作比较繁琐。
应该用数字证书来管理多重签名每个用户的公钥和密钥。
参考文献:
[1] 徐茂智,游林.信息安全与密码学[M].北京:清华大学出版社,2007.
[2] Goldreich O.密码学基础[M].2卷.北京:人民邮电出版社,2005.
[3] Chaum D.Blind signature for untraceable payments[A].Proc.Crypto'82[C].New York:Plenum Press,1983:199-203.
[4] Harn I,Keisler T.New scheme for Digital Multisignature[J].Electronic
Letters,1989,25(15):1002-1003.。