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

文档序号:10612583阅读:311来源:国知局
一种基于粗粒度可重构架构的des算法轮迭代系统及迭代方法
【专利摘要】本发明公开了一种基于粗粒度可重构架构的DES算法轮迭代系统及迭代方法,包括系统总线、可重构处理器和微处理器;所述可重构处理器包括配置单元、输入先进先出寄存器组、输出先进先出寄存器组、通用寄存器堆、M个可重构阵列块、查找表,本发明利用可重构技术的并行性处理、运算模块独立可配置等优点,在支持一定的灵活性的同时,通过提高对DES算法的并行度以及优化流水线等方法实现了DES算法的高效运算。
【专利说明】
一种基于粗粒度可重构架构的DES算法轮迭代系统及迭代 方法
技术领域
[0001] 本发明涉及一种应用于通信、加密等领域的基于大规模粗粒度嵌入式可重构系统 及其处理方法,属于嵌入式可重构系统领域。
【背景技术】
[0002] 通用处理器与专用集成电路(ASIC)是传统的计算机系统结构领域的两大主流方 法。然而,随着应用领域对系统的性能、能耗、上市时间等指标需求的不断提高,这两种传统 计算模式的弊端就暴露出来。
[0003]通用处理器方法适用范围广,但是计算效率低,专用集成电路虽然可以提高计算 速度和计算效率,满足性能需求,但是ASIC器件的灵活性很差。
[0004] 为了在灵活性和计算效率之间实现很好的权衡,可重构计算(reconf igurable computing)技术应运而生。可重构计算是当前计算机系统结构领域的发展趋势之一,它的 架构介于通用处理器和ASIC之间,并且综合了二者长处。它通过对可重构设备进行配置,可 以使之由一个通用的计算平台转化为一个专用的硬件系统,以完成具体的计算任务,相当 于计算任务同时在时间和空间上展开,显示出了应用的灵活性和很高的计算性能。此外,可 重构计算技术还具有系统能耗低、可靠性高、上市时间短等优势。这些优势使得可重构计算 技术在各个应用领域尤其是嵌入式应用领域有着广阔的应用前景。很多在嵌入式领域中的 主流应用,例如多媒体应用、加/解密应用以及通信应用等都非常适合利用可重构计算技术 实现。当前的可重构计算技术主要还是用于尖端技术领域中的计算平台,但随着可重构逻 辑器件成本逐渐降低,运行时可重构计算技术不断完善,我们有理由相信可重构计算技术 具备的种种优势会使其在更多的领域里大有作为。
[0005] 目前国内外已研究有多重可重构系统,如ReMAP,AsAP,DRP等。但是,这些阵列的互 联方式较为简单,在DES算法轮迭代运算中需要大量的比特移位以及较多的轮数,因此运算 的效率和速度较低。传统的可重构计算系统在DES的运算效率与运算周期方面存在较大问 题。
[0006] 现有的中国专利201510886219.0,发明名称为:一种基于大规模粗粒度可重构处 理器的SHA256实现方法及系统,其针对SHA256方法,通过将多轮迭代在可重构处理器中部 分展开和中间结果数据缓存的方式进行优化和加速,但是对于DES算法来说,该方法及系统 不适用。

【发明内容】

[0007] 发明目的:为了克服现有技术中存在的不足,本发明提供一种基于粗粒度可重构 架构的DES算法轮迭代系统及迭代方法,本发明利用可重构技术的并行性处理、运算模块独 立可配置等优点,在支持一定的灵活性的同时,通过提高对DES算法的并行度以及优化流水 线等方法实现了 DES算法的高效运算。
[0008] 技术方案:为实现上述目的,本发明采用的技术方案为:
[0009] 一种基于粗粒度可重构架构的DES算法轮迭代系统,包括系统总线、可重构处理器 和微处理器。
[0010] 所述可重构处理器包括配置单元、输入先进先出寄存器组、输出先进先出寄存器 组、通用寄存器堆、Μ个可重构阵列块、查找表,所述配置单元的进线口通过系统总线与微处 理器连接,且配置单元的出线口分别与可重构阵列块连接。而所述输入先进先出寄存器组 通过系统总线与微处理器连接。这Μ个可重构阵列块分别为第1个可重构阵列块、第2个可重 构阵列块、…、第m个可重构阵列块、…、第Μ个可重构阵列块,m=l. ..Μ,Μ取整数。所述第1个 可重构阵列块与输入先进先出寄存器组连接,而第Μ个可重构阵列块与输出先进先出寄存 器组连接,且这Μ个可重构阵列块均与通用寄存器堆和查找表连接。这Μ个可重构阵列块之 间通过通用寄存器堆互相进行数据的储存、读取和传递。所述输出先进先出寄存器组通过 系统总线与微处理器连接。其中:
[0011]微处理器通过分析DES的特征来确定轮迭代的运算流程,将多轮的轮迭代运算展 开成一幅数据流图映射到可重构处理器中形成配置信息发送给配置单元。微处理器通过系 统总线发送明文数据给可重构处理器,明文数据将存入输入先进先出寄存器组。微处理器 并将初始数据、生成的密钥和计算的中间数据存入通用寄存器堆中用于下一张图的轮迭 代。
[0012] 所述配置单元用于存储配置信息,并将配置信息发送给各个可重构阵列块。
[0013] 第1个可重构阵列块用于获取输入先进先出寄存器组的明文数据和读取其对应的 配置单元的配置信息。第1个可重构阵列块根据配置信息对明文数据进行初始轮迭代得到 初始中间信息。根据配置信息将初始中间信息载入下一个可重构阵列块中,用于下一个可 重构阵列块的运算。
[0014] 对于第ρ个可重构阵列块,2彡ρ彡Μ-1,第ρ个可重构阵列块用于获取第(ρ-1)个可 重构阵列块的中间信息、读取其对应的配置单元的配置信息以及读取查找表的查找表信 息。通过第Ρ个读端口运算行选择器读取通用寄存器堆中存储的密钥。所述第Ρ个可重构阵 列块根据配置信息对第(Ρ-1)个可重构阵列块的中间信息、查找表信息、密钥进行轮迭代, 得到第Ρ个可重构阵列块的的中间信息。
[0015] 对于第Μ个可重构阵列块,第Μ个可重构阵列块用于获取第(Μ-1)个可重构阵列块 的中间信息和读取其对应的配置单元的配置信息。第Μ个可重构阵列块根据配置信息对第 (Μ-1)个可重构阵列块的中间信息进行逆变换获取密文。
[0016] 优选的:所述配置单元包括依次连接在一起的配置与控制接口、配置存储器和配 置解析模块,且所述配置与控制接口和系统总线连接。微处理器依次通过系统总线和配置 与控制接口将所需要的配置信息发送给配置存储器,所述配置存储器存储发送过来的配置 信息,而配置解析模块用于解析配置存储器的配置信息,且将解析的配置信息发送给可重 构阵列块,实现对可重构阵列块的配置、启动以及切换操作。
[0017] 优选的:所述可重构阵列块包括读端口运算行选择器、写端口运算行选择器以及Ν 行可重构阵列运算行,且这Ν行可重构阵列运算行共享读端口运算行选择器和写端口运算 行选择器。其中,第m个可重构阵列块中的读端口运算行选择器记为第个读端口运算行选择 器,第m个可重构阵列块中的写端口运算行选择器记为第m个写端口运算行选择器,第m个可 重构阵列块中的第η行可重构阵列运算行记为第成^行可重构阵列运算行,m=l.. .M,n = 1. . .N,M为可重构阵列块的个数,N为可重构阵列块包括的可重构阵列运算行的行数,M,N取 整数。且所述可重构阵列块之间按顺序依次连接,而每个可重构阵列块内部的可重构阵列 运算行之间按顺序依次连接。
[0018] 在轮迭代中可重构阵列块运算得到的中间数据通过写端口运算行选择器存在通 用寄存器堆中,而在轮迭代中可重构阵列块运算需要得到的中间数据通过读端口运算行选 择器读取通用寄存器堆中存储的信息。
[0019] 第A〗行可重构阵列运算行与输入先进先出寄存器组相连,同时第行可重构阵 列运算行与输出先进先出寄存器组相连,每个可重构阵列块都有一个连至查找表的读端 口,同时每个可重构阵列块中都只能选择一行可重构阵列行用于查找表查表。可重构阵列 运算行可通过通用寄存器堆读出各种缓冲数据以及各种临时的消息摘要,同时可以向通用 寄存器堆写入消息摘要的每轮计算的扩展密钥,这些密钥被用于后续加密计算。
[0020] 在第1个可重构阵列块中,第iii行可重构阵列运算行输入先进先出寄存器组中的 明文数据,通过第1个读端口运算行选择器读取配置单元的配置信息。同时通过第1个读端 口运算行选择器读取通用寄存器堆中的存储的密钥。第為:行可重构阵列运算行根据配置信 息对明文数据和密钥进行轮迭代计算得到下一个可重构阵列块轮迭代的中间数据。并将此 中间数据通过第1个写端口运算行选择器写入通用寄存器堆中。
[0021] 对于第p个可重构阵列块,2<p<M-l。第p个可重构阵列块中的第行可重构阵列 运算行从通用寄存器堆中载入第(P-1)个可重构阵列块的中间数据。同时通过第P个写端口 运算行选择器写入通用寄存器堆中的密钥。通过查找表查找到查找表信息。和通过第P个读 端口运算行选择器读取配置单元的配置信息。第P个可重构阵列块根据配置信息对第(p-Ι) 个可重构阵列块的中间数据、密钥、查找表信息进行轮迭代运算,得到第P个可重构阵列块 的中间数据,将此中间数据通过第P个写端口运算行选择器写入通用寄存器堆中,用于下一 个可重构阵列块轮迭代计算。
[0022] 对于第Μ个可重构阵列块,第Μ个可重构阵列块中的第行可重构阵列运算行从 通用寄存器堆中载入第(M-1)个可重构阵列块的中间数据。第Μ个可重构阵列块根据配置信 息对第(Μ-1)个可重构阵列块的中间信息进行逆变换获取密文。
[0023] 优选的:每行可重构阵列运算行均包括Xi个数据载入单元、Χ2个数据输出单元、Χ3 个字节置换网络、Χ4个比特置换网络和Χ5个8位算术逻辑单元,字节置换网络与比特置换网 络组成置换网络,字节置换网络与比特置换网络的输出Χ 5个8位的数据分别固定对应于知个 8位算术逻辑单元。每个算术逻辑单元使用对应的读端口运算行选择器选择任意三个置换 网络的输出作为其输入。第m个可重构阵列块第η行可重构阵列运算行的第kl个数据载入单 元记为第数据载入单元,第m个可重构阵列块第η行可重构阵列运算行的第k2个数 据输出单元记为第个数据输出单元,第m个可重构阵列块第η行可重构阵列运算行的 第k3个字节置换网络记为第字节置换网络,第 m个可重构阵列块第η行可重构阵列运 算行的第k4个比特置换网络记为第dg,Μ个比特置换网络,第m个可重构阵列块第η行可重 构阵列运算行的第kl个数据载入单元记为第e^, fc5.个算术逻辑单元,kl = l. . .Xi,k2 = 1...父2,1^3 = 1...父3,1^4=1...父4,1^5 = 1...父5,父1,父2,父3,父4和父5均取整数。第111个读端口运算 行选择器读取的上一步的中间数据以及接收解析配置解析模块的配置信息来选择中间数 据流入的字节置换网络和比特置换网络。
[0024] 第以,〗个数据载入单元载入输入先进先出寄存器组中的数据,同时解析配置解析 模块的配置信息。在通过第1个读端口运算行选择器读取通用寄存器堆中的存储的信息并 根据解析的配置信息来选择数据流入的对应的置换网络,该置换网络为第个字节置换 网络和第个比特置换网络。第个数据输出单元暂存其对应的第ei,if算术逻辑单元 的结果并读取配置信息决定将数据输出到输出先进先出寄存器组、下一行可重构阵列运算 行或通用寄存器堆。
[0025] 第个数据载入单元解析配置解析模块的配置信息,在通过第m个读端口运算 行选择器读取通用寄存器堆中存储的第m个可重构阵列运算块的运行数据信息,并根据解 析的配置信息来选择数据流入的对应的置换网络,该置换网络为第个字节置换网络和 第个比特置换网络。第拉^ 2个数据输出单元暂存其对应的第eg#个算术逻辑单元的 结果并读取配置信息决定将数据输出到输出先进先出寄存器组、下一行可重构阵列运算行 或通用寄存器堆。
[0026] 优选的:所述算术逻辑单元中包括模加运算、异或运算、与运算、与非运算、直通输 出运算操作。同时每个算术逻辑单元有最多3个输入和最多2个输出,其中算术逻辑单元执 行上述运算操作的同时,支持任选一个输入作为输出。每4个8位的算术逻辑单元通过进位 端口连接成为1个32位的算术逻辑单元。
[0027] 优选的:所述可重构阵列块的个数为10个,各个可重构阵列块之间首尾依次连接 在一起,通用寄存器堆的个数为1个,输入先进先出寄存器组的个数为1个,输出先进先出寄 存器组的个数为1个。
[0028] 优选的:每个可重构阵列块包括4行可重构阵列运算行、1个读端口运算行选择器 和1个写端口运算行选择器。每行可重构阵列运算行包括2个数据载入单元、2个数据输入单 元、16个8位算术运算单元、2个字节置换网络和2个比特置换网络。
[0029 ] -种基于粗粒度可重构架构的DES算法轮迭代方法,包括以下步骤。
[0030]步骤1,分析DES方法轮迭代的计算特点,并归纳出数据流图。
[0031 ]步骤2,根据数据流图中的运算流程,制定DES的数据输入方式。
[0032]步骤3,根据步骤2确定的数据输入方式以及步骤2确定的数据流图针对可重构处 理器的特点配置可重构处理器,并生成配置信息。
[0033] 步骤4,通过微处理器将配置信息以及可重构处理器初始数据存入相应的存储器 中。
[0034] 步骤5,微处理器启动可重构处理器,并将配置信息及待处理数据发送给可重构处 理器。
[0035] 步骤6,可重构处理器根据配置信息及待处理数据进行数据处理,当可重构处理器 完成当前任务后,发送中断信号。并将处理好的数据通过通过系统总线发送给微处理器。 [0036] 优选的,步骤6中可重构处理器根据配置信息及待处理数据进行数据处理的方法:
[0037] 步骤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]通过第个数据输出单元根据 配置信息发送出。
[0038] 第个数据载入单元从载入第个数据输出单元发送出的高64位的初始左信 息L[0]、初始右信息R[0]和低64位的初始左信息L[0]、初始右信息R[0]。通过第1个读端口 运算行选择器读取配置单元的配置信息。根据配置信息将高64位的初始左信息L[0]、初始 右信息R[0]和低64位的初始左信息L[0]、初始右信息R[0]通过第个数据输出单元发送 出。
[0039] 第^^个数据载入单元从载入第技!个数据输出单元发送出的高64位的初始左信 息L[0]、初始右信息R[0]和低64位的初始左信息L[0]、初始右信息R[0]。通过第1个读端口 运算行选择器读取配置单元的配置信息。根据配置信息将高64位的初始左信息L[0]、初始 右信息R[0]和低64位的初始左信息L[0]、初始右信息R[0]通过第拉i个数据输出单元发送 出。
[0040] 第岭;1个数据载入单元从载入第个数据输出单元发送出的高64位的初始左信 息L[0]、初始右信息R[0]和低64位的初始左信息L[0]、初始右信息R[0]。通过第1个读端口 运算行选择器读取配置单元的配置信息。根据配置信息将高64位的初始左信息L[0]、初始 右信息R[0]和低64位的初始左信息L[0]、初始右信息R[0]通过第1个数据输出单元发送给 第1个写端口运算行选择器,通过第1个写端口运算行选择器将低64位的初始左信息L[0]、 初始右信息R[0]写入通用寄存器堆中,用于下一个可重构阵列块运行。
[0041 ] 步骤62:对于第p个可重构阵列块,2彡P<M-1。第(P-1)个可重构阵列块写入到通 用寄存器堆中低64位的左信息L[i]和右信息R[i],0彡;[彡154+2 = 口。第口个可重构阵列块 中的第行可重构阵列运算行中的第α。个数据载入单元从第(p-1)个可重构阵列块载入 低64位的左信息L[ i ]和右信息R[ i ]。同时通过第p个写端口运算行选择器写入密钥K[ i+Ι ]。 和通过第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 ]。
[0042]第行可重构阵列运算行中的第# 个数据载入单元载入高64比特的左信息L [i]和右信息R[i],低48比特的查找表信息S[i],通过第p个读端口运算行选择器读取配置 单元的配置信息。根据配置信息对低48比特的查找表信息S[i]进行比特移位得到低48比特 的查找表信息Sli]。其中,48比特分为8组6比特的块,将每个6比特块内部比特位从左到右 依次编号,则每个块的第1和第6比特为查找表横坐标地址,中间4比特为查找表纵坐标地 址。根据配置信息把查找表信息S'[i]、左信息L[i]和右信息R[i]通过第&&个数据输出单 元发送给第4,1个数据载入单元。
[0043] 第行可重构阵列运算行中的第Cl|A个数据载入单元载入左信息L[i]和右信息R [i]、查找表信息S'[i],将查找表信息S'[i]置为高位,而左信息L[i]和右信息R[i]置为低 位。通过第P个读端口运算行选择器读取配置单元的配置信息。根据配置信息通过查找表信 息S'[ i]对查找表进行查找得到新的查找表信息S" [ i],根据配置信息把新的查找表信息S" [i]、左信息L[i]和右信息R[i]通过第掉,i个数据输出单元发送给第个数据载入单元。
[0044] 第行可重构阵列运算行中的第个数据载入单元载入左信息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。
[0045] 步骤63:对于第17个可重构阵列块,2<p<M-l。第16个可重构阵列块写入到通用 寄存器堆中低64位的左信息L[15]和右信息R[15]。第17个可重构阵列块中的第行可重 构阵列运算行中的第α? 71个数据载入单元从第16个可重构阵列块载入低64位的左信息L [15]和右信息R[15]。同时通过第17个写端口运算行选择器写入密钥Κ[16]。和通过第17个 读端口运算行选择器读取配置单元的配置信息。根据配置信息将低64位的左信息L[15]和 右信息R[15]进行E移位,E移位后的数据与密钥K[16]异或得到的低48比特中间信息S[15]。 根据配置信息将左信息L[15]和右信息R[15]以及查找表信息S[15]通过第个数据输出 单元发送给第% 27|1个数据载入单元,第《i7fl个数据载入单元载入高64比特的左信息L[15] 和右信息R[ 15 ],低48比特的查找表信息S [ 15 ]。
[0046] 第名7行可重构阵列运算行中的第α〖71个数据载入单元载入高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]通过第拉7,if 数据输出单元发送给第α?Λ1个数据载入单元。
[0047] 第行可重构阵列运算行中的第七37>1个数据载入单元载入左信息L[15]和右信 息R[15]、查找表信息S' [15],将查找表信息S' [15]置为高位,而左信息L[15]和右信息R [15]置为低位。通过第17个读端口运算行选择器读取配置单元的配置信息。根据配置信息 通过查找表信息f [15]对查找表进行查找得到新的查找表信息S〃[15],根据配置信息把新 的查找表信息S〃[15]、左信息L[15]和右信息R[15]通过第个数据输出单元发送给第 a|7fl个数据载入单元。
[0048] 第行可重构阵列运算行中的第ai7J个数据载入单元载入左信息L[15]、右信息 R[ 15]和新的查找表信息S〃 [ 15],将新的查找表信息S〃 [ 15]置为高位,而左信息L[ 15]和右 信息R[15]置为低位。通过第pl7个读端口运算行选择器读取配置单元的配置信息。根据配 置信息对新的查找表信息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个写端口运算行选择器写入通用寄存器堆中,用于下一个可重构阵列块运行。
[0049]步骤64:步骤64为步骤61 的逆操作,[16]、1^16]、1?[16]、1116]对任意一组1?[16]、1^
[16] 进行IP逆置换得到64比特的密文,输出至输出先入先出寄存器组。
[0050] 第%1^个数据载入单元从通用寄存器堆中中载入左信息L[16]、右信息R[16]。通 过第18个读端口运算行选择器读取配置单元的配置信息。根据配置信息通过第个比特 置换网络对左信息L[16]、右信息R[16]进行IP移位逆变换得到64比特的密文,并根据配置 信息将64比特的密文通过第/)丨μ个数据输出单元根据配置信息发送出。
[0051] 第affu个数据载入单元从载入第i4,:t个数据输出单元发送出的64比特的密文。通 过第1个读端口运算行选择器读取配置单元的配置信息。根据配置信息将64比特的密文通 过第W i个数据输出单元发送出。
[0052] 第%38>1个数据载入单元从载入第个数据输出单元发送出的64比特的密文。通 过第1个读端口运算行选择器读取配置单元的配置信息。根据配置信息将64比特的密文通 过第个数据输出单元发送出。
[0053] 第α?8>1个数据载入单元从载入第&|8ι1个数据输出单元发送出的64比特的密文。通 过第1个读端口运算行选择器读取配置单元的配置信息。根据配置信息将64比特的密文通 过第^^个数据输出单元发送给输出先入先出寄存器组中。
[0054]所述步骤62中的Ε移位的规则如下:
[0055]
[0056] L[i ]表不第i步的左彳目息,R[i ]表不第i步的右彳目息,φ表不异或,F(R[ i_l],K[i]) 表示轮函数。
[0057]有益效果:本发明提供的一种基于粗粒度可重构架构的DES算法轮迭代系统及迭 代方法,相比现有技术,具有以下有益效果:
[0058]该方法针对DES算法轮迭代,通过10个可重构阵列块包含多个运算单元,借助通用 寄存器堆提高DES算法的运算并行度,将多轮迭代在可重构处理器中并行移位替换的方式 进行优化和加速,在具有一定灵活性的同时,提高DES方法的运算效率,尽可能的减少运算 周期。
【附图说明】
[0059]图1为本发明的基于大规模粗粒度嵌入式可重构系统处理器框图;
[0060] 图2为IP变换。
[0061 ]图3为轮迭代过程,总共执行16轮轮迭代。
[0062] 图4位IP逆变换。
[0063]图5为64比特的明文IP变换移位的规则表。明文从左往右依次为1,2···64比特位。 [0064]图6为Ε扩展变换移位规则。
[0065] 图7为IP逆变换移位规则表。
[0066] 图8为DES算法轮迭代整体流图。
【具体实施方式】
[0067] 下面结合附图和具体实施例,进一步阐明本发明,应理解这些实例仅用于说明本 发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种 等价形式的修改均落于本申请所附权利要求所限定的范围。
[0068] -种基于粗粒度可重构架构的DES算法轮迭代系统,如图1所示,包括系统总线、可 重构处理器和微处理器。微处理器通过系统总线发送明文数据给可重构处理器,明文数据 将存入输入先进先出寄存器组,并在最终计算完成后输出密文数据到输出先进先出寄存器 组,并发送中断信号,最终输出先进先出寄存器组中的数据由微处理器读出。
[0069] 所述可重构处理器包括配置单元、输入先进先出寄存器组、输出先进先出寄存器 组、通用寄存器堆、Μ个可重构阵列块、查找表,所述配置单元的进线口通过系统总线与微处 理器连接,且配置单元的出线口分别与可重构阵列块连接。而所述输入先进先出寄存器组 通过系统总线与微处理器连接。这Μ个可重构阵列块分别为第1个可重构阵列块、第2个可重 构阵列块、…、第m个可重构阵列块、…、第Μ个可重构阵列块,m=l. ..Μ,Μ取整数。所述第1个 可重构阵列块与输入先进先出寄存器组连接,而第Μ个可重构阵列块与输出先进先出寄存 器组连接,且这Μ个可重构阵列块均与通用寄存器堆和查找表连接。这Μ个可重构阵列块之 间通过通用寄存器堆互相进行数据的储存、读取和传递。所述输出先进先出寄存器组通过 系统总线与微处理器连接。其中:
[0070]微处理器通过分析DES的特征来确定轮迭代的运算流程,将多轮的轮迭代运算展 开成一幅数据流图映射到可重构处理器中形成配置信息发送给配置单元。微处理器通过系 统总线发送明文数据给可重构处理器,明文数据将存入输入先进先出寄存器组。微处理器 并将初始数据、生成的密钥和计算的中间数据存入通用寄存器堆中用于下一张图的轮迭 代。
[0071 ]所述配置单元用于存储配置信息,并将配置信息发送给各个可重构阵列块。
[0072] 第1个可重构阵列块用于获取输入先进先出寄存器组的明文数据和读取其对应的 配置单元的配置信息。第1个可重构阵列块根据配置信息对明文数据进行初始轮迭代得到 初始中间信息。根据配置信息将初始中间信息载入下一个可重构阵列块中,用于下一个可 重构阵列块的运算。
[0073] 对于第p个可重构阵列块,2<p<M-l,第p个可重构阵列块用于获取第(p-1)个可 重构阵列块的中间信息、读取其对应的配置单元的配置信息以及读取查找表的查找表信 息。通过第P个读端口运算行选择器读取通用寄存器堆中存储的密钥。所述第P个可重构阵 列块根据配置信息对第(P-1)个可重构阵列块的中间信息、查找表信息、密钥进行轮迭代, 得到第P个可重构阵列块的的中间信息。
[0074] 对于第Μ个可重构阵列块,第Μ个可重构阵列块用于获取第(M-1)个可重构阵列块 的中间信息和读取其对应的配置单元的配置信息。第Μ个可重构阵列块根据配置信息对第 (Μ-1)个可重构阵列块的中间信息进行逆变换获取密文。
[0075] 所述配置单元包括依次连接在一起的配置与控制接口、配置存储器和配置解析模 块,且所述配置与控制接口和系统总线连接。微处理器依次通过系统总线和配置与控制接 口将所需要的配置信息发送给配置存储器,所述配置存储器存储发送过来的配置信息,而 配置解析模块用于解析配置存储器的配置信息,且将解析的配置信息发送给可重构阵列 块,实现对可重构阵列块的配置、启动以及切换操作。
[0076] 使用时,对配置单元中的配置存储器进行初始化,微处理器将所需要的配置信息 通过配置与控制接口发送到配置存储器中,然后通过配置解析模块解析配置存储器,实现 对计算阵列的配置、启动以及切换操作。
[0077] 多个可重构阵列块中相邻的两个可重构阵列块通过数据载入单元和数据输出单 元连接。第一个可重构阵列块通过第一行可重构阵列运算行的数据载入单元与输入先进先 出寄存器组相连,同时第Μ个可重构阵列块通过第Ν行可重构阵列运算行的数据输出单元与 输出先进先出寄存器组相连,其中Ν为一个可重构阵列块包含可重构阵列运算行个数。每个 可重构阵列块都有一个连至查找表的读端口,同时每个可重构阵列块中都只能选择一行可 重构阵列行用于查表。
[0078] 所述可重构阵列块包括读端口运算行选择器、写端口运算行选择器以及Ν行可重 构阵列运算行,且这Ν行可重构阵列运算行共享读端口运算行选择器和写端口运算行选择 器。其中,第m个可重构阵列块中的读端口运算行选择器记为第m个读端口运算行选择器,第 m个可重构阵列块中的写端口运算行选择器记为第m个写端口运算行选择器,第m个可重构 阵列块中的第η行可重构阵列运算行记为第^?"行可重构阵列运算行,m=l. . .M,n=l. . .N, Μ为可重构阵列块的个数,N为可重构阵列块包括的可重构阵列运算行的行数,M,N取整数。 且所述可重构阵列块之间按顺序依次连接,而每个可重构阵列块内部的可重构阵列运算行 之间按顺序依次连接。其每N行可重构阵列运算行共享1个通用寄存器堆的读端口和写端 口;在轮迭代中可重构阵列运算得到的中间数据将存在通用寄存器堆中。
[0079] 在轮迭代中可重构阵列块运算得到的中间数据通过写端口运算行选择器存在通 用寄存器堆中,而在轮迭代中可重构阵列块运算需要得到的中间数据通过读端口运算行选 择器读取通用寄存器堆中存储的信息。
[0080] 第Ai行可重构阵列运算行与输入先进先出寄存器组相连,同时第^^行可重构阵 列运算行与输出先进先出寄存器组相连,每个可重构阵列块都有一个连至查找表的读端 口,同时每个可重构阵列块中都只能选择一行可重构阵列行用于查找表查表。可重构阵列 运算行可通过通用寄存器堆读出各种缓冲数据以及各种临时的消息摘要,同时可以向通用 寄存器堆写入消息摘要的每轮计算的扩展密钥,这些密钥被用于后续加密计算。
[0081] 在第1个可重构阵列块中,第4行可重构阵列运算行输入先进先出寄存器组中的 明文数据,通过第1个读端口运算行选择器读取配置单元的配置信息。同时通过第1个读端 口运算行选择器读取通用寄存器堆中的存储的密钥。第4行可重构阵列运算行根据配置 信息对明文数据和密钥进行轮迭代计算得到下一个可重构阵列块轮迭代的中间数据。并将 此中间数据通过第1个写端口运算行选择器写入通用寄存器堆中。
[0082] 对于第p个可重构阵列块,2<p<M-l。第p个可重构阵列块中的第Α?行可重构阵列 运算行从通用寄存器堆中载入第(P-1)个可重构阵列块的中间数据。同时通过第P个写端口 运算行选择器写入通用寄存器堆中的密钥。通过查找表查找到查找表信息。和通过第P个读 端口运算行选择器读取配置单元的配置信息。第P个可重构阵列块根据配置信息对第(P-1) 个可重构阵列块的中间数据、密钥、查找表信息进行轮迭代运算,得到第P个可重构阵列块 的中间数据,将此中间数据通过第P个写端口运算行选择器写入通用寄存器堆中,用于下一 个可重构阵列块轮迭代计算。
[0083] 对于第Μ个可重构阵列块,第Μ个可重构阵列块中的第4^行可重构阵列运算行从 通用寄存器堆中载入第(Μ-1)个可重构阵列块的中间数据。第Μ个可重构阵列块根据配置信 息对第(Μ-1)个可重构阵列块的中间信息进行逆变换获取密文。
[0084] 每个可重构阵列块中的有且只有一行可重构阵列运算行得到的中间数据输出到 查找表用于查表。
[0085] 每行可重构阵列运算行均包括心个数据载入单元、Χ2个数据输出单元、Χ3个字节置 换网络、Χ4个比特置换网络和Χ 5个8位算术逻辑单元,字节置换网络与比特置换网络组成置 换网络,字节置换网络与比特置换网络的输出Χ5个8位的数据分别固定对应于Χ 5个8位算术 逻辑单元。每个算术逻辑单元使用对应的读端口运算行选择器选择任意三个置换网络的输 出作为其输入。第m个可重构阵列块第η行可重构阵列运算行的第kl个数据载入单元记为第 个数据载入单元,第m个可重构阵列块第行可重构阵列运算行的第k2个数据输出单元 记为第bn,k2f数据输出单元,第m个可重构阵列块第η行可重构阵列运算行的第k3个字节置 换网络记为第 fc3个字节置换网络,第m个可重构阵列块第η行可重构阵列运算行的第k4 个比特置换网络记为第个比特置换网络,第m个可重构阵列块第η行可重构阵列运算 行的第kl个数据载入单元记为第个算术逻辑单元,kl = l. · .Xi,k2 = l. · .X2,k3 = 1. . .X3,k4=l. . .X4,k5 = l. . ^1七力义和)(5均取整数。数据经过数据载入单元,由选择 器通过读取并解析不同的配置信息来选择数据流入的字节置换网络和比特置换网络;即第 m个读端口运算行选择器读取的上一步的中间数据以及接收解析配置解析模块的配置信息 来选择中间数据流入的字节置换网络和比特置换网络。字节置换网络与比特置换网络的输 出分为X 5个8位的数据分别固定对应于X5个8位算术逻辑单元;每个算术逻辑单元使用数据 选择器选择任意三个置换网络的输出作为其输入;数据输出单元暂存算术逻辑单元的结果 并读取配置信息决定将数据输出到先进先出寄存器组、下一行可重构阵列运算行或通用寄 存器堆。
[0086] 第%1』个数据载入单元载入输入先进先出寄存器组中的数据,同时解析配置解析 模块的配置信息。在通过第1个读端口运算行选择器读取通用寄存器堆中的存储的信息并 根据解析的配置信息来选择数据流入的对应的置换网络,该置换网络为第ch个字节置换 网络和第屯,?Α比特置换网络。第纪,1个数据输出单元暂存其对应的第ei,if算术逻辑单元 的结果并读取配置信息决定将数据输出到输出先进先出寄存器组、下一行可重构阵列运算 行或通用寄存器堆。
[0087] 第μ个数据载入单元解析配置解析模块的配置信息,在通过第m个读端口运算 行选择器读取通用寄存器堆中存储的第m个可重构阵列运算块的运行数据信息,并根据解 析的配置信息来选择数据流入的对应的置换网络,该置换网络为第个字节置换网络和 第个比特置换网络。第#^/^个数据输出单元暂存其对应的第个算术逻辑单元的 结果并读取配置信息决定将数据输出到输出先进先出寄存器组、下一行可重构阵列运算行 或通用寄存器堆。
[0088] 如图1所示,包括10个可重构阵列块、1个通用寄存器堆、1个输入先进先出寄存器 组和1个输出先进先出寄存器组。其中多个可重构阵列块通过一个1个通用寄存器堆可以互 相进行数据的储存、读取和传递,保证了 DES方法中的大量数据交换以及并行运算;且多个 可重构阵列块中相邻的两个可重构阵列块通过数据载入单元和数据输出单元连接。通过先 进先出寄存器组缓冲可重构处理器与总线接口之间的数据传输。通用寄存器堆用于各可重 构阵列块之间的数据互通和数据缓存。
[0089] 其中,可重构阵列块中又包含4行可重构阵列运算行、1个读端口运算行选择器和1 个写端口运算行选择器。其每行可重构阵列运算行共享1个通用寄存器堆的读端口和写端 口;在DES运算中可重构阵列运算行可通过通用寄存器堆读出各种缓冲数据以及各种临时 的消息摘要,同时可以向通用寄存器堆写入消息摘要的每轮计算的扩展密钥,这些密钥被 用于后续加密计算。通过1个读端口运算行选择器可以选择从可重构阵列块中的指定可重 构阵列运算行读取通用寄存器堆的数据,写端口可以选择数据从指定可重构阵列运算行写 入寄存器堆,大大增加量数据流通的灵活性。
[0090] 每行可重构阵列运算行中具有2个数据载入单元、2个数据输入单元、16个8位算术 运算单元、2个字节置换网络和2个比特置换网络,用于充当各可重构阵列运算行算术运算 单元之间的数据互联。其中数据载入单元可以选择该可重构阵列运算行的数据来源,可选 的数据来源为上一行可重构阵列运算行的数据输出单元、输入先进先出寄存器组以及通用 寄存器堆。数据输出单元可以选择该可重构阵列运算行的数据输出方向,可选的数据输出 为通用寄存器堆、输出先进先出寄存器组以及输出先进先出寄存器组。同时,只有第一个可 重构阵列块的第一行可重构阵列运算行可以选择输入为输入先进先出寄存器组,最后一个 可重构阵列块的最后一行可重构阵列运算行可以选择输出先进先出寄存器组。数据经过数 据载入单元,由选择器通过读取并解析不同的配置信息来选择数据流入的字节置换网络和 比特置换网络;字节置换网络与比特置换网络的128位的输出分为16个8位的数据分别固定 对应于16个8位算术逻辑单元,一次性可以运算4组DES数据;每个算术逻辑单元可以使用数 据选择器选择其中三个置换网络的输出作为其输入;数据载入单元可以暂存算术逻辑单元 的结果并读取配置信息决定将数据输出到先进先出寄存器组、下一行可重构阵列运算行还 是通用寄存器堆。
[0091] 其中,算术逻辑单元与比特置换网络承担了DES算法轮迭代中的所有运算操作。其 中比特置换网络用于数据的循环移位和算术移位。算术运算单元承担了 DES中的模加、异 或、非、同或等运算操作
[0092] 所述算术逻辑单元中包括模加运算、异或运算、与运算、与非运算、直通输出3输入 异或加、3输入异或同或加运算操作。同时每个算术逻辑单元有最多3个输入和最多2个输 出,其中算术逻辑单元执行上述运算操作的同时,支持任选一个输入作为输出,由于DES方 法中全部为32位运算,因此每4个8位的算术逻辑单元通过进位端口连接成为1个32位的算 术逻辑单元。
[0093] 所述可重构阵列块的个数为10个,各个可重构阵列块之间首尾依次连接在一起, 通用寄存器堆的个数为1个,输入先进先出寄存器组的个数为1个,输出先进先出寄存器组 的个数为1个。
[0094] -种基于粗粒度可重构架构的DES算法轮迭代方法,包括以下步骤。
[0095] 步骤1,分析DES方法轮迭代的计算特点,并归纳出数据流图。
[0096] DES算法的明文为64比特的数据块,DES算法总共需要实行16轮轮迭代,每轮轮迭 代所使用的密钥各不相同,由明文经过IP变换移位,得到左右各32比特的L[0]、R[0]。经过 16轮轮迭代后在经过IP逆变换生成64比特的密文。其中前15轮轮迭代的规则如下:
[0097]
[0098]第16轮迭代中R[16]和L[16]不交换位置,L[i]表示第i步的左信息,R[i]表示第i 步的右信息,?表示异或,F(R[i-l],K[i])表示轮函数。
[0099] 步骤2,根据数据流图中的运算流程,制定DES的数据输入方式。
[0100] 步骤3,根据步骤2确定的数据输入方式以及步骤2确定的数据流图针对可重构处 理器的特点配置可重构处理器,在了解其各寄存器、运算器以及各功能模块的作用机制的 情况下配置可重构处理器,并生成配置信息。
[0101] 对配置单元中的配置存储器进行初始化,微处理器将所需要的配置信息通过配置 单元的配置与控制接口发送到配置存储器中,然后通过配置单元中的配置解析模块解析配 置存储器,实现对计算阵列的配置、启动以及切换操作。
[0102] 步骤4,通过微处理器将配置信息以及所需要的各种初始数据存入相应的存储器 中。
[0103] 其中配置信息为上述步骤所生成的配置信息,初始数据为k[i]缓冲区数据等各种 常量。
[0104] 步骤5,最后通过微处理器启动可重构处理器,并将配置信息及待处理数据发送给 可重构处理器。
[0105] 步骤6,可重构处理器根据配置信息及待处理数据进行数据处理,当可重构处理器 完成当前任务后,发送中断信号。并将处理好的数据通过通过系统总线发送给微处理器。
[0106] 该实施基于DES算法,需要将其转化为数据流图,并制定DES算法的数据输入方式, 然后根据数据流图和数据输入方式对应特定的可重构系统处理器生成相应的配置信息,通 过配置可重构阵列块将DES映射到该阵列上,由此实现DES方法。
[0107] 其中,如图8所示,可重构处理器根据配置信息及待处理数据进行数据处理的方 法:
[0108] 轮迭代流程包括如下4个步骤,其中对于每个64位消息块,步骤61执行1次后执行, 步骤62执行15次,步骤63只执行1次,步骤64只执行1次。
[0109] 步骤61,如图2、5、6所示:数据载入单元从输入先进先出寄存器组中载入初始64比 特的明文。使用两个比特置换网络分别实现IP移位得到L[0]、R[0]并分别置为高64位和低 64位,输出至下一个可重构阵列块。具体的。
[0110] 第ah个数据载入单元从输入先进先出寄存器组中载入初始64比特的明文信息。 通过第1个读端口运算行选择器读取配置单元的配置信息。根据配置信息通过两个第屯, :1个 比特置换网络对初始64比特的明文信息进行IP移位变换得到初始左信息L[0]、初始右信息 R[0],并通过第〃^个算术逻辑单元将初始左信息L[0]、初始右信息R[0]分别置为高64位和 低64位,得到高64位的初始左信息L[0]、初始右信息R[0]和低64位的初始左信息L[0]、初始 右信息R[0]。第6^个算术逻辑单元配置为直通。高64位的初始左信息L[0]、初始右信息R
[0]和低64位的初始左信息L[0]、初始右信息R[0]通过第化^个数据输出单元根据配置信息 发送出。
[0111] 第afj个数据载入单元从载入第个数据输出单元发送出的高64位的初始左信 息L[0]、初始右信息R[0]和低64位的初始左信息L[0]、初始右信息R[0]。通过第1个读端口 运算行选择器读取配置单元的配置信息。根据配置信息将高64位的初始左信息L[0]、初始 右信息R[0]和低64位的初始左信息L[0]、初始右信息R[0]通过第匕^个数据输出单元发送 出。
[0112] 第个数据载入单元从载入第个数据输出单元发送出的高64位的初始左信 息L[0]、初始右信息R[0]和低64位的初始左信息L[0]、初始右信息R[0]。通过第1个读端口 运算行选择器读取配置单元的配置信息。根据配置信息将高64位的初始左信息L[0]、初始 右信息R[0]和低64位的初始左信息L[0]、初始右信息R[0]通过第个数据输出单元发送 出。
[0113] 第个数据载入单元从载入第續1个数据输出单元发送出的高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]写入通用寄存器堆中,用于下一个可重构阵列块运行。
[0114] 步骤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 [1+1]、町1+1]、1^+1]、1?[1+1]输出至下一个可重构阵列块。重复步骤2直到1 = 15,具体的。
[0115] 对于第p个可重构阵列块,2<p<M-l。第(p-1)个可重构阵列块写入到通用寄存器 堆中低64位的左信息L[i]和右信息R[i],0<;[<15 4+2 = 口。第口个可重构阵列块中的第/1; 行可重构阵列运算行中的第i个数据载入单元从第(P-1)个可重构阵列块载入低64位的 左信息L[ i ]和右信息R[i ]。同时通过第p个写端口运算行选择器写入密钥K[ i+Ι ]。和通过第 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 ]。
[0116] 第行可重构阵列运算行中的第个数据载入单元载入高64比特的左信息L [i]和右信息R[i],低48比特的查找表信息S[i],通过第ρ个读端口运算行选择器读取配置 单元的配置信息。根据配置信息对低48比特的查找表信息S[i]进行比特移位得到低48比特 的查找表信息Sli]。其中,48比特分为8组6比特的块,将每个6比特块内部比特位从左到右 依次编号,则每个块的第1和第6比特为查找表横坐标地址,中间4比特为查找表纵坐标地 址。根据配置信息把查找表信息Sli]、左信息L[i]和右信息R[i]通过第1)^个数据输出单 元发送给第%』个数据载入单元。
[0117] 第行可重构阵列运算行中的第个数据载入单元载入左信息L[i]和右信息R [i]、查找表信息S'[i],将查找表信息S'[i]置为高位,而左信息L[i]和右信息R[i]置为低 位。通过第P个读端口运算行选择器读取配置单元的配置信息。根据配置信息通过查找表信 息S'[ i]对查找表进行查找得到新的查找表信息S" [ i],根据配置信息把新的查找表信息S" [i]、左信息L[i]和右信息R[i]通过第个数据输出单元发送给第个数据载入单元。
[0118] 第行可重构阵列运算行中的第alj个数据载入单元载入左信息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。
[0119] 步骤63:如图4、6所示:步骤63和步骤62相似,只是对于DES算法第16轮轮迭代和前 面15轮稍有差异:体现在左后一行可重构阵列行的按字节和按比特移位的区别,最后输出 得到町16]、1116]、1?[16]、1116]。具体的 :
[0120] 对于第17个可重构阵列块,2<p<M-l。第16个可重构阵列块写入到通用寄存器堆 中低64位的左信息L[15]和右信息R[15]。第17个可重构阵列块中的第七 7行可重构阵列运 算行中的第个数据载入单元从第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]通过第β? 7>1个数据输出单元发送给 第^"个数据载入单元,第^"个数据载入单元载入高64比特的左信息L[15]和右信息R
[15],低48比特的查找表信息S[ 15]。
[0121] 第名7行可重构阵列运算行中的第af7,if数据载入单元载入高64比特的左信息L [15]和右信息R[15],低48比特的查找表信息S[ 15],通过第17个读端口运算行选择器读取 配置单元的配置信息。根据配置信息对低48比特的查找表信息S[15]进行比特移位得到低 48比特的查找表信息S' [ 15 ]。其中,48比特分为8组6比特的块,将每个6比特块内部比特位 从左到右依次编号,则每个块的第1和第6比特为查找表横坐标地址,中间4比特为查找表纵 坐标地址。根据配置信息把查找表信息3 /[15]、左信息1^[15]和右信息1?[15]通过第16127, 1个 数据输出单元发送给第47>1个数据载入单元。
[0122] 第巧7行可重构阵列运算行中的第个数据载入单元载入左信息L[15]和右信 息R[15]、查找表信息S' [15],将查找表信息S' [15]置为高位,而左信息L[15]和右信息R [15]置为低位。通过第17个读端口运算行选择器读取配置单元的配置信息。根据配置信息 通过查找表信息f [15]对查找表进行查找得到新的查找表信息S〃[15],根据配置信息把新 的查找表信息S〃[15]、左信息L[15]和右信息R[15]通过第个数据输出单元发送给第 α?α个数据载入单元。
[0123] 第行可重构阵列运算行中的第α?7]个数据载入单元载入左信息L[15]、右信息 R[ 15]和新的查找表信息S〃 [ 15],将新的查找表信息S〃 [ 15]置为高位,而左信息L[ 15]和右 信息R[15]置为低位。通过第pl7个读端口运算行选择器读取配置单元的配置信息。根据配 置信息对新的查找表信息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个写端口运算行选择器写入通用寄存器堆中,用于下一个可重构阵列块运行。
[0124] 步骤64:如4、7所示:步骤64为步骤61的逆操作,[16]丄[16]、1?[16]、1^16]对任意 一组R[16]、L[16]进行IP逆置换得到64比特的密文,输出至输出先入先出寄存器组。
[0125] 第c48>1个数据载入单元从通用寄存器堆中中载入左信息L[16]、右信息R[16]。通 过第18个读端口运算行选择器读取配置单元的配置信息。根据配置信息通过第d丨8J.个比特 置换网络对左信息L[16]、右信息R[16]进行IP移位逆变换得到64比特的密文,并根据配置 信息将64比特的密文通过第纪#个数据输出单元根据配置信息发送出。
[0126] 第ctf8,if数据载入单元从载入第付8>1个数据输出单元发送出的64比特的密文。通 过第1个读端口运算行选择器读取配置单元的配置信息。根据配置信息将64比特的密文通 过第个数据输出单元发送出。
[0127] 第个数据载入单元从载入第个数据输出单元发送出的64比特的密文。通 过第1个读端口运算行选择器读取配置单元的配置信息。根据配置信息将64比特的密文通 过第Alb个数据输出单元发送出。
[0128] 第个数据载入单元从载入第个数据输出单元发送出的64比特的密文。通 过第1个读端口运算行选择器读取配置单元的配置信息。根据配置信息将64比特的密文通 过第?个数据输出单元发送给输出先入先出寄存器组中。
[0129] 以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人 员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应 视为本发明的保护范围。
【主权项】
1. 一种基于粗粒度可重构架构的DES算法轮迭代系统,其特征在于:包括系统总线、可 重构处理器和微处理器; 所述可重构处理器包括配置单元、输入先进先出寄存器组、输出先进先出寄存器组、通 用寄存器堆、Μ个可重构阵列块、查找表,所述配置单元的进线口通过系统总线与微处理器 连接,且配置单元的出线口分别与可重构阵列块连接;而所述输入先进先出寄存器组通过 系统总线与微处理器连接;运Μ个可重构阵列块分别为第1个可重构阵列块、第2个可重构阵 列块、…、第m个可重构阵列块、…、第Μ个可重构阵列块,取整数;所述第1个可重 构阵列块与输入先进先出寄存器组连接,而第Μ个可重构阵列块与输出先进先出寄存器组 连接,且运Μ个可重构阵列块均与通用寄存器堆和查找表连接;运Μ个可重构阵列块之间通 过通用寄存器堆互相进行数据的储存、读取和传递;所述输出先进先出寄存器组通过系统 总线与微处理器连接;其中: 微处理器通过分析DES的特征来确定轮迭代的运算流程,将多轮的轮迭代运算展开成 一幅数据流图映射到可重构处理器中形成配置信息发送给配置单元;微处理器通过系统总 线发送明文数据给可重构处理器,明文数据将存入输入先进先出寄存器组;微处理器并将 初始数据、生成的密钥和计算的中间数据存入通用寄存器堆中用于下一张图的轮迭代; 所述配置单元用于存储配置信息,并将配置信息发送给各个可重构阵列块; 第1个可重构阵列块用于获取输入先进先出寄存器组的明文数据和读取其对应的配置 单元的配置信息;第1个可重构阵列块根据配置信息对明文数据进行初始轮迭代得到初始 中间信息;根据配置信息将初始中间信息载入下一个可重构阵列块中,用于下一个可重构 阵列块的运算; 对于第Ρ个可重构阵列块,2《ρ《Μ-1,第Ρ个可重构阵列块用于获取第(Ρ-1)个可重构 阵列块的中间信息、读取其对应的配置单元的配置信息W及读取查找表的查找表信息;通 过第Ρ个读端口运算行选择器读取通用寄存器堆中存储的密钥;所述第个可重构阵列块根 据配置信息对第(Ρ-1)个可重构阵列块的中间信息、查找表信息、密钥进行轮迭代,得到第Ρ 个可重构阵列块的的中间信息; 对于第Μ个可重构阵列块,第Μ个可重构阵列块用于获取第(Μ-1)个可重构阵列块的中 间信息和读取其对应的配置单元的配置信息;第Μ个可重构阵列块根据配置信息对第(Μ-1) 个可重构阵列块的中间信息进行逆变换获取密文。2. 根据权利要求1所述的基于粗粒度可重构架构的DES算法轮迭代系统,其特征在于: 所述配置单元包括依次连接在一起的配置与控制接口、配置存储器和配置解析模块,且所 述配置与控制接口和系统总线连接;微处理器依次通过系统总线和配置与控制接口将所需 要的配置信息发送给配置存储器,所述配置存储器存储发送过来的配置信息,而配置解析 模块用于解析配置存储器的配置信息,且将解析的配置信息发送给可重构阵列块,实现对 可重构阵列块的配置、启动W及切换操作。3. 根据权利要求2所述的基于粗粒度可重构架构的DES算法轮迭代系统,其特征在于: 所述可重构阵列块包括读端口运算行选择器、写端口运算行选择器W及Ν行可重构阵列运 算行,且运Ν行可重构阵列运算行共享读端口运算行选择器和写端口运算行选择器;其中, 第m个可重构阵列块中的读端口运算行选择器记为第m个读端口运算行选择器,第m个可重 构阵列块中的写端口运算行选择器记为第m个写端口运算行选择器,第m个可重构阵列块中 的第η行可重构阵列运算行记为第每^"行可重构阵列运算行,m=l. . .M,n=l. . .N,M为可重 构阵列块的个数,N为可重构阵列块包括的可重构阵列运算行的行数,Μ, N取整数;且所述可 重构阵列块之间按顺序依次连接,而每个可重构阵列块内部的可重构阵列运算行之间按顺 序依次连接; 在轮迭代中可重构阵列块运算得到的中间数据通过写端口运算行选择器存在通用寄 存器堆中,而在轮迭代中可重构阵列块运算需要得到的中间数据通过读端口运算行选择器 读取通用寄存器堆中存储的信息; 第All行可重构阵列运算行与输入先进先出寄存器组相连,同时第/1當行可重构阵列运 算行与输出先进先出寄存器组相连,每个可重构阵列块都有一个连至查找表的读端口,同 时每个可重构阵列块中都只能选择一行可重构阵列行用于查找表查表;可重构阵列运算行 可通过通用寄存器堆读出各种缓冲数据W及各种临时的消息摘要,同时可W向通用寄存器 堆写入消息摘要的每轮计算的扩展密钥,运些密钥被用于后续加密计算; 在第1个可重构阵列块中,第為行可重构阵列运算行输入先进先出寄存器组中的明文 数据,通过第1个读端口运算行选择器读取配置单元的配置信息;同时通过第1个读端口运 算行选择器读取通用寄存器堆中的存储的密钥;第站行可重构阵列运算行根据配置信息对 明文数据和密钥进行轮迭代计算得到下一个可重构阵列块轮迭代的中间数据;并将此中间 数据通过第1个写端口运算行选择器写入通用寄存器堆中; 对于第P个可重构阵列块,第P个可重构阵列块中的第Αμ于可重构阵列运算 行从通用寄存器堆中载入第(Ρ-1)个可重构阵列块的中间数据;同时通过第Ρ个写端口运算 行选择器写入通用寄存器堆中的密钥;通过查找表查找到查找表信息;和通过第Ρ个读端口 运算行选择器读取配置单元的配置信息;第Ρ个可重构阵列块根据配置信息对第(Ρ-1)个可 重构阵列块的中间数据、密钥、查找表信息进行轮迭代运算,得到第Ρ个可重构阵列块的中 间数据,将此中间数据通过第Ρ个写端口运算行选择器写入通用寄存器堆中,用于下一个可 重构阵列块轮迭代计算; 对于第Μ个可重构阵列块,第Μ个可重构阵列块中的第行可重构阵列运算行从通用寄 存器堆中载入第(Μ-1)个可重构阵列块的中间数据;第Μ个可重构阵列块根据配置信息对第 (Μ-1)个可重构阵列块的中间信息进行逆变换获取密文。4.根据权利要求3所述的基于粗粒度可重构架构的DES算法轮迭代系统,其特征在于: 每行可重构阵列运算行均包括Xi个数据载入单元、&个数据输出单元、&个字节置换网络、 X4个比特置换网络和X5个8位算术逻辑单元,字节置换网络与比特置换网络组成置换网络, 字节置换网络与比特置换网络的输出X5个8位的数据分别固定对应于X5个8位算术逻辑单 元;每个算术逻辑单元使用对应的读端口运算行选择器选择任意Ξ个置换网络的输出作为 其输入;第m个可重构阵列块第η行可重构阵列运算行的第kl个数据载入单元记为第 个数据载入单元,第m个可重构阵列块第η行可重构阵列运算行的第k2个数据输出单元记为 第数据输出单元,第m个可重构阵列块第η行可重构阵列运算行的第k3个字节置换网 络记为第诗个字节置换网络,第m个可重构阵列块第η行可重构阵列运算行的第k4个比特 置换网络记为第d篇Μ个比特置换网络,第m个可重构阵列块第η行可重构阵列运算行的第 kl个数据载入单元记为第e寡,fcs.个算术逻辑单元,kl = l.. .Xi,k2=l...枯,k3 = l.. .X3,k4 = 1. . . X4,k5 = 1. . . Xs,Xi,X2,X3,X4和Xs均取整数;第m个读端口运算行选择器读取的上一步的 中间数据W及接收解析配置解析模块的配置信息来选择中间数据流入的字节置换网络和 比特置换网络; 第的,1个数据载入单元载入输入先进先出寄存器组中的数据,同时解析配置解析模块 的配置信息;在通过第1个读端口运算行选择器读取通用寄存器堆中的存储的信息并根据 解析的配置信息来选择数据流入的对应的置换网络,该置换网络为第诗1个字节置换网络 和第巧.1个比特置换网络;第均1个数据输出单元暂存其对应的第4i个算术逻辑单元的结 果并读取配置信息决定将数据输出到输出先进先出寄存器组、下一行可重构阵列运算行或 通用寄存器堆; 第瑞个数据载入单元解析配置解析模块的配置信息,在通过第m个读端口运算行选 择器读取通用寄存器堆中存储的第m个可重构阵列运算块的运行数据信息,并根据解析的 配置信息来选择数据流入的对应的置换网络,该置换网络为第C品,W个字节置换网络和第 姆U4个比特置换网络;第&器超个数据输出单元暂存其对应的第域as个算术逻辑单元的结 果并读取配置信息决定将数据输出到输出先进先出寄存器组、下一行可重构阵列运算行或 通用寄存器堆。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至7任一所述的基于粗粒度可重构架构的DES算法轮迭代系统的 轮迭代方法,其特征在于,包括W下步骤; 步骤1,分析DES方法轮迭代的计算特点,并归纳出数据流图; 步骤2,根据数据流图中的运算流程,制定DES的数据输入方式; 步骤3,根据步骤2确定的数据输入方式W及步骤2确定的数据流图针对可重构处理器 的特点配置可重构处理器,并生成配置信息; 步骤4,通过微处理器将配置信息W及可重构处理器初始数据存入相应的存储器中; 步骤5,微处理器启动可重构处理器,并将配置信息及待处理数据发送给可重构处理 器; 步骤6,可重构处理器根据配置信息及待处理数据进行数据处理,当可重构处理器完成 当前任务后,发送中断信号;并将处理好的数据通过通过系统总线发送给微处理器。9.根据权利要求8所述的轮迭代方法,其特征在于,步骤6中可重构处理器根据配置信 息及待处理数据进行数据处理的方法: 步骤61:第苗,1个数据载入单元从输入先进先出寄存器组中载入初始64比特的明文信 息;通过第1个读端口运算行选择器读取配置单元的配置信息;根据配置信息通过两个第 dU个比特置换网络对初始64比特的明文信息进行IP移位变换得到初始左信息L[0]、初始 右信息即〇],并通过第鮮1,1个算术逻辑单元将初始左信息L[0]、初始右信息R[0]分别置为高 64位和低64位,得到高64位的初始左信息L[0]、初始右信息R[0]和低64位的初始左信息L [〇]、初始右信息即〇];第站,1个算术逻辑单元配置为直通;高64位的初始左信息L[0]、初始 右信息即0]和低64位的初始左信息L[0]、初始右信息即0]通过第个数据输出单元根据 配置信息发送出; 第域1个数据载入单元从载入第却1个数据输出单元发送出的高64位的初始左信息L [〇]、初始右信息R[〇]和低64位的初始左信息L[0]、初始右信息R[0];通过第1个读端口运算 行选择器读取配置单元的配置信息;根据配置信息将高64位的初始左信息L[0]、初始右信 息R[0]和低64位的初始左信息L[0]、初始右信息R[0]通过第的.1个数据输出单元发送出; 第喊1个数据载入单元从载入第巧1个数据输出单元发送出的高64位的初始左信息L [〇]、初始右信息R[〇]和低64位的初始左信息L[0]、初始右信息R[0];通过第1个读端口运算 行选择器读取配置单元的配置信息;根据配置信息将高64位的初始左信息L[0]、初始右信 息R[0]和低64位的初始左信息L[0]、初始右信息R[0]通过第蜡,1个数据输出单元发送出; 第ati个数据载入单元从载入第的1个数据输出单元发送出的高64位的初始左信息L [〇]、初始右信息R[〇]和低64位的初始左信息L[0]、初始右信息R[0];通过第1个读端口运算 行选择器读取配置单元的配置信息;根据配置信息将高64位的初始左信息L[0]、初始右信 息即0]和低64位的初始左信息L[0]、初始右信息R[0]通过第的:1个数据输出单元发送给第1 个写端口运算行选择器,通过第1个写端口运算行选择器将低64位的初始左信息L[0]、初始 右信息R[〇]写入通用寄存器堆中,用于下一个可重构阵列块运行; 步骤62:对于第P个可重构阵列块,第(P-1)个可重构阵列块写入到通用寄 存器堆中低64位的左信息L[i]和右信息R[i],0《i《15,i+2 = p;第p个可重构阵列块中的 第行可重构阵列运算行中的第4,1个数据载入单元从第(P-1)个可重构阵列块载入低64 位的左信息L[i]和右信息R[i];同时通过第P个写端口运算行选择器写入密钥K[i+1];和通 过第P个读端口运算行选择器读取配置单元的配置信息;根据配置信息将低64位的左信息L [。和右信息R[i]进行E移位,E移位后的数据与密钥K[i+1]异或得到的低48比特中间信息S [i];根据配置信息将左信息L[i巧日右信息R[i]W及查找表信息S[i]通过第个数据输出 单元发送给第城1个数据载入单元,第喊1个数据载入单元载入高64比特的左信息L[i]和 右信息R[i],低48比特的查找表信息S[i]; 第4討于可重构阵列运算行中的第却j个数据载入单元载入高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]和右信息即i]通过第6^,1个数据输出单元发送给 第鸿,1个数据载入单元; 第于可重构阵列运算行中的第个数据载入单元载入左信息L[i]和右信息即i]、 查找表信息^[i],将查找表信息^[i]置为高位,而左信息L[i巧日右信息R[i]置为低位;通 过第P个读端口运算行选择器读取配置单元的配置信息;根据配置信息通过查找表信息少 [i ]对查找表进行查找得到新的查找表信息S" [ i],根据配置信息把新的查找表信息^ [i ]、 左信息L[i]和右信息R[i]通过第个数据输出单元发送给第个数据载入单元; 第行可重构阵列运算行中的第个数据载入单元载入左信息L[i]、右信息即i]和 新的查找表信息S"[i],将新的查找表信息S"[i]置为高位,而左信息L[i]和右信息即i]置 为低位;通过第P个读端口运算行选择器读取配置单元的配置信息;根据配置信息对新的查 找表信息S" [ i ]进行按字节移位和P变换;得到字节移位后的查找表信息S" [ i ]和P变换后的 查找表信息S"[i];根据配置信息对左信息L[i]和右信息即i]进行按字节移位和P变换;得 到字节移位后的左信息L[。和P变换后的左信息L[i],字节移位后的右信息即i]和P变换后 的右信息R[i];根据配置信息对字节移位后的查找表信息S"[i]、字节移位后的左信息L [。、字节移位后的右信息R[i]选择性直通和异或得到下一步的左信息L[i+1],根据配置信 息对P变换后的查找表信息S" [ i ]、P变换后的左信息L[ i ]、P变换后的右信息即i ]选择性直 通和异或得到下一步的右信息R[i+1];得到的下一步的左信息L[i+1]、下一步的右信息R[i +1 ]通过第1个写端口运算行选择器写入通用寄存器堆中,用于下一个可重构阵列块运行; 重复步骤62直到i = 14; 步骤63:对于第17个可重构阵列块,第16个可重构阵列块写入到通用寄存 器堆中低64位的左信息L[15巧日右信息即15];第17个可重构阵列块中的第省:7行可重构阵 列运算行中的第个数据载入单元从第16个可重构阵列块载入低64位的左信息L[15]和 右信息即15];同时通过第17个写端口运算行选择器写入密钥Κ[16];和通过第17个读端口 运算行选择器读取配置单元的配置信息;根据配置信息将低64位的左信息L[15]和右信息R [15]进行E移位,E移位后的数据与密钥Κ[16]异或得到的低48比特中间信息S[15];根据配 置信息将左信息L[1引和右信息R[15]W及查找表信息S[15]通过第姑7,1个数据输出单元发 送给第个数据载入单元,第的7,1个数据载入单元载入高64比特的左信息L[15]和右信 息R[15],低48比特的查找表信息S[15]; 第Af7行可重构阵列运算行中的第αι27,ι个数据载入单元载入高64比特的左信息L[ 15] 和右信息即15],低48比特的查找表信息S[15],通过第17个读端口运算行选择器读取配置 单元的配置信息;根据配置信息对低48比特的查找表信息S[15]进行比特移位得到低48比 特的查找表信息少[15];其中,48比特分为8组6比特的块,将每个6比特块内部比特位从左 到右依次编号,则每个块的第1和第6比特为查找表横坐标地址,中间4比特为查找表纵坐标 地址;根据配置信息把查找表信息少[15]、左信息L[15]和右信息R[15]通过第的7,1个数据 输出单元发送给第af 7,1个数据载入单元; 第行可重构阵列运算行中的第α?7Λ个数据载入单元载入左信息U15]和右信息R [15]、查找表信息少[15],将查找表信息少[15]置为高位,而左信息L[15]和右信息即15]置 为低位;通过第17个读端口运算行选择器读取配置单元的配置信息;根据配置信息通过查 找表信息少[15]对查找表进行查找得到新的查找表信息S"[15],根据配置信息把新的查找 表信息5"[15]、左信息1115]和右信息即15]通过第6占_^个数据输出单元发送给第〇!7,1个数 据载入单元; 第iti,行可重构阵列运算行中的第Gi7,l个数据载入单元载入左信息U15]、右信息R [15]和新的查找表信息S"[l引,将新的查找表信息^ [15]置为高位,而左信息L[1引和右信 息即15]置为低位;通过第pl7个读端口运算行选择器读取配置单元的配置信息;根据配置 信息对新的查找表信息S" [15]进行按比特移位和P变换;得到比特移位后的查找表信息^ [15]和P变换后的查找表信息S" [15];根据配置信息对左信息L[15]和右信息即15]进行按 比特移位和P变换;得到比特移位后的左信息L[15]和P变换后的左信息L[15],比特移位后 的右信息R[15]和P变换后的右信息R[15];根据配置信息对比特移位后的查找表信息S" [15]、比特移位后的左信息L[15]、比特移位后的右信息即15]选择性直通和异或得到左信 息L[16],根据配置信息对P变换后的查找表信息S"[15]、P变换后的左信息L[15]、P变换后 的右信息即15]选择性直通和异或得到右信息即16];得到的左信息L[16]、右信息即16]通 过第1个写端口运算行选择器写入通用寄存器堆中,用于下一个可重构阵列块运行; 步骤64:步骤64为步骤61的逆操作,[16]、1116]、即16]、1116]对任意一组即16]、1116] 进行IP逆置换得到64比特的密文,输出至输出先入先出寄存器组; 第的8,1个数据载入单元从通用寄存器堆中中载入左信息U16]、右信息R[16];通过第18 个读端口运算行选择器读取配置单元的配置信息;根据配置信息通过第di",i个比特置换网 络对左信息L[16]、右信息即16]进行IP移位逆变换得到64比特的密文,并根据配置信息将 64比特的密文通过第6心1个数据输出单元根据配置信息发送出; 第却8.1个数据载入单元从载入第的8,1个数据输出单元发送出的64比特的密文;通过第1 个读端口运算行选择器读取配置单元的配置信息;根据配置信息将64比特的密文通过第 数据输出单元发送出; 第α?8,ι个数据载入单元从载入第的8,1个数据输出单元发送出的64比特的密文;通过第1 个读端口运算行选择器读取配置单元的配置信息;根据配置信息将64比特的密文通过第 巧;,1个数据输出单元发送出; 第的8,1个数据载入单元从载入第的8,1个数据输出单元发送出的64比特的密文;通过第1 个读端口运算行选择器读取配置单元的配置信息;根据配置信息将64比特的密文通过第 i个数据输出单元发送给输出先入先出寄存器组中。10.根据权利要求9所述的轮迭代方法,其特征在于:所述步骤62中的E移位的规则如 下:L[i]表示第i步的左信息,R[i]表示第i步的右信息,Θ表示异或,F(R[i-l],K[i])表示 轮函数。
【文档编号】G06F9/315GK105975251SQ201610334436
【公开日】2016年9月28日
【申请日】2016年5月19日
【发明人】杨锦江, 明畅, 尹玲, 申艾麟, 李兆奇, 赵利锋, 葛伟
【申请人】东南大学—无锡集成电路技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1