区块见闻 区块见闻
Ctrl+D收藏区块见闻
首页 > FTX > 正文

HTT:用小学数学知识理解 RSA 加密算法的数学原理_BSPAY币

作者:

时间:

原文标题:《用吃奶的劲试着解释加密算法的数学原理》

撰文:王建硕

前不久 Jason 同学邀请复旦大学数学系的梅同学给希望了解 Web3 的朋友们上了 5 节硬核的数学课。从自然数开始,一直讲明白了 RSA 非对称式加密的细节。我再回顾一下,尝试解释这个其实还挺复杂的事儿。

(前方数学预警,但是我保证努力限制在小学数学知识范围以内)

3 * 7 算出 21 容易吗?容易。反过来,21 是哪两个数的乘积?也不难,但肯定比算 3 * 7 麻烦。

同理 967 * 379 = 366493 容易。反过来,366493 是哪两个数乘积?难多了。

随着乘积的不断变大,算乘法的难度略微增大,算是这个数是由哪两个数相乘的难度陡峭的增加。

一个一百位数字的数和一百位数字的数相乘,手工算不容易,但对计算机来说不难,结果是一个大约两百位数字的数字。

反过来,把这个 200 位的数字分解?基本上现在能想到的办法就是近似于一个一个的试。别说算乘法了,光从一数到 80 位的数字,按照现在的计算水平,就要消耗掉一个中等恒星一生的能量了。所以,简单结论是,超级大的数字做分解不可能。

就利用这个简单的原理,加上听起来故弄玄虚的欧拉定理,就是一个精妙绝伦的 RSA 加密算法。

这个东西的数学名称叫「取模」,就是算「一个数除以 n 以后的余数是几」。

不过我们不用这个名字。我自己发明的一个混杂了数学和计算机的概念,叫做 n 进制取个位。比如 n = 8,八进制下只取个位,超过的十、百、千位数就直接扔掉,那么 15 这个数本来八进制就是 17,只取个位,就是 7。所以,我们规定,15 在八进制个位模式下,就等于 7。同样,23,31 等,在 8 进制取个位下,都等于 7。这个「等于」,不是绝对数字的相等,而是经过了 n 进制取个位,我们用 ≡ 表示这种特殊的等于(正规说法叫做「模 n 同余」,可以忽略)。

0N1 Force推出Web3盟友计划:金色财经报道,NFT项目0N1 Force在社交媒体宣布推出Web3盟友计划(Web3 Alley Program) ,旨在通过合作和共同成长培育一个强大的 web3 生态系统。该计划将汇集资源来支持 Web3 生态系统,并未媒体、游戏、IP开发和NFT项目给予帮助同时增强 0N1 FORCE 及其合作伙伴的社区,目前该计划对所有人开放,项目负责人、艺术家、创作者、品牌等均可提出申请。[2023/6/13 21:32:44]

这样,如果 n 是 4 万公里的话,数字的世界变成像地球一样,是一个循环。在赤道上可以向东走 1 万公里,和向西走 3 万公里结果是一样的,甚至向西走 7 万,11 万,15 万公里的终点是一样的,就是一圈一圈的转就是了。所以 4 万进制取个位, 1 万 ≡ -7 万 ≡ -11 万 ≡ -15 万。注意,毕竟走 7 万公里和走 11 万公里不相等 ( = ),但是在地球赤道上走,他们的效果相等 ( ≡ )。

例子:比如在 20 进制取个位下,3 * 7 的结果就是 1 (本来是 21,结果走过头了, 又绕回来,回到了 1 )。

这有啥用呢?神奇的事情在于,在 20 进制取个位下,任何数乘以 3 再乘以 7,就相当于乘以 1,就是这个数本身!

比如 12 * 3 = 36 ;36 % 20 = 16; 16 * 7 = 112; 112 % 20 = 12

Gartner副总裁:Web3是建立在区块链协议上的新技术堆栈:金色财经报道,Gartner副总裁Avivah Litan讨论了最近发布的Gartner 2022年区块链和Web3炒作周期,Avivah Litan表示,Web3是建立在区块链协议上的新技术堆栈,支持去中心化Web应用程序的开发,并使用户能够控制自己的身份、内容和数据。这些技术包括隐私保护协议、去中心化治理和去中心化应用平台。这些创新最终将支持分散式网络,该网络将与我们每天使用的当前 Web 2.0 集成。

Web3 支持新的商业和社交模式。例如,智能合约运行的应用程序消除了控制中心化实体的中介和管理开销。包括加密货币在内的代币为 Web3 的商业模式和经济性提供动力,并内置于区块链协议中。Web3 支持新的商机,例如以 NFT 形式对创作者拥有和管理的内容进行可编程性和货币化。?

元宇宙将需要 Web3 启用的许多功能。例如,元界可以受益于 Web3 的标记化,以在纯虚拟环境中存储和交换价值。Metaverse 和 Web3 不会合并为一个实体,但它们是对未来互联网的互补愿景。[2022/8/31 12:59:02]

变回原来了。神奇吗?

在 20 进制取个位下,你把一个数乘以 3,我不用除以 3,而是继续乘以 7 ,就是原来那个数。不仅仅是 7,我把乘 3 的数字乘以 67,127,或者 187。。。。它都会回到原来那个数,只是转的圈数多了些。

这就使得,如果两个数在一个 n 进制取个位下乘积为 1,这两个数不就是一个很好的加密和解密的工具吗?

XRP价格持续下跌,今日跌幅达10.58%:根据火币交易平台最新数据显示,XRP最新成交价格为人民币10.62元,24小时最高价达人民币12.64元,最低价格为人民币10.47元,跌幅达10.58%。[2018/1/11]

比如数字大一点,在 366492 进制取个位下,任何数乘以 967 得到的数再乘以 379,就是它本身。

如果我把 e = 967 当做公钥,d = 379 当做密钥,我只需要告诉别人( e = 967, n = 366492)这两个数字,别人乘积以后交给我,我再乘以 d ,然后。。。。

不过有一个小问题,如果给出了(e = 967, n = 366492)这两个数,别人除以 e 不就得到了我的秘钥 d 吗?毕竟,你可以算乘法,别人就可以算除法,而且难度差不多。我们把这个办法成为露馅儿加密法。

接下来要做的事情,就是想办法把这自己的密钥藏起来,让别人拿到 n 进制数,还有公钥 e,没有办法算出我的密钥,但是依然可以用 e 加密,我可以用私钥 d 解密不就好了?

我们引入 φ(n) 。它的定义可厉害了,是「小于 n 的正整数中和 n 互质的数的个数」。这个定义忽略就好,只要知道,如果 n 是两个素数 p, q 的乘积的话, φ(n) = (p-1)(q-1)。

欧拉发现了一个惊天大秘密,居然在 n 进制取个位下,如果 m 和 n 互为质数,m 的 φ(n) 次方 居然等于 1:

SNT价格持续上涨,今日涨幅达11.68%:根据火币交易平台数据显示,SNT最新成交价格为人民币4.12元,24小时最高价达人民币4.26元,最低价格为人民币2.63元,24小时成交量18315284SNT,涨幅11.68%。[2018/1/4]

m ^ φ(n) ≡ 1

两边都取 k 次方:

m ^ (k * φ(n)) ≡ 1

两边都乘以 m :

m ^ (k * φ(n) + 1) ≡ m

k * φ(n) + 1 是啥意思?就是这是一个「除以  φ(n) 余数为 1 」的数字。也就是说,只要找到 e*d 这两个数,使得他们的乘积除以 φ(n) 余数为 1 就好。这个好找,有一个叫做辗转相除法的方法,不过这里先略过。我们一般常常把 e 固定的设为 65537,然后就可以找到一个满足的 d。

最后,也就是最惊艳的一步,如果我们能够找到这样的 e, d,我们把 e 和 n 告诉整个世界,让他们在 n 进制取个位下,把要加密的数字 m 取 e 次方发给我,我对这个数再进行 d 次方,我就能得到 m。

(m ^ e) ^ d ≡ m

Wirex Credit在英国推出并新增WXT作为抵押品选项:8月4日消息,加密支付公司Wirex已经将Wirex Credit计划扩展到新的地区,并开发了其他功能。其加密支持的信贷额度现在可供英国用户使用,并添加了WXT代币作为抵押。

此前消息,Wirex推出加密支持的信贷Wirex Credit,Wirex Credit提供以USDC、USDT和NXUSD等稳定币发行的近乎即时的贷款,在Wirex应用程序中提供高达80%的LTV(贷款价值比)。(PR Newswire)[2022/8/4 12:02:33]

到现在大家应该已经无一例外的晕厥了。这很正常。我们再理一下就清楚了。

就是说,如果我能无论用什么方法,找到一个进制 n,在这个 n 进制取个位下,能够找到两个数字 e 和 d,e 公开给整个世界,d 留给自己,同时还能让任何数字 m 的 e 次方的 d 次方还等于原来这个 m,加密解密算法不就成立了吗?就跟最早我说的那个乘以一个数,再乘以另一个数,总等于原来的数字一样?

但露馅儿加密法两个乘法的算法的明显的漏洞在于,e 和 n 给出了,d 也就给出了。

在这个新的算法中,e 给出了。n 给出了,但 e * d  ≡ 1 的进制,不是简单地 n,而是和 n 同源,但是不同的 φ(n) 。正因为进制改了,所以也不能用露馅儿加密法里面的两次乘法,而借用欧拉的惊天发现,做了两次幂运算。

从 n 能不能算出来  φ(n) 呢?如果有能力分解 n 当然 φ(n) 唾手可得,把两个因子各自减一再乘起来就好。

但是从 n 能不能轻易地找到 p 和 q 呢?根据最早的大数不可分解,要想找到 100 个太阳烧掉都不够用,p 和 q 好像是脚手架,算出来 n,算出来 φ(n) 就扔掉了。 那么  φ(n) 就是一个秘密。如果 φ(n) 是个秘密,有了 e 也找不到 d。

所以,整个算法是无比精巧的安全。

我们找两个脚手架数字:p = 2, q = 7,算出 n = 2 * 7 = 14,  φ(n) = (2 - 1) * (7 - 1) = 6 。那两个脚手架数字 p, q 在算出 n 和 φ(n) 后就退休了。找在 6 进制取个位下,e * d ≡ 1 好办,e = 5, d = 11 就行 ( 5 * 11 = 55 = 6 * 9 + 1 ≡ 1)。

这样,公布给全世界的数字就是 (e = 5, n = 14),保留给自己的就是 d = 11。φ(n) 千万也不能告诉任何人。φ(n) 就如同总统,n 如同他的影子。世界只能看到他的影子,看不到总统本人。好在影子在世间行走不怕暗杀,总统躲在防空洞里是安全的。

我们来试一下,在 14 进制个位模式下,如果要传递的数字 m = 2,别人把 m ^ e 算出来,就是 2 ^ 5 = 32 = 2 * 14 + 4 ≡ 4

现在,4 就可以大大咧咧的在互联网上随便传输了。只有我知道有一个秘密是 11 。我拿到以后,算 4 的 11 次方,4 ^ 11 ≡ 4,194,304 % 14 ≡ 2 ,不就是别人要给我的那个数字吗?前提是,我们认为 别人从 n = 14 无法分解成 2 * 7,否则就全露馅了。

14 肉眼可以看出等于 2 * 7。

这个数 n:

8244510028552846134424811607219563842568185165403993284663167926323062664016599954791570992777758342053528270976182274842613932440401371500161580348160559 

是 p

91119631364788082429447973540947485602743197897334544190979096251936625222447

乘以 q

90480063462359689383464046547151387793654963394705182576062449707683914045697

计算机眼也看不出来。 p 和 q 如同两位门神,死死的守住了获取它们后面的秘密的入口。但是从 p,q 算出 φ(n) ,以及 e,d,却都是举手之劳。

如果知道 n 的组成是 p,q,我们按照上面的算法可以选出来 e 和 d:

65537

2545549238258797954286678713888152865623498585866759298032549597771444725977268190722532488574321463855938811396613702406984581214587037347197409962813953

也就是说,这个游戏,任何人要把一个数字 m 传给我,只需要在 n 进制取个位下,对它进行 65537 次幂(m ^ 65537),我再把它进行 d 次幂,我就拿回了原来的数字。

这个精巧的算法,就是 RSA 加密算法。

希望有人能够看明白。我真的是尽力了。

Foresight News

企业专栏

阅读更多

金色早8点

Bress

PANews

链捕手

财经法学

成都链安

Odaily星球日报

区块律动BlockBeats

标签:BSPNBSHTTWEBBSPAY币NBS币HTT币WEB3COIN

FTX热门资讯
NFT:数字藏品“炒”起潮落:接盘游戏崩了 赚钱“美梦”醒了_BOX

回想过去几个月买卖数字藏品的经历,23岁的小贺仿佛经历“大梦一场”。他去年大学毕业,今年经同学介绍入场,经历行情暴涨、暴跌,曾经一夜富贵,也在下跌过程中赶紧逃离,8月24日,他在接到记者电话时说.

NFT:Web3 设计师是如何工作的?_BOX

原文标题:Working as a designer in web3 — a 101 guide撰文:Angela Ching编译:Luna Lee.

BITPAY:多个项目遭攻击 你关注的项目是否在列呢?_Trust AI

BitPay商户现可从100多个支持闪电网络的钱包中接收支付:4月6日消息,BitPay在一份声明中表示,其平台上的商户现在可以从100多个支持闪电网络的钱包中接收支付.

ANI:通过5个概念 一文弄明白DAO_BITPAY

深入研究“什么是DAO ”的问题,并提出5个不同的概念视角,使我们能够更有效的用于对现有组织机构的协调和研究。 摘要 这5个不同的概念分别: 作为组织集体的DAO DAO作为一种多代理系统,具有相互关联的决策实例,其中代理将决策归为一个集体实体(DAO)),用来声明、陈述和引用(即言语行为)实体是什么或能做什么。

THE:合并即将到来 是否会成为ETH价格的催化剂?_TON

以太坊合并预计将于9月15日到来,加密交易员和分析师认为,一旦升级发布,将对以太坊价格产生强烈影响。 随着合并在即,以太坊基本面似乎比以往任何时候都更加稳固。投资者对未来价格走势的猜测也越来越多。CoinMarketCap 的加密社区预计到 2022 年 9 月 30 日,以太坊的交易价格将达到2,102美元,比该资产的当前价格上涨29.16%。

EFI:价格持续走低 NFT的遮羞布没了_DEFI

NFT单日交易额由33.94亿美元的高点跌至不到0.15亿美元,下降了99.56%。根据区块链日报报道,在市场整体下行的环境下,NFT最后的遮羞布——娱乐明星参与的NFT项目也跳水了.