CN100578473C - 嵌入式系统和增加嵌入式系统安全性的方法 - Google Patents
嵌入式系统和增加嵌入式系统安全性的方法 Download PDFInfo
- Publication number
- CN100578473C CN100578473C CN200710002165A CN200710002165A CN100578473C CN 100578473 C CN100578473 C CN 100578473C CN 200710002165 A CN200710002165 A CN 200710002165A CN 200710002165 A CN200710002165 A CN 200710002165A CN 100578473 C CN100578473 C CN 100578473C
- Authority
- CN
- China
- Prior art keywords
- chip
- secret key
- embedded system
- key data
- firmware
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C17/00—Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards
- G11C17/14—Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM
- G11C17/18—Auxiliary circuits, e.g. for writing into memory
-
- 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/72—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
- G06F7/724—Finite field arithmetic
- G06F7/725—Finite field arithmetic over elliptic curves
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/24—Memory cell safety or protection circuits, e.g. arrangements for preventing inadvertent reading or writing; Status cells; Test cells
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/00086—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B2220/00—Record carriers by type
- G11B2220/20—Disc-shaped record carriers
- G11B2220/21—Disc-shaped record carriers characterised in that the disc is of read-only, rewritable, or recordable type
- G11B2220/213—Read-only discs
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B2220/00—Record carriers by type
- G11B2220/20—Disc-shaped record carriers
- G11B2220/25—Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
- G11B2220/2537—Optical discs
- G11B2220/2562—DVDs [digital versatile discs]; Digital video discs; MMCDs; HDCDs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Mathematical Optimization (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Computational Mathematics (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Algebra (AREA)
- Storage Device Security (AREA)
- Stored Programmes (AREA)
- Complex Calculations (AREA)
- Executing Machine-Instructions (AREA)
Abstract
本发明公开了一种嵌入式系统,其包括:专用集成电路芯片,所述专用集成电路芯片包括一微控制器单元和一存储有密匙数据的芯片永久性存储器,所述芯片永久性存储器耦合至所述微控制器单元,所述微控制器单元利用所述密匙数据来唯一地识别所述专用集成电路芯片至一芯片外装置。本发明还公开了一种增加嵌入式系统安全性的方法,包括:存储密匙数据至所述芯片永久性存储器;利用所述密匙数据来唯一地识别所述专用集成电路芯片至一芯片外装置。上述技术方案提供的嵌入式系统以及增加嵌入式系统安全性的方法,利用存储在所述芯片永久性存储器的所述密匙数据来唯一地识别所述专用集成电路芯片至一芯片外装置,从而可以确保嵌入式系统存储数据时的安全性。
Description
技术领域
本发明涉及一种嵌入式系统,尤其涉及一种确保固件安全性的嵌入式系统和一种增加嵌入式系统安全性的方法。
背景技术
由于嵌入式系统的装置管理着有价值的数字内容或敏感的个人数据,所以嵌入式系统的安全性变得越来越重要。单芯片系统,例如智能卡,建立安全性相对简单。通常具有离散的动态随机存储器(Dynamic Random AccessMemory,DRAM)或者闪存(Flash Read Only Memory,Flash ROM)芯片的嵌入式系统当必须适应各种不同的稳定性要求时会面临越来越多的挑战。
当遇到严格的稳定性规则时,近来的数字权限管理协议,例如高级存取内容系统(Advanced Access Content System,AACS)或者录像内容保护系统(Video Content Protection System,VCPS),需要数据存储装置,也包括主机软件,来提供各种不同的密码功能。上述系统必须利用特殊的装置标示符及匹配的密匙来与主机软件验证。上述系统也必须遵循处理敏感数据时的特殊规则。存储在离散的闪存中的固件可能被改变而泄露敏感信息,因此必须能被检验真实性或完整性。
发明内容
为解决现有技术对嵌入式系统安全性的要求,有必要提供一种确保安全性的嵌入式系统和一种增加嵌入式系统安全性的方法。。
为解决上述技术问题,一种技术方案如下:提供一种嵌入式系统,其包括:专用集成电路芯片,所述专用集成电路芯片包括一微控制器单元和一存储有密匙数据的芯片永久性存储器,所述芯片永久性存储器耦合至所述微控制器单元,所述微控制器单元利用所述密匙数据来唯一地识别所述专用集成电路芯片至一芯片外装置。
对于上述技术方案的改进在于:所述嵌入式系统进一步包括:耦合至所述微控制器单元和存储有密匙数据的一杂凑信息验证码模块,所述杂凑信息验证码模块从所述存储有密匙数据中下载一第一密匙数据,且利用所述第一密匙数据来检验芯片外固件的完整性。所述芯片外固件存储在一闪存中。所述嵌入式系统进一步包括:耦合至所述微控制器单元的一芯片存储器单元,以存储只读存储器码,当所述微控制器单元执行所述只读存储器码时,使得所述杂凑信息验证码模块下载所述第一密匙数据,且利用所述第一密匙数据来检验闪存中的所述芯片外导入码的完整性。所述第一密匙数据是一完整的密匙,所述杂凑信息验证码模块利用所述第一密匙数据直接验证所述芯片外固件或所述芯片外导入码。所述第一密匙数据是一个密码标示符,所述杂凑信息验证码模块利用所述第一密匙数据来存取一芯片密匙表格来获得一完整的密匙,以验证所述芯片外固件或所述芯片外导入码。
对于上述技术方案的改进在于:所述芯片外固件的完整性检验被分割成在不同时间执行的多个不同的阶段。所述芯片外固件的至少一部分被加密或打乱。用于所述固件完整性检验的密匙数据的选择和存储在所述芯片永久性存储器中的固件加密码被所述杂凑信息验证码模块用来限定被授权的用户存取所述芯片外固件。升级的固件由所述杂凑信息验证码模块利用所述第一密匙数据检验其完整性,且所述杂凑信息验证码模块仅将通过验证的升级固件加载至所述闪存。所述专用集成电路芯片进一步包括多个硬件功能块,以加速椭圆曲线的处理、保护杂乱算法以及执行加密算法。
对于上述技术方案的改进在于:所述嵌入式系统进一步包括:耦合至所述微控制器单元的一因特网通信引擎/探测界面,及耦合至所述微控制器单元和芯片永久性存储器的一密码认可单元。所述芯片永久性存储器进一步包括至少一位,所述密码认可单元存取所述至少一位来使所述嵌入式系统丧失调试功能。所述嵌入式系统进一步包括:耦合至所述微控制器单元和芯片永久性存储器的一椭圆曲线数字信号算法模块,用于椭圆曲线数字信号算法验证。一第二密匙数据从所述芯片永久性存储器中被下载至所述椭圆曲线数字信号算法模块,所述椭圆曲线数字信号算法模块利用所述第二密匙数据来对不信赖的装置或不信赖的通信信道上改变的数据作椭圆曲线数字信号算法验证。所述嵌入式系统进一步包括:耦合至所述微控制器单元和芯片永久性存储器的一高级加密标准模块,用于数据的加密和解密。一第三密匙数据从所述芯片永久性存储器中被下载至所述高级加密标准模块,所述高级加密标准模块利用所述第三密匙数据来验证高级加密标准的数据加密与解密。
为解决上述技术问题,另一种技术方案如下:提供一种增加嵌入式系统安全性的方法,所述嵌入式系统包括:专用集成电路芯片,所述专用集成电路芯片包括一微控制器单元和一芯片永久性存储器,所述增加嵌入式系统安全性的方法包括:存储密匙数据至所述芯片永久性存储器;利用所述密匙数据来唯一地识别所述专用集成电路芯片至一芯片外装置。
对于上述技术方案的改进在于:所述利用所述密匙数据来唯一地识别的步骤包括利用所述密匙数据来检验芯片外固件的完整性。所述利用所述密匙数据来唯一地识别的步骤包括在一升级的固件被使用前,利用所述密匙数据来检验所述升级的固件的完整性。所述利用所述密匙数据来唯一地识别的步骤包括利用所述密匙数据来做数据更换的高级内容存取系统验证。所述利用所述密匙数据来唯一地识别的步骤包括在数据交换期间,利用所述密匙数据来验证高级加密标准的加密与解密。所述利用所述密匙数据来唯一地识别的步骤包括在数据交换期间,利用所述密匙数据来使所述嵌入式系统丧失调试功能。
上述技术方案提供的嵌入式系统以及增加嵌入式系统安全性的方法,利用存储在所述芯片永久性存储器的所述密匙数据来唯一地识别所述专用集成电路芯片至一芯片外装置,从而可以确保嵌入式系统的安全性。另外,上述改进的技术方案提供了增进固件的完整性,数据交换的验证等相关的技术特征,以完善所述的上述的嵌入式系统以及增加嵌入式系统安全性的方法。
附图说明
图1是本发明第一实施方式对应的嵌入式系统的模块图。
图2是本发明第二实施方式对应的嵌入式系统的功能模块图。
图3是本发明第三实施方式对应的嵌入式系统在一般固件升级期间所采用的功能模块图。
图4是本发明第四实施方式对应的嵌入式系统在椭圆曲线数字信号算法(Elliptic Curve Digital Signature Algorithm,ECDSA)验证期间采用的功能模块图。
图5是本发明第五实施方式对应的嵌入式系统在高级加密标准(Advanced Encryption Standard,AES)数字交换期间,例如在消费性电子(Consumer Electronics,CE)环境中,采用的功能模块图。
图6是本发明第六实施方式对应的嵌入式系统用于调试的功能模块图。
具体实施方式
请参阅图1,是本发明第一实施方式对应的嵌入式系统100的模块图。该嵌入式系统100包括一单芯片(System on Chip,SoC)系统的专用集成电路(Application Specific Integrated Circuit,ASIC)芯片110,一离散的闪存模块130,和一离散的动态随机存储器模块140。该专用集成电路芯片110包括一微控制器单元(Microcontroller Unit,MCU)150,一芯片只读存储器(on-chip ROM)160,一芯片外围设备单元170,一芯片临时存储器180和一芯片永久性存储器190。其中,该芯片只读存储器160可以使一个闪存。如果该嵌入式系统100是一个数据存储装置,在消费性电子环境中通常都有一主机120,例如个人电脑(Personal Computer,PC)等。
该微控制器单元150通过芯片上的通信信道耦合至芯片只读存储器160、芯片外围设备单元170、一芯片临时存储器180和一芯片永久性存储器190,而且通过芯片外的通信信道耦合至芯片外的闪存模块130和动态随机存储器模块140。当主机120存在时,该微控制器单元150通过芯片外的通信信道耦合至主机120。该闪存模块130、动态随机存储器模块140和主机120都在芯片外。
没有芯片外的通信信道能被认为是安全的,因为它能被逻辑分析工具或者类似的工具轻易地偷听(eavesdropped)。甚至该离散的闪存模块130或动态随机存储器模块140也不能认为是安全的,因为它们能被轻易地从印刷电路板(PCB)上移除,而使得其中的内容丢失或被修改。也就是说,该离散的闪存模块130可被当作一个不安全的闪存,该离散的动态随机存储器模块140可被当作一个不安全的动态随机存储器。
明确了这点之后,该专用集成电路芯片110包括该芯片永久性存储器190来保存为各种不同的安全性所要求的一类密匙数据。该芯片永久性存储器190值得推荐的一个例子是一次可编程存储器(one time programmable memory),在一次可编程存储器中,一旦内容被写入,该内容就不能被更改。接下来,该芯片永久性存储器190将被当作一个eFuse 190。为了安全性的原因,该eFuse 190的内容将不能被固件所读取。该eFuse 190可逐位地被编程。在集成电路制造过程中,该eFuse 190的内容的一部分能够被编程,以减小泄露集成电路承载的有害功能性的风险,例如因特网通信引擎(InternetCommunication Engine,ICE)的连接性。在组装线上,该eFuse 190的内容的一部分能够被编程,特别是写入密匙的密匙数据(Key Data)。在组装完成后或出货后,该eFuse 190的内容的一部分能够被编程来使能或取消一些功能,或记录特殊的信息,例如区控制码(Region Control Code)。在一个实施例中,该eFuse 190的内容可包括该密匙数据,该密匙数据可代表用于固件完整性检查的密码标示符,一个独特的驱动器专用密码,用于与消费性电子环境中的主机通信的密码,为调试该专用集成电路芯片110目的所要求的密码或指令,限定一个OEM对仅各自使用的想要的固件的存取的OEM(OriginalEquipment Manufacturer,原始设备制造商)识别密码中的一类,以及其他秘密系统设置或密码。
用于检查固件完整性的密码的值或标示符可以存储在该eFuse 190中,如此以使得相同专用集成电路芯片110的所有使用者不必使用形同的密匙(Secret Key)。如果一个完整的密码存储在该eFuse 190中,甚至芯片的卖主不被教导将不知道如何修改该固件。注意一个特殊驱动器标示符或证书一般可存储在一个外部的闪存130中,因为一个匹配特殊驱动器密匙的密匙数据仍然被存储在该eFuse 190中。将匹配特殊驱动器密匙存储在芯片上取代存储在闪存130中,的好处是,可以保证恶意的黑客如过不付出巨大的努力,不可能改变特殊驱动器标示符或证书。现在数字权限管理(Digital RightsManagement,DRM)系统的撤回机制要求每个装置都支持一个独特的证书,以使得其难以被改变。
请参阅图2,是本发明第二实施方式对应的嵌入式系统200的功能模块图。该嵌入式系统200包括嵌入式系统100中所有相同的组件,为了把注意力集中在该嵌入式系统200的导入操作上,省略了部分组件。如图2所示,一专用集成电路芯片210包括杂凑信息验证码(Hash-based MessageAuthentication Code,HMAC)模块250,和根据设计的考虑选择性地包括一芯片密码表220。
芯片卖主嵌入一芯片只读存储器160,在该嵌入式系统200在对应的导入操作期间从外部离散的闪存130中获取导入码230之前,该芯片只读存储器160被执行。存储在芯片只读存储器160中的固件加载来自eFuse 190密匙数据至杂凑信息验证码模块250中,杂凑信息验证码模块250检查外部码或固件的完整性。如果存储在eFuse 190中的密匙数据是一个完整的密匙,杂凑信息验证码模块250可以使用找到的密匙直接验证该导入码230或者固件240。在另一个实施例中,存储在eFuse 190中的密匙数据仅仅是一个密码标示符,在验证该导入码230或者固件240之前,杂凑信息验证码模块250可以使用找到的密码标示符访问该密码表220,以获得完整的密匙。
为增加适应性及性能,该芯片只读存储器160可以在任一给定的时间选择性地检查该外部码或者固件的一部分。剩余的固件图像可以随后在它被使用或者系统空闲时被检查。检查多块固件和外部码也是可能的,如此以使得该嵌入式系统200在整个固件图像被验证前能相应于外部事件。用于该芯片只读存储器160和该外部闪存130的算法可以不同,以使得OEM可以从原始设计中选择不同的策略。
请参阅图3,是本发明第三实施方式对应的嵌入式系统300在一般固件升级期间所采用的功能模块图。该嵌入式系统300包括嵌入式系统100中所有相同的组件,为了把注意力集中在该嵌入式系统300的一般固件升级操作上,省略了部分组件。如图3所示,一专用集成电路芯片310包括杂凑信息验证码模块250,和根据设计的考虑选择性地包括一芯片密码表220。
在一般固件升级期间,该嵌入式系统300被一存储器装置140的固件的执行所控制,该存储器装置140例如是动态随机存储器(Dynamic RandomAccess Memory,DRAM)。值得推荐地,该嵌入式系统300藉由一通常的高级技术附加封包界面(Advanced Technology Attachment Packet Interface,ATAPI)命令从一主机接收该固件升级。该嵌入式系统300首先检查对应于固件升级的新的固件图像的完整性,然后存储该升级的固件至闪存130中。该杂凑信息验证码模块250利用从eFuse 190中下载的密匙数据来检查固件升级的完整性,用来检查的密匙数据或者是从eFuse 190中直接下载的所需的密匙,或者是从eFuse 190中下载密码标示符并利用该密码标示符从密码表220中获取所需的密匙。一旦杂凑信息验证码模块250验证了该固件的升级,该嵌入式系统300就存储该升级的固件至闪存130中。
请参阅图4和图5。在高级内容存取系统(Advanced Access ContentSystem,AACS)验证期间或其他类型的密码管理操作期间,范例的嵌入式系统可从eFuse 190下载一特殊驱动器密码,该特殊驱动器密码是与该特殊驱动器关联的一保障的独特密码。该驱动器的专用密码可以是160位的。存储在eFuse 190的密匙数据推荐地不要直接被该固件所存取,而仅仅只被该嵌入式系统的硬件以不同的协议下载和使用。因此,甚至该固件可能暴露给黑客,但硬件的行为仍然处于保密状态。
图4是本发明第四实施方式对应的嵌入式系统400在椭圆曲线数字信号算法(Elliptic Curve Digital Signature Algorithm,ECDSA)验证期间采用的功能模块图。该嵌入式系统400包括嵌入式系统100中所有相同的组件,为了把注意力集中在该嵌入式系统400的椭圆曲线数字信号算法验证上,省略了部分组件。如图4所示,一专用集成电路芯片410包括椭圆曲线数字信号算法验证模块420,和根据设计的考虑选择性地包括一芯片密码表220。密匙数据从eFuse 190被下载并加载至椭圆曲线数字信号算法验证模块420中。该密匙数据可以是驱动器的专用密码或者密码标示符,该密码标示符被用来从芯片密码表220中获得该驱动器的专用密码。椭圆曲线数字信号算法验证模块420利用该密匙数据来做与不信赖的装置(例如主机120)进行的或者在不信赖的通信信道(例如耦合主机120至专用集成电路芯片模块410的通信信道)上进行的数据交换的椭圆曲线数字信号算法验证。
图5是本发明第五实施方式对应的嵌入式系统500在高级加密标准(Advanced Encryption Standard,AES)数字交换期间,例如在消费性电子(Consumer Electronics,CE)环境中,采用的功能模块图。该高级加密标准处理加密和解密,而且密码分组链接(Cipher Block Chaining,CBC)与电子编码本(Electronic Code Block,ECB)通常被采用。该嵌入式系统500包括嵌入式系统100中所有相同的组件,为了把注意力集中在高级加密标准的数据交换上,省略了部分组件。如图5所示,一专用集成电路芯片510包括高级加密标准模块520,和根据设计的考虑选择性地包括一芯片密码表220。类似的,密匙数据从eFuse 190被下载并加载至高级加密标准模块520中。在该实施方式中,该密匙数据可以是256位的KA和C密匙。该高级加密标准模块520利用该密匙数据来做数据加密和解密期间的数据交换的高级加密标准验证。
在至少一个实时方式中,该椭圆曲线数字信号算法验证模块420和高级加密标准模块520被耦合至相同的专用集成电路芯片,例如专用集成电路芯片110,以使得能共享椭圆曲线数字信号算法验证模块420和高级加密标准模块520之间的资源,特别是硬件寄存器与算法控制单元之间的资源共享。
范例的嵌入式系统可以选择性地执行被适当地耦合至硬件模块的多个最有用的组件以加速高级内容存取系统和其他常用的安全性相关协议中的不同操作。
一个范例的硬件模块可以是一高级加密标准模块,该高级加密标准处理加密和解密,而且密码分组链接与电子编码本通常被采用。该高级内容存取系统也可以使用密码信息验证码(Cipher-base Message AuthenticationCode,CMAC)模块中的高级加密标准模块。
另一个范例的硬件模块可以是一个SHA-1模块,该SHA-1模块可以应用在椭圆曲线数字信号算法操作和杂凑信息验证码操作中。该高级内容存取系统要求SHA-1模块具有检验巨大的数据的能力。从动态随机存储器或闪存传输数据至该SHA-1缓冲存储器的直接存取存储器的功能可能是达到目标数据率所必须的。
另一个范例的硬件模块可以是一个椭圆曲线模块。最花时间的操作是纯量乘法(scalar multiplication)和在椭圆曲线上增加点。其他相关的操作包括在一般或蒙哥马利域中执行的非常长的整数算法。
所有这些硬件模块可以共享最多的资源,如静态随机存储器(StaticRandom Access Memory,SRAM)和算法逻辑单元(Arithmetic Logical Unit,ALU)。这些算法可以被硬件状态机器和少量的静态随机存储器或动态随机存储器使用一个32位的可适当编程的算法逻辑单元来执行。这些功能也可以被写成固件和在通用目的的微控制器单元150种执行,但是,明确获取指令和数据的顶部如此之大,以至于性能通常无法满足。一8位或16位微控制单元150上的SHA-1和椭圆曲线操作的性能将几乎是被抑制的。
注意,在被烧入至外部的闪存130之前,该固件,特别是用于密码计算的固件,可以被加密或扰乱的。加密的固件图像更保护系统的机密。微控制器150的固件图像能被轻易地重组,但甚至轻微被扰乱的固件可能非常难于理解。当数据处理的算法必须保密时,如高级内容存取系统保护的碟片的多个数据区,这是特别重要的。被用于扰乱或加密固件的实际的算法依赖于实际的实行操作。
用于固件加密的密码的值或标示符可以被存储在eFuse 190中,如此以使得相同单芯片系统的所有使用者不必使用形同的密匙(Secret Key)。如果一个完整的密码存储在该eFuse 190中,甚至芯片的卖主不被教导将不知道如何建立一个可操作的固件图像。
请参阅图6,本发明第六实施方式对应的嵌入式系统600用于调试的功能模块图。该嵌入式系统600包括嵌入式系统100中所有相同的组件,为了把注意力集中在专用的调试方法上,省略了部分组件。如图6所示,一专用集成电路芯片610包括耦合至微控制器单元150的因特网通信引擎/探测界面620,以及密码识别单元630。该因特网通信引擎/探测界面620和密码识别单元630依序耦合至eFuse 190。
不同的调试功能可以被用来探测固件如何工作或内部系统的状态,因此这对于系统的安全性是危险的。该芯片永久性存储器也能被用来开关这些模块以最大化适应性和安全性。在制造过程中,该调试功能可以缺省地被永久性的关闭。仅少量的工程样品能被用于固件的改进。
控制访问调试进程的一个简单方法是在eFuse 190中为此目的保留一小部分。例如,eFuse 190中的密码所在范围内的单一首位可被初始化编程为1。当需要调试时,用户输入密码,该密码识别单元630下载密匙数据,在这个首位的例子中,验证该密码,而且该首位被设置为1。当调试结束时,重新编程该首位将其设置为0以防止再次的调试访问。
另外,在eFuse 190中的密码所在范围内保留第二个单一位可被初始化编程为1是可能的。如果在首位被设置为0后制造商希望在专用集成电路芯片上执行进一步的调试(例如芯片被客户因为缺陷而退回),该第二位可被重新编程设置为0。如果该密码识别单元630下载密匙数据,在这个第二位的例子中,验证该密码,而且该第二位被设置为0,调试方法可以再次被执行。在允许制造商进行一般的测试进程时,该eFuse 190中的这些单一位允许调试进程以及防止进一步的调试进程有助于防止未授权的个体获取专用集成电路芯片内部工作的信息。应该注意的是用户输入密码以获得调试访问是推荐的,但其他实施例仅要求该密码识别单元630来验证第一和/或第二位的正确值。
本发明所揭示的内容范例性地包括用于高级内容存取系统的密码机密性,只读存储器标签和B9MID算法的机密性,固件的完整性,调试功能的关系,以及与消费性电子环境中的后端的加密通信等。主要内容也包括各种内部组件的机密性和完整性,阻止一般的调试工具,如电可擦除可编程的只读存储器(Electrically Erasable,Programmable Read-Only Memory,EEPROM),逻辑分析工具,ICE,烙铁等,以及一独特装置的装置密码的关联。明确了这点之后,附图中所示的各种不同的实时方式不应被认为是隔离的,而所述的专用集成电路芯片100与杂凑信息验证码模块250,密码表220,椭圆曲线数字信号算法验证模块420,和/或密码识别单元640的一些和所有的组合应该被认为在本发明的范围内。
综上所述,本发明的嵌入式系统遵循高级内容存取系统稳定性原则在硬件复杂性与额外的安全性要求之间的形成折中的方案。独特的驱动器专用密码被存储在芯片永久性存储器(eFuse)中防止轻易地存取,以及在导入操作,升级或数据的下载时,固件能被检查完整性。用于完整性检查的时间可以更改以增加安全性,以及可以采用SHA-1运行数字和从固件图像中随机采样的完整性检查来减少用于完整性检查的时间,其中从固件图像中随机采样直到完整的图像检查被允许。
另外,对应于嵌入式系统的各种实施方式,本发明也提供对应的增加嵌入式系统安全性的方法。每一方法包括存储对应的密匙数据至eFuse 190中,然后利用该对应的密匙数据来检查完整性。
以上对所提供的一种嵌入式系统以及增加嵌入式系统安全性的方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (21)
1、一种嵌入式系统,其特征在于,所述嵌入式系统包括:
专用集成电路芯片,所述专用集成电路芯片包括一微控制器单元和一存储有密匙数据的芯片永久性存储器,所述芯片永久性存储器耦合至所述微控制器单元,所述微控制器单元利用所述密匙数据来唯一地识别所述专用集成电路芯片至一芯片外装置;
耦合至所述微控制器单元和存储有密匙数据的芯片永久性存储器的一杂凑信息验证码模块,所述杂凑信息验证码模块从所述存储有密匙数据的芯片永久性存储器中下载一第一密匙数据,且利用所述第一密匙数据来检验芯片外固件的完整性;以及
耦合至所述微控制器单元的一芯片存储器单元,以存储只读存储器码,当所述微控制器单元执行所述只读存储器码时,使得所述杂凑信息验证码模块下载所述第一密匙数据,且利用所述第一密匙数据来检验芯片外导入码的完整性。
2、如权利要求1所述的嵌入式系统,其特征在于,所述芯片外固件和所述芯片外导入码存储在一闪存中。
3、如权利要求1所述的嵌入式系统,其特征在于,所述第一密匙数据是一完整的密匙,所述杂凑信息验证码模块利用所述第一密匙数据直接验证所述芯片外固件或所述芯片外导入码。
4、如权利要求1所述的嵌入式系统,其特征在于,所述第一密匙数据是一个密码标示符,所述杂凑信息验证码模块利用所述第一密匙数据来存取一芯片密码表格来获得一完整的密匙,以验证所述芯片外固件或所述芯片外导入码。
5、如权利要求1所述的嵌入式系统,其特征在于,所述芯片外固件的完整性检验被分割成在不同时间执行的多个不同的阶段。
6、如权利要求2所述的嵌入式系统,其特征在于,所述芯片外固件的至少一部分被加密或打乱。
7、如权利要求6所述的嵌入式系统,其特征在于,用于所述芯片外固件完整性检验的所述第一密匙数据和存储在所述芯片永久性存储器中的固件加密码被所述杂凑信息验证码模块用来限定被授权的用户存取所述芯片外固件。
8、如权利要求7所述的嵌入式系统,其特征在于,升级的固件由所述杂凑信息验证码模块利用所述第一密匙数据检验其完整性,且所述杂凑信息验证码模块仅将通过验证的升级固件加载至所述闪存。
9、如权利要求1所述的嵌入式系统,其特征在于,所述专用集成电路芯片进一步包括多个硬件功能块,以加速椭圆曲线的处理、保护杂乱算法以及执行加密算法。
10、如权利要求1所述的嵌入式系统,其进一步包括:耦合至所述微控制器单元的一因特网通信引擎或因特网探测界面,及耦合至所述微控制器单元和芯片永久性存储器的一密码认可单元。
11、如权利要求10所述的嵌入式系统,其特征在于,所述芯片永久性存储器进一步包括至少一位,所述密码认可单元存取所述至少一位来使所述嵌入式系统丧失调试功能。
12、如权利要求1所述的嵌入式系统,其进一步包括:耦合至所述微控制器单元和芯片永久性存储器的一椭圆曲线数字信号算法模块,用于椭圆曲线数字信号算法验证。
13、如权利要求12所述的嵌入式系统,其特征在于,一第二密匙数据从所述芯片永久性存储器中被下载至所述椭圆曲线数字信号算法模块,所述椭圆曲线数字信号算法模块利用所述第二密匙数据来做与不信赖的装置进行的或者在不信赖的通信信道上进行的数据交换的椭圆曲线数字信号算法验证。
14、如权利要求1所述的嵌入式系统,其进一步包括:耦合至所述微控制器单元和芯片永久性存储器的一高级加密标准模块,用于数据的加密和解密。
15、如权利要求14所述的嵌入式系统,其特征在于,一第三密匙数据从所述芯片永久性存储器中被下载至所述高级加密标准模块,所述高级加密标准模块利用所述第三密匙数据来做数据加密和解密期间的数据交换的高级加密标准验证。
16、如权利要求1所述的嵌入式系统,其特征在于,所述芯片永久性存储器是一次可编程的存储器。
17、一种增加嵌入式系统安全性的方法,其特征在于,所述嵌入式系统包括:专用集成电路芯片,所述专用集成电路芯片包括一微控制器单元和一芯片永久性存储器,所述增加嵌入式系统安全性的方法包括:
存储密匙数据至所述芯片永久性存储器;
利用所述密匙数据来唯一地识别所述专用集成电路芯片至一芯片外装置,
其中,所述利用所述密匙数据来唯一地识别的步骤包括:利用所述密匙数据来检验芯片外固件的完整性,以及利用所述密匙数据来检验芯片外导入码的完整性。
18、如权利要求17所述的增加嵌入式系统安全性的方法,其特征在于,所述利用所述密匙数据来唯一地识别的步骤包括在一升级的固件被使用前,利用所述密匙数据来检验所述升级的固件的完整性。
19、如权利要求17所述的增加嵌入式系统安全性的方法,其特征在于,所述利用所述密匙数据来唯一地识别的步骤包括利用所述密匙数据来做数据更换的高级内容存取系统验证。
20、如权利要求17所述的增加嵌入式系统安全性的方法,其特征在于,所述利用所述密匙数据来唯一地识别的步骤包括利用所述密匙数据来做数据加密和解密期间的数据交换的高级加密标准验证。
21、如权利要求17所述的增加嵌入式系统安全性的方法,其特征在于,所述利用所述密匙数据来唯一地识别的步骤包括在数据交换期间,利用所述密匙数据来关闭所述嵌入式系统的调试功能。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US74312606P | 2006-01-12 | 2006-01-12 | |
US60/743,126 | 2006-01-12 | ||
US60/766,772 | 2006-02-10 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101004719A CN101004719A (zh) | 2007-07-25 |
CN100578473C true CN100578473C (zh) | 2010-01-06 |
Family
ID=38692494
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2007100013622A Expired - Fee Related CN100454257C (zh) | 2006-01-12 | 2007-01-11 | 嵌入式系统 |
CNA2007100013957A Pending CN101000497A (zh) | 2006-01-12 | 2007-01-12 | 程控系统和数据保护方法 |
CN200710002165A Expired - Fee Related CN100578473C (zh) | 2006-01-12 | 2007-01-12 | 嵌入式系统和增加嵌入式系统安全性的方法 |
CNB2007100013938A Expired - Fee Related CN100476719C (zh) | 2006-01-12 | 2007-01-12 | 密码系统和相关的椭圆曲线运算方法 |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2007100013622A Expired - Fee Related CN100454257C (zh) | 2006-01-12 | 2007-01-11 | 嵌入式系统 |
CNA2007100013957A Pending CN101000497A (zh) | 2006-01-12 | 2007-01-12 | 程控系统和数据保护方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2007100013938A Expired - Fee Related CN100476719C (zh) | 2006-01-12 | 2007-01-12 | 密码系统和相关的椭圆曲线运算方法 |
Country Status (3)
Country | Link |
---|---|
US (3) | US7602655B2 (zh) |
CN (4) | CN100454257C (zh) |
TW (3) | TW200731739A (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7602655B2 (en) * | 2006-01-12 | 2009-10-13 | Mediatek Inc. | Embedded system |
US8243919B2 (en) * | 2007-03-07 | 2012-08-14 | Research In Motion Limited | Method and apparatus for performing elliptic curve scalar multiplication in a manner that counters power analysis attacks |
US7991162B2 (en) * | 2007-09-14 | 2011-08-02 | University Of Ottawa | Accelerating scalar multiplication on elliptic curve cryptosystems over prime fields |
US8619977B2 (en) * | 2008-01-15 | 2013-12-31 | Inside Secure | Representation change of a point on an elliptic curve |
CN101547089B (zh) * | 2008-03-28 | 2012-07-25 | 上海爱信诺航芯电子科技有限公司 | 集成电路中素数域椭圆曲线密码算法的实现方法 |
US7991154B2 (en) * | 2008-05-14 | 2011-08-02 | Univeristy of Castilla-La Mancha | Exponentiation method using multibase number representation |
US9208108B2 (en) | 2008-12-19 | 2015-12-08 | Nvidia Corporation | Method and system for improved flash controller commands selection |
CN102036025B (zh) * | 2009-09-25 | 2014-01-08 | 无锡华润矽科微电子有限公司 | 一种soc芯片及其控制方法 |
US9594675B2 (en) | 2009-12-31 | 2017-03-14 | Nvidia Corporation | Virtualization of chip enables |
US9465728B2 (en) * | 2010-11-03 | 2016-10-11 | Nvidia Corporation | Memory controller adaptable to multiple memory devices |
US9929862B2 (en) | 2013-12-23 | 2018-03-27 | Nxp B.V. | Optimized hardware architecture and method for ECC point doubling using Jacobian coordinates over short Weierstrass curves |
US9900154B2 (en) * | 2013-12-23 | 2018-02-20 | Nxp B.V. | Optimized hardward architecture and method for ECC point addition using mixed affine-jacobian coordinates over short weierstrass curves |
US9979543B2 (en) | 2013-12-23 | 2018-05-22 | Nxp B.V. | Optimized hardware architecture and method for ECC point doubling using jacobian coordinates over short weierstrass curves |
FR3055444B1 (fr) * | 2016-08-23 | 2022-02-04 | Maxim Integrated Products | Dispositif et procedes de commande de dispositif de cryptage sur courbe elliptique securises |
CN109145616B (zh) * | 2018-08-01 | 2022-03-22 | 上海交通大学 | 基于高效模乘的sm2加密、签名和密钥交换的实现方法及系统 |
GB201816936D0 (en) * | 2018-10-17 | 2018-11-28 | Nchain Holdings Ltd | Computer-implemented system and method |
US11528126B2 (en) * | 2021-02-16 | 2022-12-13 | Google Llc | Interface for revision-limited memory |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4879688A (en) | 1985-03-04 | 1989-11-07 | Lattice Semiconductor Corporation | In-system programmable logic device |
AU556098B1 (en) * | 1985-05-14 | 1986-10-23 | Cadam Systems Company Inc. | Program keyboard mechanism |
US4985848A (en) * | 1987-09-14 | 1991-01-15 | Visual Information Technologies, Inc. | High speed image processing system using separate data processor and address generator |
US5261055A (en) * | 1992-02-19 | 1993-11-09 | Milsys, Ltd. | Externally updatable ROM (EUROM) |
US5543730A (en) | 1995-05-17 | 1996-08-06 | Altera Corporation | Techniques for programming programmable logic array devices |
US5734868A (en) | 1995-08-09 | 1998-03-31 | Curd; Derek R. | Efficient in-system programming structure and method for non-volatile programmable logic devices |
US5650734A (en) | 1995-12-11 | 1997-07-22 | Altera Corporation | Programming programmable transistor devices using state machines |
US5812662A (en) | 1995-12-18 | 1998-09-22 | United Microelectronics Corporation | Method and apparatus to protect computer software |
CN1083589C (zh) | 1996-05-24 | 2002-04-24 | 明碁电脑股份有限公司 | 将软件程序载入电可擦可编程只读存储器的方法 |
US6097211A (en) * | 1996-07-18 | 2000-08-01 | Altera Corporation | Configuration memory integrated circuit |
US5816662A (en) * | 1996-11-12 | 1998-10-06 | Rumburg; Tina M. | Over-the-shoulder safety harness for use with a chair |
US6134707A (en) * | 1996-11-14 | 2000-10-17 | Altera Corporation | Apparatus and method for in-system programming of integrated circuits containing programmable elements |
US5922055A (en) * | 1997-02-25 | 1999-07-13 | Motorola, Inc. | Method for determining a type of a serial EEPROM and plug and play controller |
US6170043B1 (en) | 1999-01-22 | 2001-01-02 | Media Tek Inc. | Method for controlling an optic disk |
US6963644B1 (en) | 1999-04-07 | 2005-11-08 | Matsushita Electric Industrial Co., Ltd. | Multi-word arithmetic device for faster computation of cryptosystem calculations |
US6507881B1 (en) | 1999-06-10 | 2003-01-14 | Mediatek Inc. | Method and system for programming a peripheral flash memory via an IDE bus |
US6691143B2 (en) | 2000-05-11 | 2004-02-10 | Cyberguard Corporation | Accelerated montgomery multiplication using plural multipliers |
JP4678083B2 (ja) | 2000-09-29 | 2011-04-27 | ソニー株式会社 | メモリ装置およびメモリアクセス制限方法 |
US6373771B1 (en) * | 2001-01-17 | 2002-04-16 | International Business Machines Corporation | Integrated fuse latch and shift register for efficient programming and fuse readout |
CN1258711C (zh) * | 2001-06-19 | 2006-06-07 | 神基科技股份有限公司 | 具有选择性烧录模块的烧录方法 |
CN2501159Y (zh) | 2001-07-16 | 2002-07-17 | 青岛海信电器股份有限公司 | 串行电可擦可编程只读存储器的复制器 |
US6683817B2 (en) * | 2002-02-21 | 2004-01-27 | Qualcomm, Incorporated | Direct memory swapping between NAND flash and SRAM with error correction coding |
JP2005149715A (ja) | 2003-11-13 | 2005-06-09 | Samsung Electronics Co Ltd | Otpブロックが含まれたフラッシュメモリを有するメモリシステム |
US7046570B1 (en) | 2004-06-02 | 2006-05-16 | Xilinx, Inc. | Programmable logic devices optionally convertible to one time programmable devices |
JP2006236064A (ja) | 2005-02-25 | 2006-09-07 | Oki Electric Ind Co Ltd | メモリ制御装置およびメモリシステム |
CN100536390C (zh) | 2005-05-18 | 2009-09-02 | 上海迪申电子科技有限责任公司 | 一种椭圆曲线密码协处理器 |
TWI269306B (en) | 2005-12-16 | 2006-12-21 | Fortune Semiconductor Corp | One-time programmable memory and its data recording method |
US7602655B2 (en) * | 2006-01-12 | 2009-10-13 | Mediatek Inc. | Embedded system |
US20070162964A1 (en) * | 2006-01-12 | 2007-07-12 | Wang Liang-Yun | Embedded system insuring security and integrity, and method of increasing security thereof |
-
2006
- 2006-10-06 US US11/539,209 patent/US7602655B2/en active Active
- 2006-11-27 US US11/563,236 patent/US7480744B2/en active Active
-
2007
- 2007-01-11 TW TW096101049A patent/TW200731739A/zh unknown
- 2007-01-11 US US11/622,011 patent/US20070198824A1/en not_active Abandoned
- 2007-01-11 CN CNB2007100013622A patent/CN100454257C/zh not_active Expired - Fee Related
- 2007-01-11 TW TW096101053A patent/TWI333198B/zh not_active IP Right Cessation
- 2007-01-11 TW TW096101051A patent/TW200736955A/zh unknown
- 2007-01-12 CN CNA2007100013957A patent/CN101000497A/zh active Pending
- 2007-01-12 CN CN200710002165A patent/CN100578473C/zh not_active Expired - Fee Related
- 2007-01-12 CN CNB2007100013938A patent/CN100476719C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
TWI333198B (en) | 2010-11-11 |
CN101000497A (zh) | 2007-07-18 |
TW200805274A (en) | 2008-01-16 |
US7480744B2 (en) | 2009-01-20 |
TW200731739A (en) | 2007-08-16 |
CN101000539A (zh) | 2007-07-18 |
CN100476719C (zh) | 2009-04-08 |
CN100454257C (zh) | 2009-01-21 |
CN101000553A (zh) | 2007-07-18 |
US7602655B2 (en) | 2009-10-13 |
US20070174495A1 (en) | 2007-07-26 |
TW200736955A (en) | 2007-10-01 |
US20070198824A1 (en) | 2007-08-23 |
CN101004719A (zh) | 2007-07-25 |
US20070180165A1 (en) | 2007-08-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100578473C (zh) | 嵌入式系统和增加嵌入式系统安全性的方法 | |
US11664994B2 (en) | Secure unlock systems for locked devices | |
TWI334130B (en) | Embedded system insuring security and integrity, and method of increasing security thereof | |
KR100851631B1 (ko) | 보안 모드 제어 메모리 | |
US8943313B2 (en) | Fine-grained security in federated data sets | |
US9575903B2 (en) | Security perimeter | |
US8213612B2 (en) | Secure software download | |
US7636844B2 (en) | Method and system to provide a trusted channel within a computer system for a SIM device | |
RU2541196C2 (ru) | Способ обеспечения целостности программного обеспечения | |
US8479017B2 (en) | System and method for N-ary locality in a security co-processor | |
US20110271350A1 (en) | method for protecting software | |
CN112384922B (zh) | 加密密钥分布 | |
EP2876593B1 (en) | Method of generating a structure and corresponding structure | |
US20100077230A1 (en) | Protecting a programmable memory against unauthorized modification | |
Jacob et al. | faulTPM: Exposing AMD fTPMs’ Deepest Secrets | |
Kumar et al. | A novel holistic security framework for in-field firmware updates | |
Delafontaine et al. | Secure boot concept on the Zynq Ultrascale+ MPSoC | |
Ender et al. | JustSTART: How to Find an RSA Authentication Bypass on Xilinx UltraScale (+) with Fuzzing | |
Rowland et al. | A Review of Technologies that can Provide a'Root of Trust'for Operational Technologies | |
Badrignans et al. | Embedded systems security for FPGA | |
KR20240006658A (ko) | 소프트웨어의 사용을 보안하는 방법 | |
Κασαγιάννης | Security evaluation of Android Keystore | |
KR20220161304A (ko) | 보안 요소에서 디지털 정보를 안전하게 프로세싱하는 방법 | |
Holoubková | Rešerše a ukázka zabezpečení platformy (TPM) | |
CN117113437A (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100106 Termination date: 20160112 |