具有随机轮编排以防止侧信道攻击的加密引擎的制作方法

文档序号:28741536发布日期:2022-02-07 22:15阅读:103来源:国知局
具有随机轮编排以防止侧信道攻击的加密引擎的制作方法
具有随机轮编排以防止侧信道攻击的加密引擎
1.相关申请的交叉引用
2.本技术要求于2019年6月19日提交的美国申请第16/446,187号的优先权,出于全部目的,该申请的内容通过引用以其整体并入本文。
技术领域
3.本发明总体涉及在各种类型的计算系统中实现的数据加密和解密。
4.背景
5.许多计算系统(包括通过网络接收内容的那些计算系统)结合了包括数据解密和加密硬件及软件的内容保护或数字权利管理技术。这种加密保护了安全数据免受未经授权的访问和利用,这些安全数据可能是敏感的、私有的和/或权限受管理的,并且被存储或使用在系统上。
6.发明概述
7.执行解密的设备通常是相对便携且由电池供电的独立设备,因此相对容易受到依赖于收集关于这些设备的硬件功能信息的攻击或窥探机制的攻击。这种攻击机制的一个示例是所谓的“侧信道攻击”或sca。sca利用定时信息、电流(电荷流动)信息、功耗数据、电磁轨迹和泄漏、发出的声音等中的一个或更多个。
8.为内容保护执行解密的设备的一些示例包括人工现实系统。人工现实系统正变得越来越普遍,应用于许多领域,诸如计算机游戏、健康和安全、工业和教育。作为几个示例,人工现实系统被结合到移动设备、游戏机、个人计算机、电影院和主题公园中。通常,人工现实是在呈现给用户之前已经以某种方式调整的现实的形式,其可包括例如虚拟现实(vr)、增强现实(ar)、混合现实(mr)、混杂现实(hybrid reality)、或其某种组合和/或衍生物。
9.典型人工现实系统包括用于渲染内容和向用户显示内容的一个或更多个设备。作为一个示例,人工现实系统可结合头戴式显示器(hmd),该hmd由用户佩戴并且被配置为向用户输出人工现实内容。人工现实内容可包括完全生成的内容或与捕获的内容(例如,真实世界视频和/或图像)相组合生成的内容。许多面向用户的人工现实模态(诸如hmd)是电池供电,因此通常设计为结合低功率操作。hmd的低功率设计和便携属性使得hmd特别容易受到sca的攻击,sca通常使用非侵入性、可访问和相对便宜的现成的黑客攻击(hacking)装备(诸如sca板(sca board)、轨迹分析软件等)来执行。
10.总体而言,本发明涉及加密引擎,加密引擎在加密和/或解密期间对数据段(data segments)进行置乱(shuffle),从而获得将在加密和/或解密期间使用的数据段的随机排列。通过在加密/解密期间对数据进行置乱并使用所得的随机排列进行加密/解密,本发明的加密引擎混淆了攻击方可能访问的作为sca的一部分的功耗信息。在一些示例中,本发明的加密引擎在被配置为迭代地计算加密数据块的一部分的大小减小的加密数据路径内执行输入数据的轮内(intra-round)置乱。大小减小的加密数据路径可以通过顺序地计算加密数据块的部分来形成整个加密数据块。本发明集中于这些加密引擎的解密能力,特别是用于电池供电的设备,诸如人工现实系统的hmd,因此本发明的配置是关于“解密引擎”来描
述的。
11.一方面,本发明提供一种用于数据解密的装置。该装置包括被配置成接收加密数据块的接口。该装置还包括与接口通信的解密引擎。解密引擎被配置为:对于用于解密加密数据块的多个轮中的每一轮,从到解密引擎的输入的多个排列中选择输入的一个排列。输入包括加密数据块的加密数据段和逆(inverse)密码密钥(cipher key)段,并且输入的被选择的排列对于多个轮中的至少两轮是不同的。解密引擎还被配置为:基于针对每一轮的输入的相应被选择的排列,遍及多个轮迭代地计算解密数据块的一部分,以形成解密数据段。
12.为了为多个轮中相应的一轮选择输入的一个排列,解密引擎可以被配置为:
13.为相应的一轮生成随机数;并且
14.基于随机数与输入的被选择的排列相关联来选择输入的一个排列。
15.优选地,解密引擎还被配置为:对于多个轮中的每一轮,基于随机数与随机选择的逆密码密钥段相关联,随机地选择逆密码密钥段。
16.优选地,为了遍及多个轮迭代地计算解密数据块的一部分,解密引擎被配置为:对于多个轮中的每个相应轮,将加密数据段添加到逆密码密钥段。
17.优选地,在从输入的多个排列中选择的输入的每个相应排列中所包括的加密数据段的数量是四。
18.优选地,用于解密加密数据块的多个轮包括十轮,并且优选地,加密数据块具有十六个字节的长度。
19.优选地,在输入的每个相应排列中所包括的每个相应加密数据段具有四个字节的长度。
20.优选地,该装置是片上系统(soc)上的系统。
21.soc可以被配置为支持人工现实应用。
22.另一方面,本发明提供了一种人工现实系统。人工现实系统包括解密引擎和头戴式显示器(hmd)。解密引擎被配置为:对于用于解密加密数据块的多个轮中的每一轮,从到解密引擎的输入的多个排列中选择输入的一个排列。输入包括加密数据块的加密数据段和逆密码密钥段,并且输入的被选择的排列对于多个轮中的至少两轮是不同的。解密引擎还被配置为:基于针对每一轮的输入的相应被选择的排列,遍及多个轮迭代地计算解密数据块的一部分,以形成解密数据段。hmd被配置成输出包括解密的数据段的人工现实内容。
23.为了为多个轮中相应的一轮选择输入的一个排列,解密引擎可以被配置为:
24.为相应的一轮生成随机数;并且
25.基于随机数与输入的被选择的排列相关联来选择输入的一个排列。
26.解密引擎还可以被配置为:对于多个轮中的每一轮,基于随机数与随机选择的逆密码密钥段相关联,随机地选择逆密码密钥段。
27.为了遍及多个轮迭代地计算解密数据块的一部分,解密引擎可以被配置为:对于多个轮中的每个相应轮,将加密数据段添加到逆密码密钥段。
28.优选地,在从输入的多个排列中选择的输入的每个相应排列中所包括的加密数据段的数量是四。
29.优选地,用于解密加密数据块的多个轮包括十轮,并且优选地,加密数据块具有十
六个字节的长度。
30.优选地,其中,在输入的每个相应排列中所包括的每个相应加密数据段具有四个字节的长度。
31.优选地,解密引擎被集成到hmd中。
32.在另一方面,本发明提供了一种解密加密数据的方法。该方法包括:对于用于解密加密数据块的多个轮中的每一轮,由解密引擎从到解密引擎的输入的多个排列中选择输入的一个排列,其中,输入包括加密数据块的加密数据段和逆密码密钥段,并且其中输入的被选择的排列对于多个轮中的至少两轮是不同的。该方法还包括:由解密引擎基于针对每一轮的输入的相应被选择的排列,遍及多个轮迭代地计算解密数据块的一部分,以形成解密数据段。
33.为多个轮中相应的一轮选择输入的一个排列可以包括:
34.由解密引擎为相应的一轮生成随机数;和
35.由解密引擎基于随机数与输入的被选择的排列相关联来选择输入的一个排列。
36.该方法还可包括:对于多个轮中的每一轮,基于随机数与随机选择的逆密码密钥段相关联,随机地选择逆密码密钥段。
37.在又一方面,本发明提供了一种人工现实系统。人工现实系统包括加密引擎和头戴式显示器(hmd)。加密引擎被配置为:对于用于加密输入数据块的多个轮中的每一轮,从到加密引擎的输入的多个排列中选择输入的一个排列。输入包括输入数据块的数据段和密码密钥段,并且输入的被选择的排列对于多个轮中的至少两轮是不同的。加密引擎还被配置为:基于针对每一轮的输入的相应被选择的排列,遍及多个轮迭代地计算加密数据块的一部分,以形成加密数据段。hmd被配置为输出加密的数据段。
38.本发明的加密引擎和解密引擎对输入数据进行置乱和排列,以混淆sca分析设备可能从hmd或其他面向用户的人工现实设备不正当获得的硬件性能信息。此外,本发明的解密引擎维护符合标准的数据输出,同时在解密过程中阻挠sca。以这种方式,本发明的解密引擎在维护数据精度的同时提高了数据安全性。本发明的技术可以在各种类型的硬件(诸如片上系统(soc)、专用集成电路(asic)或现场可编程门阵列(fpga))中实现。作为一个非限制性示例,当在面向用户的人工现实设备中实现时,本发明的解密引擎提供了数据安全性改进。
39.本发明的技术的一个或更多个示例的细节在附图和下面的描述中阐述。本技术的其他特征、目的和优点将从说明书和附图以及权利要求中显而易见。
40.附图简述
41.图1a是描绘根据本发明的各方面的实现数据置乱解密的示例人工现实系统的图示。
42.图1b是描绘根据本发明的各方面的实现数据置乱解密的另一示例人工现实系统的图示。
43.图2a是描绘根据本发明的技术的示例hmd的图示,该hmd被配置成以抗sca(sca-resistant)方式解密和渲染加密的人工现实内容。
44.图2b是描绘根据本发明的技术的hmd的另一示例的图示,该hmd被配置成以抗sca方式解密和渲染加密的人工现实内容。
45.图2c是描绘根据本发明的技术的控制台的示例的图示,该控制台被配置成以抗sca方式解密和渲染加密的人工现实内容。
46.图3是示出图1a和图1b的人工现实系统的控制台和hmd的示例实施方式的框图。
47.图4是描绘图1a和图1b的人工现实系统的hmd的示例实施方式的框图。
48.图5是示出符合aes的解密的示例的概念图。
49.图6是示出分区的符合aes的解密的示例的概念图。
50.图7是示出相关性功率攻击(cpa)的多个方面的概念图。
51.图8是示出根据本发明的各方面的解密引擎的多个方面的框图,解密引擎实现抗sca的数据置乱解密。
52.图9是示出根据本发明的各方面的结合了数据置乱和排列的数据解密技术的另外细节的框图。
53.图10是示出解密引擎可以执行的使用本发明的数据置乱技术来阻挠sca的示例过程的流程图。
54.详细描述
55.许多内容提供商系统(诸如流传输系统)结合了包括数据加密的内容保护或数字权利管理技术。由内容提供商系统实现的数字数据加密可以遵循各种标准化的加密机制。接收加密内容的内容消费设备根据数据被加密所依据的相应标准中指定的逆向步骤,执行通常关于加密机制的互逆(reciprocal)或“逆向”步骤。本公开主要描述了由根据本发明的各方面配置的内容消费设备执行的解密侧功能。然而,应当理解,当关于数字内容保护的加密侧功能来实现时,本发明的各方面同样提供了益处。
56.图1a是描绘根据本发明的各方面的示例人工现实系统10的图示,该系统在解密过程中使用数据置乱(或“数据加扰(data-scrambling)”)来解密加密的数字内容。在一些示例中,人工现实系统10使用简化的解密数据路径,其中应用整体解密密钥的一个或更多个部分(字)来串行解密输入数据,而不是并行地将整个密钥应用于输入数据。此外,如本文所述,当应用解密密钥的各个部分时,人工现实系统10在简化的数据路径内执行本发明的数据置乱操作。通过在解密过程期间置乱数据并同时遵守相关的解密标准,人工现实系统10混淆了sca黑客可能获得的数据,并因此提高了数据安全性(通过阻挠sca),同时维护了解密完整性。通过使用简化的解密数据路径,人工现实系统10还减少了数据解密所需的整体硬件基础设施,继而实现了更小的形状因数并减轻了功率需求。
57.作为非限制性示例,人工现实系统10在本文被描述为符合由美国国家标准和技术研究院(nist)建立的高级加密标准(aes)中描述的标准化解密机制。应当理解,在其他示例中,人工现实系统10可以实现本发明的数据置乱增强,同时符合其他密码标准,诸如sm4(以前的sms4,在中国无线lan wapi国家标准中阐述的分组密码标准)、camellia(由日本三菱电机和ntt公司开发)等。本发明的数据置乱技术可以以数字逻辑的方式实现,因此足够通用以在各种类型的解密引擎(诸如那些符合上面列出的标准的解密引擎和其他标准化或非标准化的解密引擎,诸如在片上的人工现实系统(soc)中的解密引擎)中提供sca缓解。
58.虽然本发明的阻挠sca的解密技术是作为示例关于在人工现实系统10内实现来描述的,但是应当理解,本发明的解密技术的适用性不限于人工现实系统。本发明的解密技术或互逆加密技术可以被实现来提高其他类型的计算设备的数据安全,包括但不限于各种类
型的电池供电的soc驱动的和/或专用集成电路(asic)驱动的技术。各种soc(诸如人工现实soc)的低功率设计特别容易受到sca的攻击,因为人工现实soc通常处理用户机密信息(例如,个人数据、生物特征、用户特定模型等)从而使人工现实soc成为有吸引力的黑客攻击目标,用于不正当获取高价值资产。例如,sca可以通过进行和统计分析电流轨迹或电磁(em)轨迹来提取密钥(例如,逆密码密钥)信息。
59.另外,与云/服务器平台不同,在云/服务器平台中,大的整体系统功耗往往会混淆加密/解密相关的切换活动,而人工现实平台通常会进行功率优化以延长电池寿命。人工现实平台的功耗统计信息没有被其他产生功耗的功能很好地隐藏,因此,人工现实系统(特别是hmd)通过使其对于攻击设备(诸如图1a的sca分析器126)来说更容易隔离解密相关的功耗并分析功耗统计信息而暴露更广泛的攻击面。sca驱动的黑客攻击装备的非侵入属性和相对容易的接入进一步加剧了人工现实hmd的易受攻击性。人工现实系统10的一个或更多个元件在解密期间实现数据置乱,从而使sca黑客攻击设备(诸如sca分析器126)的可获得的功耗度量混淆,并且从而减少或者甚至有可能完全扰乱人工现实系统10的这些部件的攻击面。
60.因为sca驱动的黑客攻击装备通常通过从外部“嗅探(sniffing)”电流泄漏信息来获得用于受保护内容的密钥,所以以前的sca防护措施聚焦于添加硬件部件,该硬件部件引入了混淆或隐藏电流泄漏的信号。这种额外的硬件基础设施由于能耗增加,因此不太适合于功率优化的电池供电设备。本发明描述了这样的配置,该配置使得解密引擎能够通过在解密的每次迭代之前置乱正被解密的数据来混淆电流泄漏信息,从而给由sca驱动的黑客攻击装备(诸如sca分析器126)泄漏和嗅探的电流信息引入不可预测性,使得黑客攻击装备不能通过分析所得的电流泄漏信息的加扰排序来推测密钥。
61.在图1a的示例中,人工现实系统10包括头戴式设备(hmd)112、控制台106以及在一些示例中的一个或更多个外部传感器90。如图所示,hmd 112通常由用户110佩戴,并且包括用于向用户110呈现人工现实内容122的电子显示器和光学组件。另外,hmd 112包括用于跟踪hmd 112的运动的一个或更多个传感器(例如,加速度计)。hmd 112可以包括一个或更多个图像捕获设备134,例如相机、线扫描仪等。图像捕获设备134可以被配置为捕获周围物理环境的图像数据。在该示例中,控制台106被示为单个计算设备,诸如游戏机、工作站、台式计算机或膝上型计算机。
62.在其他示例中,控制台106可分布在多个计算设备上,诸如分布式计算网络、数据中心或云计算系统。如该示例所示,控制台106、hmd 112和传感器90可经由网络104通信耦合,该网络可以是有线或无线网络,诸如基于或的网络、网络、网状网络或短程无线(例如,)通信介质。尽管在该示例中,hmd 112被示出为与控制台106通信(例如系留(tethered)到控制台或与控制台进行无线通信),但在一些实施方式中,hmd 112作为独立的移动人工现实系统进行操作。在操作期间,人工现实应用通过跟踪和计算参考系(通常是hmd 112的观看视角)的姿态信息来构建用于向用户110显示的人工现实内容122。人工现实系统10可以使用外部传感器90、外部相机102等捕获在现实世界、物理环境内的3d信息。
63.根据本发明的各方面,人工现实系统10结合了在重建、渲染和向用户110呈现解密的内容之前对正被解密的数据进行置乱的技术。人工现实系统10在本文被描述为结合了
hmd 112中的可重新配置的解密引擎132。使用本发明的数据置乱解密技术,解密引擎132可以混淆或搞乱黑客攻击设备(诸如sca分析器126)在sca期间可能从hmd 112收集的功耗统计信息,使得黑客攻击设备更加困难或甚至不可能推断来自hmd 112的安全密钥信息。
64.在一些示例中,根据本发明的各方面,解密引擎132被配置为通过迭代简化的解密数据路径来解密加密数据,该简化的解密数据路径接受通过分割原始输入块形成的串行化数据段。例如,解密引擎132可以在多轮中迭代地解密每个数据段,其中每一轮包括四个周期,在这四个周期期间处理不同的四字节字,第五轮专用于随机地(或伪随机地或以其他方式)选择将要应用于下一轮的密钥段。解密引擎132随机置乱每一轮处理字的周期顺序。因为数据段可以以彼此不相互依赖的方式解密,所以解密引擎132可以以串行、顺序的方式解密整个块,同时使用相同的简化硬件数据路径。也就是说,通过在多次迭代中串行调用简化的硬件数据路径,解密引擎132减少了硬件基础设施需求,同时维护了关于解密的输出数据的aes合规性。
65.解密引擎132在每次解密迭代或轮内置乱数据段。根据这些示例,解密引擎132利用在任意两个数据段之间的非相互依赖性,使得没有单个解密迭代/轮具有关于串行化序列中的任何其他解密迭代/轮的任何数据相互依赖性。正因如此,解密引擎132通过置乱沿着简化的数据路径被顺序地解密的数据段而提高了数据安全性和对sca的抵抗力。
66.本发明的数据置乱配置要求相对较低的重新设计工作量和相对较低的额外逻辑开销。正因如此,解密引擎132可以实现本发明的sca缓解措施,而不需要对hmd 112的整体基础设施进行显著改变。正因如此,解密引擎132可以被配置为实现本发明的sca缓解措施,而不会显著影响hmd 112的可穿戴性,该hmd 112可以采取头戴式装置(headset)或眼镜的形状因数,或者在解密引擎132被包括在控制台106中的示例中hmd112可以采取具有控制台106的便携式实施方式的形状因数。因为解密引擎132的sca缓解配置还利用了顺序解密数据段的简化数据路径,所以解密引擎132还使得hmd 112能够在严格的功率预算下运行,这在电池供电的设备(诸如hmd 112或人工现实系统的其他可穿戴和/或便携式设备)的情境中经常是一个约束。
67.虽然在图1a中示出并且在上面描述为被包括在hmd 112中,但是在一些示例中,解密引擎132可以被包括在控制台106中。在这些示例中,控制台106调用解密引擎132来解密通过网络104接收的加密数据,渲染解密的数据,并将解密的内容传送给hmd 112以显示给用户110。在控制台106具有手持设备的形状因数并且被功率优化以依靠电池供电运行的示例中,本发明的数据安全增强特别有帮助。
68.图1b是描绘根据本发明的各方面的实现基于阻挠sca的数据置乱的解密的另一示例人工现实系统20的图示。类似于图1a的人工现实系统10,在图1b的hmd 112c中所包括的解密引擎132可以实现本发明的基于数据置乱的解密技术,以提高数据安全性,诸如通过提高对sca分析器126所执行的sca的抵抗力。解密引擎132在原始输入数据的多个段上以串行化的方式实现本发明的数据置乱技术,从而通过减少解密相关的硬件需求来限制能耗并且提高hmd 112c的可穿戴性。
69.在图1b的示例中,人工现实系统20包括外部相机102a和102b(统称为“外部相机102”)、hmd 112a-112c(统称为“hmd 112”)、控制台106和传感器90。如图1b所示,人工现实系统20表示多用户环境,其中在控制台106和/或hmd 112上执行的人工现实应用基于相应
用户110的对应参考系的当前观看视角向用户110a-110c(统称为“用户110”)中的每一个呈现人工现实内容。也就是说,在该示例中,人工现实应用通过跟踪和计算每个hmd 112的参考系的姿态信息来构建人工内容。人工现实系统20使用从相机102和hmd 112接收的数据来捕获现实世界环境中的3d信息(诸如用户110的运动和/或关于用户110的跟踪信息),用于计算hmd 112的对应参考系的更新姿态信息。
70.每个hmd 112在人工现实系统20内同时操作。在图1b的示例中,每个用户110可以是人工现实应用中的“玩家”或“参与者”,并且任何用户110可以是人工现实应用中的“旁观者”或“观察者”。hmd 112c可以各自基本上类似于图1a的hmd 112进行操作。hmd 112a也可以基本上类似于图1a的hmd 112进行操作,并且通过跟踪用户110a的手132a、132b的移动来接收用户输入。hmd 112b可以类似于hmd 112a和112b操作。
71.图2a是描绘根据本发明的技术的示例hmd 112的图示,该示例hmd 112被配置为解密和渲染加密的人工现实内容。图2a的hmd 112可以是图1a和图1b的任何hmd 112的示例。hmd 112可以是人工现实系统(诸如图1a、图1b的人工现实系统10、20)的一部分,或者可作为被配置为实现本文所述技术的独立的、移动的人工现实系统操作。在图2a的示例中,hmd 112采用头戴式装置的一般形状因数。
72.在该示例中,hmd 112包括前刚性主体和用于将hmd 112固定到用户的带。此外,hmd 112包括面向内部的电子显示器203,该电子显示器被配置为向用户呈现人工现实内容。电子显示器203可以包括、可以是任何合适的显示技术,诸如液晶显示器(lcd)、量子点显示器、点阵显示器、发光二极管(led)显示器、有机发光二极管(oled)显示器、阴极射线管(crt)显示器、电子墨水、或单色、彩色或能够生成视觉输出的任何其他类型的显示器,或者可以作为以上各项的一部分。在一些示例中,电子显示器是用于向用户的每只眼睛提供单独图像的立体显示器。在一些示例中,当跟踪hmd 112的位置和取向以用于根据hmd 112和用户的当前观看视角渲染人工现实内容时,显示器203相对于hmd 112的前刚性主体的已知取向和位置被用作参考系,也被称为局部原点。
73.如图2a中进一步所示,在该示例中,hmd 112还包括一个或更多个运动传感器206,诸如输出指示hmd 112的当前加速度的数据的一个或更多个加速度计(也称为惯性测量单元或“imu”)、输出指示hmd 112的定位的数据的gps传感器、输出指示hmd 112与各种对象相距的距离的数据的雷达或声纳、或提供hmd 112或物理环境内的其他对象的定位或取向的指示的其他传感器。此外,hmd 112可以包括集成的图像捕获设备134a和134b(统称为“图像捕获设备134”)(诸如摄像机、激光扫描仪、雷达扫描仪、深度扫描仪等),该设备被配置为输出表示物理环境的图像数据。
74.图2b是描绘被配置为根据本发明的技术操作的hmd 112的另一示例的图示。图2b的hmd 112可以是图1a和图1b的任何hmd 112的示例。hmd 112可以是人工现实系统(诸如图1a、图1b的人工现实系统10、20)的一部分,或者可作为被配置为实现本文所述技术的独立的移动的人工现实系统操作。在图2b的示例中,hmd 112采用眼镜的一般形状因数。
75.在该示例中,hmd 112包括前刚性主体和用于将hmd 112固定到用户(例如通过搁在用户的耳朵上)的两个杆。与图2a的元件共享附图标记的图2b的元件执行相似的功能,并且为了简洁起见,没有关于图2b单独描述。在图2b的示例中,电子显示器203可以被分成多个段(诸如分成两个段),每个段对应于设置在hmd 112的前刚性主体上的单独镜片。在根据
图2b的其他示例中,电子显示器203可以形成跨越hmd 112的前刚性主体的镜片和镜片连接梁架(bridge)(即,鼻上部分)的连续表面。在根据图2b所示的形状因数的一些示例中,电子显示器203还可以包括hmd 112的将前刚性主体的镜片连接到杆的部分,或者可选地,包括杆本身的部分。在图2b所示的hmd 112的形状因数的情境中,电子显示器203的这些不同设计提高了具有不同视觉能力、眼睛运动特性等的用户的可接入性。
76.在图2a和图2b所示的示例中,hmd 112的内部控制单元210包括图1a和图1b所示的解密引擎132。如上参考图1a和图1b所述,根据本发明的各方面,解密引擎132可被配置为置乱正被解密的离散数据段。
77.图2a和图2b还示出了sca分析器126。sca分析器126代表sca板(例如,基于fpga的板或基于asic的板)、所谓的“套取器(skimmer)”或被配置为窥探hmd 112的性能度量的任何其他设备。黑客可以使用sca分析器126来实现各种类型的sca,诸如相关性功率攻击(cpa)。为了执行cpa,sca分析器126向hmd 112提供输入数据集。cpa的常见示例涉及提供一百万个测试向量,这些测试向量经历使用恒定的密钥的解密,诸如将会由执行逆向操作来解密密文的遵循aes的加密引擎执行的解密。
78.sca分析器126收集符合aes的系统的功率轨迹,并对照针对给定的密钥猜测预测结果的假设来分析电流轨迹。sca分析器126一次猜测一个字节的逆轮密钥,从而为每个字节提供256种可能性。sca分析器计算在测量的功率轨迹和遍及所有256个候选密钥字节的每个假设之间的统计相关系数。sca 126选择产生最高相关度量的配对作为密钥猜测。sca 126计算相关度量所需的一个重要预处理步骤是首先对准功率轨迹。通过首先对准功率轨迹,sca分析器126确保从不同轨迹中收集的功率特征的值各自对应于在aes soc中的唯一切换事件。
79.根据本发明的各方面,解密引擎132利用sca分析器126对对准功率轨迹以便生成对应于唯一功率轨迹的各个假设的预处理步骤的依赖。解密引擎132通过破坏sca分析器126执行的作为上述cpa中的预处理步骤的对准操作,来实现本发明的阻挠sca的技术。解密引擎132可以置乱或加扰各个操作的时间顺序,这些操作导致在由sca分析器126收集的功率轨迹中所反映的每个相应的功率相关事件。通过置乱由sca分析器126分析的各个操作的顺序,解密引擎132破坏了在由sca分析器126收集的功率轨迹和作为cpa的预期最终产品的逆密码密钥之间的相关性。
80.例如,解密引擎132可以将正被解密的数据段(或“字”)与被应用以解密从内容提供商或中间加密设备接收的密文的逆密码密钥段进行混合和匹配。解密引擎132还可以使用随机数生成器来随机化字-密钥对,从而利用字-密钥对的许多可能的排列。因为sca分析器126形成依赖于特定的时间排序的功率轨迹相关性(该特定的时间排序基于对aes指定的过程进行反向工程以得到经解密的输出),所以解密引擎132实现本发明的置乱操作以提供序列中的功率轨迹,sca分析器126不会被配置为精确地重构该序列作为执行cpa的一部分。
81.图2c是描绘控制台106的示例的图示,控制台106被配置成根据本发明的技术以抗sca方式解密和渲染加密的人工现实内容。在图2c所示的示例中,解密引擎132是控制台106的一部分,而不是如同在图2a和图2b的示例中那样在hmd 112中实现。在根据图2c的各种用例场景中,黑客可以将sca分析器126放置在控制台106附近,以试图获得功率轨迹供cpa使用。sca分析器126可以非常精确地执行cpa,尤其是在控制台106是针对低功率使用而优化
的电池供电的手持设备的情况下。在这些情况下,控制台106可能不会将用于非解密操作的大规模功率信息输出到足以隐藏与解密信息相关的功率信息的程度。
82.解密引擎132可以实现上面参考图2a和图2b描述的但在图2c的示例中的控制台106的背景下的解密内(in-decryption)置乱操作。因此,无论是在hmd 112内还是在向hmd 112提供解密内容的控制台106内实现,解密引擎132都可以实现本发明的基于数据置乱的解密操作,以在由sca分析器126收集的功率轨迹中产生未对准,从而破坏sca分析器126执行cpa所依赖的数据布置。以这种方式,解密引擎132实现本发明的技术,以在人工现实系统10和20兼容的各种配置中提高数据安全性。
83.图3是示出图1a和图1b的人工现实系统10、20的控制台106和hmd112的示例实施方式的框图。在该示例中,hmd 112包括一个或更多个处理器302和存储器304,在一些示例中,处理器302和存储器304提供用于执行操作系统305的计算机平台,操作系统305可以是例如嵌入式实时多任务操作系统或其他类型的操作系统。继而,操作系统305提供用于执行一个或更多个软件部件307(包括应用引擎340)的多任务操作环境。如参照图2a和图2b的示例所讨论的,处理器302耦接到电子显示器203、运动传感器206和图像捕获设备134。在一些示例中,处理器302和存储器304可以是单独的、分立的部件。在其他示例中,存储器304可以是与处理器302并列放置在单个集成电路内的片上存储器。
84.一般而言,控制台106是处理从相机102(图1b)和/或hmd 112接收的图像和跟踪信息以执行运动检测、用户界面生成以及hmd 112的各种其他人工现实相关功能的计算设备。在一些示例中,控制台106是单个计算设备,例如工作站、台式计算机、膝上型计算机或游戏系统。在一些示例中,控制台106的至少一部分(诸如处理器312和/或存储器314)可分布在云计算系统、数据中心或网络(诸如互联网、另一个公共或专用通信网络(例如宽带、蜂窝、)、和/或其他类型的通信网络)上以用于在计算系统、服务器和计算设备之间传输数据。
85.在图3的示例中,控制台106包括一个或更多个处理器312和存储器314,在一些示例中,处理器312和存储器314提供用于执行操作系统316的计算机平台,操作系统316可以是例如嵌入式实时多任务操作系统或其他类型的操作系统。继而,操作系统316提供用于执行一个或更多个软件部件317的多任务操作环境。处理器312耦合到一个或更多个i/o接口315,i/o接口315提供一个或更多个i/o接口,用于与例如键盘、游戏控制器、显示设备、图像捕获设备、hmd等的外部设备通信。此外,一个或更多个i/o接口315可以包括一个或更多个有线或无线网络接口控制器(nic),用于与诸如网络104的网络进行通信。处理器302、312中的每一者可包括多核处理器、控制器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、处理电路(例如,固定功能电路或者可编程电路或者其任意组合)或等效的离散或集成逻辑电路中的任何一个或更多个。存储器304、314可包括用于存储数据和可执行软件指令的任何形式的存储器,诸如随机存取存储器(ram)、只读存储器(rom)、可编程只读存储器(prom)、可擦除可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)和闪存。
86.控制台106的软件应用317操作以提供整体人工现实应用。在该示例中,软件应用317包括应用引擎320、渲染引擎322和姿态跟踪器326。通常,应用引擎320包括提供和呈现人工现实应用的功能,该人工现实应用例如是电话会议应用、游戏应用、导航应用、教育应
用、培训或模拟应用等。应用引擎320可包括,例如,用于在控制台106上实现人工现实应用的一个或更多个软件包、软件库、硬件驱动器和/或应用程序接口(api)。响应于应用引擎320的控制,渲染引擎322生成3d人工现实内容,以由hmd 112的应用引擎340显示给用户。
87.应用引擎320和渲染引擎322根据由姿态跟踪器326确定的参考系(通常是hmd 112的观看视角)的当前姿态信息构建用于显示给用户110的人工内容。基于当前观看视角,渲染引擎322构建3d、人工现实内容,其在某些情况下可以至少部分地覆盖在用户110的现实世界3d环境上。在该过程期间,姿态跟踪器326对从hmd 112接收的感测数据(诸如移动信息和用户命令)以及在一些示例中对来自(图1a和图1b所示的)任何外部传感器90(诸如外部相机)的数据进行操作,以捕获现实世界环境内的3d信息,诸如用户110的运动和/或关于用户110的特征跟踪信息。基于所感测的数据,姿态跟踪器326确定hmd 112的参考系的当前姿态,并且根据当前姿态,构建用于经由一个或更多个i/o接口315传送到hmd 112以显示给用户110的人工现实内容。
88.在图3的示例中,控制台106包括解密引擎132,该解密引擎132在上面参照图1a-图2c进行了描述。例如,控制台106可以从外部系统(例如,上游流传输服务)接收加密数据,并且可以调用解密引擎132来解密接收到的加密数据。渲染引擎322然后可以渲染解密的数据,并且控制台106可以以人工现实内容122的形式向hmd 112提供经渲染的数据。
89.图4是描绘图1a和图1b的人工现实系统10、20的hmd 112的示例实施方式的框图。在该示例中,如图3的示例中那样,hmd 112包括一个或更多个处理器302和存储器304,在一些示例中,处理器302和存储器304提供用于执行操作系统305的计算机平台,操作系统305可以是例如嵌入式实时多任务操作系统或其他类型的操作系统。继而,操作系统305提供用于执行一个或更多个软件部件417的多任务操作环境。此外,处理器302耦接到电子显示器203、运动传感器206和图像捕获设备134。
90.在图4的示例中,软件部件417操作以提供整体人工现实应用。在该示例中,软件应用417包括应用引擎440、渲染引擎422和姿态跟踪器426。在各种示例中,软件部件417类似于图3的控制台106的对应部件(例如,应用引擎320、渲染引擎322和姿态跟踪器326)进行操作,构建显示给用户110的人工内容。在一些示例中,渲染引擎422构建3d人工现实内容,该内容可以至少部分地覆盖在用户110的现实世界物理环境上。
91.在图4的示例中,hmd 112包括解密引擎132,解密引擎132在上面参照图1a-图3进行了描述。例如,hmd 112可以通过网络104直接接收加密数据,或者经由中间设备(诸如控制台106)接收加密数据,该中间设备可以将加密数据以加密形式中继到hmd 112。hmd 112调用解密引擎132来解密和重建加密数据,以获得人工现实内容122形式的可渲染数据。
92.在图3和图4的示例中,解密引擎132在数据解密过程中对离散的成对的数据段和逆密码密钥段进行置乱或加扰。通过在解密过程中置乱数据-密钥对,解密引擎132将未对准引入到sca分析器126为执行预处理步骤而获得的功率轨迹信息中,其中cpa过程的剩余部分基于预处理步骤。
93.在这些示例中,解密引擎132串行化解密轮,从而在给定的解密轮内解密置乱的字-密钥对。在处理符合aes的16字节(128位)输入密文块的示例中,解密引擎132可以将输入块分区成四个等长的子块或“字”,并对四个字执行aes解密操作,并且四个字中的任何两个字之间没有数据相互依赖性。也就是说,解密引擎132可以串行地并且彼此独立地解密四
个加密的四字节(32位)字中的每一个,以在多次迭代中解密总的16字节加密输入。虽然本文针对16字节的加密输入数据块(“密文”)描述了各种示例,但是应当理解,解密引擎132也可以针对其他符合aes的块大小(诸如24字节或32字节的密文输入块)应用这些技术。
94.在这些示例中,解密引擎132可以将逆密码密钥的段应用于相应的四字节字的段。根据本发明的技术,解密引擎132可以在添加相关密钥段之前随机置乱加密的输入数据块的字顺序。通过在单个字的基础上随机置乱顺序,解密引擎132利用字节排序布置的二十四种可能的排列。也就是说,因为解密引擎132从加密的输入数据块中形成四个字,所以可能排列的总数被计算为四的阶乘,这产生二十四个可能排列的值。每个字-密钥对可用的二十四个排列所提供的随机化水平使得解密引擎132能够引入关于解密过程的逆密码密钥添加部分所展示的功率轨迹信息的显著不可预测性。通过在遵守由aes定义的解密过程指定的解密输出的同时引入关于外部可观察的功率轨迹信息的不可预测性,解密引擎132通过阻挠sca来提高数据安全性,同时维护数据精度。虽然本文关于在四字节字大小上实现作为示例进行了描述,但是应该理解,本发明的数据加扰技术也适用于其他字大小,诸如八字节字、十二字节字、十六字节字等。
95.图5是示出符合aes的解密的示例的概念图。图5所示的过程和结构在本文被称为aes轮数据路径500。符合aes的加密引擎可以实现aes轮数据路径500,以通过针对从未加密的输入数据生成密文的互逆加密数据路径执行逆运算来解密密文的输入块。aes轮数据路径500的各个方面根据主时钟502操作。在图5所示的实施方式中,主时钟502的时钟速率被描述为处于“全频率”。根据aes轮数据路径500,作为“轮密钥加”步骤504的一部分,16字节(128位)输入以每字节为基础被提供给16个加法器单元。在轮密钥加步骤504中,数据输入的每个字节被添加到使用rijndael密钥编排(key schedule)获得的密码密钥或逆密码密钥。每个输入字节-密钥对在图5中使用“d-k”符号示出,使用下标来描绘不同的输入字节和不同的逆密码密钥。
96.然后,在行移位步骤506中,将轮密钥加步骤504的16个输出字节(用具有唯一下标的“b”表示)循环移位各种偏移量。行移位步骤506将每行中的字节循环移位针对该特定行确定的特定偏移量。在行移位步骤506中,第一行保持不变,第二行的每个字节右移一个偏移量,第三行的每个字节右移两个偏移量,并且第四行的每个字节右移三个偏移量。因此,来自行移位步骤506的输出数据的每一列包括来自输入数据的一列的移位数据。关于行移位步骤506描述的右移操作通常与由互逆的符合aes的加密数据路径执行的左移操作互逆。
97.通过行移位步骤506输出的数据结构不允许对原始16字节输入的单独段进行独立操作,因为从四个不同块的密码产生的数据可以被包括在通过行移位步骤506输出的数据的每个四字节游程(run)中。行移位步骤506是多次(multiple passes)执行的迭代过程,在图5的特定示例中,该迭代过程是十次迭代步骤。
98.行移位步骤506的每个相应的输出字节然后传递通过相应的替换字节(sbox)单元,作为逆字节替换步骤508的一部分。图5的解密数据路径通过将基于查找表(lut)的替换逆变为对加密输入数据执行的解密操作,来实现逆字节替换步骤508。在加密数据路径的互逆字节替换步骤中,行移位步骤输出的数组中的每个字节都被使用lut获得的替换字节替代,这有时也称为8位替换盒。逆字节替换步骤508处理作为aes轮数据路径500的输入接收的密码代码中的非线性。
99.然后,十六个逆sbox单元的字节替换的输出被提供给列混合单元阵列,以用于执行列混合步骤512。aes轮数据路径500包括四个列混合单元,每个列混合单元接收四个连续逆sbox单元的输出作为输入。正因如此,作为列混合步骤512的一部分,每个列混合单元处理四字节的输入。在列混合步骤512中,每个列混合单元使用可逆线性变换来组合相应的四字节的输入。每个列混合单元接收四字节的输入,并产生四字节的输出。在列混合步骤512期间的背景下,由相应的列混合单元接收的每四字节的输入有时被称为相应的“列”。aes轮数据路径500的每个列混合单元使用矩阵乘法处理相应的输入列,使得每单个输入字节影响所有四个输出字节。在互逆加密过程中,互逆行移位步骤和列混合步骤的组合提供了密码运算集中的扩散。
100.如上面关于行移位步骤506所讨论的,aes轮数据路径500依赖于被处理的各种字节单元之间的数据相互依赖性,并且因此可能在列混合步骤512期间被馈送到不同列混合单元的字节单元之间引入了数据相互依赖性。如图所示,aes轮数据路径500的各个步骤由主时钟502控制,主时钟502又在aes轮数据路径500的整个寿命周期中以全频率工作,以提供最大的解密吞吐量。
101.图6是示出分区的符合aes的解密的示例的概念图。图6所示的过程和结构在本文被称为分区的aes数据路径600。分区的aes数据路径600使得解密设备能够处理每个aes定义的加密输入数据块,该加密输入数据块采用沿着不相互依赖的子数据路径的离散子块的形式。分区的aes数据路径600可以被应用于使用各种aes定义的密钥大小(诸如128位、192位或256位大小的密钥大小)处理密文块。分区的aes数据路径600是解密设备可以解密以四个离散32位子块的形式的128位加密数据块的示例。
102.也就是说,解密设备可以将图5的aes轮数据路径500分区成四个单独的子数据路径,并且可以处理每个子数据路径,而没有对四个子数据路径中的任何其他子数据路径的数据依赖性。分区的aes数据路径600使得解密设备能够关于每个子数据路径维护在aes中指定的数据处理结构,从而保持关于整体解密完整性的aes合规性。分区的aes数据路径600示出了解密设备可以维护aes合规性,同时将数据相互依赖性限制于四字节段。也就是说,解密设备可以实现分区的数据路径600,以解密采用离散的四字节段或“筒仓(silos)”的方式的十六字节加密块。
103.例如,根据分区的aes数据路径600,解密设备可以实现aes指定的轮密钥导出、轮密钥加、逆字节替换和线性混合步骤,但是针对作为加密的输入而被接收的每个128位块的四个单独的32位子块,可以实现这一系列符合aes的处理步骤。也就是说,解密设备可以从逆密码密钥编排(例如,rijndael密钥编排)中获得轮密钥,并且使用逐位异或运算将每个32位子块的每个字节(八位序列)添加到所获得的轮密钥的相应块。
104.十六字节数据输入的分区和各个逆轮密钥的应用在分区的aes数据路径600中被共同示为分区的逆密码密钥加步骤604。解密设备可以通过将加密输入数据的原始十六字节块分成四个类别来实现本发明的分区的逆密码密钥加步骤604,其中原始加密输入的正好四个字节被分配给每个类别。在分区的逆密码密钥加步骤604中,通过每个类别的唯一阴影图案示出了四个类别。如图6所示,解密设备可以将原始的十六字节加密输入进行分区,使得第一个连续四字节游程包括每个类别的一个字节,第二个、第三个和第四个连续四字节游程的情况也是如此。
105.解密设备可以在每个连续的四字节游程内使用不同的类别排列,如由分区的轮密钥加步骤604中每个连续的四字节游程中阴影排列的右移图案所示。加法器单元在图6中与相应加密输入字节的对应类别相协调地用阴影表示。解密设备可以以这样的方式在每个四字节游程中排列所示序列中的类别:该方式使得aes指定的行移位步骤506在完成行移位步骤506的移位操作时产生输出,在输出中,每个类别的所有四个字节被排列在连续的四字节序列中。在完成轮密钥加之后,解密设备可以通过将每个32位子块的最后三行循环移位一定数量的步长(step)来执行换位(transposition)步骤。根据aes,换位步骤也被称为“行移位(shift rows或shiftrows)”操作。
106.在完成行移位步骤506的移位操作之后,解密设备可以使每个32位子块传递通过逆替换字节(sbox)阶段608。根据aes定义的解密过程,解密设备可以通过使用查找表(lut)来实现逆sbox阶段608。在逆sbox阶段608中完成字节替换后,解密设备实现列混合步骤,在列混合步骤中解密设备对由多个逆sbox单元输出的数据执行逆线性变换操作。
107.也就是说,解密设备的每个列混合单元使用从图6所示的作为逆sbox阶段608的一部分的逆sbox单元的子组接收的移位的字节替换数据作为输入或操作数来执行逆线性变换操作。按照aes定义的技术,解密设备的每个列混合单元执行矩阵乘法,使用从四个逆sbox单元接收的四字节的输入作为一个操作数,并且使用预定的固定矩阵,如aes中所述。
108.如上所述,分区的aes数据路径600使得解密设备能够将原始的128位加密数据块输入分区成四个离散的、大小相等的子块,并且独立地对每个得到的32位(即四字节)加密子块进行操作,而数据操作没有交叉依赖性。因为aes为每个列混合单元指定四字节输入,所以解密设备针对每个128位数据输入实现了四个列混合单元。根据图6中所示的可分区解密数据流水线技术,解密设备可以向每个列混合单元提供对应于离散的四字节序列的输入,该序列在逆轮密钥加之前以不相互依赖的方式被分区。也就是说,解密设备可以使用分区的aes数据路径600来分别对四个离散的四字节子块执行逆线性变换,而在被实现的四个列混合操作集中的任何两个之间没有任何数据相互依赖性。因此,图6示出了解密设备可以维护aes合规性,同时限制数据相互依赖性以保持在每个相应的四字节段的范围内。
109.根据分区的aes解密数据路径600,解密设备可以独立地处理每个四字节加密子块,因为每个四字节子块是:(i)使用不是从用于任何其他子块的轮密钥导出的轮密钥加密;(ii)通过各自的一字节sbox单元传递;以及(iii)基于每轮密钥针对列混合换位分组。以这种方式,图6示出了解密设备可以被配置为加密每个四字节子块,而在为四字节子块中的任何两个子块执行的相应加密操作之间没有任何数据相互依赖性。本发明的数据解密技术利用了如下的能力:维护aes合规性,同时将数据相互依赖性限制于保持在离散的四字节筒仓内,而不跨越筒仓间的分区。例如,本发明的配置可以在数据相互依赖性上利用四字节限制来减小解密引擎的硬件轮的大小,使得硬件减少的解密引擎在解密符合aes的加密数据时只需要一次处理四个字节。
110.图7是示出相关性功率攻击(cpa)700的各方面的概念图。cpa 700表示sca分析器126可以执行的攻击。sca分析器126可以向解密引擎132提供大量16字节的测试输入,并且窥探由实现解密引擎132的设备(例如,hmd 112或控制台106)在解密测试输入时表现出的功率轨迹。在许多示例中,sca分析器126在执行cpa 700时提供一百万个测试向量。
111.sca分析器126维护解密引擎132的各种测试输入的输入时间的时间戳。sca分析器
126为全套测试输入维护的时间戳在图7中被示为t1到tn,其中下标“n”表示由sca分析器126提供的测试输入的总数(在许多常见sca模型的情况下,该值为一百万)。各个测试输入的底层数据集在图7中被示为d1到dn。通过使用特定测试输入的相应时间戳t和相应数据集d,sca分析器126实施aes功率轨迹702。再者,因为aes是公开可获得的标准,所以潜在的黑客可以配置sca分析器126针对已知的输入数据相对准确地预测预期的功率轨迹信息。
112.使用数据集d1至dn,sca分析器126生成密钥假设h(k)1至h(k)n(统称为假设704)。也就是说,sca分析器126将数据集d1至dn馈送到密钥生成模型中。在cpa 700的示例中,sca分析器126使用硬件距离(hd)模型从数据集d1到dn生成假设704。sca分析器126还在解密引擎132处理每个相应的数据集d时套取功率轨迹702。因为每个数据集d的数据和每个数据集d的输入时间t是sca分析器126已知的,所以sca分析器126可以匹配或确定在每个aes功率轨迹702和256个(基于8位输入计算为2^8)可能假设704中的每一个之间的相似性。
113.测试输入的总体汇聚(convergence)在图7中表示为“t”,假设704的总体汇聚表示为“h”。sca分析器126使用t和h的相关性(表示为相关性(t,h))来预测在aes定义的解密过程中应用的逆密码密钥。就密钥预测而言,产生最高相关性(t,h)值的特定假设704就解密过程中应用的逆密码密钥而言倾向于是正确的密钥猜测。在一些符号中,相关性(t,h)值被表示为预测运算r(k),并且逆密码密钥的正确密钥猜测是从迭代的功率轨迹与预测密钥的比较运算获得的最大r(k)值。也就是说,在aes功率轨迹702的范围内使r(k)的值最大化的特定假设704倾向于是关于图5所示的aes解密过程是正确的密钥猜测。
114.解密引擎132实现本发明的技术来不对准aes功率轨迹702,从而使得sca分析器126根据不准确校准的数据执行cpa 700工作。以这种方式,根据本发明的技术,解密引擎132破坏了cpa 700的执行。根据本发明的配置,解密引擎132还通过产生符合aes的解密输出来维护数据精度,同时阻挠cpa 700和其他sca。
115.如下面参考图8更详细描述的,解密引擎132对由原始十六字节输入密文块形成的四字节段的排序进行随机化。例如,解密引擎132使用随机数生成器的输出来给在逆密码加过程期间表现的功率轨迹信息引入不可预测性。
116.通过随机化aes定义的解密过程的逆密码密钥加部分的底层操作序列,解密引擎132表现出在aes cpa过程的预处理阶段未对准的功率轨迹信息。以这种方式,解密引擎132将aes定义的解密的早期处理步骤的排序随机化,以阻挠sca,同时维护数据精度和aes合规性。
117.图8是示出根据本发明的各方面的解密引擎132的各方面的框图,解密引擎132实现抗sca的数据置乱解密。解密引擎132的架构利用上面参考图6描述的数据相互依赖性的四字节限制来减少执行抗sca所花费的硬件基础设施。置乱的数据路径800通过在连续的四字节段中处理输入的密文块能够实现解密引擎132的硬件减少的设计。图8的置乱的数据路径800表示随机顺序的四字节字的顺序处理,在每个字转换时产生随机密钥段。
118.置乱的数据路径800使用组成密钥802的四个离散的四字节密钥段和组成十六字节输入块804的四个离散的四字节数据字作为输入。解密引擎132将密钥802分成相应的密钥段k0到k3,并将输入块804分成相应的数据字w0到w3。为了在置乱的数据路径800内实现本发明的数据置乱,解密引擎132使密钥段传递通过密钥多路复用器(mux)806,并使数据字传递通过数据mux 808。
119.mux 806和808基于轮密钥编排器814使置乱的数据路径800的数据-密钥配对方面随机化,轮密钥编排器814又基于随机数生成器(rng)810的输出。轮密钥编排器814使mux 806和808能够输出从输入块804形成的四个数据字的二十四(计算为四的阶乘)个不同排列中的一个。轮密钥编排器814还提供关于选择由密钥802形成的特定四字节密钥段的随机化,该密钥段将要与随机化的数据字序列结合被提供给逆密码密钥加步骤812的加法单元。
120.置乱的数据路径800符合aes轮密钥加结果,同时置乱构成逆密码密钥加步骤812的输入数据的数据字和对应的密钥段。也就是说,不管数据字的排列和最终数据-密钥对的排列如何,逆密码密钥加步骤812的输出在四次迭代之后仍然符合关于十六字节密文输入(诸如输入块804)的符合aes的操作的输出。基于输入块804的四字节段的顺序解密,而不是如图6所示的四字节段的并行解密,解密引擎132可以使用简化的硬件基础设施(诸如对应于图6所示的四个独立子路径中的仅一个子路径的硬件基础设施)来实现置乱的数据路径800。
121.置乱的数据路径800的架构允许动态的在线编排,使得解密引擎132可以针对给定轮对于每个随机化的输入数据块(即对于任何数据字排列)选择数据-密钥处理的顺序。根据置乱的数据路径800,解密引擎132针对每个aes轮密钥应用从数据字排序的二十四个不同的排列中进行选择,并执行一系列四个(逆)密码密钥加周期来完成十六字节输入块的符合aes的解密。解密引擎132在每次迭代中执行一个附加周期,该附加周期专用于使用基于rng 810的输出的随机选择来导出下一轮的密钥段。
122.因为解密引擎132以随机方式从二十四个可能的排列中选择每一轮的编排,所以解密引擎132为每个唯一的数据-密钥对生成不同的功率轨迹特征。当针对mux 806和808的排列选择而由轮编排器814应用时,rng 810的随机化输出基于rng 810提供的随机变化。rng 810在硅上非常接近mux 806和808的位置实现,从而使得套取设备或窥探设备更难及时不正当地获得轮编排器814来将轮编排应用于cpa 700。逆密码密钥加步骤812的相应加法器的每个输入/输出路径在本文被称为单独的“数据信道”。如图8所示,每个数据信道对应于一个四字节的处理路径,并继续通过置乱的数据路径800的四个替换字节(sbox)单元,在置乱的数据路径800的列混合计算阶段汇聚。
123.置乱的数据路径800在图7的aes功率轨迹702中引入了未对准。在相同的动态生成时间缺乏对轮编排器814的值的访问的情况下,图7的cpa模型由于不正确的相关系数计算而失败。本发明的配置仅将额外的多路复用器(即mux 806和808)引入到分区的aes数据路径600,同时将架构减小到其原始大小的四分之一。以这种方式,解密引擎132实现了本发明的sca缓解措施,同时限制了额外的逻辑开销。相比之下,其他现有的sca缓解措施需要电压调节器和/或噪声注入电路,这引入了大量硬件基础设施的增加以及专用于sca缓解操作的更大功耗。解密引擎132可以在基于asic的架构以及基于fpga的架构中实现置乱的数据路径800。因为解密引擎132可以部署在人工现实soc中,以用于二进制解密、dram内容保护、非易失性存储器内容保护、熔丝(fuse)内容保护、无线链路保护等,所以置乱的数据路径800保护这些硬件部件中的任何一个免受sca(诸如cpa 700)的攻击。
124.图9是示出根据本发明的各方面的结合了数据置乱和排列的数据解密技术的另外细节的框图。压缩的轮编排900示出了从输入块804的十六字节密文中获得的数据字的四周期计算,其中附加周期专用于导出下一轮的相应密钥段(从密钥802获得)。如排列集910中
所示,基于rng 810提供的随机种子,可以以二十四种可能方式中的一种来编排每一轮。从二十四个可能的排列中选择单个排列使得解密引擎132能够在置乱的数据路径800的不同轮生成具有唯一电流(或功率轨迹)特征的唯一数据-密钥对。此外,解密引擎132使用由rng 810提供的随机变化的种子值来为关于每一轮逆密码密钥加步骤812表现的电流轨迹的排序引入不可预测性。
125.图10是示出解密引擎132可以执行的使用本发明的数据置乱技术来阻挠sca的示例过程950的流程图。解密引擎132可以使用图8的简化数据路径来执行过程950,从而限制用于sca安全aes解密的硬件要求。解密引擎132可以对解密引擎132获得的用于aes解密的加密块进行分区(952)。例如,解密引擎132可以对十六字节加密块进行分区以形成四个离散的四字节数据段。解密引擎132进而可以置乱由于分区形成的数据段(954)。例如,解密引擎132可以基于从rng 810接收的随机数来置乱数据段。换句话说,解密引擎132可以基于确定rng 810提供的随机数与所选排列相关联,从排列集910的二十四个可能的排列中选择一个。
126.解密引擎132可以随机选择从密钥802中形成的密钥段之一(956)。例如,解密引擎132可以选择与从rng 810获得的随机数相关联的特定密钥段。解密引擎132进而可以计算解密的数据段(958)。例如,解密引擎132可以在一轮逆密码密钥加步骤812中将随机选择的密钥段添加到置乱的数据段,然后完成置乱的数据路径800的剩余计算阶段。
127.解密引擎132可以重复步骤954-958十次迭代,以迭代地计算对应于原始接收的十六字节加密输入数据块的十六字节解密数据块的所有底层数据。在以这种方式迭代地计算十六个字节的底层数据时,解密引擎132可以组合迭代计算的十六字节的解密数据以形成解密块(962)。在各种示例中,解密引擎132可以连接十六个字节,或者重新排列和连接十六个字节以重构解密的十六字节块,视情况而定。
128.本发明中描述的技术可以至少部分地以硬件、软件、固件或其任何组合实现。例如,所述技术的各个方面可在一个或更多个处理器内实现,该处理器包括一个或更多个微处理器、dsp、专用集成电路(asic)、现场可编程门阵列(fpga)、或任何其他等效的集成或离散逻辑电路,以及此类部件的任何组合。术语“处理器”或“处理电路”一般可指前述逻辑电路、固定功能电路、可编程电路中的任一种(无论是单独或与其他逻辑电路组合),或任何其他等效电路。包括硬件的控制单元也可执行本发明的一种或更多种技术。
129.此类硬件、软件和固件可在相同的设备内或在单独的设备内实现以支持本发明中描述的各种操作和功能。此外,所述单元、模块或部件中的任一个可一起或单独地实现为离散的但可互操作的逻辑设备。将不同特征描述为模块或单元旨在突出不同的功能方面,并不一定意味着此类模块或单元必须由单独的硬件或软件部件实现。而是,与一个或更多个模块或单元相关联的功能可以由单独的硬件或软件部件执行,或者集成在公共或单独的硬件或软件部件内。
130.在本发明中描述的技术还可在包含指令的计算机可读介质(诸如计算机可读存储介质)中体现或编码。嵌入或编码在计算机可读存储介质中的指令可以例如在执行指令时致使可编程处理器或其他处理器执行方法。计算机可读存储介质可包括随机存取存储器(ram)、只读存储器(rom)、可编程只读存储器(prom)、可擦除可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)、闪存、硬盘、cd-rom、软盘、盒式磁带、磁介质、光学介质
或其他计算机可读介质。
131.如本文通过各种示例所描述的,本发明的技术可包括人工现实系统或结合人工现实系统来实现。如所描述的,人工现实是在呈现给用户之前已经以某种方式调整的现实的形式,其可包括例如虚拟现实(vr)、增强现实(ar)、混合现实(mr)、混杂现实、或其某种组合和/或衍生物。人工现实内容可以包括完全生成的内容或与捕获的内容(例如,真实世界的照片)相结合的生成的内容。人工现实内容可以包括视频、音频、触觉反馈、或其某种组合,且其中任何一个都可以在单个信道中或在多个信道中被呈现(例如向观看者产生三维效果的立体视频)。另外,在一些实施例中,人工现实可以与应用、产品、附件、服务或其某种组合相关联,这些应用、产品、附件、服务或其某种组合例如用于在人工现实中创建内容和/或在人工现实中被使用(例如,在人工现实中执行活动)。提供人工现实内容的人工现实系统可以在各种平台上实现,这些平台包括连接到主计算机系统的头戴式显示器(hmd)、独立的hmd、移动设备或计算系统、或者能够向一个或更多个观看者提供人工现实内容的任何其他硬件平台。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1