伪随机序列及PLD实现在程序和系统加密中的应用
时间:02-27
来源:互联网
点击:
摘 要: 讨论了用伪随机序列实现程序加密保护及其可编程逻辑器件实现的原理、方法和具体操作,给出了在微机软件和单片机/DSP系统中程序加密的实际运用举例。
可编程逻辑器件(PLD)经历了PAL、GAL、CPLD 和FPGA几个发展阶段。使用PLD具有设计灵活、调试方便、系统可靠性高等众多优点,并有利于硬件设计的保护,防止他人对电路的分析、仿照,使其成为科研实验、样机试制和小批量产品的首选方案。
随着计算机、单片机技术的发展和广泛应用,软件加密成为知识产权保护的重要手段。目前微机软件加密的方法可分为两大类:软加密和硬加密。软加密主要有密码方式、软件自校验方式、钥匙盘方式等多种。随着软加密的发展,解密软件也大量出现。硬加密由于具有加密强度大、可靠性高等特点,已广泛用于微机软件保护。硬加密将硬件和软件相结合来实现软件的加密,软件在运行时需与硬件正确交换数据,否则程序不运行,或不能执行主要功能,典型的产品有:插在计算机总线上的加密卡,接在计算机并口或USB口的软件狗(加密锁)、微狗等。软件狗大多用E2PROM存储密码数据,电路简单,成本低,但用SOFT-ICE等软件进行软件狗的解密和复制并不很困难。在这种情况下,软件狗内部增加了一个单片机称为微狗,通过对数据的处理来提高软件的加密强度;少数专业的硬加密生产商则采用独自的ASIC芯片。加密卡的原理与软件狗和微狗的相似,不同的是通过总线操作,使得设计更灵活、功能更强,只是安装不方便。
随着某一加密产品加密操作方式的公开,其解密也就为期不远。新出现的解密软件能模拟绝大部分软件与加密狗间的数据交换过程,从而达到解密;国产的加密卡和微狗,大多外用E2ROM存储配置数据和用户密码,获取这些数据就可能解密、甚至复制微狗,因此加密方法的独特性、手法的反常规性在加密应用中非常重要。单片机/DSP系统的控制及外围电路都相对简单,对软件的跟踪比较容易分析硬件的设计思想和实现功能,而目前对其软件的保护并不受重视,并且单片机/DSP系统没有现成的加密产品,设计者应结合系统软、硬件的要求灵活决定。我们利用PLD器件本身的加密保护特性,由其产生的伪随机序列实现单片机/DSP系统和计算机应用程序的加密,具有简单方便,解密难度大的特点,同样可用PLD器件实现更复杂的加密方法如 EDS。
1 硬件加密的PLD实现原理
硬件加密必须综合考虑加密方法的可行性、有效性、硬件复杂度等因素,由逻辑电路产生大量密码的一种简单有效的方法是使用线性反馈移位寄存器,其产生的伪随机数据已广泛用于数据通信中的加扰、扩频、跳频和数据加密。图1所示是具有防跟踪、产生2N-1个N 位伪随机数据的加密电路原理框图,密码生成所用触发器和门电路少,并且密码是加电后动态产生的,不同的预置产生的数据不同,因此密码的强度、隐蔽性优于加密狗和微狗(卡)。
N位移位寄存器产生的伪随机码作为读取的密码或输入数据解密的密钥,在移位时钟的作用下,可输出2N-1个N位的有效密码或密钥。对某一具体电路,移位寄存器初值不同时,这2N-1个随机数有2N-1 种排序,可预置伪随机数产生器的原理电路如图2所示。要使移位寄存器产生一确定的值,首先置其初值,然后置移位计数器初值并允许时钟电路产生移位时钟;当移位计数器计满时,产生一个数据准备好状态可供软件读取,该状态同时阻断时钟电路,停止移位操作,并且启动防跟踪记数器的时钟产生电路;若在规定的时间内读取密码字或者写入待解密数将清零防跟踪记数器,否则超时使防跟踪记数器满导致触发器翻转,打开三态门,扰乱输出数据,虽然这时读/写数据能清零防跟踪记数器,阻断其时钟,但必须重加电或系统复位才能断开三态门。
对加密电路的正确操作步骤是:在主程序中预置移位计数器和移位寄存器初值,在子程序的一处判断移位是否完成,另一处读密码或写待解密数,在另一子程序判断或取解密数据,以防止跟踪。
为在使用较少触发器情况下保证程序正常运行并能有效地防止解密跟踪,应恰当地选择防跟踪计数器的时钟,若用移位寄存器时钟源,则需要较高的分频才能满足高速的数据产生、适当的延时时间;因此在实际使用中,应根据需要,选择系统可能提供的低频持续脉冲信号作为防跟踪计数器的时钟。在微机系统中,尤其在 WINDOWS操作系统的分时事件驱动运行模式下,由于系统固有的存储器刷新、时钟中断,以及运行中硬件中断、DMA操作、任务切换,必须有较长的防跟踪延时才能保证合法程序正常运行,要注意在软硬盘操作时对密码数据操作的影响。
可编程逻辑器件(PLD)经历了PAL、GAL、CPLD 和FPGA几个发展阶段。使用PLD具有设计灵活、调试方便、系统可靠性高等众多优点,并有利于硬件设计的保护,防止他人对电路的分析、仿照,使其成为科研实验、样机试制和小批量产品的首选方案。
随着计算机、单片机技术的发展和广泛应用,软件加密成为知识产权保护的重要手段。目前微机软件加密的方法可分为两大类:软加密和硬加密。软加密主要有密码方式、软件自校验方式、钥匙盘方式等多种。随着软加密的发展,解密软件也大量出现。硬加密由于具有加密强度大、可靠性高等特点,已广泛用于微机软件保护。硬加密将硬件和软件相结合来实现软件的加密,软件在运行时需与硬件正确交换数据,否则程序不运行,或不能执行主要功能,典型的产品有:插在计算机总线上的加密卡,接在计算机并口或USB口的软件狗(加密锁)、微狗等。软件狗大多用E2PROM存储密码数据,电路简单,成本低,但用SOFT-ICE等软件进行软件狗的解密和复制并不很困难。在这种情况下,软件狗内部增加了一个单片机称为微狗,通过对数据的处理来提高软件的加密强度;少数专业的硬加密生产商则采用独自的ASIC芯片。加密卡的原理与软件狗和微狗的相似,不同的是通过总线操作,使得设计更灵活、功能更强,只是安装不方便。
随着某一加密产品加密操作方式的公开,其解密也就为期不远。新出现的解密软件能模拟绝大部分软件与加密狗间的数据交换过程,从而达到解密;国产的加密卡和微狗,大多外用E2ROM存储配置数据和用户密码,获取这些数据就可能解密、甚至复制微狗,因此加密方法的独特性、手法的反常规性在加密应用中非常重要。单片机/DSP系统的控制及外围电路都相对简单,对软件的跟踪比较容易分析硬件的设计思想和实现功能,而目前对其软件的保护并不受重视,并且单片机/DSP系统没有现成的加密产品,设计者应结合系统软、硬件的要求灵活决定。我们利用PLD器件本身的加密保护特性,由其产生的伪随机序列实现单片机/DSP系统和计算机应用程序的加密,具有简单方便,解密难度大的特点,同样可用PLD器件实现更复杂的加密方法如 EDS。
1 硬件加密的PLD实现原理
硬件加密必须综合考虑加密方法的可行性、有效性、硬件复杂度等因素,由逻辑电路产生大量密码的一种简单有效的方法是使用线性反馈移位寄存器,其产生的伪随机数据已广泛用于数据通信中的加扰、扩频、跳频和数据加密。图1所示是具有防跟踪、产生2N-1个N 位伪随机数据的加密电路原理框图,密码生成所用触发器和门电路少,并且密码是加电后动态产生的,不同的预置产生的数据不同,因此密码的强度、隐蔽性优于加密狗和微狗(卡)。
N位移位寄存器产生的伪随机码作为读取的密码或输入数据解密的密钥,在移位时钟的作用下,可输出2N-1个N位的有效密码或密钥。对某一具体电路,移位寄存器初值不同时,这2N-1个随机数有2N-1 种排序,可预置伪随机数产生器的原理电路如图2所示。要使移位寄存器产生一确定的值,首先置其初值,然后置移位计数器初值并允许时钟电路产生移位时钟;当移位计数器计满时,产生一个数据准备好状态可供软件读取,该状态同时阻断时钟电路,停止移位操作,并且启动防跟踪记数器的时钟产生电路;若在规定的时间内读取密码字或者写入待解密数将清零防跟踪记数器,否则超时使防跟踪记数器满导致触发器翻转,打开三态门,扰乱输出数据,虽然这时读/写数据能清零防跟踪记数器,阻断其时钟,但必须重加电或系统复位才能断开三态门。
对加密电路的正确操作步骤是:在主程序中预置移位计数器和移位寄存器初值,在子程序的一处判断移位是否完成,另一处读密码或写待解密数,在另一子程序判断或取解密数据,以防止跟踪。
为在使用较少触发器情况下保证程序正常运行并能有效地防止解密跟踪,应恰当地选择防跟踪计数器的时钟,若用移位寄存器时钟源,则需要较高的分频才能满足高速的数据产生、适当的延时时间;因此在实际使用中,应根据需要,选择系统可能提供的低频持续脉冲信号作为防跟踪计数器的时钟。在微机系统中,尤其在 WINDOWS操作系统的分时事件驱动运行模式下,由于系统固有的存储器刷新、时钟中断,以及运行中硬件中断、DMA操作、任务切换,必须有较长的防跟踪延时才能保证合法程序正常运行,要注意在软硬盘操作时对密码数据操作的影响。
单片机 DSP CPLD FPGA 电路 总线 USB 电流 振荡器 MCU 仿真 相关文章:
- 采用EEPROM对大容量FPGA芯片数据实现串行加载(03-18)
- 周立功:如何兼顾学习ARM与FPGA(05-23)
- 初学者如何学习FPGA(08-06)
- 为何、如何学习FPGA(05-23)
- FPGA作为协处理器在实时系统中的应用(04-08)
- 我的FPGA学习历程(05-23)