一种基于DS2432的嵌入式加密认证方法及系统与流程

文档序号:12600410阅读:1262来源:国知局
一种基于DS2432的嵌入式加密认证方法及系统与流程

本发明涉及计算机系统及加密技术领域,更具体地说,涉及一种基于DS2432的嵌入式加密认证方法及系统。



背景技术:

目前,越来越多使用带有加密认证能力的电子设备去完成电子设备的身份识别。对于一个真正安全的认证系统,最苛刻的功能是鉴定,这是因为认证必须能够证明它是由发行者授权,而且是可信的。认证应该可以简单地用其所包含发行者在内才能生成的加密信息来证明其合法性,这就是所谓加密认证。加密认证是—个非常棘手的难题,这是由于设备必须能够验证它不是伪造的或复制的,要做到这一点,就需要设备有一些比较特殊的硬件功能。为此,若该设备的设计不允许自由检查,那么该系统将是不可信的,其设计或功能上的加密几乎也是不可取的。

因此,如何通过嵌入式认证加密系统,保护电子设备是本领域技术人员需要解决的问题。



技术实现要素:

本发明的目的在于提供一种基于DS2432的嵌入式加密认证方法及系统,以实现通过嵌入式认证加密系统,保护电子设备。

为实现上述目的,本发明实施例提供了如下技术方案:

一种基于DS2432芯片的嵌入式加密认证方法,包括:

当系统运行时,DS2432芯片根据内置的第一密钥、第一数据和所述DS2432的序列号,利用所述DS2432芯片内置的SHA-1引擎计算第一MAC值;

DS2460芯片根据从微控制器获取的所述DS2432芯片的序列号及所述DS2460芯片内置的第二密钥和第二数据,利用所述DS2460芯片内置的SHA-1引擎计算第二MAC值;

所述微控制器将所述第一MAC值写入所述DS2460芯片;若所述DS2460芯片判定所述第一MAC值和所述第二MAC值相同,则认证成功;若不相同,则认证失败。

其中,在系统运行之前,所述微控制器将所述第一密钥写入DS2432芯片的密钥存储器,将所述第一数据写入所述DS2432芯片的数据存储器。

其中,所述微控制器将所述第一数据写入所述DS2432芯片的数据存储器,包括:

所述微控制器将所述第一数据写入暂存器;

所述DS2432芯片获取授权码,判断所述授权码与地址寄存器中的数据是否匹配;若匹配,则判断所述数据存储器是否加写保护;若存在,则所述DS2432芯片计算第一验证MAC值,并接收所述微控制器计算的第二验证MAC值;

若所述第一验证MAC值和所述第二验证MAC值相同,则将所述暂存器内的第一数据写入所述数据存储器。

其中,在系统运行之前,所述微控制器将所述第二密钥写入所述DS2460芯片的E-Secret1;所述微控制器将所述第二数据写入所述DS2460芯片的输入缓冲器;其中,所述第一密钥与所述第二密钥相同,所述第一数据与所述第二数据相同。

其中,所述微控制器将所述第二密钥写入所述DS2460芯片的E-Secret1,包括:

所述微控制器以写访问模式将所述第二密钥写入所述DS2460芯片的E-Secret1。

其中,所述微控制器将所述第二数据写入所述DS2460芯片的输入缓冲器,包括:

所述微控制器以写访问模式将所述第二数据写入所述DS2460芯片的输入缓冲器。

其中,所述DS2432芯片根据内置的第一密钥、第一数据和所述DS2432的序列号,利用所述DS2432内置的SHA-1引擎计算第一MAC值,包括:

获取质询;

根据命令代码指定的目的地址,选取所述第一数据中选定页的32个数据字节;

所述DS2460芯片内置的SHA-1引擎根据所述第一密钥、所述选定页的32个数据字节、所述序列号和所述质询,计算所述第一MAC值。

其中,所述微控制器将所述第一MAC值写入所述DS2460芯片之前,还包括:

所述微控制器从所述DS2432芯片内获取CRC发生器产生的CRC校验码,若所述CRC校验码与所述微控制器所计算出的CRC校验码一致,则将所述MAC值写入所述DS2460芯片。

一种基于DS2432芯片的嵌入式加密认证系统,包括:

微控制器,用于向DS2460芯片发送DS2432芯片的序列号;将所述DS2432芯片计算的第一MAC值写入DS2460芯片;

与所述微控制器的1-Wire总线相连的DS2432芯片,用于在系统运行时,根据内置的第一密钥、第一数据和所述DS2432的序列号,利用所述DS2432芯片内置的SHA-1引擎计算第一MAC值;

与所述微控制器的串行数据接口和串行时钟接口相连的DS2460芯片,用于根据所述DS2432芯片的序列号及所述DS2460芯片内置的第二密钥和第二数据,利用所述DS2460芯片内置的SHA-1引擎计算第二MAC值;若判定所述第一MAC值和所述第二MAC值相同,则认证成功;若不相同,则认证失败。

其中,所述微控制器为STC12C5406。

通过以上方案可知,本发明实施例提供的一种基于DS2432芯片的嵌入式加密认证方法及系统,包括:当系统运行时,DS2432芯片根据内置的第一密钥、第一数据和所述DS2432的序列号,利用所述DS2432芯片内置的SHA-1引擎计算第一MAC值;DS2460芯片根据从微控制器获取的所述DS2432芯片的序列号及所述DS2460芯片内置的第二密钥和第二数据,利用所述DS2460芯片内置的SHA-1引擎计算第二MAC值;所述微控制器将所述第一MAC值写入所述DS2460芯片;若所述DS2460芯片判定所述第一MAC值和所述第二MAC值相同,则认证成功;若不相同,则认证失败;

可见,在本实施例中,若验证两个MAC值相同,就通过认证,即电子产品的电路板是原装的,因为克隆后的DS2432的序列号与原序列号号不一样,并且由于存入原电路板的密钥是隐藏不可读的,这就同样能保证克隆后的电路板所计算的MAC值与原电路板的MAC值是不相等的,以实现对原电路板起到保护作用。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例公开的一种基于DS2432的嵌入式加密认证系统的硬件设计原理框图;

图2为本发明实施例公开的一种基于DS2432的嵌入式加密认证方法流程示意图;

图3为本发明实施例公开的DS2432的数据初始化程序流程图;

图4为本发明实施例公开的DS2432的MAC值的计算程序流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例公开了一种基于DS2432的嵌入式加密认证方法及系统,以实现通过嵌入式认证加密系统,保护电子设备。

参见图1,本发明实施例提供的一种基于DS2432芯片的嵌入式加密认证系统,包括:

微控制器100,用于向DS2460芯片发送DS2432芯片的序列号;将所述DS2432芯片计算的第一MAC值写入DS2460芯片;

与所述微控制器的1-Wire总线相连的DS2432芯片200,用于在系统运行时,根据内置的第一密钥、第一数据和所述DS2432的序列号,利用所述DS2432芯片内置的SHA-1引擎计算第一MAC值;

与所述微控制器的串行数据接口和串行时钟接口相连的DS2460芯片300,用于根据所述DS2432芯片的序列号及所述DS2460芯片内置的第二密钥和第二数据,利用所述DS2460芯片内置的SHA-1引擎计算第二MAC值;若判定所述第一MAC值和所述第二MAC值相同,则认证成功;若不相同,则认证失败。其中,所述微控制器为STC12C5406。

具体的,参见图1,为本实施例提供的一种基于DS2432的嵌入式加密认证系统的硬件设计原理框图,可以看出硬件部分主要由微处理器STC12C5406,带有SHA-1引擎保护的DS2432和带有EEPROM的SHA-1协处理器DS2460组成。DS2432和微控制器STC12C5406是通过引脚2的1-Wire总线进行通信的,DS2460与其是通过引脚6(SDA)I2C串行数据输入/输出和引脚7(SCL)串行时钟输入进行通信。

在触发认证系统进行认证时,微控制器STC12C5406把DS2432的ID号即序列号加载到DS2460的输入缓存器中,再调用DS2432和DS2460的SHA-1引擎分别计算SHA-1算法的MAC值,并在DS2460中进行比较,如果MAC相等,就通过认证,即电子产品的电路板是原装的。克隆后的DS2432的ID号与原ID号不一样,并且存入原电路板的密钥是隐藏不可读的,这就保证克隆后的电路板所计算的MAC值与原电路板的MAC值是不相等的,起到了保护原电路板的作用。

参见图2,本发明实施例提供的一种基于DS2432芯片的嵌入式加密认证方法,包括:

S101、当系统运行时,DS2432芯片根据内置的第一密钥、第一数据和所述DS2432的序列号,利用所述DS2432芯片内置的SHA-1引擎计算第一MAC值;

具体的,在本实施例中,在系统运行之前,首先对DS2432芯片和DS2460芯片的密钥和数据初始化,把DS2432的ID号(序列号)存入微控制器STC12C5406中,将相同的密钥和数据分别存入DS2432的密钥存储器和数据存储器,和DS2460的EEPROM中的E-Secret1和输入缓冲器中。当受保护的系统要运行时,就会首先触发所设计的认证系统进行认证。具体包括:

S1、在系统运行之前,所述微控制器将所述第一密钥写入所述DS2432芯片的密钥存储器,将所述第一数据写入所述DS2432芯片的数据存储器。

具体的,在本方案中,DS2432芯片的密钥初始化,是微处理器STC12C5406通过1-Wire端口访问DS2432的协议,具体如下:

①初始化;

②ROM操作命令;

③存储器或SHA操作命令;

④交易/数据。

STC12C5406向DS2432存入第一密钥按上述步骤进行。

其中,所述微控制器将所述第一数据写入所述DS2432芯片的数据存储器,包括:

所述微控制器将所述第一数据写入暂存器;

所述DS2432芯片获取授权码,判断所述授权码与地址寄存器中的数据是否匹配;若匹配,则判断所述数据存储器是否加写保护;若存在,则所述DS2432芯片计算第一验证MAC值,并接收所述微控制器计算的第二验证MAC值;

若所述第一验证MAC值和所述第二验证MAC值相同,则将所述暂存器内的第一数据写入所述数据存储器。

具体的,在本实施例中DS2432芯片数据初始化和DS2432芯片密钥初始化一样,微处理器STC12C5406通过1-Wire端口向DS2432写入数据就必须遵循访问DS2432的协议:①初始化,②ROM操作命令,③存储器或SHA操作命令,④交易/数据。数据初始化的前两步是和密钥初始化的前两步是一样,从第三步存储器或SHA操作命令就不同了,下面进行详细介绍:

首先要执行Write Scratchpad(写暂存器)命令,将要写入数据存储器的数据先写入暂存器,SHA-1引擎计算MAC值所用的数据存贮器的数据一般是一页存储器数据即32个字节,因为暂存器只能存8个字节,所以要写暂存器四次。写暂存器的过程和密钥的存入写暂存器的过程是一样的,不过写入的一个是密钥,一个是初始化数据存贮器的数据。

随后执行Copy Scratchpad(复制暂存器)命令向存储器或寄存器页写入新的数据,发出Copy Scratchpad命令后,主机必须提供一个3字节的授权码,此数据通过Read Scratchpad命令获得。Read Scratchpad执行的过程和前面DS2432密钥初始化时的Read Scratchpad过程是一样的。其中,将密钥写到DS2432密钥存储器前,即DS2432密钥初始化前要执行Read Scratchpad,访问存储器和操作SHA引擎的命令有:Write Scratchpad[0Fh](写暂存器命令),Read Scratchpad[AAh](读暂存器命令)等,其中Read Scratchpad(读暂存器)可以用来验证目的地址和暂存器数据的完整性。

通过Read Scratchpad得到的这3个字节的数据必须与三个地址寄存器中(依次为TA1、TA2、E/S)的数据完全匹配。如果授权码匹配,而且目的存储器未加写保护,在把整个暂存器的内容拷贝到数据EEPROM之前还要进行写认证,即DS2432启动SHA引擎,基于当前密钥、暂存器内所有数据、所寻址的存储器页的前28个字节和DS2432的序列号(不包括CRC校验码)计算一个160位MAC;其中所寻址的存储器页的前28个字节为初始化时的数据。

同时,主机也利用同样的数据计算一个MAC,并把它发送给DS2432,以便证明它有权写EEPROM。这里需要说明的是对于DS2432的序列号,主机可用Read Rom[33h]获取。此命令允许主机读取DS2432的8位家族码、48位唯一的序列号和8位CRC校验码。并且此命令适用于总线上只有一个从机的情况,而所设计的系统就仅一个DS2432,所以适用。对于DS2432所寻址的存储页的数据,主机可用ReadMemory(读存储器)命令来读取。Read Memory可以用来读取除密钥之外的所有存储器。主机发出命令后,必须提供2个字节的目的地址。在这两个字节之后,主机从目的地址开始读取数据,可以一直读到地址0097h。之后,如果主机继续读数,结果将全是逻辑1,目的地址寄存器将指向最后一个读取的字节,并且偏移量/数据状态字节和暂存器不受影响。其中,DS2432的数据初始化程序流程图如图3所示

S2、在系统运行之前,所述微控制器将所述第二密钥写入所述DS2460芯片的E-Secret1;所述微控制器将所述第二数据写入所述DS2460芯片的输入缓冲器;其中,所述第一密钥与所述第二密钥相同,所述第一数据与所述第二数据相同。

其中,所述微控制器以写访问模式将所述第二密钥写入所述DS2460芯片的E-Secret1;

所述微控制器以写访问模式将所述第二数据写入所述DS2460芯片的输入缓冲器。

具体的,DS2460有四个密钥存储区地址可以存储密钥,在认证系统设计中选择密钥E-Secret1地址存储密钥。在向DS2460的E-Secret1写第二密钥时,主机必须以写访问模式访问器件,即:发送从地址时方向位必须设置为0。写模式下发送的下一个字节是E-Secret1地址字节,用来选择要写的密钥存储器地址。随后的字节是送给E-Secret1地址存储单元的密钥数据。

具体的,本实施例中DS2460芯片数据初始化,由于DS2460芯片计算MAC值时需要用到输入缓冲器的数据,并且所得的MAC值必须和DS2432计算所得的MAC值要相等,所以存入DS2406输入缓冲器的数据不但要和存入DS2432存储器的数据要一致,并且一部分数据要和DS2432计算MAC时的存储器和SHA操作命令中的Read Authenticated Page命令的SHA-1输入数据相对应。向DS2460的输入缓冲器写入数据,主机必须以写访问模式访问器件DS2460,也就是说发送从地址时方向位必须设置为0。写模式下发送的下一个字节是地址字节,用来选择被写的寄存器或存储地址,在这里选择输入缓冲器的地址,跟在地址后的所有数据字节被直接写入相应的存储器单元。每接收一个字节,写地址指针和读指针即增加,直到写完要存入的数据。

具体的,在本实施例中对微控制器STC12C5406数据初始化,即将DS2432芯片中全球唯一的序列号存储在STC12C5406的程序中,在计算MAC值之前就送入DS2460的输入缓冲器,以备计算MAC时使用。

其中,在本方案中,所述DS2432芯片根据内置的第一密钥、第一数据和所述DS2432的序列号,利用所述DS2432内置的SHA-1引擎计算第一MAC值,包括:

获取质询;

根据命令代码指定的目的地址,选取所述第一数据中选定页的32个数据字节;

所述DS2460芯片内置的SHA-1引擎根据所述第一密钥、所述选定页的32个数据字节、所述序列号和所述质询,计算所述第一MAC值。

所述微控制器将所述第一MAC值写入所述DS2460芯片之前,还包括:

所述微控制器从所述DS2432芯片内获取CRC发生器产生的CRC校验码,若所述CRC校验码与所述微控制器所计算出的CRC校验码一致,则将所述MAC值写入所述DS2460芯片。

具体的,在本实施例中利用命令Read Authenticated Page(读验证页),主机可以获得全部或部分存储器页的数据和一个MAC。

主机发出命令代码并指定了目的地址(TA1和TA2)后,它将接收从目的地址开始到数据页末尾的存储器页数据、一个FFh字节和一个反码的CRC,该CRC码由命令代码、目的地址、已传送的数据和FFh字节产生。CRC校验码接收完毕后,DS2432的SHA引擎利用自己的密钥、指定存储器页的所有数据(选定页的32个数据字节)、自身的序列号((不包括CRC校验码))和一个3字节的质询来计算MAC,这个3字节质询是由主机在发Read Authenticated Page命令之前提前写入暂存器的。

然后,主机就可读取160位MAC,随后是一个反码的CRC,以确保数据传输的可靠性。如果在CRC校验码后主机继续读取数据,在它发送复位脉冲前将收到交替的“1”和“0”码。具体的,DS2432的MAC值的计算程序流程图见图4;需要说明的是,图4中的注册码即为本方案中的序列号。

具体的,本实施例中的DS2432芯片内部的CRC(循环冗余校验)发生器是16位的,根据标准的CRC16多项式函数产生。该CRC校验码用于检测执行Read Authenticated Page命令(见存储器和SHA操作命令单元)时的错误,或者在读、写或更新暂存器的时候,快速检验数据传送的正确性。16位CRC校验码通常是以反码的形式发送或回送。DS2432芯片内部的CRC发生器用于在命令流程中计算一个新的16位CRC校验码。总线主机通过比较由器件读来的CRC校验码和自己根据数据计算出的CRC校验码,来决定是继续某一操作还是重读有CRC错误的数据部分。这一部分是根据执行Write Scratchpad命令时,DS2432内部的CRC发生器随着主机的发送过程,计算整个数据流的CRC校验码,始于命令码,止于最后一个数据字节。用于验证发送数据正确性。

S102、DS2460芯片根据从微控制器获取的所述DS2432芯片的序列号及所述DS2460芯片内置的第二密钥和第二数据,利用所述DS2460芯片内置的SHA-1引擎计算第二MAC值;

具体的,在本实施例中红DS2460芯片计算MAC值之前,主机首先把DS2432的唯一序列号对照Authenticated Page命令的SHA-1输入数据格式输入到DS2460SHA引擎输入缓冲器输入信息格式中的输入缓冲器。然后将命令字节写入地址5Ch处的命令寄存器。命令字节写入命令寄存器后,命令码被应答,一旦主机发出停止条件,SHA-1引擎激活,就会根据初始化的数据计算出一个MAC值。

S103、所述微控制器将所述第一MAC值写入所述DS2460芯片;若所述DS2460芯片判定所述第一MAC值和所述第二MAC值相同,则认证成功;若不相同,则认证失败。

具体的,在本实施例中,为了比较MAC值的同时不暴露它,DS2460芯片包括一个连续工作的比较器,可以对写入匹配MAC寄存器的数据和MAC输出缓冲器中的数据进行比较。使用比较功能时,主机以写模式访问DS2460,指定匹配MAC寄存器地址,并把从DS2432发送到主机的MAC按照MAC输出缓冲器的格式发送字节,直到传送完全部20字节的MAC。比较器把第一字节同MB+0中的数据进行比较,比较下个字节时转到下个更高的地址。最后一个字节同MB+19中的数据比较。该字节序列与从1-Wire SHA器件中读出的MAC相同。无论是否匹配,DS2460应答它接收的MAC的全部前19个字节。只有当两个MAC(即MAC输出缓冲器中的MAC和主机发送的MAC)都匹配时才应答最后一个(第20个)字节。如果不匹配,则不会应答第20个字节。主机发出的第20个字节得不到应答,即两个MAC值不匹配,也就是认证不通过。

由于原电路板的认证系统的设计的初始化的数据是对照DS2432的Read Authenticated Page命令的SHA-1输入数据格式输入到DS2460中的SHA引擎输入缓冲器的,所以计算的MAC值应该和DS2432相同。而克隆过的电路板由于不知道原电路板认证系统的密钥,并且DS2432计算MAC必须要用自己的序列号进行计算,而每个DS2432的序列号是唯一,所以计算后的MAC值不会匹配。

本发明实施例提供的一种基于DS2432芯片的嵌入式加密认证方法及系统,包括:当系统运行时,DS2432芯片根据内置的第一密钥、第一数据和所述DS2432的序列号,利用所述DS2432芯片内置的SHA-1引擎计算第一MAC值;DS2460芯片根据从微控制器获取的所述DS2432芯片的序列号及所述DS2460芯片内置的第二密钥和第二数据,利用所述DS2460芯片内置的SHA-1引擎计算第二MAC值;所述微控制器将所述第一MAC值写入所述DS2460芯片;若所述DS2460芯片判定所述第一MAC值和所述第二MAC值相同,则认证成功;若不相同,则认证失败;

可见,在本实施例中,通过利用加密的微控制器STC12C5406编程控制带有SHA-1算法引擎的芯片DS2432和DS2460进行嵌入式认证系统设计,通过克隆后的电路板所计算的MAC值与原电路板计算的MAC值是否相等进行原电路板的保护。

并且本方案中加密的微控制器STC12C5406的用户程序是ISP/IAP机制写入,编程的时候是一边校验一边写,无法读出命令,增加了解密难度。STC空间分为:①BOOTLOAD,②应用代码,③EEPROM。最新版本的STC芯片去掉BOOTLOAD区,并且使用SST89E564的电路,所以STC解密很难。其芯片的特点具有加密性强,很难解密或破解,超强抗干扰的特点。

其次,本方案中带有SHA-1算法引擎的芯片DS2432和DS2460,DS2432在单个芯片内集成了1024位EEPROM、64位密钥、512位SHA-1引擎,以极低的成本提供了一个安全的高级认证方案。该器件还提供永久性的写保护模式。每个DS2432具有自身的、由工厂刻入的64位ROM序列号,为其所嵌入的产品或系统提供唯一的ID。这个唯一的64位码也是SHA-1的输入组成之一。带EEPROM的SHA-1引擎协处理器DS2460是ISO/IEC10118-3安全散列算法SHA-1的硬件实施方案,无需开发执行复杂SHA计算的软件,即可鉴别SHA器件以及验证数字签名服务数据的有效性。DS2460能计算1-Wire SHA器件的SHA-1信息认证代码(MAC)。该器件还能比较MAC。

在本方案中通过分别计算克隆后电路板的MAC值和原电路板MAC是否相等对电路板进行保护,是指DS2432SHA-1引擎计算MAC时只能利用本身的ID号进行计算,克隆后的DS2432的ID号与原ID号不一样,并且存入的密钥是隐藏不可读的,这就保证克隆后的电路板所计算的MAC值与原电路板计算的MAC值是不相等的,则克隆后的电路板认证失败不能进行下一步系统的功能,起到了保护原电路板的作用。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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