流密碼


完美安全性(perfect secrecy)

一個定義在\((K,M,C)\)上的算法\((E,D)\)具有完美安全性,如果\(\forall m_0,m_1 \in M, |m_0|=|m_1|\), \(\forall c \in C\), \(Pr[E(k,m_0)=c]=Pr[E(k,m_1)=c]\), 其中\(k \in K\)

  • 隨機選擇\(m_0\)\(m_1\)進行加密得到密文,無法根據得到的密文判斷出是由哪個明文加密;

  • 最強大的攻擊者無法由密文獲得明文的任何信息;

  • 不存在唯密文攻擊(但是可能存在其它攻擊)。

一次一密具有完美安全性(不適合實際應用);完美安全性要求\(|K| \ge |M|\)

流密碼和偽隨機數生成器

  • 目的: making OTP practical

  • Idea: replace “random” key by “pseudorandom” key

  • 流密碼不具備完美安全性

  • 安全性新定義-密鑰流不可預測性(已知前面部分密鑰無法推測出之后的密鑰流),否則當加密明文消息頭為一些公開消息時,容易泄露后面的明文消息。

    PRG is unpredictable if it is not predictable ⇒ ∀i: no “eff” adv. can predict bit (i+1) for “non-neg” ε (ε: 攻擊者相對隨機猜測的優勢)

對OTP、PRG的攻擊

攻擊一:Two time pad(密鑰重用)

\(c_1 = m_1 \oplus PRG(k)\)
\(c_2 = m_2 \oplus PRG(k)\)
則:\(c_1 \oplus c_2 = m_1 \oplus m_2\),英文的ASCII編碼存在較大冗余,由可能由此恢復明文消息

現實生活中的例子:

  • Project Venona(1940年早期,俄-美)

  • MS-PPTP (windows NT)

  • 802.11b WEP

  • 磁盤加密(僅修改部分消息->只有部分密文不同)

啟發:

  • Network traffic: negotiate new key for every session (e.g. TLS)

  • Disk encryption: typically do not use a stream cipher

攻擊二: OTP(或流密碼)不具備完整性(OTP is malleable 可延展的)

Modifications to ciphertext are undetected and have predictable impact on plaintext
對密碼的修改會直接影響明文

Real-World Stream Ciphers

傳統流密碼

RC4(1987,有缺陷)

注意:seed可以任意長

  • 應用:Https,WEP(使用方法不安全)

  • 一些weakness:

  1. Bias in initial output:等於0的概率本該是1/256,但實際比1/256大。因此,在使用RC4時,會舍棄前256 bytes。
  2. 00出現的概率比隨機出現的概率大
  3. 對WEP的相關密鑰攻擊

CSS(基於LFSR,已被完全攻破)

  • 應用:DVD(硬件)

  • 一些基於LFSR的算法(基於硬件,全被攻破)

  1. DVD Encryption(CSS) 2 LFSRs
  2. GSM Encryption(A5/1,2)3 LFSRs
  3. Bluetooch(E0): 4 LFSR
  • 算法描述

現代流密碼,(eStream,2008年)

seed+nonce
要求:(k,nonce)不重復使用

Salsa20

  • 優點:軟硬件實現很快
  • 安全性:128 bit
  • 與其它算法性能對比(Crypto++ 5.6.0):

流密碼算法的安全性

PRG Security Definitions

安全性定義:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM