基于杠杆函数的2型公开密钥密码系统的制作方法

文档序号:7847751阅读:252来源:国知局
专利名称:基于杠杆函数的2型公开密钥密码系统的制作方法
1、所属技术领域密码学、计算机科学。
2、现有技术1976年,美国学者Whitfield Diffie和Martin Hellman首次提出了“公开密钥密码系统”的思想。基于这种思想,目前已有一些具体的实现技术,主要包括(1)MH背包公钥系统;(2)RSA公钥系统;(3)Pohlig-Hellman公钥系统;(4)Rabin公钥系统;(5)EIGamal公钥系统,其在椭圆曲线上的实现也叫ECC公钥系统;(6)McEliece公钥系统;(7)LUC公钥系统;(8)有限自动机公钥密码系统(上述系统可参见《应用密码学》,美国BruceSchneier著,吴世忠、祝世雄等译,机械工业出版社,2000年1月)。
上述系统中,第一种至第七种是外国人发明的,大部分已申请专利,其中,RSA系统和EIGamal系统被广泛使用。最后一种是我国学者陶仁骥教授发明的。
3、发明的目的用于计算机网络和通信网络中字符、文字、图象和声音等各种文件和数据的加密和解密,以确保文件和数据的保密存储和保密传输。希望我们国家在公开密钥密码领域能够拥有自己的核心技术,以确保我国的信息安全和经济安全。
4、内容4.1两个基本概念4.1.1超递增序列设A1,A2,…,An为n个互不相同的正整数,且满足Ai>∑Aj(i=2,3,…,n;j=1,2,…,i-1)则称这样的正整数序列为超递增序列,记为{A1,A2,…,An}或{Ai}。
超递增序列有如下性质对于任意的正整数m(1≤m≤n),从超递增序列{Ai}中任选m个项,则该m个项的累加和(即子集和)Es=Ai1+Ai2+…+Aim是唯一确定的。
4.1.2杠杆函数设f(1)、f(2)、…、f(n)是n个正整数函数值,当从公开密钥推导私有密钥时,需考虑f(i)的全排列数n!;但从私有密钥解开密文时只需考虑f(i)的累加和。因此,若以密文为支点,则f(i)是一头计算量大,另一头计算量小,称满足该性质的f(i)为杠杆函数。
4.2基于杠杆函数的2型公开密钥密码系统的组成基于杠杆函数的2型公开密钥密码系统,简称REESSE2公钥密码系统,在产品形态上可以是纯粹的数字逻辑电路做成的加密解密芯片,或者由数字逻辑电路加固化程序做成的加密解密芯片,或者由计算机硬件加软件组成的密码机等等。因此,本发明是一种实现上述密码系统或产品所必须遵循的基本原理与技术方法,而不是物理产品本身。
REESSE2公钥密码系统由密钥生成模块、加密模块和解密模块等三个模块组成。
4.2.1本系统的加密与解密机制假设用户V欲通过网络向用户U发送一个文件,且以保密的方式进行。本文中,把加密之前的文件或数据叫明文文件或明文数据,加密之后的文件或数据叫密文文件或密文数掘。用户V与用户U欲实现这么一个保密通信过程,其机制如下密钥生成首先,用户U应该去第3方权威机构(CA认证中心或数字证书认证中心)领取一对由密钥生成模块产生的私有密钥(Private Key)和公开密钥(Public Key),私有密钥必须由用户U自己保管,不得泄密;公开密钥则可以用公钥证书的形式向外界公开发放,以便于使用。
加密操作用户V从CA认证中心获得用户U的公钥证书,在运行加密模块的机器上对欲发送的明文文件进行加密,得到密文文件,并由网络把密文文件传送给用户U。
解密操作用户U接收到用户V发送来的密文文件后,在运行解密模块的机器上用自己的私有密钥对密文文件进行解密,恢复出明文文件。
在本系统中,为了提高加密的效率,采用了混合密码技术,即用对称密钥密码方法来加密明文文件,再用公开密钥密码系统来加密对称密钥密码方法的会话密钥。对称密钥密码方法所使用的加密、解密密钥是同一个密钥,称之为会话密钥。
4.2.2密钥生成模块的功能与实现方法密钥生成模块运行在CA认证中心等第3方权威机构,用来产生一对私有密钥和公开密钥。其实现方法是(1)产生项数为n的超递增序列{A1,A2,…,An}(2)找到一个正素数M,其满足M>∑Ai,且(n/log2M)≥0.65(3)随机产生杠杆函数值f(1)、f(2)、…、f(n),2≤f(i)≤(n+1),两两不同(4)选取合适的F素数W、Z,其满足W<M、Z<M(5)计算非超递增序列Ci=((Ai+Z*f(i))*W)modM,(i=1,2,…,n)(6)从(Z+(-Z))modM=0求出-Z,从(W*W-1)modM=1求出W-1过程结束后,以({A1,A2,…,An}、W-1、-Z、M)作为私有密钥,以({C1,C2,…,Cn}、M)作为公开密钥。
4.2.3加密模块的功能与实现方法加密模块运行在发送文件方的机器上,用来对明文文件或数据进行加密。发送方为获得加密密钥,须从CA认证中心取得接收文件方的公开密钥证书。
设({C1,C2,…,Cn}、M)为公开密钥;EF为明文文件/数据;数据块分组数m≥16。则加密模块的实现方法是(1)随机产生m*n比特(Bit)的数据块b11b12…b1nb21b22…b2n……bm1bm2…bmn,并将其划分为m个n比特的分组(2)以单向散列函数HASH(b11b12…b1n,b21b22…b2n,……,bm1bm2…bmn)之n比特输出作为会话密钥K(3)以会话密钥K对明文文件/数据EF进行分组对称加密,得到密文文件/数据CF(4)令i=1(5)令Ei=0,j=1(6)如果bij=1,贝 Ei=(Ei+Cj)mod M(7)做j=j+1,如果j≤n,则转至(6)(8)做i=i+1,如果i≤m,则转至(5),否则,结束结束后,得到可安全发送的密文文件/数据CF和密文子集和序列E1、E2、…、Em。
4.2.4解密模块的功能与实现方法解密模块运行在接收文件方的机器上,用来对密文文件或数掘进行解密。接收方以自己的私有密钥作为解密密钥。
设({A1,A2,…,An}、W-1、-Z、M)为私有密钥;CF为密文文件/数据,E1、E2、…、Em为密文子集和序列。则解密模块的实现方法是(1)令i=1(2)做Ei=(Ei*W-1)modM(3)做Ei=(Ei+(-Z))modM(4)令bi1bi2…bin各位皆为0,Es=Ei,j=n(5)如果Es≥Ai,贝 bij=1并且Es=Es-Ai(6)做j=j-1,如果j≥1并且Es≠0,则转至(5)(7)如果Es≠0,则转至(3)(8)做i=i+1,如果i≤m,则转至(2)(9)以单向散列函数HASH(b11b12…b1n,b21b22…b2n,……,bm1bm2…bmn)之n比特输出作为会话密钥K(10)以会话密钥K对密文文件/数据CF进行分组对称解密,得到明文文件/数据EF结束后,接收方恢复出发送方的明文文件/数据即原始文件/数据EF。
5、优点和积极效果5.1安全性满足要求由于综合利用了杠杆函数和单向散列函数,所以,系统能有效抗御Shamir的极小点攻击和Lagarias-Odlyzko-Brickell的L3归约基攻击。
5.2运算速度快在本公钥密码系统中,加密、解密操作基本上只用到加法和减法运算,且最大整数(即模数)可控制在160比特范围之内,所以,与流行的RSA、ECC算法比较起来,加密、解密速度要快上许多倍。
5.3技术可以公开本公钥密码系统的实现技术完全可以公开,公钥(Public Key)也可以完全向外界发放和流通。只要私有密钥不泄密,就可以完全保证密文的安全。
5.4对国家的信息安全有利目前,我国正积极发展电子政务与电子商务,信息安全关系到国家安全和经济安全。但是,泱泱一个大国的信息安全不能完全建立在外国的加密技术基础之上,而没有自主核心技术,所以,研究我们自己的公开密钥加密技术显得势在必行和具有重大意义。
6、实现方式基于杠杆函数的2型公开密钥密码系统能够让每一用户得到两个密钥(从CA认证中心取得),一个密钥可以公开,一个密钥只能私人拥有,这样,就不会担心密钥在发放和交流过程中泄密了。当在网上传输信息时,发送者使用接收者的公开密钥对明文进行加密,接收者使用自己的私有密钥对密文进行解密。
本公钥密码系统在产品形态上可以用数字逻辑电路、或者由数字逻辑电路加固化程序、或者由计算机硬件加软件等来实现。本发明是一种生产上述密码系统或产品所必须遵循的基本原理与技术方法,而不是物理产品本身。下面,举例说明这种技术方法是如何应用的。
设序列项数n=6,数据块分组数m=6(实际应用中,n至少应为96,m至少应为16)。
设单向散列函数,即HASH函数如下H0=101100(二进制数)Hi=(Hi-1㈩Ti)2mod1000000其中,㈩表示二进制的异或运算,Ti表示分组长度为n的二进制块。
设对称密钥密码方法为Yi=~(Xi㈩K)(加密与解密共用一个方法)其中,~表示二进制的非运算,Xi为n比特的分组数据,K为n比特的会话密钥。
注意,实际应用中,HASH函数和对称加密解密方法远比上面所设要复杂,这里只是用来说明问题。
6.1密钥的生成根据4.2.2密钥生成模块的实现方法设产生一超递增序列{Ai}为{3,5,9,20,39,79}找到M=163>∑Ai=(3+5+9+20+39+79)=155,可以验证,163为素数,且(n/log2M)=6/log2163≥0.65随机产生杠杆函数f(1)=4,f(2)=5,f(3)=2,f(4)=6,f(5)=7,f(6)=3;选取W=101,Z=158,显然,W<M、Z<M;做Ci=((Ai+Z*f(i))*W)mod M,则C1=((3+158*4)101)mod 163=76 C2=((5+158*5)101)mod 163=99C3=((9+158*2)101)mod 163=62 C4=((20+158*6)101)mod 163=131C5=((39+158*7)101)mod 163=78 C6=((79+158*3)101)mod 163=107因此,得到非超递增序列{Ci}为{76,99,62,131,78,107};从(Z+(-Z))mod M=0求出(-Z)=5,从(W*W-1)mod M=1并根据REESSE递归方法求出W-1=92(参见”REESSE 1公开密钥密码体制”,苏盛辉,《计算机工程与科学》,2003年第5期)。
以({76,99,62,131,78,107}、163)作为公开密钥,以({3,5,9,20,39,79}、92、5、163)作为私有密钥。
6.2加密已知公开密钥为({76,99,62,131,78,107}、163);设明文文件EF为一文本文件,其内容为Peking,共6个字符,则其二进制形式为01010000 01100101 01101011 01101001 01101110 01100111根据4.2.3加密模块的实现方法随机产生6*6比特的数据块b11b12…b16b21b22…b26……b61b62…b66为011010 100101 001100 111110 010011 100111则HASH(011010,100101,001100,111110,010011,100111)之输出为H1=(H0(+)T1)2mod 1000000=(101100(+)011010)2mod 1000000=100100H2=(H1(+)T2)2mod 1000000=(100100(+)100101)2mod 1000000=000001H3=(H2(+)T3)2mod 1000000=(000001(+)001100)2mod 1000000=101001H4=(H3(+)T4)2mod 1000000=(101001(+)111110)2mod 1000000=010001H5=(H4(+)T5)2mod 1000000=(010001(+)010011)2mod 1000000=000100H6=(H5(+)T6)2mod 1000000=(000100(+)100111)2mod 1000000=001001所以,得到会话密钥K=H6=001001;
下面,对明文文件EF的内容进行对称加密,按6个比特进行分组,以Peking即010100000110010101101011011010010110111001100111作为输入,其加密过程如下Y1=~(X1(+)K)=~(010100(+)001001)=100010;Y2=~(X2(+)K)=~(000110(+)001001)=110000Y3=~(X3(+)K)=~(010101(+)001001)=100011;Y4=~(X4(+)K)=~(101011(+)001001)=011101Y5=~(X5(+)K)=~(011010(+)001001)=101100;Y6=~(X6(+)K)=~(010110(+)001001)=100000Y7=~(X7(+)K)=~(111001(+)001001)=001111;Y8=~(X8(+)K)=~(100111(+)001001)=010001将输出Y1、Y2、Y3、Y4、Y5、Y6、Y7、Y8进行连接,得到密文文件CF,其二进制内容为100010110000100011011101101100100000001111010001又从011010100101001100111110010011100111得到密文子集和序列为E1=(b11C1+b12C2+b13C3+b14C4+b15C5+b16C6)modM=(99+62+78)mod163=76E2=(b21C1+b22C2+b23C3+b24C4+b25C5+b26C6)modM=(76+131+107)mod163=151E3=(b31C1+b32C2+b33C3+b34C4+b35C5+b36C6)modM=(62+131)mod163=30E4=(b41C1+b42C2+b43C3+b44C4+b45C5+b46C6)modM=(76+99+62+131+78)mod163=120E5=(b51C1+b52C2+b53C3+b54C4+b55C5+b56C6)modM=(99+78+107)mod163=121E6=(b61C1+b62C2+b63C3+b64C4+b65C5+b66C6)modM=(76+131+78+107)mod163=66最后,发送方将密文文件CF及密文子集和序列E1、E2、E3、E4、E5、E6通过网络传输给接收方。
6.3解密解密子集和的过程是边搜索边验证,搜索的次数不会超过∑f(i)=27,与项数n多项式时间复杂度相关,故求解是可行的。注意,解密过程不用到杠杆函数f(i)。
已知私有密钥为({3,5,9,20,39,79}、92、5、163);已知密文文件CF的内容为100010110000100011011101101100100000001111010001;已知密文子集和序列E1、E2、…、Em为76、151、30、120、121、66。
根据4.2.4解密模块的实现方法E1=(E1*W-1)modM=76*92mod163=146并由E1=(E1+(-Z))mod M循环搜索到Es=E1=53,验证后得b11b12…b16=011010E2=(E2*W-1)modM=151*92 mod163=37并由E2=(E2+(-Z))modM循环搜索到Es=E2=102,验证后得b21b22…b26=100101E3=(E3*W-1)modM=30*92mod163=152并由E3=(E3+(-Z))modM循环搜索到Es=E3=29,验证后得b31b32…b36=001100E4=(E4*W-1)modM=120*92mod163=119
并由E4=(E4+(-Z))modM循环搜索到Es=E4=76,验证后得b41b42…b46=111110E5=(E5*W-1)modM=121*92mod163=48并由E5=(E5+(-Z))modM循环搜索到Es=E5=123,验证后得b51b52…b56=010011E6=(E6*W-1)modM=66*92mod163=41并由E6=(E6+(-Z))modM循环搜索到Es=E6=141,验证后得b61b62…b66=100111则HASH(011010,100101,001100,111110,010011,100111)之输出为H1=(H0(+)T1)2mod1000000=(101100(+)011010)2mod1000000=100100H6=(H5(+)T6)2mod1000000=(000100(+)100111)2mod1000000=001001所以,得到会话密钥K=H6=001001;下面,对密文文件CF的内容进行对称解密,按6个比特进行分组,以二进制序列100010110000100011011101101100100000001111010001作为输入,其解密过程如下Y1=~(X1(+)K)=~(100010(+)001001)=010100;Y2=~(X2(+)K)=~(110000(+)001001)=000110Y3=~(X3(+)K)=~(100011(+)001001)=010101;Y4=~(X4(+)K)=~(011101(+)001001)=101011Y5=~(X5(+)K)=~(101100(+)001001)=011010;Y6=~(X6(+)K)=~(100000(+)001001)=010110Y7=~(X7(+)K)=~(001111(+)001001)=111001Y8=~(X8(+)K)=~(010001(+)001001)=100111将输出Y1、Y2、Y3、Y4、Y5、Y6、Y7、Y8进行连接,得到明文文件EF,其二进制内容为010100000110010101101011011010010110111001100111,文本形式为Peking。
最后,接收方恢复出发送方的明文文件即原始文件EF,且知其内容为Peking。
举例完毕。
权利要求
1.一种基于杠杆函数的公开密钥密码系统,简称REESSE2公开密钥密码系统,由密钥生成、加密和解密三个模块组成,密钥生成模块运行在第3方权威机构,用来产生用户的一对私有密钥和公开密钥,加密模块运行在发送方的机器上,发送方使用接收方的公开密钥来加密明文文件或数据,解密模块运行在接收方的机器上,接收方使用自己的私有密钥来解密密文文件或数据,其特征在于●密钥生成模块采用了下列独特步骤(1)产生项数为n的超递增序列{A1,A2,…,An}(2)找到一个正素数M,其满足M>∑Ai,且(n/log2M)≥0.65(3)随机产生杠杆函数值f(1)、f(2)、…、f(n),2≤f(i)≤(n+1),两两不同(4)选取合适的正素数W、Z,其满足W<M、Z<M(5)计算非超递增序列Ci=((Ai+Z*f(i))*W)mod M,(i=1,2,…,n)(6)从(Z+(-Z))mod M=0求出-Z,从(W*W-1)mod M=1求出W-1过程结束后,以({A1,A2,…,An}、W-1、-Z、M)作为私有密钥,以({C1,C2,…,Cn)作为公开密钥,其中,私有密钥只能由密文接收方私自拥有;●加密模块采用了下列独特步骤设({C1,C2,…,Cn}、M)为公开密钥,EF为明文文件/数据,数据块分组数m≥16,(1)随机产生m*n比特的数据块b11b12…b1nb21b22…b2n……bm1bm2…bmn,并将其划分为m个n比特的分组(2)以单向散列函数HASH(b11b12…b1n,b21b22…b2n,……,bm1bm2…bmn)之n比特输出作为会话密钥K(3)以会话密钥K对明文文件/数据EF进行分组对称加密,得到密文文件/数据CF(4)令i=1(5)令Ei=0,j=1(6)如果bij=1,贝 Ei=(Ei+Cj)modM(7)做j=j+1,如果j≤n,则转至(6)(8)做i=i+1,如果i≤m,则转至(5),否则,结束结束后,得到密文文件/数据CF和密文子集和序列E1、E2、…、Em,它们可以被安全地发送给接收方;●解密模块采用了下列独特步骤设({A1,A2,…,An}、w-1、-Z、M)为私有密钥,CF为密文文件/数据,E1、E2、…、Em为密文子集和序列,(1)令i=1(2)做Ei=(Ei*W-1)modM(3)做Ei=(Ei+(-Z))modM(4)令bi1bi2…bin各位皆为0,Es=Ei,j=n(5)如果Es≥Aj,则bij=1并且Es=Es-Aj(6)做j=j-1,如果j≥1并且Es≠0,则转至(5)(7)如果Es≠0,则转至(3)(8)做i=i+1,如果i≤m,则转至(2)(9)以单向散列函数HASH(b11b12…b1n,b21b22…b2n,……,bm1bm2…bmn)之n比特输出作为会话密钥K(10)以会话密钥K对密文文件/数据CF进行分组对称解密,得到明文文件/数据EF结束后,接收方恢复出发送方的明文文件/数据即原始文件/数据EF。
全文摘要
属密码学、计算机科学;利用杠杆函数和超递增序列设计出一个公开密钥密码系统,包括密钥生成、加密和解密三个模块;用户从第3方权威机构获得两个密钥,一个只能私有,一个可以公开,且从公开密钥不能推出私有密钥;公开密钥用于把明文转换成密文,私有密钥用于把密文还原成明文;系统能有效抗御Shamir的极小点攻击和LOB的L
文档编号H04L9/28GK1490739SQ03156920
公开日2004年4月21日 申请日期2003年9月15日 优先权日2003年9月15日
发明者苏盛辉 申请人:苏盛辉
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1