已阅读5页,还剩53页未读, 继续免费阅读
(电路与系统专业论文)基于可重组体系结构的密码芯片设计及其fpga实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 本文系统地论述了基于可重组体系结构的密码芯片设计的全过程,文章首先阐述了该 设计的课题背景,给出了使用h d l 方法设计密码芯片的特点和研究思路,然后对芯片的 设计环境作了简要说明,并对密码算法进行了简单介绍。在此基础上详细讨论了基于可重 组体系结构的密码芯片设计方法和各电路实现的结构图,包括算法电路、可控节点寄存器 堆、译码电路、接口电路和主控模块电路等。通过对各个模块设计过程的介绍,阐明了使 用h d l 语言设计超大规模集成电路的一般特点。 f 本文所阐述的密码芯片在a l t e r a 公司的a p e x 2 0 k ef p g a 上进行了钡 试。工作频率达 到了4 0 m h z ,占用了3 万个l e ,利用a l t e r a 器件的e s b 资源,采用内置r a m 和内置 r o m 设计方法,用一片芯片即可实现整个系统的功能。充分体现了s o p c 的设计方法和 理念,对芯片的仿真和测试均证明芯片功能正确,表明基于可重组体系结构这一重要思想 在密码芯片设计中具有特殊的意义。 该芯片的设计遵循h d l 设计方法学的一般方法。在i n n o v e d a 的v i s u a lh d l 设计平台 上用h d l 语言完成了设计输入,使用m o d e l s i m 仿真器完成了功能仿真,使用s y n o p s y s 的f p g ac o m p i l e r i i 进行了基于a l t e mf p g a 库的网表综合,最后将e d i f 网表输入a l t e m 的布局布线工具q u a r t u si i 中进行了布局布线,将生成的s d o 文件反标到m o d e l s i m 仿真器 中进行了时序仿真,该设计的成功,再一次表明了h d l 设计方法的正确性和有效性。夕7 一 j 卜 【糊】密码芯片严组体系结穆噬直鱼叠运函坚;毋 功缆模睫, 第l 页 a b s t r a c t t h i sp a p e rs y s t e m a t i c a l l yp r e s e n t st h ew h o l ed e s i g np r o c e s so f ac r y p t o g r a m m i cc h i p b a s e do nr e c o n f i g u r a b l ea r c h i t e c t u r e f i r s t l yi tb e g i n sw i t hab r i e f i n t r o d u c t i o nt ot h e b a c k g r o u n d o f t h ec r y p t o g r a m m i cc h i p d e s i g n ,a n di tc l e a r l ys t a t e st h ec h a r a c t e r i s t i ca n dt h e r e s e a r c h i n gt h o u g h t so f c r y p t o g r a m m i cc h i pd e s i g n w i t hh d l t h e nt h ed e s i g ne n v i r o n m e n t a n dc i p h e ra l g o r i t h m sa r ei n t r o d u c e db r i e f l y i nt h i sp a p e r ,t h em e t h o d o l o g ya n d i m p l e m e n t a t i o n w i t hh d l o f d e s i g n b a s e d r e c o n f i g u r a b l ea r c h i t e c t u r ea r ed i s c u s s e d i nd e t a i l , w h i c hi n c l u d e st h ei m p l e m e n t a t i o n so f a l g o r i t h m sc i r c u i t r e g i s t e rf i l ew j n 】c o n t r o l l a b l e n o d e ,d e c o d e r ,i n t e r f a c ea n dm a i nc o n t r o l l e r f r o mt h ei n t r o d u c t i o no f d e s i g np r o c e s so f e v e r y m o d u l ec i r c u i t ,w ec a l ls e ee a s i l ys o m e g e n e r a l f e a t u r eo fv l s i d e s i g n w i t hh d l m e t h o d o l o g y c r y p t o g r a m m i cc h i pi n t r o d u c e di nt h i sp a p e r h a sb e e nt e s t e do nt h ea l t e r a sa p e x 2 0 k e f p g a t h em a i nc l o c kf r e q u e n c yr e a c h e d4 0 m h z t h e c h i pi n c l u d e s3 0 ,0 0 0l e s i no r d e r t o u t i l i z ee s br e s o u r c ei na l t e r a sc h i p ,w ea d o p t e de m b e d d e dr o ma n dr a ma n dc a nr e a l i z e t h ef u n c t i o no f w h o l e s y s t e m w i t h o n l y o n e c h i p i ti st h ee m b o d i m e n to f m e t h o d o l o g y a n d n o t i o no f s o p c ( s y s t e m o nap r o g r a m m a b l e c h i p ) t h es i m u l a t i o no f t h i sc r y p t o g r a m m i c c h i pp r o v e s t h ec o r r e c t n e s so ff u n c t i o no ft h ec h i p ,w h i c hs h o w st h a tt h ei m p o r t a n ti d e o l o g y b a s e dr e c o n f i g u r a b l ea r c h i t e c t u r eh a s s p e c i a ls i g n i f i c a n c ei nd e s i g n i n g o f c r y p t o g r a m m i c c h i p t h e d e s i g no f t h i sc h i ps t i c k st ot h eg e n e r a lm e t h o d o l o g y o f h d l d e s i g n ,i ti se n t e r e di n h d lf o r m a tw i t hi n n o v e d a sv i s u a lh d la n ds i m u l a t e dw i t hm o d e l s i ms i m u l a t o r a f t e r s y n t h e s i z e dw i t hf p g ac o m p i l e ri i ,t h ee d 强i s e n t e r e di nq u a r t u si i ,w h i c hi ss u p p l i e db y a l t e r ac o r p o r a t i o nt op l a c ea n dr o u t e n l es d of i l ep r o d u c e d b yq u a r t u s i ii sb a c k a n n o t a t e d t ot h en e t l i s t sa n d t i m i n g - s i m u l a t i o n i sb e e nd o n e t h cs u c c e s so ft h i sc r y p t o g r a m m i c c h i p a l s os h o w st h ee f f e c t i v e n e s sa n d a d v a n t a g eo f t h em e t h o d o l o g yo f h i g h l e v e ld e s i g nw i t h h d i 。 k e y w o r d s :c r y p t o g r a m m i cc h i p ;r e c o n f i g u r a b l ea r c h i t e c t u r e ;h d l ;i d e a ;g e f f e ;g i f f o r d ; f p g a ;h i g hl e v e ld e s i g n ;s y n t h e s i s ;a l t e r a 第l l 页 第一章绪论 1 1 可重组密码芯片设计的课题背景 在网络信息时代信息资源成为人类社会的战略资源,信息技术成为知识经济的前提 和支柱,成为世界各国竞争的核心。信息安全日益成为推动制约信息产业深入发展和社会 广泛应用的瓶颈,成为关系到国家和民族经济利益和国防安全至关重要的问题。因此信息 安全已经成为国际竞争的制高点,海湾战争和科索沃危机血的教训再次告诫我们,信息安 全是关系到国家生死存亡的重大问题。我国政府部门、军事部门和安全部门使用的装有外 国“芯”的设备是不安全的。为了保证我们的国家和民族的长治久安,自主设计和研制密 码专用芯片具有重大的政治意义。 该密码芯片的现实应用背景是为我们所研制的具有自主知识产权的保密终端所服务 的,保密终端是集数字和模拟电话功能合一的终端设备。它既能对话音信息进行加密,又 能对计算机和传真数据进行加密其中的核心部分就是密码芯片的设计,可重组密码芯片 是一种新的数据加密设备。所谓可重组密码芯片是指用户可以通过编程改变芯片内部的电 路结构,使硬件电路结构能够匹配不同的a n 解密算法,从而支持不同的加解密算法在同 一块芯片上的实现。由于可重组密码芯片具有设计安全性、兼容性、可扩展性、灵活性等 众多的优点。因此可重组密码芯片具有良好的应用前景。美国已经于1 9 9 8 年研制出了可 编程加密芯片的产品,我国有关部门也开始对可编程加密芯片进行了研究与开发。本文针 对目前国内外密码芯片研究的现状提出了一种独特的具有可重组体系结构的密码芯片设 计方法。 1 2 使用h d l 方法设计密码芯片的特点及其研究思路 使用h d l 方法,可以在密码芯片设计流程的早期就验证设计的功能是否正确,因为 用h d l 写成的电路描述可以直接拿来仿真。在这种高层次上进行设计仿真,而不必非要 等到实现到门级才进行,可以更早地检验系统结构决策的正确性。 使用综合器可以把一个h d l 描述自动地转换为一个给定工艺库上的门级实现。这样, 在密码芯片设计过程中,可以不考虑制造工艺方面的问题。这种方法大大简化了设计过程, 打破了以往门级设计的瓶颈,减少了由于手工将设计规范转化为门级所引入的错误。缩短 了设计时间。 h d l 语言提供了一种与工艺无关的描述系统功能的建档方法,h d l 描述的可读性比 网表和原理图要好的多,所以在设计过程中,密码芯片各个模块的h d l 描述本身就是设 第1 页 计文档。 h d l 语言和大多数软件高级语言一样,提供了强有力的类型检查,一个8 位宽端口的 元件不允许接到一个7 位或9 位宽的信号线上,这种错误在编译阶段就能检查出来,这对 于设计密码芯片是非常有利的,密码芯片中存在着数量众多的信号线,而且数据流的宽度 变化很大,h d l 编译器这种强有力的类型检查大大减少了以往手工为芯片布线中容易引入 的错误。 h d l 设计一般采用自上而下( t o pd o w n ) 的设计方法,即将设计内容逐步细化,最 后完成系统硬件的整体设计。在利用h d l 硬件设计方法中,设计者将自上而下分成三个 层次对系统硬件进行设计。第一层次是行为描述,第二层次是r t l 方式描述,第三层次是 逻辑综合。 h d l 设计方法提倡模块化设计,把系统分为多个模块进行设计,既符合设计划分的原 则,又方便了仿真和测试,同时大大降低了一次编译过程中对内存量和时间的要求。 高层次电路设计的一大特点是硬件描述语言的编写风格对生成代码的影响非常大,功 能相同而风格不同的代码,编译后生成的电路可能在时延和面积上相差几倍到几十倍,这 是因为抽象的层次越高,在上层做的微小改动对底层影响越大。根据目前e d a 工具的发 展情况对行为级的综合尚处在发展阶段,还不是很成熟,各个厂家提供的工具对支持h d l 语言可综合的子集也没有统一的标准。对r t l 级的综合已经很成熟了,各个e d a 厂家都 提供很好的对r t l 级描述的综合工具。 针对以上特点。可以确定密码芯片的研究思路如下: 首先考虑到该芯片是我们第一次用h d l 方法设计超大规模集成电路,在实践上缺 乏经验,我们在设计的过程中采用自上而下和自下而上相结合的方法。实践证明如果能够 很好的将以上两种方法结合起来进行设计,则将大大提高设计的效率。 其次,虽然h d l 在行为级描述方面很有优势,但是考虑到目前综合工具对行为综合 的支持尚不成熟这一点,我们在电路的设计过程中全部采用r t l 级的描述。 第三。密码芯片采用模块化的设计方法,以尽可能减少内存消耗和编译时间。 第四,在输入工具的选择上,要尽量选择简单高效的方法,我们选用i n n o v e d a 公司的 v i s u a lh d l 工具,该工具图形化的输入界面给设计者提供了简单明了的设计,同时无论是 原理图、流程图还是状态机都可以转化成h d l 语言的描述,设计者可以根据模块的特点 选用最优的输入方法,从而大大提高设计效率。 1 3 芯片设计环境及其设计漉程 第2 页 由子集成电路的高速发展,设计自动化工具也日新月异,目前有很多有名的e d a 厂 家提供了不同层次的设计工具,其中最著名的有c a d e n c e ,s y n o p s y s 等,我们在设计的过 程中选择了不同厂家的e d a 工具分别来支持不同阶段的设计,输入工具选用了i n n o v e d a 公司的v i s u a lh d l ,该工具提供了图形化的输入界面,给设计者以直观,快速地实现设计 提供了便利的工具,如果设计者对所设计的电路心中有数,利用此工具在一天之内即可完 成一万行左右的h d l 程序设计,并且可以同时做到功能仿真。仿真工具也可以用c a d e n c e 的v e r i l o g x l 或m o d e l s i m 进行,由于条件限制,我们用s y n o p s y si 具综合只用来评估全 定制设计的电路规模,没有做综合优化等,这在后续章节将提及。我们主要做的综合是基 于f p g a 库的,最后测试选用的是a l t e m 的f p g a 器件及其q u a r t u si i 工具。 1 3 1a s i c 设计的一般流程 设计输入:主要有原理图输入法( s c h e m a t i cc a p t u r e ) 和硬件描述语占方法( l a n g u a g e l e v e ld e s i g ne n t r y ) ,在9 0 年代以前设计师普遍采用原理图方法进行设计输入,9 0 年代以 来,使用h d l 语言( 主要是v h d l 和v e r i l o g ) 的输入方法逐渐盛行。使用硬件描述语言 进行设计输入的效率与使用原理图相比有了飞跃的提高。 功能仿真:即在语言级或原理图级对设计进行功能上的验证。这种验证的速度要比电 路级进行验证要快的多,可以迅速发现设计功能的正确与否,是否需要修正原有设计,因 此是高层次设计的重要环节,在现代的复杂设计流程中占用时问最多。在功能仿真阶段中 不涉及时序问题,所有的时序信号都是理想信号。 综合优化:也称为编译优化,是高层次设计特有的设计步骤。在这个阶段。设计编译 器将设计输入进行电路综合,产生符合功能规范,符合面积时延约束的电路网表,控制编 译器的编译参数。可以指导编译器对产生的电路网表进行优化,并最终影响编译结果电路 的质量。 前仿真:即对综合产生的电路网表进行功能及时序校验,又称为门级仿真,其主要目 的是将输入驱动、输出负载、网线延时等影响芯片性能的实际物理量考虑在内的情况下, 对电路网表进行性能验证。 布局布线:前仿真验证无误后,就开始布局布线,这个步骤严格的说不属于高层设计 的范畴,但它为后仿真提供必要条件。这个步骤包括f l o o rp l a n n i n g ( 布局规划) 和p l a c ea n d r o u t e ( 布局布线) 两个过程。这两个过程的输出结果就是芯片版图。 后仿真:即利用在布局布线过程中获得的更加精确的延时参数,将其“反标”到电路 网表中再次验证电路的功能和时序。如果不符合要求,就需要在前几个过程中进行反复, 第3 页 直到达到要求。 投片:即将生成的芯片在工艺线上的批量生产。 1 3 2 基于f p g a 的设计流程 1 用h d l 语言写出设计程序,我们采用i n n o v e d a 的v i s u a lh d l 完成。 2 编译h d l 程序。 3 使用m o d e l s i m 仿真器验证设计描述的正确性。 4 使用s y n o p s y s 的f p g ac o m p i l e r i i 综合工具进行基于a l t e r a f p g a 库的综合,生成 e d i f 文件。 5 将上面得到的e d i f 文件输入布局布线工具q u a r t u s i i 进行布局布线,生成s o f 目标 文件。并生成延时文件s d o 。 6 将s d o 文件载入m o d e l s i m 进行时序仿真。 7 时序仿真正确后,进行f p g a 下载测试。 第4 页 ,第二章基于可重组体系结构的密码芯片设计思想及其方法 2 1 密码算法简介 密码算法也叫密码,是用于加密和解密的数学函数。通常情况下,有两个相关的函数: 一个用作加密,另一个用作解密。 如果算法的保密性是基于算法的秘密,这种算法称为受限制的算法。按现在的标准, 受限制的算法的保密性已远远不够。现代密码学用密钥解决了这个问题,密钥用k 表示。 k 可以是很多数值里的任意值。密钥k 的可能值的范围叫做密钥空间。加密和解密运算都 使用这个密钥,加,解密函数为: e k ( m ) = c d k ( c ) = m 这些函数具有下面的特性( 见图2 1 ) : d k ( e k ( m ) ) = m 密钥密钥 图2 1 使用一个密钥的加解密 有些算法使用不同的加密密钥和解密密钥( 见图2 2 ) ,也就是说加密密钥k l 和相应 的解密密钥k 2 不同,在这种情况下: 加密解密 密钥密钥 图2 - 2 使用两个密钥的j n 解密 e g l ( m ) = c d k 2 ( c ) = m d k 2 ( e k i ( m ) ) = m 所有这些算法的安全性都基于密钥的安全性;而不是基于算法细节的安全性。这就意 味着算法可以公开,也可以被分析,可以大量生产使用算法的产品,既是偷听者知道算法 也没有关系。如果他不知道你使用的具体密钥,他就不可能阅读你的消息。 第5 贾 密码系统由算法以及所有可能的明文、密文和密钥组成。 基于密钥的算法通常有两类:对称算法和公开密钥算法。 对称算法有时又叫传统密码算法,就是加密密钥能够从解密密钥中推算出来,反过来 也成立。在大多数对称算法中,加解密密钥是相同的。这些算法也叫密钥算法或单密钥算 法,它要求发送者和接收者在安全通信之前,商定一个密钥。对称算法的安全性依赖于密 钥,泄漏密钥就意味着任何人都能够对消息进行j t a ;解密。只要通信需要保密,密钥就必须 保密。 对称算法的加密和解密表示为: e k ( m ) = c d k ( c ) = m 对称算法可分为两类。一次只对明文中的单个位( 有时对字节) 运算的算法称为序列 算法或序列密码。另一类算法是对明文的一组位进行运算这些位组称为分组。相应的算 法称为分组算法或分组密码。 公开密钥算法也叫非对称算法,它是这样设计的:用作加密的密钥不同于用作解密的 密钥,而且解密密钥不能根据加密密钥计算出来,之所以叫做公开密钥算法,是因为加密 密钥能够公开,即陌生者能用加密密钥加密信息。但只有相应的解密密钥才能够解密出来。 在这些系统中,加密密钥叫做公开密钥,解密密钥叫做私人密钥。私人密钥有时也叫秘密 密钥。 用公开密钥k 加密表示为: e k ( m ) = c 虽然公开密钥和私人密钥不同,但用相应的私人密钥解密可表示为: d k ( c ) = m 下丽简单介绍几种算法。 2 i 1i d e a 算法 国际数据加密算法简记为i d e a ( i n t e m a t i o n a l d a t a e n c r y p t i o na l g o r i t h m ) 。i d e a 算法是 一个分组长度为6 4 位的分组密码算法,密钥长度为1 2 8 位,同一个算法既可用于加密也 可用于解密。 如同我们看到过的所有其它分组密码算法一样,i d e a 既用混乱又用扩散。该算法的 设计原则是一种“来自于不同代数群的混合运算”。三个代数群进行混合运算,无论用硬 件还是软件它们都易于实现。 第6 页 异或。 模2 ”加。 模2 1 6 + l 乘( 这个运算可看成是i d e a 的s - 盒) 。 所有这些运算( 这些是算法中仅有的运算没有位置换) 都在1 6 位子分组上进行。 这个算法对1 6 位处理器尤其有效。 i d e a 的描述 图2 - 3 是i d e a 的一个总览。6 4 位数据分组被分成4 个1 6 位子分组:x 1 ,x 2 ,x 3 和x 4 。这4 个子分组成为算法的第一轮输入,总共有8 轮。在每一轮中,这4 个子分组相 互间相异或,相加,相乘,且与6 个1 6 位子密钥相异或,相加,相乘。在轮与轮间,第 二和第三个子分组交换。最后在输出变换中4 个子分组和4 个子密钥进行运算。 l 轮 7 至更多轮 y 匕易 图2 - 3i d e a 算法总览 图中: x i :1 6 位明文子分组 y i :1 6 位密文子分组 z i ( r ) :1 6 位子密钥 o :1 6 位整数与2 1 6 对应予分组的模2 6 + l 第,页 o :1 6 位子分组的相异或 田:1 6 位整数的模2 怕加 在每一轮中,执行的顺序如下: nx l 和第一个子密钥相乘。 2 ) x 2 和第一个子密钥相加。 3 1x 3 和第个子密钥相加。 4 ) x 4 和第一个子密钥相乘。 5 ) 将第1 ) 步和第3 ) 步的结果相异或。 6 ) 将第2 ) 步和第4 ) 步的结果相异或。 7 ) 将第5 ) 步的结果与第五个子密钥相乘。 8 ) 将第6 ) 步和第7 ) 步的结果相加。 9 ) 将第8 ) 步的结果与第六个子密钥相乘。 1o ) 将第7 ) 步和第9 ) 步的结果相加。 1 1 ) 将第1 ) 步和第争) 步的结果相异或。 1 2 ) 将第3 ) 步和第9 ) 步的结果相异或。 1 3 ) 将第2 ) 步和第1 0 ) 步的结果相异或。 1 4 ) 将第4 ) 步和第1 0 ) 步的结果相异或。 每一轮输出是第1 1 ) ,1 2 ) ,1 3 ) ,1 4 ) 步的结果形成的4 个子分组。将中间两个分组交 换后,即为下一轮的输入。 经过8 轮运算之后,有各个最终的输出变换: 1 ) x l 和第个子密钥相乘。 2 ) x 2 和第二个子密钥相乘。 3 ) x 3 和第三个子密钥相加。 4 ) x 4 和第四个子密钥相乘 最后,这四个子分组重新连接到一起产生密文。 产生予密钥也很容易。这个算法用了5 2 个子密钥( 8 轮中的每一轮需要6 个,其它四 个用于输出变换) 。首先,将1 2 8 位密钥分成8 个1 6 位子密钥,这些是算法的第一批8 个子密钥( 第一轮六个,第二轮头两个) 。然后密钥向左环移2 5 位后再分成8 个子密钥。 开始四个用在第二轮,后面四个用在第三轮。密钥再次向左环移2 5 位产生另外8 个子密 钥,如此进行直到算法结束。 第8 页 解密过程基本上一样,只是子密钥需要求逆且有些微小差别,解密子密钥要么是加密 子密钥的加法逆,要么是乘法逆计算子密钥要花点时间,但对每一个解密密钥t 只需做 次。 2 1 2g i f f o r d 算法 该算法是一个8 字节寄存器:b o ,b l ,b 7 。密钥即寄存器的初始状态t 该算法工 作在o f b 模式下,且明文对算法没有一点影响。 产生一个密钥字节k j 位,连接b o 与b 2 以及b 4 与b 7 。将二者相乘得到一个3 2 位数。 左起第三字节就是k i 。 更新寄存器,取b i 且将它右移l 位,这就意味着最左端位既移位又原处保留了。取 b ,并且左移l 位:则最右端位的位置应该为0 。将改变后的b i ,b 7 和b o 异或。将原寄存器 向右移l 字节并将该字节放入最左端位置。g i f f o r d 发生器如图2 - 4 所示: 图2 4g i f f o r d 发生器 删除 2 1 3g e f f e 算法 这个密钥序列发生器使用了三个l f s r ( 线性反馈移位寄存器,将在电路设计一章专 门介绍l f s r 的结构设计) 。它们以非线性方式组合而成,两个l f s r 作为复合器的输入 第三个l f s r 控制复合器的输出,如果a 1 ,a 2 ,a 3 是三个l f s r 的输出,则g e f f e 发生 器的输出表示为: b = ( a l a 2 ) o ( ( 一a i ) 八a 3 ) 在上式中:八表示与,o 表示异或一表示非。 第9 页 如果三个l f s r 的长度分别为n l ,n 2 ,n 3 ,那么这个发生器的线性复杂性即为: ( n l + 1 ) n 2 + n l n 3 这个发生器的周期是三个l f s r 的周期的最小公倍数。假设三个本原反馈多项式的阶 数互素,那么这个发生器的周期是三个l f s r 的周期之积。g e f f e 发生器如图2 5 所示: 2 1 复合器 b ( t ) 图2 5g e f f e 发生器 2 2 可重组体系结构设计思想 2 2 1 可重组体系结构的概念 通俗的讲所谓的可重组体系结构是指硬件逻辑电路根掘不同的应用需求重新组织 构成不同的电路结构,实现不同的功能以适应不同的应用需求。可重组体系结构的较为严 格的定义如下:如果在某一体系结构的逻辑电路中存在某些可被重用的部件,并在可重用 的部件之中设置了某些指令界面可见的控制节点,通过指令或标识对这些控制节点进行控 制,改变重用部件的内部结构或相互之间的连接关系。从而实现不同的电路结构。完成不 同的逻辑功能,那么该体系结构就称为可重组体系结构。 2 2 2 可重组计算系统的总体结构 下面是一个典型的可重组计算系统的结构图: 圈2 - 6 可重组计算系统结构图 第1 0 页 从图中可以看出虽然各个可重组计算系统的结构有很大区别,但其基本成分大体上是相同 的即:通用处理器、可重组处理单元、存储器、接口界面。其中通用处理器用来控制和 处理通用的计算任务,可重组处理单元r p u 用于处理专用领域的计算任务,在某些系统中 处理器与r p u 集成在同一块芯片上,而在另外一些系统中,处理器与r p u 分别位于不同 的芯片上。 配2 3 可重组处理单元的设计原理 可重组处理单元的设计目标是在一定的规模限制条件下,硬件逻辑电路能够通过重组 适应尽可能多的应用需求,并且使针对每种应用需求的性能尽可能高,显然我们不可能对 每种应用需求设计一套电路,那会导致规模的无限膨胀。因此可重组体系结构的设计必须 建立在某些硬件资源能够被不同的应用需求重复使用的基础之上,这些能够被重复利用的 硬件资源就是我们所说的可重组元素。为了适应不同的应用需求,可重组元素的内部结构 和可重组元素之间的连接关系必须是可变的。为此我们必须在电路中设置一些指令界面 可见的控制节点,通过编程对这些控制节点实施控制,就可以实现不同的电路结构。 可重组密码芯片的设计思想是:在密码逻辑电路中设置某些可被不同密码算法重复使 用的部件并在可重用部件内和数据通路之中设置某些指令界面可见的控制节点,通过指 令或标识对这些可控节点进行控制,可以改变重用部件的内部结构或相互之间的连接关 系,从而实现不同的电路结构,匹配不同的密码算法。 我们可以通过下面两个例子来说明可重组逻辑的基本思想: 例:实现不同逻辑函数的可重组电路。电路图见图2 7 : abcd 图2 - 7 实现不同逻辑函数的可重组逻辑举例 在图2 所示的电路中,a n d 2 表示2 输入与f - 1 ,a n d 3 表示3 输入与门,o r 2 表示2 输入 或门,n o t 表示非门,a 、b 、c 、d 、是4 个输入变量,f 是输出变量我们在上述电路 第1 1 页 中设置了两个可控节点。其控制信号分别记为c t r l i 和c t r l 2 ,通过对c t r l i 、c t r l 2 赋以不同的值,就可以改变上述电路的逻辑功能,实现不同的逻辑函数。下表给出了当 c t r l i 和c t r l 2 取不同值的时候,上述电路所实现的函数关系。 c t r l lc t r l 2 函数关系 oof = 0 ol f = d 1o f = a b c 11 f = a b c + d 例二:实现不同连接关系的可重组电路,电路图见图2 8 m 图2 8 实现不同连接关系的可重组电路 图2 8 中共有三个部件a 、b 、c ,a 和b 输出经过m u x 选通后进入c 部件,作为c 部件 的输入,其中m u x 就是一个可控节点,通过对这个可控节点的控制就可以实现两种不同 的连接关系,分别如图2 - 9 和图2 1 0 所示: 事串 图2 - 9 根据上述可重组处理单元的设计思想 重用的功能部件和可变的数据传输路径。 图2 1 0 可重组密码芯片的组成中包括两个部分:可被 可被重用的功能部件是可重组密码逻辑的基础,没有可被重用的功能部件也就谈不上 重组电路结构和逻辑关系。因此,可重用的逻辑部件是构成可重组密码逻辑的基本元素, 我们称之为可重组元素。因为可重组元素要被多种不同的密码算法所使用,而不同的算法 第1 2 页 一一= = = 墅型些墅堕筌型堂垦= = = = = = = = = = _ _ - _ - 一 一 要求重组元素实现的功能往往是不同的,因此重组元素的内部电路结构必须可变,这样才 能实现不同的逻辑功能。例如:很多密码算法都使用了移位单元,但要求移位单元实现的 功能却分为循环左移、循环右移、逻辑左移、逻辑右移等多种。而且移位的位数也不同, 因此移位单元必须根据算法所要求的移位方式、移位方向和移位位数来改变移位单元内部 的电路结构,从而实现不同的移位功能。 可变的数据传输路径是指重组元素之间的连接关系是可变的,只有这样才能适应不同 的密码算法对数据传输的要求。 为了实现重组逻辑电路的内部电路结构和相互之间的连接关系的可变,我们必须在重 组元素的内部和数据传输路径中设置一些指令界面可见的控制节点,通过对这些节点加以 控制,就可以改变重组元素的内部电路结构和相互之间的连接关系,满足不同密码算法的 要求,我们称这些指令界面可见的控制节点为可控节点。 综上所述,可重组处理单元设计的主要内容有以下三个方面:重组元素的选择和设计、 重组元素之问连接关系的确定、可控节点控制方式的确定。下面将详细介绍这三个方面。 2 3 基于可重组体系结构的密码芯片设计方法及方案 2 3 1 重组元素的选取 重组元素的选取直接影响到可重组体系结构的应用范围以及与应用需求的匹配程度, 从而影响到可重组体系结构的灵活性和性能。因此重组元素的选取对可重组体系结构具有 重要的意义。计算机体系结构理论中,有一个基本的设计准则:对于应用中经常发生的事 件,应该用硬件加快其实现,以提高应用程序的执行速度。根据这一准则,在选取重组元 素的时候,我们应该首先对应用领域中不同的应用需求进行分析,对大量的应用需求中基 本运算成分或结构的种类、规格和数量进行统计分析,对于使用频度高的基本运算成分或 结构,我们应该在硬件逻辑电路中设置相应的基本单元成分,这些基本单元就作为可重组 体系结构的的重组元素。对于使用频度很低的基本运算成分,我们可以不设置专门的基本 硬件单元,而是利用某些通用部件通过软件编程实现,这样可以有效降低规模和控制复杂 度。另外,为了保证可重组体系结构具有较大的灵活性,重组元素中应该具有一些通用的 部件,如a l u 等。 2 3 2 连接关系的确定和可控节点的设置 各个重组元素之间的连接方式,直接影响到可重组体系结构的灵活性和性能。显然理 想的情况是任何两个重组元素都能直接相连,这样灵活性最大,性能最高,但是这样的连 第1 3 页 一= = = = 墅壁坠塑些墅笪娑塾= = = = = = = = = = _ _ _ _ _ 一一 接方式势必造成规模巨大、连线太多和控制复杂。因此我们必须在规模和灵活性之间寻求 合理的折中。一种可行的方法是:对使用频度高的通路,直接相连,对使用频度低的路径, 则通过通用寄存器间接相连,这样既能保证一定的灵活性和性能,又能有效降低规模和控 制复杂度。 可控节点是用来控制不同的重组元素之间的连接关系或组合方式的。首先分析不同的 应用需求对每个重组元素的使用方式,从而确定每个重组元素与其它重组元素之间的多种 连接方式或组合方式,然后设置一组或多组可控节点来控制这些连接关系或组合方式的实 现。可控节点的作用相当于开关,通过开关的打开或关闭,能够控制某些通路的连接或断 开,从而改变重组元素之间的连接关系或组合方式,实现不同的电路结构。用作可控节点 的逻辑器件有多路选通器、与门、或门等,需根据具体应用场合进行适当的选择。 2 3 3 可控节点的控制方式 可重组体系结构的电路结构和功能的改变是通过对可控节点赋以不同的编码值来实 现的。可控节点的数量及其编码的宽度与可重组体系结构的灵活性密切相关。一般来说, 可控节点的数量越多、编码宽度越大,可重组体系结构的灵活性也越大。当可控节点的数 量较多、编码宽度较大时,如何对可控节点进行控制就成为个非常重要的问题。如果所 有可控节点的编码都通过指令带入,必将造成指令编码长度增加、译码器规模和延时增大, 从而使系统的整体性能下降。为了解决这一问题,我们采用内外编码结合控制的方法,将 一部分可控节点的编码由外部指令( 外编码) 带入,另外一部分可控节点的编码由指令预 先装载在标识寄存器( 内编码) 中,由内编码和外编码结合起来控制具体操作的进行。这 种方法能够有效地减少指令编码的宽度、减少译码的复杂度和延时,提高系统的运行速度。 2 3 4 密码芯片设计方案 根据上述可重组体系结构的设计原理及其思想,针对可编程密码芯片的应用需求,我 们提出了基于可重组体系结构的加密芯片的一种设计方案,本方案的设计目标是能够通过 编程匹配不同的序列密码算法和分组密码算法。 2 3 4 1模块设置方案 我们对d e s 、i d e a 和美国2 l 世纪加密标准的1 5 种候选算法以及部分序列密码算法 进行分析。通过对上述算法的基本运算成分的使用频度进行统计。发现大多数加密解密算 法的基本运算成分集中在以下几种类型: 移位、鬻换、组合函数或者s 盒置换函数、异或运算、模加运算、模乘运算、线性反 第1 4 页 馈移位寄存器、非线性反馈移位寄存器、循环等。大多数加解密算法都是上述基本运算成 分通过不同的组合和连接方式构成的。或者是上述基本运算成分都被大量不同的加解密算 法重复使用。根据上述可重组逻辑的设计原理,我们应该在可编程密码芯片的逻辑电路中 设置与上述基本运算成分相对应的基本单元作为可重组元素。因此,可编程密码芯片应该 包括下列子模块: 1 ) 移位子模块( s h i f t ) :能够实现左移、右移、循环左移、循环右移4 种功能, 移位数据的字长、移位的位数可变,由用户编程确定。 2 ) 置换子模块( p m t ) :能够实现一一置换、扩展置换、收缩置换,具体的置换关 系由用户编程确定。 3 ) 组合函数子模块( s b o x ) :能够实现m 输入n 输出的任意组合函数,m 和n 的 值根据规模、性能等具体情况确定。具体的函数关系由用户在使用时编程确定。 4 ) 模运算子模块:能够实现异或运算( 1 位、8 位、1 6 位、3 2 位) 、模加运算m a d d ( 模分别为2 8 、2 1 6 、2 3 2 ) 、模乘运算m m u l ( 模分别为2 8 、2 8 + l 、2 1 6 十l 、2 3 2 + 1 ) 。 5 ) 反馈移位寄存器子模块( l f s r ) :能够实现线性反馈移位寄存器和非线性反馈移 位寄存器,反馈移位寄存器的级数、反馈抽头和反馈函数由用户编程确定。 6 ) 算术逻辑单元( a l u ) :能够实现通常的算术和逻辑运算。 7 ) 通用寄存器堆子模块( r f ) :用于保存计算结果并进行数据传输。 8 ) 循环控制子模块:能够实现循环控制功能。 9 ) 标识寄存器子模块:用于存储可控节点的编码值及处理器内部状态。 10 ) 存储管理子模块:实现取指令、取数据、存数据操作。 1 1 ) 指令译码子模块:实现指令译码功能。 2 3 4 2 连接关系方案 各个基本硬件单元之间的连接方式,直接影响到可编程密码芯片适应的算法的多少以 及加解密速度的快慢,显然理想的性能是任何两个基本单元都能直接相连。这样,适应的 算法最多,算法的执行速度最快。但是这样的连接方式势必造成规模的巨大和控制的复杂。 因此,我们必须在规模和灵活性之间寻求合理的折衷。一种可行的方法是对使用频度高的 直接相连。对使用频度低的路径则透过通用寄存器相连。这样既能保证一定的灵活性和性 能,又能有效的降低规模和控制复杂度。 下面给出一个连接关系方案:可重组密码芯片的数据通路以寄存器堆为中心,寄存器 堆包括6 4 个3 2 位的寄存器,有4 个写端口、8 个读端口。每个写端口可以将任何一个功 第1 5 页 一= = = 墅型型堂型型丝箜堕= = = = = = = = = = = = - - _ - _ _ _ _ _ - - - _ 一 能部件的操作结果写入寄存器堆中的任何一个寄存器,这个操作通过r f w p 完成。每个读 端口可以将寄存器堆中的任何一个寄存器的内容读出,该操作通过r h 冲完成。各个功能 部件之间的数据传输都通过寄存器堆进行。可以同时进行4 个写操作或8 个读操作。该数 据通路的结构如图2 1 l 示: 2 3 4 3可控节点设置方案 图2 1 l 数据通路 对于可重组的密码芯片的逻辑电路,通常有两种类型的可控节点:内部结构可控节点、 输入( 出) 可控节点。所谓内部结构可控节点是指控制部件内部结构的控制节点,如果一 个部件的内部结构需要根据不同的算法改变,则应该设置一组控制节点控制内部结构的改 变。所谓输入( 输出) 可控节点是指输入输出的来源的可控节点。如果某一个输入( 输出) 有多个数据来源,则需要在此设置一组可控节点控制从多路数据来源中选择一路作为输入 ( 输出) 。 针对上述模块设置方案,我们应该设置下列类型的可控节点: 1 ) 移位控制节点:用来控制移位数据的字长、移位的位数、移位的方向等。 2 ) 置换控制节点:用于控制置换关系。 3 ) 组合函数控制节点:用于控制组合函数。 4 ) 模运算器功能控制节点:用于控制模运算器的功能。 5 ) 反馈移位寄存器结构控制节点:用于控制反馈移位寄存器的级数、反馈抽头和反馈 第1 6 页 函数。 6 ) 输入( 出) 控制节点:用于控制移位、置换、组合函数、模运算器、反馈移位寄存 器等各个模块的输入( 输出) 。 第1 7 页 ,第三章功能模块设计及其电路结构 密码芯片的设计是复杂的数字系统的设计,为了完成加解密功能,并把它应用于实际, 密码芯片除了算法电路以外,还需要译码电路、程序r a m 和r o m ,接1 :i 电路以及控制整 个加解密进程的主控模块,该芯片的总体框图如下: 图3 1 密码芯片总体框图 以下就密码芯片内部的几个主要模块的电路结构设计进行详细的阐述。 3 1 算法电路单元 前面已经提到,可重组密码芯片一般由移位子模块、置换予模块、组合函数子模块、 模运算子模块、反馈移位寄存器子模块、算术逻辑单元、通用寄存器堆子模块等组成,下 面我们将以组成密码芯片的几个最基本的单元模块为例介绍密码芯片内部电路的设计。 3 1 1 组合函数模块的电路设计 设根据加,解密算法的要求
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026学年大班社会惊蛰说课稿
- 2025-2026学年刺猬铺床儿歌说课稿
- 2025-2026学年三年级礼仪主题班会说课稿
- 部编版五年级上册语文第一单元单元培优卷(B卷)
- 2025-2026学年二年级识字与写字说课稿
- 2026下半年小学体育教资面试田径技巧题
- 2026秋译林版四年级英语上册对话背诵与跟读材料(Unit1-8含参考译文)
- 2026年武汉南益巴黎豪庭全度营销推广执行案
- 宁夏石嘴山市第-中学2026-2027学年高一上学期9月考试化学试卷
- 初中语文常见的病句类型
- 中国电信湖南校招笔试题
- 托育食品安全课件
- 人工智能与未来 课件 8.2 计算机视觉概述
- 2025 初中一年级语文下册《台阶》细节描写作用课件
- 彩票合伙合同协议书
- 企业管理-采购腹腔镜训练器的申请报告
- T-CICC 35007-2025 金属材料 疲劳试验小样本数据统计分析方法
- HJ 169-2018建设项目环境风险评价技术导则
- 机械表维护知识培训课件
- GJB1406A-2021产品质量保证大纲要求
- 产后胎盘植入课件
评论
0/150
提交评论