公钥密钥加密

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

公钥密钥加密_第1张图片
Paste_Image.png

公钥密钥加密_第2张图片
Paste_Image.png

公钥密钥加密_第3张图片
Paste_Image.png

公钥密钥加密_第4张图片
Paste_Image.png

公钥密钥加密_第5张图片
Paste_Image.png

(2)在hostA主机上查看公钥
gpg --list-keys

公钥密钥加密_第6张图片
Paste_Image.png

(3)在hostA主机上导出公钥到centos7pubkey
gpg -a --export -o centos7pubkey
-a :易读形式显示出来

公钥密钥加密_第7张图片
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删除公钥
(先删除私钥,再删除公钥
如果先删除公钥,下面会提示先删除私钥)

你可能感兴趣的:(公钥密钥加密)