加密算法全公开,全世界都在看,可你的钱还是安全的。
这听起来像骗人,但银行、微信、支付宝全这么干。不是因为懒,是数学逼着他们必须这么做。
你肯定玩过那种魔术:我给你一个数字2359,你心里想个五位数,乘它,再对10万取余,得到一个新数。我再给你12039,你用它乘刚才的结果,再对10万取余——原数就回来了。整个过程你都知道,连计算器都不用藏。可你就是没法从2359反推出12039。这不是我记性好,是2359×12039除以10万刚好余1。这叫模逆元,初中数学课上讲过,只是老师没说它能管住你的银行卡。

以前的密码不是这样。二战时德军用恩尼格玛机,转子结构复杂到吓人,可图灵一伙人还是靠“已知明文”+穷举+机械炸弹给破了。凯撒密码移三位?英语里e出现最多,数一数哪个字母最常出现,基本就猜出来了。那时的密码像锁匠打的私家锁,钥匙和锁是一套的,锁的结构越怪越安全——可一旦有人摸清结构,整套就废。香农1949年就说了:安全不能靠藏算法,只能靠藏密钥。这话现在刻在所有密码标准首页。
非对称加密不是把对称密码“做得更难”,是把整套逻辑推倒重来。1976年Diffie和Hellman发现:有些事正着做飞快,倒着做却得算到宇宙热寂,除非你有张“小纸条”。这张纸条就是私钥。公钥可以贴在微博主页上,谁都能拿它加密;私钥必须锁进保险柜,连你妈都不能看。这不是玄学,是数学定义的门槛——比如RSA里,n是个3072位的大数,由两个1536位质数相乘得来。2026年最顶级的超算试遍所有可能,也得算10的18次方年。比宇宙年龄还长几亿倍。

有人问,那为什么不用更短的ECC(椭圆曲线)?256位ECC和3072位RSA安全性差不多,不是因为它“偷懒”,是椭圆曲线上的离散对数问题,比RSA的大数分解更难啃。就像爬山,RSA是翻一座又高又缓的坡,ECC是攀一道窄而陡的岩壁——看起来矮,但没支点根本上不去。
算法公开,真不怕被抄?怕。但更怕不公开。浏览器怎么信银行网站是真的?靠它公开挂出来的公钥证书。OpenSSL代码全球公开,上万人盯着找漏洞,比黑箱芯片强多了。2023年有家公司卖加密U盘,宣称“军工级算法不公开”,结果被两个大学生用功耗分析测出私钥——芯片一运行,电流波形直接暴露了密钥比特。ISO标准现在强制要求测功耗侧信道,不然不给认证。

量子计算机?Shor算法确实能让RSA跪,但它还没造出来。NIST已经在2022年敲定Kyber等后量子算法,银行系统今年起陆续切换。真正天天咬你数据的,是钓鱼邮件、弱密码、手机点错链接。施奈尔老早就说:密码学防不了蠢。你设个“123456”当WiFi密码,再好的RSA也救不了。
RSA的每一步,教材上都写得明明白白:选两个大质数p和q,乘出n,算φ(n),选e,再算d。连我这种高中数学刚及格的人都能照着写个简易版。它的安全不来自哪步藏着掖着,而来自“从n倒推p和q”这件事,在现实世界里根本没人能做到。四十多年,全球最疯的数学家、最卷的程序员、最狠的黑客轮番上阵,没人成功分解一个实际部署的RSA-3072密钥。不是他们不够努力,是数学卡死了这条路。

侧信道攻击现在连手机芯片都防,不是靠加密码,是靠硬件加随机延时、电流屏蔽层、指令乱序执行。这些不写在论文里,藏在电路设计手册第17章。真正的防线早不在算法本身,而在怎么让算法跑得“不露痕迹”。
我去年帮家里老人重置微信支付密码,他反反复复输错,最后急得要卸载APP。我蹲那儿教他记成“我家门牌号+楼号”,他点点头,手指稳了。安全从来不是单靠一行代码。它是一串链条:数学打底,工程兜底,人站在中间,有时拉一把,有时绊一脚。

公开算法不是投降,是认准了一条路:与其骗全世界看不懂,不如请全世界一起来验。验得越狠,越安心。