CN115632765A - 加密方法、解密方法、装置、电子设备及存储介质 - Google Patents

加密方法、解密方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN115632765A
CN115632765A CN202211181965.6A CN202211181965A CN115632765A CN 115632765 A CN115632765 A CN 115632765A CN 202211181965 A CN202211181965 A CN 202211181965A CN 115632765 A CN115632765 A CN 115632765A
Authority
CN
China
Prior art keywords
key
target
encrypted
dynamic
text
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
CN202211181965.6A
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.)
China Telecom Corp Ltd
Original Assignee
China Telecom Corp 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 China Telecom Corp Ltd filed Critical China Telecom Corp Ltd
Priority to CN202211181965.6A priority Critical patent/CN115632765A/zh
Publication of CN115632765A publication Critical patent/CN115632765A/zh
Pending legal-status Critical Current

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/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
    • 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/0435Network 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 symmetric encryption, i.e. same key used for encryption and decryption
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • 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/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/062Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying encryption of the keys

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)
  • Storage Device Security (AREA)

Abstract

本申请实施例提供了一种加密方法、解密方法、装置、电子设备及存储介质。所述方法包括:获取两个互为素数的目标素数,并生成一个目标随机数,其中,两个所述目标素数均大于设定值;基于两个所述目标素数和所述目标随机数,生成动态加密密钥;对待加密文本进行分组处理,得到所述待加密文本的多组待加密子文本;基于所述动态加密密钥,对所述多组待加密子文本进行加密处理,得到所述待加密文本的加密文本。本申请实施例可以提高加密效率,同时提升加密算法的安全性。

Description

加密方法、解密方法、装置、电子设备及存储介质
技术领域
本申请涉及加密技术领域,特别是涉及一种加密方法、解密方法、装置、电子设备及存储介质。
背景技术
加密,是以某种特殊的算法改变原有的信息数据,使得未授权的用户即使获得了已加密的信息,但因不知解密的方法,仍然无法了解信息的内容,以提高信息数据的安全性。
目前,常用的加密算法有DES(Data Encryption Standard,数据加密标准)、AES(Advanced Encryption Standard,高级加密标准)、3DES(Triple DES,三重数据加密算法)等加密算法。而这些加密算法通常是串行加密方式,加密效率低下。同时,常用的加密算法采用的是固定密钥,该固定密钥极容易被攻击,导致加密算法的安全性较低。
发明内容
本申请实施例所要解决的技术问题是提供一种加密方法、解密方法、装置、电子设备及存储介质,以解决串行加密效率低下的问题,可以在提高加密效率的同时,提升加密算法的安全性。
第一方面,本申请实施例提供了一种加密方法,所述方法包括:
获取两个互为素数的目标素数,并生成一个目标随机数,其中,两个所述目标素数均大于设定值;
基于两个所述目标素数和所述目标随机数,生成动态加密密钥;
对待加密文本进行分组处理,得到所述待加密文本的多组待加密子文本;
基于所述动态加密密钥,对所述多组待加密子文本进行加密处理,得到所述待加密文本的加密文本。
可选地,所述目标随机数为N个字节的随机数,N为偶数,
所述基于两个所述目标素数和所述目标随机数,生成动态加密密钥,包括:
根据两个所述目标素数,生成初始密钥对;
对所述目标随机数进行字节拆分及字节转换处理,生成所述目标随机数对应的两个相同字节的随机参数;
根据所述初始密钥对和两个所述随机参数对应的密钥特解,生成所述动态加密密钥。
可选地,所述根据所述初始密钥对和两个所述随机参数对应的密钥特解,生成所述动态加密密钥,包括:
基于剩余定理对所述初始密钥对和两个所述随机参数进行求解,得到求解结果;
获取所述求解结果中的最小结果,并将该最小结果作为所述密钥特解;
根据第一目标位数和所述密钥特解,确定所述动态加密密钥。
可选地,所述根据第一目标位数和所述密钥特解,确定所述动态加密密钥,包括:
在所述密钥特解的位数小于所述第一目标位数时,对所述密钥特解进行补位,生成所述第一目标位数的补位特解,并将所述补位特解作为所述动态加密密钥;
在所述密钥特解的位数等于所述第一目标位数时,将所述密钥特解作为所述动态加密密钥;
在所述密钥特解的位数大于所述第一目标位数时,截取所述密钥特解的后第一目标位数作为所述动态加密密钥。
可选地,所述基于所述动态加密密钥,对所述多组待加密子文本进行加密处理,得到所述待加密文本的加密文本,包括:
对所述多组待加密子文本进行异或处理,得到多组待加密明文;
基于所述动态加密密钥对所述多组待加密明文进行并行加密处理,得到多组密文;
对所述目标随机数和所述多组密文进行拼接处理,生成密文字节流;
对所述密文字节流进行编码处理,得到所述待加密文本的加密文本。
可选地,所述对所述密文字节流进行编码处理,得到所述待加密文本的加密文本,包括:
对所述密文字节流进行Base64编码处理,得到所述待加密文本的加密文本;或者
对所述密文字节流进行16进制编码处理,得到所述待加密文本的加密文本。
第二方面,本申请实施例提供了一种解密方法,所述方法包括:
获取两个互为素数的目标素数,其中,两个所述目标素数均大于设定值;
根据获取的加密文本,获取目标随机数;
基于所述目标素数和所述目标随机数,生成所述加密文本的动态解密密钥;
对所述加密文本进行分组处理,得到所述加密文本对应的多组待解密子文本;
基于所述动态解密密钥,对所述多组待解密子文本进行解密处理,得到解密文本。
可选地,所述根据获取的加密文本,获取目标随机数,包括:
对所述加密文本进行解码处理,得到所述加密文本的密文字节流;
获取所述密文字节流中前N个字节的密文字节流作为所述目标随机数,N为偶数。
可选地,所述基于所述目标素数和所述目标随机数,生成所述加密文本的动态解密密钥,包括:
根据两个所述目标素数,生成初始密钥对;
对所述目标随机数进行字节拆分及字节转换处理,生成所述目标随机数对应的两个相同字节的随机参数;
根据所述初始密钥对和两个所述随机参数对应的密钥特解,生成所述动态解密密钥。
可选地,所述根据所述初始密钥对和两个所述随机参数对应的密钥特解,生成所述动态解密密钥,包括:
基于剩余定理对所述初始密钥对和两个所述随机参数进行求解,得到求解结果;
获取所述求解结果中的最小结果,并将该最小结果作为所述密钥特解;
根据第一目标位数和所述密钥特解,确定所述动态解密密钥。
可选地,所述根据第一目标位数和所述密钥特解,确定所述动态解密密钥,包括:
在所述密钥特解的位数小于所述第一目标位数时,对所述密钥特解进行补位,生成所述第一目标位数的补位特解,并将所述补位特解作为所述动态解密密钥;
在所述密钥特解的位数等于所述第一目标位数时,将所述密钥特解作为所述动态解密密钥;
在所述密钥特解的位数大于所述第一目标位数时,获取所述密钥特解的后第一目标位数的特解以作为所述动态解密密钥。
第三方面,本申请实施例提供了一种加密装置,所述装置包括:
目标随机数获取模块,用于获取两个互为素数的目标素数,并生成一个目标随机数,其中,两个所述目标素数均大于设定值;
动态加密密钥生成模块,用于基于两个所述目标素数和所述目标随机数,生成动态加密密钥;
待加密子文本获取模块,用于对待加密文本进行分组处理,得到所述待加密文本的多组待加密子文本;
加密文本获取模块,用于基于所述动态加密密钥,对所述多组待加密子文本进行加密处理,得到所述待加密文本的加密文本。
可选地,所述目标随机数为N个字节的随机数,N为偶数,
所述动态加密密钥生成包括:
第一密钥对生成单元,用于根据两个所述目标素数,生成初始密钥对;
第一随机参数生成单元,用于对所述目标随机数进行字节拆分及字节转换处理,生成所述目标随机数对应的两个相同字节的随机参数;
动态加密密钥生成单元,用于根据所述初始密钥对和两个所述随机参数对应的密钥特解,生成所述动态加密密钥。
可选地,所述动态加密密钥生成单元包括:
第一求解结果获取子单元,用于基于剩余定理对所述初始密钥对和两个所述随机参数进行求解,得到求解结果;
第一密钥特解获取子单元,用于获取所述求解结果中的最小结果,并将该最小结果作为所述密钥特解;
动态加密密钥确定子单元,用于根据第一目标位数和所述密钥特解,确定所述动态加密密钥。
可选地,所述动态加密密钥确定子单元包括:
第一加密密钥获取子单元,用于在所述密钥特解的位数小于所述第一目标位数时,对所述密钥特解进行补位,生成所述第一目标位数的补位特解,并将所述补位特解作为所述动态加密密钥;
第二加密密钥获取子单元,用于在所述密钥特解的位数等于所述第一目标位数时,将所述密钥特解作为所述动态加密密钥;
第三加密密钥获取子单元,用于在所述密钥特解的位数大于所述第一目标位数时,截取所述密钥特解的后第一目标位数作为所述动态加密密钥。
可选地,所述加密文本获取模块包括:
待加密明文获取单元,用于对所述多组待加密子文本进行异或处理,得到多组待加密明文;
多组密文获取单元,用于基于所述动态加密密钥对所述多组待加密明文进行并行加密处理,得到多组密文;
密文字节流生成单元,用于对所述目标随机数和所述多组密文进行拼接处理,生成密文字节流;
加密文本获取单元,用于对所述密文字节流进行编码处理,得到所述待加密文本的加密文本。
可选地,所述加密文本获取单元包括:
第一加密文本获取子单元,用于对所述密文字节流进行Base64编码处理,得到所述待加密文本的加密文本;
第二加密文本获取子单元,用于对所述密文字节流进行16进制编码处理,得到所述待加密文本的加密文本。
第四方面,本申请实施例提供了一种解密装置,所述装置包括:
目标素数获取模块,用于获取两个互为素数的目标素数,其中,两个所述目标素数均大于设定值;
随机数获取模块,用于根据获取的加密文本,获取目标随机数;
动态解密密钥生成模块,用于基于所述目标素数和所述目标随机数,生成所述加密文本的动态解密密钥;
待解密子文本获取模块,用于对所述加密文本进行分组处理,得到所述加密文本对应的多组待解密子文本;
解密文本获取模块,用于基于所述动态解密密钥,对所述多组待解密子文本进行解密处理,得到解密文本。
可选地,所述随机数获取模块包括:
密文字节流获取单元,用于对所述加密文本进行解码处理,得到所述加密文本的密文字节流;
目标随机数获取单元,用于获取所述密文字节流中前N个字节的密文字节流作为所述目标随机数,N为偶数。
可选地,所述动态解密密钥生成模块包括:
第二密钥对生成单元,用于根据两个所述目标素数,生成初始密钥对;
第二随机参数生成单元,用于对所述目标随机数进行字节拆分及字节转换处理,生成所述目标随机数对应的两个相同字节的随机参数;
动态解密密钥生成单元,用于根据所述初始密钥对和两个所述随机参数对应的密钥特解,生成所述动态解密密钥。
可选地,所述动态解密密钥生成单元包括:
第二求解结果获取子单元,用于基于剩余定理对所述初始密钥对和两个所述随机参数进行求解,得到求解结果;
第二密钥特解获取子单元,用于获取所述求解结果中的最小结果,并将该最小结果作为所述密钥特解;
动态解密密钥确定子单元,用于根据第一目标位数和所述密钥特解,确定所述动态解密密钥。
可选地,所述动态解密密钥确定子单元包括:
第一解密密钥获取子单元,用于在所述密钥特解的位数小于所述第一目标位数时,对所述密钥特解进行补位,生成所述第一目标位数的补位特解,并将所述补位特解作为所述动态解密密钥;
第二解密密钥获取子单元,用于在所述密钥特解的位数等于所述第一目标位数时,将所述密钥特解作为所述动态解密密钥;
第三解密密钥获取子单元,用于在所述密钥特解的位数大于所述第一目标位数时,获取所述密钥特解的后第一目标位数的特解以作为所述动态解密密钥。
第五方面,本申请实施例提供了一种电子设备,包括:
处理器、存储器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一项所述的加密方法,或者上述任一项所述的解密方法。
第六方面,本申请实施例提供了一种计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述任一项所述的加密方法,或者上述任一项所述的解密方法。
与现有技术相比,本申请实施例包括以下优点:
本申请实施例中,通过获取两个互为素数的目标素数,并生成一个目标随机数,其中,两个目标素数均大于设定值,基于两个目标素数和目标随机数,生成动态加密密钥,对待加密文本进行分组处理,得到待加密文本的多组待加密子文本,基于动态加密密钥,对多组待加密子文本进行加密处理,得到待加密文本的加密文本。本申请实施例通过结合随机数生成动态密钥,因此,每次加密时密钥均不相同,可以提高数据加密的安全性。同时,通过将待加密文本分组为多组待加密子文本,可以支持动态密钥对多组待加密子文本进行并行加密,解决了串行加密效率低下的问题,可以提高加密效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
图1为本申请实施例提供的一种加密方法的步骤流程图;
图2为本申请实施例提供的一种动态加密密钥生成方法的步骤流程图;
图3为本申请实施例提供的一种动态加密密钥确定方法的步骤流程图;
图4为本申请实施例提供的一种动态加密密钥获取方法的步骤流程图;
图5为本申请实施例提供的一种加密文本获取方法的步骤流程图;
图6为本申请实施例提供的另一种加密文本获取方法的步骤流程图;
图7为本申请实施例提供的一种基于动态秘钥的AES分组加密流程的示意图;
图8为本申请实施例提供的一种解密方法的步骤流程图;
图9为本申请实施例提供的一种随机数获取方法的步骤流程图;
图10为本申请实施例提供的一种动态解密密钥生成方法的步骤流程图;
图11为本申请实施例提供的一种动态解密密钥确定方法的步骤流程图;
图12为本申请实施例提供的一种动态解密密钥获取方法的步骤流程图;
图13为本申请实施例提供的一种基于动态秘钥的AES分组解密流程的示意图;
图14为本申请实施例提供的一种加密装置的结构示意图;
图15为本申请实施例提供的一种解密装置的结构示意图;
图16为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
在本申请实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
目前广泛应用的CBC(Cipher Block Chaining,密码分组链接)模式存在串行加密的问题,效率低下,在加密较长信息时尤为突出,最流行的计数器模式支持并行计算,效率较高,由于加解密时秘钥固定,随机数又是明文传输,加密方要保证每次加密的随机数必须唯一,否则存在重放攻击风险。现有的AES加密都是静态秘钥模式,即相同的秘钥多次加密同一明文会得到相同的密文。如此会导致加密效率低下,加密算法的安全性较低。
为了解决上述问题,本申请实施例的发明思路为:通过随机数和两个素数生成动态加密密钥,每次加密的密钥均不相同,可以提高加密算法的安全性。同时,通过对待加密文本进行分组,通过动态加密密钥进行加密时可以支持并行加密,能够有效提升加密效率。
接下来,结合下述实施例对本申请的技术方案进行详细描述。
参照图1,示出了本申请实施例提供的一种加密方法的步骤流程图,如图1所示,该加密方法可以包括:步骤101、步骤102、步骤103和步骤104。
步骤101:获取两个互为素数的目标素数,并生成一个目标随机数,其中,两个所述目标素数均大于设定值。
在本实施例中,目标素数是指大于设定值的素数。其中,设定值为预先设置的用于筛选素数的数值,对于该设定值的大小可以根据业务需求而定,本实施例对此不加以限制。
目标随机数是指随机生成的一个数值。该目标随机数的字节数为偶数。
在对待加密文本进行加密时,可以获取两个互为素数的且均大于设定值的目标素数(如251、163等)。
同时,可以随机生成一个目标随机数。例如,生成1个32位的16进制的随机数作为目标随机数,假设该目标随机数为:16fd27068baf433b82eb8c7fada847da即对应于16个字节,其对应的字节流为:x16\xfd'\x06\x8b\xafC;\x82\xeb\x8c\x7f\xad\xa8G\xda等。
在获取到两个互为素数的目标素数并生成一个目标随机数之后,执行步骤102。
步骤102:基于两个所述目标素数和所述目标随机数,生成动态加密密钥。
动态加密密钥是指用于对待加密文本进行加密的密钥。由于在每次加密时的随机数都不相同,因此,每次加密的密钥均为动态密钥。
在获取到两个互为素数的目标素数并生成一个目标随机数之后,可以基于两个目标素数和目标随机数生成动态加密密钥。具体地,可以根据两个目标素数生成一个密钥对,并根据目标随机数对应的两个随机参数与目标素数求特解,生成动态加密密钥。对于该实现过程可以结合图2进行如下详细描述。
参照图2,示出了本申请实施例提供的一种动态加密密钥生成方法的步骤流程图,如图2所示,该动态加密密钥生成方法可以包括:步骤201、步骤202和步骤203。
步骤201:根据两个所述目标素数,生成初始密钥对。
在本实施例中,在获取到两个目标素数之后,可以根据两个目标素数生成一个初始密钥对。
在根据两个目标素数生成初始密钥对之后,执行步骤203。
步骤202:对所述目标随机数进行字节拆分及字节转换处理,生成所述目标随机数对应的两个相同字节的随机参数。
在生成目标随机数之后,可以对目标随机数进行字节拆分及字节转换处理,以生成目标随机数对应的两个相同字节的随机参数。具体地,该目标随机数为N个字节的随机数,N为偶数。在生成目标随机数之后,可以对目标随机数进行字节拆分,以得到两个字节相同的拆分随机数。然后对拆分随机数进行字节转换处理,从而可以得到目标随机数对应的两个相同字节的随机参数。例如,目标随机数为1个32位的16进制随机数,假设为:16fd27068baf433b82eb8c7fada847da,即对应于16个字节,其对应的字节流为:x16\xfd'\x06\x8b\xafC;\x82\xeb\x8c\x7f\xad\xa8G\xda。前后8个字节各自转成10进制数分离为2个随机参数,分别为:
随机参数1:65414632567958551445968527399106851682;
随机参数2:74698438912063031305537089530964173921。
可以理解地,上述示例仅是为了更好地本申请实施例的技术方案而列举的示例,不作为对本实施例的唯一限制。
在对目标随机数进行字节拆分及字节转换处理生成目标随机数对应的两个相同字节的随机参数之后,执行步骤203。
步骤203:根据所述初始密钥对和两个所述随机参数对应的密钥特解,生成所述动态加密密钥。
在对目标随机数进行字节拆分及字节转换处理生成目标随机数对应的两个相同字节的随机参数之后,可以根据初始密钥对和两个随机参数对应的密钥特解,生成动态加密密钥。
在具体实现中,在得到两个随机参数之后,可以求取该两个随机参数和的最小特解(即本示例中的密钥特解),然后,根据目标位数和密钥特解确定出动态加密密钥。对于该实现过程可以结合图3进行如下详细描述。
参照图3,示出了本申请实施例提供的一种动态加密密钥确定方法的步骤流程图,如图3所示,该动态加密密钥确定方法可以包括:步骤301、步骤302和步骤303。
步骤301:基于剩余定理对所述初始密钥对和两个所述随机参数进行求解,得到求解结果。
在本实施例中,在得到初始密钥对和两个随机参数之后,可以基于剩余定理对初始密钥对和两个随机参数进行求解,以得到求解结果。具体地,可以利用剩余定理求解初始密钥对和两个随机参数的通解,并将求解的通解作为求解结果。
在基于剩余定理对初始密钥对和两个随机参数对进行求解得到求解结果之后,执行步骤302。
步骤302:获取所述求解结果中的最小结果,并将该最小结果作为所述密钥特解。
在基于剩余定理对初始密钥对和两个随机参数对进行求解得到求解结果之后,可以获取求解结果中的最小结果,并将该最小结果作为密钥特解。例如,初始密钥对为:251、163,两个随机参数为65414632567958551445968527399106851682和74698438912063031305537089530964173921,在将初始密钥对和两个随机参数代入剩余定理的公式之后,计算得到的最小特解为26085,则可以将该结果:26085作为密钥特解等。
可以理解地,上述示例仅是为了更好地理解本申请实施例的技术方案而列举的示例,不作为对本实施例的唯一限制。
在获取到求解结果中的最小结果并将该最小结果作为密钥特解之后,执行步骤303。
步骤303:根据第一目标位数和所述密钥特解,确定所述动态加密密钥。
第一目标位数是指预先设置的用于确定动态加密密钥的位数,在本示例中,第一目标位数可以为128位、256位等,具体地,对于第一目标位数的具体数值可以根据业务需求而定,本实施例对此不加以限制。
在获取到求解结果中的最小结果并将该最小结果作为密钥特解之后,可以根据第一目标位数和密钥特解,确定出动态加密密钥。具体地,在密钥特解的位数小于第一目标位数时,则进行补位。在密钥特解的位数大于或等于第一目标位数时,则截取最后第一目标位数的特解作为动态加密密钥。对于该实现过程可以结合图4进行如下详细描述。
参照图4,示出了本申请实施例提供的一种动态加密密钥获取方法的步骤流程图,如图4所示,该动态加密密钥获取方法可以包括:步骤401、步骤402和步骤403。
步骤401:在所述密钥特解的位数小于所述第一目标位数时,对所述密钥特解进行补位,生成所述第一目标位数的补位特解,并将所述补位特解作为所述动态加密密钥。
步骤402:在所述密钥特解的位数等于所述第一目标位数时,将所述密钥特解作为所述动态加密密钥。
步骤403:在所述密钥特解的位数大于所述第一目标位数时,截取所述密钥特解的后第一目标位数作为所述动态加密密钥。
在本实施例中,在得到密钥特解之后,可以比较密钥特解的位数与第一目标位数的大小关系。
在密钥特解的位数小于第一目标位数时,则可以对密钥特解进行补位,生成第一目标位数的补位特征,并将该补位特征作为动态加密密钥。例如,计算得到的密钥特解为26085,第一目标位数为16位,此时,可以对该密钥特解进行补位,得到的补位特解为:2608526085260852,此时,可以将补位特解:2608526085260852作为动态加密密钥等。
在密钥特解的位数等于第一目标位数时,则可以将该密钥特解作为动态加密密钥。
在密钥特征的位数大于第一目标位数时,可以获取密钥特解的后第一目标位数的特解,以作为动态加密密钥,例如,计算得到的密钥特解为:2608526082608526085260852608时,则可以将后16位的特解:8526085260852608作为动态加密密钥等。
在本示例中,第一目标位数可以根据AES算法定义的长度范围而定,并非唯一固定值。在具体实现中,AES算法定义的长度范围为D={128,196,256},计算的密钥特解为:T,若len(T)<128则补足128位,若len(T)>=128且len(T)<196则取其后128位作为动态秘钥。若len(T)>=196且len(T)<256,则可以取其后196位作为动态密钥。若len(T)>256,则可以取其256位作为动态密钥等。其中,len(T)表示计算T的长度位数。
可以理解地,上述示例仅是为了更好地理解本申请实施例的技术方案而列举的示例,不作为对本实施例的唯一限制。
在基于两个目标素数和目标随机数生成动态加密密钥之后,执行步骤104。
步骤103:对待加密文本进行分组处理,得到所述待加密文本的多组待加密子文本。
待加密文本是指需要进行加密处理的文本。
在获取到待加密文本之后,可以对待加密文本进行分组处理,以得到待加密文本的多组待加密子文本。在具体实现中,可以以特定长度对待加密文本进行分组,若待加密文本的最后一组不足特定长度,则可以进行补位处理,例如,待加密明文(即本示例中的待加密文本)0123456789abcdef0,共17位,进行补位后得到补位后的待加密明文,0123456789abcdef0\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f,第一组为16位:0123456789abcdef,第二组为16:0\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f,其中补了15个空值f等。
可以理解地,上述示例仅是为了更好地理解本申请实施例的技术方案而列举的示例,不作为对本实施例的唯一限制。
在对待加密文本进行分组处理得到待加密文本的多组待加密子文本之后,执行步骤104。
步骤104:基于所述动态加密密钥,对所述多组待加密子文本进行加密处理,得到所述待加密文本的加密文本。
在得到动态加密密钥和多组待加密子文本之后,可以基于动态加密密钥对多组待加密子文本进行加密处理,以得到待加密文本的加密文本。具体地,在得到多组待加密子文本之后,可以对多组待加密子文本进行异或处理,以得到多组待加密明文,然后,采用动态加密密钥对多组待加密明文进行并行加密处理,以得到加密文本。对于该实现过程可以结合图5进行如下详细描述。
参照图5,示出了本申请实施例提供的一种加密文本获取方法的步骤流程图,如图5所示,该加密文本获取方法可以包括:步骤501、步骤502、步骤503和步骤504。
步骤501:对所述多组待加密子文本进行异或处理,得到多组待加密明文。
在本实施例中,异或(Exclusive OR,XOR)是一种数学运算符,可以应用于逻辑运算,异或的数学符号为“⊕”,计算机符号为“eor”。其运算法则为:
Figure BDA0003867182810000141
如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。
在得到待加密文本的多组待加密子文本之后,可以对多组待加密子文本进行异或处理,从而可以得到多组待加密明文。具体地,可以通过累加计数器对多组待加密子文本进行异或以得到每组待加密子文本的待加密明文。例如,在对上述步骤103中补位后的待加密明文分组进行计数器累加异或之后,可以得到0123456789abcdef⊕0b0≤0123456789abcdef。0/x0f/x0f/x0f/x0f/x0f/x0f/x0f/x0f/x0f/x0f/x0f/x0f/x0f/x0f/x0f⊕0b1≤0/x0f/x0f/x0f/x0f/x0f/x0f/x0f/x0f/x0f/x0f/x0f/x0f/x0f/x0f/x0e。
可以理解地,上述示例仅是为了更好地理解本申请实施例的技术方案而列举的示例,不作为对本实施例的唯一限制。
在对多组待加密子文本进行异或处理得到多组待加密明文之后,执行步骤502。
步骤502:基于所述动态加密密钥对所述多组待加密明文进行并行加密处理,得到多组密文。
在对多组待加密子文本进行异或处理得到多组待加密明文之后,可以基于动态加密密钥对多组待加密明文进行并行加密处理,以得到多组密文。具体地,可以使用动态加密密钥对多组待加密明文进行字节替换、行移位、列混淆和轮密钥加,多轮变换后得到各分组密文。
在基于动态加密密钥对多组待加密明文进行并行加密处理得到多组密文之后,执行步骤503。
步骤503:对所述目标随机数和所述多组密文进行拼接处理,生成密文字节流。
在基于动态加密密钥对多组待加密明文进行并行加密处理得到多组密文之后,可以对目标随机数和多组密文进行拼接处理,以生成密文字节流。即将目标随机数和所有组的密文拼接在一起即得到密文字节流。具体地,可以将目标随机数置于多组密文之前,并进行拼接得到密文字节流。
在对目标随机数和多组密文进行拼接处理生成密文字节流之后,执行步骤504。
步骤504:对所述密文字节流进行编码处理,得到所述待加密文本的加密文本。
在对目标随机数和多组密文进行拼接处理生成密文字节流之后,可以对密文字节流进行编码处理,以得到待加密文本的加密文本。具体地,可以对密文字节流进行Base64或16进制的编码,以得到加密文本。对于该实现过程可以结合图6进行如下详细描述。
参照图6,示出了本申请实施例提供的另一种加密文本获取方法的步骤流程图,如图6所示,该加密文本获取方法可以包括:步骤601和步骤602。
步骤601:对所述密文字节流进行Base64编码处理,得到所述待加密文本的加密文本。
在本实施例中,Base64为用于传输8Bit字节代码的编码方式。
在得到密文字节流之后,可以对密文字节流进行Base64编码处理,以得到待加密文本的加密文本,例如,得到的密文字节流为:\x16\xfd'\x06\x8b\xafC;\x82\xeb\x8c\x7f\xad\xa8G\xdar\xc6\xb2\xf0C\xd12\t\xb8]ve?N\x86\xa6F\xac\x8dJ\xd4\nF\xb6^\xc1\xbc\x84\xdc\x18\xd0E。对该密文字节流进行Base64编码处理,得到的加密文本为:Fv0nBouvQzuC64x/rahH2nLGsvBD0TIJuF12ZT9OhqZGrI1K1ApGtl7BvITcGNBF。
可以理解地,上述示例仅是为了更好地理解本申请实施例的技术方案而列举的示例,不作为对本实施例的唯一限制。
步骤602:对所述密文字节流进行16进制编码处理,得到所述待加密文本的加密文本。
在得到密文字节流之后,可以对密文字节流进行16进制编码处理,从而可以得到待加密文本的加密文本。
本申请实施例通过先生成一个16个字节的随机数,前后8个字节各自转16进制再转10进制,得到两个随机参数,再结合密钥对,代入剩余定理,计算其最小的特解作为动态秘钥,因此每次加密时秘钥均不同,相同的明文两次加密后会得到不同的密文,保证了数据加密过程的安全性。同时,加密时采用密钥对和随机参数加密得到动态秘钥,再对明文进行分组,再和计数器累加后的值进行异或,再进行并行加密得到各组密文,最后拼装为整体密文,可见本实施例在加密时均支持并行计算,解决了串行加密的效率低下的问题,提升了加密效率。
对于动态加密密钥的加密流程可以如图7所示。
如图7所示,可以获取随机数,并根据随机数和由两个互素的较大的素数求通解,根据通解中最小的特解确定出动态密钥。同时,可以对待加密文本进行分组,并通过计数器对分组明文进行异或得到待加密明文,如图7所示明文P1和明文P2。进而可以采用动态密钥对待加密明文P1和P2进行并行加密处理,以得到相应的密文C1和C2。最后,可以对得到的密文C1和密文C2进行编码处理,得到最终的加密文本。
本申请实施例提供的加密方法,通过获取两个互为素数的目标素数,并生成一个目标随机数,其中,两个目标素数均大于设定值,基于两个目标素数和目标随机数,生成动态加密密钥,对待加密文本进行分组处理,得到待加密文本的多组待加密子文本,基于动态加密密钥,对多组待加密子文本进行加密处理,得到待加密文本的加密文本。本申请实施例通过结合随机数生成动态密钥,因此,每次加密时密钥均不相同,可以提高数据加密的安全性。同时,通过将待加密文本分组为多组待加密子文本,可以支持动态密钥对多组待加密子文本进行并行加密,解决了串行加密效率低下的问题,可以提高加密效率。
参照图8,示出了本申请实施例提供的一种解密方法的步骤流程图,如图8所示,该解密方法可以包括:步骤801、步骤802、步骤803、步骤804和步骤805。
步骤801:获取两个互为素数的目标素数,其中,两个所述目标素数均大于设定值。
在本实施例中,目标素数是指大于设定值的素数。其中,设定值为预先设置的用于筛选素数的数值,对于该设定值的大小可以根据业务需求而定,本实施例对此不加以限制。
在对加密密文进行解密时,可以获取两个互为素数的目标素数。
步骤802:根据获取的加密文本,获取目标随机数。
加密文本是指加密实施例中进行加密处理之后得到的文本。
在获取到加密文本之后,可以根据加密文本获取目标随机数。具体地,可以对加密文本进行解码得到密文字节流,然后根据密文字节流确定出目标随机数。对于该实现过程可以结合图9进行如下详细描述。
参照图9,示出了本申请实施例提供的一种目标随机数获取方法的步骤流程图,如图9所示,该目标随机数获取方法可以包括:步骤901和步骤902。
步骤901:对所述加密文本进行解码处理,得到所述加密文本的密文字节流。
在本实施例中,在得到加密文本之后,可以对加密文本进行解码处理,以得到加密文本的密文字节流。具体地,在加密时采用的编码方式为Base64编码方式时,则对加密文本进行解码时,则可以采用Base64解码,在加密时采用的编码方式为16进制编码方式时,则可以采用16进制解码方式等。
可以理解地,上述示例仅是为了更好地理解本申请实施例的技术方案而列举的示例,不作为对本实施例的唯一限制。
在对加密文本进行解码处理得到加密文本的密文字节流之后,执行步骤902。
步骤902:获取所述密文字节流中前N个字节的密文字节流作为所述目标随机数,N为偶数。
在对加密文本进行解码处理得到加密文本的密文字节流之后,可以获取密文字节流中前N个字节的密文字节流作为目标随机数,其中,N为偶数,N为上述加密实施例中目标随机数的字节数。
在根据获取的加密文本获取到目标随机数之后,执行步骤803。
步骤803:基于所述目标素数和所述目标随机数,生成所述加密文本的动态解密密钥。
在根据获取的加密文本获取到目标随机数之后,可以基于目标素数和目标随机数生成加密文本的动态解密密钥。具体地,可以根据两个目标素数生成初始密钥对,并对目标随机数进行字节拆分及字节转换处理,以生成两个随机参数,根据初始密钥对和两个随机参数生成动态解密密钥。对于该实现过程可以结合图10进行如下详细描述。
参照图10,示出了本申请实施例提供的一种动态解密密钥生成方法的步骤流程图,如图10所示,该动态解密密钥生成方法可以包括:步骤1001、步骤1002和步骤1003。
步骤1001:根据两个所述目标素数,生成初始密钥对。
在本实施例中,在获取到两个目标素数之后,可以根据两个目标素数生成一个初始密钥对。
在根据两个目标素数生成初始密钥对之后,执行步骤1003。
步骤1002:对所述目标随机数进行字节拆分及字节转换处理,生成所述目标随机数对应的两个相同字节的随机参数。
在生成目标随机数之后,可以对目标随机数进行字节拆分及字节转换处理,以生成目标随机数对应的两个相同字节的随机参数。具体地,该目标随机数为N个字节的随机数,N为偶数。在生成目标随机数之后,可以对目标随机数进行字节拆分,以得到两个字节相同的拆分随机数。然后对拆分随机数进行字节转换处理,从而可以得到目标随机数对应的两个相同字节的随机参数。例如,目标随机数为1个32位的16进制随机数,假设为:16fd27068baf433b82eb8c7fada847da,即对应于16个字节,其对应的字节流为:x16\xfd'\x06\x8b\xafC;\x82\xeb\x8c\x7f\xad\xa8G\xda。前后8个字节各自转成10进制数分离为2个随机参数,分别为:
随机参数1:65414632567958551445968527399106851682;
随机参数2:74698438912063031305537089530964173921。
可以理解地,上述示例仅是为了更好地本申请实施例的技术方案而列举的示例,不作为对本实施例的唯一限制。
在对目标随机数进行字节拆分及字节转换处理生成目标随机数对应的两个相同字节的随机参数之后,执行步骤1003。
步骤1003:根据所述初始密钥对和两个所述随机参数对应的密钥特解,生成所述动态解密密钥。
在对目标随机数进行字节拆分及字节转换处理生成目标随机数对应的两个相同字节的随机参数之后,可以根据初始密钥对和两个随机参数对应的密钥特解,生成动态解密密钥。
在具体实现中,在得到两个随机参数之后,可以求取该两个随机参数和的最小特解(即本示例中的密钥特解),然后,根据目标位数和密钥特解确定出动态解密密钥。对于该实现过程可以结合图11进行如下详细描述。
参照图11,示出了本申请实施例提供的一种动态解密密钥确定方法的步骤流程图,如图11所示,该动态解密密钥确定方法可以包括:步骤1101、步骤1102和步骤1103。
步骤1101:基于剩余定理对所述初始密钥对和两个所述随机参数进行求解,得到求解结果。
在本实施例中,在得到初始密钥对和两个随机参数之后,可以基于剩余定理对初始密钥对和两个随机参数进行求解,以得到求解结果。具体地,可以利用剩余定理求解初始密钥对和两个随机参数的通解,并将求解的通解作为求解结果。
在基于剩余定理对初始密钥对和两个随机参数对进行求解得到求解结果之后,执行步骤1102。
步骤1102:获取所述求解结果中的最小结果,并将该最小结果作为所述密钥特解。
在基于剩余定理对初始密钥对和两个随机参数对进行求解得到求解结果之后,可以获取求解结果中的最小结果,并将该最小结果作为密钥特解。例如,初始密钥对为:251、163,两个随机参数为65414632567958551445968527399106851682和74698438912063031305537089530964173921,在将初始密钥对和两个随机参数代入剩余定理的公式之后,计算得到的最小特解为26085,则可以将该结果:26085作为密钥特解等。
可以理解地,上述示例仅是为了更好地理解本申请实施例的技术方案而列举的示例,不作为对本实施例的唯一限制。
在获取到求解结果中的最小结果并将该最小结果作为密钥特解之后,执行步骤1103。
步骤1103:根据第一目标位数和所述密钥特解,确定所述动态解密密钥。
第一目标位数是指预先设置的用于确定动态加密密钥的位数,在本示例中,第一目标位数可以为128位、256位等,具体地,对于第一目标位数的具体数值可以根据业务需求而定,本实施例对此不加以限制。
在获取到求解结果中的最小结果并将该最小结果作为密钥特解之后,可以根据第一目标位数和密钥特解,确定出动态解密密钥。具体地,在密钥特解的位数小于第一目标位数时,则进行补位。在密钥特解的位数大于或等于第一目标位数时,则截取最后第一目标位数的特解作为动态解密密钥。对于该实现过程可以结合图12进行如下详细描述。
参照图12,示出了本申请实施例提供的一种动态解密密钥获取方法的步骤流程图,如图12所示,该动态解密密钥获取方法可以包括:步骤1201、步骤1202和步骤1203。
步骤1201:在所述密钥特解的位数小于所述第一目标位数时,对所述密钥特解进行补位,生成所述第一目标位数的补位特解,并将所述补位特解作为所述动态解密密钥。
步骤1202:在所述密钥特解的位数等于所述第一目标位数时,将所述密钥特解作为所述动态解密密钥。
步骤1203:在所述密钥特解的位数大于所述第一目标位数时,获取所述密钥特解的后第一目标位数的特解以作为所述动态解密密钥。
在本实施例中,在得到密钥特解之后,可以比较密钥特解的位数与第一目标位数的大小关系。
在密钥特解的位数小于第一目标位数时,则可以对密钥特解进行补位,生成第一目标位数的补位特征,并将该补位特征作为动态解密密钥。例如,计算得到的密钥特解为26085,第一目标位数为16位,此时,可以对该密钥特解进行补位,得到的补位特解为:2608526085260852,此时,可以将补位特解:2608526085260852作为动态解密密钥等。
在密钥特解的位数等于第一目标位数时,则可以将该密钥特解作为动态解密密钥。
在密钥特征的位数大于第一目标位数时,可以获取密钥特解的后第一目标位数的特解,以作为动态解密密钥,例如,计算得到的密钥特解为:2608526082608526085260852608时,则可以将后16位的特解:8526085260852608作为动态解密密钥等。
在本示例中,第一目标位数可以根据AES算法定义的长度范围而定,并非唯一固定值。在具体实现中,AES算法定义的长度范围为D={128,196,256},计算的密钥特解为:T,若len(T)<128则补足128位,若len(T)>=128且len(T)<196则取其后128位作为动态秘钥。若len(T)>=196且len(T)<256,则可以取其后196位作为动态密钥。若len(T)>256,则可以取其256位作为动态密钥等。
可以理解地,上述示例仅是为了更好地理解本申请实施例的技术方案而列举的示例,不作为对本实施例的唯一限制。
步骤804:对所述加密文本进行分组处理,得到所述加密文本对应的多组待解密子文本。
在获取到加密文本之后,可以对加密文本进行分组处理,以得到加密文本对应的多组待解密子文本。可以理解地,在本示例中,对加密文本分组的长度与上述加密实施例中对待加密文本进行分组的长度是相同的,例如,在对待加密文本按照16字节的长度进行分组时,在对待加密文本对应的加密文本进行分组时,也可以按照16字节的长度进行分组。
在对加密文本进行分组处理得到加密文本对应的多组待解密子文本之后,执行步骤805。
步骤805:基于所述动态解密密钥,对所述多组待解密子文本进行解密处理,得到解密文本。
在对加密文本进行分组处理得到加密文本对应的多组待解密子文本之后,可以基于动态解密密钥对多组待解密子文本进行解密处理,以得到解密文本。具体地,可以使用动态解密密钥进行轮密钥加、列混淆、行移位、字节替换,多轮变换后得到各分组解密后的密文。然后,通过累加计数器对各分组解密后的密文进行累加,得到各分组明文。最后,将各分组明文拼接在一起即可得到加密文本对应的解密文本。
在本实施例中,解密时和加密类似,先将密文按每组长度设定个字节进行分组,第一组分解成随机参数,再和秘钥对运算得到动态秘钥,再对剩余的密文进行并行解密,再和计数器累加后的值进行异或得到各组明文。因此加解密过程时间复杂度,可见本实施例在加解密时均支持并行计算,解决了串行解密效率低下的问题,提升了解密效率。
对于解密流程可以结合图13进行如下详细描述。
如图13所示,可以根据两个互素的目标素数生成初始密钥对,同时根据加密文本得到的随机数和初始密钥求通解,并根据通解中的最小特解确定出动态密钥(即动态解密密钥)。然后,可以对加密文本进行分组得到多组待解密子文本,进而可以使用动态密钥对多组待解密子文本进行并行解密处理(即图示分组解密)。最后,可以通过累加计数器对各分组解密后的密文进行累加,得到各分组明文,将所有组的明文拼接在一起,得到最终的明文,即解密文本。
本申请实施例提供的解密方法,通过获取两个互为素数的目标素数,其中,两个所述目标素数均大于设定值,根据获取的加密文本,获取目标随机数,基于目标素数和目标随机数,生成加密文本的动态解密密钥,对加密文本进行分组处理,得到加密文本对应的多组待解密子文本,基于动态解密密钥,对多组待解密子文本进行解密处理,得到解密文本。本申请实施例通过结合随机数生成动态密钥,因此,每次加密时密钥均不相同,可以提高数据加密的安全性。同时,通过将加密文本分组为多组待解密子文本,可以支持动态密钥对多组待解密子文本进行并行解密,解决了串行解密效率低下的问题,可以提高解密效率。
参照图14,示出了本申请实施例提供的一种加密装置的结构示意图,如图14所示,该加密装置1400可以包括以下模块:
目标随机数获取模块1410,用于获取两个互为素数的目标素数,并生成一个目标随机数,其中,两个所述目标素数均大于设定值;
动态加密密钥生成模块1420,用于基于两个所述目标素数和所述目标随机数,生成动态加密密钥;
待加密子文本获取模块1430,用于对待加密文本进行分组处理,得到所述待加密文本的多组待加密子文本;
加密文本获取模块1440,用于基于所述动态加密密钥,对所述多组待加密子文本进行加密处理,得到所述待加密文本的加密文本。
可选地,所述目标随机数为N个字节的随机数,N为偶数,
所述动态加密密钥生成包括:
第一密钥对生成单元,用于根据两个所述目标素数,生成初始密钥对;
第一随机参数生成单元,用于对所述目标随机数进行字节拆分及字节转换处理,生成所述目标随机数对应的两个相同字节的随机参数;
动态加密密钥生成单元,用于根据所述初始密钥对和两个所述随机参数对应的密钥特解,生成所述动态加密密钥。
可选地,所述动态加密密钥生成单元包括:
第一求解结果获取子单元,用于基于剩余定理对所述初始密钥对和两个所述随机参数进行求解,得到求解结果;
第一密钥特解获取子单元,用于获取所述求解结果中的最小结果,并将该最小结果作为所述密钥特解;
动态加密密钥确定子单元,用于根据第一目标位数和所述密钥特解,确定所述动态加密密钥。
可选地,所述动态加密密钥确定子单元包括:
第一加密密钥获取子单元,用于在所述密钥特解的位数小于所述第一目标位数时,对所述密钥特解进行补位,生成所述第一目标位数的补位特解,并将所述补位特解作为所述动态加密密钥;
第二加密密钥获取子单元,用于在所述密钥特解的位数等于所述第一目标位数时,将所述密钥特解作为所述动态加密密钥;
第三加密密钥获取子单元,用于在所述密钥特解的位数大于所述第一目标位数时,截取所述密钥特解的后第一目标位数作为所述动态加密密钥。
可选地,所述加密文本获取模块包括:
待加密明文获取单元,用于对所述多组待加密子文本进行异或处理,得到多组待加密明文;
多组密文获取单元,用于基于所述动态加密密钥对所述多组待加密明文进行并行加密处理,得到多组密文;
密文字节流生成单元,用于对所述目标随机数和所述多组密文进行拼接处理,生成密文字节流;
加密文本获取单元,用于对所述密文字节流进行编码处理,得到所述待加密文本的加密文本。
可选地,所述加密文本获取单元包括:
第一加密文本获取子单元,用于对所述密文字节流进行Base64编码处理,得到所述待加密文本的加密文本;
第二加密文本获取子单元,用于对所述密文字节流进行16进制编码处理,得到所述待加密文本的加密文本。
本申请实施例提供的加密装置,通过获取两个互为素数的目标素数,并生成一个目标随机数,其中,两个目标素数均大于设定值,基于两个目标素数和目标随机数,生成动态加密密钥,对待加密文本进行分组处理,得到待加密文本的多组待加密子文本,基于动态加密密钥,对多组待加密子文本进行加密处理,得到待加密文本的加密文本。本申请实施例通过结合随机数生成动态密钥,因此,每次加密时密钥均不相同,可以提高数据加密的安全性。同时,通过将待加密文本分组为多组待加密子文本,可以支持动态密钥对多组待加密子文本进行并行加密,解决了串行加密效率低下的问题,可以提高加密效率。
参照图15,示出了本申请实施例提供的一种解密装置的结构示意图,如图15所示,该解密装置1500可以包括以下模块:
目标素数获取模块1510,用于获取两个互为素数的目标素数,其中,两个所述目标素数均大于设定值;
随机数获取模块1520,用于根据获取的加密文本,获取目标随机数;
动态解密密钥生成模块1530,用于基于所述目标素数和所述目标随机数,生成所述加密文本的动态解密密钥;
待解密子文本获取模块1540,用于对所述加密文本进行分组处理,得到所述加密文本对应的多组待解密子文本;
解密文本获取模块1550,用于基于所述动态解密密钥,对所述多组待解密子文本进行解密处理,得到解密文本。
可选地,所述随机数获取模块包括:
密文字节流获取单元,用于对所述加密文本进行解码处理,得到所述加密文本的密文字节流;
目标随机数获取单元,用于获取所述密文字节流中前N个字节的密文字节流作为所述目标随机数,N为偶数。
可选地,所述动态解密密钥生成模块包括:
第二密钥对生成单元,用于根据两个所述目标素数,生成初始密钥对;
第二随机参数生成单元,用于对所述目标随机数进行字节拆分及字节转换处理,生成所述目标随机数对应的两个相同字节的随机参数;
动态解密密钥生成单元,用于根据所述初始密钥对和两个所述随机参数对应的密钥特解,生成所述动态解密密钥。
可选地,所述动态解密密钥生成单元包括:
第二求解结果获取子单元,用于基于剩余定理对所述初始密钥对和两个所述随机参数进行求解,得到求解结果;
第二密钥特解获取子单元,用于获取所述求解结果中的最小结果,并将该最小结果作为所述密钥特解;
动态解密密钥确定子单元,用于根据第一目标位数和所述密钥特解,确定所述动态解密密钥。
可选地,所述动态解密密钥确定子单元包括:
第一解密密钥获取子单元,用于在所述密钥特解的位数小于所述第一目标位数时,对所述密钥特解进行补位,生成所述第一目标位数的补位特解,并将所述补位特解作为所述动态解密密钥;
第二解密密钥获取子单元,用于在所述密钥特解的位数等于所述第一目标位数时,将所述密钥特解作为所述动态解密密钥;
第三解密密钥获取子单元,用于在所述密钥特解的位数大于所述第一目标位数时,获取所述密钥特解的后第一目标位数的特解以作为所述动态解密密钥。
本申请实施例提供的解密装置,通过获取两个互为素数的目标素数,其中,两个所述目标素数均大于设定值,根据获取的加密文本,获取目标随机数,基于目标素数和目标随机数,生成加密文本的动态解密密钥,对加密文本进行分组处理,得到加密文本对应的多组待解密子文本,基于动态解密密钥,对多组待解密子文本进行解密处理,得到解密文本。本申请实施例通过结合随机数生成动态密钥,因此,每次加密时密钥均不相同,可以提高数据加密的安全性。同时,通过将加密文本分组为多组待解密子文本,可以支持动态密钥对多组待解密子文本进行并行解密,解决了串行解密效率低下的问题,可以提高解密效率。
本申请实施例还提供了一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述加密方法,或者上述解密方法。
图16示出了本发明实施例的一种电子设备1600的结构示意图。如图16所示,电子设备1600包括中央处理单元(CPU)1601,其可以根据存储在只读存储器(ROM)1602中的计算机程序指令或者从存储单元1608加载到随机访问存储器(RAM)1603中的计算机程序指令,来执行各种适当的动作和处理。在RAM1603中,还可存储电子设备1600操作所需的各种程序和数据。CPU1601、ROM1602以及RAM1603通过总线1604彼此相连。输入/输出(I/O)接口1605也连接至总线1604。
电子设备1600中的多个部件连接至I/O接口1605,包括:输入单元1606,例如键盘、鼠标、麦克风等;输出单元1607,例如各种类型的显示器、扬声器等;存储单元1608,例如磁盘、光盘等;以及通信单元1609,例如网卡、调制解调器、无线通信收发机等。通信单元1609允许电子设备1600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个过程和处理,可由处理单元1601执行。例如,上述任一实施例的方法可被实现为计算机软件程序,其被有形地包含于计算机可读介质,例如存储单元1608。在一些实施例中,计算机程序的部分或者全部可以经由ROM1602和/或通信单元1609而被载入和/或安装到电子设备1600上。当计算机程序被加载到RAM1603并由CPU1601执行时,可以执行上文描述的方法中的一个或多个动作。
另外地,本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述加密方法,或者上述解密方法。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例是参照根据本申请实施例的方法、终端(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端上,使得在计算机或其他可编程终端上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端中还存在另外的相同要素。
以上对本申请所提供的一种加密方法、解密方法、装置、电子设备及存储介质,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (15)

1.一种加密方法,其特征在于,所述方法包括:
获取两个互为素数的目标素数,并生成一个目标随机数,其中,两个所述目标素数均大于设定值;
基于两个所述目标素数和所述目标随机数,生成动态加密密钥;
对待加密文本进行分组处理,得到所述待加密文本的多组待加密子文本;
基于所述动态加密密钥,对所述多组待加密子文本进行加密处理,得到所述待加密文本的加密文本。
2.根据权利要求1所述的方法,其特征在于,所述目标随机数为N个字节的随机数,N为偶数,
所述基于两个所述目标素数和所述目标随机数,生成动态加密密钥,包括:
根据两个所述目标素数,生成初始密钥对;
对所述目标随机数进行字节拆分及字节转换处理,生成所述目标随机数对应的两个相同字节的随机参数;
根据所述初始密钥对和两个所述随机参数对应的密钥特解,生成所述动态加密密钥。
3.根据权利要求2所述的方法,其特征在于,所述根据所述初始密钥对和两个所述随机参数对应的密钥特解,生成所述动态加密密钥,包括:
基于剩余定理对所述初始密钥对和两个所述随机参数进行求解,得到求解结果;
获取所述求解结果中的最小结果,并将该最小结果作为所述密钥特解;
根据第一目标位数和所述密钥特解,确定所述动态加密密钥。
4.根据权利要求3所述的方法,其特征在于,所述根据第一目标位数和所述密钥特解,确定所述动态加密密钥,包括:
在所述密钥特解的位数小于所述第一目标位数时,对所述密钥特解进行补位,生成所述第一目标位数的补位特解,并将所述补位特解作为所述动态加密密钥;
在所述密钥特解的位数等于所述第一目标位数时,将所述密钥特解作为所述动态加密密钥;
在所述密钥特解的位数大于所述第一目标位数时,截取所述密钥特解的后第一目标位数作为所述动态加密密钥。
5.根据权利要求1所述的方法,其特征在于,所述基于所述动态加密密钥,对所述多组待加密子文本进行加密处理,得到所述待加密文本的加密文本,包括:
对所述多组待加密子文本进行异或处理,得到多组待加密明文;
基于所述动态加密密钥对所述多组待加密明文进行并行加密处理,得到多组密文;
对所述目标随机数和所述多组密文进行拼接处理,生成密文字节流;
对所述密文字节流进行编码处理,得到所述待加密文本的加密文本。
6.根据权利要求5所述的方法,其特征在于,所述对所述密文字节流进行编码处理,得到所述待加密文本的加密文本,包括:
对所述密文字节流进行Base64编码处理,得到所述待加密文本的加密文本;或者
对所述密文字节流进行16进制编码处理,得到所述待加密文本的加密文本。
7.一种解密方法,其特征在于,所述方法包括:
获取两个互为素数的目标素数,其中,两个所述目标素数均大于设定值;
根据获取的加密文本,获取目标随机数;
基于所述目标素数和所述目标随机数,生成所述加密文本的动态解密密钥;
对所述加密文本进行分组处理,得到所述加密文本对应的多组待解密子文本;
基于所述动态解密密钥,对所述多组待解密子文本进行解密处理,得到解密文本。
8.根据权利要求7所述的方法,其特征在于,所述根据获取的加密文本,获取目标随机数,包括:
对所述加密文本进行解码处理,得到所述加密文本的密文字节流;
获取所述密文字节流中前N个字节的密文字节流作为所述目标随机数,N为偶数。
9.根据权利要求7所述的方法,其特征在于,所述基于所述目标素数和所述目标随机数,生成所述加密文本的动态解密密钥,包括:
根据两个所述目标素数,生成初始密钥对;
对所述目标随机数进行字节拆分及字节转换处理,生成所述目标随机数对应的两个相同字节的随机参数;
根据所述初始密钥对和两个所述随机参数对应的密钥特解,生成所述动态解密密钥。
10.根据权利要求9所述的方法,其特征在于,所述根据所述初始密钥对和两个所述随机参数对应的密钥特解,生成所述动态解密密钥,包括:
基于剩余定理对所述初始密钥对和两个所述随机参数进行求解,得到求解结果;
获取所述求解结果中的最小结果,并将该最小结果作为所述密钥特解;
根据第一目标位数和所述密钥特解,确定所述动态解密密钥。
11.根据权利要求10所述的方法,其特征在于,所述根据第一目标位数和所述密钥特解,确定所述动态解密密钥,包括:
在所述密钥特解的位数小于所述第一目标位数时,对所述密钥特解进行补位,生成所述第一目标位数的补位特解,并将所述补位特解作为所述动态解密密钥;
在所述密钥特解的位数等于所述第一目标位数时,将所述密钥特解作为所述动态解密密钥;
在所述密钥特解的位数大于所述第一目标位数时,截取所述密钥特解的后第一目标位数作为所述动态解密密钥。
12.一种加密装置,其特征在于,所述装置包括:
目标随机数获取模块,用于获取两个互为素数的目标素数,并生成一个目标随机数,其中,两个所述目标素数均大于设定值;
动态加密密钥生成模块,用于基于两个所述目标素数和所述目标随机数,生成动态加密密钥;
待加密子文本获取模块,用于对待加密文本进行分组处理,得到所述待加密文本的多组待加密子文本;
加密文本获取模块,用于基于所述动态加密密钥,对所述多组待加密子文本进行加密处理,得到所述待加密文本的加密文本。
13.一种解密装置,其特征在于,所述装置包括:
目标素数获取模块,用于获取两个互为素数的目标素数,其中,两个所述目标素数均大于设定值;
随机数获取模块,用于根据获取的加密文本,获取目标随机数;
动态解密密钥生成模块,用于基于所述目标素数和所述目标随机数,生成所述加密文本的动态解密密钥;
待解密子文本获取模块,用于对所述加密文本进行分组处理,得到所述加密文本对应的多组待解密子文本;
解密文本获取模块,用于基于所述动态解密密钥,对所述多组待解密子文本进行解密处理,得到解密文本。
14.一种电子设备,其特征在于,包括:
处理器、存储器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求1至6中任一项所述的加密方法,或者权利要求7-11中任一项所述的解密方法。
15.一种计算机可读存储介质,其特征在于,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行权利要求1至6中任一项所述的加密方法,或者权利要求7-11中任一项所述的解密方法。
CN202211181965.6A 2022-09-27 2022-09-27 加密方法、解密方法、装置、电子设备及存储介质 Pending CN115632765A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211181965.6A CN115632765A (zh) 2022-09-27 2022-09-27 加密方法、解密方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211181965.6A CN115632765A (zh) 2022-09-27 2022-09-27 加密方法、解密方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN115632765A true CN115632765A (zh) 2023-01-20

Family

ID=84904931

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211181965.6A Pending CN115632765A (zh) 2022-09-27 2022-09-27 加密方法、解密方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN115632765A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117725605A (zh) * 2024-02-07 2024-03-19 四川建设网有限责任公司 一种远端自动编制电子档案文件信息保密的方法和系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117725605A (zh) * 2024-02-07 2024-03-19 四川建设网有限责任公司 一种远端自动编制电子档案文件信息保密的方法和系统
CN117725605B (zh) * 2024-02-07 2024-04-23 四川建设网有限责任公司 一种远端自动编制电子档案文件信息保密的方法和系统

Similar Documents

Publication Publication Date Title
KR101809386B1 (ko) 인증 암호 장치, 인증 암호 방법 및 컴퓨터 판독가능한 기록 매체
KR100657062B1 (ko) 정보 암호화 방법 및 이 방법을 실현하는 장치
Saraf et al. Text and image encryption decryption using advanced encryption standard
US8942371B2 (en) Method and system for a symmetric block cipher using a plurality of symmetric algorithms
CN101202623B (zh) 消息验证码产生方法、验证/加密和验证/解密方法
WO2018104412A1 (en) Method of rsa signature or decryption protected using a homomorphic encryption
Singh Modified Vigenere encryption algorithm and its hybrid implementation with Base64 and AES
KR101095386B1 (ko) 이산화된 카오스 함수를 이용한 암호 시스템
Reyad et al. Key-based enhancement of data encryption standard for text security
WO2021176242A1 (en) Scrambler apparatus and method in particular for cryptographic applications, and descrambler apparatus and method therefor
CN115632765A (zh) 加密方法、解密方法、装置、电子设备及存储介质
WO2015166701A1 (ja) 暗号化方法、プログラム、および、システム
JP6187624B1 (ja) 情報処理装置、情報処理方法及びプログラム
CN112866288B (zh) 一种双明文传输的数据对称加密方法
JP6631989B2 (ja) 暗号化装置、制御方法、及びプログラム
CN108616351B (zh) 一种全动态加密解密方法及加密解密装置
Pandey et al. Data security using various cryptography Techniques: A Recent Survey
WO2020173662A1 (en) Method secured against side-channel attacks with a new masking scheme protecting linear operations of a cryptographic algorithm
Charru et al. Improved Cryptography Algorithm to Enhanced Data Security
Sharma et al. Comparative analysis of block key encryption algorithms
Mushtaque et al. Implementation of new encryption algorithm with random key selection and minimum space complexity
CN114244552B (zh) 基于区块链的数据加密传输方法及装置
JP5293612B2 (ja) 暗号化装置、復号装置、暗号化方法、復号方法およびプログラム
CN102474413A (zh) 私钥压缩
Pathak et al. Towards the Proposal of Mobile Security Encryption Algorithm:“RHINO256”

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