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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

现代密码学2.1--完美安全和完美不可区分/Perfectly secret, Perfectly indistinguishable

發(fā)布時間:2025/3/21 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 现代密码学2.1--完美安全和完美不可区分/Perfectly secret, Perfectly indistinguishable 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

現(xiàn)代密碼學(xué)2.1--完美安全和完美不可區(qū)分/Perfectly secret, Perfectly indistinguishable

  • 完美安全
    • 定義
    • 定理
  • 完美不可區(qū)分
    • 實驗過程定義
    • 完美不可區(qū)分定義
    • 定理

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

《現(xiàn)代密碼學(xué)》第一章所介紹的古典密碼,全都已經(jīng)被破解了。之前由于沒有正式的定義、精確的假設(shè),無法證明一個密碼方案是否具有嚴格的安全性。在第二章第一節(jié)中,《現(xiàn)代密碼學(xué)》介紹了對抗具有無限算力的攻擊者,也能被證明是安全的密碼方案的定義,這樣的密碼方案被稱為是完美安全的;而針對攻擊者而言,密碼方案的完美不可區(qū)分是等價于完美安全的。

完美安全

定義

對于信息空間M\mathcal{M}M上的每一種概率分布,所有信息m∈Mm\in \mathcal{M}mM,所有密文c∈Cc\in \mathcal{C}cC,如果Pr[C=c]>0Pr[C=c]>0Pr[C=c]>0,都滿足Pr[M=m∣C=c]=Pr[M=m]Pr[M=m|C=c]=Pr[M=m]Pr[M=mC=c]=Pr[M=m]

也就是,密文c∈Cc\in \mathcal{C}cC不會透露任何關(guān)于明文m∈Mm \in \mathcal{M}mM的信息,完美地隱藏了關(guān)于被加密明文mmm的所有信息。

定理

如果對于?m,m′∈M,?c∈C\forall m,m'\in \mathcal{M},\forall c\in \mathcal{C}?m,mM,?cC,都有Pr[EncK(m)=c]=Pr[EncK(m′)=c]Pr[Enc_K(m)=c]=Pr[Enc_K(m')=c]Pr[EncK?(m)=c]=Pr[EncK?(m)=c],那么這個信息空間是M\mathcal{M}M的密碼方案是完美安全的。

證明:
要證明“密碼方案是完美安全的”,即證滿足“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]=0Pr[M=m]=0Pr[M=m]=0,則Pr[M=m∣C=c]Pr[M=m|C=c]Pr[M=mC=c]肯定也是0,那么有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]>0Pr[M=m]>0Pr[M=m]>0
    貝葉斯定理得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[M=m]∑m′∈MPr[C=c∣M=m′]?Pr[M=m′]=\frac{Pr[C=c|M=m]\cdot Pr[M=m]}{\sum_{m'\in \mathcal{M}}Pr[C=c|M=m']\cdot Pr[M=m']}=mM?Pr[C=cM=m]?Pr[M=m]Pr[C=cM=m]?Pr[M=m]?,(1)
    因為Pr[EncK(m)=c]=Pr[EncK(m′)=c]Pr[Enc_K(m)=c]=Pr[Enc_K(m')=c]Pr[EncK?(m)=c]=Pr[EncK?(m)=c],所以Pr[C=c∣M=m]=Pr[C=c∣M=m′]Pr[C=c|M=m]=Pr[C=c|M=m']Pr[C=cM=m]=Pr[C=cM=m]
    那么(1)式可寫為=Pr[M=m]∑m′∈MPr[M=m′]=Pr[M=m]=\frac{Pr[M=m]}{\sum_{m'\in \mathcal{M}}Pr[M=m']}=Pr[M=m]=mM?Pr[M=m]Pr[M=m]?=Pr[M=m]

完美不可區(qū)分

首先,定義某個實驗過程,在此實驗的基礎(chǔ)上,定義完美不可區(qū)分。

實驗過程定義

攻擊者A\mathcal{A}A選擇兩個明文m,m′∈Mm,m'\in \mathcal{M}m,mM,傳給加密方。加密方隨機選擇一個比特b∈{0,1}b\in \{0,1\}b{0,1},通過加密方案Π\PiΠ進行加密,得到一個密文c←Enck(mb)c\leftarrow Enc_k(m_b)cEnck?(mb?),傳回給A\mathcal{A}A。此時,攻擊者A\mathcal{A}A猜測加密方選擇的比特是b′b'b。如果b′=bb'=bb=b,那么PriKA,Πeav=1PriK_{\mathcal{A},\Pi}^{eav}=1PriKA,Πeav?=1;反之,攻擊者A\mathcal{A}A猜錯,PriKA,Πeav=0PriK_{\mathcal{A},\Pi}^{eav}=0PriKA,Πeav?=0

完美不可區(qū)分定義

如果對于所有的攻擊者A\mathcal{A}A,信息空間為M\mathcal{M}M的密碼方案Π\PiΠ都滿足Pr[PriKA,Πeav=1]=12Pr[PriK_{\mathcal{A},\Pi}^{eav}=1]=\frac{1}{2}Pr[PriKA,Πeav?=1]=21?,那么稱這種密碼方案Π\PiΠ是完美不可區(qū)分的。

也就是,對于攻擊者而言,這種密碼方案加密不同明文,效果都是一樣的。

定理

密碼方案Π\PiΠ是完美不可區(qū)分的,當(dāng)且僅當(dāng)Π\PiΠ是完美安全的。

證明:互相規(guī)約
用形式化表示,
完美安全是"Pr[M=m∣C=c]=Pr[M=m]Pr[M=m|C=c]=Pr[M=m]Pr[M=mC=c]=Pr[M=m]",
完美不可區(qū)分是"Pr[C=c∣M=m0]=Pr[C=c∣M=m1]Pr[C=c|M=m_0]=Pr[C=c|M=m_1]Pr[C=cM=m0?]=Pr[C=cM=m1?]",

  • 現(xiàn)在要證"Pr[M=m∣C=c]=Pr[M=m]Pr[M=m|C=c]=Pr[M=m]Pr[M=mC=c]=Pr[M=m]"?\leftrightarrow?"Pr[C=c∣M=m0]=Pr[C=c∣M=m1]Pr[C=c|M=m_0]=Pr[C=c|M=m_1]Pr[C=cM=m0?]=Pr[C=cM=m1?]"

  • 先證"Pr[C=c∣M=m0]=Pr[C=c∣M=m1]Pr[C=c|M=m_0]=Pr[C=c|M=m_1]Pr[C=cM=m0?]=Pr[C=cM=m1?]"?\leftrightarrow?"Pr[C=c∣M=m]=Pr[C=c]Pr[C=c|M=m]=Pr[C=c]Pr[C=cM=m]=Pr[C=c]"

    • 從左到右(特殊→\rightarrow一般):"Pr[C=c∣M=m0]=Pr[C=c∣M=m1]Pr[C=c|M=m_0]=Pr[C=c|M=m_1]Pr[C=cM=m0?]=Pr[C=cM=m1?]"→\rightarrow"Pr[C=c∣M=m]=Pr[C=c]Pr[C=c|M=m]=Pr[C=c]Pr[C=cM=m]=Pr[C=c]"
      Pr[C=c]=∑m∈MPr[C=c∣M=m]?Pr[M=m]Pr[C=c]=\sum_{m\in \mathcal{M}}Pr[C=c|M=m]\cdot Pr[M=m]Pr[C=c]=mM?Pr[C=cM=m]?Pr[M=m]
      因為Pr[C=c∣M=m0]=Pr[C=c∣M=m1]Pr[C=c|M=m_0]=Pr[C=c|M=m_1]Pr[C=cM=m0?]=Pr[C=cM=m1?]所以我們可以令Pr[C=c∣M=mi]=αPr[C=c|M=m_i]=\alphaPr[C=cM=mi?]=α,那么
      Pr[C=c]=∑m∈Mα?Pr[M=m]=α?∑m∈MPr[M=m]=αPr[C=c]=\sum_{m\in \mathcal{M}}\alpha \cdot Pr[M=m]=\alpha \cdot \sum_{m\in \mathcal{M}}Pr[M=m]=\alphaPr[C=c]=mM?α?Pr[M=m]=α?mM?Pr[M=m]=α
      Pr[C=c]=α=Pr[C=c∣M=m]Pr[C=c]=\alpha =Pr[C=c|M=m]Pr[C=c]=α=Pr[C=cM=m]
    • 從右到左(一般→\rightarrow特殊):"Pr[C=c∣M=m]=Pr[C=c]Pr[C=c|M=m]=Pr[C=c]Pr[C=cM=m]=Pr[C=c]"→\rightarrow"Pr[C=c∣M=m0]=Pr[C=c∣M=m1]Pr[C=c|M=m_0]=Pr[C=c|M=m_1]Pr[C=cM=m0?]=Pr[C=cM=m1?]"
      因為對于所有的明文信息m∈Mm\in \mathcal{M}mM,都有Pr[C=c∣M=m]=Pr[C=c]Pr[C=c|M=m]=Pr[C=c]Pr[C=cM=m]=Pr[C=c],所以Pr[C=c∣M=m0]=Pr[C=c]=Pr[C=c∣M=m1]Pr[C=c|M=m_0]=Pr[C=c]=Pr[C=c|M=m_1]Pr[C=cM=m0?]=Pr[C=c]=Pr[C=cM=m1?]
  • 再證"Pr[C=c∣M=m]=Pr[C=c]Pr[C=c|M=m]=Pr[C=c]Pr[C=cM=m]=Pr[C=c]"?\leftrightarrow?"Pr[M=m∣C=c]=Pr[M=m]Pr[M=m|C=c]=Pr[M=m]Pr[M=mC=c]=Pr[M=m]"
    Pr[C=c∣M=m]=Pr[M=m∣C=c]?Pr[C=c]Pr[M=m]=Pr[C=c]Pr[C=c|M=m]=\frac{Pr[M=m|C=c]\cdot Pr[C=c]}{Pr[M=m]}=Pr[C=c]Pr[C=cM=m]=Pr[M=m]Pr[M=mC=c]?Pr[C=c]?=Pr[C=c]
    →Pr[M=m∣C=c]Pr[M=m]=1\rightarrow \frac{Pr[M=m|C=c]}{Pr[M=m]}=1Pr[M=m]Pr[M=mC=c]?=1
    →Pr[M=m∣C=c]=Pr[M=m]\rightarrow Pr[M=m|C=c]=Pr[M=m]Pr[M=mC=c]=Pr[M=m]

總結(jié)

以上是生活随笔為你收集整理的现代密码学2.1--完美安全和完美不可区分/Perfectly secret, Perfectly indistinguishable的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。