学习
实践
活动
专区
工具
TVP
写文章
专栏首页包罗万想Dan Boneh密码学笔记4

Dan Boneh密码学笔记4

Using block ciphers

1.review:PRPs and PRFs

2.modes of operation: one time key

2.1电子密码本ECB模式

2.2确定的计数器模式Deterministic counter mode

3.Security for many-time key

3.1多次加密系统在选择明文攻击CPA下的语义安全

3.2给两次同样的明文加密,法1,随机加密

3.3给两次同样的明文加密,法2,基于新鲜值的加密

4.modes of operation: many time key (CBC)

4.1CBC加解密过程

4.2CBC的CPA安全分析

4.3 CBC针对IV的攻击

4.4基于新鲜值的CBC加密

4.5 TLS、OpenSSL曾经的bug

4.6CBC补位padding

5.modes of operation many time key (CTR)

5.1CTR随机IV模式

5.2 CTR新鲜值IV模式

5.3CTR的CPA安全性分析

5.4CTR和CBC对比

总结

Using block ciphers

1.review:PRPs and PRF

上一节讲过了

安全的PRF的定义

攻击者无法区分伪随机函数和真随机函数,即是安全的

2.modes of operation: one time key

2.1电子密码本ECB模式,不安全,两个明文分组相同,密文也相同

2.2确定的计数器模式

Deterministic counter mode

AES和3DES就是用这种方式

3.Security for many-time key

同一个密钥加密多次

3.1多次加密系统在选择明文攻击CPA下的语义安全

对于选择明文攻击,攻击者可以重复这个询问多次。

选择明文攻击的本质,如果攻击者想知道特定明文信息m的加密结果,比如使用询问J,查明文J的加密结果。他把信息0和1都设为一样的信息m,左边和右边的信息是一样的都是m,这时由于两个m一样,攻击者会收到他感兴趣的信息m的加密结果,这就是选择明文攻击的意思。攻击者可以提交信息m,收到m的加密结果。

系统在选择明文攻击CPA下语义安全的:所有的攻击者都读无法区分实验0和实验1。

确定的计数器模式或者一次性密码本,在CPA攻击下是不安全的。

对相同的输入信息,输出相同的密文,不安全

Deterministic encryption can not be semantically secure under a chosen plain text attack

举例,比如说打电话过程中,如果安静的状态下都默认发送0,攻击者可以通过密文就可以判断出你什么时候是安静状态。尽管他无法破解你的内容。

3.2给两次同样的明文加密,法1,随机加密

解决方案1,随机加密

在加密过程中选择一些随机的字符串,使用这个随机字符串来加密信息m

M0会映射到一组密文,而不是一个。一对多加密,多对一解密,这两个球里面的点不相交。

这种做法意味着密文一定比明文长。因为生成密文时使用的随机字符串被编码进了密文里。

r, a nonce space (nonce新鲜值)

Output, a message space

1. generate a random r in this nonce space R

2.打开一个由两部分组成的密文,第一部分是r,第二部分是PRFxor 明文m

这个encryption system 在CPA下是安全的吗?

仅仅在R最够大时,r才会以很高的概率不重复,这时PRF表现和真随机函数很像,是安全的。

3.3给两次同样的明文加密,法2,基于新鲜值的加密

解决方案2,基于新鲜值的加密

这个新鲜值是公开的,唯一的要求,(k,n)只能用来加密一个明文。

加密下一个明文时,要么换新的随机密钥,要么换新的新鲜值。

新鲜值不能重复,但是不必是随机的。

法1,把计数器当做新鲜值

如果解密在具有同样的状态,不需要在密文里包括新鲜值。因为新鲜值是隐藏的。

https协议,可靠的传输机制,收发数据包按顺序的。 不需要把新鲜值包含在数据包里面。

IPsec协议,加密IP层,不可靠,不按顺序,现在新鲜值必须被包含在数据包里。

法2,随机选取新鲜值

好处是发送方在发送不同信息时不需要维护状态

比如在多台设备上,手机和电脑必须确保他们不会重复使用相同的新鲜值,如果他们都随机选择新鲜值,他们不必协调,因为他们不会选中同一个新鲜值的概率非常高。有些情况下,无状态的加密是很重要的。

确保每次的新鲜值都不同。

4.modes of operation: many time key (CBC)

对CPA攻击的安全的多次加密加密机制——密码分组链接模式

4.1CBC加解密过程

使用初始化向量IV

加密过程

解密过程

4.2CBC的CPA安全分析

带IV的CBC模式对于CPA攻击是语义安全的

CBC是安全的,最好是q^2*L^2远远小于|x|的值

L是加密的明文长度

q是在CPA攻击下,攻击者获得的密文数

在现实中,q的意义是我们使用密钥k加密的次数

如果我们用AES密钥加密了100条明文信息,q=100,这是因为攻击者将会最多看到用密钥k加密的100条信息

4.3 CBC针对IV的攻击

IV的不可预测性非常重要

如果IV是可被预测的,则加密系统没有CPA安全性

这点在实际应用中是非常常见的错误

在SSl/TLS1.1的一个bug,给定第i-1个记录的加密,攻击者可以知道第i个 记录的IV是多少

4.4基于新鲜值的CBC加密

这种模式里,IV被某个不随机但是唯一的新鲜值取代

好处是, 如果接受方知道新鲜值是多少,就没必要把新鲜值包含在密文里了,密文就和明文一样长了。

这种模式,需要两个独立的k和k1,k加密分组,k1加密新鲜值

用k1加密新鲜值是非常重要的

如果用k加密新鲜值,也不是CPA安全的。

4.5 TLS、OpenSSL曾经的bug

这老师讲的真好,结合学术界的东西讲密码学基础知识,这种对于k1是疏忽也是常见的错误。TLS曾经犯下此错误,遭受严重的攻击。

举个例子说明很多密码学的API是在误导用户去错误地使用CBC。

在OpenSSL中

这个函数让你传参IV,且没有加密IV,如果你调用这个函数并使用非随机的IV得到的加密系统将不是CPA安全的 。

如果你将IV设为计数器,必须用AES加密计数器

4.6CBC补位padding

当明文分组不是AES分组的整数倍时,需要补空,padding

最后一个明文分组比16字节短

TLS使用的一个典型的补齐方式,用n个字节进行补齐,把这个数n写n次。

举例,补五个空,就补上55555

如果不需要补,是正好的整数倍,我们还在是在最后加一个没用的分组。16个16。

5.modes of operation many time key (CTR)

另一种CPA安全的多次加密机制——随机计数器模式(CTR)

5.1CTR随机IV模式

比CBC好一些

CTR模式使用安全的PRF,不使用分组密码

CBC是串行的,CTR是并行的

选择随机IV,对于AES是128位的随机IV

5.2 CTR新鲜值IV模式

CTR模式还有一种基于新鲜值的计数器模式

IV不是真随机的,是一个新鲜值,可计数的

把AES的128位分组,左64位作为新鲜值,计数器是0到2的64次方

5.3CTR的CPA安全性分析

CTR实际上比CBC可以加密更多的分组

CTR:一个AES密钥可以用2的64次

CBC:一个AES密钥可以用2的48次

5.4CTR和CBC对比

CTR比CBC的好处

CTR使用像Salsa20一样的原型(PRF但不是PRP)

CBC不能用

总结

文章分享自微信公众号:
包罗万想

本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!

作者:安包
原始发表时间:2019-08-16
如有侵权,请联系 cloudcommunity@tencent.com 删除。
登录 后参与评论
0 条评论

相关文章

  • Dan Boneh密码学笔记7

    1.Active attacks on CPA-secure encryption

    安包
  • Dan Boneh密码学笔记2

    实际上我的学习时间得在四个小时才够,而且得是脑子清醒的四个小时。这还是刚开始简单的流密码......感觉也就听懂了90%,真正消化完......尤其那些安全性的...

    安包
  • Dan Boneh密码学笔记9

    TTP发送给Alice用Alice密钥加密的信息,包括”这个共享密钥是AB之间的“和Kab。

    安包
  • Dan Boneh密码学笔记5

    ⇒ attacker cannot produce a valid tag for a newmessage

    安包
  • Dan Boneh密码学笔记8

    3.Deterministic Encryption Constructions:SIV and wide PRP

    安包
  • Dan Boneh密码学笔记6

    这个定理:如果底层MAC是安全的,且H是抗碰撞的,那么这个组合可以计算长信息的MAC,得到的MAC也是安全的。

    安包
  • Dan Boneh密码学笔记15

    Boneh, D., & Franklin, M. (2001, August). Identity-based encryption from the Wei...

    安包
  • Dan Boneh密码学笔记3

    安包
  • Dan Boneh密码学笔记10

    更新本节用了三天。最近开学事情有点多,学习上有点不知道先学哪个。要学的东西太多了,区块链安全的15篇论文、以太坊的课程、密码学课程(进度10/13)、UC安全框...

    安包
  • Dan Boneh密码学笔记1

    https://crypto.stanford.edu/~dabo/courses/OnlineCrypto/

    安包
  • Dan Boneh密码学笔记13

    Boneh的课程更新到12章就没了,好像明年会继续更新,第一次像追剧一样追一门课。可太刺激了。

    安包
  • Dan Boneh密码学笔记12

    12.Public key encryption from Diffie-Hellman

    安包
  • Dan Boneh密码学笔记11

    11.Public Key Encryption from trapdoor permutations

    安包
  • Dan Boneh密码学笔记14

    Elliptic Curve Diffie-Hellman Key Exchange

    安包
  • 密码学安全归约6 Simulation and Solution

    密码学安全归约1 Algorithm and Security Model Definitions

    安包
  • Pairings in Cryptography

    Dan Boneh密码学笔记14这篇part3介绍了bilinear pairing。

    安包
  • Random oracles(2)

    上面这篇笔记引用自Fuchun Guo, Willy Susilo, Yi Mu 《Introduction to security reduction》介绍了...

    安包

扫码关注腾讯云开发者

领取腾讯云代金券