软件加密狗的工作原理

软件加密狗通过在软件执行过程中和软件加密狗交换数据来实现加密的.软件加密狗内置单片机电路(也称CPU),使得软件加密狗具有判断、分析的处理能力,增强了主动的反解密能力。这种加密产品称它为"智能型"软件加密狗.软件加密狗内置的单片机里包含有专用于加密的算法软件,该软件被写入单片机后,就不能再被读出。

这样,就保证了软件加密狗硬件不能被复制。同时,加密算法是不可预知、不可逆的。加密算法可以把一个数字或字符变换成一个整数,如DogConvert(1)=17345、DogConvert(A)=43565。下面,我们举个例子说明单片机算法的使用。 比如一段程序中有这样一句:A=Fx(3)。程序要根据常量3来得到变量A的值。

于是,我们就可以把原程序这样改写:A=Fx(DogConvert(1)-12342)。那么原程序中就不会出现常量3,而取之以DogConvert(1)-12342。这样,只有软件编写者才知道实际调用的常量是3。而如果没有软件加密狗,DogConvert函数就不能返回正确结果,结果算式A=Fx(DogConvert(1)-12342)结果也肯定不会正确。这种使盗版用户得不到软件使用价值的加密方式,要比一发现非法使用就警告、中止的加密方式更温和、更隐蔽、更令解密者难以琢磨。

此外,软件加密狗还有读写函数可以用作对软件加密狗内部的存储器的读写。于是我们可以把上算式中的12342也写到软件加密狗的存储器中去,令A的值完全取决于DogConvert()和DogRead()函数的结果,令解密难上加难。不过,一般说来,软件加密狗单片机的算法难度要低于一些公开的加密算法,如DES等,因为解密者在触及软件加密狗的算法之前要面对许多难关

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: