




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
偽隨機序列及PLD實現(xiàn)在程序和系統(tǒng)加密中的應用摘要:討論了用偽隨機序列實現(xiàn)程序加密保護及其可編程邏輯器件實現(xiàn)的原理、方法和具體操作,給出了在微機軟件和單片機/DSP系統(tǒng)中程序加密的實際運用舉例。
關鍵詞:加密技術(shù)可編程邏輯器件偽隨機序列單片機系統(tǒng)DSP
可編程邏輯器件(PLD)經(jīng)歷了PAL、GAL、CPLD和FPGA幾個發(fā)展階段。使用PLD具有設計靈活、調(diào)試方便、系統(tǒng)可靠性高等眾多優(yōu)點,并有利于硬件設計的保護,防止他人對電路的分析、仿照,使其成為科研實驗、樣機試制和小批量產(chǎn)品的首選方案。
隨著計算機、單片機技術(shù)的發(fā)展和廣泛應用,軟件加密成為知識產(chǎn)權(quán)保護的重要手段。目前微機軟件加密的方法可分為兩大類:軟加密和硬加密。軟加密主要有密碼方式、軟件自校驗方式、鑰匙盤方式等多種。隨著軟加密的發(fā)展,解密軟件也大量出現(xiàn)。硬加密由于具有加密強度大、可靠性高等特點,已廣泛用于微機軟件保護。硬加密將硬件和軟件相結(jié)合來實現(xiàn)軟件的加密,軟件在運行時需與硬件正確交換數(shù)據(jù),否則程序不運行,或不能執(zhí)行主要功能,典型的產(chǎn)品有:插在計算機總線上的加密卡,接在計算機并口或USB口的軟件狗(加密鎖)、微狗等。軟件狗大多用存儲密碼數(shù)據(jù),電路簡單,成本低,但用SOFT-ICE等軟件進行軟件狗的解密和復制并不很困難。在這種情況下,軟件狗內(nèi)部增加了一個單片機稱為微狗,通過對數(shù)據(jù)的處理來提高軟件的加密強度;少數(shù)專業(yè)的硬加密生產(chǎn)商則采用獨自的ASIC芯片。加密卡的原理與軟件狗和微狗的相似,不同的是通過總線操作,使得設計更靈活、功能更強,只是安裝不方便。
隨著某一加密產(chǎn)品加密操作方式的公開,其解密也就為期不遠。新出現(xiàn)的解密軟件能模擬絕大部分軟件與加密狗間的數(shù)據(jù)交換過程,從而達到解密;國產(chǎn)的加密卡和微狗,大多外用存儲配置數(shù)據(jù)和用戶密碼,獲取這些數(shù)據(jù)就可能解密、甚至復制微狗,因此加密方法的獨特性、手法的反常規(guī)性在加密應用中非常重要。單片機/DSP系統(tǒng)的控制及外圍電路都相對簡單,對軟件的跟蹤比較容易分析硬件的設計思想和實現(xiàn)功能,而目前對其軟件的保護并不受重視,并且單片機/DSP系統(tǒng)沒有現(xiàn)成的加密產(chǎn)品,設計者應結(jié)合系統(tǒng)軟、硬件的要求靈活決定。我們利用PLD器件本身的加密保護特性,由其產(chǎn)生的偽隨機序列實現(xiàn)單片機/DSP系統(tǒng)和計算機應用程序的加密,具有簡單方便,解密難度大的特點,同樣可用PLD器件實現(xiàn)更復雜的加密方法如EDS。
1硬件加密的PLD實現(xiàn)原理
硬件加密必須綜合考慮加密方法的可行性、有效性、硬件復雜度等因素,由邏輯電路產(chǎn)生大量密碼的一種簡單有效的方法是使用線性反饋移位寄存器,其產(chǎn)生的偽隨機數(shù)據(jù)已廣泛用于數(shù)據(jù)通信中的加擾、擴頻、跳頻和數(shù)據(jù)加密。圖1所示是具有防跟蹤、產(chǎn)生個N位偽隨機數(shù)據(jù)的加密電路原理框圖,密碼生成所用觸發(fā)器和門電路少,并且密碼是加電后動態(tài)產(chǎn)生的,不同的預置產(chǎn)生的數(shù)據(jù)不同,因此密碼的強度、隱蔽性優(yōu)于加密狗和微狗(卡)。
N位移位寄存器產(chǎn)生的偽隨機碼作為讀取的密碼或輸入數(shù)據(jù)解密的密鑰,在移位時鐘的作用下,可輸出個N位的有效密碼或密鑰。對某一具體電路,移位寄存器初值不同時,這個隨機數(shù)有種排序,可預置偽隨機數(shù)產(chǎn)生器的原理電路如圖2所示。要使移位寄存器產(chǎn)生一確定的值,首先置其初值,然后置移位計數(shù)器初值并允許時鐘電路產(chǎn)生移位時鐘;當移位計數(shù)器計滿時,產(chǎn)生一個數(shù)據(jù)準備好狀態(tài)可供軟件讀取,該狀態(tài)同時阻斷時鐘電路,停止移位操作,并且啟動防跟蹤記數(shù)器的時鐘產(chǎn)生電路;若在規(guī)定的時間內(nèi)讀取密碼字或者寫入待解密數(shù)將清零防跟蹤記數(shù)器,否則超時使防跟蹤記數(shù)器滿導致觸發(fā)器翻轉(zhuǎn),打開三態(tài)門,擾亂輸出數(shù)據(jù),雖然這時讀/寫數(shù)據(jù)能清零防跟蹤記數(shù)器,阻斷其時鐘,但必須重加電或系統(tǒng)復位才能斷開三態(tài)門。
對加密電路的正確操作步驟是:在主程序中預置移位計數(shù)器和移位寄存器初值,在子程序的一處判斷移位是否完成,另一處讀密碼或?qū)懘饷軘?shù),在另一子程序判斷或取解密數(shù)據(jù),以防止跟蹤。
為在使用較少觸發(fā)器情況下保證程序正常運行并能有效地防止解密跟蹤,應恰當?shù)剡x擇防跟蹤計數(shù)器的時鐘,若用移位寄存器時鐘源,則需要較高的分頻才能滿足高速的數(shù)據(jù)產(chǎn)生、適當?shù)难訒r時間;因此在實際使用中,應根據(jù)需要,選擇系統(tǒng)可能提供的低頻持續(xù)脈沖信號作為防跟蹤計數(shù)器的時鐘。在微機系統(tǒng)中,尤其在WINDOWS操作系統(tǒng)的分時事件驅(qū)動運行模式下,由于系統(tǒng)固有的存儲器刷新、時鐘中斷,以及運行中硬件中斷、DMA操作、任務切換,必須有較長的防跟蹤延時才能保證合法程序正常運行,要注意在軟硬盤操作時對密碼數(shù)據(jù)操作的影響。
2應用舉例
2.1并行口加密電路
在PC機系統(tǒng)中,一般打印機并行接口包括單向輸出的8條數(shù)據(jù)線D0~D7和四條控制線、5條狀態(tài)輸入線,因此每次讀操作只讀取4bits密碼,其加密電路原理框圖如圖3所示。由于并行口不提供電源,將聯(lián)機控制信號SLCT置高提供的電流很小,因此直接掛在并行口上的電路必須選用規(guī)模不大的低功耗器件。
經(jīng)并行口控制移位寄存器產(chǎn)生密碼的基本操作步驟是:(1)SLCT置高加電;(2)STROBE觸發(fā)經(jīng)D0~D8寫入16位控制字,選通加密電路,否則打印口正常;(3)初始化信號INIT置低,STROBE選擇預置移位寄存器和移位計數(shù)器;(4)INIT置高選通移位時鐘;(5)檢測數(shù)據(jù)是否準備好;(6)換行控制AUTOLF置高,在STROBE脈沖作用下數(shù)據(jù)按4bits輸出供CPU讀?。唬ǎ罚㏒LCT置低斷電。
防跟蹤記數(shù)器由移位計數(shù)器滿狀態(tài)啟動,其溢出脈沖使觸發(fā)器翻轉(zhuǎn)選通三態(tài)門,擾亂輸出數(shù)據(jù)。防跟蹤記數(shù)器和移位寄存器時鐘可由門電路構(gòu)成的RC振蕩器產(chǎn)生。
2.2ISA總線加密電路
與并行口方式相比,通過總線方式對加密電路的移位寄存器和移位記數(shù)器的預置、輸入數(shù)據(jù)的異或解密等操作更靈活、方便,并可與其它電路結(jié)合,其原理框圖與圖1相似??偩€接口電路對端口地址和控制信號譯碼,產(chǎn)生移位寄存器和移位記數(shù)器輸入寫、移位寄存器及異或解密輸出讀信號,讀信號清零防跟蹤記數(shù)器并阻斷其時鐘。在ISA總線接口中,移位寄存器時鐘用OSC或總線時鐘BCLK,而防跟蹤記數(shù)器時鐘可采用移位時鐘或狀態(tài)持續(xù)變化的總線控制信號及狀態(tài)信號,如:地址鎖存信號BALE、刷新指示信號REFRESH、DMA操作允許信號AEN(因用于I/O地址譯碼,隱蔽性好)等,用REFRESH信號時計數(shù)器規(guī)模小、運行可靠,但是切斷該信號防跟蹤功能不起作用,密碼數(shù)據(jù)仍正常產(chǎn)生。
2.3單片機/DSP系統(tǒng)程序加密電路
早期的單片機系統(tǒng)大都用擴展EPROM作為程序存儲器,這種方式目前在高速單片機/DSP中仍然很常用。對于程序量小,不需外部程序?qū)ぶ返暮唵蜗到y(tǒng)(如微狗),采用內(nèi)置EPROM/FLASHRAM、帶加密控制字的MCU(如GMS97C2051)本身就能可靠地保護程序;因此我們的討論只限于用擴展程序存儲器的系統(tǒng)。
對擴展程序存儲器的加密保護可通過對其數(shù)據(jù)和地址線的異或/取反擾亂來實現(xiàn),其目的都是不能直接獲取程序存儲器內(nèi)部保存的數(shù)據(jù)。由于X=XKK,X=X,因此在系統(tǒng)工作時由硬件實現(xiàn)代碼和密鑰的異或/取反操作可得到正確的程序(文獻[2]中用二級異或提高加密強度的觀點不正確,因為Y=XK1K2=XK),其原理如圖4所示。通常單片機加密的方式是密鑰固定不變,或CPU讀取程序代碼的同時,從另一片EPROM讀取密碼,使每一代碼對應一密鑰。這兩種方式的解密只需用簡單的組合邏輯電路,對前一種方式,用邏輯分析法很容易求解邏輯關系而解密,后一種方法進行邏輯分析的工作量雖然大大提高,但密鑰本身容易被直接獲取。因此我們用m序列產(chǎn)生器動態(tài)產(chǎn)生密鑰,將解密的組合邏輯電路與時序邏輯相結(jié)合,而較復雜時序邏輯的分析是很困難的。
對8031、MC6085兼容系列的單片機系統(tǒng),編程使開始的一段初始化程序順序執(zhí)行,系統(tǒng)復位時自動對移位寄存器設初值,復位后程序存儲器的讀信號同時作為移位時鐘,使每條指令的密鑰不斷變化;在第一次執(zhí)行循環(huán)、跳轉(zhuǎn)指令前,程序發(fā)控制字阻斷移位時鐘,使以后的程序密鑰相同。在高速DSP系統(tǒng)中,一般上電后將低速EPROM中的程序加載到高速SRAM中運行,可使EPROM的讀控制信號一直作為移位時鐘,使密鑰不斷變化;如果用串行口方式加載,程序解密操作與數(shù)據(jù)通信中的數(shù)據(jù)解擾相同,數(shù)據(jù)輸出時鐘直接作為移位時鐘。單片機/DSP作為微機系統(tǒng)的協(xié)處理器時,單片機/DSP的代碼一般經(jīng)總線裝載,可將加密代碼與移位寄存器輸出的密鑰異或解密,輸出到單片機/DSP的程序RAM。
系統(tǒng)運行時,用于MCU/DSP程序保護的防跟蹤計數(shù)器時鐘一直有效,這樣可以防止仿真器的跟蹤。防跟蹤計數(shù)器要用程序讀或其相關信號清零,有的DSP從內(nèi)部RAM運行程序時,程序讀無相應輸出信號,這時可用定時器
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度購房合同因中介誤導導致的合同解除與賠償執(zhí)行合同
- 二零二五年度企業(yè)信用評級認證服務協(xié)議
- 2025年度海洋資源勘探個人勞務用工合同書
- 二零二五年度貨車司機駕駛安全教育與責任保險協(xié)議
- 二零二五年度金融科技公司干股虛擬股分紅及投資協(xié)議
- 二零二五年度汽車美容店汽車美容品牌授權(quán)合同
- 2025年度民族風情餐廳承包運營合同
- 二零二五年度土地流轉(zhuǎn)與農(nóng)村社會保障體系建設協(xié)議
- 2025年度環(huán)保產(chǎn)業(yè)員工勞動關系解除協(xié)議
- 二零二五年度黃金投資俱樂部會員招募合同
- 《團隊的凝聚力》課件
- 膝關節(jié)僵硬個案護理
- 復工復產(chǎn)檢查 清單
- 《民間皮影》課程標準
- 統(tǒng)編版一年級語文下冊部編版第六單元單元教材解讀(素材)(課件)
- 新教科版六下科學1.4《設計塔臺模型》教學設計(新課標)
- (2024版)計算機程序設計員三級備考試題庫-上(單選題匯總)
- ISO200002018版標準培訓教材
- 電氣設備維修
- 教科版六年級下冊科學第一單元《小小工程師》教材分析及全部教案(定稿;共7課時)
- 森林專業(yè)撲火隊培訓課件
評論
0/150
提交評論