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