CN112115488B - 一种数据处理方法、装置和电子设备 - Google Patents
一种数据处理方法、装置和电子设备 Download PDFInfo
- Publication number
- CN112115488B CN112115488B CN201910539464.2A CN201910539464A CN112115488B CN 112115488 B CN112115488 B CN 112115488B CN 201910539464 A CN201910539464 A CN 201910539464A CN 112115488 B CN112115488 B CN 112115488B
- Authority
- CN
- China
- Prior art keywords
- ciphertext
- plaintext
- loop
- comparison result
- sentence
- 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
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 20
- 125000004122 cyclic group Chemical group 0.000 claims abstract description 58
- 238000004364 calculation method Methods 0.000 claims abstract description 52
- 238000000034 method Methods 0.000 claims abstract description 41
- 238000012545 processing Methods 0.000 claims abstract description 16
- 230000004927 fusion Effects 0.000 claims description 6
- 238000011084 recovery Methods 0.000 claims description 3
- 230000006870 function Effects 0.000 description 18
- 230000008569 process Effects 0.000 description 13
- 238000004590 computer program Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 11
- 230000014509 gene expression Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000009191 jumping Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bioethics (AREA)
- Mobile Radio Communication Systems (AREA)
- Machine Translation (AREA)
Abstract
本发明实施例提供了一种数据处理方法、装置和电子设备,其中,所述的方法包括:获取循环语句,所述循环语句的判断条件中包含密文变量;将所述循环语句的循环执行次数设置为预设的明文次数;以及将所述判断条件的密文比较结果融合到循环语句的循环体中参与循环计算;其中,所述密文比较结果为0或1的密文;进而在确定未达到预设的明文次数时,可以继续执行该循环语句的循环计算,在执行预设的明文次数后,可以跳出该循环;从而可以解决无法获得循环终止条件判断结果的问题。
Description
技术领域
本发明涉及数据处理领域,特别是涉及一种数据处理方法、一种数据处理装置和一种电子设备。
背景技术
随着计算机、通讯技术以及互联网技术的不断发展,大多数用户会通过电子设备进行信息的传输与存储,例如将文件上传到云端存储,向其他用户发送文件等等。其中,为了保证信息的安全,通常会对数据进行加密,例如在数据存储的过程中,会在对应存储的电子设备上对数据进行加密如在服务器、终端上进行数据加密;又如在数据传输的过程中对数据进行加密,如数据在终端与服务器传输的过程中对数据进行加密。
当电子设备需要使用这些数据时,需要先对数据进行解密,获取信息的明文后,再对数据进行相应的处理,从而导致信息存在安全隐患;例如,在电子支付场景中,用户用于支付的人脸数据明文在支付运算中对银联可见,若该人脸数据被窃取,同时将该人脸数据与对应的用户账户等信息关联,那么会对用户造成很大风险。为解决该问题,可以基于密文进行数据计算,以充分保证用户信息的安全性。
在基于密文进行数据计算的过程中,通常会采用循环语句实现某些功能;但是在执行循环语句的过程中,若循环条件中包含密文类型的变量时,则无法获取判断结果,从而无法确定是继续下一轮循环,还是终止循环。
发明内容
本发明实施例提供一种数据处理方法,以解决在基于密文运算场景下无法获取循环终止条件对应判断结果的问题。
相应的,本发明实施例还提供了一种数据处理装置和电子设备,用以保证上述方法的实现及应用。
为了解决上述问题,本发明实施例公开了一种数据处理方法,具体包括:获取循环语句,所述循环语句的判断条件中包含密文变量;将所述循环语句的循环执行次数设置为预设的明文次数;以及将所述判断条件的密文比较结果融合到循环语句的循环体中参与循环计算;其中,所述密文比较结果为0或1的密文。
可选地,所述预设的明文次数为第一预设次数,所述第一预设次数根据经验值设定。
可选地,所述预设的明文次数为第二预设次数,所述方法还包括:在所述循环语句每执行完成第二预设次数后,恢复出所述判断条件的密文比较结果的明文;根据所述恢复出的所述判断条件的密文比较结果的明文,确定是否继续执行所述循环语句。
可选地,所述循环语句包括至少一个判断条件。
可选地,所述在所述循环语句每执行完成第二预设次数后,恢复出所述判断条件的密文比较结果的明文,包括:在所述循环语句每执行完成第二预设次数后,恢复出部分或全部判断条件的密文比较结果的明文。
可选地,所述循环语句的判断条件包括循环继续判断条件和/或循环终止判断条件;所述根据所述恢复出的所述判断条件的密文比较结果的明文,确定是否继续执行所述循环语句,包括:判断所述恢复出的所述循环终止判断条件的密文比较结果的明文是否为1;若是,则终止循环;否则,继续执行所述第二预设次数的循环;或者,判断所述恢复出的所述循环继续判断条件的密文比较结果的明文是否为0;若是,则终止循环;否则,继续执行所述第二预设次数的循环。
可选地,所述将所述循环终止判断条件的密文比较结果融合到循环语句的循环体中参与循环计算,包括:添加一变量;依据所述判断条件的密文比较结果,为所述变量赋值,其中,当所述判断条件成立时,对应的密文比较结果为1的密文,当所述判断条件不成立时,对应的密文比较结果为0的密文;将所述变量融合到所述循环语句的循环体中参与循环计算。
本发明实施例还公开了一种数据处理装置,具体包括:语句获取模块,用于获取循环语句,所述循环语句的判断条件中包含密文变量;循环次数设置模块,用于将所述循环语句的循环执行次数设置为预设的明文次数;融合计算模块,用于将所述判断条件的密文比较结果融合到循环语句的循环体中参与循环计算;其中,所述密文比较结果为0或1的密文。
可选地,所述预设的明文次数为第一预设次数,所述第一预设次数根据经验值设定。
可选地,所述预设的明文次数为第二预设次数,所述装置还包括:明文恢复模块,用于在所述循环语句每执行完成第二预设次数后,恢复出所述判断条件的密文比较结果的明文;
循环判断模块,用于根据所述恢复出的所述判断条件的密文比较结果的明文,确定是否继续执行所述循环语句。
可选地,所述循环语句包括至少一个判断条件。
可选地,所述明文恢复模块,具体用于在所述循环语句每执行完成第二预设次数后,恢复出部分或全部判断条件的密文比较结果的明文。
可选地,所述循环语句的判断条件包括循环继续判断条件和/或循环终止判断条件;所述循环判断模块包括:第一判断子模块,用于判断所述恢复出的所述循环终止判断条件的密文比较结果的明文是否为1;若是,则终止循环;否则,继续执行所述第二预设次数的循环;第二判断子模块,用于判断所述恢复出的所述循环继续判断条件的密文比较结果的明文是否为0;若是,则终止循环;否则,继续执行所述第二预设次数的循环。
可选地,所述融合计算模块,具体用于添加一变量;依据所述判断条件的密文比较结果,为所述变量赋值,其中,当所述判断条件成立时,对应的密文比较结果为1的密文,当所述判断条件不成立时,对应的密文比较结果为0的密文;将所述变量融合到所述循环语句的循环体中参与循环计算。
本发明实施例还公开了一种可读介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如本发明实施例中一个或多个所述的数据处理方法。
本发明实施例还公开了一种电子设备,包括:一个或多个处理器;和其上存储有指令的一个或多个可读介质,当由所述一个或多个处理器执行时,使得所述电子设备执行如上述本发明实施例中一个或多个所述的数据处理方法。
与现有技术相比,本发明实施例包括以下优点:
本发明实施例中,可以获取判断条件中包含密文变量的循环语句,然后将所述循环语句的循环执行次数设置为预设的明文次数,以及将所述判断条件的密文比较结果(为0或1的密文)融合到循环语句的循环体中参与循环计算;进而在确定未达到预设的明文次数时,可以继续执行该循环语句的循环计算,在执行预设的明文次数后,可以跳出该循环;从而可以解决无法获得循环终止条件判断结果的问题。
附图说明
图1是本发明的一种数据处理方法实施例的步骤流程图;
图2是本发明的一种数据处理方法可选实施例的步骤流程图;
图3是本发明的又一种数据处理方法可选实施例的步骤流程图;
图4是本发明的一种数据处理装置实施例的结构框图;
图5是本发明的一种数据处理装置可选实施例的结构框图;
图6示意性地示出了用于执行根据本发明的方法的电子设备的框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
本发明实施例中,用于执行所述数据处理方法的设备可以提供多方安全计算服务,多方安全计算可以抽象的理解为:两方分别有各自的私有数据,在不泄漏各自私有数据的情况下,能够计算出关于公共函数的结果;整个计算完成时,只有计算结果对双方可知,且双方均不知对应的数据以及计算过程的中间数据。其中,所述公共函数可以实现多种计算功能如加、减、乘和除等等;且两方的私有数据中至少有一个是密文,即可以进行密文与密文之间的计算,也可以进行密文与明文之间的计算。
参照图1,示出了本发明的一种数据处理方法实施例的步骤流程图,具体可以包括如下步骤:
步骤102、获取循环语句,所述循环语句的判断条件中包含密文变量。
步骤104、将所述循环语句的循环执行次数设置为预设的明文次数。
步骤106、将所述判断条件的密文比较结果融合到循环语句的循环体中参与循环计算;其中,所述密文比较结果为0或1的密文。
当循环语句的判断条件中包含密文变量时,在执行该循环语句过程中,无法获取判断条件的判断结果,从而无法确定是执行循环计算,还是跳出循环;因此为解决无法获得判断条件对应判断结果的问题,可以获取该循环语句,然后对该循环语句进行重构,以使得在执行重构后的循环语句时,可以确定何时继续执行循环计算,何时跳出循环。
本发明的一个示例中,步骤102获取的循环语句如下所示:
其中,n>=1为循环语句的判断条件,n为密文变量,n在执行该循环语句之前大于0。
本发明实施例对该循环语句进行重构一种实现方式可以是,可以将该循环语句的循环次数设置为预设的明文次数,以及将判断条件的密文比较结果融合到循环语句的循环体中参与循环计中;进而在执行重构后的循环语句的过程中,在确定未达到预设的明文次数时,可以继续执行循环计算;在执行预设的明文次数后,可以跳出该循环;从而可以解决无法获得循环终止条件判断结果的问题。其中,明文次数可以预先按照需求设置,如依据经验值设置,本发明实施例对此不作限制。
其中,在对重构后的循环语句进行循环计算过程中,可以先确定判断条件的密文比较结果,然后再将该密文比较结果融合到循环语句的循环体中参与循环计算。所述判断条件的密文比较结果为0或1的密文,例如,当判断条件成立时,所述判断条件的密文比较结果为1的密文;当判断条件不成立时,所述判断条件的密文比较结果为0的密文。需要说明的是,本发明的方案是基于密文的比对操作来实现确定判断条件对应密文比较结果的,具体基于密文的比对操作方法可参照本申请人的,申请号为201910252632.X中介绍的实现方案,在此不做赘述。
本发明实施例的一个应用场景可以是:将明文值大于1的密文变量n,循环计算n/2至n<1为止的场景,对应的实现可以如步骤102所示的循环语句;由于n为密文变量,因此在执行该循环语句时,无法判断什么时候继续执行循环,什么时候终止循环;因此可以执行步骤102获取该循环语句,然后执行步骤104-步骤106;其中,步骤104-步骤106的一种实现方式可以如下:
其中,m为预设的明文次数,flag为循环语句对应判断条件的判断结果,为0或1的密文;进而在执行m次该循环计算后终止,跳出该循环,返回c的值。
本发明实施例的又一个应用场景可以是:循环语句对应循环执行次数为密文变量的场景,对应的实现可以如下所述:
for i in range(a):
b+=i
c+=f1(x)
其中,该循环语句对应的判断条件可以为i<a,a为密文变量。
在执行该循环语句时,无法判断什么时候继续执行循环,什么时候终止循环;因此可以执行步骤102获取该循环语句,然后执行步骤104-步骤106;其中,步骤104-步骤106的一种实现方式可以如下:
for i in range(k):
flag_loop=(i<a)
b+=i*flag_loop
c+=f1(x)*flag_loop
其中,k为明文,其是大于a对应明文;进而在执行k次该循环计算后终止,跳出该循环。
综上,本发明实施例中,可以获取判断条件中包含密文变量的循环语句,然后将所述循环语句的循环执行次数设置为预设的明文次数,以及将所述判断条件的密文比较结果(为0或1的密文)融合到循环语句的循环体中参与循环计算;进而在确定未达到预设的明文次数时,可以继续执行该循环语句的循环计算,在执行预设的明文次数后,可以跳出该循环;从而可以解决无法获得循环终止条件判断结果的问题。
本发明另一个实施例中,可以预先针对实现某一种功能的循环语句,依据经验确定实现该功能的循环语句对应循环次数的经验值;然后依据经验值确定实现该功能的循环语句对应的第一预设次数,其中,可以将大于该经验值的值作为第一预设次数。例如若实现某种功能(如计算方差)的循环语句(循环判断终止条件为明文)的平均循环次数为200次,则可以将实现该种功能的循环语句(循环判断终止条件包括密文变量)对应的第一预设次数确定为1000次。进而当获取判断条件中包含密文变量的循环语句后,可以确定该循环语句实现的功能,然后查找实现该功能的循环语句对应的第一预设次数,将第一预设次数作为对应预设的明文次数;从而将大于循环语句实际循环次数的第一预设次数,作为循环语句对应预设的明文次数。
此外,当循环语句对应循环执行次数由密文变量决定时,第一预设次数可以为大于密文变量对应明文的值,如上述示例“for i in range(a)”,第一预设次数为大于a对应明文的值,例如a对应的明文为100,则第一预设次数可以为600。
参照图2,示出了本发明的一种数据处理方法可选实施例的步骤流程图。
步骤202、获取循环语句,所述循环语句的判断条件中包含密文变量。
步骤204、将所述循环语句的循环执行次数设置为第一预设次数,所述第一预设次数根据经验值设定。
步骤206、将所述判断条件的密文比较结果融合到循环语句的循环体中参与循环计算;其中,所述密文比较结果为0或1的密文。
本发明实施例在获取判断条件中包含密文变量的循环语句后,可以确定该循环语句的实现的功能类型,然后基于该循环语句对应实现的功能类型,确定对应根据经验值确定的第一预设次数;再基于所述第一预设次数,对该获取的循环语句进行重构。
其中,可以将所述循环语句的循环执行次数设置为第一预设次数,然后所述判断条件的密文比较结果融合到循环语句的循环体中参与循环计算;具体可以参照子步骤22-子步骤26:
子步骤22、添加一变量。
子步骤24、依据所述判断条件的密文比较结果,为所述变量赋值。
子步骤26、将所述变量融合到所述循环语句的循环体中参与循环计算。
其中,所述循环体包括赋值语句,所述赋值语句包括赋值表达式,所述赋值表达式可以由文本、常数、变量、属性、数组元素、其他表达式或函数调用的任意组合所构成;进而可以通过将所述变量融合到赋值语句的赋值表达式中,来实现将所述变量融合到所述循环语句的循环体中参与循环计算。
本发明实施例中,所述循环语句的判断条件可以包括循环继续判断条件和/或循环终止判断条件,例如上述示例“while n>=1”对应的循环继续判断条件为:n>=1,循环终止判断条件为:n<1。
对应的,本发明实施例中依据判断条件的密文比较结果为所述变量赋值的方式也可以包括多种;其中一种为所述变量赋值的方式可以是,将所述变量赋值为:所述循环继续判断条件的密文比较结果,其中,当所述循环继续判断条件成立时,对应的密文比较结果为1的密文,当所述循环终止判断条件不成立时,对应的密文比较结果为0的密文;然后将所述变量融合到所述循环语句的循环体中参与循环计算。具体可参照如下示例:
flag=(n>=1)
n=(1-flag)*n+flag*(n/2)
c+=flag
其中,n>=1为循环继续判断条件。即添加变量flag,然后将flag赋值为n>=1的密文比较结果,当n>=1时,对应的密文比较结果为1的密文(即flag的值为1的密文),当n<1时,对应的密文比较结果为0的密文(即flag的值为0的密文)。
本发明实施例中,另一种为所述变量赋值的方式可以是,将所述变量赋值为:将所述赋值为所述循环终止判断条件的密文比较结果,当所述循环终止判断条件成立时,对应的密文比较结果为1的密文;当所述循环终止判断条件不成立时,对应的密文比较结果为0的密文。然后将所述变量融合到所述循环语句的循环体中参与循环计算,具体可参照如下示例:
flag=(n<1)
n=flag*n+(1-flag)*(n/2)
c+=(1-flag)
其中,n<1为循环终止判断条件;当n<1时,对应的密文比较结果为1的密文(即flag的值为1的密文),当n>=1时,对应的密文比较结果为0的密文(即flag的值为0的密文)。
当然,也可以无需添加变量,直接将循环继续判断条件的密文比较结果融合到所述循环语句的循环体中参与循环计算;可参照如下示例:
n=(1-(n>=1))*n+(n>=1)*(n/2)
c+=(n>=1)
或者,直接将循环终止判断条件的密文比较结果融合到所述循环语句的循环体中参与循环计算;可参照如下示例:
n=(n<1)*n+(1-(n<1))*(n/2)
c+=(1-(n<1))
本发明的一个示例中,若获取的循环语句如步骤102所示,当所述第一预设次数为1000时,步骤202-步骤204的一种实现方式可以如下所示:
进而在执行1000次该循环计算后终止,跳出该循环,返回c的值。
综上,本发明实施例中,在获取循环语句后,可以将所述循环语句的循环执行次数设置为第一预设次数;以及将所述判断条件的密文比较结果融合到循环语句的循环体中参与循环计算;其中,所述第一预设次数为根据经验值设定的,可以大于判断条件中包含密文变量的循环语句实际循环次数,从而能够在执行大于判断条件中包含密文变量的循环语句实际循环次数后终止循环,解决在基于密文运算场景下无法获取循环终止条件对应判断结果的问题。
本发明的又一个实施例中,可以预先设置第二预设次数,其中,本发明实施例对所述第二预设次数与判断条件中包含密文变量的循环语句对应循环次数的经验值的大小不作限制;例如,可以根据经验将所述第二预设次数设置为小于循环语句对应循环次数的经验值,如当循环语句对应循环次数为密文变量时,可以将第二预设次数设置为小于所述密文变量对应的明文;并将第二预设次数作为预设的明文次数。然后在每执行第二预设次数的循环计算后,将判断条件的密文比较结果恢复为明文,来判断是终止循环,还是再次执行第二预设次数的循环。
参照图3,示出了本发明的又一种数据处理方法可选实施例的步骤流程图。
步骤302、获取循环语句,所述循环语句的判断条件中包含密文变量。
本发明实施例中,可以获取判断条件中包含密文变量的循环语句,然后可以将所述循环语句进行重构,以使在执行重构后的循环语句时,可以确定何时继续执行循环计算,何时跳出循环。
其中,所述判断条件除了密文变量外的其他变量和/或常数,可以是明文类型,也可以是密文类型,本发明实施例对此不作限制。例如判断条件:“n>=s”,s可以是明文类型变量,也可以是密文类型的变量,s也可以是常数(可以是密文,也可以是明文)。
步骤304、将所述循环语句的循环执行次数设置为第二预设次数。
步骤306、将所述判断条件的密文比较结果融合到循环语句的循环体中参与循环计算。
本发明实施例中,可以预先确定第二预设次数,例如,所述第二预设次数可以按照需求确定例如100;进而在获取循环语句后,可以将所述循环语句的循环执行次数设置为第二预设次数。
其中,本步骤306与上述步骤206类似,在此不再赘述。
步骤308、在所述循环语句每执行完成第二预设次数后,恢复出所述判断条件的密文比较结果的明文。
在所述循环语句每执行第二预设次数后,可以恢复出所述循环终止判断条件的密文比较结果的明文,即可以得到明文1或0;其中,可以恢复出循环继续判断条件对应密文比较结果的明文,也可以恢复出循环终止判断条件对应密文比较结果的明文,本发明实施例对此不作限制。
步骤310、根据所述恢复出的所述判断条件的密文比较结果的明文,确定是否继续执行所述循环语句。
当根据所述恢复出的所述判断条件的密文比较结果的明文,确定终止循环时,可以执行步骤312;当根据所述恢复出的所述判断条件的密文比较结果的明文,确定继续执行循环时,可以执行步骤314。
本发明的一个示例中,步骤308-步骤310的一种实现方式可以采用条件判断语句实现,例如“if flag.reveal()”,其中,flag为变量,该变量的值为循环语句对应判断条件的密文比较结果。
本发明实施例中,当恢复出循环继续判断条件对应密文比较结果的明文时,一种根据所述恢复出的所述判断条件的密文比较结果的明文,确定是否继续执行所述循环语句的方式可以是,判断所述恢复出的所述循环继续判断条件的密文比较结果的明文是否为0。当所述恢复出的所述循环继续判断条件的密文比较结果的明文为0时,说明循环继续判断条件不成立,由于步骤302获取的循环语句是在循环继续判断条件不成立时终止执行循环的,因此此时可以终止循环,即执行步骤312。当所述恢复出的所述循环继续判断条件的密文比较结果的明文不为0时,说明循环继续判断条件成立,由于步骤302获取的循环语句是在循环继续判断条件成立时继续执行循环的,因此此时可以继续执行循环,即执行步骤314。
本发明实施例中,当恢复出循环终止判断条件对应密文比较结果的明文时,一种根据所述恢复出的所述判断条件的密文比较结果的明文,确定是否继续执行所述循环语句的方式可以是,判断所述恢复出的所述循环终止判断条件的密文比较结果的明文是否为1。当所述恢复出的所述循环终止判断条件的密文比较结果的明文为1时,说明循环终止判断条件成立;由于步骤302获取的循环语句是在循环终止判断条件成立时终止执行循环的,因此此时可以终止循环,即执行步骤312。当所述恢复出的所述循环终止判断条件的密文比较结果的明文不为1时,说明循环终止判断条件不成立;由于步骤302获取的循环语句是在循环终止判断条件不成立时继续执行循环的,因此此时可以继续执行循环,即执行步骤314。
步骤312、终止循环。
步骤314、执行所述第二预设次数的循环。
本发明的一个示例中,基于上述步骤102获取的循环语句,若第二预设次数为100,步骤306是将所述循环终止判断条件的密文比较结果融合到循环语句的循环体中参与循环计算,则步骤304-步骤314的一种实现方式可以如下所示:
其中,进而当每执行100次后,可以判断n<1的密文比较结果是0还是1,当所述密文比较结果为1时,则终止循环,当所述密文比较结果为0时,再次执行100次循环。
本发明的另一个示例中,基于上述步骤102获取的循环语句,若第二预设次数为100,步骤306是将所述循环继续判断条件的密文比较结果融合到循环语句的循环体中参与循环计算,则步骤304-步骤314的一种实现方式可以如下所示:
其中,当每执行100次后,可以判断n>=1的密文比较结果是0还是1,当所述密文比较结果为0时,则终止循环,当所述密文比较结果为1时,再次执行100次循环。
本发明的另一个实施例中,获取的循环语句中,可以包括至少一个判断条件,且至少一个判断条件包括密文变量;进而可以将所有判断条件的密文比较结果融合到循环语句的循环体中参与循环计算,以及在所述循环语句每执行完成第二预设次数后,恢复出所述判断条件的密文比较结果的明文,可以包括在所述循环语句每执行完成第二预设次数后,恢复出部分或全部判断条件的结果的明文。
本发明的一个示例中,若步骤302获取的循环语句如下:
其中,该循环语句可以包括两个判断条件:i<a(和/或i>=a)和p<3;a为密文变量,所述p可以是密文类型,也可以是明文类型。
当第二预设次数为100时,步骤304-步骤314的一种实现方式可以如下:
综上,本发明实施例中,在获取循环语句后,可以将所述循环语句的循环执行次数设置为第二预设次数,以及将所述判断条件的密文比较结果融合到循环语句的循环体中参与循环计算;然后在所述循环语句每执行完成第二预设次数后,恢复出所述判断条件的密文比较结果的明文,根据所述恢复出的所述判断条件的密文比较结果的明文,确定是否继续执行所述循环语句;从而不仅能够解决在基于密文运算场景下无法获取循环终止条件对应判断结果的问题,还可以降低循环执行次数与该循环语句实际所需循环次数的差值。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图4,示出了本发明一种数据处理装置实施例的结构框图,具体可以包括如下模块:
语句获取模块402,用于获取循环语句,所述循环语句的判断条件中包含密文变量;
循环次数设置模块404,用于将所述循环语句的循环执行次数设置为预设的明文次数;
融合计算模块406,用于将所述判断条件的密文比较结果融合到循环语句的循环体中参与循环计算;其中,所述密文比较结果为0或1的密文。
参照图5,示出了本发明一种数据处理装置可选实施例的结构框图。
本发明的一个可选实施例中,所述预设的明文次数为第一预设次数,所述第一预设次数根据经验值设定。
本发明的一个可选实施例中,所述预设的明文次数为第二预设次数,所述装置还包括:
明文恢复模块408,用于在所述循环语句每执行完成第二预设次数后,恢复出所述判断条件的密文比较结果的明文;
循环判断模块410,用于根据所述恢复出的所述判断条件的密文比较结果的明文,确定是否继续执行所述循环语句。
本发明的一个可选实施例中,所述循环语句包括至少一个判断条件。
本发明的一个可选实施例中,所述明文恢复模块408,具体用于在所述循环语句每执行完成第二预设次数后,恢复出部分或全部判断条件的密文比较结果的明文。
本发明的一个可选实施例中,所述循环语句的判断条件包括循环继续判断条件和/或循环终止判断条件;所述循环判断模块包括410:
第一判断子模块4102,用于判断所述恢复出的所述循环终止判断条件的密文比较结果的明文是否为1;若是,则终止循环;否则,继续执行所述第二预设次数的循环;
第二判断子模块4104,用于判断所述恢复出的所述循环继续判断条件的密文比较结果的明文是否为0;若是,则终止循环;否则,继续执行所述第二预设次数的循环。
本发明的一个可选实施例中,所述融合计算模块406,具体用于添加一变量;依据所述判断条件的密文比较结果,为所述变量赋值,其中,当所述判断条件成立时,对应的密文比较结果为1的密文,当所述判断条件不成立时,对应的密文比较结果为0的密文;将所述变量融合到所述循环语句的循环体中参与循环计算。
本发明实施例中,可以获取判断条件中包含密文变量的循环语句,然后将所述循环语句的循环执行次数设置为预设的明文次数,以及将所述判断条件的密文比较结果(为0或1的密文)融合到循环语句的循环体中参与循环计算;进而在确定未达到预设的明文次数时,可以继续执行该循环语句的循环计算,在执行预设的明文次数后,可以跳出该循环;从而可以解决无法获得循环终止条件判断结果的问题。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明实施例还提供了一种可读介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如本发明实施例中一个或多个所述的数据处理方法。
本发明实施例还提供了一种电子设备,包括:一个或多个处理器;和其上存储有指令的一个或多个可读介质,当由所述一个或多个处理器执行时,使得所述电子设备执行如上述本发明实施例中一个或多个所述的数据处理方法。
本发明实施例一个示例中提供了一种电子设备,例如服务器,图6示出了可以实现根据本发明的服务器,例如管理服务器、存储服务器、应用服务器、云控服务、服务器集群等。该服务器传统上包括处理器610和以存储器620形式的计算机程序产品或者计算机可读介质。存储器620可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。存储器620具有用于执行上述方法中的任何方法步骤的程序代码631的存储空间630。例如,用于程序代码的存储空间630可以包括分别用于实现上面的方法中的各种步骤的各个程序代码631。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。这些计算机程序产品包括诸如硬盘,紧致盘(CD)、存储卡或者软盘之类的程序代码载体。这样的计算机程序产品通常为便携式或者固定存储单元。该存储单元可以具有与图6的服务器中的存储器620类似布置的存储段、存储空间等。程序代码可以例如以适当形式进行压缩。通常,存储单元包括计算机可读代码,即可以由例如诸如610之类的处理器读取的代码,这些代码当由服务器运行时,导致该服务器执行上面所描述的方法中的各个步骤。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种数据处理方法、一种数据处理装置和一种电子设备,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (14)
1.一种数据处理方法,其特征在于,包括:
获取循环语句,所述循环语句的判断条件中包含密文变量;
将所述循环语句的循环执行次数设置为预设的明文次数;以及
添加一变量;
依据所述判断条件的密文比较结果,为所述变量赋值,其中,当所述判断条件成立时,对应的密文比较结果为1的密文,当所述判断条件不成立时,对应的密文比较结果为0的密文;
将所述变量融合到所述循环语句的循环体中参与循环计算。
2.如权利要求1所述的方法,其特征在于,所述预设的明文次数为第一预设次数,所述第一预设次数根据经验值设定。
3.如权利要求1所述的方法,其特征在于,所述预设的明文次数为第二预设次数,所述方法还包括:
在所述循环语句每执行完成第二预设次数后,恢复出所述判断条件的密文比较结果的明文;
根据所述恢复出的所述判断条件的密文比较结果的明文,确定是否继续执行所述循环语句。
4.如权利要求3所述的方法,其特征在于,所述循环语句包括至少一个判断条件。
5.如权利要求4所述的方法,其特征在于,所述在所述循环语句每执行完成第二预设次数后,恢复出所述判断条件的密文比较结果的明文,包括:
在所述循环语句每执行完成第二预设次数后,恢复出部分或全部判断条件的密文比较结果的明文。
6.如权利要求3或5所述的方法,其特征在于,所述循环语句的判断条件包括循环继续判断条件和/或循环终止判断条件;
所述根据所述恢复出的所述判断条件的密文比较结果的明文,确定是否继续执行所述循环语句,包括:
判断所述恢复出的所述循环终止判断条件的密文比较结果的明文是否为1;若是,则终止循环;否则,继续执行所述第二预设次数的循环;或者,
判断所述恢复出的所述循环继续判断条件的密文比较结果的明文是否为0;若是,则终止循环;否则,继续执行所述第二预设次数的循环。
7.一种数据处理装置,其特征在于,包括:
语句获取模块,用于获取循环语句,所述循环语句的判断条件中包含密文变量;
循环次数设置模块,用于将所述循环语句的循环执行次数设置为预设的明文次数;
融合计算模块,用于用于添加一变量,依据所述判断条件的密文比较结果,为所述变量赋值,其中,当所述判断条件成立时,对应的密文比较结果为1的密文,当所述判断条件不成立时,对应的密文比较结果为0的密文,将所述变量融合到所述循环语句的循环体中参与循环计算。
8.如权利要求7所述的装置,其特征在于,所述预设的明文次数为第一预设次数,所述第一预设次数根据经验值设定。
9.如权利要求7所述的装置,其特征在于,所述预设的明文次数为第二预设次数,所述装置还包括:
明文恢复模块,用于在所述循环语句每执行完成第二预设次数后,恢复出所述判断条件的密文比较结果的明文;
循环判断模块,用于根据所述恢复出的所述判断条件的密文比较结果的明文,确定是否继续执行所述循环语句。
10.如权利要求9所述的装置,其特征在于,所述循环语句包括至少一个判断条件。
11.如权利要求10所述的装置,其特征在于,
所述明文恢复模块,具体用于在所述循环语句每执行完成第二预设次数后,恢复出部分或全部判断条件的密文比较结果的明文。
12.如权利要求9或11所述的装置,其特征在于,所述循环语句的判断条件包括循环继续判断条件和/或循环终止判断条件;
所述循环判断模块包括:
第一判断子模块,用于判断所述恢复出的所述循环终止判断条件的密文比较结果的明文是否为1;若是,则终止循环;否则,继续执行所述第二预设次数的循环;
第二判断子模块,用于判断所述恢复出的所述循环继续判断条件的密文比较结果的明文是否为0;若是,则终止循环;否则,继续执行所述第二预设次数的循环。
13.一种可读介质,其特征在于,当所述可读介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如方法权利要求1-6中一个或多个所述的数据处理方法。
14.一种电子设备,包括:
一个或多个处理器;和
其上存储有指令的一个或多个可读介质,当由所述一个或多个处理器执行时,使得所述电子设备执行如权利要求1-6中一个或多个所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910539464.2A CN112115488B (zh) | 2019-06-20 | 2019-06-20 | 一种数据处理方法、装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910539464.2A CN112115488B (zh) | 2019-06-20 | 2019-06-20 | 一种数据处理方法、装置和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112115488A CN112115488A (zh) | 2020-12-22 |
CN112115488B true CN112115488B (zh) | 2024-05-31 |
Family
ID=73796361
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910539464.2A Active CN112115488B (zh) | 2019-06-20 | 2019-06-20 | 一种数据处理方法、装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112115488B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10269089A (ja) * | 1997-03-25 | 1998-10-09 | Hitachi Ltd | ループ最適化方法 |
CN106775593A (zh) * | 2016-12-30 | 2017-05-31 | 智车优行科技(北京)有限公司 | 去除循环处理流程中条件判断语句的方法和装置、应用单元 |
CN107301079A (zh) * | 2017-05-22 | 2017-10-27 | 南京南瑞继保电气有限公司 | 一种计算机程序语言的编译方法和编译器 |
CN109117676A (zh) * | 2018-10-23 | 2019-01-01 | 杭州弗兰科信息安全科技有限公司 | 一种基于泄序算法的数据库密文比较检索方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4905480B2 (ja) * | 2009-02-20 | 2012-03-28 | 富士ゼロックス株式会社 | プログラム難読化プログラム及びプログラム難読化装置 |
US9602278B2 (en) * | 2011-07-05 | 2017-03-21 | Nec Corporation | Encryption device, cipher-text comparison system, cipher-text comparison method, and cipher-text comparison program |
US10742413B2 (en) * | 2017-04-25 | 2020-08-11 | International Business Machines Corporation | Flexible verifiable encryption from lattices |
-
2019
- 2019-06-20 CN CN201910539464.2A patent/CN112115488B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10269089A (ja) * | 1997-03-25 | 1998-10-09 | Hitachi Ltd | ループ最適化方法 |
CN106775593A (zh) * | 2016-12-30 | 2017-05-31 | 智车优行科技(北京)有限公司 | 去除循环处理流程中条件判断语句的方法和装置、应用单元 |
CN107301079A (zh) * | 2017-05-22 | 2017-10-27 | 南京南瑞继保电气有限公司 | 一种计算机程序语言的编译方法和编译器 |
CN109117676A (zh) * | 2018-10-23 | 2019-01-01 | 杭州弗兰科信息安全科技有限公司 | 一种基于泄序算法的数据库密文比较检索方法 |
Non-Patent Citations (2)
Title |
---|
C语言中循环语句的应用分析;魏康;;信息与电脑(理论版)(第04期);全文 * |
一种C语言编译程序中语句处理的实现算法;李鑫;;科技广场(第01期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112115488A (zh) | 2020-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109558748B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN108305055B (zh) | 支付测试方法及装置 | |
CN112182644A (zh) | 一种数据处理方法、装置和电子设备 | |
CN110597916B (zh) | 基于区块链的数据处理方法、装置、存储介质及终端 | |
CN110414567A (zh) | 数据处理方法、装置和电子设备 | |
CN109995523B (zh) | 激活码管理方法及装置、激活码生成方法及装置 | |
CN110022315A (zh) | 一种块链式账本中的权重管理方法、装置及设备 | |
CN112464155A (zh) | 一种数据处理方法、多方安全计算系统和电子设备 | |
CN111628863B (zh) | 一种数据签名的方法、装置、电子设备及存储介质 | |
CN111753324A (zh) | 私有数据的处理方法、计算方法及所适用的设备 | |
CN113206830A (zh) | 一种数据处理方法、装置和电子设备 | |
CN111402058A (zh) | 一种数据处理方法、装置、设备及介质 | |
CN114896635A (zh) | 一种数据处理方法、装置、电子设备和存储介质 | |
CN114003510A (zh) | 基于Mock服务的脚本测试方法、装置、设备及介质 | |
CN112115488B (zh) | 一种数据处理方法、装置和电子设备 | |
CN113704818A (zh) | 加密数据存储系统的密钥管理方法、装置及终端设备 | |
CN113127850A (zh) | 一种浏览器密码填充交互控制方法及装置 | |
CN107122303B (zh) | 一种测试方法及装置 | |
CN112115487B (zh) | 一种数据处理方法、装置和电子设备 | |
CN111970282B (zh) | 系统中异构模块的认证方法及装置 | |
CN112749780B (zh) | 数据的处理方法、装置及设备 | |
CN114513469A (zh) | 分布式系统的流量整形方法、装置和存储介质 | |
CN112182593A (zh) | 一种数据处理方法、装置和电子设备 | |
CN108882005B (zh) | 一种弹幕验证方法、计算机设备和存储介质 | |
CN111488624A (zh) | 一种基于区块链的数据管理方法及设备、介质 |
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 |