国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      保密交易的方法、設備、系統(tǒng)和固件的制作方法

      文檔序號:6662753閱讀:945來源:國知局
      專利名稱:保密交易的方法、設備、系統(tǒng)和固件的制作方法
      技術領域
      本發(fā)明涉及一種保密交易用的方法、設備和固件。尤其,在基于電子模塊的系統(tǒng)中,可以將模塊構造成至少提供保密數據傳輸、數字簽名,或者授權進行貨幣交易。
      相關技術的描述目前,具有相關磁條的信用卡是在市場上較佳的的貨幣交易媒體。信用卡用戶可以將卡拿到自動取款機、本地商店或銀行,并進行貨幣交易。在許多情況下,可以通過電話接口用卡進行貨幣兌換。磁條卡用來幫助識別卡和卡的使用者??閭鬟f提供了程度相當低的保密性。不管怎樣,卡可使卡的持有者購買產品、支付債款,并在獨立的銀行帳戶之間進行貨幣兌換。
      已對磁條卡作了改進。已出現用微電路代替磁條的卡。一般與磁條一樣,微電路被用來使讀卡機進行交易。

      發(fā)明內容
      本發(fā)明是用于在一較佳的便攜式模塊和一服務供應者設備之間傳遞加密信息的設備、系統(tǒng)和方法。本發(fā)明包括一模塊,它具有專用識別,能夠產生隨機數(例如SALT),并將隨機數與例如兌換貨幣的請求一起傳送給服務供應者的設備。作為回復,服務供應者的設備可以(根據交易的類型)用秘密或公開密鑰對隨機數和其它信息進行加密,并將加密信息作為經簽名的證明送回模塊。收到經簽名的證明后,模塊將根據交易的類型用公共或秘密密鑰對該證明解密,并將解密后的數值與原始的隨機數進行比較。另外,如果數值相同,那么可以認為被請求的交易是保密的,從而進行交易。模塊能夠對交易信息作時間標記,并將交易信息存儲在存儲器中,以便事后查看。
      附圖概述結合附圖閱讀以下詳細描述,可以更全面地理解本發(fā)明的方法和設備,其中

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