芯片自动加密方法和系统的制作方法
【技术领域】
[0001]本发明涉及一种芯片自动加密方法和系统。
【背景技术】
[0002]目前对于嵌入式芯片软件的保护主要是采用外部增加加密电路或芯片的方式,基本方式就是在需要加密的主芯片外再额外增加一个密匙芯片,工作时主芯片从密匙芯片读取密匙用于解密。针对DSP这类小容量的芯片系统,增加加密电路或芯片的成本显得尤为突出。而且,采用加密电路或芯片的方案也有可能存在两个电路同时被破解的风险。
【发明内容】
[0003]本发明的主要目的在于针对现有技术的不足,提供一种成本低、加密效果好的芯片自动加密方法和系统。
[0004]为实现上述目的,本发明采用以下技术方案:
[0005]一种芯片自动加密方法,用在可在线写入和擦除且其存储区可分块的芯片上,包括以下步骤:
[0006]a.芯片第一次上电运行程序时,程序从芯片的特定寄存器读取用于生成密匙的信息,执行密匙计算功能的程序代码使用所述信息进行运算后得到针对该芯片的密匙;
[0007]b.将运算后得到的所述密匙保存到芯片的存储区中,作为后续上电运行时的验证密钥;
[0008]c.将步骤b中执行密匙保存功能的程序代码自动擦除,其中所述执行密匙保存功能的程序代码预先划分在独立的可在线擦除的存储区。
[0009]进一步地,步骤b中,先比较运算后得到的所述密匙与芯片的存储区中的原始密钥是否相同,如果相同,进入下一步,如果不同,先将存储区中的原始密钥替换为比较运算后得到的所述密匙,再进行下一步。
[0010]进一步地,所述用于生成密匙的信息包括芯片序列号。
[0011]一种芯片自动加密方法,用在可在线写入和擦除且其存储区可分块的芯片上,包括以下步骤:
[0012]a.芯片第一次上电运行程序时,从芯片的存储区读取原始密钥,且从芯片的特定寄存器读取用于生成密匙的信息;
[0013]b.使用所述用于生成密匙的信息计算针对该芯片的密匙;
[0014]c.将计算出的密匙与原始密钥进行比较,判断是否相同;
[0015]d.当计算出的密匙与原始密钥相同时,执行下一步;当计算出的密匙与原始密钥不同时,将计算出的密匙保存到存储区以代替原始密钥;
[0016]e.将执行密匙保存功能的程序代码自动擦除,其中所述执行密匙保存功能的程序代码预先划分在独立的可在线擦除的存储区。
[0017]进一步地,所述用于生成密匙的信息包括芯片序列号。
[0018]一种芯片自动加密系统,用在可在线写入和擦除且其存储区可分块的芯片上,包括:
[0019]读取模块,用于芯片第一次上电运行程序时,从芯片的存储区读取原始密钥,且从芯片的特定寄存器读取用于生成密匙的信息;
[0020]计算模块,用于使用所述用于生成密匙的信息计算针对该芯片的密匙;
[0021]比较模块,用于将计算出的密匙与原始密钥进行比较,判断是否相同;
[0022]保存模块,用于当计算出的密匙与原始密钥不同时,将计算出的密匙保存到存储区以代替原始密钥;
[0023]擦除模块,用于将执行密匙保存功能的程序代码自动擦除,其中所述执行密匙保存功能的程序代码预先划分在独立的可在线擦除的存储区。
[0024]进一步地,所述用于生成密匙的信息包括芯片序列号。
[0025]本发明具有如下有益效果:
[0026]一般情况下,非授权的使用者可能将某个正规芯片的正常程序进行破解,作为破解程序烧录到其他空白芯片上,以此达到批量制作非授权芯片的目的。本发明中,在芯片第一次上电运行程序时,程序依据用于生成密匙的信息(如芯片序列号)运算得到密匙,将其作为后续上电运行时需要对比验证的验证密钥并保存,而且,将预先划分在独立的可在线擦除的存储区的、用于执行密匙保存功能的那部分程序代码自动擦除,这样,只要经过一次上电运行,正常程序就会不再具有保存密匙用的程序代码,但这并不影响后续在本芯片上运行正常程序,因为密匙已保存且每次根据正常程序运算得到密匙后可以通过所保存密匙的验证。对于非授权使用来说,从本芯片上的正常程序破解得到的破解程序同样也缺少密匙保存的程序代码,但是,当将破解程序烧录到其他空白芯片上后,由于破解程序缺少保存密匙的程序代码,在第一次上电运行时,破解程序虽能根据芯片序列号运算出针对该芯片的密匙,却无法执行将密匙写入空白芯片的存储区的步骤,从而没有办法使用这些非授权芯片,有效地防止了侵权。本发明不需采用额外的增加加密电路或芯片,也不会增加程序的运行负担。例如,针对可以在线烧录的DSP或ARM芯片,本发明只需要增加少量代码即可实现软件的自动加密,而且不防碍芯片正常使用和升级,但保证破解后的软件不能够用于生产非授权芯片。
【附图说明】
[0027]图1为本发明一种实施例的芯片自动加密方法流程图;
[0028]图2为使用正常程序运行采用本发明的方法进行加密的芯片的流程图;
[0029]图3为使用破解程序运行采用本发明的方法进行加密的芯片的流程图。
【具体实施方式】
[0030]以下对本发明的实施方式作详细说明。应该强调的是,下述说明仅仅是示例性的,而不是为了限制本发明的范围及其应用。
[0031]参阅图1,根据本发明的实施例,一种芯片自动加密方法,用在可在线写入和擦除且其存储区可分块的芯片上,该方法包括以下步骤:
[0032]步骤一.芯片第一次上电运行程序时,程序从芯片的特定寄存器读取用于生成密匙的信息,执行密匙计算功能的程序代码使用所述信息进行运算后得到针对该芯片的密匙,所述用于生成密匙的信息可以包括芯片序列号;
[0033]步骤二.将运算后得到的所述密匙作为后续上电运行时的验证密钥在芯片的存储区中保存;
[0034]步骤三.将步骤二中执行密匙保存功能的程序代码自动擦除,其中所述执行密匙保存功能的程序代码预先划分在独立的可在线擦除的存储区。
[0035]如图2所示,在进一步的实施例中,上述步骤二中,先比较运算后得到的所述密匙与芯片的存储区中的原始密钥是否相同,如果相同,进入下一步,如果不同,先将存储区中的原始密钥替换为比较运算后得到的所述密匙,再进行下一步。
[0036]如图2所示,在一些实施例中,一种芯片自动加密方法,用在可在线写入和擦除且其存储区可分块的芯片上,该方法包括以下步骤:
[0037]步骤一.芯片第一次上电运行程序时,从芯片的存储区读取原始密钥,且从芯片的特定寄存器读取用于生成密匙的信息,所述用于生成密匙的信息可以包括芯片序列号;
[0038]步骤二.使用所述用于生成密匙的信息计算针对该芯片的密匙;
[0039]步骤三.将计算出的密匙与原始密钥进行比较,判断是否相同;
[0040]步骤四.当计算出的密匙与原始密钥相同时,执行下一步;当计算出的密匙与原始密钥不同时,将计算出的密匙保存到存储区以代替原始密钥;
[0041]步骤五.将执行密匙保存功能的程序代码自动擦除,其中所述执行密匙保存功能的程序代码预先划分在独立的可在线擦除的存储区。