最近在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是均匀变量,得证。
这是下一篇文章的地址。