会员注册 | 登录 | 微信快捷登录 QQ登录 微博登录 | 帮助中心 人人文库renrendoc.com美如初恋!
站内搜索 百度文库

热门搜索: 直缝焊接机 矿井提升机 循环球式转向器图纸 机器人手爪发展史 管道机器人dwg 动平衡试验台设计

   首页 人人文库网 > 资源分类 > DOC文档下载

通信学论文-安全增强的基于RSA可验证门限签名方案.doc

  • 资源星级:
  • 资源大小:22.47KB   全文页数:11页
  • 资源格式: DOC        下载权限:注册会员/VIP会员
您还没有登陆,请先登录。登陆后即可下载此文档。
  合作网站登录: 微信快捷登录 支付宝快捷登录   QQ登录   微博登录
友情提示
2:本站资源不支持迅雷下载,请使用浏览器直接下载(不支持QQ浏览器)
3:本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰   

通信学论文-安全增强的基于RSA可验证门限签名方案.doc

通信学论文安全增强的基于RSA可验证门限签名方案摘要本文提出一种验证功能完善、安全性更高的门限RSA签名方案。该门限签名方案利用有理数域上的插值公式,Shamir秘密共享方案以及改进的门限RSA签名方案等理论,解决了在中对元素求逆和代数结构扩张的问题以及共享服务器合谋的问题。关键词门限密码体制,门限签名,RSA算法,门限RSA签名方案1引言门限签名是门限密码学的主要研究内容之一,最初由Desmedt和Frankel等人引进的,并基于ElGamal密码方案建立了第一个t,n门限密码体制。在t,n门限签名方案中,n个成员共享群体的签名密钥,使得任何不少于t个成员的子集可以代表群体产生签名,而任何少于t个成员的子集则不能产生签名。门限签名方案的基本假设是在系统生命周期中,至少有t1个非诚实成员。由于RSA算法满足构成门限密码体制的同态性要求,并且在CA中被广泛使用,所以这里选择基于RSA的门限签名方案。但是对于RSA密码系统,情况要复杂一些。首先剩余环不是域,其中的元素未必都可逆,于是不能利用一般的秘密共享方法共享签名密钥d其次,为了保护RSA模数N的因子分解,不能让参与签名的成员知道,因此给在上建立秘密共享方案和建立门限签名方案都带来了困难。另外一个需要解决的问题是由于采用Shamir秘密共享方案共享签名私钥,任意t个或更多个成员共享的密钥就是签名私钥,所以他们合谋可以恢复出秘密密钥,从而假冒系统生成有效的群签名。这些问题都是我们在设计门限签名方案时应该考虑的。本文以基于有理数域上插值公式的Shamir的秘密共享方案为基础,将改进的门限RSA签名体制、两方共享与t,n门限方案相结合,提出了一个需要可信任中心的安全性增强的基于门限RSA签名方案。利用由hash函数建立的特殊形式的RSA签名体制,很好解决了在中对元素求逆和代数结构扩张的问题,为实现带来了方便。同时在签名过程中对分发的子密钥、部分签名以及签名都进行了验证,保证子密钥和签名的正确性保证在签名过程中不会被敌人入侵和欺诈,同时也防止了共享服务器合谋的危险。因此是一个安全性更高的门限签名方案。2门限秘密共享方案分析通过前面的分析我们知道门限秘密共享方案是构成门限签名方案的基础。现有的许多门限签名方案采用的是ITTC项目中的方案,采用随机和的拆分方法,也就是将秘密密钥d按多种t,t共享方案分割,每种分割称为一种联合,每种联合含有t份子密钥,这t份子密钥分别存储在n个服务器中的t个不同共享服务器上,不同的子密钥联合对应不同的t个共享服务器组合。这种方案具有方法简单,运算效率高的特点,但是它的子密钥分发和管理都比较困难。它需要客户机或是组合者指定共享服务器而不具有任意性,对于客户机的要求很高,实现起来比较困难。本文采用有理数域上的插值公式和经典的Shamirt,n秘密共享方案作为构造门限签名方案的理论基础。这是因为Shamir门限体制具有以下特点1增加新的子密钥不用改变已有的子密钥。在参与者P1,P2,,Pn中成员总数不超过q的条件下可以增加新的成员而不用重新撤销以前分发的子密钥。当系统需要增加共享服务器时,我们只需要对新增加的服务器分发新的子密钥,而不需要将已经分发的子密钥一起替换掉,这样可以减少系统的工作,提高系统效率。2可以通过选用常数项不变的另一(t1)次新的多项式,将某个成员的子密钥作废。当某个共享服务器被攻破时,需要作废它的子密钥,我们可以采用这种方法。3组合者可以任意选择共享服务器的子密钥进行密钥恢复而不需要指定它们。这是我们选择Shamirt,n秘密共享方案的一个重要原因。当共享服务器完成部分签名后组合者Combiner可以在n个服务器中任意选择t个进行最后的组合,而不需要去指定由某些服务器的部分签名构成最后的签名。这里我们给出这样一个假设任意t个共享组件所构成的信息与n个共享组件所构成的信息应该是完全等价的。在此基础上给出本文的基于RSA门限签名方案。3基于RSA门限签名方案设计3.1密钥初始化定义51可信任中心AAdministrator指将签名私钥分给n个秘密共享者的组件。可信任暗含了A一定能确保秘密信息不会被泄漏,并且在执行完密钥的分发后将签名私钥和其它信息一起销毁。1假设可信任中心A选择好RSA模数N,公钥e和私钥d以及,使得。其中,模数N为两个安全大素数p,q的乘积。2取定一个固定的正整数k及值域包含于指中最高两个比特为0的数构成的集合的适当的hash函数h如MD5,H由得到,由于对N的分解是困难的,所以Hm是强无碰撞的、单向的函数。3d1为随机数,,现在可信任中心A欲将d2分发给n个共享服务器ShareServeri,将d1发给密钥服务器K。这里签名私钥d由d1和d2组成,各共享服务器共享私钥d2。3.2子密钥的生成与验证可信任中心A按如下步骤将签名密钥d2分发给n个共享服务器ShareServeri。1A随机选取多项式使f0a0d2,计算下式其中g是可信任中心A随机选取的信息样本。A将d2i秘密地发送给ShareServeri,而将N,n,e,h公开,将所有的g,ci,yi广播给各ShareServeri,p,q不再使用将其销毁。2各共享服务器ShareServerii=1,2,,n收到可信任中心A发送来的子密钥d2i后,利用已广播的公开信息验证子密钥d2i的正确性,方法如下①每个共享服务器ShareServeri判断下面的式子是否成立②由于54式是所有共享服务器都收到的,因此方案中任何的组件都可以验证,故称为公开验证部分式55由每个共享服务器自己验证,故称为秘密验证部分。对于ShareServeri来说,秘密验证就是用自己的子密钥d2i和收到的g计算yi并与从可信中心A发送的yi比较是否一致来判断d2i的正确性。③公开验证的正确性说明如下当公开验证和秘密验证中有一个不成立就认为验证失败,ShareServeri宣布可信任中心A发放的子密钥是错误的,于是可信任中心A被认为是不合格的,协议至此中止。可信任中心A将重新选择N和密钥对d,e重复上面的步骤发放新的密钥,否则可信任中心A分发密钥成功,可以进行下面步骤。这时可信任中心A销毁所分发的密钥,以防止密钥泄露。3.3部分签名的生成与验证首先密钥服务器K利用密钥d1对消息m的hash函数值进行签名。然后各共享服务器ShareServeri利用自己的子密钥d2i对消息m的摘要进行签名,如下所示并广播其部分签名共享服务器ShareServeri生成对消息m的部分签名后,本文借助交互验证协议来验证ShareServeri的部分签名是否正确。在交互验证协议中可以由任何一方来验证部分签名的正确性,这里为了方便后面系统设计故规定共享服务器ShareServeri的部分签名是由ShareServeri+1来验证。若协议成功,则ShareServeri+1确信ShareServeri的部分签名S2i是正确的否则S2i是不正确的。方法如下1ShareServeri+1任意选取a,b∈R1,N,计算出并将R发送给ShareServeri2ShareServeri收到R后,计算出并将发送给ShareServeri+13ShareServeri+1收到后,根据下式是否成立来判断S2i是否为ShareServeri之部分签名下面我们来说明协议的安全性,假设N为两个安全素数p,q之积。若非诚实验证者P不能攻破RSA系统,则上述验证RSA部分签名的交互式协议满足以下性质1完备性若P,ShareServeri都是诚实的,则ShareServeri总是接受P的证明。2合理性非诚实证明者P使ShareServeri接受不正确部分签名的成功率是可忽略的。3零知识性非诚实验证者除了能知道部分签名是正确外,不能获得其他任何信息。因此由这样的交互式协议验证为正确的部分签名基本可以认为是正确的。3.4签名的生成与验证若已有t个部分签名通过正确性验证,则由Combiner组合服务器可以计算出共享服务器对消息m的门限RSA签名S。1Combiner将xii1,2,,t看作整数环Z上的元素,在整数环Z上计算。2各共享服务器的门限签名S2的计算公式如下最后系统的签名为。3接着Combiner利用公开密钥e,按下式来验证门限签名m,S的正确性,若成立则接受S为m的合法签名。3.5签名算法这里给出了门限签名方案的实现算法,其中需要运用java.io.java.security.java.math.javax.crypto.javax.crypto.spec.java.security.spec.java.security.interfaces.java.util.javax.crypto.interfaces.等系统提供的类和方法。1RSA签名私钥生成算法publicclassRSA{KeyPairGeneratorkpgKeyPairGenerator.getInstanceRSAkpg.initialize1024KeyPairkpkpg.genKeyPairPublicKeypbkeykp.getPublicPrivateKeyprkeykp.getPrivate//保存RSA公钥FileOutputStreamf1newFileOutputStreamskey_RSA_pub.datObjectOutputStreamb1newObjectOutputStreamf1b1.writeObjectpbkey//保存RSA私钥FileOutputStreamf2newFileOutputStreamskey_RSA_priv.datObjectOutputStreamb2newObjectOutputStreamf2b2.writeObjectprkey}2子密钥生成算法publicclassshareRSA{//读取私钥d及RSA参数FileInputStreamfnewFileInputStreamskey_RSA_priv.datObjectInputStreambnewObjectInputStreamfRSAPrivateKeyprkRSAPrivateKeyb.readObjectBigIntegerdprk.getPrivateExponentBigIntegernprk.getModulusbytexnewbyte16Randomd1newRandomd1.nextBytesxBigIntegercnewBigIntegerxBigIntegermc.modnBigIntegerd2d.subtractm//保存秘密密钥d1FileOutputStreamf1newFileOutputStreampartkey1_RSA.datObjectOutputStreamb1newObjectOutputStreamf1b1.writeObjectd1//保存秘密密钥d2FileOutputStreamf2newFileOutputStreampartkey2_RSA.datObjectOutputStreamb2newObjectOutputStreamf2b2.writeObjectd2}然后根据实际选择的t和n值进行多项式的选择,以d2作为多项式的a0,计算n个子密钥分发给共享服务器。3各共享服务器用子密钥进行数字签名算法publicclasssignature{//获取要签名的数据存放在data数组FileInputStreamfnewFileInputStreammsg.datintnumf.availablebytedatanewbytenumf.readdata//获取私钥FileInputStreamf1newFileInputStreampartkey2i_RSA_priv.datObjectInputStreambnewObjectInputStreamf1RSAPrivateKeyprkRSAPrivateKeyb.readObject//数字签名SignaturesigSignature.getInstanceMD5WithRSA

注意事项

本文(通信学论文-安全增强的基于RSA可验证门限签名方案.doc)为本站会员(zhaozilong)主动上传,人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知人人文库网(发送邮件至[email protected]或直接QQ联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。

[email protected] 2015-2017 人人文库网网站版权所有
苏ICP备12009002号-5