一種基于計算機(jī)總線的CPLD加密電路設(shè)計
隨著軟件產(chǎn)品的廣泛應(yīng)用,對軟件的知識產(chǎn)權(quán)保護(hù)也開始重要。軟件產(chǎn)品通過系列號碼加密,每一個軟件均有唯一的產(chǎn)品系列號碼。軟件產(chǎn)品配置加密電路板后,軟件產(chǎn)品和該產(chǎn)品軟件加密板同時售出,用戶在使用時一套軟件要配備一塊加密板,通過控制加密板,就可以保證軟件產(chǎn)品安全。
計算機(jī)訪問外部設(shè)備地址
計算機(jī)系統(tǒng)是通過主板上的I/O接口地址來實現(xiàn)訪問外部設(shè)備的。例如,讀取硬盤中的數(shù)據(jù)是通過直接訪問1F0"1F7H 的接口地址,也就實現(xiàn)了訪問硬盤的操作。當(dāng)鼠標(biāo)器連接到串行口COM2時,計算機(jī)在上電復(fù)位時自動啟動鼠標(biāo)的串行通訊功能。其中并行接口LPT1和 LPT2為專用打印機(jī)使用,地址分別是278"27FH、378"37FH。計算機(jī)接口被不斷的開發(fā),并行接口已經(jīng)有了更多的用途。
基于ISA總線的加密電路
利用計算機(jī)ISA總線設(shè)計一個密碼電路,可以實現(xiàn)加密的目的。ISA總線加密電路利用Xilinx等公司可編程邏輯器件 (CPLD)可以設(shè)計一組加密電路。在電路中,IC1 是Xilinx公司的可編程邏輯器件XC9572,有84個引腳,其中可作為I/O的有68個引腳,內(nèi)部有1600個邏輯門,72個宏單元,響應(yīng)速度 7"15ns。P1是ISA總線引腳。D0"D7是計算機(jī)訪問外部設(shè)備的8位數(shù)據(jù)總線,a0"a19是訪問外部設(shè)備的20條地址總線,ior是讀外部設(shè)備數(shù)據(jù)信息的讀選通線,iow是向外部設(shè)備發(fā)送信息或命令的寫選通線,rst是計算機(jī)的復(fù)位線,在復(fù)位時,加密卡與計算機(jī)同時復(fù)位。
將ISA總線的地址a(19,0)、ior、iow和aen經(jīng)過譯碼作為片選、時鐘,對一組觸發(fā)器電路進(jìn)行操作,就能夠讀取密碼數(shù)據(jù)。在選擇地址時,a(10)"a(19)為空,既隨機(jī)狀態(tài)。加密電路地址可以選擇打印機(jī)接口地址278H、279H、27AH。例如選擇 278H,在加密電路中,通過地址278H讀取一組低8位數(shù)據(jù)D(7,0),就能夠作為軟件運行的密碼,控制軟件是工作還是退出。在圖中,利用 Xilinx公司的Project Navigator軟件設(shè)計了一組只讀八-D觸發(fā)器電路,并將觸發(fā)器的輸入端A1、A2、A4、A5、A8設(shè)置為“1”電平,把A3、A6、A7設(shè)置為 “0”電平,當(dāng)讀取觸發(fā)器時有恒定數(shù)據(jù)9BH,此數(shù)據(jù)即為密碼。
其中ISA總線的選通278H地址的邏輯公式是:
G1 = "a" * "a" * "a" * "a" * /"a" * /"a" * /"a" * /"a" * /"a" * /"a" */aen */ ior (1)
基于PCI總線的加密電路
計算機(jī)的PCI總線被普遍應(yīng)用,一些速度快、內(nèi)存容量大的新型計算機(jī)主板已經(jīng)以PCI總線為主。PCI總線的特點是體積小,速度快。設(shè)計計算機(jī)的板卡利用PCI總線是大勢所趨。利用PCI總線設(shè)計加密電路,電路中利用了華邦(Winband)公司生產(chǎn)的計算機(jī)PCI總線接口電路W89C940,最大運行速度是10MS。PCI總線與ISA總線在工作原理上有所區(qū)別。PCI總線卡必須擁有驅(qū)動程序,不同功能的計算機(jī)卡的驅(qū)動程序也不相同,因此計算機(jī)所有的PCI總線電路都必須配備一只串行EEPOAM ,例如AT93C46,用來存放驅(qū)動碼。
對加密電路進(jìn)行設(shè)計時,同樣利用Xilinx公司的Project Navigator軟件設(shè)計一組可以寫數(shù)據(jù)、再讀數(shù)據(jù)的八-D觸發(fā)器電路。電路的數(shù)據(jù)D[7:0]經(jīng)過輸入緩沖器BUFE8輸入到八-D觸發(fā)器,其控制選通端是IN,當(dāng)IN信號為“1”時,數(shù)據(jù)D[7:0]輸入到觸發(fā)器,并且鎖存數(shù)據(jù);當(dāng)輸出選通信號OUT為“1”時,輸出數(shù)據(jù)Q[7:0]傳輸?shù)? D[7:0],即讀取八-D觸發(fā)器的數(shù)據(jù)。計算機(jī)軟件在運行時,通過寫、讀數(shù)據(jù)就起到加密的作用。
并行接口的加密電路
并行加密電路的設(shè)計都是選用計算機(jī)的并行打印機(jī)接口。計算機(jī)的打印機(jī)接口LPT1,數(shù)據(jù)傳輸形式、連接器插座等在 IEEE1284中有明確的規(guī)定。其主要特性是,數(shù)據(jù)傳送總線DB7"DB0,打印機(jī)工作忙時,pin1是數(shù)據(jù)鎖存信號,pin10是打印機(jī)接收數(shù)據(jù)。 Atmel公司的EEPROM器件AT93C46,具有比較低的工作電流,所以將其正電源VCC連接到ERR端。其工作方式是首先輸入控制字,讀取數(shù)據(jù)就寫入讀控制字,寫器件就寫入寫控制字,之后才能讀或?qū)?6位(16bit)數(shù)據(jù)。讀操作過程是,寫入讀控制字,寫入7位(7bit)地址,接下來就可以在輸出端接收數(shù)據(jù),每當(dāng)輸入一個時鐘,就有一位(1bit)輸出,輸出16位后自動結(jié)束。打印機(jī)接口的加密電路可以設(shè)計許多種方式,例如;時間電路,寫入電路的數(shù)據(jù)與讀出數(shù)據(jù)的時間相關(guān)。
結(jié)語
經(jīng)過實際設(shè)計證明,基于計算機(jī)總線設(shè)計加密電路的方法,方便實用。這種方法的結(jié)構(gòu)簡單,利用CPLD設(shè)計加密電路方便可行,能夠比較好地實現(xiàn)加密功能。計算機(jī)加密電路的設(shè)計有多種方法,各種方法具有不同的優(yōu)缺點。實際上,在電路的設(shè)計過程中,可以增加一些邏輯功能用來實現(xiàn)功能加密、工作狀態(tài)加密、實時數(shù)據(jù)加密等電路,這樣能夠更好地起到真正加密的作用。