專利名稱::使用隨機碼的通信方法和設備的制作方法
技術領域:
:本發明涉及一種在通信中使用了隨機碼的通信方法和設備。其中舉例來說,通信可以是金融交易或其它任何可信通信的一部分。
背景技術:
:隨機碼當然也可以在常規計算機上產生,并且將它的兩個拷貝存入CD之類的存儲介質。但是,這種方法存在很多問題.-如果有人在計算機上運行可以"執行間諜操作"并且將列表的第三個拷貝傳送到第三方的非法程序,那么計算機將會遭受"黑客攻擊",并且這兩個列表拷貝有可能會泄密。所述第三方可以不為兩個"正當"用戶獲悉的情況下解碼任何一個安全編碼的文檔或文件,此外還可以使用列表中的金錢編碼部分來支付款項。在生成了CD之類的記錄媒體之后,該記錄媒體可以在不留有任何讀取痕跡的情況下被讀取。由此,如果通過以物理方式獲取CD(偷竊)來制作拷貝,那么將會允許如上概述的不當存取如果CD被從失竊地點更換,那么合法用戶是無法獲悉的。
發明內容本發明的第一方面提供的是一種通信方法,其中包括將隨機碼存儲在第一設備中;將隨機碼存儲在第二設備中;以及在后續通信中使用該隨機碼。本發明還提供了一種設備,其中該設備包括.*用于存儲隨機碼的存儲器;以及在后續通信中使用該隨機碼的處理器。該隨機碼既可以在后續通信中傳送,也可以在后續通信中被用作編碼密鑰。例如,后續通信可以包括金融交易中的一部分。換言之,該隨機碼既可以用作密鑰來簽署帶有數字簽名的付費指令,也可以用作"虛擬現金",在這種情況下,所述碼自身會在各方之間傳送。本發明的另一個應用是借助"一次性支付"安全技術來傳送可信信息,并且這其中是借助簡單的數字運算以及使用隨機數列表來對符號的字符碼執行編碼的。具備相同列表的接收機可以翻轉所述編碼,由此恢復文檔。其中舉例來說,如果初始碼可以在常見的ASCII計算機碼中得到,并且該列表中的每個隨機數都具有一個字節,那么在這種情況下,要想將其表示為數字0255,編碼處理可以是以256為模的8比特ASCII碼的加法以及8比特的無符號隨機數,而翻轉操作則是以256為模的減法。明確匹配隨機的8比特無符號數字(字節)的列表可以被解釋成是用于安全通信的單個字節,或是用于金融、驗證或交易核對目的的更長序列(通常是16字節)。如下所述的本發明的不同實施例給出了用以克服這些問題的不同安全措施,并且現在將會參考附圖來對其進行描述,其中圖1顯示的是一對設備;圖2詳細顯示了其中一個設備;圖3是從左手側得到的其中一個設備的示意圖;圖4是從右手側得到的其中一個設備的示意圖;圖5是在通過貫穿設備得到的示意性截面圖;圖6顯示的是PCB、芯片和安全板條;圖7是通過貫穿備選設備得到的示意性截面圖;圖8顯示的是在"一次性填充"安全通信中使用設備;圖9顯示的是在金融交易中使用設備;以及圖IO顯示在碼生成過程中的設備的備選布置。具體實施例方式關于本發明優選實施例的描述圖1顯示的是經由編碼鏈路3而與第二設備2相連的第一設備1。圖2示意性描述了第一設備1的功能組件。而第二設備2則是相同的。設備硬件參考圖2,設備1具有諸如FLASH存儲器之類的非易失存儲器10,以及一個或多個微處理器或微控制器ll。編碼鏈路3是通過將第一設備1的編碼端口12與第二設備2的編碼端口13連接在一起而被建立的。編碼端口12、13都具有一個公母連接器,例如半公插頭和半母插座,由此每一個設備都可以插入另一個設備。該設備還具有與微處理器H耦合的USB或類似端口14,可充電電池組15以及電源電路16。電阻器17(或是放射源之類的其它噪聲生成設備)產生噪聲信號,該信號被饋送到放大器18和比較器19,所述放大器和比較器則產生一個饋送到微處理器11的數字比特流。濾波器20確保到達比較器的噪聲信號帶寬的變化相對于計時輸出的比特流而言更為頻繁而且時鐘定時鎖存的操作將會很快。此外,USB端口14還與微處理器11相連,并且從USB端口14獲取的電能經由電源電路16而被饋送到可充電電池15。在將USB端口14與有效USB端口相連的任何時間,操作均來源于USB電源,并且電池15將被充電。碼表生成為了產生碼表,設備l、2將會借助公母編碼端口12、13插在一起,并且電能是來自可充電電池的。經由編碼端口的連接將被識別,并且這兩個設備將會進入相互通信的時段,從而確定哪些過程是得到許可的。由此,在將兩個設備連接在一起以及隨后執行如下所述的驗證階段的時候,如果所產生的是許可狀態,那么這兩個設備可以開始配對產生碼表。對微處理器11來說,它會依照所具有的是并行接口還是串行接口而通過以下兩種備選方法之一與存儲器10相連。對并行接口來說,微處理器11將會產生地址總線和數據總線,其中地址總線是用以選擇存儲器中的哪個字或字節將被存取的存儲器10的輸入,而數據總線寬度則可以是8比特(字節)或16比特(字節)。數據總線可用于向將被寫入的存儲器提供數據字節或數據字,此外它也可以接收先前建立總線以及操作讀取和輸出控制線路而存儲的字節或字,其中所述讀取和輸出控制線路同樣是由微處理器驅動的。對串行接口、例如SPI標準或I2C標準來說,數據是使用時鐘串行發送的。在SPI中,每個存儲器設備都需要微處理器11為其產生"芯片使能"信號,由此,如果幾個存儲器設備共享總線連接,那么一次只有一個設備啟用和有效。在I2C中,設備地址是通過在其地址管腳上選擇邏輯高和低(由此單個設備將會"知道"其地址)來設置的,并且用以設置有效設備的地址選擇處理借助的是在串行接口上發送的地址選擇編碼。當存儲器10是FLASH存儲器設備時,上述兩種方法都是適用的。此外,該方案還具有很多其它的細節方面的變化,以及很多其它的非易失存儲器類型。在所有這些內容中,物理設備被認為是存儲器"映射"的一部分,在該映射中存在一個有效地址范圍(如果存儲器編址不鄰接,則是多個范圍),該范圍是在微處理器ll中編碼的,此外這個范圍也可以通過在存儲器范圍中執行試驗性的寫入處理和讀取處理來發現。優選地,成對的每個設備具有多個存儲器,但是不必然具有相同數量的存儲器。當前設備的存儲器尺寸可以大多幾個千兆字節,未來的設備可以提供更大的尺寸。將會使用幾十個千字節(遠遠小于最小的目前的存儲設備)。每個微處理器11都保存了一個或多個存儲器指針。當設備有效時,這些存儲器指針是寄存器中保持的值,在斷電時,這些存儲器指針則保存在非易失存儲器10中。一般來說,設備可以通過保留存儲器10的頂端來保存存儲器指針。設想這樣一種情形,其中設備是全新設備并且尚未生成安全碼。由此,每個設備的所有存儲器空間(或是達到較小容量的設備的限度)都有必要寫入。在操作中,通過在經由編碼鏈路3的通信中實施"握手"操作,可以確定這兩個設備都準備開始執行處理,并且這個操作會將這兩個設備中的存儲器指針設置成指向存儲器10的底部。現在,每個設備都會將其噪聲生成器17和比較器19設置為運行狀態,并且會將這個比特流時鐘定時在寄存器中,以便產生寫入存儲器10的字節或字。如果有必要寫入相同的碼的拷貝,則意味著需要以某種方式組合這些比特流,這樣一來,這兩個設備會在特定地址位置具有相同的拷貝。目前有很多方式可以用以實現該目的這種組合不但可以處于字節或字的等級,而且還可以處于塊中,如果每一個設備都包含了一種圖案或算法,那么該組合還可以跨越整個地址空間。原則上,由于只涉及兩個設備,并且不具有與外界相連的連接或是在設備內部運行的允許產生第三個拷貝的其它處理,因此,如果由某一個對其操作負責的人來嚴格監視并控制碼生成操作,那么該處理是完全安全的。通過提供良好的"電磁"屏蔽,可以使來自設備操作的寄生電磁輻射足夠低,由此很難或者根本無法執行無接觸的"竊聽"。編碼安全性措施身份檢查每個設備都具有自身作為微處理器11中的程序或校準碼的一部分的唯一標識碼,此外還具有某些其它用以規定許可操作的碼。在最安全的實施例中,設備是配對制造的,由此它們將會在微處理器11中攜帶"硬編碼"(最安全的是在制造設備時使用不可逆的"一次性"校準寫序列)以及與之配對的設備的身份。這樣做能使設備相互檢査身份,如果不匹配,那么每一個微處理器中的程序將會關閉其它操作。該身份檢查過程可以采用安全方式進行舉例來說,所述碼可以具有一個"公共"部分,并且該部分是一個非常大的數字,它可以由設備隨意顯示、以便標識其自身。此外,其它的一個或多個隱藏碼也是可以存在的,并且設備可以對其進行比較,由此輪流交換逐個比特,并且可以將接收比特與預期拷貝相比較。如果其在任何交換中均未接收到預期比特,那么這些設備將會停機并且不再顯示任何內容(例如在揭示過多代碼之前執行一個使之確定應該停機的很高統計等級的過程)。只有在將所述配對的兩半帶到一起的環境下,全部的碼才會交換。其它的過程同樣也是可行的。物理安全特征盡管如此,由于人類干預所導致的安全性損害始終是可能發生的。在一個等級中,可以存取設備l、2之一內部的人始終可以在物理上移除存儲器10,并且可以在其它預防措施(在下文中描述)均未生效的情況下讀取存儲器10。由此,在物理級別,每個設備l、2都具有一個顯式篡改部件(例如高安全性箔帶),并且這些設備將會采用如下方式而被制造成是篡改驗證的(例如借助物理連接)。圖3和4是從其中一個設備1的左手和右手側獲取的示意圖。該設備包括在一個在上半部分21和下半部分22中形成的外殼。在圖3中示意性顯示了插頭35和插座35(這二者共同構成了公母編碼端口12),在圖4中則顯示了USB端口14。外殼的兩半是用注塑塑料或是高精度金屬鑄件制成的。如果發生斷裂,那么這種外殼實際上是無法在不被發覺的情況下重新制造的。由此,要想達到很高的安全性,顯而易見的做法是觀察是否以物理損壞外殼的方式進行了存取。外殼的兩半由螺絲或夾具(未顯示)保持在一起,由此可以通過存取設備內部來進行修理或維護。在外殼左手和右手側的外殼兩半之間的接頭上綁有高安全性的磁帶條23(舉例來說,該磁帶條可以包含用全息圖案壓紋的金屬化塑料膜片)。該條帶是使用粘合劑粘附的,這樣則需要將所述磁帶條撕開,而不是使之無法粘附到主體。結合撕裂的必要性和圖案唯一性,他人幾乎無法在不被察覺的情況下破壞條帶23。這里的一個備選或附加特征是添加某種電子特性活躍的裝置。舉例來說,在這里較為簡單的是引入那些用以檢測外殼是否開啟的開關或傳感器(物理、光學或磁性)。圖5是通過貫穿設備得到的示意性截面圖,如圖所示,印刷電路板(PCB)24帶有傳感器25(在圖2中同樣顯示了該傳感器),該傳感器將會檢測設備何時開啟,并且將會促使微處理器11設置一個可以稍后將所述開啟情形告知用戶以及可以可選地銷毀或擾亂碼或指針的標記。現代的電子設備封裝技術自身愈發地為嘗試使用的人們造成了相當大的難度。技術人員甚至可以移除傳統的小外形封裝。但是,球柵陣列(BallGridArmy)設備需要非常專業的設備,事實上,某些封裝類型甚至是專家也無法移除的。在極端情況下,設備可以通過使用金連接線而被焊接到芯片級印刷電路板或基底。由此,在圖5的優選實施例中,微處理器11(以及可選的是圖2的其它電子元件)是用球柵陣列技術或是在焊接到PCB24的芯片級26上使用金線(未顯示)實現的。對最終得到并且有可能最為有用的安全部件來說,該部件使得外殼上半部分21(以及可選地制造下半部分22)的外殼在透光塑料外部,此外,該部件也可以是用在芯片26上具有相同位置的窗口制成的。如圖5和6所示,具有安全圖案的箔條27粘貼在PCB24和芯片26上的恰當位置。由此,通過對條帶27實施無法挽回的損壞所導致的物理損害將是顯而易見的。映射在這里還有一種可能,那就是某些人可以構造一個中間的公母連接器,并且由此在生成代碼的時候讀取所述代碼。就這種可能性而言,通過采用經由編碼鏈路3拷貝比特流的手段,可以提供與之對抗的高度安全性。很明顯,在任何一個方向,需要經過編碼鏈路3的都只是一半的安全代碼。在最簡單的形式中,設備1可以產生用于偶數地址的字節,設備2則可以產生用于奇數地址的字節。但是,對該處理來說,由于這些字節是以已知順序出現的,并且由此獲取所有代碼的第三拷貝是非常簡單的,因此,這種處理提供的安全性將會很低或者完全沒有安全性。但是,如果設備l、2是配對或配套制造的,那么它們可以具有保存在內部的映射(該映射可以是數字表、編碼算法或是其組合),當在存儲器中的隨機化位置放置產生并經由接口傳送的隨機碼時,這種映射將會有效,其中該隨機化處理是所述配對或集合共有的,但是在所述配對和配套之間則存在差別。由于每個字節或字都被寫入到有效存儲器指針規定的地址,因此,該處理可以被視為是存儲器指針隨機化處理。該處理意味著經由編碼鏈路3傳送的數字與將要從存儲器中讀出的碼表幾乎毫無關聯,但這兩個碼表卻是相同的。在下文中給出的是該處理的一個處理實例。表1顯示的是由每個設備保持的映射。表1<table>tableseeoriginaldocumentpage11</column></row><table>由此,設備A與設備B之間的數據流將會如下從A到B的數據流D!ab,D2AB,D3AB,......,D從B到A的數據流D,ba,D2BA,D3BA,......,D]其中DiAB是從設備A傳送到設備B的第i個數據比特,并且DiBA是從設備B傳送到設備A的第i個數據比特。由此,第一個數據字節是從D,b,D2AB,D3AB,D4AB(其中包括第一數據字節的偶數比特2、4、6、8)以及D,ba,D2BA,D3BA,D4BA(其中包括第一數據字節的奇數比特)中構建的。當在每個設備中構建了第一數據字節之后。該數據字節將被寫入存儲器位置Pt。然后,該處理將會通過使用存儲器位置P2、P3等等而為第二、第三字節等等重復執行。可以看出的是,寄存器值是穩定遞增的,但是存儲每一個后續隨機碼的位置相互之間則會因為地址隨機化處理而關聯較少或者沒有關聯。碼表改寫在每個塊結束時,兩個處理器可以產生并且交換校驗和數據。該校驗和可以被構造成確保在所述碼表相同方面具有很高的統計確定性,但卻不會揭示任何關于所述表自身的統計有效性的信息。如上所述,在兩個或多個設備中存儲了兩個或多個相同碼表。一旦將其從對方中拔出,那么這些設備可被帶到不同位置,并且可以采用如下方式使用。在所有不同的使用類型中,操作的基本模式是相同的,這些模式固有的是在本部分中論述的另一個"碼表改寫"安全性特征。如上所述,微處理器11操作并存儲一個或多個存儲器指針。其中所述多個存儲器指針的用途稍后將被描述,并且由此可以依照單個存儲器指針來描述通常情況。緊接在編碼操作之后,對配對設備中的兩個設備或是配套設備中的全部設備來說,所有這些設備中的指針都會在存儲器映射中被設置成一個公共指針。假設由于在存儲器中持續向上遞增而用盡了這些碼,那么在通常情況下,所使用的第一個碼是駐留在存儲器底部的,由此這個公共指針僅僅是存儲器中的最低地址,例如00000000H(用十六進制記數)。下文描述的相同原理同樣可以采用等價方式應用于不同的存儲器編址方案。由此,在編碼操作末端,存儲器指針將會指向將要使用的下一個隨機碼。該存儲器指針被認為是公共信息,并且并未對其采取安全措施。由此,如果某個設備現在經由USB電纜與計算機相連,那么在設置了該存儲器指針的任何一個方向都有可能存在開放式交換,在很多情況下,運行在計算機中的程序可以改變該存儲器指針的值,以便指向其它位置。但是,這里的一個系統規則是只要存在要求釋放微處理器中的存儲器指針中設置的當前值指向的隨機數的請求,則將其提取并傳送到計算機,但是存儲器內部的位置將會立即用來自隨機數生成器的隨機數改寫,并且存儲器指針將會立即遞增(或以其它方式改變),以便指向表中將要使用的下一個隨機代碼。由于該數字只能經由USB(或其它)通信端口傳送一次,因此它無法在未察覺的情況下被竊取。某些不恰當取出設備并且讀取碼表的人有可能獲取碼表,但是該碼表會在設備中被立即改寫。即使"竊賊"將存儲器指針返回到初始位置,但是這種盜竊也仍舊可被檢測,這是因為所述碼現在是不與配對設備中的碼匹配的。這種"只能一次讀取"的特征是非常有效的,因為它確保了所有表格竊取有效都必定會被發現,但是它們無法在發生竊取有效時或是在接近其發生的時間幫助檢測竊取行為。當然,所有這些檢測全都依賴于由合法用戶操作的安全過程,如果設備從未脫離合法用戶控制,那么是不會發生安全性損害的。如下所述,通過添加附加特征,還可以為其提供幫助。多個存儲器指針通過使用多個存儲器指針,可以在操作中提供更高的靈活性,在這里描述了多個用以例證此用途的方案。應該理解的是,在任何時間,只有一個存儲器指針是有效的,由此術語"多個存儲器指針"實際是指保存在非易失存儲器中的一個以上的值的拷貝,并且在任何時間只有一個拷貝是有效的。第一使用實例是兩個用戶使用一對設備來執行編碼,由此保護文檔安全性。對經過編碼的文檔來說,該文檔可以借助不同手段發送(例如一方借助電子郵件,另一方借助于郵寄軟盤),由此其生成和到達順序未必相同。但是,存儲器指針是公共信息,并且文檔發送方由此會將其發送給接收方。如果接收方無順序地獲取該信息,那么他/她或其使用的計算機程序將會發現接收到的第一個文檔需要一個處于當前位置之前的指針,以便讀取該文檔。由此,計算機程序可以記錄當前的存儲器指針位置,以便在以后將其用作書簽,然后,該程序會將有效存儲器指針移動到文檔需要的值,并且隨后可以對該值執行正確解碼。這樣做將會在接收方存儲器中把解碼第一編碼文檔所需要的隨機碼表保持成與其被接收時相同。很明顯,多個書簽值也是可以使用的。在第二實例中,設想一個此類設備集合。在通常情況下,并非所有文檔傳送或授權都是結合所述集合中的所有設備持有者進行的,在產生該表時,其它任何持有者的活動量并不是已知的,并且總的碼容量將會極大地超出需要。由此,每個用戶都可以在與對方設備持有者協作的情況下分配總碼表中的某些塊,由此將會存在分配給每個信息發送方的存儲器指針和塊在這種情況下,每個成員都能與對方進行通信,而不需要約定其在發起信息時使用的存儲塊,而用以對發送方消息解碼所需要的塊也會保持不用于其它用途。密碼在每個設備1、2中都保存了一個需要用戶編寫和持有為保密的簡單密碼。同樣,如果非法用戶獲得該密碼,那么這將是一個可欺騙特征。校驗和這里的一個有效特征是允許用戶在任何時間請求獲取塊校驗和列表或是整個存儲器的主校驗和。應該指出的是,在這里使用了術語"校驗和"來指示任何算術處理結果,這些處理將會讀取所有"隨機"碼表的元素值或者是碼表中的特定塊,其中某個塊的校驗和是所述塊的簽名特性,并且其在統計方面與為不同內容的另一個塊所產生的校驗和存在很大差別,由此它是一個關于所述塊是否保持不變及其是否不同于另一個塊的可靠指示,并且這些校驗和并未揭示任何對所述塊而言有意義的內容。某些具有校驗和算法以及用于塊的校驗和的個人必須在計算機上耗費大量的時間,以便通過使用了校驗和作為測試的試驗和差錯來嘗試構造隨機碼塊。如果用戶知道校驗和保持不變,并且如果所述代碼塊己被不正確讀取,那么一次性讀取特征將會改變校驗和,這樣將會提供很高的安全性。再編碼校驗和特征還可以用于縮短再編碼時間。現在,大容量存儲器(FLASH)非常廉價,由此在成本效益合算的情況下可以在這些設備中實施很大的塊,對用戶來說,他們當然希望具有最大的塊。但是,大多數人都會例行地以很低速率使用完這些代碼,由此在出現使用設備配對來重新編碼的時機時,這時很有可能不會使用所有碼表。從存儲器頂端開始,通過傳送和比較這些校驗和,可以很簡單地確定已經使用的數量,并且可以確定留下的什么內容是安全的。然后,設備只需要設置從碼空間底部到舊碼仍舊適當的位置的再編碼。編碼之后以下部分描述的是可在上述編碼步驟之后使用的不同應用以及附加安全措施。一次性填充作為配對設備制造的一對設備將會提供很高的安全等級,除非安全性受到物理損害,否則使用"一次性填充"編碼的配對擁有者可以完全確保期間發送的消息通信的安全。在圖8中顯示了關于這種安全通信的一個實例。第一設備1與第一計算機30相耦合,該計算機使用碼表的一部分作為秘鑰來編碼一個消息。然后,在第一設備中將會改寫這個秘鑰。編碼的消息是經由通信鏈路31傳送到第二計算機32,其中該消息是使用保存在第二設備上的相同秘鑰解碼的。然后,第二設備中的秘鑰將被改寫。金融交易和可信伙伴通常,我們需要的是任意兩方之間的通信,以及許可交易和付費的能力。由此,一種用于普通大眾的可接受安全過程是配對中的一個設備為可信伙伴持有,例如銀行。支付和其它金融交易是可以結合銀行自身進行,但是如果銀行使用并與預定通信接收方的"可信伙伴"保持了安全通信,那么它也允許安全通信。然后,這個第二可信伙伴可以使用相同原理以及使用接收方的配對碼表來向接收方傳送通信。作為另一個特征,在一次性可編程碼或是處理器內部的空間中可以放置很長的設備標識號,并且作為需要這些標識碼的這些設備的操作碼的一部分而應用和執行的規則是這些標識號都是作為所有通信或授權的報頭發送的。在不會導致用戶隱私直接喪失的同時,該處理還能使授權機構輕易認定可疑通信,以及使用其它手段來定位通信方。這種"長編號"標識可以從"稀疏"集合中獲取,其中該集合使用的是所有可能編號中的極少編號,并且所發布的標識碼列表可以在制造時被提供給國家政府。由此,個人或未經承認的制造商將無法選擇那些未被認定為非授權的碼。當然,偷竊和使用現有代碼是可能的,但是其應用卻非常少,這是因為傳輸仍舊是可以識別的,而被物理竊取的設備的代碼則會從授權列表中移除。在沒有這種代碼的情況下,傳輸同樣會被很快識別,并且目前可能在任何情況下由理解技術的人實施。此外,如果編碼設備具有兩個不同部分,那么它將會具有很大優勢,這是因為在需要之前,所有的碼都是以一次性可讀取的形式保持的,在被傳送到標準的存儲媒體的時候,所述碼是無法被非授權用戶使用的。由此,對處于機架中并且全都通過多端口通信網絡相連的銀行分離配對設備來說,在與自動讀取相結合的情況下,這些設備將會允許銀行享有對抗盜竊的高安全等級。此外還可以想到,大型可信機構同樣具有讀取器或接口,其中模擬配對中的其它設備的端口以及碼序列實際上是以常規方式保存在計算機上的。這種碼可以在金融交易中以多種方式使用,但在下文中給出的并不是窮舉性列舉。金融交易中的電子簽名首先,所述碼可以只用作電子簽名,以便為某個常規付費裝置提供授權。在最簡單的零售實例中,用戶設備會將其列表中的某個碼及其存儲器指針值傳遞到"銷售終端點"或類似設備。這樣做會將所述碼上傳至持有用戶帳戶的銀行,此外還會傳送所述碼列表的第二拷貝。對合法交易來說,銀行將會認定匹配,由此批準所述購買有效。在以這種簡單交易作為付費方式基礎的同時,其它的碼傳送處理同樣可以執行,從而提高安全性。首先,所述碼可以從銀行傳送到用戶,以便核實商家pos終端確實連通到銀行。在將"付費驗證"碼從用戶傳送到銀行并且許可了所述碼之后,銀行可以使用另一個碼來做出響應(它只是可供用戶識別的碼),并且銀行可以使用另一個碼集合來對涉及該用戶的消息進行編碼(在通信編碼模式中),其中所述另一個碼集合將會向用戶核對確實進行所述交易(并且該通信不可能由第三方錯誤產生)。銀行和商家還可以共享一個碼集合,這個碼集合可以由銀行使用,以便核實該交易確實合法。很明顯,在這里可以使用非常類似的手段,以便批準其它形式的交易、金融或其它有效。盡管實施了如上所述的碼交換,但是pos設備的犯罪用戶仍舊可以使用某些手段來欺騙用戶舉個例子,在餐廳中可以想象某些用戶認為其已借助所述手段支付了用餐費用,但是該用戶未必支付了所述用餐費用,而且POS還有可能篡改,以使碼序列轉而授權更大交易,例如貨幣轉賬。現在將對另一種增強方式進行描述,其中所述增強方式會在阻止這種欺詐時生效。在這種增強方式中,設備1、2還配備了可視顯示設備,以及少量輸入按鍵或是其它形式的輸入設備。在通信模式中,附加安全特征使用的是所述設備及其在銀行的配對設備,此外還可以使用可信的第三方。例如,商家或POS可以負責將交易細節傳送到銀行,銀行則可以使用編碼模式來反向發送這些細節,從而將其顯示在用戶設備上,由此用戶可以查看所提出的交易。由于只有用戶和銀行共享了允許該通信的碼表,因此任何針對所述通信的篡改都會失敗。在這里可以實施大量的傳輸排列方式,在下文中將會給出一個極大增強了安全性的交換實例。1)用戶使用公共信息來向銀行標識其自身2)用戶發送其列表上的下一個碼及其當前的存儲器指針值。這二者應該是匹配的,但是舉例來說,如果存在先前丟失的交易或傳輸路由延遲,那么銀行可被允許從所給出的存儲器指針位置開始工作,而不是指針最后所在的位置(他必須用書簽標記該位置)。3)銀行反向發送下一個碼,以便核實它確實在線以及在通信線路上沒有可察覺的安全性損壞。4)然后,商家或POS以"開放"形式向銀行發送交易細節(數額,細節)。5)銀行使用另一個顯示其在線的碼來進行回復,然后使用編碼模式回復一個關于用戶設備的消息,該消息可以重放將要實施的交易。6)然后,用戶可以發送第一簽名碼以及一個消息,由此以編碼形式返回關于所進行的交易的確認。7)然后,銀行可以使用最終碼以及確認每件事物都被交易的編碼消息來回復。可以看出的是,在本交易中,可視顯示設備是用戶設備的一個固有部分,該可視顯示設備的用途是實現更高安全等級,這是因為商家無法篡改通過編碼模式發送的數據,此外,通過將可視與用戶設備進行物理集成,可以確保因為出錯而重新確認了保證消息的用戶不會遭遇到欺騙性的替換處理。由此可以看出,如果用戶將無顯示器的設備與另一個可信設備耦合,例如用戶的移動電話或PDA,那么這種安全等級同樣可以用無可視顯示器的設備獲取。電子現金在某些環境中,例如在用戶不具有或者不希望具有銀行業務或信用業務時,或者在用戶希望具有物理現金提供的匿名性時,現金的電子模擬物是非常有用的。如果將很長的數字用作授權碼,那么通常可以借助計算機和電子技術一般化管理的數字有可能很長,由此在為被提出的系統估計的整個使用期限中,相同長度的長碼出現兩次的可能性是很低的。此外,由于這些數字確實是隨機的,并且任何兩個數字之間的"平均"間隔都很大,因此關于其中一個數字的指示是無法給出關于另一個數字的知識的線索的。由此,持有匹配碼列表并且從遠端方接收到這個碼及其相應的存儲器指針的人將會知道這個碼確實是由發送方設備發送的。這些數字具有這些屬性所需要的大小是以相對簡單的方式估計的。世界人口的數量級大約是10"0,并且一年的人均收入大約小于104美元。分幣面值將會需要另一個大小為100的倍數,并且用于一千年的操作需要另一個倍數1000。由此,在數字階數為109的情況下,世界上的所有貿易可以通過使用分幣而在1000年中完成。而這在二進制表示中僅僅比64比特稍小一點。通過使用兩倍長度的數字,也就是128比特或16字節,可以提出極度過剩的碼,但是電子系統的長度卻很平常明確使用128個比特僅僅是作為實例,并不是對其進行規定。設備的存儲用途以及電子現金用途可以采用多種方式設想。用戶和"可信伙伴"可以首先產生隨機長碼數字的兩個拷貝。然后,用戶首先前往可信伙伴那里,并且可以通過幣值選項來購買一批現金(達到一定數值),這些幣值將會保存在另一部分金錢中,并且會與長數字碼保持某種已知的關聯,由此每一個碼都具有一個幣值。對用戶和銀行來說,碼與其幣值之間的關系都是己知的。參考圖9,希望購物的用戶將設備1插入或者以其它方式連接到銷售點(POS)設備40,并且將購物值輸入到銷售點設備40中。然后,設備1將會采用算術方式來選擇一組長數字碼,并且這些長數字碼合計將會達到正確數額。隨后,設備1會將這些碼傳送到POS設備40,并且其中將會插入發行銀行的標識符以及用戶的標識符。現在,POS40知道通過與哪個銀行進行聯系來獲取付費許可,并且經由通信鏈路42而將這些長數字碼傳送到銀行計算機41。應該指出的是,如果幣值是在常見的lc、2c、4c、10、20c、50c、$1、$2、$5......的序列中上升的,那么,即使處于很大的數值范圍,也很少超出十個這種構成任何制定金額的電子"硬幣"。這時,POS設備40并不需要知道幣值。但是,銀行計算機41必須知道幣值,由此,當在用戶列表中查找這些碼時,它可以重建所要收取的費用,并且將其反向傳送到POS設備40。很明顯,這兩個數額應該是匹配的。然后,銀行計算機41可以將該數額貸記到商家帳戶中,并且商家和銀行可以記錄所述碼,以便用于審計,但是也可以將其標記成失效。上述說明通過假設商家和用戶具有相同銀行而對情況進行簡化,但是非常明顯,發行電子現金的銀行也可以在別的時間向商家帳戶執行正常的銀行轉賬。在這種交易中,用戶的標識是為商家和銀行所知的。但是也存在著這樣的情況,其中買家希望匿名使用現金。這種處理可以結合這種技術并以一種略微不同的方式實現。在這里,發行銀行將會獲取結合用戶生成的碼集合,并將其傳送到一個主表中,而在這個主表中則保存了來自眾多用戶的所有此類長碼。在這個表中,一旦銀行不需要知道這些長碼的"所有者",并且如果用戶在這方面是信任銀行的,那么匿名將是可以實現的。然后,銀行計算機41必須將這些長碼排序成數字順序,并且將其置入一個表中,在這個表中,每一個長碼都與為其指定的幣值相關聯(在這里必須理解,很長的數字比較和移動起來相對容易,由此標準排序算法將會是有效的)。但是,兩個相鄰數字之間的數值的差別將會是非常大的。當從POS設備40的商家那里接收到一組長數字碼時,銀行計算機41可以快速確定所提供的長碼是否處于表中,如果處于的話,則確定其貨幣幣值。在這里,一種有效的技術是二進制搜索算法。銀行計算機41首先查看表格中間的值,并且將其與所提供的數字相比較。如果所提供的數字小于被發現的數字,那么計算機將會査看表格下半部分的中間,如果較高的話,該計算機將會查看表格上半部分的中間。很明顯,這種處理可以重復執行,并且它只要相對較少的比較就能發現該數字或是最接近的數字。如果它發現了這個數字,那么這將是一種匹配,但是,如果它發現了兩個將所提供的碼的數值括在中間的相鄰數字,那么它確定沒有出現匹配,并且所提供的碼是無效的。然后,匹配的長數字碼條目可以從表格中移除,并且放置到一個簡單的審計追蹤序列中,以便顯示該現金值已被花費。本地區域信息系統在備選應用中,本發明可以在WO01/27897所描述的本地區域信息系統中實施。也就是說,本地區域信息系統包括一個基站網絡,其中每一個基站都具有用于存儲與本地區域相關的信息的存儲器,以及多個用戶設備,這些用戶設備從基站那里接收信息,并且將這些信息顯示給用戶。每一個基站以及與之無線通信的每一個設備(它可以是用戶設備或別的基站)都可以將"一次性"編碼處理應用于通信(使用這里描述的設備),以便降低通信被截取和理解的機會,此外還可以使用長碼模式作為用于交易的驗證處理,或是測試和保持通信鏈路的安全性。備選實施例設備集合在上述優選實施例中,設備是配對制造的。在備選實施例中,這些設備可以以授權集合的方式制造,由此,與保持一個許可配對設備的細節不同,它們將會保持一個關于此類設備的列表。一般的非配對碼設備與配對或配套制造所不同,在另一個備選實施例中,每一個設備都可以是一個一般的非配對碼設備(GUCD),其中該設備不與其它任何設備或是設備集合相關聯。在這種情況下,每一個GUCD都會被編碼,,以便有權與其它任何兼容設備一起工作。這種處理產生了附加的安全問題,這是因為有必要預見到GUCD將會被某些人執行反向編譯。由此,某些理解用于將隨機比特流映射到存儲器中的一般算法的人自己就能夠產生這種映射,并且由此獲取第三拷貝。他/她甚至能夠產生校驗和,并且將其與這兩個設備傳遞的校驗和相比較,以便確保第三拷貝是正確的。但是應該指出的是,這種安全性破壞等級只有在某些人非法地與編碼鏈路3建立了"間諜"連接的時候才有可能出現。對GUCD來說,它還具有商業方面的用途。如果將其用于某種協議,那么這種風險是不存在的。由此舉例來說,如果在由銀行或郵局之類的可信第三方持有共同編碼設備對中的一半設備的模式中使用GUCD,那么這種風險是不存在的。此外,如果通過確保正確操作而使安全階段可以出現,那么另一個選項也是可行的。兩個或更多GUCD可以制成一個"虛擬集合"。這些設備經由其編碼端口而被直接或是用特定適配器連接在一起,并且它們可以產生存儲一個唯一的比特定位映射或算法,以供未來使用,對該映射或算法來說,其在統計上是最不可能與任何其它集合結合使用的。對這種"虛擬"集合以及在制造時作為集合制造的集合來說,其間的唯一差別是這個比特定位處理將會保存在非易失存儲器(較為優選的同樣是FLASH存儲器頂端)中,并且無法利用將某些唯一性編碼成微處理器校準或ID空間的安全性較高的處理,而這種處理通常是"一次性可編程的"(采用保險絲方式)。應該指出的是,一個配對或一個集合來說,產生比特定位映射的這種"虛擬配對"編碼操作只需要發生一次。由此,可信第三方可以大量購買此類設備,并且根據需要將其編碼成配對或集合。很明顯,該操作可以由大型機構實施,以便達到更高的工作協議和安全等級,由此其風險與個人在所有環境中按慣例實施的碼生成操作相比將會相對較小。隨機數生成器在優選實施例中,每一個設備都具有一個隨機數生成器。但是在第一備選實施例中,只有一個設備可以具有隨機數生成器。在第二備選實施例中,沒有一個設備具有隨機數生成器。在這種情況下,隨機數生成器將會保持在第三設備中。USB電源供電在上述優選實施例中,編碼過程中的電源供電是借助電池15進行的。在圖IO所示的備選實施例中,在碼表的生成過程中,其中一個設備的USB端口14可以插入計算機50,以便得到這兩個設備電能。在這種模式中,計算機可以運行一個驅動器程序,其中該程序會借助顯示屏51來向用戶報告操作和選項。雖然USB大容量存儲設備作為計算機驅動器出現是很常見的,但這并不是標準的需要,對計算機而言,設備會將其自身標識成一個特定的新類型設備,而其自身的"驅動器"軟件包則需要在操作之前加載。USB端口的替換物在這里,USB標準是作為實例給出的,但是該設備也可以結合其它常見的串行計算機標準來工作,例如RS485、RS232、RS423、正EE1394(火線)乃至(但是并不方便)串行標準,例如PCMIA和"centronics,,打印機端口。對USB來說,依照其通信標準,并且由于USB經由接口而向以這種方式附著的設備供電,所述USB是非常便利的。如果使用了另一種接口,那么同樣需要一個電源。外部電池組在上述優選實施例中,電源供應是借助USB端口14或電池15進行的。在備選實施例中,這兩個設備之一或是所有這兩個設備可以具有用于外部電池組、市電電源或車載供電適配器的輸入,以便為所述配對供電。編碼鏈路在上述優選實施例中,編碼鏈路3是在專用編碼端口13、14之間建立的。在備選實施例中,編碼鏈路可以在USB端口14上使用允許其插在一起的適配器來建立。公/母編碼端口在另一個替換方式中,編碼端口既可以配對制造,也可以分兩種性別制造,由此公設備和母設備可以連接,以便進行編碼,而公和公以及母和母連接則是無法進行的。在這里是參考特別的例示實施例來描述本發明的。對本領域技術人員來說,在不脫離本發明范圍的情況下,某些替換和修改將是顯而易見的。例示實施例具有說明性意義,并且這些實施例并未限制本發明的范圍。網絡通信非常有利的是,本發明有助于在通信網絡中實施安全交易,其中舉例來說,所述網絡可以是在申請人的共同未決美國專利申請_中公開的通信網絡,該申請要求根據2005年4月11日提交的名為"ACommunicationNetwork,,的相應歐洲專利申請EP05252251.律師案巻號19143而享有優先權,并且該申請的全部內容和公開在這里全部引入作為參考。在共同未決美國專利申請_中描述的網絡能使實體在一個或多個節點充當數據內容的主機(本地緩存),多個節點形成一個簇,并且其中至少一個節點回程連接到因特網之類的網絡。對用戶來說,通過其常規的移動和手持無線設備(例如實施藍牙,WiFi802.ll協議),用戶可以開始將內容從一個節點或節點簇下載到用戶設備,或者也可以借助用戶設備來接收基于因特網的服務。在一個實施例中,用戶設備是在制造時供應的(也就是保存在可擦寫存儲器中),或者用戶設備也可以作為具有隨機碼列表的附加卡或附件(例如閃存卡、USB鑰匙、RFID、藍牙)來供應,其中舉例來說,所述隨機碼是大小約為1億的"很大的"數字(例如128數字代碼(基數10))。這些碼是由一個可被節點或網絡中的簇上的網絡服務器設備訪問驗證服務。該驗證服務保持了一個簽約用戶注冊表以及與用戶設備相關的隨機數列表。此外,與每一個用戶相關聯的還包括預定服務等級,其中該服務等級是用戶位網絡內部的事務預訂的。隨后,當用戶與網絡中的節點發起無線交易時,這個大數字碼將被無線傳送到訪問驗證服務的服務器那里,以便核實正在通信的用戶設備有權實施特定交易。該隨機碼既可以在后續通信中傳送,也可以在后續通信中被用作編碼密鑰。作為響應,服務器可以使用與設備以及設備擁有者(用戶)相關聯的每一個碼來核實特定設備。此外,在這里還會提供附加的交易授權處理,以便確保設備操作者確實是設備擁有者(或者至少是授權用戶)。這種進一步的驗證可以通過要求用戶輸入PIN(ID號碼)或是提供生物測定數據來實現,其中該數據可以用于核實用戶/設備是否有權與主機節點進行交易。在一個特定實施例中,大數字碼(或是其子集)可以保存在內置于(到處存在的)"UBI"卡的無源芯片中,而所述卡則被用于與主機進行交易。如果消費者希望購買產品或者從節點下載內容,那么它們可以簡單地按照正確順序按下卡上的數字鍵盤,以便通過最終驗證。對作為金融交易一部分的每一個交易來說,在這里將會為所述交易傳送隨機碼之一,并且在交易結束時將會從存儲器中刪除或移除所述隨機碼。一旦驗證完成,那么交易將會得到許可,并且所述采購將會以一種與先進適用的信用卡相似的方式而被從與消費者的UBI相關聯的安全金融帳戶中扣除。否則,所述碼將被用作密鑰,以便簽署具有數字簽名的付費指令。關于UBI卡結構的更多細節可以在上述共同未決的美國專利臨時申請_律師案巻號19143中找到。由于網絡自身有可能具有低可靠性的組件,例如與微波/RF頻率上的通信相適應的模擬信道,因此在這里將會強制確保以很高的可靠性、即極低的比特差錯率來安全傳送所述隨機碼的完整性(例如小于1/109)。由此,在所描述的實施例中,能夠在不可靠信道上傳遞128個數字碼的編碼將會是非常重要的。為了確保驗證和交易處理中的可靠通信,在這里可以使用若干種已有的聯網技術,并且這些技術是分組聯網領域的技術人員眾所周知的。為了確保正確的傳送以及隨機碼和驗證信息的完整性,將會使用確保傳送的通信協議(例如TCP或使其等價物)。通過使用這些類型或協議,所述隨機數和其它驗證信息既可以作為一個整體傳送,也可以作為分組重傳,直至傳送了所有這些信息為止。如果無法完整傳送信息,那么發送處理將會失敗,并且該處理可以根據需要重新開始。一旦成功接收到隨機數和驗證信息,那么將會使用附加的交易處理技術來確保完成了作為一個"工作單位"的恰當的端到端交易(例如借記與貸記匹配)。即使在高比特差錯率的無線連接上,這些技術也是很容易部署的,這是因為這里詳述的傳輸是在兩個或更多聯網設備之間進行的,并且其中每一個設備都能就分組的傳輸和接收而向發送和接收方做出應答。雖然在這里通過參考具體的實施例、特征和特性而對本發明進行了描述,但是應該想到的是,本發明并不局限于此,與之相反,本發明的效用可以擴展到其它的修改、變更、應用和實施例上,相應地,所有這些修改、變更、應用和實施例都被視為處于本發明的實質和范圍以內。權利要求1、一種通信方法,包括在第一設備中存儲一隨機碼;在第二設備中存儲該隨機碼;以及在后續通信中使用該隨機碼。2、根據權利要求1的方法,還包括驗證其中一個設備的身份;以及,如果該設備的身份與所存儲的身份匹配,則只在該設備中存儲所述隨機碼。3、根據前述任一權利要求的方法,其中所述后續通信包括從第一設備中讀取隨機碼;以及,響應于隨機碼讀取,自動改寫該隨機碼,由此所述第一設備中的隨機碼只能被讀取一次。4、根據前述任一權利要求的方法,還包括在所述第一設備中生成全部或部分所述隨機碼;以及將所述隨機碼從第一設備傳送至第二設備,以使在所述第一設備中生成的所述隨機碼能夠存儲在所述第二設備中。5、根據權利要求4的方法,還包括在所述第一設備中生成該隨機碼的第一部分;從所述第一設備將該隨機碼的第一部分傳送到第二設備,以使所述第一設備中生成的碼能夠存儲在所述第二設備中;在所述第二設備中生成所述隨機碼的第二部分;以及從第二設備將該隨機碼的第二部分傳送至第一設備,以使所述第二設備中生成的碼能夠存儲在所述第一設備中。6、根據前述任一權利要求的方法,還包括在所述第一設備和第二設備中存儲映射;生成多個隨機碼元;以及,在每個設備中將每個碼元保存在所述映射確定的存儲器位置。7、根據權利要求6的方法,其中所述映射直接標識所述存儲器位置。8、根據權利要求7的方法,其中所述映射是一種能夠計算存儲器位置的算法。9、根據前述任一權利要求的方法,還包括從第一設備存儲的隨機碼中生成第一校驗數據;從第二設備存儲的隨機碼中生成第二校驗數據;以及,比較所述第一和第二校驗數據。10、根據前述任一權利要求的方法,其中所述設備之一或所有這兩個設備是便攜式設備。11、根據前述任一權利要求的方法,其中所述后續通信包括下列步驟將存儲器位置指示符從第一設備傳送至第二設備;以及,從第二設備的存儲器位置獲取隨機碼元,其中該位置由接收到的存儲器位置指示符確定。12、一種設備,包括用于存儲隨機碼的存儲器;以及用于在后續通信中使用該隨機碼的處理器。13、根據權利要求12的設備,還包括具有一個或多個公插頭以及一個或多個母插座的公母連接器。14、根據權利要求12或13的設備,還包括隨機數生成器。15、根據權利要求12、13或14的設備,還包括通過一次性校準寫序列而被硬編碼到設備中的配對設備的身份。16、根據權利要求1215中任一權利要求的設備,還包括顯17、根據權利要求1216中任一權利要求的設備,還包括能夠表示設備的物理篡改的顯式篡改元件。18、根據權利要求1217中任一權利要求的設備,還包括用于感測針對所述設備的物理篡改的傳感器。19、一種實施安全通信的方法,包括以下步驟-a.傳送消息;b.接收與所述消息相對應的編碼響應,其中該編碼響應用編碼密鑰編碼;C.使用編碼密鑰來解碼編碼響應,以便產生解碼響應;C.驗證所述解碼響應,以及,如果所述解碼響應有效,則;d.傳送確認消息。20、根據權利要求19的方法,其中所述解碼響應包括在步驟a中傳送的消息拷貝。21、根據權利要求19或20的方法,其中確認消息是編碼消息。全文摘要一種用于通信的方法和設備,其中在該通信中使用了隨機碼。該方法包括將隨機碼保存在第一設備中(圖1,單位1);將該隨機碼保存在第二設備(圖2,單位2);以及在后續通信中使用該隨機碼。本發明可以在金融交易中使用。換言之,該隨機碼既可以用作密鑰來簽署帶有數字簽名的付費指令;也可以作為“虛擬現金”,在這種情況下,所述碼自身將會在各方之間傳送。本發明的另一個應用是借助“一次性填充”安全技術來傳送可信信息,在該技術中,其中是借助簡單的數字運算以及使用了隨機數列表來編碼符號的字符代碼的。文檔編號H04L9/00GK101208899SQ200680020850公開日2008年6月25日申請日期2006年4月11日優先權日2005年4月11日發明者伯納德·L·Jr.·巴羅,查理斯·埃里克·亨特,蒂莫西·理查德·克羅克申請人:萊斯特美通信有限公司