CN105490802A - 基于gpu的改进sm4并行加解密通信方法 - Google Patents

基于gpu的改进sm4并行加解密通信方法 Download PDF

Info

Publication number
CN105490802A
CN105490802A CN201510844393.9A CN201510844393A CN105490802A CN 105490802 A CN105490802 A CN 105490802A CN 201510844393 A CN201510844393 A CN 201510844393A CN 105490802 A CN105490802 A CN 105490802A
Authority
CN
China
Prior art keywords
encryption
gpu
random number
circleplus
data
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
CN201510844393.9A
Other languages
English (en)
Other versions
CN105490802B (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.)
Guilin Langang Technology Co ltd
Original Assignee
Guilin University of Electronic Technology
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 Guilin University of Electronic Technology filed Critical Guilin University of Electronic Technology
Priority to CN201510844393.9A priority Critical patent/CN105490802B/zh
Publication of CN105490802A publication Critical patent/CN105490802A/zh
Application granted granted Critical
Publication of CN105490802B publication Critical patent/CN105490802B/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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种基于GPU的改进SM4并行加解密通信方法,该加解密方法包括:使用AES-128密钥扩展算法生成SM4加密算法所需的扩展子密钥;改进SM4加密算法中的轮函数;利用GPU的并行计算能力,将改进SM4加密算法改进成并行加密的形式。采用本发明加解密通信方法,能够有效的提高安全性和实现的速度,能够对数据进行实时并行加密,提高了加密速度,从而保证数据流正常的传输,降低处理延迟。

Description

基于GPU的改进SM4并行加解密通信方法
技术领域
本发明信息安全技术领域,具体涉及一种基于GPU的改进SM4并行加解密通信方法。
背景技术
随着物联网的发展,越来越多的企业需要将生产及运营的设备接入网络并对其进行远程实时监控,大量的设备监控数据往往需要通过互联网传输到远处的监控中心。但是,由于互联网的开放性,一旦监控数据被截获并被加以用进行破坏活动,其带来的损失是非常严重的。因而,对传输的监控信息进行加密,同时又保证监控数据传输的实时性是非常重要的。
SM4(原SMS4)是国家密码局公布的分组密码算法,其分组长度和密钥长度均为128bit。加解密算法都采用32轮非线性迭代结构。算法的加密变换主要包含异或运算和合成变换T(·)运算。其中,T(·)是由非线性变换τ和线性变换L复合而成,即T(·)=L(τ(·))。非线性变换τ由4个并行的S盒变换构成,S盒是固定8比特输入8比特输出的变换;线性变换L主要包含异或运算和左移运算。解密算法与加密算法的结构相同,只是轮密钥的使用顺序相反,即解密算法使用的轮密钥是加密算法使用的轮密钥的逆序。加密算法中用到的轮密钥是由加密密钥MK通过轮密钥扩展算法生成。该扩展算法基本结构与加解密算法相同,同样包含异或运算和合成置换运算。只是其中的线性变换的形式略有不同。由于SM4算法在计算过程中增加非线性变换,理论上具有较高的安全性。
GPU(GraphicsProcessingUnit,图形处理单元)可以理解为可编程的显卡,最早在计算机中用于图形图像的处理,最近几年GPU还应用到大规模的并行计算领域。由于单块GPU通常具有上百的核心运算单元,相比同价位的CPU而言,GPU所拥有的数百倍于CPU的核心运算单元的数量。GPU非常适合于执行可高度并行化的密集型计算任务,使用GPU执行这些任务,往往能提升数倍的性能。
虽然利用SM4加密算法可以增加数据传输的安全性。但是,由于SM4加密算法的公开性,轮密钥生成算法与加密算法结构类似,都导致其安全性降低。因此,如何提高数据在用SM4加密时的安全性成为一个亟待解决的问题。另外,在数据量较大的情况下,使用SM4串行加密的耗时成为了实时传输的瓶颈。如何利用GPU编程提高SM4算法的加密速度也远程监控数据传输过程中是需要解决的问题。
发明内容
本发明针对SM4串行加密算法在面向监控数据动态采集传输过程中所存在的安全性和实时性的问题,提供一种基于GPU的改进SM4并行加解密通信方法。
一种基于GPU的改进SM4并行加解密通信方法,包括发送方的加密过程和接收方的解密过程,其中
所述发送方的加密过程为:
步骤1、利用AES-128密钥扩展法生成SM4加密法所需的32个扩展密钥;
步骤2、随机生成1个32位的随机数G;
步骤3、利用GPU进行并行SM4加密,即将明文数据分成每块128比特的数据分组,一个数据分组的加密任务分配给一个的GPU线程;每个GPU线程再进行32轮循环迭代加密处理,在每轮循环迭代加密处理时,根据迭代的轮数确定随机数G的对应位置,并根据该位置上的随机数G的数值选取加密轮函数;
步骤4、将各个GPU线程加密输出的数据按分块的前后顺序进行组合后形成密文数据;
步骤5、密文数据从GPU的全局设备存储器内传到内存中,整个加密过程完成;
所述接收方的解密过程为:
步骤6、利用GPU进行并行SM4解密,即将密文数据分成每块128比特的数据分组,每个GPU线程解密一个数据分组;每个GPU线程再进行32轮循环迭代解密处理,在进行32轮循环迭代解密处理时,根据随机数G对应位置上的取值,动态选择解密的轮函数;
步骤7、将各个GPU线程解密输出的数据按分块的前后顺序进行组合后获得明文数据;
步骤8、明文数据从GPU的全局设备存储器内传到内存中,整个解密过程完成。
步骤1中,扩展密钥只需要产生一次,该扩展密钥在各个GPU线程加密过程中循环使用。
步骤1中所述密钥扩展的具体过程为:
步骤1.1、将128bit的初始密钥按照列顺序组成4个32bit的字,分别记为w0-w3
步骤1.2、在初始密钥的基础上依次新增31个字wj,每一个新增的字wj的值依赖于wj-1和wj-4,即:
当j除以4的余数不为0时,wj=wj-4⊕wj-1
当j除以4的余数为0时,wj=wj-4⊕g(wj-1);
步骤1.3、利用上述产生的字生成SM4加密算法中用到的扩展密钥,即扩展密钥rki=wj+4
上述j=4,5,6……35;i=0,1,…,31;g()是一个复杂函数。
步骤1.2中,复杂函数g()的计算过程如下:
步骤1.2.1、将字wj-1以字节为单位,排列表示成[B0,B1,B2,B3]的形式,并将[B0,B1,B2,B3]循环左移一个字节,变换成[B1,B2,B3,B0];
步骤1.2.2、利用AES的S盒对输入字的每个字节进行字节替换,变为[B’1,B’2,B’3,B’0];
步骤1.2.3、将产生的结果[B’1,B’2,B’3,B’0]与轮常数进行异或输出;
上述j=4,5,6……35。
步骤3中,根据迭代的轮数确定随机数G对应位置,该随机数G的每一位作为每一轮迭代时动态选择的依据,即:
当随机数G的对应的位置的数值为0时,选择使用:Xi+4=F(Xi,Xi+1,Xi+2,Xi+3,rki)=Xi⊕T(Xi+1⊕Xi+2⊕Xi+3⊕rki)作为轮函数;
当随机数G的对应的位置的数值为1时,选择使用:Xi+4=F(Xi,Xi+1,Xi+2,Xi+3,rki)=Xi⊕T(Xi+1+Xi+2+Xi+0⊕rki)作为轮函数;
其中,Xi-Xi+3表示第i轮输入的明文数据,F()表示轮函数,T()表示合成变换函数,rki表示第i轮使用的扩展密钥,i=0,1,…,31。
步骤3中,每个GPU线程进行加密处理的过程为:
步骤3.1、根据本次迭代次数,确定随机数G的对应位置,并根据该位置上的明文数据的数值选取轮函数;即当随机数G的对应的位置的明文数据的值为0时,计算Xi+1⊕Xi+2⊕Xi+3⊕rki;当随机数G的对应的位置的明文数据的值为1时,计算Xi+1+Xi+2+Xi+3⊕rki;并将计算结果按照字节顺序排列保存为数据块A=(a0,a1,a2,a3);
步骤3.2、利用AES的S盒对上一步的数据块A=(a0,a1,a2,a3)进行字节替换,输出按字节顺序保存为数据块B=(b0,b1,b2,b3),即(b0,b1,b2,b3)=τ(A)=(Sbox(a0),Sbox(a1),Sbox(a2),Sbox(a3));
步骤3.3、将上一步的B进行线性变换,输出保存为数据块C,则:C=L(B)=(B<<<0)⊕(B<<<2)⊕(B<<<10)⊕(B<<<18)⊕(B<<<24)
步骤3.4、将上一步生成的数据块C和本次的输入明文数据进行异或运算,计算Xi+4=Xi⊕C;Xi+1,Xi+2,Xi+3,Xi+4作为下一次轮循环的输入;
步骤3.5、重复上述3.3.1~3.3.4的操作,将上一轮移位后数据作为新一轮输入,重复32次;经过32循环迭代加密后,输出密文数据为(Y0,Y1,Y2,Y3)=(X35,X34,X33,X32);
式中,Xi-Xi+3表示第i轮输入的明文数据,rki表示第i轮使用的扩展密钥,τ()表示置换变换函数,Sbox()为S盒变换函数,L()表示线性变换函数。
步骤6中,进行并行SM4解密时,根据迭代的轮数确定随机数G对应位置,该随机数G的每一位作为每一轮迭代时动态选择的依据,即:
当随机数G的对应的位置的数值为0时,选择使用:Xi+4=F(Xi,Xi+1,Xi+2,Xi+3,rk31-i)=Xi⊕T(Xi+1⊕Xi+2⊕Xi+3⊕rk31-i)作为轮函数;
当随机数G的对应的位置的数值为1时,选择使用:Xi+4=F(Xi,Xi+1,Xi+2,Xi+3,rk31-i)=Xi⊕T(Xi+1+Xi+2+Xi+3⊕rk31-i)作为轮函数;
其中,Xi-Xi+3表示第i轮输入的密文数据,F()表示轮函数,T()表示合成变换函数,rk31-i表示第i轮使用的扩展密钥,i=0,1,…,31。
与现有技术相比,本发明的改进SM4算法比原算法主要改进之处有以下几点:
(1)利用AES-128密钥扩展算法生成SM4加密算法需要的32个轮密钥;新的密钥扩展算法,具有透明、简洁、实现速度快等优势。
(2)替换SM4加密算法中的S盒,使用高强度的AES-128的S盒;有助于抵抗传统的线性密码分析、差分密码分析、代数攻击及最新的中间相遇攻击等,提高了加密算法的安全性。
(3)将加解密函数中32迭代所用轮函数由“固定函数”改为“动态选择”,随机数G的每一位作为每一轮迭代时动态选择的依据;
(4)在SM4加密时采用电码本模式(ECB),具有简单实用、便于并行计算和误差不会被传递等优点;
(5)结合AES-128密钥扩展算法与SM4加密算法的新算法,其实现速度更快、安全性得到提高。
(6)利用GPU的并行计算能力,将串行SM4加密算法改进成并行加密的形式,对实时数据进行并行加密;采用GPU并行加密方案实现对大数据环境下动态数据流的加解密,提高了加密速度,从而保证数据流正常的传输,降低处理延迟。
附图说明
图1为基于GPU的改进SM4并行加密通信系统加解密示意图;
图2为基于GPU的改进SM4并行加密方法流程图;
图3为AES密钥扩展算法示意图;
图4为g()函数示意图;
图5为基于动态选择的SM4轮函数流程图。
具体实施方式
一种基于GPU的改进SM4并行加密通信系统,如图1所示,系统包括位于发送方的并行加密模块与位于接收方的并行解密模块。其中加密模块负责将发送方提交的动态明文数据流,利用基于GPU的改进SM4并行加密算法进行加密;解密模块负责将接收方接收的密文数据,利用基于GPU的改进SM4并行解密算法进行解密。
基于GPU的改进SM4并行加解密通信方法,包括发送方的加密过程和接收方的解密过程。
所述发送方的加密过程,如图2所示,包括如下步骤:
步骤1、利用基于AES-128密钥扩展算法进行SM4轮密钥扩展,如图3所示。扩展密钥只需要产生一次,可在整个加密过程中循环使用。在CPU上执行一次密钥扩展,具体过程如下:
步骤1.1、将16字节(128bit)的初始密钥按照列顺序组成4个32bit的字,分别记为w0-w3
步骤1.2、在初始密钥之后依次新增31个字wj,每一个新增的字wj的值依赖于wj-1和wj-4,其中j取值依次从4递增到35,一共31个。当j除以4余数不为0时,wj=wj-4⊕wj-1;当j除以4余数为0时,wj=wj-4⊕g(wj-1)。其中g()是一个复杂函数,输入的参数为前一个新增的字wj-1。如图4所示,计算过程如下:
步骤1.2.1、将传入的一个字wj-1按照字节为单位,排列表示成[B0,B1,B2,B3]的形式,并将[B0,B1,B2,B3]循环左移一个字节,变换成[B1,B2,B3,B0]。
步骤1.2.2、利用AES的S盒对输入字的每个字节进行字节替换,变为[B’1,B’2,B’3,B’0]。
步骤1.2.3、将产生的结果[B’1,B’2,B’3,B’0]与轮常数RCj进行异或输出。
步骤1.3、利用上述产生的字生成SM4加密算法中用到的扩展密钥,即扩展密钥rki=wj+4,i=0,1,…,31。
步骤2、随机生成1个32位的随机数G。申请GPU全局存储空间,将明文数据、上述产生的扩展密钥、随机数G、和S盒从内存传到GPU全局存储空间内。
步骤3、利用GPU进行并行SM4加密。将输入数据分成每块128比特的数据分组,每个GPU线程块负责加密一个数据分组。通过调用核函数cryptKernel<<<dmgrid,dmblock>>>(d_sk,d_input,d_output)对分组的加密处理,由多个块并行执行。其中,dmgrid表示网格的三维数据,dmblock表示块的三维结构,d_sk表示扩展密钥,d_input表示明文,d_output表示加密后的密文。每一个GPU线程的加密过程如下:
步骤3.1、计算该线程的id号。
步骤3.2、通过该线程的id号获取该线程要处理的数据。
步骤3.3、利用改进后的SM4轮函数加密算法,对数据进行32轮循环迭代加密处理,改进后算法的轮函数流程图如图5所示,具体过程如下:
步骤3.3.1、根据本次迭代次数,确定随机数G相应位上的数值:当随机数G的相对应的位置的值为0时,计算Xi+1⊕Xi+2⊕Xi+3⊕rki;当随机数G的相对应的位置的值为1时,计算Xi+1+Xi+3+Xi+3⊕rki,将计算结果按照字节顺序排列保存为
步骤3.3.2、利用AES的S盒对上一步的进行字节替换,输出按字节顺序排列,保存为即(b0,b1,b2,b3)=τ(A)=(Sbox(a0),Sbox(a1),Sbox(a2),Sbox(a3))
步骤3.3.3、将上一步的进行线性变换,输出保存为 C &Element; ( Z 2 8 ) 4 , 则:
C=L(B)=(B<<<0)⊕(B<<<2)⊕(B<<<10)⊕(B<<<18)⊕(B<<<24)
步骤3.3.4、将上一步生成的和本次的输入Xi进行异或运算,计算Xi+4=Xi⊕C。Xi+1,Xi+2,Xi+3,Xi+4作为下一次轮循环的输入。
步骤3.3.5、重复上述步骤3.3.1~步骤3.3.4操作,将上一轮移位后数据作为新一轮输入,重复32次。经过32轮后,输出密文数据为(Y0,Y1,Y2,Y3)=(X35,X34,X33,X32)
步骤4、加密完成后,输出数据的结果将再次被写到全局设备存储器内,随后,CPU程序将密文数据从GPU的全局设备存储器内取回,整个加密过程完成。
步骤5、发送方发送加密后的密文数据至接收方。
所述接收方的解密过程,包括如下步骤:
步骤6、接收方接收密文数据并存储到接收缓冲区中。
步骤7、将接收到的密文数据、扩展密钥、随机数G、和S盒从主存传到GPU全局存储空间内。
步骤8、同样加密过程一样,利用基于GPU的动态选择的SM4并行算法对密文数据进行解密。将密文数据分成每块128比特的数据分组,每个GPU线程负责加密一个数据分组。每个线程采用基于SM4并行算法解密一个数据分组。GPU线程在进行32轮循环迭代加密处理时,根据随机数G对应位置上的取值,动态选择解密的轮函数。当随机数G的相对应的位置的值为0时,选择使用Xi+4=F(Xi,Xi+1,Xi+2,Xi+3,rk31-i)=Xi⊕T(Xi+1⊕Xi+2⊕Xi+3⊕rk31-i)轮函数;随机数G的相对应的位置的值为1时,使用Xi+4=F(Xi,Xi+1,Xi+2,Xi+3,rk31-i)=Xi⊕T(Xi+1+Xi+2+Xi+3⊕rk31-i)轮函数。
步骤9、将各个线程解密输出的明文数据从GPU的全局设备存储器内传到内存中,整个解密过程完成。

Claims (7)

1.基于GPU的改进SM4并行加解密通信方法,包括发送方的加密过程和接收方的解密过程,其特征是,
所述发送方的加密过程为:
步骤1、利用AES-128密钥扩展法生成SM4加密法所需的32个扩展密钥;
步骤2、随机生成1个32位的随机数G;
步骤3、利用GPU进行并行SM4加密,即将明文数据分成每块128比特的数据分组,一个数据分组的加密任务分配给一个的GPU线程;每个GPU线程再进行32轮循环迭代加密处理,在每轮循环迭代加密处理时,根据迭代的轮数确定随机数G的对应位置,并根据该位置上的随机数G的数值选取加密轮函数;
步骤4、将各个GPU线程加密输出的数据按分块的前后顺序进行组合后形成密文数据;
步骤5、密文数据从GPU的全局设备存储器内传到内存中,整个加密过程完成;
所述接收方的解密过程为:
步骤6、利用GPU进行并行SM4解密,即将密文数据分成每块128比特的数据分组,每个GPU线程解密一个数据分组;每个GPU线程再进行32轮循环迭代解密处理,在进行32轮循环迭代解密处理时,根据随机数G对应位置上的取值,动态选择解密的轮函数;
步骤7、将各个GPU线程解密输出的数据按分块的前后顺序进行组合后获得明文数据;
步骤8、明文数据从GPU的全局设备存储器内传到内存中,整个解密过程完成。
2.根据权利要求1所述基于GPU的改进SM4并行加解密通信方法,其特征是,步骤1中,扩展密钥只需要产生一次,该扩展密钥在各个GPU线程加密过程中循环使用。
3.根据权利要求1或2所述基于GPU的改进SM4并行加解密通信方法,其特征是,步骤1中所述密钥扩展的具体过程为:
步骤1.1、将128bit的初始密钥按照列顺序组成4个32bit的字,分别记为w0-w3
步骤1.2、在初始密钥的基础上依次新增31个字wj,每一个新增的字wj的值依赖于wj-1和wj-4,即:
当j除以4的余数不为0时,
当j除以4的余数为0时, w j = w j - 4 &CirclePlus; g ( w j - 1 ) ;
步骤1.3、利用上述产生的字生成SM4加密算法中用到的扩展密钥,即扩展密钥rki=wj+4
上述j=4,5,6……35;i=0,1,…,31;g()是一个复杂函数。
4.根据权利要求3所述基于GPU的改进SM4并行加解密通信方法,步骤1.2中,复杂函数g()的计算过程如下:
步骤1.2.1、将字wj-1以字节为单位,排列表示成[B0,B1,B2,B3]的形式,并将[B0,B1,B2,B3]循环左移一个字节,变换成[B1,B2,B3,B0];
步骤1.2.2、利用AES的S盒对输入字的每个字节进行字节替换,变为[B’1,B’2,B’3,B’0];
步骤1.2.3、将产生的结果[B′1,B’2,B’3,B’0]与轮常数进行异或输出;
上述j=4,5,6……35。
5.根据权利要求1所述基于GPU的改进SM4并行加解密通信方法,其特征是,步骤3中,进行并行SM4加密时,根据迭代的轮数确定随机数G对应位置,该随机数G的每一位作为每一轮迭代时动态选择的依据,即:
当随机数G的对应的位置的数值为0时,选择使用: X i + 4 = F ( X i , X i + 1 , X i + 2 , X i + 3 , rk i ) = X i &CirclePlus; T ( X i + 1 &CirclePlus; X i + 2 &CirclePlus; X i + 3 &CirclePlus; rk i ) 作为轮函数;
当随机数G的对应的位置的数值为1时,选择使用: X i + 4 = F ( X i , X i + 1 , X i + 2 , X i + 3 , rk i ) = X i &CirclePlus; T ( X i + 1 + X i + 2 + X i + 3 &CirclePlus; rk i ) 作为轮函数;
其中,Xi-Xi+3表示第i轮输入的明文数据,F()表示轮函数,T()表示合成变换函数,rki表示第i轮加密使用的扩展密钥,i=0,1,…,31。
6.根据权利要求1所述的一种基于GPU的改进SM4并行加解密通信方法,其特征是,步骤6中,进行并行SM4解密时,根据迭代的轮数确定随机数G对应位置,该随机数G的每一位作为每一轮迭代时动态选择的依据,即:
当随机数G的对应的位置的数值为0时,选择使用: X i + 4 = F ( X i , X i + 1 , X i + 2 , X i + 3 , rk 31 - i ) = X i &CirclePlus; T ( X i + 1 &CirclePlus; X i + 2 &CirclePlus; X i + 3 &CirclePlus; rk 31 - i ) 作为轮函数;
当随机数G的对应的位置的数值为1时,选择使用: X i + 4 = F ( X i , X i + 1 , X i + 2 , X i + 3 , rk 31 - i ) = X i &CirclePlus; T ( X i + 1 + X i + 2 + X i + 3 &CirclePlus; rk 31 - i ) 作为轮函数;
其中,Xi-Xi+3表示第i轮输入的密文数据,F()表示轮函数,T()表示合成变换函数,rk31-i表示第i轮解密使用的扩展密钥,i=0,1,…,31。
7.根据权利要求1或5所述基于GPU的改进SM4并行加解密通信方法,其特征是,步骤3中,每个GPU线程进行加密处理的过程为:
步骤3.1、根据本次迭代次数,确定随机数G的对应位置,并根据该位置上的明文数据的数值选取轮函数;即当随机数G的对应的位置的明文数据的值为0时,计算当随机数G的对应的位置的明文数据的值为1时,计算并将计算结果按照字节顺序排列保存为数据块A=(a0,a1,a2,a3);
步骤3.2、利用AES的S盒对上一步的数据块A=(a0,a1,a2,a3)进行字节替换,输出按字节顺序保存为数据块B=(b0,b1,b2,b3),即(b0,b1,b2,b3)=τ(A)=(Sbox(a0),Sbox(a1),Sbox(a2),Sbox(a3));
步骤3.3、将上一步的B进行线性变换,输出保存为数据块C,则: C = L ( B ) = ( B < < < 0 ) &CirclePlus; ( B < < < 2 ) &CirclePlus; ( B < < < 10 ) &CirclePlus; ( B < < < 18 ) &CirclePlus; ( B < < < 24 )
步骤3.4、将上一步生成的数据块C和本次的输入明文数据进行异或运算,计算Xi+1,Xi+2,Xi+3,Xi+4作为下一次轮循环的输入;
步骤3.5、重复上述3.3.1~3.3.4的操作,将上一轮移位后数据作为新一轮输入,重复32次;经过32循环迭代加密后,输出密文数据为(Y0,Y1,Y2,Y3)=(X35,X34,X33,X32);
式中,Xi-Xi+3表示第i轮输入的明文数据,rki表示第i轮使用的扩展密钥,τ()表示置换变换函数,Sbox()为S盒变换函数,L()表示线性变换函数。
CN201510844393.9A 2015-11-27 2015-11-27 基于gpu的改进sm4并行加解密通信方法 Active CN105490802B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510844393.9A CN105490802B (zh) 2015-11-27 2015-11-27 基于gpu的改进sm4并行加解密通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510844393.9A CN105490802B (zh) 2015-11-27 2015-11-27 基于gpu的改进sm4并行加解密通信方法

Publications (2)

Publication Number Publication Date
CN105490802A true CN105490802A (zh) 2016-04-13
CN105490802B CN105490802B (zh) 2018-07-27

Family

ID=55677551

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510844393.9A Active CN105490802B (zh) 2015-11-27 2015-11-27 基于gpu的改进sm4并行加解密通信方法

Country Status (1)

Country Link
CN (1) CN105490802B (zh)

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106339641A (zh) * 2016-09-23 2017-01-18 珠海迈科智能科技股份有限公司 一种基于图像处理器的加密方法及系统
CN106712930A (zh) * 2017-01-24 2017-05-24 北京炼石网络技术有限公司 一种sm4加密方法及装置
CN106850214A (zh) * 2017-03-13 2017-06-13 上海新储集成电路有限公司 一种并行加解密方法
CN109067517A (zh) * 2018-06-22 2018-12-21 成都卫士通信息产业股份有限公司 加密、解密装置、加密、解密方法和隐藏密钥的通信方法
CN109450617A (zh) * 2018-12-06 2019-03-08 成都卫士通信息产业股份有限公司 加解密方法及装置、电子设备、计算机可读存储介质
CN109450616A (zh) * 2018-12-03 2019-03-08 北京安华金和科技有限公司 一种提高sm4加密算法速度的方法
CN110166223A (zh) * 2019-05-22 2019-08-23 北京航空航天大学 一种国密sm4的快速软件实现方法
CN110197076A (zh) * 2019-05-22 2019-09-03 北京航空航天大学 一种sm4加密算法的软件优化实现方法
CN110267266A (zh) * 2019-07-19 2019-09-20 中国铁路总公司 一种改进的列控系统安全数据交互方法
CN110519042A (zh) * 2019-08-29 2019-11-29 上海航天测控通信研究所 数据处理方法
CN110765474A (zh) * 2019-10-23 2020-02-07 六所智达(北京)科技有限公司 一种基于gpu实现并行加密的方法
CN110866285A (zh) * 2019-10-23 2020-03-06 杭州安存网络科技有限公司 一种基于gpu的pdf批量验章验证方法
CN110912679A (zh) * 2019-11-19 2020-03-24 海南众博数据科技有限公司 密码设备
CN112003688A (zh) * 2020-08-26 2020-11-27 长春理工大学 一种基于cuda的数据加解密处理方法及系统
CN112564890A (zh) * 2020-12-07 2021-03-26 海光信息技术股份有限公司 一种加速sm4算法的方法、装置、处理器及电子设备
CN113259719A (zh) * 2021-05-13 2021-08-13 长春理工大学 一种基于sm4的视频加密方法及系统
CN113452508A (zh) * 2021-08-27 2021-09-28 北京华云安信息技术有限公司 数据加密方法、装置、设备和计算机可读存储介质
CN113595717A (zh) * 2020-04-30 2021-11-02 比亚迪股份有限公司 Ecb模式分组加密方法和解密方法及控制装置和车辆
CN114124364A (zh) * 2020-08-27 2022-03-01 国民技术股份有限公司 密钥安全处理方法、装置、设备及计算机可读存储介质
CN116015620A (zh) * 2022-11-11 2023-04-25 自然资源部国土卫星遥感应用中心 一种卫星影像数据加密和解密方法和系统
CN116321129A (zh) * 2023-03-23 2023-06-23 广东电力交易中心有限责任公司 一种轻量级的基于动态密钥的电力交易专网通信加密方法
CN116633677A (zh) * 2023-07-06 2023-08-22 深圳迅策科技有限公司 一种批量交易数据的关联加密方法及系统
CN114124364B (zh) * 2020-08-27 2024-05-24 国民技术股份有限公司 密钥安全处理方法、装置、设备及计算机可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080008314A1 (en) * 2006-07-06 2008-01-10 Accenture Global Services Gmbh Encryption and decryption on a graphics processing unit
CN103475469A (zh) * 2013-09-10 2013-12-25 中国科学院数据与通信保护研究教育中心 一种结合cpu和gpu实现sm2算法的方法及装置
CN103632104A (zh) * 2013-10-17 2014-03-12 江苏科技大学 一种大数据环境下动态数据的并行加解密方法
CN104579636A (zh) * 2015-02-16 2015-04-29 滨州职业学院 一种超高速实现sm4算法的系统及其运行方法
CN105049194A (zh) * 2015-06-01 2015-11-11 北京时代民芯科技有限公司 一种流水线结构的sm4算法实现系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080008314A1 (en) * 2006-07-06 2008-01-10 Accenture Global Services Gmbh Encryption and decryption on a graphics processing unit
CN103475469A (zh) * 2013-09-10 2013-12-25 中国科学院数据与通信保护研究教育中心 一种结合cpu和gpu实现sm2算法的方法及装置
CN103632104A (zh) * 2013-10-17 2014-03-12 江苏科技大学 一种大数据环境下动态数据的并行加解密方法
CN104579636A (zh) * 2015-02-16 2015-04-29 滨州职业学院 一种超高速实现sm4算法的系统及其运行方法
CN105049194A (zh) * 2015-06-01 2015-11-11 北京时代民芯科技有限公司 一种流水线结构的sm4算法实现系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
周理华: "基于GPU的并行加解密系统的设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
郑秀林,李敏: "SMS4算法的一种改进", 《北京电子科技学院学报》 *

Cited By (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106339641A (zh) * 2016-09-23 2017-01-18 珠海迈科智能科技股份有限公司 一种基于图像处理器的加密方法及系统
CN106712930A (zh) * 2017-01-24 2017-05-24 北京炼石网络技术有限公司 一种sm4加密方法及装置
CN106850214A (zh) * 2017-03-13 2017-06-13 上海新储集成电路有限公司 一种并行加解密方法
CN109067517A (zh) * 2018-06-22 2018-12-21 成都卫士通信息产业股份有限公司 加密、解密装置、加密、解密方法和隐藏密钥的通信方法
CN109067517B (zh) * 2018-06-22 2021-07-09 成都卫士通信息产业股份有限公司 加密、解密装置、加密、解密方法和隐藏密钥的通信方法
CN109450616A (zh) * 2018-12-03 2019-03-08 北京安华金和科技有限公司 一种提高sm4加密算法速度的方法
CN109450617A (zh) * 2018-12-06 2019-03-08 成都卫士通信息产业股份有限公司 加解密方法及装置、电子设备、计算机可读存储介质
CN110197076B (zh) * 2019-05-22 2021-03-26 北京航空航天大学 一种sm4加密算法的软件优化实现方法
CN110166223A (zh) * 2019-05-22 2019-08-23 北京航空航天大学 一种国密sm4的快速软件实现方法
CN110197076A (zh) * 2019-05-22 2019-09-03 北京航空航天大学 一种sm4加密算法的软件优化实现方法
CN110166223B (zh) * 2019-05-22 2021-08-13 北京航空航天大学 一种国密分组密码算法sm4的快速实现方法
CN110267266A (zh) * 2019-07-19 2019-09-20 中国铁路总公司 一种改进的列控系统安全数据交互方法
CN110519042A (zh) * 2019-08-29 2019-11-29 上海航天测控通信研究所 数据处理方法
CN110866285A (zh) * 2019-10-23 2020-03-06 杭州安存网络科技有限公司 一种基于gpu的pdf批量验章验证方法
CN110765474A (zh) * 2019-10-23 2020-02-07 六所智达(北京)科技有限公司 一种基于gpu实现并行加密的方法
CN110912679A (zh) * 2019-11-19 2020-03-24 海南众博数据科技有限公司 密码设备
CN113595717B (zh) * 2020-04-30 2023-10-17 比亚迪股份有限公司 Ecb模式分组加密方法和解密方法及控制装置和车辆
CN113595717A (zh) * 2020-04-30 2021-11-02 比亚迪股份有限公司 Ecb模式分组加密方法和解密方法及控制装置和车辆
CN112003688A (zh) * 2020-08-26 2020-11-27 长春理工大学 一种基于cuda的数据加解密处理方法及系统
CN114124364A (zh) * 2020-08-27 2022-03-01 国民技术股份有限公司 密钥安全处理方法、装置、设备及计算机可读存储介质
CN114124364B (zh) * 2020-08-27 2024-05-24 国民技术股份有限公司 密钥安全处理方法、装置、设备及计算机可读存储介质
CN112564890B (zh) * 2020-12-07 2023-03-24 海光信息技术股份有限公司 一种加速sm4算法的方法、装置、处理器及电子设备
CN112564890A (zh) * 2020-12-07 2021-03-26 海光信息技术股份有限公司 一种加速sm4算法的方法、装置、处理器及电子设备
CN113259719A (zh) * 2021-05-13 2021-08-13 长春理工大学 一种基于sm4的视频加密方法及系统
CN113452508A (zh) * 2021-08-27 2021-09-28 北京华云安信息技术有限公司 数据加密方法、装置、设备和计算机可读存储介质
CN116015620A (zh) * 2022-11-11 2023-04-25 自然资源部国土卫星遥感应用中心 一种卫星影像数据加密和解密方法和系统
CN116321129A (zh) * 2023-03-23 2023-06-23 广东电力交易中心有限责任公司 一种轻量级的基于动态密钥的电力交易专网通信加密方法
CN116321129B (zh) * 2023-03-23 2024-03-29 广东电力交易中心有限责任公司 一种轻量级的基于动态密钥的电力交易专网通信加密方法
CN116633677A (zh) * 2023-07-06 2023-08-22 深圳迅策科技有限公司 一种批量交易数据的关联加密方法及系统
CN116633677B (zh) * 2023-07-06 2023-09-19 深圳迅策科技有限公司 一种批量交易数据的关联加密方法及系统

Also Published As

Publication number Publication date
CN105490802B (zh) 2018-07-27

Similar Documents

Publication Publication Date Title
CN105490802A (zh) 基于gpu的改进sm4并行加解密通信方法
Ramesh et al. Performance analysis of encryption algorithms for Information Security
CN102185692B (zh) 基于aes加密算法的多模式可重构加密方法
CN101753292A (zh) 用于链接式加密模式的方法和设备
CN105262772A (zh) 一种数据传输方法、系统及相关装置
CN104639314A (zh) 基于aes加密/解密算法的装置和流水控制方法
CN105515758A (zh) 基于Modbus协议的数据并行加密通信方法和系统
CN110880967B (zh) 采用分组对称密钥算法对多消息并行加解密方法
CN109981249B (zh) 基于拉链式动态散列和nlfsr的加密解密方法及装置
Stallings NIST block cipher modes of operation for confidentiality
CN108429613A (zh) 一种基于en-present算法的电网信息加密方法
CN103580851A (zh) 信息加密及解密方法
CN103632104A (zh) 一种大数据环境下动态数据的并行加解密方法
CN102594549B (zh) 一种数据多级加密、解密方法
CN103346878B (zh) 一种基于fpga高速串行io的保密通信方法
CN116846542A (zh) 一种数据加密和解密方法、装置及电子设备
CN101826959B (zh) 一种面向字节的密钥流生成方法及加密方法
Lee et al. Implementation and Performance Analysis of AES-128 CBC algorithm in WSNs
CN104219045B (zh) Rc4 流密码生成器
Arman et al. Design and implementation of a modified AES cryptography with fast key generation technique
Akram et al. Triple Key Security Algorithm Against Single Key Attack on Multiple Rounds.
Bajaj et al. AES algorithm for encryption
CN106921486A (zh) 数据加密的方法和装置
CN104735652A (zh) 一种适用于无线传感器网络的混沌加密方法
Mahantesh et al. Design of secured block ciphers present and hight algorithms and its fpga implementation

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20221214

Address after: 541004 Room 603, 14 #, Guilin Creative Industry Park, Guimo Avenue, Qixing District, Guilin City, Guangxi Zhuang Autonomous Region

Patentee after: GUILIN LANGANG TECHNOLOGY CO.,LTD.

Address before: 541004 1 Jinji Road, Qixing District, Guilin, the Guangxi Zhuang Autonomous Region

Patentee before: GUILIN University OF ELECTRONIC TECHNOLOGY

TR01 Transfer of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Improved SM4 parallel encryption and decryption communication method based on GPU

Granted publication date: 20180727

Pledgee: Bank of China Limited by Share Ltd. Guilin branch

Pledgor: GUILIN LANGANG TECHNOLOGY CO.,LTD.

Registration number: Y2024980009526

PE01 Entry into force of the registration of the contract for pledge of patent right