一种存储器数据加密保护的实现方法与流程

文档序号:14156211阅读:942来源:国知局

本发明属于数据存储技术领域,特别涉及芯片的数据存储方法。



背景技术:

在的芯片应用中,芯片存储器数据普遍都集成了客户应用程序,或者存储了用户的数据资料,这些数据可能涉及到隐私安全等问题,特别是金融,通信,社保等行业,那么存储器数据的安全性就必须要得到保证。不仅要在正常应用环境下保证数据安全,尤其在受到恶意攻击时也要保证数据的安全性,不能让破解者获取到用户隐私数据以及客户应用程序,造成信息泄漏的风险。

专利申请200910081928.6则公开了一种保证存储器存储的数据安全读取的系统及方法,包括存储器和主芯片,其中,主芯片,用于产生随机数种子,译码后,发送给存储器;采用产生的随机数种子对产生的随机数搅动后得到的伪随机数,对从存储器接收的加密后的数据明文解密,得到数据明文;存储器,用于将从主芯片接收的译码后的随机数种子解码,得到随机数种子,对产生的随机数搅动后得到伪随机数,采用伪随机数对存储的数据明文加密后,发送给主芯片。本发明提供的系统及方法提高了存储器存储的数据读取的安全性。在该申请中,存储器对即将输出的数据跟随机数逻辑运算后进行加密,然后芯片在使用相同的随机数对接收到的数据进行解密。该随机种子是通过算法产生的,仍然存在破解的可能,加密性能不是很高。



技术实现要素:

基于此,因此本发明的首要目地是提供一种存储器数据加密保护的实现方法,该方法在输入数据之前就先进行了加密,然后会根据地址的随机,随机写到存储器中,输出数据之后再解密,用户获取数据,能够提高存储器数据安全性,避免用户数据被盗取。

本发明的另一个目地在于提供一种存储器数据加密保护的实现方法,该方法实现简单,开发周期短,可靠性高,不易被破解。

为实现上述目的,本发明的技术方案为:

一种存储器数据加密保护的实现方法,其特征在于该方法存储器首先需要开辟一个用户配置区,配置随机种子,并设置随机序列模块,然后将原始数据经过随机序列模块处理,使得原始数据保存到存储器的地址变成随机地址;将原始数据会经过随机序列模块处理,使得原始数据变成随机数据。

所述随机种子由存储器开辟的一个用户配置存储区决定,芯片上电自动加载。

进一步,随机种子在用户出厂时配置,可实现每个芯片的随机种子不一样,更加提高了芯片存储器数据的安全性。

所述随机序列模块使用m序列移位寄存器实现,m序列是由带线性反馈移位寄存器产生的周期最长的一种序列,实现比较简单。

所述原始数据可为烧写器烧录时数据、cpu写入存储器数据、外部通信所需存储数据,上述的数据都可以进行此方式进行加密操作。

进一步,所述随机种子设置为32位,加密效果更高;同时需要在芯片上电之后自动加载随机种子,然后传导到随机序列模块,作为它的种子,为后续数据随机化使用。一共三组随机种子,每组为2个随机种子,rand_addr1,rand_data1,rand_addr2,rand_data2,rand_addr3,rand_data3。

更进一步,用户的原始数据地址经过随机种子为rand_addrx(x=1,2,3)的随机序列模块,产生随机化数据地址;用户的原始数据经过随机种子为rand_datax(x=1,2,3)的随机序列模块,产生随机化数据;在数据地址和数据都进行随机化后,结合一起,把数据按照地址烧写到存储器中。

更进一步,通过烧写器烧写数据到存储器时,所以在烧写阶段,随机种子为rand_addrx,rand_datax(x=1),经过上述步骤实现存储器数据加密操作。

更进一步,在cpu读取存储器数据来运行指令时,随机种子匹配的是rand_addrx,rand_datax(x=1)。

更进一步,用户程序运行过程中产生的数据保存阶段,随机种子为rand_addrx,rand_datax(x=2)。

更进一步,外部通信数据保存阶段,随机种子为rand_addrx,rand_datax(x=3)。

本发明将用户即芯片原始数据存储的地址和原始数据进行随机处理,那么原始数据就会变成随机数据保存到存储器的随机位置,相关数据存储完全随机,地址也随机,达到高度加密的效果,外部完全单独破解不了存储器的数据,保证了存储器数据的加密性。

本发明既实现了存储器数据的高度加密保护的目的,提高用户数据的安全性,解决用户担心数据被盗问题,提高芯片的可靠性,芯片出货量得到保障,同时此方案实现简单方便,面积功耗小,大部分芯片厂商都能普及使用。

附图说明

图1是本发明所实施的流程图。

图2是本发明所实施的结构框图。

图3是本发明所实施的具体应用实例。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

图1、图2所示,为本发明所实现的存储器数据加密保护的实现方法,图中所示。存储器首先需要开辟一个用户配置区,配置随机种子。

s101、实现随机序列模块,使用移位寄存器序列(m序列),如选择m序列本原多项式x^24+x^7+x^2+x+1。

s102、设计用户配置区的随机种子。设置随机种子为32位,加密效果更高。同时需要在芯片上电之后自动加载随机种子,然后传导到随机序列模块,作为它的种子,为后续数据随机化使用。一共三组随机种子,每组为2个随机种子,rand_addr1,rand_data1,rand_addr2,rand_data2,rand_addr3,rand_data3。

s103、用户的原始数据地址经过随机种子为rand_addrx(x=1,2,3)的随机序列模块,产生随机化数据地址。

s104、用户的原始数据经过随机种子为rand_datax(x=1,2,3)的随机序列模块,产生随机化数据。

s105、在数据地址和数据都进行随机化后,结合一起,把数据按照地址烧写到存储器中。

s106、用户程序数据一般会通过烧写器烧写数据到存储器。所以在烧写阶段,随机种子为rand_addrx,rand_datax(x=1),经过s103,s104,s105步骤实现存储器数据加密操作。

s107、用户程序运行阶段,因为cpu读取存储器数据,来运行指令时,存储器数据也会经过随机序列模块,随机种子匹配的是rand_addrx,rand_datax(x=1),那么cpu获取的数据就是用户的原始数据,保证了正常程序运行。

s108、用户程序运行过程中产生的数据保存阶段。用户程序运行过程中,会有一些关键数据,需要保存到存储器。在这一个过程中,同样经过s103,s104,s105步骤,实现存储器数据加密操作,从而再烧写到存储器中,随机种子为rand_addrx,rand_datax(x=2)。

s109、外部通信数据保存阶段。用户程序运行过程中,外部通信可能会有一些关键数据或者相关用户配置信息数据(如身份证信息等),需要保存到存储器。在这一个过程中,同样经过s103,s104,s105步骤,实现存储器数据加密操作,从而再烧写到存储器中,随机种子为rand_addrx,rand_datax(x=3)。

以上步骤实现之后,可实现存储器数据全面高度加密保护的作用。不管用户程序数据,程序运行所需保存的信息,外部通信所需保存的安全信息,都可以进行随机化处理,使得存储器数据达到高度加密保护,同时在数据读出时,也不影响原始数据的准确性。

资源问题:(1)用户配置区可设置为6个地址,地址位宽32位,配置随机种子所需。(2)随机序列模块大约1000门,一共6个随机序列模块。总的而言,资源消耗并不多,而且实现简单,可靠性高。

假如随机种子为32’haaaa5555,原始数据为16’haa55,数据地址16’h0001,那么经过随机序列,则可能会得到随机数数据16’h55aa,随机数据地址16’h0055,那么存储数据到存储器就为地址16’h0055=16’hxxxx,当存储器数据输出时,也会按照固定的随机种子得到的随机地址=16’h0055,那么数据就为16’h55aa。这样就实现了存储器存储的数据都是乱序的随机的,没有按照固定的顺序,破解者无法直接盗取存储器的数据,即使在芯片运行过程中,也无法获取相关的规律,盗取数据,达到存储器数据加密保护作用。

一个具体的应用如图3所示。

因此,本发明将用户即芯片原始数据存储的地址进行随机处理,存储的数据也会经过随机处理,那么原始数据就会变成随机数据保存到存储器的随机位置,这些随机位置是可控的,因为随机处理会有随机种子,这样当用户即芯片读取数据或者芯片cpu读取数据时,也会经过随机序列模块,使得获取的数据还是原始的数据,达到在正常工作环境下保证了存储器数据的加密性。

本发明既实现了存储器数据的高度加密保护的目的,提高用户数据的安全性,解决用户担心数据被盗问题,提高芯片的可靠性,芯片出货量得到保障,同时此方案实现简单方便,面积功耗小,大部分芯片厂商都能普及使用。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1