罗 海
(湖南工贸技师学院, 湖南 株洲 412006)
所谓加密就是将原来没有进行信息修改的明文转化为修改后的密文。通常需要加密的:一是保存在某种介质中的文件或数据,二是网络传输或无线传输过程中的数据[1]。本文针对于保存在硬盘或U 盘中的文件进行加密。
对于传统的方法相信很多人会选择用压缩软件压缩的同时设置密码,也可以选择第三方加密软件,如常见的加密软件有金舟文件夹加密大师、加密侠、超级加密3000、Encrypt Care、天盾加密软件等等,通常会采用各种先进的加密算法,如AES、Blowfish、CAST、DES、IDEA、RC2、RC4、TEA、ECC、RSA、SHA、PKCS、SSF33、SSF28 和SCB2(SM1)等等,其中SSF33、SSF28、SCB2(SM1)是国家密码局的隐蔽不公开的商用算法,在国内民用和商用的,除这些是不容许使用外,其他的都可以使用。目前使用的加密算法主要有哈希算法、对称加密算法、非对称加密算法三大类。
其实第三方软件加密也不一定是最保险的加密方式,因为第三方加密软件无非都是采用国际加密算法,不管是一种算法还是混合算法,都是公开的算法,比如用压缩软件设置的密码,现在网络上有很多破解工具,能秒破密码。而利用第三方加密专用工具的,只要联系软件公司照样不在话下,有的计算机高手甚至能自己破解。原因是大家都使用公开的常用加密算法[2]。
因此,最安全的加密就是只有使用人自己才知道,而且不是外界公开的加密算法,才能保证数据不外泄。
Windows 内部有个工具命令certutil,它有很多功能参数,如证书管理、服务器与数据库管理、注册表管理、编码与解码功能等,详细解说可以到网上搜索。在这里我们就只需要用到以下编码与解码功能四个参数即可。
表1 编码与解码参数
先将那些用记事本可编辑或不可直接编辑的图片、视频、电子表、数据库、压缩包等文件转换为可编辑的编码文件,然后对这些编码进行编辑再保存。
下面我们以一个记事本文档为例进行一次简单加密的过程示范。
1)先在一个文件夹内放一本“论语.txt”记事本文件,如图1 所示。
2)CMD 到当前文件夹后输入“certutil-encode论语.txt 论语.lock”命令,系统就会用certutil 命令对“论语.txt”文本文档转换成base64 编码格式输出到“论语.lock”文件中,如下页图2 所示。
3)用记事本打开就会出现我们肉眼无法理解的代码,如下页图3 所示,即使是视频文件也可以转换成这种编码文件。
4)编码调整(加密算法的选用):编辑的方法有很多,比如添加法、替换法、整行调整法、分割法、截取法。根据不同的实际情况选用不同的加密方法,如果周围的人都是不太懂电脑的和短时间内使用,那相信到这里就已经足够了。而如果周围的人如果有计算机基础知识,就可能会破解。
先用替换法:经观察整个编码文件,发现数字“5”的出现次数较多,那么现在就用最简单的方法,即用另外一组代码来代替数字“5”,这里用“5a5”替换数字“5”,通过修改编码内容的方式达到不能直接解密获得原始文档的目的。
用“certutil-decode 论语.lock 论语de.txt”命令解码后,还是用记事本打开,发现里面全是乱码,如图4所示。把原文件用快捷键“Shift+del”键删除,别人即使得到你的“论语.lock”文件也无法知道文件的具体内容。
但是,如果替换不理想,如图5 所示,部分内容是乱码,还有很多部分是原文,这样也会造成信息泄露。
个人建议,像记事本、PHP、ASP、XML 以及Word等文件最好先用压缩软件将单个或文件夹压缩成zip、rar 等类型文件,然后再编码化,效果会非常好。
编码位置调整法:尤其对视频、音频、图形设计等专业软件的特殊格式文档更加有效。
此外,还可以用添加法、替换法、整行调整法、分割法、截取法以及混合多种方法进行加密,若是会使用批处理程序编写,可以做更多、更复杂的处理。
例如,先用替换法,用单行或多行对换法,再用分割法,把带“——-”的头行和尾行删掉,接着把里面的代码分成两到三个文件,将其它文件的文件名和后缀进行修改进行误导。
加密文件比较多或者时间长了会忘记具体的步骤,所以我们要创建自己的编码调整方法与记录,也可以称作为密钥。
例如:5H5a5L123T1~567
含义:将编码5 替换为5a5;让编码中第1、2、3行与15、16、17 行对调。密钥中的H 代表替换、T 代表对调、L 用于间隔和防止密钥丢失后迷惑他人所用。还可以添加一些其它的指令起到迷惑作用。
经常需要加密的人员可以建立自己固定或不固定密钥机制,这样即使密钥很多或者时间很久也能很快知道其加密步骤。
解密与加密的步骤相反,先用记事本打开“论语.lock”文件,再用数字“5”替换“5a5”,让编码中第1、2、3 行与15、16、17 行重新调整回来位置。执行命令“certutil-decode 论语.lock 论语.txt”就会得到我们原来的初始文件,如图7 所示。
不过,像记事本文件最好是用先用压缩软件压缩成zip,rar 等格式,然后再进行加密,否则会出现部分加密成乱码,而还有部分文字还是原文,造成信息泄露。
任何一种加密与解密的最大难点其实就是知道其算法,如果会批处理程序,可以先计算总行数A 后让第N 行的M个字符与L 行的M个字符进行对调,这样一次循环直至最后一行。甚至可以采用更复杂的方式,只要你自己密钥或者整个批处理这样的密钥机制文件不被别人发现。
经过多次测试,除了本次使用的txt 文档,还对其他jpg、mp4、avi、doc、xls、zip 等格式文件以及UG、flash等专业软件的文档进行加密、解密,都能正常使用。此方法尤其适用于不能使用外网的保密单位,对各类技能竞赛等需短期保密的文件,非常实用。
如果文件不太重要、自己也不会编写批处理程序,或者多人使用且太过繁琐、文件庞大等情况下,建议采用第三方工具。