1.
单向加密:
one-way hash
,(作用:提取特征码,保证数据的完整性)
2.
非对称加密:(作用:身份验证,密钥交换)
eg
:
ECB
,
CBC
3.
对称加密:加密,解密都用同种密钥。(作用:加密数据)
enc
对称加密子口令:
加密文件:
[root@station116 ~]# openssl enc -des3 -salt -a -in df -out df.des3
enter des-ede3-cbc encryption password:
Verifying - enter des-ede3-cbc encryption password:
[root@station116 ~]# ls
anaconda-ks.cfg Desktop install.log.syslog
banner df lvm1snap
banners df.des3 mbox
bin getid.sh nano- 1.3.12 -1.1.1.gls.i386.rpm
dead.letter install.log
查看加密文件,已成密文:
[root@station116 ~]# cat df.des3
U2FsdGVkX1+i3DUpGpvOwyvosgEDFsU4OJ0HmeIPtXygu/lkabZLn1Ka/HfKBWyL
DgC0S6e1lmY/n7QpUJjHTt+TBgMPLWBGw1/MB5mfGcGxGaq0bRrukM8gdSn7zDtr
hEbYskH0dGuqh5RYGonzSSLCRQHomQZVtiX2jq1vw0pBYd9wHz1ZQ1g5v7A2YhDJ
AQnlAtMKjL7cC8gUtRsRS8en7ShToXDZs5tvcn+YvqjEQA6cRcOKEhG9fgP06NvQ
JU2Kz7B0O1Mi6osiBttJZ4A9jXWzKoM1FD3R9nfnSTjOTeStvDSuI+c8f/LmjK9S
eAZeB0dpmXLubnohdiwoXiKs59aG8y+0LTBBqRZMsYxzwV2MKG/WI5L5RU11s2X5
BgMaSWlQtiyy1VEVitZcYo4+cyx8oeftB7GM3FXPCdh/mybe5ZLP0klG4CAdEgue
pxmHsBO9LerbG5GDtV7qEDh0xPa/v/hgLL/XMD9wA4QA15iV3IC+sOKX5me1v6KS
CQmnwshVNDXSmL2zHgp8OC4BP/XMucFwI8nfGHQ9U3B00fd4MADbBBkXXzD0tggx
YoUTz7Oe8WO5onzEnI2hMBEYElT0mC6H
[root@station116 ~]#
解密加密文件:
[root@station116 ~]# openssl enc -d -des3 -salt -a -in df.des3 -out df.recover
enter des-ede3-cbc decryption password:
[root@station116 ~]# ls
anaconda-ks.cfg Desktop install.log
banner df install.log.syslog
banners df.des3 lvm1snap
bin df.recover mbox
dead.letter getid.sh nano- 1.3.12 -1.1.1.gls.i386.rpm
可以看到加密文件已经被解密回来
:
[root@station116 ~]# cat df.recover
/dev/root/vg01 2.0G 680M 1.3G 36% /
/dev/home/vg01 2.0G 34M 1.9G 2% /home
/dev/tmp/vg01 1.9G 36M 1.8G 2% /tmp
/dev/usr/vg01 9.7G 2.1G 7.2G 23% /usr
/dev/sda1 114M 21M 88M 19% /boot
/dev/md5 973M 18M 906M 2% /backup
/dev/lvm1/myvol 194M 9.6M 175M 6% /share
/dev/hdc 8.9M 8.9M 0 100% /media/CDROM
[root@station116 ~]#
DES
,
3DES
,
AES
,
Blowfish
,
Twofish
,
RC6
,
IDEA
,
CAST5
4.
openssl
openssl version �Ca
查看版本和其他参数信息
openssl version
查看版本
openssl
?查看它所支持的子命令
openssl speed
测试当前主机上加密算法的速度
openssl speed type
测试主机某种加密算法的速度
type
:
aes
,
md2
,
md3
,
md5
,
rsa
,
des…
openssl ciphers
显示所有长度的加密算法。
5.
(
A
――
à
B
)
若
A
要和
B
通信,传输数据,为了保证通信的安全,需要加密数据,经过如下步骤:
1.
)对数据做
hash
计算,即提取数据的特征码。
2.
)
A
用自己的密钥对
hash
进行加密
,
假设得到
m1
,附加在数据的尾部(数据
+m1
)
3.)
生成一个临时性(有期限,为了安全)对称密钥,用此密钥加密数据及附加的
hash
(加密后的,即
m1
),得到密文,假设为
m2
(数据
+m2
)
(思考:为何不用非对称加密算法?
reason
:
加密同等数据,非对称密钥算法要比对称密钥算法的速度慢上上千倍)
4.)A
使用
B
的公钥加密此对称密钥,假设为
m3
,并附加在密文尾部。(数据
+m2+m3
)(思考:
A
如何获取
B
的公钥?)
5.
)当
B
接收到数据时,用自己的私钥解密密文
6.) B
用
A
的公钥打开密文,然后用对称密钥解密密文,
B
再用
A
的公钥解密
hash
值,
hash
只计算出原数据,和发过来的数据进行比较,若相同,则中间没被人修改过,传输正确。(思考:
B
如何获取
A
的公钥?)
6.
对于上面提出的问题,通信双方是如何获取对方公钥的呢?假设通信双方还是
A
,
B
1
.)
A
,
B
此时就需要第三方认证,即:
CA
(认证机构,它储存有
A
,
B
的公钥)
CA
分别向
A
,
B
颁发证书(此步骤将会在下一章节
*
证书
*
中专门介绍)
2.)A
向
CA
要
B
的公钥,此时
CA
就需要确定
A
的身份,就需要
CA
颁发给
A
的证书。
A
将颁发给自己的证书信息发给
CA
,
CA
得到
A
的证书后,后会用
A
的私钥加密此证书,并将此密文附加在
A
的证书后面,证书后并附加
CA
的公钥(即数字签名,防伪技术)
3.
)
A
得到
CA
发送的证书和密文后,会用自己的公钥进行解密,得到的数据若和证书一致,即可确定
A
的身份,将
B
的公钥发给
A
。