网络通信时用到的加密方法及其原理

 1.    单向加密:one-way hash,(作用:提取特征码,保证数据的完整性)

2.    非对称加密:(作用:身份验证,密钥交换)

egECBCBC

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 ~]#

 

DES3DESAESBlowfishTwofishRC6IDEACAST5

4.    openssl

openssl version –a查看版本和其他参数信息

openssl version查看版本

openssl ?查看它所支持的子命令

openssl speed测试当前主机上加密算法的速度

openssl speed type测试主机某种加密算法的速度

typeaesmd2md3md5rsades…

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.) BA的公钥打开密文,然后用对称密钥解密密文,B再用A的公钥解密hash值,hash只计算出原数据,和发过来的数据进行比较,若相同,则中间没被人修改过,传输正确。(思考:B如何获取A的公钥?)

6.对于上面提出的问题,通信双方是如何获取对方公钥的呢?假设通信双方还是AB

1.)AB此时就需要第三方认证,即:CA(认证机构,它储存有AB的公钥)

CA分别向AB颁发证书(此步骤将会在下一章节*证书*中专门介绍)

2.)ACAB的公钥,此时CA就需要确定A的身份,就需要CA颁发给A的证书。

A将颁发给自己的证书信息发给CACA得到A的证书后,后会用A的私钥加密此证书,并将此密文附加在A的证书后面,证书后并附加CA的公钥(即数字签名,防伪技术)

 3.A得到CA发送的证书和密文后,会用自己的公钥进行解密,得到的数据若和证书一致,即可确定A的身份,将B的公钥发给A

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章