非对称加密

RSA是一种基于大素数因数分解难题的非对称加密算法,广泛应用于公钥密码学。GPG利用RSA实现文件加密,通过生成和管理密钥对确保数据安全。SSH则在远程通信中使用RSA实现安全无密码登录,通过密钥对验证身份。
摘要由CSDN通过智能技术生成

RSA

非对称加密起源于RSA算法,除此之外还有DSA、ECC等。

对极大整数做因数分解的难度决定了 RSA 算法的可靠性。换言之,对一极大整数做因数分解愈困难,RSA 算法愈可靠。假如有人找到一种快速因数分解的算法的话,那么用 RSA 加密的信息的可靠性就会极度下降。但找到这样的算法的可能性是非常小的。今天只有短的 RSA 钥匙才可能被强力方式破解。到2020年为止,世界上还没有任何可靠的攻击RSA算法的方式。只要其钥匙的长度足够长,用RSA加密的信息实际上是不能被破解的。
— 维基百科

RSA(Rivest-Shamir-Adleman)是一种公钥密码学算法,是目前广泛使用的非对称加密算法之一,其安全性基于数论中的两个难题:大素数分解问题和欧拉定理。RSA 算法的基本原理如下:

  • 生成公钥和私钥。首先选择两个大素数 p 和 q,计算它们的积 n = p * q,再选择一个整数 e 作为公钥(通常选择为65537),使得 e 和 (p-1)(q-1) 互质。然后计算出一个整数 d 作为私钥,满足 e * d ≡ 1 (mod (p-1)(q-1))。
  • 加密。将明文转换为整数 m,然后用公钥对其进行加密,得到密文 c = m^e mod n。
  • 解密。用私钥对密文进行解密,得到明文 m = c^d mod n。

以下算法都至少包含RSA非对称加密算法。

GPG

GPG用于给文件进行非对称加密。

安装gpg

sudo apt install gpg

生成gpg密钥:

gpg --full-generate-key
# 使用默认配置,快速生成 gpg --gen-key

选择密码长度,1024-4096,越长越慢,越长越安全。

选择有效期

y

真实姓名:

邮箱:

o

管理gpg密钥:

# 查看gpg秘钥
gpg --list-keys

# 删除秘钥
gpg --delete-secret-keys "<uid>"

# 上传公钥
gpg --send-keys <uid> --keyserver <管理公钥的服务器地址>

# 生成公钥指纹
gpg --fingerprint <uid>

# 导入秘钥
gpg --import <公钥文件> 

加密和解密:

# 加密
gpg --recipient <对方的公钥/uid> --encrypt <要加密的文件>

# 解密
gpg  <要解密的文件>

SSH

ssh(Secure Shell 的缩写)基于OpenSSH协议,用于安全远程终端通信。

密码登录,以服务器的用户名和密码进行登录:

# 登录远程终端
ssh <用户名>@<主机地址>

# 指定登录端口,默认为22
ssh -p <端口号> <用户名>@<主机地址>

自动登录,使用密钥登录:

# 生成ssh密钥
ssh-keygen
# ssh-keygen -t rsa

# 查看ssh公钥
cat ~/.ssh/id_rsa.pub

# 拷贝自己的公钥到服务器的 ~/.ssh/authorized_keys

参考链接

RSA算法原理(一)
RSA算法原理(二)
RSA加密算法
GPG入门教程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

多弗朗强哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值