硬件加密,就有必要要考虑核算机接口的问题。核算机的接口有许多种,如传统的串口和并口。串口的呈现是在1980年前后,数据传输率是115~230kb/s,一般用来衔接鼠标和外置Modem;并口的数据传输率比串口快8倍,规范并口的数据传输率为IMb/s左右,一般用来衔接打印机、扫描仪等。前期的软件狗类加密硬件根本上都是运用并口的,不光极易与打印机抵触,而且简略被破解。要想规划出更牢靠更完善的加密硬件,有必要选用新的核算机接口。而近年来开展快速的USB接口技能为硬件加密供应了一条很好的路途。
1 总体计划的提出
规划体系准则是在有用、牢靠、经济的准则基础上,确保体系不仅能满意运用需求,而且要有灵敏性、可扩展性和通用性。该体系有EDA技能、USB 总线协议、加密算法优化组合而成,体系的构成如图1所示。FPGA的效果之一是和PDIUSBD12进行通讯,完结USB协议,从PDIUSBD12中获取数据并依据主机的要求发送数据。第二个效果便是加密算法的完结,完结传送数据的加密。
2 USB协议的完结
2.1 PDIUSBD12简介
PDIUSBD12是Philips公司的一款较新式的专用USB通讯操控芯片,契合USBI.1规范,是一款高功能USB接口器材,集成了SIE,FIFO存储器,收发器以及电压调整器。可与任何外部微操控器/微处理器完结高速并行接口(2 MB/5),在批量办法和同步办法下均可完结IMB/5的数据传输速率以及彻底自治的直接内存存取DMA操作。
2.2USB操控器的规划
从硬件完结的视点动身,将PDIUSBD12操控器区分为分频器模块、沿操控器模块、输人/输出切换模块、设备收发器模块和恳求处理模块。当体系的结构规划确认后,关于每个模块的规划首要要运用硬件描绘言语(VHDL)完结体系的描绘,然后运用言语级体系仿真及调试东西进行言语级功用仿真与调试。
体系用VHDL言语来描绘。VHDL言语是一种结构化言语,他支撑结构化规划。结构化规划便是将一个体系区分为多个子模块,而每个子模块又能够持续区分为更多的模块。首要依据体系的功用描绘,将体系区分为接口明晰、相互关系简略的子体系,然后得到体系级的描绘。之后,顺次对各个子体系(或功用模块)进行结构规划和描绘。逐级细化,最终完结规划。这实践上给出了模块区分的办法。在对体系进行区分时,并不是一次就把体系的一切模块区分得十分详尽,而是依照层次化的思维自顶向下逐渐细化。图2描绘了本处理器的硬件模块结构框图,各模块的功用界说如下:
(1)分频器模块
由于PDUSBD12在读写时序上有时刻约束,例如每次些操作之间的距离不能小于50 ns,而FPGA的体系时钟频率一般都比较高,所以不能直接运用体系时钟操控PDIUSB12,有必要进行分频。分频器模块的功用也便是依照要求有体系时钟生成所需频率的时钟信号。
(2)沿操控器模块
PDIUSBD12的读写操作都各自有一个读写操控信号WR-N和RD-N,每次读写操作都在对应的操控信号的下降沿触发,沿操控模块的功用便是可控的发生一个下降沿信号,用于操控读写操作。
(3)输入/输出切换模块
输入/输出切换模块在整个体系中十分重要,由于FPGA芯片和PDIUSBD12芯片之间的数据总线是双向的总线,所以当读写操作之一在进行的时分另一个操作的信号源有必要封闭,不然就会形成双驱动,这不光不能得到正确的数据还会危害芯片。输人/输出切换模块的功用便是依据当时的读写状况操控信号源,确保在一个时刻只要一个信号源驱动总线。
(4)设备收发器模块
这个模块是整个固件的中心模块,他完结的作业包含装备PDIUSBD12芯片、处理PDIUSBD12发生的中止、完结从缓存读取数据,而且依据需求将数据经过PDIUSBD12发送。设备收发器模块完结对每个主机恳求的解析作业,此外,还要将解析完结的恳求数据传递给恳求处理模块。
(5)恳求处理模块
恳求处理模块的效果是接纳设备收发器模块解析完结的主机恳求,而且决议怎么处理此恳求。
3 加密算法的完结
3.1 硬件加密的长处
跟着信息工业的开展,集成电路工业供应了越来越强壮的芯片,现在一切的加密产品都是特定的硬件加密办法。这些加/解密芯片被嵌人到通讯线路中,然后对一切经过的数据进行加密。尽管软件加密在今日变得很盛行,可是硬件仍然是商业和军事运用的首要挑选。
(1)速度
加密算法一般含有许多对明文位的杂乱运算,没有哪类这样的操作能在一般的核算机上进行。两种最常用的加密算法,DES和RSA在一般用处的微处理器上运转没有功率可言。别的,加密常是高强度的核算使命。核算机微处理器对此功率不高,将加密移到芯片上,能够分管核算机微处理器的作业,使整个体系速度加速。
(2) 安全性
对运转在没有物理维护的一般的核算机上的每个加密算法,很或许被心怀叵测的人用各种盯梢东西暗码修正算法而使任何人都不知道。硬件加密设备能够安全的封装起来,以避免此类工作的发生,防篡改盒能避免他人修正硬件加密设备。特别意图的VLSI芯片能够掩盖一层化学物质,使得任何妄图对他们内部进行拜访都将导致芯片逻辑的损坏。
(3)易于装置
大多数加密运用与一般核算机无关,将专用加密硬件放在电话、传真机和调制解调器中比放在微处理器或许软件中要廉价的多。即便当加密数据来自核算机时,装置一个专用加密设备也比修正核算机体系软件更简略.加密应该是不行见的,他不应该阻碍用户.关于软件要做到这点的专一办法是将加密程序写在操作体系软件的底层,这很不简略。
3.2DES加密算法的完结
DES(DataEncryptionstandard)加密算法在成为加密规范到今日,阅历了长时刻的检测.实践证明DES算法的安全性是能够满意大部分的安全要求的。选用软件办法完结的DES算法会在很大程度上占用体系资源,形成体系功能的严峻下降,而DES算法自身并没有很多的杂乱数学核算,在加/解密进程和密钥生成进程中仅有逻辑运算和查表运算,因此,无论是从体系功能仍是加/解密速度的视点来看,选用硬件完结都是一个抱负的计划。
DES算法规划中的要害部分在于5盒的规划、每一轮密钥的发生和整个16轮加密进程中流水线规划。
依据实践需求,将加密算法模块进行独立规划,如图3所示为封装后I/0接口示意图。
作为输人接口包含3大部分,体系输入、数据输人和体系操控。体系输入首要是时钟信号输入ClK和呈现异常状况时的体系主动重起信号RST。时钟信号输入能够选用加密板卡的体系时钟,也能够独立运用自己的时钟。
这儿为了便于扩展和晋级,选用跳线办法来挑选时钟信号,支撑两种时钟频率挑选。
数据输人部分包含64位的加密数据的输人data_in[63:o],64位密钥的输入key1[65:o],key2[63:0],key3[63:0]和初始化向量rant val[63:0].由于USB总线接口是串行总线,因此从主设备上发送过来的加密数据在进入该加密芯片之前有必要用锁存器保存,而相同,作为密钥数据也需求锁存器保存以确保输人数据的完整性。输出接口首要包含64位的加密数据输出dat_out[63:0]、输出预备信号ready-out、体系繁忙信号,busy和过失反应信号par-err。体系完结数据的加密后,会及时告诉将ready_out信号由低电平升至高电平,一起busy信号变为低电平有用,这样在后置模块会依据ready_out和busy信号来判别是否应该读取输出数据。
(1)s盒的完结
s盒是DES算法的一个要害,由于在每一轮核算中有8个s盒,而一共16轮加密,则共需求128个s盒,因此s盒的完结功率尤为重要。s盒是一个杂乱的非线性函数,硬件完结时,s盒的完结具有必定难度,其规划完结的好坏是影响算法全体加解密速度的首要因素。在规划中,从资源的视点动身,应尽或许削减FPGA器材中逻辑单元(LE)、嵌人式阵列块(EAB)的耗用,但这或许是以下降体系速度为价值。从速度的视点动身,应最大极限进步体系处理速度,但这样往往需求较多资源。因此,在大多数状况下这两种挑选是对立的,需求依据实践环境做出权衡。
因此本文遵从的准则是在确保速度的状况下尽量节省资源。本规划选用VHDL言语中的case句子来直接完结s盒的非线性改换。
(2) 密钥发生单元的完结
密钥发生单元由挑选操控电路PC 一1、循环移位寄存器及紧缩置换电路PC 一2构成。该部分的输人是64 b初始密钥;输出为每次迭代运算用的子密钥。关于一共16轮循环运算,每一轮密钥的运用选用的办法如图4所示,在初始密钥输人的第一个周期发生一切16轮加密需求的不同密钥一起并行输出,然后依据相应的周期次序,每一轮的密钥输出选用寄存器向后顺延一个时钟周期作为该轮算法的密钥输人。
此种办法的优点是每一轮的密钥都会在每一轮的运算之前预备,便于选用流水线完结加密进程。本文的规划是将悉数16轮密钥一次性经过多路挑选器发生出来,类似于生成了一个“密钥池”,然后不同的轮数顺次使用寄存器来保存并跟流水线同步。这儿在发生密钥时由于解密和加密的次序相反,因此解密时是右移发生。
(3) 流水线的完结
流水线是进步数字电路在单位时刻内处理数据量的常用办法,他的概念是把在一个时钟周期内履行的逻辑操作分红几步较小的操作,并在多个较高速的时钟内完结,如图5所示。
在这种结构中,与K轮加密对应的组合逻辑被均分为K个部分,并在各个部分之间增加一个额定的寄存器,其他部件与根本结构相同。这些切割得到的组合逻辑电路部分称为流水线站,每个流水线站履行不同的处理过程。用这种办法,电路能够一起处理多个数据块,进步体系在单位时刻内处理的的数据量,也便是速度。
在每一个时钟周期,被部分处理过的数据块移人下一个流水线站,后续块则紧跟其上,占有他本来的方位,也便是说,一个流水线电路能够一起加密与他所含有的流水线站数量持平的数据块。以这种将循环打开为流水线的处理办法,打开后的流水线处理周期在抱负状况下接近于根本结构处理周期时刻的1/K。
本文完结的DES算法数据流通路简略,大部分都是针对位的线性改换;算法的中心部分是16轮的彻底相同的线性改换迭代,因此能够循环打开为16级深度的流水线;在非反应办法运用时,前后数据块之间没有相关性,因此不会发生抵触;每一轮运算中需求的子密钥能够提早生成,随数据流在流水线的行进中供应给各级流水线。
4 结语
选用USB 总线技能与EDA技能相结合的规划思路,使体系规划更灵敏,体系晋级更简略。完结了软件渠道的通用化、软件协议的规范化、硬件结构的统一化,然后确保了体系的可移植性和可扩展性,为硬件加密体系的规划供应了一种新思路。加密体系实践运转状况标明,体系规划思路正确,体系实时性、加密功能都能到达规划要求。