CN101321060A - 一种用于编码和译码数字消息的方法和系统 - Google Patents
一种用于编码和译码数字消息的方法和系统 Download PDFInfo
- Publication number
- CN101321060A CN101321060A CN 200710100308 CN200710100308A CN101321060A CN 101321060 A CN101321060 A CN 101321060A CN 200710100308 CN200710100308 CN 200710100308 CN 200710100308 A CN200710100308 A CN 200710100308A CN 101321060 A CN101321060 A CN 101321060A
- Authority
- CN
- China
- Prior art keywords
- private key
- function
- message
- pki
- obtains
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
- H04L9/3073—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Mathematical Physics (AREA)
- Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供了一种用于编码和译码数字消息的方法和系统,所述方法可以包括:选择正整数m,n’,r,其中,m≥n’;生成一包含有E’(x,ID)的公钥,其中,所述E’(x,ID)为在域F上的从(x1,...,xm,ID1,...,IDr)到(y1,...,yn’)的非线性映射函数组,所述ID=(ID1,...,IDr)为授权用户的身份标识;针对身份标识为ID(K)的授权用户,生成一与该身份标识相对应的私钥;然后完成相应的加解密过程或者数字签名验证过程。本发明可以实现全网所有用户共用一个公钥,有效地解决了超大规模复杂网络的密钥管理问题;不需要建立大型认证中心和私钥库,大大降低了系统建设成本和运行管理成本;实现了公钥数据与用户标识的一体化管理,为网络环境下的信任管理带来了极大的方便。
Description
技术领域
本发明涉及信息的编码和译码领域,特别是涉及一种对数据消息加密、解密以及签名、验证的公用密钥密码体制。
背景技术
密码技术是研究加密和解密变换的一门科学技术。通常情况下,人们将可懂的文本称为明文;将明文变换成的不可懂的文本称为密文。把明文变换成密文的过程叫加密;其逆过程,即把密文变换成明文的过程叫解密。这种加密或解密变换是由密钥来控制的。在开放环境下使用的密码系统应满足以下基本要求:
保密性:保证信息不被泄漏给非授权的用户;
完整性:保证信息不被任意或蓄意地修改;
抗抵赖性:防止个人或实体通过销毁证据来否认曾经发布过的信息,以证明某类事件确实曾经发生过。
公钥密码是解决上述的保密性、完整性、抗抵赖性的关键技术。其正式诞生的标志是1976年W.Diffie和M.Hellman发表的《密码学的新方向》(W.Diffe,M.E.Hellman,“New direction in cryptography”,IEEE Trans.,1976,22,644-654)。公钥密码使用一个公钥和一个私钥,公钥可以公开传递,但相关的私钥是保密的。只有使用私钥才能解密用公钥加密的数据、并对数据进行签名,公钥的作用则是对信息进行加密、以及验证签名的正确性。
当前公钥密码面临的一个重要挑战,是量子计算的挑战。由Shor在1994年发明的Shor算法(P.W.Shor,“Algorithms for quantum computation:Discretelog and factoring”,Proceedings of the 35th Symposium on Foundations ofComputer Science,1994,pp.124-134.),能以多项式时间攻破所有的能够转换成广义离散傅立叶变换的公钥密码,包括目前广泛使用的RSA、DH和ECC等三种公钥密码体制。
公钥密码应对量子计算挑战的基本对策是:采用不能转换成离散傅立叶变换的数学难题来建立公钥密码体制。按照这种思路,当前国际上主要有三类互相竞争的“抗量子计算”的公钥密码方案:
一是NTRU公钥密码体制(J.Hoffstein,J.Pipher,and J.H.Silverman,“NTRU:a ring based public key cryptosystem”,Crypto’96,LNCS 1423,pp.267-288.Springer-Verlag,1998.),其安全性基于在一个大维数的格中寻找一个很短向量的数学难题。
二是OTU2000公钥密码体制(T.Okamoto,K.Tanaka,and S.Uchiyama,“Quantum Public-Key Cryptosystems,”CRYPTO2000,LNCS 1880,pp.147-165,Springer-Verlag(2000).),其安全性基于改进的背包问题。
三是MQ公钥密码体制,即多变元二次多项式公钥密码体制(MultivariateQuadratic Polynomials in Public Key Cryptosystem),其安全性基于二次多项式不定方程组的难解性。这个领域典型的方案是SPLASH签名算法(J.Patarin,L.Goubin,N.Courtois,“C*+-and HM:Variations around two schemes of T.Matsumoto and H.Imai”,in Advances in Cryptology,Proceedings ofASIACRYPT’98,LNCS 1514.Springer Verlag,1998,pp.35-49.),该方案是欧洲密码标准NESSIE推荐的数字签名算法(http://www.cryptonessie.org),主要在智能卡等特殊的领域中使用。
MQ公钥密码体制的公钥的一般形式为:
xi,yj,αi,βij,γijk∈F,1≤i≤n,m>n
其中,F为规定的域。由于m>n,故MQ的公钥为不定方程组,属于不可逆函数。一般把公钥的逆函数规定为是与它相对应的私钥,即从y=(y1,...,ym)到x=(x1,...,xm)的可逆变换。
但是上述的现有技术都存在以下缺点:
PKI(Public Key Infrastructure)是基于公钥密码而建立起来的网络信任技术体制。近年来,PKI建设面临重大挑战,突出表现在管理成本急剧增加。从技术上看,主要原因是PKI技术体制难以适应超大规模网络的复杂使用环境,突出表现在:
(1)PKI是一种昂贵的技术,需要建立大型认证中心,实行密钥托管制度还需要建立大型私钥库,其工程建设、系统的运行维护费用很高,所需动员的人力、物力、财力,形成了巨大的经济泡沫。
(2)PKI难以实现认证的规模化。一个认证中心所能支持的用户数量受到在线访问能力的限制,一般只有几千个用户。
(3)PKI难以实现认证的直接性。这种技术体制把一个非常复杂的信任传播过程,简化成一个信任链,再把信任链作为安全性的基础,不仅缺少理论依据,而且还存在着不可预测的安全隐患。
例如,中国为每个公民身份证免费配发一个独立的公钥证书,就要对全国十三亿个证书和私钥进行添加、删除、修改,要在分布于全国的几百个数据库上联网操作,其管理成本的急剧增加、信任链的退化与崩溃、认证中心被攻击等,都将成为非常严峻的问题。
总之,迫切需要本领域技术人员解决的一个技术问题就是:如何运用简洁、廉价、高效、用户容量巨大、具有很强的抗攻击能力的新一代网络信任技术,来替换现有的PKI?
发明内容
本发明所要解决的技术问题是提供一种用于编码和译码数字消息的方法和装置,以实现基于身份的公钥密码体制,可以满足超大规模网络的复杂使用环境,能够符合网络信任体系建设的需求。
为了解决上述问题,依据本发明实施例,公开了一种用于编码和译码数字消息的方法,具体可以包括:
选择正整数m,n’,r,其中,m≥n’;生成一包含有E’(x,ID)的公钥,其中,所述E’(x,ID)为在域F上的从(x1,...,xm,ID1,...,IDr)到(y1,...,yn’)的非线性映射函数组,所述ID=(ID1,...,IDr)为授权用户的身份标识;针对身份标识为ID(K)的授权用户,生成一与该身份标识相对应的私钥;采用所述公钥和ID(K),对消息M进行编码,得到编码消息N;采用所述私钥对该编码消息N进行译码,得到译码消息L;或者,采用所述私钥对消息M’进行编码,得到编码消息N’;采用所述公钥和ID(K),对该编码消息N’进行译码,得到译码消息L’。
优选的,通过以下步骤建立私钥:计算得到D(y),所述D(y)与ID相关;将所述D(y)分为至少两个部分,保存在至少两个私钥分配中心,每个部分都与ID相关;各私钥分配中心根据授权用户的ID计算得到私钥的一部分,发送给该用户;该用户将私钥的各个部分合成,计算得到私钥。
进一步,所述方法还可以包括:在生成私钥的过程中,插入随机变换W()以及逆W-1()。
依据本发明实施例,还公开了一种用于编码和译码数字消息的系统,包括:
公钥生成单元,用于生成一包含有E’(x,ID)的公钥,所述E’(x,ID)为在域F上的从(x1,...,xm,ID1,...,IDr)到(y1,...,yn’)的非线性映射函数组,所述ID=(ID1,...,IDr)为授权用户的身份标识;其中,m,n’,r为正整数,m≥n’;
私钥生成单元,用于针对身份标识为ID(K)的授权用户,生成一与该身份标识相对应的私钥;
加解密单元,用于采用所述公钥和ID(K),对消息M进行编码,得到编码消息N;采用所述私钥对该编码消息N进行译码,得到译码消息L;
或者,签名验证单元,用于采用所述私钥对消息M’进行编码,得到编码消息N’;采用所述公钥和ID(K),对该编码消息N’进行译码,得到译码消息L’。
优选的,所述私钥生成单元进一步包括:
至少两个私钥分配中心,所述各私钥分配中心中保存有私钥函数D(y)的一部分,每个部分都与ID相关;所述各私钥分配中心用于根据授权用户的ID计算得到私钥的一部分,发送给该用户;
私钥合成装置,用于将私钥的各个部分合成,计算得到私钥。
与现有技术相比,本发明具有以下优点:
本发明实现了基于身份的公钥密码体制,可以满足超大规模网络的复杂使用环境,能够符合网络信任体系建设的需求。所谓“基于身份”,就是让公钥的内容就是用户的身份标志ID——诸如姓名、电话、Email等信息的某种组合,用这些信息本身,就能直接确定出这个公钥是属于谁的;而不再需要用一个公钥证书把用户的ID与这个用户的公钥绑定在一起。其实质是“全网所有用户共用一个公钥”。“基于身份”的实现为网络环境下的公钥管理带来的好处:一是经济效益显著;二是用户容量巨大;三是实现了公钥数据与用户标识的一体化管理。
从公开发表的现有技术看,本发明的优选实施例是第一个“既抗Shor量子攻击、又基于身份”的公钥密码体制。本发明为公钥密码应对量子计算的挑战,以及超大规模网络密钥管理的挑战,提供了一种开拓性的技术解决方案。其技术优势体现在:
(1)与MQ等抗量子计算的现有技术相比,全网所有用户共用一个公钥,有效地解决了超大规模复杂网络的密钥管理问题:
一是经济效益显著:不需要建立大型认证中心和私钥库,大大降低了系统建设成本和运行管理成本;
二是用户容量巨大:便于实现中央政府直接对最底层的亿万最终用户实行集中式、单层次的安全控制;
三是实现了公钥数据与用户标识的一体化管理,为网络环境下的信任管理带来了极大的方便,不再需要使用公钥证书的概念,让公钥信息本身就具备了以下属性:
可判定性:公钥不再是表面上无意义的随机字符串,从公钥的内容就能直接判断出这个公钥是属于谁的;
直观性:能以直观形象的表示方式解决权力特征的判定问题,例如用印鉴的图形作为权力部门的公钥,用指纹、照片作为自然人的公钥;
权威性:与现实世界的授权过程相匹配,对公钥的信任直接依赖于发放公钥的最高国家机关,按照权力机构的管辖方式和管辖范围建立自上而下的信任体系。
(2)其次,本发明具有很强的抗合谋攻击能力(即多个合法用户联合起来,利用他们共同掌握的足够多的公钥-私钥对,计算私钥生成函数的困难性):
一是在设定的合谋攻击规模的范围之内,私钥生成函数的安全性用信息论来描述,能达到理论上不可破译,也就是说:攻击者无法破译私钥生成函数,是由于缺少信息、而不是由于缺少计算能力,与计算数学的发展水平无关;
二是在设定的合谋攻击规模的范围之外,私钥生成函数的安全性用计算复杂性理论来描述,基于解一个复杂的大规模非线性方程组的困难性,按照当今世界的科学进展,这是计算上不可行的;
三是实现私钥形态个性化,用客观的随机变换来隐藏私钥,使得仅仅列出求解私钥生成函数的方程组,也是困难的;
四是能方便地实现分布式的、权力互相制约的安全控制,让各个私钥分配中心、各个用户,各自管理各自的秘密,谁也不能获得全部的秘密;
五是收集巨大数量的私钥在操作上的困难性,涉及到大量技术以外的因素,需要付出很高的代价。
附图说明
图1是一种用于编码和译码数字消息的方法实施例的步骤流程图;
图2是获取公钥和私钥的方法实施例的步骤流程图;
图3是图1所示实施例的数据流向示意图;
图4是多个私钥分配中心联合建立私钥的示意图;
图5是m=3、n=2的小数据实施例的加密或验证签名过程的数据流向图;
图6是m=3、n=2的小数据实施例的解密或签名过程的数据流向图;
图7是m=12、n=8的小数据实施例实现私钥形态个性化的数据流向图;
图8是m=12、n=8的小数据实施例的加密过程数据流向图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
本发明属于信息安全产品的范畴,主要应用于网络信任系统,例如证件、银行、手机、互联网、电子商务、电子政务、物流、网络监控、权力控制、资金转移、交易、数据加密等环节。
应用本发明所需的硬件环境属于本领域技术人员所熟知的知识。其中:公钥生成单元、私钥生成单元、私钥分配中心,涉及到复杂数学公式的自动化推导,一般应采用高端的计算机系统;加解密单元、签名验证单元、私钥合成装置,只涉及到对给定的数学式的求值计算,可采用各种档次的硬件平台,例如单片机、专用数字信号处理芯片、智能卡等。
下面对本发明可能涉及的一些术语进行简单解释:
密码:通常可理解为进行信息加密和解密变换的算法。它的基本目的是伪装信息,使局外人不能理解信息的真正含义,而局内人能够理解伪装信息的本来含义。
密钥:在执行密码算法的过程中,唯一能控制明文与密文之间进行有效变换的关键参数,叫做密钥。
公钥密码体制:公钥密码体制使用两个密钥——一个公开密钥(简称:公钥)和一个私人密钥(简称:私钥)。公钥和私钥在数学上是相关的,但由公钥计算出私钥是困难的。公钥可在通信双方之间公开传递,也可以像电话号码本一样公开发布,私钥则由授权用户自己秘密保管。任何人从某个用户的名字就能查到它的公钥,因而可以给这个用户发送加密消息。只有授权用户自己才能用他的私钥完成解密。
公钥密码体制还提供了数字签名及认证的能力:授权用户能用他的私钥对信息进行签名(相当于上述用私钥解密的过程);其他用户由于不掌握私钥而不能进行签名,但能用该用户的公钥验证签名的正确性(相当于上述用公钥加密的过程)。数字签名算法有两种类型:可恢复的数字签名体制:由签名可以推导出被签名的数据;不可恢复的数字签名体制:由签名不能推导出被签名的数据。
有限域(finite field):是一种具体而又形象的数学结构,可以通俗地理解为能进行加减乘除四则运算的有限个元素的集合。(通常记做F,当有限域的元素数量为素数p时,记做Fp。)
有限域上的多项式(polynomial):通俗地理解:当只有一个变元时:
f(x)=asxs+as-1xs-1+...+a0x0(modp)
其中xi叫作变元,ai叫作系数,aixi叫作项,它们的取值在0,...,p-1之间取值。当有多个变元时:
F上的多项式集合,对于多项式四则运算是域,叫作F的多项式扩域。
如果多项式中的项的数量相对很少,叫做稀疏多项式;反之叫做稠密多项式。稠密多项式不仅有很高的次数,而且项的数量非常多,把它展开来表示需要占用很大的空间位置。
有限域上的有理分式(rational fraction):可理解为两个多项式相除:
除了0多项式以外的多项式的乘法逆为
(f(x1,...,xn))-1(modp-1)=(f(x1,...,xn))p-2(modp)
但当p较大时,把上式展开需要巨大的存储空间,因此两个稀疏多项式相除(分母不为0多项式)的结果,通常是一个稠密多项式:
该性质对于我们理解有理分式公钥密码的安全性非常重要。F上的有理分式集合,对于有理分式的四则运算是域,叫作F的有理分式扩域。
有限域上的不定方程组(indeterminate equation system)设有限域上的方程组为:
其中gi(x1,...,xm)为多项式或者有理分式,如果未知元数量m多于方程数量n,上式称为Fp的m元n阶不定方程组,通常也称为丢番图方程。不定方程组的解是一个很大的(x1,...,xm)的向量值的集合。
当上述不定方程组有解时,它的解通常是一个由有限域上m维空间中的点组成的集合,可以表现为代数曲线、代数曲面乃至高度复杂的高维代数簇(若干个多项式的公共根的集合)。
单向函数:设函数为y=Hash(x),已知x计算y是容易的,反之由y计算x是困难的,这种函数称为单向函数,也叫做杂凑函数、散列函数、Hash函数等,已被广泛应用于数据完整性检验和信息认证。它把一个任意长度的数据x,经过复杂的运算转换成一个固定长度或固定数域的数值或信息串y。
构造单向函数的方法属于公知技术。当前最流行的单向函数算法是MD5和SHA-1(美国联邦信息处理标准FIPS 180-1);更强的单向函数算法还有SHA-256、SHA-384和SHA-512等(美国联邦信息处理标准FIPS 180-2)。
本发明中规定的域F,可采用元素数量为素数p的有限域Fp,但不局限于这种Fp,而是可以推广到各种域。当F为有限域时,函数或变元的幂运算,包括整数幂运算和分数幂运算,在经过展开、化简、整理之后,均可以转换成有理分式的表示形式。
本发明中所述的编码消息可以由一地点的用户产生,并传送至另一地点,然后由该另一地点的用户译码,即编码译码可以不在同一地点。当然,在同一地点进行编码和译码是一种更简单的情况。
参照图1,示出了本发明一种用于编码和译码数字消息的方法实施例,具体可以包括:
步骤101、选择正整数m,n’,r,其中,m≥n’;
步骤102、生成一包含有E’(x,ID)的公钥,其中,所述E’(x,ID)为在域F上的从(x1,...,xm,ID1,...,IDr)到(y1,...,yn’)的非线性映射函数组,所述ID=(ID1,...,IDr)为授权用户的身份标识;
步骤103、针对身份标识为ID(K)的授权用户,生成一与该身份标识相对应的私钥;
步骤104、采用所述公钥和ID(K),对消息M进行编码,得到编码消息N;采用所述私钥对该编码消息N进行译码,得到译码消息L;
或者,步骤105、采用所述私钥对消息M’进行编码,得到编码消息N’;采用所述公钥和ID(K),对该编码消息N’进行译码,得到译码消息L’。
上述步骤中并没有必然的先后顺序,例如,生成私钥的步骤103可以在生成公钥的步骤102之前,数字排序仅仅是为了说明的方便。
对于本实施例而言,可以应用各种编译码的场合,例如,步骤104主要应用于加解密的情况,而步骤105主要可以应用于数字签名和验证的情况。当然,对于不同的应用场合,参数不同,其编译码的性能也有优劣之分,本说明书后面会提出更为优选的实施例加以说明。
公钥E’(x,ID)为一组不可逆函数。对于给定的ID,由于x的变元数量m比函数数量n’多,已知(y1,...,yn’)求x时,E’(x,ID)为不定方程组,不存在x的唯一解。而E(x,ID)以及对应的D(y)则是一对互逆的函数。
设被签名的数据为y=(y1,...,yn),待验证的数据为y’=(y’1,...,y’n),由y产生的数字签名为x=(x1,...,xm),y和y’均为经过单向函数变换以后的数据。
运用私钥D(y)产生数字签名的数据处理方法为:x=D(y)。运用公钥E’(x,ID)验证数字签名的数据处理方法为:(y1,...,yn’)=E’(x,ID),如果(y1,...,yn’)=(y’1,...,y’n’),则接受签名x,否则拒绝签名x。根据y和y’中的n’个变量相同,可以在概率上判定它们的全部n个变量都相同。
优选的,图1所示的实施例可以通过以下步骤得到公钥和私钥(参照图2):
步骤201、选择正整数n,其中,m≥n≥n’,并且m>n’;
步骤202、设置由x到y的可逆非线性映射函数组:(y1,...,yn)=E(x,ID)=(E1(x1,...,xm,ID1,...,IDr),...,En(x1,...,xm,ID1,...,IDr));
步骤203、依据E(x,ID)的逆函数,生成私钥;
步骤204、选取E(x,ID)中的n’个函数作为E’(x,ID),得到公钥;其中,E’(x)含有关于(x1,...,xm)的函数:E’(x,ID)=(E1(x1,...,xm,ID1,...,IDr),...,En’(x1,...,xm,ID1,...,IDr))。
在设计中,一个给定的E(x,ID)不一定就是一个公钥E’(x,ID)(假设公钥没有其他参数时,公钥就可以认为是E’(xID)),根据n=n’还是n>n’,后者是前者的全部或一部分。
一个公钥在数学性质上、即在给定的输入输出消息的变换规则上,只对应一个私钥;当然这个私钥可以采用不同的表现形式。
建立公钥与私钥的具体方法很多,这属于数学设计方面的内容,在公钥体制的应用的这么多年中,本领域技术人员也具有了较多的针对该方面的技术沉淀,在此不详述了。但本发明可以给出一个较为优选的基本思路:随机产生若干个简单的可逆线性变换与可逆非线性变换,运用各种方法(迭代、相乘、相除、相加等)组装成一个整体,再展开、化简、整理而得到一个公钥;运用这些可逆线性变换和可逆非线性变换的逆函数,可以对公钥求逆,作为该公钥对应的私钥。
参照图3,所示的是本实施例的数据流向图,包括加解密和数字签名等数据处理流程。其中,m>n=n’时,可以用于加解密以及可恢复的签名;当m>n>n’时,可以用于不可恢复的签名。对于m=n=n’时,可以用于加解密,只不过安全性较低。
对于可恢复的签名,译码消息和原始消息的全部数据进行比较,即可判断出是否属于正确的签名;而对于不可恢复的签名(即说明书中n>n’的情况),是用译码消息与原始消息的一部分进行比较,即可判断出是否属于正确的签名。
优选的,本实施例也可以通过以下步骤得到公钥和私钥:
步骤a、选择正整数n,其中,m>n≥n’;
步骤b、设置接口函数R(x),其用于根据(x1,...,xm)得到n个关于(x1,...,xm)的函数:u0(x)=(u01(x1,...,xm),...,u0n(x1,...,xm))=R(x);
其中,最简单的R(x)为:对于m=n,把(x1,...,xm)转换为(x1,...,xn)的恒等变换。
在本步骤中,接口函数R(x)的功能可以理解为:把计算单向函数链x=H(w)而得到的m个变量(x1,...,xm),转换为n个关于(x1,...,xm)的函数,从而实现单向函数链H(w)与公钥E’(x,ID)的结合,并把经过单向函数链扩张后的中间结果再缩小回来。它的数学描述通常很简单,例如图5、图6中,对于m=3,n=2,把x1,x2,x3三个变量,转换为两个多项式:u01=x1+e3x3,u02=x2。R(x)的信息,包括u01、u02的函数形式和系数e3的数值,均属于非授权用户不应知道的秘密信息。当然,本领域技术人员可以依据R(x)的特性,设计出很多种模式,在此无法一一详述。
R(x)本身并不具有可逆性,但结合H(w)的知识它就可逆了。即虽然不能仅从u01、u02的值z1、z2来恢复x1、x2、x3,但是借助于完全公开的H(w)的知识“x3=H3(x2)”,以及隐藏在E(x,ID)中的R(x)的秘密参数e3,可依次计算出:x2=z2,x3=H3(x2),x1=z1-e3x3。
步骤c、选取s+1个域F上的n元可逆线性变换T=(T1,...,Ts+1),其中,每个Ti包括n个域F上的关于(α1,...,αn)的n元线性多项式;
步骤d、选取s个域F上的n元可逆非线性变换G=(G1,...,Gs),其中,每个Gi包括n个域F上的关于(α1,...,αn)的函数;其中,所述的函数可以包括多项式、有理分式等各种函数类型,本发明对此并不需要加以限定。
上述步骤c和d中,所述T和/或G中的至少一个系数为ID的映射函数。即,在T中任一个或者多个Ti的至少一个系数为ID的映射函数;和/或,在G中任一个或者多个Gi的至少一个系数为ID的映射函数。优选的,最后一层Ti中的至少一个系数为ID的映射函数;和/或,最后一层Gi中的至少一个系数为ID的映射函数。
这样做的好处是:限制了公钥E’(x,ID)的函数规模。例如,E’(x,ID)仅仅是关于(ID1,...,IDr)的一次函数。反之,如果把T1中的系数规定为ID的函数,经过非线性变换后ID的次数增加,使得公钥的函数规模太大,降低实用性。
步骤e、依据预置规则,合成所述u0(x)、T和G,得到从x、ID到y的非线性映射函数组:(y1,...,yn)=E(x,ID)=(E1(x1,...,xm,ID1,...,IDr),...,En(x1,...,xm,ID1,...,IDr));
合成所述u0(x)、T和G的目的,在于将Rv)、T和G的有关信息嵌入并隐藏在公钥中,这些信息均属于非授权用户不应知道的秘密信息。为了达到隐藏目的,采用各种预置合成规则都是可行的。把u0(x)、T和G从E’(x,ID)中分离出来非常困难,需要交替运用因式分解(factorization,主要针对“乘法”)和函数分解(decomposition,主要针对“迭代”)来分析隐藏在该不定方程组内部的多层嵌套结构。
步骤f、选取其中的n’个函数作为E’(x,ID),得到公钥;其中,E’(x,ID)中含有关于(x1,...,xm,ID1,...,IDr)的函数;E’(x,ID)=(E1(x1,...,xm,ID1,...,IDr),...,En’(x1,...,xm,ID1,...,IDr));
当m>n=n’,即步骤f中的选取并不删除函数,而选取E(x,ID)中所有的函数作为E’(x,ID)。此时本实施例可以用于加解密和数字签名等各种情况。
当m>n>n’,即步骤f中采用了舍弃一部分函数的方法,此时本实施例可以用于数字签名的情况。
当m=n=n’,此时的安全性能较差;当m=n>n’,此时本实施例可以用于数字签名的情况。进一步,如果本实施例中优选采用接口函数R(x)实现把m个变元,转换成n个多项式,则可以保证m>n。当然,如果依据实际情况需要m=n,则本领域技术人员可以根据各种现有技术得到,在此就不再详述。
步骤g、生成T的逆函数T-1,生成G的逆函数G-1;把授权用户的身份标识的值ID(K)代入T-1和G-1,计算出与该身份标识相关的D(y);生成与该身份标识相对应的私钥,所述私钥包括R(x)和D(y)。
上述步骤e中所述的预置规则,可以由本领域技术人员根据实际情况进行设置即可。
优选的,如果期望得到的E’(x,ID)中含有关于(x1,...,xm,ID1,...,IDr)的有理分式函数,则所述预置规则可以为以下两种情况:
把函数组u0(x)代入到T1,把T1代入到G1,把G1代入到T2,把T2代入到G2,...,把Tj代入到Gj,...,把Ts代入到Gs,把Gs代入到Ts+1;
或者,把函数组u0(x)代入到T1,把T1代入到G1,把G1代入到T2,把T2代入到G2,...,把Tj代入到Gj,...,把Ts代入到Gs。
对于上述两种可能的方式而言,当最后为线性变换Ts+1时,所得到的有理分式的公钥,其每个有理分式的分母多项式是相同的;当最后为非线性变换Gs时,其公钥中每个有理分式的分母多项式通常都不同。对于工程应用,默认相同的分母,可以节省公钥存储空间(只要存储n+1个,而不是2n个多项式),提高运算速度(只要计算n+1个,而不是2n个多项式的值)。
所述E’(x,ID)中含有关于(x1,...,xm,ID1,...,IDr)的函数形式可以为多项式,优选的,可以为多项式和有理分式的组合,或者全部由有理分式组成。
与多项式相比,有理分式具有显著增大的加密函数规模。为了便于分析,我们把有限域Fp上的有理分式转换为等价的多项式。例如,设本发明的公钥的次数为2,把它转换成多项式的表示形式:
其项的数量将由 增加到大约 例如,当p=5,m=2时:
而当p=65537,m=8时,这种等价于有理分式的多项式的项的数量,将由MQ时的 大约增加到
显然,规模如此巨大的多项式,虽然在数学世界中是客观存在的,但需要占用指数级的存储空间,实际上是难以操作的。这种性质的有益效果为:把MQ的二次稀疏多项式提升为高次稠密多项式,使等价于公钥的多项式函数的规模发生爆炸,从本质上提高了求不定方程组的逆函数的困难性,从而显著增加抗破译能力。
从数学角度描述本实施例的一个优选例子(以有理分式为例)如下:
设ID为经过规定的变换以后的用户身份标识,ID=(ID1,...,IDr),r为正整数,IDi∈F;把公钥E’(x)中的系数规定为ID的映射函数,该公钥经过展开、化简、整理后可表示为F上的m+r元非线性变换:
(y1,...,yn’)=E’(x,ID)
=(E1(x1,...,xm,ID1,...,IDr),...,En’(x1,...,xm,ID1,...,IDr)),
1≤i≤m,1≤j≤n,1≤k≤r,πj0≥0,πj1≥0,τ>0,
并且在π10,π20,...,πn’0中至少有一个πj0≥1;把该E’(x,ID)作为公钥密码系统中全体用户共享的基于身份的公钥。
本实施例中结合“ID映射”的目的在于:实现基于身份的公钥密码体制。下面详细描述具体实现过程的例子:
第一步、把密码参数T、G规定为ID的函数
设授权用户的身份标识ID=(ID1,...,IDr),r为正整数,IDi∈F;由私钥分配中心把T、G中的函数的系数,规定为ID的映射函数,从而使T、G成为ID的函数;
第二步、把T、G合成为E(x,ID),建立公钥E’(x,ID)
把u0(x)、T、G合成为F上的非线性变换:
y=(y1,...,yn)=E(x,ID)
=(E1(x1,...,xm,ID1,...,IDr),...,En(x1,...,xm,ID1,...,IDr)),展开、化简以后,
1≤i≤m,1≤j≤n,1≤k≤r,πj0≥0,πj1≥0,τ>0;
令E’(x,ID)=(E1(x1,...,xm,ID1,...,IDr),...,En’(x1,...,xm,ID1,...,IDr)),
把E’(x,ID)作为全体用户共享的公钥,公开发布;
第三步、把T-1、G-1合成为D(y),建立每个用户的私钥
私钥分配中心把授权用户的ID代入密码参数T-1、G-1,把T-1、G-1合成为D(y),然后把{D(y),R(x)}作为私钥,发给授权用户秘密保存;
在上述合成中,ID的微小差别,在经过一系列公式推导后,所得到的公钥和私钥将出现巨大的差别。
第四步、进行加密与解密、数字签名与验证
把授权用户K的身份标识ID(K),代入E’(x,ID),推导出E’K(x),再进行加密或验证数字签名的数据处理,即:y=E’K(x)=E’(x,ID(K))。
为更清楚地表述上述实施例,下面描述一个小数据的例子:
设F为有限域Fp,p=17,m=n=2,n’=1,s=1,r=1,即ID=(ID);设线性变换T=(T1,T2),T1由A1、B1组成,T2由A2、B2组成,其中:B1=(b11,b12)=(1,2),B2=(b21,b22)=(5+15ID+ID2,6+16ID+ID2),
设非线性变换G=(G1),G1=(G11,G12),其中:
G11(1): G12(2):
G11(1) -1 G12(2) -1:
运用上述参数推导出E(x,ID):
u01=x1,u02=x2,
v11=(a111u01+a112u02+b11)modp,
v12=(a121u01+a122u02+b12)modp,
u11=(1/v11)modp,u12=(v11/v12)modp,
v21=(a211u11+a212u12+b21)modp,
v22=(a221u11+a222u12+b22)modp;
代入具体的值,推导出由x、ID到y的映射函数组为:
y=(y1,y2)=E(x,ID)=(E1(x1,x2,ID),E2(x1,x2,ID)),其中:
y1=E1(x1,x2,ID1)=((16+10ID+13ID2+5x1+10IDx1+9ID2x1+2IDx1 2+7ID2x1 2+6x2+14IDx2+11ID2x2+8x1x2+15IDx1x2+16ID2x1x2+16x2 2+5IDx2 2+4ID2x2 2)/(12+13x1+x1 2+14x2+9x1x2+14x2 2))mod 17,
y2=E2(x1,x2,ID)=((13+7ID+13ID2+10x1+15IDx1+9ID2x1+13x1 2+15IDx1 2+7ID2x1 2+14x2+5IDx2+11ID2x2+14x1x2+4IDx1x2+16ID2x1x2+10x2 2+16IDx2 2+4ID2x2 2)/(12+13x1+x1 2+14x2+9x1x2+14x2 2))mod 17,
把该E(x,ID)中的一部分函数规定为全体用户共享的基于身份的公钥E’(x,ID),例如设E1(x1,x2,ID)为公钥,而E2(x1,x2,ID)不是公钥。
然后,私钥分配中心运用ID的值,推导出对应的解密函数,即私钥D(y):
u11=(c211(y1-b21)+c212(y2-b22))modp,
u12=(c221(y1-b21)+c222(y2-b22))modp,
v11=(1/u11)modp,
v12=(v11/u12)modp,
u01=(c111(v11-b11)+c112(v12-b12))modp,
u02=(c121(v11-b11)+c122(v12-b12))modp;
设ID=6,代入上述的函数组,推导出对应的私钥D(y)为:
x=(x1,x2)=D(y)=(D1(y1,y2),D2(y1,y2)),其中:
设被签名的数据y”=(4,13),y”的数字签名为:x=D(y)=(2,3);检验签名(2,3)的正确性时,计算:y1=E1(x1,x2)=4,如果待验证的数据y’1=4,则接受该签名,否则拒绝该签名。
相应的,针对上述实施例,本发明还提供了一装置实施例,包括以下模块:
公钥生成单元,用于生成一包含有E’(x,ID)的公钥,所述E’(x,ID)为在域F上的从(x1,...,xm,ID1,...,IDr)到(y1,...,yn’)的非线性映射函数组,所述ID=(ID1,...,IDr)为授权用户的身份标识;其中,m,n’,r为正整数,m≥n’;
私钥生成单元,用于针对身份标识为ID(K)的授权用户,生成一与该身份标识相对应的私钥;
加解密单元,用于采用所述公钥和ID(K),对消息M进行编码,得到编码消息N;采用所述私钥对该编码消息N进行译码,得到译码消息L;
或者,签名验证单元,用于采用所述私钥对消息M’进行编码,得到编码消息N’;采用所述公钥和ID(K),对该编码消息N’进行译码,得到译码消息L’。
下面介绍一些上述实施例具体实现过程中的诀窍性知识。
如何使得公钥中ID的次数比较低、私钥中的等价的ID的次数非常高:
(1)在加密的最后一层密码参数(例如Gs中的系数)中注入ID的映射,对于推导解密函数的推导过程来说,相当于在第一层就注入了ID的映射,经过后面的多层非线性变换,使解密函数中的ID的次数得到放大。
(2)使用比较大的n,在解密时依次计算vi1,...,vin的过程中,由于vi,j-1要参与vij的运算,使得解密函数的ID的次数被串行放大。
(3)采用其非线性次数保持不变的非线性变换,例如把Gj设置为:
tjkl,tj0l∈Fp,ujk,vjk∈Fp(x1,...,xm),k=1,...,n,
然后由Gj推导出Gj -1。例如,对于n=2,Gj -1=(Gj1 -1,Gj2 -1)为:
显然,若把上述加密过程中的系数tjkl规定为ID的映射函数,则解密过程ID的次数是加密过程中ID的次数的n倍,而y的次数却保持不变。
进一步,本实施例中建立私钥的方法可以优化如下,包括以下子步骤:
子步骤a、由T-1和G-1计算得到D(y),并且,所述D(y)与ID相关;
子步骤b、将所述D(y)分为至少两个部分,保存在至少两个私钥分配中心,每个部分都与ID相关;
子步骤c、各私钥分配中心把授权用户标识ID(K)代入各自秘密保存的那部分D(y),计算出私钥的一部分,发送给该用户;
子步骤d、该用户将各部分的私钥合成,计算得到私钥。
同时,对于前述的装置实施例而言,其中的所述私钥生成单元进一步包括:
至少两个私钥分配中心,所述各私钥分配中心中保存有私钥函数D(y)的一部分,每个部分都与ID相关;所述各私钥分配中心用于根据授权用户的ID计算得到私钥的一部分,发送给该用户;
私钥合成装置,用于将私钥的各个部分合成,计算得到私钥。
从数学角度对上述过程的一个例子描述如下(如图4所示):
(1)、由网络中唯一的一个一级私钥分配中心KDC11建立公钥E’(x,ID),并建立对应于E’(x,ID)的私钥生成函数:
z=(z1,...,zn)=D(y,d1,d2,...)
=(D1(y1,...,yn,d1,d2,...),...,Dn(y1,...,yn,d1,d2,...)),该函数中的变元d1,d2,...是ID的映射函数:d1=f1(ID),d2=d2(ID),...;
(2)、KDC11按照约定的方法,把D(y,d1,d2,...)分离成h个部分:{D(1)(y,d1,d2,..,D(h)(y,d1,d2,...)},分别发给h个二级私钥分配中心,即对于1≤j≤h,把D(j)(y,d1,d2,...)发给KDC2j秘密保存;并把f1(ID),f2(ID),...,发给所有的二级私钥分配中心秘密保存;其中,所述的“把D(y,d1,d2,...)分离成h个部分”的具体实现方法,属于公知技术。
(3)、在为某个授权用户K建立私钥时,KDC21,...,KDC2h分别先把该授权用户K的身份标识ID(K)的值,代入到ID的映射函数f1(ID),f2(ID),...,计算出d1,f2,...的值;再把d1,d2,...的值代入到KDC21,...,KDC2h各自秘密保存的D(j)(y,d1,d2,...),计算出DK (j)(y),然后分别把DK (j)(y)发给该用户。
(4)、授权用户K从KDC21,...,KDC2h分别领取DK (1)(y),...,DK (h)(y),按照约定的方法,还原为该用户的完整的私钥DK(y)。
采用多个私钥分配中心合成私钥的技术点,是为了保证即使是私钥分配中心的内部人员,也无法窃取用户的私钥。
下面描述一个小数据的例子:
在前述的实施例中,设A1,B1中的元素是数,A2,B2中的元素是ID的映射函数,G中没有参数,则私钥生成函数为:
x=(x1,x2)=D(y,A2,B2)=(D1(y,A2,B2),D2(y,A2,B2)),其中:
x1=D1(y1,y2,a211,a212,a221,a222,b21,b22)
=((-a212 2a221 2+2a211a212a221a222-a211 2a222 2-2a212a221 2b21+2a211a221a222b21+2a211a212a221b22-2a211 2a222b22+2a212a221 2y1-2a211a221a222y1-2a211a212a221y2+2a211 2a222y2)/(a221a222b21 2-a212a221b21b22-a211a222b21b22+a211a212b22 2-2a221a222b21y1+a212a221b22y1+a211a222b22y1+a221a222y1 2+a212a221b21y2+a211a222b21y2-2a211a212b22y2-a212a221y1y2-a211a222y1y2+a211a212y2 2))mod 17
x2=D2(y1,y2,a211,a212,a221,a222,b21,b22)
=((a212 2a221 2-2a211a212a221a222+a211 2a222 2+3a212a221 2b21-3a211a221a222b21-a221a222b21 2-3a211a212a221b22+3a211 2a222b22+a212a221b21b22+a211a222b21b22-a211a212b22 2-3a212a221 2y1+3a211a221a222y1+2a221a222b21y1-a212a221b22y1-a211a222b22y1-a221a222y1 2+3a211a212a221y2-3a211 2a222y2-a212a221b21y2-a211a222b21y2+2a211a212b22y2+a212a221y1y2+a211a222y1y2-a211a212y2 2)/(2a221a222b21 2-2a212a221b21b22-2a211a222b21b22+2a211a212b22 2-4a221a222b21y1+2a212a221b22y1+2a211a222b22y1+2a221a222y1 2+2a212a221b21y2+2a211a222b21y2-4a211a212b22y2-2a212a221y1y2-2a211a222y1y2+2a211a212y2 2))mod 17
设h=2,把D(y,A2,B2)分解成2部分,例如可以规定为:
D(1)(y,A2,B2)=D(y,A2,B2)中的两个分子多项式,
D(2)(y,A2,B2)=D(y,A2,B2)中的两个分母多项式。
KDC11把上述的D(1)(y,A2,B2)发给KDC21,把D(2)(y,A2,B2)发给KDC22,同时把ID对于d1,d2,...的映射函数也发给它们。
为某个授权用户建立私钥时,KDC21、KDC22分别先把该用户的ID代入映射函数:
(b21,b22)=(5+15ID+ID2,6+16ID+ID2),
计算出a211,a212,a221,a222,b21,b22,并分别代入到:
D(1)(y,a211,a212,a221,a222,b21,b22),D(2)(y,a211,a212,a221,a222,b21,b22),计算出D(1)(y)、D(2)(y),然后分别发送给该用户;
授权用户从KDC21、KDC22分别领取D(1)(y)、D(2)(y),然后按照规定的方法还原为D(y)。例如当ID=6时,私钥D(y)为:
x=(x1,x2)=D(y)=(D1(y1,y2),D2(y1,y2)),其中:
上述方案中:各KDC2i并不是由于管理制度和计算能力的制约、而是由于缺少信息,而无法窃取到用户的私钥;而掌握全部秘密的KDC11平时处于关闭封存状态,不直接参与建立私钥。建议KDC11在建立私钥生成函数时,对有关变量(例如a211,a212,a221,a222,b21,b22)重新命名,可达到更好的效果。
为了实现私钥形态的个性化,本实施例还可以进一步包括步骤:在生成私钥的过程中,插入随机变换W()以及逆W-1()。
从数学角度对的私钥形态个性化描述如下:
在合成私钥D(y)的过程中,插入随机变换W()以及逆W-1():
D(y)=Db(Da(y))=Db(W-1(W(Da(y))))=D’b(D’a(y)),
其中D’a()=W(Da()),D’b()=Db(W-1()),把W()、W-1()分别从D’a()、D’b()中分解出来是困难的。W()、W-1()的具体实现方法属于公知技术。
总之,实现私钥形态个性化的基本构思是:在推导D(y)的过程中插入随机变换,以掩盖D(y)与ID之间的相关性,并把R(x)隐藏起来;从而使得:对于不同用户的私钥D(y),不仅其数学性质不同,而且其函数的表达形式还受到了两种相互独立的因素——来自ID和随机变换——的双重控制,有效地提高了抗合谋攻击能力。
进一步,本实施例还可以结合单向函数链的技术点,即还包括设置单向函数链H(w),以及单向函数链的逆函数H-1(z)的步骤;由于在其基础上引入了单向函数链,用于先将原始消息进行扩张,然后再压缩,并能够满足可逆的需求,因而,能够在具有较高安全性能的情况下适用于各种加解密和数字签名的场合。单向函数链有两个性质:
一是复杂性:其数学性质应理解为稠密多项式函数组:
xj=fj(w1,...,wn),
xj,wi∈F,1≤j≤m,1≤i≤n,
上式作为把明文变换成密文的置换方程组的一部分,使解方程遇到巨大困难;
二是可逆性:当m>n时,(x1,...,xm)中有一部分变元是多余的,只需要其中的n个变元就能恢复出(w1,...,wn)。例如在图5、图6的实施例中,不使用x3,只要运用x1、x2依次计算:w2=x2-H2(x1),w1=x1-H1(w2),就能恢复出w1、w2。
实现上述性质的基本方法是:对于i=1,2,...(其顺序可任意规定),不断把wj(j≠i),经过单向函数的变换后,加到wi上。仍以图5、图6为例:把w2经过H1的变换后加到w1,得到x1,再把x1经过H2的变换后加到w2,得到x2,依此类推,实现多层单向函数嵌套的、可逆的单向函数链。
则,本实施例中具体的编译码步骤就可以优化为:
针对加解密的情形,可以为:通过单向函数链H(w)将原始消息转换为中间结果消息M,采用所述公钥和ID(K),对消息M进行编码,得到编码消息N;以及,采用所述私钥对该编码消息N进行译码,得到译码消息L,通过单向函数链的逆函数H-1(z)将中间结果消息L转换为最终译码结果;
针对签名的情形,可以为:采用所述私钥对消息M’进行编码,得到中间结果z,通过单向函数链的逆函数H-1(z)将中间结果z转换为数字签名消息N’;以及,通过单向函数链H(w)将数字签名消息N’转换为中间结果x,采用所述公钥和ID(K),对该中间结果x进行译码,得到译码消息L’。
下面对前述实施例与单向函数链结合的详细实现过程举例进行描述。设定直接将E’(x,ID)作为公钥(即公钥不含有其他参数),并以E’(x,ID)中含有有理分式函数为例进行说明。详细步骤如下:
第一步、建立单向函数链H(w)
首先,设置密码算法的结构。例如设F为有限域Fp,p为素数,正整数m≥n≥n’并且m>n’。设w=(w1,...,wn),x=(x1,...,xm),y=(y1,...,yn),z=(z1,...,zn),ID=(ID1,...,IDr),wi,xi,yi,zi,IDi∈F。
建立单向函数链:x=H(w),其运用若干个单向函数H1(.),...,HL(.)的组合运算,把w转换为x,该H(w)是一个足够复杂的、可逆的非线性变换;
建立函数R(x):u0(x)=(u01(x1,...,xm),...,u0n(x1,...,xm))=R(x),其把x转换为n个关于x1,...,xm的m元多项式;
由H(w)、R(x)推导出单向函数链的逆:w=H-1(z),其满足:w=H-1(R(H(w)));
把H(w)作为公开的密码算法的一部分,把R(x)作为私钥的一部分,计算H-1(z)需要使用R(x)。
第二步、建立密码参数T、G,并把T、G规定为ID的函数,具体步骤为:
(1)随机选择s+1个F上的n元线性变换T,其中,每个n元线性变换Ti由n个F上的关于α1,...,αn的n元线性多项式组成:
T=(T1,...,Ts+1),其中:
Ti=(Ti1(α1,...,αn),...,Tin(α1,...,αn)),
βj=Tij(α1,...,αn)=bij0+bij1α1+bij2α2+...+bijnαn,
αj,βj,bijk∈F,1≤i≤s+1,1≤j≤n,0≤k≤n;
然后,推导出T的逆函数T-1,即分别推导出上述的s+1个n元线性变换的逆变换,其中,每个逆变换Ti -1由n个F上的关于β1,...,βn的n元线性多项式组成:
T-1=(T1 -1,...,Ts+1 -1),其中:
Ti -1=(Ti1 -1(β1,...,βn),...,Tin -1(β1,...,βn)),
αj=Tij -1(βj,...,βn)=cij0+cij1β1+cij2β2+...+cijnβn,
αj,βj,cijk∈F,1≤i≤s+1,1≤j≤n,0≤k≤n。
(2)随机选择s个F上的n元可逆非线性变换G,每个n元可逆非线性变换Gi由n个F上的关于α1,...,αn的n元函数组成:
G=(G1,...,Gs),其中
Gi=(Gi1(α1,...,αn),...,Gin(α1,...,αn)),
然后,推导出G的逆函数G-1,即分别推导出上述的s个n元可逆非线性变换的逆变换,其中,每个逆变换Gi -1由n个F上的关于β1,...,βn的n元函数组成:
G-1=(G1 -1,...,Gs -1),其中:
Gi -1=(Gi1 -1(β1,...,βn),...,Gin -1(β1,...,βn)),
所述的T、T-1、G、G-1的具体实现方法均为公知技术。
(3)把T、G中的函数中的一部分系数,规定为ID的映射函数,从而使T、G成为ID的函数。
第三步、把R(x)、T、G合成为E(x,ID),建立公钥E’(x,ID)
把所述的R(x)、T、G合成为:
E(x,ID)=Ts+1(Gs(Ts(...Gj(Tj(...G2(T2(G1(T1(u0(x))))...))...))),即把函数组u0(x)代入到T1,把T1代入到G1,把G1代入到T2,把T2代入到G2,...,把Tj代入到Gj,...,把Ts代入到Gs,把Gs代入到Ts+1。在合成过程中也可以不使用线性变换Ts+1。最后,把u0(x)、T、G合成为F上的非线性变换:
y=(y1,...,yn)=E(x,ID)
=(E1(x1,...,xm,ID1,...,IDr),...,En(x1,...,xm,ID1,...,IDr)),展开、化简以后,
1≤i≤m,1≤j≤n,1≤k≤r,πj0≥0,πj1≥0,τ>0;
当πj0=0时,Ej(x1,...,xm)为多项式;当πj0≥1时,Ej(x1,...,xm)为有理分式;
令E’(x,ID)=(E1(x1,...,xm,ID1,...,IDr),...,En’(x1,...,xm,ID1,...,IDr)),
把E’(x,ID)作为全体用户共享的公钥,公开发布。
第四步、把T-1、G-1合成为D(y),建立每个用户的私钥{D(y),R(y)}
私钥分配中心把授权用户的ID代入密码参数T-1、G-1,把T-1、G-1合成为D(y)。该D(y)可以采用各种函数表示形式:既可用展开、化简之后的n个函数式来表示,也可直接用T-1、G-1来表示,还可用其它函数形式来表示。然后把{D(y),R(x)}作为私钥,发给授权用户秘密保存。
在上述合成中,ID的微小差别,所对应的公钥和私钥将出现巨大的差别。
第五步、进行加密与解密、数字签名与验证
设经过单向函数变换以后的被签名的数据为y=(y1,...,yn)、待验证的数据为y’=(y’1,...,y’n);y和y’经过单向函数的数据处理;
把授权用户K的身份标识ID(K),代入E’(x,ID),推导出E’K(x),再进行加密或验证数字签名的数据处理。具体地说:
(1)若n=n’,即E’(x,ID)=E(x,ID)时,本发明既能实现加密,也能实现可恢复数据的签名,其方法为:
运用公钥E’(x,ID)进行加密或验证数字签名时,把明文w、或数字签名w,转换成密文y、或数据y,其计算方法为:y=E’K(x)=E’(x,ID(K)=E’(H(w),ID(K);如果y=y’,则接受签名,否则拒绝签名;
运用私钥{D(y),R(x)}进行解密或产生数字签名时,把密文y、或数据y,代入私钥计算出:w=H-1(z)=H-1(D(y));
(2)若n>n’,即 时,本发明只能实现不可恢复数据的签名,不能实现加密,其方法为:
运用私钥{D(y),R(x)}产生数字签名时,把数据y代入私钥计算出w=H-1(z)=H-1(D(y));运用公钥E’(x,ID)验证数字签名时,其计算方法为:
(y1,...,yn’)=E’K(x)=E’(x,ID(K))=E’(H(w),ID(K)),如果(y1,...,yn’)=(y’1,...,y’n’),则接受签名,否则拒绝签名。由y和y’的n’个变量相同,可以在概率上认为它们的n个变量都相同。
下面介绍一些上述具体实现过程中的诀窍性知识:
优选的建立T的方法是:随机设置由s+1个Fp上n阶可逆方阵组成的方阵组A={A1,...,As+1},其逆为A-1={A1 -1,...,As+1 -1},以及由s+1个Fp上n阶向量组成的向量组B={B1,...,Bs+1};其线性变换和逆变换为:vi=Aiui-1+Bi,ui-1=Ai -1(vi-Bi),i=0,...,s。这种“线性变换”,对于有理分式中多项式来说,当分式的加法需要通分时,将使该多项式的次数增加,应理解为一种非线性变换。
优选的建立G的方法是:预先建立一个足够大的函数库;以后在需要时,从该库中随机抽取若干个简单函数,按照一定规则组合成复杂的加解密函数。
其中,优选的建立函数库的方法是:选择若干种不同类型的、其自变量数目不超过n、并对于其最后一个自变量可逆的、Fp上的多项式函数或有理分式函数,按其自变量数目划分成n个类
S={S1,...,Sn},其中:
Si={β=G(ij)(α1,...,αi),αi=G(ij) -1(α1,...,αi-1,β),j=1,2,...},
αi,β∈Fp,i=1,...,n,
上式中的G(ij)、G(ij) -1表示自变量数目为i、在Si中的编号为j的一对互逆的函数。例如:对于i=1,在该函数库中S1至少可建立两条记录(设参数t1,t2,...∈Fp):
G(11):β=(t1α1+t2)modp;G(11) -1:
G(12): G(12) -1:
对于i=2,在函数库中S2至少可建立4条记录:
G(21):β=(t1α1α2+t2α1 2+t3α1)modp,G(21) -1:
G(22): G(22) -1:
G(23): G(23) -1:
G(24): G(24) -1:
建库完成后,还要分析其每种函数的性质、其若干函数的不同组合的性质、以及其最佳使用方式,制定出自动生成密码算法方案的规则和策略,并编写出实现这些规则和策略的软件。
进一步,运用上述的函数库建立G的方法是:对于i=1,...,s,为每个i从函数库S的n个类S1,...,Sn中分别随机选出一对互逆的函数:
G={G1,...,Gs},其中:Gi=(Gi1(1),...,Gin(n)),
G-1={G1 -1,...,Gs -1},其中:Gi -1=(Gi1(1) -1,...,Gin(n) -1),
Gij(j),Gij(j) -1∈Sj,1≤j≤n,
上式中的Gij(k)、Gij(k) -1分别表示其自变量数目为k、并对于其第k个自变量可逆、在G、G-1的第i个函数向量中的第j个函数。这种类型的G的优点是:在加密过程中,各函数之间是独立的,后一次计算不需要引用前一次计算的结果;但在解密过程中,后一次计算要引用前一次计算的结果,使得解密函数比加密函数复杂,即:第i层的加密函数向量Gi为:
ui1=Gi1(1)(vi1),
ui2=Gi2(2)(vi1,vi2),
uin=Gi2(2)(vi1,vi2,...,vin),
而第i层的对应的解密函数向量Gi -1的函数规模却发生了爆炸:
vi1=Gi1(1) -1(ui1),
vi2=Gi2(2) -1(vi1,ui2)=Gi2(2) -1(Gi1(1) -1(ui1),ui2),
vin=Gin(n) -1(vi1,vi2,...,vi,n-1,uin)
=Gin(n) -1(Gi1(1) -1(ui1),Gi2(2) -1(Gi1(1) -1(ui1),ui2),...,Gi,n-1(n-1) -1(...),uin)。
其他问题说明:当我们求有理分式的值时,可能会遇到虽然分母不是0多项式、但分母多项式作为函数的值为0、从而导致加解密发生错误。虽然其概率很小,仍应采取必要的容错或纠错措施。
为更清楚地表述本实施例的具体实施方式,下面描述一个小数据的例子,如图5、图6所示,其中,虚框501表示采用单向函数链x=H(w)进行处理的过程,虚框502表示采用公钥E’(x)进行处理的过程;虚框601表示采用私钥z=D(y)进行处理的过程,虚框602表示采用逆函数H-1(z)及私钥的秘密参数e3进行处理的过程。
设F为有限域Fp,p=17,n=n’=2,m=3,s=1,r=1,即ID=(ID);为便于验证,我们假定三个单向函数的算法相同,为H1(α)=H2(α)=H3(α)=α3 mod17,设置单向函数链H(w)的算法为:
x1=(w1+H1(w2))modp=(w1+w2 3)modp,
x2=(w2+H2(x1))modp=(w2+x1 3)modp=(w2+(w1+w2 3)3)modp,
x3=H3(x2)=x2 3modp=(w2+x1 3)3modp=(w2+(w1+w2 3)3)3modp;
函数R(x)的算法为:u01=(x1+e3x3)modp,u02=x2,设参数e3=2;
由私钥分配中心随机设置有关密码参数。设线性变换T=(T1,T2),T1由A1、B1组成,T2由A2、B2组成,其中:B1=(b11,b12)=(1,2),B2=(b21,b22)=(5+15ID+ID2,6+16ID+ID2),
设非线性变换G=(G1),G1=(G11,G12),其中:
G11(1): G12(2):
G11(1) -1: G12(2) -1
并运用上述参数推导出E(x,ID):
u01=(x1+e3x3)modp,u02=x2,
v11=(a111u01+a112u02+b11)modp,
v12=(a121u01+a122u02+b12)modp,
u11=(1/v11)modp,u12=(v11/v12)modp,
v21=(a211u11+a212u12+b21)modp,
v22=(a221u11+a222u12+b22)modp;
代入具体的值,推导出:
E(x,ID)=(E1(x1,x2,x3,ID),E2(x1,x2,x3,ID)),其中:
y1=E1(x1,x2,x3,ID)=v21
=((16+10ID+13ID2+5x1+10IDx1+9ID2x1+2IDx1 2+7ID2x1 2+6x2+14IDx2+11ID2x2+8x1x2+15IDx1x2+16ID2x1x2+16x2 2+5IDx2 2+4ID2x2 2+10x3+3IDx3+ID2x3+8IDx1x3+11ID2x1x3+16x2x3+13IDx2x3+15ID2x2x3+8IDx3 2+11ID2x3 2)/(12+13x1+x1 2+14x2+9x1x2+14x2 2+9x3+4x1x3+x2x3+4x3 2))mod 17,
y2=E2(x1,x2,x3,ID)=v22
=((13+7ID+13ID2+10x1+15IDx1+9ID2x1+13x1 2+15IDx1 2+7ID2x1 2+14x2+5IDx2+11ID2x2+14x1x2+4IDx1x2+16ID2x1x2+10x2 2+16IDx2 2+4ID2x2 2+3x3+13IDx3+ID2x3+x1x3+9IDx1x3+11ID2x1x3+11x2x3+8IDx2x3+15ID2x2x3+x3 2+9IDx3 2+11ID2x3 2)/(12+13x1+x1 2+14x2+9x1x2+14x2 2+9x3+4x1x3+x2x3+4x3 2))mod 17,
根据n=n’=2,我们规定E’(x)=E(x)。
然后,私钥分配中心运用ID的值,推导出对应的解密函数,即私钥D(y):
u11=(c211(y1-b21)+c212(y2-b22))modp,
u12=(c221(y1-b21)+c222(y2-b22))modp,
v11=(1/u11)modp,
v12=(v11/u12)modp,
u01=(c111(v11-b11)+c112(v12-b12))modp,
u02=(c121(v11-b11)+c122(v12-b12))modp;
私钥分配中心为各个授权用户建立私钥,例如,对于ID=6的用户,把ID的值代入有关的密码参数:
B2=(b21,b22)=(5+15ID+ID2,6+16ID+ID2)=(12,2),
然后推导出该用户的私钥D(y)为:
z=(z1,...,zn)=D(y)=(D1(y1,y2),D2(y1,y2)),其中:
计算单向函数链的逆H-1(z),需要使用私钥的秘密参数的e3:
x1=(z1-e3H3(z2))modp,
w2=z2-H2(x1)=(z2-H2(z1-e3H3(z2)))modp,
w1=x1-H1(w2)=((z1-e3H3(z2))-H1(z2-H2(z1-e3H3(z2))))modp;
虽然真实的单向函数是不可展开的,但按照本实施例的特殊规定:
w2=(z2-(z1-2z2 3)3)modp,
w1=(z1-2z2 3-(z2-(z1-2z2 3)3)3)modp;
例如:设明文w=(7,8),x=H(w)=(9,6,12),密文y=E(x,ID)=(4,9);z=D(y)=(16,6),恢复的明文w=H-1(z)=(7,8),说明上述加解密算法是正确的。同理可证明签名算法的正确性。
上述小数据实施例的私钥分配,也可以采用多个私钥分配中心合成私钥的技术点来实现:由于A1,B1中的元素是数,A2,B2中的元素是变元,G中没有参数,则私钥生成函数为
z=(z1,z2)=D(y,A2,B2)=(D1(y,A2,B2),D2(y,A2,B2)),其中:
z1=D1(y1,y2,a211,a212,a221,a222,b21,b22)
=((a212 2a221 2+15a211a212a221a222+a211 2a222 2+2a212a221 2b21+15a211a221a222b21+15a211a212a221b22+2a211 2a222b22+15a212a221 2y1+2a211a221a222y1+2a211a212a221y2-2a211 2a222y2)/(16a221a222b21 2+a212a221b21b22+a211a222b21b22+16a211a212b22 2+2a221a222b21y1+16a212a221b22y1+16a211a222b22y1+16a221a222y1 2+16a212a221b21y2+16a211a222b21y2+2a211a212b22y2+a212a221y1y2+a211a222y1y2+16a211a212y2 2))mod 17
z2=D2(y1,y2,a211,a212,a221,a222,b21,b22)
=((a212 2a221 2+15a211a212a221a222+a211 2a222 2+3a212a221 2b21+14a211a221a222b21+16a221a222b21 2+14a211a212a221b22+3a211 2a222b22+a212a221b21b22+a211a222b21b22+16a211a212b22 2+14a212a221 2y1+3a211a221a222y1+2a221a222b21y1+16a212a221b22y1+16a211a222b22y1+16a221a222y1 2+3a211a212a221y2+14a211 2a222y2+16a212a221b21y2+16a211a222b21y2+2a211a212b22y2+a212a221y1y2+a211a222y1y2+16a211a212y2 2)/(2a221a222b21 2+15a212a221b21b22+15a211a222b21b22+2a211a212b22 2+13a221a222b21y1+2a212a221b22y1+2a211a222b22y1+2a221a222y1 2+2a212a221b21y2+2a211a222b21y2+13a211a212b22y2+15a212a221y1y2+15a211a222y1y2+2a211a212y2 2))mod17
设二级私钥分配中心的数量h=2,把D(y,A2,B2)分解成2部分,例如:
D(1)(y,A2,B2)=D(y,A2,B2)中的两个分子多项式,
D(2)(y,A2,B2)=D(y,A2,B2)中的两个分母多项式。
KDC11把D(1)(y,A2,B2)发给KDC21,把D(2)(y,A2,B2)发给KDC22,同时把ID对于a211,a212,a221,a222,b21,b22的映射函数,以及R(x),也发给它们。
为某个授权用户建立私钥时,KDC21、KDC22分别先把该用户的ID代入映射函数,计算出a211,a212,a221,a222,b21,b22的值,再把这些值代入:
D(1)(y,a211,a212,a221,a222,b21,b22),D(2)(y,a211,a212,a221,a222,b21,b22),计算出D(1)(y)、D(2)(y),然后分别发送给该用户;
授权用户从KDC21、KDC22分别领取D(1)(y)、D(2)(y),然后按照规定的方法还原为D(y),即把分子多项式和分母多项式组合成有理分式。
为了更清楚地描述采用单向函数链技术之后,如何实现私钥形态的个性化,下面描述一个小数据的例子(如图7所示):在T1 -1、R-1之间插入随机线性变换W1()、W1 -1(),在G1 -1、T2 -1之间插入随机线性变换W2()、W2 -1(),其具体步骤如下:
第一步,计算:
u’1j=Du’1j(y1,...,y8),1≤j≤8,它们均为8元有理分式,其分子、分母均为线性多项式,分母相同。
第二步,依次计算:
v11=Dv11(u’11,...,u’18),其为8元2次有理分式;
v12=Dv12(u’11,...,u’18,v 11),其为9元2次有理分式;
v13=Dv13(u’11,...,u’18,v 11,v 12),其为10元2次有理分式;
v14=Dv14(u’11,...,u’18,v 11,v 12,v 13),其为11元2次有理分式;
v15=Dv15(u’11,...,u’18,v 11,...,v 14),其为12元2次有理分式;
v16=Dv16(u’11,...,u’18,v 11,...,v 15),其为13元2次有理分式;
v17=Dv17(u’11,...,u’18,v 11,...,v 16),其为14元2次有理分式;
v18=Dv18(u’11,...,u’18,v 11,...,v 17),其为15元2次有理分式;
上述的v 11,...,v 17:在推导公式时,代入v1j的变元符号;在进行解密计算时,代入v1j的值。
第三步,计算:
z’j=Dz’j(v11,...,v18),1≤j≤8,其为8元线性多项式;
第四步,依次计算:
xj=Dxj(z’1,...,z’8),j=7,8,其为8元线性多项式;
(x9,x10,x11,x12)=K2(x7,x8),其为一组单向函数的组合;
xj=Dxj(z’1,...,z’8,x9,x10,x11,x12),1≤j≤6,其为12元线性多项式;
(w1,...,w8)=K1 -1(x1,...,x8),其为一组单向函数的组合。
其中,(z1,...,z6)作为一组中间结果隐藏在第四步的计算过程中,可理解为私钥中的R(x)的参数也隐藏在个性化的私钥中,对授权用户保密。
当采用“多个私钥分配中心联合建立用户私钥”时,应使各个二级私钥分配中心都使用相同的Wi()、Wi -1()。
下面对单向函数链能够为编码译码过程带来的益处进行分析,以加解密和可恢复的签名过程为例进行说明。
当m>n=n’时,E’(x)=E(x),已知密文(或待签名的数据)y,破译明文(或关于数据y的签名)w,先要求中间结果x,这种情况相当于解不定方程组:
(y1,...,yn)=(E1(x1,...,xm),...,En(x1,...,xm))
其变元数量m大于方程式数量n,符合上述方程组的x的解很多,表现为一个巨大的解集。但是,我们把单向函数链与上述方程组放在一起,组成一个关于未知元w的联立方程组:
其中,单向函数链由若干个含有单向函数变换的方程式组成,例如对于说明书中m=3、n=2、只有三个单向函数H1、H2、H3的情况:
由于从w到y是可逆变换,上式为置换方程组,已知y求w有唯一解。然而,上式中的单向函数具有“以一种几乎随机的方式把比特串映射到比特串”的性质,即很难用一种简单的数学变换规则来描述其输入输出之间的规律性,它等价于稠密多项式,把它完全展开需要占用指数级的存储空间。因此,在解上述方程组时,要把某个含有单向函数的变量代入方程,就会遇到单向函数难以展开的困难,例如,把x1、x2、x3看作为w1、w2的函数,代入E1、E2,则本领域技术人员很快就会发现,把上式展开为关于w1、w2的多项式是不可行的。实际上,即使不把单向函数展开,随着单向函数嵌套层次的增加和复杂化,采用如上所述的函数形式,其函数规模也会发生组合爆炸。
下面从工程应用的角度,进一步理解密码算法的定量设计,对本发明进行更详尽的分析。参照图8,设n=n’=8,m=12,s=2:
(1)根据允许的加解密出错概率,设置足够大的p。
(2)设置合适的单向函数链,例如其K2部分把四个单向函数的功能合并在一个单向函数中。
(3)设置n、m、T、G应考虑以下因素:
不定方程组E’(x)=(y1,...,yn’)的解集的元素数量约为pm-n’,应大于264。
设δ是E’(x)关于x的次数,则一个m元δ次多项式的项的数量为 其反映了公钥的存储空间和加密速度,应尽量小。
设λ是D(y)关于y的次数,则一个n元λ次多项式的项的数量为Cn+λ λ,其反映了运用线性攻击法破译私钥的困难性,应尽量大。实施线性攻击的条件是已知函数z=u0=R(x),能大批量地随机产生(z、y)对。
在基于身份方式下,设τ是E’(x,ID)关于ID1,...,IDr的次数,则一个m+r元δ+τ次多项式的项的数量为Cm+δ δCr+τ τ,其反映了公钥的存储空间和加密速度,应尽量小。
在基于身份方式下,为了隐藏ID的映射函数,可把建立D(y)的推导过程划分成若干段:
D(y)=Dk(...Db(Da(y))...),
并把Da(),Db(),...,Dk()分别展开;由于ID映射到Da(y),因此该Da(y)的每个系数等价于一个关于ID的r元μ次多项式,该多项式的项的数量为Cr+μ μ,应使其远大于攻击者收集大量私钥的操作能力。
设p为32比特,n=8,m=12,s=2,G1为:
G11:u11=(t111v11+t112)modp,
G11 -1:
G1j: j=2,...,8,
G1j -1: j=2,...,8,
其中,参数t1jk、γ1jkh、ρ1jk、ε1j为二次有理分式中的系数;
G2采用如前所述的“其非线性次数保持不变的非线性变换”:
G2j: j=1,...,8
G2j -1: j=1,...,8
其中,G2 -1中的系数gijk,应理解为是关于G2中的系数t200,...,t288的8次函数;设G2是ID的1次函数,则G2 -1是ID的8次函数。
上述方案的有关技术指标和加解密步骤如下:
pm-n≈232(12-8)=2128; 即E(x)总共有91×9=819个项(8个相同的分母多项式,应算作为1个多项式);但在基于身份方式下,设τ=1,r=4, 即E’(x,ID)共有455×9=4095个项。其加密步骤为:
第一步,计算x=H(w):
(x1,...,x8)=K1(w1,...,w8),其为一组单向函数的组合;
(x9,x10,x11,x12)=K2(w7,w8),其为一组单向函数的组合;
第二步,计算E’(x,ID):
yj=Ej(x1,...,x12,ID1,...,ID4),1≤j≤8,其为16元3次有理分式。
D(y)关于y的次数λ=255, 即在已知R(x)的条件下进行线性攻击所需要的存储空间为:
在基于身份方式下,假设Da(y)关于y的次数为4,则μ=4×8=32,完成合谋攻击需要收集的私钥数量 提高该指标的主要方法是增加r。例如,当r由4增加到10时, 即E’(x,ID)的函数规模仅由4095个项增加到1001×9=9009个项,但其抗合谋攻击的指标Cr+μ μ却由58905增加到 增加了24979.9倍,相当于:若对我国的有14亿人口的公民身份证公钥密码系统进行合谋攻击,至少需要收买14亿7千万个私钥,显然失去了进行合谋攻击的意义。
当然:即使Da(y)关于y的次数为4,其函数规模仍然很大。为此,优选的,建议采用前述的“私钥形态个性化”技术点。
采用前述的优选实施例,通过运用ID映射的方法,建立基于身份的工作方式,使得全网所有用户共用一个公钥,为网络环境下的公钥管理带来了极大的方便;以及通过运用“多个私钥分配中心合成私钥”和“私钥形态个性化”的方法,提高密码系统的抗合谋攻击能力。
本说明书中的各个实施例均基于同一技术构思,所以在描述时重点说明的都是该实施例的独特之处,各个实施例之间相同相似的部分互相参见即可。并且,对于系统实施例而言,由于其基本相应于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上对本发明所提供的一种用于编码和译码数字消息的方法和系统,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处;综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1、一种用于编码和译码数字消息的方法,其特征在于,包括:
选择正整数m,n’,r,其中,m≥n’;
生成一包含有E’(x,ID)的公钥,其中,所述E’(x,ID)为在域F上的从(x1,...,xm,ID1,...,IDr)到(y1,...,yn’)的非线性映射函数组,所述ID=(ID1,...,IDr)为授权用户的身份标识;
针对身份标识为ID(K)的授权用户,生成一与该身份标识相对应的私钥;
采用所述公钥和ID(K),对消息M进行编码,得到编码消息N;采用所述私钥对该编码消息N进行译码,得到译码消息L;
或者,采用所述私钥对消息M’进行编码,得到编码消息N’;采用所述公钥和ID(K),对该编码消息N’进行译码,得到译码消息L’。
2、如权利要求1所述的方法,其特征在于,通过以下步骤得到公钥和私钥:
选择正整数n,其中,m≥n≥n’,并且m>n’;
设置由x到y的可逆非线性映射函数组:(y1,...,yn)=E(x,ID)=(E1(x1,...,xm,ID1,...,IDr),...,En(x1,...,xm,ID1,...,IDr));
依据E(x,ID)的逆函数,生成私钥;
选取E(x,ID)中的n’个函数作为E’(x,ID),得到公钥;其中,E’(x)含有关于(x1,...,xm)的函数:E’(x,ID)=(E1(x1,...,xm,ID1,...,IDr),...,En’(x1,...,xm,ID1,...,IDr))。
3、如权利要求1所述的方法,其特征在于,通过以下步骤得到公钥和私钥:
选择正整数n,其中,m>n≥n’;
设置接口函数R(x),其用于根据(x1,...,xm)得到n个关于(x1,...,xm)的函数:u0(x)=(u01(x1,...,xm),...,u0n(x1,...,xm))=R(x);
选取s+1个域F上的n元可逆线性变换T=(T1,...,Ts+1),其中,每个Ti包括n个域F上的关于(α1,...,αn)的n元线性多项式;
选取s个域F上的n元可逆非线性变换G=(G1,...,Gs),其中,每个Gi包括n个域F上的关于(α1,...,αn)的函数;
所述T和/或G中的至少一个系数为ID的映射函数;
依据预置规则,合成所述u0(x)、T和G,得到从x、ID到y的非线性映射函数组:(y1,...,yn)=E(x,ID)=(E1(x1,...,xm,ID1,...,IDr),...,En(x1,...,xm,ID1,...,IDr));
选取E(x,ID)中的n’个函数作为E’(x,ID),得到公钥;其中,E’(x,ID)中含有关于(x1,...,xm,ID1,...,IDr)的函数;E’(x,ID)=(E1(x1,...,xm,ID1,...,IDr),...,En’(x1,...,xm,ID1,...,IDr));
生成T的逆函数T-1,生成G的逆函数G-1;把授权用户的身份标识的值代入T-1和G-1,计算出与该身份标识相关的D(y);生成与该身份标识相对应的私钥,所述私钥包括R(x)和D(x)。
4、如权利要求1所述的方法,其特征在于,通过以下步骤建立私钥:
计算得到D(y),所述D(y)与ID相关;
将所述D(y)分为至少两个部分,保存在至少两个私钥分配中心,每个部分都与ID相关;
各私钥分配中心根据授权用户的ID计算得到私钥的一部分,发送给该用户;
该用户将私钥的各个部分合成,计算得到私钥。
5、如权利要求1所述的方法,其特征在于,还包括:
在生成私钥的过程中,插入随机变换W()以及逆W-1()。
6、如权利要求3所述的方法,其特征在于,最后一层Ti中的至少一个系数为ID的映射函数;和/或,最后一层Gi中的至少一个系数为ID的映射函数。
7、如权利要求3所述的方法,其特征在于,
还包括设置单向函数链H(w),以及单向函数链的逆函数H-1(z)的步骤;
则,具体的编译码步骤优化为:
通过单向函数链H(w)将原始消息转换为中间结果消息M,采用所述公钥和ID(K),对消息M进行编码,得到编码消息N;以及,采用所述私钥对该编码消息N进行译码,得到译码消息L,通过单向函数链的逆函数H-1(z)以及私钥将中间结果消息L转换为最终译码结果;
或者,采用所述私钥对消息M’进行编码,得到中间结果z,通过单向函数链的逆函数H-1(z)以及私钥将中间结果z转换为数字签名消息N’;以及,通过单向函数链H(w)将数字签名消息N’转换为中间结果x,采用所述公钥和ID(K),对该中间结果x进行译码,得到译码消息L’。
8、如权利要求1所述的方法,其特征在于,
所述E’(x,ID)中含有关于(x1,...,xm,ID1,...,IDr)的有理分式函数。
9、一种用于编码和译码数字消息的系统,其特征在于,包括:
公钥生成单元,用于生成一包含有E’(x,ID)的公钥,所述E’(x,ID)为在域F上的从(x1,...,xm,ID1,...,IDr)到(y1,...,yn’)的非线性映射函数组,所述ID=(ID1,...,IDr)为授权用户的身份标识;其中,m,n’,r为正整数,m≥n’;
私钥生成单元,用于针对身份标识为ID(K)的授权用户,生成一与该身份标识相对应的私钥;
加解密单元,用于采用所述公钥和ID(K),对消息M进行编码,得到编码消息N;采用所述私钥对该编码消息N进行译码,得到译码消息L;
或者,签名验证单元,用于采用所述私钥对消息M’进行编码,得到编码消息N’;采用所述公钥和ID(K),对该编码消息N’进行译码,得到译码消息L’。
10、如权利要求9所述的系统,其特征在于,所述私钥生成单元进一步包括:
至少两个私钥分配中心,所述各私钥分配中心中保存有私钥函数D(y)的一部分,每个部分都与ID相关;所述各私钥分配中心用于根据授权用户的ID计算得到私钥的一部分,发送给该用户;
私钥合成装置,用于将私钥的各个部分合成,计算得到私钥。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200710100308 CN101321060B (zh) | 2007-06-07 | 2007-06-07 | 一种用于编码和译码数字消息的方法和系统 |
PCT/CN2007/070266 WO2008148276A1 (fr) | 2007-06-07 | 2007-07-11 | Procédé et système de codage et de décodage de message numérique |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200710100308 CN101321060B (zh) | 2007-06-07 | 2007-06-07 | 一种用于编码和译码数字消息的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101321060A true CN101321060A (zh) | 2008-12-10 |
CN101321060B CN101321060B (zh) | 2011-06-08 |
Family
ID=40093148
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200710100308 Expired - Fee Related CN101321060B (zh) | 2007-06-07 | 2007-06-07 | 一种用于编码和译码数字消息的方法和系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN101321060B (zh) |
WO (1) | WO2008148276A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101540673B (zh) * | 2009-04-24 | 2011-02-16 | 武汉大学 | 公钥加解密方法及其数字签名方法 |
CN105828077A (zh) * | 2010-07-09 | 2016-08-03 | 三星电子株式会社 | 用于对变换系数进行熵编码/熵解码的方法和设备 |
CN106878011A (zh) * | 2017-02-27 | 2017-06-20 | 中国银联股份有限公司 | 一种密钥保存方法及装置 |
US10091529B2 (en) | 2010-07-09 | 2018-10-02 | Samsung Electronics Co., Ltd. | Method and apparatus for entropy encoding/decoding a transform coefficient |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7003107B2 (en) * | 2000-05-23 | 2006-02-21 | Mainstream Encryption | Hybrid stream cipher |
CN1221900C (zh) * | 2001-12-17 | 2005-10-05 | 北京兆日科技有限责任公司 | 动态电子密码设备及其资源共享系统的用户身份认证方法 |
CN1252790C (zh) * | 2002-11-19 | 2006-04-19 | Lg飞利浦显示器(韩国)株式会社 | 阴极射线管的偏转系统 |
CN1547342A (zh) * | 2003-12-04 | 2004-11-17 | 郑建德 | 基于整数环上矩阵经典分解问题的公钥密码算法 |
US7881466B2 (en) * | 2004-10-28 | 2011-02-01 | Irdeto B.V. | Method and system for obfuscating a cryptographic function |
CN100586065C (zh) * | 2006-04-24 | 2010-01-27 | 北京易恒信认证科技有限公司 | Cpk可信认证系统 |
-
2007
- 2007-06-07 CN CN 200710100308 patent/CN101321060B/zh not_active Expired - Fee Related
- 2007-07-11 WO PCT/CN2007/070266 patent/WO2008148276A1/zh active Application Filing
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101540673B (zh) * | 2009-04-24 | 2011-02-16 | 武汉大学 | 公钥加解密方法及其数字签名方法 |
CN105828077A (zh) * | 2010-07-09 | 2016-08-03 | 三星电子株式会社 | 用于对变换系数进行熵编码/熵解码的方法和设备 |
US10021420B2 (en) | 2010-07-09 | 2018-07-10 | Samsung Electronics Co., Ltd. | Method and apparatus for entropy encoding/decoding a transform coefficient |
US10021421B2 (en) | 2010-07-09 | 2018-07-10 | Samsung Electronics Co., Ltd. | Method and apparatus for entropy encoding/decoding a transform coefficient |
US10091529B2 (en) | 2010-07-09 | 2018-10-02 | Samsung Electronics Co., Ltd. | Method and apparatus for entropy encoding/decoding a transform coefficient |
CN105828077B (zh) * | 2010-07-09 | 2019-03-15 | 三星电子株式会社 | 用于对变换系数进行熵编码/熵解码的方法和设备 |
CN106878011A (zh) * | 2017-02-27 | 2017-06-20 | 中国银联股份有限公司 | 一种密钥保存方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2008148276A1 (fr) | 2008-12-11 |
CN101321060B (zh) | 2011-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101374043B (zh) | 密钥协商的方法、加/解密的方法及签名/验证的方法 | |
CN101321058B (zh) | 一种用于编码和译码数字消息的方法和系统 | |
US8744075B2 (en) | Quantum public key encryption system | |
CN101076968B (zh) | 使用拟群的密码原语、差错编码和伪随机数改进方法 | |
Jayapandian et al. | Secure and efficient online data storage and sharing over cloud environment using probabilistic with homomorphic encryption | |
CN101938463A (zh) | 安全地评估对加密信号施加的函数的方法 | |
CN103490883B (zh) | 一种多变量公钥加密/解密系统及加密/解密方法 | |
CN102750529B (zh) | 基于量子模糊承诺的指纹生物特征认证方法 | |
CN106941407A (zh) | 一种平台数据动态加密的方法和装置 | |
CN103346875B (zh) | 混沌保密通信系统中数字混沌密码的产生方法 | |
CN102449951B (zh) | 用于在电子组件中执行密码任务的方法 | |
Gafsi et al. | High securing cryptography system for digital image transmission | |
CN105516340A (zh) | 一种云存储数据可恢复性验证方法及系统 | |
JP2008513811A (ja) | 計算変換の方法及びシステム | |
CN101814985A (zh) | 应用多混沌映射多动态s盒的分组密码系统 | |
CN107147486A (zh) | 一种基于动态变长码的平台数据加密方法和装置 | |
CN101321060B (zh) | 一种用于编码和译码数字消息的方法和系统 | |
WO2014030706A1 (ja) | 暗号化データベースシステム、クライアント装置およびサーバ、暗号化データ加算方法およびプログラム | |
Ahmad et al. | A secure network communication protocol based on text to barcode encryption algorithm | |
CN103220130B (zh) | 数字混沌保密通信的加密及解密方法 | |
CN101582170B (zh) | 一种基于椭圆曲线密码体制的遥感图像加密方法 | |
CN107124273A (zh) | 一种基于动态授权码的平台数据加密方法和装置 | |
CN101321059B (zh) | 一种用于编码和译码数字消息的方法和系统 | |
CN114422130B (zh) | 一种基于量子幂函数混淆的量子加密方法 | |
Singh et al. | Hybrid Encryption Scheme (HES): An approach for transmitting secure data over internet |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110608 Termination date: 20130607 |