專利名稱:生成用于電子設(shè)備的公鑰的方法以及電子設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及生成公鑰的方法。
本發(fā)明還涉及一種電子設(shè)備,特別是安全令牌(token)。
本發(fā)明另外涉及一種鑒權(quán)方法。
本發(fā)明還涉及一種程序組件。
另外,本發(fā)明還涉及計算機可讀介質(zhì)。
背景技術(shù):
對于電子售票、運輸或者數(shù)字訪問控制系統(tǒng)等很多應(yīng)用,使用 安全令牌來存儲相關(guān)信息或安全信息。通常安全性部分取決于以下事 實,即安全令牌是可靠的,其中使用了特定的硬件單元并且其處理無 法由PC或其它電子設(shè)備模擬。特別是對運輸應(yīng)用來說,防止仿票的 實現(xiàn)方式取決于以下條件,即只有一種特定的安全令牌能夠在非常嚴(yán) 格的物理環(huán)境下提供特定形式的序列號。
一般來說,通過現(xiàn)場可編程門陣列(FPGA)來復(fù)制安全令牌并 不困難,但是復(fù)制的成本通常會超出攻擊所得的利益。
為了提高防止復(fù)制攻擊的安全等級,鑒權(quán)的加密驗證可以是一 個選項。由于缺乏現(xiàn)有的對稱密鑰基礎(chǔ)設(shè)施和復(fù)雜的密鑰管理, 一般 的解決方案是使用不對稱原語(asymmetric primitives)的加密驗 證。這類基于不對稱原語的協(xié)議可以在一個數(shù)學(xué)群(mathematical gro叩)上實現(xiàn),其中離散對數(shù)問題難以解決。在此數(shù)學(xué)群中選擇基 元素或基點g,然后將其用在例如用于生成公鑰或者用于對各個安全 令牌進行鑒權(quán)的算法中。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種用來提供公鑰和/或為鑒權(quán)算法提供基點的替代方法。
為了實現(xiàn)上述目的,提供了根據(jù)獨立權(quán)利要求的生成公鑰的方 法、電子設(shè)備(特別是安全令牌)、鑒權(quán)方法、程序組件、以及計算 機可讀介質(zhì)。
根據(jù)本發(fā)明的一個示例性實施例,提供了生成用于電子設(shè)備的 公鑰的方法,其中該方法包括基于私鑰以及與電子設(shè)備相關(guān)聯(lián)的唯一 標(biāo)識符來生成公鑰。
根據(jù)一個示例性實施例,電子設(shè)備包括存儲器,其中該存儲器 適用于存儲根據(jù)本發(fā)明的示例性實施例的公鑰。特別地,該公鑰可以 存儲在存儲器中。
根據(jù)一個示例性實施例,用于對電子設(shè)備進行鑒權(quán)的方法包括 生成根據(jù)本發(fā)明的示例性實施例的公鑰、將該公鑰存儲在電子設(shè)備 中、把公鑰和唯一標(biāo)識符發(fā)送至另一電子設(shè)備、以及使用不對稱驗證 算法對電子設(shè)備進行鑒權(quán)。特別地,該電子設(shè)備是根據(jù)示例性實施例 的電子設(shè)備。
根據(jù)一個示例性實施例,提供了程序組件,該組件在通過處理 器執(zhí)行時適用于控制或執(zhí)行生成公鑰的方法,其中該方法包括基于私 鑰以及與電子設(shè)備相關(guān)聯(lián)的唯一標(biāo)識符來生成公鑰。
根據(jù)一個示例性實施例,提供了一種計算機可讀介質(zhì),其中存 儲有計算機程序,該程序在通過處理器執(zhí)行時適用于控制或執(zhí)行生成 公鑰的方法,其中該方法包括基于私鑰以及與電子設(shè)備相關(guān)聯(lián)的唯一 標(biāo)識符來生成公鑰。
本申請中的術(shù)語"公鑰"特指公開的用于鑒權(quán)方法的密鑰,在 此鑒權(quán)方法中其可被用來鑒定一個實物。例如,可以基于不對稱驗證 算法的基元素或基點來生成所述公鑰。另外可以由可信任方發(fā)布對此
公鑰的證書(certificate)。
本申請中的術(shù)語"私鑰"或"密鑰"特指不公開的、與要鑒定 的實物相關(guān)聯(lián)的密鑰。
本申請中的術(shù)語"唯一標(biāo)識符"特指與要鑒定的實物相關(guān)聯(lián)的 唯一號碼,例如電子設(shè)備的標(biāo)識號或序列號。通過基于密鑰及唯一標(biāo)識符生成公鑰,可以相比公知的不對稱 驗證協(xié)議(如零知識驗證)使用顯著縮短(例如位數(shù)更少)的密鑰, 同時幾乎保持著與零知識驗證協(xié)議的標(biāo)準(zhǔn)應(yīng)用水平相當(dāng)?shù)陌踩燃墶?按照概括的觀點,可以說將被應(yīng)用于驗證協(xié)議或算法的全部計算中的 基點或基元素通過待驗證實物(如電子設(shè)備)的唯一標(biāo)識符(如序列 號)變?yōu)槎喾N。
對這樣通過使用多種基點生成的公鑰的使用是可靠的,因為從 數(shù)學(xué)的觀點來看,基本上僅能夠通過在公鑰的計算中發(fā)送密鑰/私鑰 或密碼指數(shù)(secret exponent)的數(shù)位來改變算法。由于在生成公 鑰時使用唯一標(biāo)識符,使得每個電子設(shè)備使用不同的基點,于是攻擊 者無法對整個系統(tǒng)進行整體攻擊,即通過存儲多個參考點以及使用例 如所謂的小步-大步(baby-step-giant-step)算法來對公共使用的 基點的離散對數(shù)假設(shè)進行破解。相反,攻擊者需要對不同的電子設(shè)備 (如安全令牌)進行不同的攻擊。因此,攻擊多于一個令牌會比在標(biāo) 準(zhǔn)系統(tǒng)中明顯困難。
另外,由于電子設(shè)備可以一直使用相同的多樣化基點并因此使 用相比標(biāo)準(zhǔn)系統(tǒng)明顯縮短的密鑰和隨機數(shù),可以降低計算負(fù)荷,于是 能夠提高使用根據(jù)一個示例性實施例的基于公鑰生成的鑒權(quán)方法的 系統(tǒng)的性能。讀取器一側(cè)需要為每個電子設(shè)備(如安全令牌)計算新 的基點,但是計算負(fù)荷可以基本上與標(biāo)準(zhǔn)系統(tǒng)相同。特別地,根據(jù)一 個示例性實施例,可以在例如安全令牌的電子設(shè)備中容易地實施不對 稱密鑰,這是因為通過使用多樣化的基點可以使用較小的密鑰來獲得 與標(biāo)準(zhǔn)不對稱密鑰算法相同的安全等級。
接下來對公鑰生成方法的其它實施例進行說明。這些實施例還 可應(yīng)用于所述電子設(shè)備、鑒權(quán)方法、程序組件、以及計算機可讀介質(zhì)。
根據(jù)另一個示例性實施例,該方法進一步包括使用初級基點來 生成用于公鑰生成的二級基點。特別地,可以基于同電子設(shè)備相關(guān)聯(lián) 的唯一標(biāo)識符來計算或生成二級基點。所述唯一標(biāo)識符可以是電子設(shè) 備的標(biāo)識號或序列號,其中電子設(shè)備可以是例如具有智能卡或者USB 安全令牌形式的安全令牌。由于可以基于初級基點和唯一標(biāo)識符生成二級基點,于是每個 電子設(shè)備可以生成各自不同的基點,這會在涉及使用這種公鑰和/或 基點對鑒權(quán)算法進行整體攻擊時提供增強的安全性。
根據(jù)該方法的另一個示例性實施例,初級基點為素域(prime field)或橢圓曲線上的基點。更一般地說,在難以解決離散對數(shù)問 題的情況下可以使用所有的數(shù)學(xué)群。使用這些群能夠增強使用所生成 的公鑰或基點的協(xié)議的安全性。
根據(jù)該方法的另一個示例性實施例,通過下式來計算公鑰-
y = g、其中
y表示公鑰,x表示私鑰,g'表示二級基點,通過^ = ^計算得 到,其中ID表示序列識別號,g表示初級基點。
接下來對電子設(shè)備的其它示例性實施例進行說明。這些實施例 還可應(yīng)用于產(chǎn)生公鑰的方法、鑒權(quán)方法、程序組件、以及計算機可讀 介質(zhì)。
根據(jù)電子設(shè)備的另一示例性實施例,存儲器還適用于存儲其唯 一標(biāo)識符以及用于公鑰的證書。特別地,可以將所述唯一標(biāo)識符和證 書存儲在存儲器中。在很多情況下所述電子設(shè)備可以是安全令牌。
在電子設(shè)備為安全令牌的情況下,可以使用現(xiàn)有的潛在序列號 基礎(chǔ)設(shè)施。即,可以假設(shè),針對每項處理,安全令牌都會將其序列號 傳送至讀取器以進行識別。這樣,序列號的應(yīng)用可以是使不對稱驗證 算法的已用基點多樣化的有效方式。
接下來對鑒權(quán)方法的其它示例性實施例進行說明。這些實施例 還可應(yīng)用于生成公鑰的方法、電子設(shè)備、程序組件、以及計算機可讀 介質(zhì)。
根據(jù)鑒權(quán)方法的另一示例性實施例,不對稱驗證算法是零知識 驗證算法。特別地,所述零知識驗證算法是ElGamal型加密方案。
使用零知識驗證算法(如ElGamal型加密方案)能夠確保很高 的安全等級,因為這些算法屬于最安全級別的不對稱驗證。
根據(jù)另一個示例性實施例,所述鑒權(quán)方法還包括基于所述唯一 標(biāo)識符計算二級基點。概括地說,本發(fā)明示例方面的要點可以看成,通過使用現(xiàn)有的 用于安全令牌的序列號基礎(chǔ)設(shè)施,對零知識驗證算法的系統(tǒng)參數(shù)(如 基點、私鑰和/或公鑰)進行多樣化處理。因此,概括地看來,關(guān)于 現(xiàn)有零知識驗證算法(如標(biāo)準(zhǔn)ElGamal型算法)的一個機會,是通過 使用安全令牌的序列號來使所述ElGamal型算法多樣化。更具體地 說,使用該序列號對所述協(xié)議或算法中用于全部計算的基點或基元素 g進行多樣化處理。于是,可以對每個安全令牌使用新的基點。
上述示例性實施例的各個方面以及本發(fā)明的其它方面將參考下 文描述的實施例示例進行描述,并將通過這些實施例示例而變得明 顯。
下面參照實施例的示例對本發(fā)明進行詳細(xì)說明,本發(fā)明不限于 這些實施例示例。
圖l示意性表示了根據(jù)一個示例性實施例的鑒權(quán)方法的流程圖。 圖2示意性表示了一個安全令牌。
具體實施例方式
附圖中的圖示為示意性。在不同的附圖中,相似或相同的元素 具有相同的參考標(biāo)號。
下面參照圖1的流程圖對根據(jù)一個示例性實施例的基于零知識 驗證協(xié)議的鑒權(quán)方法ioo進行詳細(xì)說明。
在第一步驟101中,制造商定義了 (例如橢圓曲線上的)數(shù)學(xué) 群G的初級基點g。在第二步驟102中,為每個具有序列號ID的安 全令牌A選擇了私鑰x。然后根據(jù)g^g"和y-g、計算公鑰y(103), 其中g(shù)'表示對每個安全令牌為唯一的二級基點,因為ID對每個安全 令牌為唯一。然后將序列號ID、公鑰y和y的證書存儲在安全令牌 中(104)。所述證書可以由例如該安全令牌的制造商或者鑒權(quán)系統(tǒng) 中任意其它可信任第三方發(fā)布。
在鑒權(quán)時,安全令牌A將其序列號ID、公鑰y和證書發(fā)送至讀取器B (105)。讀取器B驗證該證書(106),在證書有效的情況下, B計算g、g'。來作為后面協(xié)議的基點(107)。在證書無效的情況下, 鑒權(quán)方法終止(113)。另外,A選擇數(shù)字r、計算gv并將結(jié)果發(fā)送 至讀取器B (108) 。 B在接受到gv的結(jié)果之后隨機地選擇詢問值c, 并將詢問值c發(fā)送至安全令牌A (109)。然后A計算 = (r + c. /D. x) mod w ,
并將resp發(fā)送至B(llO),其中n是數(shù)學(xué)群G的階數(shù)。下一步, B通過檢驗g',是否等于^.:r來驗證所述響應(yīng)resp (111)。在驗證 結(jié)果為肯定的情況下,安全令牌A為可靠(112)。在驗證結(jié)果為否 定的情況下,安全令牌A不可靠(113)。
根據(jù)一個示例實施例的算法可以應(yīng)用于每個存在序列號基礎(chǔ)設(shè) 施并且需要強加密鑒權(quán)驗證的系統(tǒng)中。假設(shè)一個令牌讀取器系統(tǒng)中每 個安全令牌都具有唯一的8字節(jié)序列號,則實際執(zhí)行過程可以具有如 下步驟
安全令牌的制造商定義了基于橢圓曲線的加密系統(tǒng),即制造商 公布了用于證書驗證的橢圓曲線的參數(shù)、基點g及其公鑰。為獲得適 當(dāng)?shù)陌踩燃墸梢赃x擇160位的參數(shù)。 一般認(rèn)為,使用160位的橢 圓曲線加密法甚至可以勝任合格數(shù)字簽名。因此,由于未必需要如此 高的安全等級,可以選擇甚至低于160位的值。在安全令牌和讀取器 二者中,可以實現(xiàn)對橢圓曲線執(zhí)行點乘的算法。
對于每個安全令牌,制造商可以生成唯一標(biāo)識(UID)、密鑰y,
可以計算或生成公鑰y-g,并且可以發(fā)布y的證書,即制造商用其 自身的私鑰來標(biāo)記y。假設(shè)使用了 8字節(jié)的UID和160位的高安全等 級,則密鑰可以具有96位,對應(yīng)的可以具有160位。
無論實體何時需要驗證安全令牌的本原(originality),該實 體都可以執(zhí)行參照圖l流程圖所述的協(xié)議。如果安全令牌通過測試, 則其為原始的,如果測試失敗則非原始的。所述協(xié)議是正確的,因為 一個能夠?qū)λ性儐栔礳進行正確應(yīng)答的攻擊者"知道"私有指數(shù)。
圖2示意性例示了一個安全令牌。此安全令牌可以是智能卡或 者USB安全令牌。特別地,圖2示意性地示出了 USB安全令牌200。USB安全令牌200包括適用于插入到讀取裝置的USB端口的接口部分 201,并包括為作為安全令牌200的一部分的集成電路形成封裝的主 體202。特別地,圖2中示意性地示出了存儲器203,其中可以存儲 私鑰、用于鑒權(quán)算法的基點、公鑰、公鑰的證書、序列號UID以及其 它數(shù)據(jù)。
最后應(yīng)當(dāng)注意,上述實施例是對本發(fā)明的例示而非限定,本領(lǐng) 域的技術(shù)人員能夠在不偏離由權(quán)利要求所限定的發(fā)明范圍的情況下 設(shè)計多種替代實施例。權(quán)利要求中置于括號內(nèi)的參考標(biāo)號不應(yīng)理解為 對權(quán)利要求的限定。詞語"包含"和"包括"等并不排除列出在作為
整體的權(quán)利要求或說明書中的元件或步驟之外的元件或步驟的存在。 對元件的單數(shù)引用并不排除對此元件的復(fù)數(shù)引用,反之亦然。在涉及
多種裝置的產(chǎn)品權(quán)利要求中,這些裝置中的一些可以由同一項軟件或 硬件實現(xiàn)。在互不相同的從屬權(quán)利要求中提及特定手段的情況并不表 示不可以使用這些手段的組合來獲取優(yōu)勢。
權(quán)利要求
1.一種生成用于電子設(shè)備(200)的公鑰的方法,該方法包括基于私鑰以及與電子設(shè)備(200)相關(guān)聯(lián)的唯一標(biāo)識符來生成公鑰(103)。
2. 根據(jù)權(quán)利要求1的方法,還包括使用初級基點來生成用于生成公鑰的二級基點。
3. 根據(jù)權(quán)利要求1的方法,其中基于與電子設(shè)備(200)相關(guān)聯(lián)的唯一標(biāo)識符來生成所述二級基點。
4. 根據(jù)權(quán)利要求3的方法,其中所述初級基點是素域或橢圓曲線上的基點。
5. 根據(jù)權(quán)利要求1的方法,其中所述電子設(shè)備(200)的唯一標(biāo)識符是序列識別號。
6. 根據(jù)權(quán)利要求5的方法,其中通過下式來計算公鑰-y表示公鑰,x表示私鑰,g'表示二級基點并且通過g'-g'。計算得到,其中ID表示序列識別號,g表示初級基點
7. —種電子設(shè)備(200),包括存儲器(203),其中所述存儲器(203)適用于存儲根據(jù)權(quán)利要求1的公鑰。
8. 根據(jù)權(quán)利要求7的電子設(shè)備(200),其中存儲器(203)還適用于存儲其唯一標(biāo)識符以及用于公鑰的證書。
9. 根據(jù)權(quán)利要求7的電子設(shè)備(200),其中所述電子設(shè)備(200)是安全令牌。
10. —種對電子設(shè)備(200)進行鑒權(quán)(100)的方法,該方法包括生成根據(jù)權(quán)利要求l的公鑰(103),在電子設(shè)備(200)上存儲公鑰(104),將公鑰和唯一標(biāo)識符發(fā)送至另一電子設(shè)備(105),以及使用不對稱驗證算法對電子設(shè)備進行鑒權(quán)。
11. 根據(jù)權(quán)利要求10的方法(100),其中所述不對稱驗證算法是零知識驗證算法。
12. 根據(jù)權(quán)利要求11的方法,其中所述零知識驗證算法是ElGamal型加密方案。
13. 根據(jù)權(quán)利要求10的方法,還包括基于唯一標(biāo)識符計算二級基點。
14. 一種程序組件,其在由處理器執(zhí)行時適用于控制或執(zhí)行根據(jù)權(quán)利要求1的生成公鑰的方法。
15. —種計算機可讀介質(zhì),其中存儲有計算機程序,所述計算機程序在由處理器執(zhí)行時適用于控制或執(zhí)行根據(jù)權(quán)利要求1的生成公鑰的方法。
全文摘要
提供了一種生成用于電子設(shè)備的公鑰的方法,其中所述方法包括基于私鑰以及與電子設(shè)備(200)相關(guān)聯(lián)的唯一標(biāo)識符來生成公鑰(103)。
文檔編號H04L9/30GK101682508SQ200880019587
公開日2010年3月24日 申請日期2008年4月28日 優(yōu)先權(quán)日2007年6月11日
發(fā)明者保羅·胡布梅爾, ??恕ぶZ伊曼 申請人:Nxp股份有限公司