CN109388953B - 安全设备、电子设备和操作电子设备的方法 - Google Patents

安全设备、电子设备和操作电子设备的方法 Download PDF

Info

Publication number
CN109388953B
CN109388953B CN201810851268.4A CN201810851268A CN109388953B CN 109388953 B CN109388953 B CN 109388953B CN 201810851268 A CN201810851268 A CN 201810851268A CN 109388953 B CN109388953 B CN 109388953B
Authority
CN
China
Prior art keywords
secure
encrypted
secure data
hash value
data
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.)
Active
Application number
CN201810851268.4A
Other languages
English (en)
Other versions
CN109388953A (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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics 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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN109388953A publication Critical patent/CN109388953A/zh
Application granted granted Critical
Publication of CN109388953B publication Critical patent/CN109388953B/zh
Active 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/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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
    • 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/602Providing cryptographic facilities or services
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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/3271Cryptographic 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 challenge-response
    • H04L9/3278Cryptographic 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 challenge-response using physically unclonable functions [PUF]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Power Engineering (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)

Abstract

安全设备包括安全处理器、邮箱、密码知识产权(IP)、安全直接存储器访问(DMA)电路和内部存储器。安全处理器提供隔离的执行环境。邮箱将来自CPU的请求传送到安全处理器。密码IP在隔离的执行环境中对安全数据执行包括以下各项的一个或多个安全操作:签名认证操作、加密/解密操作和完整性验证操作,而无需CPU的干预。安全DMA电路在隔离的执行环境中控制一个或多个安全操作,其中仅安全处理器被配置为控制安全DMA电路。内部存储器存储安全数据,其中对所述安全数据执行一个或多个安全操作。密码IP包括被配置为控制对外部存储设备的数据访问的DMA电路。

Description

安全设备、电子设备和操作电子设备的方法
相关申请的交叉引用
本申请要求于2017年8月2日向韩国知识产权局提交的韩国专利申请No.10-2017-0098249和于2017年11月15日向韩国知识产权局提交的韩国专利申请No.10-2017-0151967的优先权,所述申请的公开内容通过全文引用合并于此。
技术领域
本公开涉及数据安全,更具体地,涉及安全设备、包括所述安全设备的电子设备以及操作电子设备的方法。
背景技术
近来,诸如移动设备的电子设备使用诸如个人信息、密码密钥等的敏感数据来执行各种类型的操作。
电子设备可以在包括待机模式、睡眠模式和断电模式的低功率模式下操作,这降低了功耗。在进入和退出低功率模式时,分别备份和恢复敏感数据是非常重要的(和/或期望的)。然而,用于备份和恢复敏感数据的已知技术可能需要相当长的时间来执行,这可能会显著地降低性能(特别是对于频繁进入和离开低功率模式的电子设备,例如具有有限处理和/或存储资源的资源受限的移动设备)。此外,这些用于备份和恢复敏感数据的已知技术可能是固有不安全的,其可能冒着破坏敏感数据和/或损坏电子设备本身(特别是对于需要中央处理单元(CPU)的干预以执行一个或多个安全操作的电子设备)的风险。因此,需要(和/或期望)用于结合由电子设备使用的敏感数据执行安全备份操作和安全恢复操作的改进技术,以提供增强的性能、效率和/或安全性。
发明内容
根据一些示例实施例,在电子设备中包括的安全设备包括安全处理器、邮箱、密码知识产权(IP)、安全直接存储器访问(DMA)电路和内部存储器。安全处理器提供隔离的执行环境,电子设备的中央处理单元(CPU)不干预该隔离的执行环境。邮箱将从CPU接收到的请求传送到安全处理器。密码IP通过内部总线耦接到安全处理器,并在隔离的执行环境中执行包括以下各项的一个或多个安全操作:对安全数据执行签名认证操作、对安全数据执行加密/解密操作以及对安全数据执行完整性验证操作。安全DMA电路耦接到内部总线,并且安全DMA电路在隔离的执行环境中控制一个或多个安全操作。只有安全处理器被配置为控制安全DMA电路。内部存储器耦接到内部总线,并且内部存储器存储对其执行一个或多个安全操作的安全数据。密码IP包括被配置为控制对外部存储设备的数据访问的DMA电路。
根据一些示例实施例,电子设备包括中央处理单元(CPU)、安全设备和外部存储设备。安全设备从CPU接收请求,并在CPU不干预的隔离的执行环境中执行该请求。外部存储设备与安全设备相连。安全设备包括安全处理器、邮箱、密码知识产权(IP)、安全直接存储器访问(DMA)电路和内部存储器。安全处理器提供隔离的执行环境。邮箱将从CPU接收到的请求传送到安全处理器。密码IP通过内部总线耦接到安全处理器,并在隔离的执行环境中执行包括以下各项的一个或多个安全操作:对安全数据执行签名认证操作、对安全数据执行加密/解密操作以及对安全数据执行完整性验证操作。安全DMA电路耦接到内部总线,并且在隔离的执行环境中控制一个或多个安全操作。只有安全处理器被配置为控制安全DMA电路。内部存储器耦接到内部总线,并且存储对其执行一个或多个安全操作的安全数据。密码IP包括被配置为控制对外部存储设备的数据访问的DMA电路。
根据一些示例实施例,一种操作电子设备的方法,所述电子设备包括中央处理单元(CPU)和安全设备,所述安全设备用于从所述CPU接收请求,并在所述CPU不干预的隔离的执行环境中执行所述请求,所述方法包括:对电子设备通电;在安全设备的密码知识产权(IP)中对固件图像执行签名认证操作,以将安全数据存储在安全设备的内部存储器中;确定电子设备是否进入低功率模式;在隔离的执行环境中,响应于确定电子设备进入低功率模式,在密码IP中执行安全备份操作以使用电子设备的硬件唯一密钥对安全数据进行加密,从而产生经加密的安全数据,并将经加密的安全数据存储在与安全设备相连的外部存储设备中,而无需CPU的干预;以及在隔离的执行环境中,响应于从CPU接收到唤醒请求,在密码IP中执行安全恢复操作以使用硬件唯一密钥对存储在外部存储设备中的经加密的安全数据进行解密,从而产生经解密的安全数据,并将经解密的安全数据存储在内部存储器中,而无需CPU的干预。
根据一些示例实施例的安全设备可以在隔离的执行环境中执行安全备份操作,以对包括经签名认证的固件图像和/或敏感数据的安全数据进行加密以生成经加密的安全数据;对安全数据执行散列操作以生成第一散列值;对第一散列值进行加密以生成经加密的第一散列值,并将经加密的安全数据和经加密的第一散列值存储在外部非易失性存储器中,而无需CPU的干预。根据一些示例实施例的安全设备可以在隔离的执行环境中执行安全恢复操作,以对存储在外部非易失性存储设备中的经加密的安全数据和经加密的第一散列值进行解密,从而生成经解密的安全数据和经解密的第一散列值;对经解密的安全数据执行散列操作以生成第二散列值;以及通过将经解密的第一散列值与第二散列值进行比较,对经解密的安全数据执行完整性验证操作,而无需CPU的干预。这样,根据一些示例实施例的安全设备可以安全地使用安全数据,而不需要为了热启动而执行(例如,由CPU执行)额外的签名认证操作,这显著地增强了包括安全设备在内的电子设备的性能、效率和安全性。
附图说明
下面将参考附图更详细地描述一些示例实施例。
图1是示出了根据一些示例实施例的电子设备的框图。
图2是示出了根据一些示例实施例的图1的电子设备中的外部存储设备的示例的框图。
图3是示出了根据一些示例实施例的图1的安全设备中的安全DMA电路的示例的框图。
图4是示出了根据一些示例实施例的图1的安全设备中的密码IP的示例的框图。
图5示出了根据一些示例实施例的图4的密码IP中的安全DMA电路的示例。
图6是示出了根据一些示例实施例的图1的安全设备中的安全处理器的示例的框图。
图7是示出了图1中的安全设备执行签名认证操作的流程图。
图8示出了当图1中的安全设备执行签名认证操作时图5中的DMA电路的连接关系。
图9是示出了图1中的安全设备执行安全备份操作的流程图。
图10示出了当图1中的安全设备执行安全备份操作时图5中的DMA电路的连接关系。
图11是示出了图1中的安全设备执行安全恢复操作的流程图。
图12示出了当图1中的安全设备执行安全恢复操作时图5中的DMA电路的连接关系。
图13示出了根据一些示例实施例的安全设备执行数据交换操作。
图14是示出了根据一些示例实施例的操作电子设备的方法的流程图。
图15是示出了根据一些示例实施例的移动系统900的框图。
具体实施方式
下面将参照附图更全面地描述各种示例实施例,在附图中示出了一些示例实施例。
图1是示出了根据一些示例实施例的电子设备的框图。
参考图1,电子设备10包括中央处理单元(CPU)50、安全设备100、第一子系统90、第二子系统95、外部存储设备60、缓冲存储器70和/或外围知识产权(IP)80。安全设备100可以被称为安全子系统。
CPU 50可以通过第一系统总线20耦接到安全设备100、第一子系统90和第二子系统95。安全设备100、第一子系统90和第二子系统95可以通过第二系统总线30耦接到外部存储设备60、缓冲存储器70和外围IP 80。
CPU 50可以控制第一子系统90和第二子系统95执行各自的功能。安全设备100、第一子系统90和第二子系统95可以共同使用外部存储设备60、缓冲存储器70和外围IP 80。
电子设备10可以通过安全设备100与外部存储设备60相耦接。电子设备10或安全设备100还可以包括具有一次性可编程(OTP)功能/物理不可克隆功能(PUF)的不可克隆的存储设备150。不可克隆的存储设备150可以存储电子设备10的硬件唯一密钥(HUK)。例如,电子设备10可以是片上系统(SoC)或移动设备。
CPU 50和安全设备100可以通过第一系统总线20彼此相耦接并且可以彼此通信。
CPU 50可以处理数据和/或执行在缓冲存储器70和/或外部存储设备60中存储的程序。CPU 50可以实现为多核处理器。多核处理器是具有两个或更多个独立的实际处理器(称为核)的单个计算组件。每个处理器可以读取并执行程序指令。多核处理器可以一次驱动多个加速器,因此包括多核处理器在内的数据处理系统可以执行多重加速。
外部存储设备60可以包括存储器控制器(例如,图2的存储器控制器61,图1中未示出),以向安全设备100发送/从安全设备100接收数据。例如,外部存储设备60可以是非易失性存储设备,例如通用串行总线(USB)存储器、通用闪存(UFS)和固态驱动器(SSD)。
如上所述,安全设备100可以被称为安全子系统。
安全设备100可以包括邮箱110、内部存储器120、只读存储器(ROM)130、安全直接存储器访问(DMA)电路140、安全处理器200和/或密码知识产权(IP)300。邮箱110、内部存储器120、ROM 130、安全DMA电路140、安全处理器200和密码IP 300可以通过内部总线40彼此连接。根据一些示例实施例,可以经由各种硬件组件和/或硬件与在存储介质中存储的软件的组合来实现邮箱110、安全DMA电路140、安全处理器200和/或密码IP 300中的一个或多个。例如,可以使用处理电路来实现硬件,所述处理电路例如但不限于:一个或多个处理器、一个或多个控制器、一个或多个算术逻辑单元(ALU)、一个或多个数字信号处理器(DSP)、一个或多个微计算机、一个或多个现场可编程门阵列(FPGA)、一个或多个片上系统(SoC)、一个或多个可编程逻辑单元(PLU)、一个或多个微处理器、一个或多个专用集成电路(ASIC)或能够被定制到专用处理电路中和/或被配置为以定义的方式对指令进行响应和执行指令的任何其他设备。
当安全处理器200执行安全操作时,安全处理器200可以提供CPU 50不能干预的隔离的执行环境。因此,安全处理器200可以安全且独立于CPU 50执行一个或多个安全操作。
邮箱110可以将从CPU 50接收到的请求传送到安全处理器200。CPU 50不能在隔离的执行环境中干预安全处理器200的一个或多个安全操作,并且可以在隔离的执行环境中仅通过邮箱110将该请求传送到安全处理器200。
根据一些示例实施例,ROM 130可以存储要由安全处理器200执行以便控制和/或配置安全设备100的一个或多个组件执行一个或多个安全操作的代码。例如,安全处理器200可以执行在ROM 130中存储的代码,以控制和/或配置安全DMA电路140(和/或其组件)和/或密码IP 300(和/或其组件),如下面详细讨论的。例如,ROM 130可以由可擦除可编程ROM(EPROM)或电可擦除可编程ROM(EEPROM)来实现。软件可以包括计算机程序、程序代码、指令或者其组合,以便独立地或者统一地指示或者配置硬件设备按照需要操作。计算机程序和/或程序代码可以包括能够由一个或多个硬件设备(诸如,以上提到的并在下面进一步详细描述的硬件设备中的一个或多个)执行的程序或计算机可读指令、软件组件、软件模块、数据文件、数据结构等。根据一些示例实施例,程序代码的示例包括由编译器产生的机器代码和使用解释器执行的更高级别的程序代码两者。
内部存储器120可以存储与安全处理器200的一个或多个安全操作相关联的敏感数据和/或固件。例如,内部存储器120可以包括易失性存储设备,诸如动态随机存取存储器(DRAM)和静态随机存取存储器(SRAM)。
密码IP 300可以在隔离的执行环境中执行包括以下各项的一个或多个安全操作:签名认证操作、加密/解密操作和完整性验证操作,而无需CPU 50的干预。密码IP 300可以响应于从CPU 50接收到的请求,在安全处理器200的控制下执行这些安全操作中的至少一个。
电子设备10的任何组件(包括安全设备100)都不能更改硬件唯一密钥HUK。硬件唯一密钥HUK可以仅由不可克隆的存储设备150提供给密码IP 300,并且不能被电子设备10的任何其他组件访问。
安全DMA电路140可以用于对安全数据执行安全备份操作和安全恢复操作,安全数据包括安全设备100在隔离的执行环境中使用的代码(例如,固件图像)和/或敏感数据。
只有安全处理器200可以访问安全DMA电路140以控制安全DMA电路140,并且可以控制与安全备份操作和安全恢复操作相关联的设置配置。
图2是示出了根据一些示例实施例的图1的电子设备中的外部存储设备的示例的框图。
参考图2,外部存储设备60可以包括存储器控制器61和/或存储设备63。
参考图2,存储器控制器61可以连接到密码IP 300中的DMA电路(例如,图4至图5中的DMA电路400,图2中未示出),并且可以在存储设备63中存储从密码IP 300接收的经加密的安全数据。此外,存储器控制器61可以通过DMA电路(例如,DMA电路400)向密码IP 300提供在存储设备63中存储的经加密的安全数据。
存储设备63例如可以是非易失性存储设备,例如NAND闪存设备。
图3是示出了根据一些示例实施例的图1的安全设备中的安全DMA电路的示例的框图。
参考图3,安全DMA电路140可以包括有限状态机(FSM)141、散列寄存器142、控制寄存器单元170、接收缓冲器181和/或发送缓冲器182。例如,安全DMA电路140可以根据由安全处理器200设置的控制和/或配置来控制和/或配置其一个或多个组件(例如,包括但不限于控制寄存器单元170和/或长度控制逻辑174,如下文所讨论的)。根据一些示例实施例,可以经由硬件组件和/或硬件以及在存储介质中存储的软件的组合来实现控制寄存器单元170和/或其组件(例如,包括但不限于长度控制逻辑174,如下文所讨论的)。例如,可以使用处理电路来实现硬件,所述处理电路例如但不限于一个或多个处理器、控制器、ALU、DSP、微型计算机、FPGA、SoC、PLU、微处理器、ASIC或能够被定制到专用处理电路中和/或被配置为以定义的方式对指令进行响应并执行指令的任何其他设备。
控制寄存器单元170可以包括接收(RX)地址寄存器171、发送(TX)地址寄存器172、长度寄存器173和/或长度控制逻辑174。
长度控制逻辑174可以从安全处理器200接收散列类型信息HTYPE,并且可以根据由散列类型信息HTYPE指定的散列模式,分别设置接收(RX)地址寄存器171、发送(TX)地址寄存器172和长度寄存器173的配置。
分别地,接收(RX)地址寄存器171可以根据由长度控制逻辑174设置的配置来存储接收地址,发送(TX)地址寄存器172可以根据由长度控制逻辑174设置的配置来存储发送地址,并且长度寄存器173可以根据由长度控制逻辑174设置的配置来存储与在接收(RX)地址寄存器171和发送(TX)地址寄存器172中存储的地址相关联的数据的长度信息。
接收缓冲器181可以暂时存储接收地址,且发送缓冲器182可以暂时存储发送地址。
FSM 141可以指定安全设备100的操作状态,且散列寄存器142可以存储从密码IP300接收到的散列值HV。
例如,散列类型信息HTYPE可以指定与以下安全散列算法之一相对应的散列操作:SHA-1、SHA-256、SHA-384和SHA-512。当密码IP 300使用SHA-1时,散列值HV可以具有160比特的大小。当密码IP 300使用SHA-256时,散列值HV可以具有256比特的大小。当密码IP 300使用SHA-384时,散列值HV可以具有384比特的大小。当密码IP 300使用SHA-512时,散列值HV可以具有512比特的大小。因此,根据散列类型信息HTYPE,在密码IP 300中使用的散列值HV可以具有预定的(和/或期望的)大小。
因此,长度控制逻辑174可以基于从安全处理器200接收的散列类型信息HTYPE来设置通过对安全数据执行的散列操作得到的散列值HV的长度。以这种方式,可以通过使得能够根据需要的(和/或期望的)安全级别和/或可用存储器容量来配置各种不同的安全散列算法和对应的散列值长度,提供灵活的密码架构,这可能对于例如资源受限的电子设备(例如,具有有限的处理资源和/或存储资源的移动设备)是特别有利的。
图4是示出了根据一些示例实施例的图1的安全设备中的密码IP的示例的框图。
参考图4,密码IP 300可以包括公钥加速器310、随机数发生器320、密钥管理器330、块密码引擎340、散列引擎350和/或DMA电路400。例如,密码IP 300可以根据由安全处理器200设置的控制和/或配置来控制和/或配置其一个或多个组件。根据一些示例实施例,可以通过硬件组件和/或硬件与在存储介质中存储的软件的组合来实现公钥加速器310、随机数发生器320、密钥管理器330、块密码引擎340、散列引擎350、DMA电路400和/或其组件中的一个或多个。例如,可以使用处理电路来实现硬件,所述处理电路例如但不限于一个或多个处理器、控制器、ALU、DSP、微型计算机、FPGA、SoC、PLU、微处理器、ASIC或能够被定制到专用处理电路中和/或被配置为以定义的方式对指令进行响应并执行指令的任何其他设备。
公钥加速器310、随机数发生器320、块密码引擎340、散列引擎350和DMA电路400可以通过内部总线305彼此连接。密钥管理器330仅连接到块密码引擎340和图1的不可克隆的存储设备150(在图4中未示出)。
公钥加速器310可以通过使用密钥值和由随机数发生器320生成的随机数来对包括要认证(或证实)的固件图像和/或敏感数据在内的安全数据执行签名认证操作。固件图像可以从外部源提供给公钥加速器310。
随机数发生器320可以产生随机数并且可以将随机数提供给公钥加速器310。
密钥管理器330可以向块密码引擎340提供在不可克隆的存储设备150中存储的硬件唯一密钥HUK。块密码引擎340可以对安全数据执行加密操作以生成经加密的安全数据,并且可以使用硬件唯一密钥HUK对经加密的安全数据执行解密以生成经解密的安全数据。
例如,块密码引擎340可以通过使用用于以块为单位执行加密和解密的块密码算法,来执行加密操作和解密操作。也就是说,可以逐块地执行加密和解密。例如,块密码引擎340可以通过使用诸如数据加密标准(DES)、3DES、高级加密标准(AES)或SEED的块密码算法来执行加密和解密。
散列引擎350可以从安全处理器200接收散列类型信息HTYPE,并且可以对块密码引擎340的输出执行与散列类型信息HTYPE相对应的散列操作以生成散列值HV。因此,散列值HV可以具有与散列类型信息HTYPE相对应的预定(和/或期望)数据大小。散列引擎350的散列算法是用于将具有随机长度的输入值转换为具有固定长度的输出值的函数。这里,散列引擎350的输出值是与安全数据相对应的散列值。
DMA电路400可以将块密码引擎340的输出提供给外部存储设备60(例如,在安全备份操作期间),和/或可以将来自外部存储设备60的数据提供给块密码引擎340和/或散列引擎350(例如,在安全恢复操作期间)。DMA电路400可以控制对外部存储设备60的数据访问。
图5示出了根据一些示例实施例的图4的密码IP中的安全DMA电路的示例。
在图5中,为了便于说明,用DMA电路400示出了内部存储器120、公钥加速器310、随机数发生器320、块密码引擎340、散列引擎350和外部存储设备60。
参考图5,DMA电路400可以包括存储器接口410和/或开关电路420。
存储器接口410可以连接到外部存储设备60,并且开关电路420可以包括例如多个开关SW1~SW6。然而,根据一些其他示例实施例,多个开关SW1~SW6将被解释为非限制性示例,并且可以根据需要提供更少或更多数量的开关。
开关电路420可以响应于从安全处理器200接收到开关控制信号SCS,将内部存储器120、公钥加速器310、随机数发生器320、块密码引擎340、散列引擎350和存储器接口410中的一些(例如,子集)彼此连接。也就是说,安全设备100可以通过使用从安全处理器200接收到的开关控制信号SCS来设置DMA电路400的配置,以设置内部存储器120、公钥加速器310、随机数发生器320、块密码引擎340、散列引擎350和存储器接口410之间的连接路径。例如,可以根据是执行安全备份操作还是安全恢复操作,在开关电路420的多个开关SW1~SW6之间设置不同的连接路径。虽然下面(例如,结合图7至图12)讨论了多个开关SW1~SW6之间的连接路径的一些示例,但是这样的示例将被解释为非限制性的,并且本领域普通技术人员将认识到,多个开关SW1~SW6之间的连接路径的各种其他配置是可能的。
图6是示出了根据一些示例实施例的图1的安全设备中的安全处理器的示例的框图。
参考图6,安全处理器200可以包括控制电路210、比较器220和/或中断发生器230。在一些示例实施例中,安全处理器200还可以包括配置表240。例如,安全处理器200可以控制和/或配置其一个或多个组件。根据一些示例实施例,可以经由硬件组件和/或硬件与在存储介质中存储的软件的组合来实现控制电路210、比较器220和/或中断发生器230。例如,可以使用处理电路来实现硬件,所述处理电路例如但不限于一个或多个处理器、控制器、ALU、DSP、微型计算机、FPGA、SoC、PLU、微处理器、ASIC或能够被定制到专用处理电路中和/或被配置为以定义的方式对指令进行响应并执行指令的任何其他设备。
控制电路210可以经由邮箱110从CPU 50接收请求REQ,并且可以生成与由请求REQ指定的安全操作相对应的开关控制信号SCS和散列类型信息HTYPE。控制电路210可以将开关控制信号SCS提供给图5中的开关电路420,并且可以将散列类型信息HTYPE分别提供给图3中的长度控制逻辑174和图4中的散列引擎350。
另外,控制电路210可以从安全DMA电路140接收与安全数据在内部存储器120中存储的存储器位置相关联的起始地址SADDR和长度信息LENG,并且可以将起始地址SADDR和长度信息LENG存储在配置表240中。
比较器220可以将第一散列值HV1和第二散列值HV2进行比较,以生成对存储在外部存储设备60中的安全数据的完整性加以指示的比较信号CMP。可以在安全备份操作期间生成第一散列值HV1,并且可以在安全恢复操作期间生成第二散列值HV2。中断发生器230可以从比较器220接收比较信号CMP,可以基于比较信号CMP的逻辑电平产生中断信号ITR,并且可以向CPU 50提供对在外部存储设备60中存储的安全数据的完整性加以指示的中断信号ITR。
例如,当第一散列值HV1与第二散列值HV2相同时,比较器220可以产生具有第一逻辑电平(逻辑高电平)的第一比较信号CMP。响应于从比较器220接收到具有第一逻辑电平(逻辑高电平)的第一比较信号CMP,中断发生器230可以产生对第一散列值HV1与第二散列值HV2相同加以指示的第一中断信号ITR。中断发生器230可以向CPU 50提供第一中断信号ITR,以指示安全数据通过完整性验证操作。当CPU 50从中断发生器230接收到第一中断信号ITR时,CPU 50可以确定在外部存储设备60中存储的安全数据没有由于外部攻击而改变,并且安全处理器200可以通过使用经完整性验证的安全数据来执行安全应用。
例如,当第一散列值HV1与第二散列值HV2不同时,比较器220可以产生具有第二逻辑电平(逻辑低电平)的第二比较信号CMP。响应于从比较器220接收到具有第二逻辑电平(逻辑低电平)的第二比较信号CMP,中断发生器230可以产生对第一散列值HV1与第二散列值HV2不同加以指示的第二中断信号ITR。中断发生器230可以向CPU 50提供第二中断信号ITR,以指示安全数据没有通过完整性验证操作。当CPU 50从中断发生器230接收到第二中断信号ITR时,CPU 50可以确定在外部存储设备60中存储的安全数据由于外部攻击而改变,并且可以采用适当的对策以删除在外部存储设备60中存储的安全数据和/或向用户通知外部攻击。尽管以上结合安全数据通过完整性验证操作描述了逻辑高电平(例如,当HV1和HV2彼此匹配时,逻辑电平=1)且以上结合安全数据没有通过完整性验证操作描述了逻辑低电平(例如,当HV1和H V2彼此不匹配时,逻辑电平=0),但是本领域普通技术人员将认识到,根据一些其他示例实施例,相反的配置也是可能的。也就是说,根据一些其他示例实施例,当HV1和HV2匹配时,比较信号CMP可以具有逻辑低电平(=0),并且当HV1和HV2不匹配时,比较信号CMP可以具有逻辑高电平(=1)。
图7是示出了图1中的安全设备执行签名认证操作的流程图。图8示出了当图1中的安全设备执行签名认证操作时图5中的DMA电路的连接关系。
参考图1至图8,在向电子设备10供电的通电的情况下,或者在当在电子设备10中更新固件时要对固件图像执行签名认证操作(或签名证实)的情况下,CPU 50通过邮箱110向安全处理器200提供指定签名认证操作的第一请求REQ1(例如,请求安全启动操作)(S210)。
响应于从CPU 50接收到第一请求REQ1,安全处理器200向开关电路420提供第一开关控制信号SCS1。
安全处理器200控制公钥加速器310对从外部源接收的固件图像FW_IMF执行签名认证操作(S220)。公钥加速器310可以基于固件图像FW_IMG生成散列值,并且可以通过使用该散列值和与固件图像FW_IMG相关联的签名SGN来执行签名认证操作。也可以从外部源接收签名SGN。
公钥加速器310可以向开关电路420提供经签名认证的固件图像FW_IMG,并且开关电路420中的开关SW6将经签名认证的固件图像FW_IMG传送到安全DMA电路140(S230)。
在操作S230中,安全DMA电路140可以将经签名认证的固件图像FW_IMG作为安全数据SDTA存储在内部存储器120中的第一区域121中。内部存储器120中的第一区域121可以具有第一起始地址SADDR1和第一长度信思LENG1。
安全DMA电路140可以向安全处理器200提供内部存储器120中的第一区域121的第一起始地址SADDR1和第一长度信息LENG1,并且安全处理器200的控制电路210可以在配置表240中存储内部存储器120中的第一区域121的第一起始地址SADDR1和第一长度信息LENG1。因此,安全处理器200可以在配置表240中存储在内部存储器120中存储的安全数据SDTA的大小信息和地址信息。
安全处理器200可以在隔离的执行环境中基于在内部存储器120中存储的安全数据SDTA(例如,经签名认证的固件图像FW_IMG)来执行安全应用,而不需要CPU 50的干预且独立于CPU 50(S240)。以这种方式,可以通过执行安全启动操作(包括执行签名认证操作)以从密码学上验证正在加载和执行的代码是可靠的并且没有无意中和/或恶意地被修改,来提供包括嵌入式安全设备100在内的电子设备10的增强安全性,这确保了例如安全处理器200被初始化为已知状态和/或执行来自可信外部源的代码。
图9是示出了图1中的安全设备执行安全备份操作的流程图。图10示出了当图1中的安全设备执行安全备份操作时图5中的DMA电路的连接关系。
参考图1至图6、图9和图10,在电子设备10要进入诸如待机模式或睡眠模式的低功率模式的情况下,当安全设备100的安全处理器200在隔离的执行环境中执行安全应用时,CPU 50通过邮箱110向安全处理器200提供指定安全数据SDTA的安全备份操作的第二请求REQ2(S310)。
当安全处理器200从CPU 50接收到第二请求REQ2时,安全处理器200控制密钥管理器330从不可克隆的存储设备150获取硬件唯一密钥HUK,并将硬件唯一密钥HUK设置为用于安全备份操作的加密密钥(S320)。
安全处理器200控制密钥管理器330将硬件唯一密钥HUK提供给块密码引擎340,以设置块密码引擎340的配置(S330)。
安全处理器200将散列类型信息HTYPE提供给散列引擎350以设置散列引擎350的配置(S340)。散列引擎350从安全处理器200接收散列类型信息HTYPE,并且选择多个安全散列算法(例如,SHA-1、SHA-256、SHA-384或SHA-512)中与散列类型信息HTYPE相对应的安全散列算法。
响应于从CPU 50接收到第二请求REQ2,安全处理器200向开关电路420提供第二开关控制信号SCS2,以设置DMA电路400的配置(S350)。安全处理器200还将散列类型信息HTYPE提供给安全DMA电路140,以设置安全DMA电路140的配置(S350)。
例如,响应于开关电路420从安全处理器200接收到第二开关控制信号SCS2,开关SW1将内部存储器120连接到块密码引擎340,开关SW3将内部存储器120连接到散列引擎350,且开关SW2和SW4将块密码引擎340连接到存储器接口410。因此,安全处理器200根据第二开关控制信号SCS2控制DMA电路400的开关电路420以设置多个开关SW1~SW6之间的连接路径以进行安全备份操作。
安全处理器200控制安全DMA电路140将在内部存储器120的第一区域121中存储的安全数据SDTA提供给DMA电路400的开关电路420(S360)。
例如,开关电路420中的开关SW1从安全DMA电路140接收存储在内部存储器120中的安全数据SDTA,并将安全数据SDTA传送到块密码引擎340。开关SW3还从安全DMA电路140接收存储在内部存储器120中的安全数据SDTA,并将安全数据SDTA传送到散列引擎350,并且开关SW1并行地将安全数据SDTA传送到块密码引擎340。块密码引擎340通过使用硬件唯一密钥HUK对从开关SW1接收到的安全数据SDTA执行加密操作以生成经加密的安全数据SDTA_ECR,并且通过开关SW2和SW4将经加密的安全数据SDTA_ECR提供给存储器接口410。
DMA电路400的存储器接口410从安全处理器200接收与安全数据SDTA相关联的第一起始地址SADDR1和第一长度信息LENG1(例如,被存储在配置表240中)。存储器接口410向外部存储设备60提供第一起始地址SADDR1、第一长度信息LENGl和经加密的安全数据SDTA_ECR(S370)。外部存储设备60的存储器控制器61基于第一起始地址SADDR1和第一长度信息LENG1确定经加密的安全数据SDTA_ECR的大小,并且将经加密的安全数据SDTA_ECR从密码学的角度安全地存储在存储设备63中的第一区域631内。存储设备63的第一区域631可以具有第二起始地址SADDR2和第二长度信息LENG2。安全处理器200的控制电路210还可以将第二起始地址SADDR2和第二长度信息LENG2存储在配置表240中。
与块密码引擎340对从开关SW1接收到的安全数据SDTA执行加密操作并行地,散列引擎350对从开关SW3接收到的安全数据SDTA执行与从安全处理器200接收到的散列类型信息HTYPE相对应的散列操作以生成第一散列值HV1(S380)。散列引擎350通过安全DMA电路140向块密码引擎340提供第一散列值HV1。安全DMA电路140将第一散列值HV1存储在散列寄存器142中。
例如,块密码引擎340通过安全DMA电路140从散列引擎350接收第一散列值HV1,通过使用硬件唯一密钥HUK对第一散列值HV1执行加密操作以生成经加密的第一散列值HV1_ECR,并通过开关SW2和SW4向存储器接口410提供经加密的第一散列值HV1_ECR。
存储器接口410将经加密的第一散列值HV1_ECR提供给外部存储设备60,且外部存储设备60可以将经加密的第一散列值HV1_ECR存储在存储设备63的第二区域633中(S390)。例如,存储设备63的第二区域633和第一区域631可以具有连续的地址。
在这种情况下,安全处理器200设置DMA电路400的配置和外部存储设备60的起始地址,在该外部存储设备中将存储经加密的安全数据SDTA_ECR,并且安全设备100的硬件(例如,安全DMA电路140、密码IP 300、DMA电路400和/或其组件)在隔离的执行环境中自动地执行一个或多个其他安全操作,而无需CPU 50的干预。以这种方式,可以例如通过执行安全备份操作来提供包括嵌入式安全设备100在内的电子设备10的增强安全性,这可以防止或降低在进入低功率模式时和/或在低功率模式期间安全数据丢失和/或破坏的风险。
图11是示出了图1中的安全设备执行安全恢复操作的流程图。图12示出了当图1中的安全设备执行安全恢复操作时图5中的DMA电路的连接关系。
参考图1至图6、图11和图12,当在安全设备100在低功率模式下操作期间电子设备10要从低功率模式(例如,待机模式或睡眠模式)退出时,CPU 50接收唤醒请求并经过邮箱110将指定安全恢复操作的第三请求REQ3提供给安全处理器200(S410)。
当安全处理器200从CPU 50接收到第三请求REQ3时,安全处理器200控制密钥管理器330从不可克隆的存储设备150获取硬件唯一密钥HUK,并将硬件唯一密钥HUK设置为用于安全恢复操作的加密密钥(S420)。也就是说,安全处理器200控制密钥管理器330,使得用于安全备份操作的相同硬件唯一密钥HUK也用于安全恢复操作。
安全处理器200控制密钥管理器330将硬件唯一密钥HUK提供给块密码引擎340,以设置块密码引擎340的配置(S430)。
安全处理器200将散列类型信息HTYPE提供给散列引擎350以设置散列引擎350的配置(S440)。散列引擎350从安全处理器200接收散列类型信息HTYPE,并且选择多个安全散列算法(例如,SHA-1、SHA-256、SHA-384或SHA-512)中与散列类型信息HTYPE相对应的安全散列算法。也就是说,安全处理器200控制散列引擎350,使得用于安全备份操作的相同安全散列算法也用于安全恢复操作。
响应于从CPU 50接收到第三请求REQ3,安全处理器200向开关电路420提供第三开关控制信号SCS3,以设置DMA电路400的配置(S450)。安全处理器200还将散列类型信息HTYPE提供给安全DMA电路140,以设置安全DMA电路140的配置(S450)。
例如,响应于开关电路420从安全处理器200接收到第三开关控制信号SCS3,开关SW5和SW1将存储器接口410与块密码引擎340相连,开关SW2将块密码引擎340与开关SW4和SW3相连,开关SW4连接到内部存储器120,且开关SW3连接到散列引擎350。因此,安全处理器200根据第三开关控制信号SCS3控制DMA电路400的开关电路420以设置多个开关SW1~SW6之间的连接路径以进行安全恢复操作。
安全处理器200控制DMA电路400以通过DMA电路400的开关电路420将在外部存储设备60的存储设备63的第一区域631中存储的经加密的安全数据SDTA_ECR和在外部存储设备60的存储设备63的第二区域633中存储的经加密的第一散列值HV1_ECR提供给块密码引擎340(S460)。
DMA电路400的存储器接口410从安全处理器200接收与经加密的安全数据SDTA_ECR相关联的第二起始地址SADDR2(例如,被存储在配置表240中),并向外部存储设备60提供第二起始地址SADDR2。外部存储设备60的存储器控制器61基于第二起始地址SADDR2从存储设备63的第一区域631获取经加密的安全数据SDTA_ECR并从存储设备63的第二区域633获取经加密的第一散列值HV1_ECR,并向存储器接口410提供经加密的安全数据SDTA_ECR和经加密的第一散列值HV1_ECR。例如,存储器接口410通过开关电路420的开关SW5和SW1向块密码引擎340提供经加密的安全数据SDTA_ECR和经加密的第一散列值HV1_ECR。
块密码引擎340通过使用硬件唯一密钥HUK对经加密的安全数据SDTA_ECR和经加密的第一散列值HV1_ECR执行解密操作以生成经解密的安全数据SDTA和经解密的第一散列值HV1,并将经解密的安全数据SDTA和经解密的第一散列值HV1输出到开关电路420。例如,安全DMA电路140通过开关电路420的开关SW2和SW4从块密码引擎340接收经解密的安全数据SDTA和经解密的第一散列值HV1,并将经解密的安全数据SDTA和经解密的第一散列值HV1存储在内部存储器120中(S470)。
散列引擎350通过开关电路420的开关SW2和SW3从块密码引擎340接收经解密的安全数据SDTA,例如,对经解密的安全数据SDTA执行与从安全处理器200接收的散列类型信息HTYPE相对应的散列操作,以生成第二散列值HV2,并将第二散列值SV2提供给安全DMA电路140。安全DMA电路140将第二散列值HV2存储在散列寄存器142中。
安全处理器200中的比较器220将经解密的第一散列值HV1和存储在安全DMA电路140的散列寄存器142中的第二散列值HV2进行比较,以对经解密的安全数据SDTA执行完整性验证操作(S480)。
例如,当经解密的第一散列值HV1与第二散列值HV2相同时,比较器220可以产生具有第一逻辑电平(逻辑高电平)的第一比较信号CMP。响应于从比较器220接收到具有第一逻辑电平(逻辑高电平)的第一比较信号CMP,中断发生器230可以产生对经解密的第一散列值HV1与第二散列值HV2相同加以指示的第一中断信号ITR。中断发生器230可以向CPU 50提供第一中断信号ITR,以指示经解密的安全数据SDTA通过完整性验证操作。当CPU 50从中断发生器230接收到第一中断信号ITR时,CPU 50可以确定在外部存储设备60中存储的经加密的安全数据SDTA_ECR没有由于外部攻击而改变,并且安全处理器200可以通过使用在内部存储器120中存储的经完整性验证的经解密的安全数据SDTA来执行安全应用。以这种方式,可以通过执行安全恢复操作来提供包括嵌入式安全设备100在内的电子设备10的增强性能、效率和安全性,从而使得安全处理器200能够安全地使用经完整性验证的经解密的安全数据SDTA(例如用于热启动),而不需要例如当从低功率模式唤醒时执行额外签名认证操作(例如,由CPU 50、安全设备100或其组件)。
例如,当经解密的第一散列值HV1与第二散列值HV2不同时,比较器220可以产生具有第二逻辑电平(逻辑低电平)的第二比较信号CMP。响应于从比较器220接收到具有第二逻辑电平(逻辑低电平)的第二比较信号CMP,中断发生器230可以产生对经解密的第一散列值HV1与第二散列值HV2不同加以指示的第二中断信号ITR。中断发生器230可以向CPU 50提供第二中断信号ITR,以指示经解密的安全数据SDTA没有通过完整性验证操作。当CPU 50从中断发生器230接收到第二中断信号ITR时,CPU 50可以确定在外部存储设备60中存储的经加密的安全数据SDTA_ECR由于外部攻击而改变,并且可以采用适当的对策以删除在外部存储设备60中存储的经加密的安全数据SDTA_ECR和/或向用户通知外部攻击。然而,如上面结合图6所讨论的那样,根据一些其它示例实施例,本领域技术人员将认识到,当经解密的第一散列值HV1和散列值HV2匹配时,比较信号CMP可以具有逻辑低电平(=0),且当经解密的第一散列值HV1和散列值HV2不匹配时,比较信号CMP可以具有逻辑高电平(=1)。
因此,由于电子设备10例如是移动设备或物联网设备(IoT),且电子设备10可以频繁地在低功率模式和唤醒之间切换以减少功耗,所以在安全设备100中使用的经完整性验证的安全数据可以被快速且安全地使用,而无需(例如,从外部源)重新加载安全数据或无需再次对安全数据执行另一签名认证操作。
当没有诸如使用各种硬件组件和/或电路(包括但不限于安全处理器200、安全DMA电路140和/或包括DMA电路400的密码IP)实现的用于在隔离的执行环境中执行安全备份操作和安全恢复操作的上述安全设备100等的嵌入式安全设备的传统电子设备要进入低功率模式时,传统电子设备在CPU的控制下将安全数据存储在外部存储设备中,并且通过CPU的干预对存储在外部存储设备中的安全数据进行签名认证以执行热启动。然而,例如需要由CPU执行的用于签名认证的密码处理和/或计算可能是复杂的、计算密集的并且相对耗时的。此外,例如,如果黑客能够控制和/或获得对CPU的访问并由此恶意地修改安全数据,则在传统电子设备内缺乏用于执行安全备份和恢复操作的隔离的执行环境可能导致不希望地暴露于安全风险。因此,与根据一些示例实施例的包括安全设备100的电子设备10相比,传统电子设备需要大量的处理资源和/或存储资源、功耗和时间来执行每次热启动,并且安全数据(诸如敏感数据或代码)和/或传统电子设备本身由于需要对安全数据执行CPU实现的签名认证以便热启动而较不安全。
然而,根据一些示例实施例,当在电子设备10进入低功率模式之前执行的安全备份操作期间,包括用硬件实现的安全设备100的电子设备10对安全数据SDTA执行加密操作和散列操作,并将经加密的安全数据SDTA_ECR和经加密的第一散列值HV1_ECR存储在存储设备63中。安全数据SDTA可以包括在隔离的执行环境中安全使用的固件图像或在隔离的执行环境中生成的敏感数据,而无需CPU 50的干预。
另外,在响应于退出低功率模式的唤醒请求而执行的安全恢复操作期间,根据一些示例实施例的安全设备100在隔离的执行环境中对存储在存储设备63中的经加密的安全数据SDTA_ECR和经加密的第一散列值HV1_ECR执行解密操作,以恢复经解密的安全数据SDTA和经解密的第一散列值HV1,而无需CPU 50的干预。安全设备100对经解密的安全数据SDTA执行散列运算以生成第二散列值HV2。安全设备100通过将经解密的第一散列值HV1与第二散列值HV2进行比较来对经解密的安全数据SDTA执行完整性验证操作以确定它们是否彼此匹配。
由于根据一些示例实施例的仅由硬件实现的安全设备100没有CPU 50干预地且独立于CPU 50地执行安全备份操作和安全恢复操作,并且不需要执行对经解密的安全数据SDTA执行附加的签名认证操作,因此相较于上述没有用于在隔离的执行环境中执行安全备份操作和安全恢复操作的嵌入式安全设备的传统电子设备,安全设备100可以显著地减少每次热启动所需的时间量。例如,可以通过上述用于经由安全处理器200、安全DMA电路140、密码IP 300、DMA电路400和/或其组件执行安全备份操作和安全恢复操作的上述技术来提供诸如对包括嵌入式安全设备100在内的电子设备10的计算设备的功能的改进(例如,包括但不限于安全数据和/或电子设备10本身的增强的安全性、提高的处理效率和/或速度、降低的处理资源和/或存储资源的消耗、降低的功耗等)。
电子设备10的启动可以被分类为冷启动和热启动。冷启动与热启动相对,其中在热启动中,为了电子设备10的安全性或快速启动,在电力始终流入电子设备10的主要部件的状态下驱动电子设备10。冷启动是指第一次打开电子设备10的功能、或者关闭电子设备10然后使用电源按钮再次打开电子设备10的功能。
图13示出了根据一些示例实施例的安全设备执行数据交换操作。
在图13中,假设从外部源提供的安全代码SCODE被存储在缓冲存储器70中,并且安全代码SCODE的大小大于内部存储器120的可用存储容量的大小。还假设安全代码SCODE在被存储在缓冲存储器70之前被加密。
安全代码SCODE可以被划分为多个加密段EC_SEG1~EC_SEGk,并且多个加密段EC_SEG1~EC_SEGk可以分别存储在缓冲存储器70中的多个区域741~74k中。例如,多个区域741~74k可以具有连续的地址。
当安全设备100需要使用经加密的安全代码SCODE时,密码IP 300可以执行数据交换操作以对多个加密段EC_SEG1~EC_SEGk中的每一个进行解密,以通过安全DMA电路140将解密段SEGi(例如,SEG_1)存储在内部存储器120的可用存储容量内,基于所存储的解密段SEGi(例如,SEG_1)执行对应应用,并用下一个解密段SEGi(例如,SEG_2)交换所存储的解密段SEGi(例如,SEG_1)。当密码IP 300执行数据交换操作时,可以在密码IP 300中对要与下一个解密段SEGi(例如,SEG_2)交换的前一个解密段SEGi(例如,SEG_1)进行加密,并且可以将加密段(例如,EC_SEG1)存储在缓冲存储器70中。
当安全设备100的密码IP 300执行数据交换操作时,图5的DMA电路400可以连接到缓冲存储器70。
上述数据交换操作可以应用于例如包括具有有限的数据存储容量的内部存储器的电子设备,例如移动设备或IoT设备。
图14是示出了根据一些示例实施例的操作电子设备的方法的流程图。
参考图1至图12和图14,在操作包括CPU 50和安全设备100在内的电子设备10以从CPU 50接收请求(例如,请求安全启动操作)并在CPU 50不干预的隔离的执行环境中执行该请求的方法中,向电子设备10供电以对电子设备10通电(S510)。
安全设备100的密码IP 300对固件图像执行签名认证操作,并且安全DMA电路140将经签名认证的固件图像作为安全数据SDTA存储在安全设备100的内部存储器120中(S520)。安全设备100中的安全处理器200基于安全数据SDTA执行安全应用(S530)。
CPU 50确定电子设备10是否进入低功率模式(S540)。当电子设备10未进入低功率模式时(S540中的“否”),处理返回到操作S530。
当电子设备10进入低功率模式时(S540中的“是”),密码IP 300执行安全备份操作以使用电子设备10的硬件唯一密钥HUK对安全数据SDTA进行加密从而产生经加密的安全数据SDTA_ECR,并且将经加密的安全数据SDTA_ECR存储在连接到安全设备100的外部存储设备60中,而无需CPU 50的干预(S550)。
当密码IP 300从CPU 50接收到唤醒请求时(S560),密码IP 300响应于该唤醒请求而执行安全恢复操作以使用硬件唯一密钥HUK对存储在外部存储设备60中的经加密的安全数据SDTA_ECR进行解密,从而生成经解密的安全数据SDTA,并且通过安全DMA电路140将经解密的安全数据SDTA存储在内部存储器120中,而无需CPU 50的干预(S570)。
当密码IP 300执行安全备份操作时,密码IP 300还对安全数据SDTA执行散列操作以生成第一散列值HV1,使用硬件唯一密钥HUK对第一散列值HV1执行加密操作以生成经加密的第一散列值HV1_ECR,并且通过DMA电路400将经加密的第一散列值HV1_ECR存储在外部存储设备60中,而无需CPU 50的干预(S550)。当密码IP 300执行安全恢复操作时,密码IP300还使用硬件唯一密钥HUK对经加密的第一散列值HV1_ECR执行解密操作,对经解密的安全数据SDTA执行散列操作以生成第二散列值HV2,并且通过将经解密的第一散列值HV1与第二散列值HV2进行比较以确定它们是否彼此匹配来对经解密的安全数据SDTA执行完整性验证操作。
图15是示出了根据一些示例实施例的移动系统900的框图。
参考图15,移动系统900包括应用处理器910、存储设备920、连接模块930、非易失性存储设备940、用户接口950和/或电源960。
在一些示例实施例中,移动系统900可以是移动电话、智能电话、个人数字助理(PDA)、便携式多媒体播放器(PMP)、数码相机、音乐播放器、便携式游戏机、导航系统、平板设备、可穿戴智能设备等。
应用处理器910可以执行诸如网络浏览器、游戏应用、视频播放器等的应用。在一些示例实施例中,应用处理器910可以包括单核或多核。例如,应用处理器910可以是多核处理器,例如双核处理器、四核处理器、六核处理器等等。在一些示例实施例中,应用处理器910可以包括内部缓冲存储器或外部缓冲存储器。
例如存储设备920可以存储由应用处理器910处理的数据,或者可以作为工作存储器进行操作。
应用处理器910包括CPU 911和安全设备913。安全设备913可以用硬件来实现并且可以提供隔离的执行环境,在该隔离的执行环境中,安全设备913执行一个或多个安全操作而不需要CPU 911的干预。
例如,安全设备913可以在隔离的执行环境中执行安全备份操作,以对包括经签名认证的固件图像和/或敏感数据的安全数据进行加密以生成经加密的安全数据;对安全数据执行散列操作以生成第一散列值;对第一散列值进行加密以生成经加密的第一散列值,并将经加密的安全数据和经加密的第一散列值存储在非易失性存储设备940中,而无需CPU911的干预。例如,安全设备913可以执行安全恢复操作,以对在非易失性存储设备940中存储的经加密的安全数据和经加密的第一散列值进行解密,从而生成经解密的安全数据和经解密的第一散列值;对经解密的安全数据执行散列操作以生成第二散列值;以及通过将经解密的第一散列值与第二散列值进行比较以确定它们是否彼此匹配,对经解密的安全数据执行完整性验证操作。
安全设备913可以例如使用参考图1至图13描述的安全设备100。
连接模块930可以执行与外部设备的有线或无线通信。例如,连接模块930可以执行以太网通信、无线局域网(WLAN)通信、近场通信(NFC)、射频识别(RFID)通信、移动通信、存储卡通信、通用串行总线(USB)通信等等。
非易失性存储设备940可以存储用于启动移动系统900的启动图像和经加密的安全数据。
用户接口950可以包括至少一个输入设备(例如,键区、触摸屏等)和至少一个输出设备(例如,扬声器、显示设备等)。电源960可以向移动系统900供应电源电压。
例如,本发明构思的各方面可以应用于采用经由各种硬件组件和/或硬件与存储在存储介质中的软件的组合实现的安全设备的电子设备。例如,一些示例实施例已经在本文中被表征为指示各种硬件组件之间可能存在新功能划分的位置,和/或例如由各种硬件组件实现的具体技术改进。试图解决的问题和/或由本发明构思的各种示例实施例提供的解决方案的各方面已经在本文中被表征为由计算机技术创建的和/或专属于计算机技术(没有可应用的预先计算机模拟)的。
上述方法的各种操作可以由能够执行操作的任何合适的设备(诸如各种硬件和/或软件组件、电路和/或模块)来执行。该软件可以包括用于实现逻辑功能的可执行指令的有序列表,并且可以体现在任何处理器可读介质中以供指令执行系统、装置或设备(诸如,单核处理器或多核处理器或包含处理器的系统)使用或与其结合使用。结合本文公开的一些示例实施例所描述的方法或算法和功能的框或步骤可以直接用硬件实现,用由处理器执行的软件模块实现,或者以二者的组合实现。如果用软件实现,则功能可以作为一个或多个指令或代码存储在有形的非暂时性计算机可读介质上或通过有形的非暂时性计算机可读介质传输。
例如,当硬件设备是计算机处理设备(例如,一个或多个处理器、控制器、ALU、DSP、微计算机、微处理器等)时,计算机处理设备可以被配置为通过根据程序代码执行算术、逻辑和输入/输出操作,来执行程序代码。一旦程序代码被加载到计算机处理设备中,计算机处理设备可以被编程以执行程序代码,从而将计算机处理设备变换成专用计算机处理设备。在更具体的示例中,当程序代码被加载到处理器中时,处理器被编程以执行该程序代码和与其相对应的操作,从而将处理器变换成专用处理器。在另一示例中,硬件设备可以是定制在专用处理电路(例如,ASIC)中的集成电路。
诸如计算机处理设备的硬件设备可以运行操作系统(OS)以及在OS上运行的一个或多个软件应用。此外,计算机处理设备还可以响应于软件的执行而访问、存储、操控、处理和创建数据。为了简单起见,可以将一个或多个示例实施例示例为一个计算机处理设备;然而,本领域技术人员将认识到,硬件设备可以包括多个处理元件和多种类型的处理元件。例如,硬件设备可以包括多个处理器或者处理器和控制器。另外,其他处理配置也是可能的,例如并行处理器。
可以在能够向硬件设备提供指令或数据或者能够被硬件设备解释的任意类型的存储介质(包括但不限于任何机器、组件、物理或虚拟设备、或计算机存储介质或设备)中永久地或者临时地实现软件和/或数据。软件也可以分布在网络耦接的计算机系统上,使得以分布式的方式存储和执行软件。具体地,例如,软件和数据可以由一个或多个计算机可读记录介质来存储,所述计算机可读记录介质包括如本文所讨论的有形和/或非暂时性计算机可读存储介质。
根据一些示例实施例,存储介质还可以在单元和/或设备处包括一个或多个存储设备。例如,一个或多个存储设备(其中可以驻留一个或多个软件模块)可以是有形的和/或非暂时性的计算机可读存储介质,诸如,随机存取存储器(RAM)、闪存、只读存储器(ROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、寄存器、硬盘、永久大容量存储设备(诸如磁盘驱动器)和/或能够存储和记录数据的任何其他类似的数据存储机制。一个或多个存储设备可以被配置为存储用于一个或多个操作系统和/或用于实现在本文中描述的示例实施例的计算机程序、程序代码、指令或其一些组合。也可以使用驱动机构将计算机程序、程序代码、指令或其一些组合从单独的计算机可读存储介质加载到一个或多个存储设备和/或一个或多个计算机处理设备中。这种单独的计算机可读存储介质可以包括通用串行总线(USB)闪存驱动器、存储棒、可移除磁盘、蓝光/DVD/CD-ROM驱动器、存储卡和/或其它类似的计算机可读储存介质。计算机程序、程序代码、指令或其一些组合可以经由网络接口而不是经由计算机可读存储介质从远程数据存储设备加载到一个或多个存储设备和/或一个或多个计算机处理设备中。另外,可以将计算机程序、程序代码、指令或其一些组合从被配置为经由网络传送和/或分发计算机程序、程序代码、指令或其一些组合的远程计算系统加载到一个或多个存储设备和/或一个或多个处理器中。远程计算系统可以经由有线接口、空中接口和/或任何其它类似的介质来传送和/或分发计算机程序、程序代码、指令或其一些组合。
一个或多个硬件设备、存储介质、计算机程序、程序代码、指令或其一些组合可以是为一些示例实施例的目的而专门设计和构造的,或者它们可以是为了一些示例实施例的目的而被改变和/或修改的已知设备。
前述描述是对一些示例性实施例的说明,且不应被解释为对其的限制。已经参考可结合以上详细讨论的组件和/或设备实现的操作(例如,以流程表、流程图、数据流图、结构图、框图等的形式)的动作和符号表示描述了一些示例实施例。虽然已经描述了一些示例实施例,但是本领域技术人员将容易理解,在不实质上脱离本发明构思的新颖教导和优点的前提下,可以在这些示例实施例中进行多种修改。尽管以特定的方式进行了讨论,但是可以以与流程表、流程图等中指定的流程不同的方式执行在特定框中指定的功能或操作。例如,图示为在两个连续框中串行执行的功能或操作实际上可以并行执行、同时执行、或者在一些情况下可以以相反的顺序执行。因此,所有这种修改旨在被包括在如权利要求中限定的本发明构思的范围内。

Claims (20)

1.一种安全设备,包含在电子设备中,所述安全设备包括:
安全处理器,被配置为提供隔离的执行环境,所述电子设备的中央处理单元CPU不干预所述隔离的执行环境;
邮箱,被配置为将从CPU接收到的请求传送到所述安全处理器;
密码知识产权IP,通过内部总线耦接到所述安全处理器,且所述密码IP被配置为在所述隔离的执行环境中执行包括以下各项的一个或多个安全操作:对安全数据执行签名认证操作、对所述安全数据执行加密/解密操作以及对所述安全数据执行完整性验证操作;
安全直接存储存取DMA电路,与所述内部总线相耦接,所述安全DMA电路被配置为在所述隔离的执行环境中控制所述一个或多个安全操作,其中仅所述安全处理器被配置为控制所述安全DMA电路;以及
内部存储器,与所述内部总线相耦接,所述内部存储器被配置为存储所述安全数据,其中对所述安全数据执行所述一个或多个安全操作,
其中所述密码IP包括被配置为控制对外部存储设备的数据访问的DMA电路。
2.根据权利要求1所述的安全设备,其中,
所述安全处理器被配置为响应于从CPU接收到第一请求而控制所述密码IP对固件图像执行签名认证操作,
所述密码IP被配置为对所述固件图像执行签名认证操作,
所述安全DMA电路被配置为将对其执行签名认证操作的固件图像作为安全数据存储在所述内部存储器中,所述第一请求指定所述签名认证操作,以及
所述固件图像是从外部源接收的。
3.根据权利要求2所述的安全设备,其中,所述密码IP被配置为基于所述固件图像生成散列值,并且使用所述散列值以及从所述外部源接收的并与所述固件图像相关联的签名来执行所述签名认证操作。
4.根据权利要求2所述的安全设备,其中,
所述安全处理器被配置为响应于从所述CPU接收到第二请求而控制所述安全DMA电路、所述密码IP和所述DMA电路执行安全备份操作,包括:
控制所述安全DMA电路将存储在所述内部存储器中的所述安全数据提供给所述密码IP,
控制所述密码IP对从所述安全DMA电路接收的安全数据执行加密操作以生成经加密的安全数据,对所述安全数据执行散列操作以生成第一散列值,对所述第一散列值执行加密操作以生成经加密的第一散列值,并且将经加密的安全数据和经加密的第一散列值提供给所述DMA电路,以及
控制所述DMA电路将经加密的安全数据和经加密的第一散列值存储在所述外部存储设备中的存储设备内,以及
所述第二请求指定所述安全备份操作。
5.根据权利要求4所述的安全设备,其中,所述密码IP被配置为并行地对所述安全数据执行加密操作以及对所述安全数据执行散列操作。
6.根据权利要求4所述的安全设备,其中,
所述密码IP被配置为使用所述电子设备的硬件唯一密钥对所述安全数据执行加密操作,并基于从所述安全处理器接收的散列类型信息使用多个散列算法之一对所述安全数据执行散列操作;以及
所述密码IP从不可克隆的存储设备接收所述电子设备的硬件唯一密钥。
7.根据权利要求4所述的安全设备,其中,所述DMA电路被配置为响应于从所述安全处理器接收到起始地址,将经加密的安全数据和经加密的第一散列值存储在与所述外部存储设备中的存储设备的连续地址相对应的存储区域中。
8.根据权利要求4所述的安全设备,其中,
所述安全处理器被配置为响应于从所述CPU接收到第三请求,控制所述DMA电路、所述密码IP和所述安全DMA电路执行安全恢复操作,包括:
控制所述DMA电路将存储在所述外部存储设备的存储设备中的经加密的安全数据和经加密的第一散列值提供给所述密码IP;
控制所述密码IP对经加密的安全数据和经加密的第一散列值执行解密操作以生成经解密的安全数据和经解密的第一散列值;
控制所述DMA电路将经解密的安全数据和经解密的第一散列值提供给所述安全DMA电路;以及
控制所述安全DMA电路将经解密的安全数据和经解密的第一散列值存储在所述内部存储器中;以及
所述第三请求指定所述安全恢复操作。
9.根据权利要求8所述的安全设备,其中,所述安全设备
被配置为控制所述密码IP对经解密的安全数据执行散列操作以生成第二散列值。
10.根据权利要求9所述的安全设备,其中所述安全处理器被配置为通过将经解密的第一散列值和所述第二散列值进行比较,来对经解密的安全数据执行完整性验证操作。
11.根据权利要求9所述的安全设备,其中,
所述密码IP被配置为使用所述电子设备的硬件唯一密钥对经加密的安全数据和经加密的第一散列值执行解密操作,并基于从所述安全处理器接收的散列类型信息使用多个散列算法之一对经解密的安全数据执行散列操作;以及
所述密码IP从不可克隆的存储设备接收所述电子设备的硬件唯一密钥。
12.根据权利要求1所述的安全设备,其中,
所述密码IP还包括:
公钥加速器,被配置为执行所述签名认证操作;
块密码引擎,被配置为执行所述加密/解密操作;以及
散列引擎,被配置为执行与所述完整性验证操作相关联的散列操作;以及
所述DMA电路包括:
存储器接口,与所述外部存储设备相连;以及
开关电路,包括多个开关,所述开关电路被配置为响应于从所述安全处理器接收到开关控制信号,将所述内部存储器、所述密码IP和所述存储器接口彼此连接。
13.根据权利要求12所述的安全设备,其中,
所述安全处理器被配置为响应于从所述CPU接收到第一请求,向所述开关电路提供第一开关控制信号;
所述开关电路被配置为响应于从所述安全处理器接收到所述第一开关控制信号,向所述内部存储器提供经签名认证的固件图像作为安全数据;以及
所述第一请求指定安全启动操作。
14.根据权利要求13所述的安全设备,其中,
所述安全处理器被配置为响应于从所述CPU接收到第二请求,向所述开关电路提供第二开关控制信号;
所述开关电路被配置为响应于从安全处理器接收到所述第二开关控制信号,将存储在所述内部存储器中的经签名认证的固件图像作为安全数据传送到所述块密码引擎和所述散列引擎,将从所述散列引擎输出的第一散列值传送到所述块密码引擎,并将从所述块密码引擎输出的经加密的安全数据和经加密的第一散列值传送到所述存储器接口;以及
所述第二请求指定安全备份操作。
15.根据权利要求14所述的安全设备,其中,
所述安全处理器被配置为响应于从所述CPU接收到第三请求,向所述开关电路提供第三开关控制信号;
所述开关电路被配置为响应于从所述安全处理器接收到所述第三开关控制信号,从所述存储器接口接收存储在所述外部存储设备中的经加密的安全数据和经加密的第一散列值,将经加密的安全数据和经加密的第一散列值传送到所述块密码引擎,将从所述块密码引擎输出的经解密的安全数据和经解密的第一散列值传送到所述内部存储器,以及将经解密的安全数据传送到所述散列引擎;以及
所述第三请求指定安全恢复操作。
16.根据权利要求15所述的安全设备,还包括:
不可克隆的存储设备,被配置为存储所述电子设备的硬件唯一密钥,并且向所述块密码引擎提供所述硬件唯一密钥;
其中所述块密码引擎被配置为使用从所述不可克隆的存储设备接收的硬件唯一密钥来执行所述加密/解密操作。
17.根据权利要求1所述的安全设备,还包括:
缓冲存储器,通过系统总线与所述安全设备相连,所述缓冲存储器被配置为存储从外部源接收的经加密的安全代码,
其中响应于经加密的安全代码的大小大于所述内部存储器的可用存储空间的大小,
所述DMA电路被配置为顺序地向所述密码IP提供多个经加密段,所述经加密的安全代码被分成多个加密段,以及
所述密码IP被配置为执行数据交换操作以顺序地对多个加密段中的每一个执行解密操作从而生成多个解密段,并通过所述安全DMA电路将所述多个解密段中的每一个顺序地存储在所述内部存储器的可用存储空间中。
18.一种电子设备,包括:
中央处理单元CPU;
安全设备,被配置为从所述CPU接收请求,并在所述CPU不干预的隔离的执行环境中执行所述请求;以及
外部存储设备,与所述安全设备相连,
其中所述安全设备包括:
安全处理器,被配置为提供所述隔离的执行环境;
邮箱,被配置为将从所述CPU接收到的请求传送到所述安全处理器;
密码知识产权IP,通过内部总线耦接到所述安全处理器,所述密码IP被配置为在所述隔离的执行环境中执行包括以下各项的一个或多个安全操作:对安全数据执行签名认证操作、对所述安全数据执行加密/解密操作以及对所述安全数据执行完整性验证操作;
安全直接存储存取DMA电路,与所述内部总线相耦接,所述安全DMA电路被配置为在所述隔离的执行环境中控制所述一个或多个安全操作,其中仅所述安全处理器被配置为控制所述安全DMA电路;以及
内部存储器,与所述内部总线相耦接,所述内部存储器被配置为存储所述安全数据,其中对所述安全数据执行一个或多个安全操作,
其中所述密码IP包括被配置为控制对外部存储设备的数据访问的DMA电路。
19.根据权利要求18所述的电子设备,其中,
所述安全设备被配置为响应于从所述CPU接收到用于执行安全备份操作的请求,对存储在所述内部存储器中的安全数据执行加密操作以生成经加密的安全数据,对所述安全数据执行散列操作以生成第一散列值,对所述第一散列值执行加密操作以生成经加密的第一散列值,并且将经加密的安全数据和经加密的第一散列值存储在所述外部存储设备中,而无需所述CPU的干预,以及
所述安全设备被配置为响应于从所述CPU接收到用于执行安全恢复操作的请求,对存储在所述外部存储设备中的经加密的安全数据和经加密的第一散列值执行解密操作以生成经解密的安全数据和经解密的第一散列值,将经解密的安全数据和经解密的第一散列值存储在所述内部存储器中,对经解密的安全数据执行散列操作以生成第二散列值,并且通过将经解密的第一散列值和所述第二散列值进行比较来执行完整性验证操作,而无需所述CPU的干预,以及
所述外部存储设备是非易失性储存设备。
20.一种操作电子设备的方法,所述电子设备包括中央处理单元CPU和安全设备,所述安全设备用于从所述CPU接收请求,并在所述CPU不干预的隔离的执行环境中执行所述请求,所述方法包括:
对所述电子设备通电;
在所述安全设备的密码知识产权IP中对固件图像执行签名认证操作,以将安全数据存储在所述安全设备的内部存储器中;
确定所述电子设备是否进入低功率模式;
响应于确定所述电子设备进入低功率模式,在所述密码IP中执行安全备份操作以使用所述电子设备的硬件唯一密钥对所述安全数据进行加密,从而产生经加密的安全数据,并将经加密的安全数据存储在与所述安全设备相连的外部存储设备中,而无需所述CPU的干预;以及
响应于从所述CPU接收到唤醒请求,在所述密码IP中执行安全恢复操作以使用所述硬件唯一密钥对存储在所述外部存储设备中的经加密的安全数据进行解密,从而产生经解密的安全数据,并将经解密的安全数据存储在所述内部存储器中,而无需所述CPU的干预。
CN201810851268.4A 2017-08-02 2018-07-27 安全设备、电子设备和操作电子设备的方法 Active CN109388953B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR20170098249 2017-08-02
KR10-2017-0098249 2017-08-02
KR1020170151967A KR102401088B1 (ko) 2017-08-02 2017-11-15 보안 장치, 이를 포함하는 전자 장치 및 전자 장치의 동작 방법
KR10-2017-0151967 2017-11-15

Publications (2)

Publication Number Publication Date
CN109388953A CN109388953A (zh) 2019-02-26
CN109388953B true CN109388953B (zh) 2023-05-16

Family

ID=65369349

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810851268.4A Active CN109388953B (zh) 2017-08-02 2018-07-27 安全设备、电子设备和操作电子设备的方法

Country Status (2)

Country Link
KR (1) KR102401088B1 (zh)
CN (1) CN109388953B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102628010B1 (ko) 2018-10-05 2024-01-22 삼성전자주식회사 가상 암호화 연산을 수행하는 암호화 회로
TWI693600B (zh) * 2019-05-08 2020-05-11 慧榮科技股份有限公司 具安全性擴充的資料儲存裝置以及非揮發式記憶體控制方法
KR20210012186A (ko) * 2019-07-24 2021-02-03 삼성전자주식회사 보안 스위치를 이용하여 개인 정보를 보호하는 전자 장치 및 방법
KR20210048835A (ko) * 2019-10-24 2021-05-04 삼성전자주식회사 전자 장치 및 이의 제어 방법
KR102289456B1 (ko) * 2020-05-21 2021-08-12 단국대학교 산학협력단 Plc용 펌웨어 무결성을 검증하기 위한 원격 보증증명 장치 및 방법
CN112035146B (zh) * 2020-09-11 2023-10-24 百富计算机技术(深圳)有限公司 固件更新方法、安全设备和计算机可读存储介质
CN114553411B (zh) * 2022-02-25 2023-07-14 苏州浪潮智能科技有限公司 用于分布式内存加密装置和用于分布式内存解密装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1601490A (zh) * 2003-09-26 2005-03-30 刘任 信息安全认证及其加密装置的方法
US7389427B1 (en) * 2000-09-28 2008-06-17 Intel Corporation Mechanism to secure computer output from software attack using isolated execution
CN101978377A (zh) * 2008-02-07 2011-02-16 阿纳洛格装置公司 用于控制受保护操作模式期间的系统访问的方法和装置
CN102396251A (zh) * 2009-04-15 2012-03-28 交互数字专利控股公司 对与网络通信的设备的确认和/或认证
CN105490811A (zh) * 2015-11-25 2016-04-13 小米科技有限责任公司 签名信息获取方法及装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8782433B2 (en) * 2008-09-10 2014-07-15 Inside Secure Data security
US8832465B2 (en) * 2012-09-25 2014-09-09 Apple Inc. Security enclave processor for a system on a chip
KR102139546B1 (ko) * 2014-03-11 2020-07-30 삼성전자주식회사 펌웨어 검증 기능을 갖는 모바일 시스템 그리고 그것의 펌웨어 업데이트 방법
NL2013271B1 (en) * 2014-07-28 2016-09-09 E-Traction Europe B V Electrical installation having high and low voltage circuits with common ground reference.

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7389427B1 (en) * 2000-09-28 2008-06-17 Intel Corporation Mechanism to secure computer output from software attack using isolated execution
CN1601490A (zh) * 2003-09-26 2005-03-30 刘任 信息安全认证及其加密装置的方法
CN101978377A (zh) * 2008-02-07 2011-02-16 阿纳洛格装置公司 用于控制受保护操作模式期间的系统访问的方法和装置
CN102396251A (zh) * 2009-04-15 2012-03-28 交互数字专利控股公司 对与网络通信的设备的确认和/或认证
CN105490811A (zh) * 2015-11-25 2016-04-13 小米科技有限责任公司 签名信息获取方法及装置

Also Published As

Publication number Publication date
KR20190014444A (ko) 2019-02-12
KR102401088B1 (ko) 2022-05-24
CN109388953A (zh) 2019-02-26

Similar Documents

Publication Publication Date Title
US10949546B2 (en) Security devices, electronic devices and methods of operating electronic devices
CN109388953B (zh) 安全设备、电子设备和操作电子设备的方法
US20180157849A1 (en) Anti-theft in firmware
US10339327B2 (en) Technologies for securely binding a platform manifest to a platform
EP3676742A1 (en) Hardware-enforced firmware security
US8516232B2 (en) Method and memory device for performing an operation on data
JP6538610B2 (ja) 外部不揮発性メモリに間接アクセスするセキュリティデバイス
US7865712B2 (en) Method and apparatus for booting a processing system
US8949586B2 (en) System and method for authenticating computer system boot instructions during booting by using a public key associated with a processor and a monitoring device
US9740866B2 (en) Automatic measuring boot process using an automatic measuring processor coupled to a memory
US20150121054A1 (en) Platform Secure Boot
TW201342115A (zh) 使用可信賴平台模組來啟動政策及保全韌體之技術
US20180144136A1 (en) Secure system memory training
CN112149144A (zh) 聚合密码引擎
US20190080093A1 (en) Secure selective load of dynamic paged segments in memory constrained systems
US10853086B2 (en) Information handling systems and related methods for establishing trust between boot firmware and applications based on user physical presence verification
US11971993B2 (en) Firmware-based secure tenancy transfer
US11423150B2 (en) System and method for booting processors with encrypted boot image
US20230059382A1 (en) Electronic device
US8127363B2 (en) Method and apparatus for booting a processing system
EP3757838A1 (en) Warm boot attack mitigations for non-volatile memory modules
US20080104711A1 (en) System and method for an isolated process to control address translation
TW201719420A (zh) 快取記憶體認證系統及方法
JP7263101B2 (ja) 情報処理装置、データ検証方法
CN108399328B (zh) 系统存储器内容认证设备及方法

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