CN117014208A - 数据加密方法、装置、系统、电子设备及存储介质 - Google Patents

数据加密方法、装置、系统、电子设备及存储介质 Download PDF

Info

Publication number
CN117014208A
CN117014208A CN202311000886.5A CN202311000886A CN117014208A CN 117014208 A CN117014208 A CN 117014208A CN 202311000886 A CN202311000886 A CN 202311000886A CN 117014208 A CN117014208 A CN 117014208A
Authority
CN
China
Prior art keywords
shift
parameter
shifting
last
coefficient
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
Application number
CN202311000886.5A
Other languages
English (en)
Other versions
CN117014208B (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.)
Haiguang Information Technology Co Ltd
Original Assignee
Haiguang Information Technology 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 Haiguang Information Technology Co Ltd filed Critical Haiguang Information Technology Co Ltd
Priority to CN202311000886.5A priority Critical patent/CN117014208B/zh
Publication of CN117014208A publication Critical patent/CN117014208A/zh
Application granted granted Critical
Publication of CN117014208B publication Critical patent/CN117014208B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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/40Network security protocols

Abstract

本发明实施例提供一种数据加密方法、装置、系统、电子设备及存储介质,其中,所述方法,包括:获取待加密数据;在模逆运算过程中参与移位的第一移位参数和第二移位参数中的任一参数为移位完成时,获取移位完成时刻所对应的目标模逆运算结果;第一移位参数的初始值的比特位数量小于等于第二移位参数的初始值的比特位数量;利用通过目标模逆运算结果确定的密钥信息对待加密数据进行加密,得到加密数据。本发明实施例所提供的技术方案,通过根据第一移位参数和第二移位参数的移位完成时刻,确定移位完成时刻所对应的目标模逆运算结果,因此可以提升获取目标模逆运算结果的效率,提升数据加密的效率。

Description

数据加密方法、装置、系统、电子设备及存储介质
技术领域
本申请实施例涉及数据安全技术领域,具体涉及一种数据加密方法、装置、系统、电子设备及存储介质。
背景技术
数据加密是指使用数据加密算法将明文数据进行加密保护,对数据安全具有重要意义。数据加密算法可以利用密钥信息完成数据的加解密,从而实现数据安全保证。密钥信息的生成与模逆运算结果的获得速度相关,而密钥信息的生成效率影响数据加密的效率,因此如何提供技术方案,以提升数据加密算法的数据加密效率,成为了本领域技术人员亟需解决的技术问题。
发明内容
有鉴于此,本发明实施例提供一种数据加密方法、装置、系统、电子设备及存储介质,以提升数据加密算法的数据加密效率。
为实现上述目的,本发明实施例提供如下技术方案。
第一方面,本发明实施例提供一种数据加密方法,包括:
获取待加密数据;
在第一移位参数和第二移位参数中的任一参数为移位完成时,获取移位完成时刻所对应的目标模逆运算结果;所述第一移位参数和所述第二移位参数为模逆运算过程中参与移位的参数,且所述第一移位参数的初始值的比特位数量小于等于所述第二移位参数的初始值的比特位数量;
根据所述目标模逆运算结果确定密钥信息;
利用所述密钥信息,对所述待加密数据进行加密,得到加密数据。
第二方面,本发明实施例提供一种数据加密装置,包括:
待加密数据获取模块,用于获取待加密数据;
模逆运算结果获取模块,用于在第一移位参数和第二移位参数中的任一参数为移位完成时,获取移位完成时刻所对应的目标模逆运算结果;所述第一移位参数和所述第二移位参数为模逆运算过程中参与移位的参数,且所述第一移位参数的初始值的比特位数量小于等于所述第二移位参数的初始值的比特位数量;
密钥信息确定模块,用于根据所述目标模逆运算结果确定密钥信息;
数据加密模块,用于利用所述密钥信息,对所述待加密数据进行加密,得到加密数据。
第三方面,本发明实施例还提供了一种数据加密系统,包括:
如第二方面所述的数据加密装置;
模逆单元,用于根据所述数据加密装置提供的初始参数信息进行模逆运算,并将目标模逆运算结果发送至所述数据加密装置。
第四方面,本发明实施例还提供了一种电子设备,包括存储器和处理器,所述存储器存储有程序,所述处理器调用所述存储器中存储的程序,执行如第一方面所述的数据加密方法。
第五方面,本发明实施例还提供了一种存储介质,所述存储介质存储有程序,所述程序被执行时实现如第一方面所述的数据加密方法。
本发明实施例提供了一种数据加密方法,包括:获取待加密数据;在第一移位参数和第二移位参数中的任一参数为移位完成时,获取移位完成时刻所对应的目标模逆运算结果;所述第一移位参数和所述第二移位参数为模逆运算过程中参与移位的参数,且所述第一移位参数的初始值的比特位数量小于等于所述第二移位参数的初始值的比特位数量;根据所述目标模逆运算结果确定密钥信息;利用所述密钥信息,对所述待加密数据进行加密,得到加密数据。可见,本发明实施例所提供的数据加密方法,在利用数据加密程序的密钥信息,对待加密数据进行加密时,通过结合模逆运算过程中的第一移位参数的移位完成的时刻和第二移位参数的移位完成时刻,在任意一个移位参数的移位结果为移位完成时,获取移位完成时刻所对应的目标模逆运算结果,即结束模逆运算,由于第一移位参数的初始值的比特位数量小于等于所述第二移位参数的初始值的比特位数量,因此结合第一移位参数的移位完成时刻和第二移位参数的移位完成时刻,使得第一移位参数和第二移位参数完成移动所需的综合时间范围的下限,低于仅使用第二移位参数完成移动所需的时间范围的下限,从而在第一移位参数移位完成时或第二移位参数移位完成时,获取移位完成时刻所对应的目标模逆运算结果,可以提供加快获取目标模逆运算结果的速度的基础;由于目标模逆运算结果与密钥信息的确定相关,因此加快获得目标模逆运算结果的速度,可以提升获得密钥信息的效率,进而提升数据加密的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是本发明实施例所提供的非对称数据加密的一过程示意图;
图2是基于基为4的二进制快速求逆算法进行数据加密的一流程示意图;
图3是本发明实施例所提供的数据加密方法的一流程示意图;
图4是本发明实施例所提供的数据加密方法的另一流程示意图;
图5是本发明实施例所提供的数据加密方法中进行模逆运算的一流程示意图;
图6是本发明实施例提供的数据加密方法中在第一种情况下进行模逆运算的一流程示意图;
图7是本发明实施例提供的数据加密方法中在第二种情况下进行模逆运算的一流程示意图;
图8是本发明实施例提供的数据加密方法中在第三种情况下进行模逆运算的一流程示意图;
图9是本发明实施例提供的数据加密方法中在第四种情况下进行模逆运算的一流程示意图;
图10是本发明实施例提供的数据加密方法中在第五种情况下进行模逆运算的一流程示意图;
图11是本发明实施例所提供的数据加密装置的一结构示意图;
图12是本发明实施例所提供的数据加密系统的一架构示意图;
图13是本发明实施例所提供的数据加密系统中模逆单元的一结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在数据的传输过程中,存在数据被篡改的风险,可能对发送方或者接收方造成一定的损失。因此,对于数据的安全保护是非常重要的。数据加密算法通过对数据进行加密来实现对于数据的保护。
在数据加密算法中的对称加密算法只有一种密钥,并且是非公开的,如果要解密就得让对方知道密钥。所以利用对称数据加密算法保证数据的安全性就是保证密钥的安全性。在数据加密算法中的非对称加密算法,在对数据进行保护时,需要两个密钥:公钥(public key)和私钥(private key)。公钥和私钥是一对,称为密钥信息,如果用公钥对数据加密,那么只能用对应的私钥解密。如果用私钥对数据加密,只能用对应的公钥进行解密。因为加密和解密用的是不同的密钥,所以称为非对称数据加密算法。非对称数据加密算法有两个密钥,其中一个密钥是公开的,这样就可以不需要像对称加密算法那样传输对方的密钥了。因此非对称数据加密算法相较于对称数据加密算法具有较高的安全性。
例如,非对称数据加密算法中的椭圆曲线密码编码学算法(ECC,Elliptic CurvesCryptography),是基于椭圆曲线数学理论实现的一种非对称数据加密算法。相比RSA公共密钥算法(RSA,RSA Public Key System),ECC优势是可以使用更短的密钥,来实现与RSA相当或更高的安全。其中,RSA加密算法也是一种非对称加密算法,在公开密钥加密和电子商业中广泛使用。
在利用非对称数据加密算法对数据进行保护的过程中(即利用非对称数据加密算法对数据进行加解密),发送方使用公钥对信息进行加密,接收方收到密文后,使用私钥进行解密,其中公钥和私钥为非对称数据加密算法产生的密钥信息。
为方便理解,请参考图1,图1是本发明实施例所提供的非对称数据加密的一过程示意图。
如图1所示,首先,要求接收消息的端系统,产生一对用来加密和解密的密钥信息,如图1中的密钥对为接收者B预先产生的一对密钥信息(PKB,SKB)以便于后续发送者A与接收者B进行数据传输的过程中,传输的数据需要进行数据保护时使用,其中,PKB是公开密钥,SKB是秘密密钥。产生密钥对之后,接收者B可以将加密密钥(如图中的PKB)予以公开。另一个密钥则被保密(图中的SKB)。
当系统端A(为发送者A)要想向系统端B(为接收者B)发送消息m时,则利用数据加密算法(例如椭圆曲线非对称数据加密算法),使用系统端B的公开密钥PKB加密m。
接着,系统端B收到密文c后用自己的秘密密钥SKB解密,得到解密后的明文m。
攻击者会在发送者A利用数据加密算法对数据进行加密的过程中,监听加密所利用到的加密密钥,从而破解出对应的解密密钥和利用破解出的解密密钥解密后得到的明文/>从而实现对加密过程进行攻击。
因此,在上述利用非对称数据加密算法对数据保护的过程中,最重要的环节之一是密钥信息的生成,以RSA算法中产生密钥信息的过程为例进行说明。
在RSA算法中,密钥信息的产生过程为:
首先,选两个保密的大素数p和q;其次,计算n=p×q,φ(n)=(p-1)(q-1),其中φ(n)是n的欧拉函数值;选择一个整数e,该整数e满足1<e<φ(n),且gcd(φ(n),e)=1,gcd表示最大公约数。
然后,计算d,满足d·e≡1modφ(n),即d是e在模φ(n)下的逆元(乘法逆元),因e与φ(n)互素,由模逆运算可知,它的模逆运算结果即逆元一定存在。
最后,以{e,n}为公开密钥PKB,{d,n}为秘密密钥SKB
可以看到,模逆运算结果的获得过程为求逆过程,在产生密钥信息的过程中,模逆运算结果即逆元是直接关系密钥信息的生成的,在非对称数据加密算法中,模逆运算是重要的步骤,模逆运算结果(逆元)的获取速度与密钥信息的获得速度正相关,因此加快模逆运算结果的获取速度,就可以加快密钥信息的获得速度,进而可以提升数据加密的效率。
进行模逆运算求解模逆运算结果的方法主要包括模幂算法、扩展欧几里得算法、二进制扩展欧几里得算法等。其中,模幂算法以费马小定理为基础,将模逆运算转换成模幂运算,但是模幂算法无法确定模逆结果是否存在。采用模乘器作为硬件运算单元,较为复杂且功耗较大。扩展欧几里得算法通过辗转相除计算最大公因子求解模逆,当最大公因子为非1整数时无法获取模逆的计算结果。采用除法器作为硬件运算单元,实现仍较为复杂。二进制扩展欧几里得算法将除法转换成移位和加减法,但是,在移位的过程中,操作数的权值发生了改变,最终运算结果中包含有2n(n为操作数的位长)项权重因子,去除权重因子需进行多次除2的操作,因此,要求得模逆运算结果就必须使得模数为奇数。但是,二进制扩展欧几里得算法方法在进行模逆运算时仍存在一定的限制,无法针对任意非零整数求模,并且计算过程较为复杂,求逆时间长。
本发明实施例以二进制扩展欧几里得算法进行模逆运算,求解逆元为例进行说明。
二进制扩展欧几里得算法的原理为:
给定整数a、b,若gcd(a,b)=1,则存在c,满足ac=1modb,c即为a模b的乘法逆元。
利用扩展的欧几里得算法求得满足条件的c的过程为:
先做辗转相除,当a、b互素时,最后一步得到的余数为1,再从1出发,对前面得到的所有除法算式进行变形,将余数用除数和被除数表示,最终便可将1表示为a与b的一种线性组合,即ax+by=1。从而x就是a模b的乘法逆元。因此寻找乘法逆元的过程就是求x和y的过程。
使用二进制扩展欧几里得算法,需要辗转相除法,如果输入m和a均为256比特的数据,一次移位2比特,一般需要256个周期才能完成模逆运算,运算过程相对复杂,求逆时间长。
为了提升模逆运算的速度,在一个示例中,可以利用基为4的二进制快速求逆算法进行模逆运算。请参考图2,图2是基于基为4的二进制快速求逆算法进行数据加密的一流程示意图。
如图2所示,该流程可以包括以下步骤:
步骤S001,获取待加密数据。
所述待加密数据为需要进行安全保护的数据。
步骤S002,获得基为4的二进制快速求逆算法的模逆运算结果。
利用基为4的二进制快速求逆算法进行模逆运算,得到求逆运算结束时的逆元,即所述模逆运算结果。
步骤S003,基于所述模逆运算结果确定密钥信息。
所述密钥信息可以为前述所述的,利用模逆运算结果d计算得到的公开密钥PKB即{e,n}和秘密密钥SKB即{d,n}。
步骤S004,利用所述密钥信息,对所述待加密数据进行加密,得到加密数据。
在得到密钥信息之后,则可以对需要保护的数据即待加密数据进行加密,得到加密数据。
在基为4的快速二进制求逆算法中,获得模逆运算结果的时间较长,基于此,本发明实施例提供了一种数据加密方法,通过结合模逆运算过程中的第一移位参数的移位完成时刻和第二移位参数的移位完成时刻,来决定获得模逆运算结果的时间,由于第一移位参数的初始值的比特位数量小于等于第二移位参数的初始值的比特位数量,因此可以具有提前获得目标模逆运算结果的实现基础,从而可以加快获得目标模逆运算结果的速度,以提升密钥信息的确定速度,进而提升数据加密的效率。
请参考图3,图3是本发明实施例所提供的数据加密方法的一流程示意图。
如图3所示,该流程可以包括以下步骤:
步骤S100,获取待加密数据。
所述待加密数据为需要进行保护的数据,为发送者和接收者之间进行传输的数据。
步骤S101,在第一移位参数和第二移位参数中的任一参数为移位完成时,获取移位完成时刻所对应的目标模逆运算结果;所述第一移位参数和所述第二移位参数为模逆运算过程中参与移位的参数,且所述第一移位参数的初始值的比特位数量小于等于所述第二移位参数的初始值的比特位数量。
所述目标模逆运算结果为数据加密过程中,为了获得密钥信息而进行模逆运算时,所得到的求逆结果。所述第一移位参数和所述第二移位参数为模逆运算过程中使用的参与移位的参数。
所述第一移位参数和所述第二移位参数为模逆运算过程中求解最终模逆运算结果的变量,在进行模逆运算的过程中,以第一移位参数和第二移位参数为基础进行求逆。例如,当获取到待加密数据之后,则利用数据加密算法对待加密数据进行加密操作,此时需要获得用于数据加密的密钥信息。例如,首先需要获取用于确定密钥信息即进行模逆运算的第一移位参数的初始值和第二移位参数的初始值。在基为4的快速二进制求逆算法中,可以首先获得第一移位参数的初始值和第二移位参数的初始值,然后对具有初始值的第一移位参数和第二移位参数进行不断的移位,将每次移位后的参数作为下一次移位的第一移位参数和第二移位参数,然后判断每次移位后得到的第一移位参数和第二移位参数中的任一参数是否为移位完成,并将移位完成时刻所对应的模逆结果作为目标模逆运算结果。
其中,所述第二移位参数的初始值为模逆运算时使用的模数,是一个比特位固定(例如,为256比特位)的奇数,是固定参数P。
所述第一移位参数的初始值可作为模逆运算时,为进行求逆运算而输入的随机输入参数Zin,是一个具有随机的比特位的数值。
在基为4的二进制快速求逆算法中,进行求逆时还需要引入第一移位参数对应的第一移位参数系数x1和第二移位参数对应的第二移位参数系数x2,这两个系数是求解目标模逆运算结果(即逆元)时的变量,其中基为4表示一次可以移动2位,移动2位表示每次移动2比特位的数值,可以用对被移动的参数除以2的2次方即除以4的方式表示。当模逆运算结束时,基于结束时所确定的移位参数,返回此时对应的模逆运算结果,即逆元。结束时所确定的移位参数可以为第二移位参数依次移位,完成模逆运算后所得到的第二移位参数v,也可以为第一移位参数依次移位,完成模逆运算后所得到的第一移位参数u。
也就是说第一移位参数u和第二移位参数v以及参数系数(x1和x2)均为变量,在得到初始值之后,则开始进行求逆。对用于参与移位的第一移位参数u和第二移位参数v以及参数系数(x1和x2)进行不断移位。当将第二移位参数的初始值(例如固定参数P)赋值给第二移位参数v之后,以赋值完成的第二移位参数v为基础,对第二移位参数v开始进行不断的移位,第二移位参数v为移位完成时(v<=1),基于已经移位完成的第二移位参数v,返回此时的模逆运算结果(逆元)即此时返回的第一移位参数系数x1。
或者,当将第一移位参数的初始值(例如随机输入参数Zin)赋值给第一移位参数u之后,以赋值完成的第一移位参数u为基础,对第一移位参数u开始进行不断的移位,第一移位参数u为移位完成时(u==0),基于已经移位完成的第一移位参数u,返回此时对应的模逆运算结果(逆元)即此时返回的第一移位参数系数x1,所述第二移位参数系数x2和第一移位参数系数x1为用于求解最终的模逆运算结果的变量,最终所得的模逆运算结果为随机输入参数系数x1对应的数值(即x1=Zin-1modP,表示为x1是Zin在模P下的逆元)。
对所述第二移位参数和所述第一移位参数进行移位,并根据每次移位后得到的移位参数确定此时每个移位参数对应的系数,从而当第二移位参数和第一移位参数中的任一参数为移位完成时,返回此时移位完成时刻所对应的逆元(随机输入参数系数x1),作为目标模逆运算结果。
由于所述第一移位参数的初始值的比特位数量小于等于所述第二移位参数的初始值的比特位数量,因此,所述第一移位参数和所述第二移位参数的完成移位所需的综合时间范围的下限,低于第二移位参数完成移位所需的时间范围的下限。例如,第一移位参数的初始值的比特位数量为4位,第二移位参数的初始值的比特位数量为固定比特256位,以每次移动两位(移动两位表示每次移动两个比特位)为例,第一移位参数需要移动4/2=2次,移动周期为2,可以将4比特的数值移完,第二移位参数需要移动256/2=128次,移动周期为128,可以将256比特的数值移完;由于每次移位的位数可以还可以为每次移动1位,即每次移动1比特位的数值,此时第一移位参数需要移动4/1=4次,移动周期为4,可以将4比特的数值移完,第二移位参数需要移动256/1=256次,移动周期为256,可以将256比特的数值移完。
因此,在仅考虑第二移位参数的移位完成时刻,获得目标模逆运算结果时,对应所需要的时间范围为[128-256];而在结合了第一移位参数和第二移位参数的移位完成时刻,获得目标模逆运算结果时,对应所需要的综合时间范围为[1-256]。可以看到,在结合了第一移位参数的移位完成时刻和第二移位参数的移位完成时刻,来获得目标模逆运算结果时,所需要的综合时间范围的下限要明显低于第二移位参数完成移位所需的时间范围的下限,从而可以提供提前获得目标模逆运算结果的实现基础,进而可以加快获得目标模逆运算结果的速度,提升确定密钥信息的效率,提升数据加密的效率。
进一步的,根据上述说明,本申请实施例所述的在第一移位参数和第二移位参数中的任一参数为移位完成时,获取移位完成时刻所对应的目标模逆运算结果,可以包括在第一移位参数的初始值的比特位数量小于第二移位参数的初始值的比特位数量的情况下,根据先移位完成的第一移位参数,获取此时所对应的目标模逆运算结果;还可以包括在第一移位参数的初始值的比特位数量等于第二移位参数的初始值的比特位数量的情况下,根据同时移位完成的第一移位参数和第二移位参数,获取此时所对应的目标模逆运算结果。由于最终返回的目标模逆运算结果均为与第一移位参数对应的数值(后续所述的第一移位参数系数x1),因此,本发明实施例所提供的结合第一移位参数和第二移位参数的移位完成时刻,以获取目标模逆运算结果的方式不会影响最终的目标模逆运算结果的确定,可以在保证模逆运算实现过程的准确性的同时,为提前结束模逆运算,加快获得目标模逆运算结果提供实现基础。
在一种实施方式中,为了能够进一步提升获得目标模逆运算结果的可靠性,即模逆运算的可靠性,所述第一移位参数的初始值在预设比特位数量范围内具有随机的比特位数量,所述第二移位参数的初始值具有固定的比特位数量。
由于所述第一移位参数的初始值的比特位数量小于等于所述第二移位参数的初始值的比特位数量,因此所述预设比特位数量范围的上限小于等于所述第二移位参数的初始值的比特位数量。
其中,第二移位参数的初始值可以为前述所述的在进行模逆运算时,初始输入的固定参数P,所述第一移位参数的初始值可以为前述所述的在进行模逆运算时,初始输入的随机输入参数Zin。
所述预设比特位数量范围可以为[1-256],因此,在本发明实施例提供的数据加密方法中,在进行模逆运算时,结合了第一移位参数移位完成时的时刻,和第二移位参数移位完成时的时刻来获得目标模逆运算结果。由于第二移位参数的初始值在模逆运算的过程中,具有固定的比特位为256位,因此在仅通过第二移位参数移位完成时刻获得目标模逆运算结果时,其对应的移动周期在[128-256]个周期范围内。而由于第一移位参数的初始值在预设比特位数量范围内具有随机的比特位数量,且预设比特位数量范围的上限不大于第二移位参数的初始值的比特位,因此在本发明实施例所提出的结合第一移位参数移位完成时的时刻,和第二移位参数移位完成时的时刻,来获得目标模逆运算结果的方式中,所需要的综合时间范围(移动周期)在[1~256]之间。可以看到,结合第一移位参数移位完成时的时刻,和第二移位参数移位完成时的时刻的方式中,综合时间范围的下限明显降低,从而可以减小移位完成时间,以加快获取目标模逆运算结果的时间。
进一步的,由于第二移位参数的初始值的比特位数量是固定的,因此在仅通过第二移位参数的移位完成时刻获取目标模逆运算结果时,其获取到目标模逆运算结果的时间是具有规律性的,会对数据加密算法的抗攻击能力造成影响。而在结合第一移位参数移位完成时的时刻,和第二移位参数移位完成时的时刻的方式中,由于第一移位参数的初始值的比特位数量具有随机性,因此第一移位参数的移位完成时刻是随机不确定的,从而获得目标模逆运算结果的时间也就具有随机性,因此还可以提高数据加密算法的抗攻击能力。
步骤S102,根据所述模逆运算结果确定密钥信息。
基于模逆运算结果确定密钥信息的方式可以利用前述实施例中的计算方式进行密钥信息的计算。
当得到目标模逆运算结果时,则可以基于目标模逆运算结果得到对应的密钥信息,例如前述所述的{e,n}为公开密钥PKB,{d,n}为秘密密钥SKB的密钥信息。
步骤S103,利用所述密钥信息,对所述待加密数据进行加密,得到加密数据。
发送者可以利用密钥信息中的公开密钥信息待加密数据进行加密,接收者相应的使用对应的秘密密钥信息加密数据进行解密,实现对于待加密数据的保护。
可以看出,本发明实施例所提供的数据加密方法,在利用数据加密程序的密钥信息,对待加密数据进行加密时,通过结合模逆运算过程中的第一移位参数的移位完成的时刻和第二移位参数的移位完成时刻,在任意一个移位参数的移位结果为移位完成时,获取移位完成时刻所对应的目标模逆运算结果,即结束模逆运算,由于第一移位参数的初始值的比特位数量小于等于所述第二移位参数的初始值的比特位数量,因此结合第一移位参数的移位完成时刻和第二移位参数的移位完成时刻,使得第一移位参数和第二移位参数完成移动所需的综合时间范围的下限,低于仅使用第二移位参数完成移动所需的时间范围的下限,从而在第一移位参数移位完成时或第二移位参数移位完成时,获取移位完成时刻所对应的目标模逆运算结果,可以提供加快获取目标模逆运算结果的速度的基础;由于目标模逆运算结果与密钥信息的确定相关,因此加快获得目标模逆运算结果的速度,可以提升获得密钥信息的效率,进而提升数据加密的效率。
为了能够实现对第一移位参数u和第二移位参数v进行移位,在一种实施方式中,所述方法还可以包括:
提供每次移位对应的移位控制信息,所述移位控制信息用于在一次移位时,控制多个模逆运算参数中的至少一个模逆运算参数进行移位;其中,所述多个模逆运算参数包括:第一移位参数、第二移位参数、第一移位参数系数、第二移位参数系数,所述第一移位参数系数为模逆运算中第一移位参数进行运算时对应的系数,所述第二移位参数系数为模逆运算中第二移位参数进行运算时对应的系数。
所述移位控制信息包括下一次进行移位的模逆运算参数和移位位数,以在下一次移位时,根据移位控制信息控制模逆运算参数按照移位位数进行移位,使得移位的多个模逆运算参数能够满足求逆算法的求逆运算需求。
为了能够顺利进行模逆运算,在一种实施方式中,所述方法还可以包括:
提供初始参数信息,所述初始参数信息包括作为第一移位参数的初始值的随机输入参数,作为第二移位参数的初始值的固定参数,第一移位参数系数的初始值、第二移位参数系数的初始值。
所述初始参数信息为模逆运算所需的初始值,其中,所述随机输入参数Zin具有随机的比特位数量,所述固定参数P具有固定的比特位数量,固定参数P的比特位数量大于等于随机输入参数Zin的比特位数量,第一移位参数系数x1的初始值可以为x1=1、第二移位参数系数x2的初始值可以为x2=0。
根据初始获得的移位信息,开始进行移位,并对每一次移位后的模逆运算参数进行判断,以用于确定获得目标模逆运算结果的时刻。
在一个实施方式中,目标模逆运算结果可以根据对每次移位后的参数的移位判断结果进行确定。请参考图4,图4是本发明实施例所提供的数据加密方法的另一流程示意图。
如图所示,该流程可以包括以下步骤:
步骤S200,获取待加密数据。
步骤S201,确定第一移位参数和第二移位参数中,移位完成的参数是否为所述第一移位参数;如果是,则执行步骤S2020,如果否,则执行步骤S2021。
步骤S2020,根据移位完成的第一移位参数对应的模逆运算结束标志,获取移位完成时刻所对应的第一移位参数系数作为逆元,得到目标模逆运算结果。
步骤S2021,根据移位完成的第二移位参数对应的模逆运算结束标志,获取移位完成时刻所对应的第一移位参数系数作为逆元,得到目标模逆运算结果。
所述模逆运算结束标志用于确定移位完成时刻对应存储的参数信息,所述参数信息包括移位发生后的第一移位参数,第一移位参数系数,第二移位参数以及第二移位参数系数。
如果当前次移位发生时,确定移位的模逆运算参数为第一移位参数和第一移位参数系数,则当前次移位发生后对应的所述存储参数信息中,所述第二移位参数以及第二移位参数系数为当前次移位发生前得到的参数值,即保持上一次移位发生后的第二移位参数和第二移位参数信息不变;将每次移位后的参数信息进行存储,以便于当第一移位参数和第二移位参数中任一参数为移位完成时,根据模逆运算结束标志获取到对应存储的第一移位参数系数,得到目标模逆运算结果。
如果当前次移位发生时,确定移位的模逆运算参数为第二移位参数和第二移位参数系数,则当前次移位发生后对应的所述存储参数信息中,所述第一移位参数以及第一移位参数系数同样为当前次移位发生前得到的参数值。
例如在第一次初始移位时,确定移位的参数为第一移位参数和第一移位参数系数,则第二移位参数和第二移位参数系数没有变化,仍然为第二移位参数的初始值和第二移位参数系数的初始值,在第一次移位结束后,可以将移位后的第一移位参数和移位后的第一移位参数系数以及第二移位参数的初始值和第二移位参数系数的初始值进行存储。
然后,接着对第一次移位后得到的第一移位参数和未移位的第二移位参数判断,如果第一次移位后的第一移位参数此时判断为移位完成,则根据第一移位参数对应的模逆运算结束标志,获取对应第一次移位后存储的第一移位参数系数作为逆元,得到目标模逆运算结果。如果第一次移位后的第一移位参数和未移位的第二移位参数此时判断为均未移位完成,则继续确定移位的模逆运算参数和移位位数,并存储当前次移位发生后的参数信息,直至第一移位参数和第二移位参数中的任一参数为移位完成。
每次移位后的所述第一移位参数和所述第二移位参数为前述所述的参数u和参数v,在未进行移位的开始时刻,为第一移位参数赋值,得到第一移位参数的初始值Zin,并为第二移位参数赋值,得到第二移位参数的初始值P。然后,对赋值后的第一移位参数和第二移位参数进行移位,第一移位参数u和第二移位参数v移位时,每次移位后得到的参数作为下一次移位的第一移位参数u和新的第二移位参数v,由于每次移位后得到的第一移位参数u或每次移位后的第二移位参数v会发生变化,为满足模逆运算所基于的求逆规则,基于变化之后的第一移位参数u和第二移位参数v以及求逆规则,确定此时第一移位参数u对应的第一移位参数系数x1,或确定此时第二移位参数v对应的第二移位参数系数x2,确保求逆规则恒成立;直至第一移位参数u或者第二移位参数v为移位完成时,停止模逆运算,根据模逆运算结束标志得到第一移位参数系数x1作为逆元,得到目标模逆运算结果。
需要说明的是,上述所述将第一移位参数为移位完成时,所对应的第一移位参数系数作为逆元,得到目标模逆运算结果,和所述将第一移位参数为移位完成时,所对应的第一移位参数系数作为逆元,得到目标模逆运算结果中,所述逆元均为第一移位参数移位完成时刻的第一移位参数系数x1;这是由于第一移位参数的初始值的比特位数量小于等于第二移位参数的初始值的比特位数量,因此当第一移位参数为移位完成时,返回的移位完成的第一移位参数对应的逆元为第一移位参数系数x1,作为最终的目标模逆运算结果;当第二移位参数为移位完成时,第一移位参数的初始值的比特位数量小于等于第二移位参数的初始值的比特位数量,因此此时第一移位参数一定也已经移位完成,则此时返回的移位完成的第二移位参数对应的逆元为第一移位参数系数x1,均为第一移位参数移位完成时刻的第一移位参数系数x1,作为最终的目标模逆运算结果。也就是说,第二移位参数为移位完成还是第一移位参数为移位完成,返回的求逆结果均为第一移位参数移位完成时刻返回的随机参数系数即第一移位参数系数x1,从而可以在满足基为4的二进制快速求逆算法的实现基础上,提供提前获得目标模逆运算结果的实现基础。
所述第一移位参数u移位完成可以用“u==0”表示,所述第二移位参数v移位完成可以用“v<=1”表示。
步骤S203,根据所述目标模逆运算结果确定密钥信息。
步骤S204,利用所述密钥信息,对所述待加密数据进行加密,得到加密数据。
通过结合第一移位参数u的移位完成时刻和第二移位参数v的移位完成时刻,可以在其中任意一个参数为移位完成时获得对应的模逆运算结果。
为便于说明模逆运算的求解过程,请参考图5,图5是本发明实施例所提供的数据加密方法中进行模逆运算的一流程示意图。
如图5所示,该流程可以包括以下步骤:
步骤S300,获取上一次移位后得到的第二移位参数和第一移位参数。
所述上一次移位后得到的第二移位参数和第一移位参数可以为在获得到初始值之后的第二移位参数和第一移位参数进行一次移位后,得到的移位结果。
步骤S301,判断在上一次移位后得到的第二移位参数和第一移位参数是否均未移位完成,如果是,则执行步骤S302,如果否,则执行步骤S305。
步骤S302,获取第二移位参数在上一次移位后的低两位比特位数值,以及第一移位参数在上一次移位后的低两位比特位数值。
步骤S303,根据第二移位参数和第一移位参数在上一次移位后的低两位比特位数值,从所述多个模逆运算参数中确定下一次移位的模逆运算参数以及移位位数。
步骤S304,根据下一次移位的模逆运算参数以及移位位数,基于所述移位位数,对所述模逆运算参数进行下一次移位,以提供下一次移位的移位控制信息。
根据第二移位参数和第一移位参数在上一次移位后的低两位比特位数值,确定进行下一次移位的模逆运算参数和对应进行移位的移位位数,以对模逆运算参数进行移位,实现模逆运算的求逆过程。
步骤S305,获取移位完成时刻所对应的目标模逆运算结果。
由于本发明实施例所提供的数据加密方法中,在获得模逆运算结果时,基于对上一次移位后的第一移位参数u的移位完成判断结果和对上一次移位后的第二移位参数v的移位完成判断结果,获得目标模逆运算结果(移位完成时的第一移位参数系数x1)。
所述上一次移位后的第一移位参数为基于移位控制信息进行更新了的第一移位参数u,上一次移位后的第二移位参数为基于移位控制信息进行更新了的第二移位参数v,即每一次移位后,第一移位参数u的移位结果和第二移位参数v的移位结果都会更新,并且在每次移位后判断第一移位参数的移位结果和第二移位参数的移位结果均未移位完成时,则根据当前的第一移位参数u和当前的第二移位参数v的低两位比特位数值确定继续进行移位的模逆运算参数和移位位数;直至其中一个参数为移位完成,得到目标模逆运算结果。
所述移位的模逆运算参数至少为上一次的第二移位参数v、上一次的第一移位参数u、上一次的第一移位参数系数x1和上一次的第二移位参数系数x2这四者中的两者,将上一次移位后得到的参数作为进行下一次移位的初始参数,实现对于第一移位参数和第二移位参数的不断移位,直至其中一个参数为移位完成,停止模逆运算,得到目标模逆运算的结果。
为了便于获得移位完成时模逆运算返回的逆元,在一种实施方式中,所述根据第二移位参数和第一移位参数在上一次移位后的低两位比特位数值,从所述多个模逆运算参数中确定下一次移位的模逆运算参数以及移位位数,可以包括:
在所述第一移位参数在上一次移位后的低两位比特位数值满足第一判断条件时,确定下一次移位的模逆运算参数至少为上一次的第一移位参数和上一次的第一移位参数系数,以及确定对应的移位位数;
或者,在所述第一移位参数在上一次移位后的低两位比特位数值不满足所述第一判断条件,且所述第二移位参数在上一次移位后的低两位比特位数值满足所述第一判断条件时,确定下一次移位的模逆运算参数至少为上一次的第二移位参数和上一次的第二移位参数系数,以及确定对应的移位位数。
通过对未完成移位的参数(第一移位参数和第二移位参数)的低两位比特位数值进行判断,可以确定下一次进行移位的移位位数以及进行移位的模逆运算参数,从而对再次移位后的第一移位参数和第二移位参数进行移位判断,以获得准确的模逆运算结果。
为便于理解基于移位控制信息进行不断移位的求逆过程,请参考图6,图6是本发明实施例提供的数据加密方法中在第一种情况下进行模逆运算的一流程示意图。
所述第一种情况为第一移位参数在上一次移位后的低两位比特位数值或者第二移位参数在上一次移位后的低两位比特位数值是否满足第一判断条件的情况;所述第一判断条件可以为第一移位参数的低两位比特位数值是否为0或者第二移位参数的低两位比特位数值是否为0。
如图6所示,该流程可以包括以下步骤:
步骤S400,获取上一次移位后得到的第一移位参数和第二移位参数。
在刚开始进行移位时,所述上一次的第一移位参数u为第一移位参数的初始值Zin,所述上一次的第二移位参数v为第二移位参数的初始值P。
当然,在未进行移位时,第一移位参数系数x1和第二移位参数系数x2可以根据提供的移位信息中的初始值确定,例如,第一移位参数系数x1的初始值可以为1,第二移位参数系数x2的初始值可以为0。
步骤S401,判断上一次移位后得到的第一移位参数和第二移位参数是否均为未移位完成,如果是,则执行步骤S402,如果否,则执行步骤S410。
步骤S402,获取第一移位参数在上一次移位后的低两位比特位数值和第二移位参数在上一次移位后的低两位比特位数值。
低两位比特位数值可以用于确定在不同的比特位数值下合适的移位位数,以及确定进行移位的参数,便于后续再次进行移位。
步骤S403,判断第一移位参数在上一次移位后的低两位比特位数值是否满足第一判断条件,如果是,则执行步骤S404,如果否,则执行步骤S406。
步骤S404,确定下一次移位的模逆运算参数为上一次的第一移位参数和上一次的第一移位参数系数,以及确定对应的移位位数为右移两位。
步骤S405,将上一次移位后得到的第一移位参数右移两位,以及将上一次移位后得到的第一移位参数系数右移两位。
当第一移位参数的低两位比特位数值等于0时,则对上一次移位后得到的第一移位参数进行右移两位,以及对上一次移位后得到的第一移位参数系数进行右移两位,相当于对上一次的第一移位参数除以4,以及对上一次的第一移位参数系数除以4,表示为u=u/4,x1=x1/4modP(当此时的u即u/4为移位完成时,返回的模逆运算结果即逆元为x1/4)。
步骤S406,判断第二移位参数在上一次移位后的低两位比特位数值是否满足第一判断条件,如果是,则执行步骤S407,如果否,则执行步骤S409。
步骤S407,确定下一次移位的模逆运算参数为上一次的第二移位参数和上一次的第二移位参数系数,以及确定对应的移位位数为右移两位。
步骤S408,将上一次移位后得到的第二移位参数右移两位,以及将上一次移位后得到的第二移位参数系数右移两位。
当上一次移位后得到的第一移位参数的低两位比特位数值不等于0,且第二移位参数的低两位比特位数值等于0时,则对上一次移位后的第二移位参数进行右移两位,以及对上一次移位后的第二移位参数系数x2进行右移两位,相当于对所述上一次移位后的第二移位参数除以4,以及对上一次移位后的第二移位参数系数除以4,表示为v=v/4,x2=x2/4modP(当此时的移位后的第二移位参数v即v/4为移位完成时,由于未对第一移位参数系数和第一移位参数的初始值进行移位,因此基于此时v/4、x2/4和u结合求逆运算公式确定对应返回的模逆运算结果即此时的第一移位参数系数x1)。
步骤S409,对第一移位参数和第二移位参数在上一次移位后的低两位比特位数值继续进行判断。
对于上一次移位后得到的第一移位参数的低两位比特位数值和第二移位参数的低两位比特位数值均不满足第一判断条件的情况,还可以进一步进行判断。
步骤S410,停止模逆运算,得到移位完成时刻所对应的目标模逆运算结果。
当上一次移位后得到的第一移位参数或第二移位参数有一个参数为移位完成时,则停止模逆运算,得到此时移位完成时刻所对应的逆元,作为目标模逆运算结果。
在一种实施方式中,在上一次移位后得到的第一移位参数的低两位比特位数值和第二移位参数的低两位比特位数值均不满足第一判断条件的情况,继续对第一移位参数和第二移位参数在上一次移位后的低两位比特位数值进行判断的过程可以参考图7,图7是本发明实施例提供的数据加密方法中在第二种情况下进行模逆运算的一流程示意图。
所述第二种情况为第一移位参数在上一次移位后的低两位比特位数值和第二移位参数在上一次移位后的低两位比特位数值均不满足第一判断条件时,判断第一移位参数在上一次移位后的低两位比特位数值是否与第二移位参数在上一次移位后的低两位比特位数值相等的情况。
如图7所示,该流程可以包括:
步骤S500,在第一移位参数和第二移位参数均未完成移位时,获取不满足第一种情况的第一移位参数在上一次移位后的低两位比特位数值和第二移位参数在上一次移位后的低两位比特位数值。
步骤S501,判断第一移位参数的低两位比特位数值和第二移位参数的低两位比特位数值是否相等;如果是,则执行步骤S502,如果否,则执行步骤S507。
步骤S502,判断上一次的第一移位参数是否大于上一次的第二移位参数,如果是,则执行步骤S503,如果否,则执行步骤S505。
在第一移位参数的低两位比特位数值和第二移位参数的低两位比特位数值均不满足第一判断条件的时候,进一步确定第一移位参数的低两位比特位数值是否和第二移位参数的低两位比特位数值相等,在相等的情况下根据上一次的第一移位参数和上一次的第二移位参数的比较结果确定下一次移位的参数和移位位数。
步骤S503,确定移位的模逆运算参数为上一次的第一移位参数和上一次的第一移位参数系数,以及确定对应的移位位数为右移两位。
步骤S504,将上一次的第一移位参数调整为第一差值移位两位后的参数;以及将上一次的第一移位参数系数调整为第二差值移位两位后的参数。
其中,第一差值为上一次的第二移位参数和上一次的第一移位参数的差值;第二差值为上一次的第一移位参数系数和上一次的第二移位参数系数的差值。
当上一次的第一移位参数大于上一次的第二移位参数时,确定移位的参数为上一次的第一移位参数和上一次的第一移位参数系数,且此时移位位数仍然为右移两位,只是此时移位后得到的第一移位参数为基于第一差值右移两位后得到的参数,所述第一差值为上一次的第一移位参数和上一次的第二移位参数的差值;以及移位后得到的第一移位参数系数为基于第二差值右移两位后得到的参数,所述第二差值为上一次的第一移位参数系数和上一次的第二移位参数系数的差值。相当于对所述上一次的第一移位参数和上一次的第二移位参数做差之后除以4;以及对上一次的第一移位参数系数和上一次的第二移位参数系数做差之后除以4,表示为u=(u-v)/4,x1=(x1-x2)/4modP(当此时的u即(u-v)/4为移位完成时,返回的模逆运算结果即逆元为(x1-x2)/4)。
在另一种实施方式中,请继续参图7。在所述第一移位参数的低两位比特位数值和所述第二移位参数的低两位比特位数值均不满足所述第一判断条件,且所述第一移位参数的低两位比特位数值和所述第二移位参数的低两位比特位数值相等的情况下,所述方法可以包括:
步骤S505,确定移位的模逆运算参数为上一次的第二移位参数和上一次的第二移位参数系数,以及确定对应的移位位数为右移两位。
步骤S506,将上一次的第二移位参数调整为第三差值右移两位后的参数;以及将上一次的第二移位参数系数体调整为第四差值右移两位后的参数。
其中,第三差值为上一次的第二移位参数和上一次的第一移位参数的差值;第四差值为上一次的固定模逆参乎上和上一次的第一移位参数系数的差值。
当在所述第一移位参数的低两位比特位数值和所述第二移位参数的低两位比特位数值均不满足所述第一判断条件,且所述第一移位参数的低两位比特位数值和所述第二移位参数的低两位比特位数值相等的情况下,当上一次的第一移位参数小于等于上一次的第二移位参数时,确定移位的参数为上一次的第二移位参数和上一次的第二移位参数系数,且此时移位位数仍然为右移两位,只是此时移位后得到的第二移位参数为基于第三差值右移两位后得到的参数,所述第三差值为上一次的第二移位参数和上一次的第一移位参数的差值;以及此时移位后得到的第二移位参数系数为基于第四差值右移两位后得到的参数,所述第四差值为上一次的第二移位参数系数和上一次的第一移位参数系数的差值。
相当于对所述上一次的第一移位参数和上一次的第二移位参数做差之后除以4;以及对上一次的第一移位参数系数和上一次的第二移位参数系数做差之后除以4,表示为v=(v-u)/4,x2=(x2-x1)/4modP(当此时的v即v=(v-u)/4为移位完成时,由于未对第一移位参数进行移动,因此需要基于v=(v-u)/4、(x2-x1)/4以及u,利用求逆算法中的求逆公式确定此时对应返回的模逆运算结果即第一移位参数系数x1)。
步骤S507,对第一移位参数在上一次移位后的低两位比特位数值继续进行判断。
对于上一次移位后得到的第一移位参数的低两位比特位数值和第二移位参数的低两位比特位数值均不满足第一判断条件,且上一次移位后得到的第一移位参数的低两位比特位数值和第二移位参数的低两位比特位数值不相等时,还可以进一步进行判断。
当所述第一移位参数的低两位比特位数值和所述第二移位参数的低两位比特位数值不相等时,继续进行判断,进行逆元的求解。请参考图8,图8是本发明实施例提供的数据加密方法中在第三种情况下进行模逆运算的一流程示意图。
所述第三种情况为第一移位参数在上一次移位后的低两位比特位数值和第二移位参数在上一次移位后的低两位比特位数值均不满足第一判断条件,且第一移位参数在上一次移位后的低两位比特位数值与第二移位参数在上一次移位后的低两位比特位数值不相等时,判断第一移位参数在上一次移位后的低两位比特位数值是否满足第二判断条件的情况;所述第二判断条件可以包括第一移位参数的低两位比特位数值是否为2。
如图8所示,该流程可以包括:
步骤S600,在第一移位参数和第二移位参数均未完成移位时,获取不满足第二种情况的第一移位参数在上一次移位后的低两位比特位数值和第二移位参数在上一次移位后的低两位比特位数值。
步骤S601,判断第一移位参数在上一次移位后的低两位比特位数值是否满足第二判断条件,如果是,则执行步骤S602,如果否,则执行步骤S607。
即在前述第一移位参数的低两位比特位数值和第二移位参数的低两位比特位数值不满足第一判断条件,且第一移位参数的低两位比特位数值和第二移位参数的低两位比特位数值不相等时,进一步判断第一移位参数的低两位比特位数值是否满足第二判断条件,从而确定后续进行移位的位数和移位参数。
步骤S602,判断上一次的第一移位参数的一半是否大于上一次的第二移位参数,如果是,则执行步骤S603,如果否,则执行步骤S605。
步骤S603,确定移位的模逆运算参数为上一次的第一移位参数和上一次的第一移位参数系数,以及确定对应的移位位数为右移一位。
步骤S604,将上一次的第一移位参数调整为第五差值右移一位后的参数;以及将所述上一次的第一移位参数系数调整为第六差值右移一位后的参数。
其中,所述第五差值为上一次的第一移位参数的一半和上一次的第二移位参数的差值;所述第六差值为上一次的第一移位参数系数的一半和上一次的第二移位参数系数的差值。
至少在所述第一移位参数的低两位比特位数值和所述第二移位参数的低两位比特位数值不相等,且所述第一移位参数的低两位比特位数值满足第二判断条件的情况下,即所述第一移位参数的低两位比特位数值等于2的情况下,进行此时的求逆运算。
进一步判断上一次的第一移位参数的一半与上一次的第二移位参数的大小,当上一次的第一移位参数的一半大于上一次的第二移位参数时,确定移位的参数为上一次的第一移位参数和上一次的第一移位参数系数,且此时移位位数为右移一位;此时移位后得到的第一移位参数为基于第五差值右移一位后得到的参数,所述第五差值为上一次的第一移位参数的一半和上一次的第二移位参数的差值;以及此时移位后得到的第一移位参数系数为基于第六差值右移一位后得到的参数,所述第六差值为上一次的第一移位参数系数的一半和上一次的第二移位参数系数的差值。
相当于对所述上一次的第一移位参数的一半与上一次的第二移位参数做差之后除以2;以及对上一次的第一移位参数系数的一半与上一次的第二移位参数系数做差之后除以2,表示为u=(u/2-v)/2,x1=(x1/2-x2)/2modP(当此时的u即u=(u/2-v)/2为移位完成时,返回的模逆运算结果即逆元为(x1/2-x2)/2)。
在所述第一移位参数的低两位比特位数值满足第二判断条件的情况下,当上一次的第一移位参数的一半小于等于上一次的第二移位参数时,请继续参考图8,该流程还可以包括:
步骤S605,确定移位的模逆运算参数为上一次的第二移位参数、上一次的第二移位参数系数、上一次的第一移位参数和上一次的第一移位参数系数,以及确定对应的移位位数为右移一位。
步骤S606,将上一次的第二移位参数调整为第七差值右移一位后的参数;将上一次的第二移位参数系数调整为第八差值右移一位后的参数;将上一次的第一移位参数调整为上一次的第一移位参数右移一位后的参数;以及将上一次的第一移位参数系数调整为上一次的第一移位参数系数右移一位后的参数。
其中,所述第七差值为上一次的第二移位参数与上一次的第一移位参数的一半的差值;所述第八差值为上一次的第二移位参数系数与上一次的第一移位参数系数的一半的差值。
相当于对所述上一次的第二移位参数与上一次的第一移位参数的一半做差之后除以2;对上一次的第二移位参数系数与上一次的第一移位参数系数的一半做差之后除以2,以及对上一次的第一移位参数除以2,对上一次的第一移位参数系数除以2,表示为v=(v-u/2)/2,x2=(x2-x1/2)/2modP;u=u/2,x1=x1/2,(当此时的v即v=(v-u/2)/2或u为移位完成时,由于未对第一移位参数进行移位,因此需要基于(v-u/2)/2、x2-x1/2)/2和u确定此时对应返回的模逆运算结果x1)。
步骤S607,对第二移位参数在上一次移位后的低两位比特位数值进行判断。
当第一移位参数在上一次移位后的低两位比特位数值不满足第二判断条件时,对第二移位参数在上一次移位后的低两位比特位数值进行判断。请参考图9,图9是本发明实施例提供的数据加密方法中在第四种情况下进行模逆运算的一流程示意图。
所述第四种情况为第一移位参数在上一次移位后的低两位比特位数值和第二移位参数在上一次移位后的低两位比特位数值均不满足第一判断条件、第一移位参数在上一次移位后的低两位比特位数值与第二移位参数在上一次移位后的低两位比特位数值不相等,且第一移位参数在上一次移位后的低两位比特位数值不满足第二判断条件时,判断第二移位参数在上一次移位后的低两位比特位数值是否满足第二判断条件的情况;所述第二判断条件还可以包括判断第二移位参数的低两位比特位数值是否为2。
如图9所示,该流程可以包括:
步骤S700,在第一移位参数和第二移位参数均未完成移位时,获取不满足第三种情况的第一移位参数在上一次移位后的低两位比特位数值和第二移位参数在上一次移位后的低两位比特位数值。
步骤S701,判断第二移位参数再上一次移位后的低两位比特位数值是否满足第二判断条件,如果是,则执行步骤S702,如果否,则执行步骤S707。
步骤S702,判断上一次的第一移位参数是否大于上一次的第二移位参数的一半,如果是,执行步骤S703,如果否,则执行步骤S705。
步骤S703,确定移位的模逆运算参数为上一次的第二移位参数、上一次的第二移位参数系数、上一次的第一移位参数和上一次的第一移位参数系数,以及确定对应的移位位数为右移一位。
步骤S704,将上一次的第一移位参数调整为第九差值右移一位后的参数;将上一次的第一移位参数系数调整为第十差值右移一位后的参数;将上一次的第二移位参数调整为上一次的第二移位参数右移一位后的参数;以及将上一次的第二移位参数系数调整为上一次的第二移位参数系数右移一位后的参数。
其中,所述第九差值为上一次的第一移位参数与上一次的第二移位参数的一半的差值;所述第十差值为上一次的第一移位参数系数与上一次的第二移位参数系数的一半的差值。
在第一移位参数的低两位比特位数值和第二移位参数的低两位比特位数值均不等于0,且两者不相等,第一移位参数的低两位比特位数值不等于2的情况下,判断第二移位参数的低两位比特位数值是否等于2。如果等于2,则对此时的第一移位参数和第二移位参数的一半进行比较。
在第一移位参数大于第二移位参数的一半时,对所述上一次的第一移位参数与上一次的第二移位参数的一半做差之后除以2;对上一次的第一移位参数系数与上一次的第二移位参数系数的一半做差之后除以2,以及对上一次的第二移位参数除以2,对上一次的第二移位参数系数除以2,表示为u=(u-v/2)/2,x1=(x1-x2/2)/2modP;v=v/2,x2=x2/2,(如果对此时的v即v/2和u即(u-v/2)/2进行判断的结果为移位完成时,则(x1-x2/2)/2为最终返回的逆元)。
当在上一次的第一移位参数小于上一次的第二移位参数的一半,则进行此时对应的求逆运算,请继续参考图9。
如图9所示,该流程还可以包括:
步骤S705,确定移位的模逆运算参数为上一次的第二移位参数、上一次的第二移位参数系数,以及确定对应的移位位数为右移一位。
步骤S706,将上一次的第二移位参数调整为第十一差值右移一位后的参数;以及将上一次的第二移位参数系数调整为第十二差值右移一位后的参数。
其中,所述第十一差值为上一次的第二移位参数的一半和上一次的第一移位参数的差值;所述第十二差值为上一次的第二移位参数系数的一半和上一次的第一移位参数系数的差值。
在第一移位参数小于或等于第二移位参数的一半时,对所述上一次的第二移位参数的一半与上一次的第一移位参数做差之后除以2;对上一次的第二移位参数系数的一半与上一次的第一移位参数系数做差之后除以2,表示为v=(v/2-u)/2,x2=(x2/2-x1)/2modP;(如果对此时移动后的v即(v/2-u)/2或u进行判断的结果为移位完成时,由于未对第一移位参数进行移位,因此基于(v/2-u)/2、(x2/2-x1)/2、u确定此时返回的目标模逆运算结果x1)。
步骤S707,对上一次移位后得到的第二移位参数和第一移位参数继续进行判断。
在不满足第四种情况时,还可以进一步进行判断。
请参考图10,图10是本发明实施例提供的数据加密方法中在第五种情况下进行模逆运算的一流程示意图。
所述第五种情况为第一移位参数在上一次移位后的低两位比特位数值和第二移位参数在上一次移位后的低两位比特位数值均不满足第一判断条件、第一移位参数在上一次移位后的低两位比特位数值与第二移位参数在上一次移位后的低两位比特位数值不相等,且第一移位参数和第二移位参数在上一次移位后的低两位比特位数值均不满足第二判断条件的情况,对上一次移位后的第二移位参数和第一移位参数进行比较判断的情况。
如图10所示,该流程还可以包括一下步骤:
步骤S800,在第一移位参数和第二移位参数均未完成移位时,获取不满足第四种情况的第一移位参数在上一次移位后的低两位比特位数值和第二移位参数在上一次移位后的低两位比特位数值。
步骤S801,判断上一次的第一移位参数是否大于上一次的第二移位参数,如果是,则执行步骤S802,如果否,则执行步骤S804。
步骤S802,确定移位的模逆运算参数为上一次的第一移位参数和上一次的第一移位参数系数,以及确定对应的移位位数为右移一位。
步骤S803,将上一次的第一移位参数调整为第十三差值右移一位后的参数;以及将上一次的第一移位参数系数调整为第十四差值右移一位后的参数。
其中,所述第十三差值为上一次的第一移位参数和上一次的第二移位参数的差值;所述第十四差值为上一次的第一移位参数系数和上一次的第二移位参数系数的差值。
在上一次的第一移位参数大于上一次的第二移位参数时,对所述上一次的第一移位参数与上一次的第二移位参数做差之后除以2;对上一次的第一移位参数系数与上一次的第二移位参数系数做差之后除以2,表示为u=(u-v)/2,x1=(x1-x2)/2modP;(如果对此时移动后的v或u即(u-v)/2进行判断的结果为移位完成时,则(x1-x2)/2为最终返回的逆元)。
请继续参考图10,如图10所示,该流程还可以包括:
步骤S804,确定移位的模逆运算参数为上一次的第二移位参数和上一次的第二移位参数系数,以及确定对应的移位位数为右移一位。
在上一次的第一移位参数小于等于上一次的第二移位参数时,确定此时的移位的参数和移位位数。
步骤S805,将上一次的第二移位参数调整为第十五差值右移一位后的参数;以及将所述上一次的第二移位参数系数调整为第十六差值右移一位后的参数。
其中,所述第十五差值为上一次的第二移位参数和上一次第一移位参数的差值;所述第十六差值为上一次的第二移位参数系数和上一次的第一移位参数系数的差值。
在上一次的第一移位参数小于等于上一次的第二移位参数时,对所述上一次的第二移位参数与上一次的第一移位参数做差之后除以2;对上一次的第二移位参数系数与上一次的第一移位参数系数做差之后除以2,表示为v=(v-u)/2,x2=(x2-x1)/2modP;(如果对此时移动后的v即(v-u)/2或u进行判断的结果为移位完成时,由于未对第一移位参数进行移位,因此基于(v-u)/2、(x2-x1)/2和u确定此时的目标模逆运算结果x1)。
需要说明的是,上述五种情况在执行完每一次的移位步骤之后(例如步骤S405、步骤S408、步骤S504、步骤S506、步骤S604、步骤S606、步骤S704、步骤S706、步骤S803、步骤S805),均需要进行移位判断,当其中任一个步骤所得到的移位后的参数为移位完成时,则不需要再进行后续的操作。
本发明实施例还提供了一种数据加密装置,请参考图11,图11是本发明实施例所提供的数据加密装置的一结构示意图。
如图11所示,该装置可以包括:
待加密数据获取模块300,用于获取待加密数据;
模逆运算结果获取模块301,用于在第一移位参数和第二移位参数中的任一参数为移位完成时,获取移位完成时刻所对应的目标模逆运算结果;所述第一移位参数和所述第二移位参数为模逆运算过程中参与移位的参数,且所述第一移位参数的初始值的比特位数量小于等于所述第二移位参数的初始值的比特位数量;
密钥信息确定模块302,用于根据所述目标模逆运算结果确定密钥信息;
数据加密模块303,用于利用所述密钥信息,对所述待加密数据进行加密,得到加密数据。
在一个实施方式中,所述第一移位参数的初始值具随机的比特位数量,所述第二移位参数的初始值具有固定的比特位数量。
需要说明的是,所述预设比特位数量范围不大于所述第二移位参数的初始值的比特位数量。
在一个实施例中,所述装置,还可以包括:
初始移位信息提供模块,用于提供每次移位对应的移位控制信息,所述移位控制信息用于在一次移位时,控制多个模逆运算参数中的至少一个模逆运算参数进行移位;其中,所述多个模逆运算参数包括:第一移位参数、第二移位参数、第一移位参数系数、第二移位参数系数,所述第一移位参数系数为模逆运算中第一移位参数进行运算时对应的系数,所述第二移位参数系数为模逆运算中第二移位参数进行运算时对应的系数。
在一个实施方式中,所述模逆运算结果获取模块301,用于在第一移位参数和第二移位参数中的任一参数为移位完成时,获取移位完成时刻所对应的目标模逆运算结果,包括:
在模逆运算过程中,第一移位参数和第二移位参数中的任一参数为移位完成时,根据移位完成的参数对应的模逆运算结束标志,获取移位完成时刻所对应的第一移位参数系数作为逆元,得到目标模逆运算结果,所述模逆运算结束标志用于确定移位完成时刻对应存储的参数信息,所述参数信息包括移位发生后的第一移位参数,第一移位参数系数,第二移位参数以及第二移位参数系数。
所述模逆运算结果获取模块301可以用于获取模逆运算停止时得到的逆元作为目标模逆运算结果。当第一移位参数不断移位所得到的第一移位参数为移位完成或者第二移位参数不断移位后得到的第二移位参数为移位完成时,则可以停止模逆运算,得到模逆运算结果。
可选地,所述初始移位信息提供模块,用于提供每次移位对应的移位控制信息包括:
获取第二移位参数在上一次移位后的低两位比特位数值,以及第一移位参数在上一次移位后的低两位比特位数值;
根据第二移位参数和第一移位参数在上一次移位后的低两位比特位数值,从所述多个模逆运算参数中确定下一次移位的模逆运算参数以及移位位数;
根据下一次移位的模逆运算参数以及移位位数,提供下一次移位的移位控制信息,直至第一移位参数和第二移位参数中的任一参数为移位完成。
可选地,所述装置还可以包括:
初始参数信息提供模块,用于提供初始参数信息,所述初始参数信息包括作为第一移位参数的初始值的随即输入参数,作为第二移位参数的初始值的固定参数,第一移位参数系数的初始值、第二移位参数系数的初始值。
可见,本发明实施例所提供的数据加密装置,在利用数据加密程序的密钥信息,对待加密数据进行加密时,通过结合模逆运算过程中的第一移位参数的移位完成的时刻和第二移位参数的移位完成时刻,在任意一个移位参数的移位结果为移位完成时,获取移位完成时刻所对应的目标模逆运算结果,即结束模逆运算,由于第一移位参数的初始值的比特位数量小于等于所述第二移位参数的初始值的比特位数量,因此结合第一移位参数的移位完成时刻和第二移位参数的移位完成时刻,使得第一移位参数和第二移位参数完成移动所需的综合时间范围的下限,低于仅使用第二移位参数完成移动所需的时间范围的下限,从而在第一移位参数移位完成时或第二移位参数移位完成时,获取移位完成时刻所对应的目标模逆运算结果,可以提供加快获取目标模逆运算结果的速度的基础;由于目标模逆运算结果与密钥信息的确定相关,因此加快获得目标模逆运算结果的速度,可以提升获得密钥信息的效率,进而提升数据加密的效率。
本发明实施例还提供了一种数据加密系统,用于基于模逆运算结果完成数据的加密。请参考图12,图12是本发明实施例所提供的数据加密系统的一架构示意图。
如图12所示,所述数据加密系统可以包括:
如前述实施例所述的数据加密装置30;
模逆单元40,用于根据所述数据加密装置30提供的初始参数信息进行模逆运算,并将目标模逆运算结果发送至所述数据加密装置30。
模逆单元40可以为硬件电路所形成,根据数据加密装置30提供的输入信息即初始参数信息,对第一移位参数和第二移位参数进行不断的移位,并对每一次移位后得到的第一移位参数和第二移位参数进行判断,将判断结果进行结合,例如进行或运算,当第一移位参数或者第二移位参数的判断结果之一为移位完成时,即可结束模逆运算,将此时的模逆运算结果反馈至所述数据加密装置30,以使数据加密装置30完成待加密数据的加密。
为能够准确获得模逆运算结束时的模逆运算结果,在一种实施方式中,请参考图13,图13是本发明实施例所提供的数据加密系统中模逆单元的一结构示意图。
如图13所示,所述模逆单元40可以包括:
移位模块401,用于对第一移位参数和第二移位参数进行多次移位,直至第一移位参数和第二移位参数中的任一参数移位完成;其中,一次移位的参数为第一移位参数和/或第二移位参数;
模逆运算模块402,用于根据每次移位后的第一移位参数,确定第一移位参数系数的值,以及每次移位后的第二移位参数,确定第二移位参数系数的值;
移位判断模块403,用于判断模逆运算模块接收的每次移位后的参数。
在一种实施方式中,所述移位判断模块403可以包括:
第一移位判断模块4031,用于获取所述模逆运算模块402接收的第一移位参数,并判断所述第一移位参数是否为移位完成,发送判断结果;
第二移位判断模块4032,用于获取所述模逆运算模块402接收的第二移位参数,并判断所述第二移位参数是否为移位完成,发送判断结果。
在一种实施方式中,所述模逆单元40还可以包括:
或运算模块404,用于对接收的所述第一移位判断模块4031的判断结果,和所述第二移位判断模块4032的判断结果进行或运算,当所述第一移位判断模块4031的判断结果为第一移位参数移位完成时,或所述第二移位判断模块4032的判断结果为第二移位参数移位完成时,向数据加密装置30输出模逆运算结束标志;
模逆结果存储模块405,用于至少存储所述模逆运算模块402确定的第一移位参数系数的值,以及第二移位参数系数的值;
结束模块406,用于接收所述或运算模块404的模逆运算结束标志,控制模逆运算模块402停止模逆运算,并基于所述模逆运算结束标志从所述模逆结果存储模块405中获取目标模逆运算结果,将模逆运算参数中的第一移位参数系数作为发送至所述数据加密装置30的目标模逆运算结果。
所述模逆结果存储模块405,还可以用于存储所述模逆运算模块402中来自所述移位模块401的第一移位参数的值,以及第二移位参数的值,以为模逆运算过程提供存储的包括了第一移位参数的值,第二移位参数的值,第一移位参数系数的值,以及第二移位参数系数的值的参数信息,便于在移位完成时刻基于参数信息获得第一移位参数系数作为目标模逆运算结果。
可以看出,本发明实施例所提供的数据加密系统,在利用模逆单元40计算目标模逆运算结果时,通过结合模逆运算过程中的第一移位参数的移位完成的时刻和第二移位参数的移位完成时刻,在任意一个移位参数的移位结果为移位完成时,获取移位完成时刻所对应的目标模逆运算结果,即结束模逆运算;由于第一移位参数的初始值的比特位数量小于等于所述第二移位参数的初始值的比特位数量,因此结合第一移位参数的移位完成时刻和第二移位参数的移位完成时刻,使得第一移位参数和第二移位参数完成移动所需的综合时间范围的下限,低于仅使用第二移位参数完成移动所需的时间范围的下限,从而在第一移位参数移位完成时或第二移位参数移位完成时,根据已经移位完成的参数,获取此时所对应的目标模逆运算结果,可以提供加快获取目标模逆运算结果的速度的基础;由于目标模逆运算结果与密钥信息的确定相关,因此加快获得目标模逆运算结果的速度,可以提升获得密钥信息的效率,进而提升数据加密的效率。
本发明实施例还提供了一种电子设备,包括存储器和处理器,所述存储器存储有程序,所述处理器调用所述存储器中存储的程序,执行如前述任一项实施例所述的数据加密方法。
本发明实施例还提供了一种存储介质,所述存储介质存储有程序,所述程序被执行时实现如前述任一项实施例所述的数据加密方法。
上文描述了本发明实施例提供的多个实施例方案,各实施例方案介绍的各可选方式可在不冲突的情况下相互结合、交叉引用,从而延伸出多种可能的实施例方案,这些均可认为是本发明实施例披露、公开的实施例方案。
虽然本发明实施例披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。

Claims (20)

1.一种数据加密方法,其特征在于,包括:
获取待加密数据;
在第一移位参数和第二移位参数中的任一参数为移位完成时,获取移位完成时刻所对应的目标模逆运算结果;所述第一移位参数和所述第二移位参数为模逆运算过程中参与移位的参数,且所述第一移位参数的初始值的比特位数量小于等于所述第二移位参数的初始值的比特位数量;
根据所述目标模逆运算结果确定密钥信息;
利用所述密钥信息,对所述待加密数据进行加密,得到加密数据。
2.如权利要求1所述的数据加密方法,其特征在于,所述第一移位参数的初始值具有随机的比特位数量,所述第二移位参数的初始值具有固定的比特位数量。
3.如权利要求1所述的数据加密方法,其特征在于,还包括:
提供每次移位对应的移位控制信息,所述移位控制信息用于在一次移位时,控制多个模逆运算参数中的至少一个模逆运算参数进行移位;其中,所述多个模逆运算参数包括:第一移位参数、第二移位参数、第一移位参数系数、第二移位参数系数,所述第一移位参数系数为模逆运算中第一移位参数进行运算时对应的系数,所述第二移位参数系数为模逆运算中第二移位参数进行运算时对应的系数。
4.如权利要求3所述的数据加密方法,其特征在于,所述在第一移位参数和第二移位参数中的任一参数为移位完成时,获取移位完成时刻所对应的目标模逆运算结果,包括:
在模逆运算过程中,第一移位参数和第二移位参数中的任一参数为移位完成时,根据移位完成的参数对应的模逆运算结束标志,获取移位完成时刻所对应的第一移位参数系数作为逆元,得到目标模逆运算结果,所述模逆运算结束标志用于确定移位完成时刻对应存储的参数信息,所述参数信息包括移位发生后的第一移位参数,第一移位参数系数,第二移位参数以及第二移位参数系数。
5.如权利要求4所述的数据加密方法,其特征在于,所述提供每次移位对应的移位控制信息包括:
获取第二移位参数在上一次移位后的低两位比特位数值,以及第一移位参数在上一次移位后的低两位比特位数值;
根据第二移位参数和第一移位参数在上一次移位后的低两位比特位数值,从所述多个模逆运算参数中确定下一次移位的模逆运算参数以及移位位数;
根据下一次移位的模逆运算参数以及移位位数,提供下一次移位的移位控制信息,直至第一移位参数和第二移位参数中的任一参数为移位完成。
6.如权利要求5所述的数据加密方法,其特征在于,所述根据第二移位参数和第一移位参数在上一次移位后的低两位比特位数值,从所述多个模逆运算参数中确定下一次移位的模逆运算参数以及移位位数,包括:
在所述第一移位参数在上一次移位后的低两位比特位数值满足第一判断条件时,确定下一次移位的模逆运算参数至少为上一次的第一移位参数和上一次的第一移位参数系数,以及确定对应的移位位数;
或者,在所述第一移位参数在上一次移位后的低两位比特位数值不满足所述第一判断条件,且所述第二移位参数在上一次移位后的低两位比特位数值满足所述第一判断条件时,确定下一次移位的模逆运算参数至少为上一次的第二移位参数和上一次的第二移位参数系数,以及确定对应的移位位数。
7.如权利要求6所述的数据加密方法,其特征在于,所述确定下一次移位的模逆运算参数至少为上一次的第一移位参数和上一次的第一移位参数系数,以及确定对应的移位位数,包括:
在所述第一移位参数和第二移位参数在上一次移位后的低两位比特位数值均不满足第一判断条件、所述第一移位参数和第二移位参数在上一次移位后的低两位比特位数值相等时,并且所述第一移位参数在上一次移位后的参数值大于所述第二移位参数在上一次移位后的参数值时,确定移位的模逆运算参数为上一次的第一移位参数和上一次的第一移位参数系数,以及确定对应的移位位数为右移两位;
其中,在对第一移位参数进行下一次移位时,将上一次的第一移位参数调整为第一差值移位两位后的参数,所述第一差值为上一次的第二移位参数和上一次的第一移位参数的差值;
以及,在对第一移位参数系数进行下一次移位时,将上一次的第一移位参数系数调整为第二差值移位两位后的参数,所述第二差值为上一次的第一移位参数和上一次的第二移位参数的差值。
8.如权利要求7所述的数据加密方法,其特征在于,所述确定下一次移位的模逆运算参数至少为上一次的第二移位参数和上一次的第二移位参数系数,以及确定对应的移位位数,包括:
在所述第一移位参数和第二移位参数在上一次移位后的低两位比特位数值均不满足第一判断条件、所述第一移位参数和第二移位参数在上一次移位后的低两位比特位数值相等时,并且所述第一移位参数在上一次移位后的参数值小于等于所述第二移位参数在上一次移位后的参数值时,确定移位的模逆运算参数至少为上一次的第二移位参数和上一次的第二移位参数系数,以及确定对应的移位位数为右移两位;
其中,在对第二移位参数进行下一次移位时,将上一次的第二移位参数调整为第三差值右移两位后的参数,所述第三差值为上一次的第二移位参数和上一次的第一移位参数的差值;
以及在对第二移位参数系数进行下一次移位时,将上一次的第二移位参数系数调整为第四差值右移两位后的参数,所述第四差值为上一次的第二移位参数系数和上一次的第一移位参数系数的差值。
9.如权利要求8所述的数据加密方法,其特征在于,所述确定下一次移位的模逆运算参数至少为上一次的第一移位参数和上一次的第一移位参数系数,以及确定对应的移位位数,包括:
在所述第一移位参数和第二移位参数在上一次移位后的低两位比特位数值均不满足第一判断条件、所述第一移位参数和第二移位参数在上一次移位后的低两位比特位数值不相等时,并且所述第一移位参数在上一次移位后的低两位比特位数值满足第二判断条件时,当上一次的第一移位参数的一半大于上一次的第二移位参数时,确定移位的模逆运算参数为上一次的第一移位参数和上一次的第一移位参数系数,以及确定对应的移位位数为右移一位;
其中,在对第一移位参数进行下一次移位时,将上一次的第一移位参数调整为第五差值右移一位后的参数,所述第五差值为上一次的第一移位参数的一半和上一次的第二移位参数的差值;
以及,在对第一移位参数系数进行下一次移位时,将上一次的随机参数系数调整为第六差值右移一位后的参数,所述第六差值为上一次的随机参数系数的一半和上一次的第二移位参数系数的差值;
或者,所述第一移位参数在上一次移位后的低两位比特位数值不满足第二判断条件,且所述第二移位参数在上一次移位后的低两位比特位数值满足第二判断条件时,当上一次的第一移位参数大于上一次的第二移位参数的一半时,确定移位的模逆运算参数为上一次的第二移位参数、上一次的第二移位参数系数、上一次的第一移位参数和上一次的第一移位参数系数,以及确定对应的移位位数为右移一位;
其中,在对第一移位参数进行下一次移位时,将上一次的第一移位参数调整为第九差值右移一位后的参数,所述第九差值为上一次的第一移位参数与上一次的第二移位参数的一半的差值;
在对第一移位参数系数进行下一次移位时,将上一次的第一移位参数系数调整为第十差值右移一位后的参数,所述第十差值为上一次的第一移位参数系数与上一次的第二移位参数系数的一半的差值;
在对第二移位参数进行下一次移位时,将上一次的第二移位参数调整为上一次的第二移位参数右移一位后的参数;
以及,在对第二移位参数系数进行下一次移位时,将上一次的第二移位参数系数调整为上一次的第二移位参数系数右移一位后的参数。
10.如权利要求9所述的数据加密方法,其特征在于,所述确定下一次移位的模逆运算参数至少为上一次的第二移位参数和上一次的第二移位参数系数,以及确定对应的移位位数,包括:
在所述第一移位参数和第二移位参数在上一次移位后的低两位比特位数值均不满足第一判断条件、所述第一移位参数和第二移位参数在上一次移位后的低两位比特位数值不相等时,并且所述第一移位参数在上一次移位后的低两位比特位数值满足第二判断条件时,当上一次的第一移位参数的一半小于等于上一次的第二移位参数时,确定移位的模逆运算参数为上一次的第二移位参数、上一次的第二移位参数系数、上一次的第一移位参数和上一次的第一移位参数系数,以及确定对应的移位位数为右移一位;
其中,在对第二移位参数进行下一次移位时,将上一次的第二移位参数调整为第七差值右移一位后的参数,所述第七差值为上一次的第二移位参数与上一次的第一移位参数的一半的差值;
在对第二移位参数系数进行下一次移位时,将上一次的第二移位参数系数调整为第八差值右移一位后的参数,所述第八差值为上一次的第二移位参数系数与上一次的第一移位参数系数的一半的差值;
在对第一移位参数进行下一次移位时,将上一次的第一移位参数调整为上一次的第一移位参数右移一位后的参数;
以及,在对第一移位参数系数进行下一次移位时,将上一次的第一移位参数系数调整为上一次的第一移位参数系数右移一位后的参数。
11.如权利要求10所述的数据加密方法,其特征在于,所述确定下一次移位的模逆运算参数至少为上一次的第二移位参数和上一次的第二移位参数系数,以及确定对应的移位位数,包括:
在所述第一移位参数和第二移位参数在上一次移位后的低两位比特位数值均不满足第一判断条件、所述第一移位参数和第二移位参数在上一次移位后的低两位比特位数值不相等时,并且所述第一移位参数在上一次移位后的低两位比特位数值不满足第二判断条件时,所述第二移位参数在上一次移位后的低两位比特位数值满足第二判断条件时,当上一次的第一移位参数小于等于上一次的第二移位参数的一半时,确定移位的模逆运算参数为上一次的第二移位参数、上一次的第二移位参数系数;以及确定对应的移位位数为右移一位;
其中,在对第二移位参数进行下一次移位时,将所述上一次的第二移位参数调整为第十一差值右移一位后的参数,所述第十一差值为上一次的第二移位参数的一半和上一次的第一移位参数的差值;
以及,在对第二移位参数系数进行下一次移位时,将所述上一次的第二移位参数系数调整为第十二差值右移一位后的参数,所述第十二差值为上一次的第二移位参数系数的一半和上一次的第一移位参数系数的差值。
12.如权利要求11所述的数据加密方法,其特征在于,所述确定下一次移位的模逆运算参数至少为上一次的第一移位参数和上一次的第一移位参数系数,以及确定对应的移位位数,包括:
在所述第一移位参数和第二移位参数在上一次移位后的低两位比特位数值均不满足第一判断条件、所述第一移位参数和第二移位参数在上一次移位后的低两位比特位数值不相等,且在所述第一移位参数和第二移位参数在上一次移位后的低两位比特位数值均不满足第二判断条件的情况下,当上一次的第一移位参数大于上一次的第二移位参数时,确定移位的模逆运算参数为上一次的第一移位参数和上一次的第一移位参数系数;以及确定对应的移位位数为右移一位;
其中,在对第一移位参数进行下一次移位时,将所述上一次的第一移位参数调整为第十三差值右移一位后的参数,所述第十三差值为上一次的第一移位参数和上一次的第二移位参数的差值;
以及,在对第一移位参数系数进行下一次移位时,将所述上一次的第一移位参数系数调整为第十四差值右移一位后的参数,所述第十四差值为上一次的第一移位参数系数和上一次的第二移位参数系数的差值。
13.如权利要求12所述的数据加密方法,其特征在于,所述确定下一次移位的模逆运算参数至少为上一次的第二移位参数和上一次的第二移位参数系数,以及确定对应的移位位数,包括:
在所述第一移位参数和第二移位参数在上一次移位后的低两位比特位数值均不满足第一判断条件、所述第一移位参数和第二移位参数在上一次移位后的低两位比特位数值不相等,且在所述第一移位参数和第二移位参数在上一次移位后的低两位比特位数值均不满足第二判断条件的情况下,当上一次的第一移位参数小于等于上一次的第二移位参数时,确定移位的模逆运算参数为上一次的第二移位参数和上一次的第二移位参数系数,以及确定对应的移位位数为右移一位;
其中,在对第二移位参数进行下一次移位时,将上一次的第二移位参数调整为第十五差值右移一位后的参数,所述第十五差值为上一次的第二移位参数和上一次第一移位参数的差值;
以及,在对第二移位参数系数进行下一次移位时,将所述上一次的第二移位参数系数调整为第十六差值右移一位后的参数,所述第十六差值为上一次的第二移位参数系数和上一次的第一移位参数系数的差值。
14.一种数据加密装置,其特征在于,包括:
待加密数据获取模块,用于获取待加密数据;
模逆运算结果获取模块,用于在第一移位参数和第二移位参数中的任一参数为移位完成时,获取移位完成时刻所对应的目标模逆运算结果;所述第一移位参数和所述第二移位参数为模逆运算过程中参与移位的参数,且所述第一移位参数的初始值的比特位数量小于等于所述第二移位参数的初始值的比特位数量;
密钥信息确定模块,用于根据所述目标模逆运算结果确定密钥信息;
数据加密模块,用于利用所述密钥信息,对所述待加密数据进行加密,得到加密数据。
15.一种数据加密系统,其特征在于,包括:
如权利要求14所述的数据加密装置;
模逆单元,用于根据所述数据加密装置提供的初始参数信息进行模逆运算,并将目标模逆运算结果发送至所述数据加密装置。
16.如权利要求15所述的数据加密系统,其特征在于,所述模逆单元包括:
移位模块,用于对第一移位参数和第二移位参数进行多次移位,直至第一移位参数和第二移位参数中的任一参数移位完成;其中,一次移位的参数为第一移位参数和/或第二移位参数;
模逆运算模块,用于根据每次移位后的第一移位参数,确定第一移位参数系数的值,以及每次移位后的第二移位参数,确定第二移位参数系数的值;
移位判断模块,用于判断模逆运算模块接收的每次移位后的参数。
17.如权利要求16所述的数据加密系统,其特征在于,所述移位判断模块包括:
第一移位判断模块,用于获取所述模逆运算模块接收的每次移位后的第一移位参数,并判断所述第一移位参数是否为移位完成,发送判断结果;
第二移位判断模块,用于获取所述模逆运算模块接收的每次移位后的第二移位参数,并判断所述第二移位参数是否为移位完成,发送判断结果。
18.如权利要求17所述的数据加密系统,其特征在于,所述模逆单元还包括:
或运算模块,用于对接收的所述第一移位判断模块的判断结果,和所述第二移位判断模块的判断结果进行或运算,当所述第一移位判断模块的判断结果为第一移位参数移位完成时,或所述第二移位判断模块的判断结果为第二移位参数移位完成时,向数据加密装置输出模逆运算结束标志;
模逆结果存储模块,用于至少存储所述模逆运算模块确定的第一移位参数系数的值,以及第二移位参数系数的值;
结束模块,用于接收所述或运算模块的模逆运算结束标志,控制模逆运算模块停止模逆运算,并基于所述模逆运算结束标志从所述模逆结果存储模块中获取目标模逆运算结果,将模逆运算参数中的第一移位参数系数作为发送至所述数据加密装置的模逆运算结果。
19.一种电子设备,其特征在于,包括存储器和处理器,所述存储器存储有程序,所述处理器调用所述存储器中存储的程序,执行如权利要求1-13任一项所述的数据加密方法。
20.一种存储介质,其特征在于,所述存储介质存储有程序,所述程序被执行时实现如权利要求1-13任一项所述的数据加密方法。
CN202311000886.5A 2023-08-09 2023-08-09 数据加密方法、装置、系统、电子设备及存储介质 Active CN117014208B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311000886.5A CN117014208B (zh) 2023-08-09 2023-08-09 数据加密方法、装置、系统、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311000886.5A CN117014208B (zh) 2023-08-09 2023-08-09 数据加密方法、装置、系统、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN117014208A true CN117014208A (zh) 2023-11-07
CN117014208B CN117014208B (zh) 2024-04-09

Family

ID=88567004

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311000886.5A Active CN117014208B (zh) 2023-08-09 2023-08-09 数据加密方法、装置、系统、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN117014208B (zh)

Citations (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997012459A1 (en) * 1995-09-26 1997-04-03 Xian Kan Lin A method for encryption of file
JPH11282351A (ja) * 1997-11-04 1999-10-15 Nippon Telegr & Teleph Corp <Ntt> セキュリティ技術における逆元演算方法、その方法を使った演算装置、及びその方法を実行するプログラムを記録した記録媒体
US6088453A (en) * 1997-01-27 2000-07-11 Kabushiki Kaisha Toshiba Scheme for computing Montgomery division and Montgomery inverse realizing fast implementation
EP1047030A2 (en) * 1999-04-13 2000-10-25 Sony Corporation Information processing apparatus and method, information management apparatus and method, information providing medium, information providing system and method, and information transmission apparatus
US20020174155A1 (en) * 2001-05-17 2002-11-21 Laszlo Hars Method for calculating arithmetic inverse over finite fields for use in cryptography
KR20040050742A (ko) * 2002-12-09 2004-06-17 한국전자통신연구원 소수체를 기반으로 하는 공개키 암호장치
WO2004112309A1 (en) * 2003-06-16 2004-12-23 Electronics And Telecommunications Research Institue Rijndael block cipher apparatus and encryption/decryption method thereof
EP1742475A1 (fr) * 2005-07-07 2007-01-10 Nagravision S.A. Méthode de contrôle d'accès à des données chiffrées
KR20080067429A (ko) * 2007-01-16 2008-07-21 충북대학교 산학협력단 고속 공개키 암호시스템의 고속 곱셈 역원 방법 및 시스템
WO2012140144A1 (en) * 2011-04-12 2012-10-18 Telefonica, S.A. Method and system for improving the synchronization of stream ciphers
CN105099672A (zh) * 2015-08-04 2015-11-25 东南大学 混合加密方法及实现该方法的装置
CN106850203A (zh) * 2017-02-22 2017-06-13 北京智慧云测科技有限公司 密码算法的安全性评估方法和装置
KR20190022023A (ko) * 2017-08-25 2019-03-06 국방과학연구소 하드웨어 구현된 모듈러 역원 모듈
CN109814838A (zh) * 2019-03-28 2019-05-28 贵州华芯通半导体技术有限公司 获取加解密运算中的中间结果组的方法、硬件装置和系统
CN110049013A (zh) * 2019-03-14 2019-07-23 广东工业大学 一种基于sm2和rsa加密算法的加解密系统及工作方法
CN112099761A (zh) * 2020-08-27 2020-12-18 清华大学 基于改进的二进制左移模逆算法的装置及其控制方法
CN115016764A (zh) * 2022-06-01 2022-09-06 湖南国科微电子股份有限公司 一种模逆运算硬件电路及控制方法
CN115270155A (zh) * 2022-07-29 2022-11-01 南京大学 一种获取大数拓展最大公约数的方法及硬件架构
WO2023003737A2 (en) * 2021-07-23 2023-01-26 Cryptography Research, Inc. Multi-lane cryptographic engine and operations thereof
CN116225373A (zh) * 2021-12-06 2023-06-06 腾讯科技(深圳)有限公司 一种数据处理方法、装置、计算机设备及存储介质
CN116436709A (zh) * 2023-06-14 2023-07-14 浪潮电子信息产业股份有限公司 一种数据的加解密方法、装置、设备和介质

Patent Citations (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997012459A1 (en) * 1995-09-26 1997-04-03 Xian Kan Lin A method for encryption of file
US6088453A (en) * 1997-01-27 2000-07-11 Kabushiki Kaisha Toshiba Scheme for computing Montgomery division and Montgomery inverse realizing fast implementation
JPH11282351A (ja) * 1997-11-04 1999-10-15 Nippon Telegr & Teleph Corp <Ntt> セキュリティ技術における逆元演算方法、その方法を使った演算装置、及びその方法を実行するプログラムを記録した記録媒体
EP1047030A2 (en) * 1999-04-13 2000-10-25 Sony Corporation Information processing apparatus and method, information management apparatus and method, information providing medium, information providing system and method, and information transmission apparatus
US20020174155A1 (en) * 2001-05-17 2002-11-21 Laszlo Hars Method for calculating arithmetic inverse over finite fields for use in cryptography
KR20040050742A (ko) * 2002-12-09 2004-06-17 한국전자통신연구원 소수체를 기반으로 하는 공개키 암호장치
WO2004112309A1 (en) * 2003-06-16 2004-12-23 Electronics And Telecommunications Research Institue Rijndael block cipher apparatus and encryption/decryption method thereof
EP1742475A1 (fr) * 2005-07-07 2007-01-10 Nagravision S.A. Méthode de contrôle d'accès à des données chiffrées
KR20080067429A (ko) * 2007-01-16 2008-07-21 충북대학교 산학협력단 고속 공개키 암호시스템의 고속 곱셈 역원 방법 및 시스템
WO2012140144A1 (en) * 2011-04-12 2012-10-18 Telefonica, S.A. Method and system for improving the synchronization of stream ciphers
CN105099672A (zh) * 2015-08-04 2015-11-25 东南大学 混合加密方法及实现该方法的装置
CN106850203A (zh) * 2017-02-22 2017-06-13 北京智慧云测科技有限公司 密码算法的安全性评估方法和装置
KR20190022023A (ko) * 2017-08-25 2019-03-06 국방과학연구소 하드웨어 구현된 모듈러 역원 모듈
CN110049013A (zh) * 2019-03-14 2019-07-23 广东工业大学 一种基于sm2和rsa加密算法的加解密系统及工作方法
CN109814838A (zh) * 2019-03-28 2019-05-28 贵州华芯通半导体技术有限公司 获取加解密运算中的中间结果组的方法、硬件装置和系统
CN112099761A (zh) * 2020-08-27 2020-12-18 清华大学 基于改进的二进制左移模逆算法的装置及其控制方法
WO2023003737A2 (en) * 2021-07-23 2023-01-26 Cryptography Research, Inc. Multi-lane cryptographic engine and operations thereof
CN116225373A (zh) * 2021-12-06 2023-06-06 腾讯科技(深圳)有限公司 一种数据处理方法、装置、计算机设备及存储介质
CN115016764A (zh) * 2022-06-01 2022-09-06 湖南国科微电子股份有限公司 一种模逆运算硬件电路及控制方法
CN115270155A (zh) * 2022-07-29 2022-11-01 南京大学 一种获取大数拓展最大公约数的方法及硬件架构
CN116436709A (zh) * 2023-06-14 2023-07-14 浪潮电子信息产业股份有限公司 一种数据的加解密方法、装置、设备和介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
H. VOROBETS, O. VOROBETS, V. HORDITSA, V. TARASENKO AND O. VOROBETS: "Self-reconfigurable cryptographical coprocessor for data streaming encryption in tasks of telemetry and the Internet of Things", 《2017 9TH IEEE INTERNATIONAL CONFERENCE ON INTELLIGENT DATA ACQUISITION AND ADVANCED COMPUTING SYSTEMS: TECHNOLOGY AND APPLICATIONS (IDAACS)》, 7 November 2017 (2017-11-07) *
胡恩: "ECC加密算法的研究与实现", 《中国优秀硕士论文电子期刊网》, 15 February 2021 (2021-02-15) *
陈子昊: "基于ARM架构的SM2加密算法的研究与电路设计", 《中国优秀硕士论文电子期刊网》, 15 March 2023 (2023-03-15) *

Also Published As

Publication number Publication date
CN117014208B (zh) 2024-04-09

Similar Documents

Publication Publication Date Title
Amara et al. Elliptic curve cryptography and its applications
Harn Public-key cryptosystem design based on factoring and discrete logarithms
CN109039640B (zh) 一种基于rsa密码算法的加解密硬件系统及方法
US7904498B2 (en) Modular multiplication processing apparatus
US6243467B1 (en) Method of elliptic curve cryptographic digital signature generation and verification using reduced base tau expansion in non-adjacent form
US11658815B2 (en) System and method for performing key operations during a multi-party computation process
JP2002533787A (ja) 楕円曲線上での暗号操作の速度を高める方法
TW200844847A (en) Chinese remainder theorem-based computation method for cryptosystems
JP4137385B2 (ja) 公開鍵および秘密鍵による暗号化方法
US20120221858A1 (en) Accelerated Key Agreement With Assisted Computations
US20020021803A1 (en) Cryptographic identification and digital signature method using efficient elliptic curve
US6993136B2 (en) Cryptographic key exchange method using efficient elliptic curve
EP0952697B1 (en) Elliptic curve encryption method and system
JP3854226B2 (ja) 鍵ペア決定およびrsa鍵生成のための方法並びに装置
Wu et al. On the improvement of wiener attack on rsa with small private exponent
US7062044B1 (en) Method of elliptic curve cryptographic key agreement using coefficient splitting
CN117014208B (zh) 数据加密方法、装置、系统、电子设备及存储介质
EP3352411B1 (en) Method of generating cryptographic key pairs
EP2493112A1 (en) Accelerated key agreement with assisted computations
JP3615405B2 (ja) 素体上楕円曲線上の点の演算方法およびその装置
US20020025034A1 (en) Cryptographic encryption method using efficient elliptic curve
Manajaih Modular arithmetic in RSA cryptography
US7505585B2 (en) Method of generating cryptographic key using elliptic curve and expansion in joint sparse form and using same
KR100423810B1 (ko) 타원곡선 암호화 장치
CN117544297A (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