首页> 中国专利> 一种基于混沌算法的N重RSA加密算法的数字版权保护方法

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

摘要

本发明一种基于混沌算法的N重RSA加密算法的数字版权保护方法,包括私钥生成、数据加密和数据解密3个步骤:利用混沌算法为RSA加密算法生成素数,利用所生成的素数组合成公钥和私钥,再利用该公钥和私钥对文件的内容进行加密和解密。由于本发明的混沌算法过程具随机性、均衡性和稳定性的特点,生成的素数质量好,速度快,并且均衡分布;本发明对于素数的计算都是在素数这个类中进行操作的,方便并且响应速度快,结果可靠正确;在加密过程和解密过程,通过私钥和公钥对数据进行加密和解密,其私钥的长度足够长,同时,对数据的加密速度比较快,两者均得到了保证,同时,私钥又不易被破解,大大增强了算法的实用性和开放性。

著录项

  • 公开/公告号CN102437912A

    专利类型发明专利

  • 公开/公告日2012-05-02

    原文格式PDF

  • 申请/专利权人 厦门博鼎智文传媒科技有限公司;

    申请/专利号CN201210003061.4

  • 发明设计人 王炳兴;

    申请日2012-01-06

  • 分类号H04L9/28;H04L9/00;

  • 代理机构泉州市文华专利代理有限公司;

  • 代理人戴中生

  • 地址 361004 福建省厦门市软件园望海路19号402室之一

  • 入库时间 2023-12-18 05:04:15

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-12-21

    未缴年费专利权终止 IPC(主分类):H04L9/28 授权公告日:20141022 终止日期:20180106 申请日:20120106

    专利权的终止

  • 2014-10-22

    授权

    授权

  • 2012-06-27

    实质审查的生效 IPC(主分类):H04L9/28 申请日:20120106

    实质审查的生效

  • 2012-05-02

    公开

    公开

说明书

技术领域

本发明属于信息安全技术,涉及一种基于混沌算法的N重RSA加 密算法的数字版权保护方法。

背景技术

数字版权保护技术(Digital Rights Management,即DRM)就是 以一定的计算方法,实现对数字内容的保护,其具体的应用可以包括 eBook、视频、音频、图片、安全文档等数字内容的保护。

数字版权保护方法主要有两类,一类是采用数字水印技术,另一 类是以数据加密和防拷贝为核心的DRM技术。

数字水印(Digital Watermark)技术是在数字内容中嵌入隐蔽的 标记,这种标记通常是不可见的,只有通过专用的检测工具才能提取。 数字水印可以用于图片、音乐和电影的版权保护,在基本不损害原作 品质量的情况下,把著作权相关的信息隐藏在图片、音乐或电影中, 而产生的变化通过人的视觉或听觉是发现不了的。但是,目前市场上 的数字水印产品在应用方面还不成熟,容易被破坏或破解,而且数字 水印方法,只能在发现盗版后用于取证或追踪,不能在事前防止盗版。

数据加密和防拷贝为核心的DRM技术是把数字内容进行加密,只 有授权用户才能得到解密的密钥,而且密钥是与用户的硬件信息绑定 的。加密技术加上硬件绑定技术,防止了非法拷贝,这种技术能有效 地达到版权保护的目的,当前国内外大部分计算机公司和研究机构的 DRM技术采用这种方法。

混沌是存在于非线性系统中的一种较为普遍的现象,混沌并不是 一片混乱,而是有着精致内在结构的一类现象。混沌运动具有遍历性、 规律性等特点。因此,如果利用混沌变量进行优化搜索,无疑会比随 机搜索更具有优先性。

RSA加密算法是一种非对称加密算法。在公钥加密标准和电子商 业中RSA被广泛使用。RSA算法是第一个能同时用于加密和数字签名 的算法,是被研究得最广泛的公钥算法,从提出到现在已近二十年, 经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的 公钥方案之一。RSA加密算法的安全性依赖于大数的因子分解,但并 没有从理论上证明破译RSA的难度与大数分解难度等价。即RSA的重 大缺陷是无法从理论上把握它的保密性能如何,而且密码学界多数人 士倾向于因子分解不是NPC问题。

RSA的缺点主要有:1)产生密钥很麻烦,受到素数产生技术的限 制,因而难以做到一次一密。2)分组长度太大,为保证安全性,n至 少也要600bits以上,使运算代价很高,尤其是速度较慢,较对称 密码算法慢几个数量级;且随着大数分解技术的发展,这个长度还在 增加,不利于数据格式的标准化。目前,SET(Secure Electronic  Transaction)协议中要求CA采用2048bits长的密钥,其他实体使用 1024比特的密钥。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-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(MOD N),保存经加密的数字内容的同时附加私钥 文件和每一次取出密文的长度,以便解密时使用;

步骤3、在解密过程中,解密模块通过读取私钥文件获取私钥, 对已加密的数字内容进行解密;其中,解密时用的解密算法为:m=D (c)=cd(MOD N)。

所述的步骤11中随机生成3个素数的算法如下:

(1)选择用于载波的混沌变量:

选用公式xn+1=μxn(1-xn),其中μ=4,0≤x0≤1,n=0,1,2,;

首先,用系统随机函数产生一个随机值c,设定x0=c;

然后通过公式xn+1=μxn(1-xn)分别进行M次的循环计算,得到M 个混沌变量,该循环次数M等于要生成的素数的二进制的位数,通过 M次循环后,可以得到一组混沌变量x1,x2,x3,…,xM值;

(2)将步骤(1)中产生的所有混沌变量的变化范围,通过公式 m_value[i]=ci+dixi,i=0,1,2,3,...,M-1分别放大到相应的 优化变量(ci,ci+di)取值范围中,其中ci,di为常数,ci为步骤(1) 中用系统随机函数产生随机值,ci=xi·550,di为小素数表中随机选 取的值,值为prime[ci].从而,可以得到一个随机数p,总共M位, 其中,随机数p的大小可以表示为:

p=m_value[0]+m_value[1]·0x10000000+

m_value[2]·(0x10000000)2+

+…+m_value[M-1]·(0x10000000)M-1

(3)用Miller-Rabin算法进行合数判断测试,当经过预设次数 的合数判断测试仍未通过时,则由步骤(2)生成的随机数视为素数, 进入步骤(4),若测试失败,则生成的随机数不是素数,返回步骤(2), 继续生成素数的算法,重新生成素数;

所述的Miller-Rabin算法,令n-1=2tm,其中t是非负整数, m是正奇数,若bm≡1(mod d)或者0≤j≤t-1,则 称n通过以b为基的Rabin-Miller测试,具体步骤如下:

A、假定待测试的素数为p,计算b,b是2整除p-1的次数,即,2b是能整除p-1的2的最大幂数,然后计算m,使得n=1+2bm;

B、选择一个小于p的随机数a,即1≤a≤p-1;

C、设j=0且z=am mod p;

D、如果z=1或者z=p-1,那么p通过测试,可能是素数;

E、如果j>0且z=1,那么,p不是素数;

F、设j=j+1,如果j<b且z≠p-1,设z=z2 mod p,然后回到 步骤E,如果z=p-1,那么p通过测试,可能为素数;

G、如果j=b且z≠p-1,那么p不是素数;

循环上述步骤若干次,如果p通过测试了,则将p视为素数,表 示成功生成一个素数;

若还没有生成3个素数,则要返回步骤(2),用步骤(2)中获 得的混沌变量xM进行迭代搜索,否则,跳到步骤(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)选择用于载波的混沌变量:

选用公式xn+1=μxn(1-xn),其中μ=4,0≤x0≤1,n=0,1,2,;

首先,用系统随机函数产生一个随机值c,设定x0=c;

然后通过公式xn+1=μxn(1-xn)分别进行M次的循环计算,得到M 个混沌变量,该循环次数M等于要生成的素数的二进制的位数,通过 M次循环后,可以得到一组混沌变量x1,x2,x3,…,xM值;

(2)将步骤(1)中产生的所有混沌变量的变化范围,通过公式 m_value[i]=ci+dixi,i=0,1,2,3,...,M-1分别放大到相应的 优化变量(ci,ci+di)取值范围中,其中ci,di为常数,ci为步骤(1) 中用系统随机函数产生随机值,ci=xi·550,di为小素数表中随机选 取的值,值为prime[ci],从而,可以得到一个随机数p,总共M位, 其中,随机数p的大小可以表示为:

p=m_value[0]+m_value[1]·0x10000000+

m_value[2]·(0x10000000)2+

+…+m_value[M-1]·(0x10000000)M-1

(3)用Miller-Rabin算法进行合数判断测试,当经过预设次数 的合数判断测试仍未通过时,则由步骤(2)生成的随机数视为素数, 进入步骤(4),若测试失败,则生成的随机数不是素数,返回步骤(2), 继续生成素数的算法,重新生成素数;

所述的Miller-Rabin算法,令n-1=2tm,其中t是非负整数, m是正奇数,若bm≡1(mod d)或者0≤j≤t-1,则 称n通过以b为基的Rabin-Miller测试,具体步骤如下:

A、假定待测试的素数为p,计算b,b是2整除p-1的次数,即,2b是能整除p-1的2的最大幂数,然后计算m,使得n=1+2bm;

B、选择一个小于p的随机数a,即1≤a≤p-1;

C、设j=0且z=am mod p;

D、如果z=1或者z=p-1,那么p通过测试,可能是素数;

E、如果j>0且z=1,那么,p不是素数;

F、设j=j+1,如果j<b且z≠p-1,设z=z2 mod p,然后回到 步骤E,如果z=p-1,那么p通过测试,可能为素数;

G、如果j=b且z≠p-1,那么p不是素数;

循环上述步骤若干次,如果p通过测试了,则将p视为素数,表 示成功生成一个素数;

若还没有生成3个素数,则要返回步骤(2),用步骤(2)中获 得的混沌变量xM进行迭代搜索,否则,跳到步骤(5);

(5)判断该生成的3个素数p,q,r是否相等,若相等,则返回 步骤(2)继续生成素数的算法,若各不相同,则随机生成3个素数 的算法结束。

步骤12、利用步骤11通过混沌算法随机生成三个素数p,q,r, 计算N=p*q*r;

步骤13、计算N=(p-1)(q-1)(r-1);

步骤14、随机选取整数e,该整数e满足Mod(e,N)=1;为了 兼顾效率可以选取特殊值,可采用比较特殊的e值。比如3或65537。 但是,如果e太小,明文m(需要加密的内容)也很小,则对密文(c) 来讲,c=me(mod n),当me<n时,不用取模计算,直接将密文开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)。

本发明的混沌算法过程具随机性、均衡性和稳定性的特点,生成 的素数质量好,速度快,并且均衡分布;公钥和私钥生成时,通过大 整数来表示素数,对素数进行相应的计算,组合成私钥,并且公布公 钥,对于素数的计算都是在素数这个类中进行操作的,方便并且响应 速度快,结果可靠正确;在加密过程和解密过程,通过私钥和公钥对 数据进行加密和解密,其私钥的长度足够长,同时,对数据的加密速 度比较快,两者均得到了保证,同时,私钥又不易被破解,大大增强 了算法的实用性和开放性。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号