2021-3-10 第二天
一、問題:
√1、表示形式為何要分為:未壓縮、壓縮、混合?
√2、點的不同表示形式在應用時主要應用在資料型別的轉換過程中,轉換過程具體是什麼樣的?
3、何時需要進行資料轉換?
4、私鑰db和隨機數rb,在哪些演算法下是一致的?哪些情況下是不一致的?
5、生成演算法和驗證演算法的推導和證明是什麼樣的?
6、其他基於橢圓曲線的演算法(包括數字簽名、金鑰交換、公鑰加密)(除了sm2外)的流程是什麼樣的?這些不同的流程如何設計的如此恰到好處?怎樣從理論上去判別它們的效能好壞?
二、規則:
有限域為素域fp時,要求p>2^191且p為素數
有限域為擴域f_(2^m )時,要求m>192且m為素數
橢圓曲線上的點均採用仿射座標表示
必須選擇安全的橢圓曲線
禁止使用弱橢圓曲線(包括超奇異曲線和異常曲線)
資料轉換規則橢圓曲線系統引數符合要求,能通過全部驗證
生成的橢圓曲線可以抗mov攻擊和異常曲線攻擊(包含在第4點中)
生成的金鑰對(主要是公鑰p)引數符合要求,能通過全部驗證
三、學習內容:
f_(2^m )上橢圓曲線的運算規則(包括求逆、加法、倍點)
橢圓曲線方程:
y2+xy=x3+〖ax〗2+b,其中a,b∈f_(2m ),且b≠0
倍點規則:
p_3=(x_3,y_3 ) 〖=p〗_1+p_1=2p_1
其中 λ=x_1+y_1/x_1,
x_3=λ^2+λ+a, y_3=〖x_1〗^2+(λ+1) x_3
f_(2^m )中元素表示方法:m長位元串、多項式基(pb)、正規基(nb)
f_(2^m )=
多項式基(pb):
記為:α=(a_(m-1) a_(m-2)…a_1 a_0)
正規基(nb):α=a_0 β(20 )+a_1 β(21 )+⋯+a_(m-1) β(2(m-1) )
記為:α=(a_0 a_1 a_2…a_(m-2) a_(m-1))
兩種表示都是位元串的形式,但是順序不同。
#正規基表示的位元排序是從小到大的:0 1 2…m-1
#多項式基表示的位元排序是從大到小的:m-1…2 1 0
3、資料型別的轉換(位元串、位元組串、域元素、點、整數)
橢圓曲線上點的三種表示形式(壓縮、未壓縮、混合)以及單一位元組pc
域元素:q為奇素數時,域元素可看作整數;q=2^m時,域元素可看作位元串。
fp上橢圓曲線點的壓縮和解壓縮:
#橢圓曲線上,x確定時,對應兩個y值,一定為一奇一偶,因此y_p的值為0或1
壓縮:(y_p ) ̃取為y_p的最右邊一位元(0或1)
解壓縮:根據xp和橢圓曲線公式,計算y_p』。
若(y_p ) ̃與y_p最右邊一位元一致,則〖y_p=y〗_p』;否則,〖y_p=p-y〗_p』。
#pc為02或06時,y_p為偶數
#pc為03或07時,y_p為奇數
#pc為00時,表示p為無窮遠點o
#pc為04時,表示未壓縮,y_p的值從y中獲得
4、系統引數驗證
引數:a)域的規模q=p
b)(選項)乙個長度至少為192的位元串seed
c)fp中的兩個元素a和b,它們定義橢圓曲線e的方程,y2=x3+ax+b
d)基點g=(xg,yg)∈e(fp),g≠o
e)基點g的階n
f)(選項)余因子h=#e(fp)/n
驗證:橢圓曲線系統引數生成者應驗證下面的條件
a)驗證q=p是奇素數
b)驗證a、b、xg和yg是區間[0,p-1]中的整數
c)若按照附錄d描述方法擬隨機產生橢圓曲線,驗證seed是長度至少為192的位元串,且a,b由seed派生得到
d)驗證(4a3+27b2)mod p ≠ 0
e)驗證yg2=xg3+axg+b(mod p)
f)驗證n是素數,n>2191且n>4*p(1/2)
g)驗證[n]g=o
h)計算 h』=⌊〖(p(1/2)+1)〗2/n⌋,並驗證〖h=h〗』
i)驗證抗mov攻擊條件和抗異常曲線攻擊條件成立
j)若以上任何乙個驗證失敗,則輸出「無效「
5、選擇安全的橢圓曲線
ecdlp現有攻擊方法:
pohlig-hellman方法
bsgs方法
pollard方法
並行pollard方法
mov-方法
異常曲線離散對數求解方法
ghs-方法
#一般的離散對數問題,求解方法都為指數級複雜度
#某些特殊曲線的離散對數問題,存在多項式級或亞指數級複雜度的演算法
安全橢圓曲線滿足的條件
抗mov攻擊
一些約化攻擊:將有限域f_q上的橢圓曲線離散對數問題,約化為f_(q^b )。
#這種攻擊方法只有在b較小時實用,大多數橢圓曲線不符合
抗mov攻擊條件,確保一條橢圓曲線不易受此約化方法攻擊。
mov閾:乙個正整數b,使得求取f_(q^b )上離散對數問題至少與f_q上的橢圓曲線離散對數問題同樣困難。
對於q>2^191,要求b≥27
2)抗異常曲線
在素域上的橢圓曲線〖e(f〗_q),若〖#e(f〗_q)=p,則〖e(f〗_q)為異常曲線。
#經證明可在多項式時間內求解異常曲線的離散對數。
抗異常曲線條件:〖#e(f〗_q)≠p
f_q上絕大多數橢圓曲線滿足抗異常曲線攻擊條件
3)其他條件
為避免pohlig-hellman方法和pollard方法的攻擊,基點的階n需要是足夠大的素數。
為避免ghs方法的攻擊,f_(2^m )中的m應選擇素數。
2021 研一學習筆記 day5
2021 3 15 第五天 一 問題 1 static const都代表什麼意義,何時使用 2 ifdef debug endif 的意義與使用場景 3 如何通過函式傳遞乙個陣列?一種方法為結構體,指標的方法上次除了首個元素外,其他元素均發生錯誤,原因未知 4 unsigned int型別,如果用 ...
2021 研一學習筆記 day7
2021 3 19 第七天 github cplusplus 一 基礎高階 環境 ubuntu 18.04 編譯器 gcc g 一 基礎高階 三 this this作用域在類內部 當在類的非靜態成員函式中訪問類的非靜態成員時,編譯器會自動將物件本身的位址作為乙個隱含引數傳遞給函式。對各成員的訪問均通...
day2學習筆記
硬體 cpu,主機板,記憶體,電源 主機箱,硬碟,顯示卡,滑鼠 鍵盤 軟體軟體 開發 軟體開發 人機互動 圖形化介面,命令列 科學計算,資料處理,自動控制,計算機輔助設計,人工智慧 tab shift ctrl alt 空格 全選 ctrl a 複製 ctrl c 貼上 ctrl v 撤銷 ctrl...