《深入浅出HTTPS》读书笔记(17):公开密钥算法

公开密钥算法(Public Key Cryptography),也称为非对称加密算法(Asymmetrical Cryptography)。

公开密钥算法的功能比较多,可以进行加密解密、密钥协商、数字签名。

【密钥是一对】

公开密钥算法的密钥是一对,分别是公钥(public key)和私钥(private key),一般私钥由密钥对的生成方(比如服务器端)持有,避免泄露。

【运算速度很慢】

公开密钥算法尤其是RSA算法运算非常缓慢,一般情况下,需要加密的明文数据都非常大,如果使用公开密钥算法进行加密,运算性能会惨不忍睹。

公开密钥算法最重要和最广泛使用的算法就是RSA算法。

【RSA】

该算法是Ron Rivest、Adi Shamir、Leonard Adleman三个人创建的,以三个人名字的首字母命名。

1)密钥文件生成过程

◎选取两个很大的质数p和q。

◎求这两个数的乘积n

◎取一个公开指数e,这个数的值小于(p-1)(q-1), e对应的值和(p-1)(q-1)的值互质。

◎e和n组合起来就相当于公钥。

◎通过e、p、q能够计算出私钥d, d和n组合起来就是私钥。

e和d之间存在互逆的关系。

2)加密过程

RSA算法假如应用于加密,一般使用公钥加密,私钥解密

对明文M进行多次幂运算,运算的次数就是公钥,计算出值后再进行模运算(mod n),最终得到的C就是密文。

  1. 解密过程

对密文进行d次的幂运算,然后进行模运算,最终得到明文M。

至于加密和解密如何互逆,依赖于算法和密钥对,过程如下:

◎C^d的过程相当于(M^e)^d。

◎(M^e)^d相当于M ^(e*d)。

◎(e*d) mod n等于1。

◎C^d (mod n)最终就能反解出M。

相关推荐
有时间要学习6 分钟前
面试150——第五周
算法·深度优先
三水不滴29 分钟前
有 HTTP 了为什么还要有 RPC?
经验分享·笔记·网络协议·计算机网络·http·rpc
晚霞的不甘1 小时前
Flutter for OpenHarmony 可视化教学:A* 寻路算法的交互式演示
人工智能·算法·flutter·架构·开源·音视频
望舒5131 小时前
代码随想录day25,回溯算法part4
java·数据结构·算法·leetcode
C++ 老炮儿的技术栈1 小时前
Qt 编写 TcpClient 程序 详细步骤
c语言·开发语言·数据库·c++·qt·算法
KYGALYX1 小时前
逻辑回归详解
算法·机器学习·逻辑回归
铉铉这波能秀2 小时前
LeetCode Hot100数据结构背景知识之集合(Set)Python2026新版
数据结构·python·算法·leetcode·哈希算法
踢足球09292 小时前
寒假打卡:2026-2-8
数据结构·算法
IT猿手2 小时前
基于强化学习的多算子差分进化路径规划算法QSMODE的机器人路径规划问题研究,提供MATLAB代码
算法·matlab·机器人
千逐-沐风2 小时前
SMU-ACM2026冬训周报3rd
算法