加密方案:
因素:
加密算法和协议:
加密密钥:
加密算法和协议:
对称加密算法:
主流的加密算法:
DES:Data Encryption Standard,数据加密标准;
64bits块,加密密钥的长度56bits;
NSA:
3DES,DES3
AES:Advanced Encryption Standard,高级加密标准;
加密密钥的长度,128bits,192bits,256bits
Blowfish:
Twofish:
IDEA
RC4,RC6
CASTS
特性:
1.每对通信主机都需要保有一个唯一的通信密钥,用于加密和解密数据;
2.将原始的数据分割成固定大小的块,逐个加密;
3.加密和解密的速度非常快;
缺陷:
1.在一台主机上需要保有的密钥数量会比较多;
2.密钥的分发非常困难;
3.
公钥加密算法(非对称加密算法):
密钥是由私钥和由私钥抽取生成的公钥组成;
私钥:512bits,1024bits,2048bits,4096bits,8192bits,16384bits;
主流的公钥加密算法:
RSA:加密,数字签名;
DSA:Digital Signature Algorithm,数字签名算法;只能做数字签名;有时此算法也被称为DSS,Digital Signature Standard
Elgamal:
特性:
1.使用密钥进行加密和解密的时候,私钥加密的数据只能由与之对应的公钥才能解密;同样,使用公钥加密的数据只能由与之对应的私钥才能解密;
私钥:通过特定的工具随机创建生成,由使用者自己留存,务必保证其私密性;被称为"secret key" 或 "private key";
公钥:通过特定的工具从私钥中抽取生成,仅仅是私钥的一部分;公钥可以公开给所有人使用;被称为"public key"
2.私钥的长度都比较长,加密之后的数据安全等级较高;
缺陷:
加密数据的时候,消耗系统资源和时间都较多,速度很慢,因此,极少用来加密大量数据;
公钥加密算法的用途:
1.密钥交换:发送方使用接收方的公钥加密对称加密算法的密钥,将加密后的密钥发送给接收方;
2.数字签名:可以确保数据传输过程中发送法的身份的正确性;
单向加密算法(Hash加密算法,数据指纹算法):
只能加密不能解密,又称为"数据指纹提取";数据指纹即数据特征码;
主流的单向加密算法:
md5:Message Digest Version 5,信息摘要算法第五版;
128bits定长输出;
sha系列: Security Hash Algerithm,安全的哈希算法;
sha-1:160bits定长输出;
sha224:224bits定长输出;
sha256:
sha384:
sha512:
特性:
1.定长输出;
2.雪崩效应;
认证协议:
密钥交换算法:
1.公钥加密:
2.DH算法:Diffie-Hellman
用于在通信双方生成一对用于公钥加密算法的密钥对;
A:p, g
B:p, g
A:x
B: y
A:p^x%g --> B: (p^x%g)^y == p^xy%g
A:p^y%g --> B: (p^y%g)^x == p^xy%g
加密算法的应用:
1.通信双方互换各自的证书,并到信任的CA进行证书有效性认证;
2.如果证书认证有效,发送方就使用某种协商好的对称加密算法进行数据加密;对加密后的数据进行特征值抽取,然后再用自己的私钥加密码抽取出来的特征值,以证明数据来源可靠性;发送方利用接收方的公钥加密对称加密算法的密钥;
3.接收方在收到数据报文之后,先用自己的私钥解密对称加密算法的密钥,然后用发送方的公钥解密被加密的特征值,以证明数据来源可靠,再利用相同的加密单向加密算法计算数据的特征值,比较两个特征值,以证明数据完整性;再用对称密钥解密加密的数据即可;