密码学——笔记1

2020-08-24  本文已影响0人  自学java的菜鸟小赵

1.何为密码学

密码学是研究编制密码和破译密码的技术科学。研究密码变化的客观规律,应用于编制密码以保守通信秘密的,称为编码学;应用于破译密码以获取通信情报的,称为破译学,总称密码学。

2.密码学的应用

安全多方计算、私有外包计算、零知识证明

(1)安全多方计算

image.png

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


image.png

我们可以取消代理方,又人员直接共同商议最后发布结果

(2)私有外包计算

image.png

假如有一个用户发送数据到服务端,数据进行加密,但是服务端并不需要知道消息的内容就可以返回用户想要的结果

(3)零知识证明

3.密码学的核心

image.png

假如有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是均匀分布的

上一篇下一篇

猜你喜欢

热点阅读