下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
白盒AES加密在软件保护中的应用摘要加密是软件保护中最古老、最常见的方法,它常常和其他的方法和混合起来使用,以进一步增强对软件的保护效果。由于软件是处在“白盒”的执行环境中的,传统的加密方法在软件保护领域难以取得良好的效果,这并因为非加密算法的强度不够,而是由于软件的执行过程是可以被跟踪的,也就是说密钥和加密算法对于攻击者是可见的,所以需要特定的针对白盒模型的加密手段来保护软件及密钥安全。本文主要探讨软件保护中的密钥安全问题,分析了传统软件密钥保护方法的局限与不足,提出一种最佳的解决方案,即白盒加密算法,并具体分析了一种基于AES加密的白盒实现算法。引言软件保护主要是为了防止软件被破解、被修改或被盗版等,现在软件保护技术主要包括,代码混淆[1]、加密、多态、水印、指纹、虚拟机、远程过程调用和基于硬件的保护等,我们往往根据不同的保护目的,选择或混合使用不同技术对软件。其中加密技术是使用最广泛的软件保护技术之一,如软件加壳就是对整个代码段进行一次性加密运行时一次性解密,自修改代码就是在软件运行的过程中根据需要动态地进行代码块的加。传统的加密技术的有一个基本假设就是攻击者无法获得密钥,具体而言,认为攻击者并未实质性地接触到密钥或者任何内部操作,仅仅能观察到一些外部信息或者操作,这些信息包括系统内的明文(输入)或者密文(输出)。但在软件保护领域传统加密算法遇到了很大的挑战,这主要是实际上是处在白盒定义主要包括三点,一是攻击者对主机和软件具有完全控制权,二是软件态执行过程是,三是加密算法内部细节完全可见。在环境中,传,很容易被跟踪和定位,并以密钥为线索分析加于软件保护上时,需要较为成熟的进行保护并在软件解密由于软件环境中的。白盒的动可见的这种白盒统的密钥由于需要存储在软件中密算法的种类进而对程序进行破解,因此当加密技术应用更多关注如何隐藏和保护密钥。1相关研究在软件保护领域中,密钥保护的思路主要有三种,第一种是自生成密钥,即信息自身生成出来的;第二种是分块密钥,即密钥有很多块,存放在不同位置。第三种是白盒加密[2],其核心思想是让密钥固化在加密算法中,同时用人类无法理解的随机矩阵将算法混淆。密钥是由需要保护1.1自生成密钥自生成密钥的基本思路是让由文件自身的信息来生成密钥,要取信息来生成密钥就必须将文件分块加密,这是因为若文件没有分块,即仅有一块,加密后文件变成了密钥依赖的生成信息也就不存在了。自生成密钥的实现方法是首先对文件进行分块,然后按指定顺序依次加密,每一块的密钥都不是提取自身的信息,而是依赖于其他块的信息,这种顺序依赖原则可以保证始终从文件自身提文,密
有信息可以用来生成密钥,在解密时必须严格按照加密相反的顺序逐块解密。自生成密钥的缺点有两点,一是必须按顺序解密,所以当仅需要解密Bi块将B1,B2,···Bi块全部解密。二是需要保存加密顺序t及分块的数量n,由于每次解密时都需要访问t和n,因此它们是加密敏感数据,很容易成为攻击的突破口。时,必须算法的自生成密钥算法的本质并没有脱离使用密钥,它是一种把单密钥设计改成循环动态生成密钥并加密的算法,该算法严重依赖解密顺序,使用场景有一定的限制,而且重复生成密钥会带来较大开销。1.2分块密钥分块密钥算法[3]可以n把才能打开保险箱。具体而言就是将密钥且在每次执行程序时随机提取因子来恢复密钥,由于每次仅需要获取其中的部分即可完成解密任务,即每次解密都可以取不一样的密钥块组合,假设共有m个密钥块,解密需要n个,则有效解密密钥组合有种,效地干扰攻击者跟踪密钥生成的过程,降低了密钥被直接定位的风险。形象地比喻成为保险箱配许多把钥匙,每次必须筹齐其中的拆分成多份伪随机的因子,并密钥块因此可以有分块加密算法看上去很好地隐藏了密钥,将密钥换了一种表现形式,程序还是需要先恢复密钥然后才能进行解密,一旦密钥被恢复,就将会暴露于内存中,而且无论取哪些随机因子,最终恢复的密钥唯一的,所以该算法并不能从根本上解决密钥安全问题。但是其本质并没有消除密钥,而且是2白盒加密基本原理白盒加密淆因子对加密算法进行混淆。其主要目的是为了让加密算法“黑盒化”,让人类无法理解其中的运算流程和逻辑。白盒加密算法主要适用于分块加密类算法,分块算法本质是定长输入i到定长输出o的映射关系(i与o等长),因此当密钥确定时,可以一个巨大的映射表来替换,这样加密合就完全变成了一个黑盒。即给定输入获得输出,中间过程不可见,这样就用查表的方法隐藏了加密过程和密钥算法的核心思路是将密钥固化到算法中,并加入人类无法理解的混加密将加密算法用算法和密钥的组。在实际应用中,表分解为若干张子表,并在对子表进行混淆,以阻碍攻击者逆向分析出隐藏在子表中的逻辑和恢复密钥为了减小查表的大小,往往需要根据加密算法的特点,将总。3白盒AES加密算法的实现Chow等人[2]最早提出一种白盒AES的实现方法,第一步是用查表的方法来表示AES加密第二步是在AES加密的每一轮的每个变换前后加入混淆编码以进一步混淆查隐藏在表格中的逻辑,阻碍攻击者逆该方法主要包括两步,算法,
向推导出密钥,下面简述白盒AES的加密过程。3.1查表实现查表实现就是将原来的加密算法用查表的形式替换,即算法本身变成了表格和查表方法的组合。假设有一个输入和输出都是128bit的AES加密算法,那么可以穷举所有可能的明文输入(plaintext),就得到了所有的密文输出(ciphertext)。因为输入是128bit,则(plaintext)共有2128种可能,每种可能对应一个大小为128bit的(ciphertext),所以可以用一个2128×128bit大小的表来表示该算法。类似于这样输入和输出是固定大小的算法都可以转化为用查找映射表来表示。在AES加密中,由于输入包括了密钥(key)和明文(plaintext)信息,在构建查表实现时可以必须固定其密钥,这样用构建出的映射表中不仅含有加密算法而且还隐藏着密钥信息,这就是实现白盒加密的基本思路。在实际应用中直接采用一个如此巨大的映射表是不现实的(注:映射表大小为2128×128bit=292TB≈5×1027TB),不仅因为生成的映射表太过巨大无法存储,而且也因为生成映射表时需要遍历所有可能的输入并得到输出,而在如此大的空间上搜索需要海量的计算开销,所以必须采用一定的优化策略用小表取代大表,因此需要根据AES加密的特点,有针对性地设计查表方法。首先来分析一下的实现过程。AES是一个128bit到128bit的分块加密算法,密钥长度可以是128bit、192bit和256bit。的第一步是对密钥(key)进行拓展,扩展为轮密钥(Roundkeys),之后以16字节(128bit)为单位进行加密,加密过程主要包括4步,分别是SubBytes、ShiftRows、MixColumns以及AddRoundKey。可以将输入的16字节看成一4×4个的矩阵将其赋值给一个中间变量,记为state,每个步骤都是在对state进行变换,SubBytes是以字节为单位的替换操作,SubBytes是以行为单位进行位移操作,MixColumns是以列为单位进行的变换,AddRoundKey是与轮密钥进行异或操作。这4步操作一共进行Nr轮(根据密钥长度大小,Nr分别为10、12和14),最后一轮不进行MixColumns,最终得到的state即为输出的密文。标准的128bit密钥的算法实现过程如图一(左)所示。为了得到AES查表实现,同时减小查表的大小,可以将的各个子步骤分别用查表实现。具体而言,可以将SubBytes、ShiftRows、MixColumns和AddRoundKey分别用查表表示,将以及AddRoundKey和SubBytes组合作为一个操作并用查表表示。AES加密的4个主要操作是SubBytes、ShiftRows、MixColumns和AddRoundKey。可以首先改变算法边界,将AddRoundKey和SubBytes和排在一起,对AES加密过程进行等价替换,如图一(中)所示。为了将AddRoundKey和SubBytes和放在一起,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年山东省莱西市高考历史试卷(夺冠系列)附答案
- 2026中国医疗AI影像诊断产品审批现状与医院采购标准研究报告
- 2026能源评估市场供需分析及投资评估规划分析研究报告
- 2026大数据分析驱动的基础设施即服务产品迭代与用户体验优化研究
- 2026中国显示面板光刻胶彩色滤光片技术发展趋势报告
- 2026定制化实木门窗设计趋势与高端客户画像研究
- 2026中国零代码开发平台企业采购决策模型分析
- 2026智能电网用光纤复合低压电缆运维模式创新研究报告
- 2026中国集成电路封测技术演进与先进产能布局报告
- 2026进口饮料品牌本土化策略执行效果评估与改进建议报告
- 2026年水利c类安全员考试题库及答案解析
- 渔光互补光伏项目施工方案设计
- 2026年高压电工证考试题库(答案及解析)
- 《储能用压缩空气泡沫灭火系统》
- 《DLT 2855-2024变电站无人机巡检系统》专题研究报告深度
- 2025年维谛技术笔试试题及答案
- 耳鼻喉嗓音训练
- DB1311∕T 059-2024 玻璃钢企业消防安全管理要求
- DB62-T 3167-2019 冲击弹性波法检测评定预应力孔道压浆密实度技术规程
- 国庆后复工安全培训课件
- 徕卡相机LEICA V-Lux 4 中文使用说明书
评论
0/150
提交评论