管理用于数据的安全存储的密钥的方法及其设备的制作方法

文档序号:6507122阅读:142来源:国知局
管理用于数据的安全存储的密钥的方法及其设备的制作方法
【专利摘要】提供一种管理用于数据的安全存储的密钥的方法及其设备。所述设备包括:主控制器,被配置为处理命令;密码单元,被配置为基于主控制器处理命令的结果,加密第一密钥以形成加密密钥或者加密数据以形成加密数据,并基于主控制器处理命令的结果,对加密密钥或加密数据进行解密;散列单元,被配置为根据主控制器的控制来散列第一密钥;解密密钥存储器,被配置为存储第一密钥;以及加密密钥存储器,被配置为存储加密密钥。
【专利说明】管理用于数据的安全存储的密钥的方法及其设备
[0001]本申请要求于2012年8月6日提交的第10-2012-0085892号韩国专利申请的优 先权,该申请的公开通过引用全部合并于此。
【技术领域】
[0002]本发明构思的示例实施例涉及数据存储方法和设备。
【背景技术】
[0003]随着移动装置中执行的应用的多样化,便利性已经增加,但处理重要数据(例如, 财务数据、密钥、证书、国际移动装备身份(頂EI)和SimLock)的频率也已经增加,并且已经 开发出了威胁到数据安全性的攻击技术。因此,可能重要的是,利用针对重要数据的密码技 术来提供安全存储。安全存储特征是用于安全地存储并解密重要数据的技术。根据安全存 储特征,在应用请求处理数据时安全地存储并管理数据,并且只允许所述应用访问数据。
[0004]安全存储特征可利用密码技术来保护数据免受没有数据访问权利的应用或恶意 软件(即,恶意软件或病毒)的影响。安全存储特征还可利用用于安全地管理密码技术中使 用的密钥的技术。

【发明内容】

[0005]至少一个示例实施例涉及一种密钥管理器。
[0006]在一个实施例中,所述密钥管理器包括:主控制器,被配置为处理命令;密码单 元,被配置为基于主控制器处理命令的结果,对第一密钥进行加密以形成加密密钥或者对 数据进行加密以形成加密数据,并基于主控制器处理命令的结果,对加密密钥或加密数据 进行解密;散列单元,被配置为根据主控制器的控制来散列第一密钥;解密密钥存储器,被 配置为存储解密密钥;以及加密密钥存储器,被配置为存储加密密钥。
[0007]在一个实施例中,主控制器包括:寄存器,被配置为存储命令;以及处理器,被配 置为基于命令在有限状态机内的多个状态之间切换。
[0008]在一个实施例中,寄存器包括:命令寄存器,被配置为存储命令;以及状态寄存 器,被配置为存储与命令相关联的状态信息。
[0009]在一个实施例中,命令包括命令类型和地址,其中,所述地址是解密密钥存储器中 的解密密钥和加密密钥存储器中的加密密钥中的一个的地址。
[0010]在一个实施例中,命令包括密钥产生命令、密钥加密命令、密钥解密命令、密钥加 载命令和密钥销毁命令中的一个。
[0011]在一个实施例中,第一密钥是被配置为对密钥进行加密的密钥加密密钥(KEK)。
[0012]在一个实施例中,密钥管理器还包括:一次性可编程(OTP)存储器,被配置为产生 KEK ;以及随机数产生器,被配置为产生数据加密密钥(DEK),DEK被配置为加密数据。
[0013]在一个实施例中,加密密钥包括第一加密密钥部分、第二加密密钥部分和散列值, 第一加密密钥部分包括第一密钥的第一部分和由随机数产生器产生的随机数的第一部分,并且第二加密密钥部分包括第一密钥的第二部分和所述随机数的第二部分。[0014]在一个实施例中,密码单元包括:密钥寄存器,被配置为存储加密密钥;输入数据 寄存器,被配置为存储数据;以及输出数据寄存器,被配置为存储加密数据和解密密钥中的 一个或多个。[0015]在一个实施例中,密钥管理器还包括:调试模式模块,被配置为允许主机在测试模 式期间访问密钥寄存器、输入数据寄存器和输出数据寄存器。[0016]在一个实施例中,调试模式模块包括:调试模式寄存器,包括测试模式使能位、随 机数使能位和保留位;以及调试模式使能逻辑单元,被配置为响应于测试模式使能位和随 机数使能位来使得能够进行测试模式。[0017]在一个实施例中,密码单元、散列单元、解密密钥存储器和加密密钥存储器在硬件 中实现。[0018]在一个实施例中,主控制器被配置为允许主机读取存储在加密密钥存储器中的加 密密钥,并防止主机访问解密密钥存储器、密码单元和散列单元。[0019]至少一个示例实施例涉及一种管理第一密钥的方法。[0020]在一个实施例中,所述方法包括:处理命令寄存器中存储的命令;如果命令是密 钥产生命令,则使用随机数产生器产生第一随机数,并将所产生的随机数作为解密密钥存 储在解密密钥存储器中;以及如果命令是密钥加密命令,则产生加密密钥。产生加密密钥的 步骤包括:对解密密钥和第一密钥的散列部分进行加密以形成加密密钥,将加密密钥存储 在加密密钥存储器中,并且从加密密钥存储器读取并输出加密密钥。[0021]在一个实施例中,命令包括加密密钥和解密密钥中的一个的命令类型和地址。[0022]在一个实施例中,产生加密密钥的步骤包括:从解密密钥存储器读取解密密钥; 通过将解密密钥与第二随机数混合来产生散列值;通过对解密密钥、第二随机数和散列值 执行加密来产生加密密钥;以及将加密密钥存储在加密密钥存储器中。[0023]至少一个示例实施例涉及一种密钥管理器。[0024]在一个实施例中,所述密钥管理器包括:随机数产生器,被配置为产生随机数;存 储器,被配置为存储第一密钥;以及主控制器,被配置为将随机数存储在解密密钥存储的地 址中,基于第一密钥和随机数的散列部分来加密第一密钥以形成加密密钥,并将加密密钥 存储在加密密钥存储器中,解密从外部主机接收的加密密钥以形成解密密钥,并控制与外 部主机的通信,使得在正常操作模式下,允许外部主机访问加密密钥存储器并防止外部主 机访问解密密钥存储器。【专利附图】

【附图说明】[0025]通过参照附图详细描述本发明构思的示例性实施例,本发明构思的上述和其它特 征和优点将变得更加清楚,其中:[0026]图1是根据本发明构思的一些示例实施例的数据处理系统的功能框图;[0027]图2是图1中示出的密钥管理器的详细框图;[0028]图3是密钥的层次结构的示图;[0029]图4是根据本发明构思的一些示例实施例的从解密密钥产生加密密钥的处理的 示图;[0030]图5是根据本发明构思的一些实施例的图2中示出的命令寄存器的示图;
[0031]图6是密钥产生命令的处理流程的示图;
[0032]图7是密钥加密命令的处理流程的示图;
[0033]图8是密钥解密命令的处理流程的示图;
[0034]图9是密钥加载命令的处理流程的示图;
[0035]图10是密钥销毁命令的处理流程的示图;
[0036]图11是与解密密钥存储器中存储的解密密钥条目对应的有效位的示图;
[0037]图12是密钥的生命周期的示图;
[0038]图13是根据本发明构思的一些实施例的密钥管理器的有限状态机的转变示图;
[0039]图14是根据本发明构思的一些实施例的调试模式模块的框图;
[0040]图15是根据本发明构思的其它实施例的数据处理系统的框图。
具体实施例
[0041 ] 下文中,参照附图描述本发明构思,在附图中示出示例实施例。然而,这些示例实 施例可用许多不同形式来实施,并且不应该被理解为局限于在此所阐述的示例实施例。相 反地,提供这些示例实施例使得本发明将是彻底和完全的,并且将把实施例充分地传达给 本领域的技术人员。在附图中,为了清晰起见,可夸大层和区域的大小和相对大小。相同标 号始终表示相同元件。
[0042]应该理解的是,当元件被称作“连接”或“结合”至另一元件时,该元件可直接连接 或结合至其它元件,或者可能存在中间元件。相反,当元件被称作“直接连接”或“直接结 合”至另一元件时,不存在中间元件。如在这里使用的,术语“和/或”包括一个或多个相关 所列项的任意组合和所有组合,并可被缩写为“/”。
[0043]应该理解的是,尽管这里可使用术语“第一”、“第二”等来描述各种元件,但这些元 件应该不受这些术语限制。这些术语只是用于将一个元件与另一个元件区分开。例如,在 不脱离本公开的教导的情况下,第一信号可被称为第二信号,并且类似地,第二信号可被称
为第一信号。
[0044]这里使用的术语只是为了描述具体实施例的目的,而不意图限制本发明。如这里 所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式。还将理解的是, 当在本说明书中使用术语“包含”或“包括”时,说明存在所述特征、区域、整体、步骤、操作、 元件和/或组件,但不排除存在或附加一个或多个其它特征、区域、整体、步骤、操作、元件、 组件和/或其组合。
[0045]除非另有定义,否则这里使用的所有术语(包括技术术语和科学术语)具有与本领 域的普通技术人员通常所理解的意思相同的意思。将进一步理解的是,除非这里明确定义, 否则术语(例如在通用字典中定义的术语)应该被解释为具有与相关技术和/或本申请的上 下文中的它们的意思相一致的意思,而不应以理想的或过于正式的意思来解释所述术语。
[0046]图1是根据本发明构思的一些示例实施例的数据处理系统10的功能框图。
[0047]如图1所示,数据处理系统10可包括片上系统(SOC) 100、显示装置135和外部存 储装置155。数据处理系统10可以是移动装置、智能电话、个人数字助理(PDA)、个人计算机 (PC)、平板PC、笔记本、上网本、电子阅读器、便携式多媒体播放器(PMP)、MP3播放器或MP4播放器,但不限于此。[0048]S0C100可以是应用处理器。应用处理器可控制数据处理系统10的整体操作。 S0C100可以包括中央处理单元(CPU) 110、密钥管理器120、显示控制器130、只读存储器 (R0M)140、随机存取存储器(RAM)160、存储控制器150和总线。S0C100还可包括其它元件, 例如电源管理单元、电视(TV)处理器、图形处理单元(GPU)和时钟单元。[0049]CPUllO可根据例如操作时钟频率来处理或执行存储器140、160或155中存储的 程序和/或数据。CPUllO可被实现为多核处理器。多核处理器是具有两个或更多个独立 的实际处理器(被称为“核”)的单个计算组件。这些处理器中的每个可读取并执行程序指 令。多核处理器可以同时驱动多个加速器,因此,包括多核处理器的数据处理系统可执行多 力口速(mult1-acceleration) ο[0050]密钥管理器120管理用于加密的密钥,并且对数据和密钥进行加密和解密。安全 存储是一种用于只允许被授权的用户或程序访问重要数据的技术。为了安全存储,将数据 加密并安全地存储在存储器中,然后当使用所述数据时将所述数据解密,使得所述数据免 受非法用户或程序的影响。关于非法访问的判断取决于该访问是否有权限使用用于加密的 密钥。[0051]密钥管理器120保护密钥免受密钥嗅探攻击(key sniffing attack)和密钥攻陷 攻击(key corruption attack)。密钥嗅探攻击是对密钥的非法访问而密钥攻陷攻击是损 坏或破坏密钥。因此,为了安全地管理密钥,密钥管理器120阻挡对密钥的这些非法访问并 可确认密钥的完整性。[0052]密钥管理器120提供密钥管理功能。密钥管理功能涉及密钥的整个生命周期的管 理,包括密钥的创建、使用、存储、解密和销毁。密钥管理功能包括加密密钥并将其存储在非 易失性存储器中为可能的断电作准备,以及在必要时解密密钥。密钥管理功能还包括密钥 加密、密钥散列和禁止主机(例如,在主机中执行的软件或应用)访问密钥的访问控制。[0053]根据本发明构思的一些示例实施例,主机可仅通过命令来操作密钥管理器120,并 且软件不允许访问密钥。[0054]存储在外部存储装置155中的程序和/或数据可在必要时被加载到S0C100内的 内存或CPU110。[0055]R0M140可存储永久的程序和/或数据。可以用可擦除可编程ROM (EPROM)或电可 擦除可编程ROM (EEPROM)来实现R0M140。[0056]RAM160可以暂时存储程序、数据或指令。可根据R0M140中存储的启动代码或者 CPUllO的控制,将存储在R0M140中的程序和/或数据暂时存储在RAM160中。可用动态RAM (DRAM)或静态 RAM (SRAM)实现 RAM160。[0057]存储控制器150用于与外部存储装置155连接。存储控制器150控制外部存储装 置155的整体操作,并控制主机和外部存储装置155之间的数据通信。存储控制器150可控 制外部存储装置155以在主机请求时写入或读取数据。主机可以是主要装置,例如CPUllO 或显示控制器130。[0058]外部存储装置155是用于存储数据的存储装置,并可存储操作系统(OS)和各种类 型的程序和数据。可用易失性存储器(例如DRAM)或非易失性存储器(例如闪存存储器、相 变RAM (PRAM)、磁阻式RAM (MRAM)、电阻式RAM (ReRAM)或铁电RAM (FeRAM))来实现外部存储装置155。在其它实施例中,外部存储装置155可被嵌入SOClOO中。
[0059]元件110至160可以通过总线相互通信。
[0060]显示装置135可显示多媒体数据。显示装置135可以是液晶显示(IXD)装置,但 本发明构思不限于此。在其它示例实施例中,显示装置135可以是发光二极管(LED)显示 装置、有机LED (OLED)显示装置或者其它类型的显示装置中的一种。显示控制器130控制 显示装置135的操作。
[0061]图2是图1中示出的密钥管理器120的详细框图。
[0062]参照图2,密钥管理器120包括密钥管理器核200、密钥产生器和密钥存储器。
[0063]密钥管理器核200包括寄存器210、主控制器220、分组密码单元230和散列单元 240。
[0064]密钥产生器包括随机数字产生器250和一次性可编程(OTP)存储器260。尽管OTP 存储器260被图示为在密钥管理器120内,但在其它示例实施例中,OTP存储器260可被设 置在密钥管理器120的外部。
[0065]密钥存储器包括存储加密密钥的加密密钥存储器280和存储还没有加密的密钥 的解密密钥存储器270。
[0066]密钥管理器核200可在硬件中实现。还可用硬件模块来实现分组密码单元230、散 列单元240和存储器270和280,但本发明构思不限于此。
[0067]密钥管理器核200支持具有各种密钥大小的分组密码,并响应于不同的命令来提 供密钥产生功能、密钥加密功能、密钥解密功能、密钥加载功能和密钥销毁功能。
[0068]寄存器210包括命令寄存器211和状态寄存器212。命令寄存器211存储从主机 21接收的命令。状态寄存器212存储执行主机21的命令的结果。使用中断或轮询方法,将 状态寄存器212的数据报告给主机21。
[0069]主控制器220解释并执行来自主机21的命令。可用有限状态机(FSM)来实现主 控制器220。
[0070]分组密码单元230可根据主控制器的控制对数据和密码进行加密或解密(或恢 复)。分组密码单元230可从密钥产生器中的随机数产生器250接收用于加密数据的密钥 (下文中,被称为“数据加密密钥(DEK)”)。可用硬件随机数产生器(HRNG)、真随机数产生器 (TRNG)或伪随机数产生器(PRNG)来实现随机数产生器250。分组密码单元230可从OTP存 储器260接收用于加密密钥的密钥(下文中,被称为“密钥加密密钥(KEK)”)。分组密码单 元230可包括核逻辑231、密钥寄存器232、输入数据寄存器233和输出数据寄存器234。
[0071]核逻辑231是执行加密和解码的逻辑。密钥寄存器232暂时存储用于加密或解码 密钥的密钥(即,KEK)或用于加密或解密数据的密钥(S卩,DEK)。输入数据寄存器233暂时 存储将被加密或解密的密钥或数据。输出数据寄存器234暂时存储经过加密或解密的密钥 或数据。
[0072]加密相同的密钥产生相同的密码。因此,当将加密密钥存储在外部存储器中时,即 使并不知道密钥的真实值,也可检查密钥的相同性。为了防止发生对密钥的嗅探,在加密期 间,将随机数与密钥混合,以使加密密钥随机化。可由随机数产生器250产生所述随机数。
[0073]散列单元240根据主控制器的控制来散列密钥。散列单元240的散列算法是将具 有随机长度的输入值转换成具有固定长度的输出值的函数。这里,所述输出值是散列值。随后将描述散列单元240的操作。
[0074]解密密钥存储器270存储从随机数产生器250产生的原始密钥,即,还不是被加密的密钥或被解密的密钥的密钥。加密密钥存储器280存储经过加密的将被发送到外部的密钥。
[0075]密钥管理器120通过主机接口 22与主机21连接。主机接口 22在主机21和密钥管理器120之间传输命令、状态和密钥。主机接口 22可以是高级微控制器总线架构(AMBA)高性能总线(AHB)从属接口,但示例实施例不限于此。[0076]密钥管理器120中使用的密钥被划分为加密密钥和解密密钥。解密密钥是还没有加密的密钥。解密密钥只在密钥管理器120内使用并且不能被主机21访问。加密密钥是已经加密的将被发送出去以存储解密密钥的密钥。使用随机数和密钥的散列值来加密密钥,以使密钥随机化。
[0077]图3是密钥的层次结构的示图。
[0078]参照图3,存在两种类型的密钥:一种是系统级使用的密钥加密密钥KEK30 ?’另一种是用户级使用的数据加密密钥DEK31。KEK是用于加密密钥的密钥并且也被称为根密钥(root key)。KEK由核200的外部(例如,由OTP存储器260)提供。使用DEK31-1至31-N加密数据。DEK31-1至31-N由随机数产生器(例如,TRNG或PRNG) 250产生并且被存储在解密密钥存储器270中。
[0079]图4是根据本发明构思的一些示例实施例的从解密密钥产生加密密钥的处理的示图。
[0080]参照图4,解密密钥可被划分为两个部分:第一解密密钥部分DEK_1和第二解密密钥部分DEK_2。由随机数产生器250产生的随机数也可被划分为两个部分:第一随机数部分RN_1和第二随机数部分RN_2。
[0081]第一解密密钥部分DEK_1和第一随机数部分RN_1被组合成第一加密密钥部分41。换句话讲,第一加密密钥部分41由第一解密密钥部分DEK_1和第一随机数字部分RN_1组成。第二解密密钥部分DEK_2和第二随机数部分RN_2被组合成第二加密密钥部分42。换句话讲,第二加密密钥部分42由第二解密密钥部分DEK_2和第二随机数部分RN_2组成。
[0082]解密密钥可由M位组成,其中,M是至少为2的整数。由随机数产生器250产生的随机数也还可由M位组成,但解密密钥中的位数没必要与随机数中的位数相同。
[0083]解密密钥的一部分(例如,高位)可对应于第一解密密钥部分DEK_1,并且解密密钥的剩余部分(例如,低位)可对应于第二解密密钥部分DEK_2,但本发明构思不限于此。由随机数产生器250产生的随机数的一部分(例如,高位)可对应于第一随机数部分RN_1,并且随机数的另一部分(例如,中间位)可对应于第二随机数部分RN_2,但本发明构思不限于此。
[0084]加密密钥包括第一加密密钥部分41、第二加密密钥部分42和散列值43。从加密密钥产生解密密钥的处理(即,解密处理)与上述的加密处理相反。
[0085]图5是根据本发明构思的一些实施例的图2中示出的命令寄存器211的示图。参照图5,命令包括命令类型211a C0MMAND_TYPE和解密密钥地址22b REDMEM_ADDR。因此,命令寄存器211具有用于存储命令类型C0MMAND_TYPE和解密密钥地址REDMEM_ADDR的结构。
[0086]命令类型C0MMAND_TYPE可以是指示需要多个密钥命令中的哪一个的数字。也就是说,命令类型COMMAND_TYPE可以是指示需要多个密钥命令中的哪一个的数字。解密密钥地址REDMEM_ADDR是解密密钥的目标地址。
[0087]密钥命令可包括密钥产生命令、密钥加密命令、密钥解密命令、密钥加载命令和密钥销毁命令。这些密钥命令可以是预先定义或者预先确定的。
[0088]图6至图10是响应于命令处理各个命令的操作的流程图。可由数据处理系统10执行图6至图10中示出的操作。
[0089]图6是密钥产生命令的处理流程的示图。
[0090]如图6中所示,在操作SllO中,主机21将密钥产生命令写入命令寄存器211。例如,主机21可以将与密钥产生命令对应的命令类型和解密密钥地址写入命令寄存器211。一旦密钥产生命令被写入命令寄存器211,主控制器220就解释并执行来自命令寄存器211的命令。
[0091]详细地,在操作S120中,主控制器220从随机数产生器250接收解密密钥。解密密钥是随机数产生器250产生的随机数。此后,在操作S130中,主控制器220将解密密钥写入解密密钥存储器270中的解密密钥地址。
[0092]图7是密钥加密命令的处理流程的示图。
[0093]如图7中所示,在操作S210中,主机21将密钥加密命令写入命令寄存器211。例如,主机21可将与密钥加密命令对应的命令类型和地址写入命令寄存器211。一旦密钥加密命令被写入命令寄存器211,主控制器220就解释并执行来自命令寄存器211的命令。
[0094]在操作S220中,主控制器220从解密密钥存储器270中的地址读取解密密钥并将所述解密密钥发送到分组密码单元230和散列单元240。在操作S230中,散列单元240将解密密钥与从随机数产生器250接收的随机数混合,以产生散列值。散列单元240将散列值发送到分组密码单元230。在操作S240中,分组密码单元230使用KEK对解密密钥、随机数和散列值进行加密。KEK可以由OTP存储器260来提供。在操作S250中,将产生的加密密钥存储在加密密钥存储器280中。在操作S260中,主机21从加密密钥存储器280读取加密密钥并将其存储在外部存储装置155中。
[0095]图8是密钥解密命令的处理流程的示图。
[0096]如图8中所示,在操作S310中,主机21通过主机接口 22从外部存储装置155读取加密密钥并将其写入加密密钥存储器280,然后,在操作S320中,将密钥解密命令写入命令寄存器211。此时,主机21可将与密钥解密命令对应的命令类型和地址写入命令寄存器211。一旦密钥解密命令被写入命令寄存器211,主控制器220就解释并执行来自命令寄存器211的命令。
[0097]在操作S330中,主控制器220从加密密钥存储器280读取加密密钥并将其发送到分组密码单元230,并且分组密码单元230通过与上述加密处理相反的处理从加密密钥产生解密密钥。在操作S340中,将解密密钥发送到散列单元240,并且散列单元240使用解密密钥产生散列值,并比较该散列值与加密密钥中的散列值以检查密钥的完整性。在操作S350中,如果解密密钥通过了完整性检查,则将所述解密密钥写入解密密钥存储器270中其相应的地址。
[0098]图9是密钥加载命令的处理流程的示图。密钥加载命令用于加密数据。在操作S410中,主机21将密钥加载命令写入命令寄存器211。详细地讲,主机21可将与密钥加载命令对应的命令类型和地址写入命令寄存器211。一旦密钥加载命令被写入命令寄存器211,主控制器220就解释并执行来自命令寄存器211的命令。详细地讲,在操作S420中,主控制器220从解密密钥存储器270中的地址读取解密密钥,并将其写入分组密码单元230中的密钥寄存器232。
[0099]图10是密钥销毁命令的处理流程的示图。密钥销毁命令用于销毁密钥。在操作S510中,主机21将密钥销毁命令写入命令寄存器211。详细地讲,主机21可将与密钥销毁命令对应的命令类型和地址写入命令寄存器211。一旦密钥销毁命令被写入命令寄存器211,主控制器就解释并执行来自命令寄存器211的命令。详细地讲,在操作S520中,主控制器220将存储在解密密钥存储器270中的地址中的密钥转换成“O”。
[0100]状态寄存器212使用中断或轮询方法将执行命令的结果(例如,四种结果之一)报告给主机21。例如,在执行命令期间,主控制器220将命令执行结果(例如命令执行完成或者命令执行失败)写入状态寄存器212。此时,可使用中断将写入状态寄存器212的状态报告给主机21,或者主机21可以周期性地读取写入状态寄存器212的状态。
[0101]图11是与解密密钥存储器(或原始DEK存储器)270中存储的解密密钥条目对应的有效位的示图。参照图11,密钥管理器120管理分别与解密密钥存储器270中存储的解密密钥条目对应的有效位。
[0102]有效位可由单个位组成并且可具有“I”或“0”的值。可只针对通过密钥产生命令或密钥解密命令而产生的解密密钥条目,将有效位设置为“ I”。这是因为,当被重设为值“0”的解密密钥存储器270中没有有效位时,不能将有效密钥(或随机密钥)与具有所有值为“0”的密钥区分开。当访问值的位没有被设置为“I”的解密密钥条目时,将命令失败报告给主机21。当使用具有所有值为“0”的密钥时,这意味着,主机21已知的值被用作DEK,这削弱了安全性。
[0103]只有当解密密钥存储器270中存储的解密密钥条目是通过密钥产生命令或者密钥解密命令产生时,主控制器220才可将有效位设置为“ I ”。主控制器220可检查解密密钥存储器270中的解密密钥条目是否是零密钥,并且当解密密钥条目是零密钥时,主控制器220可将相应的有效位设置为“O”。零密钥是具有所有位为“0”的密钥。有效位的默认值可以为“O”。
[0104]根据一些示例实施例,主机21可通过主机接口 22设置密钥和数据,在其它示例实施例中,密钥管理器120可响应于从主机接收的命令来设置密钥和数据,并出了安全考虑,可限制主机21访问这些密钥和数据。有限状态机(FSM)可用于在某些状态下防止主机21访问数据或清除数据,并在其它状态下控制对数据的访问或清除。
[0105]图12是密钥的生命周期的示图。图13是根据本发明构思的一些示例实施例的密钥管理器120的FSM的转变示图。
[0106]参照图12,在阶段SlO中产生密钥,在阶段S20中使用密钥,在阶段S30中存储并解密密钥,并在阶段S40中销毁密钥。
[0107]参照图13,密钥管理器120的FSM可具有五种状态,S卩,默认状态、使用状态、存储状态、解密状态和错误处理状态。
[0108]在默认状态下,密钥和数据不受保护。当在默认状态下响应于密钥加载命令加载密钥时,转变至使用状态。[0109]在使用状态下,密钥被加载到分组密码单元230的密钥寄存器232并用于加密数据。在使用状态下,其中已经加载了密钥的密钥寄存器232受到保护。换句话讲,阻止主机21访问密钥寄存器232。在使用状态下,如果主机21设置了分组密码单元230的密钥寄存器232,则从存储状态转变至默认状态,并清除分组密码单元230的密钥寄存器232。
[0110]当在默认状态或使用状态下响应于密钥加密命令开始密钥加密时,转变至存储状态。在存储状态下,处理密钥加密命令。在这种状态下,密钥寄存器232和输入数据寄存器233受到保护。换句话讲,阻止主机21访问密钥寄存器232和输入数据寄存器233。此时,主机21可访问并读取被写入输出数据寄存器234的加密数据。当完成密钥加密时,从存储状态转变至默认状态。在转变期间,密钥寄存器232和输入数据寄存器233被初始化。换句话讲,从密钥寄存器232和输入数据寄存器233中清除值。
[0111]当在默认状态或使用状态下响应于密钥解密命令开始密钥解密时,转变至解密状态。在解密状态下,处理密钥解密命令。在这种状态下,密钥寄存器232和输出数据寄存器234受到保护。换句话讲,阻止主机21访问密钥寄存器232和输出数据寄存器234。当完成密钥解密时,从解密状态转变至默认状态。在转变期间,密钥寄存器232和输出数据寄存器234被初始化。换句话讲,从密钥寄存器232和输出数据寄存器234中清除值。
[0112]在错误处理状态下,处理错误。当在默认状态下输入异常命令时,转变至错误处理状态。当在解密状态下出现密钥散列不匹配时,转变至错误处理状态。此时,密钥寄存器232和输出数据寄存器234被初始化。密钥散列不匹配意味着,由散列单元240产生的散列值不同于加密密钥中的散列值。
[0113]密钥管理器120可支持调试模式,以为调试提供方便。出于安全考虑,在执行某些命令期间,不允许主机21访问密钥管理器120的主存储器。因此,可能难以在现场可编程门阵列(EPGA)或芯片测试中进行调试。为了解决这个问题,可允许主机21在调试模式期间访问密钥管理器120的主寄存器。
[0114]例如,可允许主机21在调试模式期间访问和读取有效位寄存器、输入数据寄存器233、输出数据寄存器234、密钥寄存器232和散列输出寄存器243中的数据。另外,可允许主机21从随机数寄存器和解密密钥存储器270读取数据,并将用户设置的值写入随机数寄存器和解密密钥存储器270,使得可使用用户想要的值进行测试。
[0115]图14是根据本发明构思的一些示例实施例的调试模式模块310的框图。调试模式模块310是使得能够进行调试模式的电路。
[0116]参照图14,调试模式模块310包括调试模式使能逻辑单元320和测试模式寄存器。调试模式模块310可被包括在密钥管理器120内。
[0117]测试模式寄存器可以是32位寄存器。它可包括测试模式使能位r_ test—mode_en、随机数使能位r_test_rnd_en和保留位。
[0118]调试模式使能逻辑单元320可包括第一 AND元件321和第二 AND元件322。第一AND元件321对通过将从OTP存储器260产生的OTP位i_test_mode_en和测试模式使能位r_test_mode_en求反而得到的值执行AND运算。第二 AND元件322对第一 AND元件321的输出o_test_mode_en和随机数使能位r_test_rnd_en执行AND运算,并产生输出o_test_rnd_en。
[0119]测试模式使能可以具有初始值“0”,并且可以只被写入一次。通过OTP位i_test_mode_en和测试模式使能位r_test_mode_en来确定调试模式使能。当这两个位都为“O”时,第一 AND元件321的输出0_test_m0de_en是使得能够进行调试模式的“I”。因此,在OTP位i_test_mode_en和测试模式使能位r_test_mode_en都为“O”(即,有效低)时,继续调试模式。当OTP位i_teSt_m0de_en被设置为“I”或者值“I”被写入测试模式使能位r_test_mode_en时,调试模式会被终止。
[0120]随机数使能位r_teSt_rnd_en允许在调试模式期间用户的随机数被写入随机数寄存器。当在调试模式下随机数使能位r_teSt_rnd_en为“I”时,第二 AND元件322的输出o_test_rnd_en是使得能够进行调试模式的“ I”。因此,当随机数字使能位r_test_rnd_en为“I”时,用户指定的随机数字可被写入随机数字寄存器并被测试。
[0121]图15是根据本发明构思的其它实施例的数据处理系统500的框图。
[0122]参照图15,数据处理系统500可被实现为个人计算机(PC)、笔记本、膝上型计算机或数据服务器。数据处理系统500也可被实现为便携式装置。便携式装置可以是蜂窝电话、智能电话、平板个人计算机(PC)、个人数字助理(PDA)、企业数字助理(EDA)、数字静态相机、数字摄像机、便携式多媒体播放器(PMP)、便携式导航装置(PDN)、手持游戏操作台或e (电子)书装置。
[0123]数据处理系统500包括处理器100、电源410、存储器420、内存430、I/O端口 440、扩展卡450、网络装置460和显示器470。数据处理系统500还可包括相机模块480。
[0124]处理器100可以是图1中示出的片上系统(SoC)。处理器100可以是多核处理器。
[0125]处理器100可控制元件100和410至480中的至少一个的操作。电源410可向元件100和410至480中的至少一个提供操作电压。可用硬盘驱动器(HDD)或固态驱动器(SSD)实现存储器420。
[0126]可用易失性或非易失性存储器实现内存430,并且内存430可对应于图1中示出的存储装置155。
[0127]控制对内存430的数据访问操作(例如读操作、写操作(或编程操作)或擦除操作)的存储控制器(未示出)可被集成到或者嵌入到处理器100中。可选地,存储控制器可以设置在处理器100和内存430之间。
[0128]I/O端口 440是接收被发送到数据处理系统500的数据或者将数据从数据处理系统500发送到外部装置的端口。例如,I/O端口 440可包括与点击装置(例如计算机鼠标)连接的端口、与打印机连接的端口和与USB驱动器连接的端口。
[0129]扩展卡450可被实现为安全数字(SD)卡或多媒体卡(MMC)。扩展卡450可以是用户识别模块(SM)卡或通用SM (USIM)卡。
[0130]网络装置460使得数据处理系统500能够与有线或无线网络连接。显示器470显示从存储器420、内存430、I/O端口 440、扩展卡450或网络装置460输出的数据。
[0131]相机模块480可将光学图像转换成电子图像。因此,从相机模块480输出的电子图像可被存储在存储器420、内存430或扩展卡450中。并且,可通过显示器470显示从相机模块480输出的电子图像。
[0132]本发明构思还可被实施为计算机可读介质上的计算机可读代码。计算机可读记录介质是可将数据存储为此后可被计算机系统读取的程序的任何数据存储装置。计算机可读记录介质的示例包括只读存储器(ROM)、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光学数据存储装置。
[0133]计算机可读记录介质还可被分布在联网的计算机系统上,使得计算机可读代码以分布式方式被存储和执行。另外,编程人员可容易地理解用于实现本发明构思的功能程序、代码和代码段。
[0134]如上所述,根据一些示例实施例,允许主机只通过命令来访问密钥管理器中的密钥,并且控制软件不直接访问密钥,使得在从密钥产生到密钥销毁的整个生命周期期间安全地管理密钥。
[0135]虽然已经参照本发明构思的示例实施例具体示出和描述了本发明构思,但本领域的普通技术人员应该理解,在不脱离由权利要求书限定的本发明构思的精神和范围的情况下,可在实施例中进行形式和细节上的各种变化。
【权利要求】
1.一种密钥管理器,包括:主控制器,被配置为处理命令;密码单元,被配置为基于主控制器处理命令的结果,对第一密钥进行加密以形成加密密钥或者对数据进行加密以形成加密数据,并且基于主控制器处理命令的结果,对加密密钥或加密数据进行解密;散列单元,被配置为根据主控制器的控制来散列第一密钥;解密密钥存储器,被配置为存储第一密钥;以及加密密钥存储器,被配置为存储加密密钥。
2.如权利要求1所述的密钥管理器,其中,主控制器包括:寄存器,被配置为存储命令;以及处理器,被配置为基于命令在有限状态机内的多个状态之间切换。
3.如权利要求2所述的密钥管理器,其中,寄存器包括:命令寄存器,被配置为存储命令;以及状态寄存器,被配置为存储与命令相关联的状态信息。
4.如权利要求3所述的密 钥管理器,其中,命令包括命令类型和地址,其中,所述地址是解密密钥存储器中的第一密钥和加密密钥存储器中的加密密钥中的一个的地址。
5.如权利要求4所述的密钥管理器,其中,命令包括密钥产生命令、密钥加密命令、密钥解密命令、密钥加载命令和密钥销毁命令中的一个。
6.如权利要求1所述的密钥管理器,其中,第一密钥是被配置为对密钥进行加密的密钥加密密钥(KEK)或被配置为对数据进行加密的数据加密密钥(DEK)。
7.如权利要求6所述的密钥管理器,还包括:一次性可编程(OTP)存储器,被配置为产生KEK ;以及随机数产生器,被配置为产生DEK。
8.如权利要求7所述的密钥管理器,其中,加密密钥包括:第一加密密钥部分、第二加密密钥部分和散列值,第一加密密钥部分包括第一密钥的第一部分和由随机数产生器产生的随机数的第一部分,并且第二加密密钥部分包括第一密钥的第二部分和所述随机数的第二部分。
9.如权利要求1所述的密钥管理器,其中,密码单元包括:密钥寄存器,被配置为存储加密密钥;输入数据寄存器,被配置为存储数据;以及输出数据寄存器,被配置为存储加密数据和解密密钥中的一个或多个。
10.如权利要求9所述的密钥管理器,还包括:调试模式模块,被配置为允许主机在测试模式期间访问密钥寄存器、输入数据寄存器和输出数据寄存器。
11.如权利要求10所述的密钥管理器,其中,调试模式模块包括:调试模式寄存器,包括测试模式使能位、随机数使能位和保留位;以及调试模式使能逻辑单元,被配置为响应于测试模式使能位和随机数使能位来使得能够进行测试模式。
12.如权利要求1所述的密钥管理器,其中,密码单元、散列单元、解密密钥存储器和加密密钥存储器在硬件中实现。
13.如权利要求1所述的密钥管理器,其中,主控制器被配置为允许主机读取存储在加密密钥存储器中的加密密钥,并防止主机访问解密密钥存储器、密码单元和散列单元。
14.一种管理第一密钥的方法,所述方法包括:处理命令寄存器中存储的命令;如果命令是密钥产生命令,则使用随机数产生器产生第一随机数,并将所产生的随机数作为解密密钥存储在解密密钥存储器中;以及如果命令是密钥加密命令,则产生加密密钥,产生加密密钥的步骤包括:对解密密钥进行加密以形成加密密钥,将加密密钥存储在加密密钥存储器中,并且从加密密钥存储器读取并输出加密密钥。
15.如权利要求14所述的方法,其中,命令包括加密密钥和解密密钥中的一个的命令类型和地址。
16.如权利要求15所述的方法,其中,产生加密密钥的步骤包括:从解密密钥存储器读取解密密钥;通过将解密密钥与由随机数产生器产生的第二随机数混合来产生散列值;通过对解密密钥、第二随机数和散列值执行加密来产生加密密钥;以及将加密密钥存储在加密密钥存储器中。
17.一种密钥管理器,包括:随机数产生器,被配置为产生随机数;存储器,被配置为存储第一密钥;以及主控制器,被配置为将随机数存储在解密密钥存储的地址中,基于第一密钥和随机数的散列部分来加密第一密钥以形成加密密钥,并将加密密钥存储在加密密钥存储器中,解密从外部主机接收的加密密钥以形成解密密钥,并且控制与外部主机的通信,使得在正常操作模式下,允许外部主机访问加密密钥存储器并防止外部主机访问解密密钥存储器。
18.如权利要求17所述的密钥管理器,其中,主控制器被配置为通过以下处理加密第一密钥:基于第一散列值散列所选择的随机数字的一部分和第一密钥的一部分,以形成散列密钥,加密散列密钥和第一散列值以形成加密密钥,并且将加密密钥存储在加密密钥存储器中。
19.如权利要求17所述的密钥管理器,其中,主控制器被配置为通过以下处理解密加密密钥:基于第一散列值和随机数解密加密密钥,以形成解密密钥;以及对解密密钥执行完整性检查,执行完整性检测的步骤包括:基于 解密密钥产生第二散列值,并且比较产生的第二散列值与解密密钥的第一散列值。
20.如权利要求17所述的密钥管理器,其中,在调试模式下,主控制器被配置为允许外部主机访问解密密钥存储器。
【文档编号】G06F21/62GK103577768SQ201310339779
【公开日】2014年2月12日 申请日期:2013年8月6日 优先权日:2012年8月6日
【发明者】朴在喆, 廉允皓, 洪东杓 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1