用于防止存储系统中数据残留的系统和方法

文档序号:6764298阅读:204来源:国知局
用于防止存储系统中数据残留的系统和方法
【专利摘要】提供了用于防止存储系统中数据残留的方法、电路、和系统。原始数据被储存在第一存储器中,其可以是静态随机存取存储器(SRAM)。此外,数据被储存在第二存储器中。第一存储器中的数据被周期性反转,防止第一存储器中的数据残留。该第二存储器中的数据被与第一存储器中的数据同时周期性反转。该第二存储器中的数据被用于掌握第一存储器中的数据的反转状态。在第一存储器中的数据和第二存储器中的数据之间实行逻辑异或操作,能够重建该第一存储器中的原始数据。
【专利说明】用于防止存储系统中数据残留的系统和方法
【技术领域】
[0001]本发明涉及存储系统和方法,并且更具体涉及通过使存储系统中的数据周期性反转同时掌握反转状态来防止存储系统中数据残留。
【背景技术】
[0002]数据储存系统,并且特别是诸如静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)的随机存取存储器是众所周知的。这种数据储存系统可以用在通用微处理器中,或者被诸如现场可编程门阵列(FPGA)的可编程逻辑器件用作资源。
[0003]诸如SRAM或DRAM的存储器依靠恒定的电源供给,从而保持在存储器内储存的数据,而在关掉该存储器的电源后,数据则会丢失。然而,这种存储器的某些物理性质导致数据残留的现象,其中在从该存储器去掉电源之后,数据以残余形式被保留一段时间。这种残留数据能够通过访问该存储器的输入/输出引脚以一定几率被恢复。将恒定数据保持在存储单元中的时间越长,所产生的数据残留越强,并且甚至在关掉电源之后能够从存储单元恢复数据的几率越大。
[0004]数据残留为使用加密术的系统内的存储器提出安全性问题。这种系统可以使用加密术或安全钥匙,其被储存在该系统的RAM部分中。这种系统可以另外包括防篡改机构,如果检测到入侵,该机构擦去系统中的全部数据。然而,当关掉到整个系统的电源时,基于固有地发生的数据残留的攻击,致使任何防篡改机构不能工作。因为数据残留,可以将诸如加密密钥或该安全密钥的关键数据保留在该系统的RAM部分足够久,使得攻击机恢复该密钥。该攻击机能够重新起动仅仅到该系统的RAM部分的电力、恢复该密钥、并且使用该密钥恢复在该系统上呈现的关键数据。

【发明内容】

[0005]为了应对本【技术领域】内的上述及其他缺点,根据本发明的系统通过周期性反转该存储系统中的数据同时掌握该反转状态,来防止存储系统中的数据残留。
[0006]在一个实施例中,该系统包括静态随机存取存储器(SRAM)和第二存储器。该系统进一步包括可操作为周期性反转该SRAM中的数据并同时反转该第二存储器中数据的处理电路。该处理电路进一步可操作为在该SRAM中的数据和该第二存储器中的数据之间执行逻辑“异或”操作。
[0007]在另一个实施例中,该系统包括根据第一时钟信号工作的第一存储器,以及第二存储器。该系统进一步包括处理电路,其可操作为周期性反转该第一存储器中的数据并同时反转该第二存储器中的数据,其中该第一存储器中的数据和该第二存储器中的数据两者都以根据第二时钟信号的周期性反转速率反转,并且其中该第二时钟信号不同于该第一时钟信号。该处理电路进一步可操作为在该第一存储器中的数据和该第二存储器中的数据之间实行逻辑“异或”操作。
[0008]在还另一个实施例中,该系统包括第一存储器和第二存储器。该系统进一步包括用于提供异或电路输出信号的异或电路,其中该异或电路输出信号是第一存储器的数据输出信号和第二存储器的数据输出信号的逻辑异或函数。该系统进一步地包括选择电路,其使用第一信号来选择第二信号或者第一存储器的补充的数据输出信号作为选择电路输出信号。该系统进一步包括互连电路,其可配置为将第二存储器的补充的数据输出信号耦合到第二存储器的数据输入信号、将第一信号耦合到第二存储器的重置信号、并且将该选择电路输出信号耦合到第一存储器的数据输入信号。
[0009]有利地是,根据本发明的上述实施例防止该SRAM中的数据残留,同时与该SRAM的
正常工作兼容。
【专利附图】

【附图说明】
[0010]在结合该附图考虑下列详细说明下,本发明的进一步特性、它的性质和各种优点将会显而易见,其中贯穿附图类似的附图标记指代类似的部分,并且其中:
[0011]图1示出了按照本发明的实施例的用于防止数据残留的示例性系统;
[0012]图2示出了按照本发明的实施例的用于防止数据残留的另一个示例性系统;
[0013]图3示出了按照本发明的实施例的防止数据残留的例示性方法;
[0014]图4示出了按照本发明的实施例的防止数据残留的另一种例示性方法;和
[0015]图5示出了按照本发明的实施例的根据图4的例示性方法工作的系统中的例示性数据流程图。
【具体实施方式】
[0016]为了提供本发明的全面理解,现在将描述某些例示性的实施例。然而,本领域技术人员应当理解,可以根据所应对的应用适当地适配和修改本文中所述的系统和方法,并且本文中所述的系统和方法可以被用于其他适当的应用中,并且这种其他增加和更改将不偏离本发明的保护范围。
[0017]图1示出了根据本发明的实施例的用于防止数据残留的示例性系统100。在一些实施例中,该系统100位于现场可编程门阵列(FPGA)内,并且直接与该FPGA接口连接。在其他实施例中,该系统100位于FPGA外面,但是其输入和输出通过接口连接到该FPGA。在一些实施例中,该系统100储存密钥。如果该系统100与FPGA接口连接,那么该密钥能够被FPGA用于加密由该FPGA储存并传递的数据。
[0018]该系统100包括主存储器102。该主存储器102包括一个或多个存储单元,每个存储单元都包括一个比特的数据,以及用于将数据写入到适当的存储单元并从该适当的存储单元读取数据的电路。该主存储器102能够包括SRAM。该主存储器102能够包括一个或多个闩寄存器。该主存储器102也能够包括DRAM。如果该主存储器102包括DRAM,那么该DRAM与更新时钟关联,该时钟根据众所周知的方法周期性地更新该DRAM中储存的数据值。在一些实施例中,该主存储器102与系统时钟相关联。该系统时钟确定数据将在什么时候被写入该主存储器102或者从该主存储器102读取,以及确定数据被写入该主存储器102或者从该主存储器102读取的速率。如果系统100与FPGA接口连接,能够由该FPGA生成该系统时钟。
[0019]该主存储器102另外包括多个端口,诸如数据输入端口 104、数据输出端口 106、和数据切换端口(data toggle port) 107。该主存储器102可以包含额外的端口,诸如读取和写入地址端口或者系统时钟输入端口。为简单起见,没有示出这些端口。在一些实施例中,该数据输入端口 104和该数据输出端口 106具有预定的比特宽度,例如,每个可以是16比特宽。在其他实施例中,每个端口的比特宽度是可配置的。
[0020]该系统100进一步包括第二存储器108。第二存储器108包括一个或多个存储单元,其每个都包括一个比特的数据,连同用于将数据写入到适当的存储单元并从该适当的存储单元读取数据的电路。第二存储器108能够包括一个或多个闩寄存器。第二存储器108也能够包括SRAM或DRAM。在一些实施例中,第二存储器108至少部分位于该主存储器102内,并且可以是该主存储器102的集成部分。在其他实施例中,第二存储器108完全位于该主存储器102外面。
[0021]第二存储器108包括数据输出端口 110、数据重置端口 112、和数据切换端口 114。第二存储器108可以包含额外的端口,诸如读取和写入地址端口或者系统时钟输入端口。为简单起见,没有示出这些端口。
[0022]该系统100进一步包括异或电路116。该异或电路116被耦合到该主存储器102的数据输出端口 106和第二存储器108的该数据输出端口 110。该异或电路116输出一个或多个信号118,这些信号是从该主存储器102的数据输出端口 106接收的一个或多个信号和从第二存储器108的数据输出端口 110接收的一个或多个信号的逻辑异或函数。在一些实施例中,第二存储器108包括一个存储单元,其包含一比特的数据(即,单个逻辑‘ I’或逻辑‘0’),并且一个或多个异或电路输出信号118的每个都对应由第二存储器108的输出端口 110输出的数据的比特和由主存储器102的输出端口 106输出的一个或多个信号的一个之间的逻辑异或操作。
[0023]该系统100将切换信号120提供到该主存储器102的切换端口 107和第二存储器108的切换端口 114。在一些实施例中,该切换信号120由外部系统系统提供,并且根据任意进程(schedule)被激活和停用。在一些实施例中,该切换信号120由具有特定时钟速率的第二时钟提供。第二时钟的时钟速率能够是可配置的。在一些实施例中,该第二时钟的时钟速率是可由该系统100的用户配置的。在一些实施例中,第二时钟独立于该系统时钟,并且如果该主存储器102是DRAM,那么该第二时钟独立于该DRAM的更新时钟。在一些实施例中,第二时钟比该系统时钟慢,并且如果该主存储器102是DRAM,那么该第二时钟比该DRAM的更新时钟慢。在这个实施例中,该第二时钟可以具有按秒或分钟测量的时钟速率。
[0024]图3示出了使用图1的系统100防止数据残留的方法300。在302,原始数据被载入该主存储器102。该原始数据可以包括一个或多个原始数据值。在304,重置该第二存储器108,以便在该存储器108内包含的全部数据都被设定到逻辑“O”。该系统100可以通过认定(assert)该重置端口 112到逻辑‘I’来重置该第二存储器108。在306,该主存储器102内的一个或多个数据值周期性地与第二存储器108中的数据同时反转。该系统100可以通过认定该切换信号120到逻辑‘I’来反转该数据。响应于检测到该切换信号120到逻辑‘I’的认定,与该主存储器102和第二存储器108关联的处理电路使该主存储器102中的一个或多个数据值和第二存储器108中的数据反转(即,切换)。因为第二存储器108中的数据在载入该原始数据(302)之后的304被设定到已知的重置状态,并且因为主存储器102中的数据与第二存储器108中的数据被同时反转,第二存储器108中的数据始终指示了主存储器102中的数据的当前反转状态。因此,通过在读出该主存储器102中的数据处于反转的状态期间使该主存储器102中的数据反转,并且在读出该主存储器102中的数据处于非反转的状态期间不采取行动,该第二存储器108中的数据能够被用于重建在302被载入该主存储器102的原始数据。
[0025]特别是,在使用图1的系统100的方法300中,通过对从该主存储器102的数据输出端口 106接收的一个或多个信号和从第二存储器108的数据输出端口 110接收的一个或多个信号应用逻辑异或函数,来重建该原始数据。在308,该原始数据被读作由异或电路118输出的一个或多个输出信号118。有利地是,因为在306周期性地反转该主存储器102的一个或多个存储单元中的数据,所以存储单元没有包含相同的数据值超过特定时段。如果周期性反转的速率足够快(即,大于特定阈值速率,这取决于主存储器102的物理性质和工作参数),那么将不会发生数据残留,或者至少会减少数据残留。额外的优点是,在一些实施例中,仅包括包含一比特数据的单个存储单元的第二存储器108能够被用于保护任意尺寸的第一存储器102克服数据残留。
[0026]图2示出了根据本发明的用于防止数据残留的另一个示例性系统200。在一些实施例中,该系统200位于现场可编程门阵列(FPGA)内,并且直接与该FPGA接口连接。在其他实施例中,该系统200位于FPGA外面,但是其输入和输出通过接口连接到该FPGA。在一些实施例中,该系统200储存密匙。如果该系统200与FPGA接口连接,那么该密钥能够被FPGA用于加密由该FPGA储存并传递的数据。
[0027]系统200包含主存储器。该主存储器能够包括一个或多个数据寄存器,每个数据寄存器都包括一比特的数据。然而,为简单起见,仅仅示出一个数据寄存器202。在一个实施例中,该数据寄存器202是SRAM。系统200进一步包括反转跟踪寄存器204,其包含一比特的数据。该反转跟踪寄存器204的补充的输出端口被耦合到该反转跟踪寄存器204的输入端口。
[0028]时钟信号206被耦合到该数据寄存器202和该反转跟踪寄存器204的时钟输入端口。在一个实施例中,该时钟信号206的时钟速率是可配置的。
[0029]该数据寄存器202和反转跟踪寄存器204的数据输出端口被耦合到异或门208。该异或门208输出信号216,该信号是由该数据寄存器202和反转跟踪寄存器204的输出端口输出的信号的逻辑异或函数。
[0030]该系统200进一步包括选择电路210。在一个实施例中,选择电路210是具有两个输入和一个输出的多路复用器。第一选择电路输入被稱合到该数据寄存器202的补充的输出端口。第二选择电路输入被I禹合到数据输入信号212。载入信号214由选择电路210使用以在来自该数据寄存器202的补充的输出端口的信号和数据输入信号212之间进行选择。该数据输入信号212被用于将原始数据载入该数据寄存器202。该载入信号214被另外耦合到该反转跟踪寄存器204的重置端口。
[0031]在一些实施例中,该系统200也包括电平移位电路218和220。该电平移位电路218将数据输入信号212耦合到外部数据输入信号222,并且该电平移位电路220将载入信号214耦合到外部载入信号224。该电平移位电路218和220可以用于通过使在外部系统中关联的具有逻辑‘I’和逻辑‘0’的电压电平分别平移到在系统200中关联的具有逻辑‘I’和逻辑‘0’的电压电平,而使该系统200与外部系统接口连接。在一些实施例中,该外部系统是FPGA。在一些实施例中,该外部数据输入信号222被用于为该系统200提供密码密钥。
[0032]图4示出了用于操作图2的系统200的例示性方法。在402,该载入信号214被认定为值‘I’,并且经由选择电路210将数据输入信号212耦合到该数据寄存器202的输入端口。在404,该载入信号214将该反转跟踪寄存器204重置到‘O’。在406,该数据输入信号212的数据值被载入到数据寄存器202中。在408,该载入信号214被转到‘0’,并且经由选择电路210将数据寄存器202的反转的输出信号212耦合到该数据寄存器202的数据输入端口。在410,在由时钟206提供的时钟信号的每个新的周期期间,反转跟踪寄存器204的数据输入端口接收该反转跟踪寄存器204的补充的数据输出信号。因此使该反转跟踪寄存器204内包含的数据反转(B卩,切换),直到由该时钟206提供的时钟信号的下一个周期。同样,在412,在由该时钟206提供的时钟信号的每个新的周期期间,数据寄存器202的数据输入端口接收该数据寄存器202的补充的数据输出信号,其为该选择电路210的输出。因此使该数据寄存器202内包含的数据反转(即,切换),直到由该时钟206提供的时钟信号的下一个周期。然后,该方法回到410。
[0033]应该注意,该异或门208连续输出信号216,该信号在方法400的每个步骤可访问,这是由该数据寄存器202和反转跟踪寄存器204的输出端口输出的信号的逻辑异或函数。在406,该信号216 —直对应被载入该数据寄存器202的原始数据值。
[0034]有利地是,因为在410周期性地反转该数据寄存器202中的数据,所以该数据寄存器202不包含相同的数据值超过特定时段。在一些实施例中,这个特定时段的长度对应由该时钟206提供的时钟信号的周期的长度。如果周期性反转的速率足够快(即,大于特定阈值速率,该速率取决于数据寄存器202的物理性质和工作参数),那么将不会发生数据残留,或者至少回减少数据残留。额外的优点是,在一些实施例中,只包含一比特数据的该反转跟踪寄存器204能够被用于保护任意大量数据寄存器克服数据残留。
[0035]图5a和5b提供了根据图2的方法400的图2的系统200内的数据流的示例性图形,其用于最初被储存在该数据寄存器202中的不同的数据值。
[0036]图5a提供了当在406逻辑‘I’被储存在该数据寄存器202中时根据图4的方法400的图2的系统200内的数据流的示例性图形500。在408,在切换任何数据值之前,该系统200处于状态502。在状态502中,在数据寄存器202中储存的值是‘I’,在反转跟踪寄存器204中储存的值是‘0’,并且该异或门208的输出216相应地是‘I’。当在410和412切换该数据寄存器202和反转跟踪寄存器204内的数据时,该系统转到状态504。在状态504中,数据寄存器202中储存的值是‘0’,该反转跟踪寄存器204中储存的值是‘1’,并且该异或门208的输出216相应地是‘I’。然后,该方法400进行返回到410,该系统200再次进入状态502。因此,当在406逻辑‘I’被储存在该数据寄存器202中时,根据方法400工作的系统200始终输出对应逻辑‘I’的异或电路输出信号216。
[0037]图5b提供了当在406逻辑‘0’被储存在该数据寄存器202中时根据图4的方法400的图2的系统200内的数据流的示例性图形501。在408,在切换任何数据值之前,该系统200处于状态506。在状态506中,在数据寄存器202中储存的值是‘0’,在反转跟踪寄存器204中储存的值是‘0’,该异或门208的输出216相应地是‘O’。当在410和412该数据寄存器202和反转跟踪寄存器204内的数据被切换时,该系统转换到状态508。在状态508中,数据寄存器202中储存的值是‘I’,该反转跟踪寄存器204中储存的值是‘1’,该异或门208的输出216相应地是‘0’。然后,该方法400进行返回到410,因此该系统200再次进入状态506。因此,当在406逻辑‘0’被储存在该数据寄存器202中时,根据方法400工作的系统200输出对应逻辑‘0’的异或电路输出信号216。
[0038]应该注意,尽管系统100和200分别使用异或电路116和208,但是异或电路的使用是示例性的,而不是意图要限制本发明的保护范围。在一些实施例中,系统100可以用任何电路代替异或电路116,只要这些电路可操作为基于由第二存储器108的输出端口 110输出的数据的比特和由该主存储器102的输出端口 106输出的一个或多个信号的一个来输出被载入主存储器102的原始数据。同样,在一些实施例中,系统200可以用任何电路代替异或电路208,只要电路基于由数据寄存器202和反转跟踪寄存器204的输出端口输出的信号来输出被载入到数据寄存器202中的原始数据。例如,如果在图5a的状态502和506中,在被储存在反转跟踪寄存器204中的逻辑‘0’被替换为逻辑‘1’,替换线路电路208的电路可以输出信号216,该信号是由数据寄存器202和反转跟踪寄存器204的输出端口输出的信号的逻辑反转的异或函数。
[0039]上述仅仅是说明本发明的原理,并且本领域技术人员能够在不偏离本发明的保护范围和精神的情况下,进行各种修改。呈现本发明的上述描述实施例是为了说明的目的而不是为了限制的目的,本发明仅由前面的权利要求限定。
【权利要求】
1.一种电路,包括: 静态随机存取存储器(SRAM); 第二存储器; 处理电路,可操作为: 周期性地使所述SRAM中的数据反转并且同时使所述第二存储器中的数据反转;和 在所述SRAM中的数据和所述第二存储器中的数据之间执行逻辑异或运算。
2.根据权利要求1所述的电路,其中所述处理电路进一步可操作为: 将数据写到所述SRAMjP 重置所述第二存储器。
3.根据权利要求1所述的电路,其中所述第二存储器和所述处理电路的组合的至少一部分位于所述SRAM内。
4.根据权利要求1所述的电路,其中所述第二存储器和所述处理电路位于所述SRAM外面。
5.根据权利要求1所述的电路,其中所述处理电路可操作为周期性地使所述SRAM中的数据与所述第二存储器中的数据同时反转的速率是可配置的。
6.根据权利要求1所述的电路,其中: 所述SRAM包括多个存储单元,每个存储单元只包含一个数据比特,和 所述第二存储器包括只包含一个数据比特的寄存器。
7.根据权利要求1所述的电路,所述SRAM可操作为储存密钥。
8.一种现场可编程门阵列(FPGA),其包含如在权利要求1中限定的所述电路。
9.根据权利要求8所述的FPGA,其中: 所述SRAM可操作为储存密钥,其中所述密钥由所述FPGA使用以储存和传递数据。
10.一种电路,包括: 第一存储器,其根据第一时钟信号操作; 第二存储器; 处理电路,可操作为: 周期性地使所述第一存储器中的数据反转并且同时使所述第二存储器中的数据反转,其中: 以根据第二时钟信号的周期性反转速率使所述第一存储器中的数据和所述第二存储器中的数据两者反转,和 所述第二时钟信号不同于所述第一时钟信号。
11.根据权利要求10所述的电路,其中所述处理电路进一步可操作为在所述第一存储器中的数据与所述第二存储器中的数据之间执行逻辑异或运算。
12.根据权利要求10所述的电路,其中所述第一存储器包括静态随机存取存储器(SRAM)0
13.根据权利要求10所述的电路,其中: 所述第一时钟信号具有第一时钟速率, 所述第二时钟信号具有第二时钟速率,和 所述第二时钟速率小于所述第一时钟速率。
14.根据权利要求10所述的电路,其中所述处理电路进一步可操作为: 将数据写到所述第一存储器,和 重置所述第二存储器。
15.根据权利要求10所述的电路,其中所述第二存储器和所述处理电路的组合的至少一部分位于所述第一存储器内。
16.根据权利要求10所述的电路,其中所述第二存储器和所述处理电路位于所述第一存储器外面。
17.根据权利要求10所述的电路,其中所述周期性反转速率是可配置的。
18.根据权利要求10所述的电路,其中: 所述第一存储器包括多个存储单元,每个存储单元只包含一个数据比特,和 所述第二存储器包括只包含一个数据比特的寄存器。
19.根据权利要求10所述的电路,其中所述第一存储器被配置为储存密钥。
20.一种现场可编程门阵列(FPGA),其包含如在权利要求10中限定的所述电路。
21.根据权利要求20所述的FPGA,其中: 所述第一存储器可操作为储存密钥,其中所述密钥由所述FPGA使用以储存和传递数 据。
22.—种电路,包括: 第一存储器; 第二存储器; 异或电路,其用于提供异或电路输出信号,其中所述异或电路输出信号是所述第一存储器的数据输出信号和所述第二存储器的数据输出信号的逻辑异或函数; 选择电路,其使用第一信号来选择第二信号或者所述第一存储器的补充的数据输出信号作为选择电路输出信号, 互连电路,可配置为: 将所述第二存储器的补充的数据输出信号耦合到所述第二存储器的数据输入信号; 将所述第一信号耦合到所述第二存储器的重置信号,和 将所述选择电路输出信号耦合到所述第一存储器的数据输入信号。
23.根据权利要求22所述的电路,进一步包括时钟电路和额外的互连电路,所述互连电路被配置为: 将时钟电路输出信号耦合到所述第一存储器的时钟输入信号,和 将所述时钟电路输出信号耦合到所述第二存储器的时钟输入信号。
24.根据权利要求22所述的电路,其中: 所述第一存储器包括多个存储单元,每个存储单元只包含一个数据比特,和 所述第二存储器包括包含一个数据比特的寄存器。
25.根据权利要求22所述的电路,其中所述第一存储器包括静态随机存取存储器(SRAM)0
26.根据权利要求22所述的电路,其中所述选择电路包括多路复用器。
27.根据权利要求22所述的电路,进一步包括: 第一电平移位电路,其中所述互连电路进一步可配置为:将第一电平移位电路输出信号耦合到所述第二信号;第二电平移位电路,其中所述互连电路进一步可配置为:将第二电平移位电路输入信号耦合到载入信号,和将第二电平移位电路输出信号耦合到所述第一信号。
28.根据权利要求22所述的电路,其中所述第一存储器用于储存密钥。
29.—种现场可编程门阵列(FPGA),其包含如在权利要求22中限定的所述电路。
30.根据权利要求29所述的FPGA,其中:所述SRAM储存密钥,并且其中所述密钥由所述FPGA使用以储存和传递数据。
【文档编号】G11C11/41GK103503075SQ201280020766
【公开日】2014年1月8日 申请日期:2012年4月18日 优先权日:2011年4月29日
【发明者】B·B·佩德森, D·A·瑞斯 申请人:阿尔特拉公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1