掌桥专利:专业的专利平台
掌桥专利
首页

可信计算装置

文献发布时间:2024-04-18 20:01:23


可信计算装置

相关申请的交叉引用

本申请要求于2021年11月9日在韩国知识产权局提交的韩国专利申请No.10-2021-0153229和于2022年1月12日在韩国知识产权局提交的韩国专利申请No.10-2022-0004434的优先权以及从中获得的全部权益,所述韩国专利申请中的每一个的内容以引用的方式全部并入本文。

技术领域

实施例涉及可信计算装置及其操作方法。

背景技术

在提供或包括对互联网的访问的计算环境中,各种黑客攻击逐渐增加。为了避免这种黑客攻击,需要操作系统或软件的恒定安全补丁。因此,已经进行了从根本上解决上述问题的尝试,结果,已经研究和开发了可信计算(TC)技术。

发明内容

实施例针对一种可信计算装置,包括:由固件驱动的装置;以及主控制器,其在第一周期根据固件生成认证值并且检查认证值的完整性,其中,主控制器包括:生成认证值的认证值生成器、存储认证值的认证值存储库、阻止外部对存储在认证值存储库中的认证值的访问的安全核、以及检查存储在认证值存储库中的认证值的完整性的完整性检查器。

实施例针对一种可信计算装置,其包括:由第一固件驱动的第一装置及由第二固件驱动的第二装置;及主控制器,其在第一周期根据第一固件生成第一认证值并且检查第一认证值的完整性,并且在第二周期根据第二固件生成第二认证值并且检查第二认证值的完整性,其中,主控制器包括:认证值生成器,其生成第一认证值和第二认证值;认证值存储库,其存储第一认证值和第二认证值;安全核,其阻止从外部对存储在认证值存储库中的第一认证值和第二认证值的访问;以及完整性检查器,其检查存储在认证值存储库中的第一认证值和第二认证值的完整性。

实施例针对一种可信计算装置,包括:主控制器,其检查驱动该装置的固件的认证值的完整性,其中,主控制器在每个第一周期检查认证值的完整性,并且主控制器通过认证值生成器生成认证值,通过认证值存储库存储认证值,通过安全核阻止从外部对存储在认证值存储库中的认证值的访问,并且通过完整性检查器检查存储在认证值存储库中的认证值的完整性。

附图说明

通过参照附图详细描述示例实施例,本领域技术人员将清楚特征,在附图中:

图1是示出根据一些示例实施例的可信计算系统的框图。

图2是示出根据一些示例实施例的可信计算装置的主控制器的框图。

图3是示出根据一些示例实施例的操作可信计算装置的主控制器的方法的流程图。

图4和图5是示出根据一些示例实施例的可信计算装置的主控制器的操作的框图。

图6是示出根据一些示例实施例的可信计算装置的主控制器中的完整性检查器的框图。

图7是示出根据一些示例实施例的可信计算装置的主控制器中的完整性检查器的操作的流程图。

图8是示出根据一些示例实施例的可信计算装置的主控制器中的攻击者检测器的框图。

图9是示出应用了根据一些示例实施例的可信计算装置的系统的示例图。

图10是示出应用了根据一些示例实施例的可信计算装置的存储系统的示例图。

图11是示出应用了根据一些示例实施例的可信计算装置的数据中心的示例图。

具体实施方式

图1是示出根据一些示例实施例的可信计算系统的框图。

参照图1,可信计算系统1可包括验证者10和平台20。

验证者10可以是使用平台20的用户,并且可以是请求平台20提供服务的用户。验证者10可执行证明关于平台20是否可靠的可靠性的操作。用户可包括使用任何电子装置(诸如,例如,个人计算机、蜂窝电话、手持消息装置、膝上型计算机、机顶盒、个人信息终端或电子书阅读器)的实体。

平台20可包括主控制器200和多个装置202-1至202-n(n是自然数)。主控制器200可控制平台20的整体操作。此外,主控制器200可执行与平台20中包括的装置的通信。例如,主控制器200可将命令传送到多个装置202-1至202-n。主控制器200可以是例如基板管理控制器(BMC)、可信平台模块(TPM)或安全处理器。

多个装置202-1至202-n中的每一个可以是例如中央处理单元(CPU)、图形处理单元(GPU)、网络接口卡(NIC)或存储装置。

存储装置可包括例如2D NAND存储器阵列或3D(或竖直)NAND(VNAND)存储器阵列。作为另一示例,存储装置可包括其它各种类型的非易失性存储器。例如,存储装置可以是应用了磁性RAM(MRAM)、自旋转移矩MRAM、导电桥接RAM(CBRAM)、铁电RAM(FeRAM)、相变RAM(PRAM)、电阻RAM或者另一类型的存储器的电子存储装置。

多个装置202-1至202-n中的每一个都可由固件204-1至204-n驱动。尽管多个装置202-1至202-n被示出为分别包括固件204-1至204-n,但是这可改变,例如,仅多个装置202-1至202-n中的一些装置可包括固件。

例如,当第一装置202-1为中央处理单元时,固件可能不存在于第一装置202-1中。假设第二装置202-2为只读存储器(ROM),第一装置202-1可执行编程至第二装置202-2中的固件(或代码或函数)204-2。

当验证者10向平台20发送证明请求以执行证明关于平台20是否可靠的可靠性的操作时,平台20可向验证者10发出证明多个装置202-1至202-n的可靠性的证明响应。

此时,平台20可一起发送多个固件204-1至204-n的认证值。也就是说,应当保持从平台20向验证者10发送的认证值的完整性,使得验证者10可信任证明响应。

在下文中,将详细描述根据一些实施例的保持从平台20(在下文中,统称为可信计算装置)向验证者10发送的认证值的完整性的配置和操作。

图2是示出根据一些示例实施例的可信计算装置的主控制器的框图。

参照图1和图2,主控制器200可包括安全核210、认证值生成器220、认证值存储库230、完整性检查器240和攻击者检测器250。

安全核210可接收多个固件204-1至204-n或用于多个固件204-1至204-n的代码(在下文中,统称为用于多个固件204-1至204-n的代码)。

然后,认证值生成器220可通过使用从安全核210接收的多个固件204-1至204-n的代码来生成多个认证值。例如,认证值生成器220可通过将散列函数应用于多个固件204-1至204-n的代码来生成多个认证值。

通过认证值生成器220生成的多个认证值可存储在认证值存储库230中。认证值存储库230可包括多个寄存器,以将多个认证值中的每一个存储在每个寄存器中,但是例如,多个认证值可存储在一个寄存器中。

当多个认证值被存储在认证值存储库230中时,安全核210可锁定多个认证值。例如,安全核210可在硬件中锁定存储在认证值存储库230中的多个认证值。

更详细地,安全核210可阻止外部针对存储在认证值存储库230中的多个认证值的访问,以阻止对多个认证值的调制。来自外部的访问可以是例如对主控制器200中的另一核的访问,或者验证者10的访问。

然后,完整性检查器240可周期性地检查存储在认证值存储库230中的多个认证值的完整性。完整性检查器240检查多个认证值的完整性的周期可以是实时的。完整性检查器240检查多个认证值的完整性的周期可以是验证者10向平台20发送证明请求的周期。

完整性检查器240检查多个认证值中的每一个的完整性的周期可彼此不同。例如,完整性检查器240可在第一周期检查第一认证值的完整性,并且可在第二周期检查第二认证值的完整性。可替换地,完整性检查器240检查多个认证值中的每一个的完整性的周期可彼此相同。例如,当完整性检查器240在第一周期检查第一认证值的完整性并在第二周期检查第二认证值的完整性时,第一周期和第二周期可彼此相同。

完整性检查器240检查多个认证值中的每一个的完整性的周期可仅由安全核210控制。

作为检查多个认证值的完整性的结果,当完整性检查器240确定完整性被保持时,完整性检查器240可继续检查完整性。

另一方面,作为检查多个认证值的完整性的结果,当完整性检查器240确定完整性未被未保持时,完整性检查器240可向攻击者检测器250发送指示认证值的完整性未被保持的信号。

接收到指示完整性未被保持的信号的攻击者检测器250可重置其完整性未被保持的认证值。例如,当其完整性未被保持的认证值是0x2456781285时,攻击者检测器250可将认证值重置为00000000。此外,攻击者检测器250可通知安全核210认证值的完整性未被保持。

攻击者检测器250的对其完整性未被保持的认证值进行重置的操作和通知安全核210认证值的完整性未被保持的操作可并行执行,或者可按顺序执行。

图3是示出根据一些示例实施例的操作可信计算装置的主控制器的方法的流程图。图4和图5是示出根据一些示例实施例的可信计算装置的主控制器的操作的框图。

参照图1至图5,安全核210可接收多个固件204-1至204-n或用于多个固件204-1至204-n的代码(S100)。

然后,认证值生成器220可通过使用从安全核210接收的用于多个固件204-1至204-n的代码CODE1至CODE n来生成多个认证值(认证值1至认证值n)(S200)。例如,认证值生成器220可通过将散列函数应用于用于多个固件204-1至204-n的代码CODE1至CODE n来生成多个认证值(认证值1至认证值n)。

可将由认证值生成器220生成的多个认证值(认证值1至认证值n)存储在认证值存储库230中(S300)。认证值存储库230可包括多个寄存器232-1至232-n,以将多个认证值中的每一个存储在每个寄存器中。例如,第一认证值(认证值1)可存储在第一寄存器232-1中,第二认证值(认证值2)可存储在第二寄存器232-2中,并且第n认证值(认证值n)可存储在第(n)寄存器232-n中。

在另一实施例中,多个认证值(认证值1至认证值n)可存储在一个寄存器232-1中。例如,如图5所示,多个认证值(认证值1至认证值n)可存储在一个寄存器232-1中。

当多个认证值(认证值1至认证值n)存储在认证值存储库230中时,安全核210可锁定多个认证值(认证值1至认证值n)(S400)。例如,安全核210可在硬件中锁定存储在认证值存储库230中的多个认证值。

更详细地,安全核210可阻止外部对存储在认证值存储库230中的多个认证值(认证值1至认证值n)的访问,以阻止对多个认证值(认证值1至认证值n)的调制。来自外部的访问可以是例如主控制器200中的另一个核的访问或验证者的10的访问。

然后,完整性检查器240可周期性地检查存储在认证值存储库230中的多个认证值(认证值1至认证值n)的完整性(S500)。完整性检查器240检查多个认证值(认证值1至认证值n)的完整性的周期可以是实时的。完整性检查器240检查多个认证值(认证值1至认证值n)的完整性的周期可以是验证者10向平台20发送证明请求的周期。

完整性检查器240检查多个认证值(认证值1至认证值n)中的每一个的完整性的周期可彼此不同。例如,完整性检查器240可在第一周期检查第一认证值(认证值1)的完整性,并且可在第二周期检查第二认证值(认证值2)的完整性。可替换地,完整性检查器240检查多个认证值(认证值1至认证值n)中的每一个的完整性的周期可彼此相同。例如,当完整性检查器240在第一周期检查第一认证值(认证值1)的完整性,并在第二周期检查第二认证值(认证值2)的完整性时,第一周期和第二周期可彼此相同。

完整性检查器240检查多个认证值(认证值1至认证值n)中的每一个的完整性的周期可仅由安全核210控制。

作为检查多个认证值(认证值1至认证值n)的完整性的结果(S600),当完整性检查器240确定完整性被保持(是)时,完整性检查器240可继续检查完整性(S500)。

另一方面,作为检查多个认证值(认证值1至认证值n)的完整性的结果,当完整性检查器240确定完整性未被保持时(否),完整性检查器240可向攻击者检测器250发送指示认证值的完整性未被保持的信号。

接收到指示完整性未被保持的信号的攻击者检测器250可重置其完整性未被保持的认证值。例如,当其完整性未被保持的认证值是0x2456781285时,攻击者检测器250可将认证值重置为00000000。此外,攻击者检测器250可通知安全核210认证值的完整性未被保持(S700)。

攻击者检测器250的重置其完整性未被保持的认证值的操作和通知安全核210认证值的完整性未被保持的操作可并行执行,或者可按顺序执行。

图6是示出根据一些示例实施例的可信计算装置的主控制器中的完整性检查器的框图。

参照图2、图4和图6,完整性检查器240包括原始标签生成器242和比较标签生成器244。

当认证值生成器220生成认证值(认证值1至认证值n)并且生成的认证值(认证值1至认证值n)被存储在认证值存储库230中时,原始标签生成器242可针对存储在认证值存储库230中的认证值认证值1至认证值n中的每一个生成原始标签(原始TAG)。例如,原始标签生成器242可针对第一认证值(认证值1)生成第一原始标签(原始TAG1),并且可针对第二认证值(认证值2)生成第二原始标签(原始TAG2)。

原始标签生成器242可通过HMAC(密钥散列消息认证码(key-Hash MessageAuthentication Code))、散列函数、循环冗余校验(CRC)或奇偶校验位来生成原始标签(原始TAG)。

比较标签生成器244可在完整性检查器240检查认证值(认证值1至认证值n)的完整性的每个周期生成针对认证值(认证值1至认证值n)的实时标签(实时TAG)。例如,比较标签生成器244可针对第一认证值(认证值1)生成第一实时标签(实时TAG1),并且可针对第二认证值(认证值2)生成第二实时标签(实时TAG2)。

比较标签生成器244可通过HMAC(密钥散列消息认证码)、散列函数、循环冗余校验(CRC)或奇偶校验位来生成实时TAG。

此时,由原始标签生成器242生成的原始TAG和由比较标签生成器244生成的实时TAG可以以相同的方式被生成。例如,当原始标签生成器242通过CRC生成原始TAG时,比较标签生成器244也可通过CRC生成实时TAG。

之后,比较器246可在完整性检查器240检查认证值(认证值1至认证值n)的完整性的每个周期将实时TAG与原始TAG进行比较。例如,比较器246可将第一实时标签(实时TAG1)与第一原始标签(原始TAG1)进行比较。此外,例如,比较器246可将第二实时标签(实时TAG2)与第二原始标签(原始TAG2)进行比较。

当确定实时TAG和原始TAG彼此相同时,可确定存储在认证值存储库230中的认证值(认证值1至认证值n)的完整性被保持。例如,当确定第一实时标签(实时TAG1)和第一原始标签(原始TAG1)彼此相同时,可确定第一认证值(认证值1)的完整性被保持。此外,例如,当确定第二实时标签(实时TAG2)和第二原始标签(原始TAG2)彼此相同时,可确定第二认证值(认证值2)的完整性被保持。

可继续生成实时TAG。

当确定实时TAG和原始TAG彼此不相同时,可确定存储在认证值存储库230中的认证值(认证值1至认证值n)的完整性未被保持。例如,当确定第一实时标签(实时TAG1)与第一原始标签(原始TAG1)彼此不相同时,可确定第一认证值(认证值1)的完整性未被保持。此外,例如,当确定第二实时标签(实时TAG2)与第二原始标签(原始TAG2)彼此不相同时,可确定第二认证值(认证值2)的完整性未被保持。

此时,完整性检查器240可向攻击者检测器250发送指示存储在认证值存储库230中的认证值(认证值1至认证值n)中的全部或一些的完整性未被保持的信号。然后,已经接收到指示完整性未被保持的信号的攻击者检测器250可重置其完整性未被保持的认证值。例如,当其完整性未被保持的认证值是0x2456781285时,攻击者检测器250可将认证值重置为00000000。此外,攻击者检测器250可通知安全核210认证值的完整性未被保持。

图7是示出根据一些示例实施例的可信计算装置的主控制器中的完整性检查器的操作的流程图。

参照图2、图4、图6和图7,当认证值生成器220生成认证值(认证值1至认证值n)并且生成的认证值(认证值1至认证值n)被存储在认证值存储库230中时,原始标签生成器242可针对存储在认证值存储库230中的认证值(认证值1至认证值n)中的每一个生成原始标签(原始TAG)(S502)。例如,原始标签生成器242可针对第一认证值(认证值1)生成第一原始标签(原始TAG1),并且可针对第二认证值(认证值2)生成第二原始标签(原始TAG2)。

原始标签生成器242可通过HMAC(密钥散列消息认证码)、散列函数、循环冗余校验(CRC)或奇偶校验位来生成原始标签(原始TAG)。

比较标签生成器244可在完整性检查器240检查认证值(认证值1至认证值n)的完整性的每个周期生成针对认证值(认证值1至认证值n)的实时标签(实时TAG)(S504)。例如,比较标签生成器244可针对第一认证值(认证值1)生成第一实时标签(实时TAG1),并且可针对第二认证值(认证值2)生成第二实时标签(实时TAG2)。

比较标签生成器244可通过HMAC(密钥散列消息认证码)、散列函数、循环冗余校验(CRC)或奇偶校验位来生成实时TAG。

此时,由原始标签生成器242生成的原始TAG和由比较标签生成器244生成的实时TAG可以以相同的方式被生成。例如,当原始标签生成器242通过CRC生成原始TAG时,比较标签生成器244也可通过CRC生成实时TAG。

然后,比较器246可在完整性检查器240检查认证值(认证值1至认证值n)的完整性的每个周期将实时TAG与原始TAG进行比较(S506)。例如,比较器246可将第一实时标签(实时TAG1)与第一原始标签(原始TAG1)进行比较。此外,例如,比较器246可将第二实时标签(实时TAG2)与第二原始标签(原始TAG2)进行比较。

此时,可检查实时标签实时TAG和原始标签原始TAG之间的比较结果(S602)。当确定实时TAG和原始TAG彼此相同时(是),可确定存储在认证值存储库230中的认证值(认证值1至认证值n)的完整性被保持。例如,当确定第一实时标签(实时TAG1)和第一原始标签(原始TAG1)彼此相同时,可确定第一认证值(认证值1)的完整性被保持。此外,例如,当确定第二实时标签(实时TAG2)和第二原始标签(原始TAG2)彼此相同时,可确定第二认证值(认证值2)的完整性被保持。

可继续生成实时TAG(S504)。

作为实时标签(实时TAG)与原始标签(原始TAG)之间的比较结果(S602),当确定实时TAG与原始TAG彼此不相同时(否),可确定存储在认证值存储库230中的认证值(认证值1至认证值n)的完整性未被保持。例如,当确定第一实时标签(实时TAG1)与第一原始标签(原始TAG1)彼此不相同时,可确定第一认证值(认证值1)的完整性未被保持。此外,例如,当确定第二实时标签(实时TAG2)与第二原始标签(原始TAG2)彼此不相同时,可确定第二认证值(认证值2)的完整性未被保持。

此时,完整性检查器240可向攻击者检测器250发送指示存储在认证值存储库230中的认证值(认证值1至认证值n)中的全部或一些的完整性未被保持的信号。然后,已经接收到指示完整性未被保持的信号的攻击者检测器250可重置其完整性未被保持的认证值。例如,当其完整性未被保持的认证值是0x2456781285时,攻击者检测器250可将认证值重置为00000000。此外,攻击者检测器250可通知安全核210认证值的完整性未被保持。

图8是示出根据一些示例实施例的可信计算装置的主控制器中的攻击者检测器的框图。

参照图8,攻击者检测器250可包括重置模块252和警报模块254。

已经从完整性检查器240接收到指示完整性未被保持的信号的攻击者检测器250的重置模块252可重置其完整性未被保持的认证值。例如,当其完整性未被保持的认证值是0x2456781285时,重置模块252可将认证值重置为00000000。

此外,警报模块254可通知安全核210认证值的完整性未被保持。

重置模块252的将其完整性未被保持的认证值重置的操作和警报模块254的通知安全核210认证值的完整性已不被保持的操作可并行执行,或者可按顺序执行。

图9是示出应用了根据一些示例实施例的可信计算装置的系统的示例图。

图9示出应用了根据示例实施例的可信计算装置的系统1000。图9的系统1000可以是移动系统,诸如移动电话、智能电话、平板个人计算机(PC)、可穿戴装置、保健装置或物联网(IOT)装置、个人计算机、膝上型计算机、服务器、媒体播放器或诸如导航仪的汽车装置。

参照图9,系统1000可包括主处理器1100、存储器1200a和存储器1200b、存储装置1300a和存储装置1300b、以及图像捕获装置1410、用户输入装置1420、传感器1430、通信装置1440、显示器1450、扬声器1460、供电装置1470和连接接口1480中的一个或多个。

主处理器1100可控制系统1000的整体操作,例如,构成系统1000的其它元件的操作。主处理器1100可被实现为通用处理器、专用处理器或应用处理器。

主处理器1100可包括一个或多个CPU核1110,并且还可包括用于控制存储器1200a和1200b和/或存储装置1300a和1300b的控制器1120。根据示例实施例,主处理器1100还可包括加速器1130,加速器1130是用于诸如人工智能(AI)数据计算的高速数据计算的专用电路。加速器1130可包括图形处理单元(GPU)、神经网络处理单元(NPU)和/或数据处理单元(DPU),并且可被实现为物理上独立于主处理器1100的其它元件的单独芯片。

存储器1200a和1200b可用作系统1000的主存储器装置,并且可包括诸如SRAM和/或DRAM的易失性存储器,但还可包含诸如闪速存储器、PRAM和/或RRAM的非易失性存储器。存储器1200a和1200b可在与主处理器1100相同的封装件中实现。

存储装置1300a和1300b可用作不管是否被供电均用于存储数据的非易失性存储装置,并且可具有比存储器1200a和1200b的存储容量相对更大的存储容量。存储装置1300a和1300b可包括存储控制器(STRG CTRL)1310a和1310b以及用于在存储控制器1310a和1310b的控制下存储数据的非易失性存储器(NVM)1320a和1320b。非易失性存储器1320a和1320b可包括二维(2D)结构或三维(3D)竖直NAND(V-NAND)结构的闪速存储器,但还可包括其它类型的非易失性存储器,例如PRAM和/或RRAM。

存储装置1300a和1300b可以以与主处理器1100物理分离的状态被包括在系统1000中,并且可在与主处理器1100相同的封装件中被实现。另外,存储装置1300a和1300b可通过具有与固态装置(SSD)或存储卡的接口相同的形式,通过诸如将在后面描述的连接接口1480的接口可拆卸地耦接到系统1000的其它元件。这样的存储装置1300a和1300b可以是应用了诸如通用闪存(UFS)、嵌入式多媒体卡(eMMC)或非易失性存储器高速(NVMe)的标准协议的装置。

尽管未示出,但是存储装置1300a和1300b可包括参照图1至8描述的主控制器200。

图像捕获装置1410可捕获静止图像或视频,并且可以是相机、摄像机和/或网络摄像机。

用户输入装置1420可从系统1000的用户接收各种类型的数据输入,并且可以是触摸板、小键盘、鼠标和/或麦克风。

传感器1430可感测可从系统1000的外部获取的各种类型的物理量,并且将感测到的物理量转换成电信号。传感器1430可以是温度传感器、压力传感器、照度传感器、位置传感器、加速度传感器、生物传感器和/或陀螺仪传感器。

通信装置1440可根据各种通信协议在系统1000外部的其它装置之间执行信号的发送和接收。这样的通信装置1440可通过包括天线、收发机和/或调制解调器来实现。

显示器1450和扬声器1460可用作分别向系统1000的用户输出视觉信息和听觉信息的输出装置。

供电装置1470可适当地转换从外部电源和/或嵌入在系统1000中的电池(未示出)供应的电力,以将电力供应给系统1000的每个元件。

连接接口1480可提供系统1000和连接到系统1000以与系统1000交换数据的外部装置之间的连接。连接接口1480可以以各种接口方式实现,诸如高级技术附件(ATA)、串行ATA(SATA)、外部SATA(e-SATA)、小型计算机小型接口(SCSI)、串行附接SCSI(SAS)、外围组件互连(PCI)、PCI快速(PCIe)、NVMe、IEEE 1394、通用串行总线(USB)、安全数字(SD)卡、多媒体卡(MMC)、eMMC、UFS、嵌入式通用闪存(eUFS)和紧凑闪存(CF)卡接口。

图10是示出应用了根据一些示例实施例的可信计算装置的存储系统的示例图。

图10是示出应用了根据示例实施例的可信计算装置的主机-存储系统2000的框图。

主机-存储系统2000可包括主机2100和存储装置2200。主机2100可以是上面参照图1至图8描述的验证者10。此外,存储装置2200可以是上面参照图1至图8描述的可信计算装置20。

存储装置2200可包括存储控制器2210和非易失性存储器(NVM)2220。此外,根据示例实施例,主机2100可包括主机控制器2110和主机存储器2120。主机存储器2120可用作用于临时存储将被发送到存储装置2200的数据或从存储装置2200发送的数据的缓冲存储器。

存储装置2200还可包括用于根据来自主机2100的请求存储数据的存储介质。作为示例,存储装置2200可包括固态驱动器(SSD)、嵌入式存储器或可拆卸外部存储器中的至少一个。当存储装置2200是SSD时,存储装置2200可以是符合非易失性存储器快速(NVMe)标准的装置。当存储装置2200是嵌入式存储器或外部存储器时,存储装置2200可以是符合通用闪存(UFS)标准或嵌入式多媒体卡(eMMC)标准的装置。主机2100和存储装置2200中的每一个可根据采用的标准协议生成和发送分组。

当存储装置2200的非易失性存储器2220包括闪速存储器时,闪速存储器可包括2DNAND存储器阵列或3D(或竖直)NAND(VNAND)存储器阵列。作为另一示例,存储装置2200可包括其它各种类型的非易失性存储器。例如,磁性随机存取存储器(MRAM)、自旋转移矩MRAM、导电桥接RAM(CBRAM)、铁电RAM(FeRAM)、相位RAM(PRAM)、电阻RAM以及其它各种类型的存储器可应用于存储装置2200。

根据示例实施例,主机控制器2110和主机存储器2120中的每一个可被实现为单独的半导体芯片。可替换地,在一些示例实施例中,主机控制器2110和主机存储器2120可被集成到同一半导体芯片中。作为示例,主机控制器2110可以是设置在应用处理器中的多个模块中的任何模块,并且应用处理器可实现为片上系统(SoC)。此外,主机存储器2120可以是设置在应用处理器中的嵌入式存储器,或者可以是布置在应用处理器外部的非易失性存储器或存储器模块。

主机控制器2110可将主机存储器2120的缓冲区的数据(例如,写入数据)存储在非易失性存储器2220中,或可管理将非易失性存储器2220的数据(例如,读取数据)存储在缓冲区中的操作。

存储控制器2210可包括主机接口(主机I/F)2211、存储器接口(存储器I/F)2212和中央处理单元(CPU)2213。存储控制器2210还可包括快闪转换层(FTL)2214、主控制器2215、缓冲存储器2216、纠错码(ECC)引擎2217和加密/解密引擎(EN/DE ENG)2218。存储控制器2210还可包括工作存储器(未示出),快闪转换层FTL 2214加载在该工作存储器中,并且CPU2213可通过执行快闪转换层2214来控制对非易失性存储器2220的数据写入和读取操作。

主机接口2211可向主机2100发送分组并从主机2100接收分组。从主机2100发送到主机接口2211的分组可包括命令或要被写入非易失性存储器2220中的数据,并且从主机接口2211发送到主机2100的分组可包括对命令或从非易失性存储器2220读取的数据的响应。存储器接口2212可将要写入非易失性存储器2220中的数据发送到非易失性存储器2220,或者可接收从非易失性存储器2220读取的数据。这样的存储器接口2212可被实现为符合诸如切换或开放NAND闪存接口(ONFI)的标准协议。

快闪转换层2214可执行各种功能,诸如地址映射、损耗均衡和垃圾收集。地址映射操作是将从主机2100接收的逻辑地址改变为用于在非易失性存储器2220中实际存储数据的物理地址的操作。损耗均衡是通过允许统一使用非易失性存储器2220中的块来防止特定块的过度劣化的技术,并且可示例性地通过用于平衡物理块的擦除计数的固件技术来实现。垃圾收集是通过将块的有效数据复制到新块然后擦除现有块来确保非易失性存储器2220中的可用容量的技术。

主控制器2215可以是参照图1至图8描述的主控制器。

缓冲存储器2216可设置在存储控制器2210中,但是可设置在存储控制器2210的外部。

ECC引擎2217可对从非易失性存储器2220读取的读取数据执行错误检测和纠正功能。更详细地,ECC引擎2217可针对将被写入非易失性存储器2220中的写入数据生成奇偶校验位,并且生成的奇偶校验位可与写入数据一起存储在非易失性存储器2220中。当从非易失性存储器2220读取数据时,ECC引擎217可通过使用从非易失性存储器2220读取的奇偶校验位连同读取数据来纠正读取数据的错误,然后可输出经纠错的读取数据。

加密/解密引擎2218可对输入到存储控制器2210的数据执行加密操作或解密操作中的至少一个。

例如,加密/解密引擎2218可通过使用对称密钥算法来执行加密操作和/或解密操作。在这种情况下,加密/解密引擎2218可通过使用例如高级加密标准(AES)算法或数据加密标准(DES)算法来执行加密操作和/或解密操作。

此外,例如,加密/解密引擎2218可通过使用公钥加密算法来执行加密操作和/或解密操作。此时,加密/解密引擎2218可在加密操作期间通过使用公钥来执行加密,并且可在解密操作期间通过使用密钥来执行解密。例如,加密/解密引擎2218可利用RivestShamir Adleman(RSA)算法、椭圆曲线密码术(ECC)算法或Diffie-Hellman(DH)加密算法。

加密/解密引擎218可通过使用诸如同态加密(HE)、后量子密码术(PQC)或函数加密(FE)的量子密码术技术来执行加密操作和/或解密操作。

图11是示出应用了根据一些示例实施例的可信计算装置的数据中心的示例图。

参照图11,数据中心3000是用于通过收集各种数据来提供服务的设施,并且可被称为数据存储中心。数据中心3000可以是用于搜索引擎或数据库操作的系统,并且可以是在诸如银行或政府机构的企业中使用的计算系统。数据中心3000可包括应用服务器3100_1至3100_n和存储服务器3200_1至3200_m。可根据示例实施例不同地选择应用服务器3100_1至3100_n的数量和存储服务器3200_1至3200_m的数量,并且应用服务器3100_1至3100_n的数量和存储服务器3200_1至3200_m的数量可彼此不同。

应用服务器3100或存储服务器3200可包括处理器3110和3210或者存储器3120和3220中的至少一个。将通过示例描述存储服务器3200。处理器3210可控制存储服务器3200的整体操作,并且可访问存储器3220以执行加载到存储器3220中的命令语言和/或数据。存储器3220可以是双数据速率同步DRAM(DDR SDRAM)、高带宽存储器(HBM)、混合存储器立方体(HMC)、双列直插存储器模块(DIMM)、Optane DIMM和/或非易失性DIMM(NVMDMMM)。根据示例实施例,可不同地选择包括在存储服务器3200中的处理器3210的数量和存储器3220的数量。在示例实施例中,处理器3210和存储器3220可提供处理器-存储器对。在示例实施例中,处理器3210的数量和存储器3220的数量可彼此不同。处理器3210可包括单核处理器或多核处理器。存储服务器3200的描述可类似地应用于应用服务器3100。根据示例实施例,应用服务器3100可不包括存储装置3150。存储服务器3200可包括至少一个存储装置3250。根据示例实施例,可不同地选择包括在存储服务器3200中的存储装置3250的数量。

应用服务器3100_1至3100_n和存储服务器3200_1至3200_m可通过网络3300彼此进行通信。网络3300可使用光纤通道(FC)或以太网来实现。在这种情况下,FC是用于相对高速数据传输的介质,并且可使用提供高性能/高可用性的光开关。根据网络3300的访问方案,存储服务器3200_1至3200_m可被提供为文件存储部、块存储部或对象存储部。

在示例实施例中,网络3300可以是诸如存储区域网络(SAN)的仅存储网络。例如,SAN可以是使用FC网络并根据FC协议(FCP)实现的FC-SAN。对于另一示例,SAN可以是使用TCP/IP网络并且根据TCP/IP上的SCSI或互联网SCSI(iSCSI)协议来实现的IP-SAN。在另一示例实施例中,网络3300可以是诸如TCP/IP网络的通用网络。例如,网络3300可根据诸如以太网上的FC(FCoE)、网络附接存储(NAS)和结构上的NVMe(NVMe-oF)的协议来实现。

在下文中,将基于应用服务器3100_1和存储服务器3200_1进行描述。应用服务器3100_1的描述可应用于其它应用服务器3100_n,并且存储服务器3200_1的描述可应用于其它存储服务器3200_m。

应用服务器3100_1可通过网络3300将用户或客户端请求的数据存储在存储服务器3200_1至3200_m之一中。此外,应用服务器3100_1可通过网络3300从存储服务器3200_1至3200_m中的一个获取用户或客户端所请求的数据。例如,应用服务器3100_1可被实现为网页服务器或数据库管理系统(DBMS)。

应用服务器3100_1可通过网络3300访问包括在其它应用服务器3100_n中的存储器3120_n或存储装置3150_n。可替换地,应用服务器3100_1可通过网络3300访问包括在存储服务器3200_1至3200_m中的存储器3220_1至3220_m或者存储装置3250_1至3250_m。因此,第一应用服务器3100_1可对存储在应用服务器3100_1至3100_n和/或存储服务器3200_1至3200_m中的数据执行各种操作。例如,应用服务器3100_1可执行用于在应用服务器3100_1至3100_n和/或存储服务器3200_1至3200_m之间移动或复制数据的命令语言。在这种情况下,数据可从存储服务器3200_1至3200_m的存储装置3250_1至3250_m移动到存储服务器3200_1至3200_m的存储器3220_1至3220_m,或者可直接移动到应用服务器3100_1至3100_n的存储器3120_1至3120_n。通过网络3300移动的数据可以是为了安全或隐私而加密的数据。

尽管未示出,但是存储装置3250_1至3250_m可包括参照图1至图8描述的主控制器200。

将通过示例的方式描述存储服务器3200_1。接口(I/F)3254_1可提供处理器3210_1与控制器(CTRL)3251_1的物理连接以及网络互连(NIC)3240_1与控制器3251_1的物理连接。例如,接口3254_1可以以直接附接存储(DAS)方案实现,该方案将存储装置3250_1直接连接到专用电缆。此外,例如,接口3254_1可以以各种接口方式实现,诸如高级技术附件(ATA)、串行ATA(SATA)、外部SATA(e-SATA)、小型计算机小型接口(SCSI)、串行附接SCSI(SAS)、外围组件互连(PCI)、PCI快速(PCIe)、NVM快速(NVMe)、IEEE 1394、通用串行总线(USB)、安全数字(SD)卡、多媒体卡(MMC)、嵌入式多媒体卡(eMMC)、通用闪存(UFS)、嵌入式通用闪存(eUFS)和/或紧凑闪存(CF)卡接口。

存储服务器3200_1还可包括开关3230_1和NIC 3240_1。开关3230_1可根据处理器3210_1的控制而选择性地将处理器3210_1与存储装置3250_1连接,或者可选择性地将NIC3240_1与存储装置3250_1连接。

在示例实施例中,NIC 3240_1可包括网络接口卡、网络适配器等。NIC 3240_1可通过有线接口、无线接口、蓝牙接口、光接口等连接到网络3300。NIC 3240_1可包括内部存储器、数字信号处理器(DSP)、主机总线接口等,并且可通过主机总线接口连接到处理器3210_1及/或开关3230_1。主机总线接口可被实现为接口3254_1的上述示例之一。在示例实施例中,NIC 3240_1可与处理器3210_1、开关3230_1和存储装置3250_1中的至少一个集成。

在存储服务器3200_1至3200_m或应用服务器3100_1至3100_n中,处理器可将命令发送到存储装置3150_1至3150_n和3250_1至3250_m或存储器3120_1至3120_n和3220_1至3220_m,以编程或读取数据。此时,数据可以是通过纠错码(ECC)引擎经纠错的数据。数据可以是经过数据总线反相(DBI)或数据掩码(DM)处理的数据,并且可包括循环冗余码(CRC)信息。数据可以是为了安全或隐私而加密的数据。

存储装置3150_1至3150_n和3250_1至3250_m可响应于从处理器接收的读取命令将控制信号和命令/地址信号发送到NAND闪速存储器装置3252_1至3252_m。因此,当从NAND闪速存储器装置3252_1至3252_m读取数据时,读取使能(RE)信号可作为数据输出控制信号被输入以将数据输出到DQ总线。可使用RE信号生成数据选通DQS。命令/地址信号可根据写入使能(WE)信号的上升沿或下降沿锁存到页缓冲器中。

控制器3251_1通常可控制存储装置3250_1的操作。在示例性实施例中,控制器3251_1可包括静态随机存取存储器(SRAM)。控制器3251_1可响应于写入命令将数据写入NAND闪速存储器装置3252_1中,或者响应于读取命令从NAND闪速存储器装置3252_1读取数据。例如,可从存储服务器3200_1中的处理器3210_1、另一存储服务器3200_m中的处理器3210_m或应用服务器3100_1和3100_n中的处理器3110_1和3110_n提供写入命令和/或读取命令。DRAM 3253_1可临时存储(缓冲)要写入NAND闪速存储器装置3252_1中的数据或从NAND闪速存储器装置3252_1读取的数据。此外,DRAM 3253_1可存储元数据。在这种情况下,元数据是用户数据或由控制器3251_1生成以管理NAND闪速存储器装置3252_1的数据。存储装置3250_1可包括用于安全性或隐私性的安全元件(SE)。

通过总结和回顾,可信计算技术是加强关于计算机的可靠性以如最初预期的那样操作、允许基于硬件的安全芯片(诸如可信平台模块(TPM))被共同应用于所有计算能力装置、并且提供相关软件作为开放标准的技术。可信计算技术可广泛地用于使用计算机认证、网络、打印、移动电话和应用程序安全等的平台。当被授予安全性的验证者(例如,主机)接近包括多个装置(例如,多个固件)的平台(例如,存储装置)时,可执行针对平台中的多个装置的安全认证。响应于验证者的安全认证请求,平台可发送其中的多个装置的认证值,并且在这种情况下,从平台发送到验证者的认证值的完整性是重要的。

如上所述,实施例可提供可信计算装置,其帮助确保用于安全证明的认证值的完整性。实施例可提供可信计算装置的操作方法,该方法有助于确保用于安全证明的认证值的完整性。

本文已经公开了示例性实施例,并且尽管采用了特定术语,但是它们仅以一般性和描述性意义被使用和解释,而不是为了限制的目的。在一些情况下,除非另外具体指示,否则如本领域普通技术人员在提交本申请时将显而易见的,结合特定实施例描述的特征、特性和/或元件可单独使用或与结合其它实施例描述的特征、特性和/或元件组合使用。因此,本领域技术人员将理解,在不脱离权利要求中阐述的本发明的精神和范围的情况下,可进行形式和细节上的各种改变。

相关技术
  • 恢复反应堆冷却剂系统硼酸溶液硼-10丰度的方法
  • 反应堆一回路可溶硼硼-10丰度的跟踪计算方法
技术分类

06120116549465