密码学——笔记1
1.何为密码学
密码学是研究编制密码和破译密码的技术科学。研究密码变化的客观规律,应用于编制密码以保守通信秘密的,称为编码学;应用于破译密码以获取通信情报的,称为破译学,总称密码学。
2.密码学的应用
安全多方计算、私有外包计算、零知识证明
(1)安全多方计算

这里我们可以举例,一个选票系统,每个人将选举结果投入到一个代理方,选举员的信息代理方都知道,最后公布结果由代理方发布,假如代理方出现违约,则会出现信息不安全的问题。有没有更好的一个办法呢。

我们可以取消代理方,又人员直接共同商议最后发布结果
(2)私有外包计算

假如有一个用户发送数据到服务端,数据进行加密,但是服务端并不需要知道消息的内容就可以返回用户想要的结果
(3)零知识证明
3.密码学的核心
-
1.安全密钥的建立
-
2.共享密钥,安全的通信

假如有A和B用户,A用户和B用户是怎么进行信息交流
1.用户A得到密钥通过加密算法将信息进行加密
E(k,m)=C E:加密算法 k:密钥 m:信息 c:密文
2.用户B得到密钥将密文进行解密
D(k,c)=m D:解密算法
每个密钥只加密一个信息称为一次密钥
例子:加密电子邮件,一个电子邮件对应一个密钥
一个密钥加密多个信息(多次密钥)
例子:加密文件系统里的文件,同一密钥加密不同的文件
4.学习几种密码类型
(1)替换式密码(凯撒加密)
k={a->d,b->e,c->f....y->b,z->c)
E(k,"ac")="df"
D(k,"df")="ac"
尝试破解
1.密钥空间的大小
26个字母则有26!~2^88种排序规则,所以随机替换一个密钥需要88位
2.使用字母出现的频率来破解
在所有文献中,E字母出现的次数最多,假设在一篇密文中,T出现的次数最多,我们可以猜测E->T,同理再查找第二出现频率最高的字母,依次查询,如果出现连个字母出现次数差不多的情况,可以使用字母配对的方法。
(2)VIgener加密
k=CRYPTO/CRYPTO?CRYPTO
m=WHATAANICEDAYTODAT(多么好的一个天气)
c=ZZZJUCLUDTUNWGCQS
假如设置一个6位长度的密钥,现在我们发送一条消息,通过Vigener加密,得到c,c=(k+m)/26
尝试破解
假如我们知道密钥的长度是6,通过字母出现的频率尝试
我们将密文里面的字母6个分开,Z=W+3位 L=I=3位 W=T+3位
最常见的字母为E,假设一个密文中最常见的字母是H,那么H就是由E加密过来的,则密钥的第一位就是H-E=C
(3)Enigma密码
轴轮机
(4)Des
(5)AES
5.概率分布
1.均匀分布
U={0,1}^n ,P(x)=1/|U|
即00=1/4,01=1/4,10=1/4,11=1/4
2.点分布
P(x0)=1,任意X!=X0,P(X)=0
事件
U={0,1}^8,|U|=256,A={all x in U such that lsb2(X)=11},求Pr[A]=1/4
解:xxxxxx11=26/28=1/4
Pr[A1并A]<=Pr[A1]+Pr[A2]
3.随机变量
X:{0,1}^n->{0,1};x(y)=lsb(y)in(0,1)
解:Pr[x=0]=1/2,Pr[x=1]=1/2
U={0,1}^2 and r<-U ,x=lab(r),y=mab(r)
解:Pr[X=0andY=0]=Pr[r=00]=1/4
4.异或
X={0,0,1,1}
Y={0,1,0,1}
X异或Y={0,1,1,0}
性质:如果Y是一个随机值{0,1}n,X是均匀分布{0,1}n,Z=X异或Y,则Z也是均匀分布的
例:Y|P=[{0,P0},{1,P1}]
X|P=[{0,1/2},{1,1/2}]
求Z=X异或Y
解:XY|P=[{00,P0/2},{01,P0/2},{10,P1/2},{11,P1/2}]
则Pr[Z=0]=Pr(X,y)=(0,0) or (x,y)=(1,1)]=P0/2+P1/2=1/2
同理:Pr[Z=1]=1/2,即Z是均匀分布的