用于安全密钥生成的方法和设备与流程

文档序号:25356562发布日期:2021-06-08 14:54阅读:282来源:国知局
用于安全密钥生成的方法和设备与流程

1.本发明总体上涉及密码系统,并且更具体地涉及用于确定密钥的方法和设备。


背景技术:

2.密码设备用于许多领域中,以确保在数据存储和/或数据传输期间的数据的安全性、认证、保护和隐私。随着计算机科学和计算机硬件技术领域的巨大且持续的进步,密码设备已经成为必不可少的项目。低成本、快速且小型的密码设备被部署在用于许多应用的各种系统(例如,通信系统和数据处理系统)中。
3.密码设备使用一个或多个密钥来从原始数据生成安全数据,以用于防止黑客或攻击者恢复原始数据,而对安全数据的访问需要对密钥的访问。密码设备因此存储敏感的私有数据(例如,密钥)。对密码硬件的攻击可能会对数据安全性造成灾难性的影响,包括例如隐私的丧失以及保护和安全性的丧失。
4.攻击者关于密码设备的目标取决于应用。例如,攻击者可以以了解私有参数(例如,密钥)为目标,或者在不了解私有参数或者损害系统的正常可服务性的情况下,尝试利用被攻击的密码设备的泄漏信息。
5.在安全的密码设备中,旨在攻击者无法通过观察或操纵存储敏感数据或实现涉及敏感私有数据的密码机制的单元的输入/输出,来获取有关私有数据的任何知识。攻击者可以通过执行穷尽的搜索来尝试恢复敏感数据(例如,如果攻击者的目标是提取一个或多个密钥,则对密钥的整个空间进行穷尽的搜索)。
6.存在对密码设备的若干种攻击,包括例如以密码算法的物理实施方式为目标的硬件攻击,以及以在处理器上执行软件代码/程序时密码设备的行为为目标的网络攻击。示例性物理硬件攻击包括边信道攻击和故障攻击。
7.边信道攻击使用任何物理上泄漏的信息(例如,功耗、处理时间、电磁辐射、声音和红外辐射),该信息可以由攻击者用作密码机制的物理实施方式的附加知识源。泄漏的信息可以揭示受攻击设备的内部结构的特性和正在运行的密码机制的特性。例如,测量密码设备随时间的功耗,或者测量运行密码机制或运行用于生成密钥的计算操作所需的时间,可能会公开有关私有数据的信息。
8.在故障攻击中,攻击者强迫密码设备执行一些错误操作,其目的是在受攻击设备的错误行为期间利用任何泄漏的信息来确定在错误操作的运行期间涉及的私有参数。存在用于引起故障攻击的若干种方法,包括例如提供有噪声的功率或时钟信号、不正确的电压、或过高的温度。
9.网络攻击利用由处理元件/组件/单元执行的机器代码执行来访问受攻击设备并获得对受攻击设备的控制。特别地,对硬件/软件设计的基于存储器的攻击依赖于破坏存储器地址(位置)来劫持控制流。例如,可以通过破坏代码/程序存储器位置(例如,返回地址)来实现任意程序执行。
10.存在针对硬件攻击和网络攻击的若干种保护技术。
11.可以通过提供在恒定时间内运行的密码机制和算法或者开发在恒定程序流下工作的密码程序(不论什么样的安全数据),来对抗边信道攻击。这些技术允许缓解边信道攻击。然而,它们的实际实施方式在硬件资源(存储空间、处理能力)例如由于成本或尺寸考虑而受限的应用中是不可行的。此外,由算法操纵的数据值也可能泄漏。因此,其它边信道缓解解决方案已经在以下文献中公开:
12.‑“
s.chari,c.s.jutla,j.r.rao and p.rohatgi.towards sound approaches to counteract power

analysis attacks.advances in cryptology

crypto.volume 25 1666of the series lecture notes in computer science.pages 398

412.1999”;
13.‑“
s.chari,j.r.rao和p.rohatgi.template attacks.cryptographic hardware and embedded systems(ches).volume 2523of the series lecture notes in computer science.pages 13

28.2003”;以及
14.‑“
j

s.coron and l.goubin.on boolean and arithmetic masking against differential power analysis.cryptographic hardware and embedded systems(ches).volume 1965of the series lecture notes in computer science.pages231

237.2000”。
15.这些解决方案基于诸如秘密分割(secret splitting)或掩蔽方案之类的随机化技术,以旨在通过随机未知数的使用来对密码机制添加保护层,这些随机未知数防止意外接收者或攻击者根据泄露的信息来预测秘密值。在攻击者利用一瞬间观察到的物理泄漏信息的情况下,掩蔽方案是高效的。然而,对于基于多个瞬间中的多个泄漏信息的一些攻击(例如,高阶差分分析),随机化技术无法阻止攻击者成功地恢复期望的秘密值(在“p.c kocher,j.jaffe,and b.jun.differential power analysis.advances in cryptology

crypto.volume 1666of the series lecture notes in computer science.pages 388

297,1999”中)。
16.针对硬件或软件中的故障攻击的保护旨在帮助电路避免检测和/或校正故障。存在被动保护和主动保护。示例性的被动保护包括时钟周期、总线、以及存储器加密的随机化。示例性的主动保护包括使用传感器和检测器来推断异常电路行为。
17.针对网络攻击的保护包括:
18.‑
用于检测/识别恶意软件代码的存在的防病毒程序;
19.‑
用于检测溢出的金丝雀(canary)的使用;
20.‑
用于识别和追踪不安全数据的动态信息流追踪;
21.‑
结合不可执行的栈和堆的部署、地址空间布局随机化、以及栈金丝雀,使用虚拟存储器地址而不是物理地址;这样的保护措施提供了存储器访问约束,并且防止攻击者的代码注入和/或执行,以及
22.‑
基于对流量控制的任何修改的检测来控制流量完整性。
23.针对硬件和软件攻击(其以在密码设备中存储/由密码设备使用的密钥的提取为目标)的现有保护提供了部分保护,并且不足以完全地保护密码设备。
24.因此,需要开发高效的密钥生成技术,其防止旨在恢复密码设备中实现的密钥的攻击。


技术实现要素:

25.为了解决这些和其它问题,提供了一种用于确定密码设备中的一个或多个密钥的密钥确定设备,该密码设备被配置为执行一个或多个测试程序,该密码设备包括一个或多个组件,每个组件被配置为生成静态数据和动态数据,该动态数据是响应于一个或多个测试程序的执行而生成的。有利地,密钥确定设备包括:
26.‑
数据提取单元,其被配置为提取由一个或多个组件生成的至少一部分静态数据和至少一部分动态数据;以及
27.‑
密钥生成器,其被配置为将至少一部分静态数据和至少一部分动态数据进行组合,并且通过将密码函数应用于组合数据来确定一个或多个密钥。
28.在一些实施例中,密码设备可以被配置为连续地执行一个或多个测试程序。
29.在另一个实施例中,密码设备可以被配置为根据预定义的时间间隔来周期性地执行一个或多个测试程序。
30.在又一个实施例中,一个或多个测试程序的执行可以是事件驱动的,密码设备被配置为响应于一个或多个事件而执行一个或多个测试程序。
31.在又一个实施例中,密码设备可以被配置为响应于中断动作或用户发起的动作而执行一个或多个测试程序。
32.在一些实施例中,一个或多个测试程序的执行可以由密码设备实现以执行系统启动测试,密码设备被配置为在每次系统启动时执行一个或多个测试程序。
33.在一个实施例中,一个或多个测试程序的执行可以由密码设备实现,以执行用于测试在密码设备中实现的一个或多个存储器单元的存储器测试。
34.在另一个实施例中,一个或多个测试程序的执行可以取决于一个或多个测试参数来实现,测试参数在包括测试持续时间和测试复杂度的组中被选择。
35.一个或多个组件中的组件可以是处理器或存储器。
36.特别地,密钥生成器可以是随机数生成器或物理上不可克隆的函数。
37.在一些实施例中,密码设备可以被配置为:在包括数据加密、数据解密、消息认证、以及数字签名的一个或多个应用中使用一个或多个密钥。
38.数据加密可以使用在包括des、3des、aes和rc4的组中选择的对称加密算法来执行。
39.可替代地,数据加密可以使用非对称加密算法来执行,该非对称加密算法是rsa或ecdsa。
40.在一些实施例中,一个或多个密钥可以被存储在密码设备内,或者在密码设备内被共享,或者与外部设备共享,或者与外部系统共享。
41.进一步提供了一种用于确定一个或多个密钥的方法,该方法包括:
42.‑
执行一个或多个测试程序;
43.‑
生成静态数据和动态数据,该动态数据是响应于一个或多个测试程序的执行而生成的。
44.有利地,方法包括:
45.‑
提取至少一部分静态数据和至少一部分动态数据;
46.‑
将至少一部分静态数据和至少一部分动态数据进行组合;以及
47.‑
通过将密码函数应用于组合数据来确定一个或多个密钥。
48.有利地,根据本发明的各种实施例,基于代表密码设备的动态行为的动态数据确定密钥实现了保护密码设备免受旨在恢复密钥的攻击。对密码设备的动态行为的依赖性使得攻击者需要对整个系统进行反向工程以恢复密钥。
49.有利地,本发明的各种实施例通过增加旨在提取密钥的反向工程的难度,来提供用于增强密码设备的安全性和保护的高效技术。
50.有利地,本发明的各种实施例提供了对密码设备的安全初始化。
51.在检查了附图和详细描述时,本发明的另外的优点对于本领域技术人员而言将变得显而易见,这些附图和详细描述仅出于说明目的而被提供。
附图说明
52.并入本说明书中并且构成其一部分的附图连同上面给出的本发明的一般描述和下面给出的实施例的详细描述示出了本发明的各种实施例。
53.图1是示出根据本发明的一些实施例的密码设备的结构的框图。
54.图2是示出根据响应于一个或多个测试程序的执行而生成的静态和动态数据来确定一个或多个密钥的方法的流程图。
具体实施方式
55.本发明的实施例提供了用于保护密码设备免受硬件和/或软件攻击的设备和方法,这些硬件和/或软件攻击旨在恢复在密码设备中存储/由密码设备生成的密钥。特别地,本发明的设备和方法取决于在密码设备处动态生成并且表示密码设备的动态行为的动态数据,来提供对密钥的确定。
56.密码设备是指实现硬件和/或软件密码机制以用于确保数据和/或信号安全性、认证、保护和/或隐私的设备。
57.根据本发明的各个实施例的安全密码设备和方法可以在多种设备或系统(例如,工业、信息、以及消费者设备)中实现。根据本发明的实施例的安全密码设备和方法可以用于广泛的应用(例如,民用或军用通信应用或数据处理应用)中,例如包括:
58.‑
数字电子;
59.‑
用于确保数据在不安全的传输信道上的安全传输的通信;
60.‑
用于保护数据中心互连的计算网络/系统;
61.‑
云计算应用和云服务器;
62.‑
通信应用(例如,窃听信道(wire

tap channel)上的通信);
63.‑
用于确保防盗保护的汽车工业;
64.‑
用于提供受限的访问的服务提供商系统;
65.‑
用于认证对电池和配件的控制和访问的移动电话设备;
66.‑
用于保护银行账户和金融交易的银行业;
67.‑
医学,其用于保护医疗数据和医疗设备(例如,可植入医疗设备),这些医疗设备可以被植入体内以治疗疾病或者监视一些身体部位的功能的状态(例如,用于监视和治疗心脏疾病的起搏器、除颤器,在例如癫痫或帕金森病的情况下的用于深部脑刺激的脑部监
视或刺激设备(例如,神经刺激器),药物输送系统,生物传感器);
68.‑
在fpga、硬件安全性模块、以及嵌入智能卡或电动车辆(evs)中的电子组件中的敏感应用;
69.‑
等等。
70.在安全启动的上下文中,在设备启动时密钥的生成至关重要。安全性关键设备确实需要在它们休息时保护自己。这是因为在电源被切断时,攻击者可能会用显微镜观察存储器的内容,并且甚至将不同的金属化层解层(delayer)以更容易地访问硅,从而获得更好的可观察性。一些攻击者还可以尝试修改存储器中的代码。在这种上下文中,强有力的防御包括对存储器进行加密和认证。两种操作都需要密钥:一个用于加密,而另一个用于认证功能。这种操作被称为将“红色”(敏感)信息转换成“黑色”(非敏感)信息。然而,为了防止攻击者首先尝试读取密钥,密钥不应当被轻易找到。否则,在这种步骤之后,攻击者将能够在重新生成值认证标签的同时解密存储器或更改它们。因此,需要严格保护的主密钥。密钥可以被称为信任根(rot)的基础。
71.参考图1,示出了系统100中的安全密码设备1的示例性实施方式。
72.系统100可以是例如通信系统(例如,数字、有线、无线、蜂窝、光学、卫星、声学、以及分子通信系统)、数据处理系统(例如,在线销售系统、金融系统、电子护照系统、银行业)、数据存储系统(例如,数据库)、记录系统(例如,磁性和光学记录)、定位系统等。
73.密码设备1可以是被编程和/或可编程用于执行密码机制或算法的任何设备、计算机、计算机器或嵌入式系统,这些密码机制和算法涉及一个或多个密钥的使用、生成和/或存储。
74.示例性密码设备10包括但不限于:
75.‑
智能卡,用于存储密钥的令牌(例如,钱包),智能卡读取器(例如,自动取款机(atm)),其例如在金融交易、限制访问、电信、军用应用、安全通信装备、以及tv机顶盒中使用;
76.‑
电气和数字电子设备,例如rfid标签和电子密钥;
77.‑
嵌入式安全元件;
78.‑
计算机(例如,台式计算机和膝上型计算机)、平板电脑;
79.‑
路由器、交换机、打印机;
80.‑
移动电话,例如智能电话、基站、中继站、卫星;
81.‑
物联网(iot)设备、机器人、无人机;以及
82.‑
录音机、多媒体播放器、移动存储设备(例如,存储器卡和硬盘),其中登录访问通过密码机制监视。
83.在本发明对通信系统的应用中,密码设备1可以是固定的或移动的,其被配置为在有线、无线或基于光纤的通信网络中工作。
84.此外,密码设备1可以是独立设备,或者可以被连接到外部设备、机器或系统。密码设备1可以例如在计算机联网系统中被实现(使用例如一个或多个小面积或大面积有线或无线访问网络)。
85.可以实现一个或多个测试以测试密码设备1,例如以便诊断密码设备1的可服务性和/或校正其操作。特别地,可以在密码设备1的设计或制造期间或者在所述密码设备1的可
操作性期间执行设计测试。
86.可以使用通常被称为“自动测试装备”或“自动化测试装备”(ate)的外部测试装置(或“装备”)对密码设备1进行设计测试。自动测试装备被配置为对密码设备执行测试,这些密码设备被称为“被测设备”(dut)、“被测装备”(eut)或“被测单元”(uut)。自动测试装备实现了一种用于快速地执行测量和分析测试结果的处理。自动化测试装备可以是简单的计算机控制的数字万用表,或者是包含能够在复杂的电子封装零件或晶圆测试中自动地测试和诊断故障的数十个复杂测试仪器(真实或模拟的电子测试装备)的复杂系统,包括片上系统和集成电路。
87.根据本发明的一些实施例,密码设备1可以是被编程和/或可编程用于自我执行一个或多个设计测试程序而不依赖于外部测试装备的设备、计算机、计算机器或嵌入式系统。
88.被称为“内置自测”(bist)或“内置测试”(bit)的设计测试是使得机器能够在不依赖于外部测试装备的情况下自我测试的机制。
89.bist可以被设计为满足包括高可靠性、低维修周期的若干要求,或者取决于包括有限的技术人员可访问性以及制造期间增加的测试成本的若干约束。
90.通过减少测试周期持续时间和测试/探针设置的复杂度,bist由于依赖外部测试装备来测试设备/机器而提供了复杂度和成本上的降低。
91.内置自测用于测试若干设备和系统的功能,包括但不限于用于汽车、航空电子、电子、以及医疗设备中的设备。
92.特别地,汽车设备执行bist来增强安全性和可靠性。例如,具有防抱死制动器的大部分车辆每个安全间隔测试它们一次。如果防抱死制动系统具有断线或其它故障,则制动系统恢复为作为正常制动系统工作。大多数汽车引擎控制器为每个传感器纳入“保护模式(limp mode)”,使得如果传感器或其接线出现故障,则引擎将继续工作。
93.在航空电子中,在制造阶段期间或者飞行期间在民用和军用飞机中执行bist,以最小化维修检测到的故障设备所需的地面上时间,并且提高飞机系统的安全性的级别。
94.bist在电子中的示例性应用包括由集成电路和计算机执行的bist。bist用于集成电路制造,以进行更快的、更便宜的集成电路制造测试。包括嵌入式系统的计算机执行bist,以自测其处理器和/或存储器和/或软件。
95.在医学中,医疗设备执行bist以自我测试,以用于确保连续的安全性。安全性关键型设备通常定义“安全性间隔”,其是足够短以防止伤害发生的时间段。医疗设备在每个安全性间隔至少执行一次对最关键功能的bist。
96.本发明的各种实施例提供了改进的安全密码设备,其中,对一个或多个密钥的确定取决于在内置自测的执行期间生成的数据。更具体地,密钥生成基于由密码设备中实现的组件响应于被执行的内置自测而生成的动态数据。
97.参考图1,示出了在密码设备1中实现的用于确定密码设备1中的一个或多个密钥的密钥确定设备13。密码设备1被配置为执行对应于设计测试的一个或多个测试程序。密码设备1包括一个或多个组件11

i(其中,i=1,...,n),每个组件11

i被配置为:响应于与由密码设备1执行的设计测试相对应的一个或多个测试程序的执行,而生成静态数据和动态数据。密钥确定设备13包括:
98.‑
数据提取单元131,其被配置为:提取由一个或多个组件11

i生成的至少一部分
静态数据和至少一部分动态数据,以及
99.‑
密钥生成器133,其被配置为:通过将提取出的至少一部分静态数据和至少一部分动态数据进行组合来确定组合数据,并且通过将密码函数应用于组合数据来确定一个或多个密钥。
100.密码设备1可以被配置为执行一个或多个设计测试,以用于通过预测这样的故障和识别可能的故障点来减少硬件和/或软件故障的可能性。故障点可能发生在处理器处和/或处理器周围或一个或多个外围设备周围的电路处和/或存储器处和/或软件处。
101.当处理器故障发生时,任何指令将被执行都不太可能。这样的事件中的设计测试因此是无关的。由于这样的故障最有可能在加电时发生,因此系统监视器/管理器/管理程序可能会注意到并且处理这样的故障。
102.在一些实施例中,其中,密码设备1是以处理器中的一个的故障将不会影响剩余处理器的方式在芯片上单独实现两个或更多个处理器的多处理器设备(处理器是单核处理器或多核处理器),密码设备1可以被配置为执行与一个或多个设计测试相对应的一个或多个测试程序,以验证和/或识别在两个或更多个处理器中的一个处或者在多核处理器的核心中的一个或多个处是否已经发生任何故障。
103.设计测试的结果可以被显示在面板(其是密码设备1的一部分)上,被输出到连接到密码设备1的外部设备,或者被存储以供诊断工具或系统监视器/管理器/管理程序将来取回。
104.在一些实施例中,密码设备1可以被配置为连续地执行对应于设计测试的一个或多个测试程序。在这样的实施例中,数据提取单元131可以被配置为:以时间间隔(例如,特定、预定义、预定、或所选择的时间间隔)定期执行由一个或多个组件11

i生成的至少一部分静态数据和至少一部分动态数据的提取。
105.在一些实施例中,密码设备1可以被配置为:根据预定义的时间间隔(例如,设计测试时间间隔)来周期性地执行对应于设计测试的一个或多个测试程序。设计测试间隔可以例如对应于用于例如医疗应用中的密码设备的安全性间隔。
106.在一些实施例中,一个或多个测试程序的执行可以是事件驱动的,密码设备1被配置为响应于一个或多个事件而执行与事件驱动设计测试相对应的一个或多个测试程序。示例性的事件驱动设计测试包括在飞机着陆后在飞机系统处执行的设计测试。
107.在一些实施例中,密码设备1可以被配置为响应于中断动作或用户发起的动作来执行对应于设计测试的一个或多个测试程序。
108.在一些实施例中,数据提取单元133可以被配置为根据数据量阈值来提取静态数据和动态数据,该数据量阈值是取决于根据提取出的数据生成一个或多个密钥所需的安全性级别/性能级别/密钥计算复杂度和/或延时而被先前确定的。
109.在一些实施例中,静态和动态数据提取的持续时间和/或频率可以是可配置/被配置用于满足目标性能/安全性的折衷。
110.在一些实施例中,静态和动态数据提取的持续时间和/或频率可以通过前述特征中的至少一些的组合来执行。
111.在一些实施例中,一个或多个测试程序的执行可以由密码设备1实现,以在密码设备1被加电之后立即在每次系统启动时执行系统启动测试。在这样的实施例中,密钥生成器
133可以被配置为:根据由在密码设备1中包括的一个或多个组件11

i生成的系统启动数据,来确定一个或多个密钥,以用于保护系统启动并且确保密码设备1的安全初始化。
112.系统启动测试可以包括一个或多个测试程序,以执行以下动作中的一个或多个:
113.‑
验证在密码设备1中包括的一个或多个处理单元(或处理器)的寄存器的完整性;
114.‑
验证一些组件(例如,计时器和中断控制器)的完整性;
115.‑
找到密码设备1的主存储器、确定其大小和对其进行验证;
116.‑
识别、组织和选择可用于启动的设备/组件;
117.‑
发现、初始化所有系统总线和组件和将其编入目录;
118.‑
为系统配置提供用户接口;
119.在一些实施例中,成功的系统启动测试之后可以是操作系统的加载和/或被称为“系统启动组件”的一个或多个组件的初始化。系统启动组件可以例如包括外围设备。
120.有利地,测试数据可能没有被记录,使得旨在恢复密钥的侵入式攻击将需要将整个芯片反向,这是由于密钥是通过在芯片中的各个位置处的读取来构建的。
121.在一些实施例中,一个或多个测试程序的执行可以由密码设备1实现以执行存储器测试,密码设备1被配置为:执行所述存储器测试以测试在密码设备1中实现的一个或多个存储器单元。
122.可以执行存储器测试以检测/识别存储器故障。存储器故障可能是瞬时的,或者可能是硬的。暂时的故障/错误是不时发生并且几乎不可能防止的非永久性故障。硬故障是永久性失灵,其可以以三种形式出现:
123.1)存储器根本不响应于被寻址;
124.2)一个或多个位被卡在“0”或“1”处;
125.3)存在串扰;寻址一个位影响一个或多个其它位。
126.存储器测试可以由密码设备1执行以检测这样的硬存储器故障。这样的存储器测试可以在系统启动时和/或在密码设备1的可操作性期间作为后台任务被执行。
127.可以在系统启动时(其是存储器最有可能发生故障并且因此测试尚未包含可能敏感的数据的存储器的时间)有利地执行存储器测试。
128.只要程序执行中的中断被容许,就可以通过在密码设备1的可操作性期间测试存储器的各个字节/字来执行后台存储器测试。当不存在正在被执行的程序/指令时,这样的存储器测试可以例如在空闲时间期间或者作为后台任务被执行。
129.在一些实施例中,可以取决于一个或多个测试参数来在密码设备1中实现一个或多个测试程序的执行,测试参数在包括测试持续时间和测试复杂度的组中被选择。
130.在一个实施例中,可以在包括处理器、存储器单元、密码单元、以及外围设备的组中选择在密码设备1中包括的一个或多个组件11

i(其中,i=1,...,n)之中的组件11

i。
131.处理器是指被配置为执行以下操作的组件:通过执行由指令指定的算术、逻辑、控制和输入/输出操作,来使用一个或多个处理单元(被称为“核心”)执行在存储器单元中存储的一个或多个程序的指令。
132.根据一些实施例,密码设备1可以是多处理器,包括至少两个处理器11

i。
133.在一些实施例中,处理器11

i可以是单核处理器,包括单个处理单元(图1中未示出)。
134.在其它实施例中,处理器11

i可以是多核处理器,包括被配置为在给定时间处执行任务的多个核心(例如,如在嵌入式系统、数字信号处理、或图形处理单元中使用的)。任务可以是由操作系统调度的软件进程和/或线程。
135.在这样的实施例中,处理器11

i可以是单个计算组件,其被配置为在单独的核心上同时运行多个指令,从而增加了适于并行计算的程序执行的整体速度。不同的核心可以被集成到单个集成电路管芯(也被称为芯片多处理器)上,或者被集成到单个芯片封装中的多个管芯上。
136.此外,多核处理器11

i中的核心可以共享或不共享存储器单元(例如,高速缓冲存储器)。在一些实施例中,核心可以被配置为实现消息传递或共享存储器核心间通信方法。
137.在其中密码设备1是多处理器的实施例中,密码设备1可以包括一个或多个单核处理器以及一个或多个多核处理器。
138.此外,在其中密码设备1包括多个处理器11

i的一些实施例中,处理器11

i可以被集中在空间中或者被分布在诸如服务器集群和服务器场之类的空间中。
139.根据一些实施例,密码设备1可以包括至少一个虚拟处理器11

i,虚拟处理器是被指派给虚拟机(例如,在云计算应用、云服务器等中)的物理中央处理单元。
140.特别地,处理器11

i可以包括:
141.‑
一个或多个处理单元(图1中未示出),其被配置为执行程序指令;每个处理单元可以包括:被配置为执行算术和逻辑运算的算术和逻辑单元(alu),以及被配置为向alu提供操作数并且存储alu操作的结果的处理器寄存器;以及
142.‑
控制单元(图1中未示出),其被配置为:通过指导alu、寄存器和密码设备1的其它组件的协调操作,来对程序指令进行解码,并且安排/协调(从存储器单元或存储设备中)提取和执行指令。
143.处理器寄存器可以形成小型且非常快速的存储器单元(与较慢的ram主存储器相对),这些存储器单元用于通过提供对常用值的快速访问来加速程序的执行。处理器寄存器可以特别地包括特定内部寄存器

寄存器,它们不能通过指令访问,而仅在内部用于处理器操作,包括:
144.‑
程序计数器,也被称为“指令寄存器”(图1中未示出):程序计数器可以指示处理器11

i在其指令序列中的位置。取决于特定系统,程序计数器可以被配置为保存正在被执行的指令的地址或者要被执行的下一条指令的地址;
145.‑
存储器地址寄存器(图1中未示出),其被配置为:存储将从其提取数据到处理器11

i的存储器地址(即,要从存储器单元加载到处理器11

i的数据的存储器位置),或者将向其发送数据以进行存储的地址(即,将存储数据的存储器位置),以及
146.‑
存储器数据寄存器(图1中未示出),其被配置为:存储从存储器单元提取/取回(从处理器高速缓存或从存储器单元取回)并且准备好被处理的数据,或者等待被存储在其它存储器单元中的数据。
147.根据一些实施例,密码设备1可以进一步包括被配置为在一个或多个组件11

i之间路由数据和/或元数据的存储器总线。
148.密码单元11

i可以是处理单元或存储单元,其被配置为生成/存储/管理/使用密码数据以及与由密钥生成器133生成的密钥不同的密钥。
149.密码单元11

i可以是安全密码处理器11

i,其专用于执行密码操作以保护存储器中的敏感数据免受硬件和/或软件攻击。密码处理器11

i可以被配置为执行用于加密、完整性和重放保护的密码机制。有利地,存储器加密实现了保护存储器驻留数据的机密性,完整性保护实现了防止攻击者产生对存储器中存储的加密数据的隐藏修改,并且重放保护实现了消除对加密数据的未检测到的暂时替换。示例性密码处理器包括智能卡,这些智能卡例如用于金融交易、限制访问、电信、军用应用、安全通信装备、自动提款机、tv机顶盒等中。
150.根据一些实施例,存储器单元11

i可以包括:
151.‑
被配置为存储数据的数据存储器(图1中未示出);
152.‑
指令存储器(图1中未示出),其被配置为存储程序的指令(包括测试程序的指令);以及
153.‑
元数据存储器(图1中未示出),其被配置为存储与每个存储器位置相关联的元数据(对应于数据或指令存储器位置)。
154.为了加速程序的处理并且减少从存储器单元11

i访问数据的平均成本(时间或精力),可以使用更小和更快的高速缓冲存储器。
155.因此,存储器单元11

i可以包括与在密码设备1中实现的每个处理器相关联的处理器高速缓存,该处理器高速缓存被配置为访问要由与其关联的处理器执行的程序中包括的数据和/或指令。处理器高速缓存可以被配置为存储来自存储器单元11

i中的频繁请求的位置的数据和/或指令的副本,使得它们在被需要时对于处理器立即可用。特别地,在处理器高速缓存中存储的数据可以是较早计算的结果,或者是别处存储的数据的副本。
156.处理器高速缓存可以包括不同的独立高速缓存,包括数据高速缓存和/或指令高速缓存。
157.在一些实施例中,处理器高速缓存可以被组织为高速缓存级别的层级。
158.根据一些实施例,处理器高速缓存可以位于处理器11

i芯片的内部(内部高速缓存)。
159.可替代地,处理器高速缓存可以位于处理器11

i芯片的外部(外部高速缓存)。
160.根据一些实施例,存储器单元11

i可以对应于密码设备1的主存储器。
161.根据一些实施例,可以在包括易失性存储器、非易失性存储器、易失性存储器单元和非易失性存储器单元二者的组合的组中选择存储器单元11

i。
162.易失性存储器可以使用ram、dram(例如,ddr、sdram)、sram、t

ram、以及z

ram中的一个或多个。就改进读取/写入性能而言,易失性存储器通常是有利的,其与非易失性可写存储器相比具有更低的成本/占用空间。
163.非易失性存储器可以使用掩模型rom、prom、eprom、eeprom、nvram、闪速存储器、固态存储装置、nvsram、feram(铁电ram)、mram(磁性ram)、pram中的一个或多个。非易失性存储器在重新启动和/或重启后提供对先前存储的信息的访问方面通常是有利的。
164.根据一些实施例,在密码设备1中包括的组件11

i可以是包括输入设备、输出设备和输入/输出的内部或外部外围设备。
165.输入设备可以被配置为与计算机交互或者从用户向计算机发送数据。示例性输入设备包括键盘、计算机鼠标、图形输入板、条形码读取器、图像扫描仪、麦克风、网络摄像头、游戏控制器、光笔、以及数码相机。
166.输出设备可以被配置为从密码设备1向用户提供输出。示例性输出设备包括计算机显示器、打印机、投影仪、计算机扬声器、网络摄像头。
167.输入/输出设备可以被配置为执行这两种功能。示例性输入/输出设备包括触摸屏。
168.在一些实施例中,密钥生成器123可以是随机数生成器或物理上不可克隆的函数。
169.在一些实施例中,可以在包括伪随机数生成器和真正的随机数生成器的组中选择随机数生成器。
170.根据一些实施例,密码设备1可以被配置为:在包括数据加密、数据解密、消息认证、以及数字签名的一个或多个应用中使用由密钥生成器133确定的一个或多个密钥。
171.数据加密可以使用一种或多种加密机制来实现纠错码(例如,汉明码、bch码)、散列函数、以及基于密钥的密码算法(使用对称或非对称密钥)中的一种或多种。
172.可以在包括des(数据加密标准)、3des、aes(高级加密标准)、以及rc4(rivest密码4)的组中选择对称加密算法。
173.可以在包括rsa(rivest

shamir

adleman)和ecdsa(椭圆曲线数字签名算法)的组中选择非对称加密算法。
174.在一些实施例中,可以基于在应用和/或定义的用户所需的性能、存储器、以及安全性级别之间的折衷,来选择加密和解密算法。
175.密钥生成器133可以被配置为:取决于一个或多个秘密参数来确定一个或多个密钥,所述一个或多个秘密参数例如口令或外部秘密值,其出于共享由密码设备1确定的一个或多个密钥的目的,例如在密码设备1与连接到系统100的一个或多个外部设备/机器/用户之间共享。
176.在一个实施例中,一个或多个密钥可以被存储在密码设备内、在密码设备内共享、与外部设备共享、与其它系统(例如,用户系统)共享。
177.密钥可以在重新启动和/或关机时被销毁,并且可以在密码设备1的初始化时被初始化(以确定性或随机的方式)。
178.参考图2,示出了一种用于确定一个或多个密钥的方法,该方法包括:
179.‑
在步骤21处,通过执行一个或多个测试程序来执行设计测试;
180.‑
在步骤23处,响应于被执行的设计测试,来生成静态数据和动态数据;
181.‑
在步骤25处,提取至少一部分所生成的静态数据和至少一部分所生成的动态数据;
182.‑
在步骤27处,通过将提取出的至少一部分所生成的静态数据和提取出的至少一部分所生成的动态数据进行组合,来确定组合数据;以及
183.‑
在步骤29处,通过将密码函数应用于组合数据来确定一个或多个密钥。
184.可以执行一个或多个设计测试以预测/防止/识别任何硬件或软件故障。
185.可以连续地、或者根据预定义的设计测试时间间隔周期性地、或者响应于一个或多个事件、或者响应于中断动作或用户发起的动作,来执行对应于设计测试的一个或多个测试程序。
186.在一些实施例中,可以根据数据量阈值来执行静态数据和动态数据的提取,该数据量阈值是取决于安全性级别/性能级别/密钥计算复杂度和/或根据提取出的数据生成一
个或多个密钥所需的延时来先前确定的。
187.在一些实施例中,静态数据和动态数据提取的持续时间和/或频率可以是可配置/被配置用于满足目标性能/安全性的折衷。
188.在一些实施例中,可以通过前述特征中的至少一些的组合,来执行静态数据和动态数据提取的持续时间和/或频率。
189.在一些实施例中,设计测试可以是在每次系统启动时执行的系统启动测试。
190.在一些实施例中,设计测试可以是被执行以检测/识别存储器故障的存储器测试。
191.在一些实施例中,可以根据一个或多个设计测试参数来执行设计测试。设计测试参数可以是测试持续时间(也被称为“设计测试持续时间”)或测试复杂度(也被称为“设计测试复杂度”)。
192.在一些实施例中,可以使用密码函数来确定一个或多个密钥,该密码函数可以是随机数生成器或物理上不可克隆的函数。
193.在一些实施例中,随机数生成器可以是伪随机数生成器或真正的随机数生成器。
194.在一些实施例中,一个或多个密钥可以用于一个或多个应用中,这些应用包括数据加密、数据解密、消息认证、以及数字签名。
195.数据加密可以使用实现纠错码(例如,汉明码、bch码)、散列函数、以及基于密钥的密码算法(使用对称或非对称密钥)中的一种或多种的一种或多种加密机制。
196.可以在包括des、3des、aes和rc4的组中选择对称加密算法。
197.非对称加密算法可以是rsa或ecdsa。
198.在一些实施例中,可以依据在应用和/或定义的用户所需的性能、存储器、以及安全性级别之间的所期望的折衷,来选择加密和解密算法。
199.在一些实施例中,可以取决于一个或多个秘密参数(例如,口令或外部秘密值)来确定一个或多个密钥。
200.在一些实施例中,可以存储所确定的一个或多个密钥以供进一步使用/共享/分发。
201.可以通过提供给任何类型的计算机的处理器的计算机程序指令来实现本文所描述的方法,以产生具有处理器的机器,该处理器执行指令以实现本文所指定的功能/动作。这些计算机程序指令还可以被存储在计算机可读介质中,其可以指导计算机以特定的方式运作。为此,可以将计算机程序指令加载到计算机上以引起一系列操作步骤的执行,并且从而产生计算机实现的过程,使得被执行的指令提供用于实现本文所指定的功能的过程。
202.尽管已经通过各种示例的描述示出了本发明的实施例,并且尽管已经相当详细地描述了这些实施例,但是申请人的意图并不是将所附权利要求的范围限制或以任何方式限定到这样的实施例。在适当时,可以有利地组合那些实施例中的一些。附加的优点和修改将对本领域技术人员而言是显而易见的。本发明在其更广泛的方面因此不限于所示出和描述的特定细节、代表性方法、以及说明性示例。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1