基于256进制大数的RSA加密方法技术

技术编号:9848175 阅读:102 留言:0更新日期:2014-04-02 15:57
基于256进制大数的RSA加密方法,包括产生公私密钥对过程、加密过程和解密过程。本发明专利技术加密方法可以对任意位大的数进行快速高效运算,打破了内置类型的限制,并充分高效利用资源,从底层对欧几里得算法、素性检测算法等高效算法再一次优化,提高了运算效率。本发明专利技术利用查表法,不仅提高了运算效率,而且解决了对于所有文件格式的加密解密问题,实现了加解密的通用性。

【技术实现步骤摘要】
基于256进制大数的RSA加密方法
本专利技术属于加密方法
,涉及一种基于256进制大数的RSA加密方法。
技术介绍
随着云时代的来临,大数据(Big data)也吸引了越来越多的关注。著云台的分析师团队认为,大数据(Big data)通常用来形容一个公司创造的大量非结构化和半结构化数据,这些数据在下载到关系型数据库用于分析时会花费过多时间和金钱。大数据分析常和云计算联系到一起,因为实时的大型数据集分析需要像MapReduce —样的框架来向数十、数百或甚至数千的电脑分配工作。对于大数据时代有数据量大、类型繁多、价值密度低以及速度快时效高等特征。在这个背景下,很多应用都将会建立在大数据处理的基础之上。由于很多仅仅对内置类型的处理已经无法满足当前的需求,所以大数据处理的迫切性不言而喻。RSA公钥加密算法是一个既能用于数据加密也能用于数字签名的算法。它易于理解和操作,也十分流行。RSA公钥加密算法以【专利技术者】的姓氏首字母命名:Ron Rivest1AdiShamir和Leonard Adleman。虽然自1978年提出以来,RSA的安全性一直未能得到理论上的证明,但它经历了各种攻击。随着越来越多的商业应用和标准化工作,RSA已经成为最具代表性的公钥加密技术。VISA、MasterCard、IBM、Microsoft等公司协力制定的安全电子交易标准(Secure Electronic Transactions, SET)就采用了标准RSA算法,这使得RSA在我们的生活中几乎无处不在。网上交易加密连接、网上银行身份验证、各种信用卡使用的数字证书、智能移动电话和存储卡的验证功能芯片等,大多数使用RSA技术。但是,现有的RSA公钥加密算法存在不足之处在于算法的实现依赖于计算机的速度和容量,效率比较低。由于RSA算法进行的都是大数计算,使得RSA最快的情况也比DES慢上好几倍,这也是RSA的最大缺陷,因此它仅能处理加密少量的数据。
技术实现思路
本专利技术的目的在于提供一种基于256进制大数的RSA加密方法,解决现有技术存在的底层数据运算速度慢的问题。本专利技术的技术方案是,基于256进制大数的RSA加密方法,包括产生公私密钥对过程、加密过程和解密过程。本专利技术的特点还在于:包括大素数P、大素数q以及产生公私密钥对涉及的三个参数n、el、e2 ;其中,η是两个大素数P、q的积,el和e2是一对相关的值,el可以任意取,但要求el与(p_l)*(q_l)互质;再选择 e2,满足(e2*el) mod((p_l) *(q_l)) =1 ;具体算法如下:(I)产生随即大素数P以及大素数q:利用拉宾米勒素性检测算法,即先随机产生指定位数的大数M,然后利用多个随机数r对产生的大数M进行素性检测,能够通过则可以认为是素数;这样可以得到欧拉η以及大数η ;其计算过程为:n=p*q;欧拉n= (p_l)* (q-1);(2)通过欧拉η寻找公钥、密钥:通过欧几里得算法,遍历素数表,经过gcd递归调算法,查找到与欧拉η互质的数el作为公钥,同时计算出密钥e2,使得它们满足关系(el*e2)mod oln=l ;则公钥对为(n,el),私钥对为(n,e2);计算私钥(e2),产生公钥对(n,el),私钥对(n,e2);设A为明文,B为密文,则加密:A=B~e2mod η ;解密:B=A~elmod η ;(3)通过公钥对对文件内容进行加密:加密过程为,从文件中逐个读出待加密明文,约定每次读出一个字节进行加密,加密后的密文是一个大数,利用结构体对其进行存储,包括数组的最大长度、当前位数等信息,然后写入密文文件。(4)通过密钥对对文件内容进行解密:解密过程为,从密文文件中逐个读出待解密密文,每次读出一个结构体类型的数据进行分解,包括大数数组、当前数据位数以及最大数据位数,然后利用解密算法对每个大数进行运算得到明文并写入明文文件,完成解密。本专利技术具有如下有益效果:1、本专利技术加密方法可以对任意位大的数进行快速高效运算,打破了内置类型的限制,并充分高效利用资源,从底层对欧几里得算法、素性检测算法等高效算法再一次优化,提闻了运算效率。2、本专利技术利用查表法,不仅提高了运算效率,而且解决了对于所有文件格式的加密解密问题,实现了加解密的通用性。【附图说明】图1为本专利技术基于256进制大数的RSA加密方法实施例实录图。【具体实施方式】下面结合附图和【具体实施方式】对本专利技术作详细说明。本专利技术基于256进制大数的RSA加密方法,包括产生公私密钥对过程、加密过程和解密过程。对底层数据的处理依赖于应对256进制实现一套高效的加、减、乘、除以及取模基本运算,其实现原理为:加减采用基本进位借位运算原理,对于乘法采用移位相乘,将其中一个乘数与0-255相乘的结果存储于一个256的大数数组中,然后让另一个乘数的每一位进行查表移位相加得到所需结果。对于除法采用竖式相除的规则,同时记录余数,实现除法与取模的同时运算,减小计算量。本专利技术算法包含以下参数:大素数P、大素数q以及产生公私密钥对涉及的三个参数n、el、e2 ;其中,η是两个大素数p、q的积,el和e2是一对相关的值,el可以任意取,但要求 el 与(p-1) *(q_l)互质;再选择 e2,满足(e2*el) mod((p_l) *(q_l)) =1。具体算法如下:(I)产生随即大素数P以及大素数q:利用拉宾米勒素性检测算法,即先随机产生指定位数的大数M,然后利用多个随机数r对产生的大数M进行素性检测,能够通过则在一定的程度上可以认为是素数;此外,优化是对产生的随即大素数先进性预处理,即控制低位或者高位使其首先是一个奇数,此外利用小素数先行进行测试,提高效率。这样可以得到欧拉η以及大数η:其计算过程为:n=p*q;欧拉n= (p-1) * (q-1);(2)通过欧拉η寻找公钥、密钥:通过欧几里得算法,遍历素数表,经过gcd递归调算法,查找到与欧拉η互质的数el作为公钥,同时计算出密钥e2,使得它们满足关系(el*e2)mod oln=l ;则公钥对为(n, el),私钥对为(n, e2);计算私钥(e2),产生公钥对(n,el),私钥对(n,e2);使用方式为:设A为明文,B为密文,则加密:A=B~e2mod η ;解密:B=A~elmod η ;(3)通过公钥对对文件内容进行加密:加密过程为,从文件中逐个读出待加密明文,约定每次读出一个字节进行加密,加密后的密文是一个大数,利用结构体对其进行存储,包括数组的最大长度、当前位数等信息,然后写入密文文件。(4)通过密钥对对文件内容进行解密:解密过程为,从密文文件中逐个读出待解密密文,每次读出一个结构体类型的数据进行分解,包括大数数组、当前数据位数以及最大数据位数,然后利用解密算法对每个大数进行运算得到明文并写入明文文件,完成解密。本专利技术对现有技术进行了以下四点优化:1.在空间存储上采用256进制:当前的加密体系中多采用1024比特位以上的大数η来满足算法的安全性级别,这个密钥长度已经超过了计算机内内置类型的存储范围,对于常规做法,使用线性字符数组的形式进行大数的存储,经过分析得出对于一个unsigned char类型占一个字节(x8632位cpu),本发本文档来自技高网
...

【技术保护点】
基于256进制大数的RSA加密方法,其特征在于:包括产生公私密钥对过程、加密过程和解密过程。

【技术特征摘要】
1.基于256进制大数的RSA加密方法,其特征在于:包括产生公私密钥对过程、加密过程和解密过程。2.如权利要求1所述的基于256进制大数的RSA加密方法,其特征在于:包括大素数P、大素数q以及产生公私密钥对涉及的三个参数n、el、e2 ;其中,η是两个大素数P、q的积,el和e2是一对相关的值,el可以任意取,但要求el与(p_l) * (q_l)互质;再选择e2,满足(e2*el) mod((p-l) *(q_l)) =1 ; 具体算法如下: (1)产生随即大素数P以及大素数q: 利用拉宾米勒素性检测算法,即先随机产生指定位数的大数M,然后利用多个随机数r对产生的大数M进行素性检测,能够通过则可以认为是素数,得到欧拉η以及大数η ; 其计算过程为:n=p*q;欧拉n= (p_l)* (q_l); (2)通过欧拉η寻找公钥、密钥: 通过欧几里得算法,遍历素数表,经过...

【专利技术属性】
技术研发人员:申潇潇李艳强
申请(专利权)人:西安理工大学
类型:发明
国别省市:陕西;61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1