CN114978641A - 数据处理方法、装置及设备 - Google Patents

数据处理方法、装置及设备 Download PDF

Info

Publication number
CN114978641A
CN114978641A CN202210521149.9A CN202210521149A CN114978641A CN 114978641 A CN114978641 A CN 114978641A CN 202210521149 A CN202210521149 A CN 202210521149A CN 114978641 A CN114978641 A CN 114978641A
Authority
CN
China
Prior art keywords
operator
modulus
ciphertext
determining
blinding factor
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.)
Pending
Application number
CN202210521149.9A
Other languages
English (en)
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.)
Beijing Ziguang Zhanrui Communication Technology Co Ltd
Original Assignee
Beijing Ziguang Zhanrui Communication 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 Beijing Ziguang Zhanrui Communication Technology Co Ltd filed Critical Beijing Ziguang Zhanrui Communication Technology Co Ltd
Priority to CN202210521149.9A priority Critical patent/CN114978641A/zh
Publication of CN114978641A publication Critical patent/CN114978641A/zh
Pending legal-status Critical Current

Links

Images

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
    • 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
    • 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
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本申请实施例提供一种数据处理方法、装置及设备。该方法包括:确定待加密的第一消息和第一密钥;根据所述第一消息的长度和预设模数确定第一盲化因子;根据所述第一密钥的长度确定第二盲化因子;根据所述第一盲化因子对所述第一消息进行盲化处理,得到第一密文;根据所述第二盲化因子对所述第一密钥进行盲化处理,得到第二密文;根据所述第一密文、所述第二密文和所述预设模数得到所述第一消息的盲化密文。提高了加密算法的安全性。

Description

数据处理方法、装置及设备
技术领域
本申请实施例涉及计算机技术领域,尤其涉及一种数据处理方法、装置及设备。
背景技术
在实际通信过程中,在对数据传输之前,可以通过加密算法对数据进行加密,以提高数据传输的安全性。其中,RSA算法(Ron Rivest,Adi Shamir,Leonard Adleman)是应用最广泛的加密算法。
为了满足安全需求,可以对加密算法中的密钥进行盲化。在相关技术中,通过如下方式对加密算法中的密钥进行盲化:确定固定长度(例如128bit)的盲化因子,并通过盲化因子对密钥进行盲化处理。在上述过程中,由于盲化因子为固定长度,难以满足实际安全需求,导致加密算法的安全性较低。
发明内容
本申请实施例提供一种数据处理方法、装置及设备,解决了加密算法安全性低的问题。
第一方面,本申请实施例提供一种数据处理方法,包括:
确定待加密的第一消息和第一密钥;
根据所述第一消息的长度和预设模数确定第一盲化因子;
根据所述第一密钥的长度确定第二盲化因子;
根据所述第一盲化因子对所述第一消息进行盲化处理,得到第一密文;
根据所述第二盲化因子对所述第一密钥进行盲化处理,得到第二密文;
根据所述第一密文、所述第二密文和所述预设模数得到所述第一消息的盲化密文。
在一种可能的实施方式中,确定第一盲化因子,包括:
生成第一随机数;
根据所述第一随机数和所述预设模值,确定第一模值;
判断所述第一模值和所述预设模数是否互质,在确定所述第一模值和所述预设模数互质时,将所述第一模值确定为所述第一盲化因子。
在一种可能的实施方式中,判断所述第一模值是否与所述预设模数互质,包括:
将所述预设模数确定为第一算子,以及将所述第一模值确定为第二算子;
将所述第一算子更新为所述预设模数对应的第一奇数,以及将所述第二算子更新为所述第一模值对应的第二奇数;
对所述第一算子和所述第二算子进行至少一次相减处理和右移一位处理,以判断所述第一模值是否与所述预设模数互质。
在一种可能的实施方式中,将所述第一算子更新为所述预设模数对应的第一奇数,包括:
若所述预设模数为奇数,则将所述第一算子更新为所述预设模数;
若所述预设模数为偶数,则对所述预设模数进行至少一次右移一位处理,直至得到的第一右移结果为奇数时,将所述第一算子更新为所述第一右移结果。
在一种可能的实施方式中,将所述第二算子更新所述第一模值对应的第二奇数,包括:
若所述第一模值为奇数,则将所述第二算子更新为所述第一模值;
若所述第一模值为偶数,则对所述第一模值进行至少一次右移一位处理,直至得到的第二右移结果为奇数时,将所述第二算子更新为所述第二右移结果。
在一种可能的实施方式中,对所述第一算子和所述第二算子进行至少一次相减处理和右移一位处理,以判断所述第一模值是否与所述预设模数互质,包括:
执行第一操作,所述第一操作包括:将所述第一算子更新为所述第一算子和所述第二算子中的最大值,以及将所述第二算子更新为所述第一算子和所述第二算子中的最小值;
执行第二操作,所述第二操作包括:确定所述第一算子和所述第二算子的差值,并将所述第一算子更新为所述差值的右移一位的运算结果;
执行判断操作,所述判断操作包括:判断所述第一算子是否等于0;
若是,若所述第二算子为1,则确定所述第一模值与所述预设模数互质;若所述第二算子不为1,则确定所述第一模值与所述预设模数不互质;
若否,将所述第一算子更新为所述第一算子对应奇数,并执行所述第一操作。
在一种可能的实施方式中,将所述第一算子更新为所述第一算子对应奇数,包括:
在所述第一算子为偶数时,对所述第一算子进行至少一次右移一位处理,直至得到的第三右移结果为奇数时,将所述第一算子更新为所述第三右移结果。
在一种可能的实施方式中,根据所述第一随机数和所述预设模值,确定第一模值,还包括:
若所述预设模数和所述第一模值均为偶数,则生成新的随机数。
在一种可能的实施方式中,根据所述第一盲化因子对所述第一消息进行盲化处理,得到第一密文,包括:
通过对所述第一盲化因子与所述第一消息的乘积,进行取模运算,得到所述第一密文。
在一种可能的实施方式中,根据所述第二盲化因子和所述第一密钥进行盲化处理,得到第二密文,包括:
将所述第一秘钥与所述第二盲化因子的差值确定为所述第二盲化因子。
在一种可能的实施方式中,根据所述第一盲化因子、所述第一密文、所述第二密文和所述预设模数对所述第一消息进行处理,得到所述第一消息的盲化密文,包括:
对所述第一密文进行幂运算,所述幂运算底数为所述第一密文,所述幂运算指数为所述第二密文;
对所述幂运算的结果进行取模运算,确定所述盲化密文。
在一种可能的实施方式中,所述方法还包括确定脱盲后的消息密文C:
对所述第一盲化因子进行所述幂运算,所述幂运算的底数为所述第一盲化因子的倒数,所述幂运算的指数为所述第二密文,将所述幂运算的结果确定为第一结果;
对所述第一消息进行所述幂运算,所述幂运算的底数为所述第一消息,所述幂运算的指数为所述第二盲化因子,将所述幂运算的结果确定为第二结果;
对所述第一结果、所述第二结果以及所述盲化密文的乘积,进行取模运算,得到所述消息密文。
在一种可能的实施方式中,所述第一消息的长度等于第一盲化因子的长度,所述第一盲化因子与所述预设模数互质;
所述第一密钥的长度等于所述第二盲化因子的长度,所述第二盲化因子小于所述第一密钥。
第二方面,本申请实施例提供一种数据处理装置,所述装置包括:
第一确定模块,用于确定待加密的第一消息和第一密钥;
第二确定模块,用于根据所述第一消息的长度和预设模数确定第一盲化因子;
第三确定模块,用于根据所述第一密钥的长度确定第二盲化因子;
第一处理模块,用于根据所述第一盲化因子对所述第一消息进行盲化处理,得到第一密文;
第二处理模块,用于根据所述第二盲化因子对所述第一密钥进行盲化处理,得到第二密文;
第三处理模块,用于根据所述第一盲化因子、所述第一密文、所述第二密文和所述预设模数对所述第一消息进行处理,得到所述第一消息的消息密文。
在一种可能的实施方式中,所述第二确定模块具体用于:
生成第一随机数;
根据所述第一随机数和所述预设模值,确定第一模值;
判断所述第一模值和所述预设模数是否互质,在确定所述第一模值和所述预设模数互质时,将所述第一模值确定为所述第一盲化因子。
在一种可能的实施方式中,所述第二确定模块具体用于:
将所述预设模数确定为第一算子,以及将所述第一模值确定为第二算子;
将所述第一算子更新为所述预设模数对应的第一奇数,以及将所述第二算子更新所述第一模值对应的第二奇数;
对所述第一算子和所述第二算子进行至少一次相减处理和右移一位处理,以判断所述第一模值是否与所述预设模数互质。
在一种可能的实施方式中,所述第二确定模块具体用于:
若所述预设模数为奇数,则将所述第一算子更新为所述预设模数;
若所述预设模数为偶数,则对所述预设模数进行至少一次右移一位处理,直至得到的第一右移结果为奇数时,将所述第一算子更新为所述第一右移结果。
在一种可能的实施方式中,所述第二确定模块具体用于:
若所述第一模值为奇数,则将所述第二算子更新为所述第一模值;
若所述第一模值为偶数,则对所述第一模值进行至少一次右移一位处理,直至得到的第二右移结果为奇数时,将所述第二算子更新为所述第二右移结果。
在一种可能的实施方式中,所述第二确定模块具体用于:
执行第一操作,所述第一操作包括:将所述第一算子更新为所述第一算子和所述第二算子中的最大值,以及将所述第二算子更新为所述第一算子和所述第二算子中的最小值;
执行第二操作,所述第二操作包括:确定所述第一算子和所述第二算子的差值,并将所述第一算子更新为所述差值的右移一位的运算结果;
执行判断操作,所述判断操作包括:判断所述第一算子是否等于0;
若是,若所述第二算子为1,则确定所述第一模值与所述预设模数互质;若所述第二算子不为1,则确定所述第一模值与所述预设模数不互质;
若否,将所述第一算子更新为所述第一算子对应奇数,并执行所述第一操作。
在一种可能的实施方式中,所述第二确定模块具体用于:
在所述第一算子为偶数时,对所述第一算子进行至少一次右移一位处理,直至得到的第三右移结果为奇数时,将所述第一算子更新为所述第三右移结果。
在一种可能的实施方式中,所述第二确定模块具体用于:
若所述预设模数和所述第一模值均为偶数,则生成新的随机数。
在一种可能的实施方式中,所述第一处理模块具体用于:
通过对所述第一盲化因子与所述第一消息的乘积,进行取模运算,得到所述第一密文。
在一种可能的实施方式中,所述第二处理模块具体用于:
将所述第一秘钥与所述第二盲化因子的差值确定为所述第二盲化因子。
在一种可能的实施方式中,所述第三处理模块具体用于:
对所述第一密文进行幂运算,所述幂运算底数为所述第一密文,所述幂运算指数为所述第二密文;
对所述幂运算的结果进行取模运算,确定所述盲化密文。
在一种可能的实施方式中,所述装置还包括第四确定模块,其中,所述第四确定模块用于:
对所述第一盲化因子进行所述幂运算,所述幂运算的底数为所述第一盲化因子的倒数,所述幂运算的指数为所述第二密文,将所述幂运算的结果确定为第一结果;
对所述第一消息进行所述幂运算,所述幂运算的底数为所述第一消息,所述幂运算的指数为所述第二盲化因子,将所述幂运算的结果确定为第二结果;
对所述第一结果、所述第二结果以及所述盲化密文的乘积,进行取模运算,得到所述消息密文。
在一种可能的实施方式中,所述第一消息的长度等于第一盲化因子的长度,所述第一盲化因子与所述预设模数互质;
所述第一密钥的长度等于所述第二盲化因子的长度,所述第二盲化因子小于所述第一密钥。
第三方面,本申请实施例提供一种数据处理设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行第一方面任一项所述的方法。
第四方面,本申请实施例提供一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据第一方面中任一项所述的方法。
第五方面,本申请实施例提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现根据第一方面中任一项所述的方法。
本申请实施例提供的一种数据处理方法、装置及设备,对消息和加密算法的密钥都进行盲化处理,且可以根据消息长度和预设模数长度,确定盲化因子长度。在上述过程中,由于是对消息和密钥都进行盲化处理,提高了加密算法的安全性。
附图说明
图1为本申请实施例提供的应用场景的示意图;
图2为本申请实施例提供的数据处理方法的流程示意图;
图3为本申请实施例提供的确定第一盲化因子方法的流程示意图;
图4为本申请实施例提供的一种数据处理装置的结构示意图;
图5本申请实施例提供的另一种数据处理装置的结构示意图;
图6为本申请实施例提供的一种数据处理设备的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
图1为本申请实施例提供的应用场景的示意图。请参见图1,包括第一设备101和第二设备102。第一设备101可以为电脑、服务器等设备。第二设备102可以为芯片、集成电路、计算机等设备。第二设备102中设置有加密算法,可以在第二设备102中运行加密算法,第二设备102中存储有加密算法的密钥。在实际应用过程中,可能会存在第一设备101对第二设备102进行攻击,以获取第二设备102中加密算法的密钥。若第二设备102中的消息和密钥没有经过盲化处理,则第一设备101可以通过侧信道攻击等方式获取第二设备102中的加密算法的密钥。若第二设备102中的消息和密钥经过盲化处理,则第一设备101较难通过侧信道攻击等方式获取第二设备102中加密算法的密钥。
在相关技术中,通常采取如下方式对加密算法进行盲化:取固定长度(通常为128bit)的盲化因子,对密钥进行盲化处理。在上述过程中,由于只对密钥进行盲化处理,且盲化因子为固定长度,难以满足实际安全需求。导致加密算法安全性较低。
在本申请实施例中,对待发送的消息和加密算法的密钥都进行盲化处理,且可以根据消息长度和预设模数长度,确定盲化因子长度。在上述过程中,由于是对消息和密钥都进行盲化处理,提高了加密算法的安全性。
下面,通过具体实施例对本申请所示的方法进行说明。需要说明的是,下面几个实施例可以单独存在,也可以互相结合,对于相同或相似的内容,在不同的实施例中不再重复说明。
图2为本申请实施例提供的数据处理方法的流程示意图。请参见图2,该方法可以包括:
S201、确定待加密的第一消息和第一密钥。
本申请实施例的执行主体可以为数据处理设备,也可以为设置在数据处理设备中的数据处理装置。数据处理装置可以通过软件实现,也可以通过软件和硬件的结合实现。
第一消息可以为数据处理设备待发送的消息。
第一密钥可以为数据处理设备在对第一消息进行加密处理之前随机生成的数字。
S202、根据第一消息的长度和预设模数确定第一盲化因子。
第一消息的长度等于第一盲化因子的长度,第一盲化因子与所述预设模数互质。
可以获取第一消息的二进制信息,并通过二进制信息的位数表示第一消息的长度。例如,第一消息的二进制信息为01100110,则第一消息的长度为8。
预设模数可以为为RSA算法的模数。
第一盲化因子与预设模数互质。当两个数的最大公约数只有1时,这两个数互质。第一盲化因子与预设模数互质,即第一盲化因子与预设模数的最大公约数为1。例如,预设模数可以为11,第一盲化因子可以为3、5等。
S203、根据第一密钥的长度确定第二盲化因子。
第一密钥的长度等于第二盲化因子的长度,第二盲化因子小于第一密钥。
可以获取第一密钥的二进制信息,并通过二进制信息的位数表示第一密钥的长度。例如,第一密钥的二进制信息为01101110,则第一密钥的长度为8。
S204、根据第一盲化因子对第一消息进行盲化处理,得到第一密文。
通过对第一盲化因子与第一消息的乘积,进行取模运算,得到第一密文。
通过如下公式一,确定第一密文M′:
M′=(Vi×M)mod N 公式一;
其中,Vi为第一盲化因子,M为第一消息,N为预设模数。
S205、根据第二盲化因子对第一密钥进行盲化处理,得到第二密文。
将第一秘钥与第二盲化因子的差值确定为第二盲化因子。
通过如下公式二,确定第二密文d′:
d′=d-r 公式二;
其中,d为第一密钥,r为第二盲化因子。
S206、根据第一密文、第二密文和预设模数得到第一消息的盲化密文。
可以通过如下方式确定第一消息的盲化密文:对第一密文进行幂运算,幂运算底数为所述第一密文,幂运算指数为所述第二密文;对幂运算的结果进行取模运算,确定盲化密文。
通过如下公式三,确定盲化密文C′:
C′=M′d′mod N 公式三;
其中,M′为第一密文,d′为第二密文,N为预设模数。
可选的,可以根据盲化密文,确定脱盲后的消息密文。可以通过如下方式确定脱盲后的消息密文:对第一盲化因子进行幂运算,幂运算的底数为第一盲化因子的倒数,幂运算的指数为第二密文,将幂运算的结果确定为第一结果;对第一消息进行幂运算,幂运算的底数为第一消息,幂运算的指数为第二盲化因子,将幂运算的结果确定为第二结果;对第一结果、第二结果以及盲化密文的乘积,进行取模运算,得到消息密文。
根据如下公式四和公式五,确定脱盲后的消息密文C;
Vf=Vi -d′mod N 公式四;
C=(Vf×C′×Mr)mod N 公式五;
其中,Vi为所述第一盲化因子,d′为所述第二密文,N为预设模数,C′为盲化密文,M为第一消息,r为第二盲化因子。
本申请实施例提供的数据处理方法,确定待加密的第一消息和第一密钥;根据第一消息的长度和预设模数确定第一盲化因子;根据第一密钥的长度确定第二盲化因子;根据第一盲化因子对第一消息进行盲化处理,得到第一密文;根据第二盲化因子对第一密钥进行盲化处理,得到第二密文;根据第一盲化因子、第一密文、第二密文和预设模数对第一消息进行处理,得到第一消息的密文。在上述过程中,由于是对消息和密钥都进行了盲化处理,且盲化因子的长度根据消息和密钥的长度确定,提高了加密算法的安全性。
在相关技术中,通常采用辗转相除法、基于异或运算的辗转相除法确定第一盲化因子,即对两个随机数连续进行取模运算,当余数为0时,取当前算式除数为最大公约数。在上述过程中,如果要对128位以上的数利用辗转相除法或基于异或运算的辗转相除法进行取模运算,其运算过程复杂且速度慢。为了提高确定第一盲化因子的速度,本申请实施例可以通过相减和右移一位处理,确定第一盲化因子。下面,结合图3,对确定第一盲化因子的详细过程进行说明。
图3为本申请实施例提供的确定第一盲化因子方法的流程示意图。请参见图3,该方法包括:
S301、生成第i个随机数。
初始时,i为1。
S302、获取第i个随机数与预设模数取模得到的第i模值。
例如,随机数可以为Wi,预设模数可以为N,第i模值可以为Vi。他们之间的关系可以为Vi=Wi mod N。
S303、判断预设模数和第i模值是否均为偶数。
若是,则执行S304。
若否,则执行S305。
S304、将i更新为i+1。
在S304之后,执行S301。
S305、将预设模数确定为第一算子,以及将第i模值确定为第二算子。
S306、将第一算子更新为预设模数对应的第一奇数。
可通过如下方式确定第一算子对应的第一奇数:若预设模数为奇数,则将第一算子更新为所述预设模数;若预设模数为偶数,则对预设模数进行至少一次右移一位处理,直至得到的第一右移结果为奇数时,将第一算子更新为第一右移结果。
可以通过如下方式对预设模数进行右移处理:获取预设模数的二进制信息,将预设模数的二进制形式做右移一位处理。即在二进制形式最左边补零,去掉最右边的一位数字。例如,预设模数对应的二级制信息为0110,则对该预设模数的进行一次右移处理之后得到的右移结果为0011。
例如,若预设模数为5,预设模数为奇数,则可以确定第一算子为5。若预设模数为6,预设模数为偶数,在二进制中6可以表示为0110,将预设模数0110进行右移一位处理,得到0011,十进制可以表示为3,此时得到的第一右移结果3为奇数,则可以确定第一算子为3。
S307、将第二算子更新第i模值对应的第二奇数。
可通过如下方式确定第二算子对应的第二奇数:若第i模值为奇数,则将第二算子更新为第i模值;若第i模值为偶数,则对第i模值进行至少一次右移一位处理,直至得到的第二右移结果为奇数时,将第二算子更新为第二右移结果。
例如,若第i模值为7,第i模值为奇数,则可以确定第二算子为7。若第i模值为10,第i模值为偶数,在二进制中10可以表示为1010,将1010进行右移一位处理,得到0101,十进制可以表示为5,此时得到的第一整数结果5为奇数,则可以确定第二算子为5。
S308、将第一算子更新为第一算子和第二算子中的最大值,以及将第二算子更新为第一算子和第二算子中的最小值。
例如,第一算子为57,第二算子为71,则更新后的第一算子为第一算子和第二算子中的最大值71,更新后的第二算子为第一算子和第二算子中的最小值57。
S309、确定第一算子和第二算子的差值,将第一算子更新为第一算子和第二算子差值的右移一位的运算结果。
例如,第一算子为9,第二算子为7,则第一算子和第二算子的差值为2,二进制可以表示为0010,右移一位为0001,用十进制可以表示为1。
S310、判断第一算子是否等于0。
若是,执行S312。
若否,执行S311。
S311、将第一算子更新为第一算子对应奇数。
可通过如下方式将第一算子更新为第一算子对应奇数:在第一算子为奇数时,将第一算子直接作为更新后的第一算子;在第一算子为偶数时,对第一算子进行至少一次右移一位处理,直至得到的第三右移结果为奇数时,将第一算子更新为第三右移结果。
例如,若预设模数为11,第i模值为7,则第一算子为11,第二算子为7,将第一算子更新为第一算子和第二算子差值的右移一位的运算结果2。此时第一算子为偶数,需要将其右移一位,得到第三右移结果为1,此时第三右移结果为奇数,将第三右移结果1更新为第一算子。
在S311之后,执行S308。
S312、判断第二算子是否为1。
若是,执行S314。
若否,执行S313
S313、确定第i模值与预设模数不互质。
例如,若预设模数为15,第1模值为5,则根据步骤S301~S306,确定第一算子为15,第二算子为5。根据步骤S306~S313,得到的运算结果具体如表1所示:
表1
Figure BDA0003643422570000131
根据表1可知,第一算子和第二算子的差值右移一位的结果为0,即更新的第一算子为0,第二算子为5。若第一算子为0且第二算子不为1,则确定第1模值5与预设模数15不互质。则继续执行S304。
在S313之后,执行S304。
S314、确定第i模值与预设模数互质。
S315、将第i模值确定为第一盲化因子。
若第一算子为0,且第二算子为1,则可以确定第i模值为第一盲化因子。
例如,预设模数为9,第1模值为19,则根据步骤S301~S306,确定第一算子为11,第二算子为9。根据步骤S306~S315,确定第一盲化因子的具体情况如表2所示:
表2
Figure BDA0003643422570000132
根据表2可知,第一算子和第二算子的差值右移一位的结果为0,即更新的第一算子为0。此时,第一算子为0,第二算子为1。若第一算子为0且第二算子为1,则确定第1模值与预设模数互质,第一盲化因子为第1模值19。
本申请实施例提供的确定第一盲化因子的方法,获取第i个随机数与预设模数取模得到的第i模值,通过对预设模数和第i模值做相减和右移一位处理,判断预设模数与第i模值是否为互质关系。若预设模数与第i模值是互质关系、则第i模值为第一盲化因子。在上述过程中,采用相减运算而不是取模运算,计算过程可以比辗转相除法、基于异或运算的辗转相除法快近10倍,提高了确定第一盲化因子的速度。
在图3实施例的基础上,下面,对确定第一盲化因子的详细过程进行举例说明。
第1个随机数W1为52,预设模值N为6,获取第1个随机数52与预设模数6取模得到的第1模值V1,具体为V1=W1 mod N=52mod 6=4。得到预设模数6为偶数,第1模值4为偶数,则将生成第2个随机数W2为93,预设模值N为15。
第2个随机数W2为93,预设模值N为15,获取第2个随机数93与预设模数15取模得到的第2模值V2,具体为V2=W2 mod N=93mod 15=3。得到预设模数15为奇数,第1模值3为奇数。将预设模数15确定为第一算子,以及将第2模值3确定为第二算子。确定第一算子和第二算子的差值为15-3=12,确定第一算子和第二算子差值的右移一位的运算结果6,为偶数。将第一算子更新为右移一位处理后的第三右移结果3。此时,第一算子为3,第二算子为3。确定第一算子和第二算子的差值为3-3=0,将第一算子更新为第一算子和第二算子差值0的右移一位的运算结果0。此时,第一算子为0,第二算子为3,由于第二算子不等于1,则可以确定第2模值3与预设模数15不互质。继续生成第3个随机数W3为77,预设模值N为15。
第3个随机数W3为77,预设模值N为15,获取第3个随机数77与预设模数15取模得到的第3模值V3,具体为V3=W3 mod N=77mod 15=2。得到预设模数15为奇数,第3模值2为偶数。将预设模数15确定为第一算子,以及将第2模值2右移一位的得到第二右移结果1的确定为第二算子。确定第一算子和第二算子的差值为15-1=14,第一算子更新为第一算子和第二算子差值14的右移一位的运算结果7。此时,第一算子为7,第二算子为1。确定第一算子和第二算子的差值为7-1=6,将第一算子更新为第一算子和第二算子差值6的右移一位的运算结果3。此时,第一算子为3,第二算子为1。确定第一算子和第二算子的差值为3-1=2,将第一算子更新为第一算子和第二算子差值2的右移一位的运算结果1。此时,第一算子为1,第二算子为1。确定第一算子和第二算子的差值为1-1=0,将第一算子更新为第一算子和第二算子差值0的右移一位的运算结果0。此时第一算子为0,第二算子为1,则确定第3模值2与预设模数15互质,将第3模值2确定为第一盲化因子。
本申请实施例提供的举例说明确定第一盲化因子的方法,获取第i个随机数与预设模数取模得到的第i模值,通过对预设模数和第i模值做相减和右移一位处理,判断预设模数与第i模值是否为互质关系。若预设模数与第i模值是互质关系、则第i模值为第一盲化因子。在上述过程中,采用相减运算而不是取模运算,提高确定第一盲化因子的速度。
图4为本申请实施例提供的一种数据处理装置的结构示意图。请参见图4,该数据处理装置10可以包括:
第一确定模块11,用于确定待加密的第一消息和第一密钥;
第二确定模块12,用于根据所述第一消息的长度和预设模数确定第一盲化因子;
第三确定模块13,用于根据所述第一密钥的长度确定第二盲化因子;
第一处理模块14,用于根据所述第一盲化因子对所述第一消息进行盲化处理,得到第一密文;
第二处理模块15,用于根据所述第二盲化因子对所述第一密钥进行盲化处理,得到第二密文;
第三处理模块16,用于根据所述第一盲化因子、所述第一密文、所述第二密文和所述预设模数对所述第一消息进行处理,得到所述第一消息的消息密文。
本申请实施例提供的数据处理装置可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
在一种可能的实施方式中,所述第二确定模块12具体用于:
生成第i个随机数;
生成第一随机数;
根据所述第一随机数和所述预设模值,确定第一模值;
判断所述第一模值和所述预设模数是否互质,在确定所述第一模值和所述预设模数互质时,将所述第一模值确定为所述第一盲化因子。
在一种可能的实施方式中,所述第二确定模块12具体用于:
将所述预设模数确定为第一算子,以及将所述第一模值确定为第二算子;
将所述第一算子更新为所述预设模数对应的第一奇数,以及将所述第二算子更新所述第一模值对应的第二奇数;
对所述第一算子和所述第二算子进行至少一次相减处理和右移一位处理,以判断所述第一模值是否与所述预设模数互质。
在一种可能的实施方式中,所述第二确定模块12具体用于:
若所述预设模数为奇数,则将所述第一算子更新为所述预设模数;
若所述预设模数为偶数,则对所述预设模数进行至少一次右移一位处理,直至得到的第一右移结果为奇数时,将所述第一算子更新为所述第一右移结果。
在一种可能的实施方式中,所述第二确定模块12具体用于:
若所述第一模值为奇数,则将所述第二算子更新为所述第一模值;
若所述第一模值为偶数,则对所述第一模值进行至少一次右移一位处理,直至得到的第二右移结果为奇数时,将所述第二算子更新为所述第二右移结果。
在一种可能的实施方式中,所述第二确定模块12具体用于:
执行第一操作,所述第一操作包括:将所述第一算子更新为所述第一算子和所述第二算子中的最大值,以及将所述第二算子更新为所述第一算子和所述第二算子中的最小值;
执行第二操作,所述第二操作包括:确定所述第一算子和所述第二算子的差值,并将所述第一算子更新为所述差值的右移一位的运算结果;
执行判断操作,所述判断操作包括:判断所述第一算子是否等于0;
若是,若所述第二算子为1,则确定所述第一模值与所述预设模数互质;若所述第二算子不为1,则确定所述第一模值与所述预设模数不互质;
若否,将所述第一算子更新为所述第一算子对应奇数,并执行所述第一操作。
在一种可能的实施方式中,所述第二确定模块12具体用于:
在所述第一算子为偶数时,对所述第一算子进行至少一次右移一位处理,直至得到的第三右移结果为奇数时,将所述第一算子更新为所述第三右移结果。
在一种可能的实施方式中,所述第二确定模块具体12用于:
若所述预设模数和所述第一模值均为偶数,则生成新的随机数。
在一种可能的实施方式中,所述第一处理模块14具体用于:
通过对所述第一盲化因子与所述第一消息的乘积,进行取模运算,得到所述第一密文。
在一种可能的实施方式中,所述第二处理模块15具体用于:
将所述第一秘钥与所述第二盲化因子的差值确定为所述第二盲化因子。
在一种可能的实施方式中,所述第三处理模块16具体用于:
对所述第一密文进行幂运算,所述幂运算底数为所述第一密文,所述幂运算指数为所述第二密文;
对所述幂运算的结果进行取模运算,确定所述盲化密文。
本申请实施例提供的数据处理装置可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
图5本申请实施例提供的另一种数据处理装置的结构示意图。在图4所示实施例的基础上,请参见图5,数据处理装置还包括第四确定模块17:
其中,所述第四确定模块17用于:
对所述第一盲化因子进行所述幂运算,所述幂运算的底数为所述第一盲化因子的倒数,所述幂运算的指数为所述第二密文,将所述幂运算的结果确定为第一结果;
对所述第一消息进行所述幂运算,所述幂运算的底数为所述第一消息,所述幂运算的指数为所述第二盲化因子,将所述幂运算的结果确定为第二结果;
对所述第一结果、所述第二结果以及所述盲化密文的乘积,进行取模运算,得到所述消息密文。
本申请实施例提供的数据处理装置可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
图6为本申请实施例提供的一种数据处理设备的结构示意图。请参见图6,数据处理设备20可以包括:存储器21、处理器22。示例性地,存储器21、处理器22,各部分之间通过总线23相互连接。
存储器21用于存储程序指令;
处理器22用于执行该存储器所存储的程序指令,用以使得数据处理设备20执行上述方法实施例所示的方法。
本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当所述计算机执行指令被处理器执行时用于实现上述方法。
本申请实施例还可提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时,可实现上述方法。
实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一可读取存储器中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储器(存储介质)包括:只读存储器(英文:read-only memory,缩写:ROM)、RAM、快闪存储器、硬盘、固态硬盘、磁带(英文:magnetic tape)、软盘(英文:floppydisk)、光盘(英文:optical disc)及其任意组合。
本申请实施例是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理单元以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理单元执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
在本申请中,术语“包括”及其变形可以指非限制性的包括;术语“或”及其变形可以指“和/或”。本申请中术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。本申请中,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。

Claims (17)

1.一种数据处理方法,其特征在于,包括:
确定待加密的第一消息和第一密钥;
根据所述第一消息的长度和预设模数确定第一盲化因子;
根据所述第一密钥的长度确定第二盲化因子;
根据所述第一盲化因子对所述第一消息进行盲化处理,得到第一密文;
根据所述第二盲化因子对所述第一密钥进行盲化处理,得到第二密文;
根据所述第一密文、所述第二密文和所述预设模数得到所述第一消息的盲化密文。
2.根据权利要求1所述的方法,其特征在于,确定第一盲化因子,包括:
生成第一随机数;
根据所述第一随机数和所述预设模值,确定第一模值;
判断所述第一模值和所述预设模数是否互质,在确定所述第一模值和所述预设模数互质时,将所述第一模值确定为所述第一盲化因子。
3.根据权利要求2所述的方法,其特征在于,判断所述第一模值是否与所述预设模数互质,包括:
将所述预设模数确定为第一算子,以及将所述第一模值确定为第二算子;
将所述第一算子更新为所述预设模数对应的第一奇数,以及将所述第二算子更新为所述第一模值对应的第二奇数;
对所述第一算子和所述第二算子进行至少一次相减处理和右移一位处理,以判断所述第一模值是否与所述预设模数互质。
4.根据权利要求3所述的方法,其特征在于,将所述第一算子更新为所述预设模数对应的第一奇数,包括:
若所述预设模数为奇数,则将所述第一算子更新为所述预设模数;
若所述预设模数为偶数,则对所述预设模数进行至少一次右移一位处理,直至得到的第一右移结果为奇数时,将所述第一算子更新为所述第一右移结果。
5.根据权利要求3所述的方法,其特征在于,将所述第二算子更新为所述第一模值对应的第二奇数,包括:
若所述第一模值为奇数,则将所述第二算子更新为所述第一模值;
若所述第一模值为偶数,则对所述第一模值进行至少一次右移一位处理,直至得到的第二右移结果为奇数时,将所述第二算子更新为所述第二右移结果。
6.根据权利要求3-5任一项所述的方法,其特征在于,对所述第一算子和所述第二算子进行至少一次相减处理和右移一位处理,以判断所述第一模值是否与所述预设模数互质,包括:
执行第一操作,所述第一操作包括:将所述第一算子更新为所述第一算子和所述第二算子中的最大值,以及将所述第二算子更新为所述第一算子和所述第二算子中的最小值;
执行第二操作,所述第二操作包括:确定所述第一算子和所述第二算子的差值,并将所述第一算子更新为所述差值的右移一位的运算结果;
执行判断操作,所述判断操作包括:判断所述第一算子是否等于0;
若是,若所述第二算子为1,则确定所述第一模值与所述预设模数互质;若所述第二算子不为1,则确定所述第一模值与所述预设模数不互质;
若否,将所述第一算子更新为所述第一算子对应奇数,并执行所述第一操作。
7.根据权利要求6所述的方法,其特征在于,将所述第一算子更新为所述第一算子对应奇数,包括:
在所述第一算子为偶数时,对所述第一算子进行至少一次右移一位处理,直至得到的第三右移结果为奇数时,将所述第一算子更新为所述第三右移结果。
8.根据权利要求2-7任一项所述的方法,其特征在于,根据所述第一随机数和所述预设模值,确定第一模值,还包括:
若所述预设模数和所述第一模值均为偶数,则生成新的随机数。
9.根据权利要求1-8任一项所述的方法,其特征在于,根据所述第一盲化因子对所述第一消息进行盲化处理,得到第一密文,包括:
通过对所述第一盲化因子与所述第一消息的乘积,进行取模运算,得到所述第一密文。
10.根据权利要求1-9任一项所述的方法,其特征在于,根据所述第二盲化因子和所述第一密钥进行盲化处理,得到第二密文,包括:
将所述第一秘钥与所述第二盲化因子的差值确定为所述第二盲化因子。
11.根据权利要求1-10任一项所述的方法,其特征在于,根据所述第一盲化因子、所述第一密文、所述第二密文和所述预设模数对所述第一消息进行处理,得到所述第一消息的盲化密文,包括:
对所述第一密文进行幂运算,所述幂运算底数为所述第一密文,所述幂运算指数为所述第二密文;
对所述幂运算的结果进行取模运算,确定所述盲化密文。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括确定脱盲后的消息密文C:
对所述第一盲化因子进行所述幂运算,所述幂运算的底数为所述第一盲化因子的倒数,所述幂运算的指数为所述第二密文,将所述幂运算的结果确定为第一结果;
对所述第一消息进行所述幂运算,所述幂运算的底数为所述第一消息,所述幂运算的指数为所述第二盲化因子,将所述幂运算的结果确定为第二结果;
对所述第一结果、所述第二结果以及所述盲化密文的乘积,进行取模运算,得到所述消息密文。
13.根据权利要求1-12任一项所述的方法,其特征在于,
所述第一消息的长度等于第一盲化因子的长度,所述第一盲化因子与所述预设模数互质;
所述第一密钥的长度等于所述第二盲化因子的长度,所述第二盲化因子小于所述第一密钥。
14.一种数据处理装置,其特征在于,所述装置包括:
第一确定模块,用于确定待加密的第一消息和第一密钥;
第二确定模块,用于根据所述第一消息的长度和预设模数确定第一盲化因子;
第三确定模块,用于根据所述第一密钥的长度确定第二盲化因子;
第一处理模块,用于根据所述第一盲化因子对所述第一消息进行盲化处理,得到第一密文;
第二处理模块,用于根据所述第二盲化因子对所述第一密钥进行盲化处理,得到第二密文;
第三处理模块,用于根据所述第一盲化因子、所述第一密文、所述第二密文和所述预设模数对所述第一消息进行处理,得到所述第一消息的消息密文。
15.一种数据处理设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1至13中任一项所述的方法。
16.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,其中,所述计算机指令用于使所述计算机执行根据权利要求1至13中任一项所述的方法。
17.一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现权利要求1至13任一项所述的方法。
CN202210521149.9A 2022-05-13 2022-05-13 数据处理方法、装置及设备 Pending CN114978641A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210521149.9A CN114978641A (zh) 2022-05-13 2022-05-13 数据处理方法、装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210521149.9A CN114978641A (zh) 2022-05-13 2022-05-13 数据处理方法、装置及设备

Publications (1)

Publication Number Publication Date
CN114978641A true CN114978641A (zh) 2022-08-30

Family

ID=82983346

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210521149.9A Pending CN114978641A (zh) 2022-05-13 2022-05-13 数据处理方法、装置及设备

Country Status (1)

Country Link
CN (1) CN114978641A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110048840A (zh) * 2019-04-28 2019-07-23 苏州国芯科技股份有限公司 一种基于rsa算法的信息处理方法、系统及相关组件
CN110636070A (zh) * 2019-09-26 2019-12-31 支付宝(杭州)信息技术有限公司 数据发送方法、数据查询方法、装置、电子设备和系统
CN110730072A (zh) * 2019-10-22 2020-01-24 天津津航计算技术研究所 针对rsa密码应用的抗侧信道攻击方法
CN111385092A (zh) * 2018-12-28 2020-07-07 新唐科技股份有限公司 使用信息盲化的密码装置及其密码处理方法
CN114154989A (zh) * 2021-12-07 2022-03-08 深圳前海微众银行股份有限公司 交易处理方法、设备及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111385092A (zh) * 2018-12-28 2020-07-07 新唐科技股份有限公司 使用信息盲化的密码装置及其密码处理方法
CN110048840A (zh) * 2019-04-28 2019-07-23 苏州国芯科技股份有限公司 一种基于rsa算法的信息处理方法、系统及相关组件
CN110636070A (zh) * 2019-09-26 2019-12-31 支付宝(杭州)信息技术有限公司 数据发送方法、数据查询方法、装置、电子设备和系统
CN110730072A (zh) * 2019-10-22 2020-01-24 天津津航计算技术研究所 针对rsa密码应用的抗侧信道攻击方法
CN114154989A (zh) * 2021-12-07 2022-03-08 深圳前海微众银行股份有限公司 交易处理方法、设备及系统

Similar Documents

Publication Publication Date Title
JP5378579B2 (ja) フォールディングを用いるモジュール削減
US10361854B2 (en) Modular multiplication device and method
CN109039640B (zh) 一种基于rsa密码算法的加解密硬件系统及方法
US7908641B2 (en) Modular exponentiation with randomized exponent
KR20150107784A (ko) 스칼라 또는 멱수와의 곱셈 연산을 포함하는 암호화 방법
US20150063561A1 (en) Protection of a calculation against side-channel attacks
EP3202079B1 (en) Exponent splitting for cryptographic operations
EP2605232B1 (en) Embedded device having countermeasure function against fault attack
CN111385092B (zh) 使用信息盲化的密码装置及其密码处理方法
TW201702864A (zh) 加密計算方法、裝置以及電腦軟體產品
EP1443699A1 (en) Information processing means and IC card
JP2011512556A (ja) 楕円曲線上の多数の点を計算する装置及び方法
US20100061547A1 (en) Method of and apparatus for the reduction of a polynomial in a binary finite field, in particular in the context of a cryptographic application
CN114978641A (zh) 数据处理方法、装置及设备
CN116260572B (zh) 数据杂凑处理方法、数据验证方法及电子设备
US6609141B1 (en) Method of performing modular inversion
CN104104504B (zh) 一种rsa解密的方法及装置
CN116132050A (zh) 一种消息处理方法、系统、设备及计算机可读存储介质
WO2015199675A1 (en) System and method for securing scalar multiplication against differential power attacks
KR20190022023A (ko) 하드웨어 구현된 모듈러 역원 모듈
CN104579651A (zh) 椭圆曲线密码点乘运算的方法和装置
CN107196764A (zh) 一种rsa加解密处理方法和装置
US20120237025A1 (en) Device and method for determining an inverse of a value related to a modulus
CN108243002B (zh) 模约减方法、装置、设备及计算机可读存储介质
US20210409208A1 (en) Cryptographic processing method, related electronic device and computer program

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