專利名稱:用于數(shù)字簽名以及認(rèn)證的系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及即使是受到很大限制的計(jì)算能力,或者即使完全沒(méi)有計(jì)算單元,也可以利用公開(kāi)密鑰加密系統(tǒng)來(lái)安全地對(duì)裝置或數(shù)字內(nèi)容的簽名進(jìn)行認(rèn)證的方法以及裝置。
背景技術(shù):
認(rèn)證是為了取締盜版行為、未認(rèn)證的復(fù)制或偽造,所以承擔(dān)重要的作用。例如,還可以在對(duì)護(hù)照的所有者進(jìn)行認(rèn)證或者以反偽造為目的的、內(nèi)置了可無(wú)線通信的芯片的安全的護(hù)照中采用該認(rèn)證,在此,認(rèn)證用芯片對(duì)制造物的出處進(jìn)行認(rèn)證。并且,受到著作權(quán)保護(hù)的數(shù)字媒體為了防止盜版行為等未認(rèn)證行為,
包含作為DRM (digital right managements)而公知的認(rèn)證用令牌。結(jié)果,支持這些認(rèn)證的設(shè)備(CD、 DVD、存儲(chǔ)卡、其他相同的存儲(chǔ)裝置)經(jīng)常具備認(rèn)證機(jī)制。最后,認(rèn)證還有效用于防止竟?fàn)幷邔?duì)產(chǎn)品進(jìn)行逆向工程,并且對(duì)于低價(jià)格大量生產(chǎn)也有用。例如,為了防止使用由竟?fàn)幷咧圃斓脑偬畛溆?refill)器材或偽造的墨盒(cartridge),可以在打印機(jī)墨盒中安裝認(rèn)證用芯片。
認(rèn)證由被認(rèn)證裝置(prover)將用于對(duì)其進(jìn)行確定的證據(jù)提示給認(rèn)證裝置(verifier)的協(xié)議構(gòu)成。通常,認(rèn)證裝置傳送只有被認(rèn)證裝置可以解決的請(qǐng)求(挑戰(zhàn)challenge),在該請(qǐng)求依照對(duì)稱密鑰加密法時(shí),纟皮認(rèn)證裝置和認(rèn)證裝置共有公共的保密密鑰,與此相對(duì),在公開(kāi)密鑰加密法的情況下,只有被認(rèn)證裝置具有保密密鑰,并且,任何認(rèn)證裝置都可以確認(rèn)"企查)由被認(rèn)證裝置提供的請(qǐng)求的解。
期待在不久的將來(lái)把RFID芯片用作認(rèn)證的手段,但是在現(xiàn)有技術(shù)中僅用于記錄標(biāo)簽信息、即利用無(wú)線發(fā)送來(lái)不加密地凈皮發(fā)送的固有的ID號(hào)碼。因此,可以接收發(fā)送頻率的任何人都獲知該標(biāo)簽信息,之后可以制作其復(fù)制品(clone )。利用基于對(duì)稱密鑰加密法的協(xié)議,可以對(duì)被認(rèn)證裝置和認(rèn)證裝置的通信進(jìn)行加密,所以是更好的解決方式。但是,由于保密密鑰由被認(rèn)證裝置和認(rèn)證裝置所共有,所以在認(rèn)證裝置不可靠或失去信用時(shí),可能會(huì)發(fā)生ID欺詐。
并且,在幾乎所有情況下,一個(gè)認(rèn)證裝置必須認(rèn)證多個(gè)被認(rèn)證裝置,因此一旦 一個(gè)認(rèn)證裝置失去信用時(shí),全部的保密密鑰都被公開(kāi),然后,全部被認(rèn)證裝置 也同樣失去信用。并且,在反偽造系統(tǒng)的范圍內(nèi),認(rèn)證裝置不是認(rèn)證個(gè)別的產(chǎn)
品,而應(yīng)該能夠認(rèn)證整個(gè)產(chǎn)品線。在產(chǎn)品線由數(shù)百萬(wàn)個(gè)單元(unit)構(gòu)成時(shí), 存儲(chǔ)全部的密鑰是過(guò)分的。此時(shí),乍一看,代替對(duì)各個(gè)單元具備一個(gè)保密密鑰 而對(duì)于全線具備一個(gè)密鑰是更好的主意。但是,如果不幸唯一一個(gè)單元變得危 險(xiǎn),則產(chǎn)品的全線的信用變得危險(xiǎn)。
取而代之,公開(kāi)密鑰密碼系統(tǒng),特別是數(shù)字簽名可以用于認(rèn)證的目的。認(rèn) 證裝置將隨機(jī)的消息發(fā)送給使用其保密密鑰在消息中簽名的被認(rèn)證裝置。并 且,認(rèn)證裝置可以不使用保密密鑰而僅使用被認(rèn)證裝置的公開(kāi)密鑰認(rèn)證簽名, 由此可以確認(rèn)被認(rèn)證裝置的來(lái)歷。在基于公開(kāi)密鑰加密法的認(rèn)證系統(tǒng)中,認(rèn)證 裝置不知道被認(rèn)證裝置的保密密鑰,所以具有認(rèn)證裝置無(wú)法偽裝成被認(rèn)證裝置 的優(yōu)點(diǎn)。并且,通過(guò)使用公開(kāi)密鑰勤出設(shè)施,可以容易地進(jìn)行產(chǎn)品線的認(rèn)證。 即,被認(rèn)證裝置在請(qǐng)求中進(jìn)行數(shù)字簽名,然后與其公開(kāi)密鑰一同由認(rèn)證中心裝 置(certificate authority )進(jìn)行簽名,提供包含了被認(rèn)證裝置的保密密鑰的數(shù)字 簽名的用于被認(rèn)證裝置的公開(kāi)密鑰的證書(shū)。因此,認(rèn)證裝置為了確認(rèn)被認(rèn)證裝 置的來(lái)歷,可以認(rèn)證雙方的簽名。該方法不僅除去了向不存儲(chǔ)個(gè)別單元的公開(kāi) 密鑰、而必須存儲(chǔ)用于證明的認(rèn)證手段(例如,用于全部產(chǎn)品線的單一的公開(kāi) 密鑰,該公開(kāi)密鑰從制造公司取得)的認(rèn)證裝置的存儲(chǔ)請(qǐng)求,還包含簡(jiǎn)單的取 消機(jī)構(gòu)。在某個(gè)被認(rèn)證裝置的保密密鑰的信用喪失時(shí),可以向全部認(rèn)證裝置中 設(shè)置的黑名單內(nèi)發(fā)送該神皮認(rèn)證裝置的公開(kāi)密鑰。
以公開(kāi)密鑰加密法以及數(shù)字簽名為J^出的認(rèn)證系統(tǒng)具有以下問(wèn)題。即,為 了構(gòu)成數(shù)字簽名,被認(rèn)證裝置必須具有某種運(yùn)算能力。在最典型的數(shù)字簽名的 方案中要求相當(dāng)強(qiáng)的運(yùn)算能力。但是,從認(rèn)證機(jī)制看也許有用的多個(gè)平臺(tái)不具 有強(qiáng)大的運(yùn)算單元,更何況經(jīng)常完全不具有運(yùn)算單元,即它們是純粹的存儲(chǔ)單 元。例如,CD、 DVD、 SD卡或其他存儲(chǔ)卡等可拆裝的存儲(chǔ)介質(zhì)不具備CPU, 僅由存儲(chǔ)器構(gòu)成。因此,該平臺(tái)無(wú)法從以公開(kāi)密鑰加密法為基礎(chǔ)的認(rèn)證方法中 獲得利益。在專利文獻(xiàn)1中公開(kāi)了 ,利用具有熔絲、只可寫(xiě)一次的(read-once)陣列, 無(wú)需在被認(rèn)證裝置一側(cè)進(jìn)行運(yùn)算來(lái)實(shí)現(xiàn)認(rèn)證的發(fā)明。但是,在該文獻(xiàn)的發(fā)明中, 為了證明由確認(rèn)裝置提供的應(yīng)答,要求在認(rèn)證裝置中存儲(chǔ)保密密鑰,所以基本 上成為對(duì)稱密鑰認(rèn)證協(xié)議。
專利文獻(xiàn)1美國(guó)專利第5,032,708號(hào)
非專利文獻(xiàn)17一7:y卜 7乇7、 、乂亇S—/k 7"f、一 「如何Cl L T&^t自身^証明卞3力、;特定及t/署名問(wèn)題^0実用的解決」CRYPTO 1986 : 186-19非專利文獻(xiàn)2少少夕^C. ,/k:7「認(rèn)証S^fc:y、乂夕/P署名」CRYPTO 1989 : 218-238
發(fā)明內(nèi)容
因此,本發(fā)明的目的以及優(yōu)點(diǎn)在于,除了在上述專利中記載的發(fā)明的目的 以及優(yōu)點(diǎn)之外,不對(duì)確認(rèn)裝置一側(cè)要求任何運(yùn)算單元地提供公開(kāi)密鑰的認(rèn)證或 數(shù)字簽名的機(jī)制。通過(guò)考慮以下的記載以及附圖,其它目的以及優(yōu)點(diǎn)將會(huì)變得 明確。
被認(rèn)證裝置(prover)具備存儲(chǔ)有保密數(shù)據(jù)的特別的存儲(chǔ)單元、即所謂的 只讀一次存儲(chǔ)單元。該單元存儲(chǔ)的數(shù)據(jù)由陣列狀配置的幾個(gè)對(duì)(Ui, Di)構(gòu)成, 在此,僅可以讀出(取出)各對(duì)內(nèi)的兩個(gè)要素中的一方。在讀出了對(duì)(Ui, Dj)的一個(gè)要素之后,從存儲(chǔ)器中刪除該整個(gè)對(duì)。
除了只讀一次存儲(chǔ)器(read once memory)之外,被認(rèn)證裝置還具備其他 的存儲(chǔ)單元,該其他的存儲(chǔ)單元存儲(chǔ)用于對(duì)被認(rèn)證裝置的公開(kāi)密鑰證明對(duì)(Ui, D。的認(rèn)證數(shù)據(jù)。在該單元上,被認(rèn)證裝置存儲(chǔ)其公開(kāi)密鑰和其證書(shū)。在數(shù)字 數(shù)據(jù)中進(jìn)行了簽名時(shí),或者在應(yīng)答了認(rèn)證協(xié)議中的請(qǐng)求時(shí),被認(rèn)證裝置表明幾 個(gè)對(duì)中的一方的要素Uj或Di,伴隨該讀出進(jìn)行破壞。按照簽名或請(qǐng)求的比特 來(lái)選擇被表明的要素。并且,被認(rèn)證裝置提供用于被表明的要素的認(rèn)證數(shù)據(jù)。
被表明的要素Ui或Di對(duì)于被認(rèn)證裝置的公開(kāi)密鑰進(jìn)行認(rèn)證,然后,因?yàn)?公開(kāi)密鑰被進(jìn)行了驗(yàn)證,所以被驗(yàn)證裝置確實(shí)可以僅通過(guò)表明數(shù)據(jù)然后進(jìn)行傳 輸(取出)來(lái)不進(jìn)行任何運(yùn)算地證明自己或者對(duì)數(shù)據(jù)進(jìn)行簽名。結(jié)果,通過(guò)該 存儲(chǔ)單元,根據(jù)情況通過(guò)簡(jiǎn)單的存儲(chǔ)控制器,被驗(yàn)證裝置可以利用強(qiáng)大的公開(kāi)
8密鑰加密技術(shù),該公開(kāi)密鑰加密技術(shù)可以用于實(shí)現(xiàn)認(rèn)證、或數(shù)字簽名的生成、
或7>開(kāi)密鑰的認(rèn)_汪。
圖l表示本發(fā)明的認(rèn)證系統(tǒng)的硬件結(jié)構(gòu)。 圖2表示本發(fā)明的被認(rèn)證裝置的硬件結(jié)構(gòu)。
圖3表示本發(fā)明的認(rèn)證裝置的硬件結(jié)構(gòu)。 圖4是表示本發(fā)明的認(rèn)證系統(tǒng)中的認(rèn)證協(xié)議的流程的流程圖。 圖5是表示本發(fā)明的認(rèn)證系統(tǒng)中的初始化的流程的流程圖。 圖6是表示本發(fā)明的認(rèn)證系統(tǒng)中的簽名生成流程的流程圖。 圖7是表示本發(fā)明的認(rèn)證系統(tǒng)中的簽名認(rèn)證流程的流程圖。 圖8表示本發(fā)明的認(rèn)證系統(tǒng)的應(yīng)用例子。
圖9表示作為本發(fā)明第二實(shí)施例的、將認(rèn)證系統(tǒng)用于打印機(jī)墨盒的認(rèn)證系 統(tǒng)時(shí)的硬件結(jié)構(gòu)。
圖IO表示上述系統(tǒng)中的只讀一次陣列的硬件結(jié)構(gòu)。
圖11表示作為本發(fā)明第三實(shí)施例的、用于存儲(chǔ)卡上的數(shù)字內(nèi)容的DRM 的硬件結(jié)構(gòu)。
圖12表示作為本發(fā)明第四實(shí)施例的反偽造系統(tǒng)的硬件結(jié)構(gòu)。 符號(hào)說(shuō)明
101被認(rèn)證裝置;121認(rèn)證裝置;141認(rèn)證中心裝置;161網(wǎng)絡(luò);102、 122、 142輸入輸出接口; 103只讀一次存儲(chǔ)單元;105ROM單元;106RWM單元; 131、 151存儲(chǔ)單元;132運(yùn)算單元
具體實(shí)施例方式
以下,參照附圖詳細(xì)說(shuō)明本發(fā)明的實(shí)施方式。 (實(shí)施例1 )
首先,作為實(shí)施例l,以下說(shuō)明基于僅有存儲(chǔ)器的平臺(tái)的公開(kāi)密鑰認(rèn)證、 以及用于數(shù)字簽名的系統(tǒng)。
在該第一實(shí)施例中,系統(tǒng)由通過(guò)網(wǎng)絡(luò)連接的至少3個(gè)獨(dú)立要素構(gòu)成,即, 由至少一個(gè)被認(rèn)證裝置(prover)、至少一個(gè)認(rèn)證裝置(verifier)、以及認(rèn)證中 心裝置(Certificate Authority)構(gòu)成。認(rèn)證中心裝置的作用是,啟動(dòng)在被認(rèn)i正裝置的存儲(chǔ)器內(nèi)存儲(chǔ)的數(shù)據(jù),發(fā)行用于被認(rèn)證裝置的證書(shū)。除此之外,認(rèn)證中 心裝置維持已失去信用的認(rèn)-i正裝置的黑名單,并且將黑名單定期地向全部認(rèn)^正 裝置傳輸。
在該系統(tǒng)中,通過(guò)利用7>開(kāi)密鑰基礎(chǔ)設(shè)施(public-key infrastructure),可 以通過(guò)任何認(rèn)證裝置來(lái)認(rèn)證任何被確認(rèn)裝置。該系統(tǒng)具有以下3個(gè)參數(shù)安全 性參數(shù)[n],其是應(yīng)該由被認(rèn)證裝置進(jìn)行簽名的請(qǐng)求(challenge)的大??;可用 性參數(shù)[p],其是可以由被認(rèn)證裝置進(jìn)行簽名的簽名的數(shù)量;散列函數(shù)[H]及其 輸出大小[h]。
首先,參照?qǐng)D1對(duì)認(rèn)證系統(tǒng)進(jìn)行詳細(xì)說(shuō)明。
該系統(tǒng)是僅有存儲(chǔ)器的平臺(tái),由至少一個(gè)被認(rèn)證裝置(prover) 101、至少 一個(gè)認(rèn)證裝置(verifier) 121、以及認(rèn)證中心裝置(Certificate Authority) 141 構(gòu)成。^皮i人證裝置101、認(rèn)證裝置121以及認(rèn)證中心裝置141通過(guò)網(wǎng)絡(luò)161相 連接。#:認(rèn)證裝置101由輸入輸出接口 102、只讀一次存儲(chǔ)單元(read-once memory unit) 103、只讀存儲(chǔ)單元(read-only memory unit) 105、以及讀寫(xiě)存 儲(chǔ)單元(read-write memory unit) 106構(gòu)成。認(rèn)證裝置121具備輸入輸出接口 122、運(yùn)算單元132以及存儲(chǔ)單元(memory unit) 131。認(rèn)證中心裝置141具 備輸入輸出接口 142、運(yùn)算單元(computation units ) 152以及存儲(chǔ)單元(memory unit) 151。
凈皮認(rèn)證裝置101和認(rèn)證裝置121可以從事認(rèn)證協(xié)議,在此,認(rèn)證裝置121 向被認(rèn)證裝置101發(fā)送隨機(jī)的請(qǐng)求(randomchallenge) 164,然后,被認(rèn)證裝 置IOI通過(guò)請(qǐng)求的數(shù)字簽名163進(jìn)行應(yīng)答。在簽名正確時(shí)認(rèn)證成功。認(rèn)證中心 裝置141的作用是通過(guò)初始化數(shù)據(jù)(initialization data) 162存滿被認(rèn)證裝置 101的存儲(chǔ)單元,并且發(fā)行被認(rèn)證裝置101的公開(kāi)密鑰的證書(shū)。此外,該認(rèn)證 中心裝置141維持已失去信用的公開(kāi)密鑰的黑名單126,將該黑名單發(fā)送給與 網(wǎng)絡(luò)161連接的全部認(rèn)證裝置121。
然后,參照?qǐng)D2對(duì)被認(rèn)證裝置進(jìn)行詳細(xì)說(shuō)明。
被認(rèn)證裝置101不具有任何CPU,由存儲(chǔ)單元103、 105、 106和輸入輸 出接口 102構(gòu)成。該只讀一次存儲(chǔ)單元103存儲(chǔ)有p個(gè)保密陣列104,即A。, , Ap.,,在此,在一個(gè)陣列中存儲(chǔ)的數(shù)據(jù)只能用于一個(gè)認(rèn)證。結(jié)果,被認(rèn)證裝置101只能進(jìn)行有限次數(shù)、即p次的認(rèn)證。各保密陣列104由h比特的2n個(gè)數(shù) 據(jù)塊UQ. LU、 D。 . 構(gòu)成。只讀存儲(chǔ)單元105通過(guò)陣列的指數(shù)(0 < i 《p-l)、數(shù)據(jù)塊的指數(shù)(0《j<n-l)、以及數(shù)據(jù)塊的行(D或U)來(lái)尋址。
在讀出陣列Ai內(nèi)的某個(gè)數(shù)據(jù)塊Uj時(shí),將數(shù)據(jù)塊Ui向輸入輸出接口 102發(fā) 送,然后刪除Uj和Uj兩者。同樣地,在讀出Dj時(shí),刪除Uj和Uj兩者,因此, 正如只讀一次存儲(chǔ)器(read-once memory)的名稱那樣,其存儲(chǔ)器內(nèi)容隨著讀 出而^皮石皮i不。
被認(rèn)證裝置101具備讀寫(xiě)存儲(chǔ)單元(read-write memory unit) 106,該讀寫(xiě) 存儲(chǔ)單元106將計(jì)數(shù)器107與為了選擇活動(dòng)(active)陣列所使用的指數(shù)(0 《Kp-l)—同存儲(chǔ)在內(nèi)部。陣列Ai用于一個(gè)認(rèn)證,并且在完全刪除其數(shù)據(jù)之 后,計(jì)數(shù)器107的值通過(guò)i+l進(jìn)行更新。
最后,被認(rèn)證裝置101具備只讀存儲(chǔ)單元105,在此,數(shù)據(jù)可以沒(méi)有任何 限制地自由訪問(wèn)。該只讀存儲(chǔ)單元105存儲(chǔ)有唯一 (uniquely)確定被認(rèn)證 裝置101的確定號(hào)碼112、被認(rèn)證裝置101的公開(kāi)密鑰108、由認(rèn)證中心裝置 141發(fā)行的用于公開(kāi)密鑰108的證書(shū)109、包含2p-l個(gè)數(shù)據(jù)塊(^ ) 的數(shù)據(jù)樹(shù)110、以及p個(gè)加密陣列111 (即Co . Cp.,)。各加密陣列含有2n 個(gè)數(shù)據(jù)塊(UQ ... Un.,以及Dq ... Dn.i),其中,來(lái)自加密陣列Q的一個(gè)數(shù) 據(jù)塊(Uj或Dj)對(duì)應(yīng)于通過(guò)散列函數(shù)H進(jìn)行了加密的、來(lái)自陣列Ai的數(shù)據(jù)塊 (Uj或Dj),即Ci[Dj]=H (Ai[Dj]) and Ci[Uj]=H (Ai[Uj])。例如,散列函數(shù)H 是MD5,即可以是與認(rèn)證裝置121的散列函數(shù)相同的散列函數(shù)。加密陣列111 以及數(shù)據(jù)樹(shù)110也可用于,通過(guò)后面說(shuō)明的機(jī)制來(lái)證明來(lái)自只讀一次存儲(chǔ)器 103內(nèi)的保密陣列104的數(shù)據(jù)塊是被認(rèn)證裝置101的7>開(kāi)密鑰108。
然后,參照?qǐng)D3對(duì)認(rèn)證裝置121和認(rèn)證中心裝置141進(jìn)行說(shuō)明。
認(rèn)證裝置121具備若干運(yùn)算單元,即CPU128,并且如果可能還具備能夠 為了任意大小的輸入X來(lái)運(yùn)算散列值(H( X))的加密用協(xié)處理器(coprocessor) 129。例如,該散列函數(shù)可以是公知的MD5,或者也可以是其他任何散列函數(shù)。 此外,在此留意散列函數(shù)具有將任意長(zhǎng)的輸入數(shù)據(jù)映射為h比特的固定長(zhǎng)的輸 出的功能。在為MD5時(shí),散列輸出大小為128比特。除此之外,認(rèn)證裝置還 具備用于生成隨機(jī)請(qǐng)求164的隨機(jī)數(shù)生成器130。
ii認(rèn)證裝置121還具備用于經(jīng)由通信網(wǎng)絡(luò)161與被認(rèn)證裝置101、認(rèn)證中心 裝置141或者其他裝置進(jìn)行通信的輸入輸出接口 122。最后,認(rèn)證裝置121具 備存儲(chǔ)單元,即用于暫時(shí)存儲(chǔ)數(shù)據(jù)的易失性存儲(chǔ)器123、以及在存儲(chǔ)程序127 的同時(shí)還存儲(chǔ)認(rèn)證中心裝置141的公開(kāi)密鑰125和黑名單126的非易失性存儲(chǔ) 器124。黑名單包含已知失去信用的全部的公開(kāi)密鑰,并且通過(guò)在軟件的更新 中傳送新的黑名單的認(rèn)證中心裝置141被更新。
認(rèn)證中心裝置141基本上具備與認(rèn)證裝置121相同的若干構(gòu)成要素,即 輸入輸出接口 142、 CPU148、用于運(yùn)算散列值149的協(xié)處理器、隨機(jī)數(shù)生成 器150、用于存儲(chǔ)認(rèn)證中心裝置的公開(kāi)密鑰125和黑名單126以及程序147的 非易失性存儲(chǔ)器144、以及易失性存儲(chǔ)器143。除此之外,認(rèn)證中心裝置141 還可以在非易失性存儲(chǔ)器144內(nèi)存^l其私有密鑰(private key) 146,并且還具 備用于生成數(shù)字簽名以及證書(shū)的運(yùn)算用協(xié)處理器153。認(rèn)證中心裝置141的作 用是在生成用于被認(rèn)證裝置的保密陣列104的初始化數(shù)據(jù)134的同時(shí),還生 成加密陣列111和樹(shù)數(shù)據(jù)110。除此之外,認(rèn)證中心裝置141還可以發(fā)行被認(rèn) 證裝置的公開(kāi)密鑰108的證書(shū)。最后,認(rèn)證中心裝置141根據(jù)全部失去信用的 公開(kāi)密鑰來(lái)維持黑名單126。即,為了防止失去信用的芯片進(jìn)行認(rèn)證,在認(rèn)證 裝置121的軟件的更新中,向全部認(rèn)證裝置121傳輸其黑名單126。
然后,參照?qǐng)D4對(duì)認(rèn)證協(xié)議進(jìn)行詳細(xì)說(shuō)明。
被認(rèn)證裝置101,通過(guò)在步驟S211中向認(rèn)證裝置121發(fā)送的認(rèn)證請(qǐng)求, 可以開(kāi)始認(rèn)證協(xié)議,在該認(rèn)證請(qǐng)求中包含被認(rèn)證裝置的公開(kāi)密鑰108、證書(shū) 109、計(jì)數(shù)器值107以及ID112。計(jì)數(shù)器(值)對(duì)應(yīng)于未使用的陣列Ai的指數(shù)。
然后,在步驟S221中,認(rèn)證裝置121確認(rèn)公開(kāi)密鑰108是否存在于失去 信用的密鑰的黑名單126中,當(dāng)該公開(kāi)密鑰存在于黑名單內(nèi)時(shí),認(rèn)證失敗。如 果公開(kāi)密鑰不在黑名單內(nèi),則認(rèn)證裝置121在步驟222中對(duì)證書(shū)進(jìn)行認(rèn)證。該 證書(shū)包含由認(rèn)證中心裝置141簽名的、被認(rèn)證裝置的公開(kāi)密鑰108的數(shù)字簽名。 在證書(shū)無(wú)效時(shí),認(rèn)證失敗。在證書(shū)有效時(shí),認(rèn)證裝置121發(fā)送隨機(jī)的n比特的 消息164。該消息是認(rèn)證協(xié)議的請(qǐng)求(challenge),并且必須由被認(rèn)證裝置101 進(jìn)行簽名。
之后,被認(rèn)證裝置101通過(guò)訪問(wèn)陣列A104內(nèi)的數(shù)據(jù)塊來(lái)對(duì)請(qǐng)求進(jìn)行簽名,在此的[i]是在步驟211中發(fā)送的計(jì)數(shù)器(計(jì)數(shù)值),[Uo或D()]取決于請(qǐng)求的[O] 比特,或D!]取決于請(qǐng)求的[l]比特,并且,這種情況直到[n-l]比特也是相 同的。除此之外,^皮認(rèn)證裝置101向公開(kāi)密鑰108發(fā)送來(lái)自對(duì)應(yīng)的加密的數(shù) 據(jù)塊的加密的陣列Cjlll;以及來(lái)自證明來(lái)自陣列Ajl04的數(shù)據(jù)塊的數(shù)據(jù)樹(shù)110 的要素。通過(guò)^皮i^i正裝置101向認(rèn)證裝置121發(fā)送的簽名163由陣列Ai和C;、 以及來(lái)自樹(shù)數(shù)據(jù)的數(shù)據(jù)塊構(gòu)成。
當(dāng)接收到簽名時(shí),認(rèn)證裝置121在步驟241中使用來(lái)自Ci的加密數(shù)據(jù)塊 和樹(shù)數(shù)據(jù),來(lái)檢查來(lái)自陣列Ai的數(shù)據(jù)塊對(duì)于公開(kāi)密鑰108進(jìn)行了認(rèn)證,由此 認(rèn)證簽名。如果簽名無(wú)效則認(rèn)證失敗,另一方面,如果簽名有效則認(rèn)證成功。 最后,在步驟253中,認(rèn)證裝置121寫(xiě)入?yún)f(xié)議的日志,該協(xié)議的日志包含認(rèn) 證結(jié)果(成功或失敗)、認(rèn)證裝置的公開(kāi)密鑰、以及由被認(rèn)證裝置101利用的 指數(shù)。
然后,參照?qǐng)D5對(duì)存儲(chǔ)器的初始化進(jìn)行詳細(xì)說(shuō)明。
在使用前,被認(rèn)證裝置101的存儲(chǔ)單元必須通過(guò)恰當(dāng)?shù)臄?shù)據(jù)進(jìn)行初始化, 即,只讀一次存儲(chǔ)單元103在其保密陣列Ajl04內(nèi)存儲(chǔ)保密的數(shù)據(jù)塊,加密陣 列111存儲(chǔ)保密數(shù)據(jù)塊的加密后的值,樹(shù)110由與散列函數(shù)H成對(duì)組合的加 密的數(shù)據(jù)塊、以及根據(jù)與某個(gè)固有的ID號(hào)碼組合的樹(shù)T!的根(root:參照?qǐng)D 8)運(yùn)算出的公開(kāi)密鑰108構(gòu)成。被認(rèn)證裝置101基本上由存儲(chǔ)單元構(gòu)成,無(wú) 法通過(guò)其自身的初始化來(lái)執(zhí)行所要求的運(yùn)算,取而代之,全部運(yùn)算由認(rèn)證中心 裝置141在外部執(zhí)行。通過(guò)認(rèn)證中心裝置141運(yùn)算的初始化數(shù)據(jù)134僅通過(guò)網(wǎng) 絡(luò)161發(fā)送給被認(rèn)證裝置101,并且存儲(chǔ)在被認(rèn)證裝置的存儲(chǔ)單元中。
最初,在步驟301 322中,輸入簽名數(shù)p和消息長(zhǎng)n,保密陣列104通過(guò) 隨機(jī)數(shù)據(jù)塊(random data block)被初始化。即,通過(guò)利用了隨機(jī)數(shù)生成器單 元(random number generator unit) 150的認(rèn)證中心裝置141生成的隨機(jī)數(shù)來(lái)填 充塊Aj [Uo]和Aj [Do],并且同樣地直到Ai [LU]、 Ai [D^]為止。之后,通過(guò) 由散列函數(shù)處理過(guò)的保密塊來(lái)填充加密陣列111的對(duì)應(yīng)的塊,成為Q [UQ]=H (A; [U0] )、 Ci [D0]= H (A; [D0]),并且,同樣地使用散列函數(shù)單元149,成為
Ci[Un+H (Ai[Un-,])、 Ci隊(duì),]-H (Ai隊(duì),])。當(dāng)再次進(jìn)行敘述時(shí),這些運(yùn) 算由認(rèn)證中心裝置141來(lái)執(zhí)行。即, 一旦準(zhǔn)備了全部的塊數(shù)據(jù),就經(jīng)由網(wǎng)絡(luò)161從認(rèn)證中心裝置向被認(rèn)證裝置101傳輸。
在填充了保密陣列104和加密陣列111之后,必須對(duì)樹(shù)數(shù)據(jù)進(jìn)行初始化。 最初,樹(shù)的p個(gè)葉Tp . , T2p.,由認(rèn)證中心裝置141準(zhǔn)備,并且使各葉與一個(gè) 加密的陣列相關(guān)聯(lián)。更詳細(xì)地說(shuō),在步驟S332中,將加密的陣列Ci內(nèi)存儲(chǔ)的 2n個(gè)數(shù)據(jù)塊連成鏈狀,并且由散列函數(shù)模塊149進(jìn)行處理。Ti+P=H( C; [Uo] || Q [Do] II Ci則II Ci [D,] If ... Cj [Un.,] II Cj [D"]),在此,X||Y表示兩個(gè)比特流的 鏈。現(xiàn)在,當(dāng)準(zhǔn)備了樹(shù)的葉Tp . . . T2l>1時(shí),樹(shù)的剩余節(jié)點(diǎn)可以在步驟342中 進(jìn)行運(yùn)算。實(shí)際上,樹(shù)內(nèi)剩余節(jié)點(diǎn)可以通過(guò)對(duì)該節(jié)點(diǎn)的兩個(gè)子節(jié)點(diǎn)進(jìn)行散列 (hashing)來(lái)簡(jiǎn)單地運(yùn)算。即,節(jié)點(diǎn)Tj具有兩個(gè)子節(jié)點(diǎn)T2i和T2w,因此,塊 Ti的值由散列函數(shù)模塊149來(lái)運(yùn)算,成為H ( T2i|| T2i+1 )。但是,這樣的樹(shù)的準(zhǔn) 備不便于之后生成認(rèn)證用令牌,因此,交換樹(shù)塊的全部的對(duì),即,在步驟352
中,T2i通過(guò)T2i+l來(lái)置換,并且T2i+l通過(guò)T2i來(lái)置換。 一旦處理了全部的樹(shù)
塊,就將它們經(jīng)由網(wǎng)絡(luò)161從認(rèn)證中心裝置141傳輸給被認(rèn)證裝置101。
然后,在步驟353中,根據(jù)樹(shù)1^的根和唯一確定4皮認(rèn)證裝置101的確定 (ID)號(hào)碼112來(lái)運(yùn)算被認(rèn)證裝置101的公開(kāi)密鑰108。例如,該ID號(hào)碼可 以是產(chǎn)品ID,或者在被認(rèn)證裝置101存儲(chǔ)有某個(gè)數(shù)字內(nèi)容時(shí),也可以設(shè)為該 數(shù)字內(nèi)容的比特值。無(wú)論在哪個(gè)情況下,公開(kāi)密鑰都被定義為H (T川ID),并 且存儲(chǔ)在只讀存儲(chǔ)單元105內(nèi)。之后,認(rèn)證中心裝置141發(fā)行公開(kāi)密鑰108 的證書(shū)109(步驟354),該證書(shū)包含該公開(kāi)密鑰的數(shù)字簽名,被發(fā)送到被認(rèn)證 裝置101。證書(shū)109被存儲(chǔ)在只讀存儲(chǔ)單元105內(nèi)。最后,將讀寫(xiě)存儲(chǔ)單元106 內(nèi)的計(jì)數(shù)器107初始化為"0(零)"。
然后,參照?qǐng)D6對(duì)簽名的生成進(jìn)行詳細(xì)說(shuō)明。
在認(rèn)證處理中,在步驟231 (參照?qǐng)D4)中留意由被認(rèn)i正裝置101生成隨 機(jī)請(qǐng)求164的簽名163。以下,說(shuō)明如何生成該認(rèn)證。隨機(jī)請(qǐng)求由n個(gè)比特(m-(m0. mn.,) 2)構(gòu)成,并且,經(jīng)由網(wǎng)絡(luò)161從認(rèn)證裝置121被發(fā)送到被認(rèn)證 裝置101。在接收到請(qǐng)求后,被認(rèn)證裝置101表明計(jì)數(shù)器107的值(在圖4 中由"i,,表示)。該計(jì)數(shù)器對(duì)保密陣列Ai中的一個(gè)以及對(duì)應(yīng)的加密的陣列Cj 進(jìn)行初始化。然后,掃描請(qǐng)求m的比特mj,然后,在步驟421-424中生成2n 個(gè)簽名塊,即So,o, So'.'Sj,o、 Sj,, . Sw,o、 Sn.u。在此,從保密陣列Aj104、
14或加密的陣列Cilll的一方中取出各簽名塊。為了生成("取出")該簽名,被
認(rèn)證裝置101僅從這些陣列104以及111中選擇數(shù)據(jù),然后僅表明該數(shù)據(jù),不 需要任何的運(yùn)算。更詳細(xì)地說(shuō)在消息比特mj為O時(shí),在步驟422中,簽名 塊(Sj,o, Sj,i)成為(Ai[Uj], Ai[Dj]),在消息比特mj為1時(shí),在步驟423中, 簽名塊(Sj,o, Sj,,)成為(Ci[Uj], Ai[Dj])。在兩個(gè)步驟422和423中,留意只 將Aj[Uj]以及Ai[Dj]的一方傳輸給簽名163內(nèi)。但是,根據(jù)只讀一次存儲(chǔ)器103 的特性,它們兩者都^皮破壞。本技術(shù)(發(fā)明)的特點(diǎn)是對(duì)于一個(gè)消息比特,表 明唯一的保密數(shù)據(jù)塊,即,在簽名后保密數(shù)據(jù)塊的一方仍處于保密,因此, Ai[Uj]或Ai[Dj〗中的任意一方以及簽名不會(huì)被偽造。
在選擇了用于(Sj,o, Sj,!)的值后,必須從樹(shù)表110中選4奪log2(p)個(gè)塊, 在此,所謂log2 (p)是指取整(四舍五入)為最接近的整數(shù)的、簽名數(shù)p對(duì) 于2的對(duì)數(shù)(logarithm in base 2 )。應(yīng)選擇的最初的樹(shù)塊在步驟432中是設(shè)為 j-p+i的P。-Tj,然后,直到選擇log2 (p)個(gè)樹(shù)塊為止,j反復(fù)被分離為兩個(gè)。 最后,在步驟433中,將簽名(S0,0, ..,, S^,p P0,….P,。g2(p)-!) 163經(jīng)由網(wǎng) 絡(luò)向認(rèn)證裝置121發(fā)送。
然后,參照?qǐng)D7對(duì)簽名的認(rèn)證進(jìn)行詳細(xì)說(shuō)明。
在運(yùn)算完隨機(jī)請(qǐng)求164的簽名后,被認(rèn)證裝置101向認(rèn)證裝置121回復(fù)簽 名163。在該時(shí)刻,在步驟241 (參照?qǐng)D4)中,認(rèn)證裝置121必須認(rèn)證n比 特的請(qǐng)求(m= (m?!?mn-i) 2) 164的簽名(S0,0, . ., S^," P0, ..., P!。g2 (p) -。163。以下,對(duì)如何認(rèn)證該簽名進(jìn)行說(shuō)明。
在輸入簽名(S。,q, . ., Sn.U, P。,…,P^2(pM)(步驟521)后,首先,
在步驟522和523中,認(rèn)證裝置121再次運(yùn)算(re-compute )加密的陣列QUI 的全部的數(shù)據(jù)塊,在此,"i"是在步驟211中的認(rèn)證協(xié)議的開(kāi)始時(shí)向認(rèn)證裝置 發(fā)送的計(jì)數(shù)器107(的值)。更詳細(xì)地說(shuō),掃描請(qǐng)求比特mQ ' mn小然后, 如果mj為零(0 ),則在步驟522中,使用散列函數(shù)模塊129作為H ( Sj,o )來(lái) 運(yùn)算C,j,o,在此,對(duì)C,j, i賦予簽名塊Sj,!。實(shí)際上,如果請(qǐng)求比特mj為零(O), 則在步驟422中簽名塊Sj, o和% ,分別作為Ai[Uj]以及Q[Dj]被選擇。因此, 如果在步驟231中由^皮認(rèn)證裝置正確地生成,則C,j.o應(yīng)等于Ci[Uj], C,j,,應(yīng) 等于C,[Uj]。同樣,如果請(qǐng)求比特mj為1,則向C,j,o復(fù)制簽名塊Sj,o,并且在C,j,,中設(shè)定H (Sjj )。
當(dāng)準(zhǔn)備了全部的對(duì)(C,j,0, C,j,,)時(shí),在步驟531中,運(yùn)算樹(shù)數(shù)據(jù)塊T,。 實(shí)際上,使全部的C,j,b的值連成鏈,然后在步驟531中通過(guò)散列函數(shù)H129進(jìn) 行散列(hash:細(xì)分)。T,=H (C,o,ollC,oH』…UCVu)。
如果在步驟231中由認(rèn)證裝置正確地生成了簽名,則T,的值應(yīng)該與來(lái)自 樹(shù)數(shù)據(jù)110的樹(shù)塊的值、即在簽名的生成中在步驟432 (參照?qǐng)D6)中選擇出 的Po的兄弟(sibling )—致。因此,該節(jié)點(diǎn)為了運(yùn)算樹(shù)110中的親節(jié)點(diǎn)(parent node),可以和簽名塊P。組合。更詳細(xì)地說(shuō),在步驟532中,計(jì)數(shù)器"i,,被設(shè) 定為"i+p",在此,在步驟211中與公開(kāi)密鑰、證書(shū)一起從被認(rèn)證裝置104接 收計(jì)數(shù)器"i" 107的值。如果"i,,為偶數(shù),則在步驟552中,使用散列函數(shù) 模塊129將T,更新為H(T,HPo),另一方面,如果為奇數(shù),則在步驟553中將 T,更新為H (PollT,)。此外,在正確地生成了簽名時(shí),T,應(yīng)包含還作為簽名塊 Pj的兄弟的之前的T,和Po的親節(jié)點(diǎn)。然后,對(duì)于P,, P2,, P,。g2(p-,)也重復(fù) 進(jìn)行同樣的步驟,并且,在重復(fù)完之后,T,的值應(yīng)該與某個(gè)樹(shù)數(shù)據(jù)塊的值一致, 每次接近根一個(gè)等級(jí)(圖8的根T,)。最后,T,包含根T,的值,然后,在步驟 555中,被認(rèn)證裝置101的公開(kāi)密鑰108可以通過(guò)運(yùn)算H (T, ||ID )再次進(jìn)行 運(yùn)算,在此,ID是被認(rèn)證裝置101的確定號(hào)碼112。如果公開(kāi)密鑰與運(yùn)算H (T,IIID)的結(jié)果一致,則簽名在步驟562中被接受,另一方面,如果不一致, 則在步驟563中被拒絕。
然后,參照?qǐng)D8對(duì)上述認(rèn)證系統(tǒng)中的數(shù)據(jù)結(jié)構(gòu)的一例進(jìn)行詳細(xì)說(shuō)明。
圖8表示在簽名了 p=128個(gè)簽名、并且請(qǐng)求具有n=4比特的情況下如何組 織數(shù)據(jù)。存在128個(gè)保密陣列AQ, ..., A127,以及128個(gè)對(duì)應(yīng)的加密的陣列 C0, ,., C127。各陣列具有8個(gè)數(shù)據(jù)塊Uo、 U,、 U2、 U3以及D。、 Dp D2、 D3, 并且,具有Ci [Uj]= H ( Aj [Uj])以及同樣具有Cj [Dj]= H ( Aj [Dj])。當(dāng)把在數(shù) 據(jù)初始化中使用的散列函數(shù)設(shè)為MD5時(shí),h=128,各數(shù)據(jù)比特也同樣具有128 個(gè)比特。
樹(shù)數(shù)據(jù)110的葉T128 . . ■ T255最初如下進(jìn)行運(yùn)算。
T128+i=H ( Ci [U0〗|i Ci [D0] II Cj則II Ci [D,] ||Q , Q [D2] || [U3] || Ci [D3])20
例如,T154=H ( C26 [U0〗|i C26 [D0] II C26 [Ui] II C26 [D,] ||C26 [U2]|| C26 [D2] || C26 [U3] II C26 [D3])。
然后,進(jìn)行將親節(jié)點(diǎn)細(xì)分(hashing)為兩個(gè)子節(jié)點(diǎn)的運(yùn)算,即,進(jìn)行Tr H (T2i||T2i+1)。例如,成為T(mén)77=H (T154||T155)。但是,在運(yùn)算了樹(shù)內(nèi)的全部 的節(jié)點(diǎn)后,為了從丁255到T,促進(jìn)生成簽名,每次交換兩個(gè)節(jié)點(diǎn),即,將T2和
T3交換,將丁4和T5交換,以下也相同地進(jìn)行交換。最后,交換Tt54和T,55。
在存在由128比特構(gòu)成的8個(gè)數(shù)據(jù)塊的同時(shí),還存在128個(gè)保密陣列,因 此,只讀一次存儲(chǔ)單元103具有16千字節(jié)的容量。同樣地,在存在由128比 特構(gòu)成的8個(gè)凝:據(jù)塊的同時(shí)還存在128個(gè)加密的陣列,并且,存在由128比特 構(gòu)成的255個(gè)樹(shù)節(jié)點(diǎn),因此,為了存儲(chǔ)這些要素,只讀存儲(chǔ)單元105需要20 千字節(jié)。但是,除此之外,只讀存儲(chǔ)單元105還必須存儲(chǔ)公開(kāi)密鑰108和其證 書(shū)109。
此外,對(duì)簽名的生成進(jìn)行說(shuō)明。當(dāng)把計(jì)數(shù)器107設(shè)定為26時(shí),為了生成 簽名,陣列八26和(:26成為活動(dòng)的(ActiveX例如,使針對(duì)簽名的4比特的請(qǐng) 求為m-( 1001 )2。最初的比特為"1",因此,對(duì)應(yīng)的簽名塊為C26[U0], A26[D0]。 第二比特為"0",所以對(duì)應(yīng)的簽名塊為C26[U!], A,],以下也相同。最后, 簽名請(qǐng)求(1001) 2的最初的部分成為(So,o, So,,, Si,o, S,,p S2,0, S2,p S3,0,
) = (C26[U0],A26[D0], A26[U。A6[D,], A26[U2],C26[D2], C26[U3],A26[D3])。
然后,為了對(duì)公開(kāi)密鑰認(rèn)證簽名的最初的塊,必須選擇來(lái)自樹(shù)的節(jié)點(diǎn)。應(yīng) 該選擇的最初的節(jié)點(diǎn)為T(mén)155=H (C26 [UQ] II .. II C26 [D3])的兄弟節(jié)點(diǎn), P0=TP+26=T154。下一個(gè)節(jié)點(diǎn)為作為節(jié)點(diǎn)丁155和丁154的親節(jié)點(diǎn)的T76的兄弟, PfT154/2=T77。重復(fù)進(jìn)行該步驟直到P^T2為止。
然后,對(duì)簽名的認(rèn)證進(jìn)行說(shuō)明。認(rèn)證裝置121最初接收公開(kāi)密鑰108、以 及在本例中i=26的計(jì)數(shù)器值107。接收簽名(S。,Q,, Sv),認(rèn)證裝置121 利用散列函凝3莫塊129再次運(yùn)算來(lái)自加密的陣列C26的全部數(shù)據(jù)塊。最初的請(qǐng) 求比特為"1",所以認(rèn)證裝置121運(yùn)算(C,。,。, CV) = (So,o, H (S(u))。由 于第二請(qǐng)求比特為"0",所以認(rèn)證裝置121運(yùn)算(d,o, C,u) = (H (S^), Su),以下也相同。在處理了全部的請(qǐng)求比特之后,認(rèn)證裝置121得到以下的 陣歹寸(C,o,o,C,o,i, C,i,o,C,i,i, C,2,o,C,2,1, C,3,0,C,3,1 )=( S。,o,H( So,i ), H( Si,o ),Si,i,
17H ( S2,0) ,S2,1, S3,0,H ( S3,1))。
在沒(méi)有由被認(rèn)證裝置101正確地生成簽名的情況下,該陣列應(yīng)該具有與加密的陣列C26相同的數(shù)據(jù)塊。實(shí)際上,可知(So,o, So,!) = (C26[UG], A26[D0]),因此,成為(CV C,o,J = (C26[U0], H (A26[D0])) = (C26[U0], C26[D0])。
對(duì)于其他簽名塊也進(jìn)行同樣的觀測(cè)。認(rèn)證裝置121可以再運(yùn)算加密的陣列,但認(rèn)證裝置121沒(méi)有方法從被認(rèn)證裝置101得知加密的陣列的確與最初加密的陣列相同、或者加密的陣列為真的(authentic)。因此,認(rèn)證裝置121為了對(duì)于公開(kāi)密鑰108認(rèn)證加密的陣列,使用剩余的簽名塊,即樹(shù)塊。
最初,認(rèn)證裝置121使用散列函數(shù)模塊129運(yùn)算丁,=11((:,0,0,(:,0,1,(:,1,(),(:,1,1,
C,2,o,C,2,。
C,3,Q,C,w )。如果正確地生成了簽名,則T,應(yīng)該與樹(shù)節(jié)點(diǎn)T,55相同
(留意丁154和T。5在數(shù)據(jù)初始化階段被進(jìn)行了交換)。認(rèn)i正裝置121在此將P0和T,組合,即,最初將計(jì)數(shù)器"i"設(shè)定為"i+p-154"。因?yàn)?i=154,,,所以認(rèn)證裝置121通過(guò)散列函數(shù)模塊129運(yùn)算T,=H (T, II Po )。實(shí)際上,如果正確地生成簽名,則T,= T,55以及Pf T154,因此,T4皮更新后的值應(yīng)該為親節(jié)點(diǎn)T76。然后,將"i"除以2,成為"i-77"。因?yàn)?i=77"為奇數(shù),所以成為T(mén),-H
(PJT,)。如果再次正確地生成簽名,則T,被更新后的值應(yīng)該為親節(jié)點(diǎn)丁39。在利用了到P6為止的全部樹(shù)塊之后,如果簽名正確,則認(rèn)證裝置121應(yīng)運(yùn)算了樹(shù)的根,即"T,=Tr,。然后,認(rèn)證裝置121僅確認(rèn)H (T,IIID)是否與公開(kāi)密鑰108的值一致。
最后,對(duì)該結(jié)構(gòu)的安全性進(jìn)行討論。對(duì)于一個(gè)消息比特mj,對(duì)應(yīng)的簽名部分為Ai[Uj], Q[Dj]或Ci[Uj], Ai[Dj]。在雙方的情況下,保密塊Aj[Uj], Ai[Dj]被破壞,因此,它們的一方仍未表明,所以仍然處于保密。結(jié)果,為此需要得知沒(méi)有表明的保密塊,所以不會(huì)對(duì)不同的消息比特進(jìn)行簽名。作為一例,如果消息比特為mj=0,則針對(duì)mj=l的簽名的偽造,例如像Ci[Dj]=H (Ai[D」])那樣,暗示了發(fā)現(xiàn)Ai[Dj]。但是,該任務(wù)例如被稱為Y-H(X),該Y-H(X)發(fā)現(xiàn)與某個(gè)被賦予的Y相對(duì)應(yīng)的原像(pre-image) X,由于散列函數(shù)的特性,
這是不可能實(shí)現(xiàn)的。
作為不同的途徑,還可以嘗試注入對(duì)于樹(shù)的根Tt進(jìn)行認(rèn)證的保密陣列A;此時(shí),樹(shù)的下部與真的樹(shù)不同,例如,T,i+p<>Ti+p,但是在某個(gè)點(diǎn),兩個(gè)樹(shù)具有相同的根,所以相同。這對(duì)于某個(gè)節(jié)點(diǎn)的指數(shù)"j"為(T, 2j, T,2j+1 )< > ( T2j,T2j+),但是暗示了 T,廣Tj,在此,為T(mén)j^H(T2jllT2jw)以及T,H(T,2jllTV!)。例如,H (X) =H (X,)那樣的值X, X,被稱為沖突(collisions),并且,根據(jù)散列函數(shù)的特性,不可能發(fā)現(xiàn)該沖突。因此,偽造簽名的唯一途徑是,觀察真的被驗(yàn)證裝置101和認(rèn)證裝置121之間的相互作用,然后從4皮認(rèn)證裝置101收集簽名。然后,在從事于認(rèn)證協(xié)議時(shí),如果為相同的計(jì)數(shù)器值"i"則認(rèn)證裝置121與真的被認(rèn)證裝置101的情況相同地,發(fā)送相同的請(qǐng)求,偽造者可以使用對(duì)應(yīng)的收集到的簽名。結(jié)果,偽造簽名的概率為l/2n,在此,"n"為安全性的參數(shù)。如果對(duì)于請(qǐng)求大小n=20,則該;慨率為100萬(wàn)次中1次以下的程度。
此外,本發(fā)明的范圍不限于以上所述的實(shí)施例。例如,可用性參數(shù)p或簽名的數(shù)量、或者安全性參數(shù)n或請(qǐng)求的大小等系統(tǒng)參數(shù)可以取任何恰當(dāng)?shù)恼麛?shù)值。為了高安全性的系統(tǒng),n必須變大,典型地為121比特以上,這對(duì)于被認(rèn)證裝置101要求大的容量。為了使認(rèn)證系統(tǒng)輕量化,例如可以像8比特那樣選擇較小的n,此時(shí),作為偽造者偽造簽名的概率具有1/256,這從智能卡上通過(guò)PIN碼提供的安全性來(lái)看也不是非常不合理,在某種狀況下可以允許。
此外,對(duì)于散列函數(shù)可以任意地選擇,即,可以是具有128比特的輸出大小的MD5、或SHA1、或其他任何的散列函數(shù)。
被認(rèn)證裝置101的存儲(chǔ)單元可以通過(guò)幾種方法來(lái)實(shí)施。更嚴(yán)密地說(shuō),存儲(chǔ)單元105包含讀寫(xiě)存儲(chǔ)器(read-write memory),可以是任何類型的存儲(chǔ)器。因此,可以通過(guò)ROM、 PROM、 EEPROM或閃速存儲(chǔ)器(flash memory)或者任何存儲(chǔ)器輔助單元來(lái)實(shí)施。關(guān)于只讀一次存儲(chǔ)單元103,例如可以是上述專利文獻(xiàn)l記載的熔絲底座(flisebase)的真正的只讀一次存儲(chǔ)器,或者可以是FeRAM存儲(chǔ)器或其他任何只讀一次存儲(chǔ)器,并且其功能例如可以通過(guò)作為閃速存儲(chǔ)器的EEPROM和通過(guò)寫(xiě)入來(lái)刪除內(nèi)容的存儲(chǔ)控制器構(gòu)成的、標(biāo)準(zhǔn)的存儲(chǔ)單元來(lái)實(shí)現(xiàn)(仿真)。
最后,將上述的認(rèn)證系統(tǒng)變更為生成消息164,通過(guò)被認(rèn)證裝置101進(jìn)行簽名,然后由認(rèn)證裝置121進(jìn)行認(rèn)證的數(shù)字簽名系統(tǒng),對(duì)于本領(lǐng)域的技術(shù)人員來(lái)說(shuō)應(yīng)該是簡(jiǎn)單的。(實(shí)施例2 )然后,參照?qǐng)D9對(duì)作為本發(fā)明實(shí)施例2的用于打印機(jī)墨盒的認(rèn)證系統(tǒng)進(jìn)行詳細(xì)i兌明。
該系統(tǒng)由認(rèn)證者芯片121和被認(rèn)證者芯片101構(gòu)成。在本實(shí)施例中,在打印機(jī)中安裝有認(rèn)證者芯片121,另一方面,在墨盒中安裝有被認(rèn)證者芯片101。正規(guī)的墨盒可以在商店購(gòu)得,此外,由竟?fàn)幷咧圃斓膫卧斓哪谢蛟偬畛淦鞑?refill kit)也相同。因此,為了禁止使用偽造的墨盒,合法的墨盒必須對(duì)打印機(jī)進(jìn)行認(rèn)證,并且,必須只能使用為了避免再填充而限制的次數(shù)。
墨盒101和打印機(jī)121直接接觸,可以經(jīng)由直接連接901交換數(shù)據(jù)。交換的數(shù)據(jù)例如可以是墨水等級(jí)(ink level)的檢查等、與通常的打印機(jī)功能有關(guān)的數(shù)據(jù),但是也可以是與包含請(qǐng)求164或簽名163的認(rèn)證數(shù)據(jù)有關(guān)的數(shù)據(jù)。
打印機(jī)121例如經(jīng)由USB這樣的電纜902與個(gè)人計(jì)算機(jī)911連接。在個(gè)人計(jì)算機(jī)911中,例如在安裝了 USB、 LAN連接器、存儲(chǔ)單元913、運(yùn)算單元914或者幾個(gè)周邊設(shè)備或單元的同時(shí),還安裝了輸入輸出接口 912。經(jīng)由電纜902,個(gè)人計(jì)算機(jī)911還可以發(fā)送與印刷請(qǐng)求或通常的打印機(jī)功能有關(guān)的任何數(shù)據(jù),并且還可以提出黑名單126。實(shí)際上,個(gè)人計(jì)算機(jī)911經(jīng)由因特網(wǎng)與認(rèn)證中心裝置(Certificate Authority)連接,認(rèn)證中心裝置將固件或軟件的更新版本經(jīng)由個(gè)人計(jì)算機(jī)911發(fā)送給打印機(jī)121,并且,同時(shí)還可以發(fā)送更新后的黑名單。
認(rèn)證中心裝置141是與因特網(wǎng)903連接的WEB服務(wù)器,由打印機(jī)公司來(lái)運(yùn)營(yíng)。與最初的實(shí)施例的情況不同,在認(rèn)證中心裝置141和墨盒101之間沒(méi)有持久性的直接連接,因此,無(wú)法從遠(yuǎn)方執(zhí)行數(shù)據(jù)的初始化。取而代之,墨盒的存儲(chǔ)單元103、 105以及106在制造墨盒時(shí)進(jìn)行初始化。此時(shí),將墨盒與認(rèn)證中心裝置141物理連接,或者,為了避免將多個(gè)墨盒的保密陣列104泄露的安全性侵害,可以向不與因特網(wǎng)連接的專用計(jì)算機(jī)連接。
打印機(jī)121和墨盒101是自主的,并且可以不訪問(wèn)外部任何網(wǎng)絡(luò)地執(zhí)行認(rèn)證,特別是打印機(jī)121不需要向因特網(wǎng)903或認(rèn)證中心裝置141持久性地直接連接。僅通過(guò)使用在本地存儲(chǔ)的認(rèn)證中心裝置141的公開(kāi)密鑰125,打印機(jī)121可以通過(guò)在上述實(shí)施例1中記載的認(rèn)證機(jī)制來(lái)認(rèn)證合法的墨盒??梢园凑沾蛴C(jī)公司的安全性策略,以定期的時(shí)間間隔來(lái)執(zhí)行認(rèn)證。例如,可以在每次請(qǐng)求
20打印時(shí)、啟動(dòng)時(shí)(bootingtime)或者每天進(jìn)行認(rèn)證。關(guān)于認(rèn)證失敗時(shí)打印機(jī)如何處理,也根據(jù)打印機(jī)公司的安全性策略來(lái)決定。作為一種可能,還考慮打印機(jī)拒絕打印請(qǐng)求數(shù)分鐘。因此,即使安全參數(shù)不是非常高,例如,即使是n-8比特的請(qǐng)求,實(shí)際上成為1/256的偽造概率,但如果使打印機(jī)在認(rèn)證失敗時(shí)成為空轉(zhuǎn)(idling)大約1分鐘的狀態(tài),則在使用偽造的墨盒時(shí),其可用性受到大幅損害。
在該實(shí)施例2中,安全性參數(shù)對(duì)于消息大小為n=8比特,散列函數(shù)為輸出大小h=128比特的MD5,簽名數(shù)量為p=1024個(gè)。
此時(shí),只讀一次存儲(chǔ)器存儲(chǔ)用于保密陣列104的大約260千字節(jié)的數(shù)據(jù),與此相對(duì),只讀存儲(chǔ)器需要用于加密陣列111的260千字節(jié)和用于樹(shù)數(shù)據(jù)110的32千字節(jié)。公開(kāi)密鑰108正是一個(gè)散列值,因此為16字節(jié),證書(shū)可以是1024比特的RSA簽名,因此為128字節(jié),并且,ID112是通過(guò)4字節(jié)編碼的產(chǎn)品編號(hào)。對(duì)只讀存儲(chǔ)器要求總共300千字節(jié)以下的容量。最后,計(jì)數(shù)器107是用于計(jì)數(shù)到1024的計(jì)數(shù)器,占用讀寫(xiě)存儲(chǔ)器的2字節(jié)。
只讀一次存儲(chǔ)單元103將在后面對(duì)其進(jìn)行詳細(xì)討論,只讀存儲(chǔ)單元105作為PROM來(lái)實(shí)施,讀寫(xiě)存儲(chǔ)單元106作為EEPROM來(lái)實(shí)施。關(guān)于輸入輸出接口 102,是由串行數(shù)據(jù)輸入輸出針921、供電針922、接地針923以及時(shí)鐘針924構(gòu)成的單純的連接器。
然后,參照?qǐng)DIO對(duì)只讀一次陣列進(jìn)行詳細(xì)說(shuō)明。
存儲(chǔ)保密數(shù)據(jù)塊Uj以及Dj的保密陣列Ajl04是認(rèn)證機(jī)制的核心部分。一對(duì)陣列(Uj, Dj)只使用一次,數(shù)據(jù)在被訪問(wèn)后刪除。在本實(shí)施例2中,該只讀一次存儲(chǔ)器通過(guò)熔絲1021來(lái)實(shí)現(xiàn),更詳細(xì)地說(shuō), 一個(gè)熔絲存儲(chǔ)有一個(gè)數(shù)據(jù)比特。熔絲具有兩個(gè)狀態(tài),即與比特值"0"對(duì)應(yīng)的熔融狀態(tài)和與比特值"1"對(duì)應(yīng)的非熔融狀態(tài)。除此之外,當(dāng)電流流過(guò)熔絲時(shí),熔絲熔融,然后,對(duì)應(yīng)的比特值被不可恢復(fù)地設(shè)定為"0"。
此外,對(duì)保密陣列104進(jìn)行詳細(xì)說(shuō)明。各陣列Ai具有兩個(gè)輸入信號(hào),即8比特的請(qǐng)求164和時(shí)鐘信號(hào)931。各陣列還具有作為一個(gè)輸出的、簽名163的一部分。8-計(jì)數(shù)計(jì)數(shù)器1002進(jìn)行從"0"向"8"的計(jì)數(shù),其輸出控制復(fù)用器1001和解復(fù)用器1003。復(fù)用器1001根據(jù)計(jì)數(shù)器1002的值選擇8個(gè)請(qǐng)求比特中的一個(gè),例如根據(jù)"1"選擇請(qǐng)求的比特"1"。解復(fù)用器1003按照計(jì)數(shù)器
1002的值,將輸入Vcc信號(hào)1005向128比特的存儲(chǔ)元件(cell) 1011 U0, ,U7中的一個(gè),并且向128比特的存儲(chǔ)元件1012 D0,, D7中的一個(gè)傳播。例如,根據(jù)"1"將Vcc向U!和D!傳播。各存儲(chǔ)元件Uj或Dj存儲(chǔ)128比特,并且,包含128個(gè)熔絲1021,熔融狀態(tài)的熔絲存儲(chǔ)比特值"0",另一方面,非熔融狀態(tài)的熔絲存儲(chǔ)比特值"1"。
留意計(jì)數(shù)器1002啟動(dòng)存儲(chǔ)元件Uj內(nèi)的一個(gè)、和存儲(chǔ)元件Dj內(nèi)的一個(gè)。兩個(gè)存儲(chǔ)元件將它們的128比特的存儲(chǔ)器內(nèi)容向復(fù)用器1004傳輸。留意計(jì)數(shù)器1002還選擇請(qǐng)求比特mj的一個(gè)。將該請(qǐng)求比特的值向復(fù)用器1004傳輸,用于選擇Uj或Dj中的某一方,如果請(qǐng)求比特為mji,則簽名的一部分為Uj,并且,如果請(qǐng)求比特為m^1,則簽名的一部分為Dj。
然后,對(duì)一個(gè)存儲(chǔ)元件U()1011進(jìn)行記載,但其他的元件也基本相同。如果計(jì)數(shù)器1002為"0 (零)",則將輸入Vcc傳輸給全部的作為關(guān)斷開(kāi)關(guān)進(jìn)行動(dòng)作的128個(gè)晶體管1022。如果對(duì)于某一個(gè)晶體管對(duì)應(yīng)的熔絲1021熔融,則電阻1023左右側(cè)的電壓非零。即,反相器1024的右側(cè)具有與比特值"0"對(duì)應(yīng)的電壓"0"。
另一方面,如果熔絲1021沒(méi)有熔融,則電阻1023的右側(cè)與接地信號(hào)連接,該電阻的右側(cè)的電壓成為零(0)。即,反相器1024的右側(cè)具有與比特值"1"對(duì)應(yīng)的電壓Vcc。但是,此時(shí),電流通過(guò)熔絲1021,在某個(gè)時(shí)間后使熔絲熔融,然后,對(duì)應(yīng)的比特?cái)?shù)據(jù)被無(wú)法恢復(fù)地設(shè)定為零(0)。即,數(shù)據(jù)在對(duì)其進(jìn)行訪問(wèn)后始終被刪除。
如果最初沒(méi)有將輸入Vcc通過(guò)解復(fù)用器1003向128個(gè)晶體管傳輸,則它們?nèi)孔鳛榻油ㄩ_(kāi)關(guān)進(jìn)行動(dòng)作,并且,全部晶體管的右側(cè)的電壓成為零(0),因此,存儲(chǔ)元件Uo直到由解復(fù)用器1003啟動(dòng)為止,不傳輸其存儲(chǔ)器內(nèi)容。
但是,本發(fā)明的范圍并不限于上述實(shí)施例,特別是還可以作為用于其他應(yīng)用的同樣的系統(tǒng)來(lái)使用。例如,在第二實(shí)施例中記載的認(rèn)證系統(tǒng)還可以用于認(rèn)證更換部件的 一致性(compliance )。作為典型的例子是用于膝上型電腦的電池,
損壞膝上型電腦的經(jīng)驗(yàn)。通過(guò)利用在此記載的認(rèn)證系統(tǒng),膝上型電腦的制造者可以對(duì)適合于產(chǎn)品并且可以安全使用的膝上型電腦用電池發(fā)行數(shù)字證書(shū)。并且,當(dāng)然,在此記載的認(rèn)證系統(tǒng)也可以根據(jù)不同的安全性或可用性參數(shù)、不同
的散列函數(shù)、以及通過(guò)不同的存儲(chǔ)器支援(memory supports )來(lái)實(shí)施。(實(shí)施例3 )
然后,作為本發(fā)明的實(shí)施例3,對(duì)用于存儲(chǔ)卡上的數(shù)字內(nèi)容的DRM進(jìn)行說(shuō)明。
即,在該第三實(shí)施例中,表示了本發(fā)明可以如何用于保護(hù)在存儲(chǔ)器支援上、特別是在SD卡等由閃速存儲(chǔ)器構(gòu)成的存儲(chǔ)卡上存儲(chǔ)的數(shù)字內(nèi)容。在默認(rèn)狀態(tài)下,無(wú)法根據(jù)存儲(chǔ)器的類型來(lái)支援該只讀一次訪問(wèn)(僅一次的讀出訪問(wèn)),所以必須通過(guò)簡(jiǎn)單的存儲(chǔ)控制裝置來(lái)實(shí)現(xiàn)該功能,即,在讀出了某個(gè)特定的存儲(chǔ)器區(qū)段時(shí),破壞該讀出的內(nèi)容。
作為該第三實(shí)施例,以下參照?qǐng)D11對(duì)用于視頻游戲控制臺(tái)和視頻游戲的例子進(jìn)4于詳細(xì)i兌明。
在該第三實(shí)施例中,被認(rèn)證裝置是在其上裝有軟件、典型地裝有視頻游戲1126的存儲(chǔ)卡。該視頻游戲1126可以由認(rèn)證裝置、即視頻游戲控制臺(tái)121來(lái)執(zhí)行。視頻游戲與控制臺(tái)直接連接1101,存儲(chǔ)卡具有包含數(shù)據(jù)針1121、供電針1122、時(shí)鐘針1123、以及接地針1124的幾個(gè)針。向閃速存儲(chǔ)器部1127的訪問(wèn)由控制訪問(wèn)權(quán)的存儲(chǔ)控制器1125管理,即,存儲(chǔ)有加密的陣列、樹(shù)數(shù)據(jù)、公開(kāi)密鑰以及證書(shū)的存儲(chǔ)器區(qū)段105具有只能讀出的(read-only:只讀訪問(wèn))功能,存儲(chǔ)有計(jì)數(shù)器的存儲(chǔ)器區(qū)段106具有讀出/寫(xiě)入(read/write:讀寫(xiě)訪問(wèn))功能,并且,存儲(chǔ)有保密陣列的存儲(chǔ)器區(qū)段103具有僅一次讀出(read-once:只讀一次訪問(wèn))功能,并且,在讀出保密陣列之后通過(guò)存儲(chǔ)控制裝置1125刪除。并且,存儲(chǔ)控制器1125如圖4所記載的那樣,還執(zhí)行簽名的生成(signaturegeneration) 231。與上述的實(shí)施例相同,為了對(duì)請(qǐng)求進(jìn)行簽名而進(jìn)行訪問(wèn),然后,根據(jù)情況需要?jiǎng)h除存儲(chǔ)器。
在視頻游戲控制臺(tái)中具備通常的周邊設(shè)備以及包含運(yùn)算單元132和存儲(chǔ)單元131的單元。輸入輸出接口例如通過(guò)利用WiFi接口來(lái)控制與視頻游戲存儲(chǔ)卡101的連接,并且控制與因特網(wǎng)1103的連接。該控制臺(tái)的主要目的是執(zhí)行在存儲(chǔ)卡101上存儲(chǔ)的游戲軟件1126。認(rèn)證中心裝置141是由視頻游戲公司管理的WEB服務(wù)器。該WEB服務(wù) 器可以發(fā)行用于被允許在控制臺(tái)121上運(yùn)行的視頻游戲的證書(shū),并且維持失去 信用、以及其保密陣列被黑客披露的特定存儲(chǔ)卡110的公開(kāi)密鑰的黑名單126。 控制臺(tái)121不進(jìn)行向因特網(wǎng)1103的持久性的連接,而是有時(shí)為了軟件或固件 的更新而訪問(wèn)因特網(wǎng)。此時(shí),將黑名單126向通過(guò)認(rèn)證中心裝置141連接的全 部控制臺(tái)121進(jìn)行傳輸。
當(dāng)把視頻游戲存儲(chǔ)卡101插入控制臺(tái)121中時(shí),將游戲數(shù)據(jù)1126向控制 臺(tái)傳輸。在該情況下中,游戲數(shù)據(jù)1126還是存儲(chǔ)卡101的確定手段ID112。 存儲(chǔ)卡101的公開(kāi)密鑰被規(guī)定為H(T川ID),所以游戲數(shù)據(jù)可以由視頻游戲控 制臺(tái)121來(lái)認(rèn)證。本發(fā)明的目的在于防止由控制臺(tái)執(zhí)行沒(méi)有認(rèn)證的軟件,根據(jù) 簽名數(shù)據(jù)163,可以根據(jù)在實(shí)施例1中記載的認(rèn)證協(xié)議的結(jié)果來(lái)確定是否可以 執(zhí)行游戲數(shù)據(jù)1126。在該結(jié)果為在認(rèn)證協(xié)議中失敗時(shí),病毒或非法的復(fù)制等 具有惡意的代碼無(wú)法在視頻游戲控制臺(tái)上執(zhí)行。并且,由視頻游戲公司管理的 認(rèn)證中心裝置141,對(duì)于作為可以開(kāi)發(fā)出能夠在控制臺(tái)121上運(yùn)行的視頻游戲 的第三方的游戲提供商,可以不向該第三方表明認(rèn)證中心裝置的私有密鑰146 地發(fā)出證書(shū)。
在該第三實(shí)施例中,安全性參數(shù)對(duì)于請(qǐng)求的大小為n=32比特,因此,偽 造簽名的概率為相對(duì)于四百萬(wàn)或其以上大約1次。在認(rèn)證數(shù)次失敗時(shí),控制臺(tái) 應(yīng)該按照視頻游戲公司的安全策略進(jìn)行反應(yīng)。例如,可以將存儲(chǔ)卡的公開(kāi)密鑰 108加入到黑名單126中,并且,為了更新其他控制臺(tái)的黑名單,可以向認(rèn)證 中心裝置141發(fā)送通知??捎眯詤?shù);陂選4奪為p=65,536,由此, 一個(gè)特定的-見(jiàn) 頻游戲可以運(yùn)行65,536次。最后,散列函數(shù)為h=128比特的MD5。此時(shí),在 只讀一次存儲(chǔ)器區(qū)段103中需要67兆字節(jié)的容量,在只讀存儲(chǔ)器區(qū)段105中 需要69兆字節(jié)的容量,并且在讀寫(xiě)存儲(chǔ)器區(qū)段106中需要2字節(jié)的容量。
此外,本發(fā)明的范圍不限于上述實(shí)施例,可以簡(jiǎn)單地通過(guò)不同的參數(shù)、例 如SHA1這樣的不同的散列函數(shù)、或者例如EEPROM或其他類型的存儲(chǔ)器來(lái) 實(shí)現(xiàn)同樣的功能。并且,在實(shí)施例3中記載的系統(tǒng)還可以容易地用于其他目的, 特別是根據(jù)該系統(tǒng),例如可以對(duì)電影或音樂(lè)等任何類型的數(shù)字內(nèi)容進(jìn)行數(shù)字簽 名。并且,認(rèn)證裝置121并不限定為便攜式音頻播放器、移動(dòng)電話或個(gè)人計(jì)算
24機(jī),還可以通過(guò)任何類型的電子設(shè)備實(shí)現(xiàn)。 (實(shí)施例4 )
最后,以下詳細(xì)說(shuō)明將本發(fā)明用于基于RFID芯片的反偽造系統(tǒng)的實(shí)施例4。
現(xiàn)有的RFID標(biāo)簽不安裝加密模塊,因此不足以用于認(rèn)證或反偽造。不在 該平臺(tái)上執(zhí)行加密算法主要有兩個(gè)理由。首先,最初,為了用于加密需要消耗 大量的能量,另一方面,被動(dòng)的標(biāo)簽即使是非常低的電力設(shè)定也進(jìn)行動(dòng)作。第 二,幾乎所有RFID標(biāo)簽僅具備存儲(chǔ)器,為了盡可能低地維持制造成本,不具 備運(yùn)算單元。
在該第四實(shí)施例中表示了如何取得在實(shí)施例1中所述的認(rèn)證機(jī)制的優(yōu)點(diǎn), 即,如何通過(guò)通常實(shí)現(xiàn)只讀一次訪問(wèn)(read -once access)功能的FeRAM存"f諸 器來(lái)實(shí)現(xiàn)只讀一次存儲(chǔ)單元(read-once memory unit )。
首先,以下參照?qǐng)D12對(duì)反偽造系統(tǒng)進(jìn)行詳細(xì)說(shuō)明。
對(duì)于名牌物品或高價(jià)產(chǎn)品來(lái)說(shuō),偽造成為最大的爭(zhēng)論焦點(diǎn),在此,加密或 數(shù)字簽名確實(shí)可以有所幫助。所謂該第四實(shí)施例的典型的情況是海關(guān)的管理, 在此,為了檢查具備RJFID芯片的可疑的項(xiàng)目,海關(guān)人員使用RFID閱讀器 (RFID reader) 121。 RFID芯片與認(rèn)證協(xié)議聯(lián)合工作,認(rèn)證項(xiàng)目的可靠性,對(duì) 此,偽造的產(chǎn)品在其自身證明失敗時(shí)被檢測(cè)出。RFID芯片由檢查項(xiàng)目的制造 者(以下稱為公司)制造,并進(jìn)行初始化。公司起到認(rèn)證中心的作用,并對(duì)海 關(guān)人員發(fā)行認(rèn)證中心的公開(kāi)密鑰125,但是,例如在閱讀器121被惡意的用戶 占據(jù)等情況下,為了避免信息的泄露,保密地保存認(rèn)證中心的私有密鑰146。
RFID芯片101由公司安裝在所制造的產(chǎn)品上,該芯片具備天線1201、以 及可以捕捉規(guī)定頻率的無(wú)線電波,并且利用磁感應(yīng)將無(wú)線電波轉(zhuǎn)換為電信號(hào)的 轉(zhuǎn)發(fā)器(transponder) 1202。由轉(zhuǎn)發(fā)器轉(zhuǎn)換的電信號(hào)傳輸來(lái)自閱讀器121的信 息,同時(shí)還由芯片101作為電源來(lái)使用。通過(guò)對(duì)接收到的信號(hào)進(jìn)行后向散射, 轉(zhuǎn)發(fā)器1202和天線1201可以將數(shù)據(jù)回復(fù)給閱讀器121。因此,閱讀器121和 RFID芯片101使用近距離通信技術(shù),通過(guò)無(wú)線網(wǎng)絡(luò)相連接。
存儲(chǔ)控制器1203控制向由FeRAM (Ferromagnetic Random Access Memory )實(shí)現(xiàn)的存儲(chǔ)部1204的訪問(wèn)。FeRAM本來(lái)是只讀一次存儲(chǔ)器(read-oncememory),其數(shù)據(jù)與實(shí)施例3的情況不同,由于讀出而4皮破壞,所以存儲(chǔ)控制 器1203不需要表明地刪除數(shù)據(jù)。因此,存儲(chǔ)控制器的作用僅是實(shí)現(xiàn)存儲(chǔ)控制, 并且執(zhí)行圖6所示的簽名生成步驟。在此再次說(shuō)明,所謂簽名就是選擇l丈據(jù), 不需要進(jìn)行任何運(yùn)算。
FeRAM是具備類似閃速存儲(chǔ)器的特性的非易失性存儲(chǔ)器,并且具有幾個(gè) 優(yōu)點(diǎn)。即,低功耗,并且寫(xiě)入/刪除循環(huán)(write/erase cycles )的次數(shù)多。FeRAM 目前在幾個(gè)RFID的應(yīng)用中使用。FeRAM單元1204至少具有3個(gè)存儲(chǔ)器區(qū)段。 只讀區(qū)段(read-only segment) 105存儲(chǔ)有ID112、公開(kāi)密鑰108及其證書(shū)109、 樹(shù)數(shù)據(jù)110、以及加密的陣列111 。讀寫(xiě)區(qū)段(read-write segment )106存儲(chǔ)有 計(jì)數(shù)器107,并且只讀一次區(qū)段(read-once segment) 103存儲(chǔ)有保密陣列104。 從其性質(zhì)上看,F(xiàn)eRAM為只讀一次(read-once),所以不需要任何用于實(shí)現(xiàn)存 儲(chǔ)器區(qū)段103的只讀一次特性(read-once functionality)的機(jī)制。但是,在只 讀區(qū)段105和只讀一次區(qū)4史106中存儲(chǔ)的數(shù)據(jù)通過(guò)讀出被破壞,所以必須通過(guò) 在存儲(chǔ)控制器1203內(nèi)實(shí)現(xiàn)的機(jī)制來(lái)再生(refresh)數(shù)據(jù)。
芯片101和閱讀器121如圖4所示,可以執(zhí)行認(rèn)證協(xié)議,在此,閱讀器 121向芯片101發(fā)送隨機(jī)的請(qǐng)求164,芯片通過(guò)請(qǐng)求的簽名163來(lái)應(yīng)答。作為 閱讀器,可以是具備用于與RFID芯片101進(jìn)行通信,并且在失敗時(shí)顯示認(rèn)證 協(xié)議的結(jié)果以使海關(guān)人員可以采取恰當(dāng)?shù)膽?yīng)對(duì)措施的近距離通信技術(shù)的 PDA。并且,為了獲得包含失去信用的產(chǎn)品的公開(kāi)密鑰的、由公司更新的黑名 單126,閱讀器可以定期向因特網(wǎng)1212連接。但是,在閱讀器為可移動(dòng)(mobile) 時(shí),并不一定持續(xù)向因特網(wǎng)連接,因此,芯片101和閱讀器121之間的認(rèn)證協(xié) 議,可以不受到任何外部千擾,或者不向因特網(wǎng)1212連接地執(zhí)行。
在該第四方式中,安全性參數(shù)對(duì)于請(qǐng)求的大小選擇為n=16比特,并且, 作為可用性參數(shù)為p-256個(gè)的簽名。因此, 一個(gè)產(chǎn)品在其壽命內(nèi)最多可以認(rèn)證 256次。并且,只能以l/216=l/65,536這樣的可以忽略的概率偽造簽名。對(duì)于 散列函數(shù)使用SHAl,因此散列輸出大小為h=160比特,由此,需要用于ReRAM 單元1204的330千字節(jié)的容量。
本發(fā)明的范圍不限于上述的實(shí)施例,上述的系統(tǒng)并不限于電子護(hù)照,還可 以用于產(chǎn)品的跟蹤(product tracking)、電子錢(qián)包(electronic wallets )或者電子月票(electronic commuter pass)等其他情況。也可以使用不同的散列函數(shù)或 實(shí)現(xiàn)。
2權(quán)利要求
1. 一種加密系統(tǒng),其用于在不具備強(qiáng)大的運(yùn)算單元或者完全不具有運(yùn)算單元的平臺(tái)中生成數(shù)字簽名,其特征在于,具有(a)用于接收輸入消息的第1單元;(b)用于存儲(chǔ)保密數(shù)據(jù)的第1存儲(chǔ)部;(c)用于存儲(chǔ)加密后的數(shù)據(jù)、認(rèn)證數(shù)據(jù)以及公開(kāi)密鑰的第2存儲(chǔ)部;(d)存儲(chǔ)了計(jì)數(shù)器的第3存儲(chǔ)部;以及(e)用于發(fā)送所述輸入消息的數(shù)字簽名的第2單元,所述數(shù)字簽名具備從所述保密數(shù)據(jù)中取出的數(shù)據(jù),并且具備所述加密后的數(shù)據(jù)以及認(rèn)證數(shù)據(jù)。
2. 根據(jù)權(quán)利要求1所述的加密系統(tǒng),其特征在于, 所述保密數(shù)據(jù)由多個(gè)保密陣列構(gòu)成,所述保密陣列存^f諸多個(gè)保密數(shù)據(jù)塊,并且所述保密數(shù)據(jù)塊成對(duì)地構(gòu)成,在所述對(duì)的狀態(tài)下只有一個(gè)所述保密數(shù)據(jù)塊 可以訪問(wèn),并且通過(guò)讀出所述對(duì)內(nèi)的要素破壞兩個(gè)保密數(shù)據(jù)。
3. 根據(jù)權(quán)利要求1所述的加密系統(tǒng),其特征在于,所述第1存儲(chǔ)部是熔絲陣列,并且通過(guò)訪問(wèn)所述第1存儲(chǔ)部熔化規(guī)定數(shù)量 的熔絲。
4. 根據(jù)權(quán)利要求2所述的加密系統(tǒng),其特征在于,還具有存儲(chǔ)控制器,所述存儲(chǔ)控制器通過(guò)訪問(wèn)所述第1存儲(chǔ)部消除規(guī)定數(shù) 量的所述保密數(shù)據(jù)塊。
5. 根據(jù)權(quán)利要求4所述的加密系統(tǒng),其特征在于, 所述第1存儲(chǔ)部是閃速存儲(chǔ)單元。
6. 根據(jù)權(quán)利要求4所述的加密系統(tǒng),其特征在于, 所述第1存儲(chǔ)部是EEPROM存儲(chǔ)單元。
7. 根據(jù)權(quán)利要求4所述的加密系統(tǒng),其特征在于, 所述第1存儲(chǔ)部是FeRAM存儲(chǔ)單元。
8. 根據(jù)權(quán)利要求2所述的加密系統(tǒng),其特征在于,所述加密后的數(shù)據(jù)由多個(gè)加密后的陣列構(gòu)成,該加密后的陣列存儲(chǔ)有多個(gè)加密后的數(shù)據(jù)塊,并且所述加密后的數(shù)據(jù)塊存儲(chǔ)來(lái)自通過(guò)加密處理單元加密后的所述保密陣列的所述保密數(shù)據(jù)塊。
9. 根據(jù)權(quán)利要求8所述的加密系統(tǒng),其特征在于,所述加密處理單元是散列函數(shù)單元。
10. 根據(jù)權(quán)利要求9所述的加密系統(tǒng),其特征在于,所述認(rèn)證數(shù)據(jù)構(gòu)成為存儲(chǔ)了多個(gè)節(jié)點(diǎn)的樹(shù)狀的結(jié)構(gòu),所述樹(shù)的葉子存儲(chǔ)有由所述散列函數(shù)單元進(jìn)一步加密后的節(jié)點(diǎn),并且,所述樹(shù)內(nèi)的親節(jié)點(diǎn)存儲(chǔ)有由所述散列函數(shù)單元加密后的規(guī)定數(shù)量的子節(jié)點(diǎn),在此從所述樹(shù)的根導(dǎo)出所述公開(kāi)密鑰。
11. 一種爿^開(kāi)密鑰i人-i正系統(tǒng),其特征在于,具有(a) 所述權(quán)利要求1所述的加密系統(tǒng);以及(b) 認(rèn)證部,該認(rèn)證部具有(1) 用于生成隨機(jī)數(shù)消息的隨機(jī)數(shù)生成單元;(2) 用于發(fā)送所述隨機(jī)數(shù)消息的第l單元;(3 )用于接收數(shù)字簽名的第2單元;以及(4)用于認(rèn)證所述數(shù)字簽名的第3單元,所述加密系統(tǒng)生成所述消息的數(shù)字簽名,并且當(dāng)正確地認(rèn)證所述數(shù)字簽名時(shí),由所述認(rèn)證單元來(lái)證明。
12. —種用于生成數(shù)字簽名的數(shù)字簽名生成方法,其具備以下的步驟(a) 提供用于存儲(chǔ)保密數(shù)據(jù)、加密后的數(shù)據(jù)、認(rèn)證數(shù)據(jù)以及公開(kāi)密鑰的單元;(b) 接收輸入消息;(c) 從所述保密數(shù)據(jù)中取出保密數(shù)據(jù)塊;(d) 從所述加密后的數(shù)據(jù)中取出加密后的塊;(e) 從所述認(rèn)證數(shù)據(jù)中取出認(rèn)證數(shù)據(jù)塊;(f) 更新計(jì)數(shù)器;(g )發(fā)送所述輸入消息的數(shù)字簽名,該數(shù)字簽名生成方法的特征在于,所述數(shù)字簽名具有所述取出的保密數(shù)據(jù)塊、所述取出的加密后的數(shù)據(jù)塊、以及所述耳又出的i人證數(shù)據(jù)塊。
13. 根據(jù)權(quán)利要求12所述的方法,其特征在于,取出所述保密數(shù)據(jù)塊的步驟還具有以下步驟(a) 消除所述取出的保密數(shù)據(jù)塊;(b) 對(duì)應(yīng)于各個(gè)取出的保密數(shù)據(jù)塊,至少消除一個(gè)其他的保密數(shù)據(jù)塊。
14. 根據(jù)權(quán)利要求12所述的方法,其特征在于,取出所述保密數(shù)據(jù)塊的步驟還具有以下步驟(a) 對(duì)所述輸入消息的1比特進(jìn)行掃描;(b) 訪問(wèn)所述保密數(shù)據(jù)內(nèi)的保密數(shù)據(jù)塊的對(duì);(c) 如果所述比特為0則表明所述對(duì)中的一個(gè)保密 居,如果所述比特為1則表明該對(duì)中的另一個(gè)保密數(shù)據(jù);(d) 消除所述保密數(shù)據(jù)的所述對(duì);(e) 對(duì)于所述輸入消息的全部比特重復(fù)上述的步驟,由此,所述數(shù)字簽名包含有被表明的保密數(shù)據(jù)塊。
15. 才艮據(jù)權(quán)利要求12所述的方法,其特征在于,通過(guò)使用加密函數(shù)從所述保密數(shù)據(jù)中對(duì)全部的保密數(shù)據(jù)塊進(jìn)行加密,由此對(duì)所述加密后的數(shù)據(jù)進(jìn)行初始化。
16. 根據(jù)權(quán)利要求15所述的方法,其特征在于,所述加密函數(shù)是散列函數(shù)。
17. 根據(jù)權(quán)利要求16所述的方法,其特征在于,所述認(rèn)證的初始化包含以下步驟(a) 通過(guò)使用所述散列函數(shù)對(duì)規(guī)定數(shù)量的加密后的數(shù)據(jù)塊執(zhí)行散列,運(yùn)算葉節(jié)點(diǎn);(b) 通過(guò)對(duì)在所述上一步驟中運(yùn)算出的規(guī)定數(shù)量的節(jié)點(diǎn)扭i行散列,運(yùn)算至少一個(gè)新的節(jié)點(diǎn);(c) 重復(fù)進(jìn)行上述的步驟(b),直到剩余一個(gè)節(jié)點(diǎn)為止,由此,從通過(guò)所述初始化方法運(yùn)算出的最后的節(jié)點(diǎn)導(dǎo)出了所述數(shù)字簽名方法的公開(kāi)密鑰。
18. —種公開(kāi)密鑰認(rèn)證方法,其特征在于,具有以下的步驟(a) 生成隨機(jī)的消息;(b) 通過(guò)所述權(quán)利要求12所述的方法生成所述隨機(jī)消息的數(shù)字簽名;(c) 對(duì)所述數(shù)字簽名進(jìn)行認(rèn)證,由此,在正確地認(rèn)證了所述數(shù)字簽名時(shí),認(rèn)證成功。
全文摘要
本發(fā)明提供用于在僅有存儲(chǔ)器的結(jié)構(gòu)中進(jìn)行認(rèn)證和數(shù)字簽名的系統(tǒng)及方法,其具備只讀一次存儲(chǔ)單元,其存儲(chǔ)有由于讀出使內(nèi)容被破壞的數(shù)據(jù)的保密陣列;以及通常的存儲(chǔ)器,其存儲(chǔ)有加密陣列、對(duì)于單一的公開(kāi)密鑰證明加密陣列的樹(shù)數(shù)據(jù)、以及由認(rèn)證中心裝置發(fā)行的公開(kāi)密鑰的證書(shū),這些存儲(chǔ)器結(jié)構(gòu)向被認(rèn)證者裝置發(fā)送該公開(kāi)密鑰和證書(shū),在只讀一次存儲(chǔ)單元內(nèi),從保密陣列接收通過(guò)要素被簽名的請(qǐng)求。認(rèn)證系統(tǒng)為了檢查從只讀一次存儲(chǔ)器表明的數(shù)據(jù)是否可靠,對(duì)其進(jìn)行加密后將其結(jié)果與加密陣列的一個(gè)數(shù)據(jù)進(jìn)行比較,并且,利用樹(shù)數(shù)據(jù)來(lái)確認(rèn)加密陣列是否對(duì)于公開(kāi)密鑰進(jìn)行證明。最后,認(rèn)證者裝置使用證書(shū)檢查公開(kāi)密鑰是否可靠。
文檔編號(hào)H04L9/32GK101488856SQ20081017710
公開(kāi)日2009年7月22日 申請(qǐng)日期2008年12月5日 優(yōu)先權(quán)日2008年1月17日
發(fā)明者卡米爾·維堯姆, 埃里克·達(dá)爾門(mén), 桶屋勝幸 申請(qǐng)人:株式會(huì)社日立制作所