引言
在信息化時代的今天,計算機技術的飛速發(fā)展,給人們的生產和生活帶來了巨大便利,以前復雜的工作,現在只要單擊鼠標即可完成,因此,計算機已經成為人們日常工作和生活的一部分,人們對計算機的依賴程度越來越高,沒有計算機的生活簡直難以想象。隨著計算機在生產和生活中占劇比重的加大,信息安全問題也顯得突出重要,失泄密案件時有發(fā)生。小到企業(yè)商業(yè)機密被竊取,給企業(yè)造成巨大的經濟損失;大到國家安全和軍事機密被竊取,給人民的生命財產安全帶來嚴重威脅。在鐵路軍交管理系統(tǒng)中,對軍列的調度是采用密碼管理的,這些密碼標識了重要的軍事目標,同時也只有通過此密碼才能訪問調度軟件,從而調度軍列。如果這些密碼失竊,重要的軍事目標將暴露,同時對軍列的調度將出現混亂甚至引發(fā)安全事故。因此,對這些密碼進行管理顯得尤為重要。在這樣的背景下,本文研制了一種能有效安全管理機密數據的密碼卡。
1 CH365的功能特點
現在主流的PCI接口芯片是PLX公司的PCI905x系列芯片,此類芯片功能強大,有多種工作模式,數據傳輸速率高,但價格相對偏高,而且需要編寫相應的硬件驅動程序。而CH365則是一款國產的廉價PCI接口芯片,它可以將PCI總線的時序轉換為類似ISA總線時序,以便于后續(xù)與數字信號處理器、FPGA以及MCU等接口。由于CH365的生產廠商提供了豐富的硬件驅動程序,因此,軟件編程人員只要調用相應廠商提供的動態(tài)連接庫,即可完成對器件的操作,而且操作十分簡便。
CH365支持I/O端口映射、存儲器映射、擴展ROM以及中斷。CH365可將32位高速PCI總線轉換為簡單的類似于ISA總線的8位主動并行接口,以用于制作低成本的、基于PCI總線的計算機板卡,也可將原先基于ISA總線的板卡升級到PCI總線上。PCI總線與其它主流總線相比,速度更快,實時性更好,可控性更佳,所以,CH365非常適用于高速實時的I/O控制卡、通訊接口卡、數據采集卡、電子盤、擴展ROM卡等。它的主要特點如下:
(1)可將基于32位PCI總線的從設備接口轉換為主動并行接口,包括8位數據,16位地址,I/O讀和寫,存儲器讀和寫;
(2)可以設定PCI板卡的設備標識(VendorID,Device ID,Class Code等);
(3)能以字節(jié)、字或雙字為單位對I/O端口或者存儲器進行讀寫;
(4)支持本地硬件定址功能,可自由選擇I/O地址;
(5)直接升級ISA板卡到PCI總線,完全不需要修改I/O板卡的相關軟件;
(6)芯片本身無需驅動程序即可工作,而且升級ISA板卡可以不需要軀動程序。
2 CH365的內部結構和信號線
圖1所示是CH365內部的主要結構。CH365對PCI總線的各種信號進行譯碼后,可產生內部數據總線D31~D0、內部地址總線 A31~A0、讀寫I/O端口信號、讀寫存儲器等信號。結構圖右側的信號是CH365提供給本地端的各個外部引腳。地址線A15~A0用于提供相對于基址的偏移地址:數據總線D7~D0在讀操作時用于輸入數據,在寫操作時用于輸出數據;IOP_RD用于提供I/O讀選通脈沖信號;IOP_WR用于提供 I/O寫選通脈沖信號;MEM_RD用于提供存儲器讀選通脈沖信號,MEM_WR用于提供存儲器寫選通脈沖信號。由于CH365提供的地址線、數據線、讀寫選通信號線類似于ISA總線的信號線,所以,非常適合將ISA板卡升級到PCI總線上。在I/O讀寫操作期間,CH365的A7~A0輸出的是I/O端口的偏移地址,它提供給外部設備的有效偏移地址范圍是00H~EFH,外部設備可進一步對A7~A0進行譯碼以產生二級片選信號。在I/O操作期間,CH365的A15~A10保持不變,但可以由內部寄存器事先設定為高電平或低電平。如果使用本地硬件定址功能,則可以對A9~A0進行地址譯碼,并通過IOP_HIT引腳向CH365請求本地定址,以實現與ISA總線相兼容的000H~3FFH地址范圍內的I/O端口地址。在存儲器操作期間,CH365的A14~A0可輸出存儲器的偏移地址,提供給外部設備的有效偏移地址范圍是0000H~7FFFH。在存儲器讀寫操作期間,CH365的 A15保持不變,但可以由內部寄存器事先設定為高電平或低電平,以用于存儲器地址線的擴展或者頁面選擇。
3 PCI總線的數據密碼卡硬件設計
3.1 數據密碼卡的組成
數據密碼卡實際上就是一個基于計算機PCI總線的板卡。它區(qū)別于普通板卡的地方主要是這塊板卡中包含了大量的加密后的機密數據,這些數據存于板卡的FLASH存儲器中。在軍交系統(tǒng)中,這些數據代表了車輛的編組調度等信息,軍交管理軟件直接應用解密后的數據來對車輛實施調度,但這些解密后的數據對操作人員來說是透明的。為了防止不法分子蓄意破解數據,上級主管部門會不定期的將原始數據重新加密,然后寫入FLASH存儲器中,再將重新加密過的 FLASH存儲器下發(fā)給各個部門。采取多種加密策略的目的主要是為了防止數據密碼卡被盜,或者其中的FLASH存儲器被盜而使密碼被破譯。
數據密碼卡的組成框圖如圖2所示。
3.2 CPLD設計
CPLD的設計是本數據密碼卡的核心。設計選用LATTICE公司生產的LATYICE1032。它所包含的模塊主要有三塊。其一是數據密碼卡訪問合法性確認和數據解密模塊;其二是地址譯碼模塊;三是ROM地址產生器模塊。其頂層設計圖如圖3所示。
4 各模塊核心部分的ABEL語言實現
4.1 ROM地址產生模塊
下面是產生ROM地址的程序代碼:
addrl:=addrl+1:
when addr1==^hlff then c0=1
else c0=0;
when e0 then addr2:=addr2+1
else addS:=addr2;
從上述程序中可以看出,ROM中的數據不是按照地址順序排放的,也就是說,即使是得到了這片ROM,用編程器把數據讀出,讀出的數據也是無法破解的。[!--empirenews.page--]
4.2 訪問合法性確認和數據解密模塊
訪問合法性確認和數據解密程序代碼如下:
該操作的保密措施主要是兩點:一是在當訪問者所輸入的權限密碼正確后,才能使pass0~pass4信號有效,從而使OE信號有效來讀取ROM 中的數據;二是從ROM中讀到的數據,還必須經過解密后才能得到真正的數據,解密的措施是ROM中讀到的數據與某一數據進行異或處理。
5 結束語
基于CH365設計的PCI總線數據密碼卡與PCI總線的接口比較簡單,數據保密性強,操作簡單。目前此卡已成功用于鐵路調度系統(tǒng)之中。(中電網 作者:張顯才 韓德紅)