1.对称加密算法
对称加密:加密和解密使用同一个密钥
DES:Data Encryption Standard,56bits
3DES:
AES:Advanced (128, 192, 256bits)
Blowfish,Twofish
IDEA,RC6,CAST5
特性:
1、加密、解密使用同一个密钥,效率高
2、将原始数据分割成固定大小的块,逐个进行加密
缺陷:
1、密钥过多
2、密钥分发
3、数据来源无法确认
2.非对称加密算法
公钥加密:密钥是成对出现
公钥:公开给所有人;public key
私钥:自己留存,必须保证其私密性;secret key
特点:用公钥加密数据,只能使用与之配对的私钥解密;反之亦然
功能:
数字签名:主要在于让接收方确认发送方身份
对称密钥交换:发送方用对方的公钥加密一个对称密钥后发送给对方
数据加密:适合加密较小数据
缺点:密钥长,加密解密效率低下
算法:
RSA(加密,数字签名),DSA(数字签名),ELGamal
3.非对称加密
(1) 基于一对公钥/密钥对
• 用密钥对中的一个加密,另一个解密
(2)实现加密:
• 接收者
生成公钥/密钥对:P和S
公开公钥P,保密密钥S
• 发送者
使用接收者的公钥来加密消息M
将P(M)发送给接收者
• 接收者
使用密钥S来解密:M=S(P(M))
(3)实现数字签名:
• 发送者
生成公钥/密钥对:P和S
公开公钥P,保密密钥S
使用密钥S来加密消息M
发送给接收者S(M)
• 接收者
使用发送者的公钥来解密M=P(S(M))
结合签名和加密
分离签名
3.单向散列
(1) 将任意数据缩小成固定大小的“指纹”
• 任意长度输入
• 固定长度输出
• 若修改数据,指纹也会改变(“不会产生冲突”)
• 无法从指纹中重新生成数据(“单向”)
功能:数据完整性
常见算式
md5: 128bits、sha1: 160bits、sha224
sha256、sha384、sha512
常用工具
• md5sum | sha1sum [ --check ] file
• openssl、gpg
• rpm -V
4.应用程序:RPM
文件完整性的两种实施方式
(1)被安装的文件
• MD5单向散列
• rpm --verify package_name (or -V)
(2)发行的软件包文件
• GPG公钥签名
• rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEYredhat*
• rpm --checksig pakage_file_name (or -K)
5.使用gpg实现对称加密
(1)对称加密file文件
gpg -c file
ls file.gpg
(2)在另一台主机上解密file
gpg -o file -d file.gp
6.使用gpg工具实现公钥加密
(最好直接在物理机图形界面上进行,否则生成秘钥等待时间长)
在hostB主机上用公钥加密,在hostA主机上解密
(1)在hostA主机上生成公钥/私钥对
gpg --gen-key
Paste_Image.png
Paste_Image.png
Paste_Image.png
Paste_Image.png
Paste_Image.png
(2)在hostA主机上查看公钥
gpg --list-keys
Paste_Image.png
(3)在hostA主机上导出公钥到centos7pubkey
gpg -a --export -o centos7pubkey
-a :易读形式显示出来
Paste_Image.png
(4)从hostA主机上复制公钥文件到需加密的B主机上
scp centos7.pubkey hostB:
Paste_Image.png
(5)在需加密数据的hostB主机上生成公钥/私钥对(同一)
gpg --list-keys
gpg --gen-key
(6)在hostB主机上导入公钥
gpg --import centos7pubkey
gpg --list-keys
(7)用从hostA主机导入的公钥,加密hostB主机的文件file,生成file.gpg
# gpg -e -r centos7 file
(8)复制加密文件到hostA主机
# scp fstab.gpg hostA:
(9)在hostA主机解密文件
# gpg -d file.gpg
# gpg -o file -d file.gpg
-o后面指定自己想重新生成文件的名字
-d后面指定所要解密的文件名字
(10)删除公钥和私钥
# gpg --delete-secret-keys centos7删除私钥
# gpg --delete-keys centos7删除公钥
(先删除私钥,再删除公钥
如果先删除公钥,下面会提示先删除私钥)
网友评论