摘? 要: 隨著工業信息技術的飛速發展,工業上傳輸數據的安全性越來越差,而數據加密" title="數據加密">數據加密是保證信息安全的一種有效手段。探討了采用DES和RSA混合加密方式實現計算機網絡通信中的信息安全的方案。?
關鍵詞: 實時; DES; RSA; 混合加密?
?
信息加密" title="信息加密">信息加密技術主要應用于以PC機或工作站為基礎的軟件領域,只作為大多數信息加密系統的一個軟件插件,運行時不能與計算機并行工作,且需要占用大量的CPU時間和資源,使得系統加密速度、安全性等方面的需求得不到很好的滿足[1]。此外,由于目前大多常用的操作系統和系統軟件均是國外研制和開發的,國內重要機構或企業使用這些系統是否真正安全還有待商榷,采用軟件實現的加密系統很可能會留下被竊取機密信息的機會,所以采用硬件系統" title="硬件系統">硬件系統實現重要信息的保密工作是十分必要的。如果把數字簽名技術直接應用于嵌入式實時數據系統中,以經過特殊設計的硬件系統進行加密,其應用范圍將會更廣、安全系數更高、加密速度也會更快。?
1 硬件電路?
1.1 信息加密系統原理?
該信息加密系統的工作原理是:首先將被測信號經A/D(TLV2544)轉換器進行數模轉換后,在DMA控制下,將輸出數據通過TMS320VC5402 DSP[2]的McBSP口傳輸到內存中對原始數據進行DES加密,然后再對DES密鑰進行RSA加密。在加密后,將處理好的數據存儲到指定內存中,然后在PCI2040控制下,將密文數據通過DSP的HPI口,經PCI總線傳輸到主機上。其具體硬件框圖如圖1所示。?
?
?
1.2 數據采集與傳送模塊?
該系統利用DSP的多通道緩沖串口McBSP和DMA功能相結合完成目標信號的采集和傳輸。在該電路中,由DSP的McBSP0口來控制A/D轉換電路的工作,首先由內部時鐘發生器對DSP工作時鐘進行分頻產生所需的發送時鐘信號CLKX0,再由幀同步發生器將CLKX0信號分頻產生發送幀同步信號FSX0。信號的接收和發送時序相同,所以接收時鐘信號CLKR0和接收幀同步信號FSR0可以直接使用CLKX0信號和FSX0信號。McBSP通過其數據輸出口DX0發送控制字" title="控制字">控制字到TLV2544的SDI口,該控制字為16位,如果TLV2544接收到的前4位是1010,則接下來的12位就會被當作控制字譯碼;而如果前4位接收到的是1110,則TLV2544將繼續輸出FIFO的內容到SDO中。當TLV2544按DSP發出的控制字轉換到某一狀態(如FIFO堆棧滿)時,則發出EOC/INT信號通知DSP接收,DSP接收到轉換結束信號后,經DR0口讀入TLV2544已轉換好的串行數據。其電路連接圖如圖2所示。
?
?
1.3 主機接口模塊設計?
本系統利用 PCI[3] 總線通過 DSP 的 HPI 口把加密后的數據傳送到主機設備或服務器。首先,由串行EEPROM AT24C01A作為PCI配置寄存器,通過串行數據(SDA)、串行時鐘(SCL)引腳與PCI2040連接,并將GPIO0、GPIO1經上拉電阻與VCC相連。當系統上電復位后,檢測到GPIO0和GPIO1為高,此時表明存在串行ROM,可自動完成PCI2040的配置,接著就可以進行PC和DSP的數據傳輸了。兩者之間的傳輸通過HPI接口實現,其傳輸過程如下:?
(1) 軟件清除HPI復位寄存器。?
(2) 解碼從PCI總線來的地址,如果在32KB的控制空間中,則響應PCI周期,并給出片選信號及HCNTL[1~0]訪問相應的HPI寄存器。?
(3) 主機初始化HPI控制寄存器的BOB位,選擇正確的字節定位方式。?
(4) 主機在HPI地址寄存器中設定正確的HPI空間地址,通過裝載HPI的地址寄存器,使DSP完成一次HPI存儲器訪問,此時數據就被放到了HPI數據寄存器中。?
(5) 主機從HPI數據寄存器中讀/寫數據。?
讀周期,HWIL信號為低時,HAD[7~0]引腳上出現的是第一個字節,為高時就是第二個字節。讀HPI的存儲器時,給定地址的內容傳送到二個8位的鎖存器,按照先低后高的順序依次鎖存,接著讀取HPI存儲器給定地址指向的2個字的內容。為使主機高效訪問HPI存儲器的連續數據塊,采用地址自動增加的方式(設置HCNTL0和HCNTL1為01),地址自動加1,存儲器的下一個數據鎖存到鎖存器,主機再讀HPID,重復即可完成數據的讀操作。其原理圖如圖3所示。
?
?
2 系統軟件算法的實現?
DES[4]算法和RSA算法是數據加密中久經考驗的比較優秀的算法,DES算法具有密碼使用簡便及處理速度快等優點,RSA算法則不需要秘密分配密鑰并且密鑰的安全管理也很容易。但兩種算法仍在處理效率、密鑰管理等方面存在著不足。為了充分利用DES和RSA兩種算法的優點, 而同時避免它們的缺點,該系統選擇了RSA算法與DES算法綜合使用加密體制的方法,利用DES算法保密強度高、計算開銷小、處理速度快的優點,對采集的原始數據加密,保存好對稱加密密鑰及密文;再利用RSA算法便于密鑰管理和分發、便于數字簽名的特點,對DES算法加密所用的密鑰再加密。這樣就如同設計了一個數字信封,用戶只有在得到了對原始數據做DES加密后的密文1、DES加密時所用密鑰經RSA加密后的密文2及RSA加密所用公鑰相對應的私鑰這三種技術后才能解出原始數據。解密流程是加密流程的逆過程,即:用RSA私鑰對密文2進行RSA解密操作,解出DES加密所用的密鑰,再用此密鑰對密文1進行DES解密操作,從而得到所需的原始數據。其加密主程序" title="主程序">主程序流程圖和解密主程序流程圖分別如圖4、如圖5所示。?
?
?
?
該信息加密系統強調對數據的實時加密,在得到原始數據后,要求第一時間進行加密保護并存儲,至于接下來對密文的處理,可以在本地計算機上或通過網絡傳遞到任意遠的終端計算機上,利用其解密程序及密鑰來復原先前采集的現場數據或資料。所以,該系統采用加密主程序與解密主程序分開運行的策略,其中,加密子系統主程序用硬件實現,即在本系統所設計的 DSP硬件系統上運行;解密子系統主程序可以安裝到任意一臺日常用計算機上,只要取得與DSP硬件系統所用加密密鑰對應的解密密鑰,就可以方便地解出密文數據。?
本文提出了一種把數字簽名核心算法應用于以TMS320VC5402 DSP芯片為內核的單板硬件環境中。在增加一定硬件開銷的前提下,使加密算法的運算速度明顯提高,可靠性也大大加強。同時在該硬件環境下,提出了DES和RSA的混合加密方法,使信息傳輸的安全系數大大提高。該信息加密系統不但能起到傳統數據加密的作用,而且由于其體積小、攜帶方便,可廣泛應用于重要數據的現場加密或其他一些需要第一手加密數據的場合。?
參考文獻?
[1] 孫立新,王慕坤. 基于RSA算法的數據加密卡的設計[J]. 哈爾濱理工大學學報, 2003,8(5):112-114.?
[2] 張勇.C/C++語言硬件程序設計-基于TMS320C5000系列DSP[M]. 西安:西安電子科技大學出版社, 2003.?
[3] 馬磊.PCI2040在DSP與PCI總線接口中的應用[J].電子技術, 2001,(1):53-55.?
[4] 周克儉,左孝凌.基于DES和RSA的網絡數據安全系統[J].計算機工程與應用,1998,(9):5.