CN101256538A - 提高带有片外存储器的电子产品数据安全存储的方法 - Google Patents

提高带有片外存储器的电子产品数据安全存储的方法 Download PDF

Info

Publication number
CN101256538A
CN101256538A CNA2008101027415A CN200810102741A CN101256538A CN 101256538 A CN101256538 A CN 101256538A CN A2008101027415 A CNA2008101027415 A CN A2008101027415A CN 200810102741 A CN200810102741 A CN 200810102741A CN 101256538 A CN101256538 A CN 101256538A
Authority
CN
China
Prior art keywords
external memory
address
chip external
main control
random numbers
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2008101027415A
Other languages
English (en)
Other versions
CN101256538B (zh
Inventor
陆舟
于华章
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Feitian Technologies Co Ltd
Original Assignee
Beijing Feitian Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Feitian Technologies Co Ltd filed Critical Beijing Feitian Technologies Co Ltd
Priority to CN2008101027415A priority Critical patent/CN101256538B/zh
Publication of CN101256538A publication Critical patent/CN101256538A/zh
Application granted granted Critical
Publication of CN101256538B publication Critical patent/CN101256538B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

提升电子产品的安全性能、避免被破解的安全隐患且高效的一种提高带有片外存储器的电子产品数据安全存储的方法,其特征是所述方法包括下列步骤:在电子产品的主控芯片中烧写嵌入全排列随机数表的固件程序;依据嵌入在所述主控芯片内的固件程序中的全排列随机数表对所述片外存储器进行乱序读/写操作和/或密文读/写操作。

Description

提高带有片外存储器的电子产品数据安全存储的方法
技术领域
本发明涉及电子产品安全领域,特别涉及一种提高带有片外存储器的电子产品数据安全存储的方法。
背景技术
随着电子产品的应用领域越来越广泛,人们对电子产品存储信息的需求也越来越多,为适应这一需求,目前越来越多的电子产品都采用在主控芯片外扩一片外存储器的方式来实现。
所谓固件程序(Firmware)就是写入EPROM或EEPROM中的程序,与普通软件不同,它是固化在集成电路内部的程序代码,负责控制和协调集成电路的功能,担任着一个系统最基础、最底层工作的软件,一般电子产品生产商或开发商都会自己开发电子产品的固件程序。
但是,在带片外存储器的电子产品的生产过程中由于一般都是批量生产,这样每次烧写到电子产品的主控芯片中的固件程序都是一致的,因此,使得电子产品中主控芯片对其外扩的片外存储器的存储规则、加密规则等也都存在一致性,如果其中的一个或几个电子产品被破解或被解剖后,其他同类别的电子产品的使用也将变得不再安全;另外,由于电子产品中的片外存储器很容易被克隆或直接用到其他电子产品中,所以这种片外存储器的存储规则、加密规则等存在的一致性会大大降低电子产品数据的安全性。
发明内容
为了解决上述电子产品由于其内与主控芯片连接的片外存储器的存储规则及加密规则等的一致性,导致的电子产品数据安全性低的问题,本发明提出一种提高电子产品数据安全存储的方法,通过利用在嵌入固件程序中的全排列随机数表,使每个产品中存储区域的存储规则及加密规则等发生变化,从而提升电子产品的安全性能。
一种提高带有片外存储器的电子产品数据安全存储的方法,其特征是所述方法包括下列步骤:
---在电子产品的主控芯片中烧写嵌入全排列随机数表的固件程序;
---依据嵌入在所述主控芯片内的固件程序中的全排列随机数表对所述片外存储器进行乱序读/写操作和/或密文读/写操作。
所述对片外存储器乱序读/写操作方法的具体步骤为:
将主控芯片对片外存储器进行读/写操作的原地址的部分或全部数值作为索引值,在固件程序中嵌入的全排列随机数表中找到该索引值对应的内容值,将所述内容值替代所述原地址中作为索引部分数值后的地址数据作为新的读出/写入地址,或将所述内容值作为新的读出/写入地址,对所述片外存储器进行读/写操作。
所述对片外存储器进行乱序读/写操作方法的具体步骤为:
将主控芯片对片外存储器进行读/写操作的原地址的部分或全部数值利用预先设定算法计算得到索引值,在固件程序嵌入的全排列随机数表中找到该索引值对应的内容值,将所述内容值替代所述原地址中作为索引部分数值后的地址数据作为新的读出/写入地址,或将所述内容值作为新的读出/写入地址,对所述片外存储器进行读/写操作。
所述对片外存储器进行密文写操作的方法具体步骤为:
将主控芯片对片外存储器进行写操作的地址的部分或全部作为索引值,在固件程序嵌入的全排列随机数表中找到该索引值对应的内容值,利用所述内容值对要写入的数据做加密运算,将加密结果写入所述地址。
所述对片外存储器进行密文读操作的方法具体步骤为:
将主控芯片对片外存储器进行读操作的地址的部分或全部作为索引值,在固件程序嵌入的全排列随机数表中找到该索引值对应的内容值,利用所述内容值对片外存储器所述地址中的数据做解密运算,将解密结果读出。
所述对片外存储器进行密文写操作的方法具体步骤为:
将主控芯片对片外存储器进行写操作的地址的部分或全部利用预先设定算法计算得到索引值,在固件程序嵌入的全排列随机数表中找到该索引值对应的内容值,利用所述内容值对要写入的数据做加密运算,将加密结果写入所述地址。
所述对片外存储器进行密文读操作的方法具体为:
将主控芯片对片外存储器进行读操作的地址的部分或全部利用预先设定算法计算得到索引值,在固件程序嵌入的全排列随机数表中找到该索引值对应的内容值,利用所述内容值对片外存储器所述地址中的数据做解密运算,将解密结果读出。
有益效果:本发明提供的一种提高带有片外存储器的电子产品数据安全存储的方法,由于每个电子产品的固件程序中嵌入的全排列随机数表都是不同的,所以通过利用嵌入在固件程序中的全排列随机数表,使每个产品中片外存储器的存储规则或加密规则互不相同,使得即使破解其中的一个或几个电子产品,并不能对其他电子产品的使用产生影响,另外,也可以有效防止片外存储器被克隆或直接与其他的主控芯片连接,用于其他的产品中,从而提升电子产品的安全性能;另一方面,由于本发明提供的方法是通过对嵌入在固件程序中的全排列随机数表进行查表进而实现安全读写的,查表的效率相对其他的利用算法等而言,效率很高,故本发明读写的速度很快。
附图说明
图1是本发明的硬件结构框图;
图1-1是本发明实施例1提供的一种乱序写操作的方法流程图;
图1-2是本发明实施例1提供的一个乱序写操作示例的示意图;
图1-3是本发明实施例1提供的一种乱序读操作的方法流程图;
图1-4是本发明实施例1提供的一个乱序读操作示例的示意图;
图2-1是本发明实施例2提供的一种乱序写操作的方法流程图;
图2-2是本发明实施例2提供的一个乱序写操作示例的示意图;
图2-3是本发明实施例2提供的一个乱序读操作的方法流程图;
图2-4是本发明实施例2提供的一个乱序读操作示例的示意图;
图3-1是本发明实施例3提供的一个密文写操作的方法流程图;
图3-2是本发明实施例3提供的一个密文读操作的方法流程图;
图4-1是本发明实施例4提供的一个密文写操作的方法流程图;
图4-2是本发明实施例4提供的一个密文读操作的方法流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
包括主控芯片和外扩片外存储器的电子产品,在生产时,即向电子产品中的主控芯片烧写固件程序时,将全排列随机数表嵌入到固件程序中烧写到主控芯片中,由于每个全排列随机数表是不同的,所以导致每个电子产品的主控芯片中烧写的固件程序存在不一致性,主控芯片利用嵌入在固件程序中的全排列随机数表对其外扩的片外存储器进行读/写操作时,使得每个电子产品中片外存储器的存储规则或加密规则等都具有了不一致性,从而提高了电子产品的安全性,避免了容易被破解的隐患。
实施例1:
参见图1-1,本发明实施例提供了一种提高带有片外存储器的电子产品数据安全存储的方法,其中电子产品包括主控芯片和片外存储器,上述方法包括如下步骤:
在主控芯片中烧写嵌入全排列随机数表的固件程序;
优选的,可以采用一种能够自动产生全排列随机数表,并能向被烧写程序中自动嵌入上述全排列随机数表的智能编程器来实现在主控芯片中烧写嵌入全排列随机数表的固件程序。
其中智能编程器包括:编程接口和程序存储模块,另外还包括:
设置模块,用于设置表生成模块生成的全排列随机数表的表首地址和表长度,上述表首地址指向全排列随机数表向主控芯片中烧写的表首位置;
优选的,设置模块具体可以为存储模块,用于存储表首地址和表长度,作为表生成模块生成的全排列随机数表的表首地址和表长度,其中表首地址指向所述全排列随机数表向主控芯片中烧写的表首位置。
优选的,设置模块具体还可以为获取模块,用于根据预先定义的特征值,查找并获取表首地址和表长度,作为表生成模块生成的全排列随机数表的表首地址和表长度,其中表首地址指向所述全排列随机数表向主控芯片中烧写的表首位置。
在实际应用中,设置模块设置的表首地址和表长度可以为一对或多对,分别与一个或多个主控芯片类型相对应。
表生成模块,用于生成设置模块中设置的表长度的全排列随机数表;表生成模块可以由全排列随机数生成芯片或振荡电路实现,还可以由内置伪全排列随机数生成算法的微控制芯片实现,表生成模块还可以与编程模块集成在一颗控制芯片中实现。其中伪全排列随机数生成算法可以是生产商或开发商自设置开发的伪全排列随机数生成算法,也可以利用现有的一些伪全排列随机数生成算法。所谓全排列随机数表,通俗的说就是该随机数表中的随机数都是不重复的,是一种全排列的状态,以便进一步提高安全性。
编程模块,用于通过编程接口将表生成模块生成的全排列随机数表及程序存储模块中存储的被烧写程序以嵌套的方式烧写到主控芯片中,其中写入主控芯片中的全排列随机数表的表首位置为设置模块中设置的表首地址。编程模块优选的可以由一颗控制芯片实现。
优选的,智能编程器还包括为编程器提供电源管理的电源回路。
优选的,智能编程器还包括用于指示当前编程器及其电源工作状态的状态指示模块,等。
主控芯片依据嵌入在固件程序中的全排列随机数表对与其连接的片外存储器进行乱序写操作的步骤包括:
步骤S1:将主控芯片对片外存储器进行写操作的原地址的部分或全部作为索引值;
步骤S2:在固件程序嵌入的全排列随机数表中找到该索引值对应的内容值;
步骤S3:将该内容值替代原地址中作为索引的部分作为新的写入地址,或将该内容值作为新的写入地址,对该片外存储器进行写操作。
参见图1-2,给出利用嵌入在固件程序中的全排列随机数表对片外存储器进行乱序写操作的一个示例,主控芯片要对片外存储器的Address1地址进行写操作,要写入的内容为A,地址Address1共16位,由前4位L、中间8位M和后4位N组成,取地址Address1的中间8位M作为索引值,在固件程序中嵌入的全排列随机数表Table中找到该索引值M对应的内容值K,将该内容值K替代Address1的中间8位,前4位L和后4位N不变,作为新的地址Address2,将主控芯片要写入片外存储器中的内容A写入片外存储器地址Address2中。
还可以将主控芯片Address1的全部16位内容全部作为索引值,在固件程序中嵌入的全排列随机数表Table中找到该索引值对应的内容值K,将内容值K作为新的地址Address2,将主控芯片要写入片外存储器中的内容A写入片外存储器地址Address2中。
参见图1-3,本发明实施例提供的主控芯片依据嵌入在固件程序中的全排列随机数表对与其连接的片外存储器进行乱序读操作的步骤包括:
步骤D1:将主控芯片对片外存储器进行读操作的原地址的部分或全部作为索引值;
步骤D2:在固件程序嵌入的全排列随机数表中找到该索引值对应的内容值;
步骤D3:将该内容值替代原地址中作为索引的部分作为新的读取地址,或将该内容值作为新的读取地址,对该片外存储器进行读操作。
参见图1-4,给出利用嵌入在固件程序中的全排列随机数表对与其连接的片外存储器进行乱序读操作的一个示例,主控芯片要对片外存储器的Address1地址进行读操作,地址Address1共16位,由前4位L、中间8位M和后4位N组成,取地址Address1的中间8位M作为索引值,在固件程序中嵌入的全排列随机数表Table中找到该索引值M对应的内容值K,将该内容值K替代Address1的中间8位,前4位L和后4位N不变,作为新的地址Address2,主控芯片从新的地址Address2中读出内容到主控芯片中即可。
还可以将主控芯片Address1的全部16位内容全部作为索引值,在固件程序中嵌入的全排列随机数表Table中找到该索引值对应的内容值K,将内容值K作为新的地址Address2,主控芯片从新的地址Address2中读出内容到主控芯片中即可。
所谓全排列随机数表,通俗的说就是该随机数表中的随机数都是不重复的,是一种全排列的状态。
由此可见,由于在生产电子产品即向电子产品中的主控芯片内烧写固件程序的时候,嵌入在每个电子产品中的全排列随机数表是不固定的,是随机生成的,所以当电子产品中的主控芯片向与其相连的片外存储器进行写操作时,即使是批量生产的电子产品,写入到片外存储器中的地址也是不一致的,即利用嵌入在固件程序中的全排列随机数表实现了对片外存储器的乱序存储,改变了其存储规则的一致性,这样,即使是破解了同一批次的其中一个或几个产品,其他的产品的安全性也是很高的,即大大提高了电子产品存储的安全能力。
实施例2:
参见图2-1,本发明实施例提供了一种提高带有片外存储器的电子产品数据安全存储的方法,其中电子产品包括主控芯片和片外存储器,上述方法包括如下步骤:
在主控芯片中烧写嵌入全排列随机数表的固件程序;
优选的,可以采用一种能够自动产生全排列随机数表,并能向被烧写程序中自动嵌入上述全排列随机数表的智能编程器来实现在主控芯片中烧写嵌入全排列随机数表的固件程序。
其中智能编程器包括:编程接口和程序存储模块,另外还包括:
设置模块,用于设置表生成模块生成的全排列随机数表的表首地址和表长度,上述表首地址指向全排列随机数表向主控芯片中烧写的表首位置;
优选的,设置模块具体可以为存储模块,用于存储表首地址和表长度,作为表生成模块生成的全排列随机数表的表首地址和表长度,其中表首地址指向所述全排列随机数表向主控芯片中烧写的表首位置。
优选的,设置模块具体还可以为获取模块,用于根据预先定义的特征值,查找并获取表首地址和表长度,作为表生成模块生成的全排列随机数表的表首地址和表长度,其中表首地址指向所述全排列随机数表向主控芯片中烧写的表首位置。
在实际应用中,设置模块设置的表首地址和表长度可以为一对或多对,分别与一个或多个主控芯片类型相对应。
表生成模块,用于生成设置模块中设置的表长度的全排列随机数表;表生成模块可以由全排列随机数生成芯片或振荡电路实现,还可以由内置伪全排列随机数生成算法的微控制芯片实现,表生成模块还可以与编程模块集成在一颗控制芯片中实现。其中伪全排列随机数生成算法可以是生产商或开发商自设置开发的伪全排列随机数生成算法,也可以利用现有的一些伪全排列随机数生成算法。所谓全排列随机数表,通俗的说就是该随机数表中的随机数都是不重复的,是一种全排列的状态,以便进一步提高安全性。
编程模块,用于通过编程接口将表生成模块生成的全排列随机数表及程序存储模块中存储的被烧写程序以嵌套的方式烧写到主控芯片中,其中写入主控芯片中的全排列随机数表的表首位置为设置模块中设置的表首地址。编程模块优选的可以由一颗控制芯片实现。
优选的,智能编程器还包括为编程器提供电源管理的电源回路。
优选的,智能编程器还包括用于指示当前编程器及其电源工作状态的状态指示模块,等。
主控芯片依据嵌入在固件程序中的全排列随机数表对与其连接的片外存储器进行乱序写操作的步骤包括:
步骤Q1:将主控芯片对片外存储器进行写操作的原地址的部分或全部利用预先设定算法计算得到索引值;
步骤Q2:在固件程序嵌入的全排列随机数表中找到该索引值对应的内容值;
步骤Q3:将该内容值替代原地址中作为索引的部分作为新的写入地址,或将该内容值作为新的写入地址,对该片外存储器进行写操作。
参见图2-2,给出利用嵌入在固件程序中的全排列随机数表对片外存储器进行乱序写操作的一个示例,主控芯片要对片外存储器的Address1地址进行写操作,要写入的内容为A,地址Address1共16位,由前4位L、中间8位M和后4位N组成,取地址Address1的中间8位M利用预先设定算法计算得到索引值i,这里的算法可根据需要自行设计,比如加、减、乘、除、与、或、非、位置替换等等均可,在固件程序中嵌入的全排列随机数表Table中找到该索引值i对应的内容值K,将该内容值K替代Address1的中间8位,前4位L和后4位N不变,作为新的地址Address2,将主控芯片要写入片外存储器中的内容A写入片外存储器地址Address2中。
还可以将主控芯片Address1的全部16位内容全部利用预先设定算法计算得到索引值i,在固件程序中嵌入的全排列随机数表Table中找到该索引值i对应的内容值K,将内容值K作为新的地址Address2,将主控芯片要写入片外存储器中的内容A写入片外存储器地址Address2中。
参见图2-3,本发明实施例提供的主控芯片依据嵌入在固件程序中的全排列随机数表对与其连接的片外存储器进行乱序读操作的步骤包括:
步骤K1:将主控芯片对片外存储器进行读操作的原地址的部分或全部利用预先设定算法计算得到索引值;
步骤K2:在固件程序嵌入的全排列随机数表中找到该索引值对应的内容值;
步骤K3:将该内容值替代原地址中作为索引的部分作为新的读取地址,或将该内容值作为新的读取地址,对该片外存储器进行读操作。
参见图2-4,给出利用嵌入在固件程序中的全排列随机数表对与其连接的片外存储器进行乱序读操作的一个示例,主控芯片要对片外存储器的Address1地址进行读操作,地址Address1共16位,由前4位L、中间8位M和后4位N组成,取地址Address1的中间8位M利用预先设定算法计算得到索引值i,这里的算法可根据需要自行设计,比如加、减、乘、除、与、或、非、位置替换等等均可,在固件程序中嵌入的全排列随机数表Table中找到该索引值i对应的内容值K,将该内容值K作为新的地址Address2的中间8位,前4位L和后4位N不变,主控芯片从新的地址Address2中读出内容到主控芯片中即可。
还可以将主控芯片Address1的全部16位内容全部利用预先设定算法计算得到索引值i,在固件程序中嵌入的全排列随机数表Table中找到该索引值i对应的内容值K,将内容值K作为新的地址Address2,主控芯片从新的地址Address2中读出内容到主控芯片中即可。
由此可见,由于在生产电子产品即向电子产品中的主控芯片内烧写固件程序的时候,嵌入在每个电子产品中的全排列随机数表是不固定的,是随机生成的,所以当电子产品中的主控芯片向与其相连的片外存储器进行写操作时,即使是批量生产的电子产品,写入到片外存储器中的地址也是不一致的,即利用嵌入在固件程序中的全排列随机数表实现了对片外存储器的乱序存储,改变了其存储规则的一致性,同理,当电子产品中的主控芯片向与其相连的片外存储器进行读操作时也是一样,所以,即使是破解了同一批次的其中一个或几个产品,其他的产品的安全性也是很高的,即大大提高了电子产品存储的安全能力。
实施例3:
参见图3-1,本发明实施例提供了一种提高带有片外存储器的电子产品数据安全存储的方法,其中电子产品包括主控芯片和片外存储器,上述方法包括如下步骤:
在主控芯片中烧写嵌入全排列随机数表的固件程序;
优选的,可以采用一种能够自动产生全排列随机数表,并能向被烧写程序中自动嵌入上述全排列随机数表的智能编程器来实现在主控芯片中烧写嵌入全排列随机数表的固件程序。
其中智能编程器包括:编程接口和程序存储模块,另外还包括:
设置模块,用于设置表生成模块生成的全排列随机数表的表首地址和表长度,上述表首地址指向全排列随机数表向主控芯片中烧写的表首位置;
优选的,设置模块具体可以为存储模块,用于存储表首地址和表长度,作为表生成模块生成的全排列随机数表的表首地址和表长度,其中表首地址指向所述全排列随机数表向主控芯片中烧写的表首位置。
优选的,设置模块具体还可以为获取模块,用于根据预先定义的特征值,查找并获取表首地址和表长度,作为表生成模块生成的全排列随机数表的表首地址和表长度,其中表首地址指向所述全排列随机数表向主控芯片中烧写的表首位置。
在实际应用中,设置模块设置的表首地址和表长度可以为一对或多对,分别与一个或多个主控芯片类型相对应。
表生成模块,用于生成设置模块中设置的表长度的全排列随机数表;表生成模块可以由全排列随机数生成芯片或振荡电路实现,还可以由内置伪全排列随机数生成算法的微控制芯片实现,表生成模块还可以与编程模块集成在一颗控制芯片中实现。其中伪全排列随机数生成算法可以是生产商或开发商自设置开发的伪全排列随机数生成算法,也可以利用现有的一些伪全排列随机数生成算法。所谓全排列随机数表,通俗的说就是该随机数表中的随机数都是不重复的,是一种全排列的状态,以便进一步提高安全性。
编程模块,用于通过编程接口将表生成模块生成的全排列随机数表及程序存储模块中存储的被烧写程序以嵌套的方式烧写到主控芯片中,其中写入主控芯片中的全排列随机数表的表首位置为设置模块中设置的表首地址。编程模块优选的可以由一颗控制芯片实现。
优选的,智能编程器还包括为编程器提供电源管理的电源回路。
优选的,智能编程器还包括用于指示当前编程器及其电源工作状态的状态指示模块,等。
主控芯片依据嵌入在固件程序中的全排列随机数表对与其连接的片外存储器进行密文写操作的步骤包括:
步骤A1:将主控芯片对片外存储器进行写操作的地址的部分或全部作为索引值;
步骤A2:在固件程序嵌入的全排列随机数表中找到该索引值对应的内容值;
步骤A3:利用该内容值对要写入的数据做加密运算;
步骤A4:将加密结果写入上述地址。
为了更清楚的说明,下面给出一个利用嵌入在固件程序中的全排列随机数表对片外存储器进行密文写操作的示例,主控芯片要对片外存储器的Address1地址进行写操作,要写入的内容为A,地址Address1共16位,由前4位L、中间8位M和后4位N组成,取地址Address1的中间8位M作为索引值,在固件程序中嵌入的全排列随机数表Table中找到该索引值对应的内容值K,利用该内容值K对要写入的内容A做加密运算,得到加密结果A′,加密运算比如可以是A′=A^K等,将加密结果A′写入地址Address1中。还可以是将地址Address1的全部作为索引值。
参见图3-2,本发明实施例提供的主控芯片依据嵌入在固件程序中的全排列随机数表对与其连接的片外存储器进行密文读操作的步骤包括:
步骤B1:将主控芯片对片外存储器进行读操作的地址的部分或全部作为索引值;
步骤B2:在固件程序嵌入的全排列随机数表中找到该索引值对应的内容值;
步骤B3:利用该内容值对上述地址中的数据做解密运算;
步骤B4:将解密结果读出到主控芯片中。
为了更清楚的说明,下面给出一个利用嵌入在固件程序中的全排列随机数表对片外存储器进行密文读操作的示例,主控芯片要对片外存储器的Address1地址进行写操作,该地址Address1内存储的内容为A′,地址Address1共16位,由前4位L、中间8位M和后4位N组成,取地址Address1的中间8位M作为索引值,在固件程序中嵌入的全排列随机数表Table中找到该索引值对应的内容值K,利用该内容值K对地址Address1内存储的内容为A′做解密运算,得到解密结果A,将解密结果A读出到主控芯片中,解密算法比如可以是A′=A^K等。还可以是将地址Address1的全部作为索引值。
本实施例中的加密算法和解密算法包括可逆算法,包括DES、3DES、RC2、RC4等均可。
由此可见,由于在生产电子产品即向电子产品中的主控芯片内烧写固件程序的时候,嵌入在每个电子产品中的全排列随机数表是不固定的,是随机生成的,所以当电子产品中的主控芯片向与其相连的片外存储器进行写操作时,即使是批量生产的电子产品,写入到片外存储器中的内容也是不一致的,即利用嵌入在固件程序中的全排列随机数表实现了对片外存储器的密文存储,改变了其存储及加密规则的一致性,同理,当电子产品中的主控芯片向与其相连的片外存储器进行读操作时也是一样,所以,即使是破解了同一批次的其中一个或几个产品,其他的产品的安全性也是很高的,即大大提高了电子产品存储的安全能力。
实施例4:
参见图4-1,本发明实施例提供了一种提高带有片外存储器的电子产品数据安全存储的方法,其中电子产品包括主控芯片和片外存储器,上述方法包括如下步骤:
在主控芯片中烧写嵌入全排列随机数表的固件程序;
优选的,可以采用一种能够自动产生全排列随机数表,并能向被烧写程序中自动嵌入上述全排列随机数表的智能编程器来实现在主控芯片中烧写嵌入全排列随机数表的固件程序。
其中智能编程器包括:编程接口和程序存储模块,另外还包括:
设置模块,用于设置表生成模块生成的全排列随机数表的表首地址和表长度,上述表首地址指向全排列随机数表向主控芯片中烧写的表首位置;
优选的,设置模块具体可以为存储模块,用于存储表首地址和表长度,作为表生成模块生成的全排列随机数表的表首地址和表长度,其中表首地址指向所述全排列随机数表向主控芯片中烧写的表首位置。
优选的,设置模块具体还可以为获取模块,用于根据预先定义的特征值,查找并获取表首地址和表长度,作为表生成模块生成的全排列随机数表的表首地址和表长度,其中表首地址指向所述全排列随机数表向主控芯片中烧写的表首位置。
在实际应用中,设置模块设置的表首地址和表长度可以为一对或多对,分别与一个或多个主控芯片类型相对应。
表生成模块,用于生成设置模块中设置的表长度的全排列随机数表;表生成模块可以由全排列随机数生成芯片或振荡电路实现,还可以由内置伪全排列随机数生成算法的微控制芯片实现,表生成模块还可以与编程模块集成在一颗控制芯片中实现。其中伪全排列随机数生成算法可以是生产商或开发商自设置开发的伪全排列随机数生成算法,也可以利用现有的一些伪全排列随机数生成算法。所谓全排列随机数表,通俗的说就是该随机数表中的随机数都是不重复的,是一种全排列的状态,以便进一步提高安全性。
编程模块,用于通过编程接口将表生成模块生成的全排列随机数表及程序存储模块中存储的被烧写程序以嵌套的方式烧写到主控芯片中,其中写入主控芯片中的全排列随机数表的表首位置为设置模块中设置的表首地址。编程模块优选的可以由一颗控制芯片实现。
优选的,智能编程器还包括为编程器提供电源管理的电源回路。
优选的,智能编程器还包括用于指示当前编程器及其电源工作状态的状态指示模块,等。
主控芯片依据嵌入在固件程序中的全排列随机数表对与其连接的片外存储器进行密文写操作的步骤包括:
步骤F1:将主控芯片对片外存储器进行写操作的地址的部分或全部利用预先设定算法计算得到索引值;
步骤F2:在固件程序嵌入的全排列随机数表中找到该索引值对应的内容值;
步骤F3:利用该内容值对要写入的数据做加密运算;
步骤F4:将加密结果写入上述地址。
为了更清楚的说明,下面给出一个利用嵌入在固件程序中的全排列随机数表对片外存储器进行密文写操作的示例,主控芯片要对片外存储器的Address1地址进行写操作,要写入的内容为A,地址Address1共16位,由前4位L、中间8位M和后4位N组成,取地址Address1的中间8位M利用预先设定算法计算得到索引值i,这里的算法可根据需要自行设计,比如加、减、乘、除、与、或、非、位置替换等等均可,在固件程序中嵌入的全排列随机数表Table中找到该索引值i对应的内容值K,利用该内容值K对要写入的内容A做加密运算,得到加密结果A′,将加密结果A′写入地址Address1中。还可以是将地址Address1的全部作为索引值。
参见图4-2,本发明实施例提供的主控芯片依据嵌入在固件程序中的全排列随机数表对与其连接的片外存储器进行密文读操作的步骤包括:
步骤H1:将主控芯片对片外存储器进行读操作的地址的部分或全部利用预先设定算法计算得到索引值;
步骤H2:在固件程序嵌入的全排列随机数表中找到该索引值对应的内容值;
步骤H3:利用该内容值对上述地址中的数据做解密运算;
步骤H4:将解密结果读出到主控芯片中。
为了更清楚的说明,下面给出一个利用嵌入在固件程序中的全排列随机数表对片外存储器进行密文读操作的示例,主控芯片要对片外存储器的Address1地址进行写操作,该地址Address1内存储的内容为A′,地址Address1共16位,由前4位L、中间8位M和后4位N组成,取地址Address1的中间8位M利用预先设定算法计算得到索引值i,这里的算法可根据需要自行设计,比如加、减、乘、除、与、或、非、位置替换等等均可,在固件程序中嵌入的全排列随机数表Table中找到该索引值i对应的内容值K,利用该内容值K对地址Address1内存储的内容为A′做解密运算,得到解密结果A,将解密结果A读出到主控芯片中。还可以是将地址Address1的全部作为索引值。
本实施例中的加密算法和解密算法包括可逆算法,包括DES、3DES、RC2、RC4等均可。
由此可见,由于在生产电子产品即向电子产品中的主控芯片内烧写固件程序的时候,嵌入在每个电子产品中的全排列随机数表是不固定的,是随机生成的,所以当电子产品中的主控芯片向与其相连的片外存储器进行写操作时,即使是批量生产的电子产品,写入到片外存储器中的内容也是不一致的,即利用嵌入在固件程序中的全排列随机数表实现了对片外存储器的密文存储,改变了其加密规则的一致性,同理,当电子产品中的主控芯片向与其相连的片外存储器进行读操作时也是一样,所以,即使是破解了同一批次的其中一个或几个产品,其他的产品的安全性也是很高的,即大大提高了电子产品存储的安全能力。
下面是用于乱序存储地址变换的主控芯片汇编程序代码,以CY7C63813芯片为例,指定要变换的地址RomAddressH及RomAddressL,调用函数ChangAddress就可以得到变换后的地址RomAddressH及RomAddressL,在函数代码中,CHANGTABLE指向一个256字节的全排列随机数表的表首,查表用指令indexCHANGTABLE,查表仅需13个时钟周期就可完成;完成乱序存储地址变换仅需15行汇编代码,约100个时钟周期,相对利用其他算法实现而言效率非常高,比如采用TEA算法实现的话,一般需要几百行汇编代码,约上千个时钟周期才能实现。
ChangAddress:
    mov    [R0],[RomAddressL]  ;[R0]=[RomAddressL]
    and    [RomAddressL],0x1f  ;[RomAddressL]=[RomAddressL]&0x1f
    and    [R0],0xe0
    mov    a,[RomAddressH]
    and    a,01fh
    or     a,[R0]         ;a={[RomAddressH]&0x1f}|{[R0]&0xe0}
    index  CHANGTABLE                 ;a=[CHANGTABLE+a]
    mov    [R0],a              ;[R0]=a
    and    a,0xe0
    or [RomAddressL],a ;[RomAddressL]=[R0]&0xe0|[RomAddressL]
     and  [R0],0x1f
     and  [RomAddressH],0xe0
     mov  a,[R0]
or[RomAddressH],a;[RomAddressH]={[RomAddressH]&0xe0}|{[R0]&0x 1f}
     ret
下面是用于数据加/解密的主控芯片汇编程序代码,以CY7C63813芯片为例,指定要加/解密的数据(存放在a中)及其存储地址RomAddressH及RomAddressL,调用函数ChangData就可以得到解/加密的数据(存放在a中),在函数代码中,CHANGTABLE指向一个256字节的全排列随机数表的表首,查表用指令index CHANGTABLE,查表仅需13个时钟周期就可完成;完成数据加/解密仅需12行汇编代码,约80个时钟周期,相对利用其他算法实现而言效率非常高,比如采用TEA算法实现的话,一般需要几百行汇编代码,约上千个时钟周期才能实现。
ChangData:
   mov    [R1],a     ;[R1]=a
   mov    a,[RomAddressL]
   and    a,01fh
   index  CHANGTABLE  ;a=[CHANGTABLE+[RomAddressL]&0x1f]
   mov    [R0],a     ;[R0]=a
   mov    a,[RomAddressL]
   and    a,0e0h
   or     a,[RomAddressH]
   xor    a,[R0];a=[RomAddressL]&0xe0|[RomAddressH]^[R0]
   index  CHANGTABLE  ;a=[CHANGTABLE+a]
   xor    a,[R1]     ;a=[R1]^a
   ret
由此可见,利用嵌入在固件程序中的全排列随机数表进行乱序读写操作及密文读写操作时,其中对全排列随机数表的操作都是由查表的方法来实现的,查表的效率相对其他的算法等而言,本发明读写的速度很快,故效率很高。
综上所述,本发明实施例提供的一种提高带有片外存储器的电子产品数据安全存储的方法,由于每个电子产品的固件程序中嵌入的全排列随机数表都是不同的,所以通过利用嵌入在固件程序中的全排列随机数表,使每个产品中片外存储器的存储规则或加密规则等互不相同,使得即使破解其中的一个或几个电子产品,并不能对其他电子产品的使用产生影响,另外,也可以有效防止片外存储器被克隆或直接与其他的主控芯片连接,用于其他的产品中,从而提升电子产品的安全性能;另一方面,由于本发明实施例提供的方法是通过对嵌入在固件程序中的全排列随机数表进行查表进而实现安全读写的,查表的效率相对其他的利用算法等而言,效率很高,故本发明读写的速度很快。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (7)

1、一种提高带有片外存储器的电子产品数据安全存储的方法,其特征是所述方法包括下列步骤:
---在电子产品的主控芯片中烧写嵌入全排列随机数表的固件程序;
---依据嵌入在所述主控芯片内的固件程序中的全排列随机数表对所述片外存储器进行乱序读/写操作和/或密文读/写操作。
2、根据权利要求1所述的提高带有片外存储器的电子产品数据安全存储的方法,其特征是所述对片外存储器乱序读/写操作方法的具体步骤为:
将主控芯片对片外存储器进行读/写操作的原地址的部分或全部数值作为索引值,在固件程序中嵌入的全排列随机数表中找到该索引值对应的内容值,将所述内容值替代所述原地址中作为索引部分数值后的地址数据作为新的读出/写入地址,或将所述内容值作为新的读出/写入地址,对所述片外存储器进行读/写操作。
3、根据权利要求1所述的提高带有片外存储器的电子产品数据安全存储的方法,其特征是所述对片外存储器进行乱序读/写操作方法的具体步骤为:
将主控芯片对片外存储器进行读/写操作的原地址的部分或全部数值利用预先设定算法技算得到索引值,在固件程序中嵌入的全排列随机数表中找到该索引值对应的内容值,将所述内容值替代所述原地址中作为索引部分数值后的地址数据作为新的读出/写入地址,或将所述内容值作为新的读出/写入地址,对所述片外存储器进行读/写操作。
4、根据权利要求1所述的提高带有片外存储器的电子产品数据安全存储的方法,其特征是所述对片外存储器进行密文写操作的方法具体步骤为:
将主控芯片对片外存储器进行写操作的地址的部分或全部作为索引值,在固件程序嵌入的全排列随机数表中找到该索引值对应的内容值,利用所述内容值对要写入的数据做加密运算,将加密结果写入所述地址。
5、根据权利要求1所述的提高带有片外存储器的电子产品数据安全存储的方法,其特征是所述对片外存储器进行密文读操作的方法具体步骤为:
将主控芯片对片外存储器进行读操作的地址的部分或全部作为索引值,在固件程序嵌入的全排列随机数表中找到该索引值对应的内容值,利用所述内容值对片外存储器所述地址中的数据做解密运算,将解密结果读出。
6、根据权利要求1所述的提高带有片外存储器的电子产品数据安全存储的方法,其特征是所述对片外存储器进行密文写操作的方法具体步骤为:
将主控芯片对片外存储器进行写操作的地址的部分或全部利用预先设定算法计算得到索引值,在固件程序嵌入的全排列随机数表中找到该索引值对应的内容值,利用所述内容值对要写入的数据做加密运算,将加密结果写入所述地址。
7、根据权利要求1所述的提高带有片外存储器的电子产品数据安全存储的方法,其特征是所述对片外存储器进行密文读操作的方法具体为:
将主控芯片对片外存储器进行读操作的地址的部分或全部利用预先设定算法计算得到索引值,在固件程序嵌入的全排列随机数表中找到该索引值对应的内容值,利用所述内容值对片外存储器所述地址中的数据做解密运算,将解密结果读出。
CN2008101027415A 2008-03-26 2008-03-26 提高带有片外存储器的电子产品数据安全存储的方法 Expired - Fee Related CN101256538B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008101027415A CN101256538B (zh) 2008-03-26 2008-03-26 提高带有片外存储器的电子产品数据安全存储的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008101027415A CN101256538B (zh) 2008-03-26 2008-03-26 提高带有片外存储器的电子产品数据安全存储的方法

Publications (2)

Publication Number Publication Date
CN101256538A true CN101256538A (zh) 2008-09-03
CN101256538B CN101256538B (zh) 2011-04-27

Family

ID=39891376

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008101027415A Expired - Fee Related CN101256538B (zh) 2008-03-26 2008-03-26 提高带有片外存储器的电子产品数据安全存储的方法

Country Status (1)

Country Link
CN (1) CN101256538B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103886114A (zh) * 2012-12-19 2014-06-25 上海华虹宏力半导体制造有限公司 只读存储器版图生成方法
CN105320855A (zh) * 2014-07-30 2016-02-10 义隆电子股份有限公司 微处理器及其数据保密方法
CN105393257A (zh) * 2014-05-07 2016-03-09 华为终端有限公司 一种数据加密方法及加密装置
CN108599930A (zh) * 2018-04-02 2018-09-28 湖南国科微电子股份有限公司 固件加解密系统与方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103886114A (zh) * 2012-12-19 2014-06-25 上海华虹宏力半导体制造有限公司 只读存储器版图生成方法
CN103886114B (zh) * 2012-12-19 2016-11-02 上海华虹宏力半导体制造有限公司 只读存储器版图生成方法
CN105393257A (zh) * 2014-05-07 2016-03-09 华为终端有限公司 一种数据加密方法及加密装置
CN105393257B (zh) * 2014-05-07 2018-09-21 华为终端(东莞)有限公司 一种数据加密方法及加密装置
CN105320855A (zh) * 2014-07-30 2016-02-10 义隆电子股份有限公司 微处理器及其数据保密方法
CN108599930A (zh) * 2018-04-02 2018-09-28 湖南国科微电子股份有限公司 固件加解密系统与方法
CN108599930B (zh) * 2018-04-02 2021-05-14 湖南国科微电子股份有限公司 固件加解密系统与方法

Also Published As

Publication number Publication date
CN101256538B (zh) 2011-04-27

Similar Documents

Publication Publication Date Title
CN1878055B (zh) 一种分离式大数据量加/解密设备及实现方法
CN102436423B (zh) 通用片外NorFlash核心数据保护的控制器及方法
CN102238001B (zh) 一种提高数据安全性的方法和装置
CN102129592B (zh) 接触式智能卡
CN101256538B (zh) 提高带有片外存储器的电子产品数据安全存储的方法
US20030094499A1 (en) Information processing device
CN101859351B (zh) 保证存储器存储的数据安全读取的系统及方法
CN102156843B (zh) 数据加密方法与系统以及数据解密方法
CN105447394A (zh) 一种带本地数据加密功能的智能密码钥匙
CN101984449A (zh) 一种智能卡cos操作系统
CN113890728A (zh) 基于fpga加密卡的密钥处理方法、系统、设备及介质
JP2008181225A (ja) Icカード
US10728026B2 (en) Data management method
CN1945591A (zh) 一种电子标签加密防伪技术
CN103136466B (zh) 一种基于加密狗的Web3D加密方法
CN104077243A (zh) Sata硬盘设备加密方法及系统
CN109598105A (zh) 一种微控制器安全加载固件的方法、装置、计算机设备及存储介质
CN203930840U (zh) 一种硬件加密卡
CN104081712A (zh) 使用隐藏的根密钥的可重复的应用特定的加密密钥获得
CN105159611B (zh) 一种具有数据抽取加密功能的微控制器芯片
CN106656472A (zh) 交易数据的加密方法及系统
CN201917914U (zh) 嵌入式加密芯片
US9838199B2 (en) Initialization vectors generation from encryption/decryption
CN103440451A (zh) 一种基于des的电子系统认证芯片
CN111339544A (zh) 离线下载装置及离线下载方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C56 Change in the name or address of the patentee

Owner name: FEITIAN TECHNOLOGIES CO., LTD.

Free format text: FORMER NAME: BEIJING FEITIAN CHENGXIN TECHNOLOGY CO., LTD.

CP03 Change of name, title or address

Address after: 100085 Beijing city Haidian District Xueqing Road No. 9 Ebizal building B block 17 layer

Patentee after: Feitian Technologies Co.,Ltd.

Address before: 100083, Haidian District, Xueyuan Road, No. 40 research, 7 floor, 5 floor, Beijing

Patentee before: FEITIAN TECHNOLOGIES Co.,Ltd.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110427

CF01 Termination of patent right due to non-payment of annual fee