密碼學/加密貨幣原理 (2)

– By underpants 7/2017
原post > http://lihkg.com/thread/335340/page/1

——前方高能,數學恐懼人員請從速徹離—–

有public key, private key,就可以做digital signature入面最重要既一步:簽名

起generate 簽名之前我地仲要計一對暫時性既private key and public key
而家define
k = 暫時性private key
r = 由k gen出黎既暫時性public key既x coordinate
s = k^-1 * (Hash(文件) + my private key * r) mod p
where p = 2^256-2^32-2^9-2^8-2^7-2^6-2^4-1
(s,r)呢組數就我簽比呢份文件既簽名

當對家要verify呢個簽名,佢就要計
s^-1 * Hash(文件) * G + s^-1 * r * my public key
呢個結果係一組coordinate
如果佢既x-coordinate係等於r, 咁呢個簽名就係有效既

留意起呢條verify function入面只有我既public key
無我既private key起度

如果睇到你都無比上面堆怪獸嚇窒,仲睇得明同識得問
「點解條式要咁寫?」
「點prove佢地?」
「點解要揀果個p?」
可以reply問下,睇下有無數學系既高手肯回
再講落去就要更加深入認識憜圓曲線
要講algebraic structure, finite fields, subgroup order….
開多幾個chapter講都唔知得唔得
所以,真係有興趣既話,自己Google啦,有些路只能一個人走

—–數學部份完畢—–

咁public key private key起bitcoin上有咩作為呢
每一次你要動用你既bitcoin,都要用private key簽個名作實
起真係過數之前,server會check下你個戶口既public key同你個簽名夾唔夾
夾既,先比你動用果筆資金,validate呢次transaction
如果比人偷到你條private key,就可以冒認你簽發交易
下個chapter會詳細講

**********

—–課外知識1—–

之前提過ECC既private key係random揀個數出黎
簽名時候用既k, 即係暫時性既private key同樣係隨機揀個數出黎
但係呢個k要揀得好小心:用過一次既k唔可以再用
如果你真係咁環保
文件1同文件2都用左同一個k黎簽名
咁就大檸樂喇:hacker可以根據簽名1同簽名2 計番你條private key出黎
即係玩撚猿

點解咁特別提起呢個k?
因為歷史上真係有人試過用左同一個k而奶野:Sony

PS3一直以黎係唔玩得翻版碟
當中就係用左ECC digital signature
每隻正版碟都有Sony既簽名,文件就係隻game
而且部console就有Sony既public key, 可以驗證 Sony既簽名
如果你自己寫左game,擺落PS3度行,因為你無Sony 既簽名,通過唔到認證,就行唔到隻game
PS3就係用左ECC digital signature

2010年George Hotz唔知點樣發現,Sony generate PS3 Game既簽名果陣無用到隨機暫時性private key (即係k)
反而,所有簽名都用左同一個k
咁只要你肯比錢買多幾隻正版碟
就可以有好多
文件1, Sony 簽名1
文件2, Sony 簽名2
文件3, Sony 簽名3

就可以搵到Sony簽名用既private key
然後用Sony既private key黎幫你自己寫既game簽名
Digital Signature scheme係唔會知邊人用private key黎簽
verify果陣淨係認數字,所以一但公開左條key,就全世界都可以冒認Sony簽名
即係可以繞過Sony既認證檢查
簡單黎講:Jailbroken,可以玩翻版碟

George Hotz公開左條key之後,Sony嬲到爆炸
決定從法律途徑告George告到甩褲
呢個行為辣著左Anonymous, 因為Anonymous覺得而家係Sony柒左
有人免費幫你搵個loophole出黎你唔多謝佢不突止,仲要告佢?
Apple iOS都成日比人jailbreak啦,你有無見過Apple告人?
所以2011年4月Anonymous大規模攻擊Sony
傳說話佢地就係用private key 簽左一個自己寫既programme,所以登入到dev-PSN network…
繼而拎到曬所有PSN所有user既資料…
之後既事大家都應該知啦,PSN down左成個月咁濟…

**********

**********

睇左咁耐,唔係好明 製幣個角色

傳統貨幣系統係由個政府 製幣,而個政府又受人認可,d 幣就有相對既價值

但加密幣 有好多個場,其實咁多場係咪互通?
又或者 要具備咩條件先可以製幣

D 場 只係成條chain 既block 

貨幣既價值,從來都係講個信字
你信美國政府會捍衛佢貨幣既價值,所以美金就有價值
就正如呢個世界有班IT狗相信加密貨幣既價值,所以對於IT狗黎講bitcoin就有價值

訂立一隻加幣係無條件
你隨時download套bitcoin source code落黎自己改一改再發佈
叫佢做高登coin都得

唔同加密貨幣係活起唔同既blockchain
有D case係free ride on bitcoin條chain

**********

concept明明地

但係數學嗰part想知多啲
咩係G點
咩係mod p(講多少少唔係好明)
同埋如果真係想知啲式點解/點得出嚟應該睇咩

same睇完上面唯獨是g點係咩未理解到

G點可以係條curve中既任何一點
如果條curve有n點, 1G, 2G, …, nG就係條curve既所有點

多謝巴打幫手解答

**********

Editor只追到#326, 有興趣的請自行追Post了

Leave a Reply