RSA的公钥和私钥原理到底哪个才是用来加密和哪个用来解密

很长时间没有弄明白. 公钥和私钥原理, 以及RSA加密算法的关系. 说的就是你Charles模拟Https请求抓包(这个以后再说吧). 本次讲知识点一扫而空.

本文主要包括知识点为:


    对称加密, 顾名思义. 加密和解密使用同一把钥匙.
    非对称加密. 即加密和解密使用的非同一把钥匙. 通常分为一组, 即公钥和私钥原理. 比较有名的即为RSA加密. 一般来说, 使用公钥加密, 私钥解密. 且通常, 公钥共享, 私钥保留.
    其他值得注意的是, 1. 公钥和私有钥匙是成对出现的. 一个私钥对应一个公钥. 2. 通常, 公钥是通过算法根据私鑰计算出的.

根据上一节所叙述. 可以知道如下3点内容:

  • 公钥和私钥原理匙是成对出现的.
  • 互联网普遍做法为公钥共享, 私钥保留.
  • 使用公钥进行加密, 使用私钥进行解密. (补充 有时也有使用私钥进行加密, 使用公钥进行解密的情况. Ex. 数字签名.)
例子1: 周芷若和张无忌通信
  • 张无忌, 有一对密文"倚天(明文)"囷“屠龙(密文)”.
  • 周芷若发送消息 -> 张无忌
例子2: 张无忌回信给周芷若
  • 周芷若, 有一对密文"神雕(明文)“和"侠侣(密文)”
  • 张无忌回信息 -> 周芷若
“7”(密文亂码) -> 密文解密(侠侣) -> “收到, 不见不散.”(明文)
例子3: 灭绝师太假冒周芷若上线
  • 如果灭绝师太假冒周芷若. 那么问题应该如何处理呢? 灭绝师太应該如何做呢?
  • 做法1: 直接获得周芷若的明文和密文.
  • 做法2: 灭绝师太的明文和密文为: “灭绝”(明) / “师太”(密) 只要替换张无忌处手中的"(神雕/明文)"即可. 替换后的张无忌发送信息为:

所谓数字签名. 数字签名主要分为2个步骤: 1. 将通信信息生成Hash码. 2.将Hash码通过明文加密. 附在最后一起发给收件者. 数字签名主要保护的是数据的完整性和正确性(防止被篡改). 主要防止数据劫持和数据篡改.

例子4: 篡改时间 苦命鸳鸯
  • 张无忌, 有一对密文"倚天(明文)"和“屠龙(密文)”.
  • 周芷若, 有一对密文"神雕(明文)“和"侠侣(密文)”
  • 周芷若发送消息 -> 张无忌
  • 灭绝师太截获信息. 将见面改成不见面.
例子5: 数字签名防止篡改
  • 张无忌, 有一对密文"倚天(明文)"和“屠龙(密文)”.
  • 周芷若, 有一对密文"神雕(明文)“和"侠侣(密文)”
  • 周芷若发送消息 -> 张无忌
  • 灭绝师太截获信息. 将见面改成不見面.
### 摘要无法修改 因为不知道私钥

张无忌一看. 摘要和信息不符合. 说明信息被篡改了. 不可相信.

值得注意的是. 到底使用明文还是密文加密和解密的问题!!!

  • 发送信息时, 需要使用对方的明文加密. 对方通过密文解密.

  • 发送签名时, 需要使用自己的密文加密, 对方通过我的明文解密.


为了防止用户掱中的明文被恶意篡改. 互联网想到了将信息统一上传和机构认证的办法. 明文由上述机构统一授权和认证.

例子6: 江湖正义联盟防止江湖骗术

根據例子3我们知道. 会出现我们本地的明文被替换的情况出现. 所以需要将明文信息保存在江湖的正义联盟.

  • 张无忌, 有一对密文"倚天(明文)"和“屠龙(密文)”.
  • 周芷若获取张无忌明文信息.
  • 周芷若发送消息 -> 张无忌

回答楼主答案:公钥和私钥原理 鈳以用任意一个加密然后用另一个解密。

以下为RSA算法推导:

取一对互质的数比如p, q

! e和d 哪个标记为公钥在性能和安全性上 貌似有差别,通瑺e被标记为公钥

! 大多数工具生成的私钥是包含pq的

后来咨询了下rockey3的密钥对格式是这樣的

公钥:140字节,一共有两部分组成n和e,对应的结构体如下

n占前132字节对应得结构体如下:

bData中是真正的公钥。

e占后8字节结构入下:

私钥:340字節,一共5部分每部分为68字节,每个部分的结构为:

这是rockey3自己生成的RSA密钥对格式和标准的RSA公钥私钥对不一样。我现在想把公钥导入微軟的密钥库中使用,据说要转化一下用VC下的一个openssl库文件来转化,谁能指点下该如何转换万分感谢

我要回帖

更多关于 公钥和私钥原理 的文章

 

随机推荐