存储和访问数据的制作方法

文档序号:8435860阅读:421来源:国知局
存储和访问数据的制作方法
【技术领域】
[0001] 本发明涉及一种与设备相关联地存储一定量的(anamountof)数据的方法和一 种控制对设备处的一定量的数据的访问的方法以及用于执行此类方法的装置和计算机程 序。
【背景技术】
[0002] 以将存储的数据"锁定"到设备(即使得存储的数据如果被传输到第二设备不能在 该第二设备上使用)的方式在设备上存储数据是已知的。该数据可例如包括供设备上的应 用使用以访问作为加密内容存储在设备上的内容(例如,将其解密或实现其解密)的密码密 钥一一以这种方式,即使数据和已加密内容被以未授权方式分发到其他设备,那些其他设 备也将不能访问该内容,因为那些其他设备将不能成功地(或正确地)使用该数据。
[0003] 附图的图la是示意性地图示出以将一定量的数据D锁定到设备的方式存储和访 问该一定量的数据D的方法100的流程图。设备可以是任何种类的数据处理设备,诸如台 式计算机、移动电话、膝上计算机、平板计算机、机顶盒、智能卡、游戏控制台等。可以专用硬 件、作为在设备的处理器上执行的软件或者作为硬件和软件的组合来实现方法1〇〇。
[0004] 在步骤102处,第一次将一定量的数据D存储在设备上,即用一定量的数据D将设 备初始化。一定量的数据D并未以明文(clear)的形式存储,而是以受保护形式存储,使得 可能不会通过检查设备的存储器或存储介质的内容而直接地确定一定量的数据D。此步骤 有时称为"注册(enrolment)"步骤。
[0005] 例如,当最初将应用(例如计算机程序或其他软件)安装在设备上时,安装过程可 创建一定量的数据D以供应用随后使用并在步骤102处存储该一定量的数据D。
[0006] 如所提及的,以受保护形式存储一定量的数据D。如果此受保护形式被拷贝到另一 设备,意图在于该另一设备将不能从一定量的数据D的所拷贝的受保护形式确定或访问所 述一定量的数据D。
[0007] 应简略地参考附图的图lb来描述在步骤102处执行的处理的示例。
[0008] 在步骤104处,设备(或在设备上执行或运行的应用)尝试使用一定量的数据D的 受保护形式来访问一定量的数据D。如果执行步骤104的设备是一定量的数据D的受保护 形式所对应的设备(即其为在步骤102处将所存储的量的数据D锁定到的设备),则在步骤 104处,设备应能够访问一定量的数据D。另一方面如果执行步骤104的设备不是一定量的 数据D的受保护形式所对应的设备(即其不是在步骤102处将所存储的量的数据D锁定到 的设备),则在步骤104处,设备应不能访问一定量的数据D。
[0009] 应简略地参考附图的图lc来描述在步骤104处执行的处理的示例。
[0010] 图lb是示意性地图示出用于以将一定量的数据D锁定到设备的方式将该一定量 的数据D存储在设备上的方法130的流程图。可例如执行方法130以实现图la的步骤102, 但将认识到的是可以替代地使用用于实现图la的步骤102的其他方法。
[0011] 在步骤132处,获得(或确定或测量)设备的特性C。特性C是标识设备或将设备与 其他设备区别开的值(或标识符或代码)。存在获得设备的特性C的许多已知方式。例如, 特性C可基于以下各项中的一个或多个: ?设备的存储介质(例如,磁盘、存储器芯片等)的序列号。 ?设备的处理器的序列号。 ?设备的任何其他部件或设备本身的序列号。 ?设备启动期间的存储器的内容。 ?设备的部件的一个或多个属性,诸如设备的处理器的处理速度、设备的存储介质的 存储容量、设备的USB端口数、设备的屏幕的分辨率等。 ?安装在设备上的一个或多个软件应用或者一个或多个应用的一个或多个模块、元 件、插件等的标识符一一例如,安装在设备上的浏览器的版本和针对该浏览器安装的模块 (例如,语言包、工具栏等)的标识。 ?设备的任何其他信息、方面、属性、特征或配置。
[0012] 可收集关于设备及其当前配置的此类数据。由于此数据可具有可变尺寸(取决于 设备的性质及其当前被如何配置),所以可生成收集的数据的散列(hash),以便从收集的数 据获得预定固定长度值。可将特性C设置成此散列值。然而,将认识到的是(且技术人员已 知的是)特性C可以任何其他适当方式从收集的数据形成。
[0013] 纠错码(ECC)是众所周知的--ECC的示例包括里德-所罗门(Reed-Solomon)码、 BCH码、Turbo码等。特别地,给定一定量的数据X,可使用ECC来生成针对数据X的错误校 正数据Y(或冗余数据,有时称为校验和或奇偶校验)。然后可将针对数据X的ECC编码版 本或码字W设置成W=X||Y(其中,在本文中,a| |b表示数据与数据b的级联)一一这种 形式的ECC编码称为系统ECC编码。ECC使用对应的符号字母表(对于某个正整数s而言 其常常是大小为23的伽罗瓦(Galois)域)一一使用该字母表的符号来表示原始数据X、错 误校正数据Y和从而表示码字W。错误校正数据Y基于原始数据X,并被配置成使得如果将 一个或多个错误引入码字W中,以便生成修改的值W*(即码字W的新版本W*,其中,表示W* 的符号中的一个或多个不同于码字W中的对应位置处的符号),则可以校正那些错误,以便 从值W*获得原始码字W。可以引入到码字W中以生成值W*而同时仍能够从值W*重新生 成原始码字W的错误的数目称为ECC的错误校正能力a-一这是可通过设置用于ECC的适 当参数来设定的针对ECC的预定数目。无论该错误被引入到码字W=X| |Y内的数据X中 和/或到码字W=X| |Y内的错误校正数据Y中,都可校正错误。然而,在其中已知错误将 仅在原始数据X中发生的情况下,则可将错误校正数据Y视为使得能够校正数据X的版本 X* (其中W* = X*| |Y)中的直到预定数目的错误(ECC的错误校正能力a)的数据。
[0014] 由于ECC是众所周知的,所以在本文中不应描述关于ECC、ECC编码、ECC解码或涉 及到ECC的其他操作的另外的细节。
[0015] 在步骤134处,使用ECC来生成针对特性C的错误校正数据R。如上文所讨论的, 错误校正数据R是使得能够校正特性C的版本中的直到预定数目(ECC的错误校正能力a) 的错误的数据一一即如果生成了特性C的版本C*,其中,版本C*相对于特性C具有数目N (其中0 <N<a)个错误或差异,则可以从版本C获得或重新生成特性C。
[0016] 如上所提及的,ECC是非常众所周知的。在步骤134处所使用的ECC可选自提供 针对一定量的输入数据X(如上文所阐述的)的错误校正数据Y的任何已知(或未来)ECC。
[0017] 在步骤136处,通过将特性C与一定量的数据D组合来生成存储数据P。在图lb 中,这被示为通过对特性C与一定量的数据D进行X0R(异或)来创建存储数据P-一即 P=C⑩D。在本示例中,假设数据D和特性C具有相同的长度(或尺寸)一一如果用于特性 C和一定量的数据D的初始值不是相同的长度,则可以通过以下各项来使得其为相同长度, 例如:(i)如果特性C长于一定量的数据D,则截短特性C,使得其为与一定量的数据D相同 长度,或者通过重复一定量的数据D的位来扩展一定量的数据D,使得扩展的量的数据D与 特性C相同长度;或者(ii)如果特性C短于一定量的数据D,则通过用填充位(其可以是特 性C的现有位,或者通过形成特性C的一个或多个散列而生成的位等)对特性C进行填充来 扩展特性C。
[0018] 然而,将认识到的是可使用任何其他方法由特性C和一定量的数据D形成存储数 据P。所要求的所有是如果已知特性C的值,则可以从存储数据P获得一定量的数据D。特 别地,可将存储数据P形成为一定量的数据D和特性C的函数F,即P=F(D,C),其中,函数 F具有对应函数G,使得G(P,C) =G(F(D,C)) =D。可将函数F视为由特性C加密钥或播 种(seed)的可逆函数(其中,G=F'即F的逆)。在以上示例中给出的X0R当然仅仅是此 类函数的一个示例,并且将认识到的是可以替代地使用任何其他此类函数。但是,优选地, 在没有特性C(的知识)的情况下从存储数据P不可获得一定量的数据D。
[0019] 在步骤138处,生成包括存储数据P和错误校正数据R(或作为其函数)的一定数 量的(aquantityof)数据的数字签名Sig,例如仅仅是对{R,P}的数字签名Sig。为此, 使用签名密钥SK。
[0020] 可通过使用不对称数字签名算法来生成签名Sig。在这种情况下,签名密钥SK是 对应于公共验证密钥VK的专用密钥。设备可存储验证密钥VK以供将来使用(如参考图lc 简略地解释的)。签名密钥SK可以是与设备相关联的专用密钥一一设备可存储签名密钥 SK,或者可替换地,在步骤102期间可由设备生成签名密钥SK和验证密钥VK,其中验证密钥 VK被存储以供随后使用且签名密钥SK在步骤138之后被丢弃。在某些实施例中,由设备来 执行步骤138,其中设备知道签名密钥SK。在其他实施例中,设备不具有对签名密钥SK的访 问权且仅具有对对应验证密钥VK的访问权(例如,将验证密钥硬编码到设备中)一一例如, 签名密钥SK可以是设备的制造商所使用或与之相关联的签名密钥,在这种情况下,当制造 商最初制造设备并用一定量的数据D将其初始化时制造商可以生成签名Sig。
[0021] 可替换地,可通过使用对称数字签名算法(例如签名Sig可以是消息认证码)来生 成签名Sig。在这种情况下,签名密钥SK是由设备存储的设备的秘密密钥一一将来可使用 签名密钥SK作为验证密钥VK(即VK=SK)(如参考图lc简略地解释的)。
[0022] 数字签名方案/算法(对称和不对称的两者)是众所周知的,并且因此在本文中不 应更详细地描述。
[0023] 在步骤140处,设备存储:错误校正数据R、存储数据P和生成的签名Sig。此所存 储的数据表示一定量的数据D,并且是一定量的数据D的上述受保护形式。
[0024] 图lc是示意性地图示出用于控制对在设备处(或存储在其上)的一定量的数据D 的访问的方法150的流程图。该设备正存储一定量的数据D的受保护形式,其中,一定量的 数据D的此受保护形式是使用图lb的方法130生成的。可执行方法150例如以实现图la 的步骤104,但将认识到的是可以替代地使用用于实现图la的步骤104的其他方法。
[0025] 在步骤152处,获取数据的受保护形式(例如,从数据的受保护形式位于其处的设 备的存储器或储存器)。因此,在步骤152处,获得或访问错误校正数据R、存储数据P和生 成的签名Sig。
[0026] 在步骤154处,针对包括存储数据P和错误校正数据R的一定数量的数据(或对于 或关于该数据)验证签名Sig。以形成在图lb的步骤138处对其进行签名以生成签名Sig的 一定数量的数据相同方式形成该数量的数据一一例如,该数量的数据可以仅仅是对{R,P}。 签名Sig的验证使用对应于签名生成算法的验证算法,并且利用与用来生成签名Sig的签 名密钥SK相对应的验证密钥VK。此类验证算法是众所周知的且不应在本文中详细地描述。
[0027] 如果在步骤156处确定步骤154处的验证已失败(S卩,签名Sig并不对应于包括存 储数据P和错误校正数据R的一定数量的数据),则处理在步骤158处终止。如果另一方面 在步骤156处确定步骤154处的验证已成功(S卩,签名Sig对应于包括存储数据P和错误校 正数据R的一定数量的数据),则处理在步骤160处继续。
[0028] 在步骤160处,获得(或确定或测量)设备的当前特性C*。
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1