專利名稱:用于與個人計算機相連的數據安全加密方法和裝置的制作方法
技術領域:
本發明通常涉及加密和操作機密數據的方法和裝置,特別涉及從遠程個人計算機向主機發送加密數據的技術。
背景技術:
遠程(例如從家庭、辦公室或零售商店)實現金融交易的系統日益普遍。個人計算機的快速發展,特別是與調制解調器的結合,使消費者可以遠程完成帳單支付、商品購買、銀行業務和其它商業交易,從而無需親臨現場關心日常的商業事務。
現在已知的系統一般包括位于中央數據處理站點的主機,它與大量遠程個人計算機(PC)進行通信。當某人希望完成一筆金融交易時(例如通過信用卡帳號、借方帳戶、數字貨幣等訂貨和付帳),用戶借助PC的調制解調器在其PC與主機之間建立數據鏈路。在訂購合適的商品之后,用戶可以向帳號(例如信用卡帳號)鍵入與商品等值的錢款。隨后將購買需求從PC發送至主機,并由主機對交易予以確認。
由于加密數據發送的問題,現有系統在例如實時轉移資金方面存在局限。特別是實時資金轉移一般是利用自動提款機(ATM)完成的。在一般的ATM交易中,用戶在鍵盤上輸入帳號,或者將銀行卡插入ATM,ATM從銀行卡背面的磁條“讀取”帳戶信息。隨后,用戶在鍵盤上輸入個人身份證號(PIN)以使交易能進行下去。正確輸入與銀行卡特定相關的PIN大大減少了銀行卡的欺詐使用。但是由于現有發送加密數據(例如PIN)系統不能令人滿意,所以在將ATM方式推廣至家庭時遇到了問題。
特別是雖然加密PIN和其它機密數據與信息的技術都是人們所熟悉的,但是當前的銀行業務和其它金融行業規范仍然只是著眼于限制以非加密形式發送機密數據。在采用PC完成遠程商業交易的環境下,機密數據可以在PC上加密并隨后向主機發送加密數據。但是現有系統一般需要經連接PC的鍵盤輸入機密數據(例如PIN),由PC處理器控制加密過程。因此數據必需從鍵盤經連接鍵盤與PC機箱的物理纜線送至PC母板。隨后未加密的數據(即加密處理完成前的數據)在加密處理前或期間不得不駐留在母板上。據信,可以使用精密的電子“監聽”設備檢測到從用戶向鍵盤輸入數據時到完成加密時之間的機密數據。
因此需要一種克服現有技術缺陷的系統。
發明內容
本發明提供用于發送加密數據的方法和裝置,它克服了現有技術的缺點。
按照本發明的一個方面,發送加密數據的系統包括與遠程數據處理設備(例如桌面型PC、膝上型計算機)相連的主機,該設備包含鍵盤或其它合適的機構用于輸入機密數據。按照本發明第一實施例,遠程處理設備包含具有整個字母數字鍵盤的膝上型PC,加密模塊與膝上型PC的PS/2端口相連。按照第一實施例,加密模塊包括允許用戶向加密模塊直接輸入機密數據(例如PIN)的鍵盤或其它數據截獲裝置。加密模塊隨后對機密數據加密并經調制解調器向主機發送。這樣數據無需以未加密形式駐留在PC內;而且數據以加密形式從加密模塊發送至膝上型PC,從而減少了電子“監聽”設備截取未加密數據的危險。
按照本發明第二實施例,加密電路集成在鍵盤、鼠標或其它與桌面型、膝上型或其它PC相連的外設中,從而使機密數據在外設內作加密處理,并以加密形式送至PC并由PC操作。
按照本發明第三實施例,自包容的獨立交易模塊包含與之相連的一體化數據獲取模塊(例如鍵盤)的處理器,從而可以將機密數據輸入鍵盤并在單個一體化單元內加密,因此遠端鍵盤與加密處理電路之間無需發送纜線。
按照本發明的另一方面,加密模塊配置為除了與PC之外還與遠程計算機之間發送和/或接收機密數據。加密模塊也可以配備各種用于數據和信息輸入的外設,例如磁卡閱讀器、“智能卡”或集成電路卡(ICC)閱讀器、條形碼閱讀器、語音識別設備、掃描儀等。這樣在向PC發送和/或后續處理之前任何介質上的機密數據都可以由加密模塊獲取并加密,從而將加密數據被非法檢測的可能性減少到最低限度。
附圖的簡要說明以下結合附圖描述本發明,附圖中相同的部分采用相同的標號。
圖1為按照本發明的交易授權系統的框圖;圖2為具有集成加密模塊的PC的前視圖;圖3為一體化加密模塊的框圖;圖4和6-10為流程圖,示出了按照本發明的圖2中PC執行應用程序的操作過程;圖5是與圖4所示軟件相連的各種圖標顯示;圖11為圖2所示加密模塊的另一實施例;圖12為圖2中加密模塊的功能框圖;圖13為圖2加密模塊中實施的處理器的電路圖;圖14為圖2所示鍵盤的電路圖;圖15為本發明加密模塊中所用模擬開關的電路圖;圖16和17為磁條閱讀器的電路圖;圖18-20為與圖13處理器相連的各存儲區段的存儲映射圖;圖21-36為流程圖,它們示出了本發明加密模塊的各種功能特征;以及圖37-39為本發明各種實施例的框圖。
實施發明的較佳方式現在參見圖1,遠程交易系統100適合包含與一種或多種交易網絡接口的主機系統102,交易網絡例如有付帳網絡104、銀行系統網絡106以及各種其它網絡系統108(例如州彩票發售網絡、零售網絡、郵購網絡等)。遠程交易系統100進一步包含多個遠程數據處理終端110a-110n,例如家庭用戶使用的那種PC。遠程交易系統100好可以包含各種診斷和維護裝置,例如網絡發送測試系統112和網絡發送接收系統114,它們適于周期性地測試主機系統102的性能;以及審檢系統116,它允許系統100的操作者周期性地監視主機102內駐留的數據和信息。
如下所述,各種網絡104-108適于由欲與各類消費者通過主機102進行商務和/或交易活動的獨立單位操作,例如PC110A-110N一般設置在消費者家中、辦公室、零售點等處。
按照本發明的較佳實施例,可以在各PC110上輸入包含機密數據的數據并以下述方式加密。隨后加密的數據沿適當的數據鏈路118從PC發送至主機102。按照本發明的一個方面,數據鏈路118可以包含發送纜線(例如電話線、光纖等)或者可以包含無線鏈路,例如微波、射頻或其它合適的數據發送介質。
現在參見圖2,按照本發明的較佳實施例,示例性的PC110包含顯示屏202、特別是內置有與PC110有關的計算電路的機箱204、經連接器210與機箱204相連的鍵盤206和用于執行交互程序的鼠標208。在本發明第一較佳實施例中,加密模塊214可以連接器210串聯插入在與鍵盤206與機箱204之間。在所示實施例中,模塊214適于包含模塊連接器212,它允許方便地安裝模塊214。特別是,在PC普通操作期間連接210的遠端216一般被插入機箱204上的匹配連接器(未畫出)。當需要安裝模塊214時,連接器端216可以簡單地從機箱204拆除,而連接器212的遠端218在同一位置上與機箱204相連;連接器210的連接器端216適合以下述方式與模塊214相連,就像遠端216與機箱204相連。這樣,模塊214可以方便地插入鍵盤206與機箱204之間而無需打開機箱204,這對計算機用戶來說更容易接受。
在本發明另一實施例中,加密電路與上述結合模塊214描述的外設可以在制造或更新時方便地加入鍵盤,因此模塊214無需鍵盤部分。
參見圖3,進一步的實施例包含自含的一體化模塊300,該模塊包括屏幕306、計算機304、鍵盤302、調制解調器連接308和將模塊300與各種優選設備接口的附屬連接器310,例如條形碼閱讀器、智能卡閱讀機、磁條閱讀機等。按照圖3的實施例只有實現上述功能的單元需要植入模塊300,因此大大節省了圖2所示PC實施例的成本。但是對于已經擁有PC的消費者而言,圖2所示實施例可能更為合適,因為通過將模塊植入PC110可以使普通PC方便地適合于本發明。
參見圖4-10,以下將描述按照本發明的遠程交易應用程序。
特別是參見圖4,可以利用(WINDOWS)格式(它向用戶提供各種菜單選擇)執行合適的應用程序。本領域內技術人員將會認識到,用戶可以利用鍵盤206或鼠標208(參見圖2)選擇各種選項。雖然這里借助WINDOWS實施例描述了本發明的應用程序,但是也可以在任何方便的應用環境下實現本發明。
繼續參見圖4,通過激活PC110的WINDOWS能力(步驟402),用戶可以通過雙擊鼠標208(步驟404)選擇多項菜單選項406-416中的一項。特別是參見圖5,用戶可以選擇對應圖標506的銀行操作、圖標508表示的付帳操作408、圖標510表示的鄰近購物操作、圖標512表示的郵購操作412、圖標514表示的州彩票操作414、對應圖標516的文件操作416、對應圖標518的PC設置操作418、對應圖標520的硬件測試操作420、對應圖標522的顯示時間操作422、或對應圖標524的輔導操作424。雖然圖5所示的圖標被用于所示的實施例,但是在本發明中可以采用任何合適的圖標或機制選擇各種程序選項。而且圖4和5中的菜單選項僅僅是示例性質的;圖中菜單選項與未列出的菜單選項的各種組合也可以為本發明采用。
繼續參見圖4,輔導操作424適合解釋各種菜單選項和解釋各選項的使用。顯示時間選項422可以任意格式顯示系統時間。適當配置的硬件測試操作420允許用戶驗證各種硬件部件與本發明所用較佳設備的整體性。
設置操作418允許用戶配置與系統和方法操作相關的各種參數。
文件操作416允許用戶操作本發明中所用的各種數據結構。
彩票操作414允許用戶根據彩票銷售的規定,從居住的州或者其它州或市借助調制解調器購買彩票。
郵購操作412可以完成從PC110訂購商品的程序,例如從郵購目錄。在這方面,模塊214(參見圖2)或者機箱204可以配備條形碼閱讀器從而通過掃描商品的條形碼自動選擇商品。在購物操作410中也可以采用同樣的條形碼技術,它允許用戶通過向PC110輸入訂購條目訂購各種產品(例如小百貨)。
按照本發明的進一步方面,可以下述方式利用條形碼閱讀器來實現鄰近購物操作410。
各種消費品一般都配置UPC標簽、條形碼或其它表示特定商品的標識。條形碼閱讀器組件(未畫出)(例如手持信息讀出器)可被消費者用來把消費者想購買的產品輸入到與條形碼閱讀器相關的存儲器陣列中。在消費者預購買產品積累一定時段之后,存儲在條形碼閱讀器存儲器內的產品數字可以在操作期間(例如購物操作410)“轉儲”至PC110的適當存儲器位置。這樣,消費者可以在一定時段內選擇購買的商品,這類似于構造貨品清單。當希望購買這些商品項時,累計清單的標識經數據鏈路118(參見圖1)發送至主機102,在那里貨品網絡108檢索數據并配送消費者的貨品。如果需要,與貨品網絡108協同的貨品店可以向消費者住所發送貨品,尤其是貨品價款根據付帳操作408或銀行操作406的原理的支付將在下面詳述。
現在參見圖4和6,銀行操作406允許用戶選擇一項或多項銀行選項,例如基金轉讓操作602和帳戶查詢操作604或者智能卡基金轉讓606。此外,銀行操作406也允許用戶退出主菜單400(步驟608)。
現在參見圖6和7,基金轉讓操作602可以選擇特定的銀行帳戶(步驟610),例如儲蓄帳戶、支票帳戶、貨幣市場帳戶等。當選定用戶借方的帳戶時,系統提示用戶輸入轉移支付的數量(步驟702),例如借助鍵盤206將數量輸入PC110(704)。如果在預設時間之后未輸入數量或者輸入數量不正確(例如“零”、負數或超過預設限額的數額),則系統可重新開始先前處理路徑(步驟706)。如果用戶輸入的支付或轉讓基金的數額正確,則提示用戶選擇支付方式(步驟708),這樣交易請求從PC110發送至模塊214(步驟710),以下將對此詳述。
根據本發明的一個方面,可能需要允許特殊的交易,例如牽涉到只是在滿足一定限定條件后才轉移錢款的交易。例如可能需要允許只有在證明交易的收據可以在PC110旁的打印機打印時才進行基金轉讓。
具體而言,參見圖7,系統可以配置為確認(1)PC110是否配備本地打印機或者訪問本地打印機;以及(2)上述打印機是否裝入可打印收據的紙張(步驟712)。
如果PC110不含相連的打印機或者打印機紙張用完,則系統可提示用戶安裝合適的打印機和/或放入紙張(步驟714),這樣系統再次檢查以確認打印機的功能(步驟718)如果未檢測到具有一定的打印機,則產生相應的出錯信息。
如果確定PC110包含相連的功能打印機,則PC110配置為向模塊214發送命令,使模塊214進入下面將要借助圖27和28詳細描述的“刷卡”操作模式(步驟716)。隨后用戶可輸入正確的帳戶數據,例如通過將交易卡刷入磁卡閱讀器,將智能卡輸入與PC110相連的智能卡閱讀器,借助鍵盤206輸入帳戶數據,或者用于輸入與PC110或調制解調器214相關的數據的任何其它方便機構(步驟720)。
參見圖8,一旦輸入帳戶數據。PC110可能配置為在屏幕202上顯示帳戶數據(步驟802)。用戶實現的特定交易屬于那種無需發送機密數據(例如PIN)的交易,上述討論的帳戶數據和基金轉讓/支付數據可以組裝并經數據鏈路118發送至主機102進行處理(步驟812)。另一方面,如果特定的交易需要輸入機密信息,則系統可以設計為提示用戶輸入這類機密信息(步驟804)。
特別是,為了便于輸入、加密和發送加密的機密數據,PC110可以設計為向模塊214發送命令信號,將模塊214放入以下借助圖21和25詳細描述的“掃描”模式(步驟806)。按照圖2所示的實施例,用戶可以借助與模塊214相連的鍵盤或者圖3所示的鍵盤302輸入機密信息。在上述另一實施例中,加密電路和/或軟件與鍵盤206集成在一起,用戶可借助鍵盤206直接輸入機密信息。在任一情況下,將結合圖21-29詳細描述模塊214(或根據圖3所示實施例的模塊300)接收、加密和發送加密數據的方式。
在輸入所有反映特定交易所需的全部信息之后,系統可提示用戶確定用戶是否希望輸入另一交易。如果這樣,系統返回步驟702如果不需要進一步的交易,則PC110打包交易數據并經數據鏈路118將其發送至主機。就此而言,可以采用任意合適的數據發送機制,例如與機箱204相連的調制解調器或者下面詳細描述的直接與模塊214相連的調制解調器214(步驟812)。
一旦主機102確認交易(步驟814),則上述討論與PC110相連的打印機(未畫出)打印交易記錄(收據)(步驟816),并且系統再次返回主菜單400(步驟818)。
參見圖6,如果用戶希望查詢帳戶余額和/或狀態(步驟604),則系統可以設計為提示用戶選擇待查詢的特定帳戶項目(步驟612),隨后系統返回步驟712(參見圖7)。
如果用戶選擇智能卡基金轉讓操作606,則系統可以設計為提示用戶將智能卡插入合適的智能卡閱讀器模塊(步驟614)(未畫出)。
特別是參見圖9,本領域內的技術人員將會看到,也稱為智能卡的集成電路卡(ICC)一般包含嵌入卡內的微處理器以及允許數據轉出和轉入卡的電子機構。即,帳戶信息,實際上是基金可以通過適當修改駐留在卡上的數據進行電子“增加”或“減少”。
繼續參見圖9,如果用戶希望向智能卡增加基金(步驟902),則系統可設計為實現與圖7類似的過程;即用戶可以選擇提取或添加至智能卡的基金帳戶以及數量。隨后提示用戶將智能卡插入與PC110相連的智能卡閱讀器/寫入器模塊(未畫出)或者模塊214,實現對智能卡上駐留數據的電子更新。此外,系統可以設計為需要功能打印機作為實現上述智能卡更新功能必須設備。
另一方面,如果用戶希望從智能卡“提取”基金(步驟904),則系統可提示用戶選擇從智能卡提取基金的目的地(步驟906),并要求用戶輸入PIN或其它機密數據(步驟908)。在這方面,這種機密信息的輸入適合按照類似以下結合圖11、14和25-28描述的方式進行。在輸入PIN之后,可以借助與PC110或模塊214相連的智能卡閱讀器/寫入器(未畫出)實現智能卡交易。
再次參見圖4,在選擇付帳操作408之后,系統可以向用戶提示將新帳單加入付帳操作(步驟1002)。特別是系統的付帳功能可以跟蹤各種帳單,例如百貨商店帳單、信用卡帳單、公用事業帳單等。如果用戶希望將新的付帳單位加入付帳操作,例如新的百貨店帳戶,則對應新帳戶的數據可以由用戶例如借助鍵盤206輸入PC110。
系統可以進一步設計為顯示各種包含付帳操作408的帳單(步驟1004),允許用戶退出主菜單(步驟1010),或者選擇特定的支付帳單(步驟1006)。一旦選擇了特定的支付帳單,系統配置為根據結合圖7所示步驟實現付帳。
將會看到,在執行上述應用程序的各個時刻,需要用戶例如借助模塊214向系統輸入各種帳號、PIN和其它信息和/或數據。因此按照本發明的一個方面,模塊214可以根據當時要實現的特定功能采取多種不同的模式。以下描述包含模塊214的電路,它允許模塊214處于各種操作狀態。以下描述與模塊214相關的各種操作模式的功能。
參見圖11,模塊214可以有任意所需的配置,例如圖11所示的實施例。特別是,模塊214包含例如注塑成型的外殼1100,它類似于個人電腦所用的“鼠標”。根據圖11所示的實施例,模塊214包含例如對應數字0-9并尤其是還進一步包括、各種功能(例如輸入(E)和取消(C)按鈕)的鍵盤1102。模塊214進一步包含適于接收貼附有磁條的交易卡的卡閱讀器槽1104和適于接收智能卡的ICC(智能卡)槽1106。
現在參見圖12,模塊214包含與鍵盤1102(圖11)相連的鍵盤電路1204、與磁條閱讀器1104相連的磁條閱讀器電路1206、微控制器1212、調制解調器1202、與ICC槽1106相連的智能卡閱讀器電路1208以及時鐘/數據箱1218,它借助連接器212在微控制器1212與機箱204之間并且借助連接器210在微控制器與鍵盤206之間實現通信。此外,模塊214還包含控制門1222,用來選擇建立模塊214與PC110之間的通信。
參見圖12和13,微處理器1212包含Motorola公司制造的MC68HCllE9型微處理器。處理器1212與在Vdd上施加5伏電壓的功率電路1302和向時鐘端口1308以例如4MHz-12MHz(最好是8MHz)的頻率施加時鐘脈沖的振蕩器電路1304接口。處理器1212進一步包含清零電路1306,用來在處理器1212的清零端口1310上選擇施加清零信號。
此外,處理器1212配備了以下的輸入/輸出端口,在所示實施例中它們配置如下端口編號功能pa0 刷卡輸入/輸出(通道1)pa1 刷卡輸入/輸出(通道2)pa3 調制解調器中斷pa4 alepa5 cspa6 輸出至“系統有效”LEDpa7 (智能卡)讀取/寫入數據pb0 鍵盤行1pb1 鍵盤行2pb2 鍵盤行3pb3 鍵盤行4pb4 緩沖器使能pb5 智能卡時鐘pb6 智能卡控制pc0 至調制解調器的d0并行數據接口pc1 調制解調器的d1并行數據接口pc2 至調制解調器的d2并行數據接口pc3 至調制解調器的d3并行數據接口pc4 至調制解調器的d4并行數據接口
pc5 至調制解調器的d5并行數據接口pc6 至調制解調器的d6并行數據接口pc7 至調制解調器的d7并行數據接口pd0,pd1 與pentec條形碼閱讀器數據加載器的接口pd2 pc時鐘pd3 pc數據pd4 鍵盤時鐘pd5 鍵盤數據pe0 鍵盤列1pe1 鍵盤列2pe2 鍵盤列3參見圖12-14,鍵盤1102與圖14所示的處理器1212的各種端口相連。
參見圖12、13和15,控制門1222包含模擬開關,例如Motorola公司制造的模塊號74HC4066。開關1222包含四個內部開關a-d,它由端口pb4的輸出同時控制,從而使得內部開關a-d根據端口pb4的輸出邏輯值不是全開就是全關。一般而言,在模塊214的所有操作狀態下,內部開關a-d都保持開啟狀態,從而將鍵盤206與機箱204有效地隔離。在透明模式(下述)下,內部開關a-d一般處于關閉狀態,從而允許在鍵盤與PC之間進行正常的通信。
參見圖12、13和15,來自處理器1212端口pb4的緩沖器使能信號施加在控制門1222上。此外,鍵盤時鐘和鍵盤數據信號在微處理器1212的端口pd4與pd5之間發送至從開關1222經連接器210延伸至鍵盤206的數據總線1219。同樣,PC時鐘和PC數據信號在微處理器1212的端口pd2與pd3之間發送至經連接器212在控制門1222與機箱204(圖1)之間延伸的數據總線1218。
參見圖12、13和16,與磁條閱讀器1104(圖1)相連的磁條閱讀器電路1206的第一實施例包含磁性閱讀器頭1602(例如1.6微亨感應線圈)、各自的第一和第二放大器1604和1606(例如LM324a運算放大器)、各自的比較器1608、1610(例如LM393)和反向司密特觸發器1612(例如74HC14)。
特別是參見圖16,貼附磁條的交易卡在模塊214的磁條閱讀器1104(圖11)內滑動從而使磁條磁性地嚙合閱讀器頭1602。線圈1602的輸出施加在放大器1606的反相輸入上,放大器的增益為20量級。放大器1604的輸出施加在放大器1606的同相輸入。放大器1606的輸出施加在比較器1608的同相輸入和比較器1610的反相輸入上。通過在放大器1608反相輸入上施加預定的閾值電壓并在放大器1610同相輸入上施加預定的閾值電壓,在司密特觸發器1612上施加了一系列的邏輯高和低脈沖,該輸入被司密特觸發器/比較器組合有效地整流、方波整形和陡峭化為二進制方波。司密特觸發器1612的輸出是線圈1602輸出的函數并且對應于從磁卡閱讀器1104拉過的磁條內被磁性編碼的數據。司密特觸發器1612的輸出對應施加在處理器1212端口pa0的通道1的刷卡數據。
圖16的磁頭閱讀器電路特別適用于磨損磁條卡的情形,這種磁條包含一條“磁軌”或一欄的磁編碼信息。交易卡的許多此類磁條包含嵌入磁條內的兩個或更多的分立磁性欄。在這種情況下,可能需要在卡閱讀器槽1104內采用雙磁性閱讀器線圈。
參見圖17,電路的另一實施例包含各自的第一和第二閱讀器線圈1603a和1603b,它們設計為讀取包含與交易卡相關的雙軌磁條的相應第一和第二磁軌(未畫出)。在圖17所示的實施例中,電路基本上包含兩個圖16所示的電路,它們被設計為產生施加在處理器1212各個端口pa0和pa1上的各自的輸出1702和1704。
參見圖18-20以及圖12,微控制器1212包含隨機存儲器(RAM)1802、只讀存儲器(ROM)1902和電擦除可編程只讀存儲器(EEPROM)2002。
特別是RAM1802其中包含對應RAM1802內地址的存儲段1804-1836。如下結合模塊214操作狀態所述,在模塊214操作期間,在數據段1804-1836內存儲和檢索各種預定數據。
繼續參見圖19,在ROM1902的第一段1904內存儲了控制模塊214操作的操作代碼(操作程序)。而且在ROM1902的第二段1906內存儲了用于模塊214操作的各種中斷向量。
參見圖20,EEPROM存儲映射2002包含非易失存儲器,用于存儲與本發明加密機密數據所用加密算法相關的密鑰。特別是EEPROM包含對應未來密鑰的第一段2004、對應初始密鑰序列號的第二段2006和對應加密計數器的第三段2008。按照本發明的一個方面,在提供防止未授權訪問機密數據的安全機制的本發明中,模塊214、模塊300或者PC110可以采用任何加密算法。
參見圖21-38,以下描述系統100的操作和模塊214的操作狀態。
參見圖21,在向模塊214供電后,在處理器1212的清零端口1310施加清零信號(步驟2102)。
在進入清零狀態之后,執行系統初始化(步驟2104)。
參見圖22,系統初始化步驟2104完成各種初始化步驟(2104b),尤其包括1.例如通過設定當前模式寄存器1804(圖18)為透明模式狀態將當前模式初始化為透明模式,以下將要詳述;2.將前一模式寄存器1806初始化為“無模式”;3.將系統中斷初始化為合適的觸發器特性;4.使能來自PC接口總線(例如連接器212)的中斷;以及5.將PC接口臨時緩沖器1808初始化為“空”。
以下結合模塊214的操作詳述上述初始化步驟的相關性。
在完成系統初始化后,系統輸入系統重定向狀態(步驟2106),隨后系統輸入合適的操作模式在系統啟動時,如上結合系統初始化步驟2104(b)所述,系統缺省模式為透明模式。
具體而言,本發明的較佳實施例采用模塊214內的基于中斷的處理方案。因此當系統在圖21所示主循環內循環時,系統不時從PC110接收中斷。在接收到PC110“模式改變”的中斷命令之后,處理器1212使模塊214終止當前的模式,并進入系統重定向(步驟2106),由此可以進入新的合適的操作模式。
從圖21所示控制模塊214操作的主控制循環開始,系統可以進入任意一種操作狀態作為預測指令的結果。具體而言,系統可以進入某一操作狀態,它由ROM1902的段1904內駐留的可執行代碼控制。此外,根據從PC110接收的命令,系統可以進入某一操作狀態,以下結合圖23作詳述。
參見圖23,PC110不時經連接器212向模塊214發送中斷命令(步驟2302)。
在接收PC中斷之后,從PC110接收的中斷數據包被存儲在RAM1802的段1808內(步驟2304)。系統隨后確定從PC110接收的消息(中斷數據包)是否完整。如果否,則系統返回主循環2100。如果在模塊214處接收到完整的消息,則系統確定數據是否對應命令指令或者消息是否對應命令指令以外的數據(步驟2308)。
如果消息對應的是命令指令以外的數據,則消息存儲在RAM1802的數據輸出緩沖器1810內(步驟2310)以供后續處理,例如調制解調發送至主機102。此后,PC接口臨時緩沖器1808的內容被清空(步驟2302),接著系統再次返回中斷前狀態(步驟2332)。
現在返回圖23的步驟2308,如果接收的數據是命令指令,則系統確定命令指令是否對應模式變化(步驟2312)。如果否,則將數據存儲在RAM1802命令寄存器1812內供后續當前模式使用(步驟2316)系統隨后如上所述進入步驟2320。如果從PC110接收的消息對應模式改變命令(從步驟2312的“是”分支),則將當前模式寫入前一模式寄存器1806(步驟2314),并將新接收的模式寫入RAM1802當前模式寄存器1804(步驟2318)。系統隨后如上所述進入步驟2320。
參見圖21,在從PC110接收消息之后,處理器1212調查當前模式寄存器1804,并根據寄存器1804的內容回答主循環2100合適的操作模式。在啟動操作時,系統設計為進入透明模式(步驟2110)。
參見圖24,透明模式2110與下述各種其它操作模式一樣,確定從進入透明模式2110以來是否接收到后續模式的變化(步驟2402)。如果接收到模式變化,則系統進入重定向狀態(步驟2106);(參見圖21)并進入新選定的模式。如果未發生模式模式變化,則處理器2112調查前一模式寄存器1806以確定前一模式是否對應透明模式(步驟2404)。如果前一模式對應透明模式,則系統進入步驟2410。如果前一模式不是透明模式,則系統命令鍵盤清除內部緩沖器并將前一模式寄存器1806設定為透明的(步驟2408)。具體而言,如果前一模式不是透明模式,則可以在鍵盤206上輸入雜亂的按鍵,鍵盤數據可以存儲在鍵盤206內部的緩沖器內并且在圖2中沒有顯示。為了防止對應雜亂按鍵的數據發送至PC110,清除鍵盤內部緩沖器(步驟2408)。隨后系統使能鍵盤206與PC110之間的接口(步驟2410)。
具體而言,參見圖12、13和15,圖24的步驟2410使處理器1212在端口pb4生成緩沖器使能信號并發送緩沖器使能信號以控制門(開關)1222。開關1222的內部開關a-d作出響應而關閉,在PC110經連接器212、總線1218、開關1222、總線1219和連接器210至鍵盤206之間建立直接的通信。隨后系統繼續循環經過透明模式2110,允許鍵盤206相對PC110作正常操作。系統繼續循環經過透明模式2110直到從PC110接收到下一消息。
現在參見圖21,系統可以例如響應來自PC110的掃描模式請求而接收命令而進入掃描模式(步驟2112),處理器1212使模塊214進入操作的掃描模式(步驟2114)。
具體而言,參見圖25,掃描模式2114通常涉及“掃描”與鍵盤1102相連的電路(圖14)以檢測用戶輸入鍵盤1102的數據(例如PIN)。
參見圖25,掃描模式操作尤其涉及初始化RAM1802的PIN輸入緩沖器1814以清空(步驟2502),從而使PIN緩沖器準備接收用戶正要通過鍵盤1102輸入的數據。
系統檢測是否接收到后續的模式改變命令(步驟2504);如果是,則系統返回系統重定向步驟2104。如果模式未變化,則模塊214一直等待直到檢測到按下鍵盤(步驟2506)或者直到檢測到模式變化(步驟2504)。
具體而言,處理器1212掃描鍵盤1102對應行1-4和列1-3(參見圖14的)端口pb0-pb3和端口pe0-pe2(參見圖13)。當檢測到按下鍵盤時,系統確定按下的鍵盤是否對應其中一個數字0-9(步驟2508),如果是,則模塊214向PC110發送信號以向屏幕202(圖2)產生按下鍵的“啞”標識。
具體而言,存儲在處理器1212的ROM1902的段1904內的操作程序包括操作代碼,它允許模塊214按照模仿普通鍵盤與機箱204通信的方式與PC110通信。在本發明的較佳實施例中,控制模塊214操作的操作代碼根據任何合適的協議而設計,例如IBM在PC中采用的協議或者其它的改進協議,從而允許模塊214按照模仿鍵盤206與機箱204之間的普通通信方式與機箱204通信,模塊214與機箱204之間的數據發送和其它通信可以按照通常對機箱基本上是透明的方式有效地進行;即,當機箱204從模塊214接收數據和/或信息時,機箱204中斷數據就好象機箱204從鍵盤206接收數據一樣。同樣,當機箱發送模塊214接收的數據和/或信息時,機箱204配置數據/信息包的方式與機箱204配置鍵盤206接收的數據的方式一樣。通過以這種方式協調當前已知的數據發送協議,模塊214可以串聯在鍵盤與所有符合工業界認可的協議的PC鍵盤的端口之間。
參見圖25,如果按鍵對應0-9,則系統在捕捉到數據之前一直等到按鍵釋放。這樣,系統希望避免捕捉重復的數據,這種數據經常可由用戶在許多鍵盤上保持按下鍵時而重復產生。
返回步驟2508,如果按鍵不是0-9,系統確定按鍵是否對應“輸入”(步驟2512),如果是,則將對應“輸入”的命令從模塊214發送至PC110(步驟2514),指示完成機密數據(例如PIN)的輸入。另一方面,如果按鍵不對應“輸入”,則系統確定按鍵的情況。在所示實施例中,如果按鍵不對應0-9,并且不對應“輸入”,則系統推斷按鍵對應“取消”(步驟2516)。因此模塊214向PC110發送消息,指示機密數據的輸入已經被用戶取消。
在用戶釋放按鍵之后(步驟2518),系統確定按鍵是否對應0-9(步驟2520)如果是,則將特定的數字按鍵存儲在RAM1802的PIN輸入緩沖器1814內(步驟2524),并且系統返回步驟2504等待下一按鍵。
如果按鍵對應“取消”(步驟2522),則系統恢復PIN輸入緩沖器1814以清空(步驟2528)并返回步驟2504以等待模式改變或者下一按鍵。
如果按鍵對應“輸入”(步驟2522的“yes”分支),則模塊214加密存儲在PIN輸入緩沖器1814內的數據(步驟2526),以下結合圖26作詳細描述。
雖然所述實施例借助數字(例如“0”-“9”)PIN數據描述,但是輸入模塊214的機密數據可以是任意形式,例如數字、字母、數字-字母、ASCII碼、二進制碼或其它適當的形式。
參見圖26,加密操作2526進程如下。一旦加密數據(例如PIN)由用戶輸入鍵盤1102,處理器就從RAM1802的個人帳號寄存器1818中檢索數據并從緩沖器1814中檢索PIN(步驟2602)。這些數據單獨或與其它數據結合以適當方式組合和解密(步驟2602)。在較佳實施例中,這些數據可以根據ANSI規范X9.24-1992組合。數據按照ANSI標準X3.92-1981或者其它所需的加密技術加密。具體而言,前述組合和加密算法最好駐留在ROM1902的操作程序段1904內并與存儲在EEPROM2002內的加密密鑰信息一起操作(參見圖19和20)。通過在非易失存儲器(例如EEPROM)內存儲加密密鑰數據,系統的完整性和安全性得到了加強。
參見圖26,在按照步驟2602加密數據之后,加密的數據被寫入RAM1802加密PIN段1816內的下一連續位置(步驟2604)。此后,對應段1816位置的地址(其中被寫入加密數據)被送至PC110(步驟2606)。具體而言,參見圖2,一旦數據在模塊214內加密,則加密數據的位置經連接器212被送至PC110,從而使得未加密的機密數據無需從模塊214送至PC110以實現交易。
在加密數據之后,處理器1212生成新的唯一密鑰用于下一加密處理并將密鑰存儲在EEPROM2002的未來加密密鑰段2004內(步驟2608)。根據本發明的一個方面,可以根據與步驟2602內執行的加密算法兼容的任何方案產生新的加密密鑰。根據較佳實施例,新的唯一加密密鑰可以根據ANSIX9.24-1992產生。
在從模塊214向PC110發送加密數據標識時,如上結合圖4-10所述,PC110繼續執行駐留的應用程序。
返回模塊214的主控制循環2100(圖21),模塊214可以選擇進入刷卡模式2118(步驟2116)。具體而言,參見圖7,PC110可以請求模塊214進入刷卡操作模式,例如在執行駐留于PC110內應用軟件時,此時這種應用程序提示用戶將交易卡刷入模塊214的刷卡槽口1104(圖11),例如如上步驟716所述。
參見圖27,在進入刷卡操作模式之后,處理器212初始化RAM1802的各刷卡數據輸入緩沖器1820、1822(步驟2702)。系統隨后查找模式改變(步驟2704),并在檢測到模式改變時返回系統重定向狀態2106。否則,系統將刷卡超時計數器設定為預設的最大值,在該段時間內交易必須進入卡閱讀器(步驟2706)。在較佳實施例中,該最大預設值為15秒,適于存儲在RAM1802的刷卡超時寄存器1824。
超時計數器連續遞減(步驟2708)直到駐留在段1824內的軟件定時器為零(步驟2710),隨后駐留在緩沖器1820、1822內的數據被發送至PC110(步驟2714)。另一種選擇則不是等到最大時間計數器計數為零,而是在處理器1212確定各輸入緩沖器1820、1822滿時就可以向PC110發送“刷卡”數據(步驟2712)。
在刷卡超時定時器第一次超時(步驟2710)或者檢測到刷卡輸入緩沖器滿時(步驟2712),刷卡緩沖器1820、1822內的數據被發送至PC110(步驟2714)。
參見圖12和16-17,磁條閱讀器電路1206從交易卡上的磁條經磁頭閱讀器1602(或者圖17中的磁頭閱讀器1603(a)、1603(b))“讀取”數據,閱讀器電路1206將輸出信號(對應“ch1刷卡”或者“ch2刷卡”)施加在處理器1212的端口pa0和pa1。
參見圖16和28,當貼附有磁條的交易卡經過卡閱讀器槽口1104(參見圖11)時,磁性閱讀器頭1602輸出對應編碼在磁條上數據的交替高低電平。在檢測到來自司密特觸發器1612的第一輸出電平(例如邏輯高電平)后,停止駐留在處理器1212內的硬件定時器(未畫出),并且將該定時器停止的時刻保存在RAM1802的刷卡定時器寄存器1826內(參見圖18)(步驟2802)。刷卡定時器再次清零并啟動,等待檢測到來自司密特觸發器1612的下一預定電平(步驟2802)。
處理器1212結合步驟2802內搜索到定時器數據確定司密特觸發器1612的輸出是否對應預定的邏輯狀態(例如0或1)(步驟2804)。這種邏輯數據隨后可以存儲在適當刷卡輸入緩沖器的連續比特位置內(例如緩沖器1820、1822)(步驟2804)。系統隨后確定刷卡輸入緩沖器是否滿(步驟2806)。如果刷卡輸入緩沖器滿,則在RAM1802刷卡緩沖器滿標志寄存器1828內設置緩沖器滿標志(圖18)(步驟2808),它允許處理器1212確定刷卡輸入緩沖器何時滿(參見圖27的步驟2712)。
參見圖28的步驟2806,如果刷卡輸入緩沖器未滿,則將上述軟件定時器重新設定為最大比特間隔值(步驟2810),并且過程返回至圖27離開該過程的位置,圖28的過程逐個比特中斷地重復進行直到從交易卡上磁條讀取所有合適的數據。但是整個累積刷卡數據的過程非常短,例如在卡經過卡閱讀器槽口(圖11)1104時的10毫秒至1秒內。
參見圖21,模塊214還設置為在例如從PC110發出請求(圖8的步驟816)之后從主循環2100進入打印模式2122(步驟2120)。
參見圖29,打印操作模式2122初始化打印機(步驟2902)以建立與打印過程相關的各種硬件和軟件參數。如上所述,打印機可以通過直接連接至機箱204或者經過網絡而附屬于PC110。打印機也可以直接在模塊300的連接器310處與加密模塊接口(圖3,或者圖12所示模塊214的外設模塊1200)。
參見圖29,系統確定是否發生模式改變(步驟2904),并且如果是則返回系統重定向步驟2906。
系統隨后例如通過調查數據輸出緩沖器1810(圖18)(步驟2908)確定待打印數據當前是否可用。如果數據不可用,則系統返回步驟2902等待打印數據。如果數據可用(步驟2902的“yes”分支),則系統確定打印機是否準備好(步驟2930)。檢查過的打印機可能與模塊214相連,因為如果打印機與PC110相連,則一般無需執行打印機操作2122。即,如果PC110配備了打印機,則可以由PC110直接控制打印操作,而如果本發明所用打印機與模塊214接口,則圖29所述打印操作由模塊214控制。
參見圖29,如果打印機未準備好,則模塊214向PC發送命令,指示與模塊214相連的打印機未準備好。如上結合圖7所述,PC110可以提示用戶糾正打印機情況。
如果與模塊214相連的打印機準備好,則駐留在數據輸出緩沖器1819內的數據經串行總線1211送至打印機(參見圖12)。按照較佳實施例,打印數據被以串行方式送至打印機因此圖29所示的過程不斷重復直到數據輸出緩沖器1810內的數據依次發送至打印機。
返回主循環2100(圖21)并參見圖30,模塊214設計為響應來自PC110的請求(參見圖7的步驟710)進入調制解調器模式2126(步驟2124)。
如上所述,本發明可以設計為以普通方式例如經與PC110相連的調制解調器或者與模塊214相連的調制解調器1202(或者與圖3中模塊300相連的調制解調器連接器308)從PC110向主機發送數據和信息。如果數據經與PC110相連的調制解調器從PC110發送,則模塊214一般無需執行調制解調器操作2126;調制解調器操作可以由PC110完成。另一方面,如果調制解調器操作經與模塊214接口的調制解調器實現,則特別有利于處理器1212控制調制解調器的操作。
參見圖30,調制解調器操作2126使調制解調器1202初始化(步驟3002),模塊214隨后確定是否發生模式變化(步驟3004),并且如果是,則系統返回系統重定向2106。如果未發生模式變化,系統確定數據輸出緩沖器1810是否包含經調制解調器發送的數據(步驟3006)。如果數據未駐留在緩沖器1810內,則系統返回步驟3004并在步驟3004與3006之間繼續循環直到數據被寫入緩沖器1810或者直到發生模式改變。
當數據數緩沖器1810內包含經調制解調器發送的數據時,處理器1212從輸出1810中搜索數據并經調制解調器向主機102發送數據(步驟3008)。當模塊214需要例如從主機102經調制解調器接收數據時,處理器1212可以配置為例如在調制解調器1202中斷端口pa2檢索調制解調器的數據。
參見圖31,PC110向模塊214發送請求,請求經連接模塊214的調制解調器發送數據。具體而言,調制解調器中斷消息由調制解調器1202施加在模塊1212的端口pa2上。模塊214隨后確定消息是否對應“數據接收”中斷(步驟3102)或者調制解調器發送中斷(步驟3104)。如果有數據接收中斷,發生(步驟3102的“yes”分支),表示數據已在調制解調器1202處被接收。則調制解調器1202接收的數據由處理器1212搜索并經連接器212向PC發送(步驟3106)。
如果調制解調器中斷消息對應調制解調器發送請求(步驟3104),則處理器1212檢索從緩沖器1810發送的數據并將數據逐個字節地施加到調制解調器1202上(步驟3108)。
如果調制解調器中斷不對應接收的數據或者發送消息的數據,則向PC發送出錯消息(步驟3110)。
在調制解調器1202接收的數據被檢索并發送至PC110(步驟1306)之后并且在處理器1212從緩沖器1810向調制解調器1202發送數據(步驟3108)之后,系統返回(步驟3112)至圖30的低級處理,并且對調制解調器1202產生的每個連續中斷重復該過程。
參見圖21和32,模塊214可以設計為例如響應來自PC的請求而進入條形碼操作模式2130(步驟2128)。條形碼操作2130確定模式是否變化(步驟3302),如果是,則返回系統重定向步驟2106。如果未發生模式變化,則數據可以從通用模塊1210輸入,例如從條形碼閱讀器(步驟3204)。一旦模塊214接收到條形碼或其它數據,則可以根據需要向PC110發送(步驟3206)。
參見圖21和33,模塊214可以設計為例如響應來自PC110的請求執行智能卡操作2134(步驟2132)。為此,雖然根據實施例,初始化了許多與模塊214相關的功能特征(例如調制解調器操作2126、打印操作2122、刷卡操作2118等),但是可以根據需要實現模塊214的各種操作,例如通過將合適的命令直接輸入模塊214。
參見圖33,智能卡2134確定模式是否變化(步驟3302),并且如果是,則返回系統重定向步驟2106。
如果沒有模式變化,則系統確定是否從智能卡中讀取了數據(步驟3304)。如上所述,這種請求來自PC110,或者可以由用戶通過輸入特定的代碼或者在鍵盤1102(圖11)上按下其它按鈕實現。
如果從智能卡讀取了數據(步驟3304的“yes”分支),則數據由處理器1212例如借助智能卡閱讀器1208(圖12)接收。在從智能卡檢索數據之后,數據可以向PC發送(步驟3306)。
如上所述,模塊214也可以設計為將數據寫入智能卡。在這種情況下,被寫入智能卡的合適數據可以從數據輸出緩沖器1810中檢索并施加在智能卡電路1208上(步驟3308、3310)。
參見圖21和34,上述結合圖4-40所述PC應用軟件中的模塊214可以設計為使駐留在PC110內的應用軟件在允許加密數據發送或完成其它功能之前必須首先使模塊214有效。具體而言,在實時基金交易授權中維護安全的重要性,可能需要PC110(例如通過軟件)確認模塊214在實現交易前有滿意的安全特征。
參見圖21和34,模塊214可以設計為例如響應來自用戶或PC110的請求而進入系統合法模式2138(步驟2136)。系統合法模式2138確認模式是否變化(步驟3402),并且如果是則系統可以返回系統重定向步驟2106。
模塊214隨后可以配置為從PC110接收和/或檢索合法數據,合法數據確認運行在PC110上的應用軟件與模塊214兼容合法數據也可以允許模塊運行自檢查以確定是否有合適的安全機制。模塊214隨后確認與駐留在PC110上的軟件兼容(步驟3406)。如果系統根據預定的合法判據確認模塊214或運行在PC110上的應用程序是“非法的”,則模塊214可以設計為使自己失能或使運行PC110上的軟件失能(步驟3408)。
參見圖21和35,模塊214可以設計為例如響應來自PC110或用戶請求而執行比特操作2142(步驟2142)。
比特操作2142確定模式變化是否發生(步驟3502),并且如果是,則返回系統重定向步驟2106。如果模式變化未發生,則模塊214執行任意數量的內建測試(比特)(步驟3504),例如測試各種數據發送和檢索過程,測試各種外設的存在和/或功能,執行各種周圍的和/或監聽設備。
在PC110操作期間,需要從模塊214向PC110發送加密數據。參見圖21并參見圖36,模塊214由此可以配置為例如響應從用戶或PC110的請求選擇進入檢索模式2146(步驟2144)。
檢索模式2146確定模式是否變化(步驟3602),如果是,則使系統返回系統重定向步驟2106。如果模式變化未發生,則表示系統仍然處于檢索模式,模塊214等待來自PC110對加密數據的請求,請求可以包括RAM1802(圖18)段1816內的地址,在那里存儲了所需的加密數據(步驟3604)。在從PC110接收到發送加密數據的請求之后,模塊214從存儲器內合適的位置(例如加密P1N保存區域1816)檢索加密數據,并向PC110發送加密數據(步驟3606)。這樣之后,處理器1212將加密PIN保存區域1816清零為空。
參見圖37-39,它們示出了按照本發明的加密模塊的各種實施例。結合圖37-39所示實施例,加密模塊的概念被擴展到包括插入在PC與加密數據輸入設備之間的加密模塊,例如手工輸入機密數據的鍵盤、從電子源接收機密數據的串行端口、智能(或ICC)卡閱讀器、磁條閱讀器、條形碼閱讀器、語音識別電路、IRIS掃描儀、指紋閱讀器、拇指紋閱讀器或掌紋閱讀器、文本掃描儀或其它任何類型的輸入設備。各種輸入設備或硬件可以與加密模塊集成(例如與加密模塊合為一體),或者輸入設備可以經安全介質與加密模塊相連。例如數據輸入設備可以經硬質通信鏈路、紅外(IR)連接、射頻(RF)耦合連接與加密模塊相連。
按照較佳實施例,需要將自數據獲取設備至加密模塊傳送的加密數據隔離開來的通信鏈路(硬線鏈路或其它)。這樣未加密的數據仍然與PC隔離,從調制解調器或其它與PC接口的未授權獲取未加密數據的設備不可能獲取未加密的數據。在圖37-39所示實施例中,還需要配置加密模塊從遠地源接收機密數據,例如經電話線、電纜或RF鏈路從信用卡或金融交易授權主機。按照圖37-39所示的本發明實施例,可能需要配置加密模塊與發送加密數據的一個或多個目的地通信,例如CRT、LCD或LED監視器、信用卡或金融交易授權主機、打印機或另一PC。
最后可能需要將加密模塊配置為捕捉機密數據或信息并經專用或其它安全通信鏈路向本地或遠程目的地發送未加密數據例如,加密模塊可以配置為從例如智能卡(ICC)捕捉機密數據并將數據發送至本地打印機、計算機或其它設備用于打印或顯示,例如將來自智能卡或鍵盤的未加密數據轉換為加密的印戳,例如二維條形碼等。在打印戳記時這種應用特別有用,在那里需要捕捉未加密數據,將數據轉換為加密的可打印數據(例如圖形、字符、條形碼)并隨后向打印機發送加密的可打印數據例如創建優惠券、票據或郵資。
最后圖37-39進一步示出了加密模塊的應用,其中配備的模塊接收加密的電子郵件或其它文本數據并隨后解密信息以安全離線地顯示信息(例如在PC上)。
加密模塊將保護機密但是未加密的數據不被未授權的正在監視不安全通信總線(例如USB.IEEE1394或者ADB)的人截取。參見圖37A-C,加密模塊3702一般在功能上類似于圖1-36所述。特別是,加密模塊3702包括利用駐留在非易失ROM(即EEPROM)或其它包含模塊3702的數據存儲設備內的加密算法、技術、密鑰等加密(和/或解密)機密數據和信息的電路;加密模塊3702可以配置為從遠地源接收加密算法、技術等。
參見圖37a,加密模塊3702配置有連接器3704,它使模塊3702與桌面PC、膝上型PC或其它類型的計算機或通信設備接口。特別是通信鏈路3704(例如RS/232兼容鏈路)配置為與PC或膝上型PC的串行端口接口。由于這種類型的串行端口一般與通用PC數據總線(例如PC的USB)通信,所以需要確保在機密數據沿鏈路3704發送至PC之前先由模塊3702加密。而且如上所述并且將在下面詳述的那樣,被加密數據可以由模塊3702例如利用數據獲取設備獲取,該設備與模塊3702集成在一起,或者利用與模塊3702連接的數據獲取設備。在任一情況下,被加密數據可以任意方式獲取,例如利用PIN板、鍵盤、語音識別電路、掃描儀、磁條閱讀器、智能卡、外部串行端口(它可以與鏈路3704連接的端口相同和不同)。
本發明還考慮了這樣的實施例,其中模塊3702包含PC外設,例如鍵盤、鼠標、掃描儀、插板或其它包含加密能力的硬件設備。
參見圖37,模塊3702(特別是如圖37A所示)可以配置為經通信鏈路3704連接普通膝上型計算機的鍵盤端口(例如PS/2端口)。
參見圖37B,模塊3702可以配備一個或多個PC連接器3702和/或一個或多個外設連接器3708。按照較佳實施例,連接器3706可以被用來將加密模塊3702與普通桌面和/或膝上型計算機的鍵盤端口(例如PS/2端口、ADB端口、并行端口、USB端口、IEEE488型端口)連接起來。如果加密模塊與膝上型的包含集成鍵盤的“鍵盤”端口相連,則無需將通信鏈路3708連接至其它設備實際上,可能需要從設備中省略連接器3708。按照進一步的實施例,即使在加密模塊經連接器3706與膝上型設備鍵盤端口相連的情況下,也不需要將加密模塊經連接器3708與輔助鍵盤相連。按照另一較佳實施例,圖37B所示的設備可以經連接器3708串行插入在鍵盤端口(經連接器3706)與外設(包括但不局限于鍵盤)之間。參見圖37B,不管是桌面或膝上型計算機,連接器3708便于加密模塊3702與輸入機密數據的設備類型之間的交互活動。
參見圖37C,示例性的加密模塊3702配備了經連接3710與USB總線、IEEE1394防火墻總線或其它PC通用總線的接口。對于通用PC總線規范可參見Compact、DEC、IBM PC、Intel、微軟和北方電信1995年3月31日出版的“通用串行總線規范”以及后續修訂,還可參見蘋果計算機股份公司的“Guide to Macintosh Family Hardware”第二版。這些作為參考文獻包含在本發明中。
具體而言,雖然圖37C所示模塊也可以配備圖37A和B所示的“鍵盤”或串行連接器,但是模塊也可以附著于USB或IEEE1394型總線以增加加密模塊3702各種附著方式的靈活性。參見圖37C,可以采用各個輸入連接3712、3714和3716使加密模塊附著于一個或多個外設上,例如集成或遠程數據獲取設備、至打印機的RF和IR耦合器、顯示設備等。當然可以在圖37A和B的實施例中采用一個或多個連接。一個或多個連接3712-3716也可以采用USB或防火墻協議但是它可以利用未加密輸入的“保護”協議。
參見圖38,外設3802包含PC外設,例如PIN板、鍵盤、鼠標或類似的數據輸入設備,另外模塊3802可以包含單獨的加密模塊,它包含一個或多個數據輸入功能。圖38所示的模塊是圖37所示模塊的廣義版本。特別是模塊3802包含一個或多個連接器3810、3812、3814或者與一個或多個硬件的連接。此外,可以利用IEEE1394“防火墻總線”使一個或多個鏈路3810-3814與高分辨率監視器相連,或者可以使RF或IR與其它系統通信。此外,模塊3802可以配置為包含一個或多個連接器3816、3818、3820,用于連接一個或多個輸入外設(鼠標、鍵盤、掃描儀、語音輸入等)。在本發明中,可以采用下列組合標準PC或其它鍵盤格式;PS/2格式;蘋果桌面總線(ADB);小型計算機系統接口(SCSI);RS/232并口;USBIEEE1394(防火墻);紅外RF光纖;PCMCIA;IDE;EIDE;SCSI;IEEE488等。
參見圖39,以下描述與圖37和38類似的示例性加密模塊或外設的框圖。
示例性的加密模塊3902包含獲取輸入3904和PC連接器3926。如上所述,獲取輸入電路3904包含一個或多個與模塊3902集成的數據輸入設備(例如ICC、鍵盤、磁條等)。與模塊3902可以遠程或本地方式連接或兩者。PC連接鏈路3926配置為維持模塊3902與桌面計算機、膝上型計算機、筆記本計算機或其它任何計算機、外設或其它發送加密數據的設備之間的通信。因此連接器3926包含RS/232連接器、PS/2連接器、USB連接器、IEEE1394(防火墻)連接器等。
附圖中省略了模塊3902的各個基本單元,例如處理器和微控制器、執行操作碼的ROM、存儲操作指令的EEPROM、加密軟件、RAM、電源等。
參見圖39,加密模塊3902包含加密引擎3924,它利用一個或多個駐留或在加密模塊3902內(例如ROM、EEPROM)受保護或者被加密模塊3902通過與模塊3902相連的通信鏈路檢查的加密密鑰3922完成不同類型的加密(例如DES、RSA、橢圓曲線公開/私人密鑰管理)。在這種情況下,密鑰駐留并在模塊3902內得到保護,模塊包含例如利用互鎖保護密鑰的裝置,當侵入或驗證設備時互鎖將擦除非易失存儲器的內容或銷毀加密密鑰3922。
加密模塊3902進一步包含一個或多個示例性的連接鏈路3914、3916和3918等,它們與接收信息的遠程(或本地)設備相連,有些需要加密。這樣機密數據可以由模塊3902在安全(或專用)的環境下獲取并操作、存儲,或者被模塊3902使用。而且模塊3902接收的一些或全部機密數據可以借助加密引擎3924加密,加密數據可以經通信鏈路3926發送至PC或其它設備。
按照本發明的進一步方面,可以提供其它通信鏈路3928、3930和3932以允許加密數據發送至其它目的地。例如可能希望將鏈路3928-3932中的一條與本地或遠程打印機相連,例如允許打印包含加密部分的文檔、二維條形碼或其它印記。一條或多條鏈路3928-3932可能是RF耦合或者其它至授權網絡或其它銀行或相關金融網絡的連接方式,例如允許模塊3902獲取預先授權或實時交易授權而模塊3902同時經通信鏈路3926與PC相連。
具體而言,模塊3902可以配置為經通信鏈路3926與PC通信。例如雖然PC用戶與互聯網相連,觀看各種可能的金融或其它交易,模塊3902可以提供獲取交易授權而允許經連接器3926連接的PC用戶處于在線狀態的功能。例如如果消費者用PC在互聯網上“購物”,并希望實現金融交易,則消費者可以經其中一個連接器3928-3932從遠程主機獲取交易授權。在該實例中,遠程主機提示用戶經輔助揚聲器3096,顯示器3908或者其它與模塊3902相連的其它設備輸入PIN或其它機密信息片斷。用戶隨后通過獲取輸入電路3904或者與連接器3914-3918相連的一個或多個數據輸入設備輸入機密數據。一旦將機密數據輸入模塊3902,則可以獲得交易授權,與此同時維持了連接連接器3926的PC與模塊3902處理的未加密數據之間的“防火墻”。一旦獲得請求交易的授權,則可以經連接器3926向PC發送授權號,隨后在互聯網或其它“購物”環境下對客戶提出的“商品”作交易。根據實施例的進一步方面,在將授權號發送至加密模塊之前可以由遠程主機用私人加密密鑰作數字簽名。因此當商店經解密模塊從用戶處接收到授權號時,商店通過檢查或解密數字簽名確認授權號。
用戶可能希望獲取數字現金、數字簽名文檔或涉及交易或應用的其它文檔、數據或信息。例如當用戶操作經連接器3926與模塊3902相連的PC時,他可以將涉及信用卡帳戶、銀行帳戶或其它數據的數據輸入獲取輸入電路3904,從而從遠程主機檢索數字硬幣或其它加密信息或數據,隨后采用該加密數據通過經加密引擎3924向PC發送加密數據完成在線或離線交易。根據本發明的一個方面,可以在加密模塊或智能卡內存儲數字硬幣或其它加密數據。前述例子可以經標準電話線、調制解調器硬件、RF耦合器、IR耦合、數據信道或其它設備實現。可能需要將模塊3902與兩個或更多的PC經鏈路3926-3932連接,其中第一PC可以用來完成在線交易而另一PC可以用來獲得授權。
此外,可以經本地或遠程外設或系統(在軟件防火墻“未加密”側與模塊3902通信,即通過通信鏈路3914-3918之一或者通過獲取輸入電路3904)檢索授權、數字現金或其它數據。
參見圖39,可以采用開關3912將一條或多條通信鏈路3914-3918和獲取輸入電路3904經通信鏈路3926-3932與PC相連。可以采用開關來選擇一個或多個通信鏈路3926-3932。雖然示出的“開關”是機械/電子開關,但是其它硬件、軟件或混合開關的組合也可以采用。
參見圖39,可以采用顯示器3908使用戶以“明文”格式察看各種數據域以確認交易的精確性。例如交易的美元數量可以在購買之前在顯示設備3908上顯示。實際上模塊3902可以顯示任何數據或信息,即使信息具有機密性質,只要數據在經連接鏈路3926-3932發送至PC之前或其它設備之前得到正確加密。這樣,由于從PC經通信鏈路3914-3918至加密模塊的訪問相當困難,所以利用已知的技術是不可能的,因此在加密之前機密數據的安全性得到了保障。
參見圖39,模塊3902進一步的實施例展示了“即插即用”的功能。具體而言,駐留在模塊3902內的軟件包括多個軟件驅動程序,它們被配置為容納任何數據輸入設備。這樣可以與模塊3902分開來購買數據獲取設備(掃描儀、磁條閱讀器、智能卡等),消費者喜歡各種軟件驅動程序提供的即插即用功能。
雖然上述借助實施例描述了本發明,但是本發明的精神和實質由后面所附權利要求限定。
權利要求
1.一種位于第一地點的遠程處理系統,用于與位于遠離所述第一地點的第二地點的主機系統接口,主機系統包括主機調制解調器,并且被配置為在接收來自所述遠程處理系統數據包之后完成金融交易,所述數據包包括加密數據域,遠程處理系統的特征在于包括a.個人計算機,包括(1)配置為存儲交互軟件程序的第一存儲器段;(2)配置為執行所述軟件程序的第一處理器;(3)配置為與所述第一處理器通信的輸入端口;以及(4)配置為根據所述軟件程序從所述個人計算機向主機調制解調器發送所述數據包的第二調制解調器;b.輸入設備;以及c.串聯在所述輸入設備與所述輸入端口之間的加密模塊,包括(1)鍵盤;(2)配置為加密在所述鍵盤上輸入的數據的第二處理器;以及(3)配置為維持所述加密模塊與所述個人計算機輸入端口之間通信的數據鏈路。
全文摘要
加密金融或其它敏感數據的加密模塊可以串聯在個人計算機與相連的鍵盤之間。針對在PC上運行而設計的應用程序提示用戶將其PIN或其它機密數據輸入加密模塊;因此機密數據無需以未加密方式發送,并且無需以非加密形式駐留在PC硬盤上。
文檔編號G07F7/10GK1301437SQ98804735
公開日2001年6月27日 申請日期1998年3月13日 優先權日1997年3月24日
發明者D·B·克拉克 申請人:印諾弗尼克斯股份有限公司