CN105975251B - 一种基于粗粒度可重构架构的des算法轮迭代系统及迭代方法 - Google Patents

一种基于粗粒度可重构架构的des算法轮迭代系统及迭代方法 Download PDF

Info

Publication number
CN105975251B
CN105975251B CN201610334436.3A CN201610334436A CN105975251B CN 105975251 B CN105975251 B CN 105975251B CN 201610334436 A CN201610334436 A CN 201610334436A CN 105975251 B CN105975251 B CN 105975251B
Authority
CN
China
Prior art keywords
information
data
reconfigurable arrays
unit
block
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
CN201610334436.3A
Other languages
English (en)
Other versions
CN105975251A (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.)
Southeast University - Wuxi Institute Of Technology Integrated Circuits
Original Assignee
Southeast University - Wuxi Institute Of Technology Integrated Circuits
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 Southeast University - Wuxi Institute Of Technology Integrated Circuits filed Critical Southeast University - Wuxi Institute Of Technology Integrated Circuits
Priority to CN201610334436.3A priority Critical patent/CN105975251B/zh
Publication of CN105975251A publication Critical patent/CN105975251A/zh
Application granted granted Critical
Publication of CN105975251B publication Critical patent/CN105975251B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30134Register stacks; shift registers

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Logic Circuits (AREA)

Abstract

本发明公开了一种基于粗粒度可重构架构的DES算法轮迭代系统及迭代方法,包括系统总线、可重构处理器和微处理器;所述可重构处理器包括配置单元、输入先进先出寄存器组、输出先进先出寄存器组、通用寄存器堆、M个可重构阵列块、查找表,本发明利用可重构技术的并行性处理、运算模块独立可配置等优点,在支持一定的灵活性的同时,通过提高对DES算法的并行度以及优化流水线等方法实现了DES算法的高效运算。

Description

一种基于粗粒度可重构架构的DES算法轮迭代系统及迭代 方法
技术领域
本发明涉及一种应用于通信、加密等领域的基于大规模粗粒度嵌入式可重构系统及其处理方法,属于嵌入式可重构系统领域。
背景技术
通用处理器与专用集成电路(ASIC)是传统的计算机系统结构领域的两大主流方法。然而,随着应用领域对系统的性能、能耗、上市时间等指标需求的不断提高,这两种传统计算模式的弊端就暴露出来。
通用处理器方法适用范围广,但是计算效率低,专用集成电路虽然可以提高计算速度和计算效率,满足性能需求,但是ASIC器件的灵活性很差。
为了在灵活性和计算效率之间实现很好的权衡,可重构计算(reconfigurablecomputing)技术应运而生。可重构计算是当前计算机系统结构领域的发展趋势之一,它的架构介于通用处理器和ASIC之间,并且综合了二者长处。它通过对可重构设备进行配置,可以使之由一个通用的计算平台转化为一个专用的硬件系统,以完成具体的计算任务,相当于计算任务同时在时间和空间上展开,显示出了应用的灵活性和很高的计算性能。此外,可重构计算技术还具有系统能耗低、可靠性高、上市时间短等优势。这些优势使得可重构计算技术在各个应用领域尤其是嵌入式应用领域有着广阔的应用前景。很多在嵌入式领域中的主流应用,例如多媒体应用、加/解密应用以及通信应用等都非常适合利用可重构计算技术实现。当前的可重构计算技术主要还是用于尖端技术领域中的计算平台,但随着可重构逻辑器件成本逐渐降低,运行时可重构计算技术不断完善,我们有理由相信可重构计算技术具备的种种优势会使其在更多的领域里大有作为。
目前国内外已研究有多重可重构系统,如ReMAP,AsAP,DRP等。但是,这些阵列的互联方式较为简单,在DES算法轮迭代运算中需要大量的比特移位以及较多的轮数,因此运算的效率和速度较低。传统的可重构计算系统在DES的运算效率与运算周期方面存在较大问题。
现有的中国专利201510886219.0,发明名称为:一种基于大规模粗粒度可重构处理器的SHA256实现方法及系统,其针对SHA256方法,通过将多轮迭代在可重构处理器中部分展开和中间结果数据缓存的方式进行优化和加速,但是对于DES算法来说,该方法及系统不适用。
发明内容
发明目的:为了克服现有技术中存在的不足,本发明提供一种基于粗粒度可重构架构的DES算法轮迭代系统及迭代方法,本发明利用可重构技术的并行性处理、运算模块独立可配置等优点,在支持一定的灵活性的同时,通过提高对DES算法的并行度以及优化流水线等方法实现了DES算法的高效运算。
技术方案:为实现上述目的,本发明采用的技术方案为:
一种基于粗粒度可重构架构的DES算法轮迭代系统,包括系统总线、可重构处理器和微处理器。
所述可重构处理器包括配置单元、输入先进先出寄存器组、输出先进先出寄存器组、通用寄存器堆、M个可重构阵列块、查找表,所述配置单元的进线口通过系统总线与微处理器连接,且配置单元的出线口分别与可重构阵列块连接。而所述输入先进先出寄存器组通过系统总线与微处理器连接。这M个可重构阵列块分别为第1个可重构阵列块、第2个可重构阵列块、…、第m个可重构阵列块、…、第M个可重构阵列块,1≤m≤M,m,M取整数。所述第1个可重构阵列块与输入先进先出寄存器组连接,而第M个可重构阵列块与输出先进先出寄存器组连接,且这M个可重构阵列块均与通用寄存器堆和查找表连接。这M个可重构阵列块之间通过通用寄存器堆互相进行数据的储存、读取和传递。所述输出先进先出寄存器组通过系统总线与微处理器连接。其中:
微处理器通过分析DES的特征来确定轮迭代的运算流程,将多轮的轮迭代运算展开成一幅数据流图映射到可重构处理器中形成配置信息发送给配置单元。微处理器通过系统总线发送明文数据给可重构处理器,明文数据将存入输入先进先出寄存器组。微处理器并将初始数据、生成的密钥和计算的中间数据存入通用寄存器堆中用于数据流图的多轮迭代。
所述配置单元用于存储配置信息,并将配置信息发送给各个可重构阵列块。
第1个可重构阵列块用于获取输入先进先出寄存器组的明文数据和读取其对应的配置单元的配置信息。第1个可重构阵列块根据配置信息对明文数据进行初始轮迭代得到初始中间信息。根据配置信息将初始中间信息载入下一个可重构阵列块中,用于下一个可重构阵列块的运算。
对于第p个可重构阵列块,2≤p≤M-1,第p个可重构阵列块用于获取第(p-1)个可重构阵列块的中间信息、读取其对应的配置单元的配置信息以及读取查找表的查找表信息。通过第p个读端口运算行选择器读取通用寄存器堆中存储的密钥。所述第p个可重构阵列块根据配置信息对第(p-1)个可重构阵列块的中间信息、查找表信息、密钥进行轮迭代,得到第p个可重构阵列块的的中间信息。
对于第M个可重构阵列块,第M个可重构阵列块用于获取第(M-1)个可重构阵列块的中间信息和读取其对应的配置单元的配置信息。第M个可重构阵列块根据配置信息对第(M-1)个可重构阵列块的中间信息进行逆变换获取密文。
优选的:所述配置单元包括依次连接在一起的配置与控制接口、配置存储器和配置解析模块,且所述配置与控制接口和系统总线连接。微处理器依次通过系统总线和配置与控制接口将所需要的配置信息发送给配置存储器,所述配置存储器存储发送过来的配置信息,而配置解析模块用于解析配置存储器的配置信息,且将解析的配置信息发送给可重构阵列块,实现对可重构阵列块的配置、启动以及切换操作。
优选的:所述可重构阵列块包括读端口运算行选择器、写端口运算行选择器以及N行可重构阵列运算行,且这N行可重构阵列运算行共享读端口运算行选择器和写端口运算行选择器。其中,第m个可重构阵列块中的读端口运算行选择器记为第m个读端口运算行选择器,第m个可重构阵列块中的写端口运算行选择器记为第m个写端口运算行选择器,第m个可重构阵列块中的第n行可重构阵列运算行记为第行可重构阵列运算行,1≤m≤M,1≤n≤N,M为可重构阵列块的个数,N为可重构阵列块包括的可重构阵列运算行的行数,m,n,M,N取整数。且所述可重构阵列块之间按顺序依次连接,而每个可重构阵列块内部的可重构阵列运算行之间按顺序依次连接。
在轮迭代中可重构阵列块运算得到的中间数据通过写端口运算行选择器存在通用寄存器堆中,而在轮迭代中可重构阵列块运算需要得到的中间数据通过读端口运算行选择器读取通用寄存器堆中存储的信息。
行可重构阵列运算行与输入先进先出寄存器组相连,同时第行可重构阵列运算行与输出先进先出寄存器组相连,每个可重构阵列块都有一个连至查找表的读端口,同时每个可重构阵列块中都只能选择一行可重构阵列行用于查找表查表。可重构阵列运算行可通过通用寄存器堆读出各种缓冲数据以及各种临时的消息摘要,同时可以向通用寄存器堆写入消息摘要的每轮计算的扩展密钥,这些密钥被用于后续加密计算。
在第1个可重构阵列块中,第行可重构阵列运算行输入先进先出寄存器组中的明文数据,通过第1个读端口运算行选择器读取配置单元的配置信息。同时通过第1个读端口运算行选择器读取通用寄存器堆中的存储的密钥。第行可重构阵列运算行根据配置信息对明文数据和密钥进行轮迭代计算得到下一个可重构阵列块轮迭代的中间数据。并将此中间数据通过第1个写端口运算行选择器写入通用寄存器堆中。
对于第p个可重构阵列块,2≤p≤M-1。第p个可重构阵列块中的第行可重构阵列运算行从通用寄存器堆中载入第(p-1)个可重构阵列块的中间数据。同时通过第p个写端口运算行选择器写入通用寄存器堆中的密钥。通过查找表查找到查找表信息。和通过第p个读端口运算行选择器读取配置单元的配置信息。第p个可重构阵列块根据配置信息对第(p-1)个可重构阵列块的中间数据、密钥、查找表信息进行轮迭代运算,得到第p个可重构阵列块的中间数据,将此中间数据通过第p个写端口运算行选择器写入通用寄存器堆中,用于下一个可重构阵列块轮迭代计算。
对于第M个可重构阵列块,第M个可重构阵列块中的第行可重构阵列运算行从通用寄存器堆中载入第(M-1)个可重构阵列块的中间数据。第M个可重构阵列块根据配置信息对第(M-1)个可重构阵列块的中间信息进行逆变换获取密文。
优选的:每行可重构阵列运算行均包括X1个数据载入单元、X2个数据输出单元、X3个字节置换网络、X4个比特置换网络和X5个8位算术逻辑单元,字节置换网络与比特置换网络组成置换网络,字节置换网络与比特置换网络的输出X5个8位的数据分别固定对应于X5个8位算术逻辑单元。每个算术逻辑单元使用对应的读端口运算行选择器选择任意三个置换网络的输出作为其输入。第m个可重构阵列块第n行可重构阵列运算行的第k1个数据载入单元记为第个数据载入单元,第m个可重构阵列块第n行可重构阵列运算行的第k2个数据输出单元记为第个数据输出单元,第m个可重构阵列块第n行可重构阵列运算行的第k3个字节置换网络记为第个字节置换网络,第m个可重构阵列块第n行可重构阵列运算行的第k4个比特置换网络记为第个比特置换网络,第m个可重构阵列块第n行可重构阵列运算行的第k5个数据载入单元记为第个算术逻辑单元,1≤k1≤X1,1≤k2≤X2,1≤k3≤X3,1≤k4≤X4,1≤k5≤X5,k1,k2,k3,k4,k5,X1,X2,X3,X4和X5均取整数。第m个读端口运算行选择器读取的上一步的中间数据以及接收解析配置解析模块的配置信息来选择中间数据流入的字节置换网络和比特置换网络。
个数据载入单元载入输入先进先出寄存器组中的数据,同时解析配置解析模块的配置信息。在通过第1个读端口运算行选择器读取通用寄存器堆中的存储的信息并根据解析的配置信息来选择数据流入的对应的置换网络,该置换网络为第个字节置换网络和第个比特置换网络。第个数据输出单元暂存其对应的第个算术逻辑单元的结果并读取配置信息决定将数据输出到输出先进先出寄存器组、下一行可重构阵列运算行或通用寄存器堆。
个数据载入单元解析配置解析模块的配置信息,在通过第m个读端口运算行选择器读取通用寄存器堆中存储的第m个可重构阵列运算块的运行数据信息,并根据解析的配置信息来选择数据流入的对应的置换网络,该置换网络为第个字节置换网络和第个比特置换网络。第个数据输出单元暂存其对应的第个算术逻辑单元的结果并读取配置信息决定将数据输出到输出先进先出寄存器组、下一行可重构阵列运算行或通用寄存器堆。
优选的:算术逻辑单元能够实现模加运算、异或运算、与运算、与非运算、直通输出运算操作。同时每个算术逻辑单元有最多3个输入和最多2个输出,其中算术逻辑单元执行上述运算操作的同时,支持任选一个输入作为输出。每4个8位的算术逻辑单元通过进位端口连接成为1个32位的算术逻辑单元。
优选的:所述可重构阵列块的个数为10个,各个可重构阵列块之间首尾依次连接在一起,通用寄存器堆的个数为1个,输入先进先出寄存器组的个数为1个,输出先进先出寄存器组的个数为1个。
优选的:每个可重构阵列块包括4行可重构阵列运算行、1个读端口运算行选择器和1个写端口运算行选择器。每行可重构阵列运算行包括2个数据载入单元、2个数据输入单元、16个8位算术运算单元、2个字节置换网络和2个比特置换网络。
一种基于粗粒度可重构架构的DES算法轮迭代方法,包括以下步骤。
步骤1,分析DES方法轮迭代的计算特点,并归纳出数据流图。
步骤2,根据数据流图中的运算流程,制定DES的数据输入方式。
步骤3,根据步骤2确定的数据输入方式以及步骤2确定的数据流图针对可重构处理器的特点配置可重构处理器,并生成配置信息。
步骤4,通过微处理器将配置信息以及可重构处理器初始数据存入相应的存储器中。
步骤5,微处理器启动可重构处理器,并将配置信息及待处理数据发送给可重构处理器。
步骤6,可重构处理器根据配置信息及待处理数据进行数据处理,当可重构处理器完成当前任务后,发送中断信号。并将处理好的数据通过通过系统总线发送给微处理器。
优选的,步骤6中可重构处理器根据配置信息及待处理数据进行数据处理的方法:
步骤61:第个数据载入单元从输入先进先出寄存器组中载入初始64比特的明文信息。通过第1个读端口运算行选择器读取配置单元的配置信息。根据配置信息通过两个第个比特置换网络对初始64比特的明文信息进行IP移位变换得到初始左信息L[0]、初始右信息R[0],并通过第个算术逻辑单元将初始左信息L[0]、初始右信息R[0]分别置为高64位和低64位,得到高64位的初始左信息L[0]、初始右信息R[0]和低64位的初始左信息L[0]、初始右信息R[0]。第个算术逻辑单元配置为直通。高64位的初始左信息L[0]、初始右信息R[0]和低64位的初始左信息L[0]、初始右信息R[0]通过第个数据输出单元根据配置信息发送出。
个数据载入单元从载入第个数据输出单元发送出的高64位的初始左信息L[0]、初始右信息R[0]和低64位的初始左信息L[0]、初始右信息R[0]。通过第1个读端口运算行选择器读取配置单元的配置信息。根据配置信息将高64位的初始左信息L[0]、初始右信息R[0]和低64位的初始左信息L[0]、初始右信息R[0]通过第个数据输出单元发送出。
个数据载入单元从载入第个数据输出单元发送出的高64位的初始左信息L[0]、初始右信息R[0]和低64位的初始左信息L[0]、初始右信息R[0]。通过第1个读端口运算行选择器读取配置单元的配置信息。根据配置信息将高64位的初始左信息L[0]、初始右信息R[0]和低64位的初始左信息L[0]、初始右信息R[0]通过第个数据输出单元发送出。
个数据载入单元从载入第个数据输出单元发送出的高64位的初始左信息L[0]、初始右信息R[0]和低64位的初始左信息L[0]、初始右信息R[0]。通过第1个读端口运算行选择器读取配置单元的配置信息。根据配置信息将高64位的初始左信息L[0]、初始右信息R[0]和低64位的初始左信息L[0]、初始右信息R[0]通过第个数据输出单元发送给第1个写端口运算行选择器,通过第1个写端口运算行选择器将低64位的初始左信息L[0]、初始右信息R[0]写入通用寄存器堆中,用于下一个可重构阵列块运行。
步骤62:对于第p个可重构阵列块,2≤p≤M-1。第(p-1)个可重构阵列块写入到通用寄存器堆中低64位的左信息L[i]和右信息R[i],0≤i≤15,i+2=p。第p个可重构阵列块中的第行可重构阵列运算行中的第个数据载入单元从第(p-1)个可重构阵列块载入低64位的左信息L[i]和右信息R[i]。同时通过第p个写端口运算行选择器写入密钥K[i+1]。和通过第p个读端口运算行选择器读取配置单元的配置信息。根据配置信息将低64位的左信息L[i]和右信息R[i]进行E移位,E移位后的数据与密钥K[i+1]异或得到的低48比特中间信息S[i]。根据配置信息将左信息L[i]和右信息R[i]以及查找表信息S[i]通过第个数据输出单元发送给第个数据载入单元,第个数据载入单元载入高64比特的左信息L[i]和右信息R[i],低48比特的查找表信息S[i]。
行可重构阵列运算行中的第个数据载入单元载入高64比特的左信息L[i]和右信息R[i],低48比特的查找表信息S[i],通过第p个读端口运算行选择器读取配置单元的配置信息。根据配置信息对低48比特的查找表信息S[i]进行比特移位得到低48比特的查找表信息S′[i]。其中,48比特分为8组6比特的块,将每个6比特块内部比特位从左到右依次编号,则每个块的第1和第6比特为查找表横坐标地址,中间4比特为查找表纵坐标地址。根据配置信息把查找表信息S'[i]、左信息L[i]和右信息R[i]通过第个数据输出单元发送给第个数据载入单元。
行可重构阵列运算行中的第个数据载入单元载入左信息L[i]和右信息R[i]、查找表信息S′[i],将查找表信息S'[i]置为高位,而左信息L[i]和右信息R[i]置为低位。通过第p个读端口运算行选择器读取配置单元的配置信息。根据配置信息通过查找表信息S′[i]对查找表进行查找得到新的查找表信息S″[i],根据配置信息把新的查找表信息S″[i]、左信息L[i]和右信息R[i]通过第个数据输出单元发送给第个数据载入单元。
行可重构阵列运算行中的第个数据载入单元载入左信息L[i]、右信息R[i]和新的查找表信息S″[i],将新的查找表信息S″[i]置为高位,而左信息L[i]和右信息R[i]置为低位。通过第p个读端口运算行选择器读取配置单元的配置信息。根据配置信息对新的查找表信息S″[i]进行按字节移位和P变换。得到字节移位后的查找表信息S″[i]和P变换后的查找表信息S″[i]。根据配置信息对左信息L[i]和右信息R[i]进行按字节移位和P变换。得到字节移位后的左信息L[i]和P变换后的左信息L[i],字节移位后的右信息R[i]和P变换后的右信息R[i]。根据配置信息对字节移位后的查找表信息S″[i]、字节移位后的左信息L[i]、字节移位后的右信息R[i]选择性直通和异或得到下一步的左信息L[i+1],根据配置信息对P变换后的查找表信息S″[i]、P变换后的左信息L[i]、P变换后的右信息R[i]选择性直通和异或得到下一步的右信息R[i+1]。得到的下一步的左信息L[i+1]、下一步的右信息R[i+1]通过第1个写端口运算行选择器写入通用寄存器堆中,用于下一个可重构阵列块运行。重复步骤62直到i=14。
步骤63:对于第17个可重构阵列块,2≤p≤M-1。第16个可重构阵列块写入到通用寄存器堆中低64位的左信息L[15]和右信息R[15]。第17个可重构阵列块中的第行可重构阵列运算行中的第个数据载入单元从第16个可重构阵列块载入低64位的左信息L[15]和右信息R[15]。同时通过第17个写端口运算行选择器写入密钥K[16]。和通过第17个读端口运算行选择器读取配置单元的配置信息。根据配置信息将低64位的左信息L[15]和右信息R[15]进行E移位,E移位后的数据与密钥K[16]异或得到的低48比特中间信息S[15]。根据配置信息将左信息L[15]和右信息R[15]以及查找表信息S[15]通过第个数据输出单元发送给第个数据载入单元,第个数据载入单元载入高64比特的左信息L[15]和右信息R[15],低48比特的查找表信息S[15]。
行可重构阵列运算行中的第个数据载入单元载入高64比特的左信息L[15]和右信息R[15],低48比特的查找表信息S[15],通过第17个读端口运算行选择器读取配置单元的配置信息。根据配置信息对低48比特的查找表信息S[15]进行比特移位得到低48比特的查找表信息S′[15]。其中,48比特分为8组6比特的块,将每个6比特块内部比特位从左到右依次编号,则每个块的第1和第6比特为查找表横坐标地址,中间4比特为查找表纵坐标地址。根据配置信息把查找表信息S′[15]、左信息L[15]和右信息R[15]通过第个数据输出单元发送给第个数据载入单元。
行可重构阵列运算行中的第个数据载入单元载入左信息L[15]和右信息R[15]、查找表信息S′[15],将查找表信息S′[15]置为高位,而左信息L[15]和右信息R[15]置为低位。通过第17个读端口运算行选择器读取配置单元的配置信息。根据配置信息通过查找表信息S′[15]对查找表进行查找得到新的查找表信息S″[15],根据配置信息把新的查找表信息S″[15]、左信息L[15]和右信息R[15]通过第个数据输出单元发送给第个数据载入单元。
行可重构阵列运算行中的第个数据载入单元载入左信息L[15]、右信息R[15]和新的查找表信息S″[15],将新的查找表信息S″[15]置为高位,而左信息L[15]和右信息R[15]置为低位。通过第17个读端口运算行选择器读取配置单元的配置信息。根据配置信息对新的查找表信息S″[15]进行按比特移位和P变换。得到比特移位后的查找表信息S″[15]和P变换后的查找表信息S″[15]。根据配置信息对左信息L[15]和右信息R[15]进行按比特移位和P变换。得到比特移位后的左信息L[15]和P变换后的左信息L[15],比特移位后的右信息R[15]和P变换后的右信息R[15]。根据配置信息对比特移位后的查找表信息S″[15]、比特移位后的左信息L[15]、比特移位后的右信息R[15]选择性直通和异或得到左信息L[16],根据配置信息对P变换后的查找表信息S″[15]、P变换后的左信息L[15]、P变换后的右信息R[15]选择性直通和异或得到右信息R[16]。得到的左信息L[16]、右信息R[16]通过第1个写端口运算行选择器写入通用寄存器堆中,用于下一个可重构阵列块运行。
步骤64:步骤64为步骤61的逆操作,对任意一组R[16]、L[16]进行IP逆置换得到64比特的密文,输出至输出先入先出寄存器组。
个数据载入单元从通用寄存器堆中中载入左信息L[16]、右信息R[16]。通过第18个读端口运算行选择器读取配置单元的配置信息。根据配置信息通过第个比特置换网络对左信息L[16]、右信息R[16]进行IP移位逆变换得到64比特的密文,并根据配置信息将64比特的密文通过第个数据输出单元根据配置信息发送出。
个数据载入单元从载入第个数据输出单元发送出的64比特的密文。通过第1个读端口运算行选择器读取配置单元的配置信息。根据配置信息将64比特的密文通过第个数据输出单元发送出。
个数据载入单元从载入第个数据输出单元发送出的64比特的密文。通过第1个读端口运算行选择器读取配置单元的配置信息。根据配置信息将64比特的密文通过第个数据输出单元发送出。
个数据载入单元从载入第个数据输出单元发送出的64比特的密文。通过第1个读端口运算行选择器读取配置单元的配置信息。根据配置信息将64比特的密文通过第个数据输出单元发送给输出先入先出寄存器组中。
所述步骤62中的E移位的规则如下:
L[i]表示第i步的左信息,R[i]表示第i步的右信息,表示异或,F(R[i-1],K[i])表示轮函数。
有益效果:本发明提供的一种基于粗粒度可重构架构的DES算法轮迭代系统及迭代方法,相比现有技术,具有以下有益效果:
该方法针对DES算法轮迭代,通过10个可重构阵列块包含多个运算单元,借助通用寄存器堆提高DES算法的运算并行度,将多轮迭代在可重构处理器中并行移位替换的方式进行优化和加速,在具有一定灵活性的同时,提高DES方法的运算效率,尽可能的减少运算周期。
附图说明
图1为本发明的基于大规模粗粒度嵌入式可重构系统处理器框图;
图2为IP变换。
图3为轮迭代过程,总共执行16轮轮迭代。
图4位IP逆变换。
图5为64比特的明文IP变换移位的规则表。明文从左往右依次为1,2…64比特位。
图6为E扩展变换移位规则。
图7为IP逆变换移位规则表。
图8为DES算法轮迭代整体流图。
具体实施方式
下面结合附图和具体实施例,进一步阐明本发明,应理解这些实例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
一种基于粗粒度可重构架构的DES算法轮迭代系统,如图1所示,包括系统总线、可重构处理器和微处理器。微处理器通过系统总线发送明文数据给可重构处理器,明文数据将存入输入先进先出寄存器组,并在最终计算完成后输出密文数据到输出先进先出寄存器组,并发送中断信号,最终输出先进先出寄存器组中的数据由微处理器读出。
所述可重构处理器包括配置单元、输入先进先出寄存器组、输出先进先出寄存器组、通用寄存器堆、M个可重构阵列块、查找表,所述配置单元的进线口通过系统总线与微处理器连接,且配置单元的出线口分别与可重构阵列块连接。而所述输入先进先出寄存器组通过系统总线与微处理器连接。这M个可重构阵列块分别为第1个可重构阵列块、第2个可重构阵列块、…、第m个可重构阵列块、…、第M个可重构阵列块,m=1…M,M取整数。所述第1个可重构阵列块与输入先进先出寄存器组连接,而第M个可重构阵列块与输出先进先出寄存器组连接,且这M个可重构阵列块均与通用寄存器堆和查找表连接。这M个可重构阵列块之间通过通用寄存器堆互相进行数据的储存、读取和传递。所述输出先进先出寄存器组通过系统总线与微处理器连接。其中:
微处理器通过分析DES的特征来确定轮迭代的运算流程,将多轮的轮迭代运算展开成一幅数据流图映射到可重构处理器中形成配置信息发送给配置单元。微处理器通过系统总线发送明文数据给可重构处理器,明文数据将存入输入先进先出寄存器组。微处理器并将初始数据、生成的密钥和计算的中间数据存入通用寄存器堆中用于数据流图的多轮迭代。
所述配置单元用于存储配置信息,并将配置信息发送给各个可重构阵列块。
第1个可重构阵列块用于获取输入先进先出寄存器组的明文数据和读取其对应的配置单元的配置信息。第1个可重构阵列块根据配置信息对明文数据进行初始轮迭代得到初始中间信息。根据配置信息将初始中间信息载入下一个可重构阵列块中,用于下一个可重构阵列块的运算。
对于第p个可重构阵列块,2≤p≤M-1,第p个可重构阵列块用于获取第(p-1)个可重构阵列块的中间信息、读取其对应的配置单元的配置信息以及读取查找表的查找表信息。通过第p个读端口运算行选择器读取通用寄存器堆中存储的密钥。所述第p个可重构阵列块根据配置信息对第(p-1)个可重构阵列块的中间信息、查找表信息、密钥进行轮迭代,得到第p个可重构阵列块的的中间信息。
对于第M个可重构阵列块,第M个可重构阵列块用于获取第(M-1)个可重构阵列块的中间信息和读取其对应的配置单元的配置信息。第M个可重构阵列块根据配置信息对第(M-1)个可重构阵列块的中间信息进行逆变换获取密文。
所述配置单元包括依次连接在一起的配置与控制接口、配置存储器和配置解析模块,且所述配置与控制接口和系统总线连接。微处理器依次通过系统总线和配置与控制接口将所需要的配置信息发送给配置存储器,所述配置存储器存储发送过来的配置信息,而配置解析模块用于解析配置存储器的配置信息,且将解析的配置信息发送给可重构阵列块,实现对可重构阵列块的配置、启动以及切换操作。
使用时,对配置单元中的配置存储器进行初始化,微处理器将所需要的配置信息通过配置与控制接口发送到配置存储器中,然后通过配置解析模块解析配置存储器,实现对计算阵列的配置、启动以及切换操作。
多个可重构阵列块中相邻的两个可重构阵列块通过数据载入单元和数据输出单元连接。第一个可重构阵列块通过第一行可重构阵列运算行的数据载入单元与输入先进先出寄存器组相连,同时第M个可重构阵列块通过第N行可重构阵列运算行的数据输出单元与输出先进先出寄存器组相连,其中N为一个可重构阵列块包含可重构阵列运算行个数。每个可重构阵列块都有一个连至查找表的读端口,同时每个可重构阵列块中都只能选择一行可重构阵列行用于查表。
所述可重构阵列块包括读端口运算行选择器、写端口运算行选择器以及N行可重构阵列运算行,且这N行可重构阵列运算行共享读端口运算行选择器和写端口运算行选择器。其中,第m个可重构阵列块中的读端口运算行选择器记为第m个读端口运算行选择器,第m个可重构阵列块中的写端口运算行选择器记为第m个写端口运算行选择器,第m个可重构阵列块中的第n行可重构阵列运算行记为第行可重构阵列运算行,m=1…M,n=1…N,M为可重构阵列块的个数,N为可重构阵列块包括的可重构阵列运算行的行数,M,N取整数。且所述可重构阵列块之间按顺序依次连接,而每个可重构阵列块内部的可重构阵列运算行之间按顺序依次连接。其每N行可重构阵列运算行共享1个通用寄存器堆的读端口和写端口;在轮迭代中可重构阵列运算得到的中间数据将存在通用寄存器堆中。
在轮迭代中可重构阵列块运算得到的中间数据通过写端口运算行选择器存在通用寄存器堆中,而在轮迭代中可重构阵列块运算需要得到的中间数据通过读端口运算行选择器读取通用寄存器堆中存储的信息。
行可重构阵列运算行与输入先进先出寄存器组相连,同时第行可重构阵列运算行与输出先进先出寄存器组相连,每个可重构阵列块都有一个连至查找表的读端口,同时每个可重构阵列块中都只能选择一行可重构阵列行用于查找表查表。可重构阵列运算行可通过通用寄存器堆读出各种缓冲数据以及各种临时的消息摘要,同时可以向通用寄存器堆写入消息摘要的每轮计算的扩展密钥,这些密钥被用于后续加密计算。
在第1个可重构阵列块中,第行可重构阵列运算行输入先进先出寄存器组中的明文数据,通过第1个读端口运算行选择器读取配置单元的配置信息。同时通过第1个读端口运算行选择器读取通用寄存器堆中的存储的密钥。第行可重构阵列运算行根据配置信息对明文数据和密钥进行轮迭代计算得到下一个可重构阵列块轮迭代的中间数据。并将此中间数据通过第1个写端口运算行选择器写入通用寄存器堆中。
对于第p个可重构阵列块,2≤p≤M-1。第p个可重构阵列块中的第行可重构阵列运算行从通用寄存器堆中载入第(p-1)个可重构阵列块的中间数据。同时通过第p个写端口运算行选择器写入通用寄存器堆中的密钥。通过查找表查找到查找表信息。和通过第p个读端口运算行选择器读取配置单元的配置信息。第p个可重构阵列块根据配置信息对第(p-1)个可重构阵列块的中间数据、密钥、查找表信息进行轮迭代运算,得到第p个可重构阵列块的中间数据,将此中间数据通过第p个写端口运算行选择器写入通用寄存器堆中,用于下一个可重构阵列块轮迭代计算。
对于第M个可重构阵列块,第M个可重构阵列块中的第行可重构阵列运算行从通用寄存器堆中载入第(M-1)个可重构阵列块的中间数据。第M个可重构阵列块根据配置信息对第(M-1)个可重构阵列块的中间信息进行逆变换获取密文。
每个可重构阵列块中的有且只有一行可重构阵列运算行得到的中间数据输出到查找表用于查表。
每行可重构阵列运算行均包括X1个数据载入单元、X2个数据输出单元、X3个字节置换网络、X4个比特置换网络和X5个8位算术逻辑单元,字节置换网络与比特置换网络组成置换网络,字节置换网络与比特置换网络的输出X5个8位的数据分别固定对应于X5个8位算术逻辑单元。每个算术逻辑单元使用对应的读端口运算行选择器选择任意三个置换网络的输出作为其输入。第m个可重构阵列块第n行可重构阵列运算行的第k1个数据载入单元记为第个数据载入单元,第m个可重构阵列块第n行可重构阵列运算行的第k2个数据输出单元记为第bn ,k2个数据输出单元,第m个可重构阵列块第n行可重构阵列运算行的第k3个字节置换网络记为第个字节置换网络,第m个可重构阵列块第n行可重构阵列运算行的第k4个比特置换网络记为第个比特置换网络,第m个可重构阵列块第n行可重构阵列运算行的第k5个数据载入单元记为第个算术逻辑单元,k1=1...X1,k2=1...X2,k3=1...X3,k4=1...X4,k5=1...X5,X1,X2,X3,X4和X5均取整数。数据经过数据载入单元,由选择器通过读取并解析不同的配置信息来选择数据流入的字节置换网络和比特置换网络;即第m个读端口运算行选择器读取的上一步的中间数据以及接收解析配置解析模块的配置信息来选择中间数据流入的字节置换网络和比特置换网络。字节置换网络与比特置换网络的输出分为X5个8位的数据分别固定对应于X5个8位算术逻辑单元;每个算术逻辑单元使用数据选择器选择任意三个置换网络的输出作为其输入;数据输出单元暂存算术逻辑单元的结果并读取配置信息决定将数据输出到先进先出寄存器组、下一行可重构阵列运算行或通用寄存器堆。
个数据载入单元载入输入先进先出寄存器组中的数据,同时解析配置解析模块的配置信息。在通过第1个读端口运算行选择器读取通用寄存器堆中的存储的信息并根据解析的配置信息来选择数据流入的对应的置换网络,该置换网络为第个字节置换网络和第个比特置换网络。第个数据输出单元暂存其对应的第个算术逻辑单元的结果并读取配置信息决定将数据输出到输出先进先出寄存器组、下一行可重构阵列运算行或通用寄存器堆。
个数据载入单元解析配置解析模块的配置信息,在通过第m个读端口运算行选择器读取通用寄存器堆中存储的第m个可重构阵列运算块的运行数据信息,并根据解析的配置信息来选择数据流入的对应的置换网络,该置换网络为第个字节置换网络和第个比特置换网络。第个数据输出单元暂存其对应的第个算术逻辑单元的结果并读取配置信息决定将数据输出到输出先进先出寄存器组、下一行可重构阵列运算行或通用寄存器堆。
如图1所示,包括10个可重构阵列块、1个通用寄存器堆、1个输入先进先出寄存器组和1个输出先进先出寄存器组。其中多个可重构阵列块通过一个1个通用寄存器堆可以互相进行数据的储存、读取和传递,保证了DES方法中的大量数据交换以及并行运算;且多个可重构阵列块中相邻的两个可重构阵列块通过数据载入单元和数据输出单元连接。通过先进先出寄存器组缓冲可重构处理器与总线接口之间的数据传输。通用寄存器堆用于各可重构阵列块之间的数据互通和数据缓存。
其中,可重构阵列块中又包含4行可重构阵列运算行、1个读端口运算行选择器和1个写端口运算行选择器。其每行可重构阵列运算行共享1个通用寄存器堆的读端口和写端口;在DES运算中可重构阵列运算行可通过通用寄存器堆读出各种缓冲数据以及各种临时的消息摘要,同时可以向通用寄存器堆写入消息摘要的每轮计算的扩展密钥,这些密钥被用于后续加密计算。通过1个读端口运算行选择器可以选择从可重构阵列块中的指定可重构阵列运算行读取通用寄存器堆的数据,写端口可以选择数据从指定可重构阵列运算行写入寄存器堆,大大增加量数据流通的灵活性。
每行可重构阵列运算行中具有2个数据载入单元、2个数据输入单元、16个8位算术运算单元、2个字节置换网络和2个比特置换网络,用于充当各可重构阵列运算行算术运算单元之间的数据互联。其中数据载入单元可以选择该可重构阵列运算行的数据来源,可选的数据来源为上一行可重构阵列运算行的数据输出单元、输入先进先出寄存器组以及通用寄存器堆。数据输出单元可以选择该可重构阵列运算行的数据输出方向,可选的数据输出为通用寄存器堆、输出先进先出寄存器组以及输出先进先出寄存器组。同时,只有第一个可重构阵列块的第一行可重构阵列运算行可以选择输入为输入先进先出寄存器组,最后一个可重构阵列块的最后一行可重构阵列运算行可以选择输出先进先出寄存器组。数据经过数据载入单元,由选择器通过读取并解析不同的配置信息来选择数据流入的字节置换网络和比特置换网络;字节置换网络与比特置换网络的128位的输出分为16个8位的数据分别固定对应于16个8位算术逻辑单元,一次性可以运算4组DES数据;每个算术逻辑单元可以使用数据选择器选择其中三个置换网络的输出作为其输入;数据载入单元可以暂存算术逻辑单元的结果并读取配置信息决定将数据输出到先进先出寄存器组、下一行可重构阵列运算行还是通用寄存器堆。
其中,算术逻辑单元与比特置换网络承担了DES算法轮迭代中的所有运算操作。其中比特置换网络用于数据的循环移位和算术移位。算术运算单元承担了DES中的模加、异或、非、同或等运算操作
所述算术逻辑单元中包括模加运算、异或运算、与运算、与非运算、直通输出3输入异或加、3输入异或同或加运算操作。同时每个算术逻辑单元有最多3个输入和最多2个输出,其中算术逻辑单元执行上述运算操作的同时,支持任选一个输入作为输出,由于DES方法中全部为32位运算,因此每4个8位的算术逻辑单元通过进位端口连接成为1个32位的算术逻辑单元。
所述可重构阵列块的个数为10个,各个可重构阵列块之间首尾依次连接在一起,通用寄存器堆的个数为1个,输入先进先出寄存器组的个数为1个,输出先进先出寄存器组的个数为1个。
一种基于粗粒度可重构架构的DES算法轮迭代方法,包括以下步骤。
步骤1,分析DES方法轮迭代的计算特点,并归纳出数据流图。
DES算法的明文为64比特的数据块,DES算法总共需要实行16轮轮迭代,每轮轮迭代所使用的密钥各不相同,由明文经过IP变换移位,得到左右各32比特的L[0]、R[0]。经过16轮轮迭代后在经过IP逆变换生成64比特的密文。其中前15轮轮迭代的规则如下:
第16轮迭代中R[16]和L[16]不交换位置,L[i]表示第i步的左信息,R[i]表示第i步的右信息,表示异或,F(R[i-1],K[i])表示轮函数。
步骤2,根据数据流图中的运算流程,制定DES的数据输入方式。
步骤3,根据步骤2确定的数据输入方式以及步骤2确定的数据流图针对可重构处理器的特点配置可重构处理器,在了解其各寄存器、运算器以及各功能模块的作用机制的情况下配置可重构处理器,并生成配置信息。
对配置单元中的配置存储器进行初始化,微处理器将所需要的配置信息通过配置单元的配置与控制接口发送到配置存储器中,然后通过配置单元中的配置解析模块解析配置存储器,实现对计算阵列的配置、启动以及切换操作。
步骤4,通过微处理器将配置信息以及所需要的各种初始数据存入相应的存储器中。
其中配置信息为上述步骤所生成的配置信息,初始数据为k[i]缓冲区数据等各种常量。
步骤5,最后通过微处理器启动可重构处理器,并将配置信息及待处理数据发送给可重构处理器。
步骤6,可重构处理器根据配置信息及待处理数据进行数据处理,当可重构处理器完成当前任务后,发送中断信号。并将处理好的数据通过通过系统总线发送给微处理器。
该实施基于DES算法,需要将其转化为数据流图,并制定DES算法的数据输入方式,然后根据数据流图和数据输入方式对应特定的可重构系统处理器生成相应的配置信息,通过配置可重构阵列块将DES映射到该阵列上,由此实现DES方法。
其中,如图8所示,可重构处理器根据配置信息及待处理数据进行数据处理的方法:
轮迭代流程包括如下4个步骤,其中对于每个64位消息块,步骤61执行1次后执行,步骤62执行15次,步骤63只执行1次,步骤64只执行1次。
步骤61,如图2、5、6所示:数据载入单元从输入先进先出寄存器组中载入初始64比特的明文。使用两个比特置换网络分别实现IP移位得到L[0]、R[0]并分别置为高64位和低64位,输出至下一个可重构阵列块。具体的。
个数据载入单元从输入先进先出寄存器组中载入初始64比特的明文信息。通过第1个读端口运算行选择器读取配置单元的配置信息。根据配置信息通过两个第个比特置换网络对初始64比特的明文信息进行IP移位变换得到初始左信息L[0]、初始右信息R[0],并通过第个算术逻辑单元将初始左信息L[0]、初始右信息R[0]分别置为高64位和低64位,得到高64位的初始左信息L[0]、初始右信息R[0]和低64位的初始左信息L[0]、初始右信息R[0]。第个算术逻辑单元配置为直通。高64位的初始左信息L[0]、初始右信息R[0]和低64位的初始左信息L[0]、初始右信息R[0]通过第个数据输出单元根据配置信息发送出。
个数据载入单元从载入第个数据输出单元发送出的高64位的初始左信息L[0]、初始右信息R[0]和低64位的初始左信息L[0]、初始右信息R[0]。通过第1个读端口运算行选择器读取配置单元的配置信息。根据配置信息将高64位的初始左信息L[0]、初始右信息R[0]和低64位的初始左信息L[0]、初始右信息R[0]通过第个数据输出单元发送出。
个数据载入单元从载入第个数据输出单元发送出的高64位的初始左信息L[0]、初始右信息R[0]和低64位的初始左信息L[0]、初始右信息R[0]。通过第1个读端口运算行选择器读取配置单元的配置信息。根据配置信息将高64位的初始左信息L[0]、初始右信息R[0]和低64位的初始左信息L[0]、初始右信息R[0]通过第个数据输出单元发送出。
个数据载入单元从载入第个数据输出单元发送出的高64位的初始左信息L[0]、初始右信息R[0]和低64位的初始左信息L[0]、初始右信息R[0]。通过第1个读端口运算行选择器读取配置单元的配置信息。根据配置信息将高64位的初始左信息L[0]、初始右信息R[0]和低64位的初始左信息L[0]、初始右信息R[0]通过第个数据输出单元发送给第1个写端口运算行选择器,通过第1个写端口运算行选择器将低64位的初始左信息L[0]、初始右信息R[0]写入通用寄存器堆中,用于下一个可重构阵列块运行。
步骤62:如图3所示:对上一个可重构阵列块中留下来的低64比特的L[i]、R[i](0<=i<=15)进行E移位,并与从通用寄存器堆中载入的密钥K[i+1]异或得到的低48比特为S[i]。至下一行可重构阵列行的输出高64比特为L[i]、R[i],低48比特为S[i]。下一行的可重构阵列行对S[i]进行比特移位,48比特分为8组6比特的块,每个块的第1和第6比特为查找表横坐标地址,中间4比特为纵坐标地址。把查找表坐标和原数据输出至下一行可重构阵列行。下一行中左边进行查表,右边配置为直通。再下一行中对直通下来的数据进行按字节移位,对查找表输出的8个4比特重新移位组合为32比特,两组数据选择性直通和异或,得到L[i+1]、R[i+1]、L[i+1]、R[i+1]输出至下一个可重构阵列块。重复步骤2直到i=15,具体的。
对于第p个可重构阵列块,2≤p≤M-1。第(p-1)个可重构阵列块写入到通用寄存器堆中低64位的左信息L[i]和右信息R[i],0≤i≤15,i+2=p。第p个可重构阵列块中的第行可重构阵列运算行中的第个数据载入单元从第(p-1)个可重构阵列块载入低64位的左信息L[i]和右信息R[i]。同时通过第p个写端口运算行选择器写入密钥K[i+1]。和通过第p个读端口运算行选择器读取配置单元的配置信息。根据配置信息将低64位的左信息L[i]和右信息R[i]进行E移位,E移位后的数据与密钥K[i+1]异或得到的低48比特中间信息S[i]。根据配置信息将左信息L[i]和右信息R[i]以及查找表信息S[i]通过第个数据输出单元发送给第个数据载入单元,第个数据载入单元载入高64比特的左信息L[i]和右信息R[i],低48比特的查找表信息S[i]。
行可重构阵列运算行中的第个数据载入单元载入高64比特的左信息L[i]和右信息R[i],低48比特的查找表信息S[i],通过第p个读端口运算行选择器读取配置单元的配置信息。根据配置信息对低48比特的查找表信息S[i]进行比特移位得到低48比特的查找表信息S′[i]。其中,48比特分为8组6比特的块,将每个6比特块内部比特位从左到右依次编号,则每个块的第1和第6比特为查找表横坐标地址,中间4比特为查找表纵坐标地址。根据配置信息把查找表信息S′[i]、左信息L[i]和右信息R[i]通过第个数据输出单元发送给第个数据载入单元。
行可重构阵列运算行中的第个数据载入单元载入左信息L[i]和右信息R[i]、查找表信息S′[i],将查找表信息S′[i]置为高位,而左信息L[i]和右信息R[i]置为低位。通过第p个读端口运算行选择器读取配置单元的配置信息。根据配置信息通过查找表信息S′[i]对查找表进行查找得到新的查找表信息S''[i],根据配置信息把新的查找表信息S″[i]、左信息L[i]和右信息R[i]通过第个数据输出单元发送给第个数据载入单元。
行可重构阵列运算行中的第个数据载入单元载入左信息L[i]、右信息R[i]和新的查找表信息S''[i],将新的查找表信息S''[i]置为高位,而左信息L[i]和右信息R[i]置为低位。通过第p个读端口运算行选择器读取配置单元的配置信息。根据配置信息对新的查找表信息S″[i]进行按字节移位和P变换。得到字节移位后的查找表信息S″[i]和P变换后的查找表信息S″[i]。根据配置信息对左信息L[i]和右信息R[i]进行按字节移位和P变换。得到字节移位后的左信息L[i]和P变换后的左信息L[i],字节移位后的右信息R[i]和P变换后的右信息R[i]。根据配置信息对字节移位后的查找表信息S″[i]、字节移位后的左信息L[i]、字节移位后的右信息R[i]选择性直通和异或得到下一步的左信息L[i+1],根据配置信息对P变换后的查找表信息S″[i]、P变换后的左信息L[i]、P变换后的右信息R[i]选择性直通和异或得到下一步的右信息R[i+1]。得到的下一步的左信息L[i+1]、下一步的右信息R[i+1]通过第1个写端口运算行选择器写入通用寄存器堆中,用于下一个可重构阵列块运行。重复步骤62直到i=14。
步骤63:如图4、6所示:步骤63和步骤62相似,只是对于DES算法第16轮轮迭代和前面15轮稍有差异:体现在左后一行可重构阵列行的按字节和按比特移位的区别,最后输出得到R[16]、L[16]、R[16]、L[16]。具体的:
对于第17个可重构阵列块,2≤p≤M-1。第16个可重构阵列块写入到通用寄存器堆中低64位的左信息L[15]和右信息R[15]。第17个可重构阵列块中的第行可重构阵列运算行中的第个数据载入单元从第16个可重构阵列块载入低64位的左信息L[15]和右信息R[15]。同时通过第17个写端口运算行选择器写入密钥K[16]。和通过第17个读端口运算行选择器读取配置单元的配置信息。根据配置信息将低64位的左信息L[15]和右信息R[15]进行E移位,E移位后的数据与密钥K[16]异或得到的低48比特中间信息S[15]。根据配置信息将左信息L[15]和右信息R[15]以及查找表信息S[15]通过第个数据输出单元发送给第个数据载入单元,第个数据载入单元载入高64比特的左信息L[15]和右信息R[15],低48比特的查找表信息S[15]。
行可重构阵列运算行中的第个数据载入单元载入高64比特的左信息L[15]和右信息R[15],低48比特的查找表信息S[15],通过第17个读端口运算行选择器读取配置单元的配置信息。根据配置信息对低48比特的查找表信息S[15]进行比特移位得到低48比特的查找表信息S′[15]。其中,48比特分为8组6比特的块,将每个6比特块内部比特位从左到右依次编号,则每个块的第1和第6比特为查找表横坐标地址,中间4比特为查找表纵坐标地址。根据配置信息把查找表信息S′[15]、左信息L[15]和右信息R[15]通过第个数据输出单元发送给第个数据载入单元。
行可重构阵列运算行中的第个数据载入单元载入左信息L[15]和右信息R[15]、查找表信息S′[15],将查找表信息S′[15]置为高位,而左信息L[15]和右信息R[15]置为低位。通过第17个读端口运算行选择器读取配置单元的配置信息。根据配置信息通过查找表信息S′[15]对查找表进行查找得到新的查找表信息S″[15],根据配置信息把新的查找表信息S″[15]、左信息L[15]和右信息R[15]通过第个数据输出单元发送给第个数据载入单元。
行可重构阵列运算行中的第个数据载入单元载入左信息L[15]、右信息R[15]和新的查找表信息S″[15],将新的查找表信息S″[15]置为高位,而左信息L[15]和右信息R[15]置为低位。通过第17个读端口运算行选择器读取配置单元的配置信息。根据配置信息对新的查找表信息S″[15]进行按比特移位和P变换。得到比特移位后的查找表信息S″[15]和P变换后的查找表信息S″[15]。根据配置信息对左信息L[15]和右信息R[15]进行按比特移位和P变换。得到比特移位后的左信息L[15]和P变换后的左信息L[15],比特移位后的右信息R[15]和P变换后的右信息R[15]。根据配置信息对比特移位后的查找表信息S″[15]、比特移位后的左信息L[15]、比特移位后的右信息R[15]选择性直通和异或得到左信息L[16],根据配置信息对P变换后的查找表信息S″[15]、P变换后的左信息L[15]、P变换后的右信息R[15]选择性直通和异或得到右信息R[16]。得到的左信息L[16]、右信息R[16]通过第1个写端口运算行选择器写入通用寄存器堆中,用于下一个可重构阵列块运行。
步骤64:如4、7所示:步骤64为步骤61的逆操作,对任意一组R[16]、L[16]进行IP逆置换得到64比特的密文,输出至输出先入先出寄存器组。
个数据载入单元从通用寄存器堆中中载入左信息L[16]、右信息R[16]。通过第18个读端口运算行选择器读取配置单元的配置信息。根据配置信息通过第个比特置换网络对左信息L[16]、右信息R[16]进行IP移位逆变换得到64比特的密文,并根据配置信息将64比特的密文通过第个数据输出单元根据配置信息发送出。
个数据载入单元从载入第个数据输出单元发送出的64比特的密文。通过第1个读端口运算行选择器读取配置单元的配置信息。根据配置信息将64比特的密文通过第个数据输出单元发送出。
个数据载入单元从载入第个数据输出单元发送出的64比特的密文。通过第1个读端口运算行选择器读取配置单元的配置信息。根据配置信息将64比特的密文通过第个数据输出单元发送出。
个数据载入单元从载入第个数据输出单元发送出的64比特的密文。通过第1个读端口运算行选择器读取配置单元的配置信息。根据配置信息将64比特的密文通过第个数据输出单元发送给输出先入先出寄存器组中。
以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (9)

1.一种基于粗粒度可重构架构的DES算法轮迭代系统,其特征在于:包括系统总线、可重构处理器和微处理器;
所述可重构处理器包括配置单元、输入先进先出寄存器组、输出先进先出寄存器组、通用寄存器堆、M个可重构阵列块、查找表,所述配置单元的进线口通过系统总线与微处理器连接,且配置单元的出线口分别与可重构阵列块连接;而所述输入先进先出寄存器组通过系统总线与微处理器连接;这M个可重构阵列块分别为第1个可重构阵列块、第2个可重构阵列块、…、第m个可重构阵列块、…、第M个可重构阵列块,1≤m≤M,m,M取整数;所述第1个可重构阵列块与输入先进先出寄存器组连接,而第M个可重构阵列块与输出先进先出寄存器组连接,且这M个可重构阵列块均与通用寄存器堆和查找表连接;这M个可重构阵列块之间通过通用寄存器堆互相进行数据的储存、读取和传递;所述输出先进先出寄存器组通过系统总线与微处理器连接;其中:
微处理器通过分析DES的特征来确定轮迭代的运算流程,将多轮的轮迭代运算展开成一幅数据流图映射到可重构处理器中形成配置信息发送给配置单元;微处理器通过系统总线发送明文数据给可重构处理器,明文数据将存入输入先进先出寄存器组;微处理器并将初始数据、生成的密钥和计算的中间数据存入通用寄存器堆中用于数据流图的多轮迭代;
所述配置单元用于存储配置信息,并将配置信息发送给各个可重构阵列块;
第1个可重构阵列块用于获取输入先进先出寄存器组的明文数据和读取其对应的配置单元的配置信息;第1个可重构阵列块根据配置信息对明文数据进行初始轮迭代得到初始中间信息;根据配置信息将初始中间信息载入下一个可重构阵列块中,用于下一个可重构阵列块的运算;
对于第p个可重构阵列块,2≤p≤M-1,第p个可重构阵列块用于获取第p-1个可重构阵列块的中间信息、读取其对应的配置单元的配置信息以及读取查找表的查找表信息;通过第p个读端口运算行选择器读取通用寄存器堆中存储的密钥;所述第p个可重构阵列块根据配置信息对第p-1个可重构阵列块的中间信息、查找表信息、密钥进行轮迭代,得到第p个可重构阵列块的的中间信息;
对于第M个可重构阵列块,第M个可重构阵列块用于获取第M-1个可重构阵列块的中间信息和读取其对应的配置单元的配置信息;第M个可重构阵列块根据配置信息对第M-1个可重构阵列块的中间信息进行逆变换获取密文。
2.根据权利要求1所述的基于粗粒度可重构架构的DES算法轮迭代系统,其特征在于:所述配置单元包括依次连接在一起的配置与控制接口、配置存储器和配置解析模块,且所述配置与控制接口和系统总线连接;微处理器依次通过系统总线和配置与控制接口将所需要的配置信息发送给配置存储器,所述配置存储器存储发送过来的配置信息,而配置解析模块用于解析配置存储器的配置信息,且将解析的配置信息发送给可重构阵列块,实现对可重构阵列块的配置、启动以及切换操作。
3.根据权利要求2所述的基于粗粒度可重构架构的DES算法轮迭代系统,其特征在于:可重构阵列块包括读端口运算行选择器、写端口运算行选择器以及N行可重构阵列运算行,且这N行可重构阵列运算行共享读端口运算行选择器和写端口运算行选择器;其中,第m个可重构阵列块中的读端口运算行选择器记为第m个读端口运算行选择器,第m个可重构阵列块中的写端口运算行选择器记为第m个写端口运算行选择器,第m个可重构阵列块中的第n行可重构阵列运算行记为第行可重构阵列运算行,1≤m≤M,1≤n≤N,M为可重构阵列块的个数,N为可重构阵列块包括的可重构阵列运算行的行数,m,n,M,N取整数;且所述可重构阵列块之间按顺序依次连接,而每个可重构阵列块内部的可重构阵列运算行之间按顺序依次连接;
在轮迭代中可重构阵列块运算得到的中间数据通过写端口运算行选择器存在通用寄存器堆中,而在轮迭代中可重构阵列块运算需要得到的中间数据通过读端口运算行选择器读取通用寄存器堆中存储的信息;
行可重构阵列运算行与输入先进先出寄存器组相连,同时第行可重构阵列运算行与输出先进先出寄存器组相连,每个可重构阵列块都有一个连至查找表的读端口,同时每个可重构阵列块中都只能选择一行可重构阵列行用于查找表查表;可重构阵列运算行可通过通用寄存器堆读出各种缓冲数据以及各种临时的消息摘要,同时可以向通用寄存器堆写入消息摘要的每轮计算的扩展密钥,这些密钥被用于后续加密计算;
在第1个可重构阵列块中,第行可重构阵列运算行输入先进先出寄存器组中的明文数据,通过第1个读端口运算行选择器读取配置单元的配置信息;同时通过第1个读端口运算行选择器读取通用寄存器堆中的存储的密钥;第行可重构阵列运算行根据配置信息对明文数据和密钥进行轮迭代计算得到下一个可重构阵列块轮迭代的中间数据;并将此中间数据通过第1个写端口运算行选择器写入通用寄存器堆中;
对于第p个可重构阵列块,2≤p≤M-1;第p个可重构阵列块中的第行可重构阵列运算行从通用寄存器堆中载入第p-1个可重构阵列块的中间数据;同时通过第p个写端口运算行选择器写入通用寄存器堆中的密钥;通过查找表查找到查找表信息;和通过第p个读端口运算行选择器读取配置单元的配置信息;第p个可重构阵列块根据配置信息对第p-1个可重构阵列块的中间数据、密钥、查找表信息进行轮迭代运算,得到第p个可重构阵列块的中间数据,将此中间数据通过第p个写端口运算行选择器写入通用寄存器堆中,用于下一个可重构阵列块轮迭代计算;
对于第M个可重构阵列块,第M个可重构阵列块中的第行可重构阵列运算行从通用寄存器堆中载入第M-1个可重构阵列块的中间数据;第M个可重构阵列块根据配置信息对第M-1个可重构阵列块的中间信息进行逆变换获取密文。
4.根据权利要求3所述的基于粗粒度可重构架构的DES算法轮迭代系统,其特征在于:每行可重构阵列运算行均包括X1个数据载入单元、X2个数据输出单元、X3个字节置换网络、X4个比特置换网络和X5个8位算术逻辑单元,字节置换网络与比特置换网络组成置换网络,字节置换网络与比特置换网络的输出X5个8位的数据分别固定对应于X5个8位算术逻辑单元;每个算术逻辑单元使用对应的读端口运算行选择器选择任意三个置换网络的输出作为其输入;第m个可重构阵列块第n行可重构阵列运算行的第k1个数据载入单元记为第个数据载入单元,第m个可重构阵列块第n行可重构阵列运算行的第k2个数据输出单元记为第个数据输出单元,第m个可重构阵列块第n行可重构阵列运算行的第k3个字节置换网络记为第个字节置换网络,第m个可重构阵列块第n行可重构阵列运算行的第k4个比特置换网络记为第个比特置换网络,第m个可重构阵列块第n行可重构阵列运算行的第k5个数据载入单元记为第个算术逻辑单元,1≤k1≤X1,1≤k2≤X2,1≤k3≤X3,1≤k4≤X4,1≤k5≤X5,k1,k2,k3,k4,k5,X1,X2,X3,X4和X5均取整数;第m个读端口运算行选择器读取的上一步的中间数据以及接收解析配置解析模块的配置信息来选择中间数据流入的字节置换网络和比特置换网络;
个数据载入单元载入输入先进先出寄存器组中的数据,同时解析配置解析模块的配置信息;在通过第1个读端口运算行选择器读取通用寄存器堆中的存储的信息并根据解析的配置信息来选择数据流入的对应的置换网络,该置换网络为第个字节置换网络和第个比特置换网络;第个数据输出单元暂存其对应的第个算术逻辑单元的结果并读取配置信息决定将数据输出到输出先进先出寄存器组、下一行可重构阵列运算行或通用寄存器堆;
个数据载入单元解析配置解析模块的配置信息,在通过第m个读端口运算行选择器读取通用寄存器堆中存储的第m个可重构阵列运算块的运行数据信息,并根据解析的配置信息来选择数据流入的对应的置换网络,该置换网络为第个字节置换网络和第个比特置换网络;第个数据输出单元暂存其对应的第个算术逻辑单元的结果并读取配置信息决定将数据输出到输出先进先出寄存器组、下一行可重构阵列运算行或通用寄存器堆。
5.根据权利要求4所述的基于粗粒度可重构架构的DES算法轮迭代系统,其特征在于:算术逻辑单元能够实现模加运算、异或运算、与运算、与非运算、直通输出运算操作;同时每个算术逻辑单元有最多3个输入和最多2个输出,其中算术逻辑单元执行上述运算操作的同时,支持任选一个输入作为输出;每4个8位的算术逻辑单元通过进位端口连接成为1个32位的算术逻辑单元。
6.根据权利要求5所述的基于粗粒度可重构架构的DES算法轮迭代系统,其特征在于:所述可重构阵列块的个数为10个,各个可重构阵列块之间首尾依次连接在一起,通用寄存器堆的个数为1个,输入先进先出寄存器组的个数为1个,输出先进先出寄存器组的个数为1个。
7.根据权利要求5所述的基于粗粒度可重构架构的DES算法轮迭代系统,其特征在于:每个可重构阵列块包括4行可重构阵列运算行、1个读端口运算行选择器和1个写端口运算行选择器;每行可重构阵列运算行包括2个数据载入单元、2个数据输入单元、16个8位算术运算单元、2个字节置换网络和2个比特置换网络。
8.一种基于权利要求1至5任一所述的基于粗粒度可重构架构的DES算法轮迭代系统的轮迭代方法,其特征在于,包括以下步骤;
步骤1,分析DES方法轮迭代的计算特点,并归纳出数据流图;
步骤2,根据数据流图中的运算流程,制定DES的数据输入方式;
步骤3,根据步骤2确定的数据输入方式以及步骤2确定的数据流图针对可重构处理器的特点配置可重构处理器,并生成配置信息;
步骤4,通过微处理器将配置信息以及可重构处理器初始数据存入相应的存储器中;
步骤5,微处理器启动可重构处理器,并将配置信息及待处理数据发送给可重构处理器;
步骤6,可重构处理器根据配置信息及待处理数据进行数据处理,当可重构处理器完成当前任务后,发送中断信号;并将处理好的数据通过通过系统总线发送给微处理器。
9.根据权利要求8所述的轮迭代方法,其特征在于,步骤6中可重构处理器根据配置信息及待处理数据进行数据处理的方法:
步骤61:第个数据载入单元从输入先进先出寄存器组中载入初始64比特的明文信息;通过第1个读端口运算行选择器读取配置单元的配置信息;根据配置信息通过两个第个比特置换网络对初始64比特的明文信息进行IP移位变换得到初始左信息L[0]、初始右信息R[0],并通过第个算术逻辑单元将初始左信息L[0]、初始右信息R[0]分别置为高64位和低64位,得到高64位的初始左信息L[0]、高64位的初始右信息R[0]和低64位的初始左信息L[0]、低64位的初始右信息R[0];第个算术逻辑单元配置为直通;高64位的初始左信息L[0]、高64位的初始右信息R[0]和低64位的初始左信息L[0]、低64位的初始右信息R[0]通过第个数据输出单元根据配置信息发送出;
个数据载入单元从载入第个数据输出单元发送出的高64位的初始左信息L[0]、初始右信息R[0]和低64位的初始左信息L[0]、初始右信息R[0];通过第1个读端口运算行选择器读取配置单元的配置信息;根据配置信息将高64位的初始左信息L[0]、初始右信息R[0]和低64位的初始左信息L[0]、初始右信息R[0]通过第个数据输出单元发送出;
个数据载入单元从载入第个数据输出单元发送出的高64位的初始左信息L[0]、初始右信息R[0]和低64位的初始左信息L[0]、初始右信息R[0];通过第1个读端口运算行选择器读取配置单元的配置信息;根据配置信息将高64位的初始左信息L[0]、初始右信息R[0]和低64位的初始左信息L[0]、初始右信息R[0]通过第个数据输出单元发送出;
个数据载入单元从载入第个数据输出单元发送出的高64位的初始左信息L[0]、初始右信息R[0]和低64位的初始左信息L[0]、初始右信息R[0];通过第1个读端口运算行选择器读取配置单元的配置信息;根据配置信息将高64位的初始左信息L[0]、初始右信息R[0]和低64位的初始左信息L[0]、初始右信息R[0]通过第个数据输出单元发送给第1个写端口运算行选择器,通过第1个写端口运算行选择器将低64位的初始左信息L[0]、初始右信息R[0]写入通用寄存器堆中,用于下一个可重构阵列块运行;
步骤62:对于第p个可重构阵列块,2≤p≤M-1;第p-1个可重构阵列块写入到通用寄存器堆中低64位的左信息L[i]和右信息R[i],0≤i≤15,i+2=p;第p个可重构阵列块中的第行可重构阵列运算行中的第个数据载入单元从第p-1个可重构阵列块载入低64位的左信息L[i]和右信息R[i];同时通过第p个写端口运算行选择器写入密钥K[i+1];和通过第p个读端口运算行选择器读取配置单元的配置信息;根据配置信息将低64位的左信息L[i]和右信息R[i]进行E移位,E移位后的数据与密钥K[i+1]异或得到的低48比特中间信息S[i];根据配置信息将左信息L[i]和右信息R[i]以及查找表信息S[i]通过第个数据输出单元发送给第个数据载入单元,第个数据载入单元载入高64比特的左信息L[i]和右信息R[i],低48比特的查找表信息S[i];
行可重构阵列运算行中的第个数据载入单元载入高64比特的左信息L[i]和右信息R[i],低48比特的查找表信息S[i],通过第p个读端口运算行选择器读取配置单元的配置信息;根据配置信息对低48比特的查找表信息S[i]进行比特移位得到低48比特的查找表信息S′[i];其中,48比特分为8组6比特的块,将每个6比特块内部比特位从左到右依次编号,则每个块的第1和第6比特为查找表横坐标地址,中间4比特为查找表纵坐标地址;根据配置信息把查找表信息S′[i]、左信息L[i]和右信息R[i]通过第个数据输出单元发送给第个数据载入单元;
行可重构阵列运算行中的第个数据载入单元载入左信息L[i]和右信息R[i]、查找表信息S′[i],将查找表信息S′[i]置为高位,而左信息L[i]和右信息R[i]置为低位;通过第p个读端口运算行选择器读取配置单元的配置信息;根据配置信息通过查找表信息S′[i]对查找表进行查找得到新的查找表信息S″[i],根据配置信息把新的查找表信息S″[i]、左信息L[i]和右信息R[i]通过第个数据输出单元发送给第个数据载入单元;
行可重构阵列运算行中的第个数据载入单元载入左信息L[i]、右信息R[i]和新的查找表信息S″[i],将新的查找表信息S″[i]置为高位,而左信息L[i]和右信息R[i]置为低位;通过第p个读端口运算行选择器读取配置单元的配置信息;根据配置信息对新的查找表信息S″[i]进行按字节移位和P变换;得到字节移位后的查找表信息S″[i]和P变换后的查找表信息S″[i];根据配置信息对左信息L[i]和右信息R[i]进行按字节移位和P变换;得到字节移位后的左信息L[i]和P变换后的左信息L[i],字节移位后的右信息R[i]和P变换后的右信息R[i];根据配置信息对字节移位后的查找表信息S″[i]、字节移位后的左信息L[i]、字节移位后的右信息R[i]选择性直通和异或得到下一步的左信息L[i+1],根据配置信息对P变换后的查找表信息S″[i]、P变换后的左信息L[i]、P变换后的右信息R[i]选择性直通和异或得到下一步的右信息R[i+1];得到的下一步的左信息L[i+1]、下一步的右信息R[i+1]通过第1个写端口运算行选择器写入通用寄存器堆中,用于下一个可重构阵列块运行;重复步骤62直到i=14;
所述E移位的规则如下:
L[i]表示第i步的左信息,R[i]表示第i步的右信息,表示异或,F(R[i-1],K[i])表示轮函数;
步骤63:对于第17个可重构阵列块;第16个可重构阵列块写入到通用寄存器堆中低64位的左信息L[15]和右信息R[15];第17个可重构阵列块中的第行可重构阵列运算行中的第个数据载入单元从第16个可重构阵列块载入低64位的左信息L[15]和右信息R[15];同时通过第17个写端口运算行选择器写入密钥K[16];和通过第17个读端口运算行选择器读取配置单元的配置信息;根据配置信息将低64位的左信息L[15]和右信息R[15]进行E移位,E移位后的数据与密钥K[16]异或得到的低48比特中间信息S[15];根据配置信息将左信息L[15]和右信息R[15]以及查找表信息S[15]通过第个数据输出单元发送给第个数据载入单元,第个数据载入单元载入高64比特的左信息L[15]和右信息R[15],低48比特的查找表信息S[15];
行可重构阵列运算行中的第个数据载入单元载入高64比特的左信息L[15]和右信息R[15],低48比特的查找表信息S[15],通过第17个读端口运算行选择器读取配置单元的配置信息;根据配置信息对低48比特的查找表信息S[15]进行比特移位得到低48比特的查找表信息S′[15];其中,48比特分为8组6比特的块,将每个6比特块内部比特位从左到右依次编号,则每个块的第1和第6比特为查找表横坐标地址,中间4比特为查找表纵坐标地址;根据配置信息把查找表信息S′[15]、左信息L[15]和右信息R[15]通过第个数据输出单元发送给第个数据载入单元;
行可重构阵列运算行中的第个数据载入单元载入左信息L[15]和右信息R[15]、查找表信息S′[15],将查找表信息S′[15]置为高位,而左信息L[15]和右信息R[15]置为低位;通过第17个读端口运算行选择器读取配置单元的配置信息;根据配置信息通过查找表信息S′[15]对查找表进行查找得到新的查找表信息S″[15],根据配置信息把新的查找表信息S″[15]、左信息L[15]和右信息R[15]通过第个数据输出单元发送给第个数据载入单元;
行可重构阵列运算行中的第个数据载入单元载入左信息L[15]、右信息R[15]和新的查找表信息S″[15],将新的查找表信息S″[15]置为高位,而左信息L[15]和右信息R[15]置为低位;通过第17个读端口运算行选择器读取配置单元的配置信息;根据配置信息对新的查找表信息S″[15]进行按比特移位和P变换;得到比特移位后的查找表信息S″[15]和P变换后的查找表信息S″[15];根据配置信息对左信息L[15]和右信息R[15]进行按比特移位和P变换;得到比特移位后的左信息L[15]和P变换后的左信息L[15],比特移位后的右信息R[15]和P变换后的右信息R[15];根据配置信息对比特移位后的查找表信息S″[15]、比特移位后的左信息L[15]、比特移位后的右信息R[15]选择性直通和异或得到左信息L[16],根据配置信息对P变换后的查找表信息S″[15]、P变换后的左信息L[15]、P变换后的右信息R[15]选择性直通和异或得到右信息R[16];得到的左信息L[16]、右信息R[16]通过第1个写端口运算行选择器写入通用寄存器堆中,用于下一个可重构阵列块运行;
步骤64:步骤64为步骤61的逆操作,对任意一组R[16]、L[16]进行IP逆置换得到64比特的密文,输出至输出先入先出寄存器组;
个数据载入单元从通用寄存器堆中中载入左信息L[16]、右信息R[16];通过第18个读端口运算行选择器读取配置单元的配置信息;根据配置信息通过第个比特置换网络对左信息L[16]、右信息R[16]进行IP移位逆变换得到64比特的密文,并根据配置信息将64比特的密文通过第个数据输出单元根据配置信息发送出;
个数据载入单元从载入第个数据输出单元发送出的64比特的密文;通过第1个读端口运算行选择器读取配置单元的配置信息;根据配置信息将64比特的密文通过第个数据输出单元发送出;
个数据载入单元从载入第个数据输出单元发送出的64比特的密文;通过第1个读端口运算行选择器读取配置单元的配置信息;根据配置信息将64比特的密文通过第个数据输出单元发送出;
个数据载入单元从载入第个数据输出单元发送出的64比特的密文;通过第1个读端口运算行选择器读取配置单元的配置信息;根据配置信息将64比特的密文通过第个数据输出单元发送给输出先入先出寄存器组中。
CN201610334436.3A 2016-05-19 2016-05-19 一种基于粗粒度可重构架构的des算法轮迭代系统及迭代方法 Active CN105975251B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610334436.3A CN105975251B (zh) 2016-05-19 2016-05-19 一种基于粗粒度可重构架构的des算法轮迭代系统及迭代方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610334436.3A CN105975251B (zh) 2016-05-19 2016-05-19 一种基于粗粒度可重构架构的des算法轮迭代系统及迭代方法

Publications (2)

Publication Number Publication Date
CN105975251A CN105975251A (zh) 2016-09-28
CN105975251B true CN105975251B (zh) 2018-10-02

Family

ID=56957116

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610334436.3A Active CN105975251B (zh) 2016-05-19 2016-05-19 一种基于粗粒度可重构架构的des算法轮迭代系统及迭代方法

Country Status (1)

Country Link
CN (1) CN105975251B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107506329B (zh) * 2017-08-18 2018-06-19 浙江大学 一种自动支持循环迭代流水线的粗粒度可重构阵列及其配置方法
CN107679012A (zh) * 2017-09-27 2018-02-09 清华大学无锡应用技术研究院 用于可重构处理系统的配置的方法和装置
CN107656833A (zh) * 2017-11-06 2018-02-02 郑州云海信息技术有限公司 一种crc计算设备及计算方法
CN109062857B (zh) * 2018-08-14 2021-07-13 苏州硅岛信息科技有限公司 一种能高速实现多处理器间通信的新型消息控制器及其通信方法
CN109672524B (zh) * 2018-12-12 2021-08-20 东南大学 基于粗粒度可重构架构的sm3算法轮迭代系统及迭代方法
CN110059493B (zh) * 2019-04-10 2023-04-07 无锡沐创集成电路设计有限公司 基于粗粒度可重构计算单元的skinny-128-128加密算法实现方法及系统
CN110321162B (zh) * 2019-07-01 2023-06-06 无锡沐创集成电路设计有限公司 基于粗粒度可重构计算单元的present加密算法实现方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103297223A (zh) * 2013-05-07 2013-09-11 北京航空航天大学 基于动态可重构的自恢复容错aes结构及其加密方法
CN103984560A (zh) * 2014-05-30 2014-08-13 东南大学 基于大规模粗粒度嵌入式可重构系统及其处理方法
CN103984677A (zh) * 2014-05-30 2014-08-13 东南大学 基于大规模粗粒度嵌入式可重构系统及其处理方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4986206B2 (ja) * 2006-02-22 2012-07-25 株式会社日立製作所 暗号処理方法及び暗号処理装置
US8023644B2 (en) * 2006-12-04 2011-09-20 Lsi Corporation Multimode block cipher architectures
KR101622266B1 (ko) * 2009-04-22 2016-05-18 삼성전자주식회사 재구성 가능 프로세서 및 이를 이용한 인터럽트 핸들링 방법
CN102855197A (zh) * 2011-11-08 2013-01-02 东南大学 一种面向大规模粗粒度可重构系统存储系统的实现方法
CN102508816B (zh) * 2011-11-15 2014-05-07 东南大学 一种应用于粗粒度可重构阵列的配置方法
CN103914413A (zh) * 2014-04-18 2014-07-09 东南大学 用于粗粒度可重构系统的外存访问接口及其访问方法
CN105335331B (zh) * 2015-12-04 2018-08-21 东南大学 一种基于大规模粗粒度可重构处理器的sha256实现方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103297223A (zh) * 2013-05-07 2013-09-11 北京航空航天大学 基于动态可重构的自恢复容错aes结构及其加密方法
CN103984560A (zh) * 2014-05-30 2014-08-13 东南大学 基于大规模粗粒度嵌入式可重构系统及其处理方法
CN103984677A (zh) * 2014-05-30 2014-08-13 东南大学 基于大规模粗粒度嵌入式可重构系统及其处理方法

Also Published As

Publication number Publication date
CN105975251A (zh) 2016-09-28

Similar Documents

Publication Publication Date Title
CN105975251B (zh) 一种基于粗粒度可重构架构的des算法轮迭代系统及迭代方法
CN105912501B (zh) 一种基于大规模粗粒度可重构处理器的sm4-128加密算法实现方法及系统
US20230351151A1 (en) Neural processor
US11163720B2 (en) Apparatus and method for processing an instruction matrix specifying parallel and dependent operations
CN105335331B (zh) 一种基于大规模粗粒度可重构处理器的sha256实现方法及系统
US5689722A (en) Multipipeline multiprocessor system
CN110321162B (zh) 基于粗粒度可重构计算单元的present加密算法实现方法及系统
CN105049061B (zh) 基于超前计算的高维基极化码译码器和极化码译码方法
CN109271138A (zh) 一种适用于大维度矩阵乘的链式乘法结构
JPH11161637A (ja) 高速フーリエ変換を用いて短い待ち時間でアレイ処理を行う並列システム
CN110059493B (zh) 基于粗粒度可重构计算单元的skinny-128-128加密算法实现方法及系统
CN101617306B (zh) 用于执行快速傅立叶变换操作的设备
CN108462495A (zh) 一种基于gpu的多元ldpc码高速并行译码器及其译码方法
WO2022199459A1 (zh) 一种可重构处理器及配置方法
CN106155979B (zh) 一种基于粗粒度可重构架构的des算法密钥扩展系统及扩展方法
Usui et al. A cost-effective and scalable merge sorter tree on FPGAs
Qian et al. FPGA implementation of low-power split-radix FFT processors
CN106021171A (zh) 一种基于大规模粗粒度可重构处理器的sm4-128的密钥扩展实现方法及系统
JP2015503785A (ja) Fft/dftの逆順ソーティングシステム、方法およびその演算システム
CN109672524A (zh) 基于粗粒度可重构架构的sm3算法轮迭代系统及迭代方法
CN104268124A (zh) 一种fft实现装置和方法
CN102201817B (zh) 基于存储器折叠架构优化的低功耗ldpc译码器
WO2013097235A1 (zh) 并行位反序装置和方法
CN113159302B (zh) 一种用于可重构神经网络处理器的路由结构
CN109274460A (zh) 一种多比特并行结构串行抵消译码方法和装置

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