CN116961958A - 一种数据加密方法、装置、电子设备和存储介质 - Google Patents

一种数据加密方法、装置、电子设备和存储介质 Download PDF

Info

Publication number
CN116961958A
CN116961958A CN202210998840.6A CN202210998840A CN116961958A CN 116961958 A CN116961958 A CN 116961958A CN 202210998840 A CN202210998840 A CN 202210998840A CN 116961958 A CN116961958 A CN 116961958A
Authority
CN
China
Prior art keywords
data
key
processing
encrypted
nth
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
CN202210998840.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 Mobile Communications Group Co Ltd
China Mobile Hangzhou Information Technology Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
China Mobile Hangzhou 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 China Mobile Communications Group Co Ltd, China Mobile Hangzhou Information Technology Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN202210998840.6A priority Critical patent/CN116961958A/zh
Publication of CN116961958A publication Critical patent/CN116961958A/zh
Pending legal-status Critical Current

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
    • 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/088Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms

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

一种数据加密方法、装置、电子设备和存储介质
技术领域
本申请涉及信息安全技术领域,尤其是涉及一种数据加密方法、装置、电子设备和存储介质。
背景技术
目前,随着计算机和信息技术的迅猛发展和普及应用,各个行业的应用系统的规模迅速扩大,随着而产生的应用数据呈现出爆炸式增长。大数据量的产生和传输在促进行业发展的同时无疑将更多的应用信息暴露于网络之上,导致许多敏感信息和财产都极度依赖于电子密码设备。在这种趋势下,对电子密码设备的安全性分析方法越来越多,使得电子设备的安全性受到了极大的挑战。为了保障产生和传输的数据的安全性,各个行业都在设计的应用系统中研究行之有效的加解密模块的软硬件实现。现有技术中,通常使用高级加密标准(Advanced Encryption Standard,AES)算法来保障电子设备中敏感信息和财产的安全性。
当在对高速、大数据量且大位宽的数据进行加密或解密时,参照图1所示,相关技术中使用通用处理器(center processing units,CPU)来实施该AES算法以进行数据加密或解密操作。然而,由于CPU的核心数量有限,在对大量数据进行加密或解密时,至少存在加密速度慢的问题。
发明内容
本申请提供一种数据加密方法、装置、电子设备和存储介质。
本申请的技术方案是这样实现的:
本申请提供一种数据加密方法,所述方法包括:
获得多媒体数据对应的多个待加密数据,以及初始密钥对应的扩展密钥;所述扩展密钥是对所述初始密钥进行多轮密钥扩展得到的多个子密钥;
利用所述扩展密钥,分别对所述多个待加密数据中的每一待加密数据进行并行处理模式下的多轮加密处理,得到所述每一待加密数据对应的子密文数据;所述加密处理包括密钥相加处理、字节置换处理、行移位处理和列混合处理;
按照所述待加密数据的分组顺序,对所述待加密数据对应的所述子密文数据进行组合,得到目标密文数据。
本申请提供一种数据加密装置,所述装置包括:
获得模块,用于获得多媒体数据对应的多个待加密数据,以及初始密钥对应的扩展密钥;所述扩展密钥是对所述初始密钥进行多轮密钥扩展得到的多个子密钥;
处理模块,用于利用所述扩展密钥,分别对所述多个待加密数据中的每一待加密数据进行并行处理模式下的多轮加密处理,得到所述每一待加密数据对应的子密文数据;所述加密处理包括密钥相加处理、字节置换处理、行移位处理和列混合处理;
所述处理模块,还用于按照所述待加密数据的分组顺序,对所述待加密数据对应的所述子密文数据进行组合,得到目标密文数据。
本申请提供一种电子设备,所述电子设备包括:
存储器,用于存储可执行指令;
并行处理器,用于执行所述存储器中存储的可执行指令,以实现上述所述的数据加密方法。
本申请提供一种存储介质,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述所述的数据加密方法。
本申请提供一种数据加密方法、装置、电子设备和存储介质,通过获得多媒体数据对应的多个待加密数据,以及初始密钥对应的扩展密钥;扩展密钥是对初始密钥进行多轮密钥扩展得到的多个子密钥;利用扩展密钥,分别对多个待加密数据中的每一待加密数据进行并行处理模式下的多轮加密处理,得到每一待加密数据对应的子密文数据;加密处理包括密钥相加处理、字节置换处理、行移位处理和列混合处理;按照待加密数据的分组顺序,对待加密数据对应的子密文数据进行组合,得到目标密文数据;也就是说,本申请利用初始密钥和扩展密钥,对每一待加密数据进行多轮的并行加密处理,达到大数据的并行处理,充分利用了并行处理器的硬件算力,极大地减少了数据加密时间,提高了执行效率;同时,并行处理器功能相对专一,比通用CPU的安全性高,提高了加密数据的安全性;最后多个子密文数据进行重新组合得到目标密文数据,能够在数据加密过程中实现高效加密,同时,利用并行处理器进行处理,释放了CPU的内存资源,减小了CPU的运算压力。
附图说明
图1为相关技术方案提供的一种数据加密方法的结构框图;
图2为本申请实施例提供的一种可选的数据加密方法的流程示意图;
图3为本申请实施例提供的一种对初始密钥进行密钥扩展的过程示意图;
图4为本申请实施例提供的一种可选的数据加密方法的流程示意图;
图5为本申请实施例提供的一种密钥相加神经网络算子的结构示意图;
图6为本申请实施例提供的一种密钥相加处理在并行模式下的异或运算处理的过程示意图;
图7为本申请实施例提供的一种可选的数据加密方法的流程示意图;
图8为本申请实施例提供的一种字节置换/逆字节置换神经网络算子的流程示意图;
图9为本申请实施例提供的一种可选的数据加密方法的流程示意图;
图10为本申请实施例提供的一种行移位/逆行移位神经网络算子的流程示意图;
图11为本申请实施例提供的一种对第三状态矩阵进行行向左移位处理的过程示意图;
图12为本申请实施例提供的一种可选的数据加密方法的流程示意图;
图13为本申请实施例提供的一种可选的数据加密方法的流程示意图;
图14为本申请实施例提供的一种列混合/逆列混合神经网络算子的流程示意;
图15为本申请实施例提供的一种可选的数据加密方法的流程框图;
图16为本申请实施例提供的一种可选的数据解密方法的流程框图;
图17为本申请实施例提供的一种数据加密装置的结构示意图;
图18为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
参见图2,图2是本申请实施例提供的数据加密方法的一个实现流程示意图,该数据加密方法应用于并行处理器,该数据加密方法包括以下步骤:
步骤201、获得多媒体数据对应的多个待加密数据,以及初始密钥对应的扩展密钥。
其中,扩展密钥是对初始密钥进行多轮密钥扩展得到的多个子密钥。
在一些实施例中,多媒体数据包括但不限于文字、图片、照片、声音、动画、影片和文件,以及其他计算机所提供的互动功能产生的数据。这里,多媒体数据可以为明文数据。
在一些实施例中,待加密数据是并行处理器对多媒体数据进行编码得到以字节表示的编码数据,对编码数据按照预设分组规则进行分组后得到的数据。这里,预设分组规则可以是以128位(bit)或16字节(Byte,B)对编码数据进行分组。这里,待加密数据的位宽为128bit,且待加密数据可以用4×4数据矩阵表示,即待加密数据中的每一数据为1个字节。需要说明的是,在获得多媒体数据对应的多个待加密数据后,可以以此为基础进行并行运算。
在一些实施例中,初始密钥是预先确定的密钥,密钥的长度可以是使用128bit、192bit或256bit。初始密钥可以用矩阵表示,且初始密钥的行数等于待加密数据的行数,初始密钥的列数等于待加密数据的列数。示例性的,初始密钥的长度为128bit,初始密钥可以用4×4密钥矩阵表示。
在一些实施例中,扩展密钥是对初始密钥进行多轮密钥扩展得到的多个子密钥,扩展密钥包括初始密钥。这里,以初始密钥为4×4密钥矩阵,对初始密钥进行多轮密钥扩展得到的多个子密钥的过程结合图3进行说明,
将初始密钥为4×4密钥矩阵key[0]的每一列组成一个字,依次命名为W[0]、W[1]、W[2]、W[3]。接着对数组W进行密钥扩展,扩展成40个新列,构成总共44列的扩展密钥,参照图3中的A所示,图3中的A示出的是密钥扩展的流程示意图。密钥的扩展按照以下的递归方式产生:当i不是4的倍数时,那么第i列表示为,当i是4的倍数时,那么第i列表示为,/>其中,T是一个由非线性和线性函数构成的复杂函数,图3中的B示出的是T函数处理流程图,处理过程如下:将1个字如w中的4个字节循环左移1个字节,即将输入字[B1,B2,B3,B4]变换为[B2,B3,B4,B1];对字循环后的结果使用S盒进行字节替换(又称字节置换),得到替换后的结果[S(B2),S(B3),S(B4),S(B1)];再将替换后的结果与轮常量Rcon[j]进行异或处理,其中j表示轮数,Rcon为定义在GF(28)上模m(x)=x8+x4+x3+x+1,得到w经过T函数处理后的w’。
在一些实施例中,并行处理器是具有满足数据并行运算的一定数量的核心运算单元,一定数量可以是几百到几千;并行处理器可以是图形处理器(Graphics ProcessingUnit,GPU),并行处理器还可以是神经网络处理器(neural-network processing units,NPU),对此,本申请不做具体限制。这里,GPU可以理解为可编程的显卡,最早在计算机中用于图形图像的处理,最近几年GPU还应用到大规模的并行计算领域。由于单块GPU通常具有上百的核心运算单元,GPU所拥有的数百倍于CPU的核心运算单元的数量。GPU非常适合于执行可高度并行化的密集型计算任务,使用GPU执行这些任务,往往能提升数倍的性能。NPU采用“数据驱动并行计算”的架构,用于处理视频、图像类的海量多媒体数据,NPU处理器具有上百的核心运算单元,用于加速神经网络的运算。
在实际应用中,相比于CPU,GPU/NPU中的控制逻辑单元少,却有大量的逻辑运算单元以及大量的GPU/NPU线程,适合高效地并行执行批量计算任务。尤其对于位数较少的批量计算任务而言,任务数量多,单个任务计算量少,则能够并行占用更多的逻辑运算单元和GPU/NPU线程,从而,提高总体的计算效率。
步骤202、利用扩展密钥,分别对多个待加密数据中的每一待加密数据进行并行处理模式下的多轮加密处理,得到每一待加密数据对应的子密文数据。
其中,加密处理包括密钥相加处理、字节置换处理、行移位处理和列混合处理。
在一些实施例中,子密文数据是利用扩展密钥对待加密数据进行密钥相加处理、字节置换处理、行移位处理和列混合处理后,得到的加密后的数据。
本申请实施例中,并行处理器将扩展密钥以及多个待加密数据中的每一待加密数据,分别分配给并行处理器的多个逻辑单元及其对应的多个线程执行,在并行处理模式,每一线程利用扩展密钥,对待加密数据进行多轮密钥相加处理、字节置换处理、行移位处理和列混合处理之后,得到子密文数据。
步骤203、按照待加密数据的分组顺序,对待加密数据对应的子密文数据进行组合,得到目标密文数据。
本申请实施例中,利用扩展密钥,分别对多个待加密数据中的每一待加密数据进行并行处理模式下的多轮加密处理,得到每一待加密数据对应的子密文数据之后,按照待加密数据的分组顺序,对待加密数据对应的子密文数据进行组合,得到目标密文数据。
本申请提供一种数据加密方法,通过获得多媒体数据对应的多个待加密数据,以及初始密钥对应的扩展密钥;扩展密钥是对初始密钥进行多轮密钥扩展得到的多个子密钥;利用扩展密钥,分别对多个待加密数据中的每一待加密数据进行并行处理模式下的多轮加密处理,得到每一待加密数据对应的子密文数据;加密处理包括密钥相加处理、字节置换处理、行移位处理和列混合处理;按照待加密数据的分组顺序,对待加密数据对应的子密文数据进行组合,得到目标密文数据;也就是说,本申请利用初始密钥和扩展密钥,对每一待加密数据进行多轮的并行加密处理,达到大数据的并行处理,充分利用了并行处理器的硬件算力,极大地减少了数据加密时间,提高了执行效率;同时,并行处理器功能相对专一,比通用CPU的安全性高,提高了加密数据的安全性;最后多个子密文数据进行重新组合得到目标密文数据,能够在数据加密过程中实现高效加密,同时,利用并行处理器进行处理,释放了CPU的内存资源,减小了CPU的运算压力。
在一些实施例中,上述实施例提供的步骤202可以通过以下步骤301至步骤303来实现,如图4所示,为本申请实施例提供的数据加密方法的流程示意图,结合图1和图4所示的步骤进行以下说明,
步骤301、从扩展密钥中选择与第n轮加密处理对应的第n子密钥。
其中,1≤n≤N,且n为整数,N为多轮加密处理的总轮次数。
在一些实施例中,初始密钥的长度不同,推荐加密的总轮次数也不同。如若密钥的长度为128bit,则加密的总轮次数为10次;若密钥的长度为192bit,则加密的总轮次数为12次;若密钥的长度为256bit,则加密的总轮次数为14次。
在一些实施例中,扩展密钥中包括N+1个子密钥,每一子密钥用于对待加密数据进行异或处理。
步骤302、获得对待加密数据进行第n轮加密处理后的第n中间加密数据。
在一些实施例中,第n中间加密数据与待加密数据的大小相同,即第n中间加密数据仍为4×4的数据矩阵。
在一些实施例中,当n小于N时,第n-1中间加密数据为第n-1列混合数据;当n等于N时,第n-1中间加密数据为第n-1行位移数据。
步骤303、在并行处理模式下,将第n中间加密数据中的数据和第n子密钥对应位置的密钥,进行同步异或处理,得到第n轮密钥相加处理后的第n密钥运算数据,以得到子密文数据。
在一些实施例中,并行处理器可以将第n中间加密数据以数据块的形式划分为多个组,并将第n子密钥也以同样的数据块的形式划分为多个组,可以此为基础对每一组的数据进行并行运算。比如,以第n中间加密数据为4×4的数据矩阵,且第n子密钥为4×4的密钥矩阵,在进行异或处理时,将以数据组为操作单位,将第n中间加密数据中的单个8bit的数据,与第n子密钥对应位置的单个8bit的密钥分配给并行处理器的逻辑单元及其对应的线程,多个线程同步对单个8bit的数据,与对应位置的单个8bit的密钥进行异或运算处理。故而,将存在16个并行处理的异或运算操作。然后,将分别异或运算后的数据进行组合,得到第n轮密钥相加处理后的第n密钥运算数据,以得到子密文数据。
在一种可实现的应用场景中,将第n中间加密数据作为第一状态矩阵,将第n子密钥作为轮密钥矩阵,密钥相加神经网络算子的结构参照图5所示,即第一状态矩阵与轮密钥矩阵进行异或运算(bitwise_xor),得到新的第一状态矩阵。这里,密钥相加处理在并行模式下的异或运算处理过程参照图6所示,第一状态矩阵中的每一数据(或元素)与轮密钥矩阵中的每一密钥(或元素)同步地进行异或运算处理,进而得到新的第一状态矩阵。需要说明的是,数据加密过程包括开始的一次轮密钥相加处理,中间多次可循环迭代运算,最后一次不循环迭代运算,在进行可循环迭代运算之前,首先根据初始密钥对待加密数据进行一次轮密钥相加处理得到初始密文,然后将初始密文和第1子密钥作为第一次可循环迭代运算的输入数据继续后续运算。
由上述可知,在对第n中间加密数据和第n子密钥进行密钥运算处理时,将对所有数据进行串行加密处理改进成并行加密处理的形式,在NPU/GPU中通过多算术逻辑单元多线程并行执行,有效发挥了NPU/GPU对于位数较少的批量计算任务执行效率高的优点;同时,采用NPU/GPU并行加密处理实现对大数据环境下动态数据流的加解密,充分利用了并行处理器的硬件算力,极大地减少了数据加密时间,提高了执行效率;同时,并行处理器功能相对专一,比通用CPU的安全性高,提高了加密数据的安全性。
在一些实施例中,上述实施例提供的步骤202可以通过以下步骤401至步骤402来实现,如图7所示,为本申请实施例提供的数据加密方法的流程示意图,结合图1和图7所示的步骤进行以下说明,
步骤401、在利用扩展密钥对待加密数据进行第n-1轮密钥相加处理,得到第n-1密钥运算数据的情况下,获得第一置换数据和第n-1密钥运算数据中数据对应的置换参数。
其中,1≤n≤N,且n为整数,N为多轮加密处理的总轮次数。
在一些实施例中,第一置换数据为预先设置的表,第一置换数据又称S盒。
在一些实施例中,由于第n-1密钥运算数据中的每一数据为1个字节,每一数据对应的置换参数包括该字节的高4位所作为的行值,低4位所作为的列值。
需要说明的是,当n=1时,第n-1密钥运算数据为,根据初始密钥对待加密数据进行一次轮密钥相加处理得到初始密文;当n大于1且小于或等于N时,第n-1密钥运算数据为经过n-1轮加密处理后的中间密文数据。
在一些实施例中,并行处理器可以将第n-1密钥运算数据以数据块的形式划分为多个组,以此为基础对获取每一组数据的置换参数进行并行运算。比如,以第n-1密钥运算数据为4×4的数据矩阵,以数据组为操作单位,将每一组数据分配给并行处理器的逻辑单元及其对应的线程,多个线程同步获取第n-1密钥运算数据中的单个8bit的数据的置换参数。
步骤402、在并列模式下,将第n-1密钥运算数据中所有数据,同步替换成第一置换数据中与置换参数对应的目标参数,得到第n轮字节置换处理后的第n置换数据,以得到子密文数据。
本申请实施例中,并行处理器在并行模式下,按照第n-1密钥运算数据中所有数据对应的置换参数,从第一置换数据中查找与置换参数对应的目标参数,并将第n-1密钥运算数据中所有数据,同步替换成目标参数,得到第n轮字节置换处理后的第n置换数据,进而得到子密文数据。
示例性的,当第n-1密钥运算数据中的某一数据S1为0x12,确定S1的置换参数为0x01和0x02,根据置换参数查找S盒的第0x01行和0x02列,得到值0xc9,然后将第n-1密钥运算数据中原有的0x12替换为0xc9。这里,将第n-1密钥运算数据作为第二状态矩阵,且第一置换数据为S盒(SBOX),字节置换神经网络算子的结构参照图8中的A所示,第二状态矩阵和S盒进行向量索引处理(gather),得到新的第二状态矩阵。需要说明的是,将第n-1密钥运算数据作为第二状态矩阵,且第一置换数据为逆S盒(INVSBOX)时,逆字节置换神经网络算子的结构参照图8中的B所示,第二状态矩阵和逆S盒进行向量索引处理,得到新的第二状态矩阵。
由上述可知,在基于第n-1密钥运算数据和第一置换数据进行字节置换处理时,并行获取第n-1密钥运算数据每一数据的置换参数,并同步地在第一置换数据查找与每一置换参数对应的目标参数,进行替换;如此,将对所有数据进行串行加密处理改进成并行加密处理的形式,在NPU/GPU中通过多算术逻辑单元多线程并行执行,有效发挥了NPU/GPU对于位数较少的批量计算任务执行效率高的优点;同时,采用NPU/GPU并行加密处理实现对大数据环境下动态数据流的加解密,充分利用了并行处理器的硬件算力,极大地减少了数据加密时间,提高了执行效率;同时,并行处理器功能相对专一,比通用CPU的安全性高,提高了加密数据的安全性。
在一些实施例中,上述实施例提供的步骤202可以通过以下步骤501至步骤502来实现,如图9所示,为本申请实施例提供的数据加密方法的流程示意图,结合图1和图9所示的步骤进行以下说明,
步骤501、在利用扩展密钥对待加密数据进行第n轮字节置换处理,得到第n置换数据的情况下,获得第n置换数据中数据对应的行移位参数。
其中,1≤n≤N,且n为整数,N为多轮加密处理的总轮次数。
在一些实施例中,行移位参数可以理解为第n置换数据中的每一数据所在的行数。示例性的,若第n置换数据中的某一数据在第n置换数据中的第0行,则该数据的行移位参数为0,即该数据左移0字节;若第n置换数据中的某一数据在第n置换数据中的第1行,则该数据的行移位参数为1,即该数据左移1字节;若第n置换数据中的某一数据在第n置换数据中的第2行,则该数据的行移位参数为2,即该数据左移2字节;若第n置换数据中的某一数据在第n置换数据中的第3行,则该数据的行移位参数为3,即该数据左移3字节。
需要说明的是,并行处理器可以将第n置换数据以数据块的形式划分为多个组,以此为基础对获取每一组数据的行移位参数进行并行运算。比如,以第n置换数据为4×4的数据矩阵,以数据组为操作单位,将每一组数据分配给并行处理器的逻辑单元及其对应的线程,多个线程同步获取第n置换数据中的单个8bit的数据的行移位参数。
步骤502、在并行处理模式下,根据行移位参数,对第n置换数据中数据进行行移位处理,得到第n轮行移位处理后的第n行移位数据,以得到子密文数据。
在一些实施例中,并行处理器在获得第n置换数据中数据对应的行移位参数之后,在并行模式下,按照第n置换数据中所有数据对应的行移位参数,对第n置换数据中所有数据进行行移位处理,得到第n轮行移位处理后的第n行移位数据,进而得到子密文数据。
示例性的,以第n置换数据为第三状态矩阵,第三状态矩阵根据行移位参数进行行移位的过程参照图10所示,图10中的A示出的是行移位神经网络算子的结构图,对第三状态矩阵进行行向左移位(SHIFT)处理,对第三状态矩阵进行行向左移位处理的过程参照图11所示。图10中的B示出的是逆行移位神经网络算子的结构图,对第三状态矩阵进行行向右移位(INVSHIFT)处理,即为对第三状态矩阵进行逆行移位处理。需要说明的是,若第三状态矩阵进行行移位处理后,得到的是16×1的新的第三状态矩阵,对新的第三状态矩阵进行形状变换(reshape)处理,将16×1的新的第三状态矩阵,变换成4×4的新的第三状态矩阵。
由上述可知,在对第n置换数据进行行移位处理时,并行获取第n置换数据每一数据的行移位参数,并行地对第n置换数据中的数据按照对应的行移位参数进行移位处理;如此,将对所有数据进行串行加密处理改进成并行加密处理的形式,在NPU/GPU中通过多算术逻辑单元多线程并行执行,有效发挥了NPU/GPU对于位数较少的批量计算任务执行效率高的优点;同时,采用NPU/GPU并行加密处理实现对大数据环境下动态数据流的加解密,充分利用了并行处理器的硬件算力,极大地减少了数据加密时间,提高了执行效率;同时,并行处理器功能相对专一,比通用CPU的安全性高,提高了加密数据的安全性。
在一些实施例中,上述实施例提供的步骤202可以通过以下步骤601至步骤604来实现,如图12所示,为本申请实施例提供的数据加密方法的流程示意图,结合图1和图12所示的步骤进行以下说明,
步骤601、在利用扩展密钥对待加密数据进行第n轮行移位处理,得到第n行移位数据的情况下,获得第一乘法查找表和第二乘法查找表。
其中,1≤n≤N-1,且n为整数,N为多轮加密处理的总轮次数,第一乘法查找表和第二乘法查找表不同。
在一些实施例中,乘法查找表为GF(28)的矩阵乘法查找表,乘法查找表是一个已知的数据矩阵,用于把矩阵的乘法运算,分解为加减等方法运算,以加快运算速度。
步骤602、在并列模式下,基于第一乘法查找表对第n行移位数据中数据进行同步向量索引,得到第一索引数据,以及基于第二乘法查找表对列混合系数数据中数据进行同步向量索引,得到系数索引数据。
在一些实施例中,列混合系数数据为预先设定的矩阵,用于实现列混合操作,列混合系数数据可以用4×4的矩阵表示。
在一些实施例中,由于第n行移位数据中的每一数据为1个字节,将第n行移位数据中的每一数据的高4位作为行索引,低4位作为列索引,在并行模式下,在第一乘法查找表中查找以行索引所在的行,列索引所在的列的索引数据,并将第n行移位数据中数据替换成该索引数据。同样的,在并行模式下,将列混合系数数据中的每一数据的高4位作为行索引,低4位作为列索引,在并行模式下,在第二乘法查找表中查找以行索引所在的行,列索引所在的列的系数索引数据,并将列混合系数数据中数据替换成该系数索引数据。
需要说明的是,基于第一乘法查找表对第n行移位数据中数据进行同步向量索引,得到第一索引数据,与基于第二乘法查找表对列混合系数数据中数据进行同步向量索引,得到系数索引数据,可以分配给不同的逻辑单元及其对应的线程,进而多个线程同步执行,从而减少运算时间,加快数据加密的速度。
步骤603、对第n行移位数据中的数据进行同步类型转换,得到第一转换数据,以及对列混合系数数据中的数据进行同步类型转换,得到系数转换数据。
在一些实施例中,同步类型转换可以理解为将数据矩阵转换成布尔(bool)类型的矩阵,这里,同步类型转换又称cast类型转换。这里,同步类型转换转换的规则是若第n行移位数据中的数据为0x00,则将该位置的数据转换成false;若第n行移位数据中的数据不为0x00,则将该位置的数据转换成true。
本申请实施例中,并行处理器可以将第n行移位数据以数据块的形式划分为多个组,以此为基础对获取每一组数据的类型进行并行转换。比如,以第n行移位数据为4×4的数据矩阵,以数据组为操作单位,将每一组数据分配给并行处理器的逻辑单元及其对应的线程,多个线程同步对第n行移位数据中的单个8bit的数据进行类型转换,得到第一转换数据。同样的,并行处理器可以将列混合系数数据以数据块的形式划分为多个组,以此为基础对获取每一组数据的类型进行并行转换。比如,以列混合系数数据为4×4的数据矩阵,以数据组为操作单位,将每一组数据分配给并行处理器的逻辑单元及其对应的线程,多个线程同步对列混合系数数据中的单个8bit的数据进行类型转换,得到系数转换数据;由上述可知,将对所有数据进行串行加密处理改进成并行加密处理的形式,在NPU/GPU中通过多算术逻辑单元多线程并行执行,有效发挥了NPU/GPU对于位数较少的批量计算任务执行效率高的优点;同时,采用NPU/GPU并行加密处理实现对大数据环境下动态数据流的加解密,充分利用了并行处理器的硬件算力,极大地减少了数据加密时间,提高了执行效率;同时,并行处理器功能相对专一,比通用CPU的安全性高,提高了加密数据的安全性。
需要说明的是,对第n行移位数据中的数据进行同步类型转换,得到第一转换数据,与对列混合系数数据中的数据进行同步类型转换,得到系数转换数据,可以分配给不同的逻辑单元及其对应的线程,进而多个线程同步执行,从而减少运算时间,加快数据加密的速度。
需要说明的是,步骤603和步骤604可以同步执行,以减少运算时间,加快数据加密的速度。
步骤604、基于第一索引数据、系数索引数据、第一转换数据和系数转换数据,得到第n轮列混合处理后的第n列混合数据,以得到子密文数据。
本申请实施例中,并行处理器对第n行移位数据中的数据进行同步类型转换,得到第一转换数据,以及对列混合系数数据中的数据进行同步类型转换,得到系数转换数据之后,基于第一索引数据、系数索引数据、第一转换数据和系数转换数据,得到第n轮列混合处理后的第n列混合数据,以得到子密文数据。
在一些实施例中,上述实施例提供的步骤604可以通过以下步骤701至步骤704来实现,如图13所示,为本申请实施例提供的数据加密方法的流程示意图,结合图12和图13所示的步骤进行以下说明,
步骤701、对第一索引数据中的数据和系数索引数据中的数据进行同步相加运算,得到第一运算数据,以及对第一转换数据和系数转换数据进行逻辑与运算,得到第二运算数据。
在一些实施例中,并行处理器可以将第一索引数据以数据块的形式划分为多个组,并将系数索引数据也以同样的数据块的形式划分为多个组,可以此为基础对每一组的数据进行并行运算。比如,以第一索引数据为4×4的数据矩阵,且系数索引数据为4×4的矩阵,在进行矩阵相加处理时,将以数据组为操作单位,将第一索引数据中的单个8bit的数据,与系数索引数据对应位置的单个8bit的系数索引数据分配给并行处理器的逻辑单元及其对应的线程,多个线程同步对单个8bit的数据,与对应位置的单个8bit的系数索引数据进行相加处理。故而,将存在16个并行处理的相加运算操作。然后,将分别相加运算后的数据进行组合,得到第一运算数据。
在一些实施例中,并行处理器可以将第一转换数据以数据块的形式划分为多个组,并将系数转换数据也以同样的数据块的形式划分为多个组,可以此为基础对每一组的数据进行并行运算。比如,以第一转换数据为4×4的数据矩阵,且系数转换数据为4×4的矩阵,在进行矩阵相加处理时,将以数据组为操作单位,将第一转换数据中的单个8bit的数据,与系数转换数据对应位置的单个8bit的系数转换数据分配给并行处理器的逻辑单元及其对应的线程,多个线程同步对单个8bit的数据,与对应位置的单个8bit的系数转换数据进行相加处理。故而,将存在16个并行处理的相加运算操作。然后,将分别相加运算后的数据进行组合,得到第一运算数据。
步骤702、若第一运算数据中存在大于预设数据阈值的部分数据,获得部分数据减去预设数据阈值的差值,并将第一运算数据中的部分数据替换成差值。
在一些实施例中,预设数据阈值为0xFF,预设数据阈值用于判断第一运算数据中是否存在溢出的数据。
在一些实施例中,部分数据可以是第一运算数据中的一个数据,也可以第一运算数据中的多个数据,对此,本申请不做具体限制。
在一些实施例中,并行处理器判断第一运算数据中是否存在大于预设数据阈值的部分数据,若存在,则确定第一运算数据中存在溢出的数据,此时,计算部分数据减去预设数据阈值,得到差值,并将第一运算数据中的部分数据替换成该差值。若不存在,则确定第一运算数据中不存在溢出的数据,无需对第一运算数据进行替换处理。
步骤703、获得第三乘法查找表,并在并列模式下,基于第三乘法查找表对替换后的第一运算数据中数据进行同步向量索引,得到第二索引数据。
在一些实施例中,并行处理器获得第三乘法查找表,由于替换后的第一运算数据中的每一数据为1个字节,将替换后的第一运算数据中的每一数据的高4位作为行索引,低4位作为列索引,在并行模式下,在第一乘法查找表中查找以行索引所在的行,列索引所在的列的索引数据,并将替换后的第一运算数据中数据替换成该索引数据,得到第二索引数据。
步骤704、确定第二运算数据中数据为特定数据对应的数据位置,并将第二索引数据中与数据位置对应的数据替换成目标数据,得到第n列混合数据。
在一些实施例中,特定数据为false的数据。
在一些实施例中,目标数据可以是预先定义的数据,如目标数据可以是0x00,也可以是其他十六进制的数据,对此不作具体限制。
在一些实施例中,并行处理器确定第二运算数据中数据为特定数据对应的数据位置,并将第二索引数据中与数据位置对应的数据替换成目标数据,得到第n列混合数据。示例性的,第二运算数据和第二索引数据均为4×4的数据矩阵,获得第二运算数据中数据为false对应的数据位置,并将第二索引数据中与数据位置对应的数据替换成0x00。
在一些实施例中,在经过N轮数据加密处理,得到第N轮密钥相加处理后的第N密钥运算数据的情况下,确定对待加密数据的多轮加密处理完成,并确定第N密钥运算数据为子密文数据。
本申请实施例中,并行处理器在对待加密数据经过N轮数据加密处理,得到第N轮密钥相加处理后的第N密钥运算数据的情况下,确定对待加密数据的多轮加密处理完成,并确定第N密钥运算数据为子密文数据。如此,将对所有数据进行串行加密处理改进成并行加密处理的形式,在NPU/GPU中通过多算术逻辑单元多线程并行执行,有效发挥了NPU/GPU对于位数较少的批量计算任务执行效率高的优点;同时,采用NPU/GPU并行加密处理实现对大数据环境下动态数据流的加解密,充分利用了并行处理器的硬件算力,极大地减少了数据加密时间,提高了执行效率;同时,并行处理器功能相对专一,比通用CPU的安全性高,提高了加密数据的安全性。
在一种可实现的应用场景中,由于列混合处理过程与逆列混合处理过程相同,参照图14所示,图14示出的是列混合/逆列混合神经网络算子的流程示意图,这里,对列混合/逆列混合神经网络算子进行说明,
第一步,对第四状态矩阵和GF(28)矩阵乘法查找表(LTABLE)进行gather向量索引,得到第一索引矩阵。
这里的第四状态矩阵指的是在循环迭代过程中的任一迭代过程中的行移位数据。这里,第一索引矩阵对应上述的第一索引数据。
第二步,对列混合系数矩阵/逆列混合系数矩阵和GF(28)矩阵乘法查找表(LTABLE)进行gather向量索引,得到系数索引矩阵。
这里,列混合系数矩阵(POLYNOMIAL)和逆列混合系数矩阵(INVPOLYNOMIAL)不同,在数据加密过程中,使用的是列混合系数矩阵;在数据解密过程中,使用的是逆列混合系数矩阵,系数索引矩阵对应上述的系数索引数据。
第三步,对第一索引矩阵和系数索引矩阵进行add矩阵加运算,得到第一运算矩阵。
这里,第一运算矩阵对应上述的第一运算数据。
第四步,对第一运算矩阵进行where条件选择,得到选择后的第一运算矩阵。
这里,where条件选择包括判断第一运算矩阵中的数据data是否大于预设数据阈值0xFF,若数据data大于0xFF,则data-0xFF,其它data不变。这里,选择后的第一运算矩阵对应上述的替换后的第一运算数据。
第五步,对选择后的第一运算矩阵和GF(28)矩阵乘法查找表(LTABLE)进行gather向量索引,得到第二索引矩阵。
这里,第二索引矩阵对应上述的第二索引数据。
第六步,对列混合系数矩阵/逆列混合系数矩阵进行cast类型转换,得到系数转换矩阵。
这里,cast类型转换可以理解为将字节数据矩阵转变为bool的类型,具体地,将字节数据为0x00的数据,转为false;将字节数据不为0x00的数据,转为true。示例性的,[0x11,0x00,0x07,0x00]==>[true,false,true,false]。
这里,系数转换矩阵对应上述的系数转换数据。
第七步,对第四状态矩阵进行cast类型转换,得到第一转换矩阵。
这里,第一转换矩阵对应上述的第一转换数据。
第八步,对第一转换矩阵和系数转换矩阵进行Logica_and矩阵逻辑与运算,得到第二运算矩阵。
这里,第二运算矩阵对应上述的第二运算数据。
第九步,基于第二运算矩阵,对第二索引矩阵进行Where条件选择,得到列混合矩阵。
这里,Where条件选择包括:若第二运算矩阵中对应位置的数据为false,则第二索引矩阵里面的对应位置的数据为0x00,第二运算矩阵中其他位置的数据为ture,则第二索引矩阵里面的对应位置的数据不变。这里,列混合矩阵对应上述的列混合数据。
在一种可实现的应用场景中,本申请实施例对数据加密算法的整体流程结合图5、图8、图10、图14以及图15进行说明,首先,并行处理器获得多媒体数据对应的多个待加密数据,以及初始密钥key[0]对应的N个子密钥key[1]至key[N];其次,并列处理器基于初始密钥key[0]以及N个子密钥key[1]至key[N],对每一待加密数据进行并行加密处理,具体地,基于初始密钥key[0]和待加密数据,通过密钥相加算子,得到初始密文;在第1轮数据加密过程中,通过字节置换算子对初始密文进行字节置换处理,得到第1置换数据;然后,通过行移位算子对第1置换数据进行行移位处理,得到第1行移位数据;进一步地,通过列混合算子对第1行移位数据进行列混合运算,得到第1列混合数据;最后,基于第1子密钥key[1],通过密钥相加算子,对第1列混合数据进行密钥运算处理,得到第1密钥运算数据;如此,对待加密数据的第一轮加密过程完成。
进一步地,将第1密钥运算数据作为新一轮的输入数据,在经过N-1轮加密处理后,得到第N-1密钥运算数据。
以第N-1密钥运算数据作为第N轮的输入数据,进行第N轮的数据加密过程,通过字节置换算子对第N-1密钥运算数据进行字节置换处理,得到第N置换数据;然后,通过行移位算子对第N置换数据进行行移位处理,得到第N行移位数据;进一步地,基于第N子密钥key[N],通过密钥相加算子,对第N行移位数据进行密钥运算处理,得到第N密钥运算数据,并确定第N密钥运算数据为待加密数据对应的子密文数据。最后,将所有待加密数据对应的子密文数据,按照待加密数据的分组顺序进行组合,得到目标密文数据。如此,对待加密数据的加密过程全部完成。
在一种可实现的应用场景中,本申请实施例对数据解密算法的整体流程结合图5、图8、图10、图14以及图16进行说明,首先,并行处理器获得目标密文数据对应的多个子密文数据,以及初始密钥key[0]对应的N个子密钥key[1]至key[N];其次,并列处理器基于初始密钥key[0]以及N个子密钥key[1]至key[N],对每一子密文数据进行并行解密处理,具体地,基于第N子密钥key[N]和子密文数据,通过密钥相加算子,得到初始明文;在第1轮数据解密过程中,通过逆字节置换算子对初始明文进行逆字节置换处理,得到第1逆置换数据;然后,通过逆行移位算子对第1逆置换数据进行逆行移位处理,得到第1逆行移位数据;进一步地,通过逆列混合算子对第1逆行移位数据进行逆列混合运算,得到第1逆列混合数据;最后,基于第N-1子密钥key[N-1],通过密钥相加算子,对第1逆列混合数据进行密钥运算处理,得到第1密钥运算数据;如此,对子密文数据的第一轮解密过程完成。
进一步地,将第1密钥运算数据作为新一轮的输入数据,在经过N-1轮解密处理后,得到第N-1密钥运算数据。
以第N-1密钥运算数据作为第N轮的输入数据,进行第N轮的数据解密过程,通过逆字节置换算子对第N-1密钥运算数据进行逆字节置换处理,得到第N逆置换数据;然后,通过逆行移位算子对第N逆置换数据进行逆行移位处理,得到第N逆行移位数据;进一步地,基于初始密钥key[0],通过密钥相加算子,对第N逆行移位数据进行密钥运算处理,得到第N密钥运算数据,并确定第N密钥运算数据为子密文数据对应的子明文数据(即待加密数据)。最后,将所有子密文数据对应的子明文数据,按照子密文数据的分组顺序进行组合,得到目标明文数据,即多个待加密数据。如此,对子密文数据的解密过程全部完成。
需要说明的是,本实施例中与其它实施例中相同步骤和相同内容的说明,可以参照其它实施例中的描述,此处不再赘述。
基于前述实施例,本申请提供一种数据加密装置,该数据加密装置可以用于实施图2、图4、图7、图9、图12~图13对应提供的一种数据加密方法,参见图17所示,该数据加密装置17包括:
获得模块1701,用于获得多媒体数据对应的多个待加密数据,以及初始密钥对应的扩展密钥;扩展密钥是对初始密钥进行多轮密钥扩展得到的多个子密钥;
处理模块1702,用于利用扩展密钥,分别对多个待加密数据中的每一待加密数据进行并行处理模式下的多轮加密处理,得到每一待加密数据对应的子密文数据;加密处理包括密钥相加处理、字节置换处理、行移位处理和列混合处理;
处理模块1702,还用于按照待加密数据的分组顺序,对待加密数据对应的子密文数据进行组合,得到目标密文数据。
在本申请其他实施例中,处理模块1702,还用于从扩展密钥中选择与第n轮加密处理对应的第n子密钥;其中,1≤n≤N,且n为整数,N为多轮加密处理的总轮次数;获得对待加密数据进行第n轮加密处理后的第n中间加密数据;在并行处理模式下,将第n中间加密数据中的数据和第n子密钥对应位置的密钥,进行同步异或处理,得到第n轮密钥相加处理后的第n密钥运算数据,以得到子密文数据。
在本申请其他实施例中,处理模块1702,还用于在利用扩展密钥对待加密数据进行第n-1轮密钥相加处理,得到第n-1密钥运算数据的情况下,获得第一置换数据和第n-1密钥运算数据中数据对应的置换参数;其中,1≤n≤N,且n为整数,N为多轮加密处理的总轮次数;在并列模式下,将第n-1密钥运算数据中所有数据,同步替换成第一置换数据中与置换参数对应的目标参数,得到第n轮字节置换处理后的第n置换数据,以得到子密文数据。
在本申请其他实施例中,处理模块1702,还用于在利用扩展密钥对待加密数据进行第n轮字节置换处理,得到第n置换数据的情况下,获得第n置换数据中数据对应的行移位参数;其中,1≤n≤N,且n为整数,N为多轮加密处理的总轮次数;在并行处理模式下,根据行移位参数,对第n置换数据中数据进行行移位处理,得到第n轮行移位处理后的第n行移位数据,以得到子密文数据。
在本申请其他实施例中,处理模块1702,还用于在利用扩展密钥对待加密数据进行第n轮行移位处理,得到第n行移位数据的情况下,获得第一乘法查找表和第二乘法查找表;其中,1≤n≤N-1,且n为整数,N为多轮加密处理的总轮次数,第一乘法查找表和第二乘法查找表不同;在并列模式下,基于第一乘法查找表对第n行移位数据中数据进行同步向量索引,得到第一索引数据,以及基于第二乘法查找表对列混合系数数据中数据进行同步向量索引,得到系数索引数据;对第n行移位数据中的数据进行同步类型转换,得到第一转换数据,以及对列混合系数数据中的数据进行同步类型转换,得到系数转换数据;基于第一索引数据、系数索引数据、第一转换数据和系数转换数据,得到第n轮列混合处理后的第n列混合数据,以得到子密文数据。
在本申请其他实施例中,处理模块1702,还用于对第一索引数据中的数据和系数索引数据中的数据进行同步相加运算,得到第一运算数据,以及对第一转换数据和系数转换数据进行逻辑与运算,得到第二运算数据;若第一运算数据中存在大于预设数据阈值的部分数据,获得部分数据减去预设数据阈值的差值,并将第一运算数据中的部分数据替换成差值;获得第三乘法查找表,并在并列模式下,基于第三乘法查找表对替换后的第一运算数据中数据进行同步向量索引,得到第二索引数据;确定第二运算数据中数据为特定数据对应的数据位置,并将第二索引数据中与数据位置对应的数据替换成目标数据,得到第n列混合数据。
在本申请其他实施例中,处理模块1702,还用于在得到第N轮密钥相加处理后的第N密钥运算数据的情况下,确定对待加密数据的多轮加密处理完成,并确定第N密钥运算数据为子密文数据。
基于前述实施例,本申请提供一种电子设备,该电子设备可以用于实施图2、图4、图7、图9、图12~图13对应提供的一种数据加密方法,参见图18所示,该电子设备18(图18中的电子设备18对应图17中的数据加密装置17)包括:存储器1801和并行处理器1802,其中;并行处理器1802用于执行存储器1801中存储的数据加密程序,电子设备18通过并行处理器1802以实现以下步骤:
获得多媒体数据对应的多个待加密数据,以及初始密钥对应的扩展密钥;扩展密钥是对初始密钥进行多轮密钥扩展得到的多个子密钥;
利用扩展密钥,分别对多个待加密数据中的每一待加密数据进行并行处理模式下的多轮加密处理,得到每一待加密数据对应的子密文数据;加密处理包括密钥相加处理、字节置换处理、行移位处理和列混合处理;
按照待加密数据的分组顺序,对待加密数据对应的子密文数据进行组合,得到目标密文数据。
在本申请其他实施例中,并行处理器1802用于执行存储器1801中存储的数据加密程序,以实现以下步骤:
从扩展密钥中选择与第n轮加密处理对应的第n子密钥;其中,1≤n≤N,且n为整数,N为多轮加密处理的总轮次数;获得对待加密数据进行第n轮加密处理后的第n中间加密数据;在并行处理模式下,将第n中间加密数据中的数据和第n子密钥对应位置的密钥,进行同步异或处理,得到第n轮密钥相加处理后的第n密钥运算数据,以得到子密文数据。
在本申请其他实施例中,并行处理器1802用于执行存储器1801中存储的数据加密程序,以实现以下步骤:
在利用扩展密钥对待加密数据进行第n-1轮密钥相加处理,得到第n-1密钥运算数据的情况下,获得第一置换数据和第n-1密钥运算数据中数据对应的置换参数;其中,1≤n≤N,且n为整数,N为多轮加密处理的总轮次数;在并列模式下,将第n-1密钥运算数据中所有数据,同步替换成第一置换数据中与置换参数对应的目标参数,得到第n轮字节置换处理后的第n置换数据,以得到子密文数据。
在本申请其他实施例中,并行处理器1802用于执行存储器1801中存储的数据加密程序,以实现以下步骤:
在利用扩展密钥对待加密数据进行第n轮字节置换处理,得到第n置换数据的情况下,获得第n置换数据中数据对应的行移位参数;其中,1≤n≤N,且n为整数,N为多轮加密处理的总轮次数;在并行处理模式下,根据行移位参数,对第n置换数据中数据进行行移位处理,得到第n轮行移位处理后的第n行移位数据,以得到子密文数据。
在本申请其他实施例中,并行处理器1802用于执行存储器1801中存储的数据加密程序,以实现以下步骤:
在利用扩展密钥对待加密数据进行第n轮行移位处理,得到第n行移位数据的情况下,获得第一乘法查找表和第二乘法查找表;其中,1≤n≤N-1,且n为整数,N为多轮加密处理的总轮次数,第一乘法查找表和第二乘法查找表不同;在并列模式下,基于第一乘法查找表对第n行移位数据中数据进行同步向量索引,得到第一索引数据,以及基于第二乘法查找表对列混合系数数据中数据进行同步向量索引,得到系数索引数据;对第n行移位数据中的数据进行同步类型转换,得到第一转换数据,以及对列混合系数数据中的数据进行同步类型转换,得到系数转换数据;基于第一索引数据、系数索引数据、第一转换数据和系数转换数据,得到第n轮列混合处理后的第n列混合数据,以得到子密文数据。
在本申请其他实施例中,并行处理器1802用于执行存储器1801中存储的数据加密程序,以实现以下步骤:
对第一索引数据中的数据和系数索引数据中的数据进行同步相加运算,得到第一运算数据,以及对第一转换数据和系数转换数据进行逻辑与运算,得到第二运算数据;若第一运算数据中存在大于预设数据阈值的部分数据,获得部分数据减去预设数据阈值的差值,并将第一运算数据中的部分数据替换成差值;获得第三乘法查找表,并在并列模式下,基于第三乘法查找表对替换后的第一运算数据中数据进行同步向量索引,得到第二索引数据;确定第二运算数据中数据为特定数据对应的数据位置,并将第二索引数据中与数据位置对应的数据替换成目标数据,得到第n列混合数据。
在本申请其他实施例中,并行处理器1802用于执行存储器1801中存储的数据加密程序,以实现以下步骤:
在得到第N轮密钥相加处理后的第N密钥运算数据的情况下,确定对待加密数据的多轮加密处理完成,并确定第N密钥运算数据为子密文数据。
本申请提供一种存储介质,该存储介质存储有一个或者多个程序,该一个或者多个程序可被一个或者多个处理器执行,通过获得多媒体数据对应的多个待加密数据,以及初始密钥对应的扩展密钥;扩展密钥是对初始密钥进行多轮密钥扩展得到的多个子密钥;利用扩展密钥,分别对多个待加密数据中的每一待加密数据进行并行处理模式下的多轮加密处理,得到每一待加密数据对应的子密文数据;加密处理包括密钥相加处理、字节置换处理、行移位处理和列混合处理;按照待加密数据的分组顺序,对待加密数据对应的子密文数据进行组合,得到目标密文数据;也就是说,本申请利用初始密钥和扩展密钥,对每一待加密数据进行多轮的并行加密处理,达到大数据的并行处理,充分利用了并行处理器的硬件算力,极大地减少了数据加密时间,提高了执行效率;同时,并行处理器功能相对专一,比通用CPU的安全性高,提高了加密数据的安全性;最后多个子密文数据进行重新组合得到目标密文数据,能够在数据加密过程中实现高效加密,同时,利用并行处理器进行处理,释放了CPU的内存资源,减小了CPU的运算压力。
需要说明的是,上述计算机存储介质/存储器可以是只读存储器(Read OnlyMemory,ROM)、可编程只读存储器(Programmable Read-Only Memory,PROM)、可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,EPROM)、电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性随机存取存储器(Ferromagnetic Random Access Memory,FRAM)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(Compact Disc Read-Only Memory,CD-ROM)等存储器;也可以是包括上述存储器之一或任意组合的各种终端,如移动电话、计算机、平板设备、个人数字助理等。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本申请各实施例中的各功能单元可以全部集成在一个处理模块中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。
本申请所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种数据加密方法,其特征在于,所述方法包括:
获得多媒体数据对应的多个待加密数据,以及初始密钥对应的扩展密钥;所述扩展密钥是对所述初始密钥进行多轮密钥扩展得到的多个子密钥;
利用所述扩展密钥,分别对所述多个待加密数据中的每一待加密数据进行并行处理模式下的多轮加密处理,得到所述每一待加密数据对应的子密文数据;所述加密处理包括密钥相加处理、字节置换处理、行移位处理和列混合处理;
按照所述待加密数据的分组顺序,对所述待加密数据对应的所述子密文数据进行组合,得到目标密文数据。
2.根据权利要求1所述的数据加密方法,其特征在于,所述利用所述扩展密钥,分别对所述多个待加密数据中的每一待加密数据进行并行处理模式下的多轮加密处理,得到所述每一待加密数据对应的子密文数据,包括:
从所述扩展密钥中选择与第n轮加密处理对应的第n子密钥;其中,1≤n≤N,且n为整数,N为多轮加密处理的总轮次数;
获得对所述待加密数据进行第n轮加密处理后的第n中间加密数据;
在所述并行处理模式下,将所述第n中间加密数据中的数据和所述第n子密钥对应位置的密钥,进行同步异或处理,得到第n轮密钥相加处理后的第n密钥运算数据,以得到所述子密文数据。
3.根据权利要求1所述的数据加密方法,其特征在于,所述利用所述扩展密钥,分别对所述多个待加密数据中的每一待加密数据进行并行处理模式下的多轮加密处理,得到所述每一待加密数据对应的子密文数据,包括:
在利用所述扩展密钥对所述待加密数据进行第n-1轮密钥相加处理,得到第n-1密钥运算数据的情况下,获得第一置换数据和所述第n-1密钥运算数据中数据对应的置换参数;其中,1≤n≤N,且n为整数,N为多轮加密处理的总轮次数;
在所述并列模式下,将所述第n-1密钥运算数据中所有数据,同步替换成所述第一置换数据中与所述置换参数对应的目标参数,得到第n轮字节置换处理后的第n置换数据,以得到所述子密文数据。
4.根据权利要求1所述的数据加密方法,其特征在于,所述利用所述扩展密钥,分别对所述多个待加密数据中的每一待加密数据进行并行处理模式下的多轮加密处理,得到所述每一待加密数据对应的子密文数据,包括:
在利用所述扩展密钥对所述待加密数据进行第n轮字节置换处理,得到第n置换数据的情况下,获得所述第n置换数据中数据对应的行移位参数;其中,1≤n≤N,且n为整数,N为多轮加密处理的总轮次数;
在所述并行处理模式下,根据所述行移位参数,对所述第n置换数据中数据进行行移位处理,得到第n轮行移位处理后的第n行移位数据,以得到所述子密文数据。
5.根据权利要求1所述的数据加密方法,其特征在于,所述利用所述扩展密钥,分别对所述多个待加密数据中的每一待加密数据进行并行处理模式下的多轮加密处理,得到所述每一待加密数据对应的子密文数据,包括:
在利用所述扩展密钥对所述待加密数据进行第n轮行移位处理,得到第n行移位数据的情况下,获得第一乘法查找表和第二乘法查找表;其中,1≤n≤N-1,且n为整数,N为多轮加密处理的总轮次数,所述第一乘法查找表和所述第二乘法查找表不同;
在所述并列模式下,基于所述第一乘法查找表对所述第n行移位数据中数据进行同步向量索引,得到第一索引数据,以及基于所述第二乘法查找表对所述列混合系数数据中数据进行同步向量索引,得到系数索引数据;
对所述第n行移位数据中的数据进行同步类型转换,得到第一转换数据,以及对所述列混合系数数据中的数据进行同步类型转换,得到系数转换数据;
基于第一索引数据、所述系数索引数据、所述第一转换数据和所述系数转换数据,得到第n轮列混合处理后的第n列混合数据,以得到所述子密文数据。
6.根据权利要求5所述的数据加密方法,其特征在于,所述基于第一索引数据、所述系数索引数据、所述第一转换数据和所述系数转换数据,得到第n轮列混合处理后的第n列混合数据,包括:
对所述第一索引数据中的数据和所述系数索引数据中的数据进行同步相加运算,得到第一运算数据,以及对所述第一转换数据和所述系数转换数据进行逻辑与运算,得到第二运算数据;
若所述第一运算数据中存在大于预设数据阈值的部分数据,获得所述部分数据减去所述预设数据阈值的差值,并将所述第一运算数据中的所述部分数据替换成所述差值;
获得第三乘法查找表,并在所述并列模式下,基于所述第三乘法查找表对替换后的第一运算数据中数据进行同步向量索引,得到第二索引数据;
确定所述第二运算数据中数据为特定数据对应的数据位置,并将所述第二索引数据中与所述数据位置对应的数据替换成目标数据,得到所述第n列混合数据。
7.根据权利要求1至6任一项所述的数据加密方法,其特征在于,所述方法还包括:
在得到第N轮密钥相加处理后的第N密钥运算数据的情况下,确定对所述待加密数据的多轮加密处理完成,并确定所述第N密钥运算数据为所述子密文数据。
8.一种数据加密装置,其特征在于,所述装置包括:
获得模块,用于获得多媒体数据对应的多个待加密数据,以及初始密钥对应的扩展密钥;所述扩展密钥是对所述初始密钥进行多轮密钥扩展得到的多个子密钥;
处理模块,用于利用所述扩展密钥,分别对所述多个待加密数据中的每一待加密数据进行并行处理模式下的多轮加密处理,得到所述每一待加密数据对应的子密文数据;所述加密处理包括密钥相加处理、字节置换处理、行移位处理和列混合处理;
所述处理模块,还用于按照所述待加密数据的分组顺序,对所述待加密数据对应的所述子密文数据进行组合,得到目标密文数据。
9.一种电子设备,其特征在于,所述电子设备包括:
存储器,用于存储可执行指令;
并行处理器,用于执行所述存储器中存储的可执行指令时,以实现权利要求1至7任一项所述的数据加密方法。
10.一种计算机存储介质,其特征在于,所述计算机存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1至7中任一项所述的数据加密方法。
CN202210998840.6A 2022-08-19 2022-08-19 一种数据加密方法、装置、电子设备和存储介质 Pending CN116961958A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210998840.6A CN116961958A (zh) 2022-08-19 2022-08-19 一种数据加密方法、装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210998840.6A CN116961958A (zh) 2022-08-19 2022-08-19 一种数据加密方法、装置、电子设备和存储介质

Publications (1)

Publication Number Publication Date
CN116961958A true CN116961958A (zh) 2023-10-27

Family

ID=88455314

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210998840.6A Pending CN116961958A (zh) 2022-08-19 2022-08-19 一种数据加密方法、装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN116961958A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117499040A (zh) * 2023-12-28 2024-02-02 苏州元脑智能科技有限公司 视频流加、解密装置、方法、设备及介质
CN117610060A (zh) * 2024-01-19 2024-02-27 成都理工大学 一种基于多核并行的多媒体文件混合加解密方法及系统

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117499040A (zh) * 2023-12-28 2024-02-02 苏州元脑智能科技有限公司 视频流加、解密装置、方法、设备及介质
CN117499040B (zh) * 2023-12-28 2024-03-19 苏州元脑智能科技有限公司 视频流加、解密装置、方法、设备及介质
CN117610060A (zh) * 2024-01-19 2024-02-27 成都理工大学 一种基于多核并行的多媒体文件混合加解密方法及系统
CN117610060B (zh) * 2024-01-19 2024-03-29 成都理工大学 一种基于多核并行的多媒体文件混合加解密方法及系统

Similar Documents

Publication Publication Date Title
US7760870B2 (en) Block cipher apparatus using auxiliary transformation
US7995749B2 (en) Cryptographic system configured for extending a repetition period of a random sequence
TWI402675B (zh) 低等待時間的區塊密碼術
CN116961958A (zh) 一种数据加密方法、装置、电子设备和存储介质
Sudeepa et al. A new approach for video steganography based on randomization and parallelization
CN110912674B (zh) 图像加密方法、装置、电子设备及可读存储介质
CN112714112B (zh) 一种用于服务器数据存储的数据加解密方法、存储介质和终端设备
Chen et al. Image encryption using progressive cellular automata substitution and SCAN
JP3769804B2 (ja) 解読化方法および電子機器
Abdelrahman et al. Analysis on the aes implementation with various granularities on different gpu architectures
CN116684071A (zh) 一种基于布尔电路的白盒保护方案的加速实现方法及系统
Ivanov et al. Nonlinear transformations for the construction of the primitives of symmetric cryptoraphy
US7142673B1 (en) Method for the cryptographic conversion of L-bit input blocks of digital data into L-bit output blocks
CN111342951B (zh) 流密码系统的生成方法、装置及终端设备
CN114254372B (zh) 数据加密处理方法、系统及电子设备
Xiao et al. High performance implementation of aria encryption algorithm on graphics processing units
Ameer et al. ENCRYPTION THREE-DIMENSION IMAGE USING TINY ALGORITHM
CN118659872A (zh) 一种加密算法的白盒化方法、装置、存储介质及电子设备
WO2021201780A1 (en) Method and system for white-box implementation of a stream cipher
CN116961960A (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