,

橢圓曲線加密原理分析,1分鐘看懂公鑰生成與範例

橢圓曲線加密原理

你可能沒聽過區塊鏈這個名詞,但你一定聽過 比特幣,比特幣可是近年來各個報章雜誌或網路媒體最喜愛的主題之一,不過比特幣其實只是一個建立在區塊鏈概念上的應用,區塊鏈才是比特幣的根本概念,那 區塊鏈是什麼呢?區塊鏈技術又有哪些艱深的名詞呢?我們現在就來了解橢圓曲線加密原理到底是什麼。

橢圓曲線加密原理(ECDSA)- 公鑰生成

ECDSA全名是橢圓曲線加密是一種非對稱式的加密技術,簡單來說經由橢圓曲線加密後的輸出,會有一對不對稱256位元的鑰匙,我們稱他為公鑰與私鑰,在先前的內容中我們清楚的了解了私鑰是如何生成的,那下一步來看看公鑰的生成吧。


橢圓曲線加密稱為非對稱加密原因

我們可以透過python將我們先前生成的私鑰簡單轉換成為公鑰,反之我們若想要從公鑰反推回私鑰則非常困難,因此稱為非對稱加密。

橢圓曲線加密公鑰生成
橢圓曲線加密的Python公鑰生成

橢圓曲線加密-公鑰的生成的流程:

  1. 選擇一條橢圓曲線
  2. 選擇曲線上一點當作自己的基點
  3. 數字產生器產生256bits的隨機數,當成我們的私鑰
  4. 利用基點與私鑰經由ECDSA加密運算得到我們的公鑰
橢圓曲線加密公鑰生成
經由橢圓曲線加密,公鑰、私鑰、地址的生成

其中在比特幣區塊鏈中使用的橢圓曲線函數為secp256k1,公鑰為64個位元組(byte),拆成兩個32位元組代表(x, y)座標值,為橢圓函數上的一點,而(x,y)的座標值則透過私鑰(n)與選擇的基點(G)有關,在生成(x,y)後公鑰組成為 0x04,x,y組成 。透過亂數生成的私鑰定義了身份,並利用他來簽署交易,相對而言公鑰則是向大家證明自己的身份。

橢圓曲線加密計算
橢圓曲線加密的 secp256k1 函數圖形

看完了公鑰和私鑰的生成流程,大家對區塊鏈公鑰私鑰的原理更加了解了嗎?下個部分,我們會介紹DAY8 Hash(雜湊表)是什麼?歡迎大家追蹤我們!

橢圓曲線加密原理


發佈留言