CN110059493B - 基于粗粒度可重构计算单元的skinny-128-128加密算法实现方法及系统 - Google Patents

基于粗粒度可重构计算单元的skinny-128-128加密算法实现方法及系统 Download PDF

Info

Publication number
CN110059493B
CN110059493B CN201910284904.4A CN201910284904A CN110059493B CN 110059493 B CN110059493 B CN 110059493B CN 201910284904 A CN201910284904 A CN 201910284904A CN 110059493 B CN110059493 B CN 110059493B
Authority
CN
China
Prior art keywords
reconfigurable
configuration information
computing
reconfigurable computing
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.)
Active
Application number
CN201910284904.4A
Other languages
English (en)
Other versions
CN110059493A (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.)
Wuxi Muchuang Integrated Circuit Design Co ltd
Wuxi Research Institute of Applied Technologies of Tsinghua University
Original Assignee
Wuxi Muchuang Integrated Circuit Design Co ltd
Wuxi Research Institute of Applied Technologies of Tsinghua University
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 Wuxi Muchuang Integrated Circuit Design Co ltd, Wuxi Research Institute of Applied Technologies of Tsinghua University filed Critical Wuxi Muchuang Integrated Circuit Design Co ltd
Priority to CN201910284904.4A priority Critical patent/CN110059493B/zh
Publication of CN110059493A publication Critical patent/CN110059493A/zh
Application granted granted Critical
Publication of CN110059493B publication Critical patent/CN110059493B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明提供一种基于粗粒度可重构计算单元的SKINNY‑128‑128加密算法系统,包括可重构配置系统、可重构数据通路及计算模块、主控微处理器、系统总线;所述可重构配置系统包括配置信息初始化接口、多级配置信息存储单元、配置信息解析模块、位置信息寄存器;所述可重构数据通路及计算模块包括可重构计算阵列、寄存器通道、中间结果存储单元、输入先进先出寄存器组、输出先进先出寄存器组。可重构计算阵列包括可重构计算单元块,可重构计算单元块包括多行算子、读控制模块、写控制模块;其中,算子包括逻辑运算、算术运算、移位运算、查表运算和置换运算功能;本发明提高了加密运算的效率和速度。

Description

基于粗粒度可重构计算单元的SKINNY-128-128加密算法实现方法及系统
技术领域
本发明涉及嵌入式可重构系统领域,尤其涉及一种应用于信息安全领域的基于大规模粗粒度可重构计算系统及其处理方法。
背景技术
通用处理器(GPP,General Purpose Processor)与专用集成电路(ASIC,Application Specific Integrated Circuit)是实现信息领域中加解密算法的两大主流方法。然而,虽然ASIC实现方式可以通过对特定密码算法进行数据通路与流水线的优化从而达到极高的性能和面积和能量效率,但是该实现方式灵活性差,难以满足密码算法可重构的需求,不是理想的实现方案。GPP实现则采用指令驱动的方式执行,其数据通路采用通用的体系结构,可以适应各种类型的应用,具有较高的灵活性。GPP作为密码算法的实现方案能够充分满足其可重构的需求,通过指令编程GPP可以快速支持不同的密码算法。但由于GPP中都是通用指令,且其计算架构没有针对密码算法的特征做优化,所以密码算法中的S盒、置换等核心计算模块在GPP上的运算速度很慢,从而导致了算法整体性能低下。
可重构计算结合了GPP与ASIC的优点,既拥有GPP的灵活性,也具有ASIC的高效率特性,能够较好地满足众多复杂应用的计算要求。在可重构计算中,计算资源的功能和其之间的互连结构可以根据计算任务的不同而改变;在执行运算前,可以对计算资源和互连结构进行配置,一旦配置完成,可重构计算的执行方式即与ASIC一致,均为数据驱动型,因此可以获得较高的计算性能。
目前国内外的科研机构和公司提出了多种不同的粗粒度可重构架构,如COBRA,ProDFA,Cryptoraptor等。但是,这些阵列的配置系统与计算阵列较为简单,而在SKINNY-128-128加密算法方法的运算中,执行轮数较多,产生的中间缓存数据量大,因此运算的效率和速度较低。传统的可重构计算系统在SKINNY-128-128加密算法的面积效率和能量效率方面存在较大问题。
发明内容
为了克服现有技术中存在的不足,本发明的目的是提供一种基于粗粒度可重构计算单元的SKINNY-128-128加密算法系统,利用可重构技术计算资源多、功能可动态配置、并行展开能力强等优点,提高了加密运算的效率和速度。本发明采用的技术方案是:
一种基于粗粒度可重构计算单元的SKINNY-128-128加密算法系统,包括可重构配置系统、可重构数据通路及计算模块、主控微处理器、系统总线;
所述可重构配置系统包括配置信息初始化接口、多级配置信息存储单元、配置信息解析模块、位置信息寄存器;
所述可重构数据通路及计算模块包括可重构计算阵列、寄存器通道、中间结果存储单元、输入先进先出寄存器组、输出先进先出寄存器组。
进一步地,
可重构配置系统中,配置信息初始化接口用于对接主控微处理器,以接收配置信息;多级配置信息存储单元用于缓存配置信息;配置信息解析模块用于对接收的配置信息进行格式解析;位置信息寄存器用于缓存格式解析后的配置信息,供可重构数据通路及计算模块读取;
所述配置信息寄存器的输出端连接可重构数据通路及计算模块;
所述可重构计算阵列包括可重构计算单元块,可重构计算单元块包括多行算子、读控制模块、写控制模块;其中,算子包括逻辑运算、算术运算、移位运算、查表运算和置换运算功能;
所述读控制模块和写控制模块用于完成可重构计算单元块与输入先进先出寄存器组、输出先进先出寄存器组、寄存器通道、中间结果存储单元的数据读写控制;
所述主控微处理器通过系统总线与配置信息初始化接口、输入先进先出寄存器组、输出先进先出寄存器组相连;所述的输入先进先出寄存器组与可重构计算阵列的输入相连,可重构计算阵列的输出与输出先进先出寄存器相连;所述的寄存器通道、中间结果存储单元与可重构计算阵列相连;
通过分析SKINNY-128-128加密算法的计算特征来确定其加密算法的运算流程,将SKINNY-128-128加密算法的若干轮运算展开成一幅数据流图映射到可重构计算阵列中,通过依次映射多幅数据流图最终完成SKINNY-128-128加密算法的整个运算;主控微处理器在每次映射均生成相应配置信息,并将配置信息发送至可重构计算阵列,完成对可重构计算阵列的加密配置;
主控微处理器通过系统总线发送明文数据给可重构数据通路及计算模块,可重构数据通路及计算模块将明文数据存入输入先入先出寄存器组,可重构计算阵列完成加密运算后输出密文数据到输出先入先出寄存器组,并向主控微处理器发送中断信号,微处理器接受到中断信号后,读出存储于输出先入先出寄存器组中的密文数据。
进一步地,
所述的可重构数据通路及计算模块包括1个可重构计算阵列、1个中间结果存储单元、1个寄存器通道、1个输入先入先出寄存器组和1个输出先入先出寄存器组;其中,1个可重构计算阵列通过1个中间结果存储单元和1个寄存器通道互相进行数据的储存、读取和传递;所述的1个可重构计算阵列包括M个可重构计算单元块,其中M为正整数。
进一步地,
所述的可重构计算单元块包含N行计算资源,每N行计算资源共享1个读控制模块和1个写控制模块,其中N为正偶数;其中,奇数行和偶数行的算子类型不同。
进一步地,
所述的N行计算资源中,每行包括P个算子,P为正整数;奇数行的算子包含逻辑运算、算术运算、移位运算、置换运算;偶数行的算子包含逻辑运算、算术运算、移位运算、查表运算;其中,逻辑运算包括一个操作数的直通操作、取反操作,两个操作数的异或操作、与操作、或操作;算术运算包括两个算子的加法操作、带取模的加法操作;移位运算包括算术左移操作、循环左移操作、算术右移操作、循环右移操作;查表运算包括最多4路并行的查表操作,查表操作数据位宽从4比特到32比特;置换运算支持64比特数据的任意置换。
进一步地,
所述的每行P个算子,每个算子最多有4个输入和最多有4个输出,除了置换运算的算子外,其余算子每个输入和输出的数据位宽不大于32比特。
进一步地,
该系统的加密算法包括如下步骤,对于密钥长度为128比特,明文数据位宽为128比特,40轮迭代的加密算法,按步骤(1)~(6)顺序操作,其中步骤(1)执行1次,步骤(2)~(6)依次循环执行40次;
(1)初始化:常数c和密钥k依次通过可重构计算单元块中算子的直通操作,存储到中间结果存储单元中;
可重构计算单元块中查找表的值由主控微处理器通过配置信息初始化接口写入到可重构计算阵列中;
(2)计算查表结果A[i]:将明文数据p_text[i]读取到可重构计算单元块中,将算子配置成查表功能,根据明文数据p_text[i]查询查找表,完成查表结果的计算(其中0 ≤i ≤127);
(3)计算常数加结果B[i]:将算子配置成异或操作,将A[i]与中间结果存储器中的常数c进行异或,完成常数加的结果计算;
(4)计算行移位结果C[i]:将算子配置成移位功能,对B[i]完成行移位计算,得到行移位结果C[i];
(5)计算密钥加结果D[i]:首先将一行计算资源配置成置换操作,对密钥进行更新得到rk[i],再将下一行计算资源的算子配置成异或和直通,通过计算C[127:64]与rk[127:64]的异或值,其余位置的数据直通操作,完成密钥加结果的计算;
(6)计算密文结果c_text[i]:对D[i]进行列混淆计算:将两行算子配置成异或和直通操作,D[31:0]与D[63:32]异或后再与D[95:64]异或得到c_text[31:0],D[31:0]直通操作得到c_text[63:32],D[31:0]与D[63:32]异或得到c_text[95:64];D[31:0]与D[95:64]异或后得到c_text[127:96]。
一种基于粗粒度可重构计算单元的SKINNY-128-128加密算法的实现方法,包括以下步骤:
(1)分析SKINNY-128-128加密算法的计算特点,并完成数据流图的设计;
(2)确定数据流图之后,针对可重构计算阵列中可重构计算单元块的硬件特点,将数据流图映射到可重构计算阵列上,并生成配置信息;
(3)由主控微处理器将可重构计算阵列的配置信息以及加密算法的各初始数据发送至可重构计算阵列;
(4)主控微处理器向可重构计算单元块发起开始加密的命令,完成对其的配置,并启动对明文数据的加密过程;
(5)可重构计算阵列完成当前加密任务后,发送中断信号,主控微处理器接受到中断信号,完成加密过程。
本发明的优点在于:本发明利用可重构技术计算资源多、功能可动态配置、并行展开能力强等优点,在保障可重构架构灵活性的同时,通过提高对SKINNY-128-128加密算法算法的并行计算展开程度、优化中间数据存储方式等方法以实现SKINNY-128-128加密算法算法的高效运算。
附图说明
图1为本发明的加密算法系统框图。
图2a和图2b为本发明的算法在可重构计算单元块上的运算流程图。
具体实施方式
下面结合具体附图和实施例对本发明作进一步说明。
如图1所示,本发明提出的一种基于粗粒度可重构计算单元的SKINNY-128-128加密算法系统,包括可重构配置系统、可重构数据通路及计算模块、主控微处理器、系统总线;
所述可重构配置系统包括配置信息初始化接口、多级配置信息存储单元、配置信息解析模块、位置信息寄存器;其中配置信息初始化接口用于对接主控微处理器,以接收配置信息;多级配置信息存储单元用于缓存配置信息;配置信息解析模块用于对接收的配置信息进行格式解析;位置信息寄存器用于缓存格式解析后的配置信息,供可重构数据通路及计算模块读取;
所述可重构数据通路及计算模块包括可重构计算阵列、寄存器通道、中间结果存储单元、输入先进先出寄存器组、输出先进先出寄存器组;
所述配置信息寄存器的输出端连接可重构数据通路及计算模块;
所述可重构计算阵列包括可重构计算单元块,可重构计算单元块包括多行算子、读控制模块、写控制模块;其中,算子包括逻辑运算、算术运算、移位运算、查表运算和置换运算功能;
所述读控制模块和写控制模块用于完成可重构计算单元块与输入先进先出寄存器组、输出先进先出寄存器组、寄存器通道、中间结果存储单元的数据读写控制;
所述主控微处理器通过系统总线与配置信息初始化接口、输入先进先出寄存器组、输出先进先出寄存器组相连;所述的输入先进先出寄存器组与可重构计算阵列的输入相连,可重构计算阵列的输出与输出先进先出寄存器相连;所述的寄存器通道、中间结果存储单元与可重构计算阵列相连;
通过分析SKINNY-128-128加密算法的计算特征来确定其加密算法的运算流程,将SKINNY-128-128加密算法的若干轮运算展开成一幅数据流图映射到可重构计算阵列中,通过依次映射多幅数据流图最终完成SKINNY-128-128加密算法的整个运算;主控微处理器在每次映射均生成相应配置信息,并将配置信息发送至可重构计算阵列,完成对可重构计算阵列的加密配置;
主控微处理器通过系统总线发送明文数据给可重构数据通路及计算模块,可重构数据通路及计算模块将明文数据存入输入先入先出寄存器组,可重构计算阵列完成加密运算后输出密文数据到输出先入先出寄存器组,并向主控微处理器发送中断信号,微处理器接受到中断信号后,读出存储于输出先入先出寄存器组中的密文数据。
所述的可重构数据通路及计算模块包括1个可重构计算阵列、1个中间结果存储单元、1个寄存器通道、1个输入先入先出寄存器组和1个输出先入先出寄存器组;其中,1个可重构计算阵列通过1个中间结果存储单元和1个寄存器通道互相进行数据的储存、读取和传递;所述的1个可重构计算阵列包括M个可重构计算单元块,其中M为正整数;作为优选方案,1个可重构计算阵列包括4个可重构计算单元块;
所述的可重构计算单元块包含N行计算资源,每N行计算资源共享1个读控制模块和1个写控制模块,其中N为正偶数;其中,奇数行和偶数行的算子类型不同;
所述的N行计算资源中,每行包括P个算子,P为正整数;奇数行的算子包含逻辑运算、算术运算、移位运算、置换运算;偶数行的算子包含逻辑运算、算术运算、移位运算、查表运算;其中,逻辑运算包括一个操作数的直通操作、取反操作,两个操作数的异或操作、与操作、或操作;算术运算包括两个算子的加法操作、带取模的加法操作;移位运算包括算术左移操作、循环左移操作、算术右移操作、循环右移操作;查表运算包括最多4路并行的查表操作,查表操作数据位宽从4比特到32比特;置换运算由1个64比特的无阻塞网络构成,支持64比特数据的任意置换。作为优选方案,所述的可重构计算单元块包含8行计算资源,每行包括4个算子。
所述的每行P个算子,每个算子最多有4个输入和最多有4个输出,除了置换运算的算子外,其余算子每个输入和输出的数据位宽不大于32比特。
如图2a、图2b所示为加密算法在可重构计算阵列上的执行流图,该系统的加密算法包括如下步骤,对于密钥长度为128比特,明文数据位宽为128比特,40轮迭代的加密算法,按步骤(1)~(6)顺序操作,其中步骤(1)执行1次,步骤(2)~(6)依次循环执行40次;
(1)初始化:常数c和密钥k依次通过可重构计算单元块中算子的直通操作,存储到中间结果存储单元中;直通操作如图2a中第0行计算资源所示;逻辑运算、算术运算、移位运算、查表运算的算子支持32位的操作,置换运算的算子支持64位的操作;
可重构计算单元块中查找表的值由主控微处理器通过配置信息初始化接口写入到可重构计算阵列中;
(2)计算查表结果A[i]:将明文数据p_text[i]读取到可重构计算单元块中,将算子配置成查表功能,根据明文数据p_text[i]查询查找表,完成查表结果的计算(其中0 ≤i ≤127);如图2b中第0行计算资源所示;
(3)计算常数加结果B[i]:将算子配置成异或操作,将A[i]与中间结果存储器中的常数c进行异或,完成常数加的结果计算;如图2b中第1行计算资源所示;
(4)计算行移位结果C[i]:将算子配置成移位功能,对B[i]完成行移位计算,得到行移位结果C[i];如图2b中第2行计算资源所示;
(5)计算密钥加结果D[i]:首先将一行计算资源配置成置换操作,对密钥进行更新得到rk[i],再将下一行计算资源的算子配置成异或和直通,通过计算C[127:64]与rk[127:64]的异或值,其余位置的数据直通操作,完成密钥加结果的计算;如图2b中第3、4行计算资源所示;
(6)计算密文结果c_text[i]:对D[i]进行列混淆计算:将两行算子配置成异或和直通操作,
D[31:0]与D[63:32]异或后再与D[95:64]异或得到c_text[31:0];如图2b中第5行中的第一个算子(异或)和第6行中的第一个算子(异或)所示;
D[31:0]直通操作得到c_text[63:32];如图2b中第5行中的第二个算子(直通)和第6行中的第二个算子(直通)所示;
D[31:0]与D[63:32]异或后得到c_text[95:64];如图2b中第5行中的第三个算子(异或)和第6行中的第四个算子(直通)所示;
D[31:0]与D[95:64]异或后得到c_text[127:96];如图2b中第5行中的第四个算子(异或)和第6行中的第四个算子(直通)所示。
基于粗粒度可重构计算单元的SKINNY-128-128加密算法的实现方法,其特征在于:包括以下步骤:
(1)分析SKINNY-128-128加密算法的计算特点,并完成数据流图的设计;
(2)确定数据流图之后,针对可重构计算阵列中可重构计算单元块的硬件特点,在了解其配置系统、数据通路、计算阵列等各功能模块的作用机制的情况下,将数据流图映射到可重构计算阵列上,并生成配置信息;
(3)由主控微处理器将可重构计算阵列的配置信息以及加密算法的各初始数据发送至可重构计算阵列;
(4)主控微处理器向可重构计算单元块发起开始加密的命令,完成对其的配置,并启动对明文数据的加密过程;
(5)可重构计算阵列完成当前加密任务后,发送中断信号,主控微处理器接受到中断信号,完成加密过程。
由此实现SKINNY-128-128加密算法方法。
最后所应说明的是,以上具体实施方式仅用以说明本发明的技术方案而非限制,尽管参照实例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。

Claims (3)

1.一种基于粗粒度可重构计算单元的SKINNY-128-128加密算法系统,其特征在于,包括可重构配置系统、可重构数据通路及计算模块、主控微处理器、系统总线;
所述可重构配置系统包括配置信息初始化接口、多级配置信息存储单元、配置信息解析模块、配置信息寄存器;
所述可重构数据通路及计算模块包括可重构计算阵列、寄存器通道、中间结果存储单元、输入先进先出寄存器组、输出先进先出寄存器组;
可重构配置系统中,配置信息初始化接口用于对接主控微处理器,以接收配置信息;多级配置信息存储单元用于缓存配置信息;配置信息解析模块用于对接收的配置信息进行格式解析;配置信息寄存器用于缓存格式解析后的配置信息,供可重构数据通路及计算模块读取;
所述配置信息寄存器的输出端连接可重构数据通路及计算模块;
所述可重构计算阵列包括可重构计算单元块,可重构计算单元块包括多行算子、读控制模块、写控制模块;其中,算子包括逻辑运算、算术运算、移位运算、查表运算和置换运算功能;
所述读控制模块和写控制模块用于完成可重构计算单元块与输入先进先出寄存器组、输出先进先出寄存器组、寄存器通道、中间结果存储单元的数据读写控制;
所述主控微处理器通过系统总线与配置信息初始化接口、输入先进先出寄存器组、输出先进先出寄存器组相连;所述的输入先进先出寄存器组与可重构计算阵列的输入相连,可重构计算阵列的输出与输出先进先出寄存器相连;所述的寄存器通道、中间结果存储单元与可重构计算阵列相连;
通过分析SKINNY-128-128加密算法的计算特征来确定其加密算法的运算流程,将SKINNY-128-128加密算法的若干轮运算展开成一幅数据流图映射到可重构计算阵列中,通过依次映射多幅数据流图最终完成SKINNY-128-128加密算法的整个运算;主控微处理器在每次映射均生成相应配置信息,并将配置信息发送至可重构计算阵列,完成对可重构计算阵列的加密配置;
主控微处理器通过系统总线发送明文数据给可重构数据通路及计算模块,可重构数据通路及计算模块将明文数据存入输入先入先出寄存器组,可重构计算阵列完成加密运算后输出密文数据到输出先入先出寄存器组,并向主控微处理器发送中断信号,微处理器接受到中断信号后,读出存储于输出先入先出寄存器组中的密文数据;
所述的可重构数据通路及计算模块包括1个可重构计算阵列、1个中间结果存储单元、1个寄存器通道、1个输入先入先出寄存器组和1个输出先入先出寄存器组;其中,1个可重构计算阵列通过1个中间结果存储单元和1个寄存器通道互相进行数据的储存、读取和传递;所述的1个可重构计算阵列包括M个可重构计算单元块,其中M为正整数;
所述的可重构计算单元块包含N行计算资源,每N行计算资源共享1个读控制模块和1个写控制模块,其中N为正偶数;其中,奇数行和偶数行的算子类型不同;
所述的N行计算资源中,每行包括P个算子,P为正整数;奇数行的算子包含逻辑运算、算术运算、移位运算、置换运算;偶数行的算子包含逻辑运算、算术运算、移位运算、查表运算;其中,逻辑运算包括一个操作数的直通操作、取反操作,两个操作数的异或操作、与操作、或操作;算术运算包括两个算子的加法操作、带取模的加法操作;移位运算包括算术左移操作、循环左移操作、算术右移操作、循环右移操作;查表运算包括最多4路并行的查表操作,查表操作数据位宽从4比特到32比特;置换运算支持64比特数据的任意置换。
2.如权利要求1所述的基于粗粒度可重构计算单元的SKINNY-128-128加密算法系统,其特征在于,
所述的每行P个算子,每个算子最多有4个输入和最多有4个输出,除了置换运算的算子外,其余算子每个输入和输出的数据位宽不大于32比特。
3.如权利要求1~2中任一项所述的基于粗粒度可重构计算单元的SKINNY-128-128加密算法系统,其特征在于,
该系统的加密算法包括如下步骤,对于密钥长度为128比特,明文数据位宽为128比特,40轮迭代的加密算法,按步骤(1)~(6)顺序操作,其中步骤(1)执行1次,步骤(2)~(6)依次循环执行40次;
(1)初始化:常数c和密钥k依次通过可重构计算单元块中算子的直通操作,存储到中间结果存储单元中;
可重构计算单元块中查找表的值由主控微处理器通过配置信息初始化接口写入到可重构计算阵列中;
(2)计算查表结果A[i]:将明文数据p_text[i]读取到可重构计算单元块中,将算子配置成查表功能,根据明文数据p_text[i]查询查找表,完成查表结果的计算;其中0 ≤ i ≤127;
(3)计算常数加结果B[i]:将算子配置成异或操作,将A[i]与中间结果存储器中的常数c进行异或,完成常数加的结果计算;
(4)计算行移位结果C[i]:将算子配置成移位功能,对B[i]完成行移位计算,得到行移位结果C[i];
(5)计算密钥加结果D[i]:首先将一行计算资源配置成置换操作,对密钥进行更新得到rk[i],再将下一行计算资源的算子配置成异或和直通,通过计算C[127:64]与rk[127:64]的异或值,其余位置的数据直通操作,完成密钥加结果的计算;
(6)计算密文结果c_text[i]:对D[i]进行列混淆计算:将两行算子配置成异或和直通操作,D[31:0]与D[63:32]异或后再与D[95:64]异或得到c_text[31:0],D[31:0]直通操作得到c_text[63:32],D[31:0]与D[63:32]异或得到c_text[95:64];D[31:0]与D[95:64]异或后得到c_text[127:96]。
CN201910284904.4A 2019-04-10 2019-04-10 基于粗粒度可重构计算单元的skinny-128-128加密算法实现方法及系统 Active CN110059493B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910284904.4A CN110059493B (zh) 2019-04-10 2019-04-10 基于粗粒度可重构计算单元的skinny-128-128加密算法实现方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910284904.4A CN110059493B (zh) 2019-04-10 2019-04-10 基于粗粒度可重构计算单元的skinny-128-128加密算法实现方法及系统

Publications (2)

Publication Number Publication Date
CN110059493A CN110059493A (zh) 2019-07-26
CN110059493B true CN110059493B (zh) 2023-04-07

Family

ID=67318696

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910284904.4A Active CN110059493B (zh) 2019-04-10 2019-04-10 基于粗粒度可重构计算单元的skinny-128-128加密算法实现方法及系统

Country Status (1)

Country Link
CN (1) CN110059493B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110795748B (zh) * 2019-10-24 2021-12-14 清华大学无锡应用技术研究院 基于可重构计算阵列实现流密码算法的方法、系统及介质
CN111897580B (zh) * 2020-09-29 2021-01-12 北京清微智能科技有限公司 一种可重构阵列处理器的指令调度系统及方法
CN113064852B (zh) * 2021-03-24 2022-06-10 珠海一微半导体股份有限公司 一种可重构处理器及配置方法
CN114661656B (zh) * 2022-05-25 2022-08-30 广州万协通信息技术有限公司 一种可重构阵列配置方法、装置、设备以及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104933008A (zh) * 2015-06-24 2015-09-23 东南大学 可重构系统和可重构阵列结构及其应用
CN105335331A (zh) * 2015-12-04 2016-02-17 东南大学 一种基于大规模粗粒度可重构处理器的sha256实现方法及系统
CN105718421A (zh) * 2016-01-25 2016-06-29 东南大学 一种面向多个粗粒度动态可重构阵列的数据缓存更新系统
CN105912501A (zh) * 2016-05-06 2016-08-31 东南大学—无锡集成电路技术研究所 一种基于大规模粗粒度可重构处理器的sm4-128加密算法实现方法及系统
CN105975251A (zh) * 2016-05-19 2016-09-28 东南大学—无锡集成电路技术研究所 一种基于粗粒度可重构架构的des算法轮迭代系统及迭代方法
CN109672524A (zh) * 2018-12-12 2019-04-23 东南大学 基于粗粒度可重构架构的sm3算法轮迭代系统及迭代方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104933008A (zh) * 2015-06-24 2015-09-23 东南大学 可重构系统和可重构阵列结构及其应用
CN105335331A (zh) * 2015-12-04 2016-02-17 东南大学 一种基于大规模粗粒度可重构处理器的sha256实现方法及系统
CN105718421A (zh) * 2016-01-25 2016-06-29 东南大学 一种面向多个粗粒度动态可重构阵列的数据缓存更新系统
CN105912501A (zh) * 2016-05-06 2016-08-31 东南大学—无锡集成电路技术研究所 一种基于大规模粗粒度可重构处理器的sm4-128加密算法实现方法及系统
CN105975251A (zh) * 2016-05-19 2016-09-28 东南大学—无锡集成电路技术研究所 一种基于粗粒度可重构架构的des算法轮迭代系统及迭代方法
CN109672524A (zh) * 2018-12-12 2019-04-23 东南大学 基于粗粒度可重构架构的sm3算法轮迭代系统及迭代方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"基于粗粒度可重构密码阵列的AES算法映射实现";李远铭 等;《计算机应用与软件》;20180331;第35卷(第3期);304-308+326 *
"面向分组密码算法的粗粒度可重构架构高能效设计与优化";李兆奇;《中国优秀硕士学位论文全文数据库 信息科技辑》;20180415(第4期);I137-63 *
改进的SKINNY算法的不可能差分分析;洪豆等;《密码学报》;20180415(第02期);126-139 *

Also Published As

Publication number Publication date
CN110059493A (zh) 2019-07-26

Similar Documents

Publication Publication Date Title
CN110321162B (zh) 基于粗粒度可重构计算单元的present加密算法实现方法及系统
CN110059493B (zh) 基于粗粒度可重构计算单元的skinny-128-128加密算法实现方法及系统
EP3550764B1 (en) Hardware accelerators and methods for high-performance authenticated encryption
CN105912501B (zh) 一种基于大规模粗粒度可重构处理器的sm4-128加密算法实现方法及系统
US9900770B2 (en) Instruction for accelerating SNOW 3G wireless security algorithm
US8189792B2 (en) Method and apparatus for performing cryptographic operations
US11121856B2 (en) Unified AES-SMS4—Camellia symmetric key block cipher acceleration
CN105335331B (zh) 一种基于大规模粗粒度可重构处理器的sha256实现方法及系统
CN111563281B (zh) 一种支持多种加解密算法的处理器及其实现方法
CN105975251B (zh) 一种基于粗粒度可重构架构的des算法轮迭代系统及迭代方法
US20170052789A1 (en) Instruction for fast zuc algorithm processing
CN104933008A (zh) 可重构系统和可重构阵列结构及其应用
CN115664640B (zh) Sha-3算法的硬件实现方法、系统、存储介质及设备
WO2006011957A1 (en) Apparatus and method for performing md5 digesting
CN115525342A (zh) 一种sm3密码杂凑算法的加速方法及指令集处理器
CN106021171A (zh) 一种基于大规模粗粒度可重构处理器的sm4-128的密钥扩展实现方法及系统
CN109144472B (zh) 一种二元扩域椭圆曲线的标量乘法及其实现电路
CN109672524B (zh) 基于粗粒度可重构架构的sm3算法轮迭代系统及迭代方法
KR100453230B1 (ko) 초타원곡선 암호화 프로세싱 장치
CN107203487B (zh) 一种抗功耗攻击的安全可重构架构
US7181009B1 (en) Generating message digests according to multiple hashing procedures
CN115883059A (zh) 一种aes运算电路及方法
Satoh et al. High-Speed MARS Hardware.
CN115967484A (zh) 基于可重构密码算法的共享平衡算子循环阵列映射方法
Dai et al. The research and implementation of reconfigurable processor architecture for block cipher processing

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
GR01 Patent grant
GR01 Patent grant