日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

现代密码学2.2、2.3--由“一次一密”引出具有完美安全的密码方案共同缺点

發布時間:2025/3/21 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 现代密码学2.2、2.3--由“一次一密”引出具有完美安全的密码方案共同缺点 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

現代密碼學2.2、2.3--由“一次一密/One-Time Pad”引出具有完美安全的密碼方案共同缺點

  • One-Time Pad密碼方案
    • 定義
    • 正確性/correctness
    • 完美隱藏性/perfectly secret
  • 具有完美隱藏性的密碼方案的共同缺點
    • 特例缺點
    • 共同缺點

博主正在學習INTRODUCTION TO MODERN CRYPTOGRAPHY (Second Edition) --Jonathan Katz, Yehuda Lindell,做一些筆記供自己回憶,如有錯誤請指正。整理成一個系列現代密碼學,方便檢索。

《現代密碼學》第一章所介紹的古典密碼,全都已經被破解了,而2.1節介紹了具有完美隱藏性的密碼方案的定義。了解完美隱藏性后,《現代密碼學》在2.2、2.3節向我們介紹了一種具有完美隱藏性的密碼方案One-Time Pad,進而引出這樣的密碼方案不可避免的缺點,并嚴格證明這些缺點是所有具有完美隱藏性的密碼方案不可避免的。

One-Time Pad密碼方案

定義

給定一個正整數lll明文空間、密鑰空間、密文空間都是{0,1}l\{0,1\}^l{0,1}l,長度為lll的01串。
GenGenGen:從密鑰空間K={0,1}l\mathcal{K}=\{0,1\}^lK={0,1}l中均勻隨機取出一個字符串作為密鑰kkk,每一個的概率都是2?l2^{-l}2?l
EncEncEnc:對于明文m∈{0,1}lm\in \{0,1\}^lm{0,1}l,用密鑰k∈{0,1}lk\in \{0,1\}^lk{0,1}l加密,得到密文c:=k?mc:=k\bigoplus mc:=k?m
DecDecDec:對于密文c∈{0,1}lc\in \{0,1\}^lc{0,1}l,用密鑰k∈{0,1}lk\in \{0,1\}^lk{0,1}l解密,得到明文m:=k?cm:=k\bigoplus cm:=k?c

正確性/correctness

易證:Dec(Enck(m))=Dec(k?m)=k?k?m=mDec(Enc_k(m))=Dec(k\bigoplus m)=k\bigoplus k\bigoplus m=mDec(Enck?(m))=Dec(k?m)=k?k?m=m
(因為k?k=0lk\bigoplus k=0^lk?k=0l0l?m=m0^l\bigoplus m=m0l?m=m,異或是相同為0,不同為1)

完美隱藏性/perfectly secret

要證Pr[M=m∣C=c]=Pr[M=m]Pr[M=m|C=c]=Pr[M=m]Pr[M=mC=c]=Pr[M=m]

  • Pr[M=m∣C=c]=Pr[C=c∣M=m]?Pr[M=m]Pr[C=c]Pr[M=m|C=c]=\frac{Pr[C=c|M=m]\cdot Pr[M=m]}{Pr[C=c]}Pr[M=mC=c]=Pr[C=c]Pr[C=cM=m]?Pr[M=m]?
  • Pr[C=c∣M=m]=Pr[Enck(m)=c]=Pr[k?m=c]=Pr[k=m?c]=2?lPr[C=c|M=m]=Pr[Enc_k(m)=c]=Pr[k\bigoplus m=c]=Pr[k=m\bigoplus c]=2^{-l}Pr[C=cM=m]=Pr[Enck?(m)=c]=Pr[k?m=c]=Pr[k=m?c]=2?l
    →Pr[C=c]=∑m∈MPr[C=c∣M=m]?Pr[M=m]=∑m∈M2?l?Pr[M=m]=2?l\rightarrow Pr[C=c]=\sum_{m\in \mathcal{M}}Pr[C=c|M=m]\cdot Pr[M=m]=\sum_{m\in \mathcal{M}}2^{-l}\cdot Pr[M=m]=2^{-l}Pr[C=c]=mM?Pr[C=cM=m]?Pr[M=m]=mM?2?l?Pr[M=m]=2?l
    →Pr[M=m∣C=c]=2?l?Pr[M=m]2?l=Pr[M=m]\rightarrow Pr[M=m|C=c]=\frac{2^{-l}\cdot Pr[M=m]}{2^{-l}}=Pr[M=m]Pr[M=mC=c]=2?l2?l?Pr[M=m]?=Pr[M=m]

具有完美隱藏性的密碼方案的共同缺點

特例缺點

通過一個特例:One-Time Pad,可以看出它的缺點主要有兩個:

  • 密鑰需要和明文一樣長,很難保存這么長的密鑰,且在知道明文前無法確定密鑰長度。
  • 一個密鑰只能用一次,如果用兩次,則有
    c1=k?m1,c2=k?m2c_1=k\bigoplus m_1,c_2=k\bigoplus m_2c1?=k?m1?,c2?=k?m2?
    →c1?c2=m1?m2\rightarrow c_1\bigoplus c_2=m_1\bigoplus m_2c1??c2?=m1??m2?,這樣會泄露部分信息。

共同缺點

要有密鑰空間∣K∣≥|\mathcal{K}|\geK明文空間∣M∣|\mathcal{M}|M,才是具有完美隱藏性的密碼方案。

證明:反證法,假設密鑰空間K<\mathcal{K}<K<明文空間M\mathcal{M}M。

  • M(c)\mathcal{M}(c)M(c)表示密文ccc解密后得到的明文,由于密鑰kkk不確定,所以這是一個明文集合:M(c)={m∣m=Deck(c)\mathcal{M}(c)=\{m|m=Dec_k(c)M(c)={mm=Deck?(c) for k∈K}k\in \mathcal{K}\}kK}
    由于Deck()Dec_k()Deck?()是確定性函數,即對于一個密鑰kkk,解密的明文結果只可能是一個確定的明文mmm。那么?c∈C,∣M(c)∣≤∣K∣\forall c\in \mathcal{C},| \mathcal{M}(c) |\le |\mathcal{K}|?cCM(c)K
  • 因為∣K∣<∣M∣|\mathcal{K}|<|\mathcal{M}|K<M,那么?m′∈M,m′?M(c)\exists m' \in \mathcal{M},m'\notin \mathcal{M}(c)?mMm/?M(c)
  • 那么Pr[M=m′∣C=c]=0≠Pr[M=m′]Pr[M=m'|C=c]=0\neq Pr[M=m']Pr[M=mC=c]=0?=Pr[M=m]

總結

以上是生活随笔為你收集整理的现代密码学2.2、2.3--由“一次一密”引出具有完美安全的密码方案共同缺点的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。