后斯诺登时代的密码战:非对称算法能守护我们的数字边疆吗?

免责声明:用户因使用公众号内容而产生的任何行为和后果,由用户自行承担责任。本公众号不承担因用户误解、不当使用等导致的法律责任


目录

一:非对称密码

1. 核心机制

2. 数学基础

3. 核心应用场景

4. 优缺点分析

5. 主流算法

6. 实际应用案例

二:对称密码vs非对称密码

1. 密钥机制

2. 性能与效率

3. 安全性

4. 典型应用

5. 算法示例

三:非对称密码的发展史

1. 原根:非对称密码的数学基石

2. Diffie-Hellman密钥交换:非对称密码的黎明

四:学习非对称密码的基础准备

1.基础知识

2.欧拉函数

五:总结


一:非对称密码

1. 核心机制

  • 密钥对

    • 公钥(Public Key)公开给所有人,用于加密数据或验证签名

    • 私钥(Private Key)严格保密,用于解密数据或生成签名。

    • 数学关联性:公钥由私钥生成,但无法逆向推导私钥(基于数学难题)。

  • 功能特性

    • 加密与解密公钥加密 → 私钥解密(确保数据机密性)。

    • 数字签名:私钥签名 → 公钥验证(确保数据来源和完整性)。


2. 数学基础

非对称密码的安全性依赖于计算复杂度极高的数学问题,目前主流算法基于以下三类难题:

  1. 大整数分解问题(RSA)

    • 例如:分解两个大质数的乘积(如分解 N=p×qN=p×q)。

    • 攻击难度:经典计算机需超多项式时间,但量子计算机可破解(Shor算法)。

  2. 离散对数问题(Diffie-Hellman、DSA)

    • 例如:正向计算 y=g^xmod  p 容易(通过快速幂算法),但反向求 x 极其困难。

    • 椭圆曲线变种(ECC):基于椭圆曲线离散对数问题(ECDLP),密钥更短、效率更高。


3. 核心应用场景

  • 密钥交换(Key Exchange)

    • Diffie-Hellman协议:双方通过交换公钥生成共享密钥,避免密钥明文传输。

    • 示例:TLS握手阶段生成会话密钥。

  • 数字签名(Digital Signature)

    • 签名生成:用私钥对数据哈希值加密生成签名。

    • 签名验证:用公钥解密签名并与数据哈希值比对。

    • 示例:软件发布(验证未被篡改)、区块链交易签名。

  • 加密通信

    • 直接加密:用接收方公钥加密数据,仅接收方私钥可解密(如PGP邮件加密)。

    • 注:非对称加密速度慢,通常仅用于加密小数据(如对称密钥)。

  • 身份认证

    • 公钥作为身份标识,私钥证明持有者身份(如SSL证书验证网站真实性)。


4. 优缺点分析

  • 优点

    • 无需共享密钥:公钥可公开分发,解决了对称密码的密钥管理难题。

    • 天然支持身份认证:私钥的唯一性确保签名不可伪造。

    • 前向安全性:通过临时密钥(如ECDHE)实现,即使长期私钥泄露,历史会话仍安全。

  • 缺点

    • 计算效率低:比对称密码慢数百至数千倍,不适合加密大量数据。

    • 密钥长度较长:例如RSA-2048的密钥长度是对称密码(如AES-256)的8倍。

    • 量子威胁:Shor算法可破解RSA和ECC,需迁移至抗量子算法(如NTRU、Lattice-based)。


5. 主流算法

算法

用途

特点

RSA

加密、签名、密钥交换

通用性强,但密钥长、速度慢

ECC(ECDSA/ECDH)

签名、密钥交换

短密钥(256位= RSA-3072安全性),高效

Diffie-Hellman

密钥交换

需结合签名算法(如DSA)防中间人攻击

EdDSA(Ed25519)

签名

高性能、抗侧信道攻击,用于区块链等


6. 实际应用案例

  • HTTPS/TLS协议

    • 非对称密码用于身份认证(证书链)和密钥交换(ECDHE_RSA),对称密码(AES)加密数据。

  • 比特币/以太坊

    • ECC(secp256k1曲线)生成钱包地址和签名交易。

  • SSH登录

    • 公钥认证替代密码登录,防止暴力破解。

  • PGP加密邮件

    • 结合RSA加密会话密钥和AES加密邮件内容。


二:对称密码vs非对称密码

1. 密钥机制

  • 对称密码

    • 单密钥系统加密与解密使用同一密钥

    • 挑战:密钥需通过安全渠道预先共享,存在分发风险(如密钥泄露或中间人攻击)。

    • 管理复杂度:若系统中有 nn 个用户,需管理 n(n−1)22n(n−1)​ 个独立密钥,规模扩展困难。

  • 非对称密码

    • 双密钥系统:公钥(公开,用于加密/验证)与私钥(保密,用于解密/签名)配对使用。

    • 优势:无需安全信道分发公钥,私钥始终由用户独立保存。

    • 管理简化:nn 个用户仅需 nn 对密钥,公钥可公开托管。


2. 性能与效率

  • 对称密码

    • 速度快:算法设计高效(如AES硬件加速),适合加密大体积数据

    • 资源友好:计算开销低,适用于物联网设备、实时通信等场景

  • 非对称密码

    • 速度慢:依赖复杂数学运算(如大数分解、椭圆曲线离散对数),效率较低

    • 适用场景通常仅用于小数据量操作(如密钥交换或数字签名)


3. 安全性

  • 对称密码

    • 风险点:密钥泄露将导致加密体系完全崩溃,需定期轮换密钥。

    • 算法强度:依赖算法复杂性与密钥长度(如AES-256目前无已知有效攻击)。

  • 非对称密码

    • 数学攻击风险:安全性基于数学难题(如RSA依赖大数分解),需足够长的密钥(如RSA-2048)。

    • 前向安全性:通过临时密钥(如ECDHE)可增强会话安全。


4. 典型应用

  • 对称密码

    • 数据加密:文件存储(如VeraCrypt)、数据库加密、通信加密(如TLS中的数据传输阶段)。

    • 流加密:实时音视频传输(如SRTP协议)。

  • 非对称密码

    • 密钥交换:Diffie-Hellman或ECDH协议生成会话密钥。

    • 数字签名:RSA/ECDSA用于身份认证与数据完整性验证。

    • 混合加密系统:结合两者优势(如TLS握手阶段用RSA交换AES密钥)。


5. 算法示例

  • 对称密码
    AES(主流)、DES(已淘汰)、ChaCha20(移动端优先)、Salsa20。

  • 非对称密码
    RSA(通用)、ECC(高效替代方案,如ECDSA)、ElGamal(加密与签名)。


总结:如何选择?

  • 对称密码优先用于高速、大批量数据加密,需解决密钥安全分发问题。

  • 非对称密码用于安全初始化通信(如密钥交换、身份认证),弥补对称密码的密钥管理缺陷。

  • 实际应用混合系统(如HTTPS)结合两者,兼顾安全性与效率


三:非对称密码的发展史

本文主要介绍原根性质和秘钥交换协议,后续介绍RSA算法。

时间

事件

影响

1770s

欧拉与高斯研究原根性质

奠定离散对数问题的数学基础

1976

Diffie-Hellman密钥交换协议提出

首个公钥方案,解决密钥分发难题

1977

RSA算法诞生

实现加密与签名,推动非对称密码实用化

1985

椭圆曲线密码学(ECC)提出

提升效率,适应资源受限场景(如物联网)

1991

数字签名算法(DSA)标准化

完善非对称密码的功能体系

2000s

ECC普及(比特币、TLS 1.3)

取代RSA成为主流非对称方案


1. 原根:非对称密码的数学基石

(1) 原根的概念

  • 定义模P本原单位根

    • 即 {g^1mod  p,g^2mod  p,...,g^p−1mod  p}={1,2,3,....,p-1}。

我猜你肯定看不懂,看我给你举的栗子

原根,江湖人称模 p 宇宙的发电机”!

  • 身份:一个数(比如叫它 g),住在素数 p 的模运算世界里。

  • 超能力:只要它开始“蹦迪”(不断自乘),就能生成整个模 p 的乘法群(除了 0)
    → 比如模 7 的宇宙里,原根 3 的蹦迪轨迹是:3 → 2 → 6 → 4 → 5 → 1(循环了!)。

  • 名言“给我一个素数 p,我能嗨翻全场!”

  • 非素数可能没原根

那原根的派生规则是什么呢???

选择一个素数7,它的原根是3和5。为什么??往下看

条件:


步骤1:计算欧拉函数

ϕ(7)=7−1=6  


步骤2:确定候选数

与7互质的数为1, 2, 3, 4, 5, 6。排除显然非原根的数:

  • 1:阶为1。

  • 6:阶为2(因6² ≡ 1 mod7)。

剩余候选数:2, 3, 4, 5。


步骤3:分解φ(7)的素因数

6=2×3⇒素因数为2和3


步骤4:验证原根条件

对每个候选数 g,检查是否满足:

g^6/2≢1(mod7)且g^6/3≢1(mod7)

  1. g=2

    • 2^3=8≡1(mod7)  不满足

  2. g=3

    • 3^3=27≡6≢1(mod7)

    • 3^2=9≡2≢1(mod7)

  3. g=4

    • 4^3=64≡1(mod7)   不满足

  4. g=5

    • 5^3=125≡6≢1(mod7)

    • 5^2=25≡4≢1(mod7)


步骤5:直接验证幂次

结论

模7的原根为 3 和 5,数量为 ϕ(6)=2 个。

如果上面有些数学基础知识你看不懂,看标题四讲解

  • 数学意义原根的存在性保证了离散对数问题的困难性,成为DH协议的理论基础。


(2) 历史背景

  • 欧拉与高斯:18-19世纪,数学家欧拉和高斯研究了原根的性质,证明了每个素数 p 都存在原根。

  • 密码学应用:1970年代,原根被引入密码学,用于构造基于离散对数难题的公钥算法。


2. Diffie-Hellman密钥交换:非对称密码的黎明

(1) 提出背景

  • 对称密码的瓶颈:1970年代前,密码学依赖对称加密,但密钥必须通过安全信道预先共享,难以应对大规模通信需求。

  • 灵感来源

    • Ralph Merkle:1974年提出“谜题”概念,通过公开信道交换信息生成密钥,但效率低下。

    • Whitfield Diffie与Martin Hellman:1976年发表《密码学的新方向》,提出基于离散对数的DH密钥交换协议,首次实现无需共享密钥的安全通信


(2) DH协议原理

  1. 参数协商:双方约定大素数 p及其原根 g。

  2. 密钥生成

    • Alice选择私钥 a,计算公钥 A=g^a mod  p

    • Bob选择私钥 b,计算公钥 B=g^b mod  p

  3. 共享密钥

    • Alice计算 K=B^a mod  p=g^ab mod  p。

    • Bob计算 K=A^b mod  p=g^ab mod  p。

  4. 安全性依赖:攻击者即使截获 AA 和 (离散对数难题)。

看不懂正常,看下面

Alice

Eve

Bob

Alice和Bob交换一个质数P,和一个整数G。G<P并且G是P的原根。如:P=7 G=3

获得公开的P=7 G=3

Alice和Bob交换一个质数P,和一个整数G。G<P并且G是P的原根。如:P=7 G=3

Alice生成一个小于P的随机数(私钥)
X.A=2

Bob生成一个小于P的随机数(私钥)
X.B=3

Y.A=G^XA (mod P)
Y.A=3^2 (mod 7)
Y.A=2

Y.B=G^XB (mod P)
Y.B=3^3(mod 7)
Y.B=6

交换,Alice收到YB=6

获得公开的YA=2 YB=6

交换,Bob收到YA=2

密钥= (YB)^XA (mod P)
密钥= 6^2(mod 7)
密钥=1

密钥= (YA)^ XB (mod P)
密钥= 2^7(mod 7)
密钥=1

DH密钥交换的“秘密调料”协议(搞笑版) 🌶️🍹


场景设定

Alice 和 Bob 想偷偷约定一款“奶茶配方”当暗号,但怕被隔壁老王(Eve)偷学。
他们决定用数学魔法,搞一场“调料盲盒交换”!


第一步:数学魔法阵

  1. 选个大素数锅

    • 挑个超大的素数锅 p=7(假装它和地球一样大🌍)。

  2. 找根原味吸管

    • 选原根 g=3(这吸管能把所有调料搅匀,不留死角!🌀)。


第二步:调自己的“暗黑料理”

  • Alice
    👩🍳 偷偷选个私钥 A=2(内心OS:这是我的祖传秘方!)。
    🔮 算公钥:A=3^2 mod  7=2(把秘方变成一坨绿色不明液体💚)。

  • Bob
    👨🍳 偷偷选私钥B=3(心想:这数字像我家的猫爪印🐾)。
    🔮 算公钥:B=3^3 mod  7=6(得到一杯冒泡的紫色毒药💜)。


第三步:公开互泼“毒药”

  • Alice 把💚扔给 Bob:“喝了它你就是我的人!”

  • Bob 把💜塞给 Alice:“干了这杯,友谊万岁!”

老王 👀 暗中观察:“这俩傻子在交换呕吐物???”


第四步:合成终极配方

  • Alice
    🤢 拿到💜,用私钥 a=2 加工:6^2mod  7=1(变成一杯金色传说✨奶茶!)。

  • Bob
    🤮 拿到💚,用私钥 b=3 加工:2^3mod  7=1(也变出一模一样的✨奶茶!)

老王 😵:“为啥我拿💚+💜只能调出洗脚水???”


科学冷笑话

  • 为啥老王算不出?因为离散对数问题让他卡在“3^?≡6mod  7”这种小学奥数题里,CPU烧了🔥!

  • 原根的威力:用 g=3 调奶茶,能遍历所有味道,绝不重复!(老王试到宇宙爆炸也猜不完🌌)


结局

Alice 和 Bob 用✨奶茶加密聊天,老王只能围观表情包🍵。
数学の胜利!

DH秘诀:交换毒药,合成奶茶,数学让偷窥者怀疑人生!DH秘诀:交换毒药,合成奶茶,数学让偷窥者怀疑人生!​


(3) 历史意义

  • 首次突破:DH协议证明公钥密码学的可行性,开启非对称密码时代。

  • 局限性

    • 仅支持密钥交换,无法直接加密或签名。

    • 易受中间人攻击(需结合数字签名解决)。

  • 原根作为数论经典问题,为DH协议提供了数学基础,使公钥交换成为可能。

  • Diffie-Hellman的提出标志着密码学从“保密算法”转向“公开算法+数学难题”的新范式。


四:学习非对称密码的基础准备

1.基础知识

  1. 取模运算(%)
    a % b 表示求 a 除以 b 的余数。例如:
    5 % 3 = 2(因为 5 ÷ 3 商 1 余 2)。

  2. 质数
    质数是大于 1 的自然数,除了 1 和自身外没有其他因数。例如:
    2, 3, 5, 7, 11 等。注意:1 不是质数

  3. 公约数与最大公约数(gcd)
    公约数是能同时整除若干整数的数,最大公约数是其中最大的一个。例如:
    gcd(6, 9, 12) = 3(因为 3 是 6、9、12 的最大公约数)。

  4. 互为质数(互质)
    两个数的最大公约数为 1 时,它们互质。例如:
    gcd(7, 11) = 1,因此 7 和 11 互质。

序号互质关系规则示例
1任意两个质数构成互质关系11 和 13
2一个数是质数,另一个数不是前者的倍数,两者构成互质关系7 和 15
3两个数中较大的数是质数,两者构成互质关系89 和 57
41 和任意一个自然数构成互质关系1 和 61
5p 是大于 1 的整数,p 和 p - 1 构成互质关系47 和 46
6p 是大于 1 的奇数,p 和 p - 2 构成互质关系19 和 17

2.欧拉函数

记作 ϕ(n),是数论中用于描述小于 n 且与 n 互质的正整数个数的函数。


1. 定义与基本性质

  • 定义

    ϕ(n)=小于 n 且与 n 互质的正整数的个数

    例如:

    • ϕ(5)=4(与5互质的数:1, 2, 3, 4)

    • ϕ(1)=1(特殊规定)

  • 关键性质

    • 质数:若 p 是质数,则 ϕ(p)=p−1
      例如:ϕ(7)=6

    • 质数幂:若 p^k是质数的幂次,则 ϕ(p^k)=p^k−p^k−1。
      例如:ϕ(8)=ϕ(2^3)=8−4=4

    • 积性函数:若 a与 b 互质,则 ϕ(ab)=ϕ(a)⋅ϕ(b)
      例如:ϕ(6)=ϕ(2×3)=ϕ(2)⋅ϕ(3)=1×2=2


2. 计算方法

若 n 的质因数分解为 n=p1^k1⋅p2^k2⋯pr^kr则:

ϕ(n)=n⋅(1−1/p1)⋅(1−1/p2)⋯(1−1/pr)

示例

  • n=12=2^2×3^1则:

    ϕ(12)=12×(1−1/2)×(1−1/3)=12×1/2×2/3=4

    实际验证:与12互质的数为1, 5, 7, 11,共4个。


3. 欧拉定理

若 a 与 n 互质,则正整数a的ϕ(n)次方,模n,余数是1

a^ϕ(n)≡1(mod n)

特例:当 n为质数 p 时(费马小定理):a与质数p互质,则正整数a的p-1次方,模以p,

余数是1
a^p−1≡1(modp)

应用示例

  • 计算 3^100mod  7
    由于 ϕ(7)=6,根据欧拉定理,3^6≡1mod  7


4. 实际应用

  • RSA加密算法

    • 选择两个大质数 p 和 q,计算 n=p×q,则 ϕ(n)=(p−1)(q−1)

    • 公钥和私钥的生成依赖于 ϕ(n)。

  • 简化分数
    分子分母的最大公约数可通过 ϕ(n) 辅助计算,确保分数化为最简形式。


5. 示例演练

  1. 计算 ϕ(10)

    • 质因数分解:10=2×5

    • ϕ(10)=10×(1−1/2)×(1−1/5)=10×1/2×4/5=4

    • 实际验证:与10互质的数为1, 3, 7, 9。

  2. 计算 ϕ(21)

    • 质因数分解:21=3×7

    • ϕ(21)=21×(1−1/3)×(1−1/7)=21×2/3×6/7=12


欧拉函数(ϕ(n))总结表

情况分类定义与公式示例
1. n=1唯一与1互质的数是1本身。ϕ(1)=1
2. n为质数质数与所有小于它的数互质。ϕ(5)=4
ϕ(97)=95(因97是质数)
3. n=p^k(质数的幂次)不包含质因子p的数才与nn互质。ϕ(8)=ϕ(2^3)=8−4=4
ϕ(7^5)=7^5−7^4=14406
4. n=p1×p2(互质分解)积性性质:ϕ(p1p2)=ϕ(p1)ϕ(p2)(需p1​与p2​互质)。ϕ(56)=ϕ(8×7)=4×6=24
ϕ(284299)=106×2656=281536
5. 通用情况(质因数分解)n=p1^k1p2^k2...pr^kr时,ϕ(1323)=1323×(1−1/3)×(1−1/7)=756
ϕ(5346)=1×162×10=1620

五:总结

非对称密码通过公钥加密与私钥解密、私钥签名与公钥验证,实现安全通信和身份认证,是互联网安全(如HTTPS、区块链)的基石。


本文为介绍简单的非对称加密算法,后续将介绍RSA等各种非对称加密,感兴趣关注)

(需要源代码及各类资料联系博主免费领取!!还希望多多关注点赞支持,你的支持就是我的最大动力!!!)

评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

安全瞭望Sec

感谢您的打赏,您的支持让我更加

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

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

打赏作者

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

抵扣说明:

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

余额充值