火控系統(tǒng)軟件如何加密
火控系統(tǒng)是控制射擊武器自動實施瞄準與發(fā)射的裝備的總稱,同時火控系統(tǒng)軟件也是我國科研技術人員智慧的結晶,如何保障這一科研成果不被他人無償享用,所以我們需要在火控系統(tǒng)軟件設計的時候對其進行加密,這樣才能更好的保護我們的權益。
一、火控系統(tǒng)軟件
火控系統(tǒng)軟件作為一種專用的實時控制軟件,其載體一般為只讀存儲器ROM,其運行環(huán)境為自行設計的專用計算機,它不同于其它商用軟件,并不要求能夠在通用PC機使用。
基于以上特點,我們在設計火控軟件時,應充分考慮火控軟件所處的硬件環(huán)境,對其加密必須貫穿于整個程序。
根據(jù)火控軟件的特點,對其加密時所采用的主要技術有:
①密文技術-—一防靜態(tài)分析;
②反跟蹤技術一防動態(tài)分析。
二、火控系統(tǒng)軟件加密的實現(xiàn)
一般地,分析一個軟件采用以下兩種方法——靜態(tài)分析法和動態(tài)分析法。靜態(tài)分析法主要利用一些反匯編工具將機器碼反匯編成匯編語言代碼來進行分析,而動態(tài)分析法則利用一些常用的調(diào)試工具軟件對其進行動態(tài)跟蹤。
1、密文生成算法
對抗靜態(tài)分析,只要將程序代碼變?yōu)槊艽a即可,目前有許多方法,如DES法、RSA法,這些算法抗攻擊強度很高,但開銷太大,一般常用于通信領域;對于計算機軟件加密,由于采用密文技術主要是為反跟蹤和抗分析而設的,加密算法本身并不要求太復雜,只要其不能輕易被破解即可,目前計算機加密系統(tǒng)用的最多的加密算法是仿射變換法,我們使用的邏輯異或算法和循環(huán)移位算法就屬于這種算法,下面的程序能對256個字節(jié)進行加密處理:

這里,密鑰為與機器運行環(huán)境有關的數(shù)據(jù),如開關量代碼、可編程邏輯器件之狀態(tài)字(節(jié))或寫入到EPROM中的數(shù)據(jù)等,相應地,我們可以編寫出以下解密代碼:

2、反跟蹤技術
反跟蹤的目的是阻止解密者利用一些常用的調(diào)試工具如DEBU G、CV、TV等來弄清程序的執(zhí)行過程和加密的思路,從而有效地保護加密的思想,提高加密強度。
要實現(xiàn)反跟蹤,有兩種途徑:第一種為破壞跟蹤環(huán)境,使跟蹤者跟蹤不了幾步就死機;另一種為反窮舉法,使解密者在“耗盡精力”之前不能進行實質性的跟蹤,只要我們將密文技術和反跟蹤技術有機地結合起來,就可以有效地對付解密者的跟蹤。
目前已經(jīng)使用的反跟蹤方法很多,常用的有破壞中斷向量表、大循環(huán)多出口、隱蔽轉移、階梯式脫密、破壞堆棧、逆指令流法和封鎖鍵盤等。本文根據(jù)火控軟件的特點,有機地將封鎖鍵盤、破壞中斷向量表、隱蔽轉移、階梯式脫密等方法結合起來,使整個反跟蹤模塊成為不可逾越的技術。
設計一個加密的火控軟件,關鍵在于充分考慮其所處的硬件環(huán)境,火控軟件只有在其特定的硬件環(huán)境下,才可以正常運行,這就必須使用各種開關量代碼、狀態(tài)字等作為密鑰,亦可將它們通過一定的算法處理作為密鑰。
下面是部分反跟蹤程序模塊:


從上面程序可以看出,反跟蹤程序是不可逾越的,只有一步一步跟蹤才能找到火控軟件的真正入口點,如果我們加大反跟蹤程序的長度(一般6...8K即可),則勢必拖跨解密者,使其半途而廢。
3、總框圖
由于火控軟件的載體一般為EPROM,而被加密軟件要運行必須將程序還原,為此,必須將ROM中的程序移入RAM中才能執(zhí)行。

小知識之EPROM
EPROM由以色列工程師Dov Frohman發(fā)明,是一種斷電后仍能保留數(shù)據(jù)的計算機儲存芯片——即非易失性的(非揮發(fā)性)。它是一組浮柵晶體管,被一個提供比電子電路中常用電壓更高電壓的電子器件分別編程。一旦編程完成后,EPROM只能用強紫外線照射來擦除。通過封裝頂部能看見硅片的透明窗口,很容易識別EPROM,這個窗口同時用來進行紫外線擦除。









