基于RSA的多重签密方案_
- 格式:pdf
- 大小:233.82 KB
- 文档页数:4
安全学实验报告—RSA加密解密的简单实现华南师范大学赵教授RSA介绍:目前最有名、应用最宽泛的公钥系统RSA是在1978年,由美国麻省理工学院(MIT)的Rivest、Shamir和Adleman在题为《获取数字署名和公然钥密码系统的方法》的论文中提出的。
RSA算法是第一个既能用于数据加密也能用于数字署名的算法,所以它为公用网络上信息的加密和鉴识供给了一种基本的方法。
它往常是先生成一对RSA密钥,此中之一是保密密钥,由用户保留;另一个为公然密钥,可对外公然,甚至可在网络服务器中注册,人们用公钥加密文件发送给个人,个人就能够用私钥解密接受。
为提升保密强度,RSA密钥起码为500位长,一般介绍使用102 4位。
公钥加密算法中使用最广的是RSA。
RSA算法研制的最先理念与目标是努力使互联网安全靠谱,旨在解决DES算法奥密密钥的利用公然信道传输散发的难题。
而实质结果不只很好地解决了这个难题;还可利用RSA来达成对电文的数字署名以抗对电文的否定与狡辩;同时还能够利用数字署名较简单地发现攻击者对电文的非法窜改,以保护数据信息的完好性。
此外,RSA加密系统还可应用于智能IC卡和网络安全产品。
一.系统整体方案:1.要求:编写RSA加密解密演示程序,用户自己输入两个素数P,Q以及公钥E,程序判断P,Q为素数后计算获取公钥( e,n),私钥(d,n)并显示。
输入明文密文并能够进行加密解密。
2.数学原理:1.密钥的生成选择p,q为两个大的互异素数计算n=p*q, ψ(n)=(p-1)(q-1)选择整数e使gcd(ψ(n),e)=1(互质),(1<e<ψ(n))计算d,使d=e?-1(modψ(n))(求乘法逆元)1公钥Pk={e,n}; 私钥Sk={d,n}。
(定义若a?xmodn=1, 则称a与x关于模n互为逆元)2.加密(用e,n) 明文M<n 由C=M?e(modn) 获取密文C。
3.解密(用d,n) 关于密文 C 由M=C?d(modn)获取明文M。
两个基于RSA的特殊数字签名方案作者:蒋俊锋来源:《电脑知识与技术》2008年第35期摘要:介绍了数字签名背景、签名体制的形式化描述以及两个特殊的数字签名方案。
对如何用RSA实现盲签名和多重数字签名方案进行了研究,分析了两种具体方案实现的安全性。
最后总结了这两种特殊数字签名实现过程中算法设计的优劣。
关键词:数字签名;RSA;盲签名;多重签名中图分类号:TP316文献标识码:A文章编号:1009-3044(2008)35-2095-02Two RSA-based Special Digital Signature SchemesJIANG 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;multisignature1 引言1.1 背景签名一直被作为一种证明签名者身份的标识,它表明签名人看过乃至同意文件的内容。
基于RSA算法的动态双身份认证的设计与实现曹锦梅(新疆医科大学高等职业技术学院,新疆830000)摘要:针对网络通信中相互身份认证困难的问题,提出一种基于RSA算法的动态双身份认证方案,比其他基于公钥体制的身份认证方案相比,具有安全性更高、方便简洁、认证时间少等优点,并通过VC++实现了基于该方案的系统。
关键词:密码体制;RSA算法;身份认证;公钥1、RSA加密算法及身份认证目前网络通信主要提供五种安全服务,即身份认证服务、访问控制服务、机密性服务、完整性服务和抗否认性服务。
其中,身份认证作为安全应用系统的第一道防线,是最重要的安全服务,所有其它的安全服务都依赖于该服务,它的失败可能导致整个系统的失败。
网络应用系统中通信双方的身份认证问题,传统的做法是采用用户名加口令来验证登录用户的身份,但是由于口令在使用过程中很容易被窃取、暴力攻击和猜测,存在较大的安全隐患;另外这种认证方式只能完成单方面的身份认证,即只能解决服务器验证客户端身份的问题,无法解决客户端验证服务器身份的问题,因此不能完全满足互联网业务应用的需要。
公钥加密算法的安全性主要是基于复杂的数学难题。
目前比较流行的主要有两类[2]:一类是基于大整数因子分解系统,以RSA为典型代表,它是目前被研究和应用得最为广泛的公钥算法,经过长年的攻击考验,该算法已被普遍认为是目前最优秀的公钥方案之一。
2、RSA工作原理[1]如下:(1)任意选取两个不同的大质数p和q,计算乘积r=p*q;(2)任意选取一个大整数e,e与(p-1)*(q-1)互质,整数e用做加密密钥。
注意e的选取是很容易的,例如所有大于p和q的质数都可用.;(3)确定解密密钥d,由d*e=1 mod((p-1)*(q-1)),根据e,p和q可以容易地计算出d;(4)公开整数r和e,但是不公开d;(5)将明文P(假设P是一个小于r的整数)加密为密文C,计算方法为C=Pe mod r;(6)将密文C解密为明文P,计算方法为P=cd mod r;然而,只根据r和e(不是p和q)要计算出d是不可能的,因此,任何人都可对明文进行加密,但只有授权用户(知道d)才可对密文解密。
安全技术810引言随着互联网的发展,大众越来越依赖于互联网进行日常交流。
互联网在方便了日常交流的同时,也暴露出信息安全、隐私泄露等问题。
黑客的入侵、运营商的监守自盗时刻在威胁着信息与个人隐私。
本文基于RSA 与DES 算法设计一种多重加密算法,从传输过程与存储上杜绝信息的泄露。
1 RSA与DES算法1.1RSA 算法RSA 算法是一种非对称加密算法,是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的绝大多数密码攻击。
RSA 算法涉及三个参数,n、e、d。
其具体描述如下(1)选取p、q两个大素数,计算n=pq;(2)Φ(n)=pq-(p+q)+1;(3)随机选取正整数e,1<e<Φ(n),并满足gcd(e,Φ(n)=pq-(p+q)+1)=1,e 就是公开的密钥,简称公钥。
(4)计算d,满足de ≡1(modΦ(n)),d 就是私有的密钥,简称私钥。
(5)加密变化:对明文m ∈Zn(Zn 为明文空间),密文为c=me mod n ;(6)解密变换:对密文c ∈Zn,明文为m=cd mod n。
(n,e),(n,d)称为密钥对,加密变换与解密变化互为逆转换。
1.2DES 算法DES 算法是一种对称加密算法,其入口参数有三个:key、Data、Mode。
其中Key 为7个字节共56位,是DES 算法的工作密钥;Data 为8个字节64位,是要被加密或被解密的数据;Mode 为DES 的工作方式,有两种:加密或解密。
算法步骤如下:1)初始置换其功能是把输入的64位数据块按位重新组合,并把输出分为L0、R0两部分,每部分各长32位,其置换规则为将输入的第58位换到第一位,第50位换到第2位......依此类推,最后一位是原来的第7位。
L0、R0则是换位输出后的两部分,L0是输出的左32位,R0是右32位,例:设置换前的输入值为D1D2D3......D64,则经过初始置换后的结果为:L0=D58D50......D8;R0=D57D49 (7)其置换规则见下表:58,50,42,34,26,18,10,2,60,52,44,36,28,20,12,4,62,54,46,38,30,22,14,6,64,56,48,40,32,24,16,8,57,49,41,33,25,17,9,1,59,51,43,35,27,19,11,3,61,53,45,37,29,21,13,5,63,55,47,39,31,23,15,7,2)逆置换经过16次迭代运算后,得到L16、R16,将此作为输入,进行逆置换,逆置换正好是初始置换的逆运算,由此即得到密文输出。
rsa公钥加密解密算法过程嘿,咱今儿来聊聊 RSA 公钥加密解密算法过程哈!这玩意儿就像是给咱信息上了一把超级牢固的锁。
你想啊,咱平时发个重要消息,那可得小心谨慎,不能让别人随便偷看了去呀。
RSA 公钥加密就像是给咱的消息穿上了一层厚厚的铠甲。
它的过程呢,其实挺有意思。
首先得有两个大质数,这俩质数就像是守护秘密的卫士。
然后通过一系列神奇的运算,就得到了公钥和私钥。
公钥呢,就可以大大方方地给别人,让他们用这个来加密信息发给咱。
这就好比你有一把钥匙可以把宝贝锁进箱子里,但这把钥匙你可以给别人,让他们帮忙锁东西。
而私钥呢,就只有咱自己知道,就像那开启宝贝箱子的唯一钥匙。
等别人用公钥加密了信息发给咱后,咱就用私钥来解密。
哇塞,信息就像变魔术一样又出现啦!这是不是很神奇?你说这像不像一个神秘的密码世界?别人看着是一堆乱码,只有咱拿着私钥才能解开这个谜团。
RSA 公钥加密解密算法过程,就像是在信息的海洋里搭建了一座坚固的城堡。
别人很难攻进来,而咱在里面可以安心地守护着自己的秘密。
它在很多地方都大显身手呢!比如在网络安全领域,保护着我们的各种重要数据。
没有它,那我们的信息不就像在大街上裸奔一样危险啦?想想看,如果没有这种加密算法,那我们的银行账户信息、个人隐私啥的不都随便让人看啦?那多可怕呀!所以说呀,RSA 公钥加密解密算法过程可真是个了不起的发明。
它让我们在这个信息爆炸的时代,能有一片属于自己的安全小天地。
咱可得好好感谢那些发明这个算法的聪明人,是他们让我们的信息有了保障。
让我们能放心地在网络世界里遨游,不用担心自己的秘密被别人窥探。
反正我是觉得这 RSA 公钥加密解密算法过程超厉害的,你难道不这么认为吗?。
RSA(Rivest-Shamir-Adleman)是一种非对称加密算法,用于加密和签名数据。
RSA 算法涉及两个密钥:公钥和私钥。
以下是RSA的用法示例:1. 加密和解密:- 加密:使用接收者的公钥对数据进行加密,确保只有拥有相应私钥的接收者才能解密它。
- 解密:接收者使用其私钥来解密接收到的加密数据。
示例(使用Java的Bouncy Castle库):```javaimport org.bouncycastle.jce.provider.BouncyCastleProvider;import java.security.KeyPair;import java.security.KeyPairGenerator;import java.security.Security;import java.security.PrivateKey;import java.security.PublicKey;import javax.crypto.Cipher;Security.addProvider(new BouncyCastleProvider());KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");keyPairGenerator.initialize(2048); // RSA密钥长度KeyPair keyPair = keyPairGenerator.generateKeyPair();PublicKey publicKey = keyPair.getPublic();PrivateKey privateKey = keyPair.getPrivate();Cipher cipher = Cipher.getInstance("RSA");cipher.init(Cipher.ENCRYPT_MODE, publicKey);byte[] encryptedData = cipher.doFinal("Hello, RSA!".getBytes());cipher.init(Cipher.DECRYPT_MODE, privateKey);byte[] decryptedData = cipher.doFinal(encryptedData);```2. 数字签名:- 数字签名用于验证数据的完整性和身份认证,发送者使用私钥对数据进行签名,接收者使用发送者的公钥验证签名。
收稿日期:2007-04-28;修回日期:2007-07-18 基金项目:国防科技重点实验室基金资助项目(51436050404QT 2202)作者简介:赖欣(1977-),女,四川德阳人,博士研究生,主要研究方向为密码学、信息安全(lxr zg@);何大可(1944-),男,重庆人,教授,博导,主要研究方向为密码学、信息安全.基于RSA 的多重签密方案*赖 欣,何大可(西南交通大学信息安全与国家网格计算实验室,成都610031)摘 要:指出原有多重签密方案存在的缺陷,并提出一种新的基于RSA 的多重签密方案。
本方案以RS A 密码体制为基础,借鉴了原有多重签密方案的结构特点。
改善了原有多重签密方案的缺陷,在安全性上实现了消息保密性、不可伪造性、不可否认等特性,同时考虑了原始消息的安全发送问题。
在同等安全下,本方案比传统的先签名再加密方式,在执行效率和执行灵活性方面具有更多优势。
基于RSA 密码体制的广泛应用,方案简洁且易于建立,适合在电子政务和电子商务环境下为消息的安全传递提供认证加密保护。
关键词:签密;多重签密;RSA;承诺方案;保密性;不可伪造性;不可否认中图分类号:TN 918.2 文献标志码: A 文章编号:1001-3695(2008)06-1836-03Mu lt i-signcr ypt ion sch em e based on RS ALAI Xin,HE Da-ke(Infor mation Security &National C omputing Gr id L abor ator y,South w es t Jiaotong Univers ity,Chengdu 610031,China)Abst ract :This pa per point ed out t he w ea knes ses of t he prev ious m ult i-signcry pt ion schem es.And then present ed a new m ult i-s ig ncryption schem e.T he new s chem e w as bas ed on t he RS A and used t he previous schem es'struct ural feat ure for reference.The m odel cons idered t he securit y of orig inal m es sag e t ransm itt ing and im proved t he weaknes ses of previous s chem es.The new s chem e prov ided m es sag e confident ialit y,unforg ea bilit y,non-repudiat ion s ervices.At the sa m e securit y lev el t he new s chem e w as m ore efficient and flexible tha n t radit iona l "sig nat ure t hen encry pt ion"approa ch.Due to the w idely use of RS A,the new s chem e w as sim ple a nd could be s et up ea sily.It ’s fit to prov ide useful cry ptographic protect ion for m ess ag e circula tion in E-com m erce and E-g ov ernm ent env ironm ent.Key words :s ig ncryption;m ulti-s ig ncryption;RS A;com m it m ent schem e;confident ia lity ;unforg ea bility ;non-repudiat ion 多重签密是多用户环境下对签密技术的一种扩展。
相比多重签名技术,多重签密能在实现消息完整性保护的同时提供对消息的机密性保护。
多重签密在电子政务和电子商务方面具有现实意义。
比如在电子政务中,某公文在公开发布之前需要多个部门进行审批或修订。
这一过程中需要对公务进行保密传递,并确保在审批过程中各部门对公文的授权修改。
一个安全灵活的多重签密方案应该满足消息保密、消息不可伪造、消息不可否认等安全特性,同时还要求方案执行效率高、执行顺序灵活、易于构建。
1 相关工作多重签密在文献[1]中由Mit om i 等人首先提出,Mitom i 方案是在多重签名的基础上附加了加密功能。
遗憾的是该方案中任何人都可以恢复验证参数从而进行密文解密,因此方案完全不具备保密特性;Pang 等人在文献[2]中提出了对Mit om i 方案的修改方案,但方案限定只能由最初的消息发送者作为最后的接收验证者,且签密执行顺序必须事先固定,因此该方案缺乏灵活性。
S eung 等人在文献[3]中提出新的多重签密方案。
该方案能提供消息机密性和完整性保护,且签密执行顺序灵活。
但该方案与Pang 方案一样,限定只能由消息的原始发送者进行最后的验证。
张键红等人在文献[4]中提出了一个多重签密模型,该模型实现了消息机密性完整性保护,执行顺序灵活,且对最终的验证者没有限制。
但该方案中,最终的多重签密密文长度会随着签密人数的增多而增大,降低了通信过程中的传输效率。
值得注意的是,以上多重签密方案都是基于最初的Zheng 签密[5]。
因此这些方案不可避免地继承了Zheng 签密在不可否认性上存在的不足,即进行不可否认验证必须公开接收方的私钥,而公开用户的私钥在实际的应用中是不可取的。
由于在实际应用中对认证加密的需求,最近许多新的签密体制被陆续提出[6~8]。
其中一类基于陷门置换的签密体制借鉴了构造可证明安全的公钥加密体制填充技术,使得明文在经过随机填充后,可以通过任意的陷门置换同时进行加密和签名。
这类签密体制在安全性、实现的灵活性和兼容性方面都具有显著的优势。
Dodis 等人[8]提出的填充并行签密是这类签密技术的佼佼者。
首先,在内部安全模式下(insider security m odel),该签密体制能达到选择密文攻击下加密的语义安全性(IND-C CA2)、选择消息攻击下签名的强不可伪造性(sU F-CMA )以及消息不可否认性(non-repudia tion);其次,由于允许加密和签名的并行处理,该签密体制比传统的利用陷门置换先签名再加密的方式减少了近一半的计算时间开销。
RS A 是目前使用最为广泛的一种陷门置换函数,已成为众多实际安全协议、安全标准的核心算法,它既可以用于消息第25卷第6期2008年6月计算机应用研究Applicat ion Research of Com puters Vol.25,No.6J un.2008加密也可以用于消息签名。
本文根据填充并行签密提出一种新的RS A的多重签密方案,并对该方案进行了分析。
新的多重签密方案改善了原有多重签密方案的缺陷,在安全性上实现了消息保密性、不可伪造性、不可否认性等特性。
同时,本方案能向后兼容PKCS#1公钥密码基础结构,支持发送方和接收方不同的RS A密钥长度,且在执行顺序上更具有灵活性。
本方案适合在电子政务和电子商务环境下为消息的安全传递提供认证加密保护。
2 基于RSA的多重签密方案根据对现有签密方案结构的分析,基于RS A密码体制,给出一种新的多重签密方案。
该方案分为以下几个执行阶段。
1)系统建立设(u,v)←C om m it(m)是一个消息可恢复的承诺方案,若(u,v)是m的有效承诺和公开承诺对,那么对应的消息恢复算法可以恢复消息m←Open(u,v);否则⊥←Open(u,v);(E,D)是对称加密和解密函数;H是一个碰撞免疫的强密码ha sh函数。
设RS A(e,n)(x)为RS A加密/签名验证算法描述。
其中,(e,n)是用户的RS A公钥,即RS A(e,n)(x){y=x e m od n}设RS A(e,n)(x)为RS A解密/签名算法描述。
其中,d是用户的RS A私钥,即RAS(d,n)-1(x){y=x d m od n}公开〈(Commit,open),(E,D),H,(RSA,RSA-1)〉2)用户密钥建立和管理每个系统用户Ui通过执行RS A密钥生成算法:首先,选取两个大素数pi 和qi,计算n i=p i q i和n i的欧拉函数(ni)=(p i-1)(q i-1);随机选取与(n i)互素的整数e i,1<e i<(n i),满足g cd(e i,(n i))=1;根据欧几里得算法计算民主一的整数di (1<di<(ni)),使得eidi≡1m od(ni )。
秘密销毁pi、qi、(ni),公布公钥(ei,ni)用于加密和签名验证,保存di作为私钥用于解密和数字签名。
基于PKC S#1公钥密码基础结构,设定系统存在一个可信第三方C A,CA执行RS A密钥生成算法,生成公钥(eCA,n CA)向全体用户广播,私钥dCA自己保留。
每个合法用户需要将自己的公钥(ei,n i)、身份ID i以及签名消息RS A(d i,n i)-1((ni,e i)‖ID i)发送给CA。
C A利用用户公钥验证合法后,为用户产生并发放公钥证书C erti={RS A(dCA,n C A)-1((ni,e i)‖ID i),(n i,e i)‖ID i,Ex i},为用户公钥数据的真实性进行证实。
其中,Exi为证书有效时限、证书号等其他信息。
3)原始消息的安全发放和恢复用户Us作为原始消息的拥有者,需要安全地将原始消息M0发送给多个签密的用户并指定最终的密文接收者。
假定需要对消息进行修订并签密的用户为{U1,…,U n},他们构造一个签密用户子群。
由发送者Us 指定最终的接收者为Ur。
Us首先从CA处获得签密用户{U1,…,Un}的公钥证书,随后选择一个随机数K←{0,1}k,并进行如下计算:C0←E K(M0‖M r);£0←C0‖ID0‖ID i;(u0,v)←Commit(K);w←u;s←H(£,u)v;a0←RSA(ei,n i)(w0);β0←RSA(ds,n s)-1(s0)Us 将(ID,C,a,β)发送给用户Ui。
Ui接收签密密文后,进行如下计算,验证密文并恢复原始消息:£←C‖ID‖IDi;s←RS A(e s,N s)(β);w←RSA(d i,n i)-1(a);u0←w0;v0←H(£0,c0)s0;K0←Open(u0,v0);如果K=⊥那么拒绝进行对消息进行修订;否则计算得到M0‖IDr←KK0(C0)恢复原始消息M0,并获知最终的接收者ID r。