对称密钥加密
对称密钥特点:
有一个奇迹:双方共享相同的密钥,而攻击者不知道。
仅提供confidentiality(not integrity or authentication)
假定加密的明文是BitString!!!
Definition
Confidential的概念
formor : "An adversary cannot read our messages"
所以我们给了一个跟好的定义
Eve 知道M0,M1这两个明文
Alice 随机选择一个明文加密
Eve 从加密出的密文中是无法判断出是由M0还是M1加密的。
IND-CPA
INDistinguishablity Under Chosen Plaintext Attack
是在明文攻击的模型下。
Eve可以让Alice加密指定的明文,哪怕把Wiki百科都加密完了。但如果Eve让Alice从M0,M1中随机加密一个,Eve还是猜不出来。
Edge Cases: Length
明文的长度是无法隐藏的。
如果为了隐藏明文的长度,也就意味着的密文长度需要一致:
- 对于特别小的明文,固定长度的密文说明需要填充很多数据
- 对于特别大的明文,固定长度的密文说明装不下。
也就是说,从密文可以猜测出明文的长度。
Edge Cases:Attacker Runtime
Eve的允许时间需要是多项式复杂度内。
Edge Cases: Negligible Advantage
微小的概率提升无法起作用。
Put it togather!!
One-Time Pads
密码学中有一种加密方法叫做 One Time Pad ,翻译过来叫做“一次性密码本”。因为这种密码最早就是真的写在一个本子上传递的,所以有了这个名字。这是一种安全度最高的加密方法,需要通信双方事先去沟通一个一次性的和被加密信息长度相等或者更长的秘钥。
One Time Pad 虽然是最强的加密方法,但是也有自己的局限性。
使用 One Time Pad 有两个最佳实践。第一,一个 One Time Pad 只用一次。第二,每个 One Time Pad 中的数据要保证真正的随机。
这意味着真正使用的时候,每次加密都需要重新生成并且再次发布给通信双方。互联网是一个不安全的环境,安全的发布 One Time Pad 其实是非常困难的,这就使得在很多的应用情形下是不能使用 One Time Pad 的。
One-Time Pads: Key Generation
key是一个随机的01串(长度n等于我们要发送的BitString的length)。
Alice and Bob 都拥有这个BitString
One-Time Pads: Encryption
emm其实就是将明文和key按位异或,解密是将密文按位异或(好煞笔的算法哦)
One-Time Pads: Decryption
One-Time Pad
One-Time Pad: Security
正确性很显然,就不说了。
安全性需要保证,密文不能给eve透露关于明文的信息。
Alice 用了重复的key会怎么样
我们可以将M0和M1的密文相异或,这样就可以得知M0和M1的异或值啦
one-time pad的缺陷
Block Ciphers
Block Ciphers:Definition
整个流程如下:
Block Ciphers: 正确性
\(E_k(M)\)是一个permutation(Bijective Function) on n-bit string
标签:02,加密,密文,Eve,明文,Pad,CS161,Time,密码学 From: https://www.cnblogs.com/PinganT/p/16778744.html