对称加密算法
对称加密:加密和解密使用同一个密钥
DES:Data Encryption Standard,56bits
3DES:
AES:Advanced (128, 192, 256bits)
Blowfish,Twofish
IDEA,RC6,CAST5
特性:
1.加密,解密使用同一个密钥,效率高
2.将原始数据分割成固定大小的块,逐个进行加密
缺陷:
1.密钥过多
2.密钥分发
3.数据来源无法确认
非对称加密算法:
非对称加密:需要两个密钥,公钥和私钥
公钥:公开给所有人
私钥:自己留存,必须保证其私密性
特点:用公钥加密数据,只能使用与之配对的私钥解密;反之亦然
缺陷高:密钥长,加密解密效率低下
算法:
RSA(加密,数字签名),DSA(数字签名),ELGamal
工作原理:
1.A向B发送信息,A和B都要产生一对用于加密和解密的公钥和私钥
2.A的私钥保密,A的公钥告诉B,B的私钥保密,B的公钥告诉A、
3.A要给B发送信息时,A用B的公钥加密信息,因为A知道B 的公钥
4.A将这个消息发给B,(已经用B的公钥加密消息)
5.B收到这个消息后,B用自己的私钥解密A的消息,其他所有收到这个报文的人都无法解密,因为只有B才有B 的私钥。
----如果用公钥把数据加密了,只能用对应的私钥解密
哈希算法(单向散列)得到的结果叫摘要,特性是数据不同摘要不同,光拿到摘要是不可逆推出数据本身的,并且哈希算法如果是某一种固定的哈希算法,摘要长度是固定的。md5是哈希算法长度是128位。哈希算法的功能是实现数据的完整性
数据不变 摘要也是固定不变 ,好处是将来监控某个文件的变化就可以把他存放到专门的文件里。和现有的存放的早期的md5文件比比,
md5sum /etc/passwd //md5sum可以同时保存多个文件 md5sum /etc/passwd /etc/passwd>md5.log
md5sum --check md5.log //check :检查此文件里面记录的哈希值和现有文件的哈希值 比对,一样是ok不一样会提示
--check = -c
sha1sum /etc/fstab 也可以 --内容一样哈希值也一样
数字证书的工作过程
原文通过哈希算法(md5)得到摘要1,用A的私钥来加密叫2数字签名,然后把原文和签名作为一个整体再用B的公钥3加密成了密文然后发送。发送给对方之后,对方需要验证数据来源,确认数据只能自己解密。解密是使用B的私钥解密得到原文和签名再使用相同的哈希算法把原文做一下哈希运算得到128位的摘要值,数字签名是128的摘要用A的私钥加密得到的,所以解密数字签名只能用A的公钥解密得到摘要,比较摘要,如果一致,则原文没有被篡改
Pb{data+Sa{hash(data)}}
Sb
data+Sa{hash(data)}
Pa
hash(data)=data2
实现 两个功能 1.安全 2.确认数据来源
数字证书这个过程中还存在着问题 因为原文使用了公钥加密,如果原文数据量大的话会导致效率很低下,那么如何解决这个问题,我们可以使用哈希算法,非对称密钥和对称密钥三个算法组合起来使用解决这个问题。
原文使用哈希算法得到摘要并追加到数据的后面并用A的私钥进行加密,因为摘要数据量不大使用私钥加密不会影响效率,然后在数据的后面增加私钥签名过的数据data+Sa{hash(data)},然后把整个数据用对称密钥加密(对称密钥适合加密大量数据)Key[data+Sa{hash(data)}]。然后接着用B的公钥加密Key。Key[data+Sa{hash(data)}]+Pb(key)