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