[实用新型]可编程的软件加密锁无效
申请号: | 99214217.2 | 申请日: | 1999-06-18 |
公开(公告)号: | CN2372721Y | 公开(公告)日: | 2000-04-05 |
发明(设计)人: | 张杰 | 申请(专利权)人: | 北京深思洛克数据保护中心 |
主分类号: | G06F12/14 | 分类号: | G06F12/14;G06F12/16 |
代理公司: | 清华大学专利事务所 | 代理人: | 罗文群 |
地址: | 100084 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 可编程 软件加密 | ||
本实用新型涉及一种可编程的软件加密锁,属计算机技术领域。
所谓软件加密就是通过修改软件,使软件的正常运行离不开特定的硬件,这个硬件被称为软件加密锁,简称加密锁。加密锁是一种计算机外设,它工作在计算机的并行口。软件运行时,首先向加密锁发送指令,加密锁接收到指令后,完成相应的处理,然后把处理结果返回给软件,软件收到后检查数据是否合理,进一步决定是否继续正常运行。
加密锁有很多种,其核心功能就是算法变换功能。深思洛克数据保护中心的sensel型软件加密锁就属于这种加密锁。
sensel型的算法变换功能是这样的:软件向加密锁发送一个数据,加密锁内部对这个数据进行加密变换,然后将变换结果返回给软件。加密锁内的变换方程是加密锁的生产厂商在保密状态下设计的,是不对外公开的。使用加密锁的软件厂商不知道变换方程,只能设置变换方程中的某些参数。当方程中的参数被设置好以后,这个变换方程的输入、输出是一一对应的,软件厂商就是利用这个特点对软件进行加密处理。具体的方法如下:软件厂商首先设置算法的参数,并且选择一组数据,让加密锁进行算法变换,并且一一记录变换结果;然后在软件中还用这组数据,调用加密锁的算法功能;最后比较加密锁的变换结果与预先的记录是否一致,如果一致则说明这个加密锁是自己设置的,软件继续运行,否则软件结束退出。以上方法实现了:只有经过软件厂商自己设置的加密锁,才能使软件正常运行。
利用sensel型的算法变换功能可以达到软件加密的目的,但是这种加密方法很容易被解密。通过跟踪软件的运行,就可以截获软件与加密锁之间的数据通讯,也就是说软件中调用算法功能时的输入、输出数据都可以被解密者记录下来。解密者将这些数据保存在自己的数据库之中,然后修改软件中访问加密锁的代码,让这些代码不再访问加密锁而是调用解密者自己的程序。解密者的程序负责从数据库中提取数据,然后返回给软件。经过这样处理过的软件就不再访问加密锁,而是访问解密者的数据库,软件离开了加密锁以后还可以正常运行,软件被解密了。
以上的解密方法是一种常见的解密方法,就是用软件来仿真加密锁,称之为仿真法。由于加密者自己并不知道算法变换方程的具体内容,加密设计时只能把加密锁看成一个黑匣子,利用其输入、输出一一对应的特点进行加密。这就使得加密软件中用于检测加密锁的数据量很有限(整个软件的一部分),解密者只要都截获下来,就可以通过仿真的方法解密了。利用仿真法解密这种加密锁所需的工作量是非常有限的,甚至可以自动化实现。sensel型的算法变换功能的弱点是加密锁的算法变换不公开,从而导致轻易被仿真法解密。
本实用新型的目的是设计一种可编程的软件加密锁,使得加密者能够自己设计加密锁的功能,能够自己设计加密锁的算法变换方程,给仿真法解密带来更大的困难。
本实用新型设计的可编程的软件加密锁,该加密锁包括寄存器区、存储区和控制区三部分,寄存器区由通用寄存器、标志寄存器和指令寄存器组成。存储区由程序区、数据区组成。控制区由输入输出模块、存储区改写模块、指令寻址、译码和执行模块组成。控制区、寄存器区设在单片机U1上,存储器设在单片机U2上,U1和U2之间通过信号线相联,U1通过接口接计算机并行口。
本实用新型的可编程软件加密锁与以往加密锁不同之处在于,加密锁的算法方程可以由加密者自己设计,然后编译成加密锁专用的执行代码,设置到加密锁中。设置内容只有加密者自己知道,解密者既不知道如何设置的,也无法修改。软件运行时调用加密锁中的算法,并把算法需要的输入数据传送给加密锁,加密锁完成算法变换后再将结果发送回来。加密者了解算法内容,就可以在自己的软件中使用任意数据来检测加密锁内的算法方程。
由于加密软件可以使用任意数据来检测加密锁,解密者虽然还可以截获加密锁的输入、输出数据,但是仿真加密锁变得非常困难。首先,这些数据是难以枚举的,这种新型加密锁的输入、输出各为64比特数据,如果想通过枚举出所有的可能情况来仿真加密锁,是无法实现的;其次,加密锁内的方程是难以求解的,方程中可以包含各种运算及循环、分支等,完全由加密者控制,如果想通过解析出加密锁内的方程来仿真加密锁,是非常困难的。
由于这种加密锁具备可编程的能力,加密者可以任意设计加密锁的功能:既可以是很复杂的变换方程,也可以代替加密前软件中的部分程序。加密软件中检查加密锁时,可以使用随机数据来检测加密锁内的方程是否准确无误。加密锁完全是由加密者自己控制的,加密软件的加密强度也是加密者自己控制的。这种新的加密方式,给仿真法解密带来了很大难度。
附图说明:
图1是本实用新型的原理框图。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京深思洛克数据保护中心,未经北京深思洛克数据保护中心许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/99214217.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:自动贩卖机送料机构
- 下一篇:散装小颗粒矿产品抓斗取样器