CN108075889B - 一种降低加解密运算时间复杂度的数据传输方法及系统 - Google Patents

一种降低加解密运算时间复杂度的数据传输方法及系统 Download PDF

Info

Publication number
CN108075889B
CN108075889B CN201611031446.6A CN201611031446A CN108075889B CN 108075889 B CN108075889 B CN 108075889B CN 201611031446 A CN201611031446 A CN 201611031446A CN 108075889 B CN108075889 B CN 108075889B
Authority
CN
China
Prior art keywords
value
optimized
bit
current
key value
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.)
Active
Application number
CN201611031446.6A
Other languages
English (en)
Other versions
CN108075889A (zh
Inventor
张�浩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201611031446.6A priority Critical patent/CN108075889B/zh
Publication of CN108075889A publication Critical patent/CN108075889A/zh
Application granted granted Critical
Publication of CN108075889B publication Critical patent/CN108075889B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

本发明公开了一种降低加解密运算时间复杂度的数据传输方法及系统,所述方法包括生成第一公钥值,将所述第一公钥值发送给目标终端,所述第一公钥值的生成方法包括:将目标数转化为二进制数;以最低位作为当前位,按照第一算法对所述当前位进行操作;判断当前位是否为最高位,若是,则按照第一算法对所述最高位进行操作,输出最终结果;若否,则将所述当前位的高一位二进制位更新为新的当前位,运用第一算法对新的当前位进行操作;获取所述目标终端发送的第二公钥值,生成第一密钥值;采用所述第一密钥值对待传输文件进行加密,由所述目标终端采用第二密钥值对所述加密文件进行解密。本发明能够将时间复杂度由O(N)优化为O(log2N),进一步提高加解密运算的数据传输效率。

Description

一种降低加解密运算时间复杂度的数据传输方法及系统
技术领域
本发明涉及加解密技术领域,尤其涉及一种降低加解密运算时间复杂度的数据传输方法及系统。
背景技术
随着互联网的高速发展,软件包产品的用户也在快速增长,有几十万上升到几百万甚至千万;目前移动互联网产品端的用户数仍在不断增长,且用户的使用是不间断的,随时都有可能出现大量的用户数据,用户在访问的时候就会感觉数据传输速度慢了很多,特别是在高并发情况下,甚至会出现数据传输错误的情况,严重影响用户的使用体验。
其中,加解密算法的应用场景中同样涉及到大量的用户数据,且大量的用户数据在传输过程中还要进行密钥协商运算,然后进一步完成数据的传输。具体地,加解密算法在公开环境下或公共信道下,密钥协商成功后能够让双方在完全没有对方任何预先信息的条件下通过不安全信道建立起密钥,借助密钥实现加密和解密。
目前在加解密运算的密钥协商流程中,每次密钥协商都需要大量的运算,且涉及的数值本身就是很大的,且在没有使用专业加密硬件的场景下,普通的指数运算,如求g的a次方,一般都是对a个g做乘法,也就是a-1次乘法运算,对于位数至少是100位的十进制数据a来说,a-1次的运算数据是极大的,甚至会远超几亿亿次运算,运算时间复杂度是非常巨大的,从而出现数据传输效率低下的问题。
发明内容
为了解决上述技术问题,本发明提出了一种降低加解密运算时间复杂度的数据传输方法及系统。
本发明是以如下技术方案实现的:
一种降低加解密运算时间复杂度的数据传输方法,所述方法包括:
生成第一公钥值,将所述第一公钥值发送给目标终端,
所述第一公钥值的生成方法包括:
将目标数转化为二进制数,所述二进制数包括二进制位和二进制位对应的二进制值;以所述二进制位的最低位作为当前位,按照第一算法对所述当前位进行操作;判断当前位是否为最高位,若是,则按照第一算法对所述最高位进行操作,输出最终结果;若否,则将所述当前位的高一位二进制位更新为新的当前位,运用第一算法对新的当前位进行操作;
获取所述目标终端发送的第二公钥值,生成第一密钥值,所述第一密钥值的生成方法与所述第一公钥值的生成方法相同;
采用所述第一密钥值对待传输文件进行加密,并将其发送给目标终端,由所述目标终端采用第二密钥值对所述加密文件进行解密,所述第二公钥值和第二密钥值的生成方法与所述第一公钥值的生成方法相同。
具体地,所述第一算法的操作包括:
以二为底数对当前位进行求指运算,得到优化临时值;
以所述优化临时值为指数进行求指运算,得到优化中间值;
判断当前位的二进制值是否为1,若是,则将所述优化中间值与优化先前值相乘,得到优化当前值,若否,则将所述优化中间值更新为优化当前值,所述当前位的高一位二进制位更新为新的当前位,按照第一算法对新的当前位进行操作。
一种降低加解密运算时间复杂度的数据传输系统,所述处理系统包括:
第一公钥值生成模块,用于生成第一公钥值,将所述第一公钥值发送给目标终端;
所述第一公钥值生成模块包括:
二进制数转化单元,用于将目标数转化为二进制数,所述二进制数包括二进制位和二进制位对应的二进制值;
当前位操作单元,用于以所述二进制位的最低位作为当前位,按照第一算法对所述当前位进行操作;
最高位判断单元,用于判断当前位是否为最高位,若是,则运用第一算法对所述当前位进行操作,输出最终结果;若否,则将所述当前位的高一位二进制位更新为新的当前位,运用第一算法对新的当前位进行操作;
所述处理系统还包括:
第二公钥值获取模块,用于获取所述目标终端发送的第二公钥值,生成第一密钥值,所述第一密钥值的生成方法与所述第一公钥值的生成方法相同;
加解密运算模块,用于采用所述第一密钥值对待传输文件进行加密,并将其发送给目标终端,由所述目标终端采用第二密钥值对所述加密文件进行解密,所述第二公钥值和第二密钥值的生成方法与所述第一公钥值的生成方法相同。
所述当前位操作单元包括:
第一求指子单元,用于以二为底数对所述当前位进行求指运算,得到优化临时值;
第二求指子单元,用于以所述优化临时值为指数进行求指运算,得到优化中间值;
当前位判断子单元,用于判断所述当前位的二进制值是否为1,若是,则将所述优化中间值与优化先前值相乘,得到优化当前值,若否,则将所述优化中间值更新为优化当前值,所述当前位的高一位二进制位更新为新的当前位,按照第一算法对新的当前位进行操作。
本发明的有益效果是:本发明将时间复杂度由O(N)优化为O(log2N),降低了运算时间复杂度,减少了实际运算的开销,提高了加解密运算的速度,从而提升了加解密运算的数据传输效率;并且,本发明能够提供通用的优化,不依赖具体的硬件和软件库。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是实施例一提供的DH算法的密钥交换过程示意图;
图2是实施例一提供的降低加解密运算时间复杂度的数据传输方法流程图;
图3是实施例一提供的第一公钥值的生成方法流程图;
图4是实施例二提供的降低加解密运算时间复杂度的数据传输方法流程图;
图5是实施例二提供的第一算法的操作流程图;
图6为实施例二提供的降低加解密运算时间复杂度的判断流程图;
图7是实施例三提供的降低加解密运算时间复杂度的数据传输方法流程图;
图8为实施例三提供的降低加解密运算时间复杂度的判断流程图;
图9是实施例四提供的优化DH算法时间复杂度的系统框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,基于本发明中的实施例仅仅是一部分的实施例,而不是全部的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,算法的时间复杂度是一个函数,它定量描述了该算法的运行时间,在同一数量级一般不进行区分;是一个关于代表算法输入值的字符串的长度的函数;时间复杂度常用大O符号表述,不包括这个函数的低阶项和首项系数;使用这种方式时,时间复杂度可被称为是渐近的,它用于考察输入值大小趋近无穷时的情况。
实施例一:
本实施例提供了一种降低加解密运算时间复杂度的数据传输方法,运用所述方法能够降低加解密运算的时间复杂度,进一步提升加解密运算的数据传输效率,以DH算法为例进行说明:
需要说明的是,DH(Diffie-Hellman)算法,即迪菲-赫尔曼算法,其核心算法是在进行密钥交换的两台机器上,各进行两次gamodP数学运算,图1是DH算法的密钥交换过程示意图,其中所述算法的特点如下:
1.为了保证安全,十进制的p一般是一个300位长度的质数,十进制的a一般要保证有100位的长度,g在实践中简单取一个很小的数即可,整体上该算法涉及数据特别大,在运算过程中对数库存在一定要求。
2.对于ga运算过程,其上层直接运算是a-1次g的乘法运算,不同的硬件环境下,软件库对ga运算的具体支持是不确定的,且对于至少100位长的数据a来说,表现到的时间复杂度O(N)很大。
所以,对于DH算法,降低其时间复杂度的核心问题是gamodP类型运算时间的优化,首先,对优化思路和方法的有效性做进一步阐述:
对数a做分解,对应的ga表达为
ga=g(a0+a1+a2+..an)
其中,an可表达为an=Cn*2n,则a表达为
Figure GDA0002934618980000051
进一步地,表达式
Figure GDA0002934618980000052
在ck为0或1的前提下,可以用于表达任何正整数。其中,根据不同的a,各个二进制位的ck取值不同,以数3、4、5为例做简单说明:
3=1*20+1*21+0*22=1+2+0=3,此时,c0=1,c1=1,c2=0;
4=0*20+0*21+1*22=0+0+4=4,此时,c0=0,c1=0,c2=1;
5=1*20+0*21+1*22=1+0+4=5,此时,c0=1,c1=0,c2=1;
进一步地,按照同底数幂的乘法运算法则,ga继续推导得到:
Figure GDA0002934618980000061
由上式可得,对于ga,只需要计算n+1个
Figure GDA0002934618980000062
然后将n+1个
Figure GDA0002934618980000063
相乘就可以得到ga;其中,
当ck为0时,
Figure GDA0002934618980000064
当ck为1时,
Figure GDA0002934618980000065
所以,计算ga的过程最多计算n+1个
Figure GDA0002934618980000066
当k>0时,继续按照同底数幂的乘法运算继续推导得到
Figure GDA0002934618980000067
从上述推导中看出,要计算的
Figure GDA0002934618980000068
Figure GDA0002934618980000069
是有关联的,对应地,计算
Figure GDA00029346189800000610
则先计算得到
Figure GDA00029346189800000611
然后将两个
Figure GDA00029346189800000612
相乘就得到
Figure GDA00029346189800000613
以此进行n次运算就能够得到全部的n+1个
Figure GDA00029346189800000614
相乘的结果;因此,根据ck是否为1,ga的计算过程做最多n次乘法,就可以得到ga的结果。
其中,n和a的关系为,n=log2(a),且n是a的二进制表达的二进制的位数。下面对n=log2(a)的理解做进一步说明,假设(n-1)=log2(a1),n+1=log2(a2),则n=log2(a)中的a满足a1≤a<a2;其中的n是取整数,log2(a1)和log2(a2)根据条件对所得结果进行取整;举例说明,在不限制a的数值为100位长的情况下,若a1为8,a2为16,则a可以为8,9,10,11,12,13,14,15中任何一个数,其对应的n都是整数4。
根据上述证明过程得到,只需要进行n步遍历运算,就可以求出g的a次方,也就是把a-1次乘法运算优化为log2(a)次遍历运算。
如图2-3所示,本实施例提供的降低加解密运算时间复杂度的数据传输方法,包括:
S101.生成第一公钥值,将所述第一公钥值发送给目标终端,
以上述的DH算法为例,如图1所示,给定名称:p为质数目标数,a为第一私密目标数,g为公开目标数;根据公开目标数g、质数目标数p和第一私密目标数a生成第一公钥值A,其中,A=gamodp,将所述第一公钥值A发送给目标终端,其中所述目标终端包含有第二私密目标数b。
S102.所述第一公钥值的生成方法包括:
2a.将目标数转化为二进制数,所述二进制数包括二进制位和二进制位对应的二进制值;
2b.以所述二进制位的最低位作为当前位,按照第一算法对所述当前位进行操作;
2c.判断当前位是否为最高位,若是,则按照第一算法对所述最高位进行操作,输出最终结果;若否,则将所述当前位的高一位二进制位更新为新的当前位,运用第一算法对新的当前位进行操作。
其中,判断当前位是否为最高位中的当前位为新的当前位。以上述DH算法为例,所述第一公钥值A的生成方法就是上述的生成方法,需要说明的是,所述第二公钥值B、第一密钥值和第二密钥值的生成方法均与所述第一公钥值A的方法相同,且生成得到的第一密钥值Ba mod p和第二密钥值Ab mod p是相等的。
其中,所述第一算法的操作包括:
以二为底数对当前位进行求指运算,得到优化临时值;
以所述优化临时值为指数进行求指运算,得到优化中间值;
判断当前位的二进制值是否为1,若是,则将所述优化中间值与优化先前值相乘,得到优化当前值,若否,则将所述优化中间值更新为优化当前值,当前位的高一位二进制位更新为新的当前位,按照第一算法对新的当前位进行操作。其中,第一算法中的当前位为原始的当前位或新的当前位。
需要说明的是,在当前位的二进制值不为1的情况下,若当前位为最低位,则将所述优化中间值更新为优化当前值,若当前位为非最低位,则将优化当前值更新为新的优化当前值。
S103.获取所述目标终端发送的第二公钥值,生成第一密钥值,所述第一密钥值的生成方法与所述第一公钥值的生成方法相同;
以上述DH算法为例,接收所述目标终端的第二公钥值B,所述第二公钥值B由所述目标终端根据第二私密目标数b和接收的公开目标数g、质数目标数p生成,即B=gbmodp;进一步地,根据第一私密目标数a、质数目标数p以及接收的第二公钥值B生成第一密钥值Bamod p。
S104.采用所述第一密钥值对待传输文件进行加密,并将其发送给目标终端,由所述目标终端采用第二密钥值对所述加密文件进行解密,所述第二公钥值和第二密钥值的生成方法与所述第一公钥值的生成方法相同。
以上述DH算法为例,因生成得到的第一密钥值Ba mod p和第二密钥值Ab mod p是相等的,则就实现对所述第一密钥值和第二密钥值对应的终端进行加解密;具体地,采用所述第一密钥值对待传输文件进行加密,并将其发送给目标终端,由所述目标终端采用第二密钥值对所述加密文件进行解密。其中,对于DH算法,两次判断的触发将a-1次乘法运算,优化为log2(a)次遍历运算。
综上所述,通过本实施例提供的生成方法,能够将二进制数的每一位二进制位作为操作对象,从低位至高位依次进行第一算法操作,通过不断地判断与更新,能够快速地得到最终结果,减少了实际运算的开销,从而提升了加解密运算的数据传输效率。
实施例二:
如图4-5所示,本实施例提供了一种降低加解密运算时间复杂度的数据传输方法,所述方法包括:
S201.生成第一公钥值,将所述第一公钥值发送给目标终端,
S202.将目标数转化为二进制数,所述二进制数包括二进制位和二进制位对应的二进制值;
以上述DH算法为例,在计算第一公钥值过程中,a就是将目标数转化为二进制数中目标数,十进制的a在运行过程中转化为二进制的计算机语言;其中,二进制是计算技术中广泛采用的一种数制,二进制数据是用0和1两个数码来表示的数;需要说明的是,所述从低位至高位,也就是二进制位从左向右的顺序。
S203.以所述二进制位的最低位作为当前位,按照第一算法对所述当前位进行操作;
S204.判断当前位是否为最高位,若是,则按照第一算法对所述最高位进行操作,输出最终结果;若否,则将所述当前位的高一位二进制位更新为新的当前位,运用第一算法对新的当前位进行操作;
其中,以上述DH算法为例,所述输出最终结果,之前包括,对所述优化当前值进行求余运算;其中,所述求余运算的被除数为优化阈值,所述优化阈值为质数p,其中所述最终结果为第一公钥值。
具体地,所述第一算法的操作包括:
4a.以二为底数对当前位进行求指运算,得到优化临时值;
假设二进制形式的a具有n个二进制位,则a的取值范围为2n-1≤a<2n;其中每个二进制位具有各自的位数,所述位数是从第0位开始算起的,首先以二为底数,以二进制数所在的位数为指数,进行求指运算,假设当前位为第k位,其中0≤k≤n,计算2k,则2k就是所述优化临时值;进一步地,以数g为底数,以2k为指数,进行求指运算,得到
Figure GDA0002934618980000091
Figure GDA0002934618980000092
就是所述优化中间值。
4b.以所述优化临时值为指数进行求指运算,得到优化中间值;
具体地,以数g为底数,以2k为指数,进行求指运算,得到
Figure GDA0002934618980000093
Figure GDA0002934618980000094
就是所述优化中间值。其中,
Figure GDA0002934618980000095
的计算,包括当k为最低位时,即k=0时,
Figure GDA0002934618980000096
还包括当k>0时,
Figure GDA0002934618980000097
4c.判断当前位的二进制值是否为1,若是,则将所述优化中间值与优化先前值相乘,得到优化当前值,若否,则将所述优化中间值更新为优化当前值,所述当前位的高一位二进制位更新为新的当前位,按照第一算法对新的当前位进行操作。
如图6所示,图6为降低加解密运算时间复杂度的流程图,所述优化中间值对应的二进制位为当前位,所述优化先前值对应的二进制位为所述当前位的低一位,用res表示优化当前值。
进一步地,在计算
Figure GDA0002934618980000098
之后,判断二进制数a的第k位是否为1,若第k位为1,则将
Figure GDA0002934618980000099
与第k-1位的结果res相乘,得新的优化当前值为
Figure GDA00029346189800000910
若第k位为0,则优化中间值
Figure GDA00029346189800000911
作为优化当前值,按照第一算法对新的当前位进行操作;
其中,若所述当前位为所述目标数的最低位,则所述优化先前值为1,就是说还没有进行最低位的第一算法操作之前,所述优化先前值的初始值为1。
进一步地,所述将所述优化中间值与优化先前值相乘,得到优化当前值之后还包括:缓存所述优化当前值,将所述当前位的高一位二进制位更新为新的当前位,按照第一算法对新的当前位进行操作。
进一步地,若经过判断,所述当前位的二进制数为1,则将所述优化中间值与优化先前值相乘,得到新的优化当前值为
Figure GDA0002934618980000101
所述当前位的高一位二进制位更新为新的当前位。
若经过判断,当前位为最高位,则按照第一算法对所述最高位进行操作,对更新后的优化当前值进行求余运算,运算结果就是形式为gamodp的最终结果。
具体地,对第一算法的过程做举例说明,以g=5,a=12为例,则12的二进制数为1100,其中k表示二进制位所在的位数,ck表示二进制位中的二进制数,从第0位开始计算,
(1)第0位k=0,判断是否为最高位,否,则
Figure GDA0002934618980000102
此时c1=0,a的k位为0,则当前结果5为优化当前值,将当前位的高一位二进制位更新为新的当前位,继续运用第一算法;
(2)第1位k=1,判断是否为最高位,否,则
Figure GDA0002934618980000103
此时c2=0,a的k位为0,则当前结果25为优化当前值,将当前位的高一位二进制位更新为新的当前位,继续运用第一算法;
(3)第2位k=2,判断是否为最高位,否,则
Figure GDA0002934618980000104
此时c3=1,a的k位为1,则优化当前值为1*625=625,将当前位的高一位二进制位更新为新的当前位,继续运用第一算法;
此时,1就是优化先前值,625是优化中间值,625为优化当前值,且625还是替换1之后,为后续高位服务的优化先前值;
(4)第3位k=3,判断是否为最高位,是,则
Figure GDA0002934618980000105
此时c4=1,a的k位为1,则优化当前值为625*390625=24390625,得到ga=512的结果,进一步求余得到DH算法中涉及到的512modp最终结果。
其中,二进制数1100共4位二进制位,且根据设定的取整条件,此时log212=4,由原来的11次乘法运算优化为4次运算,即时间复杂度由O(N)优化为O(log2N)。
S205.获取所述目标终端发送的第二公钥值,生成第一密钥值,所述第一密钥值的生成方法与所述第一公钥值的生成方法相同;
S206.采用所述第一密钥值对待传输文件进行加密,并将其发送给目标终端,由所述目标终端采用第二密钥值对所述加密文件进行解密,所述第二公钥值和第二密钥值的生成方法与所述第一公钥值的生成方法相同。
综上所述,根据所述方法中的第一算法对目标数中的每一位二进制位进行遍历操作,通过对二进制位的二进制值的判断,以及对最高位操作的判断,能够将加解密运算时间复杂度由O(N)降低为O(log2N)。
实施例三:
如图7-8所示,本实施例提供了一种降低加解密运算时间复杂度的数据传输方法,包括:
S301.生成第一公钥值,将所述第一公钥值发送给目标终端,
S302.将目标数转化为二进制数,所述二进制数包括二进制位和二进制位对应的二进制值;
S303.以所述二进制位的最低位作为当前位,按照第一算法对所述当前位进行操作;
以二为底数对当前位进行求指运算,得到优化临时值;以所述优化临时值为指数进行求指运算,得到优化中间值;判断当前位的二进制值是否为1,若是,则将所述优化中间值与优化先前值相乘,得到优化当前值,若否,则将所述优化中间值更新为优化当前值,所述当前位的高一位二进制位更新为新的当前位,按照第一算法对新的当前位进行操作。
S304.判断优化当前值是否大于优化阈值,若是,则将所述优化当前值进行求余运算得到的结果更新为优化当前值;若否,则直接缓存所述优化当前值,将所述当前位的高一位二进制位更新为新的当前位,按照第一算法对所述新的当前位进行操作。
其中,判断优化当前值是否大于优化阈值中的优化当前值,为原始的优化当前值或更新后的优化当前值。在运算过程中,当k越来越大,缓存的优化当前值将是一个极大的数,当优化当前值大于优化阈值时,运算过程的开销仍然是很大的,因此,对优化当前值做进一步优化,控制优化当前值的大小,能够减少实际运算的开销,进一步提高运算速度。
其中步骤k里的res记为resk:
Figure GDA0002934618980000121
Figure GDA0002934618980000122
Figure GDA0002934618980000123
则进一步优化得到数学证明。
进一步地,所述进一步优化的数学证明如下:
根据求余特性,有
a=ma*p+a mod p,其中ma为非负整数,同理,
b=mb*p+b mod p,其中mb为非负整数。
所以对于(a*b)mod p,则有
(a*b)mod p
=(ma*p+a mod p)*(mb*p+b mod p)mod p
=(ma*mb*p2+ma*p*(b mod p)+mb*p*(a mod p)+(a mod p)*(b mod p))mod p
=((a mod p)*(b mod p))mod p
=(a mod p)*(b mod p)
若a分解为因子a1,a2的乘积,即a=a1*a2,则有
(a1*a2*b)mod p=((a1*a2)mod p)*(b mod p)=(a1 mod p)*(a2 mod p)*(bmod p)
由此可以类推,
(a1*a2*..an)mod p=(a1 mod p)*(a2 mod p)*…*(an mod p),所以
Figure GDA0002934618980000124
得到证明。
进一步地,所述将所述优化当前值进行求余运算得到的结果更新为优化当前值包括:缓存所述更新后的优化当前值,将所述当前位的高一位二进制位更新为新的当前位,按照第一算法对新的当前位进行操作。
其中,所述输出最终结果,之前包括,对所述优化当前值进行求余运算;其中,所述求余运算的被除数为优化阈值。
进一步地,所述将所述优化中间值与优化先前值相乘,得到优化当前值之后还包括:缓存所述优化当前值,将所述当前位的高一位二进制位更新为新的当前位,按照第一算法对新的当前位进行操作。
S305.判断当前位是否为最高位,若是,则按照第一算法对所述最高位进行操作,输出最终结果;若否,则将所述当前位的高一位二进制位更新为新的当前位,运用第一算法对新的当前位进行操作;
需要说明的是,涉及到更新当前位时,都需要做一次判断,判断更新后的当前位是否为最高位,也就是判断,a的所有二进制位是否从低位至高位都经过第一算法的操作,若全部操作结束,则得到ga的结果,进一步求余得到最终结果gamodp。
S306.获取所述目标终端发送的第二公钥值,生成第一密钥值,所述第一密钥值的生成方法与所述第一公钥值的生成方法相同;
S307.采用所述第一密钥值对待传输文件进行加密,并将其发送给目标终端,由所述目标终端采用第二密钥值对所述加密文件进行解密,所述第二公钥值和第二密钥值的生成方法与所述第一公钥值的生成方法相同。
综上所述,本实施例在得到优化当前值之后,进一步判断得到的优化当前值是否大于优化阈值,本方法在通过对大数据的进一步优化后,进一步降低了数据的运算复杂度,从而进一步提升加解密运算的数据传输效率。
实施例四:
如图9所示,本实施例提供了一种降低加解密运算时间复杂度的数据传输系统,所述系统包括:
第一公钥值生成模块110,用于生成第一公钥值,将所述第一公钥值发送给目标终端;
所述第一公钥值生成模块110包括:
二进制数转化单元111,用于将目标数转化为二进制数,所述二进制数包括二进制位和二进制位对应的二进制值;
当前位操作单元112,用于以所述二进制位的最低位作为当前位,按照第一算法对所述当前位进行操作;
最高位判断单元113,用于判断当前位是否为最高位,若是,则运用第一算法对所述当前位进行操作,输出最终结果;若否,则将所述当前位的高一位二进制位更新为新的当前位,运用第一算法对新的当前位进行操作;
所述处理系统还包括:
第二公钥值获取模块120,用于获取所述目标终端发送的第二公钥值,生成第一密钥值,所述第一密钥值的生成方法与所述第一公钥值的生成方法相同;
加解密运算模块130,用于采用所述第一密钥值对待传输文件进行加密,并将其发送给目标终端,由所述目标终端采用第二密钥值对所述加密文件进行解密,所述第二公钥值和第二密钥值的生成方法与所述第一公钥值的生成方法相同。
所述当前位操作单元112包括:
第一求指子单元1121,用于以二为底数对所述当前位进行求指运算,得到优化临时值;
第二求指子单元1122,用于以所述优化临时值为指数进行求指运算,得到优化中间值;
当前位判断子单元1123,用于判断所述当前位的二进制值是否为1,若是,则将所述优化中间值与优化先前值相乘,得到优化当前值,若否,则将所述优化中间值更新为优化当前值,所述当前位的高一位二进制位更新为新的当前位,按照第一算法对新的当前位进行操作。
所述当前位判断子单元1123,还用于缓存所述优化当前值,将所述当前位的高一位二进制位更新为新的当前位,按照第一算法对新的当前位进行操作。
若所述当前位为所述目标数的最低位,则所述优化先前值为1。
所述第一公钥值生成模块110还包括:
优化当前值判断单元114,用于判断所述优化当前值是否大于优化阈值,若是,则将所述优化当前值进行求余运算得到的结果更新为优化当前值;若否,则直接缓存所述优化当前值,将所述当前位的高一位二进制位更新为新的当前位,按照第一算法对新的当前位进行操作。
所述优化当前值判断单元114,还用于缓存所述更新后的优化当前值,将所述当前位的高一位二进制位更新为新的当前位,按照第一算法对新的当前位进行操作。
所述最高位判断单元113,还用于对所述优化当前值进行求余运算;所述求余运算的被除数为优化阈值。
综上所述,本实施例的系统能够实现实施例一、实施例二和实施例三中所述的方法,能够将时间复杂度由O(N)降低为O(log2N),提高了加解密运算中数据的传输效率,从而优化了用户对相应终端操作的操作体验。
实施例五:
本实施例提供了一种存储介质,该存储介质可以是移动终端的存储介质,可以是非移动终端中的存储介质,也可以是单独存在、未装配入终端中的可读存储介质。
可选地,在本实施例中,上述存储介质用于保存上述实施例中的提供的降低加解密运算时间复杂度的数据传输方法所执行的程序,所述程序包含用于进行以下操作的指令:
生成第一公钥值,将所述第一公钥值发送给目标终端,
所述第一公钥值的生成方法包括:
将目标数转化为二进制数,所述二进制数包括二进制位和二进制位对应的二进制值;以所述二进制位的最低位作为当前位,按照第一算法对所述当前位进行操作;判断当前位是否为最高位,若是,则按照第一算法对所述最高位进行操作,输出最终结果;若否,则将所述当前位的高一位二进制位更新为新的当前位,运用第一算法对新的当前位进行操作;
获取所述目标终端发送的第二公钥值,生成第一密钥值,所述第一密钥值的生成方法与所述第一公钥值的生成方法相同;
采用所述第一密钥值对待传输文件进行加密,并将其发送给目标终端,由所述目标终端采用第二密钥值对所述加密文件进行解密,所述第二公钥值和第二密钥值的生成方法与所述第一公钥值的生成方法相同。
具体地,所述第一算法的操作包括:
以二为底数对当前位进行求指运算,得到优化临时值;
以所述优化临时值为指数进行求指运算,得到优化中间值;
判断当前位的二进制值是否为1,若是,则将所述优化中间值与优化先前值相乘,得到优化当前值,若否,则将所述优化中间值更新为优化当前值,所述当前位的高一位二进制位更新为新的当前位,按照第一算法对新的当前位进行操作。
进一步地,所述将所述优化中间值与优化先前值相乘,得到优化当前值之后还包括:缓存所述优化当前值,将所述当前位的高一位二进制位更新为新的当前位,按照第一算法对新的当前位进行操作。
其中,若所述当前位为所述目标数的最低位,则所述优化先前值为1。
可选地,所述第一算法的操作还包括:
判断优化当前值是否大于优化阈值,若是,则将所述优化当前值进行求余运算得到的结果更新为优化当前值;若否,则直接缓存所述优化当前值,将所述当前位的高一位二进制位更新为新的当前位,按照第一算法对新的当前位进行操作。
进一步地,所述将所述优化当前值进行求余运算得到的结果更新为优化当前值包括:缓存所述更新后的优化当前值,将所述当前位的高一位二进制位更新为新的当前位,按照第一算法对新的当前位进行操作。
进一步地,所述输出最终结果,之前包括,
对所述优化当前值进行求余运算,所述求余运算的被除数为优化阈值。
综上所述,本实施例提供的存储介质,能够存储实施例一、实施例二和实施例三提供的降低加解密运算时间复杂度的数据传输方法的程序指令,运行所述程序代码能够将时间复杂度由O(N)优化为O(log2N),提升数据传输效率,且不依赖具体硬件或者第三软件库。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
本发明中的技术方案中的各个模块均可通过计算机终端或其它设备实现,所述计算机终端包括处理器和存储器。所述存储器用于存储本发明中的程序指令/模块,所述处理器通过运行存储在存储器内的程序指令/模块,实现本发明相应功能。
本发明中的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
本发明中所述模块/单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。可以根据实际的需要选择其中的部分或者全部模块/单元来达到实现本发明方案的目的。
另外,在本发明各个实施例中的各模块/单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (6)

1.一种降低加解密运算时间复杂度的数据传输方法,其特征在于,所述方法包括:
生成第一公钥值,将所述第一公钥值发送给目标终端,
所述第一公钥值的生成方法包括:
将目标数转化为二进制数,所述二进制数包括二进制位和二进制位对应的二进制值;以所述二进制位的最低位作为当前位,按照第一算法对所述当前位进行操作;判断当前位是否为最高位,若是,则按照第一算法对所述最高位进行操作,输出最终结果;若否,则将所述当前位的高一位二进制位更新为新的当前位,运用第一算法对新的当前位进行操作;所述目标数为至少有100位长度的数;
获取所述目标终端发送的第二公钥值,生成第一密钥值,所述第一密钥值的生成方法与所述第一公钥值的生成方法相同;
采用所述第一密钥值对待传输文件进行加密,并将其发送给目标终端,由所述目标终端采用第二密钥值对加密文件进行解密,所述第二公钥值和第二密钥值的生成方法与所述第一公钥值的生成方法相同;
所述第一算法的操作包括:
以二为底数以当前位为指数进行运算,得到优化临时值;
以所述优化临时值为指数进行运算,得到优化中间值;
判断当前位的二进制值是否为1,若是,则将所述优化中间值与优化先前值相乘,得到优化当前值,并将所述优化当前值作为所述当前位的高二进制位的优化先前值;若否,则将所述优化中间值更新为优化当前值;若所述当前位为所述目标数的最低位,则所述优化先前值为1;
在所述当前位为所述最高位的情况下,输出所述优化当前值为所述最终结果;
所述第一算法的操作还包括:
判断所述优化当前值是否大于优化阈值,若是,则将所述优化当前值进行求余运算得到的结果更新为优化当前值;若否,则直接缓存所述优化当前值;
所述输出最终结果,之前包括,
以所述优化当前值为被除数进行求余运算,所述求余运算的除数为优化阈值。
2.根据权利要求1所述的降低加解密运算时间复杂度的数据传输方法,其特征在于,
所述将所述优化中间值与优化先前值相乘,得到优化当前值之后还包括:缓存所述优化当前值。
3.根据权利要求1所述的降低加解密运算时间复杂度的数据传输方法,其特征在于,
所述将所述 优化当前值进行求余运算得到的结果更新为优化当前值之后包括:
缓存所述更新后的优化当前值。
4.一种降低加解密运算时间复杂度的数据传输系统,其特征在于,所述数据传输系统包括:
第一公钥值生成模块,用于生成第一公钥值,将所述第一公钥值发送给目标终端;
所述第一公钥值生成模块包括:
二进制数转化单元,用于将目标数转化为二进制数,所述二进制数包括二进制位和二进制位对应的二进制值;所述目标数为至少有100位长度的数;
当前位操作单元,用于以所述二进制位的最低位作为当前位,按照第一算法对所述当前位进行操作;
最高位判断单元,用于判断当前位是否为最高位,若是,则运用第一算法对所述当前位进行操作,输出最终结果;若否,则将所述当前位的高一位二进制位更新为新的当前位,运用第一算法对新的当前位进行操作;
所述数据传输 系统还包括:
第二公钥值获取模块,用于获取所述目标终端发送的第二公钥值,生成第一密钥值,所述第一密钥值的生成方法与所述第一公钥值的生成方法相同;
加解密运算模块,用于采用所述第一密钥值对待传输文件进行加密,并将其发送给目标终端,由所述目标终端采用第二密钥值对加密文件进行解密,所述第二公钥值和第二密钥值的生成方法与所述第一公钥值的生成方法相同;
所述当前位操作单元包括:
第一求指子单元,用于以二为底数以当前位为指数进行运算,得到优化临时值;
第二求指子单元,用于以所述优化临时值为指数进行运算,得到优化中间值;
当前位判断子单元,用于判断当前位的二进制值是否为1,若是,则将所述优化中间值与优化先前值相乘,得到优化当前值,并将所述优化当前值作为所述当前位的高二进制位的优化先前值;若否,则将所述优化中间值更新为优化当前值;若所述当前位为所述目标数的最低位,则所述优化先前值为1;
输出子单元,用于在所述当前位为所述最高位的情况下,输出所述优化当前值为所述最终结果;
所述第一公钥值生成模块还包括:
优化当前值判断单元,用于判断优化当前值是否大于优化阈值,若是,则将所述优化当前值进行求余运算得到的结果更新为优化当前值;若否,则直接缓存所述优化当前值;
所述最高位判断单元,还用于以所述优化当前值为被除数进行求余运算,所述求余运算的除数为优化阈值。
5.根据权利要求4所述的降低加解密运算时间复杂度的数据传输系统,其特征在于,
所述当前位判断子单元,还用于缓存所述优化当前值。
6.根据权利要求4所述的降低加解密运算时间复杂度的数据传输系统,其特征在于,
所述优化当前值判断单元,还用于缓存所述更新后的优化当前值。
CN201611031446.6A 2016-11-18 2016-11-18 一种降低加解密运算时间复杂度的数据传输方法及系统 Active CN108075889B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611031446.6A CN108075889B (zh) 2016-11-18 2016-11-18 一种降低加解密运算时间复杂度的数据传输方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611031446.6A CN108075889B (zh) 2016-11-18 2016-11-18 一种降低加解密运算时间复杂度的数据传输方法及系统

Publications (2)

Publication Number Publication Date
CN108075889A CN108075889A (zh) 2018-05-25
CN108075889B true CN108075889B (zh) 2021-07-16

Family

ID=62160895

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611031446.6A Active CN108075889B (zh) 2016-11-18 2016-11-18 一种降低加解密运算时间复杂度的数据传输方法及系统

Country Status (1)

Country Link
CN (1) CN108075889B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114401148A (zh) * 2022-01-28 2022-04-26 中企云链(北京)金融信息服务有限公司 一种通信数据加解密优化方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101197668B (zh) * 2007-12-06 2010-08-18 上海交通大学 基于随机化带符号标量乘法的椭圆曲线抗旁路攻击方法
CN102306091B (zh) * 2011-07-08 2014-04-16 西安电子科技大学 椭圆曲线点乘硬件快速实现方法
FR3001315B1 (fr) * 2013-01-18 2016-05-06 Inside Secure Procede de cryptographie comprenant une operation de multiplication par un scalaire ou une exponentiation
CN105988771B (zh) * 2015-03-04 2019-10-22 上海复旦微电子集团股份有限公司 模逆运算器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Diffie-Hellman密钥交换协议设计与实现;尹少平;《电力学报》;20060330;第26卷(第1期);第9-12页 *

Also Published As

Publication number Publication date
CN108075889A (zh) 2018-05-25

Similar Documents

Publication Publication Date Title
WO2020253234A1 (zh) 实现隐私保护的数据同态加解密方法及装置
US10153894B2 (en) Homomorphic encryption with optimized encoding
US9900147B2 (en) Homomorphic encryption with optimized homomorphic operations
US10075289B2 (en) Homomorphic encryption with optimized parameter selection
JP2020528232A (ja) 同型暗号化を行う端末装置と、その暗号文を処理するサーバ装置及びその方法
US20190109701A1 (en) Methods and systems for enhanced data-centric homomorphic encryption sorting using geometric algebra
US20190044697A1 (en) Methods and systems for enhanced data-centric homomorphic encryption searching using geometric algebra
CN113746620B (zh) 同态加密方法、设备、介质及计算机程序产品
CN110505054B (zh) 一种基于动态白盒的数据处理方法、装置及设备
US20180294951A1 (en) Methods and systems for enhanced data-centric scalar multiplicative homomorphic encryption systems using geometric algebra
KR20210081471A (ko) 프로그램 코드를 저장하는 비일시적 컴퓨터 판독가능 매체, 복호화 장치, 및 암호화 장치와 복호화 장치를 포함하는 통신 시스템
CN115664747A (zh) 加密方法和装置
CN111555880B (zh) 数据碰撞方法、装置、存储介质及电子设备
Folkerts et al. REDsec: Running encrypted discretized neural networks in seconds
CN114726512A (zh) 数据处理方法和装置
JP6844897B2 (ja) ビット分解秘密計算装置、ビット結合秘密計算装置、方法およびプログラム
CN108075889B (zh) 一种降低加解密运算时间复杂度的数据传输方法及系统
WO2023169080A1 (zh) 数据处理
KR102522708B1 (ko) 동형 암호문에 대한 통계 연산 수행하는 장치 및 방법
WO2022218033A1 (zh) 一种数据处理的方法和装置
CN115292726A (zh) 语义通信方法、装置、电子设备及存储介质
KR102203238B1 (ko) 모듈러 곱셈 연산을 수행하는 연산 장치 및 방법
US20210297233A1 (en) System and method for performing a fully homomorphic encryption on a plain text
WO2018187604A1 (en) Methods and systems for enhanced data-centric scalar multiplicative homomorphic encryption systems using geometric algebra
WO2019079355A1 (en) METHODS AND SYSTEMS FOR HOMOMORPHE ENCRYPTION SORTING BASED ON ENHANCED DATA USING GEOMETRIC ALGEBRA

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