现代密码学2.4--香农定理/Shannon Theorem:完美安全的充分必要条件
生活随笔
收集整理的這篇文章主要介紹了
现代密码学2.4--香农定理/Shannon Theorem:完美安全的充分必要条件
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
現代密碼學2.4--香農定理/Shannon Theorem:完美安全的充分必要條件
- 香農定理/Shannon Theorem
博主正在學習INTRODUCTION TO MODERN CRYPTOGRAPHY (Second Edition) --Jonathan Katz, Yehuda Lindell,做一些筆記供自己回憶,如有錯誤請指正。整理成一個系列現代密碼學,方便檢索。
《現代密碼學》第一章所介紹的古典密碼全都已經被破解了,而2.1節介紹了完美安全的定義,在2.2、2.3節向我們介紹了一次一密以及具有完美安全的密碼方案的共同缺點,第2.4節將介紹具有完美安全的密碼方案的充分必要條件,也就是香農定理/Shannon Theorem。
香農定理/Shannon Theorem
- 因為在一次一密以及具有完美安全的密碼方案的共同缺點中已經證明過:滿足完美安全的密碼方案必有密鑰空間∣K∣≥∣M∣|\mathcal{K}|\ge|\mathcal{M}|∣K∣≥∣M∣;
- 因為從明文空間M\mathcal{M}M映射到密文空間C\mathcal{C}C的加密算法一定是一種單射函數,也就是不能有兩個明文m,m′m,m'm,m′映射到同一個密文ccc的情況出現(如果出現這種情況,那密文ccc可能會解密得到明文mmm或m′m'm′,不滿足解密的確定性),那么密文空間∣C∣≥|\mathcal{C}|\ge∣C∣≥明文空間∣M∣|\mathcal{M}|∣M∣;
綜合以上,我們認為滿足完美安全的密碼方案總是有∣K∣≥∣M∣|\mathcal{K}|\ge|\mathcal{M}|∣K∣≥∣M∣,∣C∣≤∣M∣|\mathcal{C}|\le|\mathcal{M}|∣C∣≤∣M∣。現在假設∣K∣=∣M∣=∣C∣|\mathcal{K}|=|\mathcal{M}|=|\mathcal{C}|∣K∣=∣M∣=∣C∣,某種意義上這是一種最優解的情況,在這種情況下滿足完美安全的密碼方案的充分必要條件。
有兩個條件:
- (1) 密鑰空間K\mathcal{K}K中的每個密鑰kkk是靠生成密鑰算法GenGenGen等概率選擇的,每一個密鑰kkk被選擇的概率都是1/∣K∣1/|\mathcal{K}|1/∣K∣;
- (2) 對于每個m∈Mm\in \mathcal{M}m∈M,c∈Cc\in \mathcal{C}c∈C,存在唯一的密鑰k∈Kk\in \mathcal{K}k∈K使得Enck(m)=cEnc_k(m)=cEnck?(m)=c。
證明:
- 充分性:即證以上兩個條件可推出完美安全Pr[M=m∣C=c]=Pr[M=m]Pr[M=m|C=c]=Pr[M=m]Pr[M=m∣C=c]=Pr[M=m]。
- 由條件(2)得Pr[C=c∣M=m]=Pr[K=k]Pr[C=c|M=m]=Pr[K=k]Pr[C=c∣M=m]=Pr[K=k],由條件(1)得Pr[K=k]=1/∣K∣Pr[K=k]=1/|\mathcal{K}|Pr[K=k]=1/∣K∣,故Pr[C=c∣M=m]=Pr[K=k]=1/∣K∣Pr[C=c|M=m]=Pr[K=k]=1/|\mathcal{K}|Pr[C=c∣M=m]=Pr[K=k]=1/∣K∣
- →Pr[C=c]=∑m∈MPr[EncK(m)=c]?Pr[M=m]=1/∣K?∑m∈MPr[M=m]=1/∣K∣\rightarrow Pr[C=c]=\sum_{m\in \mathcal{M}}Pr[Enc_K(m)=c]\cdot Pr[M=m]=1/|\mathcal{K}\cdot \sum_{m\in \mathcal{M}}Pr[M=m]=1/|\mathcal{K}|→Pr[C=c]=∑m∈M?Pr[EncK?(m)=c]?Pr[M=m]=1/∣K?∑m∈M?Pr[M=m]=1/∣K∣
- →Pr[M=m∣C=c]=Pr[C=c∣M=m]?Pr[M=m]Pr[C=c]=Pr[EncK(m)=c]?Pr[M=m]Pr[C=c]=1/∣K∣?Pr[M=m]1/∣K∣=Pr[M=m]\rightarrow Pr[M=m|C=c]=\frac{Pr[C=c|M=m]\cdot Pr[M=m]}{Pr[C=c]}=\frac{Pr[Enc_K(m)=c]\cdot Pr[M=m]}{Pr[C=c]}=\frac{1/|\mathcal{K}|\cdot Pr[M=m]}{1/|\mathcal{K}|}=Pr[M=m]→Pr[M=m∣C=c]=Pr[C=c]Pr[C=c∣M=m]?Pr[M=m]?=Pr[C=c]Pr[EncK?(m)=c]?Pr[M=m]?=1/∣K∣1/∣K∣?Pr[M=m]?=Pr[M=m]
- 必要性:即證完美安全可推出兩個條件。
- 首先證明條件(2)一定滿足:根據完美安全要求Pr[EncK(m)=c]=Pr[EncK(m′)=c],?m,m′∈MPr[Enc_K(m)=c]=Pr[Enc_K(m')=c],\forall m,m'\in \mathcal{M}Pr[EncK?(m)=c]=Pr[EncK?(m′)=c],?m,m′∈M,也就是任何明文都有可能加密得到密文ccc,那么Pr[EncK(m)=c]>0,?m∈MPr[Enc_K(m)=c]>0,\forall m\in \mathcal{M}Pr[EncK?(m)=c]>0,?m∈M。
- 那我們可以假設對于明文mi∈Mm_i\in \mathcal{M}mi?∈M加密得到密文ccc的密鑰空間是Ki∈K\mathcal{K}_i\in \mathcal{K}Ki?∈K,也就是Enck(mi)=c,?k∈KiEnc_k(m_i)=c,\forall k\in \mathcal{K}_iEnck?(mi?)=c,?k∈Ki?;
- 現在證明Ki\mathcal{K}_iKi?與Kj\mathcal{K}_jKj?不相交。假設相交,則有k∈Kik\in \mathcal{K}_ik∈Ki?,k∈Kik\in \mathcal{K}_ik∈Ki?,那么Enck(mi)=cEnc_k(m_i)=cEnck?(mi?)=c,Enck(mj)=cEnc_k(m_j)=cEnck?(mj?)=c,這不滿足解密的確定性,產生矛盾,故Ki∩Kj=?\mathcal{K}_i\cap \mathcal{K}_j=\emptyKi?∩Kj?=?;
- 現在證明每個Ki\mathcal{K}_iKi?中只有一個密鑰kkk。因為我們證明充分必要條件之前已經假設,∣K∣=∣M∣|\mathcal{K}|=|\mathcal{M}|∣K∣=∣M∣,又因為對于每個mi∈Mm_i\in\mathcal{M}mi?∈M,都有一個對應的密鑰空間Ki\mathcal{K}_iKi?,而這些密鑰空間Ki\mathcal{K}_iKi?都不相交,則總密鑰空間K=∪Ki=∑Ki\mathcal{K}=\cup\mathcal{K}_i=\sum \mathcal{K}_iK=∪Ki?=∑Ki?。所以只有每個∣Ki∣=1|\mathcal{K}_i|=1∣Ki?∣=1,才有∣K∣=∣M∣|\mathcal{K}|=|\mathcal{M}|∣K∣=∣M∣,那么推出條件(2):存在唯一的密鑰k∈Kk\in \mathcal{K}k∈K使得Enck(m)=cEnc_k(m)=cEnck?(m)=c。
- 現在證明條件(1)一定滿足:
- 由條件(2)得:Pr[K=ki]=Pr[EncK(mi)=c]Pr[K=k_i]=Pr[Enc_K(m_i)=c]Pr[K=ki?]=Pr[EncK?(mi?)=c]
- 由完美安全定義得:Pr[EncK(mi)=c]=Pr[EncK(mj)=c]Pr[Enc_K(m_i)=c]=Pr[Enc_K(m_j)=c]Pr[EncK?(mi?)=c]=Pr[EncK?(mj?)=c]
- 那么有Pr[K=ki]=Pr[EncK(mi)=c]=Pr[EncK(mj)=c]=Pr[K=kj]Pr[K=k_i]=Pr[Enc_K(m_i)=c]=Pr[Enc_K(m_j)=c]=Pr[K=k_j]Pr[K=ki?]=Pr[EncK?(mi?)=c]=Pr[EncK?(mj?)=c]=Pr[K=kj?],即所有密鑰ki∈Kk_i\in \mathcal{K}ki?∈K是等概率生成的。
- 首先證明條件(2)一定滿足:根據完美安全要求Pr[EncK(m)=c]=Pr[EncK(m′)=c],?m,m′∈MPr[Enc_K(m)=c]=Pr[Enc_K(m')=c],\forall m,m'\in \mathcal{M}Pr[EncK?(m)=c]=Pr[EncK?(m′)=c],?m,m′∈M,也就是任何明文都有可能加密得到密文ccc,那么Pr[EncK(m)=c]>0,?m∈MPr[Enc_K(m)=c]>0,\forall m\in \mathcal{M}Pr[EncK?(m)=c]>0,?m∈M。
總結
以上是生活随笔為你收集整理的现代密码学2.4--香农定理/Shannon Theorem:完美安全的充分必要条件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 现代密码学3.1--定义计算安全的两种方
- 下一篇: 现代密码学3.3--伪随机生成器/PRG