一种异步分组密码算法协处理器的设计方法

文档序号:6466272阅读:219来源:国知局
专利名称:一种异步分组密码算法协处理器的设计方法
技术领域
本发明涉及一种微处理器的设计方法,尤其是一种密码算法协处理器的设计方法。
背景技术
密码算法的安全性包括两个方面, 一是密码算法数学意义上的安全性,二是密码算法
实现上的安全性。传统的密码分析就是针对密码算法本身实施的破解手段,比如差分和
线性密码分析,常规的密码分析和暴力破解对现有的广泛应用的密码算法而言是无效的。
功耗攻击是一种利用密码算法具体实现中的薄弱环节实施的破解密钥的有效手段,是旁 路攻击中具有最高安全威胁的攻击手段。因为安全芯片内的私有密钥与密码算法运行时
所消耗的功耗之间存在统计意义上的相关性,攻击者在采集大量功耗样本的基础上,运 用数理统计方法可推导出片内私有密钥。从功耗攻击的角度,功耗攻击可分为三类简
单功耗攻击(Simple Power Analysis: SPA)、差分功耗攻击(Differential Power Analysis: DPA)以及高阶功耗攻击(High Order DPA: HODPA)。功耗攻击所需的代价小,且可适 用于几乎所有的密码算法,如DES (Data Encryption Standard:数据加密标准)、AES (Advanced Encryption Standard:高级加密标准)、RSA (Rivest-Shamir-Adlemen)以及 ECC (Elliptic Curve Crypto-system:椭圆曲线密码算法)等。
以智能卡为代表的安全芯片在各领域得到了非常广泛的应用。安全芯片的主要作用包 括数据的安全存储、数据加解密、数字签名与认证以及身份鉴别等。上述各种功能的 实现有赖于现代密码算法,包括公钥密码算法、分组密码算法以及流密码算法等。公钥 密码算法主要用于数字签名与认证以实现身份鉴别,如RSA和ECC;分组密码算法用于 数据加解密,如DES禾nAES;而流密码算法主要用于数据流的加解密,如RC4 (Rivest Cipher 4)。各种不同类型的密码算法部件(软件模块或硬件协处理器)是安全芯片中不 可缺少的组成部分。受非法利益驱使,安全芯片的安全环境较为恶劣,易遭受各种类型 的攻击与破解。其中针对密码算法部件的功耗攻击是一种破解安全芯片的有效手段;己 有文献报道,采用功耗攻击技术成功破解了多款不同类型的安全芯片。因此,安全芯片 中的密码算法部件必须具有有效的抗功耗攻击防护能力。
根据防护技术的目标,可将各种防护技术分为两类 一是消除密码算法具体实现中可 被功耗攻击的漏洞,二是增大功耗攻击的难度。消除功耗攻击漏洞指的是消除密钥与功 耗之间的相关性,最常见的技术手段为随机掩码技术。随机掩码就是服从均匀分布的随 机数掩盖密码运算过程中的中间结果,使得被掩码的中间结果同样为随机数,且其概率 分布与密钥无关,进而使得功耗与密钥无关,从而消除了功耗攻击漏洞。从另一角度来 看,如果实施功耗攻击所需代价和时间太高,几乎无法实施,也可认为达到了事实上的 抗功耗攻击的目的。为增大功耗攻击的难度,常见的技术手段包括随机化技术,比如 在密码算法实现过程中插入随机冗余伪操作、运算流程随机化、插入随机的延时以及引 入随机的功耗噪声等;恒定化技术,即使得安全芯片执行密码算法时所消耗的功耗几乎
为恒定值,即大幅度削弱功耗与密钥之间的相关性,比如采用新型的具有功耗恒定特性 的动态双轨逻辑单元,如基于敏感放大器的逻辑(Sense Amplifier Based Logic: SABL) 等;功耗平滑技术,即保证安全芯片工作时的功耗在预定范围之内,增加额外电路对整 个芯片的功耗进行动态补偿。
无论何种防护技术,都是以一定的代价来达到一定的防护能力,主要体现在如下方面 1)运算性能下降,比如在密码运算过程中插入冗余操作不可避免造成运算性能下降;在 基于动态双轨逻辑的功耗恒定密码算法部件中,每个时钟周期内仅有一半时间做有效运 算,另一半需要进行预充,因此运算性能至少下降一半;2)芯片面积增大,比如引入动 态补偿电路以平滑功耗、引入随机功耗噪声产生模块、以及动态双轨逻辑等防护技术都 不可避免增加芯片面积;3)功耗增大,功耗噪声、功耗恒定化和功耗平滑等防护技术都 使得功耗大幅增加;比如以动态双轨逻辑实现密码算法时,因为所有逻辑单元都以时钟 作为预充信号,使得时钟的负载大幅增加,与时钟相关的功耗也不可避免的增加。
目前,也有研究采用异步电路实现密码算法协处理器以达到抗功耗攻击的目标,这主 要是因为异步电路也具有一定的功耗恒定特性。异步电路的功耗恒定特性主要来源于信 号的双轨编码和互补的电路结构。但是,与上述的功耗恒定逻辑笮元如基于敏感放大器 的逻辑单元相比,异步电路的功耗恒定特性相对较差,也就是防护能力相对较低。与同 步电路相比,异步电路的最显著优势在于其低功耗性质,基于异步电路的低功耗设计与 实现技术也是当前集成电路领域的前沿研究内容;但异步电路并不具有运算性能和芯片 面积等方面的优势。另外,异歩电路的实现较为困难,缺乏成熟的辅助设计工具。
分组密码算法是一种用于大数据量快速加解密的算法,是解决信息系统安全问题的关 键技术,典型的分组密码算法包括DES和AES,均为多轮迭代型密码算法。分组密码算 法运算模块(包括软件实现和硬件实现)是各种安全芯片中的必要组成部分,其具体实 现也必须具有有效的抗功耗攻击防护能力。目前还没有采用异步电路设计实现既具有较 高的抗功耗攻击防护能力,又具有高运算性能和低功耗特性的异步分组密码算法协处理 器的公开报道。

发明内容
本发明要解决的技术问题是在现有技术条件下,提供一种异步分组密码算法协处理 器的设计方法,采用这种方法设计的协处理器具有良好的功耗恒定特性即较高的抗功耗 攻击防护能力,同时具有高运算性能与低功耗特性。
为了解决上述技术问题,本发明的技术方案为将分组密码算法中每一轮迭代作为独
立的子模块;采用硬件描述语言HDL ( Hardware Description Language)分别设计各子 模块,且各子模块完全为组合电路;运用现有的综合工具对各子模块进行逻辑综合,得 到仅包括反相器、二输入与门和或门的网表;将网表转换为仅由互补的二输入与门和或 门组成的网表;对各子模块进行延时匹配,增加与子模块的延时相同的延时匹配模块, 并保证各子模块的任意输入信号至输出信号的延时相同,且电路中任意二输入与门和或 门的两个输入的到达时间相同;将各子模块顺序连接,得到异步分组密码算法协处理器 的完整网表;进行后端布局布线,得到异步分组密码算法协处理器的GDS (Graphic Data System)版图。
具体技术方案为
第一步,对分组密码算法进行子模块划分,将分组密码算法中每一轮迭代作为独立的 子模块。分组密码算法由若干轮迭代组成,如DES算法由16轮迭代组成,128位密钥的 AES算法由IO轮迭代组成。将每一轮迭代作为独立的子模块,其主要功能包括轮变换和 轮密钥编排。各子模块分别记为S,,S2,…Sb, Sn(n^l), n表示分组密码算法的迭代 轮数,lSi^n。设M为初始明文,K为密钥,C为密文,Rj表示第j (lSj^n-l)轮变 换的结果,Kk表示第k (25k5n)轮变换的轮密钥;各子模块之间的连接关系可用如下 方式描述- (R!, K2) = F"M, K), (R2, K3) = F2(R4, K2),…,(R^, Kn) = F"(R、.2, K^), C = Fn(R^, Kn),其中Fi表示第i轮变换的功能函数。
第二步,子模块设计。对各子模块Si(lSiSn)依次执行如下步骤-
2.1采用硬件描述语言HDL (如VHDL和Verilog)设计子模块,即描述子模块的功 能,完全以组合电路实现各子模块的所有算术和逻辑运算,不包括时序电路,得到子模 块的HDL代码。
2.2运用现有的综合工具对各子模块的HDL代码进行逻辑综合,且仅使用反相器、 二输入与门和或门这三种标准单元,得到子模块的逻辑网表;网表中所有逻辑单元均为 静态单轨单元,因此将其称为静态单轨网表。由于{,, a, v口卩(逻辑非、逻辑与和逻辑 或)是布尔代数中完备联结词集,可以实现任意的布尔函数,因此反相器、二输入与门 和或门即可实现任意的逻辑运算。本步骤未引入特殊标准单元,并且无额外约束,可以 使用目前成熟的商用综合工具,如Synopsys Design Compiler 等。
2.3将静态单轨网表转换为仅由互补的二输入与门和或门组成的复合逻辑网表; 一对 互补的二输入与门和或门组成了复合逻辑单元,转换后的网表称为复合逻辑网表。具体
转换方法为
2.3.1为静态单轨网表中任意的信号(包括输入信号、输出信号和内部的互联信号) 增加对应的反相信号,,样所有的信号均为双轨编码。设v/为静态单轨网表中的任意信 号,则增加其反相信号^。
2.3.2删除静态单轨网表中所有的反相器。由于步骤2.3.1为所有信号增加了对应的反 相信号,因此复合逻辑网表中无需反相器。设静态单轨网表中的某个反相器为INVuKa, z),其中INV表示反相器,ul表示反相器的名称,a为输入信号,z为输出信号,即z 为a的反相,则删除网表中的反相器ul,并将网表中的信号z替换为5(S表示a的反相)。
2.3.3为静态单轨网表中任意的二输入与门增加与之互补的或门。设静态单轨网表中 某个二输入与门为AND2u2(xl,x2,yl),其中AND2表示二输入与门,u2表示二输入与 门的名称,xl和x2^j^^信号,yl为输出信号,即yh(xlAx2);增加与u2互补的二 输入或门OR2 ui2(^,5,巧),其中OR2表示一输入或门,ui2表示二输入或门的名称, ^!和^为输入信号,^为输出信号,即3^-(^iv^)。
2.3.4为静态单轨网表中任意的二输入或门增加与之互补的与门。设静态单轨网表中 某个二输入或门为OR2 u3(x3, x4, y2),艮卩y2 = (x3 v x4);增加与u3互补的二输入与门2.4增加与子模块的延时相同的延时匹配模块进行延时匹配,保证各子模块的任意输 入信号至输出信号的延时相同,且电路中任意二输入与门和或门的两个输入的到达时间 相同。具体方法为
2.4.1增加与子模块的延时相同的延时匹配模块。延时匹配模块由顺序连接的缓冲单 元BUF组成,BUF同样为互补的二输入与门和或门组成的复合逻辑单元,BUF的级数 与子模块的关键路径所包含的逻辑单元的级数相同。在延时匹配模块中,BUF中与门的 两个输入均为e,或门的两个输入均为乙双轨信号(e,"称为运算触发控制信号;当执行 有效运算时,将运算触发控制信号置为(l, 0);当不执行有效运算时,将运算触发控制信
号置为(0,0);运算触发控制信号在延时匹配模块中逐级传递;当运算触发控制信号(l,O)
由延时匹配模块的输入端逐级传递至输出端时,即延时匹配模块的输出为(I,O)时,对应
子模块也完成了有效的逻辑运算,子模块的输出为正确的计算结果。
2.4.2为不在子模块的关键路径中的输出信号增加缓冲单元BUF,保证从输入信号 至任意输出信号的延时均相同。设子模块的所有输出信号为0,,02,…,Om(ni2 1),且输 入信号至各输出信号的关键路径包含的逻辑单元的级数分别为Hh H2,…,Hm,设其中最 大的逻辑单元级数为H;则为各输出信号添加(H—Hp) (I Sm)级顺序连接的缓冲单元。 在被插入的缓冲单元中,除被缓冲的信号外,另一组输入来自延时匹配模块中上一级缓 冲单元的输出。这样所有输入信号至被缓冲后的输出信号之间的关键路径所包含的逻辑 单元级数均相同,其最大延时也相等。
2.4.3为不在子模块关键路径中的输入信号增加缓冲单元BUF以保证所有逻辑单元 的两个输入端的到达时间相同。子模块的任意输出信号的运算电路(相当于逻辑表达式) 均可以用一棵二叉树来表示二叉树中每个结点表示网表中的信号,其子结点要么为空 (表明该信号为子模块的输入信号),要么为对应逻辑单元的两个输入端;二叉树的高度
表示从输入信号到输出信号所经过的逻辑单元级数。从二叉树的根结点(即输出信号) 开始,按层序遍历二叉树,保证同一层次信号的到达时间相同,同一层次的逻辑单元同
步执行有效运算。设与输出信号o对应的二叉树的高度为h,第2层结点(即o的两个子 结点01和02)的子树的高度应为h-l,如果0,或02为子模块的输入信号,则直接为之增 加h-2级顺序连接的缓冲单元;第d(l <(1<11)层的任意结点x的子树的高度应为h-d+l, 且如果X为输入信号,则直接为之增加h-d级顺序连接的缓冲单元;直至遍历至第h-l
层的结点,如果该层某个结点为输入信号,则直接为之增加一级缓冲单元。
第三步,将经过延时匹配的子模块集成,即将Si,S2,…,Sn顺序连接,子模块Si接受
初始输入信号即明文M和密钥K; S, (2 S n-l)接受Sw产生的输出,其结果作为Sl+1 的输入;Sn产生最终的运算结果即密文C;同时将各子模块对应的延时匹配模块顺序连 接,因此S,至Sn之间的逻辑单元级数就同顺序连接的所有延时匹配单元的逻辑级数一致,
也就是实现了整个协处理器的延时匹配。所有子模块集成之后,就得到了异步分组密码 算法协处理器的完整网表。
第四歩,进行后端布局布线,得到异步分组密码算法协处理器的GDS版图。在后端 设计时,需要保证所有双轨信号具有相同的负载,以使得互补的二输入与门和或门具有 与输入无关的功耗恒定特性。在现有集成电路工艺条件下,由互联线引起的寄生效应在 整个电路中占主要部分,只要双轨信号的互联线的负载相同,则双轨信号的负载相同。
因此将所有互补的二输入与门和或门成轴对称放置,使双轨信号具有对称的走线和相同 的互联线长度,从而使双轨信号的负载几乎完全相同。
从本质上看,按照上述步骤设计的异步分组密码算法协处理器为一组合电路。但与传 统意义上的组合电路不同的是,每组数据在各层次逻辑单元中逐级(流水化)传递,且 无需等当前数据处理完毕才能输入下一组数据,即当第一组输入从第一层次的逻辑单元
传递到下一层次的逻辑单元时,即可输入第二组数据;依此类推,当第一组输入处理完 毕即得到相应的运算结果时,第二组输入被传递到倒数第二层次的逻辑单元。也就是说, 协处理器可视为一种流水线,其工作方式为当包括运算触发控制信号在内的所有输入 信号均为0时,协处理器中逻辑单元逐级进入无翻转的状态,不消耗动态功耗;当运算 触发控制信号置为(l, O)且输入有效数据时,经过协处理器中逻辑单元的逐级传递,当与 子模块Sn对应的延时匹配模块的输出变为(l,O)时,Sn的输出端即为有效运算结果;在满 足最小时间间隔条件下,可连续输入多组数据;协处理器在同一时刻可处理多组数据, 相邻输入数据进入协处理器的最小时间间隔取决于协处理器中单个逻辑单元的最大延 时;为达到更好的功耗恒定特性,令全O输入和有效输入数据交替进入协处理器。
协处理器相当于多层次互联网络结构,每一级逻辑单元仅接受上一级逻辑单元的输 出;协处理器仅存在相邻层次的局部互联,不存在跨层次的互联;同一级的逻辑单元同 步执行有效运算。从宏观上看,各子模块作为流水线的一段;从微观上看,同一层次的 逻辑单元构成流水线的一段。只要相邻输入数据的时间间隔不小于流水线中具有最大负 载的逻辑单元的延时(记为At),就可以保证不同输入数据的信号在流水线中不会发生穿 透,即保证了同一层次的逻辑单元在同一时刻只可能处理同时输入的一组数据。从这一 角度看,流水线中具有最大负载的逻辑单元的延时决定了流水线能够达到的最高等价时 钟频率(1/At),即最大延时的倒数。实际上,单个逻辑单元的最大延时远远小于一轮迭代 的延时,协处理器不包括寄存器和锁存器,也就避免了由寄存器和锁存器引起的延时; 与采用常规方式实现的分组密码算法协处理器(包括同步电路和异步电路, 一轮迭代作 为流水线的一段)相比,采用本发明设计的异歩分组密码算法协处理器能够达到远远高 于前者的最高等价时钟频率。当协处理器满负荷工作时,所能达到的最高加解密吞吐率 为(1/At)。
采用本发明可以达到以下的技术效果
1. 在第二步子模块设计时仅采用互补的二输入与门和或门实现异步分组密码算法协 处理器,当全0输入和有效数据交替输入互补的二输入与门和或门时,二者组成的复合
逻辑具有良好的功耗恒定特性;因此由互补的二输入与门和或门构成的分组密码算法协
处理器同样具有良好的功耗恒定特性,密钥与协处理器的功耗之间的相关性趋近于o,协
处理器具有较高的抗功耗攻击防护能力。
2. 在第二步子模块设计时为各子模块进行延时匹配,使得同一层次的逻辑单元同步 执行有效运算,同一层次的逻辑单元构成了流水线的一段;只要满足一定的时间间隔, 就可以连续向协处理器输入多组数据;且相邻输入数据的最小时间间隔取决于协处理器 中单个逻辑单元的最大延时,由于单个逻辑单元的最大延时远远小于一轮迭代的延时, 协处理器不包括寄存器和锁存器,也就避免了由寄存器和锁存器引起的延时;采用本发 明设计的异步分组密码算法协处理器的最高等价时钟频率能够远远高于采用常规实现方
式(包括同步电路和异步电路, 一轮迭代作为流水线的一段)设计的协处理器,运算性 能大大提高。
3. 采用本发明设计的异步分组密码算法协处理器无时钟信号和寄存器等时序逻辑, 无长互联线;协处理器不工作时,所有输入信号保持为0,协处理器中无信号翻转,仅存 在静态功耗,因此采用本发明设计的异步分组密码算法协处理器具有低功耗特性。
4. 采用本发明不需要设计任何特殊的逻辑单元,可直接使用现有的标准单元;最大 限度的使用现有的成熟集成电路设计方法,包括HDL设计、逻辑综合以及后端设计等; 采用延时匹配(即在各子模块的复合逻辑网表中插入必要的缓冲单元)的方法使异步流 水线正确,无须设计常规的异步电路中的握手电路(握手电路必须检测电路中的组合逻 辑单元是否完成运算进而到达稳态,并向前一级发出应答信号,向后一级发出请求信号); 因此本发明充分利用了现有技术和工具,简单易行。
本发明适用于可能受到功耗攻击的各种安全芯片中分组密码算法协处理器的设计与 实现,可以达到抗功耗攻击防护能力和运算性能及功耗的良好折衷。


图1为采用本发明设计异步分组密码算法协处理器的总体流程图; 图2为第二步中第三个步骤网表转换过程的示意图; 图3为第二步中第四个步骤延时匹配过程示意图4为采用本发明设计的异步分组密码算法协处理器的总体结构图; 图5为异步分组密码算法协处理器的工作方式示意图。
具体实施例方式
图1为采用本发明进行异步分组密码算法协处理器的设计流程图,主要包括如下步

1. 对分组密码算法进行子模块划分,得到子模块;
2. 子模块设计,包括如下步骤-2.1HDL设计,得到子模块的HDL代码。
2.2对子模块的HDL代码进行逻辑综合,得到子模块的静态单轨网表。
2.3将静态单轨网表转换为仅由互补的二输入与门和或门组成的网表,得到复合逻辑 网表。
2.4增加与子模块的延时相同的延时匹配模块,保证各子模块的任意输入信号至输出 信号的延时相同,且电路中任意二输入与门和或门的两个输入的到达时间相同。
3. 将各子模块经延时匹配后的网表集成,得到异步分组密码算法协处理器的完整网表。
4. 后端布局布线,得到异步分组密码算法协处理器的GDS版图。
图2为第二步中第三个步骤网表转换过程的示意图。U,i2, ..., i8表示输入信号,ol 和o2表示输出信号,nl,n2, ...,n5为内部互联信号。图2的箭头左边为网表转换之前的逻 辑电路图(即静态单轨网表),各输出信号的逻辑运算表达式分别为 ol = ((il a i2) a(i3 v i4)) v (i5 ai6),o2 = (i7 ai8)。图2的箭头右边为经过网表转换后的逻 辑电路图,各输出信号的逻辑表达式为^i = ((nv5)v(5A3》a(Svi^), o2 = (i,v^), ^-(i7Ai8)。网表转换的具体过程为
1. 为所有的信号增加对应的反相信号,如图2中箭头右边的H,...,H, ^!,5, nl,…,n5 。
2. 删除静态单轨网表中所有的反相器,并将反相器的输出信号替换为反相器输^f言 号的反相。如图2中箭头右边所示,删除图2中箭头左边的反相器6,并将o2替换为^ 。
3. 为静态单轨网表中任意的二输入与门增加与之互补的或门。如图2中箭头右边所 示,为图2中箭头左边的第一与门1、第三与门3、第四与门4及第五与门5分别增加互 补的第八或门8、第十或门10、第十一或门11及第十二或门12。
4. 为静态单轨网表中任意的二输入或门增加与之互补的与门。如图2中箭头右边所 示,为图2中箭头左边的第二或门2及第七或门7分别增加互补的第九与门9及第十三 与门13。
图3为第二步中第四个步骤延时匹配过程示意图。延时匹配主要包括如下步骤-
1. 增加与子模块的延时相同的延时匹配模块。在如图3箭头左边的电路中,关键路 径为输入信号il (或i2)至ol的数据通路,包含3级逻辑单元。因此,与该电路相对应 的延时匹配模块就包含3级顺序连接的缓冲单元BUF;如图3箭头右边所示,第十四与 门14和第十五或门15、第十六与门16和第十七或门17、以及第十八与门18和第十九 ,门19分别组成3^l页序连接的BUF。延时^ffi模块的竺入即运算触发控制信号记为(e1, 3),输出记为(e4, 5),中间结果记为(e2, S)和(e3, e^)。在延时匹配模块中,与门的 两个输入均相同,分别为el,e2,e3;或门的两个输入也相同,分别为^!, ^。
2. 为不在子模块关键路径上的输出信号增加缓冲单元BUF,保证从输入信号至,意 输出信号的延时均相同。在如图3箭头左边的电路中,由输入信号至输出信号o2和5的 逻辑单元级数为1,小于输入信号至ol的逻辑单元级数,因此为02和5添加两级缓冲 单元;如图3箭头右边所示,第二十与门20和第二十一或门21、以及第二十二与门22 ^_第二十三或门2£分别组成两级顺序连接的BUF,前者为(n4, S)进行缓冲得到(n6, i^),后者为(n6, ^)进行缓冲得到(S,02)。第二十与门20的两个输入为n4和e2;第 二H~—或门21的两个输^^为iS和5;第二十二与门22的两个输入为n6和e3;第二十 三或门23的两个输入为^和^。
3. 为不在子模块关键路径上的输入信号增加缓冲单;^以保证所有逻辑单元的两个输 入端的到达时间相同。在如图3箭头左边的电路中,(i5,5)和(i6,^)不在关键路径上,因 此为二者分别增加一级缓^单元。如图3箭头右;i^^f示,第二十四与门24和第二十五或 门25组成的BUF为(i5,^)进行缓冲,得到(n7, 第二十六与门26和第二十七或门 27组成的BUF为(i6,5)进行缓冲,得到(n8, i^)。第二十四与门24的两个输入为i5和
el;第二十五或门25的两个输入为5和3;第二十六与门26的两个输入为i6和el;第 二十七或门27的两个输入为5和S 。
图4为采用本发明设计的异步分组密码算法协处理器的总体结构图,此图也说明了本 发明第三步子模块集成的过程。子模块S,, S2,…,Sn顺序连接,S,接受初始明文M和密 钥K, Sn产生运算结果即密文C; S,(Ki〈n)接受Sw的输出,产生的结果提供给S,+
; 相邻子模块之间无锁存器。各子模块具有对应的延时匹配模块,延时匹配模块由顺序连 接的缓冲单元组成,缓冲单元的级数与子模块关键路径所包含的逻辑单元级数相同。延 时匹配模块的输入为运算触^!空制信号二与各子模块^_应的延时匹配模块的运算触^_控 制的输入信号分别记为(eil, ^T),(ei2, ^),…,(ein, ^ ),输出信号分别记为(eol, ^!), (eo2, i^),…,(eon, ^)。同时输入的一组数据在各子模块之间逐级传递,而运算触发 控制信号在各段延时匹配模块之间逐级传递。当明文、密钥和,触发控制信号均为0 时,协处理器逐级进入无翻转状态,仅消耗静态功耗;当(eil, ^T)为(l,0g明文和密钥 为有效值时,协处理器开始执行有效处理,经过逐级传递之后,当(eon, i^)变为(1, 0) 时,Sn的输出即为相应密文C。
图5为采用本发明设计的异步分组密码算法协处理器的工作方式示意图。设异歩分组 密码算法协处理器包含N级逻辑单元,且协处理器中单个逻辑单元的最大延时为At,即 相邻输入数据进入协处理器的最小时间间隔为At;不同输入数据之间的间隔记为axAt, 则a为不小于l的任意值;完成一次有效密码运算所需时间为NxAt;在同一时刻,可能 存在多组数据被处理。当协处理器的所有输入均为0时,协处理器逐级进入无翻转的状 态;为达到更好的功耗恒定特性,可以将全0输入与有效数据输入交替进入协处理器; 有效数据也可以连续进入协处理器以达到更高的运算性能即吞吐率。当协处理器满负荷 工作时,如果全0输入和有效数据输入交替进入协处理器,吞吐率(l/2At);如果有效数
据输入连续进入协处理器水线,吞吐率为(1/At)。由于单个逻辑单元的最大延时即At远
远小于一轮迭代的延时,协处理器不包括寄存器和锁存器,也就避免了由寄存器和锁存
器引起的延时;与采用常规方式实现的分组密码算法协处理器(包括同步电路和异步电 路, 一轮迭代作为流水线的一段)相比,采用本发明设计的异步分组密码算法协处理器 的运算性能远远高于前者。
权利要求
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为静态单轨网表中的任意信号,则增加其反相信号<overscore>w</overscore>;步骤2,删除静态单轨网表中所有的反相器设静态单轨网表中的某个反相器为INVu1(a,z),其中INV表示反相器,u1表示反相器的名称,a为输入信号,z为输出信号,即z为a的反相,则删除网表中的反相器u1,并将网表中的信号z替换为<overscore>a</overscore>;步骤3,为静态单轨网表中任意的二输入与门增加与之互补的或门设静态单轨网表中某个二输入与门为AND2u2(x1,x2,y1),其中AND2表示二输入与门,u2表示二输入与门的名称,x1和x2为输入信号,y1为输出信号,即y1=(x1∧x2);增加与u2互补的二输入或门OR2 ui2(<overscore>x1</overscore>,<overscore>x2</overscore>,<overscore>y1</overscore>),其中OR2表示二输入或门,ui2表示二输入或门的名称,<overscore>x1</overscore>和<overscore>x2</overscore>为输入信号,<overscore>y1</overscore>为输出信号,即<overscore>y1</overscore>=(<overscore>x1</overscore>∨<overscore>x2</overscore>);步骤4,为静态单轨网表中任意的二输入或门增加与之互补的与门设静态单轨网表中某个二输入或门为OR2u3(x3,x4,y2),即y2=(x3∨x4),增加与u3互补的二输入与门AND2ui3(<overscore>x3</overscore>,<overscore>x4</overscore>,<overscore>y2</overscore>),即<overscore>y2</overscore>=(<overscore>x3</overscore>∧<overscore>x4</overscore>);步骤四,增加与子模块的延时相同的延时匹配模块进行延时匹配,方法为步骤1),增加与子模块的延时相同的延时匹配模块,延时匹配模块由顺序连接的缓冲单元BUF组成,BUF为互补的二输入与门和或门组成的复合逻辑单元,BUF的级数与子模块的关键路径所包含的逻辑单元的级数相同;BUF中与门的两个输入均为e,或门的两个输入均为<overscore>e</overscore>,双轨信号(e,<overscore>e</overscore>)称为运算触发控制信号;当执行有效运算时,将运算触发控制信号置为(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版图。
2.如权利要求1所述的异步分组密码算法协处理器的设计方法,其特征在于在进行后端布局布线时,将所有互补的二输入与门和或门成轴对称放置,使双轨信号具有对称的走线和相同的互联线长度。
全文摘要
本发明公开了一种异步分组密码算法协处理器的设计方法,要解决的技术问题是提供一种异步分组密码算法协处理器的设计方法。技术方案是将分组密码算法中每一轮迭代作为独立的子模块;采用HDL设计各子模块并对各子模块进行逻辑综合,得到静态单轨网表;将静态单轨网表转换为仅由互补的二输入与门和或门组成的复合逻辑网表;对各子模块进行延时匹配,增加与子模块延时相同的延时匹配模块,并保证各子模块的输入信号至输出信号的延时相同,且任意与门和或门的输入到达时间相同;将各子模块顺序连接,得到完整网表;进行后端布局布线,得到GDS版图。采用这种方法设计的协处理器具有较高的抗功耗攻击防护能力,同时具有高运算性能与低功耗特性。
文档编号G06F17/50GK101350038SQ20081014320
公开日2009年1月21日 申请日期2008年9月16日 优先权日2008年9月16日
发明者任江春, 葵 戴, 勇 李, 蕾 王, 王志英, 伟 石, 童元满, 坚 阮, 陆洪毅, 锐 龚 申请人:中国人民解放军国防科学技术大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1