1
模运算:数学里的「钟表」
「除以 12 看余数」就是模运算(记作 mod)。钟表是天然的教学工具:现在 10 点,过 5 小时是 3 点——因为 15 mod 12 = 3。数字转到头就绕回一圈,所有数都被压进 0 到 11 的圈子里。
模运算就是「只看钟表时针、不看过了几圈」的数学。15 点和 3 点在表盘上长得一模一样——它们「除以 12 同余」。
模运算有个神奇性质:加、减、乘都可以先在圈里转很多圈,最后再看停在哪。哪怕算 (7 的 100 次方) mod 13,也不需要真的算出 7¹⁰⁰ 那个天文数字——每乘一次就取一次余,数字永远长不大。这让「看似不可能的巨数运算」变成计算机一眨眼的活儿。
2
素数:数字世界的原子
素数是只能被 1 和自己整除的数(2、3、5、7、11、13……)。所有大于 1 的整数都能拆成素数的乘积——60 = 2×2×3×5,就像分子由原子组成。
关键的不对称来了:
- 正着算(乘法):让计算机乘两个 600 位的大素数,瞬间完成。
- 反着算(拆解):把那个 1200 位的乘积拆回两个素数,用人类已知最快的算法,也要算上万年。
这不是工程技术问题,是数学结构本身的不对称——就像「把两种颜料搅匀只要几秒,重新分离开几乎不可能」。
公开一个「混合结果」给大家看没问题,因为外人拆不开;只有知道「配方」(两个素数)的你,才能正反两步都轻松完成。公开的是锁,保密的是钥匙。
3
非对称加密:全世界都能给你寄保险箱
传统加密有个死结:钥匙怎么安全地交给对方?见面前总得先约个暗号,可约暗号的渠道本身就不安全。1970 年代的非对称加密(RSA 是代表)用上面的不对称性漂亮地解开了死结:
- 造钥匙我秘密挑两个巨大素数 p、q,算出乘积 n。由 n 算出「公钥」公开张贴;由 p、q 算出「私钥」自己藏好。
- 任何人加密陌生人用我的公钥把信息「锁」进密文(在模运算的圈里做指数运算)。
- 只有我能解解密需要私钥,而私钥依赖 p、q——外人只知道 n,想推出 p、q 就得拆大数,而拆大数等于算到天荒地老。
你每次打开 https:// 网站、扫码支付,浏览器和服务器都在背后上演这套流程(配合 TLS 协议,先非对称换钥匙、再对称加密传数据,兼得安全和速度)。
4
数字签名:反过来用就是「盖章」
同一套数学反着用,还能证明「这条消息确实是我发的」:我用私钥处理文件摘要(= 签名),任何人用公钥验证。验证通过 ⇒ 私钥持有者签的,且文件一个字没被改过。
电子合同、软件更新校验、区块链交易,用的都是它。素数之外还有椭圆曲线等新数学工具,用更短的钥匙达到同样的安全强度——但「正易反难」的不对称思想完全一致。
最后留个开放的惊叹号:这一切建立在「大数分解很难」这个尚未被证明的信念上。万一哪天量子计算机让分解变快,今天的锁就得集体换锁芯——所以密码学家已经在提前研究「抗量子密码」。数学的安全,是一场永远在进行的军备竞赛。
?
常见疑问
为什么不直接用很长的密码加密一切?
对称加密(一把钥匙)本身很安全,问题在「钥匙配送」:和每个陌生人通信都要先安全地递钥匙,做不到。非对称加密就是为了解决递钥匙这一步。
素数要挑多大的?
目前主流 RSA 用 2048 位(约 617 位十进制数)的模数,即两个 300 位左右的素数。全球最快超算硬拆也要数百万年——「够用」的标准就是「拆的成本高到没人愿意」。
这一系列课程学完了,接下来看什么?
恭喜毕业 🎓 推荐路线:编程实践(把二进制、逻辑、算法亲手写一遍)→ 回头补线性代数和概率的系统课 → 感兴趣就试试「计算机发展史」。数学和编程互相照亮,比单独学都快。
🎓