(微电子学与固体电子学专业论文)用于系统级封装的高可靠微控制器的设计.pdf_第1页
(微电子学与固体电子学专业论文)用于系统级封装的高可靠微控制器的设计.pdf_第2页
(微电子学与固体电子学专业论文)用于系统级封装的高可靠微控制器的设计.pdf_第3页
(微电子学与固体电子学专业论文)用于系统级封装的高可靠微控制器的设计.pdf_第4页
(微电子学与固体电子学专业论文)用于系统级封装的高可靠微控制器的设计.pdf_第5页
已阅读5页,还剩67页未读 继续免费阅读

(微电子学与固体电子学专业论文)用于系统级封装的高可靠微控制器的设计.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 随着控制系统的广泛应用,其自身安全问题日益突出,作为控制系统中的核 心部件,微控制器的安全应用也在经受着考验,高可靠微控制器设计技术已成为 了研究热点。 本文介绍了一款应用于系统级封装的高可靠微控制器的设计,该微控制器具 有安全性能高、体积小、面向控制等特点。本文在论述系统级封装技术以及微控 制器应用背景的基础上,重点介绍了高可靠微控制器内部结构的设计方法,对传 统微控制器的攻击手段和安全防护措施进行了分析,提出了高可靠微控制器的改 进式架构设计。这款微控制器兼容5 1 系列单片机的指令系统和寻址方式,在原 始微控制器的架构中加入可以起到安全防护功能的辅助模块。使用d e s 算法对 微控制器的执行指令进行加密和解密,提高了执行指令的安全性。片内d e s 解 密算法部分采用硬件电路实现,并设计为流水结构,保证了执行指令安全性的同 时,加快了算法执行的速度。加入的总线控制模块可以对微控制器的数据存储器 中的数据进行安全保护,提高了随机存取数据的安全性。随机数生成模块使用高 速时钟驱动,在随机序列生成的过程中,可以产生冗余功耗,对微控制器的非入 侵式攻击起到安全防护作用。 经仿真验证该微控制器实现了可靠性较高的存储安全机制,包括程序指令存 储和数据存储,并能够较有效抵御入侵式攻击和非入侵式攻击。 关键词:微控制器存储安全机制d e s 算法伪随机数发生器系统级封装 a b s t r a c t w i t ht h ee x t e n s i v ea p p l i c a t i o no ft h ec o n t r o ls y s t e m ,i t ss a f e t yb e c a m ep r o b l e m s a st h ek e yc o m p o n e n to ft h ec o n t r o ls y s t e m ,t h er e l i a b i l i t yo fm i c r o c o n t r o l l e ri sa l s o e x p e r i e n c i n gt h et e s t i no r d e rt oe n s u r et h es e c u r i t yo ft h ee n t i r es y s t e m ,t h em i c r o c o n t r o l l e rs e c u r i t yt e c h n o l o g yh a sb e c o m eah o tt o p i c i nt h i sp a p e r ,ad e s i g no fh i g hr e l i a b i l i t ym i c r o - c o n t r o l l e rw h i c hh a ss a f e t yp e r f o r - m a n c e ,s m a l lv o l u m ea n dc o n t r o l - o r i e n t e df e a t u r e si sp r o p o s e db a s e do na p p l i c a t i o n b a c k g r o u n da n dp a c k a g i n gt e c h n o l o g yo ft h i sc h i p w i t ha n a l y s i s o nt r a d i t i o n a l m i c r o c o n t r o l l e ra t t a c km e a na n dp r o t e c t i v em e a s u r e ,t h ea r c h i t e c t u r eo fh i g h r e l i a b i l i t ym i c r o c o n t r o l l e ru s e di nt h es e c u r i t yc o n t r o lf i e l di si n t r o d u c e d t h i sh i g h r e l i a b i l i t ym i c r o c o n t r o l l e rc o m p a t i b l ei n s t r u c t i o ns y s t e ma n da d d r e s s i n gw a yo f5 1 s e r i e ss i g n a lc h i pm i c r o c o m p u t e r ,a n da d ds e c u r i t ya u x i l i a r ym o d u l ei no r i g i n a l s t r u c t u r e i te n c r y p t sa n dd e c r y p t si n s t r u c t i o n su s i n gt h ed e sa l g o r i t h m ,w h i c hi s d e s i g n e dt of l o ws t r u c t u r er e a l i z e db yh a r d w a r ec i r c u i t ,s p e e d i n gu pt h er a t e o f a l g o r i t h ma n di m p r o v i n gt h es a f e t yo ft h ei n s t r u c t i o n s b u sc o n t r o lm o d u l ei nt h i s a r c h i t e c t u r ei sd e s i g n e dt op r o t e c tt h ed a t ai nr a m ,i m p r o v i n gt h er a n d o ma c c e s sd a t a s e c u r i t y r n gm o d u l eu s e sh i g h s p e e dc l o c kd r i v e r ,i nr a n d o ms e q u e n c eg e n e r a t i o n p r o c e s s ,c a np r o d u c er e d u n d a n tp o w e rc o n s u m p t i o n ,a n dp l a yas e c u r i t y r o l ei n n o n i n v a s i v ea t t a c ko nm i c r o c o n t r o l l e r t h es i m u l a t i o nr e s u l t sp r o v et h a tt h i sm i c r o c o n t r o l l e rr e a l i z e st h eh i g hr e l i a b i l i t y s t o r a g es e c u r i t ym e c h a n i s m s ,i n c l u d i n gp r o g r a ms t o r a g ea n dd a t as t o r a g e ,a n dc a n e f f e c t i v e l yr e s i s tt h ei n v a s i v ea t t a c k sa n dt h e n o n i n v a s i v ea t t a c k s k e yw o r d s :m c u ,s e c u r es t o r a g em e c h a n i s m ,d e s ,p r n gs i p 第一章绪论 第一章绪论弟一早硒化 1 1 系统级封装技术发展及现状 随着信息技术的发展,各应用领域对电子产品的性能要求越来越高,这就使 得在微电子系统中需要使用多种i c 芯片,而这些大量的芯片外互连将会对系统性 能造成影响。上世纪9 0 年代中期提出了片上系统( s o c ) 的方法虽然解决了由 于片外互连所引起的延迟时间增加的问题,但由于面积的限制、系统内的不同模 块间的耦合噪声以及各模块之间的互联可能引起的系统性能的下降,这就需要进 行进一步的技术革新以满足这些需求。近年来发展起来的系统级封装( s i p , s y s t e mi nap a c k a g e ) 技术可以用来克服s o c 本身固有的很多局限性。 系统级封装可以是由同类系统如存储器芯片组成,也可由包含存储器模块、 a s i c 或微处理器等混合堆叠层的不同功能模块组成【1 2 1 。 系统级封装的封装方法实际上是将多片裸片或封装后的芯片在垂直方向将 其互连在一起,其主要的实现方法为焊线、沿芯片或封装外围进行垂直互连、将 芯片或封装交错排成一个阵列并使用尺寸较大的低密度垂直互连,或者将三维的 堆层表面进行金属化,如图1 1 所示。 醺裂禽 粪谚 图1 1 几种s i p 结构 在系统级封装中,焊线( w i r e d b o n d e d ) 是一种常用的技术,其主要的实现 方法为焊线沿芯片或封装外围进行垂直互连。由于处理过程简单,相比于其他互 连技术,其生产周期很短。不同形式w i r e d - b o n d e d 的结构如图1 - 2 所示。 第一章绪论 m u l f i r o w w 玎l n g 八 ( a 逦硝d i e t o - d i e d i e - t o - p a c k 辆a g g e 叫。弋。 - ( 田 图1 2 焊线结构s i p 决定这种封装方式效率的参数有:裸片的厚度、粘合材料的厚度、所能实现 焊线的数量以及用来安置堆叠芯片的封装衬底的尺寸。另外,堆叠芯片的性能也 取决于焊线的长度和相应的寄生阻抗。这些结构制造过程主要分成以下几个关键 步骤。首先所有需要堆叠的芯片或晶片要通过磨抛减薄到5 0 u m 至07 5 u r n 。堆叠层 的底层芯片要安置在封装衬底上,其他芯片通过薄膜环氧树脂依次粘合,在相邻 层间留有一定空间用于焊线。焊线式的系统级封装技术现在已发展到可以堆叠4 到5 层芯片,焊线与互连线间的寄生阻抗成为了芯片堆叠数量增长的最大阻碍 【3 】【4 】。通过更短的过孔或锡球的方式实现外围垂直互连可以一定程度地克服焊线 结构的缺点,但技术难度大,生产成本高。 由此可见,系统级封装具有很高的芯片封装面积比、较少的封装管脚、重量 较轻、信号传输的速度快、噪声较小、功耗较低、功能多样化、成本较低和可靠 性较高等优剧1 】【2 l 。 目前,这种系统级封装的芯片已被广泛的用于各个领域的电子设备中,如各 种类型的计算机、汽车电子设备等【5 】。另外,一些存储产品中也广泛使用了系统 级封装技术,如警用探测器中的高密度s r a m 存储器以及高速成像系统中的存储 器多芯片组建。同时,采用系统级封装的整机电子产品需求也在不断地增加。由 此可见,系统级封装在i c 封装市场上所占份额会越来越多,封装产品的市场需求 量会逐渐增大。 综上所述,i c 封装业作为支持电子信息产业发展的关键技术之一,正在向高 速、多功能、低功耗、小型、轻量、低价格化的发展方向迈进,而系统级封装技 术作为今后微电子封装业发展的主要趋势,有理由相信其应用前景无限广阔。 1 2 微控制器技术发展及现状 上世纪7 0 年代中期诞生了微控制器技术,通常情况下,是将微控制器作为 中心控制单元与其他外设集成在同一芯片上构成微型系统,其中微控制器的作用 第一章绪论 相当于微型计算机中的主要部分实现的功能。该技术经过不断的发展和改进,己 在3 c 领域以及其他电子领域都得到了广泛的应用,占据了举足轻重的地位【6 】。 微控制器的成品技术最早始于i n t e l 公司,其在二十世纪七十年代推出的m c s 4 8 为8 位微控制器的市场推广开启了先河,八十年代推出的m c s 5 1 以其一系 列的优越性能得到了极大认可,为新型微控制器研制和生产奠定了非常好的基 础,直到今日也一直是经典结构。其他半导体公司也在5 1 技术开放后,推出了 多款基于5 1 内核的微控制器,应用在各行各业中电子产品的嵌入式控制中【1 7 1 。 不同款式的微控制器共分为4 位、8 位、1 6 位和3 2 位四种主要类型,但其 中应用最广泛的为8 位微控制器【8 】。就目前微控制器的发展来看,8 位微控制器 正在朝三个方向发展:一是高效,包括更快的工作运行速度、更稳定的工作运行 状态,集成更多功能的外设等;二是低功耗,由于其应用领域的广泛,要求其功 能具备越来越完善,包括的集成外设( 如数模转换器、模数转换器、总线控制器、 脉宽调制电路等) 越来越丰富,为了提高产品的应用性能,对其功耗指标提出了 更严格的要求。三是高可靠性,应用于安全控制领域的微控制器,对其实现的控 制功能以及其中运行的数据有着较高保密性的要求,具有较高可靠性的微控制器 能够实现微控制器中运行数据的安全保护,抵御芯片的攻击手段,具有较高的安 全性。 由此可见,微控制器的发展正在满足各行各业的应用需求中不断完善, 拥有了更多更加完备的功能,在各个领域发挥着越来越重要的作用。目前国 内的半导体领域配备的e d a 工具和软件己具备设计拥有自主知识产权微控制 器的能力,所以有理由相信,今后的微控制器技术将不断发展、日益完善和 更加充实。 1 3 高可靠微控制器发展现状及研究意义 高可靠微控制器属于微控制器系列中的一种,同时也是微控制器的安全升级 版。其内部结构,在拥有着通用微控制器内部的所有功能模块的同时,还具有其 它起到保护作用的安全功能模块。一般情况下,一款高可靠微控制器兼容某一款 微控制器的指令集,可以在更高安全系数的前提下,完成指令的运行及整个系统 的控制。 目前t i 、美信、英飞凌等多家芯片生产厂商已经生产出了多种不同款的高可 靠微控制器。市场上流行的高可靠微控制器一般是低功耗r i s c 芯片,结合了高 性能、周期处理少、完善的篡改检测技术以及加密硬件。先进的安全特性满足多 种极为苛刻的安全规范的要求。己投放市场的高可靠微控制器的目标领域是电子 第一章绪论 交易、银行以及数据安全系统等,上述领域在安全接入控制、安全数据存储、数 字签名或者证书验证等方面都有着很高的安全等级【引。综合所有高可靠微控制器 的特点,它们的安全特性主要体现在以下几方面【9 】: ( 1 ) 存储区域通过加密算法加密关键的内外部存储区,防止总线侦测或数 据篡改。更高级的存储安全防护是在检测温度电压超出范围或用户定义的 自毁输入被激活的情况下,篡改检测器快速对内部密钥和用户数据“清零”。 ( 2 ) 拥有内部硬件加密算法,包括:d e s 引擎支持单d e s 和2 3 密钥3 d e s 操作、针对不同种加密算法长密钥强度的公钥加密加速器或硬件散列算法引 擎支持s h a - 1 、s h a - 2 2 4 以及s l t a 一2 5 6 等常用加密算法。 ( 3 ) 使用高性能内部闪存和s r a m 支持高可靠微控制器的各种应用。 ( 4 ) 拥有硬件随机数生成器( r n g ) 。 由此可见,各款高可靠微控制器以其各自具有的安全性能,达到了安全 系统的不同应用要求,巩固了在相关安全领域的应用主导地位。在信息安全 性越来越重要的今天,更多种高可靠微控制器的出现已经是一个必然的发展 方向,所以高可靠微控制器技术的研究具有非常重要的研究意义和价值。 1 4 论文结构 本论文以高可靠微控制器架构及内部模块设计为重点,分为六个部分:第一 部分简单介绍了系统级封装技术、微控制器技术、高可靠微控制器技术的发展现 状;第二部分介绍了微控制器的攻击手段和防护措施,以及高可靠微控制器的架 构设计、各组成部分功能;第三部分详细描述了微控制器内部结构中功能模块的 前端设计;第四部分介绍了d e s 算法和伪随机数发生器的硬件实现方法;第五 部分介绍了芯片的电路综合和后端布局布线;第六部分为总结和展望。 第二章高可靠微控制器的架构设计 第二章高可靠微控制器的架构设计 2 1 微控制器概述及51 系列微控制器内部结构 2 1 1 微控制器概述 控制器可以被看成是单片机( 单片微型计算机) 的另一种定义,与单片机功 能类似,主要完成嵌入式的控制功能。作为计算机技术的一个独特的分支,它将 计算机的基本部件微型化,并与其他外部受控设备一起集成在同一块芯片上。从 应用的领域来看,主要应用于控制领域,特别是一些嵌入式控制系统中,所以又 称为嵌入式控制器或微控制器。 由于微控制器是通用微计算机延伸出来的一个应用分支,所以其基本功能组 成和工作原理与通用微型计算机类似,基本结构如图2 1 所示【1 0 】。 图2 1 微控制器基本机构 从上图可以看出,微控制器由微处理器( c p u ) 、存储器、实时控制部件、 输入输出口四大功能部分通过不同类型的总线连接而成,其中实时控制部件包 含的内容十分广泛,例如定时器计数器、中断控制、看门狗、数模转换器以及 1 2 c 、u a r t 等外部串行总线接口等。按照总线传输信息的不同将总线分为控制 总线( c o n t r o lb u s ,c b ) 、地址总线( a d d r e s sb u s ,a b ) 、数据总线( d a t ab u s ,d b ) 。 从结构组成及控制应用来看,微控制器有以下主要特点: ( 1 ) 为满足控制的需要,微控制器采用面向控制的指令系统,拥有更强的逻辑 控制能力,特别是位处理能力。 第二章高可靠微控制器的架构设计 ( 2 ) 拥有多功能i 0 引脚,采用引脚复用的方法解决了需要信号线和节约实际 引脚数的矛盾。 ( 3 ) 外部扩展能力很强,当内部的功能部件不能满足应用需求时可进行外部功 能扩展。 ( 4 ) 运用灵活,能够有效地完成从简单控制到复杂控制等多种任务。 由此可见,微控制器的出现是控制领域发展历史中一个崭新的里程碑,它使 系统控制更加的简洁化和智能化。 2 1 251 系列微控制器的内部结构 兼容51 系列单片机功能的微控制器,是一款最为普及和广泛应用的8 位m c u 架构,由于其自身具有的一系列优点,自问世以来一直深受业内人士的欢迎,是 少数生命周期较长的微控制器架构之一。在各领域的应用中,其呈现出的不断完 善的功能、不断扩展的存储空间、不断增强的i 0 端口等特点,是由于很多业内 设计人员对其原有的架构和功能进行不断的扩展,开发出基于5 l 内核的新产品 和设计,满足了各个行业和应用研究的需求【1 1 1 。本文设计的这款高可靠微控制器 也是基于5 1 内核的架构,在其原始结构的基础上进行了改进,提高了其在使用 方面的安全性能。所以在设计之初,首先要对5 1 系列微控制器的内部结构做充 分的研究和了解,其经典内部结构如图2 2 所示【12 】: 籼0 q 咱,| 土骷争2 列肘l j m 斗3 j 图2 - 25 1 系列微控制器内部结构 第二章高可靠微控制器的架构设计 从图中可以看出,经典结构包括算术运算单元( a l u ) 、存储器( r a m 和 r o m ) 、并行输入输出口、定时器计数器、堆栈指针寄存器、程序计数器、程 序状态字寄存器、数据指针寄存器、中断系统等功能部件。 2 2 微控制器攻击手段 如前所述,微控制器已经作为中央控制单元非常广泛的被应用于各类控制系 统中,担负着整个系统控制决策的职责,控制着其他外设的工作和状态,地位重 要。随着电子信息技术的迅猛发展,智能卡、掌上电脑和移动电话的不断普及应 用,随之而来的信息安全问题曰益突出。为了获取重要的信息,攻击者采用多种 攻击手段对整个系统进行攻击,其中核心器件微控制器部分成为了重点攻击对 象,所以,为了对保护信息安全,为了确保微控制器乃至整个控制系统的安全运 行,应运而生了许多有关微控制器的安全防护机制,有效地抵御了攻击行为。现 将微控制器的攻击手段和安全防护机制介绍如下。 目前对于微控制器的攻击手段主要分为两大类,一是入侵式攻击或物理攻 击,二是非入侵式攻击【1 3 l 。 入侵式攻击( 物理攻击) 是一种需要破坏芯片的表面封装的攻击方式,有两 种方法可以用来破坏芯片的表面封装:一是只移除芯片外面的塑料材质的封装; 二是使用浓硝酸溶解掉芯片封装,得到芯片的裸片,高温浓硝酸可以在不影响芯 片和连线情况下直接溶解掉芯片裸片的外面封装。除去封装后,借助半导体测试 设备等辅助仪器设备以及相关软件,对芯片进行根据版图反向电路的结构和功能 或者使用探针探测读取微控制器工作中产生的重要信息4 1 。 图2 - 3 芯片反向版图示例 第二章高可靠微控制器的架构设计 以上介绍的攻击手段中,其中一种是通过去除芯片封装后对版图的逐层读出 来实现,反向版图的样图如图2 3 所示,这种方法可以遍历芯片内所有电路结构 1 5 l ,但由于工艺尺寸的不断缩小反向技术的难度在不断增大。另外,由于微控制 器的工作过程属于软硬件协同操作,其工作过程是通过读取程序寄存器( r o m ) 中的指令代码( 软件部分) ,然后控制硬件电路逐条执行来实现其功能,所以在 不知道指令代码所要实现的功能的情况下,只是通过反向操作知道微控制器的内 部电路结构对微控制器的安全性使用不能构成很大的威胁。 第二种入侵式攻击是微探针技术,主要工具是微探针站,如图2 4 所示。 图2 4 微探针站 该技术是针对芯片连线的操作,对连线上的信号进行观察、操控以达到获取重要 信息的攻击目的。对于微控制器来说,微探针技术主要的攻击对象是微控制器中 的存储器,包括程序存储器( r o m ) 和数据存储器( r a m ) 。为了读取存储空 间中的内容,将探针放于存储器的地址总线和数据总线上来捕获信号。多次重复 存储器的读操作,同时使用多个探针( 2 - 4 ) 来观察信号组成完整的信号波形。 对于片外存储空间,可以直接用探针对存储器的总线进行探测,获取相关信息; 但对于片内的存储空间,此部分操作需要与反向电路技术相结合操作,同时还要 具有微控制器内部结构的相关知识,技术难度相对较大。 非入侵式攻击是一种在不对芯片进行物理损坏的前提下,就可以达到攻击目 的的攻击方式。它利用器件工作时产生的功耗、电磁辐射等获取关键信息来分析, 获得器件工作过程中产生的关键数据。非入侵式攻击读取技术的主要特点,是不 需要对元器件进行任何初始化的准备,可以用金属导线直接连到芯片引脚上,或 第二章高可靠微控制器的架构设计 是将芯片放在测试设备探头下进行信息采集和处理。这种信息读取方法不会对芯 片的工作造成影响,或留下任何的读取痕迹。 侧信道分析,也叫旁路分析,是非破坏性手段读取芯片信息的主要技术。它 无需用到一些交互的设备,也无需对芯片进行暴力破解,只需要观察芯片的功耗 信息或者电磁辐射能量,就可以采集和分析得到芯片内部的数据传输信息。目前 最常见的旁路攻击分别是:功耗分析技术。 功耗分析是一种利用芯片的功耗信息进行有效信息提取的攻击手段,是目前 研究最多的一种旁路攻击技术。功耗分析主要分为两种:简单功耗分析( s p a s i m p l ep o w e ra n a l y s i s ) 和差分功耗分析( d p a - - d i f f e r e n c ep o w e ra n a l y s i s ) 。 s p a 是一种测量和观察功率消耗值的技术,由于微控制器在执行不同指令 时,各个部件时所消耗功率是不同的,这些功耗特征在被放大到较高倍数的情况 下可以观察出它们之间的区别【16 | ,分析者可以通过观察这些功耗特征,了解到控 制器的执行指令,特别是一些频繁调用某些模块的指令,如运算指令等。如果微 控制器的执行指令被攻击者通过功耗分析的手段分析出来,攻击者就可以知道微 控制器的功能,进而知道整个系统所要实现的功能,对系统的安全性构成威胁。 使用s p a 技术观察的功耗特征如图2 - 5 所示。 薹 _ _ 篓 3 o t m e ( m s 图2 5 使用s p a 技术观察的功耗特征 d p a 是种更有效的分析技术,主要通过统计分析和差分纠错技术从采集的功 耗信息中抽取有用信息。这种使用统计方法来鉴别功耗的微小区别,可以比较精 准的恢复出电路工作过程中隐藏有价值信息。从理论上讲,d p a 分析相比于s p a 分析更加有效,更难防御。 d p a 分析需要的条件: ( 1 ) 具备一定的统计学概率知识,较好的功耗测试环境和技能,能够比较精 确的定量测量功耗,并通过处理和分析得到差分功耗曲线。 ( 2 ) 明确要分析的对象,并且了解大致的内部体系结构和工作原理。 9 第二章高可靠微控制器的架构设计 ( 3 ) 需要采集大量的功耗的数据信息。分析者的方法是要进行大量的数据运 算操作,并记录每一次操作的功耗曲线,然后根据某种推断方法把这些功耗曲线 进行分类。最后运用概率统计的方法证实这个推断正确与否。若推断方法正确, 则曲线出现尖峰,如图2 - 6 所示【1 7 】。 2 3 安全防护措施 t i m e p s ) 图2 - 6 使用d p a 技术观察的功耗特征 针对于以上介绍微控制器的主要攻击手段,在高可靠微控制器的设计中采用 了以下的安全防护措施,保证了微控制器运行数据的安全性。 由于高可靠微控制器的设计基于系统级封装,即要将两片3 2 k 程序存储器 r o m 的裸片和一片包括微处理器c p u 、数据存储器r a m 、控制模块和d e s 算法 等模块的裸片采用堆叠立体式系统封装。与并n c p u 集成在同一个芯片中的程序存 储器相对比,这样的设计和封装就会将程序存储器的总线和控制信号线暴露出 来,若对芯片进行入侵式攻击,很容易就会定位到这地址总线和数据总线的位置, 就可以使用微探针技术对r o m 中执行程序进行读取或篡改。从微控制器的整个 架构和其中模块的功能我们知道,微控制器程序存储器r o m 中的指令代表着微 控制器所要实现的功能,是整个控制系统的核心,攻击者知道了指令的含义也就 相当于了解了整个系统的功能,由此可见,微控制器r o m 中内容非常重要,应 采取重点防护措施,保证其安全性。所以,为了防止攻击者使用入侵式攻击中的 微探针技术对微控制器r o m 中的数据进行探测,设计中采用d e s 算法将r o m 中 1 0 第二章高可靠微控制器的架构设计 的内容进行加密,即r o m 中存储的数据是加密后的程序,即使攻击者用微探针 技术读取到了里面的内容,在不知道密钥的情况下,也很难将程序破解,得到原 始程序,了解系统功能【1 8 】【1 9 】。 由上文中入侵式攻击手段的介绍可知,通过电路反向技术和微探针技术的结 合,在一些情况下,可以探测到与c p u 集成在一片裸片上的数据存储器r a m 的 地址总线和数据总线的位置。为了防止在确定了总线位置后,使用微探针技术读 出数据,在微控制器的原始结构中加入了总线控制模块。通过这个模块的加入, 在保证微控制器正常运行的基础上,将由c p u 送出的需要存储到数据存储器 r a m 中通用存储空间的数据值进行变换,再将变换后的值存储至i j r a m 的通用存 储空间中,这样,无论使用微探针技术读出数据或是使用f i b 技术拉出总线读数, 所读到的数据与原始数据都是不一样的,实现了对c p u 运行过程中存储到r a m 中临时数据的存储安全保护【2 0 】。 为了抵御使用非入侵式攻击手段对高可靠微控制器中的重要功能模块和算 法模块的攻击,加入了伪随机数发生器进行功耗的干扰。由于伪随机数发生器在 工作的过程中也要产生相应的功耗信息,而且这种信息的随机性很大,所以从整 个芯片功率的角度分析,芯片中其他模块工作的同时,伪随机数发生器将不断的 产生冗余的功耗信息,减少了非入侵式攻击过程中功率的采样值与微控制器执行 指令的匹配度,加大了攻击者的攻击难度。 2 4 高可靠微控制器的架构设计 如前文中提到的,这款高可靠微控制器的应用背景是系统级封装,即将两片 3 2 k ( 位宽1 6 b i t ) 的程序存储器r o m 和一个含有中央控制单元c p u 、数据存储 器r a m 、控制模块和d e s 算法等模块的裸片采用堆叠立体式系统封装。为了提 高数据的安全性,微控制器的指令需要进行加密处理,处理后的指令相比于原指 令会加入很多起到安全作用的冗余信息,这样,加密后的指令需要占用的指令存 储空间就要比原存储空间大。因此,在本设计中,改进了通用结构中的片内存储 空间的大小,将这款高可靠微控制器的片内存储空间扩展到6 4 k ,满足了加密指 令的存储需求。将这6 4 k 的存储器分为两片3 2 k 存储器级联是为了方便c p u 的 取指令操作。微控制器部分的封装内部结构示意图如图2 7 所示。 第二章高可靠微控制器的架构设计 图2 7 高可靠微控制器封装内部结构示意图 c p u 与两片存储器之间的数据总线和地址总线连接方式如图2 8 所示。其中, d o 至d 3 l 表示数据总线,a 0 至a 1 3 表示地址总线,c s 为存储器的片选信号。 图2 8 三个裸片之问数据和地址总线的连接图 上两幅图中的r o m 虽然没有与c p u 集成在一个芯片上,但其实现的功能是 作为这款高可靠微控制器片内程序存储器,其功能区别于微控制器的外部扩展存 储空间。 从微控制器的工作过程来说明整个高可靠微控制器的架构设计,如图2 - 9 所 示。 第二章高可靠微控制器的架构设计 图2 - 9 高可靠微控制器的架构 由经典微控制器内部架构可知,微控制器从总体功能模块上可以分成三个部 分:中央处理单元c p u 、数据存储器r a m 和程序存储器r o m 。 中央处理单元c p u 包括译码器d e c o d e r 、程序计数器p c 、算术运算单元、中 断、定时器计数器等微控制器通用的功能模块。 高可靠微控制器的程序存储器r o m 中存储的是经d e s 算法加密过的执行指 令,d e s 算法的密文( 加密处理后的信息形式) 位数为6 4 b i t ,所以存储到r o m 中的加密指令最少需要占用6 4 b i t 的存储空间。本设计使用的程序存储器r o m 为两片位宽为1 6 b i t 的存储器级联,所以每个地址对应的存储空间为3 2 b i t ,若要 用来存储加密后的指令,需要占用两个连续地址对应的存储单元。所以在执行加 密指令时,c p u 要将加密后的操作码和操作数全部取出,即将连续两个地址对 应的存储内容取出。设计中改变了原始微控制器结构中c p u 连续取指令的操作 方法,配合存储器结构和加密指令形式,采用了新的取指令方式,即将程序计数 器p c 的操作变为:执行非跳转指令时,每次取指后,p c 顺序加2 ;执行跳转指 令时,p c 中的值变为指令代码中给出的跳转地址的2 倍。 接口控制l 模块实现的功能为,根据p c 给出的程序起始地址,控制程序存 储器r o m 连续送出两个地址单元的内容,即送出一条完整的加密指令。 接口控制2 模块用于在接收到一条完整的加密指令后,将这两个连续地址空 间的存储内容组合成标准的d e s 算法密文的形式,再送入到d e s 算法解密模块 d ed e s 完成指令的解密。 第二章高可靠微控制器的架构设计 算法解密模块d ed e s 负责将密文解密,并从明文中提炼出标准指令的操作 码和操作数,再送入到c p u 中的译码器模块d e c o d e r ,产生相应的控制信号,控 制微控制器的执行操作。 总线控制器用于完成,在数据存储器r a m 的写入和读出的过程中变换数据 形式,使数据总线上传输的数据始终是经过变换后的数据值。写r a m 时,数据 首先通过总线控制器变换,再将变换后的值存入r a m ;读r a m 时,取出变换 后的数据送入到总线控制器中,经过总线控制器的反变换,再将这些数据送入到 c p u 中进行运算或操作。 使用高速时钟控制的伪随机数发生模块r n g 则用于产生冗余的随机的功耗 信息,对微控制器的非入侵式攻击进行干扰。 设计中的r a m 和r o m 模块都是使用的i p t 2 。在对r o m 进行写入操作的时候, 要先将汇编指令文件经过k e i l 软件编译,转换为机器码文件,再用软件或硬件方 法将机器码使用d e s 算法进行片外加密,经过算法加密后的二进制文件再转换成 标准文件形式,烧录至i j r o m 中。 第三章微控制器的前端设计 第三章微控制器的前端设计 3 1 微控制器的特点 本文所设计的高可靠微控制器对5 1 系列微控制器的原始结构进行了调整和 改进,提高了微控制器运行的安全可靠性。这款高可靠微控制器有以下特点: 设计中的总线采用了哈佛双总线结构,两级指令流水,第一级流水完成指令 操作码被取出并且被译码,第二级流水完成执行译码后的指令,并将执行结果写 入到寄存器中【2 2 1 。完成上述操作的过程中,我们使用一系列的寄存器进行设计, 这些寄存器用来将某些译码器输出的控制信号延迟一个时钟周期执行。这是设计 流水线的一个重要思想,因为在执行第一级流水时译码器会将所有控制信号给 出,所以要将涉及到第二级流水操作的相关信号相对于第一级流水延迟一个周期 使用( 如执行结果写入寄存器的控制信号) ,这样才能保证流水线正常的工作。 采用了新型的总线控制形式。根据译码器输出的不同指令译码得到的控制信 号,控制不同模块可以在不同时间对总线进行控制。上述操作通过多选器来完成, 多选器在每个总线的开始处或模块的输入端,当有数据进入到总线中或模块时, 首先要经过多选器,由多选器来决定哪组信号通过总线来传输以及输入到哪些模 块进行操作。这样的设计可以在保证功能实现的前提下减少控制信号的使用,更 有效的调度总线,避免了不必要的竞争冒险。 3 2 微控制器存储结构 存储器是微控制器基本结构中重要组成部分之一。按照功能,微控制器的存 储空间可以分为两大类:程序存储器和数据存储器。为了加快c p u 访问存储器 的速度,5 l 系列微控制器相对于之前版本的微控制器做了相应的改进,将程序 存储空间和数据存储空间相互分离。本设计中采用哈佛双总线结构,即在分离的 程序存储器和数据存储器基础上,使这两种存储器拥有自己独立的地址总线和数 据总线,这样c p u 在工作的过程中可以同时与程序存储器和数据存储器交换数 据,极大地提高了微控制器的运行速度。 在微控制器在工作的过程中,通过c p u 调用存储在程序存储器中的程序命 令一条条顺序执行,所以程序存储器在微控制器中的作用就是用来存放要执行的 第三章微控制器的前端设计 程序或表格,分为片内程序存储和片外程序存储。由于这款微控制器的程序存储 器中所存程序都是经过加密的指令,需要比没有加密的指令占用更多的存储空 间,所以将这款微控制器的内外两部分的r o m 都设计成为6 4 k ,且独立编址, 由e a 信号控制内外存储空间的切换,如图3 1 所示。 蝴 0 0 0 0 h 栅 0 0 0 0 h 图3 1 程序存储空间 数据存储器r a m 是用来存储微控制器工作过程中产生的临时数据,既可读 取也可以写入,同样分为片内数据存储和片外数据存储,这两部分也是独立编址 的存储空间。其中片内数据存储器的大小为1 2 8 b ,分为片内通用数据存储器 r a m 和特殊功能寄存器s f r ,片外数据存储器的大小为6 4 k b ,这两部分的编 址如图3 2 所示。 终多 i , r a m n n n f 1 t - 一 图3 2 数据存储空间 第三章微控制器的前端设计 由上文可知,特殊功能寄存器s f r 在片内的数据存储空间中,是一些专用的 寄存器,用于控制、管理算术运算过程、并行口工作、定时器计数器以及中断 系统等功能模块,这些寄存器非连续的分布于8 0 h - f f h 地址空间中。这些特殊 功能寄存器的名称和地址如表3 1 所示,其功能在各模块的r t l 设计中会详细 介绍。 表3 1 特殊功能寄存器的名称和地址 b a c c p s w l p p 3 l e p 2 s c o ns b u f p 1 t c o nt m o dt 1 0t l lt h 0t h l p 0s pd p ld p hp c o n 3 3 微控制器指令系统 高可靠微控制器兼容5 l 系列单片机的指令系统,属于c i s c 系列,具有指令 多、操作复杂等的特点,是一种高效的指令系统,共1 1 1 条指令。这些指令按照 功能分类可分为四类:数据传送指令3 0 条、逻辑运算指令3 5 条、算术运算指令 2 4 条、转移指令2 2 条【2 3 1 。其指令列表如表3 2 中所示。 表3 - 2 指令集( 1 1 1 条) 助记符说明字节机器码 1 数据传送指令( 3 0 条) m o va ,r n 寄存器送a 1e 8 e f m o va ,d a t a 直接字节送a 2e 5 m o va , r i间接r a m 送a1e 6 - - e 7 y o va ,# d a t a立接数送a27 4 m 孤孙m 孔m i 乏m 孔m 孔 ,e;a b b 引 a 9 9 8 8 胁 锄 鼢啪 蛐 撇 砒 咖咖啪姗 第三章微控制器的前端设计 m o vr n ,a a 送寄存器1f 8 - - f f m o vr n ,d a t a 直接数送寄存器 2a 8 - - a f m o vr n ,# d a t a 立即数送寄存器 27 8 - - 7 f m o vd a t a ,a a 送直接字节 2f 5 m o vd a t a ,r n 寄存器送直接字节 28 8 8 f m o vd a t a ,d a t a 直接字节送直接字节 38 5 m o vd a t a , r i 间接r n 送直接字节 2 8 6 :8 7 m o vd a t a ,# d a t a 立即数送直接字节 37 5 m o v r i ,aa 送间接r n 1 f 6 :f 7 m o v r i ,d a t a直接字节送间接r n 1 a 6 :a 7 m o v r i ,# d a t a立即数送间接r n 2 7 6 :7 7 m o vd p t r ,# d a t a l 6 1 6 位常数送数据指针 39 0 m o vc ,b i t 直接位送进位位 2a 2 m o vb i t ,c 进位位送直接位 29 2 m o v ca , a + d p t r a + d p t r 寻址程序存贮字节送a 39 3 m o v ca , a + p c a + p c 寻址程序存贮字节送a 18 3 m o v xa , r i外部数据送a ( 8 位地址)1 e 2 ;e 3 m o v xa , d p t r外部数据送a ( 1 6 位地址)1e 0 m o v x r i ,aa 送外部数据( 8 位地址) 1 f 2 :f 3 m o v x d p t r ,aa 送外部数据( 1 6 位地址) 1f 0 p u s hd a t a直接字节进栈道,s p 加l2c o p o pd a t a 直接字节出栈,s p 减1 2d o x c ha ,r n寄存器与a 交换1c 8 c f x c ha ,d a t a 直接字节与a 交换2c 5 x c ha , r i 间接r n 与a 交换 1 c 6 :c 7 x c h da , r i 间接r n 与a 低半字节交换 1 d 6 :d 7 2 逻辑运算指令( 3 5 条) a n la ,r n 寄存器与到a l5 8 5 f a n la ,d a t a 直接字节与到a 25 5 a n la , r i 间接r a m 与到a 1 5 6 :5 7 a n la ,# d a t a 立即数与到a 25 4 a n ld a t a ,aa 与到直接字节25 2 a n ld a t a ,# d a t a 立即数与到直接字节 35 3 1 8 第三章微控制器的前端设计 a n lc ,b i t 直接位与到进位位 28 2 a n lc ,b i t 直接位的反码与到进位位 2b o o r la ,r n 寄存器或到a 1 4 8 4 f o r la ,d a t a 直接字节或到a 24 5 o r la , r i 间接r a m 或到a 1 4 6 :4 7 o r la ,# d a t a 立即数或到a 24 4 o r ld a t a ,aa 或到直接字节24 2 o r ld a t a ,# d a t a 立即数或到直接字节 34 3 o r lc ,b i t 直接位或到进位位 27 2 o r lc ,b i t直接位的反码或到进位位 2 a o x r la ,r n 寄存器异或到a l6 8 6 f x r la ,d a t a 直接字节异或到a 26 5 x r la , r i 间接r a m 异或到a 1 6 6 :6 7 x r la ,# d a t a 立即数异或到a 26 4 x r ld a t a a a 异或到直接字节 2 6 2 x r ld a t a ,# d a t a 立即数异或到直接字节 36 3 s e t bc 进位位置1 1d 3 s e t bb i t 直接位置l 2d 2 c l raa 清01e 4 c l rc 进位位清0 1c 3 c l rb i t 直接位清0 2c 2 c p la a 求反码 1f 4 c p lc进位位取反 1b 3 c p lb i t 直接位取反 2b 2 r la a 循环左移一位 l2 3 r l ca a 带进位左移一位 13 3 r ra a 右移一位 10 3 r r ca a 带进位右移一位 11 3 s w a pa a 半字节交换 1 c 4 3 算术运算指令( 2 4 条) a d da ,r n寄存器加到a 12 8 2 f a d da ,d a t a直接字节加到a 22 5 a d da , r i 间接r a m 加到a 1 2 6 :2 7 1 9 第三章微控制器的前端设计 a d da ,# d a t a 立即数加到a 22 4 a d d ca ,r

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论