橢圓曲線加密概覽 二

2021-10-06 19:57:20 字數 2426 閱讀 9023

橢圓曲線配對是包括確定性閾值簽名,zk-snark和其他更簡單形式的零知識證明在內的各種構造背後的關鍵密碼原語

橢圓曲線配對(或更確切地說,我們將在此處**的配對的具體形式;儘管其邏輯相當相似,也存在其他型別的配對)是地圖g2 x g1-> gt,其中:

它必須滿足的主要屬性是雙線性,在這種情況下,這意味著:

還有其他兩個重要條件:

那麼我們該怎麼做呢?

配對功能起作用的原因背後的數學非常棘手,涉及許多高階代數,甚至超出了我們到目前為止所見的範圍,但我將提供乙個概述。 首先,我們需要定義除數的概念,這基本上是在橢圓曲線點上表示函式的一種替代方法。 函式的除數基本上是對函式的零和無窮大進行計數。 要了解這意味著什麼,讓我們看幾個例子。 讓我們固定點p =(p_x,p_y),並考慮以下函式:

f(x, y) = x - p_x
除數為[p] + [-p]-2 * [o](使用方括號表示以下事實:我們指的是點p在函式的零和無窮集合中的存在,而不是 點p本身; [p] + [q]與[p + q]不同)。 理由如下:

技術上的原因大致是這樣的:因為曲線的方程為x³=y²+ b,所以y的無窮大度比x快「 1.5倍」,以使y²保持與x³保持一致。 因此,如果線性函式僅包含x,則表示為多重性2的無窮大;但是,如果線性函式包含y,則表示為多重性3的無窮大。

現在,考慮乙個「線性功能」:

ax + by + c = 0
仔細選擇a,b和c以便線穿過點p和q。由於橢圓曲線加法的工作原理(請參見頂部的圖),這也意味著它穿過-p-q。 並且它上公升到取決於x和y的無窮大,因此除數變為[p] + [q] + [-p-q]-3 * [o]。

我們知道,每個「有理函式」(即僅在點的座標上僅使用有限數量的+,-,*和/運算定義的函式)唯一地對應於某個除數,直到乘以乙個常數(即。 如果兩個函式f和g具有相同的除數,則對於某些常數k,f = g * k。

對於任意兩個函式f和g,f * g的除數等於f的除數加上g的除數(在數學教科書中,您會看到(f * g)=(f)+(g)), 因此,例如,如果f(x,y)= p_x-x,則(f³)= 3 * [p] + 3 * [-p]-6 * [o]; p和-p被「三重計數」,以說明在某種數學意義上f³在那些點上「快三倍」接近0的事實。

請注意,有乙個定理指出,如果您從函式的除數中「去除方括號」,則這些點必須相加為o([p] + [q] + [-pq]-3 * [o] 顯然適合,因為p + q-p-q-3 * o = o),並且具有此屬性的除數就是函式的除數。

現在,我們準備看看配對。 考慮以下通過其除數定義的函式:

現在,讓我們看一下乘積f_p * f_q * g ^ n。 除數為:

n * [p] - n * [o] + n * [q] - n * [o] + n * [p + q] - n * [p] - n * [q] + n * [o]
簡潔地簡化為:

n * [p + q] - n * [o]
注意,該除數的格式與上述f_p和f_q的除數的格式完全相同。 因此f_p * f_q * g^n = f_(p + q).

現在,我們引入乙個稱為「最終冪運算」步驟的過程,在此過程中,我們採用上述函式的結果(f_p,f_q等),並將其提高為冪z =(p¹²-1)/ n,其中p¹²- 1是乘法組在f_p²中的階數(即,對於任何x ϵ f_p¹², x^(p¹² - 1) = 1。 請注意,如果將此乘冪應用於已經提高到n的冪的任何結果,則將得到p¹²-1的冪的冪,因此結果變為1。因此,在最後的冪之後,g ^ n抵消 得出f_p ^ z * f_q ^ z = f_(p + q)^ z。 有一些雙線性適合您。

現在,如果要使兩個引數都為雙線性函式,則需要進行更怪異的數**算,而不是直接取值的f_p,而是取除數的f_p,這就是完整的「泰特配對」的地方 從。 為了證明更多結果,您必須處理「線性等價」和「威爾互惠」等概念.

請注意,可能進行這樣的事實配對有點混雜:一方面,這意味著我們可以進行配對的所有協議都成為可能,但也意味著我們必須更加注意橢圓曲線我們用。

每個橢圓曲線都有乙個值,稱為嵌入度。本質上,最小的k使得p ^ k-1是n的倍數(其中p是用於該字段的素數,而n是曲線階數)。在上面的字段中,k = 12,在用於傳統ecc的字段中(即我們不關心配對的字段),嵌入度通常非常大,以至於配對在計算上是不可行的;但是,如果我們不小心,則可以生成k = 4甚至1的字段。

如果k = 1,則可以減少橢圓曲線的「離散對數」問題(基本上,僅在點p = g * p的情況下恢復p,您必須解決「破解」橢圓曲線私鑰的問題)在f_p上遇到類似的數學問題,該問題變得更加容易(這稱為mov攻擊);使用嵌入度為12或更高的曲線可確保這種減少效果不可用,或者通過配對結果解決離散對數問題至少與「以正常方式」從公鑰中恢復私鑰一樣困難。計算上不可行)。別擔心;已針對此問題徹底檢查了所有標準曲線引數。

ECC橢圓曲線加密

rust實現 注 本博文是sec1 v2中描述的橢圓加密標準 參考資料 1 目錄加密元件 金鑰生成 diffie hellman原根 mqv原根 簽名方案 加密和金鑰傳輸方案 金鑰協商方案 參考資料 記有一串二進位制位表示的資料 b b 0 b 1 dots b 那麼按如下規則轉為八位組 八位組 轉...

橢圓曲線密碼系統 橢圓曲線

1 橢圓曲線 在這裡,橢圓曲線簡化為用 y2 x3 ax b表示的點的集合。將其離散化後,得到 y2 mod p x3 ax b mod p 2 群數學中的 群 是乙個由我們定義了一種二元運算的集合,二元運算我們稱之為 加法 並用符號 來表示。為了讓乙個集合g成為群,必須定義加法運算並使之具有以下四...

橢圓曲線加密學習的菜鳥入門

橢圓曲線 乙個更好的trapdoor構件 橢圓曲線是滿足特定數學等式的點的集合。橢圓曲線的方程像如下的樣子 它的影象 還有其他形式的橢圓曲線的表達形式,但是一般的橢圓曲線方程,乙個變數為2階,乙個變數為3階。它有一些好的屬性用於加密。1.奇怪的對稱性 它是水平對稱的。圖形是關於x軸對稱的。更有趣的是...