以太坊交易所 以太坊交易所
Ctrl+D 以太坊交易所
ads
首頁 > Luna > Info

白話解析 RSA 加密算法的數學原理_BSP:nbs幣前景

Author:

Time:1900/1/1 0:00:00

前不久 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 同余」,可以忽略)。

Chainlink聯創:華爾街銀行將建立自己的區塊鏈和跨鏈穩定幣:金色財經報道,chainlink區塊鏈網絡聯合創始人Sergey Nazarov預測華爾街銀行將建立自己的區塊鏈和跨鏈穩定幣,使用chainlink的跨鏈互操作性協議(CCIP)(目前處于早期訪問階段)來連接它們。根據Chainlink基金會的說法,該協議被設計為“去中心化區塊鏈間消息傳遞、數據和代幣移動的開源全球標準”。

Nazarov表示,當這種情況發生時,除了這些群體各自的效率和收益之外,我認為你將看到整個區塊鏈行業會以數萬億美元的速度迅速增長。[2023/7/26 15:59:22]

這樣,如果 n 是 4 萬公里的話,數字的世界變成像地球一樣,是一個循環。在赤道上可以向東走 1 萬公里,和向西走 3 萬公里結果是一樣的,甚至向西走 7 萬,11 萬,15 萬公里的終點是一樣的,就是一圈一圈的轉就是了。所以 4 萬進制取個位, 1 萬 ≡ -7 萬 ≡ -11 萬 ≡ -15 萬。注意,畢竟走 7 萬公里和走 11 萬公里不相等 ( = ),但是在地球赤道上走,他們的效果相等 ( ≡ )。

例子:比如在 20 進制取個位下,3 * 7 的結果就是 1 (本來是 21,結果走過頭了, 又繞回來,回到了 1 )。

這有啥用呢?神奇的事情在于,在 20 進制取個位下,任何數乘以 3 再乘以 7,就相當于乘以 1,就是這個數本身!

The Toxics項目Discord服務器遭到攻擊:金色財經報道,據CertiK監測,The Toxics項目Discord服務器遭到攻擊。請社區用戶在服務器修復之前不要點擊任何鏈接。[2023/2/7 11:51:20]

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

變回原來了。神奇嗎?

在 20 進制取個位下,你把一個數乘以 3,我不用除以 3,而是繼續乘以 7 ,就是原來那個數。不僅僅是 7,我把乘 3 的數字乘以 67,127,或者 187。。。。它都會回到原來那個數,只是轉的圈數多了些。

這就使得,如果兩個數在一個 n 進制取個位下乘積為 1,這兩個數不就是一個很好的加密和解密的工具嗎?

比如數字大一點,在 366492 進制取個位下,任何數乘以 967 得到的數再乘以 379,就是它本身。

如果我把 e = 967 當做公鑰,d = 379 當做密鑰,我只需要告訴別人( e = 967, n = 366492)這兩個數字,別人乘積以后交給我,我再乘以 d ,然后。。。。

不過有一個小問題,如果給出了(e = 967, n = 366492)這兩個數,別人除以 e 不就得到了我的秘鑰 d 嗎?畢竟,你可以算乘法,別人就可以算除法,而且難度差不多。我們把這個辦法成為露餡兒加密法。

Gemini聯合創始人要求罷免DCG首席執行官Barry Silbert:1月10日消息,Gemini聯合創始人Cameron Winklevoss致信Digital Currency Group(DCG)董事會,要求罷免DCG首席執行官Barry Silbert,任命新CEO。1月初,Gemini聯合創始人Cameron Winklevoss代表其Earn產品超過34萬名用戶,向DCG創始人BarrySilbert發送一封公開信,要求他償還所欠的9億多美元,稱DCG一直在進行惡意的拖延戰術,要求DCG公開承諾在2023年1月8日之前共同解決這個問題。DCG創始人Barry Silbert針對Cameron Winklevoss的公開信回應稱:DCG沒有從Genesis借款16.75億美元,DCG從未錯過對Genesis的利息支付,并且所有未償貸款均已到期;下一筆貸款的到期日為2023年5月。[2023/1/10 11:04:48]

接下來要做的事情,就是想辦法把這自己的密鑰藏起來,讓別人拿到 n 進制數,還有公鑰 e,沒有辦法算出我的密鑰,但是依然可以用 e 加密,我可以用私鑰 d 解密不就好了?

我們引入 φ(n) 。它的定義可厲害了,是「小于 n 的正整數中和 n 互質的數的個數」。這個定義忽略就好,只要知道,如果 n 是兩個素數 p, q 的乘積的話, φ(n) = (p-1)(q-1)。

歐拉發現了一個驚天大秘密,居然在 n 進制取個位下,如果 m 和 n 互為質數,m 的 φ(n) 次方 居然等于 1:

Grit Capital CEO:FTX用表情符號批復報銷款項,從未召開過董事會議:金色財經報道,Grit Capital 首席執行官、特許金融分析師 Genevieve Roch-Decter 在社交媒體發文稱,在閱讀了 FTX 破產法庭文件后發現該公司的內部控制存在九大問題:1、員工通過聊天應用提交費用報銷申請,經理會用表情符號批準或拒絕報銷款項;2、Alameda Research 向 SBF 提供 10 億美元個貸,向工程總監 Nishad Singh 提供 5.43 億美元個貸;3、保存的記錄很少,大多數決定都是通過聊天做出的,消息會在一定時間后自動刪除;4、FTX 從未召開過董事會會議,大多數子公司也沒有;5、FTX沒有現金管理系統。管理層不知道在任何給定時間手頭有多少現金,甚至不知道他們所有的現金在哪里;6、FTX 沒有妥善記錄他們雇用的人員,員工和承包商在不同的公司混雜在一起,無法找到某些員工,意味著某些員工可能是假的;7、企業資金用于購買自用房地產;8、客戶存入的加密貨幣沒有記錄在 FTX 資產負債表上;9、SBF 不代表公司發言,但卻經常發布誤導性的公開聲明。[2022/11/19 13:23:30]

m ^ φ(n) ≡ 1

兩邊都取 k 次方:

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

兩邊都乘以 m :

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

Coinbase將上線GNO、MTL、SWFTC、SYLO和ABT:7月21日消息,據官方推特,Coinbase宣布將以太坊網絡添加支持Gnosis(GNO)、Metal(MTL)、SwftCoin(SWFTC)、Sylo(SYLO)和Arcblock(ABT),如果滿足流動性條件,交易將于太平洋時間2022年7月21日上午9點或之后開始。交易對分別為GNO-USD、GNO-USDT、MTL-USD、MTL-USDT、SWFTC-USD、SWFTC-USDT、SYLO-USD、SYLO-USDT、ABT-USD和ABT-USDT。Coinbase將對SWFTC、SYLO和ABT帶有實驗性標簽。[2022/7/21 2:26:57]

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

到現在大家應該已經無一例外的暈厥了。這很正常。我們再理一下就清楚了。

就是說,如果我能無論用什么方法,找到一個進制 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:

2545549238258797954286678713888152865623498585866759298032549597771444725977268190722532488574321463855938811396613702406984581214587037347197409962813953

也就是說,這個游戲,任何人要把一個數字 m 傳給我,只需要在 n 進制取個位下,對它進行 65537 次冪(m ^ 65537),我再把它進行 d 次冪,我就拿回了原來的數字。

這個精巧的算法,就是 RSA 加密算法。

希望有人能夠看明白。我真的是盡力了。

原文標題:《用吃奶的勁試著解釋加密算法的數學原理》

撰文:王建碩

來源:ForesightNews

ForesightNews

個人專欄

閱讀更多

金色早8點

Bress

PANews

鏈捕手

財經法學

成都鏈安

Odaily星球日報

區塊律動BlockBeats

Tags:NBSBSPUSDDCGnbs幣前景BSP幣busd幣今日行情DCG幣

Luna
監管之雷降臨 去中心化穩定幣之春來了?_EFI:PINETWORKDEFI幣

研究機構:Mint Ventures 研究員:許瀟鵬 除了逐漸臨近的以太坊合并,美國財政部外國資產控制辦公室 (簡稱OFAC)對搭建在以太坊上的隱私混幣器Tornado Cash開展制裁是近期最.

1900/1/1 0:00:00
DAO 時代的籌款:私人拍賣還是公開拍賣?_MKR:CoinSale Token

今天,讓我們討論一些具有公開交易治理代幣DAO 可能用來籌集資金的方法。具體來說,本文將集中討論私人資本、公共資本的利弊以及公共資本拍賣的三種具體結構.

1900/1/1 0:00:00
a16z掌門人:為什么 Web3 很重要?_區塊鏈:TangleV3

風險投資家 Chris Dixon 于9月27日在 Twitter 上引發了一場關于“為什么 Web 3 很重要”的討論.

1900/1/1 0:00:00
日本“失落”Web3_GDP:Webflix Token

文/尹寧 出品/陀螺研究院 GDP位于全球第三的日本,近年來并不好過,卷土重來的新冠流行、難以抑制的債務危機以及日益加劇的老齡化現狀都將本土經濟推上了風口浪尖.

1900/1/1 0:00:00
金色早報 | 區塊鏈融資總金額7月環比下降43% 交易總數環比下降26%_BTC:加密貨幣

▌美FDIC下令五家加密交易平臺停止“虛假或誤導性陳述”金色財經報道,美國聯邦存款保險公司(FDIC)周五發出信函.

1900/1/1 0:00:00
身份回歸:從互聯網上的一條狗到 Web3 的靈魂_WEB3:區塊鏈技術通俗講解ppt

本文摘要 本文首先從現實和數字世界兩個方面分析了身份的發展變化,梳理了賬號、身份、身體、靈魂的相互關系及認證手段,解釋了DID與SBT、Web3與DeSoc的涵義和相互關系.

1900/1/1 0:00:00
ads