1.對稱加密算法
對稱加密:加密和解密使用同一個密鑰
DES:Data Encryption Standard徒扶,56bits
3DES:
AES:Advanced (128, 192, 256bits)
Blowfish叮贩,Twofish
IDEA量瓜,RC6贷祈,CAST5
特性:
1滓侍、加密狈醉、解密使用同一個密鑰廉油,效率高
2、將原始數(shù)據(jù)分割成固定大小的塊苗傅,逐個進(jìn)行加密
缺陷:
1抒线、密鑰過多
2、密鑰分發(fā)
3渣慕、數(shù)據(jù)來源無法確認(rèn)
2.非對稱加密算法
公鑰加密:密鑰是成對出現(xiàn)
? 公鑰:公開給所有人嘶炭;public key
? 私鑰:自己留存,必須保證其私密性逊桦;secret key
? 特點(diǎn):用公鑰加密數(shù)據(jù)眨猎,只能使用與之配對的私鑰解密;反之亦然
? 功能:
? 數(shù)字簽名:主要在于讓接收方確認(rèn)發(fā)送方身份
? 對稱密鑰交換:發(fā)送方用對方的公鑰加密一個對稱密鑰后發(fā)送給對方
? 數(shù)據(jù)加密:適合加密較小數(shù)據(jù)
? 缺點(diǎn):密鑰長强经,加密解密效率低下
? 算法:
RSA(加密睡陪,數(shù)字簽名),DSA(數(shù)字簽名),ELGamal
3.非對稱加密
(1) 基于一對公鑰/密鑰對
? 用密鑰對中的一個加密,另一個解密
(2)實現(xiàn)加密:
? 接收者
生成公鑰/密鑰對:P和S
公開公鑰P匿情,保密密鑰S
? 發(fā)送者
使用接收者的公鑰來加密消息M
將P(M)發(fā)送給接收者
? 接收者
使用密鑰S來解密:M=S(P(M))
(3)實現(xiàn)數(shù)字簽名:
? 發(fā)送者
生成公鑰/密鑰對:P和S
公開公鑰P兰迫,保密密鑰S
使用密鑰S來加密消息M
發(fā)送給接收者S(M)
? 接收者
使用發(fā)送者的公鑰來解密M=P(S(M))
? 結(jié)合簽名和加密
? 分離簽名
3.單向散列
(1) 將任意數(shù)據(jù)縮小成固定大小的“指紋”
? 任意長度輸入
? 固定長度輸出
? 若修改數(shù)據(jù),指紋也會改變(“不會產(chǎn)生沖突”)
? 無法從指紋中重新生成數(shù)據(jù)(“單向”)
? 功能:數(shù)據(jù)完整性
? 常見算式
md5: 128bits炬称、sha1: 160bits汁果、sha224
sha256、sha384玲躯、sha512
? 常用工具
? md5sum | sha1sum [ --check ] file
? openssl须鼎、gpg
? rpm -V
4.應(yīng)用程序:RPM
文件完整性的兩種實施方式
(1)被安裝的文件
? MD5單向散列
? rpm --verify package_name (or -V)
(2)發(fā)行的軟件包文件
? GPG公鑰簽名
? rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEYredhat*
? rpm --checksig pakage_file_name (or -K)
5.使用gpg實現(xiàn)對稱加密
(1)對稱加密file文件
gpg -c file
ls file.gpg
(2)在另一臺主機(jī)上解密file
gpg -o file -d file.gp
6.使用gpg工具實現(xiàn)公鑰加密
(最好直接在物理機(jī)圖形界面上進(jìn)行鲸伴,否則生成秘鑰等待時間長)
在hostB主機(jī)上用公鑰加密,在hostA主機(jī)上解密
(1)在hostA主機(jī)上生成公鑰/私鑰對
gpg --gen-key
Paste_Image.png
Paste_Image.png
Paste_Image.png
Paste_Image.png
Paste_Image.png
(2)在hostA主機(jī)上查看公鑰
gpg --list-keys
Paste_Image.png
(3)在hostA主機(jī)上導(dǎo)出公鑰到centos7pubkey
gpg -a --export -o centos7pubkey
-a :易讀形式顯示出來
Paste_Image.png
(4)從hostA主機(jī)上復(fù)制公鑰文件到需加密的B主機(jī)上
scp centos7.pubkey hostB:
Paste_Image.png
(5)在需加密數(shù)據(jù)的hostB主機(jī)上生成公鑰/私鑰對(同一)
gpg --list-keys
gpg --gen-key
(6)在hostB主機(jī)上導(dǎo)入公鑰
gpg --import centos7pubkey
gpg --list-keys
(7)用從hostA主機(jī)導(dǎo)入的公鑰晋控,加密hostB主機(jī)的文件file,生成file.gpg
# gpg -e -r centos7 file
(8)復(fù)制加密文件到hostA主機(jī)
# scp fstab.gpg hostA:
(9)在hostA主機(jī)解密文件
# gpg -d file.gpg
# gpg -o file -d file.gpg
-o后面指定自己想重新生成文件的名字
-d后面指定所要解密的文件名字
(10)刪除公鑰和私鑰
# gpg --delete-secret-keys centos7刪除私鑰
# gpg --delete-keys centos7刪除公鑰
(先刪除私鑰汞窗,再刪除公鑰
如果先刪除公鑰,下面會提示先刪除私鑰)