欢迎来到天天文库
浏览记录
ID:32893267
大小:135.50 KB
页数:5页
时间:2019-02-17
《火控系统软件加密方法初探》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、火控系统软件加密方法初探1 问题的提出 随着商品经济的发展,市场竞争越来越激烈,如何有效地保护科研成果不被他人无偿享用,是我们设计产品时必须予以高度重视的问题,火控系统软件的设计也不例外,只有在软件设计时对程序进行加密处理,才能更好地保护我们的权益;下面首先分析一下火控系统软件的特点,然后谈谈如何对其进行加密设计。2 火控系统软件的特点 火控系统软件作为一种专用的实时控制软件,其载体一般为只读存储器ROM,其运行环境为自行设计的专用计算机,它不同于其它商用软件,并不要求能够在通用PC机使用,基于以上特点,我们在设计火控软件时,应充分考虑火控软件所处
2、的硬件环境,对其加密必须贯穿于整个程序。 根据火控软件的特点,对其加密时所采用的主要技术有:①密文技术——防静态分析;②反跟踪技术——防动态分析。3 火控系统软件加密的实现 一般地,分析一个软件采用以下两种方法——静态分析法和动态分析法。静态分析法主要利用一些反汇编工具将机器码反汇编成汇编语言代码来进行分析,而动态分析法则利用一些常用的调试工具软件对其进行动态跟踪。3.1 密文生成算法 对抗静态分析,只要将程序代码变为密码即可,目前有许多方法,如DES法、RSA法,这些算法抗攻击强度很高,但开销太大,一般常用于通信领域;对于计算机软件加密,由于采
3、用密文技术主要是为反跟踪和抗分析而设的,加密算法本身并不要求太复杂,只要其不能轻易被破解即可,目前计算机加密系统用的最多的加密算法是仿射变换法,我们使用的逻辑异或算法和循环移位算法就属于这种算法,下面的程序能对256个字节进行加密处理: 这里,密钥为与机器运行环境有关的数据,如开关量代码、可编程逻辑器件之状态字(节)或写入到EPROM中的数据等,相应地,我们可以编写出以下解密代码:3.2 反跟踪技术 反跟踪的目的是阻止解密者利用一些常用的调试工具如DEBUG、CV、TV等来弄清程序的执行过程和加密的思路,从而有效地保护加密的思想,提高加密强度。
4、要实现反跟踪,有两种途径:第一种为破坏跟踪环境,使跟踪者跟踪不了几步就死机;另一种为反穷举法,使解密者在“耗尽精力”之前不能进行实质性的跟踪,只要我们将密文技术和反跟踪技术有机地结合起来,就可以有效地对付解密者的跟踪。 目前已经使用的反跟踪方法很多,常用的有破坏中断向量表、大循环多出口、隐蔽转移、阶梯式脱密、破坏堆栈、逆指令流法和封锁键盘等。本文根据火控软件的特点,有机地将封锁键盘、破坏中断向量表、隐蔽转移、阶梯式脱密等方法结合起来,使整个反跟踪模块成为不可逾越的技术。 设计一个加密的火控软件,关键在于充分考虑其所处的硬件环境,火控软件只有在其特定
5、的硬件环境下,才可以正常运行,这就必须使用各种开关量代码、状态字等作为密钥,亦可将它们通过一定的算法处理作为密钥。 下面是部分反跟踪程序模块: 从上面程序可以看出,反跟踪程序是不可逾越的,只有一步一步跟踪才能找到火控软件的真正入口点,如果我们加大反跟踪程序的长度(一般6~8K即可),则势必拖跨解密者,使其半途而废。3.3 总框图 由于火控软件的载体一般为EPROM,而被加密软件要运行必须将程序还原,为此,必须将ROM中的程序移入RAM中才能执行。图 火控系统软件加密、解密流程图4 结 语 本文对火控软件的加密提出了一些可行的方法,当然如果用户的
6、存储器(RAM)不够用,也可以选择火控软件的关键模块进行加密,这里要强调的一点就是在火控软件正常执行期间,也必须对其运行环境进行检查,另外,可以把中断向量区作为火控软件的工作区,并对火控软件进行完备性检查。作者简介 董永强.男,1963年生,高级工程师。1986年毕业于华东工学院(现南京理工大学)自动控制系系统工程专业,现主要从事数据处理、火控系统软件的开发工作。作者单位:(北方自动控制技术研究所 太原 030006)参考文献1 IBMPC实用加密技术指南.实用电子文摘编辑部,2 林宣雄.磁盘加密解密实用技术.西安交通大学出版社,
此文档下载收益归作者所有