【區(qū)塊鏈技術(shù)工坊46期】PPIO蔣鑫:橢圓曲線密碼學(xué)簡介

1. 活動基本信息

1)題目:
【區(qū)塊鏈技術(shù)工坊46期】橢圓曲線密碼學(xué)簡介

2)議題:
目前區(qū)塊鏈項目如火如荼,幾乎所有的區(qū)塊鏈都會用到錢包,我們也經(jīng)常聽說橢圓曲線這個密碼學(xué)術(shù)語,那么它們之間有沒有什么關(guān)系?“加密貨幣”,到底是不是加了密的貨幣?為什么***和以太坊等眾多區(qū)塊鏈項目選用的是橢圓曲線而不是RSA?大名鼎鼎的Sony PS3上的私鑰是如何被盜的?請報名者帶好筆記本電腦,且看PPIO區(qū)塊鏈開發(fā)工程師蔣鑫的技術(shù)分享。

議題綱要:
1)橢圓曲線的重要性
2)RSA算法回顧
3)群論
4)橢圓曲線上加法的定義
5)基于橢圓曲線的簽名和驗簽
6)安全性問題
7)ECC與RSA的比較

3)嘉賓:

蔣鑫,PPIO區(qū)塊鏈高級開發(fā)工程師,7年安卓系統(tǒng)開發(fā)經(jīng)驗,2年安全開發(fā)經(jīng)驗,1年區(qū)塊鏈開發(fā)經(jīng)驗,南京大學(xué)碩士畢業(yè)。曾組織“安卓安全小分隊(ASS)”發(fā)現(xiàn)第二個Android Master Key漏洞。

4)活動定位
區(qū)塊鏈技術(shù)工坊系列活動,由HiBlock,下筆有神科技,兄弟區(qū)塊鏈,HPB芯鏈,墨客聯(lián)合主辦,聚焦于深度分享區(qū)塊鏈知識,實現(xiàn)小會技術(shù)交友。

區(qū)塊鏈技術(shù)工坊一直以來堅持4F原則:

  • Frency - 每周三晚上一次;
  • Focus - 聚焦區(qū)塊鏈技術(shù)分享;
  • Fun - 20人以內(nèi)會前做自我介紹,分享有深度的技術(shù)內(nèi)容,技術(shù)交友;
  • Feedback - 會后有活動實錄文章和合影照片,深度對接業(yè)務(wù)交流;

通過技術(shù)工坊,連接了廣大區(qū)塊鏈項目和開發(fā)者,搭建了技術(shù)交友和知識傳播的平臺。

2.會議實錄

RSA加密算法是一種非對稱加密算法。在公開密鑰加密和電子商業(yè)中RSA被廣泛使用。RSA是1977年由羅納德·李維斯特(Ron Rivest)、阿迪·薩莫爾(Adi Shamir)和倫納德·阿德曼(Leonard Adleman)一起提出的。當時他們?nèi)硕荚诼槭±砉W(xué)院工作。RSA就是他們?nèi)诵帐祥_頭字母拼在一起組成的。

RSA公開密鑰密碼體制。所謂的公開密鑰密碼體制就是使用不同的加密密鑰與解密密鑰,是一種“由已知加密密鑰推導(dǎo)出解密密鑰在計算上是不可行的”密碼體制。
在公開密鑰密碼體制中,加密密鑰(即公開密鑰)PK是公開信息,而解密密鑰(即秘密密鑰)SK是需要保密的。加密算法E和解密算法D也都是公開的。雖然解密密鑰SK是由公開密鑰PK決定的,由于無法計算出大數(shù)n的歐拉函數(shù)phi(N),所以不能根據(jù)PK計算出SK。

正是基于這種理論,1978年出現(xiàn)了著名的RSA算法,它通常是先生成一對RSA 密鑰,其中之一是保密密鑰,由用戶保存;另一個為公開密鑰,可對外公開,甚至可在網(wǎng)絡(luò)服務(wù)器中注冊。為提高保密強度,RSA密鑰至少為500位長,一般推薦使用1024位。這就使加密的計算量很大。為減少計算量,在傳送信息時,常采用傳統(tǒng)加密方法與公開密鑰加密方法相結(jié)合的方式,即信息采用改進的DES或IDEA密鑰加密,然后使用RSA密鑰加密對話密鑰和信息摘要。對方收到信息后,用不同的密鑰解密并可核對信息摘要。
RSA算法是第一個能同時用于加密和數(shù)字簽名的算法,也易于理解和操作。RSA是被研究得最廣泛的公鑰算法,從提出到現(xiàn)今的三十多年里,經(jīng)歷了各種攻擊的考驗,逐漸為人們接受,截止2017年被普遍認為是最優(yōu)秀的公鑰方案之一。
SET(Secure Electronic Transaction)協(xié)議中要求CA采用2048bits長的密鑰,其他實體使用1024比特的密鑰。RSA密鑰長度隨著保密級別提高,增加很快。下表列出了對同一安全級別所對應(yīng)的密鑰長度。

一、ECDSA概述
橢圓曲線數(shù)字簽名算法(ECDSA)是使用橢圓曲線密碼(ECC)對數(shù)字簽名算法(DSA)的模擬。ECDSA于1999年成為ANSI標準,并于2000年成為IEEE和NIST標準。

它在1998年既已為ISO所接受,并且包含它的其他一些標準亦在ISO的考慮之中。與普通的離散對數(shù)問題(discrete logarithm problem DLP)和大數(shù)分解問題(integer factorization problem IFP)不同,橢圓曲線離散對數(shù)問題(elliptic curve discrete logarithm problem ECDLP)沒有亞指數(shù)時間的解決方法。因此橢圓曲線密碼的單位比特強度要高于其他公鑰體制。

數(shù)字簽名算法(DSA)在聯(lián)邦信息處理標準FIPS中有詳細論述,稱為數(shù)字簽名標準。它的安全性基于素域上的離散對數(shù)問題。橢圓曲線密碼(ECC)由Neal Koblitz和Victor Miller于1985年發(fā)明。它可以看作是橢圓曲線對先前基于離散對數(shù)問題(DLP)的密碼系統(tǒng)的模擬,只是群元素由素域中的元素數(shù)換為有限域上的橢圓曲線上的點。

橢圓曲線密碼體制的安全性基于橢圓曲線離散對數(shù)問題(ECDLP)的難解性。橢圓曲線離散對數(shù)問題遠難于離散對數(shù)問題,橢圓曲線密碼系統(tǒng)的單位比特強度要遠高于傳統(tǒng)的離散對數(shù)系統(tǒng)。因此在使用較短的密鑰的情況下,ECC可以達到于DL系統(tǒng)相同的安全級別。這帶來的好處就是計算參數(shù)更小,密鑰更短,運算速度更快,簽名也更加短小。因此橢圓曲線密碼尤其適用于處理能力、存儲空間、帶寬及功耗受限的場合。

二、ECDSA原理
ECDSA是ECC與DSA的結(jié)合,整個簽名過程與DSA類似,所不一樣的是簽名中采取的算法為ECC,最后簽名出來的值也是分為r,s。

簽名過程如下:
1、選擇一條橢圓曲線Ep(a,b),和基點G;
2、選擇私有密鑰k(k<n,n為G的階),利用基點G計算公開密鑰K=kG;
3、產(chǎn)生一個隨機整數(shù)r(r<n),計算點R=rG;
4、將原數(shù)據(jù)和點R的坐標值x,y作為參數(shù),計算SHA1做為hash,即Hash=SHA1(原數(shù)據(jù),x,y);
5、計算s≡r - Hash * k (mod n)
6、r和s做為簽名值,如果r和s其中一個為0,重新從第3步開始執(zhí)行

驗證過程如下:
1、接受方在收到消息(m)和簽名值(r,s)后,進行以下運算
2、計算:sG+H(m)P=(x1,y1), r1≡ x1 mod p。
3、驗證等式:r1 ≡ r mod p。
4、如果等式成立,接受簽名,否則簽名無效。

1. 密碼強度比較

Symmetric ECC RSA
80 163 1024
112 233 2240
128 283 3072
192 409 7680

這是學(xué)術(shù)界普遍認可的密碼強度對照表。比如,3072-bit的RSA密碼強度,大約相當于283-bit的ECC密碼強度,大約相當于128-bit的對稱密碼算法的強度。換句話說,攻擊分組加密算法AES-128的難度,與攻擊數(shù)字簽名RSA-3072的難度相當。此外,我們應(yīng)注意到,從RSA-1024到RSA-3072,模數(shù)長度增長了200%,但密碼強度僅增強了50%左右;拿密碼哈希函數(shù)來比較,這個安全強度的增長只是相當于從SHA1增強到SHA-256。

2. 性能比較

筆者基于開源的tommathlib實現(xiàn)了ECDSA(符合ANSI X9.62標準)和RSA簽名算法(符合PKCS#1 v2.1, e=65537)。

_ Verify Sign
RSA-1024 12 us 511 us
RSA-2048 30 us 3270 us
ECDSA-192 590 us 490 us

表中數(shù)據(jù)是筆者基于自己的開發(fā)機器(Intel Xeon CPU E5520 @ 2.27GHz)上單線程運行得出的實驗結(jié)果。對于ECDSA來說,生成簽名與驗證簽名的開銷相差不大,而對于RSA來說,驗證簽名比生成簽名要高效得多,這是因為RSA可以選用小公鑰指數(shù),比如{3, 5, 17, 257 or 65537},而安全強度不變。如果只看單次操作,那么ECDSA的Sign操作比RSA的性能更好,而RSA的Verify要比ECDSA更好。

3. 結(jié)論
(1) RSA簽名算法適合于:Verify操作頻度高,而Sign操作頻度低的應(yīng)用場景。比如,分布式系統(tǒng)中基于capability的訪問控制就是這樣的一種場景。
(2) ECDSA簽名算法適合于:Sign和Verify操作頻度相當?shù)膽?yīng)用場景。比如,點對點的安全信道建立。

蔣鑫老師發(fā)布了一個ecc加密算法的樣例,其中部分內(nèi)容標識為//TODO的是需要聯(lián)系者補充,以驗證你對ECC的理解。如果需要答案或者與蔣鑫老師交流,請掃描二維碼加群溝通。
源碼地址: https://github.com/PPIO/ppio-blockchain-code-talks

本次實錄紀要由輝哥(王登輝,下筆有神區(qū)塊鏈 CTO 王登輝,HiBlock上海合伙人)整理記錄,轉(zhuǎn)發(fā)務(wù)必注明出處及本段信息。

現(xiàn)場活動合影照片:

坐席左一女生為neutrino社區(qū)主管劉怡女士,坐席左二為本次分享嘉賓蔣鑫老師。

3. 下期活動宣傳

1)題目:
區(qū)塊鏈技術(shù)工坊47期】區(qū)塊鏈醫(yī)療方案和分布式認證介紹

2)議題:
北京眾享比特科技有限公司成立于2014年,是國內(nèi)最早從事區(qū)塊鏈底層平臺和應(yīng)用案例開發(fā)的技術(shù)服務(wù)公司。現(xiàn)為國家高新技術(shù)企業(yè)、中關(guān)村高新技術(shù)企業(yè),共取得了61項軟件著作權(quán),已申請50項核心專利。在醫(yī)療方面眾享比特,團隊開發(fā)了區(qū)塊鏈處方藥分發(fā)平臺,解決處方藥單的“多重支付”問題——比如有些人會拿著一張藥單去各個藥房多次用醫(yī)??ㄩ_藥,會造成騙保的情況。 本次技術(shù)工坊,我們就來聽聽他們在區(qū)塊鏈+醫(yī)療領(lǐng)域的解決方案和應(yīng)用實踐吧。

議題綱要:

  1. 醫(yī)療信息化領(lǐng)域存在問題探討
  2. 區(qū)塊鏈助力處方藥信息流轉(zhuǎn)
  3. 醫(yī)療領(lǐng)域數(shù)據(jù)共享方案介紹
  4. 分布式身份認證系統(tǒng)

3)嘉賓:

崔志華是北京眾享比特科技有限公司上海分公司技術(shù)負責(zé)人,南京大學(xué)信息管理學(xué)院眾享科技區(qū)塊鏈實驗室研究員,曾任江蘇眾享金聯(lián)科技有限公司技術(shù)總監(jiān),HP物聯(lián)網(wǎng)專家,云架構(gòu)師等;曾負責(zé)多個國內(nèi)大型物聯(lián)網(wǎng)及區(qū)塊鏈等項目的開發(fā)和實施。在使用區(qū)塊鏈技術(shù)服務(wù)金融,醫(yī)療,電商等領(lǐng)域有深刻的認識和豐富的落地經(jīng)驗,具備在復(fù)雜的商業(yè)場景中運用成熟的技術(shù)解決行業(yè)痛點。

4)時間/地點:
2019-06-12(周三晚上) 18:30 / 上海徐匯區(qū)龍華中路596號A座

5)活動報名海報
參會活動需要短信門禁,敬請報名參會,空降無法著落。


加入HiBlock技術(shù)微信群:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 函數(shù)作用域 作用域介紹 python中的作用域分4種情況:L:local,局部作用域,即函數(shù)中定義的變量;E:en...
    Mr_w_d2f3閱讀 246評論 0 0
  • 一個人的深度決定了她的高度,一個人的高度又決定了她的深度。角度不同,理解不同。高度無法莫名拔高,只有經(jīng)歷些歲月的打...
    榴蓮幫主閱讀 207評論 0 0
  • 有了超越生命的理想和信仰,有了獻身的覺悟以及走向毀滅的坦然也就有了靈魂 感性理性之爭 宿命 一串數(shù)據(jù)代表不了靈魂,...
    bluelz21閱讀 968評論 0 0
  • 網(wǎng)絡(luò)中四 2018.4.26 持續(xù)分享第287天 (三年前的今天,詩人汪國真永遠的離開了我們。再次品讀“走向遠方”...
    xfsunshine閱讀 427評論 0 0
  • 被動畫愛好者戲稱為日本動畫國家隊的《DARLING in the FRANXX》,在經(jīng)過半年過山車一樣的大起大落之...
    妖狐電影閱讀 897評論 0 1

友情鏈接更多精彩內(nèi)容