Appearance
首先声明,这是我个人阅读上海交大林婷婷的博士论文的笔记.
白盒密码学研究的是什么
现代密码学所描述的密码系统的模型,有一个基本的假设,就是密码算法程序的执行环境是可信的,无论是对称的AES,DES,还是非对称的RSA,ECC. 而攻击者只能在通信的信道上进行观测,干扰,修改,重发等. 这种假设可以称之为黑盒模型. 而白盒密码学则假定密码算法执行的环境是不可信的,攻击者可以完全掌控整个密码算法的运行环境,不仅可以对算法进行静态分析,还可以调试,修改算法的每一条指令.
黑盒攻击
灰盒攻击
白盒攻击
白盒密码学的应用场景
云计算
大家对于公有云提供商的环境是否足够信任呢,是否担心你运行在上面的程序,存储在上面的数据会被云服务商监控,盗窃,修改? 如果可以证明我的算法,就算是云服务商可以监控,可以修改也不能获取到我的机密信息,那么云服务商岂不是高兴坏了.
无线传感器网络
比如在军事领域应用的无线传感器网络,节点很容易落入敌方之手,被反编译,被调试,被修改,那么怎么能保证机密信息不被窃取呢? 怎么阻止敌方分析后,伪装成合法节点干扰传感器网络的运行?
白盒密码学现在有可行的方案么?
简单来说,没有. 因为如果有了以后,现在大家正在研究的难题,都将不再是问题:
- 软件防篡改
- 同态加密
- 安全多方计算MPC
- 零知识证明
白盒密码学的现状
- Saxena 等人通过“白盒性”这个概念提出了一个白盒密码 的基本模型。在这个模型下,他们证明了对于一个程序,不存在能够满足所有安全概念的混淆器(否定结论)。从另一方面,他们证明了确实存在能够满足某些 安全概念的混淆器(肯定结论)
- 2009年肖雅莹等人提出了SMS4算法的白盒实现,但是被作者以低于复杂度,找出了秘钥
- 白盒密码算法需要额外的存储空间来存储查找表,从几百KB到20GB不等.
密码学的其他知识
CIA三原则
- 机密性 Confidentiality
- 完整性 Integirity
- 可认证性 Authentication 还是可用性 Availability?
常见的安全性要求
- 完全攻破 可以恢复出完整的秘钥
- 全局推导 攻击者构造出一个与原算法功能等价的替代算法,不使用密钥也可以恢复出与密文相对应的明文
- 实例推导 攻击者仅从锁获得的密文中恢复相应的明文
- 信息推导 攻击者仅能恢复不符密钥的信息或者目标明文的信息
攻击手段的分类
- 仅密文攻击 攻击者只能在信道上截获到密文
- 已知明文攻击 攻击者拥有一定数量的密文以及某些密文对应的明文
- 选择明文攻击 攻击者可以指定明文,也能获取到这些明文对应的密文
- 选择密文攻击 攻击者可以获得其指定密文对应的明文,可以通过试验不同特征的密文,分析节后的结果.
以上四种方式,攻击者的能力是逐渐递增的,如果一个密码系统能够抵御后一级的攻击,一定可以抵御前面所有级别的攻击.