多规格S盒的硬件实现方法

2007-03-09 19:03:27来源: 互联网
[b]引言 [/b]在信息领域中,密码算法用于保护信息的保密性、完整性和安全性,简单地说就是防止信息的伪造与窃取。密码算法可分为对称密码算法和非对称密码算法。对称密码算法的特点是速度快、安全强度高,主要用作数据加密算法。对称密码算法根据加密模式又可分为分组密码算法和序列密码算法。分组密码算法目前在商业领域使用较多,广泛应用于信息的保密传输和加密存储。S盒是大多数分组密码算法中唯一的非线性结构,它的密码强度直接决定了密码算法的好坏。 本文介绍用硬件实现的两种规格的S盒变换,它能实现8%26;#215;8和6%26;#215;4两种规格S盒的任意布尔函数变化。文中最后给出了电路仿真结果及其电路规模和延时估计。 [b]S盒的设计原理 [/b] S盒的功能就是一种简单的“代替”操作。一个n输入、m输出的S盒所实现的功能是从二元域F2上的n维向量空间F2n到二元域F2上的m维向量空间F2m的映射:F2n——>F2m,该映射被称为S盒代替函数。构造S盒常用的方法有如下3种:随机选择、人为构造和数学方法构造。为保证S盒的密码强度,S盒应越大越好。一般来讲,n和m越大,随机性越好,S盒的密码强度就越大。但n和m越大,S盒的规模和可控编码的宽度也就越大。S盒的随机性可以通过可控编码来实现,通过改变可控编码,一个n%26;#215;m的S盒能够实现:F2n——>F2m的所有的代替函数。 输入为 的n%26;#215;m S盒布尔函数的通式为 其中,系数ci∈{0,1}, 通项记为 从式中可以看出,输入数据后,pi(x)作为最小项就确定下来了,对输出f(x)产生影响的只有最小项系数ci,通过改变ci就可以使S盒实现任意布尔函数的变换。 S盒的硬件实现方法 S盒代替变换实际上就是一组布尔逻辑函数,S盒的输入X就是布尔逻辑函数的自变量,S盒的输出f(x)就是函数值。不同的加/解密算法所使用的S盒代替变换是不同的,为了S盒能够支持不同的加/解密算法,必须能够通过编程改变S盒模块实现的函数关系。在电路规模允许的条件下,应该使S盒模块实现的函数个数尽可能多,最好能够实现输入变量任意的布尔函数。下面给出一个n输入m输出的可编程S盒的设计方法,该S盒能够实现n个输入变量的任意布尔函数。 设x1,x2,…,xn是n个布尔变量,f1(x1,x2,…,xn)、f2(x1,x2,…,xn)、…、fm(x1,x2,…,xn)是x1,x2,…,xn的m个布尔函数,则f1(x1,x2,…,xn)、f2(x1,x2,…,xn)、…、fm(x1,x2,…,xn)都可以表示为下列最小项之和的形式: 其中, 是n个变量的2n个最小项,kij∈{0,1},i=1,2,…,m,j=1,2,…2n。 对于任意的布尔函数fi(x1,x2,…,xn)(1≤i≤m),其2n个最小项(n项之积)是固定不变的,其表达式的结构(2n项之和)也是不变的,其函数关系的改变完全依赖于最小项系数(即控制编码)ki=(ki1,ki2,…ki2n)(1≤i≤m)的改变。因此,在设计逻辑电路时,应该把“n项之积”和“2n项之和”作为固定的电路结构,而把控制编码所对应的电路结构作为可变结构。通过给ki=(ki1,ki2,…ki2n)(1≤i≤m)赋以不同的值,就可以实现不同的布尔逻辑函数。该子模块的电路图如图1所示。 对每个fi(x1,x2,…,xn)(1≤i≤m),通过改变控制编码能够实现n个变量的全部(共22n个)布尔逻辑函数,因此上述电路能够实现任意的n输入、m输出的函数:f(x1,x2,…,xn)=(f1(x1,x2,…,xn),f2(x1,x2,…,xn),…fm(x1,x2,…,xn)),其个数为2m2n。 当取n=8、m=8,上述电路就能实现1组8%26;#215;8的S盒代替变换。通过电路设计,这套电路资源可以兼容4组6%26;#215;4 的S盒代替变换。 [b]电路功能描述与VHDL实现 [/b] 功能描述 本文用VHDL硬件描述语言在ModelSim上实现了1组8%26;#215;8的S盒,并在MAXPLUSII上通过了功能仿真。 S盒的外观电路如图2所示。X是输入,OP是功能选择输入,K0、K1、K2、K3、K4、K5、K6、K7是控制编码,Y是输出。当OP=1时,电路实现1组8%26;#215;8的S盒;当OP=0时,电路能同时实现4组6%26;#215;4的S盒。通过改变控制编码K1、K2……K7,S盒就可以实现8%26;#215;8、6%26;#215;4规格的任意布尔函数的变化,实现不同算法中要求不同的S盒功能。用表格说明更能清晰地看出它的功能和实现方式,如表1所示。 [b]VHDL实现方法 [/b] S盒电路是一个组合电路, 1组8%26;#215;8的S盒有256个最小项,而1组6%26;#215;4的S盒有64个最小项,因此1组8%26;#215;8 S盒的资源可以实现4组6%26;#215;4的S盒,这就是设计中的资源复用,即一套资源实现多种规格的S盒功能。上面给出了具体的电路实现单元,如图3所示。 在电路实现中,共分为4组,1组有64个最小项,由64个相同的电路单元实现。op=1时,实现1组8%26;#215;8 S盒的最小项构造;OP=0时,实现4组6%26;#215;4 S盒的最小项构造。之后将最小项与静态编码相应位进行与操作,再将结果按位进行或操作,就得到输出Y。 [b]S盒功能仿真结果 [/b]S盒的功能仿真在MAXPLUSII上进行,在仿真过程中,S盒的输入数据通过激励赋值,分别针对8%26;#215;8规格和6%26;#215;4规格给定数据。OP=1时,预期要实现1组8%26;#215;8的S盒变换;OP=0时,预期要实现4组6%26;#215;4的S盒变换,最终得到的仿真结果与预期结果相吻合。 [b]S盒电路规模和延时估计 [/b] S盒的电路规模和延时依赖于实现工艺和生产厂家工艺库,在本设计中,基于台积电0.25um工艺库对上述可编程S盒的电路规模和延时进行了估计,规模约是3300门,延时约是10.73ns。主频在90MHz以下可以在单周期内完成一次S盒变换。 但由于8组256位的静态编码输入在硬件实现上引脚太多,不切实际,上述S盒不能单独以硬件实现,可作为一个IP使用在密码算法可重组系统中。在系统设计中,S盒的输入数据可以从存储器中读取,或承接另一个IP的输出数据。由于此S盒可以兼容1组8%26;#215;8规格的S盒和4组6%26;#215;4规格的S盒,那么在密码算法可重组系统中,所有用到这两种规格S盒的算法只要这一个S盒就可以满足,节省了整个系统的电路规模,但系统相应的数据处理速度会比较慢。此S盒可以进一步改进,使其在原来基础上再兼容16组4%26;#215;4规格的S盒,同时也可以寻找更好的组合逻辑实现方法,把其速度提高,令主频达到100MHz以上。 结语 通过实验,本文用VHDL硬件描述语言实现了1组8%26;#215;8的S盒,并兼容4组6%26;#215;4的S盒。电路通过了功能仿真及电路性能评估,可以作为相应密码算法可重组系统设计的通用IP来使用,实现了密码算法设计的灵活性,增强了抗攻击能力。

关键字:规格  s盒  硬件  实现

编辑: 引用地址:http://www.eeworld.com.cn/wltx/qtjs/200703/2995.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
规格
s盒
硬件
实现

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved