CN101494645B - 认证下载到闪存的程序的装置及方法 - Google Patents

认证下载到闪存的程序的装置及方法 Download PDF

Info

Publication number
CN101494645B
CN101494645B CN2008101325128A CN200810132512A CN101494645B CN 101494645 B CN101494645 B CN 101494645B CN 2008101325128 A CN2008101325128 A CN 2008101325128A CN 200810132512 A CN200810132512 A CN 200810132512A CN 101494645 B CN101494645 B CN 101494645B
Authority
CN
China
Prior art keywords
user identification
program
identification code
authentication
code
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
Application number
CN2008101325128A
Other languages
English (en)
Other versions
CN101494645A (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.)
MediaTek Inc
Original Assignee
MediaTek Inc
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 MediaTek Inc filed Critical MediaTek Inc
Publication of CN101494645A publication Critical patent/CN101494645A/zh
Application granted granted Critical
Publication of CN101494645B publication Critical patent/CN101494645B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2117User registration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution

Abstract

本发明提供一种认证下载到闪存的程序的装置及其方法。该装置包含:寄存器,存储用户标识码;以及信息认证码产生单元,依据硬件唯一密钥以及用户标识码获得根密钥,并利用已获得的根密钥产生与程序相对应的第一信息认证码,其中,锁定寄存器的内容,以在下一次装置重置之前避免存储的用户标识码被修改。本发明提供的认证下载到闪存的程序的装置及其方法,根据硬件唯一密钥与用户信息一同来认证下载到闪存的程序,能够减少安全漏洞,增进认证装置与认证方法的有效性。

Description

认证下载到闪存的程序的装置及方法
技术领域
本发明是关于下载到闪存的程序,特别是关于认证下载到闪存的程序的装置及其方法。
背景技术
安全机制的一种形式为使用加载至芯片内的硬件唯一密钥(hardware uniquekey)。因此,在各种应用中,将硬件唯一密钥加载至芯片以满足机密性、完整性与真实性的密码需求。就这一点而论,对于每一个芯片硬件唯一密钥唯一。即,如果硬件唯一密钥加载至芯片内,该硬件唯一密钥的值无法更改。使用硬件唯一密钥的另一优势是硬件唯一密钥无法从外部读出。因此,硬件唯一密钥作为一种安全机制被广泛应用。通常,传输至芯片的初始信息由硬件唯一密钥加密,并且输出的加密信息无法直接读出。硬件唯一密钥可存储于任意非易失性存储器中。
发明内容
为了解决现有技术中仅利用硬件唯一密钥来认证下载到闪存的程序而导致安全漏洞的问题,本发明提供一种认证下载到闪存的程序的装置及其方法。
依据本发明的一方面,其提供一种认证下载到闪存的程序的装置,包含:寄存器,存储用户标识码;以及信息认证码产生单元,依据硬件唯一密钥以及用户标识码获得根密钥,并利用已获得的根密钥产生与程序相对应的第一信息认证码,其中,锁定寄存器的内容,来在下一次装置重置之前避免存储的用户标识码被修改。
依据本发明另一方面,其提供一种认证下载到闪存的程序的方法,由电子装置执行,包含:获得相对应于电子装置的硬件唯一密钥;获得相对应于用户的用户标识码;获得相对应于硬件唯一密钥以及用户标识码的根密钥;以及利用已获得的根密钥,产生与程序相对应的第一信息认证码。
依据本发明又一方面,其提供一种认证下载到闪存的程序的方法,由电子装置执行,包含:获得第一信息认证码;获得相对应于用户以及程序的用户标识码;判断第一信息认证码是否与用户标识码相对应;以及当第一信息认证码相对应于用户标识码时,启动具有该程序的该电子装置。
依据本发明再一方面,其提供一种认证电子设备内的下载到闪存的程序的装置,包含:寄存器,存储用户标识码;密钥产生单元,依据硬件唯一密钥以及用户标识码产生根密钥;以及锁定电路,用来锁定该寄存器的内容,在下一次装置重置之前避免存储的用户标识码被修改。
本发明提供的认证下载到闪存的程序的装置及其方法,根据硬件唯一密钥与用户信息一同来认证下载到闪存的程序,能够减少安全漏洞,增进认证装置与认证方法的有效性。
附图说明
图1为加密系统的方框示意图。
图2为依据本发明的一个实施方式的认证下载到闪存的程序的装置的硬件结构的方块示意图。
图3为依据本发明的加密系统的实施方式的方块图。
图4为依据本发明的锁定电路的一个实施方式的简要示意图。
图5为依据本发明的由认证装置执行的认证方法的实施方式的流程图。
图6为当下载程序到闪存时产生信息认证码的简要示意图。
图7为依据本发明的装置启动过程中信息认证码产生与验证(validation)的简要示意图。
图8为依据本发明的信息认证码产生单元的实施方式的示意图。
图9为依据本发明的信息认证码产生单元的另一个实施方式的示意图。
图10为依据本发明的由认证装置执行的认证方法的另一个实施方式的流程图。
图11为依据本发明的装置启动过程中散列值产生与验证的简要示意图。
具体实施方式
在说明书及权利要求书当中使用了某些词汇来指称特定的组件。所属领域中具有通常知识者应可理解,制造商可能会用不同的名词来称呼同样的组件。本说明书及权利要求书并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的基准。在通篇说明书及权利要求书当中所提及的“包含”为一开放式的用语,故应解释成“包含但不限定于”。另外,“耦接”一词在此包含任何直接及间接的电气连接手段。因此,若文中描述第一装置耦接于第二装置,则代表第一装置可直接电气连接于第二装置,或通过其它装置或连接手段间接地电气连接至第二装置。
图1为加密系统的方框示意图。纯文本(plain text)11传输至加密机(cipherengine)12来加密。加密机12接收纯文本11并根据硬件唯一密钥13产生密码文本(cipher text)14,即加密文本。需注意的是,上述系统并非决定本发明的专利性的现有技术,而为本发明人发现的技术问题。上述系统中,硬件唯一密钥13仅可以由加密机12存取,并且加密机12可由软件控制来操作。因此,该系统具有安全漏洞。具体来说,硬件唯一密钥13与加密机12通常在芯片出货(shipping)之前嵌入芯片中,并且硬件唯一密钥13不能够以任何方式修改。但是,通过写入软件程序来操作加密机12,黑客能够在不破环硬件唯一密钥13的情况下,简单地发现初始纯文本11来解密密码文本14。
图2为依据本发明的一个实施方式的认证下载到闪存的程序的装置的硬件结构的方块示意图。认证装置嵌入于芯片或电子装置中。认证装置包含基频芯片与外部闪存(external flash)。当整个装置重置(reset)时,微处理器(MCU,microcontroller)21最初执行存储于引导用只读存储器(boot ROM)24内的启动程序(boot program)。该执行的启动程序检测是否需要下载程序到闪存。如果下载程序到闪存,则下载相对应于该程序的用户信息(customer information),其中该用户信息由用户提供并包含用户标识码(customer D),需注意的是,用户信息(即用户标识码)与用户是一一对应,而不能假造。提供的用户信息的用户标识码随后写入寄存器(register)22b。当用户信息已存储至寄存器22b时,锁定电路(lock circuit)22a锁定寄存器22b的内容,在装置下一次重置之前避免寄存器存储的用户标识码被修改。运算单元(operation unit)25自寄存器22b接收用户标识码,并接收硬件唯一密钥26来产生根密钥(root key)。在另一个实施方式中,运算单元25根据用户信息与硬件唯一密钥26来产生根密钥。信息认证码(MAC message authentication code)产生单元23依据用户信息与根密钥产生信息认证码。信息认证码与用户信息经由外部存储器接口(EMI,externalmemory interface)27存储至外部闪存29。
当不需要下载程序到闪存时,为了认证外部闪存29内的程序与用户信息是否没有被修改而依旧保持相互对应,经由外部存储器接口27自外部闪存29获得相对应于该程序的用户信息,其中该用户信息包含用户标识码并且该程序存储于外部闪存29中。经由外部存储器接口27自外部闪存29获得信息认证码。接着,判断获得的信息认证码是否与获得的用户信息相符合。当判断信息认证码与用户信息相符合时,装置启动。
图3为依据本发明的加密系统的实施方式的方块图。运算单元34接收硬件唯一密钥31与用户标识码32来产生根密钥或者信息认证码。利用软件可控制寄存器(软件用户身份证明UID)来存储用户信息,例如用户标识码32。锁定电路33锁定存储用户标识码的寄存器,在下一次装置重置之前避免所存储的用户标识码被修改。加密机36接收纯文本35并依据运算单元34的输出来产生密码文本37,即加密文本。本系统中,在芯片制造时提供硬件唯一密钥并且由用户提供用户标识码。本系统中,一同利用用户标识码与硬件唯一密钥来进行加密与解密。即在硬件唯一密钥相同的情况下,也使得密码文本对于每一用户(即用户唯一标识)唯一。通过认证后,寄存器的内容由引导用只读存储器程序写入并锁定,例如存储至图2所示的引导用只读存储器24。
图4为依据本发明的锁定电路的一个实施方式的简要示意图。在装置重置时,装置重置信号(SYSTEM RESET)输入至D型触发器(D flip-flop)42来清空(clear)锁存(latch)其中的资料。D型触发器42具有时钟输入端来接收信号REG_WR_1,以及数据输入端接收或门(OR gate)41的输出。或门41具有第一输入端接收控制信号,以及第二输入端耦接至D型触发器42的输出端。反相器(inverter)43接收并反相(invert)D型触发器42的输出信号,并且得到的反相信号随后传输至与门(AND gate)44。与门44更接收信号REG_WR_2。信号REG_WR_2连续地设置为逻辑值1。D型触发器45的时钟输入端接收与门44的输出信号,以及数据输入端接收用户标识码。由于每一D型触发器仅锁存一个比特,D型触发器45的数量是依赖于用户标识码的比特的数量。在用户标识码写入D型触发器45的过程中,控制信号设置为逻辑值0,并且当用户标识码完全写入D型触发器时,控制信号设置为逻辑值1。在用户标识码写入D型触发器45的过程中,信号REG_WR_1与信号REG_WR_2的设置保持不变(assert)。本实施方式中,信号REG_WR_1与信号REG_WR_2由引导用只读存储器程控。可以看出,或门41、D型触发器42、反相器43以及与门44组成锁定电路。一旦信号SYSTEM RESET输入至D型触发器42,D型触发器42的输出为逻辑值0,使得与门44接收逻辑值为1的反相信号,随后,D型触发器45的时钟输入上升(high)来允许用户标识码写入D型触发器45。随后,D型触发器42的输出保持为逻辑值1直到另一装置重置信号输入D型触发器42,使得用户标识码由D型触发器45锁存。
图5为依据本发明的由认证装置执行的认证方法的实施方式的流程图。在步骤S501中,整个装置重置。在步骤S502中,认证装置依据外部控制信号来检测是否有程序要下载到闪存。需注意的是,该程序可自外部电子装置下载,例如自个人计算机、笔记型计算机(notebook)、个人数字辅助理器(personal digitalassist)、移动电话(mobile phone)、智能手机(smart phone)以及其它类似装置下载。如果要下载程序到闪存,认证方法执行步骤S503至步骤S509。如果不需要下载程序到闪存,认证方法执行步骤S510至S515。在步骤S503中,提供相对应于该程序的用户信息来认证,其中该用户信息包含用户标识码。在步骤S505中,如果用户信息通过认证,认证方法执行的程序跳至步骤S506,如果用户信息没有通过认证,认证方法执行的步骤跳至错误处理状态。在步骤S506中,认证方法从提供的用户信息获得用户标识码,并在步骤S507中将用户标识码写入并锁定于寄存器(例如图2所示的寄存器22b或者图4所示的寄存器45)中。然后,在步骤S508中,认证装置利用硬件唯一密钥(例如图2所示的硬件唯一密钥26)与用户标识码来产生相对应于提供的用户信息的信息认证码。在步骤S509中,认证装置将用户信息、产生的信息认证码以及下载到闪存的程序写入至外部闪存(例如图2所示的外部闪存29)。在执行步骤S509之后,整个装置再次重置。
如果不存在等待下载到闪存的程序,认证方法跳至步骤S510。在步骤S510中,认证装置自外部闪存读取用户信息,并且在步骤S511中由读取的用户信息获得用户标识码。在步骤S512中,认证装置写入并锁定用户标识码于寄存器(例如图2所示的寄存器22b或者图4所示的寄存器45)中。在步骤S513中,认证装置利用硬件唯一密钥(例如图2所示的硬件唯一密钥26)与存储于寄存器的用户标识码来产生相对应于提供的用户信息的信息认证码。在步骤S514中,认证装置判断产生的信息认证码是否与外部闪存存储的信息认证码相同。如果不同,认证方法执行的步骤跳至错误处理状态(error handling state.)。如果相同,具有外部闪存存储的程序的整个装置启动。认证装置可由专用配属硬件电路或者微处理器(例如图2所示的微处理器21)来实现。
图6为当下载程序到闪存时产生信息认证码的简要示意图。参考图5所示的步骤S503至步骤S509,于下载程序之前,提供相对应于该程序的第一用户信息61来认证。当第一用户信息61通过认证时,包含第一用户标识码61a的用户信息61传输至信息认证码产生单元65,并且第一用户标识码61a写入寄存器62。当整个装置重置时,上述引导用只读存储器程序清空寄存器62的初始内容,并且写入用户信息至寄存器62。当用户信息没有通过认证,信息认证码产生流程跳至错误处理状态。运算单元64自寄存器62获得第一用户标识码,并获得硬件唯一密钥63来产生根密钥。信息认证码产生单元65依据根密钥以及第一用户信息61来产生第一信息认证码67。信息认证码产生单元65可通过利用根密钥来加密第一用户信息61来产生第一信息认证码67。即本实施方式利用第一信息认证码67来验证第一用户信息61的有效性与完整性。第一用户信息认证码67与第一用户信息61其中之一改变将破坏后续的认证。另一个实施方式中,信息认证码产生单元65由密钥产生器(key generator)替代,密钥产生器依据根密钥以及第一用户标识码61a产生另一个唯一密钥。然后,将用户信息61与第一信息认证码67写入外部闪存66。本实施方式中,根密钥可为硬件唯一密钥63与第一用户标识码61a的任意算术结果。例如,根密钥可通过将硬件唯一密钥63与用户标识码61a相加、将用户标识码61a与硬件唯一密钥63相减、将硬件唯一密钥63与用户标识码61a相乘、或者将硬件唯一密钥63与用户标识码61a相除来得到根密钥。或者,可将用户标识码61a与硬件唯一密钥63逐比特进行及运算(AND)、或运算(OR)或者异或运算(XOR)来得到根密钥。在另一个实施方式中,根密钥可为硬件唯一密钥63与第一用户信息61的任意算术结果。本实施方式中,信息认证码产生单元65可由硬件电路或者执行特定程序代码的处理器实现。
图7为依据本发明的装置启动过程中信息认证码产生与验证(validation)的简要示意图。参考图5所示的步骤S510至步骤S515,假设第二用户信息72包含第二用户标识码72a,并且在当前装置重置之前,已提供第二信息认证码73至外部闪存71。认证装置自外部闪存读71取第二用户信息72,并由读取的用户信息获得第二用户标识码72a。当整个装置重置时,上述引导用只读存储器程序清空寄存器76的初始内容,并写入第二用户标识码72a至寄存器76。本实施方式中,在下一次装置重置之前,锁定寄存器76的内容来避免第二用户标识码被修改。与图6所示的运算单元64相似,运算单元78自寄存器76获得第二用户标识码,并获得硬件唯一密钥77来产生根密钥。信息认证码产生单元74依据根密钥以及第二用户标识码72a来产生第三信息认证码75。根密钥与第三信息认证码75的产生方法与第二信息认证码73的产生方法相同。信息认证码比较器79通过判断产生的第三信息认证码75与外部闪存71存储的第二信息认证码73是否相同,来认证外部闪存71的程序。如果不同,认证方法执行的流程跳转至错误处理状态。如果相同,具有外部闪存71存储的程序的装置启动。可以推导出只有在第一用户信息61、用户标识码61a以及信息认证码67分别与第二用户信息72、用户标识码72a以及信息认证码73相同时,该程序才能够成功认证,即第二信息认证码73与第三认证码75相同。换言之,只有在外部闪存存储的用户信息与程序都没有被修改时,该程序才能够成功认证。本实施方式中,信息认证码产生单元74可由硬件电路或者执行程序代码的处理器(例如图2所示处理器21)实现。
图8为依据本发明的信息认证码产生单元的实施方式的示意图。该信息认证码产生单元包含散列单元(hash unit)81以及加密单元(encrypt unit)82。散列单元81接收用户信息并利用熟知的散列函数来产生用户信息的散列值(hashvalue)。散列函数将可变大小(variable-sized)的用户信息转变为固定大小(fixed-sized)的用户信息,并输出相对小型的散列值作为用户信息的数字指纹(digital fingerprint)。加密单元82通过利用根密钥来加密以产生信息认证码。
图9为依据本发明的信息认证码产生单元的另一个实施方式的示意图。该信息认证码产生单元包含数据结合单元(data joint unit)91与散列单元92。数据结合单元91合并用户信息与根密钥来产生结合值。本实施方式中,结合结果可为根密钥与用户信息的算术结果。散列单元92利用熟知散列函数来产生用户信息与根密钥的结合值的散列值,即产生信息认证码。
图10为依据本发明的由认证装置执行的认证方法的另一个实施方式的流程图。在步骤S101中,整个装置重置。在步骤S102中,认证装置依据外部控制信号来检测是否需要下载程序到闪存。需注意的是,该程序可自外部电子装置下载,例如自个人计算机、笔记型计算机、个人数字辅助理器、移动电话、智能手机以及其它类似装置下载。如果需要下载程序到闪存,认证方法执行步骤S103至步骤S109。如果不需要下载程序到闪存,认证方法执行步骤S110至S115。在步骤S103中,提供相对应于该程序的用户信息来认证,其中该用户信息包含用户标识码。在步骤S105中,如果用户信息通过认证,认证方法执行的程序跳至步骤S106,如果用户信息没有通过认证,认证方法执行的步骤跳至错误处理状态。在步骤S106中,认证装置自提供的用户信息获得用户标识码,并在步骤S107中将用户标识码写入并锁定于寄存器(例如图2所示的寄存器22b或者图4所示的寄存器45)中。然后,在步骤S108中,认证装置利用硬件唯一密钥(例如图2所示的硬件唯一密钥26)与存储于寄存器的用户标识码来产生相对应于该提供的用户信息的信息认证码。在步骤S109中,认证装置将用户信息、产生的信息认证码以及该程序写入至外部闪存(例如图2所示的外部闪存29)。在执行步骤S109之后,整个装置再次重置。
如果不需要下载程序到闪存,认证方法执行的程序跳至步骤S110。在步骤S110中,认证装置自外部闪存读取信息认证码,并且在步骤S111中通过解密读取的信息认证码来获得第二散列值。在步骤S112中,认证装置自外部闪存获得用户信息,并且在步骤S113中,传输用户信息至散列值产生器来产生获得的用户信息的第一散列值。在步骤S114中,认证装置判断第一散列值与第二散列值是否相同。如果相同,认证方法执行的程序跳转至步骤S115,并且具有外部闪存初始存储的程序的整个装置启动。如果不同,认证方法执行的步骤跳转至错误处理状态。认证装置可由专用配属硬件电路或者微处理器(例如图2所示的微处理器21)来实现。
图11为依据本发明的装置启动过程中散列值产生与验证的简要示意图。参考图10所示的步骤S110至步骤S115,假设第二用户信息1001包含第二用户标识码1012,并且在当前装置重置之前,已提供第二信息认证码1002至外部闪存1003。当整个装置重置时,上述引导用只读存储器程序清空寄存器1006的初始内容并写入用户标识码1012至寄存器1006。本实施方式中,在下一次装置重置之前,锁定寄存器1006的内容来避免寄存器存储的用户标识码被修改。解密单元(decrypting unit)1008自外部闪存1003获得第二信息认证码1002。随后,解密单元1008依据根密钥产生第二散列值1009。运算单元1010自寄存器1006获得用户标识码,并获得硬件唯一密钥1007来产生根密钥。散列值产生器1004自外部闪存1003获得第二用户信息1001,并利用熟知的散列函数产生相对应于获得的用户信息1001的第一散列值1005。散列值比较器1011比较第一散列值1005与第二散列值1009。当第一散列值1005与第二散列值1009相同时,散列值比较器1011输出信号来指示相对应于第二用户信息1001的下载到闪存的程序通过认证,否则,散列值比较器1011输出信号来指示相对应于第二用户信息1001的下载到闪存的程序没有通过认证。本实施方式中,散列值比较器1011可通过硬件电路或者处理器(例如图2所示值处理器21)执行特定软件代码实现。
任何本领域技术人员可轻易完成的改变或均等性的安排均属于本发明所主张的范围,本发明的权利范围应以权利要求书为准。

Claims (21)

1.一种认证下载至闪存的程序的装置,包含:
寄存器,存储用户标识码;以及
信息认证码产生单元,依据硬件唯一密钥以及该用户标识码获得根密钥,并利用该已获得的根密钥产生与该程序相对应的第一信息认证码,
其中,该寄存器的内容在下一次装置重置之前是锁定的,以避免该存储的用户标识码被修改。
2.根据权利要求1所述的认证下载至闪存的程序的装置,其特征在于,更包含锁定电路,用来在该用户标识码写入该寄存器之后锁定该寄存器。
3.根据权利要求1所述的认证下载至闪存的程序的装置,其特征在于,更包含引导用只读存储器,存储启动程序来写入该用户标识码至该寄存器。
4.根据权利要求3所述的认证下载至闪存的程序的装置,其特征在于,其中依照装置重置信号激活该启动程序,并且依照该装置重置信号初始化该寄存器。
5.根据权利要求1所述的认证下载至闪存的程序的装置,其特征在于,更包含运算单元,接收该用户标识码以及该硬件唯一密钥来产生该根密钥。
6.根据权利要求1所述的认证下载至闪存的程序的装置,其特征在于,该信息认证码产生单元包含:
散列单元,产生相对应于包含该用户标识码的用户信息的散列值;以及
加密单元,通过利用该已获得的根密钥加密该散列值来产生该第一信息认证码。
7.根据权利要求1所述的认证下载至闪存的程序的装置,其特征在于,该信息认证码产生单元更包含:
数据结合单元,产生相对应于该用户标识码以及该硬件唯一密钥的第一结果;以及
散列单元,产生该第一结果的散列值作为该第一信息认证码。
8.根据权利要求1所述的认证下载至闪存的程序的装置,其特征在于,该装置嵌入于电子设备,并且当该第一信息认证码通过认证时,启动具有该程序的该电子设备。
9.根据权利要求8所述的认证下载至闪存的程序的装置,其特征在于,更包含:
外部闪存,用来存储第二信息认证码;以及
比较器,用来比较该第一信息认证码与该第二信息认证码,并且当该第一信息认证码与该第二信息认证码相同时,判断该第一信息认证码通过认证。
10.根据权利要求1所述的认证下载至闪存的程序的装置,其特征在于,更包含锁定电路,用来在用户标识码完全写入该寄存器之后锁定该用户标识码。
11.一种认证下载至闪存的程序的方法,由电子装置执行,包含:
获得相对应于该电子装置的硬件唯一密钥;
获得相对应于用户的用户标识码;
获得相对应于该硬件唯一密钥以及该用户标识码的根密钥;以及
利用该已获得的根密钥,产生与该程序相对应的第一信息认证码。
12.根据权利要求11所述的认证下载至闪存的程序的方法,其特征在于,在下一次装置重置之前写入并锁定该用户标识码。
13.根据权利要求11所述的认证下载至闪存的程序的方法,其特征在于,更包含:
下载该程序;
写入并锁定该用户标识码至寄存器;以及
写入该信息认证码与该程序至外部闪存,
其中,在下一次装置重置之前该用户标识码不能以任何方式修改。
14.一种认证下载至闪存的程序的方法,由电子装置执行,包含:
获得第一信息认证码;
获得相对应于用户以及该程序的用户标识码;
判断该第一信息认证码是否与该用户标识码相对应;以及
当该第一信息认证码相对应于该用户标识码时,启动具有该程序的该电子装置。
15.根据权利要求14所述的认证下载至闪存的程序的方法,其特征在于,该判断该第一信息认证码是否与该用户标识码相对应的步骤更包含:
获得与该电子装置相对应的硬件唯一密钥;
依据该用户标识码与该硬件唯一密钥产生根密钥;
获得包含该用户标识码的用户信息;
通过利用该产生的根密钥加密该用户信息来产生第二信息认证码;以及
当该第一信息认证码与该第二信息认证码相同时,判断该第一信息认证码相对应于该用户标识码。
16.根据权利要求14所述的认证下载至闪存的程序的方法,其特征在于,更包含:
写入该用户标识码至寄存器;以及
在将该用户标识码完全写入之后,锁定该用户标识码来避免该用户标识码被修改。
17.根据权利要求14所述的认证下载至闪存的程序的方法,其特征在于,该判断该第一信息认证码是否与该用户标识码相对应的步骤更包含:
获得相对应于该电子装置的硬件唯一密钥;
依据该用户标识码与该硬件唯一密钥产生根密钥;
获得包含该用户标识码的用户信息;
通过散列函数获得该已获得的用户信息的第一散列值;
通过利用该产生的根密钥解密该第一信息认证码来获得第二散列值;以及
当该第一散列值与该第二散列值相同时,判断该第一信息认证码相对应于该用户标识码。
18.一种认证下载至闪存的程序的装置,包含:
寄存器,存储用户标识码;
密钥产生单元,依据硬件唯一密钥以及该用户标识码产生根密钥;以及
锁定电路,用来锁定该寄存器的内容,在下一次装置重置之前避免该存储的用户标识码被修改。
19.根据权利要求18所述的认证下载至闪存的程序的装置,其特征在于,该寄存器是第一D型触发器。
20.根据权利要求19所述的认证下载至闪存的程序的装置,其特征在于,该锁定电路更包含:
第二D型触发器;
或门;
反相器;以及
与门,
其中该或门耦接于该第二D型触发器的输出端与第一输入端之间,该反相器耦接于该第二D型触发器的输出端与该与门的第一输入端之间,并且该与门的输出端耦接至该第一D型触发器的时钟输入端。
21.根据权利要求20所述的认证下载至闪存的程序的装置,其特征在于,该或门更包含第二输入端,该第二D型触发器包含第二输入端以及时钟输入端,该与门包含逻辑值为1的第二输入端,当装置重置时,该或门的第二输出端设置为逻辑值0,该第二D型触发器的该第二输入端接收装置重置信号来清空锁存其中的数据,并且在完全写入该用户标识码之后,该或门的第二输入端设置为逻辑值1。
CN2008101325128A 2008-01-25 2008-09-23 认证下载到闪存的程序的装置及方法 Expired - Fee Related CN101494645B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/019,825 US20090193261A1 (en) 2008-01-25 2008-01-25 Apparatus and method for authenticating a flash program
US12/019,825 2008-01-25

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201210083821.7A Division CN102647278B (zh) 2008-01-25 2008-09-23 认证下载到闪存的程序的装置及方法

Publications (2)

Publication Number Publication Date
CN101494645A CN101494645A (zh) 2009-07-29
CN101494645B true CN101494645B (zh) 2012-05-30

Family

ID=40794578

Family Applications (2)

Application Number Title Priority Date Filing Date
CN2008101325128A Expired - Fee Related CN101494645B (zh) 2008-01-25 2008-09-23 认证下载到闪存的程序的装置及方法
CN201210083821.7A Expired - Fee Related CN102647278B (zh) 2008-01-25 2008-09-23 认证下载到闪存的程序的装置及方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201210083821.7A Expired - Fee Related CN102647278B (zh) 2008-01-25 2008-09-23 认证下载到闪存的程序的装置及方法

Country Status (5)

Country Link
US (1) US20090193261A1 (zh)
CN (2) CN101494645B (zh)
BR (1) BRPI0803574A2 (zh)
DE (1) DE102008033895B4 (zh)
TW (1) TWI385670B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101790021A (zh) * 2009-01-26 2010-07-28 株式会社东芝 扫描图像管理装置及扫描图像管理方法
EP2503482A1 (en) 2011-03-23 2012-09-26 ST-Ericsson SA Electronic device with flash memory component
DE102012201164B4 (de) * 2012-01-26 2017-12-07 Infineon Technologies Ag Vorrichtung und verfahren zur erzeugung eines nachrichtenauthentifizierungscodes
US8856538B2 (en) * 2012-07-27 2014-10-07 GM Global Technology Operations LLC Secured flash programming of secondary processor
JP2014119897A (ja) * 2012-12-14 2014-06-30 Fujitsu Ltd 情報処理装置、ロック実行方法、及びロック実行プログラム
CN103793644B (zh) * 2014-02-28 2017-09-19 天地融科技股份有限公司 信息安全设备实现多应用的方法、信息安全设备和系统
CN107977568B (zh) * 2017-12-25 2020-05-15 瑞萨集成电路设计(北京)有限公司 Mcu安全保护身份认证装置及方法
US11321466B2 (en) * 2018-03-09 2022-05-03 Qualcomm Incorporated Integrated circuit data protection
CN113139203A (zh) * 2020-01-19 2021-07-20 上海臻客信息技术服务有限公司 一种用户信息防泄露方法
US11799662B2 (en) * 2021-02-15 2023-10-24 Sony Semiconductor Solutions Corporation Efficient data item authentication

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1462442A (zh) * 2001-05-09 2003-12-17 皇家菲利浦电子有限公司 将储存在记录载体上的加密数据进行解密的方法和装置
CN101010903A (zh) * 2004-06-25 2007-08-01 拜伊帕斯公司 用于生成并验证电子签名的方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3944976A (en) * 1974-08-09 1976-03-16 Rode France Electronic security apparatus
US5764995A (en) * 1994-03-25 1998-06-09 Packard Bell Nec Write once read only registers
JP3257259B2 (ja) * 1994-07-01 2002-02-18 ソニー株式会社 データ抽出装置
US6000832A (en) * 1997-09-24 1999-12-14 Microsoft Corporation Electronic online commerce card with customer generated transaction proxy number for online transactions
US6625729B1 (en) * 2000-03-31 2003-09-23 Hewlett-Packard Company, L.P. Computer system having security features for authenticating different components
US20060039564A1 (en) * 2000-11-17 2006-02-23 Bindu Rama Rao Security for device management and firmware updates in an operator network
JP3863447B2 (ja) * 2002-03-08 2006-12-27 インターナショナル・ビジネス・マシーンズ・コーポレーション 認証システム、ファームウェア装置、電気機器、及び認証方法
EP1429224A1 (en) * 2002-12-10 2004-06-16 Texas Instruments Incorporated Firmware run-time authentication
US7457945B2 (en) * 2004-03-23 2008-11-25 Dell Products L.P. System and method for providing a secure firmware update to a device in a computer system
DE102004019367B4 (de) * 2004-04-21 2006-03-16 Infineon Technologies Ag Verfahren zum Verifizieren von elektronischen Schaltungseinheiten und Vorrichtung zur Durchführung des Verfahrens
EP1659472A1 (en) * 2004-11-22 2006-05-24 Research In Motion Limited Method and Device for Authenticating Software
PT1854263E (pt) * 2005-02-04 2011-07-05 Qualcomm Inc Técnica de bootstrapping para protecção de comunicações sem fios
US7934049B2 (en) * 2005-09-14 2011-04-26 Sandisk Corporation Methods used in a secure yet flexible system architecture for secure devices with flash mass storage memory

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1462442A (zh) * 2001-05-09 2003-12-17 皇家菲利浦电子有限公司 将储存在记录载体上的加密数据进行解密的方法和装置
CN101010903A (zh) * 2004-06-25 2007-08-01 拜伊帕斯公司 用于生成并验证电子签名的方法

Also Published As

Publication number Publication date
BRPI0803574A2 (pt) 2009-09-15
DE102008033895B4 (de) 2011-05-12
CN101494645A (zh) 2009-07-29
TW200933639A (en) 2009-08-01
US20090193261A1 (en) 2009-07-30
CN102647278A (zh) 2012-08-22
TWI385670B (zh) 2013-02-11
CN102647278B (zh) 2014-09-03
DE102008033895A1 (de) 2009-07-30

Similar Documents

Publication Publication Date Title
CN101494645B (zh) 认证下载到闪存的程序的装置及方法
CN105144626B (zh) 提供安全性的方法和设备
CN101291224B (zh) 在通信系统中处理数据的方法和系统
US8560820B2 (en) Single security model in booting a computing device
TWI484812B (zh) 於處理器之間驗證資料之系統及方法
US7735132B2 (en) System and method for encrypted smart card PIN entry
TWI391864B (zh) 臨界保全參數之產生及用於智慧卡記憶體模組的交換系統與方法
US7263608B2 (en) System and method for providing endorsement certificate
US20100174922A1 (en) Encryption bridge system and method of operation thereof
CN109075965B (zh) 使用口令码验证的前向安全密码技术的方法、系统和装置
JP2008544710A (ja) 暗号化を実現する方法及び装置
JP2010211515A (ja) 情報記憶媒体、認証用データ生成方法、及び媒体認証システム
EP1846830A2 (en) Access keys
US20090158049A1 (en) Building a security access system
US11405202B2 (en) Key processing method and apparatus
US9003197B2 (en) Methods, apparatus and system for authenticating a programmable hardware device and for authenticating commands received in the programmable hardware device from a secure processor
KR20070059891A (ko) 어플리케이션 인증 보안 시스템 및 그 인증 보안 방법
KR102519828B1 (ko) 회로 칩 및 그 동작 방법
CN107967432B (zh) 一种安全存储装置、系统及方法
CN1889420B (zh) 一种实现加密的方法
JP6069120B2 (ja) 情報処理システム
CN113508380A (zh) 用于终端实体认证的方法
Adithya et al. Advanced Encryption Standard Crypto Block Verification Utility
Token Security Policy

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: 20120530

Termination date: 20180923