




已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于Flash芯片的加密存储技术研究 摘 要 目前,嵌入式计算机系统已经在人类生产活动各个领域发挥着越来越重要的作用,其应用功能的实现主要依靠固化在存储器中程序代码及其相关数据,而这些存储代码和相关运行数据存储器主要是NOR型Flash存储器。Flash存储器有着功耗低、数据容量大、可整片擦除和分扇区擦除等优点,但其中所存储程序代码容易被读取出来,非法拷贝仿制。 作为人类商品社会中的一种特殊的产品,程序代码生产难度大却复制容易;生产成本高但复制费用低。由此造成世界范围内这种非法复制现象泛滥,严重的侵犯了版权所有人的知识产权。防止这种知识偷窃现象的方法,除了法律手段以外,对程序代码和运行数据进行加密处理是非常必要的。 在本文提出了一种加密技术,可以有效的防范各种针对嵌入式计算机的软件程序的恶意窃取。整个加密体系包括两个部分,PC机上运行的预加密软件和安全芯片,它们使用同样的密钥分别对该程序加密和解密。先将嵌入式计算机运行所需程序用加密软件加密处理,再固化到Flash芯片上;嵌入式计算机读取指令和数据时,由安全芯片实时解密,还原为正确的程序代码,送给嵌入式系统的CPU执行;当嵌入式计算机需要向Flash存储器写入数据时,数据先送给安全芯片进行加密,然后再送给Flash存储器。在Flash存储器上存储的是经加密处理过后的数据,包括加密软件处理过的程序数据和经安全芯片加密后实时写入的数据,如果没有安全芯片以及与之配套的密钥,即便Flash中的数据被非法读取出来,也是没有任何意义的混乱数据。 安全芯片将Flash存储器与嵌入式计算机其它部件隔离,如同加上一把牢靠的锁,密钥便是这把开锁的钥匙。如此设计达到了加密技术与密钥分离的目的,使同一种嵌入式计算机产品做到“一机一密”,开发厂商便可以将密钥作为licence进行授权,颁发给合法用户使用,为知识产权保护打下技术基础。关键词: Flash 嵌入式系统 “谜”密码机 RC5 RC6 DES S盒子 Verilog HDL ABSTRACT At present, the embedded computer system has been playing a more and more important role in every field of humankinds production activities. The realization of its function largely depend on programme code solidified in memory and related data. As a special product of mankind commodity society, programme code is difficult-produced and easy-duplicated; high-cost in production and low expense in replication. As a result, it leads to illegal replication on a world scale, which seriously infringes on the intellectual property right of copyright owners. In addition to law means, to safeguard against the intellectual stolen phenomena, it is quite necessary to carry out encrypting processes for the programme code and operating data. In this thesis, the author put forward an encryption technology, which can effectively prevent against various kinds of malicious steals towards the software of embedded computer. The encryption system consists of two parts: one is encryption software operating on PC; the other is encryption chip. Both of them can encrypt and decrypt the programme by with the similar cipher. Firstly, encrypt the programme of embedded computer with encryption software, and then solidify on Flash chip in operation. When embedded computer reads the command and data, which could be decrypted by encryption software to revivify the right programme code and resent to the CPU of embedded computer. When embedded computer needs to input data to Flash memory, the data could be encrypted by encryption chip and then resent to Flash memory. The goal of separating encryption technology from cipher could be reached by such design. Attaining “one cipher for one computer” when using the embedded computer, in this way, the developer could authorize the cipher a license and distribute to the legal users, which would lay a good technological foundation for future Intellectual Property right. Key words: Flash,Embed system,ENIGMA,RC5,RC6,DES,S-Box,Verilog HDL目 录绪 论 1第一章 嵌入式微计算机的存储系统简介 1.1 易失型存储器与非易失型存储器 5 1.2 NOR型与NAND型Flash存储器 6 1.3 M29系列NOR型Flash存储器介绍 6 1.4 NOR型Flash存储器的CFI命令集 8 1.5 本章小结 10第二章 加密技术及加密算法简介 2.1 加密技术数学模型介绍 11 2.2 古典加密算法简介 12 2.2.1 单表代换加密 12 2.2.2 多表代换加密 14 2.2.3“谜”密码机 15 2.2.4 置换加密 16 2.3 分组加密技术简介 18 2.3.1 DES加密技术 18 2.3.2 RC5加密技术 20 2.3.3 RC6加密技术 21 2.4 本章小结 23第三章 Flash芯片加密存储方案总体设计 3.1 软件形式的明文文本介绍 24 3.2 加密体系总体方案设计 24 3.3 预加密软件设计概述 25 3.4 安全芯片设计概述 26 3.4.1 安全芯片管脚说明 27 3.4.2 安全内部模块概述 29 3.4.2.1命令甄别模块 30 3.4.2.2密码机模块 32 3.4.2.3加密/解密模块 33 3.4.2.4地址置换模块 35 3.4.2.5 地址计数模块 35 3.4.2.2 内部控制模块 36 3.5 加密方案密钥设计概述 38 3.6 本章小结 38第四章 安全芯片详细设计 4.1 集成电路设计简述 39 4.2 安全芯片总体设计 40 4.3 命令甄别模块设计 41 4.3.1 算法设计与实现 41 4.3.2 信号输入与输出 45 4.4 密码机模块设计 45 4.4.1 算法设计与实现 46 4.4.1.1 索引生成器设计与实现47 4.4.1.2 转轮映射器设计与实现49 4.4.1.3 待选密码数组设计与实现53 4.4.2 密钥组成设计 54 4.4.3 信号输入与输出 54 4.4.4 伪随机密钥流分析 544.5 加密/解密模块设计58 4.5.1 8位数据宽度模式 58 4.5.1.1 算法设计与实现58 4.5.1.2 信号输入与输出59 4.5.2 16位数据宽度模式 59 4.5.2.1 算法设计与实现 60 4.5.2.2 信号输入与输出 61 4.5.3 组合密钥生成器的设计 614.6 地址置换模块设计 62 4.6.1 算法设计与实现 62 4.6.2 信号输入与输出 64 4.7 地址计数模块设计 65 4.7.1 算法设计与实现 65 4.7.2 信号输入与输出 67 4.8 密钥体系设计 67 4.8.1 地址置换模块密钥设计 67 4.8.2 密码机模块密钥设计68 4.8.3 加密/解密模块密钥设计 68 4.8.4 安全芯片密钥整体构成 68 4.9 BYTE#管脚功能修正 69 4.10 安全芯片兼容性设计 70 4.10.1 与非易失性存储器件FRAM的兼容性设计 70 4.10.2 与RAM等易失性存储器件的兼容性设计 70 4.11 本章小结 71第五章 设计结论与前景展望 72 附 表1 75附 图2 77附 表3 80参考文献 85致 谢 88 绪论 进入新的世纪,嵌入式微计算机 文中提及名称“嵌入式微计算机”与“嵌入式设备”、“嵌入式系统”等词语同等含义已经越来越多的应用到人们的生活当中,大到航天设备火星登陆车,小到日常生活里家电遥控器,处处都有嵌入式微型计算机的身影。嵌入式微计算机作为一种功能专一的设备,以计算机硬件技术为基础,应用功能性软件程序,软硬件相结合,智能化自动化,它具有功能专一性强、硬件成本低廉、体积小、结构简单、功耗低等突出优点,已被广泛应用于各个行业。 随着计算机硬件制造技术的发展,特别是芯片技术的不断进步,嵌入式应用的硬件核心CPU的运算速度取得了飞速发展,功耗进一步降低。以前需要功能强大的通用计算机才能完成的智能自动化工作,现在已经由嵌入式微计算机替代,但随着功能需求的增加,软件代码量的剧增,对软件程序的存储也提出了更为苛刻的要求。研究背景与意义 嵌入式微计算机的存储器主流芯片分为易失性存储器和非易失性存储器。其中SRAM和DRAM属于易失性存储器,它的最大特点是可以随即并行读取写入数据,但掉电后数据将丢失,在嵌入式微型计算机中,主要用于保存运行中的动态数据,在一些追求运行速度的嵌入式应用中,也保存当前运行中程序软件,但其硬件实现代价昂贵,主要用于高端嵌入式微计算机产品。 非易失性存储器的在掉电以后仍然能保存其中的数据,不会因为断电关机而丢失。最早出现的是ROM只读存储器,用于保存运行程序,但由于其所存储数据不可擦写和修改,现在仅用于保存固化的无需修改的程序,比如大多数PC机的BIOS程序存储器。随后又出现EPROM紫外线可擦除存储器和E2PROM电可擦除存储器,但都因为数据擦除方式苛刻而并非理想,使用不方便,不适合一些需要经常在线更新程序和运行数据的场合。Flash存储器作为近几年出现的新型非易失性存储器件,具有以往EPROM结构简单、密度高和电可擦除等优点,实现了高密度、低成本和高可靠性美妙结合,解决了器件尺寸缩小和高集成度的问题,因而广泛应用于嵌入式微计算机的软件程序和数据的保存。 Flash存储器是一种基于浮栅技术的非易失半导体存储器,根据擦写操作和内部存储阵列编排的不同,可以分为两类:NAND 型和 NOR 型。 NAND型Flash 存储器将多个存储单元串连后接到源线和位线来减小单个单元占用的接触孔和源线的面积,是集成密度最高的阵列结构,数据容量大,采用串行接口,仅可分区读写数据,主要用于数据存储,存储音乐、照片、影像等文件的Flash卡以及U盘等均使用NAND型Flash存储器;而并行排列的NOR 型Flash 存储器则具有更高的访问速度,它采用8/16位的并行接口,可以随机读取数据,主要用做可执行程序的存储媒质,各种嵌入式设备的软件程序的存储大多使用NOR型Flash存储器下文所提及的Flash,除非特指,均表示NOR型Flash存储器。 嵌入式系统中,Flash在用于保存软件程序时,与传统的ROM和EPROM相比,CPU可以控制它进行在线编程和擦除,这一优点使得Flash十分适合嵌入式微计算机的设计和开发。它的另一个优点是系统升级方便,设备供应商甚至用户自己都可以从网上下载最新版本的程序代码并载入Flash存储器中来实现系统升级。此外,由于程序可以直接在Flash中运行,省去了引导加载步骤,因而减少了所需高成本RAM的容量,节省了存储空间和功耗。 随着嵌入式微计算机的功能越来越复杂,嵌入式软件程序作为这些功能实现的载体,程序代码量随之剧增,其设计困难也越来越大,设计者为此付出的时间和物质代价远超过硬件部分,嵌入式软件已经越来越成为嵌入式微计算机产品的价值所在。 嵌入式软件程序凝聚着设计者的大量智慧与汗水,它作为人类商品社会中的一种特殊的产品,是一种知识产权形式,有着生产难度大却容易复制的特点,生产成本高但复制费用极低。而Flash存储器作为当今嵌入式设备中的主流存储器件,其致命的缺点在于数据可以被轻易读取出来,很少有加密保护功能。某些Flash产品提供唯一的产品识别号码和一次写入存储单元OTPone-time-programmable,可供口令式被动加密,这类产品包括Inter公司的28F系列型号Flash产品,以及AMD公司最新推出的通信用加密Flash芯片Am29PDL640G等,但也无法抵抗静态反汇编的解密技术。Flash这种“天生”的弱点经常被不法分子利用,使其成为产品被抄袭、功能被模仿的“重灾区”。 世界范围内的非法复制现象泛滥,各个国家和地区的政府纷纷出台了各种保护知识产权的法律法规,并且针对各种盗版仿制犯罪现象予以打击,也取得如何防止自己的产品被仿制和盗版,知识产权保护已经成为一个重要的问题摆在了嵌入式微计算机设计者的桌面上。 对嵌入式微计算机进行加密,提高Flash存储器被破解的难度和技术门槛,不失为一种事前防范的好方法。虽然这样会降低嵌入式微计算机的运行性能,但随着硬件技术和软件设计技术的进步,少量降低性能相对于系统的安全与稳定来说是可以完全可以接受的。硬件部分由于电路的直观性,较容易被抄板仿制,很难做到保密,因此嵌入式微计算机的加密主要是针对嵌入式软件。国内外研究现状 Flash芯片中存储的数据,无论是操作系统软件程序还是功能应用程序,无论是无组织的写入数据还是文件系统管理的由名称索引的数据,均可以被透明的读取出来,很容易被利用、分析修改后变成他人的仿制产品。如此开放式的存储器件,虽然可以方便数据写入和读出,提高数据的有效吞吐率,但也给嵌入式软件的加密提出了挑战。 当前针对Flash中数据进行加密的方法主要有两种,一种是将Flash中所存储的数据进行混乱加密,一般以字节为单位,对字节中数据的各个比特位进行交换,然后在Flash芯片数据总线管脚与CPU的数据总线连接上再进行恢复性的交换,这种软硬结合的保密方法能够使Flash中存储的数据在被非法读出后无法识别,但解密者如果仔细研究电路硬件布线方式,就很容易观察出其中的交换规律,只要在硬件上仿照布线,便可破解这种加密方式。它多用于代码量比较小的场合,一般数据宽度为8位或16位。 第二种是使用Flash提供的器件唯一识别号进行加密,如果该型号Flash没有提供这种识别号,则自行写入一个唯一识别号,藏在Flash中的某个秘密地址中,嵌入式软件在运行时会定期或不定期读取这个识别号,经过加密算法处理后,和嵌入式软件自身所带的某个秘密数据比较,以此判断其是否合法,若不相同则停机。这种加密方式并不是针对程序指令本身,而是类似于PC机软件中常见的注册码加密,多用于代码量较大的嵌入式应用中,一般数据宽度为16位或32位。Flash芯片中既包括操作系统平台程序,又有应用程序,常常以文件形式组织存放,代码量大,数据结构混乱,这就为识别码和加密算法的隐藏提供了可能。 但静态反汇编的方法可以破解这种加密方式,虽然反汇编分析的过程是相当困难的,并非易事,但只要找到调用合法性判断的子程序入口,然后顺着加密子程序的线索进行汇编语句分析,搞清楚其算法后,便可破译成功。本文的主要研究内容 针对当前嵌入式微计算机软件保护困难的局面,本文提出了一个体系化的Flash加密方案。模仿自然语言加密体系,从源头上研究汇编语言的语言学统计特征,再结合嵌入式微计算机的应用特点,有的放矢的设计加密算法和密钥体系,牢牢锁住Flash存储器中的嵌入式软件和数据,使得知识窃贼无法得逞。 加密体系由两部分组成,PC机上运行的预加密软件和一块嵌入电路板中的安全芯片。硬件方面,需要在嵌入式系统硬件电路的总线上加入安全芯片,当然,若以IP核的形式融入整体设计中,则硬件电路也无需任何修改;软件方面,嵌入式软件和所有数据无需任何修改。整个加密体系在功能上独立于需要加密的嵌入式系统,可以第三方提供的形式独立进行加密,在功能上无需改动嵌入式微计算机的原有设计 在用于手持式设备等功耗要求苛刻的嵌入式设备时,可能要考虑修改原有设计的电源模块。 预加密软件负责对需要写入Flash存储器的嵌入式软件进行加密,这些嵌入式软件的文件格式一般是以bin为后缀名的二进制运行代码文件,也可以是记录文件,包括Inter的hex格式的文件和Motorola的s格式文件。将这些软件看作明文数据,预加密软件使用密钥对其加密,生成密文形式的数据文件,整个加密处理过程,除内容形式变成密文外,不改变嵌入式软件其它任何信息。 Flash中的数据处于加密的情况下,安全芯片支持对其进行读取和写入,这使得嵌入式系统安全性大为增强。安全芯片处于CPU和Flash之间的总线上,它控制着Flash芯片的数据、地址和控制总线,完全将Flash芯片和嵌入式微计算机其它部分隔离,Flash与其它部件进行的通信都需要安全芯片的控制与管理,使得Flash中存储的数据永远都是密文。当CPU读取Flash中的指令与数据时,安全芯片根据CPU的控制信号,读取Flash中的密文,使用与加密软件相同的密钥进行解密操作,生成明文后送给CPU;当需要写入Flash时,安全芯片使用密钥对该数据加密,再写入Flash;当CPU需要针对Flash进行器件命令操作,进行擦除芯片或者写入数据时,安全芯片首先判断该访问是否为命令操作访问,甄别结果为命令,则取消加密操作,使指令可以透明的传达给Flash,完成相应的操作。从而达到隔离Flash的目的,透明地存在与两者之间,使嵌入式系统无法感知安全芯片的存在。 安全芯片中的加密解密算法的设计结合当前的密码技术和汇编指令的统计特性,参照嵌入式微计算机的应用环境,采用多种加密算法混合使用的方案,取长补短,达到设计目标。其中包括“谜”密码机改进算法,它将生成一个长周期伪随即数序列,防止针对汇编指令的频率解密方案;使用置换加密算法混淆指令存储地址,加大静态反汇编跟踪的难度;使用RC6改进算法,但由于其中的乘法运算不适合芯片设计,所以修改为查询非线性表的方式,提高效率,达到乘法操作非线性加密的目的;结合汇编语言的运行特征,设计了智能判断算法,防止嵌入式系统上电后从CPU端恶意读取Flash中的密文数据;根据Flash芯片的指令系统,设计甄别算法,判断CPU当前操作是否为Flash芯片命令模式,使CPU可以按照正常模式完成针对Flash芯片器件的各种操作。采用多种加密方式相结合的形式,达到防止现存各种破解方式的目的,当然,必须承认,没有破解不了的算法,但假如破解者为之付出的代价增大到得不偿失的程度,我们便可以认为这是一种安全有效的加密算法。第一章 嵌入式微计算机存储系统简介 嵌入式微计算机运行所需存储空间一般分为两部分,一部分用来存储动态运行的程序进程和数据,需要不时的写入新数据,系统断电后其中的数据不能保存,它类似于PC机中的内存的概念;另一部分存储嵌入式软件和初始状态数据,大多数情况下只需要读取其中的数据,少数情况下写入新数据,它具有断电保持的能力,相当于PC机中的磁盘等外存设备1。 保存动态运行数据的存储器一般为静态随机存储器SRAM,它具有读写速度快,可随机访问等优点,但所保存的数据会随着电源的切断而丢失;保存嵌入式软件程序与初始数据的存储器,现在大多选用Flash器件完成,它具有读取速度快、可在线擦除写入数据、可随机访问等特点,很适合作为嵌入式软件程序的存储介质2。1.1 易失型存储器与非易失型存储器 嵌入式系统中的存储器根据断电后能否保留数据,可分为易失性存储器Volatile Semiconductor Memory和非易失性存储器Non-Volatile Semiconductor Memory。易失性存储器主要是静态随机存储器RAM,它在断电后,将丢失所保存的数据。 RAM可分为静态随机存储器SRAM和需要定时刷新才可保存数据的DRAM。SRAM在写入数据后,无需保持刷新电路辅助便可保存数据,接口电路简单,它的缺点是存储容量较小,价格昂贵,一般用在数据存储量不大的嵌入式系统中。DRAM需要定时刷新才可以保存数据,电路接口复杂,但可存储容量较大,价格相对较低廉,主要用于PC机的内存电路中3。 非易失性半导体存储器件包括ROM、PROM、EPROM、E2PROM、Flash和FRAM(铁电存储器)。其中,Flash存储器是二十世纪八十年代末逐渐发展起来的一种新型非挥发性存储器件,它结合了以往EPROM结构简单、密度高和E2PROM 的系统电可擦除性等优点,实现了高密度、低成本和高可靠性的完美结合。但在对Flash器件进行擦除和写入操作时,需要用复杂的控制命令完成,很大程度上限制了写入速度,不能象RAM那样在一个读写周期内方便的随机写入数据,这是其最大的缺点,而FRAM铁电存储器克服了Flash的这个缺点。 FRAM是最为先进的非易失性性存储器件,它如同一个RAM和ROM的理想结合体,读写数据如同RAM器件一样,在断电以后如同ROM一样数据不会丢失,是最为理想的存储器件,但作为最新的技术,技术上尚未成熟。同时,价格昂贵是影响它全面推广的最大障碍4,但随着技术的进步,FRAM会成为一种成熟的产品,价格也会更加容易接受,有理由相信它将是未来嵌入式微计算机的主流存储器件。 本文提出的加密解决方案主要针对当前最为广泛使用的Flash存储器件,但只需要做少量删除性的设计修改,便可无缝的用于FRAM铁电存储器,为未来的嵌入式微计算机存储器继续提供加密功能。1.2 NOR型与NAND型Flash存储器 Flash存储器根据擦写操作和内部存储单元阵列编排的不同,可归为两类:NAND 型和 NOR 型。NAND型Flash 存储器5,通过将多个存储单元串连后接到源线和位线来减小单个单元占用的接触孔和源线的面积,是当时集成密度最高的阵列结构,存储容量大,采用串行数据接口,数据传输操作复杂,但有数据缓冲机制,读写速度快,适合一次吞吐大数据量的场合。NOR型Flash采用并行的数据和地址总线,支持随机存取。在读数据时,它先将地址送到地址线,然后由控制线向Flash发出读取指令,最后由Flash将数据送到数据线。在写数据时,它先将地址和数据送到地址线和数据线,然后由控制线发出编程指令将数据存储在相应地址的存储单元,其中控制线的指令向Flash中公共接口单元发出,Flash可在接到指令后,判断CPU需要进行何种操作6。 相对NAND型Flash而言,NOR型Flash最大特点是可以随机读取数据,从而CPU可以直接运行所存储的软件程序,而无需将软件程序装载入RAM运行,可以简化嵌入式微计算机的存储电路设计,降低硬件成本,减少了功耗。如今,NOR型Flash已经成为中小型嵌入式设备的首选存储器件,本文加密方案的设计主要就是针对这种具有可随机访问的并行接口的NOR型Flash。下文中除非特别指明,所提Flash均为NOR型Flash存储器。1.3 M29系列NOR型Flash存储器介绍 当今诸多芯片厂商生产的NOR型Flash产品,根据它们在管脚定义和命令集方面的不同可分为两种,M28型Flash和M29型Flash6。它们在功能实现上区别不大,但一些接口和命令集细节上有所出入,使用上互不兼容。Intel公司的Flash产品大多采用M28系列7, 典型产品如28F640J5 8,其他各个厂家的Flash产品基本上都是M29型。 M29系列Flash包括AMD公司的Am29F160D9系列、ST公司的M29F160D、M29F400B、M29F512B10系列、以及SST公司等公司的相关产品,这些芯片管脚基本一致,可以互换,命令集相同,软件接口相互兼容。 本文采用应用广泛的Am29F160D,存储容量2M字节,兼容8位和16位数据总线。而当前主要的嵌入式系统中使用的大多为8位或16位CPU,并且以ARM为主流的32位嵌入式CPU也有支持16位存储系统的THUMB指令集,所以Am29F160D在嵌入式微计算机中有着广泛的适用性。 安全芯片的硬件接口和命令指令集都以Am29F160D为基准,便可兼容其他M29系列的Flash,可供8/16位CPU和32位ARM型CPU使用。本文所设计的加密体系,仅需取消安全芯片中的某些模块,也可用于FRAM铁电存储器。图 1.1 Am29F160D 外围接口及管脚示意图9 Am29F160D的管脚说明如图1.1所示。其中,控制信号的逻辑组合可以把Am29F160D的总线操作分为读、写、待机、输出无效和复位五种状态,如图1.2所示。读状态,CPU可通过总线读取芯片中的数据;写状态,CPU向芯片中写入数据;待机状态是在CE#和RESET#上加电源电压Vcc,主要用于向Flash芯片中烧录写入数据时,普通运行状态下不使用该状态;输出无效状态,数据总线和地址总线处于高阻状态,使芯片和CPU的总线隔离;复位状态便是使芯片复位,回到初始上电状态。 图 1.2 Am29F160D 总线状态示意图91.4 NOR型Flash存储器的CFI命令集 嵌入式软件程序装入Flash存储器的方法有两种:一种方法是使用编程器烧录,但由于Flash存储器正在向小型化、贴片式发展,Flash存储器难以利用编程器在线编程;另一种方法是将存储器安装到电路板上进行编程,即在系统编程In System Programming,ISP,这种编程方式是通过系统的CPU实现对Flash存储器的编程,不需要其它编程设备和附加编程电源,具有灵活、方便的优点。在线可编程的基础是针对Flash存储器的擦除和写入操作命令,都需要Flash存储器命令集的支持。 CFICommon Flash Interface是Intel发起的一个Flash接口,所有的NOR型Flash,无论M28还是M29型Flash都遵循CFI接口标准,它使得设计者在软件层兼容所有NOR型Flash存储器的想法成为现实。CFI对控制线的指令进行判断,识别当前控制线上是属于读指令、写指令或者其它。 目前,CFI已成为业界的兼容性标准,此接口本身并不占据可寻址的存储空间,它只是关于存储指令以及执行指令所需要的地址和数据。基于这种结构,Flash可从第一个总线写周期获得指令且不会破坏特定地址上所存储的数据。 而在实际的读写操作中,一般都在每条指令前加入两个编码序列以用于启动公共Flash接口。通过公共Flash接口中的命令集定义,可以解释相应的指令,从而使得Flash工作在读阵列、自动选择、编程/擦除和擦除继续这几种模式之一。 在编程/擦除模式下,除可以进行编程和擦除外,还可在随后读取状态寄存器的内容。在每一次命令操作之后,Flash还可以支持状态寄存器查询,使得用户能够了解命令的执行情况。除了命令集之外,CFI公共接口还定义了Flash的块结构、接口参数、厂商属性等一切外部控制软件所需的特征信息,并可以通过写入特定的命令字来进行查询9。 表格1.1列出了常用的四个Flash操作命令,复位、数据编程、整片擦除、扇区擦除。显示了各个命令需要的总线周期数,以及触发该命令所需写入的数据及其写入地址;并且根据Flash的数据总线宽度的不同,分为8位和16位两种情况分别描述。在确定数据总线宽度和命令类型后,经过几个总线周期连续向对应的地址写入相关数据后,Flash存储器将进入命令状态,完成相应的命令执行任务。表格 1.1 M29型Flash常用命令 大多数操作命令都是编程器烧录Flash芯片的时候使用的命令,下面主要介绍表1.1中的四个操作命令:数据写入存储、扇区擦除、整片擦除和复位,以及数据读取这个Flash的自动进入的命令。数据读取:上电后,Flash自动进入读数据状态,它是进入其他各个状态的初始状态,也是其他各个状态退出后的归宿状态。只需给出地址,便可以读出数据。数据写入存储:该命令的功能是向Flash中特定地址写入要存储的数据,共需要4个总线操作周期,前两个周期属于解锁周期,使Flash进入命令状态,第三个周期建立写入命令,需存储的数据和地址在最后一个周期送入,该地址中的存储单元必须经过擦除,内容全为1,否则将会出错,自动进入复位状态。在最后一个周期,该地址和数据由总线写入Flash后,Flash内部状态机进入编程状态,将该数据编程到需要存储的地址,编程期间,RY/BY#信号将始终保持低电平,表示编程未完成。编程完成后,RY/BY#信号恢复高电平,Flash进入读取数据状态。擦除:该命令可分为整片擦除和扇区擦除两种,都需要6个总线操作指令,前两个周期属于解锁周期,使Flash进入命令状态,第三个周期建立写入命令,第四、第五两个周期又是解锁周期,最后一个周期写入整片擦除或扇区擦除命令。擦除命令启动芯片的擦除工作,期间RY/BY#信号将始终保持低电平,表示繁忙。擦除完成后,RY/BY#信号恢复高电平,Flash进入读取数据状态。擦除完成后,所有地址内数据位均为1。复位:该命令功能和硬件RESET#信号功能一致,提供了软件复位Flash芯片的途径。只需向任何一个地址写入“0xF0”,芯片将复位。一般在命令操作出现错误的情况下,使用该命令,Flash芯片复位后将进入读取数据状态。 需要指出的是编程指令不能使0写为1,只能使1变为0,而擦除命令使0成为1,所以必须是先擦除,后数据写入编程。1.5 本章小结 本章根据当前嵌入式微计算机的发展趋势,简要回顾了嵌入式软件程序的存储方式与硬件实现的发展过程。针对存储器件做了较为详细的叙述,从非易失性存储器和易失性存储器的分类开始,介绍了Flash存储器件,以及最新的FRAM铁电存储器的相关知识。详细叙述了以AMD公司的Am29F160D芯片为代表的NOR型Flash的硬件特征和性能,以及业已成为业界标准的CFICommon Flash Interface命令集。本章节对Am29F160D芯片全面的介绍,为后续章节铺垫出加密体系方案的硬件使用环境,基于Flash存储器的加密体系方案将基于Am29F160D型Flash芯片展开论述。第二章 加密技术及加密算法简介 加密技术又被称作密码学,是一门古老的科学。从公元前3世纪古斯巴达人发明的字母换位加密术11到今天美国国家安全标准局的数据加密标准(DES)和公钥加密技术(RSA),加密技术伴随着人类的文明的脚步已经迈过了五千年。以20世纪中期计算机的出现并用于密码技术的设计和破译为分水岭,加密技术被分为古典密码术(classical cryptography)和现代密码术(modern cryptography)12。本章主要介绍与本文相关的加密算法和技术手段,为后续章节介绍安全芯片的加密算法做准备。2.1 加密技术数学模型介绍 在密码学中,需要进行变换的原数据称为明文,明文经过变换以后,成为另一种隐蔽的数据形式,称为密文,完成变换的过程称为加密,由密文恢复明文的过程称为解密,明文变换成密文所采用的变换规则称为加密算法,加密和解密的过程是在密钥的控制下完成的13。在加密算法公开的条件下,密钥是区分解密授权人和非授权人的关键,授权人使用密钥解密密文获得明文,而非授权人即使得到密文,也不能理解其中包含的真正含义,从而达到数据保密的目的。明文可以是任何多媒体信息(文字、声音、图像等),现代明文大多以数据的形式存在,而在古典加密技术中明文大多是语言文字。 一个密码系统(cryptography)是一个五元组(P,C,K,E,D),满足条件14:P为明文空间,是全体明文的集合.C为密文空间,是所有密文的集合.K为密钥空间,它是全体密钥的集合,其中每个密钥Ke均由加密密钥和解密密钥Kd组成,即K=(Ke,Kd).加密算法E,它是一族由P到C的加密变换,对于每一个确定的Ke,则E便确定出一个具体的加密函数f,f把P加密成密文C,C=f(P,Ke.解密算法D,它是一族由C到P的解密变换,对于每一个确定的Kd,则D便确定出一个具体的解密函数f -1,f -1把C解密为明文P,P=f -1C,Kd. 对于每一个确定的密钥K=(Ke,Kd),C=E(P,Ke),P=D(C,Kd)=D(E(P,Ke),Kd)。如果一个密码系统的Ke=Kd,加密密钥和解密密钥相同,便称为单密钥密码系统,否则便称之为非对称密码体系,如果在计算上Kd不能由Ke推出来,这样即使将Ke公开,也不会泄漏Kd,这种密码系统称为公钥密码系
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论