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