RSA公钥加密算法、公钥、秘钥、数字签名与数字证书

本文介绍了RSA算法的基本原理及应用,包括密钥生成过程、加解密算法,并详细解释了公钥与私钥的概念。此外,还探讨了数字签名与数字证书的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

RSA是目前最有影响力和最常用的公钥加密算法,它能够抵抗到目前为止已知的绝大多数密码攻击,已被ISO推荐为公钥数据加密标准。

RSA算法基于一个十分简单的数论事实:将两个大质数相乘十分容易,但是想要对其乘积进行因式分解却极其困难

RSA的算法涉及三个参数,n、e1、e2

其中,n是两个大质数p、q的积,n的二进制表示时所占用的位数,就是所谓的密钥长度。

e1和e2是一对相关的值,e1可以任意取,但要求e1与(p-1)*(q-1)互质;再选择e2,要求(e2*e1)mod((p-1)*(q-1))=1。

(n,e1),(n,e2)就是密钥对。其中(n,e1)为公钥,(n,e2)为私钥

RSA加解密的算法完全相同,设A为明文,B为密文,则:A=B^e2 mod n;B=A^e1 mod n;(公钥加密体制中,一般用公钥加密,私钥解密) e1和e2可以互换使用,即: A=B^e1 mod n;B=A^e2 mod n;


公钥与私钥

公钥(Public Key)与私钥(Private Key)是通过一种算法得到的一个密钥对,用于“非对称加密”,即通过公钥加密的内容,必须通过对应私钥才能解密,反之亦然

公钥

  • 秘钥对的公开部分
  • 多个客户端/一个服务端的角度看,每个客户端都持有服务端的公钥,同时服务端持有每个客户端的公钥
  • 以两个实体进行通信的角度看,他们互相持有对象的公钥

私钥

  • 秘钥对的私有部分
  • 多个客户端/一个服务端的角度看,每个客户端持有各自的私钥,服务端同样持有自己的私钥
  • 以两个实体进行通信的角度看,他们各自持有自己的私钥

数字签名与数字证书、CA

数字签名(Signature)

  • 用途:
    • 用来证明发送者真的是发送者
    • 用来验证数据内容没有被修改过
  • 使用流程:
    • 发送方将公钥给予接收方
    • 由发送方用私钥生成(即签名,sign)
    • 接收方使用发送方的公钥对签名进行解密验证
  • 主要使用技术:
    • 非对称秘钥加密技术
    • 数字摘要技术
  • 加密方式(发送方):
    • 先用Hash函数,生成信件的摘要(digest)
    • 然后使用私钥,对这个摘要加密,生成"数字签名"
  • 解密验证方式(接收方):
    • 先用发送方的公钥解密
    • 然后用HASH函数对收到的原文产生一个摘要信息,与解密的摘要信息对比,验证完整性

数字证书(Digital Certificate)

  • 简介:
    • 一个经CA(证书授权中心,Certificate Authority)签名的文件,其中包含公钥和公钥所有者信息,其他一些信息,以及CA使用其秘钥进行的签名
  • 用途:
    • 证明公钥的真实性,避免公钥派发的过程中,公钥被替换
  • 使用流程:
    • 发送方产生自己的密钥对
    • 发送方将公钥部分和部分个人身份信息传送给CA
    • CA证实身份
    • CA给发送方发送数字证书
    • 发送方给接收方发送数字证书
    • 接收方从CA获取公钥
    • 接收方使用CA的公钥对数字证书进行解密,取得发送方的公钥
  • CA:
    • CA可以使权威公正的第三方机构,或者是企业级的CA系统。

常见的SSH通信流程

用于登录Linux

  • 使用流程:
    • 用户生成公钥/私钥密钥对
    • 将公钥给予管理员
    • 管理员将公钥放到Linux中
    • 用户使用私钥发送登录信息
    • Linux使用用户的公钥验证
    • Linux发送公钥
    • 用户接收并保存公钥
    • 后续的每条消息,用户和Linux都使用各自的私钥进行签名,使用对方的公钥进行解密

转载于:https://my.oschina.net/pierrecai/blog/1544055

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值