一种基于混沌算法的n重rsa加密算法的数字版权保护方法

文档序号:7886581阅读:167来源:国知局
专利名称:一种基于混沌算法的n重rsa加密算法的数字版权保护方法
技术领域
本发明属于信息安全技术,涉及一种基于混沌算法的N重RSA加密算法的数字版权保护方法。
背景技术
数字版权保护技术(Digital Rights Management,即DRM)就是以一定的计算方法,实现对数字内容的保护,其具体的应用可以包括eBook、视频、音频、图片、安全文档等数字内容的保护。数字版权保护方法主要有两类,一类是采用数字水印技术,另一类是以数据加密和防拷贝为核心的DRM技术。数字水印(Digital Watermark)技术是在数字内容中嵌入隐蔽的标记,这种标记通常是不可见的,只有通过专用的检测工具才能提取。数字水印可以用于图片、音乐和电影的版权保护,在基本不损害原作品质量的情况下,把著作权相关的信息隐藏在图片、音乐或电影中,而产生的变化通过人的视觉或听觉是发现不了的。但是,目前市场上的数字水印产品在应用方面还不成熟,容易被破坏或破解,而且数字水印方法,只能在发现盗版后用于取证或追踪,不能在事前防止盗版。数据加密和防拷贝为核心的DRM技术是把数字内容进行加密,只有授权用户才能得到解密的密钥,而且密钥是与用户的硬件信息绑定的。加密技术加上硬件绑定技术,防止了非法拷贝,这种技术能有效地达到版权保护的目的,当前国内外大部分计算机公司和研究机构的DRM技术采用这种方法。混沌是存在于非线性系统中的一种较为普遍的现象,混沌并不是一片混乱,而是有着精致内在结构的一类现象。混沌运动具有遍历性、规律性等特点。因此,如果利用混沌变量进行优化搜索,无疑会比随机搜索更具有优先性。RSA加密算法是一种非对称加密算法。在公钥加密标准和电子商业中RSA被广泛使用。RSA算法是第一个能同时用于加密和数字签名的算法,是被研究得最广泛的公钥算法,从提出到现在已近二十年,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。RSA加密算法的安全性依赖于大数的因子分解,但并没有从理论上证明破译RSA的难度与大数分解难度等价。即RSA的重大缺陷是无法从理论上把握它的保密性能如何,而且密码学界多数人士倾向于因子分解不是NPC问题。RSA的缺点主要有1)产生密钥很麻烦,受到素数产生技术的限制,因而难以做到一次一密。2)分组长度太大,为保证安全性,η至少也要600bits以上,使运算代价很高,尤其是速度较慢,较对称密码算法慢几个数量级;且随着大数分解技术的发展,这个长度还在增加,不利于数据格式的标准化。目前,SET (Secure Electronic Transaction)协议中要求CA采用2048bits长的密钥,其他实体使用10M比特的密钥。3)RSA密钥长度随着保密级别提高,增加很快。

发明内容
本发明的主要目的在于提供一种基于混沌算法的N重RSA加密算法的数字版权保护方法,安全性和可靠性较高,运行速度快,具较好的稳定性和开放性。本发明一种基于混沌算法的N重RSA加密算法的数字版权保护方法,包括私钥生成、数据加密和数据解密3个步骤步骤1、生成私钥参数,并以此产生公、私钥对,作为加密解密用;步骤11、先用混沌算法随机生成最低位为奇数的随机数,然后,对生成的随机数进行合数判断测试,当经过预设次数的合数判断测试仍未通过时,则该随机数视为素数;如此,通过上述方法随机生成三个素数P,q和r ;步骤12、利用步骤11通过混沌算法随机生成三个素数p,q,r,计算N = p*q*r ;步骤13、计算 N = (p-1) (q-1) (r_l);步骤14、随机选取整数e,该整数e满足Mod (e,N) = 1 ;步骤15、利用欧几里得算法计算d,满足e*d ^ 1 MOD N ;步骤16、公开N,整数e作为E,记为公钥E = <N,e>,保密p,q,r,d,N作为D,记为私钥 D = <p, q, r, d,N> ;步骤2、读取待加密文件的数字内容,利用步骤1中获得的公钥E对待加密文件的数字内容进行RSA加密,其中,加密时的加密算法为c = E(m) =me(M0D N),保存经加密的数字内容的同时附加私钥文件和每一次取出密文的长度,以便解密时使用;步骤3、在解密过程中,解密模块通过读取私钥文件获取私钥,对已加密的数字内容进行解密;其中,解密时用的解密算法为m = D(c) = cd(MOD N)。所述的步骤11中随机生成3个素数的算法如下(1)选择用于载波的混沌变量选用公式χη+1= μ I(I-Xn),其中 μ = 4,0 彡 彡 1,η = 0,1,2,;首先,用系统随机函数产生一个随机值C,设定& = c ;然后通过公式χη+1 = μ Xn(I-Xn)分别进行M次的循环计算,得到M个混沌变量,该循环次数M等于要生成的素数的二进制的位数,通过M次循环后,可以得到一组混沌变量
X1J X2J Χβ …? ^M ‘(2)将步骤(1)中产生的所有混沌变量的变化范围,通过公式m_ValUe[i]= Ci+diXi,i =0,1,2,3,...,M-1分别放大到相应的优化变量(Ci5CiH)取值范围中,其中Ci, Cli为常数,Ci为步骤(1)中用系统随机函数产生随机值,Ci = Xi - 550,Cli为小素数表中随机选取的值,值为prime [cj.从而,可以得到一个随机数p,总共M位,其中,随机数ρ的大小可以表示为ρ = m_value
+m_value[l] · 0x10000000+m_value[2] · (0x10000000)2++ …+m_value[M_l] · (0x10000000广1(3)用Miller-Rabin算法进行合数判断测试,当经过预设次数的合数判断测试仍未通过时,则由步骤O)生成的随机数视为素数,进入步骤G),若测试失败,则生成的随机数不是素数,返回步骤O),继续生成素数的算法,重新生成素数;
所述的Miller-Rabin算法,令n-1 = 2 ,其中t是非负整数,m是正奇数,若 bmEl(mod d)或者炉、Ξ -1 (mod d),0 彡 j 彡 t_l,则称 η 通过以 b 为基的 Rabin-Miller 测试,具体步骤如下A、假定待测试的素数为p,计算b,b是2整除p-1的次数,即,沪是能整除p-1的 2的最大幂数,然后计算m,使得η = l+2bm ;B、选择一个小于ρ的随机数a,即1彡a彡p-1 ;C、设 j = 0 且 ζ = am mod ρ ;D、如果ζ = 1或者ζ = p-1,那么ρ通过测试,可能是素数;E、如果j >0且ζ = 1,那么,ρ不是素数;F、设j = j+Ι,如果j<b且ζ乒p-1,设ζ = Z2 mod p,然后回到步骤E,如果ζ = P-I,那么ρ通过测试,可能为素数;G、如果j =b且ζ乒p-1,那么ρ不是素数;循环上述步骤若干次,如果ρ通过测试了,则将ρ视为素数,表示成功生成一个素数;若还没有生成3个素数,则要返回步骤0),用步骤(2)中获得的混沌变量%进行迭代搜索,否则,跳到步骤(5);(5)判断该生成的3个素数p,q,r是否相等,若相等,则返回步骤(2)继续生成素数的算法,若各不相同,则随机生成3个素数的算法结束。所述的步骤14中整数e选值65537。本发明利用混沌算法为RSA加密算法生成素数,利用所生成的素数组合成公钥和私钥,再利用该公钥和私钥对文件的内容进行加密和解密。由于混沌算法具有遍历性、随机性、规律性等特点,使搜索更加有效,从而使得生成素数更好更快。目前,世界上还没有任何可靠的攻击RSA算法的方式,本发明采用RSA加密算法,安全性较高,且基于混沌算法生成组合的私钥,长度足够长,速度足够快,由于公钥已知,故RSA加密算法具有很好的开放性。


图1为本发明的流程示意图。以下结合附图和具体实施例对本发明作进一步详述。
具体实施例方式如图1所示,本发明一种基于混沌算法的N重RSA加密算法的数字版权保护方法, 具体包括私钥生成、数据加密和数据解密3个主要步骤步骤1、生成私钥参数,并以此产生公、私钥对,作为加密解密用;步骤11、首先用混沌算法随机生成最低位为奇数的随机数,因为素数必定为奇数, 如果是偶数的话,能够被2整除,然后,对生成的随机数进行合数判断测试,若通过测试,则其为合数,否则当经过预设次数的测试仍未通过时,则该随机数视为素数,最后,通过混沌算法随机生成三个素数P、q和r ;本发明中使用Miller-Rabin算法进行合数判断测试,在本发明中,由于素数用一个大整数类表示,并且,表示为一个0x100000000进制数,其中,这个数的所有位保存在数组中,因此,对于一个随机素数的生成,这中间就进行了许多次混沌演化。所述的步骤11中随机生成3个素数的算法如下(1)选择用于载波的混沌变量选用公式χη+1= μ I(I-Xn),其中 μ = 4,0 彡 彡 1,η = 0,1,2,;首先,用系统随机函数产生一个随机值C,设定& = c ;然后通过公式χη+1 = μ Xn(I-Xn)分别进行M次的循环计算,得到M个混沌变量,该循环次数M等于要生成的素数的二进制的位数,通过M次循环后,可以得到一组混沌变量
X1J X2J Χβ …?(2)将步骤(1)中产生的所有混沌变量的变化范围,通过公式m_ValUe[i]= Ci+diXi,i =0,1,2,3,...,M-1分别放大到相应的优化变量(Ci5CiH)取值范围中,其中Ci, Cli为常数,Ci为步骤(1)中用系统随机函数产生随机值,Ci = Xi - 550,Cli为小素数表中随机选取的值,值为prime [cj,从而,可以得到一个随机数p,总共M位,其中,随机数ρ的大小可以表示为ρ = m_value
+m_value[l] · 0x10000000+m_value[2] · (0x10000000)2++—+m_value[M-l] · (0x10000000广1(3)用Miller-Rabin算法进行合数判断测试,当经过预设次数的合数判断测试仍未通过时,则由步骤O)生成的随机数视为素数,进入步骤G),若测试失败,则生成的随机数不是素数,返回步骤O),继续生成素数的算法,重新生成素数;所述的Miller-Rabin算法,令n-1 = 2 ,其中t是非负整数,m是正奇数,若 bmEl(mod d)或者炉、Ξ -1 (mod d),0 彡 j 彡 t_l,则称 η 通过以 b 为基的 Rabin-Miller 测试,具体步骤如下A、假定待测试的素数为p,计算b,b是2整除p-1的次数,即,沪是能整除p-1的 2的最大幂数,然后计算m,使得η = l+2bm ;B、选择一个小于ρ的随机数a,即1彡a彡p-1 ;C、设 j = 0 且 ζ = am mod ρ ;D、如果ζ = 1或者ζ = p-1,那么ρ通过测试,可能是素数;E、如果j >0且ζ = 1,那么,ρ不是素数;F、设j = j+1,如果j <b且ζ乒p-1,设ζ = ζ2 mod p,然后回到步骤E,如果ζ = P-I,那么ρ通过测试,可能为素数;G、如果j =b且ζ乒ρ-1,那么ρ不是素数;循环上述步骤若干次,如果ρ通过测试了,则将ρ视为素数,表示成功生成一个素数;若还没有生成3个素数,则要返回步骤0),用步骤(2)中获得的混沌变量%进行迭代搜索,否则,跳到步骤(5);(5)判断该生成的3个素数p,q,r是否相等,若相等,则返回步骤(2)继续生成素数的算法,若各不相同,则随机生成3个素数的算法结束。步骤12、利用步骤11通过混沌算法随机生成三个素数p,q,r,计算N = p*q*r ;步骤13、计算 N = (p-1) (q-1) (r_l);
步骤14、随机选取整数e,该整数e满足Mod(e,N) = 1 ;为了兼顾效率可以选取特殊值,可采用比较特殊的e值。比如3或65537。但是,如果e太小,明文m(需要加密的内容)也很小,则对密文(c)来讲,c = nf (mod η),当nf< η时,不用取模计算,直接将密文开 e此方就可以得到明文m。另外,e取的太小,很容易通过截获e个相同消息的密文后,导致小指数攻击成功。综合以上考虑,本发明e选用65537 ;步骤15、利用欧几里得算法计算d,满足e*d ^ 1 MOD N ;步骤16、公开N,整数e作为E,记为公钥E = <N,e>,保密p,q,r,d,N作为D,记为私钥 D = <p, q, r, d,N> ;步骤2、读取待加密文件的数字内容,利用步骤1中获得的公钥E对待加密文件的数字内容进行RSA加密,其中,加密时的加密算法为c = E(m) = me (MOD N),保存经加密的数字内容的同时附加私钥文件和每一次取出密文的长度,以便解密时使用;步骤3、在解密过程中,解密模块通过读取私钥文件获取私钥,对已加密的数字内容进行解密;其中,解密时用的解密算法为m = D(c) = cd(MOD N)。本发明的混沌算法过程具随机性、均衡性和稳定性的特点,生成的素数质量好,速度快,并且均衡分布;公钥和私钥生成时,通过大整数来表示素数,对素数进行相应的计算, 组合成私钥,并且公布公钥,对于素数的计算都是在素数这个类中进行操作的,方便并且响应速度快,结果可靠正确;在加密过程和解密过程,通过私钥和公钥对数据进行加密和解密,其私钥的长度足够长,同时,对数据的加密速度比较快,两者均得到了保证,同时,私钥又不易被破解,大大增强了算法的实用性和开放性。
权利要求
1.一种基于混沌算法的N重RSA加密算法的数字版权保护方法,其特征在于包括私钥生成、数据加密和数据解密3个步骤步骤1、生成私钥参数,并以此产生公、私钥对,作为加密解密用; 步骤11、先用混沌算法随机生成最低位为奇数的随机数,然后,对生成的随机数进行合数判断测试,当经过预设次数的合数判断测试仍未通过时,则该随机数视为素数;如此,通过上述方法随机生成三个素数P,q和r ;步骤12、利用步骤11通过混沌算法随机生成三个素数p,q,r,计算N = p*q打; 步骤 13、计算 N = (p-1) (q-1) (r-1); 步骤14、随机选取整数e,该整数e满足Mod (e,N) = 1 ; 步骤15、利用欧几里得算法计算d,满足e*d ^ 1 MOD N ;步骤16、公开N,整数e作为E,记为公钥E = <N,e>,保密p,q,r,d,N作为D,记为私钥 D = <p, q,r, d,N> ;步骤2、读取待加密文件的数字内容,利用步骤1中获得的公钥E对待加密文件的数字内容进行RSA加密,其中,加密时的加密算法为c = E(m) =me(M0D N),保存经加密的数字内容的同时附加私钥文件和每一次取出密文的长度,以便解密时使用;步骤3、在解密过程中,解密模块通过读取私钥文件获取私钥,对已加密的数字内容进行解密;其中,解密时用的解密算法为 m = D (c) = cd (MOD N)。
2.根据权利要求1所述的一种基于混沌算法的N重RSA加密算法的数字版权保护方法,其特征在于所述的步骤11中随机生成3个素数的算法如下(1)选择用于载波的混沌变量选用公式 χη+1= μ\(l-xn),其中 μ1,η = 0,1,2,;首先,用系统随机函数产生一个随机值c,设定^ = C;然后通过公式χη+1= μ Xn(I-Xn)分别进行M次的循环计算,得到M个混沌变量,该循环次数M等于要生成的素数的二进制的位数,通过M次循环后,可以得到一组混沌变量Xl,x2,X3,…,Xm 1 ;(2)将步骤(1)中产生的所有混沌变量的变化范围,通过公式m_ValUe[i]= CiHxi'i =0,1,2,3,..., M-I分别放大到相应的优化变量(Ci,c.+d,)取值范围中,其中Ci, Cli为常数,Ci为步骤(1)中用系统随机函数产生随机值,Ci = Xi - 550,Cli为小素数表中随机选取的值,值为prime [cj,从而,可以得到一个随机数p,总共M位,其中,随机数ρ的大小可以表示为ρ = m_value
+m_value[l] · 0x10000000+ m_value[2] · (0x10000000)2+ +…+m_value[M-l] · (0x10000000)(3)用Miller-Rabin算法进行合数判断测试,当经过预设次数的合数判断测试仍未通过时,则由步骤O)生成的随机数视为素数,进入步骤G),若测试失败,则生成的随机数不是素数,返回步骤( ,继续生成素数的算法,重新生成素数;所述的Miller-Rabin算法,令n_l = 2、其中t是非负整数,m是正奇数,若bm ^ 1 (mod d)或者炉、Ξ -1 (mod d),0彡j彡t-Ι,则称η通过以b为基的Rabin-Miller测试,具体A、假定待测试的素数为p,计算b,b是2整除p-1的次数,即,沪是能整除p-1的2的最大幂数,然后计算m,使得η = l+2bm ;B、选择一个小于ρ的随机数a,即1彡a彡p-1;C、设j = 0 且 ζ = am mod ρ ;D、如果ζ= 1或者ζ = ρ-l,那么ρ通过测试,可能是素数;E、如果j> 0且ζ = 1,那么,ρ不是素数;F、设j= j+1,如果j <b且ζ乒p-1,设ζ = ζ2 mod p,然后回到步骤E,如果ζ = p_l, 那么P通过测试,可能为素数;G、如果j= b且ζ乒p-1,那么ρ不是素数;循环上述步骤若干次,如果P通过测试了,则将P视为素数,表示成功生成一个素数; 若还没有生成3个素数,则要返回步骤0),用步骤( 中获得的混沌变量%进行迭代搜索,否则,跳到步骤(5);(5)判断该生成的3个素数p,q,r是否相等,若相等,则返回步骤(2)继续生成素数的算法,若各不相同,则随机生成3个素数的算法结束。
3.根据权利要求1所述的一种基于混沌算法的N重RSA加密算法的数字版权保护方法,其特征在于所述的步骤14中整数e选值65537。
全文摘要
本发明一种基于混沌算法的N重RSA加密算法的数字版权保护方法,包括私钥生成、数据加密和数据解密3个步骤利用混沌算法为RSA加密算法生成素数,利用所生成的素数组合成公钥和私钥,再利用该公钥和私钥对文件的内容进行加密和解密。由于本发明的混沌算法过程具随机性、均衡性和稳定性的特点,生成的素数质量好,速度快,并且均衡分布;本发明对于素数的计算都是在素数这个类中进行操作的,方便并且响应速度快,结果可靠正确;在加密过程和解密过程,通过私钥和公钥对数据进行加密和解密,其私钥的长度足够长,同时,对数据的加密速度比较快,两者均得到了保证,同时,私钥又不易被破解,大大增强了算法的实用性和开放性。
文档编号H04L9/00GK102437912SQ20121000306
公开日2012年5月2日 申请日期2012年1月6日 优先权日2012年1月6日
发明者王炳兴 申请人:厦门博鼎智文传媒科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1