基于DSP的程序加密保护体制设计

发布者:幸福如愿最新更新时间:2012-11-12 来源: 21ic关键字:DSP  加密保护体制 手机看文章 扫描二维码
随时随地手机看文章
   

目前,DSP以其卓越的性能、独有的特点,已经成为通信、计算机、消费类电子产品等领域的基础器件。同时,随着对知识产权的重视,在利用DSP进行产品设计时,如何保护自己的成果,防止破译者窃取,也成为设计者工作在一个重要方面[1,2]。如果产品大批量生产,那么可以利用掩膜技术等工艺将操作程序及数据写入芯片,使它们不能被读出,达到保护的效果。对于还没有形成规模的产品,使用这样的方法就会使成本大大增加。因此,本文提出一种方法,利用3DES、Geff发生器和MD5等算法,构造一种加密体制,来保护DSP程序。

1 加密原理及硬件结构

1.1 加密原理

该体制的加密原理可分为2个层次。首先是对程序的初始保护,就是把程序写入DSP芯片之前,对源代码进行加密处理,然后将密文写放入芯片。这样芯片中就不存在明文形式的源代码。当要运行该程序时,就从微狗中取出密钥进行解密,再继续运行。第2个层次就是在DSP程序运行过程中的连续保护。它的处理对象是一些重要参数或变时,通过“加锁”,让它们一直以密文形式存在于程序中。只有需要使用这些数据时,才从微狗内取出密钥进行解密。使用结束后,仍旧“加锁”保护,使之仍然是密文形式。

1.2 硬件结构

在这种加密体制中,需要1片微狗实现密钥管理。如果原来的DSP系统中已经存在带有加密位的EPLD、CPLD或单片机,就可以利用以有资源进行设计,把它们作为微狗,完全不需要额外的硬件支持。否则,不妨用1片单片机完成微狗功能。这是由其良好的性价比决定的。

2 工作过程和密钥管理

根据加密原理,该体制的工作过程同样分为2个层次。首先,是初始程序保护,它以程序整体为处理对象。然后,是基于数据的连续保护。保护对象是一些重要参数事变量。它保证了加密贯穿程序运行的整个过程。在工作过程中,密钥管理非常关键,可以说,该体制的安全与否就体现在密钥管理上。

2.1 初始程序保护

初始程序保护使用的加密算法是3DES算法,加密结束后,销毁密钥,同时将密文写入芯片。这样芯片内就不存在程序的明文形式,可以防止别人通过简单的反汇编得到程序源代码。开始运行DSP程序时,就在DSP监控程序的控制下,从微狗内取出相应的密钥,解密恢复出源代码。

微狗主要实现密钥管理功能。内部密钥的生成机制和主程序完全相同。把主程序以密文形式写入DSP芯片时,通过监控程序告知微狗,微狗内部同时生成对应密钥K0;主程序开始运行时,再在监控程序控制下,从微狗内取出密钥K0,解密,得到明文形式源代码。

可是,由于只有1个密钥,破译者完全可以通过截取DSP和微狗之间的通信数据,很容易地得到密钥。一旦得到密钥,这种保护体制也就形同虚设了。因此,我们又采取了基于数据驱动的连续保护。

2.2 基于数据驱动的连续保护

所谓基于数据驱动的连续保护,即是对程序中重要的参数或变量进行加密处理。由于这些参数或变量在程序运行时需要反复使用。故而通过对它们的保护,就可以使加密贯空程序的整个运行过程。

譬如对滤波器系数ap的保护,将其加密,即“加锁”,同时销毁密钥。在求ap+1时,需要用到ap,就向监控程序发出申请,在它的控制下,从微狗中取出对应密钥,开销,恢复ap,进行运算。运算结束后,再将ap和ap+1“加锁",保存,继续执行DSP主程序。这样不停地“加锁”、“开锁”,使得在同一时刻DSP主程序中都存在密文。

此时微狗中密钥的生成必须和DSP主程序中的加密处理“同步”,即主程序的加密密钥要和微狗内生成的对应密钥相同。这个可以由DSP监控程序利用DSP内部的中断程序协调实现。使用密钥Ki对某参数或变量加密结束后,通过中断告诉监控程序加密完成,然后锁毁该密钥。继续执行DSP程序时,若需要使用该参数或变量,就向监控程序发出要求,在监控程序的控制下,从微狗中取出对应密钥Ki,解密。其具体过程如图1所示。

 

2.jpg

 

其中,a、b为主程序和DSP监控程序之间的数据交换,包括彼此呼叫与应答;c为DSP监控程序对微狗的控制,发出某种命令;d是主程序在DSP监控程序的控制下,从微狗内取出相应的密钥。

微狗将生成的密钥依次排列,然后等待主程序取密钥。不论是初始程序保护还是基于数据的连续保护,都只受监控程序的控制。这样可以保证主程序获得正确密钥。

加入连续保护后,破译者要想得到源代码,必须跟踪程序的整个运行过程。这样,对于破译者而言,所花费的代价等于自己独立写一套程序,显然也失去了破译的必要。

2.3 细节处理

除了上述保护措施,还可以使用一些编程技巧,在细节上小心谨慎,写出让人“眼花缭乱”的程序,否则,破译者很可能不必完全跟踪,就能够获取源程序。因为目的是要迷惑别人,所以就得尽量破坏程序的可读性。譬如打乱程序的正常顺序,使其显得杂乱无章;适时适地插入无用代码,增强干扰;使参数变量的命名晦涩难懂,绝对不能有key、digest等诸如此类可以望文生义的名称。总之,要让破译者对获取的内容不知所云,以增加其还原源程序的难度。

3 相关算法及密钥生成机制

该体制的加密算法是3DES,是个对称算法。其安全性可以说完全体现在密钥上。因此,如何产生一个“安全”的密钥至为关键。在密钥的生成机制中,用到了Geffe发生器和MD5算法。[page]

 

    

3.1 相关算法[3]

(1)3DES算法

数据加密标准DES(Data Encryption Standard)产生于20世纪70年代。经过20多年的使用,目前仍是一个世界内的加密标准。这说明它的安全性相当高。它是一个分组加密算法,以64位分组对数据加密。密钥K的长度也是64位,可以是任意数。DES算法是对称的,加密与解密使用相同的算法与密钥(除了密钥的编排顺序不同)。因而可以说,DES算法的保密性完全依赖于密钥K。

目前对DES的破译,最有效的是穷举功击。之所以说DES已经不太安全,是因为其密钥短。以现今的运算技术来说,计算量已经不算很大。不过,如果增加密钥的长度,其安全性也可以相应地增强。3DES正是基于这样的原理。加密时,使用2个不同的密钥K1和密钥K2对1个分组进行3次加密。也就是说,先用密钥K1加密,然后用密钥K2解密,最后用密钥K1加密;解密时则先用密钥K1解密,然后用密钥K2加密,最后用密钥K1解密。

计算式如下:

C=E1(D2(E1(P))) (1)

P=D1(E1(D1(C))) (2)

其中,P为明文,C为密文。Ei()为加密函数,Di()为解密函数。

(2)Geffe发生器

Geffe发生器是一种密钥序列发生器,利用线性反馈移位寄存器LFSR(Linear Feedback Shift Register)产生序列密码。LFSR的输出就是m序列,是一个伪随机序列。Geffe发生器使用了3个LFSR,以非线生方式组合。其中,2个LFSR作为复合器的输入,第3个LFSR控制复合器的输出。使用相关攻击,Geffe发生器的破译并不难,故而不能直接将它作为3DES算法的密钥,因此这里对其作取摘要处理。

(3)MD5算法

MD5(Message Digest)算法是由MIT的密码专家,RSA算法的发明人之一Ron Rivest设计发明的一种认证算法标准。MD5算法完成于1992年,它可以对任意长的报文输入,得到1个128位的输出。该算法可以保证2条不同的报文产生相同的摘要的可能性很小,并且由给定的摘要反向求其对应的报文极端困难。因此将摘要作为密钥既可以保证随机性,安全性也能提高了不少。

3.2 密钥的生成机制

无论从3DES算法本身,还是从该体制的加密原理来讲,密钥的生成机制都至关重要。因此,必须保证使用的密钥是安全的。其安全性体现为两个方面:一是密钥本身是随机的;一是密钥的管理机制。

密钥的生成过程如下:先由Geffe发生器得到一随机序列,然后通过MD5算法取摘要,得到的128比特数据就是密钥K1和密钥K2组合。由Geffe发生器及MD5算法原理可以看出,这样产生的密钥是随机的。

由该体制的工作过程可以看出,密钥的管理是安全的。这是由于在主程序内,加密结束后,随即将密钥销毁,主程序内不保留密钥;使用密钥时,通过监控程序从微狗内获取。微狗和DSP是物理分开的,保证了密钥存放的安全。

4 结果分析

严格地说,这种方法并不属于加密,只是一种保护手段——利用几个简单的,结合DSP和单片机的特点,构造一种保护体制。甚至其效果究竟如何,可以从2个方面分析。

4.1 安全性分析

既然是一种保护方法,那么安全性是最重要的指标。由这种体制的加密原理及工作过程,可以看出安全性可以保护。3DES算法,无论从理论上还是实践上,都是一种相当好的加密算法。虽然利用穷举攻击,该算法最终可以破译,但需要2 112次穷举,所花费的代价实在太大,可以说得不偿失。因此,只要保证密钥的安全,可以认为这种保护体制是完全的。而从密钥的生成过程和管理机制来讲,密钥是安全的。

4.2 性能分析[4~6]

这种保护方法的速度很快,因为3DES算法要是混乱和扩散的组合,只使用了标准的算术和逻辑运算。Geffe发生器和MD5算法用到的也主要是逻辑运算,用DSP或者单片机实现非常方便。譬如对于TMS320VC5402来说,Geffe发生器产生64字的伪随机序列需要296 544个周期,MD5处理64个字长的消息需要用3400个周期,所花费的时间分别为2965ms和0.003ms。

因此,我们只是利用了一些简单的算法,结合DSP和1片微狗,构造出1个DSP程序保护体制,以小代价获得了好的效果,还是很值得的。

关键字:DSP  加密保护体制 引用地址:基于DSP的程序加密保护体制设计

上一篇:DSP在无刷直流电机控制中的应用简介
下一篇:基于DSP的有源降噪系统分析与研究

推荐阅读最新更新时间:2024-05-02 22:26

基于ARM+DSP的驾驶员眼部疲劳视觉检测算法设计
如何为驾驶员提供一个有效实用的安全辅助驾驶系统是车辆安全驾驶的一个重要课题。基于机器视觉的疲劳驾驶检测技术已在国内外开展了广泛研究,其中以驾驶员眼部特征的检测最为广泛。 本文以低成本、低功耗、高实时性为设计原则,以ARM+DSP构成硬件平台,并移植了嵌入式操作系统Windows CE 5.0,设计了一套基于驾驶员眼部特征的疲劳驾驶检测算法,对驾驶员驾驶过程进行实时检测和报警,从而提高驾驶的安全性与舒适性。 1 硬件平台设计 系统硬件平台选用三星公司ARM9架构的S3C2440作为核心处理器,利用TI公司的TMS320DM642作为视频采集处理模块,其结构框图如图1所示。DSP平台主要负责采集图像、图像算法处理,ARM平台主要完
[单片机]
DSP数字多功能板的工作原理与实现
1 引言   音板(tone)、主叫号码显示板、多频互控收发器板、双音频接收器板等是程控交换机重要的公共设备。这些设备在程控交换机中是一块块不同的硬件单板,这些单板都是以专用集成电路(IC)来实现其功能的。但要增加单板业务功能或单板所用IC停产时,单板生产厂家需要重新设计硬件电路。这样就会增加研发成本和风险。   基于此针对交换机的特点,以数字信号处理技术为核心,开发一种基于DSP的数字多功能板。该板是一个DSP硬件单板平台,可提供多种对外接口,通过采用不同的DSP算法和微控制器程序,处理交换机所需的各种信号,完成各个单板功能,这样便于维护和升级,节约开发费用,缩短开发周期。这里以实现音板的具体过程为例进行详细阐述。   
[工业控制]
<font color='red'>DSP</font>数字多功能板的工作原理与实现
高速DSP与PC实现串口通信的方法
  数字信号处理器(Digital Signal Processor,DSP)在图形图像处理、高精度测量控制、高性能仪器仪表等众多领域得到越来越广泛的应用,实际运用中,通常须将DSP采集处理后的数据传送到PC机,然后进行存储和处理。   T1公司的TMS320VC33微处理器具有性价比高,同时,该芯片的I/O电平、字长、运行速度、串口功能具有大多数DSP的共同特点。本文针对TMS320VC33与PC RS-232的通讯,分析三种具体的接口电路和软件设计方法,实现高速DSP与低速设备的通讯:①通过TMS320VC33的通用I/O口实现通信;②通过TMS320VC33中可设置为通用I/O的串行引脚实现通信;③直接利用TMS320V
[工业控制]
基于TI DSP系统平台的心电监护仪解决方案
  随着社会的发展和人们生活水平的提高,人们对健康的重视程度日益增加,但是伴随着生活水平的提高心血管疾病的发病率不断攀升。   特别是近年来随着社会老龄化的加剧,心血管疾病成了威胁人类生命的主要疾病,心脏病成了世界上死亡率最高的疾病。鉴于心血管疾病患者日益增多的严峻形势, 提高预防和监测该疾病的手段势在必行。而心电信号检测是发现心脏病的最直接手段,但目前医院用的 心电监护 仪几乎全部是进口的,价格昂贵,维护费用高,加重了医院和患者的经济负担;因此设计一种便携、经济的心电监护设备具有重要意义。本文设计了一种基于TI公司TMS320LF2407A DSP 的心电监护系统,此系统体积小、成本低、实用性强。    TMS320LF
[嵌入式]
一种新型多DSP并行处理结构
  传统的雷达信号处理系统的设计是根据具体的需求确定算法流程以及硬件结构的。这导致了系统升级的困难加大。当信号处理的内容改变、要求处理的数据量加大、改进处理算法时,必须对整个系统进行重新设计。   利用软件无线电的原理,可以构建通用的硬件平台,辅之以必要的软件系统,能实现各种信号处理功能。 本结构采用高速浮点DSP(ADSP-21161N)。ADSP-21161集成了一个性能优良的浮点DSP核和丰富的在片功能,并且提供了实用可靠的多处理器互联及并行处理的方式。以六片ADSP-21161N构成的多处理器结构具有强大的处理能力,可以完成各种高速实时信号处理功能。 实时信号处理要求巨大的计算量与超高速的计算速度,而现在的单片DSP很难
[嵌入式]
高性能定点DSP位处理单元BMU的设计
1 功能概述      位处理单元(Bit ManipulatiON unit,BMU)主要由取指电路、移位数据处理电路、移位选择处理电路、桶形移位电路和输出电路等几部分组成。BMU的输入数据是36位的BMUi,经过处理后输出36位的数据BMUo作为DSP的一次运算结果。 本文设计的BMU是36位的,主要功能包括逻辑/算术移位、取指、归一化等,以下是对控制信号及相关功能较为详细的描述。      逻辑/算术左移 相应的控制信号是in arithshf,inleftshf,in_shift。将36位数据左移,低位补0;   逻辑右移 控制信号同上,他执行的是低32位数据右移,同时高位补0; 算术右移 控制信号如上,
[工业控制]
基于DSP控制的全数字UPS逆变器设计
1 引言 随着信息处理技术的不断发展,尤其是计算机的广泛应用和Internet的迅猛发展,供电系统的可靠性要求越来越高,因此对不间断电源(UPS)技术指标的要求也越来越高。UPS的核心部分是一个恒频恒压逆变器,由于传统模拟控制需要使用大量的分立元器件,老化和温漂严重影响了系统的长期稳定性。基于DSP的数字控制技术能大大改善产品的一致性,同时增加了控制的柔性,提高了整个系统的稳定性和可靠性 。本文主要提出了一种数字控制的UPS逆变器结构,详细论述了控制系统的参数设计。 2 系统结构 图1是本文提出的数字控制UPS逆变器的结构框图。主电路采用了全桥结构,控制电路是以TI公司的电机控制专用DSP芯片TMS320F240为
[应用]
多路测量信号扩频传输的DSP系统实现
   1. 引言   在测控领域,通常要求对多路检测信号进行传输。信号的传输过程中常受到周围复杂环境的干扰会产生较大的失真。如采用扩频通信传输系统,在发射机中用伪随机序列对所传输信号的频谱进行扩展并利用码分复用实现多路信号的复用;在接收机中再对其解扩,恢复原传输信号。利用扩频通信的扩频增益,可大大提高通信系统的信噪比,增加传输信号的可靠性改善通信质量、提高通信效率。 同时 DSP具有可满足算法控制复杂结构、运算速度高、寻址方式灵活和通信性能强大等需求,可以通过软件修改传输信号参数,因此具有很大的灵活性。本文利用 DSP系统实现多路测量信号扩频传输,结合了扩频通信和 DSP的优点 ,是一种有发展前途的检测信号传输实现方式。   
[嵌入式]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved