本发明属于数据加密,具体涉及一种适用于嵌入式设备的白盒密码方法。
背景技术:
::1、传感器和监控摄像头等嵌入式设备在物联网中发挥着至关重要的作用。然而,它们通常部署于无人值守的环境并使用无线网络进行通信,这使它们容易受到侧信道攻击。侧信道攻击可以利用从侧通道中泄漏的信息来推断密码算法中的秘钥,甚至提取整个密码算法程序的实现。攻击者一旦获取了这些密钥或程序实现,便能够解密在物联网设备之间传输的敏感信息,对数据机密性构成重大威胁。2、在物联网设备中使用白盒密码来代替传统分组密码能有效解决上述问题。最初,白盒加密技术被用于数字版权管理系统的客户端组件,以保护解密模块免受密钥提取攻击。这种技术引起了工业界和学术界越来越多的兴趣,因为它可以保护加密算法(特别是对称加密算法)在不可信执行环境(或白盒环境)中的算法实现,即使在这种环境中攻击者可以完全访问算法实现及操控运行过程。白盒密码可分为两类。第一类源于早期的研究,主要集中于构建一些标准化分组密码的白盒实现,如aes、shark、idea和clefia。第二类白盒密码又称作空间难度白盒密码,其并非针对某种具体的分组密码来设计,且具有可证明的安全性。本发明采用第二类白盒密码的构建方法来设计适用于物联网设备的具有可证明安全性的分组密码。3、bogdanov等人于“white-box cryptography revisited:space-hard ciphers”论文中提出的space方案。space是一类采用重目标feistel网络结构(target-heavygeneralized feistel network)的空间难度白盒分组密码,其使用aes来生成底层的查找表。space包含space-(8,r),space-(16,r),space-(24,r)和space-(32,r)四个实例,其中r为轮数。space的算法中包含r个f表,其表示为f0,…,fr-1。对于第i轮,fi会将m比特的输入映射为128-m比特的输出,其中m可以为8、16、24和32。4、fouque等人于“efficient and provable white-box primitives”论文中提出的whiteblock方案5、whiteblock是另一类空间难度白盒分组密码,其也是采用了feistel结构,并且在每一轮中都有查表操作。其分组长度和密钥长度都为128比特。其也支持参数化,允许配置的参数为查找表的输入输出大小,其推荐取值包括16、20、24、28和32。whiteblock包含puppycipher(简称pc)和hound两种具体的实现,其中pc使用了完整的aes算法而hound只使用了5轮aes。6、上述方法难以适应资源受限的物联网设备:现有的空间难度白盒加密方案大多使用体积较大的查找表(例如spnbox-32和space-32都拥有数十gb的超招标),其导致算法运行过程中将占用大量内存开销并使用大量能源,而物联网设备通常内存较小、能源供应受限,其无法使用大部分现有的白盒加密方案。7、另外,即使某些现有的空间难度白盒加密算法有体积合适的查找表(例如space-16和pc-16),其运行效率也较低,难以满足当今物联网系统对数据传输速率的要求。一些空间困难白盒密码算法的实例被证明存在安全问题(例如wem-16)。8、侧信道攻击是一种通过监测系统的物理实现或执行过程中泄露的信息,来获取加密密钥或其他敏感数据的攻击方法。这些物理实现或执行过程的信息泄露通常是与计算设备的功耗、电磁辐射、时钟频率等相关的非常微小的信号。侧信道攻击属于灰盒攻击。为保护物联网设备中的密码算法以对抗侧信道攻击,现有的方案包括代码混淆、受信任执行环境(tee)和空间困难白盒算法等,但现有的技术方案都有其局限性:9、代码混淆方案的局限性:10、缺乏可证明的安全性:代码混淆无法提供可证明的安全性,容易受到去混淆技术的攻击,进一步暴露了代码的逻辑。11、语言依赖性:大多数代码混淆技术是为特定编程语言设计的,这限制了它们在更广泛的语言中的适用性。例如,adam和allatori等混淆器所使用的技术依赖于特定的编程语言,因此无法应用于其他语言。12、可信执行环境(tee)方案的局限性:13、硬件漏洞:一些常见的tee解决方案,如arm trustzone和intel sgx,已经被发现存在漏洞,可能导致从受信任执行环境中提取敏感数据。14、开发难度:传统的tee需要开发人员根据tee的软件规范对现有应用程序进行重构或者开发新应用程序,这增加了开发的复杂性。15、虚拟化tee的安全性问题:近年来出现了虚拟化tee解决方案,如intel trustdomain extensions(tdx)和amd secure encrypted virtualization(sev),但它们也存在安全问题,例如amd sev中的攻击和google发现的intel tdx的安全漏洞。16、其他空间困难白盒方案的局限性:17、空间困难白盒方案是实现物联网设备康侧信道攻击能力的强有力方法,但现有空间困难白盒方案并不适合所有情况:一些空间困难白盒方案存在查找表大小不合适的问题;即使某些算法具有合适的查找表体积,其算法性能也较低;此外,还有部分算法存在安全性问题。18、综上所述,现有技术方案虽然有一定的应用前景,但它们都存在各自的缺陷。19、本发明用到的一些术语解释:20、物联网:指通过互联网将各种物理设备连接起来,使它们能够相互通信和交换数据的技术和概念体系。这些物理设备可以包括传感器、执行器、嵌入式系统、通信硬件等,又叫做物联网设备。物联网的目标是实现物理世界和数字世界的深度融合,通过实时数据交换和智能决策,提高效率、降低成本,以及为人们提供更便捷、智能的服务。21、加密算法与解密算法:加密算法和解密算法是用于保护信息机密性的密码算法,其往往成对出现。加密算法用于将原始数据转换为具有不可读形式的密文,而解密算法则用于将密文还原为原始数据。这两者通常使用一个密钥,这个密钥可以是对称的(相同的密钥用于加密和解密)或非对称的(使用一对相关联的密钥,一个用于加密,另一个用于解密)。22、分组密码:分组密码是一种对固定长度的数据块进行加密和解密的对称加密算法。它将输入的明文分成固定大小的块,然后对每个块进行加密。aes(advancedencryption standard,高级加密标准)即是一个知名的分组密码。23、feistel网络:feistel网络是一种对称密码学结构,用于设计分组密码算法。它的设计灵感来自于horst feistel,于1973年提出,而des(data encryption standard)就是应用了feistel网络结构的著名分组密码算法。feistel网络的优势在于它的可逆性和对称性。由于每一轮的加密和解密过程是相似的,这使得实现加密和解密算法更为简便。24、黑盒/灰盒/白盒攻击:黑盒攻击指的是一类仅通过分析密码算法输入输出来破解密码的攻击手段,密码算法对供给者而言如同一个黑盒;而灰盒/白盒攻击不仅具有全部黑盒攻击的能力,还能够访问程序部分/全部的代码实现,并部分地/完全地监测程序的运行过程。25、侧信道攻击:侧信道攻击是一种通过监测系统的物理实现或执行过程中泄露的信息,来获取加密密钥或其他敏感数据的攻击方法。这些物理实现或执行过程的信息泄露通常是与计算设备的功耗、电磁辐射、时钟频率等相关的非常微小的信号。侧信道攻击属于灰盒攻击。26、黑盒/白盒安全性:如果一个算法能抵抗黑盒/白盒攻击,则称其具有黑盒/白盒安全性。27、白盒密码:具有白盒安全性的密码被称为白盒密码。空间难度白盒密码是一类白盒密码,其具有可证明安全性。28、查找表:查找表是一种数据结构,用于存储和检索数据。空间难度白盒密码算法使用现有的黑盒安全分组密码和密钥来生成查找表中,此后便仅使用查找表而非原始密钥来进行加解密操作,以达到隐藏密钥的目的。技术实现思路1、针对现有技术存在的问题,本发明旨在提出一种能够抵抗侧信道攻击、适用于资源受限的物联网设备、算法性能较高的分组密码算法。2、本发明技术方案3、一种适用于嵌入式设备的抗侧信道攻击白盒密码方法(命名为lstable方法),其特征在于,包括表生成算法tablegen、加密算法encrypt和解密算法decrypt;4、所述表生成算法输入为密钥k,输出为si和处理步骤如下:5、首先生成一个恒等映射(满足si[x]=x);接着使用fisher-yates打乱算法来将该恒等映射进行打乱以生成最终的排列si;为了达到较高的随机性,使用现有的伪随机排列e并配合密钥k来生成j,如果密钥k没有泄露给攻击者,那么对攻击者而言使用算法1生成的si和便可视为伪随机排列;具体如算法1;6、7、所述加密算法输入为si(i=0...l-1)和明文p,输出为密文c;8、在encrypt算法的每一轮中,对于分组状态的每一行(设行号为i),si将s维行向量(c[i,0],...,c[i,s-1])t转化为一个新的向量;接着对于分组状态的每一列,l将l维二进制列向量(c[0,j],...,c[l-1,j])t转换为一个新的向量,其中j为列号,l是一个在l维向量空间(元素属于gf(2))中的线性变换;9、处理过程描述参见算法2;10、11、所述解密算法是加密算法的逆运算,decrypt算法与encrypt算法具有相同的轮数,即r轮;在每一轮中,对于分组状态的每一列,l-1将l维二进制列向量(c[0,j],...,c[l-1,j])t转换为一个新的向量,其中l-1为l的逆变换,j为列号;接着对于分组状态的每一行,将s维行向量(c[i,0],...,c[i,s-1])t转化为一个新的向量,其中为si的逆变换,i为行号;具体描述参见算法3;12、13、特定的,算法参数s的取值为16;算法参数l的取值为8、12或16。14、特定的,当l=8时,r取值为12、14、16、18、20、22或24;15、当l=12时,r取值为为8、10、12、14或16;16、当l=16时,r取值为6、8、10或12。17、有益效果18、本发明有益效果如下:19、1.具有合适的查找表体积。本发明中包含的三类实例(即lstable-(8,r)、lstable-(12,r)和lstable-(16,r))的查找表体积分别为1mb、1.5mb和2mb,其能够适应现有物联网设备的缓存大小。20、2.具有较好的性能。算法性能远超现有的适用于物联网场景的空间难度白盒密码算法。21、3.具有可靠的安全性。经理论分析其能够抵抗差分分析和线性分析,且具有可证明的白盒安全性。当前第1页12当前第1页12
技术特征:1.一种适用于嵌入式设备的抗侧信道攻击白盒密码方法,其特征在于,包括表生成算法tablegen、加密算法encrypt和解密算法decrypt;
2.如权利要求1所述一种适用于嵌入式设备的抗侧信道攻击白盒密码方法,其特征在于,算法参数s的取值为16;对应算法参数l的取值为8、12或16。
3.如权利要求2所述一种适用于嵌入式设备的抗侧信道攻击白盒密码方法,其特征在于,
技术总结本发明属于数据加密技术领域,具体涉及一种适用于嵌入式设备的白盒密码方法。包括表生成算法TableGen、加密算法Encrypt和解密算法Decrypt。本发明交替使用比特级别的S盒和L盒进行轮变换,比起现有主流的基于Feistel网络和基于置换‑替换网络的分组密码来说具有一定优势;适用于资源受限的物联网设备,其所使用的查找表的体积可以匹配现有物联网设备的缓存及内存大小,且具有较少的能耗,保障物联网设备能在能源有限的场景下正常运行;具有可靠的安全性,经理论分析其能够抵抗差分分析和线性分析,且具有可证明的白盒安全性;本发明的算法具有较高的速率,其速率超过现有的适用于物联网设备的空间难度白盒密码算法实例。
技术研发人员:史扬,李一珉
受保护的技术使用者:同济大学
技术研发日:技术公布日:2024/6/26