一种采用32位LFSR生成流密码的存储器及读取方法与流程

文档序号:26146244发布日期:2021-08-03 14:32阅读:507来源:国知局
一种采用32位LFSR生成流密码的存储器及读取方法与流程

本发明属于数字信息应用领域,特别涉及一种采用32位lfsr生成流密码的存储器及读取方法。



背景技术:

随着数字信息技术的发展,电子数据存储技术已在生活中随处可见,非易失性数据存储器(eeprom、flash等)与包括磁介质类型的传统数据存储介质相比,具有高稳定性、写保护数据和高安全性等优点,被广泛接纳为下一代多媒体信息介质。

在很多电子信息系统系统中,例如电视机配置存储芯片、墨盒墨量控制芯片、遥控器存储芯片、涉及安全的控制芯片及涉及断电记忆功能设备,如当前流行的mp3/mp4/gps等设备内的配置控制器等,都采用了一些通用性的非易失性数据存储器作为关键数据的存储,如目前市场上常见的采用i2c协议的24系列非易失性数据存储器产品。24系列非易失性数据存储器产品中,其指令格式完全透明,只要稍微有一些电子知识的人,通过很普通的设备或工具,如通用读写器等,就可以完全读取存储器中的数据。或者通过一般的仪器设备,如示波器、逻辑分析仪等,在系统正常工作获取存储器和其他芯片的交互波形信息,就可以得到存储器中的数据;甚至通过这样的分析能获得哪些数据是关键中的关键,如墨盒墨量数据、剩余金额、剩余有效时间等与费用有关的数据。在上述系统中,这些采用通用性的非易失性数据存储器存储的数据往往都是系统中的一些关键参数,由于采用类似24系列非易失性数据存储器通用产品,一旦这些关键数据被获取后,就很容易用市场上同类产品进行复制或克隆。这样很容易导致客户的重要信息被泄漏或者一个公司花大量人力物力开发的知识产权被泄漏。



技术实现要素:

有鉴于此,克服上述通用24系列非易失性数据存储器在指令系统上的完全透明容易被读取和侦听的缺点,本发明的目的是提供一种采用32位线性反馈移位寄存器(lfsr,linearfeedbackshiftregister)实现的流密码进行通讯加密的采用i2c协议的非易失性存储器,其能确保存储器内部的数据不易被非法读取,或者与主机交互过程中被侦听后不易被分析出正确的数据。

本发明提供了一种采用32位lfsr生成流密码的存储器,包括32位lfsr、随机数发生器、异或电路和24系列存储单元,32位lfsr、随机数发生器和24系列存储单元均与异或电路连接,随机数发生器还与32位lfsr和24系列存储单元连接,32位lfsr还与24系列存储单元连接,其中,

所述32位lfsr包括32个寄存器d0-d31,其中寄存器d0-d23的初始值由主机端发送24位数据来配置,寄存器d24-d31的初始值由所述随机数发生器产生8位数据来配置,随机数发生器产生8位数据还发送给主机端,寄存器d24-d31为输出密钥。

优选地,所述主机端发出加密数据,与密钥d24-d31一同输入异或电路,进行解码,解码后存入24系列存储单元。

优选地,所述24系列存储单元中的数据被主机端读取时,将数据与密钥d24-d31一同输入异或电路进行加密,加密后发送给主机端。

基于上述目的,本发明还提供了一种采用32位lfsr生成流密码的存储器的存储方法,包括以下步骤:

s10,采用32位lfsr生成流密码的存储器上电后,接收指令码和3个字节b0,并发送随机数b1,指令码和三个字节输入数据b0由主机端发送,输出数据b1由随机数发生器产生,并产生run_set信号初始化32位lsfr;

s20,产生启动指令run_en,启动32位lfsr的流密码加密功能,32位lfsr中,寄存器d0-d23的初始值由主机端发送的24位数据配置;寄存器d24-d31的初始值由随机数发生器产生的8位数据b1来配置,同时这8位数据b1也返回给主机端,使主机端亦配置一样的初始值;

解码:在32位lfsr的流密码加密功能开始后,主机端发送的加密数据与密钥d24-d31进行解码,把解码的数据存入24系列存储单元中;

加密:24系列存储单元中的数据被主机端读取时,先通过密钥d24-d31加密,然后发送给主机端。

优选地,所述主机端与采用32位lfsr生成流密码的存储器的交互中,除了i2c协议中的start位、end位、ack位外,其他所有指令、地址和数据信息,均在32位lfsr的流密码加密之后进行传输。

本发明的有益效果在于:本发明主机与非易失性存储器的所有交互,除了i2c协议中的start位、end位、ack位外,其他所有的指令、地址、数据信息,都在流密码加密之后进行传输。这样就避免了这些关键的有效信息的透明传输,防止了数据明码传输,确保存储器内部的数据不易被非法读取,或者与主机端交互过程中被侦听后不易被分析出正确的数据,保护了客户的重要信息。

附图说明

为了使本发明的目的、技术方案和有益效果更加清楚,本发明提供如下附图进行说明:

图1为本发明实施例的一种采用32位lfsr生成流密码的存储器的结构框图;

图2为本发明实施例的一种采用32位lfsr生成流密码的存储器的32位lfsr结构框图;

图3为本发明实施例的一种采用32位lfsr生成流密码的存储器存储方法的加密步骤示意图;

图4为本发明实施例的一种采用32位lfsr生成流密码的存储器存储方法的解码步骤示意图。

具体实施方式

下面将结合附图,对本发明的优选实施例进行详细的描述。

实施例1

参见图1,所示为本发明实施例的一种采用32位lfsr生成流密码的存储器结构框图,包括32位lfsr10、随机数发生器20、异或电路40和24系列存储单元30,32位lfsr10、随机数发生器20和24系列存储单元30均与异或电路40连接,随机数发生器20还与32位lfsr10和24系列存储单元30连接,32位lfsr10还与24系列存储单元30连接,其中,

参见图2,32位lfsr10包括32个寄存器11d0-d31,输入寄存器11d0-d31的值即d[31:0],其中寄存器11中d0-d23的初始值由主机端50发送24位数据来配置,寄存器11中d24-d31的初始值由随机数发生器20产生8位数据来配置,随机数发生器20产生8位数据还发送给主机端50,寄存器11中d24-d31为8位密钥,即图1中d[31:24]。还包括反馈回路,反馈回路包括30个异或门41,寄存器11中d2-d31均与一个异或门41连接,30个异或门41依次连接,与寄存器11中的d2连接的异或门41的输出作为寄存器11中d0的输入;寄存器11为动态或静态主从型触发器。

主机端50发出加密数据,与32位lfsr10输出密钥d[31:24]一同输入异或电路40,进行解码,解码后存入24系列存储单元30。

24系列存储单元30中的数据被主机端50读取时,将数据与32位lfsr10输出的密钥d[31:24]一同输入异或电路40进行加密,加密后发送给主机端50。

本发明采用32位lfsr10实现流密码进行通讯加密采用i2c协议的非易失性存储器,在24系列存储单元30的基础上,增加了一个32位lfsr10,该32位lfsr10可产生232位最长长度二进制伪随机序列prbs(pseudorandombinarysequence),lfsr电路消耗资源少,适合于电路实现。本发明可以产生prbs的32位lfsr10生成多项式如下等式:

g32=x32+x7+x3+x2+1

实现该生成多项式的lfsr电路框图参见图1,通过这个电路可以实现流密码的产生,在电路结构确定以后,流密码的产生完全由32位lfsr10中32个寄存器11的初值来确定。

采用i2c协议的非易失性存储器为一个从器件,其工作方式和工作状态完全由i2c协议的主器件来决定,一般i2c的主器件都是mcu来实现。通过mcu的软件来实现lfsr,在软件开销上,也不大。

在i2c协议的非易失性存储器中,增加一条初始化32位lfsr10指令,该指令格式为:指令码+三个字节输入数据b0+一个字节输出数据b1。

指令码和三个字节输入数据b0由主机端50给本发明端非易失性存储器发送。输出数据b1由非易失性存储器内部的随机数发生器20产生,并发送给主机,以便同步两边的32位lfsr10。

本发明的非易失性存储器中sda为i2c协议中的数据信号线,通过sda端数据信号线来传输数据,本发明设置了一个产生8位随机数的随机数发生器20和一个32位lfsr10,同时在指令集中,增加了一条初始化32位lfsr10及启动流密码加密的指令。

本发明还提供了一种采用32位lfsr10生成流密码的存储器的存储方法,包括以下步骤:

s10,采用32位lfsr10生成流密码的存储器上电后,接收指令码和3个字节b0,并发送随机数b1,指令码和三个字节输入数据b0由主机端50发送,输出数据b1由随机数发生器20产生,并发送给主机端50产生run_set信号初始化32位lsfr;

s20,产生启动指令run_en,启动32位lfsr10的流密码加密功能,32位lfsr10中,寄存器11中d0-d23的初始值由主机端50发送的24位数据配置;寄存器11d24-d31的初始值由随机数发生器20产生的8位数据b1来配置,同时这8位数据b1也返回给主机端50,使主机端50亦配置一样的初始值;

解码:在32位lfsr10的流密码加密功能开始后,主机端50发送的加密数据与密钥d24-d31进行解码,把解码的数据存入24系列存储单元30中;解码的步骤示意图参见图4,主机端50发送加密数据流,与32位lfsr10输出的密钥d24-d31输入异或电路40进行解码后,输出明文数据流存入24系列存储单元30;

加密:24系列存储单元30中的数据被主机端50读取时,先通过32位lfsr10输出的密钥d24-d31加密,然后发送给主机端50,加密的步骤示意图参见图3。

主机端50与采用32位lfsr10生成流密码的存储器的交互中,除了i2c协议中的start位、end位、ack位外,其他所有指令、地址和数据信息,均在32位lfsr10的流密码加密之后进行传输。

最后说明的是,以上优选实施例仅用以说明本发明的技术方案而非限制,尽管通过上述优选实施例已经对本发明进行了详细的描述,但本领域技术人员应当理解,可以在形式上和细节上对其作出各种各样的改变,而不偏离本发明权利要求书所限定的范围。

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