非易失性存储器的操作的制作方法_3

文档序号:9529302阅读:来源:国知局
址给存储设备102。在一个实现方式中,位掩码信息总是可以写入设备。在其它实现方式中,使用与用于验证数据的签名的密钥不同的密钥,位掩码信息可以写入存储设备102的策略模块112中。用于写入位掩码信息的密钥也可以被存储在密钥存储模块110中。
[0041]参考图2,不例框图图不出非易失性存储设备202和安全设备250。非易失性存储设备202包括非易失性存储模块204,非易失性存储模块204可以包括与图1中非易失性存储模块104相同的特征。例如,非易失性存储模块204可以被分割为多个分区216和218,就像上面关于被分成多个分区116和118的存储模块104所述的一样。
[0042]在图2中,接口模块206、控制器208、密钥存储模块210和策略模块212可以被实现在安全设备250上。安全设备250是单独的芯片或与存储设备202分离的设备。安全设备250可以通过接口 260与存储设备202通信。安全设备250上的组件(即,接口模块206、控制器208、密钥存储模块210和策略模块212)可以与图1中的接口模块106、控制器108、密钥存储模块110和策略模块112以相同的方式工作。
[0043]以这种方式,可以将安全设备250与不同的存储设备202匹配来保证已被验证的仅加密的签名数据能被写入存储设备202和从其读出。例如,控制器208可以将存储模块204划分为第一分区216和第二分区218。控制器208可以指定第一分区216为只读分区,并且第二分区218为只写分区。外围设备214可以通过安全设备250将新数据写入存储设备202。外围设备214可以使用私有密钥签名数据的密码哈希,将签名附加到数据并且通过安全设备250将数据传送给存储设备202。
[0044]接口模块206接收数据,并且控制器208使用接口 260引导数据被写入作为只写存储区域的第二分区218。控制器208使用被存储在密钥存储模块210中的密钥验证附加于数据的签名。如果控制器成功验证签名,则第一分区216和第二分区218分别被重新指定为只写分区和只读分区。以这种方式,被写入第二分区218的新数据可以由随后接收到的读取命令而被读出。如果控制器208不能验证签名或如果数据的不完整副本被接收,则控制器208不会重新指定分区216和218,并且随后的读取命令不会读出新数据,而是会继续读出被存储在第一分区216中的数据。控制器208可以执行这些和其它的附加功能,就像上面可以关于图1的控制器108所描述的一样。
[0045]在另一个示例实现方式中,密钥存储模块210可以被实现在非易失性存储设备202上,而不是被实现在安全设备250上。在这个实现方式中,控制器208可以位于安全设备250上,并且可以与密钥存储模块210交互,存储模块210可以被实现在非易失性存储设备202上,以使用被存储在密钥存储模块210中的一个或多个密钥来验证签名。
[0046]参考图3,示例框图图示出具有存储模块304a_304c的多个非易失性存储设备302a-302c和图2中的安全设备250。在图3的示例中,单个安全设备250可以通过相应的接口 360a-360c为多个存储设备302a_302c控制数据的读取和数据的写入。安全设备250可以像上面图2中描述的安全设备250相同地工作。控制器208可以用来验证附加于从一个或多个外围设备314a和314b被写入存储设备302a_302c中的一个设备的数据的签名。控制器208引导数据到存储设备中被指定为只写分区的分区。当使用密钥存储模块210中的密钥验证签名时,控制器208为特定存储设备重新指定分区。如果验证失败,则控制器208不重新指定分区。
[0047]在图3的示例中,安全设备250可以包括多个接口模块306a和306b。接口模块306a和306b可以是不同类型的接口。例如,接口模块306a可以是串行接口模块而接口模块306b可以是并行接口模块。取决于使用在外围设备和安全模块250之间的接口类型,接口模块306a和306b可以与某些或全部的外围设备314a和314b兼容。
[0048]在图3的这个示例中,安全设备250是灵活的,因为它能通过接口模块306a和306b,使用不同类型接口被耦合到多个非易失性存储设备302a-302c和多个外围设备314a和314b。以相似的方式,接口 360a-360c可以是与不同类型的非易失性存储设备302a-302c接口的不同类型的接口(例如,串行和并行接口)。
[0049]参考图4,示例流程图图示出过程400。过程400图示出上面在图1_3中描述的设备的示例操作。过程400包括将非易失性存储设备分区为第一分区和第二分区,其中第一分区被指定为数据的只读存储区域,并且第二分区被指定为通过接口模块接收到的新数据的只写存储区域(410)。例如,存储设备102包括存储模块104,存储模块104可以被分割为第一分区116和第二分区118,其中第一分区116被指定为数据的只读存储区域,并且第二分区118被指定为通过接口模块112接收到的新数据的只写存储区域(410)。
[0050]过程400包括通过接口模块接收具有签名的新数据并将该新数据写入第二分区(420)。例如,接口模块106可以接收来自外围设备114的新数据,其中数据包括使用私有密钥创建的签名。新数据可以被写入第二分区118(420)。
[0051]过程400包括通过控制器利用被存储在密钥存储模块中的密钥来验证签名(430)。例如,控制器108可以利用被存储在密钥存储模块110中的密钥来验证签名(430)。
[0052]过程400包括响应于利用被存储在密钥存储模块中的密钥来验证签名,将第一分区重新指定为其它新数据的只写存储区域,并且将第二分区重新指定为新数据的只读存储区域(440)。例如,控制器108可以将第一分区116重新指定为其它新数据的只写存储区域。控制器108可以响应于控制器108利用被存储在密钥存储模块110中的密钥来验证签名,将第二分区118重新指定为新数据的只读存储区域(440)。如果控制器108不能验证签名,则分区不被重新指定。
[0053]本文描述的各种技术的实现可以被实现为数字电路或计算机硬件、固件、软件或它们的组合。实现可以被实现为计算机程序产品,例如,有形体现在信息载体中的计算机程序,如存储在机器只读存储设备中,用于被控制数据处理装置执行或控制数据处理装置的运行,数据处理装置包括如可编程处理器、一台计算机或多台计算机。计算机程序,如上述的计算机程序,能用任何形式的编程语言来写,包括编译语言或解释语言,并且可以被部署为任何形式,包括作为独立的程序或作为模块、组件、子程序或其它适合使用在计算环境中的单元。计算机程序能被部署到一台计算机上执行,或一个站点的多台计算机上执行,或分布于多个站点的并通过通信网络连接的多台计算机上执行。
[0054]方法步骤可以被一个或多个执行计算机程序的可编程处理器执行,通过对输入数据的操作和产生输出来执行功能。方法步骤也可以被装置执行,这个装置可以被实现为专用逻辑电路,如FPGA (场可编程逻辑阵列)或ASIC(专用集成电路)。
[0055]适合执行计算机程序的处理器包括,举例来说,通用微处理器和专用微处理器,和任何种类的数字计算机中的任何一个或多个处理器。通常,处理器会从只读存储器或随机存取存储器或从两者接收指令和数据。计算机的元件包括用于执行指令的至少一个处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还可以包括或被可操作地耦合来接收来自用于存储数据的一个或多个大容量存储设备的数据,或向所述一个或多个大容量存储设备传递数据,或以上两种操作都有,所述大容量存储设备例如,磁盘、磁光盘或光盘。适合体现计算机程序指令和数据的信息载体包括所有形式的非易失性存储器,举例来说,半导体存储器设备,例如,EPROM、EEPR0M以及闪存设备;磁盘,例如,内部硬盘或可移除盘;磁光盘;以及⑶-ROM和DVD-ROM盘。处理器和存储器可以被专用逻辑电路补充,或被并入专用逻辑电路。
[0056]为提供与用户的交互,实现方式可以被实现在具有显示设备和键盘以及定点设备的计算机上,该显示设备,例如,阴极射线管(CRT)或液晶显示器(LCD)监视器,用于向用户显示信息;该定点设备,例如,鼠标或跟踪球,通过该键盘和定点设备,用户可以向计算机提供输入。其它种类的设备也能被用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如,视觉反馈、听觉反馈或触觉反馈;来自用户的输入能被以任何形式接收,包括声学、语音或触觉输入。
[0057]实现方式可以被实现在计算系统中,该计算系统包括后端组件,例如,作为数据服务器,或包括中间件组件,例如,应用服务器,或包括前端组件,例如,具有图形用户界面的客户端计算机,
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1