加密貨幣交易所 加密貨幣交易所
Ctrl+D 加密貨幣交易所
ads
首頁 > Bitcoin > Info

用小學數學知識理解 RSA 加密算法的數學原理_比特幣:加密貨幣到底有什么用

Author:

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

從自然數開始,一直講明白了RSA非對稱式加密的細節。

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

撰文:王建碩

前不久Jason同學邀請復旦大學數學系的梅同學給希望了解Web3的朋友們上了5節硬核的數學課。從自然數開始,一直講明白了RSA非對稱式加密的細節。我再回顧一下,嘗試解釋這個其實還挺復雜的事兒。

大數無法分解

3*7算出21容易嗎?容易。反過來,21是哪兩個數的乘積?也不難,但肯定比算3*7麻煩。

同理967*379=366493容易。反過來,366493是哪兩個數乘積?難多了。

隨著乘積的不斷變大,算乘法的難度略微增大,算是這個數是由哪兩個數相乘的難度陡峭的增加。

一個一百位數字的數和一百位數字的數相乘,手工算不容易,但對計算機來說不難,結果是一個大約兩百位數字的數字。

反過來,把這個200位的數字分解?基本上現在能想到的辦法就是近似于一個一個的試。別說算乘法了,光從一數到80位的數字,按照現在的計算水平,就要消耗掉一個中等恒星一生的能量了。所以,簡單結論是,超級大的數字做分解不可能。

一巨鯨地址于兩小時前向幣安轉入1500枚比特幣:7月5日消息,據The Data Nerd監測,一巨鯨地址于兩小時前向幣安轉入1500枚比特幣,價值約4800萬美元。該地址在比特幣價格為25500美元左右時接收了大量比特幣。[2023/7/6 22:20:07]

就利用這個簡單的原理,加上聽起來故弄玄虛的歐拉定理,就是一個精妙絕倫的RSA加密算法。

n進制取個位

這個東西的數學名稱叫「取模」,就是算「一個數除以n以后的余數是幾」。

不過我們不用這個名字。我自己發明的一個混雜了數學和計算機的概念,叫做?n進制取個位。比如n=8,八進制下只取個位,超過的十、百、千位數就直接扔掉,那么15這個數本來八進制就是17,只取個位,就是?7。所以,我們規定,15在八進制個位模式下,就等于7。同樣,23,31等,在8進制取個位下,都等于7。這個「等于」,不是絕對數字的相等,而是經過了?n進制取個位,我們用?≡?表示這種特殊的等于。

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

南華證券:已成為首批香港持牌虛擬資產金融機構之一:7月5日消息,南華金融集團宣布,旗下南華證券成為虛擬資產服務提供者制度生效后首批獲證監會發牌之金融機構之一。

據悉,南華證券于今年3月17日獲香港證監會核準成為虛擬資產交易平臺的介紹代理人,本次獲批后專業投資者客戶可通過南華證券轉介至虛擬資產交易平臺進行虛擬資產交易。[2023/7/5 22:18:38]

例子:比如在?20?進制取個位下,3*7?的結果就是?1?。

連著乘兩個數就是它本身

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

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

變回原來了。神奇嗎?

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

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

Tender.fi預言機配置錯誤導致一白帽僅存1枚GMX就借入159萬美元資產:3月7日消息,據Lookonchain分析,由于Tender.fi的預言機配置有誤,白帽0x896d開頭地址僅存入1枚GMX(71美元)就借入了約159萬美元的資產。[2023/3/7 12:47:27]

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

公鑰和密鑰

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

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

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

歐拉定理

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

美CFTC專員:傳統金融法規在一定程度上可以適用于加密貨幣:10月29日消息,美國商品期貨交易委員會(CFTC)專員Christy Goldsmith Romero在CoinDesk TV中表示,加密貨幣可能會給金融穩定帶來一些風險,傳統金融(TradFi)法規在一定程度上適用于加密貨幣,但可能需要更明確的指導方針,而不是一套全新的規則。

盡管如此,Goldsmith Romero表示,由于數字資產與傳統金融產品不同,“我們在進行定制化處理時必須有點謹慎,因為我們不知道這樣做的后果。”官員們應該審查傳統金融市場的既定監管方式,看看它們是否可以適用于加密貨幣。

Goldsmith Romero表示,在比特幣或其他不是證券的商品和數字資產方面,沒有一個市場監管機構,這是一個監管空白。該機構正試圖通過為在衍生品方面向其注冊的加密公司制定標準來提供清晰度,而國會的明確性將“有助于”確定哪個政府機構應負責監管數字資產。(CoinDesk)[2022/10/29 11:55:33]

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

m^?φ(n)?≡?1

兩邊都取k次方:

StackinSat 創始人:支持區塊鏈的說法阻礙了比特幣的采用:金色財經報道,加密投資銀行公司 StackinSat 的創始人 Josselin Tonnellier 表示,雖然在熊市期間組織活動很困難,但看到來自國外的與會者是非常有益的。這位高管解釋說,就比特幣的采用而言,法國最緊迫的擔憂之一是支持區塊鏈的說法,這描繪了比特幣的負面圖景。多年來,區塊鏈一直很棒。比特幣很糟糕。因此,我們嘗試與著名的比特幣愛好者一起制作內容,人們希望我們能夠解釋比特幣的真正含義。該國有很多 Web3 和NFT活動,而比特幣的活動并不多。(cointelegraph)[2022/8/29 12:54:49]

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

重新梳理

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

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

這樣,公布給全世界的數字就是(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次冪,我再把它進行d次冪,我就拿回了原來的數字。

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

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

Tags:比特幣虛擬資產加密貨幣區塊鏈比特幣中國禁止后怎么提現如何看待虛擬資產加密貨幣到底有什么用有人靠區塊鏈4天就掙了30萬嗎

Bitcoin
「純干貨」150+區塊鏈行業名詞解釋大全_比特幣:ETH

目錄 1、Blockchain——區塊鏈 2、Block——區塊 3、Node—一節點 4、去中心化 5、Pow—工作量證明 6、函數加密 7、PoS—權益證明 8、智能合約 9、時間戳 10、.

1900/1/1 0:00:00
對話資深加密律師:Tornado Cash 被制裁有何影響?新的監管挑戰即將到來?_CAS:eCash幣

?前不久,美國財政部外國資產控制辦公室宣布制裁混幣協議TornadoCash,該平臺已被加密貨幣領域的許多網絡犯罪分子、不法黑客組織用來清洗和混淆他們的非法資金來源.

1900/1/1 0:00:00
歐盟知識產權局更新NFT和虛擬商品商標申請指南_數字貨幣:加密貨幣和數字貨幣的區別

金色財經報道,為應對包含虛擬商品和NFT相關術語的商標申請的突然增加,負責歐盟商標注冊的歐盟知識產權局發布了關于虛擬商品和NFT分類方法的指南.

1900/1/1 0:00:00
北京日報:我國將建權威可信數字身份鏈_區塊鏈:NUTS

金色財經消息,近日,由部第一研究所牽頭的“基于法定證件的數字身份區塊鏈技術研究與應用”正式啟動并進入實施階段.

1900/1/1 0:00:00
數據告訴你 以太坊合并后的通縮比率_以太坊:ETH

引言:作為市值第二的加密貨幣,以太坊網絡的任何變動都會受到市場的密切關注。以太坊的下一個重要升級“TheMerge”即將在9月到來,在OKLink官網專題頁可以清楚地看到,目前距離這次升級完成還.

1900/1/1 0:00:00
Enjin 聯合創始人:建立標準將是元宇宙未來成功的關鍵_USDT:usdt幣怎么獲取

去中心化的互聯網目前可以理解為一個獨立的國家,而不是一個統一的領土。撰寫:WitekRadomski?編譯:深潮TechFlow?? 通用編程標準在數字世界并不新鮮,畢竟互聯網在很大程度上是建立.

1900/1/1 0:00:00
ads