專利名稱:壓縮的ecdsa簽名的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及密碼方案并且在數(shù)字簽名算法中尤其實(shí)用。
背景技術(shù):
消息的數(shù)字簽名是依賴于某些只有簽名者知道的秘密的數(shù),此外,該數(shù)又依賴于被簽名的消息的內(nèi)容。簽名應(yīng)當(dāng)是可驗(yàn)證的。如果對(duì)一方是否對(duì)文檔進(jìn)行了簽名出現(xiàn)爭(zhēng)議(由于簽名者試圖否認(rèn)其確實(shí)創(chuàng)建的簽名,或者由于欺騙性聲明而導(dǎo)致),無(wú)偏的第三方應(yīng)當(dāng)能公正地解決這件事,而不需要訪問(wèn)簽名者的秘密信息(例如,私有密鑰)。
數(shù)字簽名在信息安全中具有很多應(yīng)用,特別地,它們被使用在密碼方案中。 一些應(yīng)用包括認(rèn)證、數(shù)據(jù)完整性和不可否認(rèn)性。數(shù)字簽名的一種特別重要的應(yīng)用是驗(yàn)證大型網(wǎng)絡(luò)中的公共密鑰。對(duì)于可信的第三方,驗(yàn)證是一種將用戶的身份與公共密鑰綁定的方式,使得在以后某個(gè)時(shí)間,其它實(shí)體可以對(duì)公共密鑰進(jìn)行認(rèn)證而無(wú)需來(lái)自可信第三方的幫助。
被稱為數(shù)字簽名算法(DSA)的密碼方案基于公知的且經(jīng)常討論的離散對(duì)數(shù)問(wèn)題的難解決性。DSA由美國(guó)國(guó)家標(biāo)準(zhǔn)和技術(shù)學(xué)會(huì)(NIST)于1991年提出并己經(jīng)成為美國(guó)聯(lián)邦信息處理標(biāo)準(zhǔn)(FIPS 186),稱為數(shù)字簽名標(biāo)準(zhǔn)(DSS)。該算法是公知的ElGamal簽名方案的變型,并且可以被分類為具有附錄的數(shù)字簽名(即一種依賴于密碼散列(hash)函數(shù)而不是定制冗余函數(shù)的數(shù)字簽名)。
橢圓曲線數(shù)字簽名算法(ECDSA)是一種可以應(yīng)用于橢圓曲線密碼系統(tǒng)且具有類似于DSA的屬性的簽名方案。它通常被認(rèn)為是最廣泛標(biāo)準(zhǔn)化的基于橢圓曲線的簽名方案,出現(xiàn)在ANSIX9.62, FIPS 186-2,正EE 1363-2000和ISO/IEC 15946-2標(biāo)準(zhǔn)以及多個(gè)草案標(biāo)準(zhǔn)中。
ECDSA簽名生成過(guò)程對(duì)若干域參數(shù)、私有密鑰"和消息m進(jìn)行
4運(yùn)算。輸出是簽名(r,",其中簽名分量r和S是整數(shù),并且如下進(jìn) 行處理。
1、 選擇隨機(jī)整數(shù)A^[1,^1],"是域參數(shù)之一 。
2、 計(jì)算K7-(X,,")并且將X/轉(zhuǎn)換為整數(shù)^,其中G是在橢圓曲 線£上的點(diǎn)并且是域參數(shù)之一。
3、 計(jì)算^= i, mod",其中如果f0,則返回步驟l。
4、 計(jì)算6 = /7(^),其中7/代表密碼散列(hash)函數(shù),其輸出具 有不超過(guò)"的比特長(zhǎng)度(如果不滿足該條件,則可以截?cái)?Z的輸出)。
5、 計(jì)算^ = ^^+ c^)modm其中a是簽名者的長(zhǎng)期私有密鑰。
如果
f0,則返回步驟l。
6、 將(r, s)對(duì)作為消息m的ECDSA簽名輸出。 ECDSA簽名驗(yàn)證過(guò)程對(duì)若干域參數(shù)、長(zhǎng)期公共密鑰g(其中0 =
a戶)、消息w以及以上導(dǎo)出的簽名(r,"進(jìn)行運(yùn)算。ECDSA簽名驗(yàn) 證輸出對(duì)簽名的拒絕或接受,并且如下進(jìn)行處理。
1、 驗(yàn)證r和s是區(qū)間[l,n-l]中的整數(shù)。如果驗(yàn)證失敗,則返回拒絕。
2、 計(jì)算e^7/(m)
3、 計(jì)算w = , mod "
4、 計(jì)算mi = ew mod "以及w2 = , mod w
5、 計(jì)算/ -w,尸+ M2g^^O尸+ r0 (根據(jù)以上3和4)
6、 如果i -oo,則拒絕該簽名
7、 將/ 的x坐標(biāo)x;轉(zhuǎn)換為整數(shù)^;計(jì)算v- ^ mod"
8、 如果y二 r,則接受該簽名,否則拒絕該簽名
為了提高ECDSA簽名驗(yàn)證的效率,在上面包括s的倒置在內(nèi)的 特定步驟5中,已知通過(guò)省略2b比特來(lái)截?cái)鄐而對(duì)ECDSA簽名進(jìn)行 了壓縮。這樣的壓縮的代價(jià)是額外的驗(yàn)證步驟,已知其代價(jià)為驗(yàn)證者 近似22b次額外的橢圓曲線組運(yùn)算。
在帶寬節(jié)約極為重要而且驗(yàn)證者可以容易地處理額外密碼運(yùn)算 的密碼應(yīng)用中特別需要簽名壓縮。 一個(gè)示例是二維條形碼,其中帶寬非常有限而驗(yàn)證者的處理器可能較快。另一個(gè)示例是RFID標(biāo)簽,RFID
標(biāo)簽需要來(lái)自射頻場(chǎng)的功率以便傳輸數(shù)據(jù),并因此非常希望低傳輸帶寬。
需要一種ECDSA簽名壓縮的方案,該方案中驗(yàn)證者所付出的代 價(jià)低于上述這種壓縮方案。
因此,本發(fā)明的目的是消除或減輕至少一個(gè)上述缺點(diǎn)。
發(fā)明內(nèi)容
一方面,提供了一種對(duì)消息的數(shù)字簽名進(jìn)行壓縮的方法,所述簽 名包括一對(duì)簽名分量r、 s,所述方法包括獲得與s在數(shù)學(xué)上相關(guān)的 一對(duì)值c、 d, c、 d中的一個(gè)值小于s;使用所述一個(gè)值來(lái)替代數(shù)字簽 名中的簽名分量s;以及將所述簽名轉(zhuǎn)發(fā)給接收者。
在另一方面,提供了一種密碼系統(tǒng),用于根據(jù)一對(duì)簽名分量r、 s 來(lái)生成壓縮的簽名,所述系統(tǒng)具有算術(shù)單元,用于提供與s在數(shù)學(xué)
上相關(guān)的一對(duì)值C、 d;以及簽名生成器,用于使用C、 d中的一個(gè)值
來(lái)替代簽名s。
在另一方面,提供了一種密碼系統(tǒng),用于驗(yàn)證從使用如上所述系
統(tǒng)的發(fā)送者接收的簽名r、 c,所述密碼系統(tǒng)包括算術(shù)單元,用于恢 復(fù)c、 d中的另一個(gè)值并將所述另一個(gè)值與預(yù)定準(zhǔn)則進(jìn)行比較。
在另一方面,提供了一種對(duì)數(shù)字簽名(r,s)進(jìn)行壓縮的方法,包括
以下步驟使用小于S的值C來(lái)替代值S,值C是根據(jù)S和另一個(gè)值d 導(dǎo)出的,值d足夠小使得C小于S;以及使用值c來(lái)替代值s以獲得壓 縮的簽名(r,c)。
在另一方面,提供了一種對(duì)壓縮的簽名進(jìn)行驗(yàn)證的方法,所述壓
縮的簽名包括值c,值c用于替代完整簽名(r,s)中的值s,所述方法包 括以下步驟使用所述壓縮的簽名的參數(shù)并使用消息來(lái)計(jì)算值d,值c 是根據(jù)值d和值s導(dǎo)出的;以及在根據(jù)預(yù)定準(zhǔn)則找到d值的情況下驗(yàn) 證所述壓縮的簽名。
6現(xiàn)在參考附圖,描述僅作為示例的本發(fā)明的實(shí)施例,其中 圖1是密碼通信系統(tǒng);
圖2是示意簽名壓縮方案和壓縮簽名的簽名驗(yàn)證方案的一個(gè)實(shí)施 例的流程圖3是示意簽名壓縮方案和壓縮簽名的簽名驗(yàn)證方案的另一個(gè)實(shí) 施例的流程圖。
具體實(shí)施例方式
因此,參考圖1,密碼通信系統(tǒng)總體上由數(shù)字IO表示。系統(tǒng)10 具有第一通信對(duì)端12和第二通信對(duì)端14,它們可以通過(guò)通信信道16 互相進(jìn)行通信。通信信道16可能是安全的,也可能是不安全的。每個(gè) 通信對(duì)端分別具有密碼模塊18和20,用于執(zhí)行密碼運(yùn)算。
每個(gè)密碼模塊18和20能夠執(zhí)行橢圓曲線密碼運(yùn)算,如ECDSA 簽名生成和對(duì)橢圓曲線E進(jìn)行運(yùn)算的驗(yàn)證方案,其中E定義在域Fg上。
這里描述的實(shí)施例特別適用于ECDSA算法,在該算法中,例如,可 以以驗(yàn)證者需要執(zhí)行額外密碼運(yùn)算為代價(jià)而對(duì)簽名(r,s)中的整數(shù)s進(jìn)
行壓縮。
在圖2中示例的第一實(shí)施例中,通信對(duì)端12可以被稱為"簽名者", 而通信對(duì)端14可以被稱為"驗(yàn)證者"。如上所述產(chǎn)生由簽名者12為消 息m生成的ECDSA簽名(r,s)。為了減少帶寬,通過(guò)例如用更小的值c 來(lái)替代s,可以對(duì)簽名進(jìn)行壓縮。這個(gè)示例中,值s和c由表達(dá)式
^E上modw相關(guān),選擇d的值使得c是小于s的值。d的值的可能范圍
或"界"是系統(tǒng)參數(shù)的一部分并且在用于確定恢復(fù)的d是否可接受的驗(yàn) 證步驟中使用。
可以通過(guò)使用擴(kuò)展Euclidean算法的變型來(lái)獲得c和d的值,以 發(fā)現(xiàn)形如ds+un=c的等武。更精確地,擴(kuò)展Euclidean算法中的中間步 驟計(jì)算值x、 y和z,使得xs+yi^z。通常,擴(kuò)展Euclidean算法從小的 x和y (取值0或1)和大的z (如n或s那樣大)開(kāi)始,以大的x和 y (分別約為n和s大小)和小的z (通常是l,除非n和s具有針對(duì)ECDSA中的n和s的選擇不會(huì)出現(xiàn)的公因數(shù))結(jié)束。在本實(shí)施例中, 擴(kuò)展Euclidean算法到一定程度停止,以獲得中間大小的x和y的值, 并分別滿足對(duì)d和c的要求。
使用針對(duì)c而獲得的值來(lái)替代簽名中的s,以提供壓縮的簽名(r,c)。 隨后,簽名者發(fā)送該簽名給接收者。
通過(guò)計(jì)算點(diǎn)R,接收者可以驗(yàn)證壓縮的簽名(r,c),其中R可以從 r恢復(fù)。從r恢復(fù)R可以為R提供多種可能性,在這種情形下,驗(yàn)證 者14可以為每個(gè)這樣的R嘗試以下驗(yàn)證方案??蛇x地,可在簽名或 消息m中嵌入額外的信息,或者與簽名或消息m —起發(fā)送額外的信 息,以指示哪個(gè)可能的值是對(duì)于R的正確選擇。例如這可以是R的y 坐標(biāo)值的第一個(gè)比特或類似技術(shù)。對(duì)于每個(gè)這樣的R,當(dāng)且僅當(dāng) 7 = ,(6尸+ /^)時(shí),完整簽名(r,s)定義為有效,根據(jù)上面的標(biāo)記法, A = 1 (eP + 等價(jià)于ci = + rg)。
為了驗(yàn)證簽名(r,c),驗(yàn)證者14首先計(jì)算『^^尸+ rg,這可以通過(guò) 使用對(duì)接收者可用的公共信息來(lái)完成。如上面所討論的,通常將e計(jì) 算為消息m的散列,例如^/Z(m)。通過(guò)利用d小于簽名者和驗(yàn)證者 為壓縮簽名而商定的預(yù)定界的知識(shí),驗(yàn)證者14隨后嘗試計(jì)算 d = logjci0。如果在該界內(nèi)沒(méi)能找到這樣的d,則該壓縮的簽名(r,c) 無(wú)效而被拒絕。類似地,如果所獲得的d值滿足所商定的界,則該簽 名被認(rèn)為通過(guò)驗(yàn)證。這樣的離散對(duì)數(shù)算法通?;ㄙM(fèi)與V^成比例的時(shí) 間。如果V^足夠小,則對(duì)于驗(yàn)證者14來(lái)說(shuō),使用這樣的算法是非常 實(shí)用的。 一旦(并且如果)驗(yàn)證者14獲得d,則通過(guò)計(jì)算s^c/dmod" 可以恢復(fù)完整簽名(r,s),允許驗(yàn)證者14使用或驗(yàn)證完整簽名(如果他 希望這樣做)。
在圖3所示的另一個(gè)實(shí)施例中,壓縮的簽名可以是(r,d),其中d 是上面的標(biāo)記法中使用的值d,在這種情況下,恢復(fù)的c值需要滿足 特定大小范圍,即是"足夠小"。
類似于上面的實(shí)施例,首先計(jì)算值『=^尸+ 〃2,然后驗(yàn)證者14 使用用于選擇R的任何合適方法來(lái)嘗試計(jì)算c^logJc/『),如果c足 夠小則可以實(shí)現(xiàn)這一計(jì)算。如果沒(méi)有找到這樣的c,則壓縮的簽名(r,d)無(wú)效而被拒絕。
一旦(并且如果)獲得C,則該簽名可以被認(rèn)為通過(guò)
驗(yàn)證,雖然通過(guò)計(jì)算^c/"mo^可以恢復(fù)完整簽名(r,s)(如果驗(yàn)證者 14希望使用或驗(yàn)證完整簽名(r,s))。
在許多實(shí)際應(yīng)用中,R的選擇通常被縮小到在兩個(gè)值(例如R和 -R)之間選擇,而不考慮r。通常,用于求解R和某點(diǎn)W之間的離散 對(duì)數(shù)的算法也將找到-R和W之間的對(duì)數(shù),這是因?yàn)槿绻谝粋€(gè)對(duì)數(shù) 是例如u,則另一個(gè)是-u。典型地,檢查-u足夠小較為容易,因此, 對(duì)于每一對(duì)候選的(R,-R),計(jì)算一個(gè)離散對(duì)數(shù)通常是足夠的。
通過(guò)以驗(yàn)證者14執(zhí)行額外的"次橢圓曲線組運(yùn)算為代價(jià)來(lái)去除 2b個(gè)比特,上面的壓縮方案可以有效地壓縮ECDSA簽名,其中b是 由簽名者選擇的預(yù)定值。對(duì)于已知壓縮技術(shù),節(jié)約2b個(gè)比特的代價(jià)是 ^次額外的簽名驗(yàn)證,對(duì)與適中大小的b而言這是相當(dāng)大的額外代價(jià)。
應(yīng)當(dāng)注意,ECDSA簽名(r,s)的驗(yàn)證、壓縮和解壓縮可以在不使用 私有密鑰的情況下完成。從安全的角度來(lái)看,這意味著壓縮的ECDSA 簽名在很大程度上保證如完整簽名一樣安全,這是因?yàn)闊o(wú)需私有密鑰 來(lái)壓縮和解壓縮完整簽名。從實(shí)用的角度來(lái)看,這意味著第三方可以 通過(guò)使用包括上述方案在內(nèi)的方法來(lái)驗(yàn)證壓縮的簽名,從而提供服務(wù)。 例如,CA可以作為中間媒介來(lái)壓縮簽名者創(chuàng)建的簽名并將其轉(zhuǎn)發(fā)給 接收者,在接收者處對(duì)其進(jìn)行驗(yàn)證。
雖然參考特定具體實(shí)施例描述了本發(fā)明,但是,對(duì)于本領(lǐng)域技術(shù) 人員來(lái)說(shuō),在不脫離所附權(quán)利要求中所述的本發(fā)朋的精神和范圍的前 提下,本發(fā)明各種變型將是顯而易見(jiàn)的。例如,該技術(shù)可以與其它離 散對(duì)數(shù)簽名算法一起使用,所述其它離散對(duì)數(shù)簽名算法使用短暫的私 有密鑰來(lái)生成隨后與消息綁定的第一簽名分量并使用簽名者的長(zhǎng)期私 有密鑰來(lái)生成第二簽名分量。
權(quán)利要求
1、一種對(duì)消息的數(shù)字簽名進(jìn)行壓縮的方法,所述簽名包括一對(duì)簽名分量r、s,所述方法包括獲得與s在數(shù)學(xué)上相關(guān)的一對(duì)值c、d,c、d中的一個(gè)值小于s;使用所述一個(gè)值來(lái)替代數(shù)字簽名中的簽名分量s;以及將所述簽名轉(zhuǎn)發(fā)給接收者。
2、 根據(jù)權(quán)利要求1所述的方法,其中,所述值c,d滿足預(yù)定準(zhǔn)則。
3、 根據(jù)權(quán)利要求2所述的方法,其中,所述d值被要求落入預(yù)定的界內(nèi)。
4、 根據(jù)權(quán)利要求3所述的方法,其中,所述值c小于所述分量s。
5、 根據(jù)權(quán)利要求4所述的方法,其中,所述分量r、s表示ECDSA簽名。
6、 根據(jù)權(quán)利要求1所述的方法,其中,s、 c和d相關(guān),使得s=c/d mod n。
7、 根據(jù)權(quán)利要求6所述的方法,其中,所獲得的所述值c、 d滿足預(yù)定準(zhǔn)則。
8、 根據(jù)權(quán)利要求7所述的方法,其中,所述值c、 d是通過(guò)應(yīng)用擴(kuò)展Euclidean算法來(lái)獲得的,所述算法的迭代在滿足所述預(yù)定準(zhǔn)則時(shí)終止。
9、 根據(jù)權(quán)利要求6所述的方法,其中,所述一個(gè)值對(duì)應(yīng)于c。
10、 根據(jù)權(quán)利要求6所述的方法,其中,所述一個(gè)值對(duì)應(yīng)于d。
11、 一種對(duì)根據(jù)權(quán)利要求1而生成的簽名進(jìn)行驗(yàn)證的方法,包括從所述簽名恢復(fù)與所述值c、 d中的另一個(gè)值相等的值,并確定所恢復(fù)的值是否滿足定義的準(zhǔn)則。
12、 根據(jù)權(quán)利要求11所述的方法,其中,所述另一個(gè)值的恢復(fù)是通過(guò)對(duì)所述簽名分量進(jìn)行組合而獲得的。
13、 根據(jù)權(quán)利要求12所述的方法,其中,從所述消息獲得中間值,并將所述中間值與從所述簽名分量獲得的值組合,以恢復(fù)所述另一個(gè)值。
14、 根據(jù)權(quán)利要求11所述的方法,其中,所述另一個(gè)值被要求落入定義的界內(nèi)。
15、 根據(jù)權(quán)利要求11所述的方法,包括以下步驟如果所述另一個(gè)值不滿足所述預(yù)定準(zhǔn)則,則拒絕所述簽名。
16、 根據(jù)權(quán)利要求11所述的方法,包括以下步驟如果所述另一個(gè)值滿足所述預(yù)定準(zhǔn)則,則接受所述簽名。
17、 根據(jù)權(quán)利要求16所述的方法,其中,對(duì)原始簽名執(zhí)行進(jìn)一步驗(yàn)證,所述原始簽名是通過(guò)將所述一個(gè)值和所述接收者恢復(fù)的所述另一個(gè)值應(yīng)用至所述接收者接收的所述簽名而獲得的。
18、 一種密碼系統(tǒng),用于根據(jù)一對(duì)簽名分量r、 s來(lái)生成壓縮的簽名,所述系統(tǒng)具有算術(shù)單元,用于提供與S在數(shù)學(xué)上相關(guān)的一對(duì)值C、 d;以及簽名生成器,用于使用C、 d中的一個(gè)值來(lái)替代所述簽名S。
19、 一種密碼系統(tǒng),用于驗(yàn)證從使用根據(jù)權(quán)利要求18所述的系統(tǒng)的發(fā)送者接收的簽名r、 C,所述密碼系統(tǒng)包括算術(shù)單元,用于恢復(fù)c、 d中的另一個(gè)值并將所述另一個(gè)值與預(yù)定準(zhǔn)則進(jìn)行比較。
全文摘要
本發(fā)明提供了一種用于壓縮ECDSA簽名的改進(jìn)壓縮方案。對(duì)于簽名(r,s),所述方案使用小于s的值c來(lái)替代(r,s)中的整數(shù)s。值c是根據(jù)s和另一個(gè)值d來(lái)導(dǎo)出的,d足夠小使得c小于s。通過(guò)使用r和e來(lái)計(jì)算值,e是消息m的散列,并使用所述值和從r恢復(fù)的值R來(lái)導(dǎo)出值d,從而驗(yàn)證壓縮的簽名(r,c)。隨后可以恢復(fù)值s并且隨后恢復(fù)并驗(yàn)證完整簽名。
文檔編號(hào)H04L9/32GK101647229SQ200780041946
公開(kāi)日2010年2月10日 申請(qǐng)日期2007年11月13日 優(yōu)先權(quán)日2006年11月13日
發(fā)明者斯科特·A·范斯騰 申請(qǐng)人:塞爾蒂卡姆公司