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