您当前的位置: 首页 > 

mutourend

暂无认证

  • 2浏览

    0关注

    661博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Cryptography I 斯坦福大学 Dan Boneh——学习笔记1

mutourend 发布时间:2019-05-07 17:31:59 ,浏览量:2

1、一次性密码本(One-time Pad;OTP)(Vernam 1917)
E(k,m) = m ⊕ k , D(k,c) = c ⊕ k

Given a message (m) and its OTP encryption ( c),可 compute the OTP key from m and c. k = m ⊕ c. OTP has perfect secrecy (i.e. no CT only attacks). Bad news: perfect-secrecy ⇒ key-len ≥ msg-len OTP可防止密文攻击,且key的长度需大于等于明文的长度,不实用。

2、流加密(Stream Ciphers)(making OTP practical)
Making OTP practical using a PRG: G: K ⟶ {0,1}n
Stream cipher: E(k,m) = m ⊕ G(k) , D(k,c) = c ⊕ G(k) 
Security: PRG must be unpredictable

流加密,是对称加密算法的一种,加密和解密双方使用相同伪随机加密数据流(pseudo-randomstream)作为密钥,明文数据每次与密钥数据流顺次对应加密,得到密文数据流。实践中数据通常是一个位(bit)并用异或(xor)操作加密。 流加密不具有perfect secrecy,因为the key is shorter than the message。 其安全性取决于特定的PRG伪随机数生成算法, PRG为随机数生成算法必须为不可预测的,即已知1 ~ i位,无法预测i+1 ~ n位的具体值。 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在密码学中,永远不要用random()函数来生成随机数。 如libc中的random()实现为:(为Weak PRG)

r[i] ← ( r[i-3] + r[i-31] ) % 2^32
output r[i] >> 1

在这里插入图片描述 Never use stream cipher key more than once !! 一次性密码本的基本原则就是只使用一次,然后必须抛弃,这样才会提供足够的安全性和不可破译性。(维诺那计划 Venona project)

• Network traffic: negotiate new key for every session (e.g. TLS) 
• Disk encryption: typically do not use a stream cipher
3 Modern stream ciphers: eStream

增加nonce,且The pair (k,r) is never used more than once. Nonce是或Number once的缩写,在密码学中Nonce是一个只被使用一次的任意或非重复的随机数值。在加密技术中的初始向量和加密散列函数都发挥着重要作用,在各类验证协议的通信应用中确保验证信息不被重复使用以对抗重放攻击(Replay Attack)。 在这里插入图片描述

关注
打赏
1664532908
查看更多评论
立即登录/注册

微信扫码登录

0.0388s