本发明涉及SRAM存储器的安全存储,具体应用于SRAM存储器的安全读写,并设计了其与外部通信的接口电路,属于信息安全技术领域。
背景技术:
随着信息时代的到来,海量信息存储、传播和交流正在深刻改变人类的生产生活方式,然而信息技术在追求高性能、高速度的同时,必须重视国家信息安全和个人隐私安全。以前信息安全技术只是单纯地应用于军事领域,但现在它已经广泛应用于社会经济生活。人们现在接受的信息量越来越大,不管是个人还是公司乃至国家都面临着信息安全问题。近年来,信息安全问题已上升至国家层面,相关信息安全政策也相继出台,而各种安全存储芯片是信息安全不可或缺的硬件载体。
存储器广泛用于存储密钥等,是安全系统的重要组成部分。存储器包括随机存取存储器、只读存储器和闪存等。存储器作为信息存储和交流的核心器件,已经成为攻击者窃取信息和分析数据的重要来源。因此,如何实现信息的安全存储是当前国内外相关领域的研究热点,而且国内自主研究基于安全存储的抗攻击技术能够为国防安全和军事建设提供强有力的保证。安全存储芯片对于个人和国家都有着重要作用,近年来成为研究的热点。
SRAM(Static Random Access Memory),即静态随机存取存储器。它是一种具有静止功能的内存,不需要刷新电路就能保存它内部存储的数据。SRAM不像DRAM内存那样需要刷新电路,每隔一段时间DRAM(动态随机存取存储器)要刷新充电一次,否则内部数据即会消失,因此SRAM具有较高性能,功耗较小。由于其自身的低功耗和高速度的优势而成为半导体存储器中不可或缺的一类重要产品。
SRAM存储器现在广泛应用于数据存储,因此易于成为被攻击的对象。现有SRAM COMPLIER可以生成设计所需的SRAM存储器电路但缺少控制器对其进行安全保护,攻击者容易获得SRAM中数据,因此需要为SRAM提供具有安全保护功能的控制器来确保存储的安全。目前国内外学者都在积极研究如何做到数据的安全存储,这不仅影响我们的生活更影响着国家安全和军队建设,因此我们必须要开发有自主产权的安全的抗攻击技术。
在这一背景下,发展我国自己的安全芯片已经迫在眉睫,本发明主要研究的内容是一个用于安全存储芯片的SRAM存储器控制器,该SRAM存储器控制器具有口令验证功能,当输入的密码验证正确之后才能对存储器进行读写操作,同时设计相关的SPI(串行外设接口)接口电路以实现与外部的数据交互。
参考文献
1.刘常澍.数字逻辑电路[M].北京:高等教育出版社,2010,243-244.
2.刘文娟.基于安全存储的抗攻击关键技术研究[D].天津:天津大学,2012.
3.黄晶.一种基于SRAM的读写控制电路[J].长春师范学院学报:自然科学版,2012,31(3):67-70.
4.Zhang L,Fang Z,Parker M,et al.The Impulse Memory Controller[J].IEEE Transactions on Computers,2001,50(11):1117-1132.
5.王二萍.高速可复用SPI总线的设计与Verilog HDL实现[D].开封:河南大学,2007.
技术实现要素:
为克服现有技术的不足,本发明旨在提出一个用于安全存储芯片的SRAM控制器及其接口电路。首先需要设计SRAM读写控制器,能够实现SRAM数据的读取与写入控制。同时,该控制器具有口令验证和总线控制功能,口令验证成功则可对SRAM进行一次读写操作。另外,还设计了SRAM与外部数据交互的通讯协议以及SPI(Serial Peripheral Interface)接口电路。本发明采用的技术方案是,用于安全存储芯片的SRAM控制器及其接口电路,SRAM控制器由有限状态机结构和寄存器构成,每次接受到符合通信协议的数据后可以进入下一正确状态否则有限状态机会跳入起始状态等待正确的数据输入,当SRAM控制器接收到符合通信协议的数据之后对数据进行解析,第一个发送的8bit数据表示数据帧开始,表示外部有读写操作,接着进行口令验证;第二个发送的8bit数据表示进行口令验证的密钥,寄存器存储好预先设定的密钥,接收到的与存储的密钥比对,密钥正确方能进行读写操作,否则有限状态机会跳入起始状态等待正确的数据输入;第三个发送的8bit数据表示进行读或写操作;此后的若干个8bit数据表示进行读或写操作的地址;再之后的若干个发送的8bit数据表示读或者写的字节数量;接着发送写入SRAM中的数据,如果是读操作则直接将SRAM中数据从SPI接口输出。本发明的特点及有益效果是:
存储器现在被广泛用来存储重要数据和进行信息交流,因此成为攻击者盗取信息的重要目标。现有SRAM存储器缺少具有安全保护功能的控制器对其进行安全保护控制,一旦被攻击很容易发生数据丢失,因此存在安全隐患。本发明主要完成设计了一个用于安全存储芯片的SRAM控制器及其接口电路。可以对通过SPI接口传送过来的数据进行解析,具有口令验证和总线控制功能,口令验证通过后可以进行读写操作,从而保护SRAM中的数据。
附图说明:
图1 电路结构示意图。
图2 SRAM结构图。
图3 SPI结构。
图4 SPI接口仿真波形。
图5 SRAM控制器电路示意图。
图6 通信协议。
图7 数据帧格式。
图8 SRAM写操作仿真波形。
图9 SRAM读操作仿真波形。
具体实施方式
本发明完成过程主要是结合具有口令验证功能的SRAM控制器电路总体组成结构与可能遇到的问题,对各个部分进行单独设计,确保各部分电路能够正常工作。然后再进行整体电路的整合与仿真,确保整体功能完成,优化各部分电路,最终得到达到性能指标的SRAM控制电路及其接口电路。本发明制定了通信协议,设计了SRAM控制电路和SPI接口电路,并将这两部分合为一体而实现完整的数据接收解析、口令验证、总线控制、读写数据功能,以达到保护SRAM的目的。电路结构如图1所示,数据帧由SPI接口传入SRAM控制电路,SRAM控制器具有口令验证和总线控制功能。口令验证通过后利用其总线控制功能将输入的4个8bit数据拼为一个32bit数据写入SRAM或者将SRAM的一个32bit数据分为4个8bit数据一次输出;口令验证失败则不能读写SRAM,以达到保护存储器数据的目的。
SRAM具有相对其他存储器更低的功耗并且它具有更快的读写速度,这些优点使它成为一种广泛使用的重要的存储器。本发明所使用的SRAM大小为32KB,位宽为32bit。其引脚包括写使能(WEN)、芯片片选使能(CEN)、芯片输出使能(OEN)、地址输入(A)、数据输入(D)和数据输出(Q),其结构如图2所示。当CEN低并且WEN为高时,存储器进行读操作。当CEN和WEN都为低时D将被写入存储器,同时它会出现在输出Q。当CEN为高时存储器被取消选中,被迫进入低功耗待机模式。存储的数据被完全保留,但对于数据读取或写入被禁止,现有的数据输出继续推动其上一次的值。当OEN有效值(低电平)时Q输出的值的数据是有效的。当OEN为无效(高电平)时,Q输出的值的数据为无驱动(高组态Z)。
本发明设计的SPI接口是按照标准的SPI协议设计的,其结构如图3所示。它具有四根信号线分别是从设备片选线SS、主设备输出从设备输入数据线MOSI、从设备输出主设备输入数据线MISO和通信时钟线SCK。本发明只需要使用SPI的从机,但为了验证方便也对SPI主设备进行了设计。SPI接口电路仿真波形如图4所示,主机发送与从机接收数据一致,从而验证功能正确。
SRAM控制器电路示意图如图5所示。为了实现SRAM的数据读写安全,本发明设计的SRAM读写存储器控制器具有口令验证功能,验证成功则可对SRAM进行一次读写操作,具体操作由输入的指令定义,口令验证使用的口令长度为16bit。该控制器还有总线控制功能,由于本设计所用SRAM为32bit,而接口电路所传数据为8bit,所以在SRAM与接口电路之间需要数据转换结构,存储器控制器总线控制功能把从SRAM读出的32bit数据变为4个8bit数据一次传出,当写入数据时,总线控制功能把输入的4个8bit数据拼为一个32bit数据写入到SRAM相应的地址当中。SRAM控制电路的另一功能是对接口电路按通信协议送来的数据进行解读,将密码与已经设置好的密码进行口令验证,口令验证通过后根据数据要求控制SRAM读写,并将读写的地址发给SRAM。本发明制定的通信协议如图6所示,数据帧如图7所示。
整体电路功能实现首先是SPI接口接收数据,数据是按照图5的通信协议发送过来,只有发送的数据符合通信协议SRAM控制器才能进行口令验证操作。SPI接收串行的数据,每次接收满8个bit后接收这8bit数据发给SRAM控制器。SRAM控制器利用有限状态机来设计,每次接受到符合通信协议的数据后可以进入下一正确状态否则会跳入起始状态等待正确的数据输入。当SRAM控制器接收到符合通信协议的数据之后对数据进行解析,第一个发送的8bit数据表示数据帧开始,本发明设定为0x1111,接收到0x1111表示外部有读写操作可以进行 后面的操作,如果接收到的不是0x1111,则表示数据帧不符合通信协议,要等待符合通信协议的数据发送过来;第二个发送的8bit数据表示进行口令验证的密钥,SRAM控制使用专门的寄存器存储好预先设定的密钥,当输入的密钥与预先存储的密钥相等时方能进行读写操作;第三个发送的8bit数据表示进行读或写操作,数据为0表示进行写操作,数据为1表示进行读操作;第四和第五个发送的两个8bit数据表示进行读或写操作的地址;第六个发送的8bit数据表示读或者写的字节数量;接着发送写入SRAM中的数据,如果是读操作则直接将SRAM中数据从SPI接口输出。
当SRAM控制器接收到数据帧开始之后,紧接着进行口令验证,输入的口令与控制器存储器密钥相同表示口令验证通过,口令验证通过之后可以对SRAM进行读写操作,接着根据数据帧指令对SRAM相应地址完成一次读或写操作。因为SPI接口每次接受8bit数据,而SRAM数据位宽为32bit,所以SRAM控制器利用总线控制功能,在进行写操作时将4个8bit数据拼为一个32bit数据写入目的地址;在进行读操作时将一个读出的32bit数据分为4个8bit数据通过SPI接口依次输出。这样整体电路能够实现完整的数据接收以及SRAM存储器数据保护功能。
图8为进行写操作时的仿真波形,在接收到数据之后进行口令验证,口令验证通过后使SRAM的OEN、CEN、WEN变为低电平,并将要写入的数据和地址发送给SRAM开始写操作;图9为进行读操作时的仿真波形,在接收到数据之后进行口令验证,口令验证通过后使SRAM的OEN、CEN、变为低电平,WEN变为高电平,从而将SRAM中数据读出。
本发明从信息安全方面考虑,设计了安全存储芯片的SRAM控制器及其接口电路。如果想要获取SRAM中数据,必须按照规定的通信协议从SPI接口输入数据,SRAM控制器解析输入数据,进行口令验证,如果成功方能进行SRAM数据读写。本发明的保护范围并不以上述实施方式为限,本领域普通技术人员根据本发明所揭示内容所作的等效修饰或变化,皆应纳入保护范围。