Coursera - Dan Boneh - Cryptography 1 - Week 1 - Stream Ciphers 1 學習筆記【3】

承接上一篇文章

1.對稱密碼(Symmetric Ciphers)

首先我們給出密碼(cipher)的定義:

1.1.密碼(Cipher)

定義:密碼包括了三個集合(K,M,C)(\mathcal{K},\mathcal{M},\mathcal{C}),以及在三個集合上的兩個“有效的”算法(E,D)(E,D),其中:
K\mathcal{K}:表示密鑰的集合(即密鑰能取到的值);
M\mathcal{M}:表示明文的集合;
C\mathcal{C}:表示密文的集合;
EE:加密函數,表示密鑰集合和明文集合到密文集合的映射:E:K×MCE:\mathcal{K}\times\mathcal{M}\rightarrow\mathcal{C};
DD:解密函數,表示密鑰集合和密文集合到明文集合的映射:D:K×CMD:\mathcal{K}\times\mathcal{C}\rightarrow\mathcal{M}

Mark

  1. 密碼定義了五個元素,包括了三個集合和兩個函數,密碼學由此展開。
  2. “有效的”:在實踐中,可以理解爲能在規定的時間(如1分鐘)內得到結果;在理論中,可以理解爲多項式時間複雜度。
  3. 一般來說,EE隨機的;DD是確定性的。

1.2.對稱密碼

對稱密碼是在密碼(五個元素)的基礎上定義的,多了一個條件:
s.t. mM,kK:D(k,E(k,m))=m,s.t.\ \forall m\in\mathcal{M},k\in\mathcal{K}:D(k,E(k,m))=m,
即,對明文mm加密後,可以重新恢復到明文mm(二戰以前的加密都是這樣的)。

2.一次一密(One Time Pad,OTP)

一次一密,即每個明文mm都重新生成一個密鑰kk
一個簡單的例子(也是對稱密碼的例子):
K=M=C={0,1}n,\mathcal{K}=\mathcal{M}=\mathcal{C}=\{0, 1\}^{n},
加密函數:c=E(k,m)=kmc=E(k,m)=k\oplus m,(\oplus表示異或)
解密函數:D(k,c)=kc.D(k,c)=k\oplus c.

現在我們來驗證一次一密是對稱密碼:mM,kK\forall m\in\mathcal{M},k\in\mathcal{K},有D(k,c)=D(k,E(k,m))=D(k,km)=k(km)=(kk)m=0m=m.D(k,c)=D(k,E(k,m))=D(k,k\oplus m)=k\oplus(k\oplus m)=(k\oplus k)\oplus m=0\oplus m=m.
即,上述的例子是對稱密碼。

3.完全保密(Perfect Secrecy)

想要讓加密儘可能地不被破解,那麼一個很基礎的想法是知道了密文cc,推斷不出明文mm的任何信息。

3.1.定義

香農Shannon在1949年提出的完全保密(perfect secrecy)也是基於這個思想:

定義:如果對於一個密碼有 m0,m1M\forall\ m_0,m_1\in\mathcal{M},滿足len(m0)=len(m1)len(m_0)=len(m_1) cC\forall\ c\in\mathcal{C},滿足Pr[E(k,m0)=c]=Pr[E(k,m1)=c],Pr[E(k,m_0)=c]=Pr[E(k,m_1)=c],
其中kk是從K\mathcal{K}均勻抽樣得到(即,kRKk\stackrel{R}{\leftarrow}\mathcal{K}),
則這個密碼是完全保密

mark

  1. 均勻抽樣:表示每個元素都以1K\frac{1}{\mathcal{K}}的概率抽取;
  2. len(m)len(m)表示明文mm的長度;
  3. 任意兩個明文m0,m1m_0,m_1在同一個密鑰kk加密下輸出任意一個密文cc的概率相同,即已知密文cc不能區分出明文是m0m_0還是m1m_1,即從密文cc中學習不到任何明文的知識,即僅僅已經密文的攻擊是無效的(當然還有其他攻擊是有效的)!

一次一密(One Time Pad)中密文的長度是等於明文的,很難用於實際,但是它的思想非常重要!

3.2.一個不幸的消息

香農Shannon證明了如下定理:

定理:完全保密 KM.\Rightarrow |\mathcal{K}|\geq|\mathcal{M}|.

Mark:如果一個密碼是完全保密的,那麼密文的長度必須要大於等於明文的!這導致了完全保密無法在實際中使用。假設Alice和Bob要通信,在通信之前他們要共享密鑰kk,才能”安全“地傳輸信息mm,注意他們也必須要“安全”地共享密鑰kk。既然已經能“安全”地共享密鑰kk了,因爲密鑰kk的長度是大於等於明文的,所以他們完全可以通過“安全”共享密鑰的方式“安全”地傳輸明文mm,那麼kk就沒什麼價值了。

3.3.一個完全保密的例子

第一篇博客提到的定理是一個很好的完全保密的例子。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章