零知識證明 - 橢圓曲線基礎

買賣虛擬貨幣
年底了,有點忙。忙著給自己2019年做標記,忙著和小夥伴聚聚餐,談談創業,談談今年的狀態。手頭的產品也在打磨。區塊鏈技術是個有趣的行業,愛並痛著。上個星期,自己把零知識證明證明的理解梳理了一下,也嘗試直播五天分享我的理解。直播非常好玩,Zoom直播效能不錯。感受比較深的是,像這樣需要比較繁雜的理論基礎的知識不太好講,很多人在聽了第一天之後都撤了。也非常感謝和我一起堅持到最後的小夥伴,更要感謝加入零知識證明技術星球的小夥伴,你們的陪同給我很大的動力。做技術的小夥伴,一定要注意底層理論的積累,雖然底層理論學習貌似枯燥無味,卻能讓你能進行更高效率的證明或者推演。對橢圓曲線的學習,個人推薦如下的連結,沒有太多的術語,解釋的比較清楚。https://andrea.corbellini.name/2015/05/17/elliptic-curve-cryptography-a-gentle-introduction/https://andrea.corbellini.name/2015/05/23/elliptic-curve-cryptography-finite-fields-and-discrete-logarithms/本文也是在上述連結的基礎上的總結。
1. 實數域上的橢圓曲線1.1 定義

橢圓曲線的數學定義可以檢視Wolfram MathWorld:http://mathworld.wolfram.com/EllipticCurve.html。不是密碼學或者數學專業的小夥伴,看的是一頭霧水。便於工程理解,橢圓曲線是一系列滿足如下方程的點:

從方程可以看出,橢圓曲線是關於x座標對稱的曲線。除了座標系上曲線的點,橢圓曲線額外定義一個點(無窮遠處),記為 0。

也就是說,橢圓曲線是由如下的點組成:

1.2 基於橢圓曲線的群定義

在橢圓曲線的基礎上,可以定義一個加法群:

· 所有橢圓曲線上的點,就是這個群裡的元素
· 單位元就是0
· 點P的逆元是點P相對x座標的對稱點

結合群的定義,可以證明定義的這個加法群,就是阿貝爾群。

1.3 橢圓曲線加法計算

1.4 加法計算推導

當然,如果P/Q是同一個點的話,斜率的計算公式不同。

1.5 標量乘法(Scalar Multiplication)

在加法的基礎上,定義了標量乘法,同一個點相加多次:

1.6 對數問題

2. 有限域上的橢圓曲線

上面介紹的是基於實數的橢圓曲線的點,可以構造一個群。考慮特徵數為的有限域, 為素數。

2.1 擴充套件歐幾里得定理

給予二整數 a 與 b, 必存在有整數 x 與 y 使得ax + by = gcd(a,b)。gcd(a,b)是最大公約數。

2.2 模p運算下的乘法逆

透過擴充套件歐幾里得定理,可以求得x和y。x就是a的乘法逆。

2.3 在F_p定義橢圓曲線

在模p的情況下,這兩個等式相等。

2.4 點加

2.5 點加計算

其他條件下的推導,涉及的公式比較多。有興趣的小夥伴可以自行推導。

2.6 在有限群上的橢圓曲線有多少點?

橢圓曲線上的點的個數,稱為“階”。如果列舉0~p-1,檢視點的個數,不太現實,因為p是一個非常大的質數。Schoof演算法能在多項式時間確定橢圓曲線階:https://en.wikipedia.org/wiki/Schoof%27s_algorithm。

2.7 標量乘法

和實數域上一樣,可以使用double後相加的方法計算。在有限域上,有額外的特性,舉個例子:

很容易看出,在有限域上的橢圓曲線中一個點標量乘法的結果,組成一個在加法操作下的迴圈子群。在子群中的點,所有的加法的結果都還在子群中。而且,存在一個點,冪次(加法操作)能生成子群中的所有點。這樣的點,稱為“生成元”。

繞了一大圈,在有限域上的橢圓曲線上,存在很多個迴圈子群。子群是基於加法操作。

2.8 迴圈子群的階

Schoof演算法能確定整個基於有限域上的橢圓曲線上的點的個數,但是不能確定迴圈子群的個數。
拉格朗日定理指出,對於任何有限群G,G的每個子群H的階次(元素數)都會被G的階次整除。

https://en.wikipedia.org/wiki/Lagrange%27s_theorem_(group_theory)

該定理給尋找迴圈子群的階n,提供了一個思路:

1/ 利用Schoof演算法,計算出整個橢圓曲線的階
2/ 找出其所有的約數

2.9 尋找生成元

通常使用橢圓曲線演算法,先選擇曲線,計算橢圓曲線的階,然後在這條曲線上找到最大的子群。找子群,就是尋找子群對應的生成元。

2.10 離散對數問題

2.11 同態

總結:

有限域上的橢圓曲線是零知識證明的基礎。零知識的實現是基於離散對數問題。從計算的角度來看,F_p是個有限域,在之基礎上建立的橢圓曲線點的運算都是在這個域範圍內。有限域上的橢圓曲線上有很多迴圈子群F_r,具有加法同態的特性。離散對數問題指的是,在迴圈子群上已知兩點,卻很難知道兩點的標量。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;