CN106850223B - 一种基于信息泄露的公钥密码系统的私钥获取方法 - Google Patents
一种基于信息泄露的公钥密码系统的私钥获取方法 Download PDFInfo
- Publication number
- CN106850223B CN106850223B CN201710121266.5A CN201710121266A CN106850223B CN 106850223 B CN106850223 B CN 106850223B CN 201710121266 A CN201710121266 A CN 201710121266A CN 106850223 B CN106850223 B CN 106850223B
- Authority
- CN
- China
- Prior art keywords
- branch
- jump
- index
- private key
- function
- 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.)
- Expired - Fee Related
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/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
- H04L9/3033—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to pseudo-prime or prime number generation, e.g. primality test
-
- 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/002—Countermeasures against attacks on cryptographic mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Complex Calculations (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于信息泄露的公钥密码系统的私钥获取方法。本方法首先从通信数据中检测出通信泄漏私钥的范围信息;然后通过预定义可区分点条件和利用三角函数进行周期迭代的方式,优化了Pollard’s kangaroos算法中每次跳跃过程中的计算代价;并且只有当相关结果满足本发明给定的可区分条件时才进行完全乘法运算操作,从而使得Pollard’s kangaroos算法总的时间代价降低。
Description
技术领域
本发明属于信息安全技术领域,具体内容涉及一种基于信息泄露的公钥密码系统的私钥获取方法。
背景技术
随着计算机技术和信息安全技术的推广,企业界信息安全意识的逐步加强,为了满足日益增长的用户需求,密码设备的密码运算速度被一再的提升。在保证高性能密码运算的前提下,每台密码设备的安全性也至关重要。
许多密码系统和协议(如Diffie-Hellman密钥交换协议、ELGamal加密系统、ELGamal数字签名系统、DSA签名系统等)的安全性都是基于离散对数问题的困难性。这些加密系统和协议被有效的应用于互联网(保证电子邮件,家庭银行业务以及网页浏览器的安全性)、金融服务业(电子现金,信用卡交易,即时提款等服务)以及无线通信(寻呼机,手机)中。目前存在的解决经典离散对数问题的算法有baby-step giant-step method、Pollard’s rho method、index calculus method以及Pollard’s kangaroos method。其中indexcalculus method是目前最快的算法,当群元素的光滑密度适当的时候其时间复杂度是亚指数,否则仍是其中n是群的阶。其他几种算法平均情况下的时间复杂度均是随着密码学的发展,出现了一些特殊的离散对数问题用于解决实际中的密码学问题,比如在某个区间上的离散对数问题。该问题的出现是由于在实际应用中,如果没有进行有效的保护措施,敌手可能通过某些侧信道攻击的手段获取关于离散对数的某些比特位信息,从而推断出待求解离散对数问题的指数所在的区间范围,之后敌手在进行离散对数求解时只需要在该区间范围内求解即可。因此关注区间上离散对数问题的求解,在实际密码系统安全中有重要的用途。
Pollard's kangaroos method(即袋鼠算法)是求解该问题的一个经典算法,而此时本发明求得即对应于相应密码系统、协议的私钥或者随机数,实现了相关密码系统或随机数的攻击。对该算法的改进也一直倍受人们关注。本发明提出一个新的改进Pollard’skangaroos算法,使得区间离散对数问题的求解效率得到提高。
发明内容
本发明提出了一种基于信息泄露的公钥密码系统的私钥获取方法,主要是通过预定义可区分点条件和利用三角函数进行周期迭代的方式,优化了Pollard’s kangaroos算法中每次跳跃过程中的计算代价;并且只有当相关结果满足本发明给定的可区分条件时才进行完全乘法运算操作,从而使得Pollard’s kangaroos算法总的时间代价降低。
具体到某个应用,例如在经典的DH密钥交换协议中,Alice和Bob双方约定了素数p,G=<g>是中q阶的循环子群,整数g作为群G的生成元,其中1<g<p。Alice随机选择一个整数a(保密)作为私钥,并计算X=ga modp;Bob随机选择一个大整数b(保密)作为自己私钥,并计算Y=gbmodp(注意gb是g的b次幂);Alice把X发送给Bob,Bob把Y发送给Alice,Alice计算K=Ya=gab,Bob计算K=Xb=gabmod p;此时K即是共享的密钥,用来对明文信息进行加密。而由共享密钥是得不到私钥的。即当gab,ga,gb已知时,由计算离散对数问题的困难性保证了得不到私钥a或b,从而保证了DH协议的安全性。当敌手可能根据现有的侧信道攻击技术获取关于离散对数的某些比特位信息,获得私钥的所在范围,把范围记为[0,N]。当私钥a在区间[0,N]上,ga此时记为h,则通过一个算法求解gamodp=h,就可得到私钥a,从而对基于信息泄露的数字签名标准、DH协议等基于离散对数困难问题的密码系统实现攻击。本发明把待求的Alice的私钥记为n,在这种情下面给出计算n的算法,根据计算结果确定通信是否安全,该算法主要步骤有:
(1)固定索引集合S={1,2,…,η},并作为跳跃步集合,私钥的取值范围[0,N],取u=η2;p是一个素数,G=<g>是中阶为q的循环子群;令集合M定义为M={Mk=gk|k0S,k是整数};设置两个小整数参数d,ε满足固定一个小正整数l,并且预计算集合Ml={M∪{l}}l。
(2)索引函数取为
(6)一个搜索路径的迭代过程,对应到一个G中的序列:算法开始于某一初始值g0∈G,在集合S中随机选取初始值s0=s(g0)。不用计算的乘积,可利用即将带入上述计算得到下次索引值s1,同样不用计算出g1就可得这里在步骤(1)中已预计算出。依次计算索引值s2,s3…,每次迭代计算索引值完成一次跳跃的过程中,都不用计算完全乘法,只有满足预定义可区分点的条件,即函数的结果落入区间中时,才计算一次完全乘法,并把结果存入相应的索引表中。获得此时对应的其中,已预计算,可通过查表得。
本发明通过定义两只kangaroos(表示两个迭代过程),分别记为T和W计算得到私钥n,其中,T和W分支对应的指数分别从区间[0,N]中点(即对应g0=gN/2)和g'0=h开始迭代跳跃,交替执行上述过程。分支T和W分别在集合S中随机选取初始值s0=s(g0)和s'0=s(g'0)并令两分支初始跳跃点和跳跃距离分别为 和d0(T)=0,d0(W)=0。用Ti,Wj分别表示两分支当前所在的第i(j)次跳跃过程,i和j分别从0开始。则按T0、W0、T1、W1、T2、W2…Ti-1、Wi-1如此交替执行下去,当Ti或Wj分支中函数的结果落入区间即满足预定义可区分点条件时,计算出当前分支对应的跳跃点值gi或gj,然后以三元组(gi,T/W)的形式记录。这里用di(T)记录T分支的前i次的跳跃距离和用dj(W)记录W分支的前i次的跳跃距离和,即对应各自三元组中的值,然后将三元组各自以gi或gj为索引存入索引表Lt或Lw中。某个gi被不同类型分支(T或者W)kangaroos访问时即发生碰撞,算法终止,输出私钥n=N/2+di(T)-dj(W)。
与现有技术相比,本发明的积极效果为:
本发明中的新的改进Pollard’s kangaroos算法提出的函数是将一次完全整数乘法转换为多次小整数乘法的关键。函数计算量约为d||ε||||N||次比特运算,明显小于原来完全乘法所用的||p||2次比特运算。对于1024比特的素数的乘法用171次6比特与6比特乘法共进行了6156次比特运算和经典Pollard’s kangaroos算法进行完全乘法所用的1049576次比特运算相比,迭代计算量大大降低相比。从而具有降低算法的每次跳跃的计算代价的作用,使得算法总的运行效率得到提高。另外改进是:本发明通过设定预定义的可区分点条件,进行一定量的预计算和优化参数设置,使其更加简洁明确。分析和实验表明,相比之前的工作,该算法有明显优势。
附图说明
图1为分支T一次跳跃过程的示意图。
图2为分支W一次跳跃过程的示意图。
图3为算法中分支T和W的总的跳跃过程的示意图。
具体实施方式
图1是本发明采用kangaroo分支T的跳跃过程的示意图,描述了第i次跳跃过程。图2则是说明kangaro分支W的第j次跳跃过程。图3则说明改进Pollard’s kangaroos算法的两个分支总的运行情况,分支T和分支W依次执行,首先定义两个分支的各自初始值,然后迭代运行,当找到碰撞时程序终止。DH协议中p为素数,n为整数作为我们要求Alice的私钥,G=<g>是中q阶的循环子群。给定G的生成元g。在DH协议消息传输过程中,Alice公开的会话消息记为h,以及由于信息泄露密钥取值范围[0,N]。下面给出本发明的具体实施方式:
(1)固定索引集合S={1,2,…,η},并作为跳跃步集合,私钥的取值范围[0,N],取u=η2;令集合M定义为M={Ms=gs|s∈S};设置两个小整数参数d,ε满足固定一个小正整数l,并且预计算集合Ml={M∪{l}}l。
(2)标签函数τ定义为:
(6)一个搜索路径的迭代过程,对应到一个G中的序列:算法开始于某一初始值g0∈G,在集合S中随机选取初始值s0=s(g0)。不用计算的乘积,可利用即将带入上述计算得到下次索引值若计算得出的索引值s满足预先定义的可区分点判断条件不用计算出g1就可得这里在步骤(1)中已预计算出。依次计算索引值s2,s3…,每次迭代计算索引值完成一次跳跃的过程中,都不用计算完全乘法,只有满足预定义可区分点的条件,即函数的结果落入区间中时,才计算一次完全乘法,并把结果存入相应的索引表中。我们获得此时对应的其中,已预计算,可通过查表得到。若已进行l次迭代还未发生碰撞,此时,将计算出的gl+1值存入表中,然后将其作为新的起始点再次执行算法即可。
定义两个搜索路径,分别记为T和W。T和W分支对应的指数分别从区间[0,N]中点(即g0=gN/2)和g'0=h开始向区间右侧跳跃,交替执行上述过程。分支T和W分别在集合S中随机选取初始值s0=s(g0)和s'0=s(g'0)并令两分支初始跳跃点和跳跃步分别为和d0(T)=0,d0(W)=0。用Ti,Wj分别表示两分支第i(j)次跳跃,i和j分别从0开始。则按T0、W0、T1、W1、T2、W2…Ti-1、Wi-1如此交替执行下去,当Ti,Wj分支中函数的结果落入区间即满足预定义可区分点条件时,计算出当前分支对应的跳跃点值gi或gj,然后以三元组(gi,T/W)的形式记录,这里用di(T)和dj(W)记录两个分支的各自跳跃步长距离的和,然后将三元组各自以gi和gj为索引存入索引表Lt或Lw中。某个gi被不同类型分支(T或者W)kangaroos访问时即发生碰撞,算法终止,输出私钥n=N/2+di(T)-dj(W)。
以T分支第i次跳跃过程和W分支第j次跳跃为例,本发明给出算法描述则,初始值给定后,di-1(T),di-1(W),yi-1,yj-1,si-1,sj-1,等已通过前面的i-1和j-1次跳跃过程得到,并作为相应分支下一轮的输入,给出算法1和算法2。
算法过程如下:
算法1.T分支一次跳跃(第i次跳跃)伪代码描述
输入:di-1(T)yi-1,si-1;
输出:n
算法2.W分支一次跳跃(第j次跳跃)伪代码描述
输入:dj-1(W),yj-1,sj-1
输出:n;
算法实例:给定一个32比特的素数p=2147483659,g0=29参数取ε=8,N = 50,索引集合S={1,2,3,..,η},同时集合M={g0 s|s∈S,g0=29},可区分点满足的条件为[η/2,η],即为[6,13]。给定h=44895682,则在区间[1,N]之内找x,使29xmodp=44895682。
预计算M和Ml=(M∪{1})1是至多l个Ms乘积的集合,而对于两个kangaroos,本发明分别记为分支T和分支W,然后把它们依次执行,将满足可区分点的数据存入表中,并在另一只访问的时候,将结果进行比较,找到碰撞则算法终止,否则继续进行。具体运行过程如下:
对分支W:
W分支初始条件:随机选取s0=6(si作为索引集合S的元素,则对应集合M中元素是),g0=h=44895682。
第二次跳跃:对g2计算:s2=7满足可区分点条件进行乘法运算得到g2=hg6g10=371226886,将点(371226886,16,W)记录入W表中。
第三次跳跃:对g3计算:s3=11,满足可区分点条件,故进行乘法运算得到g3=hg6g10g7=1437182517,记录该点(1437182517,23,W)加入W表中。
对分支T:
T分支初始条件:随机选取s0=1,g0=gN/2=2925mod p=1252290799。
第四次跳跃:对g4计算:则s4=13,可知s4满足可区分点条件,故进行乘法运算得g2=g25g1g11g10g11=1437182517,记录该点(1437182517,33,T)加入T表中。发现与W中元素找到碰撞。
执行上述算法发现,当分支T第四次跳跃时与分支W对应的表中元素1437182517发生碰撞。于是,程序返回x=25+33-23=35。验证得2935modp=44895682=h,从而求解出了该区间离散对数问题的值。
实验数据:
本发明中提出的算法和经典Pollard’s kangaroos算法分析时间代价对比情况见表1。对于1024比特的素数的乘法用了171次6比特与6比特乘法共进行了6156次比特运算和经典Pollard’s kangaroos算法进行完全乘法所用的1049576次比特运算相比,迭代计算量大大降低相比。从而具有降低算法的每次跳跃的计算代价的作用,使得算法总的运行效率得到提高。
表1时间代价对比
本发明用实例运行本发明中提出的算法同时对上面的分析用实例进行验证,本发明在微软的win7 32位系统中基于Microsoft Visual C++6.0的编程环境执行本发明的算法,相应的处理器是Intel(R)Core(TM)2Quad CPU Q8400@2.66GHz 2.67GHz。
表2对素数p=2147483659,g0=29算法执行结果
以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者同等替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求所述为准。
Claims (6)
1.一种基于信息泄露的公钥密码系统的私钥获取方法,其步骤为:
2)设置一索引集合S={1,2,…,η},并将其作为跳跃步集合,取u=η2;令集合M={MS=gs|s∈S};设置两整数参数d、ε满足设置一正整数l,并且预计算集合Ml={M∪{l}}l;设置一标签函数τ为:
5)设置两个迭代过程,分别记为分支T和分支W;分支T对应的指数从区间[0,N]中点g0=gN/2开始迭代跳跃,分支W从g'0=h开始迭代跳跃;h=ga;
2.如权利要求1所述的方法,其特征在于,其特征在于,步骤6)的实现方法为:分支T在集合S中随机选取初始值s0=s(g0)、初始跳跃点为y0=Ms0、初始跳跃距离d0(T)=0,分支W在集合S中随机选取初始值s'0=s(g'0)、初始跳跃点为初始跳跃距离为d0(W)=0;用Ti表示分支T的第i次跳跃、Wj表示分支W的第j次跳跃,按T0、W0、T1、W1、T2、W2…Ti-1、Wi-1分支T、W交替执行跳跃,每一跳跃根据函数计算一对应的索引值s;当Ti分支中函数的计算结果si满足该可区分点条件时,计算出对应的跳跃点值gi并存储,并记录当前T分支跳跃步长距离的和di(T);当Wj分支中函数的计算结果sj满足该可区分点条件时,计算出当前分支对应的跳跃点值gj并存储,并记录当前分支W跳跃步长距离的和dj(W);当gi被不同类型分支访问时即发生碰撞,输出私钥n=N/2+di(T)-dj(W)。
6.如权利要求1所述的方法,其特征在于,所述可区分点条件为
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710121266.5A CN106850223B (zh) | 2017-03-02 | 2017-03-02 | 一种基于信息泄露的公钥密码系统的私钥获取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710121266.5A CN106850223B (zh) | 2017-03-02 | 2017-03-02 | 一种基于信息泄露的公钥密码系统的私钥获取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106850223A CN106850223A (zh) | 2017-06-13 |
CN106850223B true CN106850223B (zh) | 2020-01-17 |
Family
ID=59138801
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710121266.5A Expired - Fee Related CN106850223B (zh) | 2017-03-02 | 2017-03-02 | 一种基于信息泄露的公钥密码系统的私钥获取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106850223B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6738899B1 (en) * | 1999-03-30 | 2004-05-18 | Pitney Bowes Inc. | Method for publishing certification information certified by a plurality of authorities and apparatus and portable data storage media used to practice said method |
CN103036684A (zh) * | 2012-12-28 | 2013-04-10 | 武汉理工大学 | 降低主密钥破解和泄露危害的ibe数据加密系统及方法 |
CN104780051A (zh) * | 2015-04-24 | 2015-07-15 | 成都信息工程学院 | 针对sm2公钥密码加密算法的侧信道攻击的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060104447A1 (en) * | 2004-11-12 | 2006-05-18 | Microsoft Corporation | Discrete logarithm-based cryptography using the Shafarevich-Tate group |
-
2017
- 2017-03-02 CN CN201710121266.5A patent/CN106850223B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6738899B1 (en) * | 1999-03-30 | 2004-05-18 | Pitney Bowes Inc. | Method for publishing certification information certified by a plurality of authorities and apparatus and portable data storage media used to practice said method |
CN103036684A (zh) * | 2012-12-28 | 2013-04-10 | 武汉理工大学 | 降低主密钥破解和泄露危害的ibe数据加密系统及方法 |
CN104780051A (zh) * | 2015-04-24 | 2015-07-15 | 成都信息工程学院 | 针对sm2公钥密码加密算法的侧信道攻击的方法 |
Non-Patent Citations (1)
Title |
---|
关于区间上离散对数问题的改进算法;王瑶; 吕克伟;《密码学报》;20151215;第1、3节 * |
Also Published As
Publication number | Publication date |
---|---|
CN106850223A (zh) | 2017-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106487503B (zh) | 基于剪裁的霍普菲尔德神经网络的多元公钥密码系统和方法 | |
CN101867474B (zh) | 数字签名方法 | |
KR100530372B1 (ko) | 사이드채널 공격을 방지할 수 있는 타원곡선 암호화 방법 | |
CA2984390A1 (en) | Elliptic curve isogeny-based cryptographic scheme | |
US9948462B2 (en) | Hypersphere-based multivariable public key signature/verification system and method | |
CN102318260A (zh) | 密钥协商协议的加速 | |
Kuang et al. | A new quantum-safe multivariate polynomial public key digital signature algorithm | |
CN112532383B (zh) | 一种基于秘密分享的隐私保护计算方法 | |
Rizomiliotis et al. | GHB#: A provably secure HB-like lightweight authentication protocol | |
Xue et al. | Secure and privacy-preserving decision tree classification with lower complexity | |
CN113987558A (zh) | 离线/在线基于格的属性基加密方法 | |
Ruzai et al. | Increment of insecure RSA private exponent bound through perfect square RSA diophantine parameters cryptanalysis | |
Tran et al. | Formal specification and model checking of lattice-based key encapsulation mechanisms in Maude. | |
US20080019512A1 (en) | Accelerating diffie-hellman key-exchange protocol with zero-biased exponent windowing | |
Vijayakumar et al. | DNA computing based elliptic curve cryptography | |
Seo et al. | Performance enhancement of TinyECC based on multiplication optimizations | |
CN106850223B (zh) | 一种基于信息泄露的公钥密码系统的私钥获取方法 | |
Kwon et al. | Fast verification of signatures with shared ECQV implicit certificates | |
WO2018145190A1 (en) | Elliptic curve cryptography scheme with simple side-channel attack countermeasure | |
Akl et al. | Improving a solution's quality through parallel processing | |
Sharma et al. | Analysis of CRYSTALS-Dilithium for BlockChain security | |
Khan et al. | Security and Performance Analysis of Elliptic Curve Crypto System using Bitcoin Curves. | |
Chakraborti et al. | {Distance-Aware} Private Set Intersection | |
Liu et al. | Secure and verifiable outsourcing protocol for non-negative matrix factorisation | |
Herbaut et al. | Random Euclidean addition chain generation and its application to point multiplication |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20200117 Termination date: 20210302 |