发明名称 一种异步分组密码算法协处理器的设计方法
摘要 本发明公开了一种异步分组密码算法协处理器的设计方法,要解决的技术问题是提供一种异步分组密码算法协处理器的设计方法。技术方案是将分组密码算法中每一轮迭代作为独立的子模块;采用HDL设计各子模块并对各子模块进行逻辑综合,得到静态单轨网表;将静态单轨网表转换为仅由互补的二输入与门和或门组成的复合逻辑网表;对各子模块进行延时匹配,增加与子模块延时相同的延时匹配模块,并保证各子模块的输入信号至输出信号的延时相同,且任意与门和或门的输入到达时间相同;将各子模块顺序连接,得到完整网表;进行后端布局布线,得到GDS版图。采用这种方法设计的协处理器具有较高的抗功耗攻击防护能力,同时具有高运算性能与低功耗特性。
申请公布号 CN101350038A 申请公布日期 2009.01.21
申请号 CN200810143205.X 申请日期 2008.09.16
申请人 中国人民解放军国防科学技术大学 发明人 王志英;童元满;陆洪毅;任江春;王蕾;戴葵;龚锐;石伟;阮坚;李勇
分类号 G06F17/50(2006.01);H04L9/06(2006.01) 主分类号 G06F17/50(2006.01)
代理机构 国防科技大学专利服务中心 代理人 郭敏
主权项 1.一种异步分组密码算法协处理器的设计方法,其特征在于包括如下步骤:第一步,对分组密码算法进行子模块划分,将分组密码算法中每一轮迭代作为独立的子模块,各子模块分别记为S1,S2,…Si,…,Sn(n≥1),n表示分组密码算法的迭代轮数;设M为初始明文,K为密钥,C为密文,Rj表示第j轮变换的结果,Kk表示第k轮变换的轮密钥,1≤j≤n-1,2≤k≤n,各子模块之间的连接关系为:(R1,K2)=F1(M,K),(R2,K3)=F2(R1,K2),…,(Rn-1,Kn)=Fn-1(Rn-2,Kn-1),C=Fn(Rn-1,Kn),其中Fi表示第i轮变换的功能函数,1≤i≤n;第二步,子模块设计,对各子模块Si依次执行如下步骤:步骤一,采用硬件描述语言HDL描述子模块的功能,完全以组合电路实现各子模块的所有算术和逻辑运算,得到子模块的HDL代码;步骤二,运用现有的综合工具对各子模块的HDL代码进行逻辑综合,且仅使用反相器、二输入与门和或门这三种标准单元,得到子模块的静态单轨网表;步骤三,将静态单轨网表转换为仅由互补的二输入与门和或门组成的复合逻辑网表,转换方法为:步骤1,为静态单轨网表中任意的信号增加对应的反相信号:设w为静态单轨网表中的任意信号,则增加其反相信号w;步骤2,删除静态单轨网表中所有的反相器:设静态单轨网表中的某个反相器为INVu1(a,z),其中INV表示反相器,u1表示反相器的名称,a为输入信号,z为输出信号,即z为a的反相,则删除网表中的反相器u1,并将网表中的信号z替换为a;步骤3,为静态单轨网表中任意的二输入与门增加与之互补的或门:设静态单轨网表中某个二输入与门为AND2u2(x1,x2,y1),其中AND2表示二输入与门,u2表示二输入与门的名称,x1和x2为输入信号,y1为输出信号,即y1=(x1∧x2);增加与u2互补的二输入或门OR2 ui2(x1,x2,y1),其中OR2表示二输入或门,ui2表示二输入或门的名称,x1和x2为输入信号,y1为输出信号,即y1=(x1∨x2);步骤4,为静态单轨网表中任意的二输入或门增加与之互补的与门:设静态单轨网表中某个二输入或门为OR2u3(x3,x4,y2),即y2=(x3∨x4),增加与u3互补的二输入与门AND2ui3(x3,x4,y2),即y2=(x3∧x4);步骤四,增加与子模块的延时相同的延时匹配模块进行延时匹配,方法为:步骤1),增加与子模块的延时相同的延时匹配模块,延时匹配模块由顺序连接的缓冲单元BUF组成,BUF为互补的二输入与门和或门组成的复合逻辑单元,BUF的级数与子模块的关键路径所包含的逻辑单元的级数相同;BUF中与门的两个输入均为e,或门的两个输入均为e,双轨信号(e,e)称为运算触发控制信号;当执行有效运算时,将运算触发控制信号置为(1,0);当不执行有效运算时,将运算触发控制信号置为(0,0);运算触发控制信号在延时匹配模块中逐级传递;当运算触发控制信号(1,0)由延时匹配模块的输入端逐级传递至输出端时,即延时匹配模块的输出为(1,0)时,对应子模块也完成了有效的逻辑运算,子模块的输出为正确的计算结果;步骤2),为不在子模块的关键路径中的输出信号增加缓冲单元BUF:设子模块的所有输出信号为O1,O2,…,Om,m≥1,且输入信号至各输出信号的关键路径包含的逻辑单元的级数分别为H1,H2,…,Hm,设其中最大的逻辑单元级数为H;则为各输出信号添加H-Hp级顺序连接的缓冲单元,1≤p≤m;在被插入的缓冲单元中,除被缓冲的信号外,另一组输入来自延时匹配模块中上一级缓冲单元的输出;步骤3),为不在子模块关键路径中的输入信号增加缓冲单元BUF:子模块的任意输出信号的运算电路用一棵二叉树来表示时,二叉树中每个结点表示网表中的信号,其子结点要么为空即该信号为子模块的输入信号,要么为对应逻辑单元的两个输入端;二叉树的高度表示从输入信号到输出信号所经过的逻辑单元级数,从二叉树的根结点即输出信号开始,按层序遍历二叉树,保证同一层次信号的到达时间相同,同一层次的逻辑单元同步执行有效运算;设与输出信号o对应的二叉树的高度为h,第2层结点即o的两个子结点o1和o2的子树的高度为h-1;如果o1或o2为子模块的输入信号,则直接为之增加h-2级顺序连接的缓冲单元;第d层的任意结点x的子树的高度应为h-d+1,1<d<h,且如果x为输入信号,则直接为之增加h-d级顺序连接的缓冲单元;直至遍历至第h-1层的结点,如果该层某个结点为输入信号,则直接为之增加一级缓冲单元;第三步,将经过延时匹配的子模块集成,即将S1,S2,…,Sn顺序连接,子模块S1接受初始输入信号即明文M和密钥K;S1接受S1-1产生的输出,其结果作为S1+1的输入,2≤1≤n-1;Sn产生最终的运算结果即密文C;同时将各子模块对应的延时匹配模块顺序连接,所有子模块集成之后,得到异步分组密码算法协处理器的完整网表;第四步,进行后端布局布线,得到异步分组密码算法协处理器的GDS版图。
地址 410073湖南省长沙市砚瓦池正街47号