"加密锁"(也称加密狗)最早由彩虹天地开发,现已成为软件加密行业的代名词。加密锁是一种插在计算机并行口上的软硬件结合的加密产品(新型加密锁也有usb口的)。一般都有几十或几百字节的非易失性存储空间可供读写,现较新的狗内部还包含了单片机。软件开发者可以通过接口函数和加密锁进行数据交换(即对加密锁进行读写),来检查加密锁是否插在接口上;或者直接用加密锁附带的工具加密自己EXE文件(俗称"包壳")。这样,软件开发者可以在软件中设置多处软件锁,利用加密锁做为钥匙来打开这些锁;如果没插加密锁或加密锁不对应,软件将不能正常执行。
加密锁是为软件开发商提供的一种智能型的具有软件保护功能的工具,它包含一个安装在计算机并行口或USB口上的硬件,及一套适用于各种语言的接口软件和工具软件。加密锁基于硬件保护技术,其目的是通过对软件与数据的保护防止知识产权被非法使用。
加密锁通过在软件执行过程中和加密锁交换数据来实现加密的.加密锁内置单片机电路(也称CPU),使得加密锁具有判断、分析的处理能力,增强了主动的反解密能力。这种加密产品称它为"智能型"加密锁.加密锁内置的单片机里包含有专用于加密的算法软件,该软件被写入单片机后,就不能再被读出。这样,就保证了加密锁硬件不能被复制。同时,加密算法是不可预知、不可逆的。加密算法可以把一个数字或字符变换成一个整数,如DogConvert(1)=17345、DogConvert(A)=43565。下面,我们举个例子说明单片机算法的使用。比如一段程序中有这样一句:A=Fx(3)。程序要根据常量3来得到变量A的值。于是,我们就可以把原程序这样改写:A=Fx(DogConvert(1)-17342)。那么原程序中就不会出现常量3,而取之以DogConvert(1)-17342。这样,只有软件编写者才知道实际调用的常量是3。而如果没有加密锁,DogConvert函数就不能返回正确结果,结果算式A=Fx(DogConvert(1)-17342)结果也肯定不会正确。这种使盗版用户得不到软件使用价值的加密方式,要比一发现非法使用就警告、中止的加密方式更温和、更隐蔽、更令解密者难以琢磨。此外,加密锁还有读写函数可以用作对加密锁内部的存储器的读写。于是我们可以把上算式中的17342也写到加密锁的存储器中去,令A的值完全取决于DogConvert()和DogRead()函数的结果,令解密难上加难。不过,一般说来,加密锁单片机的算法难度要低于一些公开的加密算法,如DES等,因为解密者在触及加密锁的算法之前要面对许多难关
随着解密技术的日益升级,对加密锁的安全性提出更高要求。传统的智能型可编程加密锁主张的是“代码片移植”——将被保护程序母体分点式镂空,这个从理论上说是安全的,但是实际并非如此,有以下两点原因:一是,从已有程序母体中抽出待移植代码片是一件比较困难的事情,所以抽出的代码逻辑大多数都相对较简单;二是,由于加密锁本身的硬件执行效率限制,复杂的算法在锁中运行效率将是个最大的瓶颈。
北京世纪龙脉科技有限公司开发的mLock系列加密锁以更高的运行效率、更简单易用的数据交互方式解决了这一难题,优化了加密锁性能,最终提升了加密锁的安全强度。以mLockSmartX3这款加密锁为例:
mLockSmartX3可编程加密锁采用高性能的32位ARM处理器内核,代替传统加密锁的8位虚拟C51内核。
ARM处理器,性能高、耗能低、价格低,是RISC(精简指令集)体系的代名词。SmartX3智能编程锁使用的是Thumb/Thumb2精简指令集,最大特点就是具有16位的指令密度,32位的指令性能,这就意味着可以用很少的指令完成功能复杂的操作。
而C51指令集最大的性能瓶颈是累加寄存器A在运算中作为桥梁导致的。Thumb/Thumb2精简指令集却不存在这种瓶颈,C51指令集在代码体积和性能上较Thumb/Thumb2精简指令集都相差巨大,下面的图表比较了C51和ARM中两个32位整型数据相乘的指令运行时间和代码大小:
mLockSmartX3可编程加密锁采用与应用程序变量原始绑定模式,支持全数据类型。并采用映射机制,锁中程序与应用软件中变量一一对应,避免了传统编程锁在输入输出缓冲区中取变量并作相应转换的不便。
加密锁中的程序和应用程序的数据交互方式决定了编程锁的易用性,在前期的开发中,在线调试工具几乎充当了主要角色,而它的易用程度更是决定于数据的交换方式。
传统的编程锁与应用程序的数据交换方式都是结构体变量集体绑定传送,所有类型变量都是以字节序传入传出,并且在线测试工具都是以字节方式表示,同时还要考虑数据大小尾的问题。
因为C51对double类型数据是不支持的,传统的解决方案是用“伪double”数据类型,也就是用字符数组代替,这样就使定义和初始化很不方便,而且运算速度也很慢。
mLockSmartX3可编程加密锁完全支持所有基本数据类型,对double数据类型做到了原生支持,支持如:doublea=1.2345;方式定义。并且对64位数据类型做到了无缝支持,这在C#开发中很有用,因为long类型数据在C#中是64位的。
mLockSmartX3可编程加密锁的程序开发环境采用的是MDK,该IDE对ARM处理器的支持已经做到了极致,在代码自动优化方面做得很好,所有函数都符合ANSI'C'标准。
完美的B/S登陆,在线升级解决方案
从现在的网络发达程度来看,C/S与B/S的融合将是一个必然趋势,mLockSmartX3可编程加密锁已经将B/S登录认证和WEB在线升级完美集成,这将给软件日后维护和用户管理带来安全可靠的硬件支持。总之,mLockSmartX3可编程加密锁在传统加密锁技术上进行了一次质的飞跃,它把安全、高效、人性化融为一体,突破传统编程锁的技术瓶颈,将现代编程技术和反跟踪手段完美结合,根本上保障软件的安全性。
目前最新的硬件加密原理
随着解密技术的发展,单片机加密狗由于其算法简单,存储空间小,容易被硬件复制等原因,正逐渐被市场所淘汰。以北京深思洛克软件技术股份有限公司为首的国内加密狗厂商研发出稳定性更好、存储空间更大(最大为64K)、有效防止硬克隆的第四代加密狗——“智能卡”加密狗,“智能卡”加密狗以其独创的“代码移植”原理,已经被国内大型商业软件开发商如擎洲广达、金蝶、用友、CAXA、广联达、神机妙算、鲁班……所采用。
以世界上第一款智能卡加密锁——精锐IV为例,简单介绍一下“代码移植”原理。
“代码移植”加密原理为一种全新的、可信的软件保护模型,工作原理为:软件中部分代码经过编译,“移植”到加密锁硬件内部,软件中没有该段代码的副本。
在这套软件保护方案中,PC端应用软件的关键的代码和数据“消失”了,被安全地移植到精锐IV型加密锁的硬件中保护起来。在需要使用时,应用软件可以通过功能调用引擎来指令精锐IV运行硬件中的关键代码和数据并返回结果,从而依然可以完成整个软件全部的功能。由于这些代码和数据在PC端没有副本存在,因此解密者无从猜测算法或窃取数据,从而极大程度上保证了整个软件系统的安全性。简言之,精锐IV提供了一套可信的解决方案,从理论上保证软件加密的安全。
1、擎洲广达工程计价软件
2、广联达造价软件
3、清华斯维尔造价软件
4、神机妙算造价软件
5、鲁班造价软件