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