CN103490877A - 基于cuda的aria对称分组密码算法并行化方法 - Google Patents
基于cuda的aria对称分组密码算法并行化方法 Download PDFInfo
- Publication number
- CN103490877A CN103490877A CN201310401251.6A CN201310401251A CN103490877A CN 103490877 A CN103490877 A CN 103490877A CN 201310401251 A CN201310401251 A CN 201310401251A CN 103490877 A CN103490877 A CN 103490877A
- Authority
- CN
- China
- Prior art keywords
- aria
- thread
- symmetric block
- block ciphers
- algorithm
- 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
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本发明基于CUDA编程架构为使用四个S盒的ARIA对称分组密码算法提供三种粒度的并行化方法。首先对ARIA对称分组密码算法的轮函数进行化简,使轮函数转换为多次查找表操作和异或操作。然后根据轮函数的化简结果和CUDA编程架构的特点提出三种粒度的并行化方法,同时提出ARIA对称分组密码算法在CUDA编程架构上的存储器映射方案和线程映射方案。本发明提出的并行化方法可以提高ARIA对称分组密码算法加密解密的速度,其在商业应用和科学研究领域均具有广泛地实用价值和应用前景。
Description
技术领域
本发明提出了针对ARIA对称分组密码算法的并行化方法,具体涉及一种含四个S盒的ARIA对称分组密码算法和基于CUDA(Compute Unified Device Architecture)编程架构的并行算法设计,属于计算机技术领域。
背景技术
ARIA对称分组密码算法
ARIA是一种采用四个S盒的对称分组密码算法,可以使用128、192、256比特位三种密钥长度,对应的加密轮数分别为12、14、16轮。本发明采用128比特位密钥长度说明并行化方法。加密之前需要计算出所有的轮密钥,即密钥扩展算法,加密的具体过程如如图1所示,若采用n轮轮函数的ARIA对称分组密码算法,则前n-1轮每一轮的轮函数由以下三个部分组成:
(1)轮密钥加(Round Key Addition)每个数据分组与一个轮密钥(Round-key)进行异或。
(2)置换层(Substitution Layer)如图2,图3所示,ARIA对称分组密码算法的置换层需要用四个S盒(S-box),包括S1、S2、和。置换层共有两种,其中一种用在奇数轮,另一种用在偶数轮。其中每一个S盒是一个8比特位的16行16列的替换表。以S1盒中的替换为例,S1(0x00)=0x63,S1(0x05)=0x6B。
(3)扩散层(Diffusion Layer)将一个16字节的输入线性映射为16字节的输出函数,其映射关系为1个16X16的二进制自逆矩阵。
如图1所示,ARIA对称分组密码算法的最后一轮轮函数需要执行两次轮密钥加和一次置换。因此,对于n轮的ARIA对称分组密码算法,需要n+1组密钥。本发明采用的128位ARIA对称分组密码算法共有12轮加密,共需要13轮密钥。
CUDA(Compute Unified Device Architecture)
CUDA是目前最常用的编程架构。在CUDA编程架构中,CPU(Central Processing Unit,即中央处理器)作为主机,GPU(Graphic Processing Unit,即图形处理器)作为协处理器或者设备,是一种异构计算结构。一个系统中可以存在一个主机和多个设备,它们协同工作,各司其职。CPU拥有丰富的控制逻辑,负责逻辑性强的事务处理和串行计算,GPU上控制逻辑简单但计算资源丰富,负责执行高度线程化的并行处理任务。它们拥有相互独立的存储器空间:内存和显存。CUDA使用不同的方式来控制内存和显存。对于内存,使用C程序的内存管理函数;对显存,则使用CUDA的存储管理函数来进行开辟、初始化、释放显存空间,以及在内存和显存之间进行数据传输等。CUDA的存储器结构如图4所示,每个线程均拥有自己私有的寄存器、局部存储器(Local Memory)。每个线程块内的线程共享一块共享存储器(Shared Memory);一个线程网格(Grid)内的所有线程均可以访问同一块全局存储器(Global Memory)。这四种存储空间都是可读可写的,而另外还有两种只读存储器,即常数存储器(Constant Memory)和纹理存储器(Texture Memory)。
发明内容
本发明的一个目的,是基于CUDA为使用四个S盒的ARIA对称分组密码算法提供三种粒度的并行化方法。该方法首先对ARIA对称分组密码算法的轮函数进行化简,使轮函数转换为多次查找表操作和异或操作。然后根据轮函数的化简结果和CUDA编程架构的特点提出三种粒度的并行化方法,并设计ARIA对称分组密码算法在CUDA编程架构上的存储器映射方案和线程映射方案。本发明提出的并行化方法可以提高ARIA对称分组密码算法加密解密的速度。
本发明提供了基于CUDA的ARIA对称分组密码算法三种并行化方法,其特征在于:
(1)根据ARIA对称分组密码算法的特点将轮函数化简为多次查找表操作和异或操作;
(2)基于CUDA编程架构的三种粒度并行化方法;
(3)ARIA对称分组密码算法中的S盒、轮密钥、明文、密文进行存储器分配方案;
(4)ARIA对称分组密码算法三种不同粒度并行化方法的线程映射方案。
附图说明
图1是加密流程图。
图2示意显示了置换层类型1。
图3示意显示了置换层类型2。
图4示意显示了CUDA的存储器结构。
图5是根据本发明的并行化方法一的流程图。
图6是根据本发明的并行化方法二的流程图。
图7是根据本发明的并行化方法三的流程图。
图8是根据本发明的存储器分配方案1的示意图。
图9是根据本发明的存储器分配方案2的示意图。
图10是根据本发明的方法一的线程映射方案的示意图。
图11是根据本发明的方法二的线程映射方案的示意图。
图12是根据本发明的方法三的线程映射方案的示意图。
具体实施方式
本发明针对ARIA对称分组密码算法提出了三种粒度的并行化方法。首先主要从理论推导的角度分析了ARIA对称分组密码算法的特点,将其前11轮函数转换为多次查找表操作和异或操作;而且根据其分组的构成特点,可以将每 一个明文分组分为三种不同的粒度进行处理。提出的并行化方法一为粗粒度并行,即每个明文分组分别加密,单线程处理一个明文分组;方法二为细粒度并行,即每个明文分组分为4个部分进行加密操作,4个线程协作处理一个明文分组;方法三为最细粒度并行,即每个明文分组分为16个部分进行加密操作,16个线程协作处理一个明文分组。同时,本发明根据ARIA对称分组密码算法的结构特点详细设计了其在CUDA编程模型上实现的存储器分配方案和线程映射方案。
轮函数转换
首先简化轮函数的变换。轮函数的第一步为轮密钥加,只需要简单的按位异或即可完成。关键的耗时在第二步的置换层和第三步扩散层。将置换层和扩散层合并,统一合并置换为并行的查找表方式。
定义 则ARIA对称分组密码算法轮函数中奇数轮和偶数轮的置换层可以分别表示为(L,L,L,L),(L-1,L-1,L-1,L-1)。
定义
I与Pi的关系如下:
I·P2=P2,P1·P2=P3,P2·P2=I,P3·P2=P1。
(1)ARIA对称分组密码算法奇数轮的轮函数转换
对于奇数轮的轮函数,则扩散层可以表示为A=M1·P·M1·M,其中
每32比特位的置换层和扩散层可以表示为P4οL,K为对应子密钥矩阵,因此
其中Ti为8X32的查找表
则奇数轮轮函数需要执行T0(x)⊕T1(x)⊕T2(x)⊕T3(x)⊕Ki,其中i∈{0,1,2,3}为对 应轮子密钥的1/4,即32比特。显然,每一个奇数轮的轮函数对应四次表格查找和四次异或运算。
(2)ARIA对称分组密码算法偶数轮的轮函数转换
对于偶数轮的轮函数,每32比特位的置换层和扩散层可以表示为P4οL-1,K为对应子密钥矩阵,则
其中
显然,偶数轮的轮函数需要执行T4(x)⊕T5(x)⊕T6(x)⊕T7(x)⊕Ki,其中i∈{0,1,2,3}为对应轮子密钥的1/4,即32比特。显然,每一个偶数轮的轮函数也对应四次表格查找和四次异或运算。
最后一轮则根据定义执行两次异或和一次查找表的操作。
基于CUDA实现的并行化设计总体方案
CUDA是一种并行计算架构,非常适合处理并行计算问题。本发明将基于GPU研究ARIA对称分组密码算法的并行化方法。根据ARIA对称分组密码算法的特点,其算法本身的并行性,设计了三种粒度基于CUDA的并行化方法。
如图5所示为方法一,每个线程束上的每个线程单独一组负责处理一个128位的明文分组。由于不同的密码分组之间不存在数据依赖性,因此,各个线程完全并行执行。执行轮函数的过程中不需要执行同步操作。在使用GPU执行加密之前,CPU计算出轮密钥,并提前将轮密钥和S盒载入GPU中。如果在GPU上实现密钥扩展算法,那么必须在一个单一的线程内完成这一串行算法,即每个线程产生自身的密钥进度表,这样浪费了大量的GPU计算资源,因此本发明选择在CPU上实现密钥扩展算法,计算出轮密钥,然后传入GPU中。由于每一个T盒中三个非零元的值相同,因此对于每一个T盒的查找操作,只需要执行一次S盒查找即可。所以,不需要把8个T盒提前存入GPU,而使用4个S盒代替,这样可以节省存储空间,同时节省传输时间,提高效率。12轮轮函数执行完以后,将结果存入GPU中的全局存储器,最后传回到主机内存中,加密结束。
如图6所示为方法二,每个线程束上的每4个线程为一组负责处理一个128位的明文分组,即每个线程处理4个字节。这部分将重点研究ARIA对称分组密码算法轮函数内部的并行性,是比方法一更加细粒度的并行实现方法。这一 方案中每执行完一轮轮函数以后需要执行一次同步操作。这样可以保证下一次轮函数执行之前,4个协作线程都已经完成,能够正确读取上一轮计算的中间结果。12轮轮函数执行完以后,将结果存入GPU中的全局存储器,最后传回到主机内存中。
如图7所示为方法三,每个线程束上的每16个线程为一组负责处理一个128位的明文分组,是最大并行化的处理方法,单线程执行的粒度最小,即每个线程处理1个字节。与方法二类似,每执行完一轮轮函数以后需要执行一次同步操作,保证下一次轮函数执行之前,16个协作线程都已经完成该轮轮函数的计算。在每个轮函数中执行S盒的查找操作时,需要执行判定操作选择需要执行4个S盒中的哪一个。根据前文S盒的分析,在前十一轮加密的每一轮轮函数中,需要每4个线程进行协作处理4个字节。因此,与方法二相比,除了每一轮轮函数之间的同步操作,在轮函数内部执行完每一步也要执行一次同步操作保证正确性。12轮轮函数执行完以后,将结果存入GPU中的全局存储器,最后传回到主机内存中。
4.存储器分配方案
CUDA架构中存在多种类型的存储器结构,如何有效地利用各类存储器是提高并行算法实现性能的关键。ARIA对称分组密码算法的并行化设计涉及存储以下几类数据:明文、密文、轮密钥、S盒。本发明将详细讨论各类数据的存储方案。其中图8所示为方法一的存储器分配方案,图9所示为方法二和方法三的存储器分配方案。其中的符号%表示求模。
方法一的存储器分配方案
如图8所示,对于方法一的设计,具体的存储器分配方案如下:
1.轮函数执行前,将明文数据,四个S盒和轮密钥载入GPU的全局存储器;
2.每个线程取明文数据128比特存入寄存器。同时,在每个线程束内,将S盒和轮密钥从全局存储器载入到共享存储器内,这一过程由所有启动的线程并行执行,存储完成以后,所有操作执行一次同步操作,保证后面的访问是安全的;
3.执行轮函数,多轮轮函数计算完成后,将密文存入寄存器;
4.将寄存器内的密文写回全局存储器,如果还有剩余未处理明文,返回第2步继续执行。
每个S盒占用16*16字节的空间,四个S盒的占用共享存储器空间1K。12轮加密共需要13个轮密钥(第12轮需要两个轮密钥),占用共享存储器空间为208个字节。每个多处理器内共享存储器容量限制为16K,剩余“16*1024–1024-208=15152”个字节的空间。
寄存器是GPU中访问速度最快的存储器,在方法一的粗粒度设计中,各明文分组和密文分组之间相互独立,本发明采用寄存器来存储明文和密文。在计算过程中用到的计数器以及中间状态字均采用共享存储器,提高性能。每个线 程束中共需要存储明文分组的寄存器大小为“每个线程束中的线程数*16个字节”。因为每个寄存器大小为32比特,所以理论上每个线程束中用来存储明文分组的寄存器数量为“每个线程束中的线程数*4”个。在每个线程的实际执行过程中,可以4个字节为一组进行串行处理,寄存器可以循环使用,1个明文分组可以只占用1个寄存器,即每个线程束中用来存储明文分组的寄存器数量为“每个线程束中的线程数”。存储密文分组所用寄存器数量与存储明文分组占用寄存器数量相同。在常用的计算能力为1.3版本的GPU中,每个SM中的寄存器数量为16384,可以满足计算需求。
需要存储的数据中,轮密钥和S盒需要被所有的进程访问,而且在线程执行过程中,数据保持不变。共享存储器可以被同一线程块内的所有线程访问,其访问速度仅次于寄存器,是实现线程间通信延迟最小的方法,因此本发明使用共享存储器存储S盒和轮密钥。
方法二的存储器分配方案
在方法二的细粒度并行设计中,需要4个线程处理128比特的明文分组,4个线程需要共享明文分组信息,轮函数执行的中间状态结果。因此,在执行加密之前,将明文信息从全局内存载入共享内存,达到四个协作线程通信的目的。
如图9所示,S盒、轮函数和明文存入共享存储器,密文存入寄存器。其执行过程与方法一的粗粒度类似,具体过程如下:
1.轮函数执行前,将明文数据,四个S盒和轮密钥载入GPU的全局存储器;
2.每个线程束中的线程将S盒和轮密钥并行从全局存储器载入到共享存储器内,存储完成以后,所有操作执行一次同步操作,保证后面的访问是安全的,每个线程在全局存储器中读取四个字节载入共享存储器,4个线程协作完成12轮轮函数的计算,每个线程负责处理四个字节;
3.执行轮函数,多轮轮函数计算完成后,将密文存入寄存器;
4.将寄存器内的密文写回全局存储器,如果还有剩余未处理明文,返回第2步继续执行。
每个线程束中共需要存储明文分组的共享存储器空间大小为“每个线程束中的线程数*4个字节”。加密后的密文存在寄存器中,所用寄存器数量为每个线程束中的线程数。每个线程束中最多启动512个线程,因此明文分组占用共享存储器为2K,密文使用寄存器数量512个。
方法三的存储器分配方案
方法三的存储器分配方案与方法二基本相同,即如图9所示。不同之处在于,16个线程共享128比特的明文分组,执行过程与方法二基本相同。主要区别也在第二步中,在全局存储器中读取一个明文分组载入共享存储器,16个线程协作完成12轮轮函数的计算,每个线程负责处理1个字节。每个线程束中共需要存储明文分组的共享存储器空间大小为“每个线程束中的线程数*1个字 节”。加密后的密文存在寄存器中,所用寄存器数量为每个线程束中的线程数除以4。每个线程束中最多启动512个线程,因此明文分组占用共享存储器为0.5K,密文分组使用寄存器数量128个。
线程映射方案
方法一、方法二、方法三的线程映射方案如图10、图11、图12所示。图中整数i(0≤i≤n-1)表示线程的编号。其中的符号%表示求模,符号*表示乘法,符号/表示除法取整数部分。线程映射方案中的名词“线程序号”表示在一个线程网格中所有启动线程的线程序号。
方法一的线程映射方案
在方法一的粗粒度并行实现方法中,每个线程处理128比特的明文分组。各个线程之间的数据完全独立,因此,每1个线程负责处理一段连续的全局存储器中的数据。方法一的线程映射方案如下:
●每个线程处理的明文分组数=总的明文分组数/(每个线程束中的线程数*线程束的数量)
●每个线程负责处理的第一个明文分组在全局存储器中的序号=线程序号*每个线程处理的明文分组数
通过公式“threadIdx.x+BlockIdx.x*BlockDim.x”可以直接得到所有启动线程的“线程序号”,三个参数threadIdx.x、BlockIdx.x、BlockDim.x的值由CUDA直接提供。在方法二和方法三中,“线程序号”的值也通过这一公式求出,后文不再赘述。第“线程序号”个线程处理的明文分组从第“线程序号*每个线程处理的明文分组数”个到第“(线程序号+1)*每个线程处理的明文分组数-1”个。
如图10所示,在每个线程束中,需要暂存明文信息的寄存器空间为“128*每个线程束中的线程数”比特,明文分组不断从全局存储器载入寄存器中,每个线程处理一组明文信息。
方法二的线程映射方案
在方法二的细粒度并行实现方法中,4个线程处理128比特的明文分组,每个线程负责处理32比特。4个线程负责处理一段连续全局存储器中的数据。方法二的线程映射方案如下:
●每个线程处理的明文分组数=4*总的明文分组数/(每个线程束中的线程数*线程束的数量)
●每个线程负责处理的第一个明文分组在全局存储器中的序号=(线程序号/4)*每个线程处理的明文分组数
其中的参数意义与方法一中相同。第“线程序号”个线程处理的明文分组从第“(线程序号/4)*每个线程处理的明文分组数”个到第“(线程序号/4+1)*每个线程处理的明文分组数-1”个。每个分组分四段,在每个分组中处理第(线程序号%4) 段。
如图11所示,在每个线程束中,需要暂存明文信息的共享存储器空间为“32*每个线程束中的线程数”比特,明文分组不断从全局存储器载入共享存储器中,4个线程处理一组明文信息。
方法三的线程映射方案
在方法三的细粒度并行实现方法中,16个线程处理128比特的明文分组,每个线程负责处理8比特,即1个字节。16个线程负责处理一段连续的全局存储器中的数据。方法三的线程映射方案如下:
●每个线程处理的明文分组数=16*总的明文分组数/(每个线程束中的线程数*线程束的数量)
●每个线程负责处理的第一个明文分组在全局存储器中的序号=(线程序号/16)*每个线程处理的明文分组数
第“线程序号”个线程处理的明文分组从第“(线程序号/16)*每个线程处理的明文分组数”个到第“(线程序号/16+1)*每个线程处理的明文分组数-1”个。每个明文分组分16个字节,在每个分组中第“线程序号”个线程处理第(线程序号%16)个字节。
如图12所示,全局存储器中的明文分组以及共享存储器的映射类似,区别在于每个线程束中,需要暂存明文信息的共享存储器空间为“每个线程束中的线程数”字节,明文分组不断从全局存储器载入共享存储器中,16个线程处理一组明文信息。
Claims (5)
1.基于CUDA的ARIA对称分组密码算法并行化方法,其特征在于:
(1)根据ARIA对称分组密码算法的特点将轮函数化简为多次查找表操作和异或操作;
(2)基于CUDA编程架构的三种粒度并行化方法;
(3)ARIA对称分组密码算法中的S盒、轮密钥、明文、密文的存储器分配方案;
(4)ARIA对称分组密码算法三种不同粒度并行化方法的线程映射方案。
2.根据权利1所述的轮函数简化方案包括将ARIA对称分组密码算法轮函数中的轮密钥加、置换层和扩散层进行合并转换,将其化简为多次查找表操作和异或操作。其中奇数轮和偶数轮的轮函数转换结果根据二者置换层的不同,化简为不同的查找表。
3.根据权利1所述的基于CUDA编程架构的三种粒度并行化方法,其特征在于:每个CUDA中的线程处理ARIA对称分组密码算法明文分组粒度不同,具体为:方法一为单线程处理一个ARIA对称分组密码算法明文分组、方法二为4个线程处理一个ARIA对称分组密码算法明文分组、方法三为16个线程处理一个ARIA对称分组密码算法明文分组。
4.根据权利1所述的ARIA对称分组密码算法中的S盒、轮密钥、明文、密文的存储器分配方案,其特征在于:权利要求3所述的方法一中,S盒和轮密钥存储在共享存储器上,而明文和密文存储在寄存器上;权利要求3所述的方法二和方法三中,S盒、轮密钥、明文存储在共享存储器上,而密文存储在寄存器上。
5.根据权利1所述的ARIA对称分组密码算法三种不同粒度并行化方法的线程映射方案,其特征在于:权利要求3所述的方法一中,每1个线程负责处理一段连续全局存储器空间中的明文数据;权利要求3所述的方法二中,每4个线程负责处理一段连续全局存储器空间中的明文数据;权利要求3所述的方法三中,每16个线程负责处理一段连续全局存储器空间中的明文数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310401251.6A CN103490877A (zh) | 2013-09-05 | 2013-09-05 | 基于cuda的aria对称分组密码算法并行化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310401251.6A CN103490877A (zh) | 2013-09-05 | 2013-09-05 | 基于cuda的aria对称分组密码算法并行化方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103490877A true CN103490877A (zh) | 2014-01-01 |
Family
ID=49830853
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310401251.6A Pending CN103490877A (zh) | 2013-09-05 | 2013-09-05 | 基于cuda的aria对称分组密码算法并行化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103490877A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105843692A (zh) * | 2016-03-18 | 2016-08-10 | 国家电网公司 | 一种异构计算系统 |
CN106339641A (zh) * | 2016-09-23 | 2017-01-18 | 珠海迈科智能科技股份有限公司 | 一种基于图像处理器的加密方法及系统 |
CN107222304A (zh) * | 2017-06-06 | 2017-09-29 | 河南大学 | 一种多体并行s盒的电路结构 |
CN108510429A (zh) * | 2018-03-20 | 2018-09-07 | 华南师范大学 | 一种基于gpu的多变量密码算法并行化加速方法 |
CN109347621A (zh) * | 2018-08-31 | 2019-02-15 | 南京航空航天大学 | 基于随机延时s盒的可防御碰撞攻击的高速aes加密电路 |
CN109684792A (zh) * | 2018-12-27 | 2019-04-26 | 无锡京和信息技术有限公司 | 一种计算机软件安全加解密管理系统 |
CN111953476A (zh) * | 2020-08-04 | 2020-11-17 | 天津七所精密机电技术有限公司 | 一种基于嵌入式平台的分组密码并行化方法 |
US11392706B2 (en) * | 2020-11-23 | 2022-07-19 | Pusan National University Industry—University Cooperation Foundation | Hardware module and its control method with a 32-bit instruction extension for processor supporting ARIA encryption and decryption |
-
2013
- 2013-09-05 CN CN201310401251.6A patent/CN103490877A/zh active Pending
Non-Patent Citations (2)
Title |
---|
YONGJIN YEOM,ETC: "High–Speed Implementations of Block Cipher ARIA Using Graphics Processing Units", 《IEEE》 * |
叶剑: "基于GPU的密码算法实现技术研究", 《中国优秀硕士学位论文全文数据库(电子期刊)》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105843692A (zh) * | 2016-03-18 | 2016-08-10 | 国家电网公司 | 一种异构计算系统 |
CN106339641A (zh) * | 2016-09-23 | 2017-01-18 | 珠海迈科智能科技股份有限公司 | 一种基于图像处理器的加密方法及系统 |
CN107222304A (zh) * | 2017-06-06 | 2017-09-29 | 河南大学 | 一种多体并行s盒的电路结构 |
CN108510429A (zh) * | 2018-03-20 | 2018-09-07 | 华南师范大学 | 一种基于gpu的多变量密码算法并行化加速方法 |
CN109347621A (zh) * | 2018-08-31 | 2019-02-15 | 南京航空航天大学 | 基于随机延时s盒的可防御碰撞攻击的高速aes加密电路 |
CN109347621B (zh) * | 2018-08-31 | 2020-11-06 | 南京航空航天大学 | 基于随机延时s盒的可防御碰撞攻击的高速aes加密电路 |
CN109684792A (zh) * | 2018-12-27 | 2019-04-26 | 无锡京和信息技术有限公司 | 一种计算机软件安全加解密管理系统 |
CN109684792B (zh) * | 2018-12-27 | 2021-08-27 | 无锡京和信息技术有限公司 | 一种计算机软件安全加解密管理系统 |
CN111953476A (zh) * | 2020-08-04 | 2020-11-17 | 天津七所精密机电技术有限公司 | 一种基于嵌入式平台的分组密码并行化方法 |
US11392706B2 (en) * | 2020-11-23 | 2022-07-19 | Pusan National University Industry—University Cooperation Foundation | Hardware module and its control method with a 32-bit instruction extension for processor supporting ARIA encryption and decryption |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103490877A (zh) | 基于cuda的aria对称分组密码算法并行化方法 | |
CN105490802B (zh) | 基于gpu的改进sm4并行加解密通信方法 | |
CN102509036B (zh) | 一种可重构密码处理器及抗功耗攻击方法 | |
Guo et al. | Different implementations of AES cryptographic algorithm | |
CN104468412B (zh) | 基于rss的网络会话数据包分发方法及系统 | |
CN101588233B (zh) | 一种无线传感器网络节点应用中aes协处理器中的模块复用方法 | |
CN110233721A (zh) | Sm4加速处理器、方法和系统 | |
CN103503362B (zh) | 数据处理装置、数据处理方法以及程序 | |
CN106034021B (zh) | 轻量级双模兼容aes加解密模块及其方法 | |
CN103444124A (zh) | 加密处理装置、加密处理方法和程序 | |
CN101431405B (zh) | Des加密方法及其硬件电路实现方法 | |
CN102624520B (zh) | 基于aes的192比特位密钥扩展系统及方法 | |
CN103631660A (zh) | 在gpu中进行大整数计算时的存储资源分配方法及装置 | |
CN102664730B (zh) | 基于高级加密标准aes的128比特位密钥扩展方法 | |
Ma et al. | Implementation and evaluation of different parallel designs of AES using CUDA | |
CN105471855A (zh) | 一种用于电子标签快速身份鉴别的低功耗椭圆曲线加密引擎 | |
CN103444125A (zh) | 加密处理设备、加密处理方法和程序 | |
CN103346878A (zh) | 一种基于fpga高速串行io的保密通信方法 | |
Yang et al. | PLCrypto: A symmetric cryptographic library for programmable logic controllers | |
CN104219045B (zh) | Rc4 流密码生成器 | |
Kong et al. | Observability of Galois nonlinear feedback shift registers | |
Pu et al. | Fastplay-a parallelization model and implementation of smc on cuda based gpu cluster architecture | |
CN110336661A (zh) | Aes-gcm数据处理方法、装置、电子设备及存储介质 | |
CN105553646A (zh) | 面向分组密码算法并行计算的可重构s盒电路结构 | |
CN102647272B (zh) | 256比特位密钥扩展系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140101 |
|
RJ01 | Rejection of invention patent application after publication |