"); //-->
0x00 背景知识
白盒密码技术是一项能够抵抗白盒攻击的密码技术。
白盒攻击是指攻击者对设备终端拥有完全的控制能力,能够观测和更改程序运行时的内部数据。这种攻击环境称为白盒攻击环境。大多智能终端环境(Android、iOS等)在很多情况下就是一个白盒攻击环境。
保护密钥安全是白盒密码技术的一个基本诉求。
与白盒攻击平行的概念是黑盒攻击和灰盒攻击。
黑盒攻击是指攻击者只能获取到程序的输入和输出,不能实质性地接触到任何内部操作和数据;对密码算法来说就是,攻击者可以获取明文和密文,但观测不到算法运行时的内部数据。
灰盒攻击,又称侧信道攻击,通过程序运行时泄露的物理信息(如时间信息、功率消耗、电磁辐射等)可以实质性的部分或完全获取程序运行的内部数据,从而完成对程序的破解或数据(密钥)的窃取。
0x01 密码学简介
密码算法
用于解决复杂问题的步骤,通常称为算法(algorithm)。从明文生成密文的步骤,也就是加密的步骤,称为加密算法,而解密的步骤则称为解密算法。加密、解密的算法合在一起统称为密码算法。
密钥
密码算法中需要密钥(key)。根据柯克霍夫原则,密码算法是标准的,而密钥是需要保密的,因此密钥的安全对密码系统至关重要。
对称密码算法
通信双方共享一个密钥,用于加密任意大小的数据块或数据流的内容,包括消息、文件、加密密钥和口令。常用对称密码算法有DES、AES。
非对称密码算法
非对称密码又称公钥密码,加密和解密分别使用不同的密钥,即私钥和公钥。公钥密码算法多用于加密小的数据块,如加密密钥或者数字签名中使用的Hash函数值。常用公钥密码算法包括RSA、ECC。
密码协议
密码协议是指针对密码算法的应用。常见协议有SSL/TLS、Https。
其它密码技术
hash函数、MAC、数字签名、数字证书、随机数生成器。
0x02 白盒密码技术
方法论
白盒密码需要抵抗白盒攻击,构造白盒密码算法有两种策略,标准密码算法白盒化和构造全新密码算法。
标准密码算法白盒化,在标准密码算法安全理论的基础上和不改变原算法功能的前提下,将原有密码算法通过白盒密码技术进行设计,在白盒攻击环境下能够有效保证其密钥安全。
构造全新密码算法,新算法密码分析结果不能弱于标准密码算法同时具备抵抗白盒攻击的能力。
文献进展
查找表技术:2002年,Chow等人首先提出了白盒攻击的概念,并先后给出了AES、DES的白盒化实现。2009年,Xiao-Lai给出了Chow白盒AES的一个改进方案和国密SM4算法的白盒化实现。
其他技术:2006年Bringer等人提出一个采用了插入扰乱项技术新的AES白盒实现方法。2014年, Alex Biryukov等人提出了一种基于 ASASA(Affine-Sbox)结构的白盒密码设计方法。
白盒分类
白盒密码技术从实现方式上可以分为两类:静态白盒和动态白盒。
静态白盒是指密码算法结合特定的密钥经过白盒密码技术处理后形成特定的密码算法库,称为白盒库,白盒库具备特定的密码功能(加密、解密以及加解密),并能在白盒攻击环境下有效保护原有密钥的安全。静态白盒更新密钥,需要重新生成白盒库。
动态白盒是指白盒库生成后就不需要再更新,原始密钥经过同样的白盒密码技术转化为白盒密钥。白盒密钥传入相匹配的白盒库可以进行正常的加密或解密功能。白盒密钥是安全的,攻击者不能通过分析白盒密钥得到任何关于原始密钥的信息。
0x03 应用场景
动态白盒从功能上可以兼容静态白盒,动态白盒的应用场景可以抽象为下图。
0x04 总结
白盒密码是一种高强度的密码算法,需要抵抗目前所已知的最强攻击方式。目前,白盒密码算法的性能表现(主要指加解密速度和白盒库大小)相对于原有密码算法还是有差距,优化白盒密码算法的性能和构建全新白盒密码算法应该是今后的主要研究方向。
https://zhuanlan.zhihu.com/p/23295431
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。