加密方案: 因素: 加密算法和协议: 加密密钥:
加密算法和协议: 对称加密算法: 主流的加密算法: 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.接收方在收到数据报文之后,先用自己的私钥解密对称加密算法的密钥,然后用发送方的公钥解密被加密的特征值,以证明数据来源可靠,再利用相同的加密单向加密算法计算数据的特征值,比较两个特征值,以证明数据完整性;再用对称密钥解密加密的数据即可;