斯坦福大学密码学公开课——分组加密的应用(多次密钥)

多次密钥

多次密钥在生活中的应用也是十分广泛的,比如文件系统中,相同的AES Key可以用来加密多个文件;IPSec中,相同的AES Key可以加密多个包。

在这里,安全模型会与一次性密钥不同。攻击者可以执行选择明文攻击(Chosen-plaintext attack,CPA),根据攻击者的需求,他可以自由选择密文和明文组合。攻击者的目标当然都是证明这个加密方案不具备语义安全性质。

问题的关键在于,如果一个私钥被使用了很多次,那么如果加密相同的内容,其密文一定不能够一致。

Dan给出了两种解决方案:

  • 第一种解决方案是使用一种随机加密的算法(Randomized Encryption),简单的将就是CT-size = PT-size + "#random bits".这样一来,密文的长度就肯定比明文的长度要大。

    Randomized Algorithm

  • 第二种解决方案是基于随机数的加密方案 (Nonce-based Encryption).其中,随机数是会变化的,并且(k,r)永远不会被使用超过一次。

    1.第一种方法是,把随机数看成一种定时数(Packet Counter),用来表示消息传输的一种状态数,如果通信双方拥有同步状态的话,就不需要传递nonce了。
    2.第二种方法是从一个很大数据集中选择一个随机数,这样子概率会保证选出的所有的随机数没有重复的项。这种场景适合不同设备之间的加密需求(异步时钟)。
    

多次密钥 (CBC Mode)

  • 构建方案一
Construction 1: CBC with random IV

Decryption circuit

值得注意的便是,iv应该是不可预测的。否则的话,攻击者可以根据IV的可预测性对它进行攻击;

  • 构建方案二

这里的nonce不是随机数,而是唯一的count(比如1,2,3...),即pair(key,n)仅仅对一个消息使用。如果接受者已经先知道nonce的话,就不需要在密文中再加入nonce了。值得注意的是,这里的 k_1k 不应该相等。

Construction2: nonce-based CBC

另外,如果消息不是分组大小的整数倍,需要在最后一个分组补充字符。即便是整数倍,也需要在后面补充一个假的分组。


A CBC technicality: padding

多次密钥 (CTR Mode)

  • 构建方案一:Random CTR-Mode

与CBC不同的地方在于,这里的加密方案可以并行处理,而CBC的方案只能串行处理。


Rand CTR-Mode
  • 构建方案二:Nonce CTR-Mode

这里与方案一的区别在于nonce的构建。在这里,nonce前64bits是随机数,而后64bits是计数器(对于每个消息而言,从0开始计数)。值得注意的是,因为64位的计数器的限制,方案如果加密超过了2^{64}个消息,就会出现重复使用相同nonce的问题。

nonce

CTR和CBC方案的比较

Comparison

值得一次的最后一行指的是,对于一个字节的消息加密,CBC的劣势显得很明显(它需要扩展每个一子节消息到16个字节),而CTR则完全不需要。

总结我也放出来..这里就不详细描述了,看论文去了..


Summary
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1 公钥私钥 2 公钥加密 别人用A的公钥加密传输的信息,只有A的私钥可以解密。保证了传输的信息的安全性。 2 私...
    skykira阅读 976评论 0 1
  • 这篇文章主要讲述在Mobile BI(移动商务智能)开发过程中,在网络通信、数据存储、登录验证这几个方面涉及的加密...
    雨_树阅读 2,736评论 0 6
  • 所有货币都需要一些方法来控制供应,并强制执行各种安全属性以防止作弊。在法定货币方面,像中央银行这样的组织控制货币供...
    Nutbox_Lab阅读 3,180评论 1 3
  • 前言 《图解密码技术》一书介绍了很多关于密码的知识,通读一遍需要不少时间。为了方便学习,我对书中关键的部分进行了总...
    咖枯阅读 7,286评论 1 25
  • 如何在Hadoop 2.0上实现深度学习? - 文章 - 伯乐在线 http://blog.jobbole.co...
    葡萄喃喃呓语阅读 1,482评论 0 1