最近在Coursera上看Dan Boneh的Cryptography 1課程,看到一些有意思的性質,因此想着做一些筆記記錄。
介紹一些記號
首先介紹一些記號:
- {0,1}n表示長度爲n的01串,例如:n=2,有00,01,10,11四個01串。
- {0,1}n上均勻分佈的變量:例如n=2,從{0,1}n中選一個串的概率均爲41。(總共只有四個串00,01,10,11四個串。
- ⊕表示異或,異或的定義可參考百度百科。
- Pr[X=1]:表示X=1的概率。
XOR的一個重要性質
定理(Thm): Y是定義在{0,1}n上的隨機變量,X是定義在{0,1}n上獨立的、均勻分佈的變量。定義Z=X⊕Y,則Z是{0,1}n上均勻分佈的變量。
對定理的解釋:在密碼學中,如果Y是明文m,X是加密的密鑰k(每個m都取一個新的k),加密的方式爲Z=Y⊕X,即Z是密文,那麼我僅僅從密文是看不出原來的明文m是什麼,因而能保證安全性。
證明:⊕是對每一位分別求的,因此如果我們能證明某一位滿足定理,則n位就都滿足定理了。因此,我們僅考慮n=1的證明:
設Y的概率爲如下表格所示(其中p0+p1=1):
Y |
Pr |
0 |
p0 |
1 |
p1 |
X因爲是均勻變量,所以Pr[X=0]=Pr[X=1]=21,
則Y和X的概率如下表所示:
Y |
X |
Pr |
0 |
0 |
p0/2 |
0 |
1 |
p0/2 |
1 |
0 |
p1/2 |
1 |
1 |
p1/2 |
因此,
Pr[Z=0]=Pr[(X,Y)=(0,0)或者(X,Y)=(1,1)]=Pr[(X,Y)=(0,0)]+[(X,Y)=(1,1)]=p0/2+p1/2=1/2,
同理,可得Pr[Z=1]=1/2=Pr[Z=0],即Z是均勻變量,得證。
這是下一篇文章的地址。