现代密码学2.4--香农定理/Shannon Theorem:完美安全的充分必要条件
現(xiàn)代密碼學(xué)2.4--香農(nóng)定理/Shannon Theorem:完美安全的充分必要條件
- 香農(nóng)定理/Shannon Theorem
博主正在學(xué)習(xí)INTRODUCTION TO MODERN CRYPTOGRAPHY (Second Edition) --Jonathan Katz, Yehuda Lindell,做一些筆記供自己回憶,如有錯(cuò)誤請(qǐng)指正。整理成一個(gè)系列現(xiàn)代密碼學(xué),方便檢索。
《現(xiàn)代密碼學(xué)》第一章所介紹的古典密碼全都已經(jīng)被破解了,而2.1節(jié)介紹了完美安全的定義,在2.2、2.3節(jié)向我們介紹了一次一密以及具有完美安全的密碼方案的共同缺點(diǎn),第2.4節(jié)將介紹具有完美安全的密碼方案的充分必要條件,也就是香農(nóng)定理/Shannon Theorem。
香農(nóng)定理/Shannon Theorem
- 因?yàn)樵谝淮我幻芤约熬哂型昝腊踩拿艽a方案的共同缺點(diǎn)中已經(jīng)證明過:滿足完美安全的密碼方案必有密鑰空間∣K∣≥∣M∣|\mathcal{K}|\ge|\mathcal{M}|∣K∣≥∣M∣;
- 因?yàn)閺拿魑目臻gM\mathcal{M}M映射到密文空間C\mathcal{C}C的加密算法一定是一種單射函數(shù),也就是不能有兩個(gè)明文m,m′m,m'm,m′映射到同一個(gè)密文ccc的情況出現(xiàn)(如果出現(xiàn)這種情況,那密文ccc可能會(huì)解密得到明文mmm或m′m'm′,不滿足解密的確定性),那么密文空間∣C∣≥|\mathcal{C}|\ge∣C∣≥明文空間∣M∣|\mathcal{M}|∣M∣;
綜合以上,我們認(rèn)為滿足完美安全的密碼方案總是有∣K∣≥∣M∣|\mathcal{K}|\ge|\mathcal{M}|∣K∣≥∣M∣,∣C∣≤∣M∣|\mathcal{C}|\le|\mathcal{M}|∣C∣≤∣M∣。現(xiàn)在假設(shè)∣K∣=∣M∣=∣C∣|\mathcal{K}|=|\mathcal{M}|=|\mathcal{C}|∣K∣=∣M∣=∣C∣,某種意義上這是一種最優(yōu)解的情況,在這種情況下滿足完美安全的密碼方案的充分必要條件。
有兩個(gè)條件:
- (1) 密鑰空間K\mathcal{K}K中的每個(gè)密鑰kkk是靠生成密鑰算法GenGenGen等概率選擇的,每一個(gè)密鑰kkk被選擇的概率都是1/∣K∣1/|\mathcal{K}|1/∣K∣;
- (2) 對(duì)于每個(gè)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。
證明:
- 充分性:即證以上兩個(gè)條件可推出完美安全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]
- 必要性:即證完美安全可推出兩個(gè)條件。
- 首先證明條件(2)一定滿足:根據(jù)完美安全要求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。
- 那我們可以假設(shè)對(duì)于明文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?;
- 現(xiàn)在證明Ki\mathcal{K}_iKi?與Kj\mathcal{K}_jKj?不相交。假設(shè)相交,則有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,這不滿足解密的確定性,產(chǎn)生矛盾,故Ki∩Kj=?\mathcal{K}_i\cap \mathcal{K}_j=\emptyKi?∩Kj?=?;
- 現(xiàn)在證明每個(gè)Ki\mathcal{K}_iKi?中只有一個(gè)密鑰kkk。因?yàn)槲覀冏C明充分必要條件之前已經(jīng)假設(shè),∣K∣=∣M∣|\mathcal{K}|=|\mathcal{M}|∣K∣=∣M∣,又因?yàn)閷?duì)于每個(gè)mi∈Mm_i\in\mathcal{M}mi?∈M,都有一個(gè)對(duì)應(yīng)的密鑰空間Ki\mathcal{K}_iKi?,而這些密鑰空間Ki\mathcal{K}_iKi?都不相交,則總密鑰空間K=∪Ki=∑Ki\mathcal{K}=\cup\mathcal{K}_i=\sum \mathcal{K}_iK=∪Ki?=∑Ki?。所以只有每個(gè)∣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。
- 現(xiàn)在證明條件(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)一定滿足:根據(jù)完美安全要求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。
總結(jié)
以上是生活随笔為你收集整理的现代密码学2.4--香农定理/Shannon Theorem:完美安全的充分必要条件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 现代密码学3.1--定义计算安全的两种方
- 下一篇: 现代密码学3.3--伪随机生成器/PRG