琐碎的学习——关于数据加密模型

 

首先介绍数据加密算法(Data Encryption Algorithm,DEA),它属于对称密钥密码体制.

 

DES是一种分组密钥,加密前先对整个明文分组,每个分组64位长的二进制。然后对每个64位二进制加密处理,产生一组64位密文,最后将所有密文拼接起来就是整个密文。使用的密钥是64位(实际密钥长56位,有8位用于奇偶校验)

DES的保密性仅取决于对密钥的保密,算法是公开的,DES加密算法足够复杂而且计算量大,而破解des只能靠穷举密钥的方法。由于现在计算能力已经突飞猛进,标准的DES已经不够用了,后来出现了IDEA加密算法以及三重DES加密算法。

 

加密模型大致如下:(k密钥,E加密算法,D解密算法)

 

A明文X -> 计算密文Y=Ek(X) -> Internet -> 解密明文X=Dk(Y) -> B获取明文X

 

这是典型的对称密钥密码体制,另外还有个公钥密码体制,后者的产生有下面几个原因

 

1,对称密钥密码体制的密钥分配问题(需要高度安全的分配中心)

2,对数字签名的需求

3,对称密钥密码体制中,如果通信参与者有n个,则需要n(n-1)个对称密钥,密钥数量比较大

 

公钥密码体制中,加密密钥PK(public key)是向公众开放,解密密钥SK(secret key)是需要保密的,加密算法E和解密算法D都是公开的。

通讯流程如下:

1,密钥对产生器产生接受者B的一堆密钥:加密密钥PKb以及解密密钥SKb

2,发送者A用PKb对明文X加密,Epkb(X) -> 密文Y

3,接受者B用SKb对密文Y解密,Dskb(Y) -> 明文X

注意:

a,虽然计算机可以容易产生成对的PKb和SKb,但从已知的PKb不能推导出SKb,从PKb到SKb“计算上不可能”

b,虽然公钥PKb可用于加密,但不能用来解密Dpkb(Epkb(X))!=X

c,先后对X进行D运算和E运算或进行E运算和D运算结果一样Epkb(Dskb(X))=Dskb(Epkb(X))=X

任何加密方法的安全性取决于密钥的长度以及攻破密文所需的计算量,由于公钥加密算法开销大,传统加密算法也是不可或缺的。

 

数字签名必须保证能实现下面三点功能

1,报文鉴别——接受者能核实发送者对报文的签名,不是伪造的签名

2,报文完整性——收到的数据和发送的数据一样,未被篡改

3,不可否认——发送者事后不能抵赖对报文的签名

现有多种数字签名的方法,采用公钥算法比采用对称密钥算法更容易实现。

 

A明文X -> Y=Dska(X) -> Internet -> X=Epka(Y) -> B获取明文X

 

1,除A外没有人拥有SKa,所以没人能产生Dska(X)——实现报文鉴别

2,其他人篡改报文后不能用SKa加密,B拿到的是不可读明文,知道被篡改过——报文完整性

3,若A抵赖未发送报文,则B可以把X和Dska(X)出示给公证人,后者可以用PKa证实A发送X给B——不可否认

 

上面只是对报文签名,并未加密,下面方法可以同时做到签名和加密

A明文X -> Y=Epkb(Dska(X)) -> Internet -> X=Epka(Dskb(Y)) -> B获取明文X

你可能感兴趣的:(数据加密模型)