一种软硬件结合的加密方法与流程

文档序号:12789226阅读:1315来源:国知局
一种软硬件结合的加密方法与流程

本发明涉及产品加密技术领域,具体涉及以微控器为核心的程控电器设备中的加密技术领域。



背景技术:

出于技术保护的目的,防止电子设备或部件被仿制,常常在电路中设计有带有密码区的存储器,将重要数据保存在其中。通过密码核验来读取关键数据或运行程序。也有将微控器中的程序存储器加密,阻止其中的代码被非法复制等方法,这些方法以密码为加密核心,在一定程度上保护了设备关键的技术。成为电子设备被仿制一道防线。但是以密码为核心的加密方式有如下缺点:

(一)由于密码长度有限,仿制者可以通过密码破解、在传输过程中截取等手段获得密码,或突破加密获得程序存储器中的程序代码。从而获得关键的数据和程序代码,加之对硬件的抄袭模仿,就可以对设备仿制。

(二)由于同一类的每台设备的系统程序是相同的,因此储存关键数据的存储器的密码都是相同的。获得了一台的密码也就意味着获得了每一台的密码,可实现对设备批量仿制。



技术实现要素:

(一)要解决的技术问题

本发明的目的是提供一种软硬件结合的加密方法,从而使电子设备中的密码在被破解或程序机器码被非法复制的情况下,也无法对设备进行抄袭仿制。

(二)技术方案

为了达到上述目的,本发明采取以下方案:

本发明的一种软硬件结合的加密方法,有以下步骤:

1)在微控器控制电路中增加一个带有唯一的、不可更改的n个字节ROM地址码的E2PROM器件U1;

2)一个将ROM地址码ROM[n]作为一个变量数组的加密算法,此算法中还包含二个n字节的密文数组CI1[n]、CI2[n]、一个随机数数组Q0[n]和二个自定义函数F1、F2,经过算法处理后,得到二个验证数组:Q1[n]、Q2[n],公式为:Sc[n]=F1(CI1[n],ROM[n])、(Q1[n],Q2[n])=F2(CI2[n],Sc[n],Q0[n]),构成算法的函数F1、F2和密文数组CI1[n]、CI2[n]具体到每种设备系统控制程序或不同版本的控制程序是能够不相同的;

3)根据E2PROM器件U1中的ROM地址码数组ROM[n]和密文数组CI1[n]由F1函数得到中间结果数组Sc[n],再与CI2[n]、Q0[n]一起代入F2函数得到二个验证数组Q1[n]、Q2[n],Q1[n]、Q2[n]和所用到的随机数组Q0[n]写入E2PROM器件U1的E2PROM存储区保存,这样一个固有ROM地址码且存储有相匹配的验证数组的器件就形成了含有加密数据、算法的密钥;由于密文数组CI1[n]、CI2[n]只是作为函数F1、F2的参数因子,并和函数F1、F2一样,不以具体的形式保存在E2PROM器件U1中,因此函数和密文数组是不可复制的,无法根据另一个器件的ROM[n]来算出与之对应的Q1[n]、Q2[n];

4)在微控器的程序中,首先从E2PROM器件U1为载体的密钥读出其中的Q0[n]、Q1[n]、Q2[n]和该密钥独有的ROM地址码数组ROM[n],再在微控器的程序中用与上述步骤2)中相同的密文数组CI1[n]、CI2[n],以及相同的函数F1、F2计算出Q1′[n]、Q2′[n];

5)微控器在计算出Q1′[n]、Q2′[n]后,与从密钥读入的Q1[n]、Q2[n]分别相比较,若完全相等,则验证通过,程序继续执行,否则 验证不通过,程序中断执行。

(三)有益效果

本发明用一种软硬件结合的加密方法,构造了一个具有硬件载体的密钥,密钥中的验证数组是依据其硬件载体中固定不变的且是唯一的ROM地址码,再与二个密文数组、一个随机数组一起,二个自定义函数F1、F2构成的算法的计算得到的。因此各密钥的验证数组是不同的,即使密钥中验证数组被复制到其它同型号的硬件器件中,由于这个验证数组不是用此器件的ROM地址码数组为参量计算出来的,所以再用这个ROM[n]来进行验证是错误的。另外算法不是存储在密钥中具体的数据,不可能从器件中获得,在算法未知的情况下,不可能复制密钥。因此用所述的加密方法从而使电子设备中的密码、验证数组在被破解或程序机器码被非法复制的情况下,也无法对设备进行抄袭仿制。

附图说明

图1是本发明方法中软硬件结合的方法构成的密钥与微控器的连接示意图;

图2是本发明方法中密钥中验证数组的产生及存储过程流程图;

图3是本发明方法中微控器主程序流程图;

U1:E2PROM器件。

具体实施方式

以下实施例用于说明本发明,但不用来限制本发明的范围。

本发明的方法是用具有唯一固定ROM地址码的存储器件DS2431和存储在器件中依据一个算法计算而得的验证数组构成密钥。电路连接示意图参见图1。制作密钥的流程见图2所示。这个算法是以这个 器件的ROM地址码数组ROM[8]、随机数组Q0[8]、密文数组CI1[8]、CI2[8]作为参数,自定义函数F1(CI1[8],ROM[8])、F2(CI2[8],Sc[8],Q0[8])所构成的。Sc[8]是函数F1的结果,即Sc[8]=F1(CI1[8],ROM[8])。由函数F2就可以得到验证数组Q1[8]和Q2[8]。密钥是不可复制的,这是因为尽管验证数组有可能被复制到另一个同型号的器件DS2431中,但器件ROM地址码数组是固定不可变更的,不可能复制到另一个器件中。

将密钥与微控器的I/O口相连接,并且微控器在进入主程序后通过I/O口读取该密钥中的地址码数组ROM[8]、随机数组Q0[8]、验证数组Q1[8]、Q2[8]。用与上述算法相同函数F1、F2以及密文数组CI1[8]、CI2[8]在微控器中也计算出验证数组Q1′[8]、Q2′[8]。最后进入验证环节:将微控器计算出的验证数组Q1′[8]、Q2′[8]与从密钥中读入的验证数组Q1[8]、Q2[8]作对应比较,完全相同则验证通过,程序继续执行;否则验证不通过,程序不能正常运行。微控器系统程序流程图见图3。如果没有符合算法的密钥,即使复制了全部的数据,也不具备仿制整机设备的条件,从而达到了技术保护的目的。

利用器件固定的ROM地址码作为算法函数中的变量因子是本方法关键:因为器件的ROM地址码数组ROM[8]是固定且不可变更的。也就决定了用本方法制作的密钥是不可复制的。仅仅将存储在其内部的验证数组复制到其它器件中是无效的,不能通过验证。

另外所用的密文和算法函数不以具体的形式存在于密钥中,即使密钥中所有的数据被盗读或复制。由于没有密文和算法,就求不出相应符合算法的验证数组Q1[8]、Q2[8],所以在密码被破解,内部数据以及程序机器码都被盗读的情况下,仍不能制作出密钥,保护设备不被仿制。

在算法中还引入了随机数组Q0[8],同一个器件用同一算法和密 文每次得到的验证数组Q1[8]、Q2[8]是不同的,使验证数组针对ROM[8]又具有多变性,无规律可循,进一步增加破解难度。

微控器中,算法程序是被包含在整个系统程序之中并以机器码的形式存在的,且算法中的函数F1、F2的简繁可由所需的密级设计,既可以选用自定义基本的变换算法,亦可选用成熟的专业加密算法,因此从系统程序的机器码中,对于算法的破解工作量是巨大的。

E2PROM器件(Electrically Erasable Programmable Read-Only Memory),电可擦可编程只读存储器--一种掉电后数据不丢失的存储芯片。E2PROM器件可以在电脑上或专用设备上擦除已有信息,重新编程。

综上所述,本发明的方法能够用软硬件结合的技术方法阻碍了仿制的行为,达到了技术保护的目的。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1