羅 海
(湖南工貿(mào)技師學(xué)院, 湖南 株洲 412006)
所謂加密就是將原來沒有進(jìn)行信息修改的明文轉(zhuǎn)化為修改后的密文。通常需要加密的:一是保存在某種介質(zhì)中的文件或數(shù)據(jù),二是網(wǎng)絡(luò)傳輸或無線傳輸過程中的數(shù)據(jù)[1]。本文針對于保存在硬盤或U 盤中的文件進(jìn)行加密。
對于傳統(tǒng)的方法相信很多人會選擇用壓縮軟件壓縮的同時設(shè)置密碼,也可以選擇第三方加密軟件,如常見的加密軟件有金舟文件夾加密大師、加密俠、超級加密3000、Encrypt Care、天盾加密軟件等等,通常會采用各種先進(jìn)的加密算法,如AES、Blowfish、CAST、DES、IDEA、RC2、RC4、TEA、ECC、RSA、SHA、PKCS、SSF33、SSF28 和SCB2(SM1)等等,其中SSF33、SSF28、SCB2(SM1)是國家密碼局的隱蔽不公開的商用算法,在國內(nèi)民用和商用的,除這些是不容許使用外,其他的都可以使用。目前使用的加密算法主要有哈希算法、對稱加密算法、非對稱加密算法三大類。
其實第三方軟件加密也不一定是最保險的加密方式,因為第三方加密軟件無非都是采用國際加密算法,不管是一種算法還是混合算法,都是公開的算法,比如用壓縮軟件設(shè)置的密碼,現(xiàn)在網(wǎng)絡(luò)上有很多破解工具,能秒破密碼。而利用第三方加密專用工具的,只要聯(lián)系軟件公司照樣不在話下,有的計算機高手甚至能自己破解。原因是大家都使用公開的常用加密算法[2]。
因此,最安全的加密就是只有使用人自己才知道,而且不是外界公開的加密算法,才能保證數(shù)據(jù)不外泄。
Windows 內(nèi)部有個工具命令certutil,它有很多功能參數(shù),如證書管理、服務(wù)器與數(shù)據(jù)庫管理、注冊表管理、編碼與解碼功能等,詳細(xì)解說可以到網(wǎng)上搜索。在這里我們就只需要用到以下編碼與解碼功能四個參數(shù)即可。
表1 編碼與解碼參數(shù)
先將那些用記事本可編輯或不可直接編輯的圖片、視頻、電子表、數(shù)據(jù)庫、壓縮包等文件轉(zhuǎn)換為可編輯的編碼文件,然后對這些編碼進(jìn)行編輯再保存。
下面我們以一個記事本文檔為例進(jìn)行一次簡單加密的過程示范。
1)先在一個文件夾內(nèi)放一本“論語.txt”記事本文件,如圖1 所示。
2)CMD 到當(dāng)前文件夾后輸入“certutil-encode論語.txt 論語.lock”命令,系統(tǒng)就會用certutil 命令對“論語.txt”文本文檔轉(zhuǎn)換成base64 編碼格式輸出到“論語.lock”文件中,如下頁圖2 所示。
3)用記事本打開就會出現(xiàn)我們?nèi)庋蹮o法理解的代碼,如下頁圖3 所示,即使是視頻文件也可以轉(zhuǎn)換成這種編碼文件。
4)編碼調(diào)整(加密算法的選用):編輯的方法有很多,比如添加法、替換法、整行調(diào)整法、分割法、截取法。根據(jù)不同的實際情況選用不同的加密方法,如果周圍的人都是不太懂電腦的和短時間內(nèi)使用,那相信到這里就已經(jīng)足夠了。而如果周圍的人如果有計算機基礎(chǔ)知識,就可能會破解。
先用替換法:經(jīng)觀察整個編碼文件,發(fā)現(xiàn)數(shù)字“5”的出現(xiàn)次數(shù)較多,那么現(xiàn)在就用最簡單的方法,即用另外一組代碼來代替數(shù)字“5”,這里用“5a5”替換數(shù)字“5”,通過修改編碼內(nèi)容的方式達(dá)到不能直接解密獲得原始文檔的目的。
用“certutil-decode 論語.lock 論語de.txt”命令解碼后,還是用記事本打開,發(fā)現(xiàn)里面全是亂碼,如圖4所示。把原文件用快捷鍵“Shift+del”鍵刪除,別人即使得到你的“論語.lock”文件也無法知道文件的具體內(nèi)容。
但是,如果替換不理想,如圖5 所示,部分內(nèi)容是亂碼,還有很多部分是原文,這樣也會造成信息泄露。
個人建議,像記事本、PHP、ASP、XML 以及Word等文件最好先用壓縮軟件將單個或文件夾壓縮成zip、rar 等類型文件,然后再編碼化,效果會非常好。
編碼位置調(diào)整法:尤其對視頻、音頻、圖形設(shè)計等專業(yè)軟件的特殊格式文檔更加有效。
此外,還可以用添加法、替換法、整行調(diào)整法、分割法、截取法以及混合多種方法進(jìn)行加密,若是會使用批處理程序編寫,可以做更多、更復(fù)雜的處理。
例如,先用替換法,用單行或多行對換法,再用分割法,把帶“——-”的頭行和尾行刪掉,接著把里面的代碼分成兩到三個文件,將其它文件的文件名和后綴進(jìn)行修改進(jìn)行誤導(dǎo)。
加密文件比較多或者時間長了會忘記具體的步驟,所以我們要創(chuàng)建自己的編碼調(diào)整方法與記錄,也可以稱作為密鑰。
例如:5H5a5L123T1~567
含義:將編碼5 替換為5a5;讓編碼中第1、2、3行與15、16、17 行對調(diào)。密鑰中的H 代表替換、T 代表對調(diào)、L 用于間隔和防止密鑰丟失后迷惑他人所用。還可以添加一些其它的指令起到迷惑作用。
經(jīng)常需要加密的人員可以建立自己固定或不固定密鑰機制,這樣即使密鑰很多或者時間很久也能很快知道其加密步驟。
解密與加密的步驟相反,先用記事本打開“論語.lock”文件,再用數(shù)字“5”替換“5a5”,讓編碼中第1、2、3 行與15、16、17 行重新調(diào)整回來位置。執(zhí)行命令“certutil-decode 論語.lock 論語.txt”就會得到我們原來的初始文件,如圖7 所示。
不過,像記事本文件最好是用先用壓縮軟件壓縮成zip,rar 等格式,然后再進(jìn)行加密,否則會出現(xiàn)部分加密成亂碼,而還有部分文字還是原文,造成信息泄露。
任何一種加密與解密的最大難點其實就是知道其算法,如果會批處理程序,可以先計算總行數(shù)A 后讓第N 行的M個字符與L 行的M個字符進(jìn)行對調(diào),這樣一次循環(huán)直至最后一行。甚至可以采用更復(fù)雜的方式,只要你自己密鑰或者整個批處理這樣的密鑰機制文件不被別人發(fā)現(xiàn)。
經(jīng)過多次測試,除了本次使用的txt 文檔,還對其他jpg、mp4、avi、doc、xls、zip 等格式文件以及UG、flash等專業(yè)軟件的文檔進(jìn)行加密、解密,都能正常使用。此方法尤其適用于不能使用外網(wǎng)的保密單位,對各類技能競賽等需短期保密的文件,非常實用。
如果文件不太重要、自己也不會編寫批處理程序,或者多人使用且太過繁瑣、文件龐大等情況下,建議采用第三方工具。