《信息安全技術 SM2橢圓曲線公鑰密碼算法第2部分數(shù)字簽名算法-GB》_第1頁
《信息安全技術 SM2橢圓曲線公鑰密碼算法第2部分數(shù)字簽名算法-GB》_第2頁
《信息安全技術 SM2橢圓曲線公鑰密碼算法第2部分數(shù)字簽名算法-GB》_第3頁
《信息安全技術 SM2橢圓曲線公鑰密碼算法第2部分數(shù)字簽名算法-GB》_第4頁
《信息安全技術 SM2橢圓曲線公鑰密碼算法第2部分數(shù)字簽名算法-GB》_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

ICS35.040

L80

中華人民共和國國家標準

GB/TXXXXX.2—XXXX

信息安全技術SM2橢圓曲線公鑰密碼算法

第2部分:數(shù)字簽名算法

Informationsecuritytechnology-PublickeycryptographicalgorithmSM2basedon

ellipticcurves-

Part2:Digitalsignaturealgorithm

點擊此處添加與國際標準一致性程度的標識

(征求意見稿)

在提交反饋意見時,請將您知道的相關專利連同支持性文件一并附上

XXXX-XX-XX發(fā)布XXXX-XX-XX實施

GB/TXXXXX.2—XXXX

目??次

前言.................................................................錯誤!未定義書簽。

引言.................................................................................II

1范圍................................................................................1

2規(guī)范性引用文件......................................................................1

3術語和定義..........................................................................1

4符號和縮略語........................................................................1

5數(shù)字簽名算法........................................................................2

5.1總則...........................................................錯誤!未定義書簽。

5.2橢圓曲線系統(tǒng)參數(shù)................................................................2

5.3用戶密鑰對......................................................................2

5.4輔助函數(shù)........................................................................2

5.5用戶其它信息....................................................................3

6數(shù)字簽名的生成算法及流程............................................................3

6.1數(shù)字簽名的生成算法...............................................................3

6.2數(shù)字簽名生成算法流程.............................................................3

7數(shù)字簽名的驗證算法及流程............................................................4

7.1數(shù)字簽名的驗證算法..............................................................4

7.2數(shù)字簽名驗證算法流程............................................................6

附錄A(資料性附錄)數(shù)字簽名與驗證示例...............................................7

A.1一般要求.........................................................錯誤!未定義書簽。

A.2Fp上的橢圓曲線數(shù)字簽名............................................................7

A.3上的橢圓曲線數(shù)字簽名..........................................................8

F2m

I

GB/TXXXXX.2—XXXX

引言

N.Koblitz和V.Miller在1985年各自獨立地提出將橢圓曲線應用于公鑰密碼系統(tǒng)。橢圓曲線公鑰

密碼所基于的曲線性質(zhì)如下:

──有限域上橢圓曲線在點加運算下構成有限交換群,且其階與基域規(guī)模相近;

──類似于有限域乘法群中的乘冪運算,橢圓曲線多倍點運算構成一個單向函數(shù)。

在多倍點運算中,已知多倍點與基點,求解倍數(shù)的問題稱為橢圓曲線離散對數(shù)問題。對于一般橢圓

曲線的離散對數(shù)問題,目前只存在指數(shù)級計算復雜度的求解方法。與大數(shù)分解問題及有限域上離散對數(shù)

問題相比,橢圓曲線離散對數(shù)問題的求解難度要大得多。因此,在相同安全程度要求下,橢圓曲線密碼

較其它公鑰密碼所需的密鑰規(guī)模要小得多。

SM2是國家密碼管理局組織制定并提出的橢圓曲線密碼算法標準。GB/TXXXXX—XXXX的主要

目標如下:

——GB/TXXXXX.1—XXXX定義和描述了SM2橢圓曲線密碼算法的相關概念及數(shù)學基礎知識,

并概述了該部分同其它部分的關系。

——GB/TXXXXX.2—XXXX描述了一種基于橢圓曲線的簽名算法,即SM2簽名算法。

——GB/TXXXXX.3—XXXX描述了一種基于橢圓曲線的密鑰交換協(xié)議,即SM2密鑰交換協(xié)議。

——GB/TXXXXX.4—XXXX描述了一種基于橢圓曲線的公鑰加密算法,即SM2加密算法,該算

法需使用GB/TAAAAA—AAAA定義的SM3密碼雜湊算法。

——GB/TXXXXX.5—XXXX給出了SM2算法使用的橢圓曲線參數(shù),以及使用橢圓曲線參數(shù)進行

SM2運算的示例結果。

本部分為為GB/TXXXXX—XXXX第二部分,描述了基于橢圓曲線的數(shù)字簽名算法。

II

GB/TXXXXX.2—XXXX

SM2橢圓曲線公鑰密碼算法

第2部分:數(shù)字簽名算法

1范圍

GB/TXXXXX的本部分規(guī)定了SM2橢圓曲線公鑰密碼算法的數(shù)字簽名算法,包括數(shù)字簽名生成算

法和驗證算法,并給出了數(shù)字簽名與驗證示例及其相應的流程。

本部分適用于商用密碼應用中的數(shù)字簽名和驗證,可滿足多種密碼應用中的身份鑒別和數(shù)據(jù)完整

性、真實性的安全需求。

2規(guī)范性引用文件

下列文件對于本文件的應用是必不可少的。凡是注日期的引用文件,僅注日期的版本適用于本文件。

凡是不注日期的引用文件,其最新版本(包括所有的修改單)適用于本文件。

GB/TXXXXX信息安全技術SM2橢圓曲線公鑰密碼算法第1部分:總則

3術語和定義

下列術語和定義適用于本部分。

3.1

消息message

任意有限長度的比特串。

3.2

簽名消息signedmessage

由消息以及該消息的簽名部分所組成的一組數(shù)據(jù)項。

3.3

簽名密鑰signaturekey

在數(shù)字簽名生成過程中由簽名者專用的秘密數(shù)據(jù)項,即簽名者的私鑰。

3.4

簽名生成過程signatureprocess

輸入消息、簽名密鑰和橢圓曲線系統(tǒng)參數(shù),并輸出數(shù)字簽名的過程。

3.5

可辨別標識distinguishingidentifier

可以無歧義辨別某一實體身份的信息。

4符號和縮略語

下列符號和縮略語適用于本文件。

A,B使用公鑰密碼系統(tǒng)的兩個用戶。

a,bFq中的元素,它們定義Fq上的一條橢圓曲線E。

1

GB/TXXXXX.2—XXXX

dA用戶A的私鑰。

E(Fq)Fq上橢圓曲線E的所有有理點(包括無窮遠點O)組成的集合。

e密碼雜湊算法作用于消息M的輸出值。

e’密碼雜湊算法作用于消息M’的輸出值。

Fq包含q個元素的有限域。

G橢圓曲線的一個基點,其階為素數(shù)。

Hv()消息摘要長度為v比特的密碼雜湊算法。

IDA用戶A的可辨別標識。

M待簽名消息。

M’待驗證消息。

modn模n運算。例如,23mod7=2。

n基點G的階(n是#E(Fq)的素因子)。

O橢圓曲線上的一個特殊點,稱為無窮遠點或零點,是橢圓曲線加法群的單位元。

PA用戶A的公鑰。

q有限域Fq中元素的數(shù)目。

x||yx與y的拼接,其中x、y可以是比特串或字節(jié)串。

ZA關于用戶A的可辨別標識、部分橢圓曲線系統(tǒng)參數(shù)和用戶A公鑰的雜湊值。

(r,s)發(fā)送的簽名。

(r’,s’)收到的簽名。

橢圓曲線上點的倍點,即,,是正整數(shù)。

[k]PPk[k]PPP...Pk

k個

[x,y]大于或等于x且小于或等于y的整數(shù)的集合。

x頂函數(shù),大于或等于x的最小整數(shù)。例如,77,8.39。

x底函數(shù),小于或等于x的最大整數(shù)。例如,77,8.38。

#E(Fq)E(Fq)上點的數(shù)目,稱為橢圓曲線E(Fq)的階。

5數(shù)字簽名算法

5.1綜述

數(shù)字簽名算法由一個簽名者對數(shù)據(jù)產(chǎn)生數(shù)字簽名,并由一個驗證者驗證簽名的可靠性。每個簽名者

有一個公鑰和一個私鑰,其中私鑰用于產(chǎn)生簽名,驗證者用簽名者的公鑰驗證簽名。在簽名的生成過程

之前,要用密碼雜湊算法對M(包含ZA和待簽消息M)進行壓縮;在驗證過程之前,要用密碼雜湊算法

對M’(包含ZA和待驗證消息M’)進行壓縮。

5.2橢圓曲線系統(tǒng)參數(shù)

m

橢圓曲線系統(tǒng)參數(shù)包括有限域Fq的規(guī)模q(當q=2時,還包括元素表示法的標識和約化多項式);

定義橢圓曲線E(Fq)的方程的兩個元素a、bFq;E(Fq)上的基點G=(xG,yG)(G≠O),其中xG和yG是Fq

中的兩個元素;G的階n及其它可選項(如n的余因子h等)。

橢圓曲線系統(tǒng)參數(shù)及其驗證應符合GB/TXXXXX.1-xxxx第5章的規(guī)定。

5.3用戶密鑰對

用戶A的密鑰對包括其私鑰dA和公鑰PA=[dA]G=(xA,yA)。

用戶密鑰對的生成算法與公鑰驗證算法應符合GB/TXXXXX.1-xxxx第6章的規(guī)定。

5.4輔助函數(shù)

5.4.1概述

2

GB/TXXXXX.2—XXXX

在本部分規(guī)定的橢圓曲線數(shù)字簽名算法中,涉及到兩類輔助函數(shù):密碼雜湊算法與隨機數(shù)發(fā)生器。

5.4.2密碼雜湊算法

本部分規(guī)定使用國家密碼管理局批準的密碼雜湊算法,如SM3密碼雜湊算法。

5.4.3隨機數(shù)發(fā)生器

本部分規(guī)定使用國家密碼管理局批準的隨機數(shù)發(fā)生器。

5.5用戶其它信息

作為簽名者的用戶A具有長度為entlenA比特的可辨別標識IDA,記ENTLA是由整數(shù)entlenA轉(zhuǎn)換而

成的兩個字節(jié),在本部分規(guī)定的橢圓曲線數(shù)字簽名算法中,簽名者和驗證者都需要用密碼雜湊算法求得

用戶A的雜湊值ZA。按GB/TXXXXX.1-XXX4.2.6和4.2.5給出的方法,將橢圓曲線方程參數(shù)a、b、G

的坐標xG、yG和PA的坐標xA、yA的數(shù)據(jù)類型轉(zhuǎn)換為比特串,ZA=H256(ENTLA||IDA||a||b||xG||yG||xA||yA)。

6數(shù)字簽名的生成算法及流程

6.1數(shù)字簽名的生成算法

設待簽名的消息為M,為了獲取消息M的數(shù)字簽名(r,s),作為簽名者的用戶A應實現(xiàn)以下運算步

驟:

A1:置M=ZA||M;

A2:計算e=Hv(M),按GB/TXXXXX.1-xxxx4.2.4和4.2.3給出的方法將e的數(shù)據(jù)類型轉(zhuǎn)換為整

數(shù);

A3:用隨機數(shù)發(fā)生器產(chǎn)生隨機數(shù)k∈[1,n-1];

A4:計算橢圓曲線點(x1,y1)=[k]G,按GB/TXXXXX.1-XXXX4.2.8給出的方法將x1的數(shù)據(jù)類型轉(zhuǎn)

換為整數(shù);

A5:計算r=(e+x1)modn,若r=0或r+k=n則返回A3;

-1

A6:計算s=((1+dA)(k-rdA))modn,若s=0則返回A3;

A7:按GB/TXXXXX.1-XXXX4.2.2給出的細節(jié)將r、s的數(shù)據(jù)類型轉(zhuǎn)換為字節(jié)串,消息M的簽

名為(r,s)。

注:數(shù)字簽名生成過程的示例參見附錄A。

6.2數(shù)字簽名生成算法流程

數(shù)字簽名生成算法流程見圖1。

3

GB/TXXXXX.2—XXXX

用戶A的原始數(shù)據(jù)

(橢圓曲線系統(tǒng)參數(shù)、ZA、M、PA、dA)

第1步:置M=ZA||M

第2步:計算e=Hv(M)

第3步:產(chǎn)生隨機數(shù)k∈[1,n-1]

第4步:計算橢圓曲線點(x1,y1)=[k]G

第5步:計算r=(e+x1)modn

r=0或r+k=n?

-1

第6步:計算s=((1+dA)(k-rdA))modn

s=0?

否是

第7步:確定數(shù)字簽名(r,s)

輸出消息M及其數(shù)字簽名(r,s)

圖1數(shù)字簽名生成算法流程

7數(shù)字簽名的驗證算法及流程

7.1數(shù)字簽名的驗證算法

為了檢驗收到的消息M’及其數(shù)字簽名(r’,s’),作為驗證者的用戶B應實現(xiàn)以下運算步驟:

B1:檢驗r’∈[1,n-1]是否成立,若不成立則驗證不通過;

B2:檢驗s’∈[1,n-1]是否成立,若不成立則驗證不通過;

B3:置M’=ZA||M’;

B4:計算e’=Hv(M’),按GB/TXXXXX.1-XXXX4.2.4和4.2.3給出的方法將e’的數(shù)據(jù)類型轉(zhuǎn)換

4

GB/TXXXXX.2—XXXX

為整數(shù);

B5:按本GB/TXXXXX.1-XXXX4.2.3給出的方法將r’、s’的數(shù)據(jù)類型轉(zhuǎn)換為整數(shù),計算t=(r’+

s’)modn,若t=0,則驗證不通過;

B6:計算橢圓曲線點(x1’,y1’)=[s’]G+[t]PA;

B7:按GB/TXXXXX.1-XXXX4.2.8給出的方法將x1’的數(shù)據(jù)類型轉(zhuǎn)換為整數(shù),計算R=(e’+x1’)

modn,檢驗R=r’是否成立,若成立則驗證通過;否則驗證不通過。

注:如果ZA不是用戶A所對應的雜湊值,驗證自然通不過。數(shù)字簽名驗證過程的示例參見附錄A。

5

GB/TXXXXX.2—XXXX

7.2數(shù)字簽名驗證算法流程

數(shù)字簽名驗證算法流程見圖2。

用戶B的原始數(shù)據(jù)

(橢圓曲線系統(tǒng)參數(shù)、ZA、PA、M’、(r’,s’))

第1步:檢驗r’∈[1,n-1]是否成立

r’∈[1,n-1]?

第2步:檢驗s’∈[1,n-1]是否成立

s’∈[1,n-1]?

第3步:置M’=ZA||M’

第4步:計算e’=Hv(M’)

第5:計算t=(r’+s’)modn

t=0?否

第6步:計算橢圓曲線點

(x1’,y1’)=[s’]G+[t]PA

第7步:計算R=(e’+x1’)modn

R=r’?

驗證通過驗證不通過

圖2數(shù)字簽名驗證算法流程

6

GB/TXXXXX.2—XXXX

附錄A

(資料性附錄)

數(shù)字簽名與驗證示例

A.1綜述

本附錄選用GB/TAAAAA-AAAA《信息安全技術SM3密碼雜湊算法》給出的密碼雜湊算法,其

64

輸入是長度小于2的消息比特串,輸出是長度為256比特的雜湊值,記為H256()。

本附錄中,所有用16進制表示的數(shù),左邊為高位,右邊為低位。

本附錄中,消息采用GB/T1988給出的編碼。

設用戶A的身份是:ALICE123@YAHOO.COM。用GB/T1988給出的編碼IDA:414C49434531

3233405941484F4F2E434F4D。ENTLA=0090。

A.2Fp上的橢圓曲線數(shù)字簽名

橢圓曲線方程為:y2=x3+ax+b

示例1:Fp-256

素數(shù)p:8542D69E4C044F18E8B92435BF6FF7DE457283915C45517D722EDB8B08F1DFC3

系數(shù)a:787968B4FA32C3FD2417842E73BBFEFF2F3C848B6831D7E0EC65228B3937E498

系數(shù)b:63E4C6D3B23B0C849CF84241484BFE48F61D59A5B16BA06E6E12D1DA27C5249A

基點G=(xG,yG),其階記為n。

坐標xG:421DEBD61B62EAB6746434EBC3CC315E32220B3BADD50BDC4C4E6C147FEDD43D

坐標yG:0680512BCBB42C07D47349D2153B70C4E5D7FDFCBFA36EA1A85841B9E46E09A2

階n:8542D69E4C044F18E8B92435BF6FF7DD297720630485628D5AE74EE7C32E79B7

待簽名的消息M:messagedigest

私鑰dA:128B2FA8BD433C6C068C8D803DFF79792A519A55171B1B650C23661D15897263

公鑰PA=(xA,yA):

坐標xA:0AE4C7798AA0F119471BEE11825BE46202BB79E2A5844495E97C04FF4DF2548A

坐標yA:7C0240F88F1CD4E16352A73C17B7F16F07353E53A176D684A9FE0C6BB798E857

雜湊值ZA=H256(ENTLA||IDA||a||b||xG||yG||xA||yA)。

ZA:F4A38489E32B45B6F876E3AC2168CA392362DC8F23459C1D1146FC3DBFB7BC9A

簽名各步驟中的有關值:

M=ZA||M:

F4A38489E32B45B6F876E3AC2168CA392362DC8F23459C1D1146FC3DBFB7BC9A

6D65737361676520646967657374

密碼雜湊函數(shù)值e=H256(M):B524F552CD82B8B028476E005C377FB19A87E6FC682D48BB

5D42E3D9B9EFFE76

產(chǎn)生隨機數(shù)k:6CB28D99385C175C94F94E934817663FC176D925DD72B727260DBAAE1FB2F96F

計算橢圓曲線點(x1,y1)=[k]G:

坐標x1:110FCDA57615705D5E7B9324AC4B856D23E6D9188B2AE47759514657CE25D112

坐標y1:1C65D68A4A08601DF24B431E0CAB4EBE084772B3817E85811A8510B2DF7ECA1A

7

GB/TXXXXX.2—XXXX

計算r=(e+x1)modn:40F1EC59F793D9F49E09DCEF49130D4194F79FB1EED2CAA5

5BACDB49C4E755D1

-1

(1+dA):79BFCF3052C80DA7B939E0C6914A18CBB2D96D8555256E83122743A7D4F5F956

-1

計算s=((1+dA)(k-rdA))modn:6FC6DAC32C5D5CF10C77DFB20F7C2EB667A45787

2FB09EC56327A67EC7DEEBE7

消息M的簽名為(r,s):

值r:40F1EC59F793D9F49E09DCEF49130D4194F79FB1EED2CAA55BACDB49C4E755D1

值s:6FC6DAC32C5D5CF10C77DFB20F7C2EB667A457872FB09EC56327A67EC7DEEBE7

驗證各步驟中的有關值:

密碼雜湊算法值e’=H256(M’):B524F552CD82B8B028476E005C377FB19A87E6FC682D48BB

5D42E3D9B9EFFE76

計算t=(r’+s’)modn:2B75F07ED7ECE7CCC1C8986B991F441AD324D6D619FE06DD

63ED32E0C997C801

計算橢圓曲線點(x0’,y0’)=[s’]G:

坐標x0’:7DEACE5FD121BC385A3C6317249F413D28C17291A60DFD83B835A45392D22B0A

坐標y0’:2E49D5E5279E5FA91E71FD8F693A64A3C4A9461115A4FC9D79F34EDC8BDDEBD0

計算橢圓曲線點(x0’0,y0’0)=[t]PA:

坐標x0’0:1657FA75BF2ADCDC3C1F6CF05AB7B45E04D3ACBE8E4085CFA669CB2564F17A9F

坐標y0’0:19F0115F21E16D2F5C3A485F8575A128BBCDDF80296A62F6AC2EB842DD058E50

計算橢圓曲線點(x1’,y1’)=[s’]G+[t]PA:

坐標x1’:110FCDA57615705D5E7B9324AC4B856D23E6D9188B2AE47759514657CE25D112

坐標y1’:1C65D68A4A08601DF24B431E0CAB4EBE084772B3817E85811A8510B2DF7ECA1A

計算R=(e’+x1’)modn:40F1EC59F793D9F49E09DCEF49130D4194F79FB1EED2CAA5

5BACDB49C4E755D1

A.3上的橢圓曲線數(shù)字簽名

F2m

橢圓曲線方程為:y2+xy=x3+ax2+b

示例2:F2m-257

基域生成多項式:x257+x12+1

系數(shù)a:0

系數(shù)b:00E78BCD09746C202378A7E72B12BCE00266B9627ECB0B5A25367AD1AD4CC6242B

基點G=(xG,yG),其階記為n。

坐標xG:00CDB9CA7F1E6B0441F658343F4B10297C0EF9B6491082400A62E7A7485735FADD

坐標yG:013DE74DA65951C4D76DC89220D5F7777A611B1C38BAE260B175951DC8060C2B3E

階n:7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC972CF7E6B6F900945B3C6A0CF6161D

待簽名的消息M:messagedigest

私鑰dA:771EF3DBFF5F1CDC32B9C572930476191998B2BF7CB981D7F5B39202645F0931

公鑰PA=(xA,yA):

坐標xA:0165961645281A8626607B917F657D7E9382F1EA5CD931F40F6627F357542653B2

坐標yA:01686522130D590FB8DE635D8FCA715CC6BF3D05BEF3F75DA5D543454448166612

雜湊值ZA=H256(ENTLA||IDA||a||b||xG||yG||xA||yA)。

ZA:26352AF82EC19F207BBC6F9474E11E90CE0F7DDACE03B27F801817E897A81FD5

8

GB/TXXXXX.2—XXXX

簽名各步驟中的有關值:

M=ZA||M:

26352AF82EC19F207BBC6F9474E11E90CE0F7DDACE03B27F801817E897A81FD5

6D65737361676520646967657374

密碼雜湊算法值e=H256(M):AD673CBDA311417129A9EAA5F9AB1AA1633AD47718A84DFD

46C17C6FA0AA3B12

產(chǎn)生隨機數(shù)k:36CD79FC8E24B7357A8A7B4A46D454C397703D6498158C605399B341ADA186D6

計算橢圓曲線點(x1,y1)=[k]G:

坐標x1:003FD87D6947A15F9425B32EDD

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論