存储器以及存储系统的制作方法

文档序号:25817669发布日期:2021-07-09 14:14阅读:66来源:国知局
存储器以及存储系统的制作方法
存储器以及存储系统
1.相关申请的交叉引用
2.本申请要求2019年12月23日提交的申请号为10

2019

0173147的韩国专利申请的优先权,其全部内容通过引用合并于此。
技术领域
3.各种实施例涉及一种存储器和存储系统,更具体地,涉及存储器的安全性。


背景技术:

4.近来,其中未经授权的用户通过各种非法侵入方法(诸如行锤击(rowhammer)、rambleed、冷启动攻击和跨cpu攻击)从存储器中索取储存在存储器中的重要数据(诸如用户密码和安全密钥)的安全问题备受关注。
5.为了解决这种安全问题,采用了多种方法。例如,对储存在存储器中的数据进行加密或加扰。然而,由于执行解决安全问题的操作,认证密钥可能会被泄露,或者系统性能开销可能会增加。


技术实现要素:

6.各种实施例涉及一种能够加强存储器的安全性的技术。
7.在一个实施例中,一种存储器可以包括:伪随机数发生器(pseudorandom number generator),其适于使用从存储器控制器传送来的初始值产生伪随机数;访问密钥寄存器,其适于储存从存储器控制器传送来的访问密钥;计数器,其适于对访问密钥寄存器被更新的次数进行计数以产生更新数;逻辑运算电路,其适于通过对伪随机数和更新数执行逻辑运算来产生认证密钥;比较电路,其适于将访问密钥和认证密钥进行比较;以及安全区域,其在比较电路的比较结果指示访问密钥和认证密钥相同时,允许被访问。
8.在一个实施例中,一种存储系统可以包括:存储器;以及存储器控制器,其适于控制存储器,其中,存储器包括:伪随机数发生器,其适于使用从存储器控制器传送来的初始值产生伪随机数;访问密钥寄存器,其适于储存从存储器控制器传送来的访问密钥;计数器,其适于对访问密钥寄存器被更新的次数进行计数以产生更新数;逻辑运算电路,其适于通过对伪随机数和更新数执行逻辑运算来产生认证密钥;比较电路,其适于将访问密钥和认证密钥进行比较;以及安全区域,其在比较电路的比较结果指示访问密钥和认证密钥相同时,允许被访问。
9.在一个实施例中,一种安全系统包括客户端设备和服务器设备,其中,客户端设备和服务器设备中的每个包括:第一电路,其适于基于种子值和系数来产生伪随机数;以及第二电路,其适于对第一密钥的大量更新进行计数以产生更新数,其中,客户端设备还包括第三电路,所述第三电路适于基于所产生的伪随机数和更新数来产生第一密钥,以及其中,服务器设备还包括:第四电路,其适于基于所产生的伪随机数和更新数来产生第二密钥;以及第五电路,其适于根据第一密钥和第二密钥而允许访问安全区域。
10.根据实施例,可以加强存储器的安全性。
附图说明
11.图1是示出根据一个实施例的存储器的配置的视图。
12.图2是示出根据一个实施例的存储器控制器的配置的视图。
13.图3是示出如图1的伪随机数发生器的一个实施例的视图。
14.图4是示出如图1的逻辑运算电路的一个实施例的视图。
具体实施方式
15.在下文中,参考附图对实施例进行描述,以便详细描述本发明,使本公开所涉及的技术领域的技术人员能够实践本发明。在下面的描述中,可以省略众所周知的材料。在遍及不同的附图中,相同的部件用相同的附图标记来标识。此外,在整篇说明书中,提及“一个实施例”或类似的词语不一定仅指一个实施例,并且对任何此类词组的不同提及不一定指相同的实施例。
16.图1是示出根据一个实施例的存储器100的视图。
17.参考图1,存储器100可以包括命令接收电路101、地址接收电路103、数据发送/接收电路105、行地址寄存器111、列地址寄存器113、命令解码器115、寄存器电路120、伪随机数发生器130、计数器140、逻辑运算电路150、比较电路160、区域确定电路171、阻止电路173、存储器核180和错误校正电路190。
18.命令接收电路101可以接收从存储器控制器200(如图2所示)传送的命令cmd。命令cmd可以具有多个比特位。地址接收电路103可以接收从存储器控制器200传送的地址add。地址add可以具有多个比特位。数据发送/接收电路105可以向/从存储器控制器200发送/接收数据data。在写入操作期间,数据data可以从存储器控制器200发送到存储器100。在读取操作期间,数据data可以从存储器100发送到存储器控制器200。数据data可以具有多个比特位。
19.命令解码器115可以通过对经由命令接收电路101接收到的命令cmd进行解码来产生内部命令信号。命令解码器115不仅可以对经由命令接收电路101接收到的命令cmd进行解码,还可以对经由地址接收电路103接收到的地址add的一些比特位进行解码,以便产生内部命令信号。内部命令信号可以包括激活信号act、预充电信号pcg、读取信号rd、写入信号wt、多个寄存器写入信号rw<0:3>和移位信号sft。
20.行地址寄存器111和列地址寄存器113可以将经由地址接收电路103接收到的地址add分类为行地址r_add或列地址c_add,并储存行地址r_add或列地址c_add。当要求行地址的命令被施加时,即,当激活信号act被使能时,行地址寄存器111可以将地址add分类为行地址r_add,并存储行地址r_add。当要求列地址c_add的命令被施加时,即,当读取信号rd或写入信号wt被使能时,列地址寄存器113可以将地址add分类为列地址c_add,并储存列地址c_add。
21.寄存器电路120可以包括使能寄存器121、初始值寄存器123、系数寄存器(coefficient register)125和访问密钥寄存器127。当寄存器写入信号rw<3:0>之中的相应的寄存器写入信号被使能时,寄存器121、123、125和127中的每一个都可以使用经由地址
接收电路103接收到的地址add传送的信息进行更新。也就是说,从存储器控制器200传送的信息可以被储存在寄存器电路120的寄存器121、123、125和127中。
22.使能寄存器121可以储存用于指示是否使用安全区域182的使能比特位en。当使能比特位en为
‘1’
时,可以指示将安全区域182用作储存安全数据的安全区域。当使能比特位en为
‘0’
时,可以指示将安全区域182用作储存普通数据的普通(非安全)区域188,所述普通数据是不需要安全维护的数据。当寄存器写入信号rw<0>被使能时,使能比特位en可以被写入到使能寄存器121。
23.初始值寄存器123可以储存要被伪随机数发生器130使用的初始值ini_key<7:0>。当寄存器写入信号rw<1>被使能时,初始值ini_key<7:0>可以被写入到初始值寄存器123。
24.系数寄存器125可以储存要被伪随机数发生器130使用的系数c<6:0>。当寄存器写入信号rw<2>被使能时,系数c<6:0>可以被写入到系数寄存器125。
25.访问密钥寄存器127可以储存从存储器控制器200传送的访问密钥access_key<7:0>。当寄存器写入信号rw<3>被使能时,访问密钥access_key<7:0>可以被写入到访问密钥寄存器127。
26.伪随机数发生器130可以产生伪随机数key<7:0>。伪随机数发生器130可以使用初始值ini_key<7:0>和系数c<6:0>。此外,每当移位信号sft被使能时,伪随机数发生器130可以通过执行移位操作来产生新的伪随机数key<7:0>。
27.计数器140可以对在访问密钥寄存器127中更新访问密钥access_key<7:0>的次数进行计数。即,计数器140可以对寄存器写入信号rw<3>被使能的次数进行计数,并输出计数码cnt<3:0>。
28.逻辑运算电路150可以通过对伪随机数key<7:0>和计数码cnt<3:0>执行逻辑运算来产生认证密钥genkey<7:0>。逻辑运算电路150可以包括用于对伪随机数key<7:0>和计数码cnt<3:0>执行xor运算的多个xor门。
29.比较电路160可以将由逻辑运算电路150产生的认证密钥genkey<7:0>与储存在访问密钥寄存器127中的访问密钥access_key<7:0>进行比较。当认证密钥genkey<7:0>与访问密钥access_key<7:0>一致(即,相同)时,比较电路160可以将匹配信号match使能为
‘1’

30.当使能比特位en为
‘1’
时,区域确定电路171可以被使能。当区域确定电路171被使能时,区域确定电路171可以通过使用行地址r_add的一些比特位(例如,行地址的前三个位)来确定是要访问安全区域182还是普通区域183而产生安全区域信号sec_area。当确定要访问安全区域182时,区域确定电路171可以将安全区域信号sec_area使能为
‘1’
,而当确定要访问普通区域183时,将安全区域信号sec_area禁止为0’。当使能比特位en为
‘0’
时,区域确定电路171可以被禁止。在这种情况下,安全区域信号sec_area可以被固定为
‘0’

31.当安全区域信号sec_area为
‘1’
时,在匹配信号match为
‘1’
的情况下,阻止电路173可以将激活信号act传送到存储器核180,而在匹配信号match为
‘0’
的情况下,阻止激活信号act而不是将激活信号act传送到存储器核180。即,当安全区域182被使能且安全区域182要被访问时,在认证密钥genkey<7:0>和访问密钥access_key<7:0>彼此一致的情况下,阻止电路173可以将激活信号act传送到存储器核180,而在认证密钥genkey<7:0>和访问密钥access_key<7:0>不相同,即,彼此不一致的情况下,阻止电路173阻止激活信号ac向存储器核180的传送。表1显示了阻止电路173的操作。
32.[表1]
[0033]
sec_areamatch阻止电路的操作11act_n=act10act_n=
‘0’
0无关act_n=act
[0034]
当阻止电路173阻止激活信号act的传送时,可以防止对存储器核180的访问。
[0035]
存储器核180可以包括单元阵列181、行电路184和列电路185。单元阵列181可以包括用于储存数据的多个存储单元。单元阵列181可以包括用于储存安全数据的安全区域182和用于储存一般数据的普通区域183。行电路184可以控制单元阵列181的行操作。当从阻止电路173传送的激活信号act_n被使能时,行电路184可以激活单元阵列181中由行地址r_add选择的行,即,字线。当预充电信号pcg被使能时,行电路184可以对被激活的行进行预充电。当读取信号rd被使能时,列电路185可以从单元阵列181中由列地址c_add选择的列中读取数据,并且当写入信号wt被使能时,列电路185将数据写入单元阵列181中由列地址c_add选择的列中。
[0036]
错误校正电路190可以在写入操作期间利用经由数据发送/接收电路105接收到的数据data来产生错误校正码。错误校正码可以经由列电路185与数据data一起被储存在单元阵列181中。此外,在读取操作期间,错误校正电路190可以利用经由列电路185从单元阵列181输出的错误校正码来校正数据data的错误。当安全区域信号sec_area为
‘0’
时,错误校正电路190可以被使能,而当安全区域信号sec_aera为
‘1’
时,错误校正电路190可以被禁止。这是因为,由于当向安全区域182写入/从安全区域182读取数据时,存储器控制器200经常使用较强的错误校正算法,因此在存储器100之内的错误校正电路190不需要被使用。不管安全区域信号sec_area的逻辑电平如何,错误校正电路190都可以被设计为始终使能。
[0037]
仅当访问密钥access_key<7:0>与认证密钥genkey<7:0>一致(即,相同)时,才能访问安全区域182。认证密钥genkey<7:0>是通过反映从存储器控制器200传送的初始值ini_key<7:0>和系数c<6:0>、存储器控制器200施加移位命令的次数(移位信号sft被使能的次数)以及存储器控制器200更新访问密钥access_key<7:0>的次数而产生的。因此,可以完全阻止由不是指定的存储器控制器的另一个存储器控制器对安全区域182的访问。
[0038]
图2是示出根据一个实施例的存储器控制器200的视图。
[0039]
存储器控制器200可以根据主机(host)的请求来控制存储器100的操作。主机的实例包括cpu(中央处理器)、gpu(图形处理单元)、ap(应用程序处理器)等。如图2所示,存储器控制器200可以包括主机接口201、调度器203、命令发生器205、存储器接口207、伪随机数发生器211、计数器213和逻辑运算电路215。存储器控制器200可以被包括在cpu、gpu、ap或类似物中。在这种情况下,主机可以表示在cpu、gpu、ap或类似物中的除了存储器控制器200以外的组件。例如,当存储器控制器200被包括在cpu中时,图2的主机可以表示从cpu中排除存储器控制器200以外的其他组件。
[0040]
主机接口201可以是用于在主机与存储器控制器200之间通信的接口。
[0041]
调度器203可以决定来自主机的请求要被传送到存储器100的顺序。调度器203可以将传送顺序设置为不同于从主机接收请求的顺序,从而改变指示存储器100执行的操作的顺序,以提高存储器100的性能。例如,虽然主机首先请求对存储器100进行读取操作,然
后请求进行写入操作,但是调度器203可以调整该顺序,使得在读取操作之前执行写入操作。
[0042]
命令发生器205可以根据由调度器203决定的操作顺序来产生要应用于存储器100的命令。
[0043]
存储器接口207可以用作在存储器控制器200与存储器100之间的接口。通过存储器接口207,命令cmd和地址add可以从存储器控制器200传送到存储器100,并且数据data可以在其间传输。存储器接口207也可以被称为phy接口。
[0044]
伪随机数发生器211可以以与存储器100的伪随机数发生器130相同的方式进行设计。伪随机数发生器211的初始值ini_key<7:0>和系数c<6:0>可以被设置为相同的值。此外,伪随机数发生器130执行移位操作的次数可以等于伪随机数发生器211执行移位操作的次数。由于在存储器100的伪随机数发生器130中所使用的初始值ini_key<7:0>、系数c<0:6>和移位信号shift是从存储器控制器200传送来的,因此伪随机数发生器211和130可以使用相同的初始值ini_key<7:0>、相同的系数c<0:6>和相同的移位信号shift。也就是说,伪随机数发生器211和130可以产生相同的伪随机数key<7:0>。
[0045]
计数器213可以以与存储器100的计数器140相同的方式进行设计。存储器100的计数器140的计数码cnt<3:0>和存储器控制器200的计数器213的计数码cnt<3:0>可以保持相同的值。存储器100的计数器140可以计算寄存器写入信号rw<3>被使能的次数。由于通过从存储器控制器200传送的命令cmd产生寄存器写入信号rw<3>,因此计数器213和140的计数码cnt<3:0>可以保持相同的值。
[0046]
逻辑运算电路215可以以与存储器100的逻辑运算电路150相同的方式进行设计。逻辑运算电路215可以通过对由伪随机数发生器211产生的伪随机数key<7:0>和由计数器140产生的计数码cnt<3:0>执行xor运算来产生访问密钥access_key<7:0>。由逻辑运算电路215产生的访问密钥access_key<7:0>可以等于由逻辑运算电路150产生的认证密钥genkey<7:0>。
[0047]
在存储器控制器200中用于产生访问密钥access_key<7:0>的组件211、213和215可以以与存储器100中它们各自对应的用于产生认证密钥genkey<7:0>的组件130、140和150相同的方式进行设计。存储器控制器200的组件211、213和215使用与存储器100的组件130、140和150相同的变量。因此,由组件211、213和215产生的访问密钥access_key<7:0>可以等于由组件130、140和150产生的认证密钥genkey<7:0>,即,相同。
[0048]
当打算访问存储器100的安全区域182时,存储器控制器200可以通过存储器接口207将由组件211、213和215产生的访问密钥access_key<7:0>更新到存储器100的访问密钥寄存器127中,然后访问该安全区域。当完成对安全区域182的访问时,存储器控制器200可以更新假的访问密钥到访问密钥寄存器127中,以代替由组件211、213和215产生的真的访问密钥access_key<7:0>,从而不可以访问安全区域182。由于仅存储器控制器200知晓正确的访问密钥access_key<7:0>,因此可以阻止另一个存储器控制器(而不是存储器控制器200)对存储器100的安全区域182的访问。也就是说,可以维持储存在安全区域182中的数据的安全性。
[0049]
图3是示出图1的伪随机数发生器130的一个实施例的视图。
[0050]
参考图3,伪随机数发生器130可以包括触发(toggle)发生器310和lfsr(线性反馈
移位寄存器)320。
[0051]
每当移位信号shf被使能时,触发发生器310可以使能触发信号toggle。
[0052]
lfsr 320可以包括串联耦接的d触发器321至328、用于反馈的xor门331至337以及用于响应于系数c<6:0>来决定lfsr 320的反馈特性的选择器341至347。
[0053]
d触发器321至328中的每个触发器的初始值可以设置为对应的ini_key<7:0>的初始值。例如,d触发器321的初始值可以是ini_key<0>,并且d触发器324的初始值可以是ini_key<3>。xor门331至337可以用于d触发器321至328的反馈,并且反馈特性可以根据选择器341至347基于系数c<6:0>的选择来决定。例如,当c<3>为
‘0’
时,选择器344可以选择
‘0’
,并将
‘0’
输入到xor门334,而当c<3>为
‘1’
时,选择器344可以选择d触发器324的输出,并将所选择的输出输入到xor门334。此外,当c<5>为
‘0’
时,选择器346可以选择
‘0’
并将
‘0’
输入到xor门336,而当c<5>为
‘1’
时,选择器346可以选择d触发器326的输出,并将所选择的输出输入到xor门336。也就是说,取决于选择器341至347根据系数c<6:0>选择了什么,可以决定lfsr 320的反馈特性。
[0054]
每当触发信号toggle被使能时,d触发器321至328可以执行移位操作。
[0055]
储存在d触发器321至328中的值可以成为伪随机数key<7:0>。伪随机数key<7:0>可以根据初始值ini_key<7:0>、用于决定反馈特性的系数c<6:0>以及移位信号sft被使能的次数来决定。
[0056]
图4是示出图1的逻辑运算电路150的一个实施例的视图。
[0057]
参考图4,逻辑运算电路150可以包括xor门401至408。
[0058]
xor门401至408可以通过对伪随机数key<7:0>和计数码cnt<3:0>执行逻辑运算来产生认证密钥genkey<7:0>。由于伪随机数key<7:0>具有八比特位并且计数码cnt<3:0>具有四比特位,因此如图4所示,认证密钥genkey<7:0>可以通过对伪随机数key<7:0>的前4比特位和计数码cnt<3:0>执行xor运算和对伪随机数key<7:0>的后4比特位和计数码cnt<3:0>执行xor运算的方法来产生。
[0059]
xor门401可以接收key<7>和cnt<3>并输出genkey<7>。xor门402可以接收key<6>和cnt<2>并输出genkey<6>。xor门403可以接收key<5>和cnt<1>并输出genkey<5>。xor门404可以接收key<4>和cnt<0>并输出genkey<4>。xor门405可以接收key<3>和cnt<3>并输出genkey<3>。xor门406可以接收key<2>和cnt<2>并输出genkey<2>。xor门407可以接收key<1>和cnt<1>并输出genkey<1>。xor门408可以接收key<0>和cnt<0>并输出genkey<0>。
[0060]
虽然已经例示和描述了各种实施例,但对于本领域的技术人员来说显而易见地是,在不偏离所附权利要求所限定的本发明的精神和范围的情况下,可以进行各种改变和修改。本发明涵盖落入权利要求范围内的所有此类改变和修改。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1