網絡通信時用到的加密方法及其原理
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 –a查看版本和其他參數信息
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。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.