CN110909316A - 一种单片机软件的加密保护方法及存储介质 - Google Patents
一种单片机软件的加密保护方法及存储介质 Download PDFInfo
- Publication number
- CN110909316A CN110909316A CN201911111019.2A CN201911111019A CN110909316A CN 110909316 A CN110909316 A CN 110909316A CN 201911111019 A CN201911111019 A CN 201911111019A CN 110909316 A CN110909316 A CN 110909316A
- Authority
- CN
- China
- Prior art keywords
- chip microcomputer
- single chip
- original
- software
- hash1
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 30
- 238000003860 storage Methods 0.000 title claims abstract description 25
- 102100022142 Achaete-scute homolog 1 Human genes 0.000 claims abstract description 55
- 101000901099 Homo sapiens Achaete-scute homolog 1 Proteins 0.000 claims abstract description 55
- 102100022144 Achaete-scute homolog 2 Human genes 0.000 claims abstract description 30
- 101000901109 Homo sapiens Achaete-scute homolog 2 Proteins 0.000 claims abstract description 30
- 238000012795 verification Methods 0.000 claims abstract description 18
- 238000004364 calculation method Methods 0.000 claims abstract description 14
- 238000007689 inspection Methods 0.000 claims abstract description 6
- 238000013500 data storage Methods 0.000 claims description 11
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000005336 cracking Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/123—Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Multimedia (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Technology Law (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Storage Device Security (AREA)
Abstract
本发明属于单片机安全技术领域,具体提供了一种单片机软件的加密保护方法及存储介质,先随机生成多组原始密码,用哈希函数计算每组原始密码的检验值,每组原始密码经过多组哈希运算后得到HASH1,HASH1再对称加密得到CODE1,将原始密码、检验值及CODE1均烧录入单片机固定存储区域;然后预设并存储独立UID,并将通过检验的原始密码使用多个哈希函数运算得到HASH1,对HASH1加上独立UID并再次进行哈希运算得到HASH2,将HASH2对称加密后得到CODE2,将CODE2覆盖写入到原始密码的区域位置;最后随机访问各组CODE1及对应的CODE2数据,通过计算进行正版验证。该方案支持应用编程功能的单片机软件的加密保护,使用单片机或者外设芯片等的独立UID和原始密码,验证单片机运行的软件是否为合法正版。
Description
技术领域
本发明属于单片机安全技术领域,具体涉及一种单片机软件的加密保护方法及存储介质。
背景技术
应用编程即IAP,是In Application Programming的首字母缩写,IAP是用户自己的程序在运行过程中对User Flash的部分区域进行烧写,目的是为了在产品发布后可以方便地通过预留的通信口对产品中的固件程序进行更新升级。
单片机的发展非常迅速,从51核单片机,到各个厂家推出私有指令集的8位机、16位机、32位机,再到通用ARM内核的单片机,再到开源指令集RISC-V架构的单片机,单片机运行速度越来越快,外设功能越来越复杂,能实现的复杂应用越来越多。近几年随着物联网技术的发展,单片机的应用越来越广泛。但无论是51核单片机,还是各厂家私有指令集的单片机,还是ARM内核的单片机等,虽然多数都有防止内部软件被读出的保护机制,但是依然存在内部软件被读出、被反向工程的风险。单片机软件的加密保护越来越重要。目前单片机多数使用FLASH存储软件,多数都支持IAP功能。
发明内容
本发明的目的是克服现有技术中单片机软件盗版泛滥的问题。
为此,本发明提供了一种单片机软件的加密保护方法,包括:
S01:随机生成多组原始密码,用哈希函数计算每组原始密码的检验值,每组原始密码分别经过多组哈希运算后得到HASH1,HASH1再对称加密得到CODE1,将所述原始密码、检验值及CODE1均烧录入固定存储区域;
S02:预设并存储独立UID,并将通过检验的原始密码使用多个哈希函数运算得到HASH1,对所述HASH1加上所述独立UID并再次进行哈希运算得到HASH2,将所述HASH2对称加密后得到CODE2,将所述CODE2覆盖写入到原始密码的区域位置;
S03:随机访问各组CODE1及对应的CODE2,通过计算进行正版验证。
优选地,根据单片机的存储空间以及扇区页面大小定义所述原始密码每组的长度及组数。
优选地,所述步骤S02之前还包括:单片机软件启动时,先从数据存储空间读出原始密码以及CHECK数据,并对原始密码组进行哈希运算得到检验值,如果每组原始密码计算得到的检验值等于CHECK数据,表示原始密码通过检验。
优选地,所述步骤S03具体包括:随机读取一组CODE1数据,对CODE1数据进行对称加密得到HASH1数据,把HASH1加上UID进行哈希运算得到HASH2数据,再对HASH2数据进行对称加密,与对应的单片机数据存储区的CODE2数据进行比较,相同则表示软件为正版,否则软件为盗版。
优选地,若检测软件为盗版,则正常运行预设时间后自动进行功能限制。
优选地,所述功能为与安全功能无关的功能,所述功能能够降级该软件的产品质量和性能。
优选地,所述独立UID为芯片自带UID或不会重复的唯一编码,所述唯一编码为设备地址码或外设唯一编码。
优选地,所述芯片包括STM32F429IGT6单片机,所述独立UID存储在0x1FFF7A10-0x1FFF7A1B的地址空间。
优选地,所述步骤S02具体包括:使用间接地址对所述独立UID进行访问。
本发明提供了一种用于单片机软件的加密保护的存储介质,所述存储介质用于存储、运算并访问如前任一项所述的单片机软件的加密保护方法。
本发明的有益效果:本发明提供的这种单片机软件的加密保护方法及存储介质,先随机生成多组原始密码,用哈希函数计算每组原始密码的检验值,每组原始密码经过多组哈希后得到HASH1,HASH1再对称加密得到CODE1,将原始密码、检验值及CODE1均烧录入单片机固定存储区域;然后预设并存储独立UID,并将通过检验的原始密码使用多个哈希函数运算得到HASH1,对HASH1加上独立UID并再次进行哈希运算得到HASH2,将HASH2对称加密后得到CODE2,将CODE2覆盖写入到原始密码的区域位置;最后随机访问不同的CODE1、CODE2数据组,通过计算进行正版验证。该方案支持应用编程功能的单片机软件的加密保护,使用单片机或者外设芯片等的独立UID和原始密码,验证单片机运行的软件是否为合法正版软件。产品生产过程简单,但可以很大程度上提高软件反向工程的难度,达到保护单片机软件的目的。
以下将结合附图对本发明做进一步详细说明。
附图说明
图1是本发明单片机软件的加密保护方法及存储介质的流程示意图;
图2是本发明单片机软件的加密保护方法及存储介质的原始密码加密流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在本发明的描述中,需要理解的是,术语“中心”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征;在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
本发明实施例提供了一种单片机软件的加密保护方法,包括:
S01:随机生成多组原始密码,用哈希函数计算每组原始密码的检验值,每组原始密码分别经过多组哈希运算后得到HASH1,HASH1再对称加密得到CODE1,将所述原始密码、检验值及CODE1均烧录入固定存储区域;
S02:预设并存储独立UID,并将通过检验的原始密码使用多个哈希函数运算得到HASH1,对所述HASH1加上所述独立UID并再次进行哈希运算得到HASH2,将所述HASH2对称加密后得到CODE2,将所述CODE2覆盖写入到原始密码的区域位置;
S03:随机访问不同的CODE1及CODE2,通过计算进行正版验证。
由此可知,如图1和图2所示,本发明设计了一种支持IAP功能的单片机软件加密保护的方法。事先随机生成多组原始密码,用哈希函数计算其检验值,每组原始密码哈希运算后得到HASH1,HASH1再对称加密得到CODE1,把原始密码、检验值和CODE1烧录入单片机固定存储区域。单片机软件启动时,如果原始密码通过检验,则把原始密码使用多个哈希函数运算得到HASH1,HASH1加上独立UID再次进行哈希运算得到HASH2,HASH2对称加密得到CODE2,CODE2覆盖写入到原始密码区。单片机UID可以是芯片自带UID,也可以是其他不会重复的唯一编码。单片机软件对UID的访问,使用间接地址进行访问。在单片机软件中的多个位置,随机访问各组CODE1及对应的CODE2数据,通过计算进行正版验证。如果检测出软件为盗版,软件正常运行一段时间后再进行功能限制。
具体步骤如下:
1、事先随机生成多组原始密码,用哈希函数计算其检验值,原始密码哈希后得到HASH1,HASH1再对称加密得到CODE1,把原始密码、检验值和CODE1烧录入单片机固定存储区域。
对于单片机软件,需要事先随机生成多组原始密码,每一组原始密码使用哈希函数计算得出其检验值,每一组原始密码使用多个哈希函数计算得到HASH1,然后再对称加密得到CODE1。原始密码、检验值和CODE1这三部分数据,作为单片机软件的一部分,在软件中定义到固定的存储位置,与源代码一起编译,在烧录单片机软件时,直接烧录入单片机中。每一组原始密码的长度、以及定义多少组密码,根据单片机的存储空间,以及扇区页面大小灵活定义。其中,哈希函数及运算为现有技术,在此不再赘述。
2、单片机软件启动时,如果原始密码通过检验,则把原始密码使用多个哈希函数运算得到HASH1,HASH1加上UID再次进行哈希运算得到HASH2,HASH2对称加密得到CODE2,CODE2覆盖写入到原始密码区。
单片机软件启动时,先从数据存储空间读出原始密码以及CHECK数据,并对原始密码组进行哈希运算得到检验值,如果每组原始密码计算得到的检验值等于CHECK数据,表示原始密码通过检验。如果原始密码通过检验,则把原始密码使用多个哈希函数运算得到HASH1,HASH1加上UID再次进行哈希运算得到HASH2,HASH2对称加密得到CODE2。使用单片机IAP功能把CODE2覆盖写入到原始密码区。CODE2覆盖原始密码后,原始密码不会再出现在单片机数据存储区,也无法通过CODE2推导出原始密码。同样地,由于CHECK数据为原始密码的哈希值,也不能通过CHECK数据反向推导出原始密码,所以原始密码不会泄露。启动时如果原始密码没有通过检验,则表示原始密码组已经处理过,不用再进行处。
3、单片机UID可以是芯片自带UID,也可以是其他不会重复的唯一编码。现在很多类型的单片机,每个芯片都有不可修改的唯一编码UID。如果单片机不包含UID,则加密过程可以使用设备中其他外设的唯一编码,或者使用设备自身的唯一的地址码等。
4、单片机软件对UID的访问,使用间接地址进行访问。反向工程破解单片机软件时,通过扫描可以分析出单片机软件对UID的访问,从而修改函数返回结果为样机UID,达到破解软件的目的。所以对UID的访问使用间接地址的模式进行访问,避免访问地址被破解者直接识别出,这样可以提高反向工程的难度。
5、在单片机软件中的多个位置,随机访问不同的CODE1、CODE2数据组,通过计算进行正版验证。单片机软件中,要在尽量多的位置使用不同的数据组进行正版验证。正版验证过程中,随机读取一组CODE1数据,对CODE1数据进行对称加密得到HASH1数据,把HASH1加上UID进行哈希运算得到HASH2数据,再对HASH2数据进行对称加密,与对应的单片机数据存储区的CODE2数据进行比较,相同则表示软件为正版,否则软件为盗版。
6、如果检测出软件为盗版,软件正常运行一段时间后再进行功能限制。单片机软件运行中,如果检测出软件为盗版软件,先不对软件的功能进行限制。等盗版软件运行一段时间后,再逐渐开始限制一些与安全无关的功能,降低产品质量和性能。
在一个具体的实施场景中,以ARM Cortex-M4核单片机STM32F429IGT6为例,对本发明实施例中的技术方案进行清楚、完整地描述。具体步骤如下:
1、事先随机生成多组原始密码,用哈希函数计算其检验值,原始密码哈希后得到HASH1,HASH1对称加密得到CODE1,把原始密码、检验值和CODE1烧录入单片机固定存储区域。
事先随机生成128组原始密码数据,每一组数据长16个字节。对每一组原始密码使用两个哈希函数计算得出两个32位检验值。对每一组原始密码使用4个哈希函数计算得到16字节HASH1数据,HASH1数据对称加密得到CODE1。原始密码、检验值和CODE1这三部分数据,作为单片机软件的一部分,在软件中定义到固定的存储位置,与源代码一起编译,在烧录单片机软件时,直接烧录入单片机中。
随机生成原始密码数据128组,每组16个字节,数据共2KB,数据定义到地址0x08008000。代码实现过程如下:
__root const unsigned char const_original_data[128][16]@0x08008000={
{0x79,0x6C,0xD2,0x37,0xD5,0x88,0xF8,0x69,0x3F,0x1E,0x50,0x7F,0x39,0x01,0x28,0x8F},
{0x33,0xD0,0x09,0x83,0x11,0x53,0xDA,0xBE,0xF2,0xE7,0x0D,0x21,0x95,0x8D,0x53,0xDC},
……
{0x27,0x80,0x4D,0xFE,0x06,0x12,0x6B,0x98,0xFF,0x78,0x89,0x32,0xBD,0xFC,0x12,0xCD},
{0x9F,0xE7,0x72,0xA3,0x0E,0x5B,0x59,0xD1,0xA7,0x29,0x8E,0xDE,0x74,0x4C,0xA0,0x28}
};
对每一组原始密码使用两个哈希函数计算得到CHECK数据,数据定义到0x08008800。
{0x845EEC5D,0x217FF267},{0x3CC29799,0x912207D8},{0x64F12ECB,0x6D794BD9},{0xB947D30E,0x779F3F52},
{0x24261A75,0x33839114},{0x5C1DFF70,0x63BD180F},{0x2C11F5C0,0x7E2DC802},{0x359056F3,0xFF4C91B7},
……
{0x5A5FE818,0xF1719514},{0x0865E70C,0x895335CB},{0x88E4E92A,0x71592858},{0xC19E7C8B,0x1C0F226B},
{0xB1FF7B3D,0x7DA01D53},{0x8D7B4A68,0x77F8EC9F},{0xF34FB281,0x60DFA9A1},{0xCF41656E,0xCE439D9B}
};
对每一组原始密码使用4个哈希函数计算得到16字节HASH1数据,HASH1数据对称加密得到CODE1,CODE1数据定义到0x08040000。
__root const unsigned char const_original_data_code1[128][16]@0x08040000={
{0x4A,0x90,0x2D,0x82,0xA5,0x95,0x1F,0x3F,0x63,0xCE,0x66,0x2C,0xE4,0x6B,0x00,0xC2},
{0x52,0x00,0x92,0x9D,0x68,0x6D,0xEE,0xA1,0x00,0x68,0x44,0x28,0x1A,0xAB,0xCA,0x4A},
……
{0xD0,0xD9,0xE3,0xD3,0xF6,0x5C,0xC3,0xFE,0x41,0xB6,0x7C,0x25,0x72,0x57,0xD2,0x1D},
{0x77,0xD2,0x9F,0xB7,0x31,0xA8,0x4E,0xD5,0x54,0xFB,0xC5,0x2C,0x19,0x49,0xD7,0x0B}
}。
2、单片机软件启动时,如果原始密码通过检验,则把原始密码使用4个哈希函数运算得到HASH1,HASH1加上UID再次进行哈希运算得到HASH2,HASH2对称加密得到CODE2,CODE2覆盖写入到原始密码区。
单片机软件启动时,先从数据存储空间0x08008000读出128组16字节的原始密码,从数据存储空间0x08008800读出128组CHECK数据。对128组原始密码进行哈希运算得到128组检验值,如果每组原始密码计算得到的检验值等于CHECK数据,表示原始密码通过检验。如果原始密码通过检验,则把原始密码使用4个哈希函数运算得到HASH1,HASH1加上UID再次进行哈希运算得到HASH2,HASH2对称加密得到CODE2。使用单片机IAP功能把CODE2覆盖写入到原始密码区。CODE2覆盖原始密码后,原始密码不会再出现在单片机数据存储区,也无法通过CODE2推导出原始密码。同样地,由于CHECK数据为原始密码的哈希值,也不能通过CHECK数据反向推导出原始密码,所以原始密码不会泄露。启动时如果原始密码没有通过检验,则表示原始密码组已经处理过,不用再进行处理。
原始密码存储在0x08008000,被下面128组CODE2数据覆盖。
{0x23,0x81,0xAF,0x1B,0x13,0x6F,0x4B,0x0A,0xBB,0x94,0x90,0xF1,0x1C,0xDD,0x29,0xCA},
{0xA4,0x39,0x1E,0x01,0x35,0x2E,0xD8,0x4B,0x8D,0x31,0x2C,0x7F,0xC5,0x3C,0x7B,0xC2},
……
{0x9B,0x9C,0x86,0xFF,0xE2,0x01,0xDF,0xF5,0x6B,0xD3,0x80,0xE8,0xCD,0xE9,0x7D,0xFD},
{0x3B,0x97,0xC0,0x99,0x9A,0xE4,0x95,0x0E,0xF7,0x86,0x6B,0x09,0xBB,0xE9,0xFF,0x06}。
3、单片机UID可以是芯片自带UID,也可以是其他不会重复的唯一编码。STM32F429IGT6单片机自身带有96bit的UID,存储在0x1FFF7A10-0x1FFF7A1B的地址空间。单片机的UID可以作为加密运算的UID。
4、单片机软件对UID的访问,使用间接地址进行访问。反向工程破解单片机软件时,通过扫描可以分析出单片机软件对0x1FFF7A10-0x1FFF7A1B的访问,从而修改函数返回结果为样机UID,达到破解软件的目的。所以对UID的访问使用间接地址的模式进行访问,避免访问地址被破解者直接识别出,这样可以提高反向工程的难度。
5、在单片机软件中的多个位置,随机访问各组CODE1及对应的CODE2数据,通过计算进行正版验证。单片机软件中,要在尽量多的位置使用不同的数据组进行正版验证。正版验证过程中,随机读取一组CODE1数据,对CODE1数据进行对称加密得到HASH1数据,把HASH1加上UID进行哈希运算得到HASH2数据,再对HASH2数据进行对称加密,与对应的单片机数据存储区的CODE2数据进行比较,相同则表示软件为正版,否则软件为盗版。
6、如果检测出软件为盗版,软件正常运行一段时间后再进行功能限制。
单片机软件运行中,如果检测出软件为盗版软件,先不对软件的功能进行限制。等盗版软件运行一段时间后,再逐渐开始限制一些与安全无关的功能,降低产品质量和性能。
本发明的有益效果:本发明提供的这种单片机软件的加密保护方法及存储介质,先随机生成多组原始密码,用哈希函数计算每组原始密码的检验值,每组原始密码经过多个哈希后得到HASH1,HASH1再对称加密得到CODE1,将原始密码、检验值及CODE1均烧录入单片机固定存储区域;然后预设并存储独立UID,并将通过检验的原始密码使用多个哈希函数运算得到HASH1,对HASH1加上独立UID并再次进行哈希运算得到HASH2,将HASH2对称加密后得到CODE2,将CODE2覆盖写入到原始密码的区域位置;最后随机访问不同的CODE1、CODE2数据组,通过计算进行正版验证。该方案支持应用编程功能的单片机软件的加密保护,使用单片机或者外设芯片等的独立UID和原始密码,验证单片机运行的软件是否为合法正版软件。产品生产过程简单,但可以很大程度上提高软件反向工程的难度,达到保护单片机软件的目的。
以上例举仅仅是对本发明的举例说明,并不构成对本发明的保护范围的限制,凡是与本发明相同或相似的设计均属于本发明的保护范围之内。
Claims (10)
1.一种单片机软件的加密保护方法,其特征在于,包括:
S01:随机生成多组原始密码,用哈希函数计算每组原始密码的检验值,每组原始密码分别经过多组哈希运算后得到HASH1,HASH1再对称加密得到CODE1,将所述原始密码、检验值及CODE1均烧录入固定存储区域;
S02:预设并存储独立UID,并将通过检验的原始密码使用多个哈希函数运算得到HASH1,对所述HASH1加上所述独立UID并再次进行哈希运算得到HASH2,将所述HASH2对称加密后得到CODE2,将所述CODE2覆盖写入到原始密码的区域位置;
S03:随机访问各组CODE1及对应的CODE2数据,通过计算进行正版验证。
2.根据权利要求1所述的单片机软件的加密保护方法,其特征在于:根据单片机的存储空间以及扇区页面大小定义所述原始密码每组的长度及组数。
3.根据权利要求1所述的单片机软件的加密保护方法,其特征在于,所述步骤S02之前还包括:单片机软件启动时,先从数据存储空间读出原始密码以及CHECK数据,并对原始密码组进行哈希运算得到检验值,如果每组原始密码计算得到的检验值等于CHECK数据,表示原始密码通过检验。
4.根据权利要求1所述的单片机软件的加密保护方法,其特征在于,所述步骤S03具体包括:随机读取一组CODE1数据,对CODE1数据进行对称加密得到HASH1数据,把HASH1加上UID进行哈希运算得到HASH2数据,再对HASH2数据进行对称加密,与对应的单片机数据存储区的CODE2数据进行比较,相同则表示软件为正版,否则软件为盗版。
5.根据权利要求4所述的单片机软件的加密保护方法,其特征在于:若检测软件为盗版,则正常运行预设时间后自动进行功能限制。
6.根据权利要求5所述的单片机软件的加密保护方法,其特征在于:所述功能为与安全功能无关的功能,所述功能能够降级该软件的产品质量和性能。
7.根据权利要求1所述的单片机软件的加密保护方法,其特征在于:所述独立UID为芯片自带UID或不会重复的唯一编码,所述唯一编码为设备地址码或外设唯一编码。
8.根据权利要求7所述的单片机软件的加密保护方法,其特征在于:所述芯片包括STM32F429IGT6单片机,所述独立UID存储在0x1FFF7A10-0x1FFF7A1B的地址空间。
9.根据权利要求1所述的单片机软件的加密保护方法,其特征在于,所述步骤S02具体包括:使用间接地址对所述独立UID进行访问。
10.一种用于单片机软件的加密保护的存储介质,其特征在于:所述存储介质用于存储、运算并访问如权利要求1至9任一项所述的单片机软件的加密保护方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911111019.2A CN110909316B (zh) | 2019-11-14 | 2019-11-14 | 一种单片机软件的加密保护方法及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911111019.2A CN110909316B (zh) | 2019-11-14 | 2019-11-14 | 一种单片机软件的加密保护方法及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110909316A true CN110909316A (zh) | 2020-03-24 |
CN110909316B CN110909316B (zh) | 2023-05-09 |
Family
ID=69817393
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911111019.2A Active CN110909316B (zh) | 2019-11-14 | 2019-11-14 | 一种单片机软件的加密保护方法及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110909316B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111832011A (zh) * | 2020-07-09 | 2020-10-27 | 郑州信大捷安信息技术股份有限公司 | 一种基于iap的固件安全升级方法及装置 |
CN112650448A (zh) * | 2020-12-21 | 2021-04-13 | 中国航天科工集团八五一一研究所 | 一种基于fpga的大数据量存储文件管理方法 |
CN113238799A (zh) * | 2021-04-07 | 2021-08-10 | 南京交通职业技术学院 | 一种用于智能汽车的车载芯片安全防护系统及方法 |
Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008032332A1 (en) * | 2006-09-13 | 2008-03-20 | Shyam Prasad Kompadav Shetty | Protection scheme for embedded software |
CN101742072A (zh) * | 2009-12-18 | 2010-06-16 | 四川长虹电器股份有限公司 | 机顶盒软件防拷贝方法 |
CN101950344A (zh) * | 2010-09-21 | 2011-01-19 | 广东欧珀移动通信有限公司 | 一种嵌入式软件程序加解密方法 |
KR20140046545A (ko) * | 2012-10-05 | 2014-04-21 | 주식회사 인프라웨어테크놀러지 | 임베디드 소프트웨어의 복제관리 방법 및 이를 위한 복제관리 프로그램을 기록한 컴퓨터로 판독가능한 기록매체 |
CN104268447A (zh) * | 2014-09-25 | 2015-01-07 | 深圳市亚特尔科技有限公司 | 一种嵌入式软件的加密方法 |
US20150324597A1 (en) * | 2011-08-05 | 2015-11-12 | Kpit Technologies Ltd. | A system for protection of embedded software codes |
CN105096481A (zh) * | 2014-05-19 | 2015-11-25 | 深圳华智融科技有限公司 | 一种pos终端保护方法及装置 |
CN105577644A (zh) * | 2015-12-07 | 2016-05-11 | 汉柏科技有限公司 | 一种加密认证方法和系统 |
CN105827585A (zh) * | 2015-01-27 | 2016-08-03 | 株式会社日立制作所 | 再加密方法、再加密系统以及再加密装置 |
CN106055932A (zh) * | 2016-05-26 | 2016-10-26 | 东莞博力威电池有限公司 | 带Boot loader功能的MCU程序防抄袭方法和系统 |
CN106777749A (zh) * | 2016-12-29 | 2017-05-31 | 杭州朔天科技有限公司 | 一种基于嵌入式Nor‑Flash的芯片UID设计方法 |
CN107590368A (zh) * | 2017-08-25 | 2018-01-16 | 济南中维世纪科技有限公司 | 嵌入式设备程序防拷贝的方法 |
WO2018153559A1 (de) * | 2017-02-21 | 2018-08-30 | Siemens Aktiengesellschaft | Verfahren und validierungseinheit zum steuern des ladens von in it-systemen, insbesondere eingebetteten systemen, benutzbaren krypto-schlüsseln, insbesondere "key blobs" |
JP2018169729A (ja) * | 2017-03-29 | 2018-11-01 | 三菱電機株式会社 | 組み込み機器、組み込み機器システム及び組み込み機器の起動方法 |
CN109684789A (zh) * | 2018-11-19 | 2019-04-26 | 日立楼宇技术(广州)有限公司 | 嵌入式产品中软件安全保护的方法、装置及计算机设备 |
CN110210259A (zh) * | 2019-06-05 | 2019-09-06 | 深圳忆联信息系统有限公司 | 一种固态硬盘的数据保护方法及其系统 |
CN110363010A (zh) * | 2019-07-17 | 2019-10-22 | 中国大恒(集团)有限公司北京图像视觉技术分公司 | 一种基于MPSoC芯片的系统安全启动方法 |
-
2019
- 2019-11-14 CN CN201911111019.2A patent/CN110909316B/zh active Active
Patent Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008032332A1 (en) * | 2006-09-13 | 2008-03-20 | Shyam Prasad Kompadav Shetty | Protection scheme for embedded software |
CN101742072A (zh) * | 2009-12-18 | 2010-06-16 | 四川长虹电器股份有限公司 | 机顶盒软件防拷贝方法 |
CN101950344A (zh) * | 2010-09-21 | 2011-01-19 | 广东欧珀移动通信有限公司 | 一种嵌入式软件程序加解密方法 |
US20150324597A1 (en) * | 2011-08-05 | 2015-11-12 | Kpit Technologies Ltd. | A system for protection of embedded software codes |
KR20140046545A (ko) * | 2012-10-05 | 2014-04-21 | 주식회사 인프라웨어테크놀러지 | 임베디드 소프트웨어의 복제관리 방법 및 이를 위한 복제관리 프로그램을 기록한 컴퓨터로 판독가능한 기록매체 |
CN105096481A (zh) * | 2014-05-19 | 2015-11-25 | 深圳华智融科技有限公司 | 一种pos终端保护方法及装置 |
CN104268447A (zh) * | 2014-09-25 | 2015-01-07 | 深圳市亚特尔科技有限公司 | 一种嵌入式软件的加密方法 |
CN105827585A (zh) * | 2015-01-27 | 2016-08-03 | 株式会社日立制作所 | 再加密方法、再加密系统以及再加密装置 |
CN105577644A (zh) * | 2015-12-07 | 2016-05-11 | 汉柏科技有限公司 | 一种加密认证方法和系统 |
CN106055932A (zh) * | 2016-05-26 | 2016-10-26 | 东莞博力威电池有限公司 | 带Boot loader功能的MCU程序防抄袭方法和系统 |
CN106777749A (zh) * | 2016-12-29 | 2017-05-31 | 杭州朔天科技有限公司 | 一种基于嵌入式Nor‑Flash的芯片UID设计方法 |
WO2018153559A1 (de) * | 2017-02-21 | 2018-08-30 | Siemens Aktiengesellschaft | Verfahren und validierungseinheit zum steuern des ladens von in it-systemen, insbesondere eingebetteten systemen, benutzbaren krypto-schlüsseln, insbesondere "key blobs" |
JP2018169729A (ja) * | 2017-03-29 | 2018-11-01 | 三菱電機株式会社 | 組み込み機器、組み込み機器システム及び組み込み機器の起動方法 |
CN107590368A (zh) * | 2017-08-25 | 2018-01-16 | 济南中维世纪科技有限公司 | 嵌入式设备程序防拷贝的方法 |
CN109684789A (zh) * | 2018-11-19 | 2019-04-26 | 日立楼宇技术(广州)有限公司 | 嵌入式产品中软件安全保护的方法、装置及计算机设备 |
CN110210259A (zh) * | 2019-06-05 | 2019-09-06 | 深圳忆联信息系统有限公司 | 一种固态硬盘的数据保护方法及其系统 |
CN110363010A (zh) * | 2019-07-17 | 2019-10-22 | 中国大恒(集团)有限公司北京图像视觉技术分公司 | 一种基于MPSoC芯片的系统安全启动方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111832011A (zh) * | 2020-07-09 | 2020-10-27 | 郑州信大捷安信息技术股份有限公司 | 一种基于iap的固件安全升级方法及装置 |
CN111832011B (zh) * | 2020-07-09 | 2022-03-15 | 郑州信大捷安信息技术股份有限公司 | 一种基于iap的固件安全升级方法及装置 |
CN112650448A (zh) * | 2020-12-21 | 2021-04-13 | 中国航天科工集团八五一一研究所 | 一种基于fpga的大数据量存储文件管理方法 |
CN112650448B (zh) * | 2020-12-21 | 2024-04-05 | 中国航天科工集团八五一一研究所 | 一种基于fpga的大数据量存储文件管理方法 |
CN113238799A (zh) * | 2021-04-07 | 2021-08-10 | 南京交通职业技术学院 | 一种用于智能汽车的车载芯片安全防护系统及方法 |
CN113238799B (zh) * | 2021-04-07 | 2022-06-28 | 南京交通职业技术学院 | 一种用于智能汽车的车载芯片安全防护系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110909316B (zh) | 2023-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110909316B (zh) | 一种单片机软件的加密保护方法及存储介质 | |
US20100172501A1 (en) | Secure key system | |
US8032872B2 (en) | Supporting applets on a high end platform | |
Bartel et al. | Dexpler: converting android dalvik bytecode to jimple for static analysis with soot | |
CN104301113B (zh) | 一种基于多证书多用途的数字签名方法和系统 | |
US5724427A (en) | Method and apparatus for autokey rotor encryption | |
CN110198214B (zh) | 身份标识生成方法、验证方法及装置 | |
US7973802B1 (en) | Optional color space conversion | |
US11822654B2 (en) | System and method for runtime detection, analysis and signature determination of obfuscated malicious code | |
US8561090B2 (en) | Method and an apparatus to implement secure system call wrappers | |
CN111651778A (zh) | 基于risc-v指令架构的物理内存隔离方法 | |
US8489836B2 (en) | Secure memory management system and method | |
TWI662838B (zh) | 用以保護並安全地傳遞媒體內容之方法,裝置,及系統 | |
CN108733379A (zh) | 基于dex字节码抽离映射混淆的安卓应用加固方法 | |
US20160210216A1 (en) | Application Control Flow Models | |
CN109983732A (zh) | 保护密钥库内容的使用 | |
US20150286818A1 (en) | Control method for accessing java card object | |
US20220309182A1 (en) | System and method for performing trusted computing with remote attestation and information isolation on heterogeneous processors over open interconnect | |
EP4264465A1 (en) | Runtime memory protection (rmp) engine | |
CN110061848B (zh) | 一种安全导入支付终端密钥的方法、支付终端及系统 | |
Ormandy | Sophail: A critical analysis of sophos antivirus | |
do Nascimento et al. | FlexAEAD-A lightweight cipher with integrated authentication | |
CN111930184B (zh) | 一种外接设备模拟键盘的实现方法、装置及系统 | |
CN113987589B (zh) | 一种处理数据的方法、装置、计算机可读存储介质及装置 | |
US20230336354A1 (en) | Data transmission method and data transmission device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |