專利名稱:用于散列到橢圓曲線的點(diǎn)上的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明總體涉及密碼術(shù),具體涉及散列到橢圓曲線的點(diǎn)上。
背景技術(shù):
本部分意在向讀者介紹本領(lǐng)域中可能與下面描述和/或要求保護(hù)的本發(fā)明各個(gè) 方面相關(guān)的各個(gè)方面。相信該討論有助于向讀者提供背景信息以便于更好地理解本發(fā)明的 各個(gè)方面。相應(yīng)地,應(yīng)當(dāng)理解,要從這種角度來閱讀這些論述,而不是作為對(duì)現(xiàn)有技術(shù)的引 入。散列函數(shù)將消息(通常表示為串)作為輸入并產(chǎn)生固定長(zhǎng)度的散列值(也稱作 “消息摘要”或“數(shù)字指紋”)。更具體地,散列函數(shù)h將任意有限長(zhǎng)度的比特串映射至固定 長(zhǎng)度(例如1個(gè)比特)的比特串上;/ζ: {0,1廣4 {0,l}';m B Μ>)。散列值h(m)是 輸入串m的緊致表示。對(duì)于密碼應(yīng)用來說,散列函數(shù)可以要求附加屬性
-抗前像性給定輸出V,找到散列為ν的輸入u(即,使得h(U) = ν)在計(jì)算上是 不可行的。-抗第二圖像性給定一對(duì)U和ν= h(u),找到散列為ν的第二輸入U(xiǎn)’乒u(即, 使得h(u’)= V = h(u))在計(jì)算上是不可行的。-抗沖突性找到散列為相同值的任何兩個(gè)不同輸入u和U’(即,使得h(u)= h(u’ )同時(shí)U’ ^u)在計(jì)算上是不可行的。-隨機(jī)預(yù)言幾種安全驗(yàn)證假定散列函數(shù)的輸出充當(dāng)隨機(jī)預(yù)言。這是由M.Bellare 禾口 P. Rogaway 在“Random Oracles are Practical AParadigm for Designing Efficient Protocols,,;in 1st ACM Conference onComputer and Communications Security, pages 62-73 ;ACM Press, 1993中描述的所謂的隨機(jī)預(yù)言模型。在很多密碼應(yīng)用(包括數(shù)字簽名)中使用散列函數(shù),它們?cè)诂F(xiàn)代加密算法的設(shè)計(jì) 中扮演基本角色,并且它們可以用于構(gòu)建消息認(rèn)證碼(MAC)。MAC是由秘密密鑰K作為索引 的函數(shù)hK的族。在例如FIPS198和FIPS 198-1 (都稱作“密鑰散列消息認(rèn)證碼(HMAC) ”) (聯(lián)邦信息處理標(biāo)準(zhǔn)公布)中描述MAC,F(xiàn)IPS 198在2002年3月公布,F(xiàn)IPS198-1(草案,尚 未批準(zhǔn))在2007年6月公布。幾種密碼應(yīng)用需要散列到橢圓曲線的點(diǎn)上。這包括基于標(biāo)識(shí)的加密方案,例如由 D. Boneh 禾口 M. Franklin 在"Identity-Based Encryptionfrom the Weil Pairing,,(SIAM Journal of Computing, 32 (3) :586_615,2003)中描述的方案,其特征在于比傳統(tǒng)的基于證 書的密碼術(shù)簡(jiǎn)單得多的公共密鑰基礎(chǔ)結(jié)構(gòu)。這些方案使用橢圓曲線點(diǎn)上的雙線性配對(duì)。具 體地,所謂的“提取”步驟需要將任意有限串映射至給定橢圓曲線的點(diǎn)的散列函數(shù)。如果G表示橢圓曲線的點(diǎn)的群(或者子群),問題是如何設(shè)計(jì)以串m為輸入且產(chǎn)生 散列值的散列函數(shù),該散列值表示橢圓曲線的點(diǎn)H {0,1}* — G,m 4 H(m)eG。可以從 § VI. 2of "A Course in Number Theory and Cryptography" byN.Koblitz, volume 114 of Graduate Texts in Mathematics, Springer-Verlag,2nd edition, 1994中描述的技術(shù)獲得一個(gè)這種方法。令K表示與最大“嘗試”次數(shù)相對(duì)應(yīng)的大 整數(shù),那么由于一次嘗試成功的概率大約是0.5,因此該方法的失敗概率大約是2_κ。還令E 表示由Weierstra β方程給出的在有限域Fq上的橢圓曲線E -.J2+Sl1XJ+a^j = x3+a2x2+a4x+a6其中曲線參數(shù)ai e Fq(l彡i彡6)。由滿足該Weierstra β方程的對(duì)(x,y)以及被稱作無窮遠(yuǎn)處的點(diǎn)的“特殊”點(diǎn)0 來給出橢圓曲線E的點(diǎn)的集合。給定輸入消息m,首先計(jì)算v = h(m),其中h:{0,i;r— {0, I}1是任何合適的散列函數(shù)(例如安全散列標(biāo)準(zhǔn)(SHA)族的散列函數(shù)),并且ν被視作區(qū)間 [Od1-I]中的整數(shù)。對(duì)于每個(gè)j = 1,2,...,K,定義m,」=vK+j。如果q SZ1K,則在如此 定義的整數(shù)m’彳與使用多項(xiàng)式表示的Fq的元素集合之間存在一對(duì)一的對(duì)應(yīng)關(guān)系。\表示 與m’」相對(duì)應(yīng)的Fq-元素。然后,對(duì)于j = 1,2, ...,K,坐標(biāo)χ = Xj并且進(jìn)行嘗試以求解 Weierstra^方程中的y。如果存在解,則將該解表示為y,如果/表示{l,...,k}中找到 解的最小j,則這定義了 =(々,灼)eEo該方法的問題在于,通過旁路分析和故障分析,其泄露了與輸入相關(guān)的信息。這可 能破壞基礎(chǔ)應(yīng)用的安全性。這還引入了在輸出分布中的某種偏向,這可能使基于隨機(jī)預(yù)言 模型的安全驗(yàn)證變?yōu)闊o效或變?nèi)?。此外,該方法的迭代特性引起某種無效。因此,應(yīng)當(dāng)理解,需要一種散列到橢圓曲線的點(diǎn)上的散列方法,來克服現(xiàn)有技術(shù)的 至少一些問題。本發(fā)明提供這種方法。
發(fā)明內(nèi)容
在第一方面,本發(fā)明涉及一種用于將任意有限長(zhǎng)度的串散列到群的元素上的方 法。獲得由將所述串映射至標(biāo)量的第一散列算法產(chǎn)生的第一散列值。將所述標(biāo)量的至少第 一部分與所述群的預(yù)定第一元素相乘,以獲得所述群的第二元素,輸出所述群的所述第二 元素。在第一優(yōu)選實(shí)施例中,所述群包括橢圓曲線的點(diǎn)。在第二優(yōu)選實(shí)施例中,通過計(jì)算來獲得所述串的所述第一散列值,以獲得所述標(biāo)量。在第三優(yōu)選實(shí)施例中,所述群的所述第一元素是最大階的元素。在第四優(yōu)選實(shí)施例中,所述方法還包括在所述第一散列值的第二部分與所述群 的預(yù)定第三元素之間執(zhí)行標(biāo)量乘法,以獲得所述群的第四元素;以及將所述群的所述第二 元素與所述群的所述第四元素相加,以獲得所述群的第五元素。在第二方面,本發(fā)明涉及一種用于將任意有限長(zhǎng)度的串散列到群的元素上的設(shè)備。所述設(shè)備包括設(shè)備用于獲得由將所述串映射至標(biāo)量的第一散列算法產(chǎn)生的第一散列 值的裝置;用于在所述第一散列值與所述群的預(yù)定第一元素之間執(zhí)行標(biāo)量乘法以獲得所述 群的第二元素的裝置;以及用于輸出所述群的所述第二元素的裝置。在第一優(yōu)選實(shí)施例中,所述群包括橢圓曲線的點(diǎn)。在第二優(yōu)選實(shí)施例中,用于獲得第一散列值的裝置適于計(jì)算所述第一散列值。在第三優(yōu)選實(shí)施例中,所述群的所述第一元素是最大階的元素。
在第三方面,本發(fā)明涉及一種包括所存儲(chǔ)的指令在內(nèi)的計(jì)算機(jī)程序產(chǎn)品,當(dāng)處理器執(zhí)行所述指令時(shí),所述指令執(zhí)行第一方面的任何所述實(shí)施例的方法。
現(xiàn)在將參照附圖,通過非限制性示例,來描述本發(fā)明的優(yōu)選特征,附圖中圖1示出了根據(jù)本發(fā)明的優(yōu)選實(shí)施例的設(shè)備。
具體實(shí)施例方式與迭代的現(xiàn)有技術(shù)解決方案相比,本發(fā)明采用根本上不同的用于散列到橢圓曲線 的點(diǎn)上的方案。該方法從橢圓曲線的預(yù)定點(diǎn)開始,并依賴于群的特征群的元素與標(biāo)量之間 的乘法自動(dòng)給出通常不同的群元素。為了散列到橢圓曲線的點(diǎn)上,將常規(guī)散列算法的輸出 作為標(biāo)量,并將橢圓曲線上的點(diǎn)作為群的元素。技術(shù)人員將理解,使用最大階的元素作為預(yù) 定點(diǎn)是有利的,這是由于其擴(kuò)大了可能的輸出的集合。更具體地,令11:{0,1}*— {0,I}1表示將任意有限長(zhǎng)度的比特串映射至長(zhǎng)度1的比 特串的常規(guī)散列函數(shù)。這種散列函數(shù)的示例是消息摘要5 (MD5)以及SHA-1。還令E表示橢 圓曲線,G表示其子群,并且P表示至少21階的G的點(diǎn)。那么,可以將根據(jù)本發(fā)明的優(yōu)選實(shí) 施例的散列方法定義為<formula>formula see original document page 5</formula>該散列函數(shù)是容易實(shí)施的,并映射至給定橢圓曲線上的點(diǎn)。此外,對(duì)于任何兩個(gè)不 同的輸入消息m和m’,由于ord(P)彡21,因此輸入消息m和m’遵循當(dāng)且僅當(dāng)h (m) = h(m,) 時(shí),H(m) =H(m’)。因此,散列函數(shù)H的安全性與基礎(chǔ)散列函數(shù)h的安全性相同。應(yīng)當(dāng)理解, 由于針對(duì)散列函數(shù)和橢圓曲線的一般攻擊是平方根攻擊,因此,所提出的構(gòu)建是最優(yōu)的。技術(shù)人員將理解,該方法可能有多種變型。例如,可以在乘法之后將群的一個(gè)或多 個(gè)預(yù)定元素相加。另一種可能性是在散列值與群中多個(gè)元素之間執(zhí)行單獨(dú)的標(biāo)量乘法,然 后將結(jié)果相加(盡管這與將標(biāo)量與元素加法結(jié)果相乘是相同的,這是由于該加法產(chǎn)生另一 元素)。另一個(gè)可能性是獲得被分為η個(gè)(有利地是不同的)部分的標(biāo)量散列值,在這些 部分與群的η個(gè)不同元素之間執(zhí)行標(biāo)量乘法,然后將結(jié)果相加。換言之(示出了 η = 2的 變型):h(m) =h」|h2并且H(m) = [hJPi+Dgh,其中P1和P2是群中的元素。圖1示出了根據(jù)本發(fā)明的優(yōu)選實(shí)施例的設(shè)備。設(shè)備100包括適于與其他設(shè)備(未 示出)進(jìn)行通信的至少一個(gè)接口單元110、至少一個(gè)處理器120以及適于存儲(chǔ)數(shù)據(jù)(例如中 間計(jì)算結(jié)果)的至少一個(gè)存儲(chǔ)器130。處理器120適于通過獲得(可能通過計(jì)算)輸入串 的散列值,使用該散列值作為與群的元素(有利地是橢圓曲線的點(diǎn))相乘的標(biāo)量,來執(zhí)行本 文的前述方法,并且處理器120適于輸出結(jié)果。計(jì)算機(jī)程序產(chǎn)品140 (例如CD-ROM或DVD) 包括所存儲(chǔ)的指令,當(dāng)處理器120執(zhí)行該指令時(shí),該指令執(zhí)行根據(jù)本發(fā)明的任何實(shí)施例所 述的方法。每當(dāng)必須將輸入值映射至橢圓曲線的點(diǎn)時(shí),都可以使用本發(fā)明的方法。本發(fā)明是 完全一般的,并可以適應(yīng)任何已知的(常規(guī))散列函數(shù),包括密碼標(biāo)準(zhǔn)中推薦的那些散列函數(shù),例如MD5、SHA以及HMAC。更重要的是,本發(fā)明的安全性與基礎(chǔ)(常規(guī))散列函數(shù)的安 全性相同。技術(shù)人員將理解,根據(jù)本發(fā)明的優(yōu)選實(shí)施例的方法不限于橢圓曲線;可以將其容 易地應(yīng)用于任何群,例如超橢圓曲線、或者有限域或有限環(huán)的乘法群、或者其子群??梢元?dú)立地或者以任何適當(dāng)組合來提供說明書以及(在適當(dāng)時(shí))權(quán) 利要求和附圖 中公開的每一個(gè)特征。還可以以軟件來實(shí)現(xiàn)被描述為以硬件實(shí)現(xiàn)的特征,反之亦然。連接 (在適當(dāng)時(shí))可以被實(shí)現(xiàn)為無線連接或有線(但不必是直接或?qū)S玫?連接。在權(quán)利要求中出現(xiàn)的參考標(biāo)記僅作示意之用,而不應(yīng)對(duì)權(quán)利要求的范圍有限制效果
權(quán)利要求
一種用于將任意有限長(zhǎng)度的串散列到群的元素上的方法,所述方法包括在設(shè)備中進(jìn)行的以下步驟獲得由第一散列算法產(chǎn)生的第一散列值,所述第一散列算法將所述串映射至標(biāo)量;在所述第一散列值的至少第一部分與所述群的預(yù)定第一元素之間執(zhí)行標(biāo)量乘法,以獲得所述群的第二元素;以及輸出所述群的所述第二元素。
2.根據(jù)權(quán)利要求1所述的方法,其中所述群包括橢圓曲線的點(diǎn)。
3.根據(jù)權(quán)利要求1所述的方法,其中獲得第一散列值的步驟包括以下步驟獲得所述 串,并針對(duì)所述串計(jì)算第一散列值,以獲得所述標(biāo)量。
4.根據(jù)權(quán)利要求1所述的方法,其中所述群的所述第一元素是最大階的元素。
5.根據(jù)權(quán)利要求1所述的方法,其中所述方法還包括以下步驟在所述第一散列值的第二部分與所述群的預(yù)定第三元素之間執(zhí)行標(biāo)量乘法,以獲得所 述群的第四元素;以及將所述群的所述第二元素與所述群的所述第四元素相加,以獲得所述群的第五元素。
6.一種用于將任意有限長(zhǎng)度的串散列到群的元素上的設(shè)備(100),所述設(shè)備(100)包括用于獲得由第一散列算法產(chǎn)生的第一散列值的裝置(110 ; 120),所述第一散列算法將 所述串映射至標(biāo)量;用于在所述第一散列值與所述群的預(yù)定第一元素之間執(zhí)行標(biāo)量乘法以獲得所述群的 第二元素的裝置(120);以及用于輸出所述群的所述第二元素的裝置(110;120)。
7.根據(jù)權(quán)利要求6所述的設(shè)備,其中所述群包括橢圓曲線的點(diǎn)。
8.根據(jù)權(quán)利要求6所述的設(shè)備,其中用于獲得第一散列值的裝置適于計(jì)算所述第一散 列值。
9.根據(jù)權(quán)利要求6所述的設(shè)備,其中所述群的所述第一元素是最大階的元素。
10.一種計(jì)算機(jī)程序產(chǎn)品(140),包括所存儲(chǔ)的指令,當(dāng)處理器執(zhí)行所述指令時(shí),所述 指令執(zhí)行根據(jù)權(quán)利要求1至5中任一項(xiàng)所述的方法。
全文摘要
本發(fā)明公開了一種用于散列到橢圓曲線的點(diǎn)上的方法和設(shè)備。本發(fā)明涉及散列到群的元素上,具體地涉及散列到橢圓曲線的點(diǎn)上。通過諸如SHA-1和MD5之類的“常規(guī)”散列算法來運(yùn)行輸入消息,并將使用該輸入消息作為與群的元素相乘的標(biāo)量。該結(jié)果必須也是群的元素。優(yōu)點(diǎn)在于,該散列算法的安全性與基礎(chǔ)“常規(guī)”散列算法的安全性相同。本發(fā)明還提供了一種裝置。
文檔編號(hào)H04L9/28GK101814989SQ20101011810
公開日2010年8月25日 申請(qǐng)日期2010年2月10日 優(yōu)先權(quán)日2009年2月19日
發(fā)明者馬克·喬伊 申請(qǐng)人:湯姆森許可貿(mào)易公司