2021 研一學習筆記 day2

2021-10-21 17:55:09 字數 2840 閱讀 7299

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...