專(zhuān)利名稱(chēng):保密交易的方法、設(shè)備、系統(tǒng)和固件的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種保密交易用的方法、設(shè)備和固件。尤其,在基于電子模塊的系統(tǒng)中,可以將模塊構(gòu)造成至少提供保密數(shù)據(jù)傳輸、數(shù)字簽名,或者授權(quán)進(jìn)行貨幣交易。
相關(guān)技術(shù)的描述目前,具有相關(guān)磁條的信用卡是在市場(chǎng)上較佳的的貨幣交易媒體。信用卡用戶可以將卡拿到自動(dòng)取款機(jī)、本地商店或銀行,并進(jìn)行貨幣交易。在許多情況下,可以通過(guò)電話接口用卡進(jìn)行貨幣兌換。磁條卡用來(lái)幫助識(shí)別卡和卡的使用者。卡為傳遞提供了程度相當(dāng)?shù)偷谋C苄?。不管怎樣,卡可使卡的持有者?gòu)買(mǎi)產(chǎn)品、支付債款,并在獨(dú)立的銀行帳戶之間進(jìn)行貨幣兌換。
已對(duì)磁條卡作了改進(jìn)。已出現(xiàn)用微電路代替磁條的卡。一般與磁條一樣,微電路被用來(lái)使讀卡機(jī)進(jìn)行交易。
發(fā)明內(nèi)容
本發(fā)明是用于在一較佳的便攜式模塊和一服務(wù)供應(yīng)者設(shè)備之間傳遞加密信息的設(shè)備、系統(tǒng)和方法。本發(fā)明包括一模塊,它具有專(zhuān)用識(shí)別,能夠產(chǎn)生隨機(jī)數(shù)(例如SALT),并將隨機(jī)數(shù)與例如兌換貨幣的請(qǐng)求一起傳送給服務(wù)供應(yīng)者的設(shè)備。作為回復(fù),服務(wù)供應(yīng)者的設(shè)備可以(根據(jù)交易的類(lèi)型)用秘密或公開(kāi)密鑰對(duì)隨機(jī)數(shù)和其它信息進(jìn)行加密,并將加密信息作為經(jīng)簽名的證明送回模塊。收到經(jīng)簽名的證明后,模塊將根據(jù)交易的類(lèi)型用公共或秘密密鑰對(duì)該證明解密,并將解密后的數(shù)值與原始的隨機(jī)數(shù)進(jìn)行比較。另外,如果數(shù)值相同,那么可以認(rèn)為被請(qǐng)求的交易是保密的,從而進(jìn)行交易。模塊能夠?qū)灰仔畔⒆鲿r(shí)間標(biāo)記,并將交易信息存儲(chǔ)在存儲(chǔ)器中,以便事后查看。
附圖概述結(jié)合附圖閱讀以下詳細(xì)描述,可以更全面地理解本發(fā)明的方法和設(shè)備,其中
圖1是一模塊實(shí)施例的方框圖;圖2例示了創(chuàng)建一交易組的過(guò)程;圖3例示了接收一電子郵件(E-mail)消息的技術(shù);圖4例示了為公證函數(shù)準(zhǔn)備模塊的技術(shù);圖5例示了把模塊用作的公證的技術(shù);圖6例示了準(zhǔn)備一模塊以進(jìn)行貨幣交易的技術(shù);圖7例示了用一模塊進(jìn)行貨幣交易的技術(shù);圖8例示了用一模塊進(jìn)行貨幣交易的技術(shù);圖9例示了用一模塊進(jìn)行貨幣交易的技術(shù);圖10例示了通過(guò)網(wǎng)絡(luò)傳遞數(shù)據(jù)的技術(shù);圖11例示了模塊內(nèi)軟件和固件的結(jié)構(gòu);圖12例示了模塊內(nèi)軟件和固件的結(jié)構(gòu)。
目前較佳實(shí)施例的詳細(xì)描述圖1例出了體現(xiàn)本發(fā)明一實(shí)施例的模塊10的方框圖。模塊電路是單一的集成電路??梢岳斫?,模塊10也可以是組合在起的多個(gè)集成或離散的元件電路。模塊10包括微處理器12、實(shí)時(shí)時(shí)鐘14、控制電路16、數(shù)學(xué)協(xié)處理器18、存儲(chǔ)電路20、輸入/輸出電路26以及能量電路。
可以將模塊做得足夠小,以便將其包含在各種物品中,包括(但不局限于)紀(jì)念品、卡、戒子、計(jì)算機(jī)、錢(qián)包、鑰匙鏈、徽章、寶石、郵票或者使用者可以實(shí)際抓握或掛鉤的任何物品。
微處理器12最好是8位微處理器,但也可以是16、32、64或任何可操作的位數(shù)。時(shí)鐘14為模塊電路提供計(jì)時(shí)。也可以用分立的時(shí)鐘電路14,提供連接運(yùn)行的實(shí)時(shí)時(shí)鐘。
數(shù)學(xué)協(xié)處理器電路18設(shè)計(jì)用來(lái)處理非常大的數(shù)。具體地說(shuō),協(xié)處理器將處理RSA加密和解密的復(fù)雜數(shù)學(xué)。
存儲(chǔ)電路20可以包含只讀存儲(chǔ)器和非易失性隨機(jī)存取存儲(chǔ)器。另外,本領(lǐng)域的普通技術(shù)人員應(yīng)該理解,可以用易失性存儲(chǔ)器、EPROM、SRAM和各種其它類(lèi)型的存儲(chǔ)電路建立一個(gè)等效的裝置。
控制電路16為整個(gè)電路提供定時(shí)、鎖定和各種必要的控制功能。
輸入/輸出電路26能與模塊10進(jìn)行雙向通信。輸入/輸出電路26最好至少包括一個(gè)輸出緩沖器28和一個(gè)輸入緩沖器。為通過(guò)單線總線進(jìn)行通信,可以輸入/輸出電路26中包括單線接口電路32。
對(duì)于維持存儲(chǔ)電路20工作和/或?yàn)槟K10中的其它電路提供輔助電能,能量電路34是必須的。能量電路34可以包括電池、電容器、R/C電路、光電電池或任何其它等效的產(chǎn)生能量的電路或裝置。
現(xiàn)在將討論保密交易模塊一實(shí)施例的固件結(jié)構(gòu)和使用模塊10的一系列應(yīng)用舉例。這些例子試圖說(shuō)明模塊10的一組較佳特性,并解釋該模塊提供的服務(wù)。這些應(yīng)用決不限制本發(fā)明的能力,而是舉例揭示它的能力。I.關(guān)于較佳模塊及其固件設(shè)計(jì)的概述模塊10最好包括通用8051兼容微控制器12或合理的相似產(chǎn)品;連續(xù)運(yùn)行的實(shí)時(shí)時(shí)鐘14;對(duì)大整數(shù)進(jìn)行操作的高速模乘冪加速器(high-speed modularexponentiation accelerator)(數(shù)學(xué)協(xié)處理器)18;具有單線接口32的用于發(fā)送和接收數(shù)據(jù)的輸入和輸出緩沖器28,30;具有預(yù)編程固件的32千字節(jié)的ROM存儲(chǔ)器22;用于存儲(chǔ)關(guān)鍵數(shù)據(jù)的8千字節(jié)的NVRAM(非易失性RAM);以及控制電路16,該電路能使微控制器12加上電源,從而解釋位于輸入電路26中的數(shù)據(jù),并對(duì)該數(shù)據(jù)起作用。模塊10從單線線路汲取其工作電源。最好將微控制器12、時(shí)鐘14、存儲(chǔ)器20、緩沖器28和30、單線前端32、模乘冪加速器18以及控制電路16集成在單個(gè)硅片上,并用封裝技術(shù)將它們組裝在一個(gè)不銹鋼的微型罐中,其中所用的安裝技術(shù)實(shí)質(zhì)上不可能在探測(cè)NVRAM24中的數(shù)據(jù)時(shí)不破壞該數(shù)據(jù)。最初。大多數(shù)的NVRAM24都可用來(lái)支持諸如下述的應(yīng)用。普通的技術(shù)人員將理解,存在許多可對(duì)比的模塊設(shè)計(jì)變化。例如,可以使用易失性存儲(chǔ)器,或者使用接口而不用單線。可以將硅片安裝在信用卡、戒子等物品中。
模塊10最好首先由服務(wù)供應(yīng)者(Service Provider)使用,服務(wù)供應(yīng)者將數(shù)據(jù)裝入模塊10,使其實(shí)現(xiàn)有用的功能,其次由端點(diǎn)用戶(End User)使用,端點(diǎn)用戶向模塊10發(fā)出命令,從而為了端點(diǎn)用戶的利益以服務(wù)供應(yīng)者的名義進(jìn)行操作。為此,模塊10提供功能,以支持服務(wù)供應(yīng)者為一計(jì)劃中的應(yīng)用建立模塊。它還提供功能,以允許端點(diǎn)用戶調(diào)用服務(wù)供應(yīng)者提供的服務(wù)。
每個(gè)服務(wù)供應(yīng)者可以通過(guò)創(chuàng)建一個(gè)交易組40(參見(jiàn)圖11和12)而保留一塊NVRAM存儲(chǔ)器,支持它的服務(wù)。交易組40只是一組由服務(wù)供應(yīng)者定義的對(duì)象(object)42。這些對(duì)象42包括數(shù)據(jù)對(duì)象(加密密鑰、交易計(jì)數(shù)、錢(qián)款數(shù)額、日期/時(shí)間標(biāo)標(biāo)志等)和交易腳本(transaction script)44,其中交易腳本規(guī)定了如何以有用的方式組合數(shù)據(jù)對(duì)象。每個(gè)服務(wù)供應(yīng)者創(chuàng)建其自己的獨(dú)立于每個(gè)其它交易組的交易組40。因此,多個(gè)服務(wù)供應(yīng)者可以在同一個(gè)模塊10中提供不同的服務(wù)。可以支持的服務(wù)供應(yīng)者的數(shù)量依賴于每個(gè)交易組40所定義的對(duì)象42的數(shù)量和復(fù)雜性。以下例舉了一些可在交易組40內(nèi)定義的對(duì)象42RSA模數(shù)時(shí)鐘偏移RSA指數(shù)隨機(jī)SALT交易腳本 配置數(shù)據(jù)交易計(jì)數(shù)器 輸入數(shù)據(jù)貨幣寄存器 輸出數(shù)據(jù)破壞器在每個(gè)交易組40內(nèi),模塊10將最初接受某些具有不可撤消效果的命令。一旦在某個(gè)交易組40中執(zhí)行了這些不可撤消命令中的任何一些,它們將保持有效,直至模塊的可用壽命終止或者直至從模塊10中刪除應(yīng)用的交易組40。另外,存在一些命令,它們具有不可撤消的效果直至模塊壽命終止或者直至發(fā)出主擦除,以擦除模塊10的整個(gè)內(nèi)容。以下將對(duì)這些命令作進(jìn)一步的討論。這些命令是服務(wù)供應(yīng)者對(duì)端點(diǎn)用戶執(zhí)行的操作進(jìn)行必要控制所必須的。一些不可撤消命令的例子有Privatize Object Lock ObjectLock Transaction GroupLock Micro-In-A-CanTM由于模塊的許多作用集中在其保密的能力上,所以Privatize命令是一個(gè)非常重要的不可撤消的命令。
一旦將模塊10作為一個(gè)整體鎖定,便將剩余的NVRAM 24存儲(chǔ)器分配給一個(gè)循環(huán)緩沖器,用于支持對(duì)在先交易的審計(jì)跟蹤。每個(gè)交易由交易組的標(biāo)號(hào)、規(guī)定組內(nèi)交易腳本40的標(biāo)號(hào)以及日期/時(shí)間標(biāo)志來(lái)識(shí)別。
由固件實(shí)現(xiàn)的基本概念是服務(wù)供應(yīng)者可以將交易腳本44存儲(chǔ)在一個(gè)交易組40中,以便只執(zhí)行諸對(duì)象中他希望端點(diǎn)用戶能夠執(zhí)行的那些操作。服務(wù)供應(yīng)者還可以存儲(chǔ)和秘密化RSA密鑰或者允許模塊10以服務(wù)供應(yīng)者的名義對(duì)交易“簽名”的密鑰(加密密鑰),并將這些密鑰秘密化,從而保證它們的可靠性。通過(guò)使交易組40中的一個(gè)或多個(gè)對(duì)象42秘密化并/或?qū)⑵滏i定,服務(wù)供應(yīng)者保持對(duì)允許模塊10以其名義做什么進(jìn)行控制。端點(diǎn)用戶不能添加新的交易腳本44,并因此被限制于對(duì)可以用服務(wù)供應(yīng)者編程的交易腳本44執(zhí)行的對(duì)象42進(jìn)行操作。II.模塊的使用模型本節(jié)說(shuō)明模塊10的一系列實(shí)際應(yīng)用,涉及最簡(jiǎn)單的至最復(fù)雜的。這些應(yīng)用中的每一個(gè)都將作詳細(xì)描述,以便清楚為什么模塊10是該應(yīng)用的主要實(shí)現(xiàn)技術(shù)。A.保密電子郵件的背景在本節(jié)中,我們提供了一例如何使用模塊10以允許任何人在任何地方保密地接收他或她自己的電子郵件。
1.標(biāo)準(zhǔn)的電子郵件在標(biāo)準(zhǔn)的電子郵件系統(tǒng)中,用戶的計(jì)算機(jī)與Internet服務(wù)供應(yīng)者相連,并且當(dāng)對(duì)供應(yīng)者計(jì)算機(jī)查詢新郵件時(shí),用戶的計(jì)算機(jī)要提供一個(gè)郵件口令。郵件以明文形式駐留在供應(yīng)者的計(jì)算機(jī)中,可被在那里工作的任何人閱讀。另外,當(dāng)郵件從它的源地傳送時(shí),它會(huì)經(jīng)過(guò)許多計(jì)算機(jī),并且也暴露在這些位置上。如果用戶通過(guò)局域網(wǎng)絡(luò)從他的供應(yīng)者那里接收到他的郵件,那么同一網(wǎng)絡(luò)上的其它任何人都可以獲得并閱讀該郵件。終于,利用許多不要求用戶輸入口令的郵件系統(tǒng),坐在用戶計(jì)算機(jī)旁的任何人都可以檢索和閱讀他的郵件,因?yàn)楫?dāng)查詢供應(yīng)者的計(jì)算機(jī)時(shí),他的計(jì)算機(jī)自動(dòng)提供口令。
還經(jīng)??梢詮挠脩粲?jì)算機(jī)的配置文件中復(fù)制口令,并用它從不同計(jì)算機(jī)中閱讀到他的郵件。作為這種廣泛分布的明文形式的郵件以及較弱的口令保護(hù)的結(jié)果,標(biāo)準(zhǔn)的電子郵件被認(rèn)為是非常不保密的。
為了克服該問(wèn)題,已設(shè)計(jì)出稱(chēng)為P.G.P.(Pretty Good Privacy)的保密系統(tǒng)。為了使用P.G.P,用戶產(chǎn)生一個(gè)包含公共部分和秘密部分的完整的RSA密鑰集。通過(guò)將公開(kāi)密鑰放在他所有電子郵件消息的簽名塊中并按排在P.G.P.公開(kāi)密鑰的可以公共訪問(wèn)的目錄中公布,用戶使其公開(kāi)密鑰可被廣泛使用。他將其秘密密鑰存儲(chǔ)在他自己的個(gè)人計(jì)算機(jī)上,也許以口令保護(hù)的形式。當(dāng)有人希望向該用戶發(fā)送秘密電子郵件時(shí),他產(chǎn)生一個(gè)隨機(jī)IDEA加密密鑰,并用IDEA加密算法對(duì)整個(gè)消息加密。然后,他用預(yù)期的接收者所提供的公開(kāi)密鑰對(duì)IDEA密鑰本身加密。他以電子郵件形式將用IDEA加密的消息和用用戶公開(kāi)密鑰加密的IDEA密鑰發(fā)送給該用戶。由于用IDEA對(duì)消息加密以及用預(yù)期接收者的公開(kāi)密鑰對(duì)IDEA密鑰加密,所以除非是預(yù)期的接收者,其它看見(jiàn)這次傳輸?shù)娜魏稳硕疾荒茏x出它。接收者的計(jì)算機(jī)包含相應(yīng)的秘密密鑰,并因此可以對(duì)IDEA密鑰解密,以及用經(jīng)解密的IDEA密鑰對(duì)消息解密。這針對(duì)那些試圖遠(yuǎn)程閱讀用戶郵件的人采取了保密措施,但當(dāng)其他人可以訪問(wèn)該用戶的計(jì)算機(jī)時(shí),因用戶計(jì)算機(jī)本身包含秘密密鑰而使效力便降低了。即使秘密密鑰是用口令保護(hù)的,但經(jīng)常容易猜出用戶口令或者當(dāng)用戶輸人口令時(shí)對(duì)他進(jìn)行偷看,所以用戶計(jì)算機(jī)幾乎不能保密。另外,因?yàn)橛脩舻拿孛苊荑€存儲(chǔ)在其自己的計(jì)算機(jī)上且其它地方?jīng)]有,所以接收者只能在該計(jì)算機(jī)上接收保密的電子郵。因此,P.G.P的弱點(diǎn)在于它被嚴(yán)格地局限于存有秘密密鑰的用戶計(jì)算機(jī)。
2.保護(hù)模塊的電子郵件利用用來(lái)保護(hù)電子郵件的例示模塊10,用戶可以將他的電子郵件轉(zhuǎn)寄至他前往的任何地方,無(wú)需害怕他人讀取或者他的PC機(jī)是危及其郵件安全性的弱鏈路。保護(hù)模塊的電子郵件系統(tǒng)類(lèi)似于P.G.P.系統(tǒng),只是將用來(lái)對(duì)IDEA密鑰解密的秘密密鑰存儲(chǔ)在模塊10的某交易組的一個(gè)秘密化對(duì)象中,而不是存儲(chǔ)在PC機(jī)中。保護(hù)模塊的電子郵件系統(tǒng)操作如下a.參照?qǐng)D2、11和12,在S1,用戶創(chuàng)建一個(gè)交易組40,在S2,產(chǎn)生一個(gè)RSA密鑰集,并且將其裝入交易組40的三個(gè)對(duì)象42(一個(gè)RSA模數(shù)對(duì)象N,和兩個(gè)RSA指數(shù)對(duì)象E和D)中。然后在S3,他將解密指數(shù)D秘密化。最后在S4,他創(chuàng)建一個(gè)交易腳本44,以便取出位于輸入數(shù)據(jù)對(duì)象中的數(shù)據(jù),用模數(shù)N對(duì)其加密并將指數(shù)D秘密化,并且將結(jié)果放在輸出數(shù)據(jù)對(duì)象中。在S5,他鎖定組,防止添加任何其它的交易腳本44。他“忘記”了D的值,并在公共目錄和他的電子郵件消息的簽名塊中公開(kāi)E和N的值。由于他已經(jīng)忘記了D并且已經(jīng)使D的指數(shù)對(duì)象秘密化,所以任何人都沒(méi)有辦法找到D的值。
b.參照?qǐng)D3,為了把保密的電子郵件發(fā)送給用戶,使用P.G.P.系統(tǒng)。當(dāng)在A1處用戶接收到保密電子郵件時(shí),在A2,他把經(jīng)加密的IDEA密鑰輸送到交易組40的輸入數(shù)據(jù)對(duì)象中,然后在A3,他調(diào)用交易腳本44,對(duì)該密鑰解密,并在A4將經(jīng)解密的結(jié)果放在輸出數(shù)據(jù)對(duì)象中。然后他從輸出數(shù)據(jù)對(duì)象中讀取經(jīng)解密的IDEA密鑰,并在A5,用它對(duì)他的郵件解密。注意,現(xiàn)在任何人,包括用戶,都不可能在非實(shí)際擁有模塊10的情況下閱讀任何新的郵件。因此由于閱讀郵件的計(jì)算機(jī)上必須實(shí)際存在模塊10,所以沒(méi)有用戶的知識(shí)就無(wú)法讀取他的郵件。用戶可以把他的模塊10帶到他去的任何地方,并能在任何地方用它閱讀他的轉(zhuǎn)寄郵件。他家中的計(jì)算機(jī)不是保密系統(tǒng)的弱點(diǎn)。
上述保密電子郵件是最簡(jiǎn)單可行的模塊應(yīng)用,它只要求一個(gè)RSA密鑰和一個(gè)交易腳本44。它甚至不必將公開(kāi)密鑰E存儲(chǔ)在模塊10中,而由于公開(kāi)密鑰被認(rèn)為是公眾可以得到的,所以這樣做是個(gè)好辦法。通過(guò)將E存儲(chǔ)在一個(gè)指數(shù)對(duì)象中并且不把該對(duì)象或模數(shù)對(duì)象N秘密化,用戶可以確??偰軓哪K10中讀到公開(kāi)密鑰。由于不會(huì)要求模塊10進(jìn)行加密操作,所以交易腳本44都不包含E。B.數(shù)字公證業(yè)務(wù)本節(jié)描述了使用模塊10的較佳公證業(yè)務(wù)。
1.標(biāo)準(zhǔn)公證服務(wù)的背景傳統(tǒng)的公證服務(wù)供應(yīng)者接收并檢查來(lái)自端點(diǎn)用戶的文件,然后在文件上提供防偽標(biāo)記,表示該文件是在某日送交公證人的,等等。這類(lèi)公證業(yè)務(wù)的一種應(yīng)用可以是記錄對(duì)新發(fā)明的揭示,從而如果必要,以后可以在法院建立發(fā)明的優(yōu)先權(quán)。在該情況下,公證員提供的最重要的服務(wù)是證明發(fā)明人在某日擁有該發(fā)明。(用來(lái)建立優(yōu)先權(quán)的傳統(tǒng)方法是使用一個(gè)lab記事本,發(fā)明人和公證員在記事本上簽名,并記錄揭示重要發(fā)明的日期。)2.使用模塊的電子公證業(yè)務(wù)有家公司(以下稱(chēng)為服務(wù)供應(yīng)者)決定從商,為其客戶(以下稱(chēng)為端點(diǎn)用戶)提供公證業(yè)務(wù)(嚴(yán)格地說(shuō),是優(yōu)先權(quán)證明業(yè)務(wù))。服務(wù)供應(yīng)者通過(guò)把模塊10用作它的“代理”來(lái)選擇做這項(xiàng)工作,并授權(quán)它們以他的名義對(duì)文件進(jìn)行認(rèn)證(記錄日期并簽名)。以下是該系統(tǒng)的較佳工作方式a.參照?qǐng)D4、11和12,在B1,服務(wù)供應(yīng)者創(chuàng)建一個(gè)交易組40,以便在模塊10的一個(gè)“注冊(cè)點(diǎn)(registered lot)”中實(shí)現(xiàn)電子公證功能。
b.在B2,服務(wù)供應(yīng)者使用保密計(jì)算設(shè)備,生成一個(gè)RSA密鑰集并將其編程到每個(gè)模塊10中,成為由三個(gè)對(duì)象42構(gòu)成的組,該三個(gè)對(duì)象是一個(gè)模數(shù)對(duì)象和兩個(gè)指數(shù)對(duì)象。盡可能使密鑰集中的公共部分廣泛地公知,并且服務(wù)供應(yīng)者完全忘記秘密部分。使秘密指數(shù)對(duì)象秘密化,以防止從模塊10中讀回它。
c.服務(wù)供應(yīng)者從每個(gè)模塊10中閱讀實(shí)時(shí)時(shí)鐘14,并創(chuàng)建一個(gè)時(shí)鐘偏移對(duì)象,該對(duì)象包含實(shí)時(shí)時(shí)鐘14之讀數(shù)與一些方便的參照時(shí)間(例如,1970年1月1日上午1200)之間的差。然后,在B3,可以通過(guò)對(duì)實(shí)時(shí)時(shí)鐘加上時(shí)鐘偏移對(duì)象的值,從任何模塊10中獲得實(shí)際的時(shí)間。
d.在B4,服務(wù)供應(yīng)者創(chuàng)建一個(gè)交易序列計(jì)數(shù)器對(duì)象(transaction sequencecounter object),該對(duì)象初始為零。
e.服務(wù)供應(yīng)者創(chuàng)建一個(gè)交易腳本44,該交易腳本把輸入數(shù)據(jù)對(duì)象的內(nèi)容加至實(shí)際時(shí)間(實(shí)際時(shí)間是實(shí)時(shí)時(shí)鐘14與時(shí)鐘偏移對(duì)象之值的和)后,隨后是交易計(jì)數(shù)器的值,再后是特有的激光登記號(hào)(unique lasered registration number)。然后,交易腳本44規(guī)定用秘密密鑰對(duì)所有這一日期加密,并將所有日期放在輸出數(shù)據(jù)對(duì)象中。在B5,將進(jìn)行該操作的指令作為交易腳本對(duì)象存儲(chǔ)在交易組40中。
f.在B6,將其它任何對(duì)象42秘密化,它不希望直接可讀或可寫(xiě)。
g.在B7,服務(wù)供應(yīng)者鎖定交易組40,防止增加任何附加的交易腳本44。
h.參照?qǐng)D5,現(xiàn)在服務(wù)供應(yīng)者將模塊分配給付款客戶(端點(diǎn)用戶),供公證業(yè)務(wù)使用。當(dāng)端點(diǎn)用戶希望公證某一文件時(shí),端點(diǎn)用戶執(zhí)行保密散列算法(規(guī)定于保密散列標(biāo)準(zhǔn),聯(lián)邦信息處理標(biāo)準(zhǔn)Pub.180),以便將整個(gè)文件縮小至20字節(jié)的消息摘要。然后,在C1,端點(diǎn)用戶將20字節(jié)的消息摘要發(fā)送給輸入數(shù)據(jù)對(duì)象,并且在C2,訪問(wèn)交易腳本44,將消息摘要與實(shí)際時(shí)間、交易計(jì)數(shù)以及特有的激光序列號(hào)匯集在一起,并用秘密密鑰對(duì)所得的數(shù)據(jù)包簽名。
i.在C3,端點(diǎn)用戶通過(guò)用公開(kāi)密鑰對(duì)證明解密并檢查消息摘要和實(shí)際時(shí)間標(biāo)志等,檢查該證明,以確保它們是正確的。然后,在C4,端點(diǎn)用戶以數(shù)字形式存儲(chǔ)該數(shù)字證明以及文件的原始復(fù)印件。服務(wù)供應(yīng)者將證明由其模塊提供的證明的真實(shí)性。
j.在服務(wù)供應(yīng)者規(guī)定的一段時(shí)間之后,用戶返回他的模塊10,付款,并獲得一個(gè)包含新的秘密密鑰的新模塊。舊模塊可以通過(guò)擦除整個(gè)交易組并且對(duì)它們重新編程而被循環(huán)使用。服務(wù)供應(yīng)者保留一個(gè)它所用過(guò)的所有公開(kāi)密鑰的存檔,以便在需要時(shí)證明舊證明的真實(shí)性。C.數(shù)字投幣機(jī)(cash dispenser)該例對(duì)模塊的使用是將模塊1用作一個(gè)存款箱,由此對(duì)貨物或服務(wù)進(jìn)行付款。(為了便于討論,推遲討論用現(xiàn)金重新裝滿模塊10的主題)。在該情況下,服務(wù)供應(yīng)者是銀行或其它金融機(jī)構(gòu),端點(diǎn)用戶是銀行的儲(chǔ)戶,希望用模塊10進(jìn)行購(gòu)物,并且商家是被購(gòu)貨物或服務(wù)的供應(yīng)商。以下將詳細(xì)說(shuō)明服務(wù)供應(yīng)者、商家以及端點(diǎn)用戶在這些交易中的作用。
如在模塊10中實(shí)現(xiàn)的數(shù)字錢(qián)包的基本概念是,模塊10最初包括一個(gè)含給定款值的鎖定的貨幣對(duì)象,并且模塊10可以經(jīng)請(qǐng)求生成證明,這些證明基本上是簽過(guò)名的文件,可以證明曾從貨幣對(duì)象的值中減去過(guò)所要求款額的事實(shí)。由于這些簽名文件證明了曾將內(nèi)部貨幣對(duì)象的值減去過(guò)對(duì)應(yīng)于證明值的數(shù)值的事實(shí),所以它們等效于現(xiàn)金。商家可以通過(guò)把它們還給服務(wù)供應(yīng)者,而用這些證明贖回現(xiàn)金。
當(dāng)處理代表現(xiàn)金的數(shù)字證明時(shí),“重放”或復(fù)制是一個(gè)基本的問(wèn)題。由于很容易復(fù)制和再傳輸數(shù)字?jǐn)?shù)據(jù),所以它不同于普通硬幣或紙幣,由于在制造硬幣和紙幣過(guò)程中使用了特殊的技術(shù),所以重造錢(qián)幣是很困難的。為此,收款人必須采取特殊的步驟,以確保他所收到的數(shù)字證明不是對(duì)一些早期發(fā)放的證明的重放。通過(guò)收款人生成一個(gè)隨機(jī)的“SALT”,這是一個(gè)詢問(wèn)數(shù)(challenge number),并將它提供給付款人,便可解決這個(gè)問(wèn)題。
SALT是一種防止重放的方法。隨機(jī)數(shù)在一種詢問(wèn)/回答的模式下發(fā)送和使用。要求另一方返回該隨機(jī)數(shù),作為他們回答的一部分。
付款人構(gòu)造一份簽名證明,該證明包括錢(qián)款數(shù)額和收款人的SALT。當(dāng)收款人收到該證明時(shí),他用公開(kāi)密鑰對(duì)其解密,檢查錢(qián)款數(shù)額,然后確認(rèn)SALT與他提供的相同。通過(guò)使證明成為收款人秘密的,付款人向收款人保證該證明不是復(fù)制件或重放件,因些它是可靠的。無(wú)論模塊10是否為付款人或收款人,都可以使用該方法。
另一個(gè)必須解決的問(wèn)題是不能否認(rèn)。這意味著交易的雙方都應(yīng)該不能爭(zhēng)辨他實(shí)際上沒(méi)有參與交易。交易記錄(錢(qián)款證明)應(yīng)該包含項(xiàng)目,以證明交易的每一方都是自愿參加者。
1.傳統(tǒng)現(xiàn)金交易的背景在傳統(tǒng)的現(xiàn)多交易中,端點(diǎn)用戶首先接收來(lái)自銀行的聯(lián)邦儲(chǔ)備券(FederalReserve Note),并且銀行從他帳戶的余額中減去等價(jià)的錢(qián)款數(shù)額。端點(diǎn)用戶利用“公開(kāi)密鑰”可以證明聯(lián)邦儲(chǔ)備券的可靠性,包括a.可被一磁體吸引的磁性油墨;b.埋在紙中的紅藍(lán)細(xì)線;c.雕像周?chē)奈⒓?xì)印刷;d.與USA和券的面額一起印刷的嵌條。
該系統(tǒng)的“秘密密鑰”是如何獲得用于印刷錢(qián)幣的原材料以及如何實(shí)際印刷錢(qián)幣的細(xì)節(jié)。該信息由政府保存,不會(huì)泄露。端點(diǎn)用戶把這些券帶給商家,與其交換貨物或服務(wù)。商家也用儲(chǔ)備券的“公開(kāi)密鑰”證明他們是合法的。
最后,商家把儲(chǔ)備券帶到銀行,出納員再次檢查“公開(kāi)密鑰”。如果儲(chǔ)備券是合法的,那么商家銀行帳戶的余額就會(huì)增加這些儲(chǔ)備券的面值。
該交易的最終結(jié)果是,端點(diǎn)用戶的銀行余額減少,商家的銀行余額增加相同的數(shù)額,貨物或服務(wù)從商家轉(zhuǎn)移到端點(diǎn)用戶,并且聯(lián)邦儲(chǔ)備券可以再用于其它的交易。
2.用模塊進(jìn)行貨幣交易的舉例由于數(shù)字?jǐn)?shù)據(jù)與聯(lián)邦儲(chǔ)備券不同,容易對(duì)它們拷貝和復(fù)制,所以用模塊10和數(shù)字證明進(jìn)行貨幣交易有些復(fù)雜。然而,使用“SALT”和交易序號(hào)可以保證數(shù)字證明的可靠性。(在以下討論中,假設(shè)交易的每一方都有自己的帶秘密密鑰的RSA密鑰組,能夠保密。)a.參照?qǐng)D6,服務(wù)供應(yīng)者(銀行)通過(guò)創(chuàng)建一個(gè)交易組40制備了模塊10,其中交易組40包含表示存儲(chǔ)在模塊10中貨幣值的貨幣對(duì)象。在D1,服務(wù)供應(yīng)者還創(chuàng)建一個(gè)交易計(jì)數(shù)器對(duì)象、一個(gè)模數(shù)對(duì)象和一個(gè)指數(shù)對(duì)象,并將供應(yīng)者的秘密密鑰存儲(chǔ)在指數(shù)對(duì)象中。在D2,他將密鑰秘密化,使它不能被讀取。接著,在D3和D4,他將交易腳本44存儲(chǔ)在交易組40中以便進(jìn)行貨幣交易,并且鎖定交易組,以致于不能再建立其它對(duì)象。(以下將進(jìn)一步詳細(xì)描述該交易腳本干什么。)最后在D5,他廣泛公開(kāi)相應(yīng)的公開(kāi)密鑰,使任何人都可以獲得它。
b.端點(diǎn)用戶接收來(lái)自服務(wù)供應(yīng)者的模塊10,并且把存儲(chǔ)在模塊10中的數(shù)額記入端點(diǎn)用戶銀行帳戶的借方。利用PC機(jī)或手提式計(jì)算機(jī),端點(diǎn)用戶可以質(zhì)詢模塊10,以便證明余額是正確的。
c.參照?qǐng)D7,當(dāng)在E1,端點(diǎn)用戶希望向商家購(gòu)買(mǎi)一些物品或服務(wù)時(shí),在E2和E3,商家讀取模塊特有的激光登記號(hào),并將其與隨機(jī)的SALT一起放在一個(gè)數(shù)據(jù)包中。然后在E4,商家用商人自己的秘密密鑰對(duì)該數(shù)據(jù)包簽名,并且在E5,將所得的經(jīng)加密的數(shù)據(jù)包與購(gòu)買(mǎi)金額一起發(fā)送給交易組40的輸入數(shù)據(jù)對(duì)象。
d.然后,商家調(diào)用由服務(wù)供應(yīng)者編入模塊10的交易腳本。在E6,該交易腳本44從貨幣對(duì)象中減去購(gòu)買(mǎi)金額,在E7,將交易計(jì)數(shù)器對(duì)象的值加到輸入數(shù)據(jù)對(duì)象的內(nèi)容上,并且在E8,用秘密密鑰對(duì)所得的數(shù)據(jù)包簽名并將結(jié)果入在輸出數(shù)據(jù)對(duì)象中。
e.,然后,在E9,商家從輸出數(shù)據(jù)對(duì)象中讀取結(jié)果,并用服務(wù)供應(yīng)者的公開(kāi)密鑰對(duì)其解密。然后,在E10,他確認(rèn)購(gòu)買(mǎi)的數(shù)額是正確的,并且剩余數(shù)據(jù)與他在步驟c中簽名的數(shù)據(jù)包相同。
f.在E11,在確認(rèn)了模塊10提供的證明可靠且為原件(非復(fù)制件)之后,商家發(fā)送貨物或服務(wù)。之后,商家把數(shù)字證明送到銀行。
g.在E12,銀行用服務(wù)供應(yīng)者的公開(kāi)密鑰對(duì)證明解密,取出購(gòu)買(mǎi)金額和交易計(jì)數(shù),并在E14用商家的公開(kāi)密鑰對(duì)剩余數(shù)據(jù)解密,以揭示模塊的特有激光登記號(hào)。然后,銀行在一數(shù)據(jù)庫(kù)中用特有的激光登記號(hào)對(duì)模塊10進(jìn)行查尋,以便確認(rèn)以前沒(méi)有提交過(guò)該交易的交易計(jì)數(shù)。當(dāng)測(cè)試通過(guò)時(shí),在E15,銀行把交易計(jì)數(shù)值加到數(shù)據(jù)庫(kù)中,然后使商家的銀行余額增加購(gòu)買(mǎi)的金額。已由模塊10和商家對(duì)證明各部分簽名的事實(shí)確認(rèn)了交易是商家和模塊10兩方自愿同意的。
注意,存在許多不同的方式對(duì)交易計(jì)數(shù)值、特有的激光登記號(hào)、收款人提供的隨機(jī)SALT以及用模塊秘密密鑰、或商家秘密密鑰或兩者加密的購(gòu)買(mǎi)金額進(jìn)行數(shù)據(jù)組合。許多組合也能為特有性、可靠性和不可否認(rèn)性提供令人滿意的保證,并且對(duì)固件的設(shè)計(jì)使服務(wù)供應(yīng)者適于書(shū)寫(xiě)交易腳本44,以滿足他的特殊需要。D.數(shù)字現(xiàn)金補(bǔ)充以上在第II.C.節(jié)中對(duì)數(shù)字現(xiàn)金錢(qián)包的討論沒(méi)有解決現(xiàn)金補(bǔ)充的問(wèn)題。如第II.C.節(jié)所討論的,服務(wù)供應(yīng)者可以簡(jiǎn)單地通過(guò)添加另一個(gè)含服務(wù)供應(yīng)者公開(kāi)密鑰的模數(shù)對(duì)象和指數(shù)對(duì)象、一個(gè)隨機(jī)SALT對(duì)象以及一個(gè)交易腳本,為模塊10增加現(xiàn)金補(bǔ)充的能力,從而將錢(qián)款添加到余額中。服務(wù)供應(yīng)者可以親自或者通過(guò)網(wǎng)絡(luò)遠(yuǎn)距離地對(duì)模塊增加錢(qián)款。增加錢(qián)款的過(guò)程如下1.參照?qǐng)D8,在F1和F2,服務(wù)供應(yīng)者讀取模塊的特有激光登記號(hào)(ID號(hào)),并訪問(wèn)交易腳本44,以便返回隨機(jī)SALT對(duì)象的值。在F3,模塊10由先前值和隨機(jī)數(shù)發(fā)生器計(jì)算一個(gè)新的隨機(jī)SALT值,并將其返回至服務(wù)供應(yīng)者。
2.在F4,服務(wù)供應(yīng)者將模塊10返回的隨機(jī)SALT與將要增加的錢(qián)款數(shù)額和模塊10特有的激光登記號(hào)一起放在一個(gè)數(shù)據(jù)包中,并用服務(wù)供應(yīng)者的秘密密鑰對(duì)所得的數(shù)據(jù)包加密。然后,把該經(jīng)加密的數(shù)據(jù)包寫(xiě)回到交易組40的輸入數(shù)據(jù)對(duì)象中。
3.服務(wù)供應(yīng)者調(diào)用交易腳本44,該交易腳本用服務(wù)供應(yīng)者的公開(kāi)密鑰對(duì)輸入數(shù)據(jù)對(duì)象的內(nèi)容解密,然后對(duì)照原來(lái)提供的數(shù)據(jù),檢查特有的激光登記號(hào)和隨機(jī)SALT的值。在F5,如果SALT匹配,那么從數(shù)據(jù)包中取出錢(qián)款金額,并將其加到模塊中貨幣對(duì)象的值上。
注意,包括特有的激光登記號(hào)并不是嚴(yán)格必須的,但包括它可以確保服務(wù)供應(yīng)者正確了解哪個(gè)模塊正在接收資金。E.舉例描述在模塊之間直接傳遞資金以上第II.C.2.g.節(jié)揭示了當(dāng)商家將數(shù)字證明返回他的銀行歸于他的帳戶時(shí)所產(chǎn)生的問(wèn)題。商家銀行必須將證明送回服務(wù)供應(yīng)者以便履行,或者訪問(wèn)一數(shù)據(jù)庫(kù)中服務(wù)供應(yīng)者的記錄從而可以確定交易計(jì)數(shù)對(duì)象的值是否是特有的。這不方便,且要求有基礎(chǔ)設(shè)施。由于商家銀行必須把用過(guò)的證明號(hào)記錄到一數(shù)據(jù)庫(kù)中,以防止重復(fù)使用,所以它還防止進(jìn)行任何匿名的交易(因?yàn)槿绻褂矛F(xiàn)金,交易就會(huì)匿名)。通過(guò)在模塊之間進(jìn)行資金轉(zhuǎn)移可以消除所有這些問(wèn)題。另外,在模塊之間實(shí)現(xiàn)資金轉(zhuǎn)移所需的步驟比第II.C.2.節(jié)中描述的步驟簡(jiǎn)單得多。
在以下討論中,假設(shè)商家也有一個(gè)模塊,用于收集從端點(diǎn)用戶(客戶)那里接收到的資金。端點(diǎn)用戶擁有的模塊將被稱(chēng)為付款器,而商家擁有的模塊將被稱(chēng)為收款器。以下是執(zhí)行資金轉(zhuǎn)移的步驟1.參照?qǐng)D9、11和12,商家用他的計(jì)算機(jī)訪問(wèn)收款器中的交易腳本44,以便提供隨機(jī)SALT。他從交易組40的輸出對(duì)象中讀出該SALT。
2.在G1,商家將SALT和端點(diǎn)用戶的購(gòu)買(mǎi)金額拷貝到付款器的輸入數(shù)據(jù)對(duì)象中,然后在G2,商家訪問(wèn)付款器中的交易腳本44,以便從余額中減去購(gòu)買(mǎi)金額,將收款器的SALT與購(gòu)買(mǎi)金額組合到一數(shù)據(jù)包中,用服務(wù)供應(yīng)者的秘密密鑰對(duì)所得的數(shù)據(jù)包進(jìn)行加密,并將其返回到輸出數(shù)據(jù)對(duì)象中。
3.然后,在G3,商家讀取該數(shù)據(jù)包并將其拷貝到收款器的輸入數(shù)據(jù)對(duì)象中,然后訪問(wèn)收款器中的交易腳本44,以便用服務(wù)供應(yīng)者的公開(kāi)密鑰對(duì)數(shù)據(jù)包解密,并且在G4,參照收款器原始產(chǎn)生的SALT,檢查SALT。如果它們一致,那么收款器將購(gòu)買(mǎi)金額加到它的余額上。
這就完成了資金轉(zhuǎn)移。注意該交易將購(gòu)買(mǎi)金額從付款器有效地轉(zhuǎn)移到收款器,并且交易步驟比II.C.2.中描述的三向交易要簡(jiǎn)單得多。商家可以通過(guò)一次類(lèi)似的交易將余額轉(zhuǎn)移到他的銀行帳戶上,在所述交易中,銀行將一個(gè)SALT提供給商家的模塊,而商家模塊制備一份將傳送給銀行的有關(guān)余額的證明。商家用模塊收集資金簡(jiǎn)化了交易,避免了用數(shù)據(jù)庫(kù)確認(rèn)特有性的需要,并且保持了現(xiàn)金交易經(jīng)常引起的端點(diǎn)用戶的匿名性。F.通過(guò)網(wǎng)絡(luò)用模塊交易的舉例還可以通過(guò)網(wǎng)絡(luò)進(jìn)行上述第II.C.2.、II.D.和II.E.節(jié)描述的交易,商家、端點(diǎn)用戶和模塊之間可以存在物理間距。但是,由于與模塊10的通信中有一個(gè)不加密,并且該通信會(huì)因此而受到偽造,所以這會(huì)引發(fā)潛在的問(wèn)題。為了避免該問(wèn)題,兩方都必須產(chǎn)生一個(gè)SALT,以便另一方可以證明它能夠用服務(wù)供應(yīng)者的秘密密鑰對(duì)該SALT加密的能力,并由此證明了可靠性。由于該協(xié)議的操作涉及在模塊之間轉(zhuǎn)移資金(以上的第II.E.節(jié)),所以以下將描述該協(xié)議的操作。該方法可用來(lái)使上述任何交易在網(wǎng)絡(luò)上進(jìn)行。顯然,它能夠通過(guò)Internet網(wǎng)進(jìn)行保密的電子貿(mào)易。
1.參照?qǐng)D10、11和12,在H1,付款器產(chǎn)生一個(gè)隨機(jī)SALT,并通過(guò)網(wǎng)絡(luò)將其發(fā)送給收款器。
2.在H2,收款器將購(gòu)買(mǎi)金額加到付款器的SALT后,隨后接是收款器隨機(jī)產(chǎn)生的SALT。然后,收款器用服務(wù)供應(yīng)者的秘密密鑰對(duì)該數(shù)據(jù)包加密,并將它送回付款器。
3.在H3,付款器用服務(wù)供應(yīng)者的公開(kāi)密鑰對(duì)數(shù)據(jù)包解密,取出付款器的SALT,并將其與付款器在步驟1中提供的SALT進(jìn)行比較。如果它們一致,那么在H4,付款器從它的余額中減去購(gòu)買(mǎi)金額,并在H5,產(chǎn)生一個(gè)由購(gòu)買(mǎi)金額和收款器SALT組成的證明,其中用服務(wù)供應(yīng)者的秘密密鑰對(duì)證明加密,并且將其返回收款器。
4.在H6,收款器用服務(wù)供應(yīng)者的公開(kāi)密鑰對(duì)數(shù)據(jù)包解密,取出收款器SALT,并將其與收款器步驟2中提供的SALT進(jìn)行比較。在H7,如果它們一致,那么收款器將購(gòu)買(mǎi)金額加到它的余額上。
SALT的交換可使每個(gè)模塊確認(rèn)它正在與另一個(gè)模塊通信,并且確認(rèn)所要求的資金轉(zhuǎn)移因此是合法的。步驟3中描述的SALT比較可使付款器在提款之前確認(rèn)收款器是一合法的模塊,并且步驟4中描述的比較可使收款器在存款之前確認(rèn)付款器是一合法的模塊。上述交易在加密數(shù)據(jù)包中提供了最少的必要信息,確認(rèn)資金正從一個(gè)模塊10轉(zhuǎn)移到另一個(gè)模塊??梢砸阅涿麨榇鷥r(jià)包括諸如特有激光登記號(hào)等其它信息,以便提供附加信息并對(duì)交易進(jìn)行更多的控制。G.軟件授權(quán)和應(yīng)用計(jì)數(shù)(usage metering)技術(shù)的舉例模塊10非常適用于在綜合軟件系統(tǒng)使能夠提供特殊軟件特點(diǎn)的任務(wù),并且適用于統(tǒng)計(jì)這些特點(diǎn)的應(yīng)用。(該用法模型與上述用于從模塊10中提款的模型相同。)1.準(zhǔn)備參照?qǐng)D11和12,服務(wù)供應(yīng)者創(chuàng)建一個(gè)交易組40并將一配置對(duì)象存儲(chǔ)在該組中,細(xì)述了端點(diǎn)用戶可以使用模塊10中的哪個(gè)軟件。服務(wù)供應(yīng)者還創(chuàng)建一個(gè)包含準(zhǔn)用信貸(它可以以時(shí)間為單位而不是實(shí)際的美元數(shù))的貨幣對(duì)象,并且存儲(chǔ)和秘密化一對(duì)RSA秘密密鑰,以用于鑒定。存儲(chǔ)一交易腳本44,用于接收SALT以及從端點(diǎn)用戶提取的金額,用提款金額減余額,并輸出包含提款金額、銷(xiāo)售量以及配置對(duì)象值的RSA經(jīng)簽名的證明。
2.應(yīng)用在使用模塊10內(nèi)軟件的周期間隔中,PC程序生成一個(gè)隨機(jī)SALT以及使用模塊10的收費(fèi)金額,并將該信息發(fā)送給模塊10。模塊10減少余額并返回證明。PC機(jī)對(duì)證明解密并確認(rèn)SALT是相同的,提款金額是正確的,以及存儲(chǔ)在配置對(duì)象中的信息授權(quán)使用模塊10內(nèi)的軟件。如果所有這些測(cè)試都成功,那么模塊10在向模塊10索要另一個(gè)證明前執(zhí)行一段規(guī)定的時(shí)間,或者執(zhí)行給定數(shù)目的操作。
該應(yīng)用模型存在許多可能的變化。例如,交易腳本44還可以將實(shí)際時(shí)間匯集到證明中,以便PC機(jī)上運(yùn)行的應(yīng)用程序可以保證其執(zhí)行時(shí)間精確測(cè)量了的。(這可以要求服務(wù)供應(yīng)者在初始化期間創(chuàng)建一個(gè)時(shí)鐘偏移對(duì)象,以便為測(cè)量時(shí)間提供基準(zhǔn)。)H.對(duì)交易接觸式存儲(chǔ)器的模擬該應(yīng)用模型描述了如何用模塊10模擬更簡(jiǎn)單的交易接觸式存儲(chǔ)器TM(Transation Touch Memory,以下稱(chēng)“TTM”)(DS1962),或者可以以接近等效或類(lèi)似的方式進(jìn)行工作的任何類(lèi)似的裝置或替代物的行為。TTM的主要特點(diǎn)是存在一個(gè)與存儲(chǔ)塊相關(guān)的計(jì)數(shù)器,該計(jì)數(shù)器以這樣的方式工作,即當(dāng)改變存儲(chǔ)塊的內(nèi)容時(shí)自動(dòng)使計(jì)數(shù)器增值。
1.準(zhǔn)備通過(guò)創(chuàng)建一個(gè)配置對(duì)象,一個(gè)交易計(jì)數(shù)器對(duì)象和一個(gè)交易腳本對(duì)象,可以將該簡(jiǎn)單的特點(diǎn)編入模塊10中,其中交易腳本對(duì)象將輸入對(duì)象的內(nèi)容與交易計(jì)數(shù)器對(duì)象的值合并,并將它們放在配置對(duì)象中,在該過(guò)程中自動(dòng)對(duì)計(jì)數(shù)器增值。鎖定所有這三個(gè)對(duì)象42,但不將它們秘密化。
2.應(yīng)用為了增加或提取錢(qián)款,端點(diǎn)用戶直接讀取配置對(duì)象和交易計(jì)數(shù)器對(duì)象的值,然后對(duì)配置對(duì)象解密并參照計(jì)數(shù)器對(duì)象的值檢查來(lái)自解密數(shù)據(jù)包的交易計(jì)數(shù)。端點(diǎn)用戶還參照模塊10的登記號(hào)檢查來(lái)自加密數(shù)據(jù)包的特有激光登記號(hào)。如果兩者一致,那么認(rèn)為余額有效。對(duì)余額加上或減去一金額,使交易計(jì)數(shù)增1,并且再次對(duì)數(shù)據(jù)包加密且將其存儲(chǔ)在輸入數(shù)據(jù)對(duì)象中。然后,調(diào)用交易腳本44,將數(shù)據(jù)和交易計(jì)數(shù)器的值移至配置對(duì)象,在該過(guò)程中自動(dòng)增加計(jì)數(shù)器的值。(交易腳本44保證當(dāng)改變配置對(duì)象中的數(shù)據(jù)時(shí),將增加計(jì)數(shù)器對(duì)象的值。)由于模塊10本身不必進(jìn)行任何加密,所以這一簡(jiǎn)單的操作可以進(jìn)行的相當(dāng)快。但是,與利用TTM一樣,端點(diǎn)用戶現(xiàn)在必須用一個(gè)保密的計(jì)算設(shè)備進(jìn)行加密和解密操作。因此與那些依賴于模塊加密能力的應(yīng)用相比,該應(yīng)用受到的保護(hù)較弱。I.郵政計(jì)費(fèi)業(yè)務(wù)的技術(shù)舉例該應(yīng)用模型描述了用模塊10分發(fā)郵資證明的應(yīng)用。構(gòu)成證明的數(shù)字信息以兩維條形碼的形式被印在信封上,服務(wù)供應(yīng)者(U.S.P.S.)可以閱讀和鑒別條形碼??梢越Y(jié)合模塊10使用在接至激光打印機(jī)的普通PC機(jī)上運(yùn)行的計(jì)算機(jī)程序,打印郵資證明。
1.準(zhǔn)備服務(wù)供應(yīng)者創(chuàng)建一個(gè)組包含貨幣寄存器、每個(gè)模塊公用的RSA秘密密鑰(指數(shù)對(duì)象和模數(shù)對(duì)象)和交易腳本44。腳本44將SALT和(端點(diǎn)用戶計(jì)算機(jī)提供的)要提的金額與特有的激光登記號(hào)合并在一起,用秘密密鑰對(duì)該數(shù)據(jù)包加密,從余額中減去提款,并將加密證明放在PC機(jī)可以閱讀的輸出對(duì)象中。
服務(wù)供應(yīng)者用規(guī)定錢(qián)款額對(duì)余額初始化,鎖定余額和腳本44,將RSA密鑰對(duì)象秘密化,并且鎖定該交易組,以便不能增加更多的腳本。然后,可以在柜臺(tái)上銷(xiāo)售用該方式準(zhǔn)備的模塊,以便與基于PC機(jī)的郵資計(jì)費(fèi)程序一起使用。
2.應(yīng)用當(dāng)要打印第一張信封時(shí),PC程序通過(guò)計(jì)算日期的單向散列(例如,保密散列標(biāo)準(zhǔn),F(xiàn)IBS PUB 180)和該部分的特有激光登記號(hào),準(zhǔn)備第一SALT。將該信息連同要提取的郵資金額一起傳送給模塊10。將所得的證明以及散列生成數(shù)(對(duì)于第一散列為1)、特有的激光登記號(hào)、標(biāo)志的明文命名、日期和希望用來(lái)識(shí)別端點(diǎn)用戶的其它信息印刷成兩維條形碼。通過(guò)對(duì)先前的SALT再進(jìn)行單向散列并增加散列生成數(shù),可以生成后續(xù)的SALT。
當(dāng)服務(wù)供應(yīng)者收到信封時(shí),大多數(shù)看面值,并不閱讀數(shù)字條形碼。但是,可以閱讀條形碼的統(tǒng)計(jì)樣本,并且用公開(kāi)密鑰對(duì)提供的信息解密,以及核實(shí)信息。檢查差異,并在現(xiàn)有法律下起訴欺騙行為。由于服務(wù)供應(yīng)者可以由特有的激光登記號(hào)、日期以及散列生成號(hào)重新創(chuàng)建SALT,并由此核實(shí)交易不僅是現(xiàn)時(shí)的而且與特定的模塊10鏈接,所以可以進(jìn)行核實(shí)。
注意,上述存在許多可能的變化,它們導(dǎo)致類(lèi)似的結(jié)果。大多數(shù)相似的欺騙是復(fù)制品,在該行為中,用戶捕獲發(fā)送給打印機(jī)的數(shù)字信息,產(chǎn)生郵資證明,并對(duì)相同的證明制作許多復(fù)制件。服務(wù)供應(yīng)者簡(jiǎn)單通過(guò)閱讀散列生成數(shù)和特有的登記號(hào)并在一數(shù)據(jù)庫(kù)對(duì)其進(jìn)行查找以確信該用戶不在復(fù)制同一證明,便可以容易地探明這一現(xiàn)象。(該檢查比要求RSA解密的完整證明核查更頻繁。)J.訂閱信息業(yè)務(wù)該應(yīng)用模型描述了這樣一種應(yīng)用,即服務(wù)供應(yīng)者通過(guò)互連網(wǎng)以加密形式為同意對(duì)信息付款的用戶制作可用信息。該應(yīng)用的工作方式與上述第A節(jié)中描述的保密電子郵件應(yīng)用模型正好相同,只是服務(wù)供應(yīng)者就其以電子郵件方式發(fā)給用戶的加密信息給用戶開(kāi)帳單。帳單信息是從RSA的公開(kāi)密鑰登記中獲得的,該登記允許服務(wù)供應(yīng)者根據(jù)他的公開(kāi)密鑰或他的模塊10的特有激光序號(hào)進(jìn)行識(shí)別并給用戶開(kāi)帳單。K.擔(dān)保秘密密鑰保密的登記為了向商家獨(dú)立確認(rèn)端點(diǎn)用戶的身份,服務(wù)供應(yīng)者希望保留一個(gè)登記,該登記包含特定模塊10的公開(kāi)密鑰以及姓名、地址和模塊10發(fā)向的個(gè)人的其它識(shí)別信息。為此,服務(wù)供應(yīng)者必須確保登記中的公開(kāi)密鑰與只有模塊10知道的秘密密鑰對(duì)應(yīng)。為了保證這一要求,當(dāng)從模塊10中取出公開(kāi)密鑰并將其放在登記中時(shí),模塊10必須由服務(wù)供應(yīng)者擁有。在登記中記錄下該信息后,服務(wù)供應(yīng)者可以將模塊10傳送給登記中命名的端點(diǎn)用戶。
對(duì)于端點(diǎn)用戶來(lái)說(shuō),當(dāng)他接收到模塊10時(shí),能確認(rèn)服務(wù)供應(yīng)者或服務(wù)供應(yīng)者雇員不知道秘密密鑰也是很重要的。由于理想的登記系統(tǒng)應(yīng)該不需要任何一方信任另一方,所以這是重要的。只有當(dāng)能夠使第一方確信另一方不可能知道秘密密鑰,系統(tǒng)工作才能使每個(gè)人滿意。
實(shí)現(xiàn)這一要求的方法是,服務(wù)供應(yīng)者向模塊10發(fā)一命令,使它產(chǎn)生用隨機(jī)數(shù)生成一個(gè)完整的RSA密鑰集,然后自動(dòng)使指數(shù)中的一個(gè)秘密化,致使沒(méi)有人能夠發(fā)現(xiàn)秘密密鑰的值。該密鑰集具有特定的類(lèi)型,不同于服務(wù)供應(yīng)者編入罐中的密鑰集,因此用模塊直接做生意的任何人都能自己確定只有模塊10知道秘密密鑰。
1.準(zhǔn)備為該應(yīng)用創(chuàng)建一個(gè)保護(hù)口令的交易組40,然后在該組中創(chuàng)建一個(gè)由模塊生成的RSA密鑰集。(生成密鑰集之后,自動(dòng)鎖定模數(shù)和一個(gè)指數(shù),而模塊10的固件自動(dòng)將第二指數(shù)秘密化)。然后,服務(wù)供應(yīng)者創(chuàng)建一個(gè)交易腳本44,它將用秘密密鑰對(duì)來(lái)自輸入對(duì)象的數(shù)據(jù)加密,并將加密結(jié)果放在輸出對(duì)象中。為了滿足應(yīng)用的任何附加目的,交易腳本44可以有選擇地將附加信息(例如,交易計(jì)數(shù)器)加到來(lái)自輸入對(duì)象的數(shù)據(jù)上。還可以以服務(wù)供應(yīng)者的判斷力增加其它對(duì)象42和交易腳本44。當(dāng)完成時(shí)服務(wù)供應(yīng)者鎖定交易組40。
接著,服務(wù)供應(yīng)者從交易組40中閱讀RSA模數(shù)和公共指數(shù),并將它們與識(shí)別端點(diǎn)用戶的信息一起記錄在登記中。最后,服務(wù)供應(yīng)者將模塊10運(yùn)給端點(diǎn)用戶,而后再將可用來(lái)訪問(wèn)交易組40的口令傳送給端點(diǎn)用戶。
2.應(yīng)用當(dāng)商家希望通過(guò)Internet或其它網(wǎng)絡(luò)獲得對(duì)端點(diǎn)用戶的肯家的識(shí)別時(shí),商家會(huì)生成一個(gè)專(zhuān)用的數(shù)據(jù)包,并將它發(fā)送給端點(diǎn)用戶,然后端點(diǎn)用戶把數(shù)據(jù)傳送到輸入對(duì)象中,并調(diào)用交易腳本44,用模塊10生成的密鑰對(duì)數(shù)據(jù)加密。將所得的加密數(shù)據(jù)包送回商家。然后,商家訪問(wèn)服務(wù)供應(yīng)者提供的數(shù)據(jù)庫(kù),以獲得屬于端點(diǎn)用戶的公開(kāi)密鑰,并試圖用端點(diǎn)用戶的公開(kāi)密鑰對(duì)加密數(shù)據(jù)包解密。如果解密成功,那么商家已經(jīng)證明在網(wǎng)絡(luò)遠(yuǎn)程連接的地方實(shí)際存在端點(diǎn)用戶的模塊10。通過(guò)保證在遠(yuǎn)地存在端點(diǎn)用戶的模塊10,該識(shí)別結(jié)果使數(shù)據(jù)包的內(nèi)容以及因此由該數(shù)據(jù)包內(nèi)容代表的任何金融交易(可以是端點(diǎn)用戶要求的)有效并合法化。
在這里描述的模型中,進(jìn)行金融交易的權(quán)力來(lái)自服務(wù)供應(yīng)者保存的登記。因此,該信息必須是準(zhǔn)確的,并且模塊10的秘密密鑰必須對(duì)各方保密。由于每個(gè)模塊10都有它自己特有的RSA密鑰集,所以該模型沒(méi)有對(duì)模塊10進(jìn)行表示貨幣獨(dú)立于服務(wù)供應(yīng)者保存的登記的規(guī)定。而是使登記與模塊能夠用其秘密密鑰簽名的能力一同起確定作用,以識(shí)別對(duì)于任何其它方來(lái)說(shuō)為遠(yuǎn)距離的端點(diǎn)用戶。L.對(duì)交易量征稅此應(yīng)用適用于一種交易模型,在該模型中,服務(wù)供應(yīng)者試圖向端點(diǎn)用戶收取服務(wù)費(fèi)用,該費(fèi)用是模塊10傳遞貨幣總量的一個(gè)百分?jǐn)?shù)。模型類(lèi)似于上述第C、D、E和F節(jié)描述的模型,但附加了一個(gè)破壞者對(duì)象,該對(duì)象能夠使任何特定的交易腳本44在預(yù)定的日期和時(shí)間截止。該模型還要求使用一附加的貨幣對(duì)象,用一合適的交易腳本44對(duì)其編程,以累加流出模塊10的所有貨幣的總值。
1.服務(wù)供應(yīng)者創(chuàng)建一個(gè)交易組40,它包含如上第D和E節(jié)描述的貨幣對(duì)象等。服務(wù)供應(yīng)者還創(chuàng)建一個(gè)附加的貨幣對(duì)象,起量累加器的作用。服務(wù)供應(yīng)者還創(chuàng)建交易腳本44,如在D和E中一樣,用于提款或存款,只是用于向模塊10加錢(qián)的交易腳本包括一個(gè)破壞者對(duì)象集,以便在將來(lái)的某一預(yù)定時(shí)刻截止,并且用于提款的交易腳本44包括一個(gè)一條將提款金額加到貨幣對(duì)象上的命令,貨幣對(duì)象起量累加器的作用。然后,服務(wù)供應(yīng)者鎖定交易組并將模塊運(yùn)送給端點(diǎn)用戶。
2.應(yīng)用如以上第D和E節(jié)所述,端點(diǎn)用戶用模塊10存款和提款。在使用模塊10期間,在起量累加器作用的貨幣對(duì)象中,累加由模塊10化費(fèi)的所有貨幣的累積總額。當(dāng)時(shí)限截止時(shí),端點(diǎn)用戶不再能夠向他的模塊10加錢(qián)了,盡管需要時(shí)在還有存款之前他可以繼續(xù)提款。然后,端點(diǎn)用戶將模塊10還給服務(wù)供應(yīng)者進(jìn)行恢復(fù)。服務(wù)供應(yīng)者讀取剩余的錢(qián)款以及量累加器中記錄的錢(qián)款。服務(wù)供應(yīng)者向端點(diǎn)用戶開(kāi)服務(wù)費(fèi)用的帳單,該服務(wù)費(fèi)用是量累加器中數(shù)額的一個(gè)百分?jǐn)?shù)。如果端點(diǎn)用戶愿意支付這筆款項(xiàng),繼續(xù)他的服務(wù),那么破壞并重建交易組40,然后將端點(diǎn)用戶返還時(shí)留在模塊10中的錢(qián)款金額編回交易組40的貨幣對(duì)象中。然后,只要端點(diǎn)用戶支付服務(wù)費(fèi)用,服務(wù)供應(yīng)者就把經(jīng)恢復(fù)的模塊還給端點(diǎn)用戶。
上述系統(tǒng)可使服務(wù)供應(yīng)者定期收取服務(wù)費(fèi)用,不必監(jiān)視和關(guān)心端點(diǎn)用戶進(jìn)行的每項(xiàng)金融交易。如量寄存器的內(nèi)容所確定的,費(fèi)用基于實(shí)際應(yīng)用。與模塊一起使用的固件定義舉例對(duì)象 模塊固件接收并運(yùn)行的最基本的數(shù)據(jù)結(jié)構(gòu)。下節(jié)提供了有效對(duì)象以其定義的表。組對(duì)象的一個(gè)自含集。一個(gè)對(duì)象的作用域限于它作為成員的組。組ID 一個(gè)數(shù),最好在0和255之間,表示一特定的組。對(duì)象ID一個(gè)數(shù),最發(fā)在0和255之間,表示一特定組內(nèi)的一個(gè)特殊對(duì)象。對(duì)象類(lèi)型 最好是一個(gè)字節(jié)的分類(lèi)符,它描述了一個(gè)特定的對(duì)象。PIN 一個(gè)由字母和數(shù)字表示的個(gè)人身份識(shí)別號(hào),其長(zhǎng)度最好為8個(gè)字節(jié)。公共PIN 對(duì)諸如審計(jì)跟蹤訪問(wèn)等共享資源進(jìn)行控制的PIN。還用來(lái)控制主機(jī)創(chuàng)建和刪除組的能力。組PIN 對(duì)訪問(wèn)某一組內(nèi)對(duì)象之特殊操作進(jìn)行控制的PIN。審計(jì)跟蹤 對(duì)發(fā)生在鎖定模塊之后的交易的記錄。鎖定對(duì)象 通過(guò)執(zhí)行鎖定對(duì)象命令已鎖定的對(duì)象。一旦對(duì)象鎖定,就不能直接閱讀了。秘密對(duì)象 通過(guò)執(zhí)行秘密化對(duì)象命令而秘密化的對(duì)象。一旦對(duì)象秘密化,就不能直接讀或?qū)懥?。鎖定組用鎖定組的命令已鎖定的組。鎖定組后,不能創(chuàng)建對(duì)象。復(fù)合對(duì)象 若干對(duì)象的組合。個(gè)體對(duì)象繼承了復(fù)合對(duì)象的屬性。對(duì)象定義舉例RSA模數(shù)一大的整數(shù),最好其長(zhǎng)度最多為1024位。它是兩個(gè)大的素?cái)?shù)的乘積,每個(gè)素?cái)?shù)的位數(shù)長(zhǎng)度約為所需模數(shù)的一半。RSA模數(shù)在以下等式中使用,用于對(duì)消息M加密和解密(1)加密C=Me(模N)(2)解密M=Cd(模N)其中,C是密文,d和e是RSA指數(shù)(參見(jiàn)下文),而N是RSA模數(shù)。RSA指數(shù)(上述等式1和2中所示的)的e和d都是RSA的指數(shù)。它們一般是較大的數(shù),但小于模數(shù)(N)。RSA指數(shù)可以是秘密的,或公開(kāi)的。當(dāng)在模塊中創(chuàng)建RSA指數(shù)時(shí),可以聲明它們是其中的一種。一經(jīng)創(chuàng)建,指數(shù)可以由公開(kāi)指數(shù)轉(zhuǎn)換成秘密指數(shù)。但指數(shù)秘密化之后,將保持秘密化,它所屬的交易組40受到破壞。交易腳本 交易腳本是模塊執(zhí)行的一系列指令。當(dāng)調(diào)用交易腳本時(shí),模塊固件解釋腳本中的指令,并將結(jié)果放在輸出數(shù)據(jù)對(duì)象中(參見(jiàn)下文)。實(shí)際腳本只是一個(gè)對(duì)象表。對(duì)象排列的次序規(guī)定了對(duì)對(duì)象進(jìn)行的操作。交易腳本44最好只要128字節(jié)。交易計(jì)數(shù)器 交易計(jì)數(shù)器對(duì)象的長(zhǎng)度最好為4個(gè)字節(jié),并且當(dāng)創(chuàng)建時(shí)通常初始值為零。每次調(diào)用引用該對(duì)象的交易腳本時(shí),交易計(jì)數(shù)器增1。一旦鎖定交易計(jì)數(shù)器,就只能進(jìn)行閱讀,并且成為一個(gè)不能撤消的計(jì)數(shù)器。貨幣寄存器 貨幣寄存器對(duì)象的長(zhǎng)度最好為4個(gè)字節(jié),并且可用來(lái)表示貨幣或一些其它形式的信貸。一旦已經(jīng)創(chuàng)建該對(duì)象,就必須將其鎖定,以防用戶竄改它的值。一旦鎖定,只有通過(guò)調(diào)用交易腳本才能改變?cè)搶?duì)象的值。進(jìn)行貨幣交易的一般交易組40可以具有一個(gè)從貨幣寄存器中提款的腳本和一個(gè)向貨幣寄存器存款的腳本。時(shí)鐘偏移 該對(duì)象最好為4個(gè)字節(jié)數(shù),它包含模塊實(shí)時(shí)時(shí)鐘讀數(shù)與一些方便時(shí)刻(例如1970年1月1日上午1200)的差。然后,通過(guò)把時(shí)鐘偏移的值與實(shí)時(shí)時(shí)鐘相加,從模塊中獲得真實(shí)的時(shí)間。SALT SALT對(duì)象的長(zhǎng)度最好為20個(gè)字節(jié),并且當(dāng)創(chuàng)建時(shí)應(yīng)該用隨機(jī)數(shù)據(jù)對(duì)其初始化。當(dāng)主機(jī)發(fā)出生成隨機(jī)SALT的命令時(shí),模塊將先前的SALT與模塊的隨機(jī)數(shù)(最好由隨機(jī)發(fā)生加電時(shí)產(chǎn)生)合并,以產(chǎn)生一新的隨機(jī)數(shù)。如果沒(méi)有將SALT對(duì)象秘密化,那么以后可以通過(guò)發(fā)出一個(gè)閱讀對(duì)象命令進(jìn)行閱讀。配置數(shù)據(jù) 這是一個(gè)用戶定義的結(jié)構(gòu),其最大長(zhǎng)度最好為128個(gè)字節(jié)。該對(duì)象一般用來(lái)存儲(chǔ)其交易組40特定的配置信息。例如,可用配置數(shù)據(jù)對(duì)象規(guī)定貨幣寄存器對(duì)象的格式(即它表示的貨幣類(lèi)型)。由于該對(duì)象沒(méi)有預(yù)定的結(jié)構(gòu),所以交易對(duì)象決不能使用它。輸入數(shù)據(jù) 輸入數(shù)據(jù)對(duì)象只是一個(gè)輸入緩沖器,其最大長(zhǎng)度最好為128個(gè)字節(jié)。一個(gè)交易組可以具有多個(gè)輸入對(duì)象。主機(jī)用輸入數(shù)據(jù)對(duì)象存儲(chǔ)交易腳本44將處理的數(shù)據(jù)。輸出數(shù)據(jù) 交易腳本將輸出數(shù)據(jù)對(duì)象用作輸出緩沖器。當(dāng)創(chuàng)建交易組時(shí),自動(dòng)創(chuàng)建該對(duì)象。其長(zhǎng)度最好為512字節(jié),并且繼承了其交易組的口令保護(hù)。隨機(jī)填充當(dāng)腳本解釋器遇到該類(lèi)型的對(duì)象時(shí),它自動(dòng)填充當(dāng)前信息,致使它的長(zhǎng)度比先前模數(shù)的長(zhǎng)度短1位。當(dāng)創(chuàng)建交易組時(shí),自動(dòng)創(chuàng)建該對(duì)象的句柄。它是一個(gè)秘密對(duì)象并且不可以用閱讀對(duì)象命令閱讀。工作寄存器 腳本解釋器將該對(duì)象用作工作空間,并且該對(duì)象可以在交易腳本中使用。當(dāng)創(chuàng)建交易組時(shí),自動(dòng)創(chuàng)建該對(duì)象的句柄。它是一個(gè)秘密對(duì)象并且不可以用閱讀對(duì)象命令閱讀。ROM數(shù)據(jù) 當(dāng)創(chuàng)建交易組時(shí),自動(dòng)創(chuàng)建該對(duì)象。它是一個(gè)鎖定對(duì)象,并且可以用寫(xiě)對(duì)象命令改變它。該對(duì)象的長(zhǎng)度為8字節(jié)并且其內(nèi)容等同于8×Micro-In-A-CanTM的ROM數(shù)據(jù)較佳的模塊固件命令集設(shè)置公共的PIN(01H)發(fā)送(至模塊)01H,舊PIN,新PIN,PIN選擇字節(jié)接收數(shù)據(jù)如果成功,CSB(命令狀態(tài)字節(jié))=0,否則為合適的差錯(cuò)代碼輸出長(zhǎng)度=0輸出數(shù)據(jù)=0注意PIN選項(xiàng)字節(jié)可以是對(duì)以下任何值的逐位“或”操作PIN_TO_ERASE00000001b(要求PIN作主擦除)PIN_TO_CREATE 00000010b(要示PIN作組創(chuàng)建)最初模塊的PIN(個(gè)人身份識(shí)別號(hào))為0(空),選項(xiàng)字節(jié)為0.一旦建立了PIN,只有通過(guò)提供舊的PIN或通過(guò)主擦除才有改變它。但是,如果在選項(xiàng)字節(jié)中設(shè)置了PIN_TO_ERASE,那么只有通過(guò)設(shè)置公共PIN命令才能改變PIN。
設(shè)置公共PIN命令的差錯(cuò)代碼可能有ERR_BAD_COMMON_PIN (公共PIN匹配失敗)ERR_BAD_PIN_LENGTH (新的PIN長(zhǎng)度>8字節(jié))ERR_BAD_OPTION_BYTE (不認(rèn)識(shí)的選項(xiàng)字節(jié))對(duì)于本節(jié)描述的所有命令,主機(jī)接收到的數(shù)據(jù)將是返回?cái)?shù)據(jù)包的形式。返回?cái)?shù)據(jù)包具有以下結(jié)構(gòu)命令狀態(tài)字節(jié) (如果命令成功,為0,否則為差錯(cuò)代碼,1字節(jié))輸出數(shù)據(jù)長(zhǎng)度 (命令輸出長(zhǎng)度,2字節(jié))輸出數(shù)據(jù) (命令輸出,以上規(guī)定的長(zhǎng)度)主擦除(02H)發(fā)送數(shù)據(jù)02H,公共PIN接收數(shù)據(jù)如果命令成功,則CSB=0,否則為ERR_BAD_COMMON_PIN輸出長(zhǎng)度=0輸出數(shù)據(jù)=0注意如果PIN選項(xiàng)的LSB(最低有效位)清零(即,不要求PIN作主擦除),那么,為公共PIN的值發(fā)送0。一般,該文本總假定需要PIN。如果沒(méi)有建立PIN,應(yīng)該把零發(fā)成PIN。這對(duì)公共PIN和組PIN都是適用的(見(jiàn)下文)。如果PIN正確,那么固件刪除所有的組(見(jiàn)下文)以及組內(nèi)的所有對(duì)象。將公共PIN和公共PIN選項(xiàng)字節(jié)重新設(shè)置為零。
擦除每樣?xùn)|西后,模塊發(fā)送返回?cái)?shù)據(jù)包。CSB如以上所述。將輸出數(shù)據(jù)長(zhǎng)度和輸出數(shù)據(jù)字段設(shè)置為零。創(chuàng)建組(03H)發(fā)送數(shù)據(jù)03H,公共PIN,組名,組PIN
接收數(shù)據(jù)如果命令成功,則CSB=0,否則為適當(dāng)?shù)牟铄e(cuò)代碼如果成功,則輸出長(zhǎng)度=1,否則為0如果成功,則輸出數(shù)據(jù)=組ID,否則為0注意組名的最大長(zhǎng)度為16字節(jié),并且最大的PIN長(zhǎng)度為8字節(jié)。如果在公共PIN選項(xiàng)字節(jié)中設(shè)置PIN_TO_CREATE的位,并且發(fā)送PIN與公共PIN不匹配,那么模塊將把OSC設(shè)置成ERR_BAD_COMMON-PIN。
創(chuàng)建組命令的差錯(cuò)返回代碼可能有ERR_BAD_COMMON_PIN (不正確的公共PIN)ERR_BAD_NAME_LENGTH (如果組名長(zhǎng)度>16字節(jié))ERR_BAD_PIN_LENGTH (如果組PIN的長(zhǎng)度>8字節(jié))ERR_MIAC_LOCKED (已鎖定模塊)ERR_INSUFFICIENT_RAM(沒(méi)有足夠的存儲(chǔ)區(qū)供新組使用)設(shè)置組PIN(04H)發(fā)送數(shù)據(jù)04H,組ID,舊的GPIN,新的GPIN接收數(shù)據(jù)如果命令成功,CSB=0,否則為適當(dāng)?shù)牟铄e(cuò)代碼輸出長(zhǎng)度=0輸出數(shù)據(jù)=0注意組PIN只限制訪問(wèn)由命令數(shù)據(jù)包中發(fā)送的組ID確定的組內(nèi)的對(duì)象。
設(shè)置組PIN命令的差錯(cuò)代碼可能有ERR_BAD_GROUP_PIN (組PIN匹配失敗)ERR_BAD_PIN_LENGTH(新的組PIN的長(zhǎng)度>8字節(jié))創(chuàng)建對(duì)象(05H)發(fā)送數(shù)據(jù)05H,組ID,組PIN,對(duì)象類(lèi)型,對(duì)象屬性,對(duì)象數(shù)據(jù)接收數(shù)據(jù)如果命令成功,CSB=0,否則為適當(dāng)?shù)牟铄e(cuò)代碼如果成功,輸出長(zhǎng)度=1,否則為0如果成功,輸出數(shù)據(jù)=對(duì)象ID,否則為0注意如果創(chuàng)建對(duì)象命令成功,那么模塊固件返回組ID確定的組內(nèi)的對(duì)象ID。如果主機(jī)提供的PIN不正確,或者鎖定組命令(以下描述)已鎖定了組,那么返回CSB中的差錯(cuò)代碼。如果對(duì)象因任何原因而失效,那么對(duì)象創(chuàng)建也失敗。例如,如果正在創(chuàng)建的對(duì)象是一個(gè)RSA模數(shù)(0類(lèi)型),并且它的長(zhǎng)度大于1024位。如果它服從所有的交易腳本規(guī)則,那么交易腳本創(chuàng)建將成功。
創(chuàng)建對(duì)象命令的差錯(cuò)返回代碼可能有ERR_BAD_GROUP_PIN (不正確的組PIN)ERR_GROUP_LOCKED(組已鎖定)ERR_MIAC_LOCKED (模塊已鎖定)ERR_INVALID_TYPE(規(guī)定的對(duì)象類(lèi)型失效)ERR_BAD_SIZE(對(duì)象長(zhǎng)度失效)ERR_INSUFFICIENT_RAM(沒(méi)有足夠的存儲(chǔ)空間供新對(duì)象使用)對(duì)象類(lèi)型 RSA模數(shù) 0RSA指數(shù) 1貨幣寄存器2交易計(jì)數(shù)器3交易腳本 4時(shí)鐘偏移 5隨機(jī)SALT 6
配置對(duì)象7輸入數(shù)據(jù)對(duì)象8輸出數(shù)據(jù)對(duì)象9對(duì)象屬性 鎖定的 00000001b秘密化的00000010b也可以在創(chuàng)建之后,通過(guò)使用以下描述的鎖定對(duì)象和秘密化對(duì)象的命令,鎖定對(duì)象并使對(duì)象秘密化。鎖定對(duì)象(06H)發(fā)送數(shù)據(jù)06H,組ID,組PIN,對(duì)象ID接收數(shù)據(jù)如果命令成功,CSB=0,否則為適當(dāng)?shù)牟铄e(cuò)代碼輸出長(zhǎng)度=0輸出數(shù)據(jù)=0注意如果組ID,組PIN和對(duì)象ID都正確,那么模塊將鎖定規(guī)定的對(duì)象。鎖定對(duì)象是一個(gè)不可撤消的操作。
鎖定對(duì)象命令的差錯(cuò)返回代碼可能有ERR_BAD_GROUP_PIN (不正確的組PIN)ERR_GROUP_LOCKED (組已鎖定)ERR_MIAC_LOCKED(模塊已鎖定)ERR_BAD_GROUP_ID (規(guī)定的組不存在)ERR_BAD_OBJECT_ID (規(guī)定的對(duì)象不存在)秘密化對(duì)象(07H)發(fā)送數(shù)據(jù)07H,組ID,組PIN,對(duì)象ID接收數(shù)據(jù)如果成功,CSB=0,否則為適當(dāng)?shù)牟铄e(cuò)代碼注意如果組ID,組PIN和對(duì)象ID有效,那么將該對(duì)象秘密化,秘密化的對(duì)象共享鎖定對(duì)象的所有性質(zhì),但它們是不可讀的。只有通過(guò)交易腳本才能修改秘密化的對(duì)象。注意鎖定一個(gè)秘密化的對(duì)象是合法的,但由于對(duì)象秘密化是一個(gè)比對(duì)象鎖定更強(qiáng)的操作,所以這是沒(méi)有意義的。將對(duì)象秘密化是一個(gè)不可撤消的操作。
秘密化對(duì)象命令的差錯(cuò)返回代碼可能有ERR_BAD_GROUP_PIN (不正確的組PIN)ERR_GROUP_LOCKED (組已鎖定)ERR_MIAC_LOCKED (模塊已鎖定)ERR_BAD_GROUP_ID (規(guī)定的組不存在)ERR_BAD_OBJECT_ID (規(guī)定的對(duì)象不存在)使對(duì)象可破壞(08H)發(fā)送數(shù)據(jù)08H,組ID,組PIN,對(duì)象ID接收數(shù)據(jù)如果成功,CSB=0,否則為適當(dāng)?shù)牟铄e(cuò)代碼注意如果組ID,組PIN和對(duì)象ID有效,那么使對(duì)象可破壞。如果某一對(duì)象可破壞,那么在組破壞器起作用后,交易腳本不能使用該對(duì)象。如果交易組內(nèi)不存在破壞器的對(duì)象,那么可破壞對(duì)象的屬性位不起作用。使對(duì)象可破壞是一個(gè)不可撤消的操作。
使對(duì)象可破壞命令的差錯(cuò)返回代碼可能有ERR_BAD_GROUP_PIN (不正確的組PIN)ERR_GROUP_LOCKED (組已鎖定)ERR_MIAC_LOCKED (模塊已鎖定)ERR_BAD_GROUP_ID (規(guī)定的組不存在)ERR_BAD_OBJECT_ID (規(guī)定的對(duì)象不存在)鎖定模塊(09H)發(fā)送數(shù)據(jù)09H,公共PIN接收數(shù)據(jù)如果成功,CSB=0,否則為適當(dāng)?shù)牟铄e(cuò)代碼如果成功,輸出長(zhǎng)度=2,否則為0如果成功,輸出數(shù)據(jù)=審計(jì)跟蹤,否則為0注意如果主機(jī)提供的公共PIN正確,并且先前沒(méi)有鎖定模塊,那么命令將成功。當(dāng)鎖定模塊時(shí),它將不接收任何新的組或?qū)ο蟆_@意味著自動(dòng)鎖定所有的組。系統(tǒng)或諸組不用的RAM將被用來(lái)進(jìn)行審計(jì)跟蹤。模塊未被成功鎖定,就不進(jìn)行審計(jì)跟蹤。
審計(jì)跟蹤記錄的長(zhǎng)度為6字節(jié),并且具有以下結(jié)構(gòu)組ID|對(duì)象ID|日期/時(shí)間標(biāo)志一旦建立了審計(jì)跟蹤,每次執(zhí)行交易腳本,就把上述形式的記錄存儲(chǔ)在第一個(gè)字節(jié)大小可用的位置上。注意,由于模塊必須在審計(jì)跟蹤開(kāi)始之前鎖定,所以組ID和對(duì)象ID都不能變化。這總是允許這樣的應(yīng)用,它處理審計(jì)跟蹤,以便唯一識(shí)別被執(zhí)行的交易腳本。一旦審計(jì)跟蹤用完了所有可用的存儲(chǔ)空間,它將把新的交易記錄存儲(chǔ)在最舊的交易記錄上。
鎖定模塊命令的差錯(cuò)代碼可能有ERR_BAD_COMMON_PIN (提供的公共PIN不正確)ERR_MIAC_LOCKED(模塊已鎖定)鎖定組(0AH)發(fā)送數(shù)據(jù)0AH,組ID,組PIN接收數(shù)據(jù)如果命令成功,CSB=0,否則為適當(dāng)?shù)牟铄e(cuò)代碼輸出長(zhǎng)度=0輸出數(shù)據(jù)=0注意如果提供的組PIN是正確的,那么模塊BIOS將不允許在規(guī)定的組內(nèi)創(chuàng)建更多的對(duì)象。由于組完全是自含式實(shí)體,所以通過(guò)執(zhí)行刪除組命令(以下描述)可以刪除它們。
鎖定組命令的差錯(cuò)返回代碼可能有ERR_BAD_GROUP_PIN (不正確的組PIN)ERR_GROUP_LOCKED (組已鎖定)ERR_MIAC_LOCKED (模塊已鎖定)ERR_BAD_GROUP_ID (規(guī)定的組不存在)調(diào)用交易腳本(0BH)發(fā)送數(shù)據(jù)0BH,組ID,組PIN,對(duì)象ID接收數(shù)據(jù)如果命令成功,CSB=0,否則為適當(dāng)?shù)牟铄e(cuò)代碼如果成功,輸出長(zhǎng)度=1,否則為0輸出數(shù)據(jù)=估計(jì)的完成時(shí)間注意模塊返回的時(shí)間估計(jì)是六分之一秒。如果返回CSB中的差錯(cuò)代碼,那么時(shí)間估計(jì)將為0。
執(zhí)行交易腳本命令的差錯(cuò)返回代碼可能有ERR_BAD_GROUP_PIN (不正確的組PIN)ERR_BAD_GROUP_ID (規(guī)定的組不存在)ERR_BAD_OBJECT_ID (組中不存在腳本對(duì)象)閱讀對(duì)象(0CH)發(fā)送數(shù)據(jù)0CH,組ID,組PIN,對(duì)象ID接收數(shù)據(jù)如果命令成功,CSB=0,否則為適當(dāng)?shù)牟铄e(cuò)代碼如果成功,輸出長(zhǎng)度=對(duì)象長(zhǎng)度,否則為0如果成功,輸出數(shù)據(jù)=對(duì)象數(shù)據(jù),否則為0注意如果組ID,組PIN和對(duì)象ID都正確,那么模塊檢查指定對(duì)象的屬性字節(jié)。如果對(duì)象沒(méi)有秘密化,那么模塊把對(duì)象數(shù)據(jù)發(fā)送組主機(jī)。如果組PIN無(wú)效,或者對(duì)象已秘密化,那么模塊返回輸出長(zhǎng)度中的0,以及返回?cái)?shù)據(jù)包的數(shù)據(jù)字段。
閱讀對(duì)象命令的差錯(cuò)代碼可能有ERR_BAD_GROUP_PIN(不正確的組PIN)ERR_BAD_GROUP_ID (規(guī)定的組不存在)ERR_BAD_OBJECT_ID(組中不存在對(duì)象)ERR_OBJECT_PRIVATIZED(對(duì)象已秘密化)寫(xiě)對(duì)象(0DH)發(fā)送數(shù)據(jù)0DH,組ID,組PIN,對(duì)象ID,對(duì)象大小,對(duì)象數(shù)據(jù)接收數(shù)據(jù)如果成功,CSB=0,否則為適當(dāng)?shù)牟铄e(cuò)代碼輸出長(zhǎng)度=0輸出數(shù)據(jù)=0注意如果組ID,組PIN和對(duì)象ID都正確,那么模塊檢查指定對(duì)象的屬性字節(jié)。如果對(duì)象沒(méi)有鎖定或者沒(méi)有秘密化,那么模塊將對(duì)象先前的大小和數(shù)據(jù)清零,并用新的對(duì)象數(shù)據(jù)代替。注意,對(duì)象類(lèi)型和屬性字節(jié)不受影響。
寫(xiě)對(duì)象命令的差錯(cuò)返回代碼可能有ERR_BAD_GROUP_PIN(不正確的組PIN)ERR_BAD_GROUP_ID (規(guī)定的組不存在)ERR_BAD_OBJECT_ID(組中不存在對(duì)象)ERR_BAD_OBJECT_SIZE (規(guī)定了不合法的對(duì)象大小)ERR_OBJECT_LOCKED(對(duì)象已鎖定)ERR_OBJECT_PRIVATIZED(對(duì)象已秘密化)讀組名(0EH)發(fā)送數(shù)據(jù)0EH,組ID接收數(shù)據(jù)CSB=0輸出長(zhǎng)度=組名的長(zhǎng)度輸出數(shù)據(jù)=組名注意組名長(zhǎng)度最大值為16字節(jié)。在組名中,所有的字節(jié)值都是合法的。刪除組(0FH)發(fā)送數(shù)據(jù)0FH,組ID,組PIN接收數(shù)據(jù)如果成功,CSB=0,否則為適當(dāng)?shù)牟铄e(cuò)代碼輸出長(zhǎng)度=0輸出數(shù)據(jù)=0注意如果組PIN和組ID正確,那么模塊將刪除指定的組。刪除一個(gè)組會(huì)自動(dòng)破壞該組內(nèi)的所有對(duì)象。如果已經(jīng)鎖定模塊,刪除組命令將失效。
刪除組命令的差錯(cuò)代碼可能有ERR_BAD_GROUP_PIN (不正確的組PIN)ERR_BAD_GROUP_ID (指定的組不存在)ERR_MIAC_LOCKED(模塊已鎖定)獲取命令狀態(tài)信息(10H)發(fā)送數(shù)據(jù)10H接收數(shù)據(jù)
CSB=0輸出長(zhǎng)度=6輸出數(shù)據(jù)=模塊狀態(tài)結(jié)構(gòu)(見(jiàn)下文)注意該操作不需要PIN,并且永遠(yuǎn)不會(huì)失敗。狀態(tài)結(jié)構(gòu)定義如下最后執(zhí)行的命令 (1字節(jié))最后命令的狀態(tài) (1字節(jié))接收到的時(shí)間命令(4字節(jié))獲取模塊配置信息(11H)發(fā)送數(shù)據(jù)11H接收數(shù)據(jù)CSB=0輸出長(zhǎng)度=4輸出數(shù)據(jù)=模塊配置結(jié)構(gòu)注意該操作不需要PIN,并且永遠(yuǎn)不會(huì)失敗。配置結(jié)構(gòu)定義如下組數(shù)(1字節(jié))標(biāo)志字節(jié)(見(jiàn)下文)(1字節(jié))審計(jì)跟蹤的大小/空RAM(2字節(jié))標(biāo)志字節(jié)是對(duì)任何以下值的逐位“或”操作00000001b (鎖定模塊)00000010b (需要訪問(wèn)的公共PIN)讀審計(jì)跟蹤信息(12H)發(fā)送數(shù)據(jù)12H,公共PIN接收數(shù)據(jù)如果命令成功,CSB=0,否則為合適的差錯(cuò)代碼如果成功,輸出長(zhǎng)度=審計(jì)跟蹤結(jié)構(gòu)大小(5),否則為0如果成功,輸出數(shù)據(jù)=審計(jì)跟蹤信息結(jié)構(gòu),否則為0注意如果發(fā)送的公共PIN有效,并且模塊已鎖定,那么它返回以下審計(jì)跟蹤配置信息所用的交易記錄數(shù) (2字節(jié))空的交易記錄數(shù)(2字節(jié))規(guī)定審計(jì)跟蹤是否因先前的讀命令而卷動(dòng)的布爾符號(hào)(1字節(jié))讀審計(jì)跟蹤信息命令的差錯(cuò)代碼可能有ERR_BAD_COMMON_PIN(公共PIN不正確)ERR_MIAC_NOT_LOCKED (不鎖定模塊)讀審計(jì)跟蹤(13H)發(fā)送數(shù)據(jù)13H,公共PIN接收數(shù)據(jù)如果命令成功,CSB=0,否則為合適的差錯(cuò)代碼如果成功,輸出長(zhǎng)度=新記錄的#*6,否則為0輸出數(shù)據(jù)=新的審計(jì)跟蹤記錄注意如果發(fā)送的公共PIN有效,并且模塊已鎖定,那么它將把所有新的交易記錄傳送給主機(jī)。
讀審計(jì)跟蹤命令的差錯(cuò)代碼可能有ERR_BAD_COMMON_PIN(公共PIN不正確)ERR_MIAC_NOT_LOCKED (不鎖定模塊)讀組審計(jì)跟蹤(14H)發(fā)送數(shù)據(jù)14H,組ID,組PIN
接收數(shù)據(jù)如果命令成功,CSB=0,否則為合適的差錯(cuò)代碼如果成功,輸出長(zhǎng)度=對(duì)組的記錄或#*6,否則為0如果成功,輸出數(shù)據(jù)=對(duì)組的審計(jì)跟蹤記錄注意該命令與讀審計(jì)跟蹤命令相同,只是僅將包含有發(fā)送數(shù)據(jù)中指定的組ID的記錄返回給主機(jī)。這允許交易組記錄跟蹤它們自己的活動(dòng),不需要參照其它組的記錄。
讀組審計(jì)跟蹤命令的差錯(cuò)代碼可能有ERR_BAD_GROUP_ID(組ID不存在)ERR_BAD_GROUP_PIN (公共PIN不正確)ERR_MIAC_NOT_LOCKED (不鎖定模塊)讀實(shí)時(shí)時(shí)鐘(15H)發(fā)送數(shù)據(jù)15H,公共PIN接收數(shù)據(jù)如果公共PIN匹配,CSB=0,否則ERR_BAD_COMMON_PIN輸出長(zhǎng)度=4輸出數(shù)據(jù)=實(shí)時(shí)時(shí)鐘的4個(gè)最高字節(jié)注意該值不用時(shí)鐘偏移調(diào)整。該命令通常由服務(wù)供應(yīng)者使用,以便在交易組創(chuàng)建期間計(jì)算時(shí)鐘偏移。讀經(jīng)調(diào)整的實(shí)時(shí)時(shí)鐘(16H)發(fā)送數(shù)據(jù)16H,組ID,組PIN,偏移對(duì)象的ID接收數(shù)據(jù)如果成功,CSB=0,否則為合適的差錯(cuò)代碼如果成功,輸出長(zhǎng)度=4,否則為0
輸出數(shù)據(jù)=實(shí)時(shí)時(shí)鐘+時(shí)鐘偏移ID注意如果組ID和組PIN有效,并且對(duì)象ID是時(shí)鐘偏移的ID,那么該命令成功,模塊將時(shí)鐘偏移加到RTC的4個(gè)最高字節(jié)的當(dāng)前值上,并將該值返回在輸出數(shù)據(jù)字段中。注意,可以寫(xiě)一個(gè)交易腳本,進(jìn)行相同的任務(wù),并把結(jié)果放在輸出數(shù)據(jù)對(duì)象中。
讀經(jīng)調(diào)整的實(shí)時(shí)時(shí)鐘命令的差錯(cuò)代碼可能有ERR_BAD_GROUP_PIN(組PIN不正確)ERR_BAD_GROUP_ID (指定的組不存在)ERR_BAD_OBJECT_TYPE (對(duì)象ID不是時(shí)鐘偏移)獲取隨機(jī)數(shù)據(jù)(17H)發(fā)送數(shù)據(jù)17H,長(zhǎng)度(L)接收數(shù)據(jù)如果成功,CSB=0,否則為合適的差錯(cuò)代碼如果成功,輸出長(zhǎng)度=L,否則為0如果成功,輸出數(shù)據(jù)=隨機(jī)數(shù)據(jù)的L字節(jié)注意該命令提供了一個(gè)良好的保密有用的隨機(jī)數(shù)源。
獲取隨機(jī)數(shù)據(jù)命令的差錯(cuò)代碼可能有ERR_BAD_SIZE (需要的字節(jié)數(shù)>128)獲取固件版本ID(18H)發(fā)送數(shù)據(jù)18H接收數(shù)據(jù)CSB=0輸出長(zhǎng)度=固件版本ID串的長(zhǎng)度輸出數(shù)據(jù)=固件版本ID串注意該命令把固件版本ID作為一個(gè)Pascal類(lèi)型的串(長(zhǎng)度+數(shù)據(jù))返回。獲取空的RAM(19H)發(fā)送數(shù)據(jù)19H接收數(shù)據(jù)CSB=0輸出長(zhǎng)度=2輸出數(shù)據(jù)=包含空的RAM數(shù)量的2字節(jié)值注意如果模塊已鎖定,輸出數(shù)據(jù)字節(jié)將均為0,表示所有未被交易組使用的存儲(chǔ)空間都保留下來(lái)用于審計(jì)跟蹤。改變組名(1AH)發(fā)送數(shù)據(jù)1AH,組ID,組PIN,新的組名接收數(shù)據(jù)如果成功,CSB=0,否則為合適的差錯(cuò)代碼輸出長(zhǎng)度=0輸出數(shù)據(jù)=0注意如果模塊中存在指定的組ID,并且提供的PIN是正確的,那么用主機(jī)提供的新的組名替代交易組名。如果提供組ID為0,那么發(fā)送的PIN必須是公共PIN。如果它是正確的,那么用主機(jī)提供的新的名字替代模塊名。
改變組名命令的差錯(cuò)代碼可能有ERR_BAD_GROUP_PIN(組PIN不正確)ERR_BAD_GROUP_ID (指定的組不存在)ERR_BAD_NAME_LENGTH (新的組名>16字節(jié))差錯(cuò)代碼定義ERR_BAD_COMMAND(80H)當(dāng)模塊固件不認(rèn)識(shí)主機(jī)剛發(fā)送的命令時(shí),產(chǎn)生該差錯(cuò)代碼。
ERR_BAD_COMMON_PIN(81H)當(dāng)命令需要一公共PIN并且提供的PIN與模塊的公共PIN不匹配時(shí),并返回該差錯(cuò)代碼。最初,將公共PIN設(shè)置為0。
ERR_BAD_GROUP_PIN(82H)交易組可以有它們自己的PIN,圖11。如果已設(shè)置該P(yáng)IN(由設(shè)置組PIN命令設(shè)置),那么必須提供它來(lái)訪問(wèn)組內(nèi)的任何對(duì)象。如果提供的組PIN與實(shí)際的組PIN不匹配,那么模塊將返回ERR_BAD_GROUP_PIN差錯(cuò)代碼。
ERR_BAD_PIN_LENGTH(83H)有2個(gè)命令可以改變PIN值。它們是設(shè)置組PIN命令和設(shè)置公共PIN命令。這兩個(gè)命令都需要新的PIN和舊的PIN。如果提供的舊的PIN是正確的,但新的PIN的長(zhǎng)度大于8個(gè)字符,那么將返回ERR_BAD_PIN_LENGTH差錯(cuò)代碼。
ERR_BAD_OPTION_BYTE(84H)選項(xiàng)字節(jié)只應(yīng)用于公共PIN。當(dāng)執(zhí)行設(shè)置公共PIN命令時(shí),主機(jī)提供的最后字節(jié)是選項(xiàng)字節(jié)(命令章節(jié)中有描述)。如果模塊不認(rèn)識(shí)該字節(jié),那么它將返回ERR_BAD_OPTION_BYTE差錯(cuò)代碼。
ERR_BAD_NAME_LENGTH(85H)當(dāng)創(chuàng)建交易組命令時(shí),主機(jī)提供的一個(gè)數(shù)據(jù)結(jié)構(gòu)是組名。組名的長(zhǎng)度不可以超過(guò)16個(gè)字符。如果提供的名字長(zhǎng)于16字符,那么返回ERR_BAD_NAME_LENGTH差錯(cuò)代碼。
ERR_INSUFFICIENT_RAM(86H)
當(dāng)模塊中沒(méi)有足夠的堆時(shí),創(chuàng)建交易組命令和創(chuàng)建對(duì)象命令返回該差錯(cuò)代碼。
ERR_MIAC_LOCKED(87H)當(dāng)已鎖定模塊時(shí),不能創(chuàng)建或破壞任何組或?qū)ο蟆?chuàng)建或刪除對(duì)象的任何嘗試都將產(chǎn)生ERR_MIAC_LOCKED差錯(cuò)代碼。
ERR_MIAC_NOT_LOCKED(88H)如果已鎖定模塊,那么不存在審計(jì)跟蹤。如果執(zhí)行一個(gè)審計(jì)跟蹤命令,那么將返回該差錯(cuò)代碼。
ERR_GROUP_LOCKED(89H)一旦鎖定了某個(gè)交易組,就不可能在該組內(nèi)創(chuàng)建對(duì)象。對(duì)象屬性和類(lèi)型也被凍結(jié)。創(chuàng)建對(duì)象或改變它們屬性或類(lèi)型字節(jié)的任何嘗試都將產(chǎn)生ERR_GROUP_LOCKED差錯(cuò)代碼。
ERR_BAD_OBJECT_TYPE(8AH)當(dāng)主機(jī)向模塊發(fā)出創(chuàng)建對(duì)象命令時(shí),它提供的一個(gè)參數(shù)是對(duì)象類(lèi)型(見(jiàn)命令章節(jié))。如果固件不認(rèn)識(shí)該對(duì)象類(lèi)型,那么它將返回ERR_BAD_OBJECT_TYPE差錯(cuò)代碼。
ERR_BAD_OBJECT_ATTR(8BH)當(dāng)主機(jī)向模塊發(fā)出創(chuàng)建對(duì)象命令時(shí),它提供的一個(gè)參數(shù)是對(duì)象屬性字節(jié)(見(jiàn)命令章節(jié))。如果固件不認(rèn)識(shí)該對(duì)象屬性類(lèi)型,那么它將返回ERR_BAD_OBJECT_ATTR差錯(cuò)代碼。
ERR_BAD_SIZE(8CH)當(dāng)創(chuàng)建或?qū)懸粋€(gè)對(duì)象時(shí),常會(huì)產(chǎn)生ERR_BAD_SIZE差錯(cuò)代碼。只有當(dāng)主機(jī)提供的對(duì)象數(shù)據(jù)具有無(wú)效長(zhǎng)度時(shí),才會(huì)發(fā)生。
ERR_BAD_GROUP_ID(8DH)在交易組層次上操作的所有命令都要求在命令數(shù)據(jù)包中提供組ID。如果模塊中不存在指定的組ID,那么它將產(chǎn)生ERR_BAD_GROUP_ID差錯(cuò)代碼。
ERR_BAD_OBJECT_ID(8EH)在對(duì)象層次上操作的所有命令都要求在命令數(shù)據(jù)包中提供對(duì)象ID。如果特定交易組(交易組也在命令數(shù)據(jù)包中指定)內(nèi)不存在指定的對(duì)象ID,那么它將產(chǎn)生ERR_BAD_OBJECT_ID差錯(cuò)代碼。
ERR_INSUFFICIENT_FUNDS(8FH)如果調(diào)用執(zhí)行金融交易的腳本對(duì)象,并且貨幣寄存器的值小于需要提取的金額,那么返回ERR_INSUFFICIENT_FUNDS差錯(cuò)代碼。
ERR_OBJECT_LOCKED(90H)鎖定對(duì)象是只讀的。如果試圖執(zhí)行寫(xiě)對(duì)象命令,并且它規(guī)定了鎖定對(duì)象的對(duì)象ID,那么模塊將返回ERR_OBJECT_LOCKED差錯(cuò)代碼。
ERR_OBJECT_PRIVATE(91H)秘密對(duì)象是不能直接讀或?qū)懙?。如果試圖執(zhí)行讀對(duì)象命令或?qū)憣?duì)象命令,并且它規(guī)定了秘密對(duì)象的對(duì)象ID,那么模塊將返回ERR_OBJECT_PRIVATE差錯(cuò)代碼。
ERR_OBJECT_DESTRUCTED(92H)如果對(duì)象是可破壞的,并且交易組的破壞器在工作,那么腳本不可以使用該對(duì)象。如果調(diào)用的腳本使用已被破壞的對(duì)象,那么模塊將返回ERR_OBJECT_DESTRUCTED差錯(cuò)代碼。
最好將本發(fā)明的實(shí)施例放在耐用的硬幣式不銹鋼罐中。應(yīng)該理解,可以將例示的模塊放在任何實(shí)質(zhì)上帶關(guān)節(jié)的物品中。帶關(guān)節(jié)的物品例子包括信用卡、戒子、手表、皮夾、錢(qián)包、項(xiàng)鏈、珠寶、ID徽章、鋼筆、書(shū)寫(xiě)板等。
模塊最好是單個(gè)芯片的“信托計(jì)算機(jī)”。用術(shù)語(yǔ)“信托”表示計(jì)算機(jī)是極其保密的,未獲承認(rèn)的方法不能竄改。模塊包含一數(shù)字協(xié)處理器,被優(yōu)化用來(lái)進(jìn)行數(shù)學(xué)加強(qiáng)的加密。BIOS最好是不能改變的,并且特別是為非常保密的交易設(shè)計(jì)的。
每個(gè)模塊具有一個(gè)隨機(jī)“種子”發(fā)生器,該發(fā)生器具有創(chuàng)建秘密/公開(kāi)密鑰集的能力。秘密密鑰永遠(yuǎn)不會(huì)離開(kāi)模塊,并且只有模塊知道。另外,當(dāng)錯(cuò)誤進(jìn)入模塊時(shí)通過(guò)積極進(jìn)行自破壞,防止秘密密鑰被發(fā)現(xiàn)??梢杂靡粋€(gè)個(gè)人身份識(shí)別號(hào)(PIN)將模塊與用戶聯(lián)系在一起。
當(dāng)用模塊進(jìn)行交易時(shí),由模塊和與模塊通信的系統(tǒng)這兩者之一或兩者創(chuàng)建授權(quán)證明。證明可以包含各種信息。特別是,證明可以包含1)誰(shuí)是模塊用戶,借助于專(zhuān)用的登記號(hào)。
2)交易何時(shí)發(fā)生,借助于交易的真實(shí)時(shí)間標(biāo)志。
3)交易發(fā)生在何地,借助于經(jīng)登記的模塊接口位置標(biāo)識(shí)。
4)保密信息,借助于消息摘要上的獨(dú)特排序的交易和數(shù)字簽名。
5)模塊狀態(tài),表示成有效、丟失、或截止。
盡管附圖中示出并且在以上詳細(xì)說(shuō)明中描述了本發(fā)明方法和設(shè)備的一個(gè)較佳實(shí)施例,但應(yīng)該理解,本發(fā)明不限于所揭示的實(shí)施例,本發(fā)明可以不脫離以下權(quán)利要求書(shū)敘述和限定的本發(fā)明的精神,進(jìn)行眾多的重新布置、變化和替代。
權(quán)利要求
1.一種用于保密交易的電子模塊,其特征在于,包括輸入/輸出電路,用于與數(shù)據(jù)處理電路連通;數(shù)學(xué)協(xié)處理器電路,它與所述輸入/輸出電路電氣連接;微處理器電路,它與所述輸入/輸出電路電氣連接;和存儲(chǔ)器電路,它與所述微處理器電路電氣連接,所述電子模塊是可編程的,用以在所述電子模塊和所述數(shù)據(jù)處理電路之間進(jìn)行保密的加密數(shù)據(jù)傳輸。
2.如權(quán)利要求1所述的電子模塊,其特征在于,所述數(shù)據(jù)處理電路是另一個(gè)電子模塊。
3.如權(quán)利要求1所述的電子模塊,其特征在于,還包括一個(gè)單線接口,它與所述輸入/輸出電路相連。
4.如權(quán)利要求1所述的電子模塊,其特征在于,所述存儲(chǔ)器電路適于存儲(chǔ)在所述電子模塊與所述數(shù)據(jù)處理電路之間進(jìn)行加密數(shù)據(jù)傳輸期間使用的秘密加密/解密密鑰。
5.如權(quán)利要求1所述的電子模塊,其特征在于,所述加密交易是作了時(shí)間標(biāo)記的。
6.一種用于保密交易通信的系統(tǒng),其特征在于,包括第一模塊,它包括輸入/輸出電路;隨機(jī)數(shù)據(jù)發(fā)生裝置,用于產(chǎn)生隨機(jī)數(shù);和第一交易組,用于請(qǐng)求所述隨機(jī)數(shù)發(fā)生裝置產(chǎn)生所述隨機(jī)數(shù),并且用于向所述輸入/輸出電路提供所述隨機(jī)數(shù);和服務(wù)供應(yīng)設(shè)備,它包括用于從所述第一模塊的所述輸入/輸出電路讀取所述隨機(jī)數(shù)的裝置;用于把所述隨機(jī)數(shù)與第一數(shù)據(jù)合并并且用秘密密鑰對(duì)所述隨機(jī)數(shù)與所述第一數(shù)據(jù)的合并加密以產(chǎn)生第一證明的裝置,由此所述第一模塊的所述輸入/輸出電路適于接收所述第一證明。
7.如權(quán)利要求6所述的系統(tǒng),其特征在于,所述服務(wù)供應(yīng)設(shè)備包括第二模塊。
8.如權(quán)利要求6所述的系統(tǒng),其特征在于,所述第一模塊還包括一個(gè)標(biāo)識(shí)符,用于識(shí)別所述第一模塊,并且所述第一交易組將所述標(biāo)識(shí)符提供給所述輸入/輸出電路。
9.如權(quán)利要求8所述的系統(tǒng),其特征在于,所述用于讀的裝置還用于從所述第一模塊的所述輸入/輸出電路中讀取所述標(biāo)識(shí)符。
10.如權(quán)利要求6所述的系統(tǒng),其特征在于,所述第一模塊還包括第二交易組。
11.如權(quán)利要求6所述的系統(tǒng),其特征在于,所述模塊還包括用于對(duì)完整交易進(jìn)行時(shí)間標(biāo)記的裝置。
12.一種在模塊和服務(wù)供應(yīng)設(shè)備之間傳遞加密信息的方法,其特征在于,包括以下步驟a)在所述模塊中創(chuàng)建第一隨機(jī)數(shù);b)把所述隨機(jī)數(shù)傳送給所述服務(wù)供應(yīng)設(shè)備;c)用所述服務(wù)供應(yīng)設(shè)備中的秘密密鑰至少對(duì)所述隨機(jī)數(shù)加密,從而產(chǎn)生一個(gè)證明;d)至少將所述證明傳送給所述模塊;e)用所述模塊中的公開(kāi)密鑰對(duì)所述證明解密;f)將所述第一隨機(jī)數(shù)與在步驟e)的經(jīng)解密的第一證明中找到的數(shù)進(jìn)行比較,確定兩個(gè)數(shù)是否匹配。
13.如權(quán)利要求12所述的方法,其特征在于,步驟b)還包括將模塊標(biāo)識(shí)符傳送給所述服務(wù)供應(yīng)設(shè)備的步驟。
14.如權(quán)利要求12所述的方法,其特征在于,所述服務(wù)供應(yīng)設(shè)備是另一個(gè)模塊。
15.如權(quán)利要求12所述的方法,其特征在于,所述方法包括單線總線。
16.如權(quán)利要求15所述的方法,其特征在于,所述單線總線基本上是一根線總線。
17.一種在模塊和服務(wù)供應(yīng)設(shè)備之間傳遞加密信息的方法,其特征在于,包括以下步驟a)在所述服務(wù)供應(yīng)設(shè)備中創(chuàng)建第一隨機(jī)數(shù);b)把所述隨機(jī)數(shù)傳送給所述模塊;c)用所述模塊中的秘密密鑰至少對(duì)所述隨機(jī)數(shù)加密,從而產(chǎn)生一個(gè)證明;d)至少將所述第一證明傳送給所述服務(wù)供應(yīng)設(shè)備;e)用所述服務(wù)供應(yīng)設(shè)備中的公開(kāi)密鑰對(duì)所述第一證明解密;f)將所述第一隨機(jī)數(shù)與在步驟e)的經(jīng)解密第一證明中找到的數(shù)進(jìn)行比較,確定兩個(gè)數(shù)是否匹配。
18.如權(quán)利要求17所述的方法,其特征在于,所述服務(wù)供應(yīng)設(shè)備是另一個(gè)模塊。
19.如權(quán)利要求17所述的方法,其特征在于,所述方法包括單線總線。
20.如權(quán)利要求18所述的方法,其特征在于,所述單線總線基本上是一根線總線。
21.一種用模塊對(duì)加密數(shù)據(jù)解密的方法,其特征在于,包括以下步驟接收第一加密數(shù)據(jù)和第二加密數(shù)據(jù);用存儲(chǔ)在所述模塊中的秘密密鑰對(duì)所述第一加密數(shù)據(jù)解密,從而產(chǎn)生第一解密密鑰;將所述第一解密密鑰提供給一電子系統(tǒng);通過(guò)所述電子系統(tǒng)用所述第一解密密鑰對(duì)所述第二加密數(shù)據(jù)解密,從而產(chǎn)生一個(gè)有用的信息。
22.如權(quán)利要求21所述的方法,其特征在于,所述加密數(shù)據(jù)是一個(gè)電子郵件信息。
全文摘要
本發(fā)明涉及一種用于進(jìn)行保密交易的電子模塊。具體地說(shuō),該電子模塊能夠通過(guò)一保密的加密技術(shù)與服務(wù)供應(yīng)設(shè)備來(lái)往傳遞信息,從而可以用電子方式保密地傳送貨幣和其它有價(jià)值的數(shù)據(jù)。模塊可以被編程,對(duì)實(shí)時(shí)保持跟蹤,記錄交易供以后查詢,并且能夠產(chǎn)生加密密鑰對(duì)。
文檔編號(hào)G07F7/08GK1198233SQ96197307
公開(kāi)日1998年11月4日 申請(qǐng)日期1996年9月26日 優(yōu)先權(quán)日1995年9月29日
發(fā)明者斯蒂芬·M·柯里, 唐納德·W·魯密斯, 克里斯多夫·W·??怂?申請(qǐng)人:達(dá)拉斯半導(dǎo)體有限公司