CN103853983B - 执行安全引导的片上系统、使用其的图像形成装置及方法 - Google Patents

执行安全引导的片上系统、使用其的图像形成装置及方法 Download PDF

Info

Publication number
CN103853983B
CN103853983B CN201310659211.1A CN201310659211A CN103853983B CN 103853983 B CN103853983 B CN 103853983B CN 201310659211 A CN201310659211 A CN 201310659211A CN 103853983 B CN103853983 B CN 103853983B
Authority
CN
China
Prior art keywords
memory
data
cpu
chip
stored
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
CN201310659211.1A
Other languages
English (en)
Other versions
CN103853983A (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.)
Hewlett Packard Development Co LP
Original Assignee
HP Printing Korea 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 HP Printing Korea Co Ltd filed Critical HP Printing Korea Co Ltd
Publication of CN103853983A publication Critical patent/CN103853983A/zh
Application granted granted Critical
Publication of CN103853983B publication Critical patent/CN103853983B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/34User authentication involving the use of external additional devices, e.g. dongles or smart cards
    • 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/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/575Secure boot
    • 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/606Protecting data by securing the transmission between two devices or processes
    • G06F21/608Secure printing
    • 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/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • 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/82Protecting input, output or interconnection devices
    • G06F21/84Protecting input, output or interconnection devices output devices, e.g. displays or monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs

Abstract

提供了一种片上系统、使用其的图像形成装置、以及其方法。所述片上系统包括用于存储多个加密密钥的第一存储器、第二存储器、用于存储加密密钥设置值的第三存储器、以及CPU,所述CPU使用来自所述多个加密密钥的与所述加密密钥设置值相对应的加密密钥来将被存储在外部非易失性存储器中的加密数据进行解密,将解密的数据存储在第二存储器中,并且使用在第二存储器中存储的数据来执行引导。因此,引导操作的安全性可以得到改善。

Description

执行安全引导的片上系统、使用其的图像形成装置及方法
技术领域
本发明总体构思的示例性实施例的方法及装置涉及片上系统、使用其的图像形成装置、以及其方法,并且更具体地,涉及使用加密数据来执行安全引导的片上系统、使用其的图像形成装置、以及其方法。
背景技术
随着电子技术的发展,已经开发了各种各样的电子产品。具体地,随着计算机得到广泛应用,计算机外设越来越多地被使用。计算机外设是指提高计算机的利用率的装置。打印机、扫描仪、复印机和多功能外设是这样的电脑外设的代表性示例。
图像形成装置是指执行图像形成作业即在纸张或其它介质上形成图像的装置。为了执行图像形成作业,可以使用诸如墨水或色粉(toner)的显影剂。使用利用色粉的激光方法的图像形成装置可以包括充电单元、显影单元、转印单元、激光扫描单元、和定影单元。当作业被执行时被消耗的包括上述单元的这些单元可被称为可消耗单元。如果可消耗单元使用了预定时间,则其特性可能会改变,因此不能期望有良好的打印质量。具体地,当色粉耗尽时,包含色粉的色粉盒应该被更换。因此,在这样的现象出现的情况下,产品制造商销售与完整的产品分离的可消耗单元。
近年来,可消耗单元可以在其中嵌入存储器,以准确地确定何时应该更换可消耗单元。关于可消耗单元的使用的多种信息可以被存储在存储器中。然而,存在未经授权的人可以容易地访问嵌入在可消耗单元中的存储器的问题。因此,存储在存储器中的信息可能被更改,从而可能难以使用和管理可消耗单元。因此,存在对于加强可消耗单元的存储器的安全性的尝试。
然而,未经授权的人可能会侵入到与可消耗单元通信的装置,而不是存储器中。具体来说,可以开发出通过改变嵌入在所述装置的主体中的主存储器的引导过程的、针对应用到可消耗单元的黑客安全技术的简便办法。
发明内容
因此,存在对于提高引导过程的安全性的方法的需求。一个或多个示例性实施例可以克服上面的缺点和上面没有描述的其它缺点。然而,可以理解的是,一个或多个示例性实施例并不必须克服上述缺点,并且可以不克服任何上述问题。
本发明总体构思的一个或多个示例性实施例提供了使用在其中存储加密数据的非易失性存储器来执行安全引导的片上系统,具有其的图像形成装置,以及其方法。
本发明总体构思的另外的特征和效用将部分阐述于下面的描述中,并且部分地将从描述中变得显而易见,或者可以通过实践本发明总体构思而习得。
根据本发明总体构思的示例性实施例,提供了一种片上系统,其包括:第一存储器,用于存储多个加密密钥;第二存储器;第三存储器,用于存储加密密钥设置值;以及中央处理单元(CPU),用于使用来自所述多个加密密钥的与所述加密密钥设置值相对应的加密密钥来对存储在外部非易失性存储器中的加密数据进行解密,在第二存储器中存储解密的数据,并且使用在第二存储器中存储的数据来执行引导。
初始化数据可以与多个加密密钥分离地被存储在第一存储器中,并且CPU可以使用所述初始化数据执行初始化,并且可以对加密数据进行解密。
所述片上系统可以进一步包括第一电路,其在预定时间内限制经由外部端口对CPU的访问。
当电源接通时,第一电路可以输出禁止信号,以禁止对CPU的访问,并且当至少完成了所述解密和对解密的数据的认证时,第一电路可以输出使能信号以使得能够访问CPU。
第一电路可以包括第一寄存器,并且当所述解密的数据的解密和认证完成时,CPU可以改变第一寄存器的存储器值。
所述片上系统可以包括第二电路和第三电路,用以控制对第一存储器的访问。
第二电路可以包括第二寄存器,并且第三电路可以包括第三寄存器。当所述解密的数据的解密和认证完成时,CPU可以在第二寄存器中存储禁止对第一存储器的访问的控制值,并且可以在第三寄存器中存储将对第一存储器的访问改变为对第二存储器的访问的控制值。
当解密失败时,CPU可以执行无限循环。
当电源接通时,CPU可以识别由存储在第三存储器中的设置值或外部引脚所指定的存储器,并且,当第一存储器被指定时,CPU可使用加密数据来执行安全引导,并且,当第二存储器被指定时,CPU可以使用在非易失性存储器中存储的非加密数据来执行正常引导。
第一存储器可以是掩模只读存储器(ROM)或一次性可编程(OTP)ROM,而第二存储器可以是静态随机存取存储器(SRAM)。第三存储器可以是电熔丝(EFUSE)存储器。
所述片上系统可以包括可通信地耦合到CPU的存储器控制器,其包括至少一个开关来选择与外部存储器的连接状态,其中,存储器控制器根据第一密钥值和第二密钥值之间的比较结果来将从CPU接收到的写入信号选择性地输出到外部存储器。
所述片上系统可以包括:其中,当第一密钥值和第二密钥值相同时,所述存储器控制器控制所述至少一个开关来选择连接状态,以便向外部存储器输出写入信号。
所述片上系统可以包括:其中,所述存储器控制器控制所述至少一个开关,以便禁止连接到外部存储器,从而防止写入信号被输出到外部存储器。
所述片上系统可以包括:其中,即使在所述存储器控制器防止写入信号输出到外部存储器时,所述存储器控制器仍控制外部存储器的读操作。
所述片上系统可以包括:其中,所述至少一个开关包括第一开关和第二开关,其中,所述存储器控制器控制所述第一开关,以便控制外部存储器的读操作,并且所述存储器控制器控制所述第二开关,以控制与所述第二开关的连接,从而控制所述写入信号到外部存储器的输出。
所述片上系统可以包括:当第一密钥值和预先存储的第二密钥值彼此不同时,所述存储器控制器阻止到外部非易失性存储器的写入操作。
本发明总体构思的示例性实施例还可以提供一种图像形成装置,其包括在其中安装了客户可更换单元监控(CRUM)芯片的可消耗单元,以及控制器,用于使用所述可消耗单元来执行图像形成作业并且根据所述图像形成作业来更新记录在CRUM芯片上的数据。所述控制器可以包括:非易失性存储器,用于记录加密数据;以及片上系统,用于当图像形成装置开启时使用加密数据来执行安全引导,以及当安全引导完成时,根据用户命令来控制图像形成装置。
所述片上系统可以包括:第一存储器,用于存储多个加密密钥;第二存储器;第三存储器,用于存储加密密钥设置值;以及CPU,用于从多个加密密钥中使用与加密密钥设置值相对应的加密密钥来对存储在外部非易失性存储器中的加密数据进行解密,在第二存储器中存储解密的数据,以及使用在第二存储器中存储的数据来执行引导。
初始化数据可以与多个加密密钥分离地存储在第一存储器中,并且CPU可以使用初始化数据执行初始化,并且然后可以对加密数据进行解密。
当引导事件已经发生时,所述片上系统可以在预定时间内限制经由外部端口对CPU的访问。
所述片上系统可以进一步包括:第一电路,其在所述图像形成装置被开启时,输出禁止信号以禁止对CPU的访问,并且当至少完成了所述解密和对解密的数据的认证时,输出使能信号,以使得能够访问CPU。
第一电路可以包括第一寄存器,并且当至少完成了所述解密和对解密的数据的认证时,CPU可以改变所述第一寄存器的存储器值。
当至少完成了所述解密和对解密的数据的认证时,CPU可以执行寄存器设置工作,以禁止访问所述第一存储器,并且将对所述第一存储器的访问改变为对第二存储器的访问。
当图像形成装置被开启时,CPU可以识别由存储在第三存储器中的设置值或外部引脚所指定的存储器,并且,当第一存储器被指定时,CPU可使用加密数据来执行安全引导,并且,当第二存储器被指定时,CPU可以使用在外部非易失性存储器中存储的非加密数据来执行正常引导。
第一存储器可以是掩模ROM或OTP ROM,而第二存储器可以是SRAM。第三存储器可以是EFUSE存储器。
本发明总体构思的示例性实施例还提供一种引导包括非易失性存储器和片上系统的图像形成装置的方法,所述方法包括:使用被存储在所述片上系统的第一存储器中的初始化数据来进行初始化;当执行初始化时,使用在第一存储器中存储的多个加密密钥中的一个来对存储在所述非易失性存储器中的加密数据进行解密;在所述片上系统的第二存储器中存储解密的数据;以及使用在第二存储器中存储的数据来执行引导。
所述方法可以进一步包括:当所述图像形成装置被开启时,识别根据通过所述片上系统的第三存储器或者外部引脚输入的输入值所指定的存储器,并且,当指定的存储器是第一存储器时,禁止对所述片上系统的CPU的访问。
所述方法可以进一步包括:当至少完成了所述解密和对解密的数据的认证时,使得能够访问CPU。
所述方法可以包括:当至少完成了所述解密和对解密的数据的认证时,禁止访问所述第一存储器,并且执行寄存器设置以将对第一存储器的访问改变为对第二存储器的访问。
本发明总体构思的示例性实施例还可以提供一种具有存储器件和片上系统的电子设备,所述片上系统可以包括中央处理单元(CPU)、可通信地耦合到所述CPU和存储器件的存储器控制器,所述存储器控制器根据第一密钥值和第二密钥值之间的比较结果来将从CPU接收的写入信号选择性地输出到外存储器件。
所述电子设备可以包括:其中,当第一密钥值和第二密钥值相同时,所述存储器控制器控制至少一个开关来选择连接状态,以便将写入信号输出到所述存储器件。
所述电子设备可以包括:其中,所述存储器控制器控制所述至少一个开关,以便禁止连接到所述存储器件,以便防止写入信号被输出到存储器件。
所述电子设备可以包括:其中,即使在存储器控制器防止写入信号输出到存储器件时,所述存储器控制器仍控制存储器件的读操作。
本发明总体构思的示例性实施例还可以提供一种主机设备,其包括:存储装置,用于存储与多个版本中的每一个相对应的多个密文(cipher text);通信单元,用于当预定事件发生时,接收存储在图像形成装置中的密文;控制器,用于控制所述图像形成装置,以当与图像形成装置的固件版本的相对应的密文与接收到的密文相同时,使其处于用于打印的等待状态;并且当密文以及固件版本彼此不同时,所述控制器阻止使用图像形成装置。
根据上述示例性实施例,引导过程的安全性可以得到改善,从而可以最小化和/或防止由未经授权的人的恶意侵入所导致的损害。
附图说明
从以下结合附图的对实施例的描述,本发明总体构思的这些和/或其它特征和效用将变得明显并且更易于理解,附图中:
图1是示出了根据本发明总体构思的示例性实施例的片上系统的框图;
图2是示出了根据本发明总体构思的示例性实施例的安全引导方法的流程图;
图3是示出了根据本发明总体构思的示例性实施例的片上系统的框图;
图4是示出了根据本发明总体构思的示例性实施例的、在其上安装了片上系统的主板的框图;
图5是示出了根据本发明总体构思的示例性实施例的安全引导方法的流程图;
图6是用于说明根据本发明总体构思的示例性实施例的安全引导方法的流程图;
图7是详细示出了图4的片上系统的示例的电路图;
图8是示出了安全固件的布局的示例的视图;
图9是示出了用于执行安全引导的存储器映射的示例的视图;
图10是示出了在其中安装了片上系统的图像形成装置的示例的框图;
图11是示出了可以安装在可消耗单元中的CRUM芯片的示例的框图;
图12是示出了根据本发明总体构思的示例性实施例的使用片上系统的存储器的方法的流程图;
图13是示出了图12的根据本发明总体构思的示例性实施例的片上系统的示例的框图;
图14和图15是示出了根据本发明总体构思的示例性实施例的片上系统的示例的框图;
图16是示出了图14和图15中所示出的、可以在本发明总体构思的示例性实施例中使用的代码生成单元的示例的视图;
图17是示出了图16的代码生成单元的示例性实施例的视图;
图18和图19是示出了图19的代码生成单元中生成的软件代码的本发明总体构思的示例性实施例的视图;
图20-22是可以与片上系统使用的非易失性存储器的本发明总体构思的示例性实施例;
图23是示出根据本发明总体构思的示例性实施例的、处理要被禁用的易失性存储器的写引脚的方法的视图;
图24是示出了根据本发明总体构思的示例性实施例的控制存储器的方法的流程图;
图25是示出了图24中示出的、执行控制本发明总体构思的示例性实施例的存储器的方法的存储器控制器的示例性实施例的视图;
图26是示出了根据本发明总体构思的示例性实施例的控制打印的方法的时序图;
图27是示出了图26中示出的根据本发明总体构思的示例性实施例的用于执行控制打印的方法的主机设备的示例性实施例的视图;
图28和图29是示出了各种密文的示例性实施例的视图;
图30是示出了被侵入密文的示例性实施例的视图;以及
图31是示出了根据本发明总体构思的示例性实施例的控制图像形成装置的方法的流程图。
具体实施方式
在下文中,将参照附图来更详细地描述示例性实施例。
现在将详细说明本发明总体构思的实施例,实施例的示例在附图中示出,其中,相同的参考标记始终指代相同的元件。下面在参考附图的同时描述实施例以便解释本发明总体构思。
在以下描述中,当相同的参考标记在不同的附图中被描绘时,该相同的参考标记用于相同的元件。在描述中所限定的内容,例如,详细的结构和元件被提供来帮助对示例性实施例的全面理解。因此,显然可以在没有那些具体定义的内容的情况下实现示例性实施例。此外,不会详细描述现有技术中已知的功能或元件,因为它们会以不必要的细节模糊本示例性实施例。
通常地,当电子装置被开启时,其执行引导过程以正常运转。电子装置执行初始化,并且通过引导过程加载和运行程序。确定电子装置的初始状态的引导过程可能会影响电子装置的操作参数(例如,重要的操作参数),从而在电子装置被使用时实际影响它。因此,如果引导过程是可访问的,使得任何人都可以改变它,则存在可能会加载用户不想要的程序的风险。也就是说,黑客可能能够改变引导过程,以便加载黑客所想要但是用户并不要求加载的程序。因此,存在对于安全引导以使得引导过程不能被任意改变即安全的引导方法的方法的需求。为了实现安全引导,引导数据可以以加密状态被存储在电子装置的非易失性存储器中。片上系统100控制电子装置访问非易失性存储器的操作,对加密数据进行解密,并且执行安全引导过程。在下文中,将解释根据本发明总体构思的各种示例性实施例的片上系统及其安全引导方法。
图1是示出了根据本发明总体构思的示例性实施例的片上系统的框图。参照图1,片上系统100使用在其中存储加密数据的非易失性存储器200来执行安全引导。片上系统100与图1的非易失性存储器200可以被嵌入在电子装置(例如,单个电子装置)中。例如,片上系统100可以被嵌入在图像形成装置中,例如,与图10有关地示出和描述的图像形成装置1000。片上系统100可以被嵌入在任何合适的电子设备中。片上系统可以是集成电路、可编程逻辑设备、现场可编程门阵列、和/或这里公开的根据本发明总体构思的示例性实施例的用于执行安全引导的任何合适设备。
片上系统100使用存储在非易失性存储器200中的加密数据来执行引导过程。具体地,各种数据,例如,引导块启动符号(BSS)、内核、初始化程序、操作系统(OS)、其它OS(无线栈)、引擎、仿真、固定段、堆(heap)、认证密钥、加密OS、以及设备驱动器都可以在非易失性存储器200中加密和存储。
数据可以以各种方法加密。例如,可以使用数据加密标准(DES)方法、三重DES(TDES)方法、高级加密标准(AES)方法、SEED算法、李维斯特沙米尔阿德尔曼(RivestShamir Adleman,RSA)方法、以及学院研究所机构代理(ARIA)算法。
DES方法是指使用利用56位密钥的对称密钥加密算法来加密和解密数据的方法。TDES方法是指将DES重复三次的方法。AES法是指使用32比特的任意倍数,比如128、160、192、224、或256比特的密钥来加密/解密128比特大小的块的方法。与AES方法类似的SEED方法是指128位的块加密方法,其使用128比特或256比特的加密密钥来加密和解密数据。RSA方法是一种使用单向函数的公开密钥加密系统,并且ARIA算法是使用128、192、或256比特的密钥来加密和解密128比特的块的块加密方法。
以上述各种加密方法加密的各种数据可以被存储在非易失性存储器200中。可以根据在其中安装了图1的片上系统100和非易失性存储器200的产品的特性或者其它环境条件来选择性地应用所存储的数据或加密方法。
参考图1,片上系统100包括第一存储器110、第二存储器120、以及中央处理单元(CPU)130。CPU 130可以是用于执行本发明总体构思的示例性实施例的处理器和/或任何合适的设备。加密密钥可以被存储在第一存储器110中。第一存储器110可以通过使用掩模只读存储器(ROM)或一次性可编程(OTP)存储器来实现。
掩模ROM是在制造时事先存储数据、并且不允许用户修改数据的存储器。OTP存储器可以在系统内编程中使用,但是其是一种一旦被编程就不允许对数据进行修改的可编程ROM。
加密密钥是用于对被存储在非易失性存储器200中的数据进行解密的密钥,具体地,其是引导代码。非易失性存储器200可以存储以上述方法中的一个加密的数据,并且与所述加密数据相对应的加密密钥可以被存储在第一存储器110中。
第一存储器110可以存储关于引导加载器(boot loader)的信息。引导加载器是指在OS启动之前事先执行、完成启动内核所需的所有操作、并且最终启动OS的程序。也就是说,OS被分为:内核,在其中驱动真实的命令;框架,其向内核发送包括在程序中的命令;以及用户接口(UI),其在所述内核和所述框架上被驱动。引导加载器是指在启动内核之前预备硬件的程序。具体地,私有引导加载器信息可以被存储在第一存储器110中。私有引导加载器信息可以包括初始化系统所需的信息。
第二存储器120是用于执行引导操作的内部存储器。第二存储器120可以是不需要初始化的SRAM。然而,这不应该被认为是限制性的,并且第二存储器120可以是用于执行这里公开的本发明总体构思的示例性实施例的任何合适的存储器。
处理器130使用存储在第一存储器110中的加密密钥,对存储在位于片上系统100外部的非易失性存储器200中的加密数据进行解密,并且在第二存储器120中存储解密的数据。CPU 130可以使用存储在第二存储器120中的数据来执行引导。解密方法可以对应于数据加密方法。
例如,如果应用了AES方法,则通过重复执行关于要被加密的数据和初始输入的密码密钥(cipher key)的XOR操作的AddRoundKey过程、根据特定规则替代XOR操作结果的SubBytes过程、将数据行移位的ShiftRows过程、以及将数据行混合10次的Mixcolumn过程来加密数据。非易失性存储器200可以存储以上述方法加密的数据。CPU 130可以通过重复与上述的加密过程相对应的相反的过程来对加密数据进行解密。解密的数据被存储在第二存储器120中,并且CPU 130使用存储的数据来执行随后的引导过程。
如果应用了RSA方法,则使用公钥{N,E}和私钥{N,D}来对数据进行加密和解密。具体地,选择两个大质数的“p”和“q”(即,大于预定量的质数),并且模N=P*q,且计算PI(N)。此外,E是任意选择的,使得E与PI(N)=(p-a)(q-1)是互质数。使用扩展的欧几里德算法来计算具有E*D mod PI(N)-1的关系的D。因此,RSA加密可以使用公钥{N,E}和私钥{N,D}来执行。RSA加密可以用等式E(M)=M^E mod N=C来执行。M表示要加密的数据。非易失性存储器200可以存储根据该等式加密的引导代码。在这种情况下,CPU 130可以用等式D(C)=C^D mod N=((M^E)^D) mod N=M来执行RSA解密。解密的数据被存储在第二存储器120中,并且CPU 130使用所存储的数据执行随后的引导过程。
根据上述方法,片上系统100加载以加密状态存储在外部存储器200中的数据,将数据解密,并且执行引导操作。因此,即使未经授权的人侵入了在外部存储器200和片上系统100之间交换的数据,引导过程也不会被改变,从而能够提高引导的安全性。
图2是详细示出根据本发明总体构思的示例性实施例的安全引导方法的流程图。参照图2,如果在操作S210中,在其中安装了片上系统(例如,片上系统100)的电子装置被开启,则片上系统在操作S220中访问第一存储器110并且读取存储在第一存储器110中的数据。具体地,CPU 130前进到特定地址被分配到的复位向量,并且提取指令。在本示例性实施例中,复位向量的地址可被指定为第一存储器110。
如果第一存储器110被指定,则CPU 130使用存储在第一存储器110中的数据来执行安全引导。第一存储器110可以存储各种数据,例如,用于初始化系统(例如,片上系统100)的代码,以及用于对加密的外部程序代码进行解密的代码或加密密钥。
CPU 130从第一存储器110中检测用于初始化系统的代码,并且在操作S230中执行关于电子装置的硬件的初始化工作。初始化工作可以包括使用内部锁相环(PLL)电路来提前在片上系统110中使用的时钟、或者初始化双数据速率(DDR)控制器以使用DDR存储器。初始化工作可以进一步包括各种初始化操作,例如,初始地驱动各种应用、初始化设置以形成与电子装置的内部或外部装置的通信信道、初始化存储器值、设置内部寄存器值、输入/输出(I/O)的设置、串口设置、获取MAC地址和以太网端口设置。初始化工作可包括预备与片上系统100一起安装在电子装置中的其它硬件。这样的初始化操作可以根据在其中安装了片上系统100的电子装置的种类来以各种方式来实现。存储在第一存储器110中的代码可以用于其它操作。例如,CPU 130读取引导选项引脚设置(SPI/NAND/SD)值,并且根据相应的引导选项来将数据引入(例如,写入)到第二存储器120中。
在操作S240中,处理器130对被加载到片上系统100中的加密数据进行解密。CPU130可以使用存储在第一存储器110中的加密密钥来解密该数据。在操作S250中,CPU 130在第二存储器120或DDR存储器中存储解密的数据。在操作S260中,CPU 130使用所述解密的数据来执行引导。
即,CPU 130可以使用诸如解密的引导块启动符号(BSS)、内核代码、初始化程序、OS、其它OS(无线栈)、引擎、仿真、固定段、以及堆的数据来执行引导。引导是指加载内核、运行框架、运行UI、以及启动OS的操作。
根据上述示例性实施例,可以使用没有被加密的片上系统100的第一存储器110和第二存储器120来执行安全引导,其中,加密数据被存储在外部非易失性存储器200中。
图3是示出了根据本发明总体构思的示例性实施例的片上系统的框图。参照图3,除了第一存储器110、第二存储器120、和CPU 130之外,片上系统100还可以包括第三存储器140。
根据本发明总体构思的示例性实施例,多个加密密钥可以被存储在第一存储器110中。用于选择多个加密密钥之一的设置值可以被存储在第三存储器140中。这样的设置值被称为加密密钥设置值。第三存储器140可以是电熔丝(EFUSE)存储器,其是一种OPT存储器。然而,这不应该被认为是限制性的,并且第三存储器140可以是为了实现这里公开的本发明总体构思的示例性实施例的任何合适的存储器。
CPU 130根据存储在第三存储器140中的设置值(即,加密密钥设置值)来确定存储在第一存储器110中的多个加密密钥中的哪一个将被选择。如果使用中的密钥被暴露,则片上系统100或者在其中安装了片上系统100的电子装置的制造商通过改变第三存储器140中的加密密钥设置值来改变密钥。
根据本示例性实施例,即使一个加密密钥被暴露,也没有必要更换整个片上系统,并且CPU 130可以通过改变在第三存储器140中编程的设置值来处理这个问题。
第二存储器120和CPU 130的其它操作与上面第一示例性实施例中所述的相同,因此省略冗余的解释。
图4是示出了在其上安装了片上系统100和非易失性存储器200的主板300的框图。主板300可以被布置在,例如,电子装置中。参照图4,片上系统100和非易失性存储器200可以被安装在单个主板300上。除了片上系统100和非易失性存储器200之外,各种部件(例如,电子装置的硬件组件,诸如,例如,通信接口、用户接口、图像处理器、图像传感器、音频处理器等)可以被安装在主板300上,但是为了解释方便没有将其示出。
片上系统100包括第一存储器110、第二存储器120、CPU 130、第三存储器140、和总线150。参照图4,CPU 130可以通过总线150连接到包括第一至第三存储器110、120、和140在内的各种元件。总线150可以包括各种各样的总线,例如,地址总线、数据总线、和控制总线。
图3和4中所示的片上系统100可以使用第三存储器140来适当地选择加密方法(例如,DES、TDES、SEED、RSA、ARIA等)。
图5是示出了图3或者图4中所示的片上系统的安全引导方法的流程图。参照图5,如果在操作S510中,在其中安装了片上系统100的电子装置被开启,则在操作S520中,片上系统100的CPU 130访问第一存储器110,并且识别初始化数据。根据从复位向量中提取的指令,可以执行对第一存储器110的访问。在操作S530中,根据所识别的初始化数据,CPU 130初始化硬件(例如,电子装置的诸如一个或多个存储器件、通信接口等的硬件组件)。以上已经参考图2描述了初始化操作的示例,所以省略冗余的解释。CPU 130可以禁止经由外部端口来对其进行访问,从而执行安全引导。
如果初始化完成,则在操作S540中,CPU 130识别被存储在第三存储器140中的设置值,并且在操作S550中,从存储在第一存储器110中的多个加密密钥中选择与设置值相对应的加密密钥。如果加密密钥被选择,则在操作S560中,CPU 130使用加密密钥对被存储在非易失性存储器200中的加密数据进行解密,并且执行认证。解密的数据被复制到第二存储器120或DDR存储器中。
如上所述,根据诸如DES方法、TDES方法、AES方法、SEED算法、RSA方法、和ARIA方法的各种加密算法来对数据进行解密。
认证是验证数据的认证码的有效性的过程。为了实现认证,可以使用诸如HMAC-SHA256、HMAC-SHA1、和HMAC-MD5的认证算法,和/或用于实现本发明总体构思的示例性实施例的任何合适的认证算法。这些算法是共享单个秘密密钥的基于密钥的算法。具体地,HMAC在RFC 204(用于消息认证码的密钥化散列(keyed-hashing))中定义。用于解密的加密密钥值和用于认证的密钥值可以存储在如上所述的第一存储器110中。
如果在操作S570中,认证码是无效的或解密失败,则在操作S595中,CPU 130停止执行安全引导程序并且/或者落入无限循环。
如果解密和认证成功,并且所有的系统预备完成,则在操作S580中,CPU 130改变地址映射。因此,当有人尝试访问第一存储器110时,访问被强制地改变为访问第二存储器120。
在操作S590中,CPU 130利用复制到第二存储器120中的解密的数据来执行引导。引导进程已在上面描述,因此省略冗余的解释。
在上述示例性实施例中,已经描述执行安全引导的片上系统及其操作。然而,根据示例性实施例,可以根据在其中使用片上系统的环境来选择性地执行安全引导或正常引导。
图6是示出了根据本发明总体构思的示例性实施例的片上系统的引导方法的流程图。根据示例性实施例,非易失性存储器200可以一起存储加密数据和未加密数据。
在这种状态下,如果在操作S610中,电子装置被开启,则在操作S615中,CPU 130确定是执行安全引导还是执行正常引导。也就是说,如果电源接通,则CPU 130前进到复位向量并且提取指令。第一存储器110或第二存储器120可以被指定为复位向量。即,第一存储器110和第二存储器120经由总线150而被映射到相同的地址(例如,0xffff0000)。如果CPU130从复位向量中识别地址0xffff0000,则CPU 130访问被指定的第一存储器110和第二存储器120中的一个。存储器可以由通过连接到CPU 130的外部引脚输入的指定值、或者由存储在第三存储器140中的指定值来指定。
如果第二存储器120被指定,则确定在操作S615:N中执行正常引导,而不是安全引导。在这种情况下,CPU 130访问非易失性存储器200,并且使用非加密数据来执行正常的引导。
如果第一存储器110被指定,则确定在操作S615:Y中执行安全引导。如果执行安全引导,则在操作S625中,CPU 130访问第一存储器110,并且在操作S630中检测初始化数据。在此之前,CPU 130可以禁止经由外部端口对其自身进行访问。
在操作S630中,CPU 130使用初始化数据来初始化基本的硬件。CPU130将存储在非易失性存储器200中的加密数据加载到第二存储器120中。
在操作S635中,CPU 130确定是否设置了安全引导模式。即,CPU 130可以使用外部引脚(或第一外部引脚)或第三存储器140来确定是否执行安全引导,而不管第一存储器110是否被指定。例如,即使非加密数据被存储在非易失性存储器200中,CPU 130也可以使用第一存储器110来执行引导。在这种情况下,解密被省略。基于存储在第三存储器140中的或另一外部引脚(在下文中,第二外部引脚)的另一指定值来确定模式是否是安全引导模式。
如果安全引导模式被设置,则在操作S640中,CPU 130使用存储在第一存储器110中的加密密钥来执行解密和认证。解密和认证可以根据上述各种算法(例如,DES、TDES、AES、SEED、RSA、ARIA等等)来执行。
如果在操作S645:N中,解密和认证中的至少一个失败,则在操作S660中,CPU 130落入无限循环。也就是说,CPU 130停止执行安全引导模式。如果在操作S645:Y中,解密和认证成功,则CPU 130在操作S650中改变地址映射。CPU 130可以控制使用第二存储器120,而不是使用第一存储器110。因此,在地址映射被改变之后,不可能访问在第一存储器110中存储的代码。此时,不可能利用JTAG来跟踪代码和密钥值,并且地址被设置为在被访问时读取0xffffff。
当地址映射被改变时,CPU 130在操作S655中跳至被复制到第二存储器120(例如,第一引导加载器)中的数据,并且使用该数据来执行引导操作。第一引导加载器是指用于将第二引导加载器加载到存储器中的引导加载器。引导加载器的提供UI和加载内核的核心功能通过第二引导加载器执行。考虑到不充足的空间,引导加载器可分为第一引导加载器和第二引导加载器。
如上所述,片上系统100可以以各种形式来实现,并且执行安全引导。上面描述的示例性实施例可以结合至少一个其它示例性实施例而发生变化。省略与这些示例性实施例相关的附图和描述。
图7是详细地示出了片上系统的示例的视图。参照图7,除了第一存储器110、第二存储器120、CPU 130、第三存储器140、以及总线150之外,片上系统100还可以包括DDR控制器185和各种电路155、160、165、170、175、和180。在图7中,通过使用掩模ROM来实现第一存储器110,并且通过使用SRAM来实现第二存储器120。通过使用EFUSE存储器来实现第三存储器140。第三存储器140可以存储用于选择加密密钥的设置值(密钥1、密钥2、和密钥3)、以及用于设置是否执行安全引导的指定值(掩模ROM)。
例如,电路155、160、165、170、175、和180中的每一个可以是例如,寄存器、逻辑电路、和多路复用器。第一电路155包括第一寄存器155-1。CPU 130可以使用第一电路155来控制经由外部端口对CPU的访问。具体地,第一电路155将与在第一寄存器155-1中寄存的值相对应的JTAG_EN信号输入到CPU 130。
也就是说,如果产生引导事件,则第四电路170输出关于通过外部引脚输入的值和通过第三存储器140输入的指定值执行的OR运算的结果。引导事件包括片上系统100或在其上安装了片上系统的装置(例如,电子装置)被开启的事件。如果安全引导将被执行,则“1”可以被记录在第三存储器140中。因此,第四电路170输出“1”。第四电路170的输出值被输入到第二电路160和第三电路165。
第二电路160和第三电路165分别包括第二寄存器160-1和第三寄存器165-1,以控制对第一存储器110的访问。被输入到第二电路160的第四电路170的输出值“1”被反转。因此,“0”被输入到第二电路160。第二电路160使用OR门输出关于输入值“0”和第二寄存器160-1中的存储器值执行的OR运算的值。因为在初始状态中,“0”被记录在第二寄存器160-1上,所以第二电路160最终将“0”输出到第一电路155。
第一电路155包括第一寄存器155-1。第一电路155包括用于选择性地输出存储在第一寄存器155-1中的值或外部值的多路复用器。如果从第二电路160输入“0”,则第一电路155向CPU 130输出禁止访问CPU的信号。因此,可以在预定时间即在具有SOC 100的装置被开启之后执行安全引导期间的时间内限制经由外部端口对CPU的访问。
如果装置被开启,CPU 130根据存储在第三存储器140中的设置值或者通过外部引脚输入的输入值来识别被指定的存储器。如果所指定的存储器是第一存储器110,则CPU130在第一寄存器155-1中存储第一值(例如,“1”),以禁止对CPU的访问。
如果系统预备(例如,至少解密和对解密数据的认证)完成,则CPU 130在第一个寄存器155-1中存储第二值(例如,“0”),以使得能够访问CPU。第二电路160的第二寄存器160-1的存储器值也可以被改变。
具体地,如果系统预备完成,则CPU 130在第二寄存器160-1上记录控制值(例如,“1”),以禁止访问第一存储器110,并且阻止第一存储器110的所有区域的数据被读取。如果第二寄存器160-1的存储器值被改变为“1”,则第二电路160的输出值被改变为“1”。
CPU 130在第三寄存器165-1上记录控制值(例如,“1”),以将对第一存储器110的访问改变为对第二存储器120的访问。在这种情况下,当CPU130访问第一存储器110时,对第一存储器110的访问被自动地改变为对第二存储器120的访问。因为解密的代码被事先复制到第二存储器120中,所以CPU 130可以使用所述解密的代码。
第四电路170可以包括OR门,以提供通过外部引脚或第三存储器140输入的指定值。CPU 130可以根据通过第四电路170输入的指定值来确定是否执行安全引导。
多路复用器175将从第二存储器120或第二电路160输出的值选择性地输入到总线150。
快闪引导加载器180是指用于存储引导加载器的闪存。当执行正常引导时,快闪引导加载器180加载存储在非易失性存储器200中的私有引导加载器。CPU 130使用快闪引导加载器180来执行正常引导。
DDR控制器185是控制在外部DDR存储器400上的数据读/写(R/W)的控制器。如上所述,片上系统100可以以各种形式来实现,并且可以与非易失性存储器200和DDR存储器300一起使用。片上系统100的详细配置并不局限于图7中所示,而是可以具体实现为其它各种形式。将参考附图来详细描述片上系统100的另一个示例性实施例。
图8是示出了第一存储器110中存储的数据的布局的示例的视图。参照图8,第一存储器110存储认证码910、安全引导加载器首部920、和第一引导加载器930。
可以根据各种加密算法(例如DES、TDES、AES、SEED、RSA、ARIA等等)来加密和存储认证码910。例如,认证码910可以被加密(例如,使用诸如DES、TDES、AES、SEED、RSA、ARIA等的加密方法来进行加密),并且根据如上所述的诸如HMAC-SHA256、HMAC-SHA1、和HMAC-MD5的认证算法而被存储。
安全引导加载器首部920可以包括电子签名信息、偏移值、大小、天气信息、以及用户ID。安全引导加载器首部920可以以诸如DES方法、TDES方法、AES方法、SEED算法、RSA方法、以及ARIA算法的各种加密算法中的一种而被加密和存储。
为了内部安全,第一引导加载器930可以被加密并且以加密状态被存储。
在图8中,为了内部安全,引导加载器930可以被设置为根据多个NOP(即,无操作)指令启动。
图9是示出了片上系统100的存储器映射940的示例的视图。参照图9,私有引导加载器被存储在第一存储器110的特定地址中。私有引导加载器可以用于正常引导。
如果执行安全引导,CPU 130可以将存储在非易失性存储器200中的第一引导加载器加载到(第二存储器120的)寄存器的区域191中、或者第二存储器120的特定区域192中。CPU 130使用加密密钥来解码第一引导加载器,并且将解密的第一引导加载器复制到第二存储器120的特定区域121中。第二存储器120可以被提供有一个或多个区域,诸如,用于读/写的RW部分122以使得可以从其读取数据或者向其写入数据;以及通用区域123。
如上所述,片上系统100可以使用各种内部存储器来处理外部非易失性存储器200的加密数据。
电子装置的制造商或使用电子装置的服务提供商可能希望将他/她自己的秘密密钥安全地存储在电子装置中。秘密密钥可以被用于各种目的。例如,秘密密钥可以被用来对内核的一些或者全部区域进行加密,或者在电子装置和制造商之间或在电子装置和服务提供商之间生成安全的通信信道。片上系统100的第一存储器110或第三存储器140可以通过使用OTP存储器来实现,并且可以存储上述秘密密钥。
根据上述各种示例性实施例的片上系统100可以在各种电子装置中使用。例如,可以在诸如打印机、多功能外设、传真机、或扫描仪的图像形成装置中使用片上系统。
根据示例性实施例,图像形成装置可以包括各种可消耗单元(例如,进纸器、充电单元、激光扫描单元、显影单元、转印单元、定影单元、纸放电单元、扫描单元、和扫描电机)和控制器。所述控制器使用可消耗单元来执行成像作业。如果CRUM(客户可更换单元监控)芯片被安装在可消耗单元中,则控制器可以根据图像形成作业更新记录在CRUM芯片上的数据。
控制器可以包括非易失性存储器(例如,非易失性存储器200),以及片上系统(例如,片上系统100)。非易失性存储器可以在其上记录加密数据。如果图像形成装置被开启,则片上系统使用被存储在非易失性存储器中的加密数据来执行安全引导,而且,如果安全引导完成时,则根据用户的命令来控制图像形成装置。
图10是示出了图像形成装置的示例的框图。参照图10 ,图像形成装置1000包括控制器1100、存储装置1200、用户接口1300、通信单元1400、电源1500、以及多个可消耗单元1600-1至1600-n。
存储装置1200可包括硬盘驱动器(HDD)或其它存储装置(例如,固态驱动器(SSD)、存储器件等)。存储装置1200不一定是通过使用内部存储器来实现,并且可以通过使用可拆卸地安装在图像形成装置1000上的外部存储器来实现。
用户接口1300可以从用户接收各种选择命令。用户接口1300可以包括显示面板和至少一个按钮。在这种情况下,显示面板可以通过使用触摸屏来实现。所述至少一个按钮可以被实现为触摸屏的一部分。用户接口1300可以提供各种UI屏幕,并且用户可通过直接触摸UI屏幕或操纵用户接口1300的按键来输入各种用户命令。
通信单元1400可以通过网络或局域网络(LAN)连接到外部装置,并且可以接收数据和命令。也就是说,通信单元1400可以通过本地接口连接到主机PC(个人计算机),或者可以通过网络以有线或无线方式连接到多个外部装置。美国IEEE的802.11标准、欧洲的超级LAN标准(hyper LAN standard)、或者日本的MMAC-PC标准可被用作无线通信标准。除了这些,诸如Wi-Fi、蓝牙、紫蜂、或近场频率通信(NFC)的各种通信方式可用于通信。
电源1500提供电力到图像形成装置1000的每一个元件(例如,控制器1100和多个可消耗单元1600-1至1600-n)。具体地,电源1500从外部源接收公共AC电力(AC_IN),使用诸如变压器、反相器、和整流器的元件来将其转换成适合于每个元件的电势的DC电力,并且输出DC电力(DC_OUT)。
控制器1100包括片上系统100和非易失性存储器200。因此,如果图像形成装置1000被开启时,控制器1100执行安全引导。安全引导可以以如上所述的各种方法被执行(例如,如以上与图5-6有关地描述的)。已经在上面描述执行安全引导的片上系统100及其操作,因此省略冗余的解释。
如果引导完成,则控制器1100根据通过通信单元1400连接到图像形成装置的外部装置的命令和数据,或者通过用户接口1300输入的用户选择命令,来控制图像形成装置的整体操作。
具体而言,如果在主机PC或者应用中安装的打印机驱动器中执行打印命令,则主机PC的打印机驱动器通过以预定的打印语言转换相应文件文件来生成打印数据。控制器1100通过通信单元1400接收这样的打印数据。控制器1100使用半色调(halftone)表将打印数据转换成由“0”和“1”组成的位图图像,并且控制所述多个可消耗单元1600-1至1600-n来在纸上打印位图图像。
各种各样的可消耗单元1600-1至1600-n可以根据图像形成装置100的种类来提供。如果图像形成装置是激光多功能外设,则可消耗单元1600-1至1600-n可以是进纸器、充电单元、激光扫描单元、显影单元、转印单元、定影单元、纸放电单元、扫描单元、和扫描电机。可消耗单元1600-1至1600-n中的至少一些可以包括CRUM芯片1610-1至1610-n。
CRUM芯片1610-1至1610-n可以通过仅使用存储器来实现,或者可以通过包括存储器和CPU在内来实现。CRUM芯片1610-1至1610-n可以具有与控制器1100分离的OS(操作系统),并且可以使用OS来独自执行初始化。CRUM芯片1610-1至1610–n执行关于控制器1100的认证,并且,如果认证成功,可以执行加密数据通信。CRUM芯片1610-1至1610-n可以以各种形式来实现。
图11是详细示出了CRUM芯片的示例的框图。参照图11,CRUM芯片1610包括OS存储器1611、非易失性存储器1612、易失性存储器1613、CPU 1614、密码术(密码)单元1615、篡改检测器1616、和接口1617。虽然未示出,CRUM芯片1610可以包括用于输出时钟信号的时钟单元、和用于生成用于认证的随机值的随机值生成器。然而,一些元件可以被删除,并且可以被包括在另一个元件中。密码单元1615可以是集成电路、处理器、现场可编程门阵列、可编程逻辑单元、和/或根据这里公开的本发明总体构思的示例性实施例来执行密码术(例如,加密数据和/或解密数据)的任何合适设备。篡改检测器1616可以是集成电路、传感器、处理器、现场可编程门阵列、可编程逻辑单元、和/或根据这里公开的本发明总体构思的示例性实施例来检测对可消耗单元(例如,第一可消耗单元1600-1、第二可消耗单元1600-2等)的篡改的任何合适装置。接口1617可以是用于向例如,包括片上系统100的主控制器1100(例如,如图10中所示)发送数据并且从例如,包括片上系统100的主控制器1100(例如,如图10中所示)接收数据的任何合适的通信接口。
OS存储器1611存储操作系统(OS),以用于驱动可消耗单元1600-1至1600-n。非易失性存储器1612可以存储关于可消耗单元(例如,可消耗单元1600-1至1600-n中的任何一个)和CRUM芯片(例如,第一CRUM芯片1610-1至1610–n)的一个或者多个数据和程序。具体地,非易失性存储器1612可以存储电子签名信息、一个或多个加密程序代码、可消耗单元的状态信息(例如,色粉剩余信息、更换时间信息、剩余将打印的份数)、独特信息(例如,制造商信息、制造日期信息、序列号、产品型号名称)、及售后服务信息。CPU 1614可将在非易失性存储器1612中存储的程序和数据加载到易失性存储器1613中,并且使用它们。
密码单元1615支持加密算法,并且可以使CPU 1614执行关于在图像形成装置中提供的控制器1100的认证,或者(例如,经由接口1617)执行加密通信。具体地,密码单元1615可以利用上述各种加密算法来执行认证或加密数据通信。
篡改检测器1616用于保护和/或防止各种物理黑客攻击。即,篡改检测器1616检测和保护可消耗单元(例如,可消耗单元1600-1至1600–n中的任何一个)不被篡改。具体而言,篡改检测器1616监视操作环境,例如,电压、温度、压力、光、和频率,并且如果存在诸如启封(即,解封装CRUM芯片1610,以确定它如何运转)或任何其它篡改活动的尝试,则篡改检测器1616删除或物理阻止数据(例如,存储在易失性存储器1613、非易失性存储器1612、和/或O/S存储器1611中的数据)。在这种情况下,篡改检测器1616可包括单独的电源。
通过提供如上所述的密码单元1615和篡改检测器1616,使用硬件和软件两者的系统的数据安全性是可能的。
接口1617通过有线和/或无线通信链路来将CPU 1614和控制器1100彼此连接。具体地,接口1617可通过使用串行接口或者有线和/或无线接口来实现。
如上所述,片上系统100可以被安装在图像形成装置中,并可以执行安全引导。因此,片上系统可以最大限度地减少和/或防止未经授权的人改变引导过程,或者侵入可消耗单元(例如,可消耗单元1600-1至1600–n中的任何一个)的数据。除了图像形成装置之外,片上系统100可以在各种电子装置中安装和使用。
如上所述,片上系统100最初使用第一存储器110,并且随后使用第二存储器120来执行操作。诸如与初始化相关的各种数据、用于解密代码的加密密钥、以及引导代码等的重要信息可以被存储在第一存储器110中。因此,当使用第一存储器110完成时,需要通过禁止访问第一存储器110,来最大限度地减少和/或防止第一存储器110的数据被改变,或者第一存储器110的数据被泄露。为此,如与图7有关地描述的,在片上系统100内可以额外地预备第二电路160和第三电路165。但是,片上系统110的配置不限于此,并且可以施加各种修改。
图12是示出了根据本发明总体构思的示例性实施例的在片上系统中使用存储器的方法的流程图。根据图12,当在操作S1210中接通图像形成装置的电源时,CPU 130在操作S1220中访问第一存储器110。因此,在操作S1230中,CPU 130通过使用被存储在第一存储器中的程序和数据来执行各种操作。例如,当初始化数据被存储在第一存储器110中时,CPU130通过使用初始化数据来执行对图像形成装置的初始化。当初始化完成时,CPU 130读取在非易失性存储器200中的加密数据,并且通过使用存储在第一存储器110中的加密密钥来解密该数据。CPU 130在第二存储器120中存储解密的数据。
通过使用第二存储器120,而不是通过使用第一存储器110来执行引导操作。由此,CPU 130不需要再使用第一存储器110。因此,在操作S1240中,CPU 130禁止访问第一存储器110。在操作S1250中,CPU 130通过访问第二存储器120来执行下一个操作。
由于在如上所展示的各种示例性实施例中具体描述了解密操作和引导操作,所以省略冗余的描述。
图13是示出了片上系统的本发明总体构思的示例性实施例的视图。如图13所示,片上系统100可包括:第一存储器控制器1310、第二存储器控制器1320、和切换单元1330。片上系统100可以包括第一存储器110、第二存储器120、CPU 130、第三存储器140、总线150、DDR控制器185、和电路155、160、165、170、175、和180。与上面的图7有关地具体描述了除了第一存储器控制器1310、第二存储器控制器1320、和切换单元1330之外的其它元件。因此,省略冗余的描述。
第一存储器控制器1310是用于控制对第一存储器110的访问的元件和/或设备。第一存储器控制器1310可以是集成电路、处理器、可编程逻辑器件、现场可编程门阵列、和/或根据本发明总体构思的示例性实施例来控制对第一存储器110的访问的任何合适设备。当从CPU 130接收读取信号时,第一存储器控制器1310读取在第一存储器110内由读信号所指定的区域中的数据,并且将数据输出到CPU 130。第二存储器控制器1320可以控制对第二存储器120的访问。与第一存储器控制器1310相同,第二存储器控制器1320可以执行读和写。第二存储器控制器1320可以是集成电路、处理器、可编程逻辑器件、现场可编程门阵列、和/或根据本发明总体构思的示例性实施例的控制对第一存储器110的访问的任何合适设备。
切换单元1330是用于选择性地将第一存储器控制器1310和第二个存储器控制器1320中的一个与总线150连接的元件和/或电子设备。即,如上所述,CPU 130使用第一存储器110,直到在装置(例如,图像形成装置,电子装置等)被开启之后非易失性存储器200中的数据被解密,此后,CPU 130使用第二存储器120。切换单元1330在CPU 130处于使用第一存储器110的操作状态中时将第一存储器控制器1310与总线150连接,并且在使用第一存储器110完成时将第二存储器控制器1320与总线150连接。
如图13所示,第一存储器控制器1310包括寄存器1311。在第一存储器110上的访问控制值被存储在寄存器1311中。访问控制值是用于使能或禁止对第一存储器110的访问的值。访问控制值可以包括一个或多个比特值。
如图13所示,嵌入在第一存储器控制器1310中的寄存器1311的数据被输入到第三电路165。与图7中所示的根据本发明总体构思的示例性实施例不同,第三电路165不包括反相器和QR门。取而代之的是,第三电路165可以包括AND门165-2。当存储在第三寄存器165-1中的存储器、存储在寄存器1311中的存储器值、以及从第四电路170输出的输出值全部都是“1”时,AND门165-2输出“1”。因此,当CPU 130存储在寄存器1311中具有“0”值的访问控制值时,,第三电路165输出“0”的值而不管存储在第三寄存器165-1的存储器值和从第四电路170输出的输出值。
当片上系统100被开启和/或从电源接收电力时,例如“1”的访问控制值被存储在寄存器1311中。因此,第三电路165输出“1”到切换单元1330。切换单元1330包括:第一多路复用器1331、第二多路复用器1332和第三多路复用器1333。第一多路复用器1331根据从第三电路165输出的值选择性地将从第一存储器控制器1310和第二存储器控制器1320输出的值中的一个输出到总线150。图13示出了在其中当从第三电路165输出“1”时,从第一存储器控制器1310输出的值被发送到总线150,并且当从第三电路165输出“0”时,从第二存储器控制器1320输出的值被发送到总线150的电路结构。第二多路复用器1332和第三多路复用器1333根据从第三电路165输出的值来将从总线150输入的值输出到第一存储器控制器1310或者第二存储器控制器1320。
根据与图12和13有关地示出和描述的本发明总体构思的示例性实施例,即诸如掩模ROM的第一存储器110、即诸如内部存储器的第二存储器120可以被分配到相同的地址区域,并且根据引导顺序被选择性地使用。也就是说,在首先使用存储在第一存储器110中的代码之后,在最后阶段,通过设置寄存器1311,在切换单元1330内只有总线命令“1”和数据输入“1”可以是有效的。即使CPU 130访问相同的地址,第二存储器120也被连接,因此,第一存储器110的安全性增加和/或加强。虽然图13示出的是寄存器1311被布置在第一存储器控制器1310的内部,但是显然它不局限于这种情况。例如,寄存器1311可以被布置在第一存储器控制器1310的外部,并且可以在初始阶段(即,仅设置一次,而不在后来改变)设置的各种逻辑电路可以被嵌入在第一存储器控制器1310中,而不是寄存器1311中。
因为(例如,通过设置寄存器1311、和/或根据来自第二存储器控制器1320和/或第二电路160的输出)预备了切换单元1330,片上系统100不需要利用总线150直接连接到诸如第一存储器控制器1310和第二存储器控制器1320的从动装置,并且因此,逻辑尺寸可以减小。
在如上面所讨论的本发明总体构思的示例性实施例中,片上系统100通过使用存储在第一存储器110、第三存储器140等中的各种软件代码来执行初始化,或执行安全引导。然而,存在恶意的人可以通过解封装过程而直接执行对于片上系统100内的ROM(例如,第一存储器110)的侵入的风险。因此,在本发明总体构思的示例性实施例中,软件代码可以在片上系统100中自主生成并且可以被使用,如下面详细讨论的。
图14是示出了根据本发明总体构思的示例性实施例的片上系统100的框图。如图14中所示,片上系统100包括第一存储器110、第二存储器120、CPU 130、第三存储器140、总线150、以及代码生成单元1400。以上详细描述了第一存储器110、第二存储器120、CPU 130、第三存储器140、和总线150。
代码生成单元1400生成一个或多个软件代码。CPU 130不仅可以使用存储在第一到第三存储器110、120、和140中的数据,而且可以使用在代码生成单元1400中生成的软件代码。
如上所述,例如用于初始化系统的代码、用于对加密的外部程序代码的代码进行解密、以及加密密钥等的各种数据可以被存储在第一存储器110中。代码生成单元1400能够生成被存储在第一存储器110中的数据的至少一部分,并且向CPU 130提供数据。
处理器130可以通过使用在代码生成单元1400中生成的软件代码以及存储在第一存储器110中的数据来执行初始化。例如,不是所有的初始化代码都被存储在第一存储器110中,并且,在本发明总体构思的一些示例性实施例中,一些没有被存储的代码通过代码生成单元1400生成。这里,CPU 130可以通过在在第一存储器110中接近复位向量和读取初始化代码的同时从代码生成单元1400中接收一些软件代码来执行初始化。在本发明总体构思的示例性实施例中,CPU 130可以通过使用存储在第一存储器110中的值和从代码生成单元1400输出的数据来进行各种操作。因此,即使侵入了第一存储器110,第三人(例如,黑客)也不可能知道整个初始化代码。
图15示出了根据本发明总体构思的示例性实施例的片上系统。如图15中所示,片上系统100不包括第一存储器110,但包括代码生成单元1400。片上系统100包括在上面详细描述的第二存储器120、CPU 130、和第三存储器140、以及总线150。代码生成单元1400能够生成各种数据,例如,系统初始化代码、解密代码、加密密钥等。CPU 130将地址输入到代码生成单元1400,并且接收根据地址而生成的软件代码。因此,在不包括第一存储器110的图15中示出的示例性实施例中,CPU 130可以通过使用由代码生成单元1400生成的代码(例如,相对于存储在存储器(例如第一存储器110)中的代码)来执行初始化。
图16示出了图14和/或图15中示出的、在本发明总体构思的示例性实施例中使用的代码生成单元1400的示例性实施例。如图16中所示,代码生成单元1400包括地址解码器1410、多个寄存器1420-1、1420-2、至1420-n和多路复用器1430。地址解码器1410可以是电路、集成电路、现场可编程门阵列、可编程逻辑设备、和/或用于解码地址的任何合适设备。寄存器1420-1、1420-2、和1420-n可以是在一个或多个存储器件中的寄存器。
地址解码器1410从CPU 130接收地址,并且解码地址。多路复用器1430接收在地址解码器1410中解码的地址,并且根据地址来访问多个寄存器1420-1至1420-n中的一个或多个。
具体地,多路复用器1430从多个寄存器1420-1至1420-n中,选择性地读取存储在由地址解码器1410中解码的地址所指定的寄存器中存储的寄存器值(例如,在一个或多个寄存器中的数据值),并且通过组合寄存器值来生成软件代码。
图17示出了根据本发明总体构思的代码生成单元的示例性实施例。在图17中示出的代码生成单元1700可以取代图14和/或者图15中所示出的代码生成单元1400。如图17所示,代码生成单元1700包括地址解码器1710、第一生成单元1720、多个指令寄存器1730-1至1730-n和1750-1至1750-m、多个指令多路复用器1740和1760、代码格式化器(codeformatter)1770、第二生成单元1780、多个数据寄存器1790-1至1790–x、数据多路复用器1800、以及多路复用器1810。
地址解码器1710从CPU 130接收地址,并且解码地址,并向第一生成单元1720和第二生成单元1780提供解码的地址。第一生成单元1720从在地址解码器1710中的解码地址中读取指令地址,并生成指令地址。在第一生成单元1720中生成的指令地址被提供给多个指令多路复用器(例如,分别提供给指令多路复用器1740和1760)。
虽然图17仅示出了两个指令多路复用器1740和1760,但是指令多路复用器的数量可以根据用于区分指令寄存器的组的数量来改变。也就是说,指令寄存器可以根据输出指令地址的、来自第一生成单元1720的输出的数量来分组,并且多路复用器可被提供给指令寄存器中的每一组。
指令寄存器1730-1至1730-n和1750-1至1750-m可以根据构成软件代码的字段来分组,并且被区分为多个组。指令寄存器1730-1至1730-n和1750-1至1750-m可以存储构成软件代码的特定代码、或者至少一个比特数据。图17示出了被区分为总共n组(例如,寄存器1730-1、1730-2和1730-n)的指令寄存器。
多个指令多路复用器1740和1760选择性从根据指令地址匹配的指令寄存器(例如,指令寄存器1730-1至1730-n和1750-1至1750-m)中读取寄存器值(例如,在寄存器中的数据值)。例如,当第一组内的第一、第三、第四、和第五寄存器、和第n组内的第二、第三、第五、和第六寄存器在指令地址中被指定时,与第一组匹配的第一多路复用器1740从第一寄存器1740-1、第三寄存器1740-3、第四寄存器1740-4、和第五寄存器1740-5中读取寄存器值。与第n组匹配的第二多路复用器1760从第二寄存器1740-2、第三寄存器1740-3、第五寄存器1740-5、和第六寄存器1740-6读取寄存器值。读取的值被发送到代码格式化器1770。
代码格式化器1770将从多个指令多路复用器1740和1760读取的值组合,并生成代码(即,指令)。代码格式化器1770可以是例如,电路和/或用于组合值以及生成代码和/或指令的任何合适设备。
第二生成单元1780基于在地址解码器1710中解码的地址来生成数据地址。第二生成单元1780向数据多路复用器1800提供生成的数据地址。
数据多路复用器1800根据所述数据地址从多个数据寄存器1790-1至1790–x中选择性地读取寄存器值(例如,在寄存器中的数据值)。各种数据被部分分割,并且可以被存储在多个数据寄存器1790-1至1790-x的一个或多个中。由数据多路复用器1800接收的寄存器值中的一个或多个(例如,存储在寄存器1790-1至1790-x中的数据值)由数据多路复用器1800复用,并且被提供到多路复用器1810。
多路复用器1810可以组合在代码格式化器1770中生成的代码和在数据多路复用器1800中生成的数据,并生成软件代码。生成的软件代码可以被提供给CPU 130,或者可以被复制到第二存储器120中。
处理器130通过使用在代码生成单元1400中生成的软件代码不仅可以执行初始化操作,而且可以执行各种操作。
图18和图19是示出了代码生成单元(例如,图14和图15中所示的代码生成单元1400和/或图17中所示的代码生成单元1700)中生成的软件代码的本发明总体构思的示例性实施例的视图。
根据图18,软件代码可以包括多个字段1910至1950。诸如条件(在图18中被示出为字段1910)、操作码(即,用于指定要执行的操作的操作代码;如图18中的字段1920所示)、和寄存器值(例如,在图18中分别由字段1930、1940、和1950所示的寄存器0、1、或2的任何一个中的值)的各种数据可以被存储在字段1910至1950中的一个或者多个中。代码生成单元1400或代码生成单元1700可以通过分别从与每个字段相对应的组的寄存器中读取寄存器值,并且组合所述值(例如,通过使用多路复用器)来生成如图18中所示的软件代码。
图19示出了软件代码的本发明总体构思的示例性实施例。虽然图18中的软件代码可包括具有相同大小的字段,但是图19中的软件代码可以包括其大小互不相同的字段。如图19中所示,条件字段1960和操作码(例如,操作代码)字段1970被预备,并且其它数据可以被存储在分离字段1980中。即,条件字段1960和操作码字段1970可以是相同的大小,并且分离字段1980可以是不同的(即,更大)的尺寸。可替换地,条件字段1960、操作码字段1970、和分离字段1980可以分别具有不同的大小。
软件代码可以以各种形式配置。一般来说,根据特定的部分,例如命令部分、操作部分等来分割软件代码。根据所述部分,这些命令通常是相似的,并且因此,如果代码被优化,并且考虑到优化的代码来创建硬件设备,则可以减小硬件设备的尺寸。也就是说,代码可以被优化以便更迅速地运行,或者使得利用更少的存储器存储装置或其它资源来操作,或者消耗更少功率。诸如片上系统100的硬件设备可以通过例如,减少存储器(例如,第一存储器110、第二存储器120、和/或第三存储器140)的量和/或大小来减小尺寸。当运行优化的代码时,硬件设备(例如,片上系统100)也消耗更少的功率。
如本发明总体构思的上面各种示例性实施例所述,加密程序或加密数据被存储在未在片上系统100中嵌入的外部存储器200中(例如,在图1、3、4、7和图13-15中示出)。外部存储器200可以是可以从其读取或者向其写入数据的非易失性存储器。
快闪存储器(例如,非易失性存储器200)可以属于根据接口规范和内部结构的各种类型。具体地,快闪存储器可以是基于CPU 130和接口规范的串行和/或并行的快闪存储器,并且可以是基于快闪存储器的内部结构的NAND或NOR闪存。
图20示出了NOR快闪存储器2000的引脚结构。NOR快闪存储器2000可以被用作图1、3、4、7和图13-15中示出的非易失性快闪存储器200。如图20中所示,NOR快闪存储器2000可以包括诸如WE#引脚2010的各种引脚。WE#引脚2010被用来控制的命令接口的总线写操作。也就是说,当通过WE#引脚2010接收到信号时,写操作可以在NOR快闪存储器2000中执行。
图21示出了NAND快闪存储器2100的引脚结构。NAND快闪存储器2100可被用作在图1、3、4、7和图13-15中示出的非易失性快闪存储器200。如图21所示,NAND快闪存储器2100可包括诸如WE#引脚2110的各种引脚。WE#引脚2110被用来为NAND快闪存储器2100接收写信号。
图22示出了串行外设接口(SPI)快闪存储器2200的引脚结构。SPI快闪存储器2200可以被用作图1、3、4、7和图13-15中示出的非易失性快闪存储器200。根据图22,SPI快闪存储器2200包括用于写操作的W#引脚2210。
处理器130可以通过使用嵌入在每个快闪存储器(例如,非易失性存储器200,其可以是NOR快闪存储器2000、NAND快闪存储器2100、和/或SPI快闪存储器2200)中的引脚来执行写操作。如上所述,虽然快闪存储器是加密的,但是片上系统100的加密密钥值可以被暴露。当加密密钥值被暴露时,存在存储在快闪存储器中的固件可被改变的风险。因此,需要预先最大限度地减少和/或防止快闪存储器被改变。根据本发明总体构思的示例性实施例,外部存储器的写引脚可被禁用。即,NOR快闪存储器2000的WE#引脚2010、NAND快闪存储器2100的WE#引脚2110、和/或SPI快闪存储器2200的W#引脚2210可被禁用,从而最大限度地减少和/或防止快闪存储器被未经授权的操作(例如,侵入操作)改变。
图23是示出了根据本发明总体构思的示例性实施例的片上系统100和外部存储器的结构的视图。图23示出了NOR快闪存储器(例如,图20中所示的NOR快闪存储器2000)被用作外部存储器(例如,非易失性存储器200)的情况。这里,片上系统100可以进一步包括NOR快闪控制器(flash controller)2310,以控制NOR快闪存储器2000。NOR快闪控制器2310可以是例如,用于控制NOR快闪存储器2000的例如读操作和/或写操作的操作的电路和/或集成电路。
CPU 130可以通过NOR快闪控制器2310读取存储在NOR型快闪存储器2000中的各种数据和软件。CPU 130可以通过NOR快闪控制器2310将写信号输出到NOR快闪存储器2000。
然而,如图23中所示,NOR快闪存储器2000的写引脚2010可以被禁用。禁用的过程可以用各种方法来执行。图23示出了其中写引脚被连接到嵌入片上系统100和NOR快闪存储器2000的主板中所预备的禁用端2320的状态。这里,即使在NOR快闪控制器2310中输出写信号,写信号也不能被输入到写引脚2010,因此,当写引脚2010被禁用时,不可能改变NOR快闪存储器2000的数据。
图23仅仅示出了NOR快闪存储器2000,但是如上所述,非易失性存储器,即,外部存储器(例如,非易失性存储器200)可以被配置为各种形式,例如,NAND快闪存储器2100或SPI快闪存储器2200等等,并且一个片上系统100可以与各种类型的快闪存储器连接。在这些快闪存储器2100和2200中,写引脚可以被禁用,从而阻止数据改变操作。
根据本发明总体构思的示例性实施例,当片上系统满足特定条件时,可以执行对于外部存储器的写入。
图24是示出了本发明总体构思的示例性实施例的控制存储器的方法的流程图。根据示例性实施例,片上系统100可以包括存储器控制器,以用于控制对外部非易失性存储器的访问。
当在操作S2410中发生写事件时,在操作S2420中,存储器控制器从CPU 130接收写信号和第一密钥值。用户可以经由用户接口(例如,图10中所示的用户接口1300)来输入片上系统100接收到的第一密钥值,或者从CPU 130可以自动地输入第一密钥值。CPU 130可以随机地选择预先存储的多个密钥值中的一个,并且可以将选择的密钥值的数量输入到存储器控制器,或者可以输入密钥值本身。
当在操作S2420中接收到第一密钥值时,在操作S2430中,存储器控制器(例如,图23中所示的NOR快闪控制器2310)将接收的第一密钥值与预先存储的第二密钥值进行比较。当在操作S2440中确定两个密钥值彼此相同时,在操作S2450中,存储器控制器(例如,图23中所示的NOR快闪控制器2310)对外部存储器(例如,图23中所示的NOR快闪存储器2000)进行写操作。当在操作S2430中,接收到的第一密钥值与预先存储的第二密钥值不相同时,存储器控制器阻止和/或防止到外部存储器的写操作。
图25是示出了如图24中所示的、执行控制存储器的方法的存储器控制器的示例性实施例的视图。根据图25,存储器控制器2500包括信号传输单元2510、密钥值存储装置2520、比较单元2530、存储器访问控制器2540、信号处理器2550、和信号生成单元2560。在本发明总体构思的示例性实施例中,存储器控制器2500可替代在图23所示的NOR快闪控制器2310。信号传输单元2510可以是电路、和集成电路、和/或根据这里公开的本发明总体构思的示例性实施例来比较和传输信号的任何合适设备。密钥值存储装置2520可以是存储器件。比较单元2530可以是电路、集成电路、可编程逻辑单元、或现场可编程门阵列、和/或用于比较信号的任何合适设备。
信号生成单元2560可以是电路、集成电路、可编程逻辑单元、或现场可编程门阵列、和/或用于根据本发明总体构思的示例性实施例来生成信号(例如,时钟信号、从选择和/或芯片选择信号等)的任何合适设备。信号生成单元2560可以接收和生成信号,以便与通信地耦合到诸如串行外设接口(SPI)的接口的一个或多个设备通信。信号生成单元2560可以与例如,传感器、控制设备、通信接口、存储器、和/或例如可以图4中所示和上面描述的主板300上安装的显示器通信。有限状态机2561可以在与一个或多个设备通信期间,生成和输出信号生成单元的一个或者多个操作状态。
如图25中所示,信号传输单元2510通过诸如APB(高级外设总线)的总线(例如,图4和图13-15中所示的总线150)来接收各种信号,并将所述信号传输给比较单元2530或信号处理器2550等。具体地,当从CPU 130发送第一密钥值时,信号传输单元2510在寄存器2511内存储第一密钥值,并向比较单元2530提供所存储的第一密钥值。
至少一个第二密钥值可以被存储在密钥值存储装置2520中。
当通过信号传输单元251传输第一密钥值时,比较单元2530将存储在密钥值存储装置2520中的第二密钥值与接收到的第一密钥值进行比较。
比较单元2530可以根据比较的结果来输出诸如“0”或“1”的信号。即,比较单元2530可以比较第一密钥值和第二密钥值,并且根据第一密钥值是否与第二密钥值相同来输出信号(例如,可以通过比较单元2530输出“1”),并且当第一密钥值与第二密钥值不同时输出不同的信号(例如,可以通过比较单元2530输出“0”)。
信号处理器2550可以根据比较单元2530确定的比较结果来选择性地从CPU 130向外部非易失性存储器(例如,图1、3、4、7和图13-15中所示的非易失性存储器200、和/或图23中所示的NOR快闪存储器2000)输出写信号。信号处理器2550可以将在外部非易失性存储器200中读取的信号传输到存储器访问控制器2540。
信号处理器2550可以包括用于控制写操作的第一开关2551-1、用于控制读操作的第二开关2551-2、用于将发送或接收的信号转换成预定格式数据的转换器2552、以及滤波器单元2553等。第一开关2551-1或第二开关2551-2可以是一个或多个逻辑电路。转换器2552和滤波器单元2553可以是电路、集成电路、和/或根据这里公开的示例性实施例分别转换信号或者过滤信号的任何合适设备。因此,存储器访问控制器2540和转换器2552可以根据来自比较单元2530的比较结果的输出值而被连接或阻断。
例如,当存储在寄存器2511中的第一密钥值与存储在密钥值存储装置2520中的第二密钥值不同时,比较单元2530输出“0”,并且当第一密钥值与第二密钥值相同时,比较单元2530可以输出“1”。当比较单元2530输出“0”时,第一开关2551-1可以禁止与转换器2552的连接。因此,当控制写操作的第一开关2551-1禁止与转换器2552的连接时,没有任何输出。也就是说,通过第一开关2551-1禁用存储器访问控制器2540和信号处理器2550的转换器2552之间的连接。另外,即使从存储器访问控制器2540输入任何值,仍可以仅仅输出固定值,例如,“0”。当从比较单元2530输出“1”时,第一开关2551-1将从存储器访问控制器2540输出的信号传输到转换器2552。
转换器2552将从存储器访问控制器2540输出的写信号转换为存储器数据,并且将数据发送到外部非易失性存储器200(例如,如图1、3、4、7、和图13-15中所示),或可替换地,发送到图23中所示的NOR快闪存储器2000。
滤波器单元2553对从非易失性存储器200(例如,如图1、3、4、7、和图13-15中所示的,或可替换地,在图23中所示的NOR快闪存储器2000)读取的数据进行滤波,并且将数据传输到转换器2552。转换器2552向第二开关2551-2提供传输的数据。第二开关2551-2被配置为将从转换器2552输入的值传输到存储器访问控制器2540。当从比较单元2530输入“0”时,第二开关2555-2也禁用在转换器2552和存储器访问控制器2540之间的连接,并且当从比较单元2530输入“1”时,第二开关2555-2连接转换器2552和存储器访问控制器2540。图25示出了第二开关2551-2与第一开关2551-1,但是根据本发明总体构思的示例性实施例,第二开关2551-2可被省略,使得读操作总是可用的。也就是说,在本发明总体构思的示例性实施例中,第二开关2551-2可被省略,使得数据可以从非易失性存储器200或NOR快闪存储器2000中读取,并且读取的数据被提供给转换器2552和存储器访问控制器2540,使得读取的数据可以被提供给CPU 130。
存储器访问控制器2540根据通过APB或AHB(高级高性能总线)输入的写信号或读信号来执行关于外部存储器200(例如,如图1、3、4、7、和图13-15中所示的,或可替换地,图23中所示的NOR快闪存储器2000)的读操作或者写操作。如上所述,当从CPU 130输入的第一密钥值(和,例如,存储在信号传输单元2510的寄存器2511中的第一密钥值)与(例如,存储在密钥值存储单元2520中的)预先存储的第二密钥值相同时,存储器访问控制器2540可以在非易失性存储器200(或者可替换地,图23中所示的NOR快闪存储器2000)中写入各种数据。如果不是,则存储器访问控制器2540不能在非易失性存储器200中写入数据,即使存储器访问控制器2540输出写信号也这样。
如上所述,根据本发明总体构思的各种示例性实施例,可以最大限度地减少和/或防止对改变在非易失性存储器中存储的程序或者数据的尝试。
如上所述的本发明总体构思的示例性实施例中,加密代码可以被存储在非易失性存储器中。当密钥值不存在时,此代码不能被解密。然而,当密钥值被暴露时,存储在非易失性存储器中的加密代码可通过被解密来使用,并且可以通过生成被任意修改的固件代码来使用。即使从图像形成装置不能读取密钥值,密钥值也可能在图像形成装置的制造商内部泄漏。这里公开的本发明总体构思的示例性实施例最大限度地减少和/或防止在密钥值被暴露时,固件代码被黑客随机地改变。
图26是示出了根据本发明总体构思的示例性实施例的控制打印的方法的流程图。如图26中所示,主机设备2600与图像形成装置1000通信,并且控制图像形成装置1000的操作。主机设备2600和图像形成装置1000之间的通信可以经由有线和/或无线通信链路。主机设备2600可以是服务器、个人计算机、膝上型计算机、平板计算机、智能电话、便携式媒体播放器、数码相机、和/或任何其它电子设备。
如上所述,当存储在图像形成装置1000中的密钥值被暴露时,有可能改变固件。因此,黑客可以根据黑客的命令来随机地加密或解密,或执行加密和/或解密,因此,难以管理图像形成装置。在本发明总体构思的此示例性实施例中,主机设备2600将图像形成装置1000所使用的密文和预先存储的密文进行比较,并且可以确定图像形成装置1000是处于正常状态还是处于被侵入状态。
具体而言,在操作S2610中,主机设备2600存储密文。密文包括诸如被加密为预定密钥值的固件的程序。固件可以被更新(例如,经常更新、定期更新、等等),以便改善图像形成装置1000的容量或能力,并且被生成为新的版本。因此,密文根据固件版本而变化,但相同版本固件的密文在所有时候都是相同的。当密钥值被暴露并且固件被侵入时,被修改的固件执行正常操作,但被修改的固件的密文改变到与正常发布的版本不同的另一个版本。主机设备2600可以将正常加密的固件的密文与固件的版本信息进行匹配,并且存储它们。密文和版本信息可以与主机设备2600的打印机驱动器一起被存储。
当事件发生时(例如,随机发生的事件),在操作S2615,主机设备2600可以向图像形成装置1000请求密文和版本信息。这里,所述事件可以包括各种事件,例如,预定时间间隔临近的事件、打印命令被输入的事件、主机设备2600和图像形成装置1000之间的通信被连接的事件、以及图像形成装置1000被开启并且引导完成的事件。除了这些事件,所述事件可以包括例如检查密文是否是捏造的的各种情形。
当在操作S2615,从主机设备2600接收到对于密文和版本信息的请求,与此同时,在操作S2620中引导完成时,在操作S2625中,图像形成装置1000将预先存储的密文和版本信息发送到主机设备2600。
主机设备2600可以从图像形成装置1000接收密文和版本信息。主机设备2600可以存储各种版本信息和与版本信息匹配的密文。在操作S2630中,主机设备2600将与接收到的版本信息匹配的密文与从预先存储的版本信息中接收的密文进行比较。
在操作S2630中将与接收到的版本信息匹配的密文与从预先存储的版本信息中接收的密文进行比较之后,当两个密文彼此不相同时,则在操作S2635中确定密文是捏造的。当确定密文是捏造的时,在操作S2645中,主机设备2600在打印机列表中登记图像形成装置1000。在打印机列表中的打印机执行打印操作可以被阻止,从而使图像形成装置1000不可用。
当确定密码不是捏造的时,在操作S2640中,主机设备2600在用于打印的等待状态中操作。当用户输入打印命令(例如,主机设备2600从用户接收打印命令)时,主机设备2600将打印数据和打印作业命令发送到图像形成装置1000中,并执行打印。
图27是示出了用于执行如图26中所示的控制打印的方法的主机设备的本发明总体构思的示例性实施例的框图。如图27中所示,主机设备2600包括存储装置2610、控制器2620、以及通信单元2630。主机设备2600可以是PC、膝上型计算机、移动电话、PDA、平板PC、和服务器等。存储装置2610可以是存储器件,并且控制器可以是CPU、处理器、集成电路、可编程逻辑器件、现场可编程门阵列、和/或任何合适的控制器设备。通信单元可以是用于经由有线和/或无线通信链路来接收和发送数据的任何设备。
存储装置2610可以存储密文。密文可以根据各种固件的版本独自(即,与存储装置2610中存储的其它数据分离的)存储在存储装置2610中。当存储装置2610被连接到一个或多个设备(例如,包括存储装置2610的主机设备2600经由通信单元2630通信地连接到一个或多个设备)时,包括识别信息(例如,每个设备的型号名称、制造商名称、序列号、固件名称、固件版本等)的密文可以被单独地存储。
当预定的事件发生时,通信单元2630可以接收存储在图像形成装置中的密文。如上所述,预定的事件可以包括检查密文是否被捏造或者未出现,通信单元向图像形成装置请求密文,并且接收密文。这里,版本信息和识别信息与密文一起可以被接收。
控制器2620通过使用从图像形成装置1000中接收到的版本信息和识别信息等,从存储在存储装置2610中的密文中读取与图像形成装置1000的固件版本相对应的密文。控制器2620将读取的密文与接收到的密文进行比较。当两个密文彼此相同时,控制器2620确定密文不是捏造的,并且控制器2620控制图像形成装置1000处于用于打印的等待状态。当两个密文彼此不同时,控制器2620确定密文是捏造的,并且控制器2620阻止使用图像形成装置1000。
图28和29是示出了与彼此不同的版本相对应的明文和密文的本发明总体构思的示例性实施例的视图。在图28中,当在操作S2830中、明文(版本1)2820根据版本1由密钥值2810加密时,密文(版本1)2840被生成。密文(版本1)2840可以被存储在非易失性存储器中。如在上面公开的本发明总体构思的各种示例性实施例中,当执行引导时,或当各种操作要被执行时,CPU 130读取存储在非易失性存储器(例如,非易失性存储器200)中的加密代码,或者,也就是说,密文(版本1)2840。在操作S2850中,CPU130通过使用密钥值2810(其与在操作S2830中的加密中使用的密钥值(例如,密钥2810)相同)来解密密文(版本1)2840,并且生成明文(版本1)2820,并使用明文(版本1)2820。
图29是根据版本2的明文和密文的示例性实施例。即使假定图29中的密钥值2810与版本1的密钥值2810相同,根据版本2的明文2920也与版本1的明文2820不同,因此,在操作S2930中的加密之后的密文2940也与版本1不同。在操作S2950中,通过CPU 130使用密钥值2810在操作S2950中对密文2940解密,以便生成版本2的明文2920,使得CPU 130可以使用明文(版本2)2920。
因此,根据装置的版本的密文被存储在每个图像形成装置中并被使用,但是与多个版本的每一个相对应的多个密文可以被存储在主机设备2600中。
图30示出了密钥值被泄露并且代码被侵入的状态。被侵入代码的密文3020不是正式发布的版本,但是通过由黑客对原始文本进行修改制得以便生成新的明文3010的密文3020,然后,分别在加密和解密的操作S2930和S2950期间,将密钥值2810(被暴露和/或者被泄露)应用到明文3010。也就是说,在操作S2930中,使用密钥2810来加密新的明文(即,被侵入代码)3010,以形成密文3020。在操作S2950中使用密钥2810来解密密文3020,以形成新的明文3010(即,被侵入代码)。当此密文3020被存储在非易失性存储器中时,CPU 130必须执行黑客所意图的引导,因此,难以正常地管理图像形成装置。然而,这里,由于密文不在主机设备2600中登记,因此,主机设备2600可以通过检查密文来确定图像形成装置1000是处于正常状态还是处于被侵入状态。
具体地,当图像形成装置1000的版本信息不是预先存储的版本信息时,或者即使它是预先存储的版本信息,但当与版本信息匹配的密文与图像形成装置1000的密文不同时,控制器2620确定信息处于被侵入状态。因此,控制器2620阻止使用相应的图像形成装置1000。
根据此示例性实施例,即使密钥值被暴露,固件也可以最大限度地减少和/或防止被黑客修改。
当图像形成装置进行引导时,包括片上系统100的主控制器可以通过控制各种可消耗单元(例如,图像形成装置1000中的可消耗单元)的操作来执行用户请求的作业。如图10中所述,可消耗单元1600–1至1600-n可以根据图像形成装置1000的类型而被不同地预备。可消耗单元1600-1至1600-n中的一个或者多个可以包括CRUM芯片1610-1至1610-n。
CRUM芯片1610-1至1610-n可以执行在主控制器1100(例如,其包括片上系统100)之间的认证,并且当认证完成时,加密数据通信可以被执行。认证可以用各种方法来执行。
作为认证过程的示例性实施例,如果主控制器(例如,主控制器1100)要执行认证,则用于认证的请求可以被发送到CRUM芯片(例如,CRUM芯片1610-1至1610–n中的至少一个)。这里,主控制器可以将第一值发送到至少一个CRUM芯片。主控制器可以随机生成第一值,或者其可以是预先存储的固定值。当接收到用于认证的请求时,CRUM芯片生成第二值(例如,该值可以随机生成),并且CRUM芯片通过使用第一值和第二值来产生会话密钥,然后,生成第一消息认证码(Message Authentication Code,MAC)。CRUM芯片可以将所生成的第一MAC和第二值一起发送到主控制器。第二值以及第一值可以是随机值和/或随机的固定值。当接收到第二值时,主控制器通过使用由主控制器生成的第一值和第二值来生成会话密钥,并通过使用会话密钥来生成第二MAC。主控制器将第二MAC与第一MAC进行比较,并且当它们相同时,确定CRUM芯片的认证完成。在这个过程中,主控制器检查存储在CRUM芯片中的电子签名信息,并执行认证。
当第一MAC与第二MAC不同时,主控制器(例如,图10中所示的主控制器1100)确定认证失败,并且再次执行认证。这里,执行认证的频率可以是有限的。可替换地,认证可以周期性地由主控制器执行。
图31是示出根据示例性实施例的控制方法的流程图。如图31中所示,操作S3110确定CRUM芯片的认证是否成功。当CRUM芯片的认证失败时,在操作S3120中,图像形成装置通过对失败的次数进行计数来存储失败频率。即,在操作S3120中,执行CRUM芯片认证的次数(以及,失败认证的次数)可以被计数,并且被存储。在操作S3130中,主控制器(例如,图10中所示的主控制器1100)或图像形成装置(例如,图像形成装置1000)的片上系统(例如,片上系统100)确定失败频率是否超过预定阈值频率。
当在操作S3130中确定失败频率大于所述阈值频率时,在操作S3140中执行惩罚功能。具体而言,可以输出指示认证已经失败的语音消息或可视消息,或图像形成装置可以被开启,或者被改变为处于不可能打印的状态。相应CRUM芯片和主控制器之间的连接可以被阻止,并且可以向外部主机设备或其它服务器设备通知认证失败。
当在操作S3130中确定该频率小于所述阈值频率时,在操作S3150中主控制器向用户查询用户是否想要再次执行认证。因此,当用户再次请求认证时,在操作S3160中,主控制器利用上述方法来执行认证。
当在操作S3110中确认认证为成功的时,在操作S3170中,主控制器执行与对应CRUM芯片的加密通信。例如,主控制器可以通过加密各种数据和命令来发送加密的通信消息,并且CRUM芯片可以用加密的通信消息来答复。在加密的通信消息中可以使用MAC。例如,当生成要被发送到CRUM芯片的通信消息时,主控制器通过将密钥和加密算法应用到数据来生成第三MAC。通信消息可以由第三MAC添加,并且可以被发送到CRUM芯片。
CRUM芯片从接收到的通信消息中提取数据部分,并且通过应用上述密钥和加密算法来生成第四MAC。CRUM芯片将从发送的通信消息中读取的第三MAC和所生成的第四MAC进行比较。当确定第三MAC和第四MAC相同时,其被认为是合法的通信消息,并且执行与该消息相对应的操作。当确定第三MAC和第四MAC彼此不同时,其被认为是非法的通信消息,并且因此,可以被取消。
如上所述,根据本发明总体构思的各种示例性实施例,可以最大限度地减少和/或防止对图像形成装置的侵入。在上述各种示例性实施例中,为了方便而基于图像形成装置来进行解释,但本发明总体构思的示例性实施例不限于图像形成装置的操作。即,除了图像形成装置之外的各种类型的电子设备,上述各种示例性实施例的方法可以应用。
上述各种方法或操作可以由存储在非临时性计算机可读介质中的程序来执行。非临时性计算机可读介质是指用于半永久性地存储数据而不是在很短的时间内存储数据的介质,诸如,寄存器、高速缓存、和存储器,并且其可以通过装置来读取。具体而言,上述各种应用或程序可以被存储在非临时性计算机可读介质,诸如,致密盘(CD)、数字多功能盘(DVD)、硬盘、蓝光盘、通用串行总线(USB)、记忆棒、存储卡、和只读存储器(ROM)中,并且可以被提供。
具体地,存储程序代码的非临时性计算机可读介质可以使用存储在片上系统的第一存储器中的初始化数据来执行初始化。当执行初始化时,可以使用在第一存储器中存储的多个加密密钥中的一个来对存储在非易失性存储器中的加密数据进行解密。解密的数据可以在片上系统的第二存储器中,并且可以使用存储在第二存储器中的数据来顺序地执行引导操作。
尽管已经示出和描述了本发明总体构思的几个实施例,但本领域技术人员应该理解,可以在不脱离由权利要求及其等同物限定其范围的本发明总体构思的原理和精神的情况下,对这些实施例进行改变。

Claims (17)

1.一种片上系统,包括:
第一存储器,用于存储多个加密密钥;
第二存储器;
第三存储器,用于存储加密密钥设置值;以及
CPU,用于执行以下操作:
当电源接通时,所述CPU识别由存储在第三存储器中的设置值或外部引脚所指定的存储器;
当第一存储器被指定时,所述CPU使用来自所述多个加密密钥的与所述加密密钥设置值相对应的加密密钥来将被存储在外部非易失性存储器中的加密数据进行解密,将解密的数据存储在第二存储器中,并且使用在第二存储器中存储的数据来执行安全引导。
2.根据权利要求1所述的片上系统,其中,初始化数据与所述多个加密密钥分离地被存储在第一存储器中,
其中,CPU使用初始化数据执行初始化,并且对加密数据进行解密。
3.根据权利要求2所述的片上系统,进一步包括第一电路,其在预定时间内限制经由外部端口对CPU的访问。
4.根据权利要求3所述的片上系统,其中,当电源接通时,第一电路输出禁止信号以禁止对CPU的访问,并且当至少完成了所述解密和对解密的数据的认证时,第一电路输出使能信号以使得能够访问CPU。
5.根据权利要求4所述的片上系统,其中,第一电路包括第一寄存器,
其中,当至少完成了所述解密和对解密的数据的认证时,CPU改变第一寄存器的存储器值。
6.根据权利要求5所述的片上系统,进一步包括第二电路和第三电路,用以控制对第一存储器的访问。
7.根据权利要求6所述的片上系统,其中,第二电路包括第二寄存器,并且第三电路包括第三寄存器,
其中,当至少完成了所述解密和对解密的数据的认证时,所述CPU在第二寄存器中存储用于禁止对第一存储器的访问的控制值,并且在第三寄存器中存储用于将对第一存储器的访问改变为对第二存储器的访问的控制值。
8.根据权利要求1所述的片上系统,其中,当解密失败时,所述CPU执行无限循环。
9.根据权利要求1所述的片上系统,其中,当第二存储器被指定时,所述CPU使用在非易失性存储器中存储的非加密数据来执行正常引导。
10.根据权利要求1所述的片上系统,其中,所述第一存储器是掩模只读存储器(ROM)或一次性可编程(OTP)ROM,
其中,所述第二存储器是静态随机存取存储器(SRAM),
其中,所述第三存储器是电熔丝(EFUSE)存储器。
11.一种图像形成装置,包括:
可消耗单元,在其中安装了客户可更换单元监控(CRUM)芯片;以及
控制器,用于使用所述可消耗单元来执行图像形成作业并且根据所述图像形成作业来更新记录在CRUM芯片上的数据,
其中,所述控制器包括:
非易失性存储器,用于记录加密数据;以及
片上系统,包括:
第一存储器,用于存储多个加密密钥;
第二存储器;
第三存储器,用于存储加密密钥设置值;以及
CPU,用于执行以下操作:
当图像形成装置被开启时,所述CPU识别由存储在第三存储器中的设置值或外部引脚所指定的存储器;
当所指定的存储器是第一存储器时,所述CPU使用来自所述多个加密密钥的与所述加密密钥设置值相对应的加密密钥来对存储在非易失性存储器中的加密数据进行解密,在第二存储器中存储解密的数据,并且使用在第二存储器中存储的数据来执行安全引导。
12.根据权利要求11所述的图像形成装置,其中,当引导事件已经发生时,所述片上系统在预定时间内限制经由外部端口对CPU的访问。
13.根据权利要求11所述的图像形成装置,其中,当所指定的存储器是第二存储器时,所述CPU使用在非易失性存储器中存储的非加密数据来执行正常引导。
14.一种引导包括非易失性存储器和片上系统的图像形成装置的方法,所述方法包括:
当所述图像形成装置开启时,通过所述片上系统的CPU识别根据通过所述片上系统的第三存储器或者外部引脚输入的输入值所指定的存储器;
当指定的存储器是所述片上系统的第一存储器时,通过所述CPU使用来自在所述第一存储器中存储的多个加密密钥的、与在所述片上系统的第三存储器中存储的加密密钥设置值相对应的加密密钥来将被存储在非易失性存储器中的加密数据进行解密,将解密的数据存储在所述片上系统的第二存储器中,使用在第二存储器中存储的数据来执行安全引导。
15.如权利要求14所述的方法,所述方法进一步包括:
当指定的存储器是所述片上系统的第一存储器时,通过所述片上系统的CPU使用被存储在所述片上系统的第一存储器中的初始化数据来初始化所述图像形成装置;
当执行初始化时,通过所述片上系统的CPU使用在第一存储器中存储的多个加密密钥中的一个来对存储在所述非易失性存储器中的加密数据进行解密;
将解密的数据存储在所述片上系统的第二存储器中;以及
通过所述片上系统的CPU使用在第二存储器中存储的数据来执行安全引导。
16.根据权利要求14所述的方法,进一步包括:
当指定的存储器是第一存储器时,禁止对所述片上系统的CPU的访问。
17.根据权利要求14所述的方法,进一步包括:
当指定的存储器是第二存储器时,通过所述CPU使用在非易失性存储器中存储的非加密数据来执行正常引导。
CN201310659211.1A 2012-12-06 2013-12-06 执行安全引导的片上系统、使用其的图像形成装置及方法 Expired - Fee Related CN103853983B (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201261734158P 2012-12-06 2012-12-06
US61/734,158 2012-12-06
KR10-2013-0029218 2013-03-19
KR1020130029218A KR20140073384A (ko) 2012-12-06 2013-03-19 보안 부팅을 수행하는 칩 시스템과 이를 이용하는 화상형성장치 및 그 보안 부팅 방법
KR1020130091667A KR101915005B1 (ko) 2012-12-06 2013-08-01 보안 부팅을 수행하는 칩 시스템과 이를 이용하는 화상형성장치 및 그 부팅 방법
KR10-2013-0091667 2013-08-01

Publications (2)

Publication Number Publication Date
CN103853983A CN103853983A (zh) 2014-06-11
CN103853983B true CN103853983B (zh) 2019-04-12

Family

ID=51126947

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201380064091.9A Expired - Fee Related CN104871169B (zh) 2012-12-06 2013-11-15 执行安全启动的片上系统、使用该片上系统的图像形成装置及其方法
CN201310659211.1A Expired - Fee Related CN103853983B (zh) 2012-12-06 2013-12-06 执行安全引导的片上系统、使用其的图像形成装置及方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201380064091.9A Expired - Fee Related CN104871169B (zh) 2012-12-06 2013-11-15 执行安全启动的片上系统、使用该片上系统的图像形成装置及其方法

Country Status (9)

Country Link
EP (2) EP2907068B1 (zh)
JP (2) JP2016511848A (zh)
KR (2) KR20140073384A (zh)
CN (2) CN104871169B (zh)
AU (2) AU2013355648B2 (zh)
BR (2) BR112015010401B1 (zh)
RU (2) RU2628325C2 (zh)
WO (1) WO2014088239A1 (zh)
ZA (1) ZA201504606B (zh)

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2941394A1 (en) * 2014-03-19 2015-09-24 Ascensia Diabetes Care Holdings Ag Clinical data obfuscation and enhancement systems and methods for wireless medical devices
CN104065668A (zh) * 2014-07-04 2014-09-24 福州大学 采用分层防御模式提高用户管理系统安全性的方法
KR102208072B1 (ko) * 2014-09-01 2021-01-27 삼성전자주식회사 데이터 처리 시스템
JP6430847B2 (ja) * 2015-02-05 2018-11-28 株式会社メガチップス 半導体記憶装置
DE102015001801A1 (de) * 2015-02-16 2016-08-18 IAD Gesellschaft für Informatik, Automatisierung und Datenverarbeitung mbH Autonom bootendes System mit einer Verschlüsselung des gesamten Datenspeichers und Verfahren hierfür
KR101711926B1 (ko) * 2015-07-07 2017-03-06 (주)이더블유비엠 보안기능을 가지는 SoC 및 SoC의 보안방법
US10025600B2 (en) * 2015-10-02 2018-07-17 Google Llc NAND-based verified boot
US9864879B2 (en) * 2015-10-06 2018-01-09 Micron Technology, Inc. Secure subsystem
CN105760750B (zh) * 2016-02-01 2019-06-14 北京华胜天成科技股份有限公司 软件篡改识别方法和系统
KR102530889B1 (ko) * 2016-04-06 2023-05-11 에스케이하이닉스 주식회사 데이터 처리 시스템 및 데이터 처리 시스템의 동작 방법
KR102547795B1 (ko) * 2016-05-04 2023-06-27 에스케이하이닉스 주식회사 데이터 처리 시스템 및 데이터 처리 시스템의 동작 방법
WO2017204822A1 (en) * 2016-05-27 2017-11-30 Hewlett-Packard Development Company, L.P. Firmware module encryption
EP3252651A1 (en) * 2016-05-30 2017-12-06 Samsung Electronics Co., Ltd Computing system having an on-the-fly encryptor and an operating method thereof
US10855462B2 (en) 2016-06-14 2020-12-01 Honeywell International Inc. Secure in-band upgrade using key revocation lists and certificate-less asymmetric tertiary key pairs
KR101954439B1 (ko) * 2016-07-13 2019-03-06 (주)이더블유비엠 이중보안기능을 가지는 SoC 및 SoC의 이중보안방법
CN108229196B (zh) * 2016-12-09 2021-09-07 上海新微技术研发中心有限公司 一种具有存储单元物理保护机制的soc芯片及方法
KR102617354B1 (ko) * 2017-01-05 2023-12-26 삼성전자주식회사 보안 부트 시퀀서 및 보안 부트 장치
US10587421B2 (en) 2017-01-12 2020-03-10 Honeywell International Inc. Techniques for genuine device assurance by establishing identity and trust using certificates
CN106682535A (zh) * 2017-03-16 2017-05-17 周清睿 系统级芯片
US10503892B2 (en) 2017-06-25 2019-12-10 Microsoft Technology Licensing, Llc Remote attestation for multi-core processor
US10708061B2 (en) 2017-06-25 2020-07-07 Microsoft Technology Licensing, Llc Secure key storage for multi-core processor
US10402567B2 (en) 2017-06-25 2019-09-03 Microsoft Technology Licensing, Llc Secure boot for multi-core processor
KR20190036779A (ko) 2017-09-28 2019-04-05 경희대학교 산학협력단 보안 펌웨어 업데이트 방법 및 시스템
KR102432451B1 (ko) * 2018-01-10 2022-08-12 삼성전자주식회사 반도체 장치 및 반도체 장치의 동작 방법
TWI666556B (zh) 2018-03-27 2019-07-21 緯創資通股份有限公司 電子裝置及其操作方法
CN108595981B (zh) * 2018-05-09 2021-07-20 深圳市桑格尔科技股份有限公司 加密安卓系统的方法
KR102545102B1 (ko) * 2018-05-15 2023-06-19 현대자동차주식회사 차량용 제어기 및 그 업데이트 방법
WO2020034118A1 (zh) 2018-08-15 2020-02-20 华为技术有限公司 一种安全的数据转移装置、系统和方法
KR102558901B1 (ko) * 2018-09-19 2023-07-25 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
CN109491712B (zh) * 2018-11-01 2021-09-10 北京京航计算通讯研究所 一种适用于VxWorks环境的可信引导方法
CN109376550A (zh) * 2018-11-01 2019-02-22 郑州云海信息技术有限公司 一种目标部件的启动控制方法、装置及设备
CN109672521B (zh) * 2018-12-26 2022-11-29 贵州华芯通半导体技术有限公司 基于国密加密引擎实现的安全存储系统和方法
US10833929B2 (en) * 2018-12-27 2020-11-10 Juniper Networks, Inc. Secure remote bootstrapping of network device
TWI813815B (zh) 2019-05-09 2023-09-01 韓商愛思開海力士有限公司 記憶體模組、其操作方法、記憶體系統以及其操作方法
JP7287115B2 (ja) * 2019-05-30 2023-06-06 京セラドキュメントソリューションズ株式会社 集積回路及び集積回路の制御方法
KR20210041932A (ko) * 2019-10-08 2021-04-16 한화테크윈 주식회사 보안 부팅 장치 및 그 동작 방법
CN113126905A (zh) * 2019-12-30 2021-07-16 美光科技公司 用于重放受保护存储器块的安全密钥更新
CN111290977B (zh) * 2020-01-16 2021-11-16 芯创智(北京)微电子有限公司 一种基于ddr多数据单元的寄存器访问系统及方法
JP7393226B2 (ja) 2020-01-29 2023-12-06 キヤノン株式会社 情報処理装置とその起動方法
TWI749458B (zh) * 2020-02-05 2021-12-11 瑞昱半導體股份有限公司 驗證方法和驗證系統
US11768611B2 (en) 2020-04-02 2023-09-26 Axiado Corporation Secure boot of a processing chip
JP6974549B1 (ja) 2020-07-17 2021-12-01 華邦電子股▲ふん▼有限公司Winbond Electronics Corp. メモリ装置およびその入出力バッファ制御方法
KR20220036569A (ko) 2020-09-16 2022-03-23 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
CN112416824B (zh) * 2020-12-03 2024-02-09 上海集成电路研发中心有限公司 efuse读写控制器、芯片、电子设备及控制方法
KR102266163B1 (ko) * 2021-04-06 2021-06-17 주식회사 틴텍 인쇄장치의 셋업 방법
WO2023048707A1 (en) * 2021-09-22 2023-03-30 Hewlett-Packard Development Company, L.P. Encrypted storage

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1248106C (zh) * 2002-10-31 2006-03-29 松下电器产业株式会社 半导体集成电路装置
CN101526771A (zh) * 2008-03-03 2009-09-09 三星电子株式会社 使用os的单元以及使用所述单元的成像设备
CN102105870A (zh) * 2008-07-23 2011-06-22 微动公司 具有外部存储器存取控制的处理系统

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7249108B1 (en) * 1997-07-15 2007-07-24 Silverbrook Research Pty Ltd Validation protocol and system
US6141756A (en) * 1998-04-27 2000-10-31 Motorola, Inc. Apparatus and method of reading a program into a processor
CN1132333C (zh) * 1998-08-04 2003-12-24 日本电气株式会社 具有卷动显示控制功能的无线通信装置
US7814337B2 (en) * 2000-01-06 2010-10-12 Super Talent Electronics, Inc. Secure flash-memory card reader with host-encrypted data on a flash-controller-mastered bus parallel to a local CPU bus carrying encrypted hashed password and user ID
US6986052B1 (en) * 2000-06-30 2006-01-10 Intel Corporation Method and apparatus for secure execution using a secure memory partition
DE10108487A1 (de) * 2001-02-22 2002-09-12 Giesecke & Devrient Gmbh Verfahren und System zur verteilten Erstellung eines Programms für einen programmierbaren, tragbaren Datenträger
BRPI0411574A (pt) * 2003-06-19 2006-08-08 Qualcomm Inc equipamento e método para dispositivo de autenticação de múltiplas funções
US9547623B2 (en) * 2003-07-02 2017-01-17 Sigmatel, Inc. Flexible memory interface system for independently processing different portions of an instruction
JP2005227995A (ja) * 2004-02-12 2005-08-25 Sony Corp 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
US20070083491A1 (en) * 2004-05-27 2007-04-12 Silverbrook Research Pty Ltd Storage of key in non-volatile memory
JP4447977B2 (ja) * 2004-06-30 2010-04-07 富士通マイクロエレクトロニクス株式会社 セキュアプロセッサ、およびセキュアプロセッサ用プログラム。
US8332653B2 (en) * 2004-10-22 2012-12-11 Broadcom Corporation Secure processing environment
US20070288761A1 (en) * 2006-06-09 2007-12-13 Dale Jason N System and method for booting a multiprocessor device based on selection of encryption keys to be provided to processors
US8467528B2 (en) * 2006-08-31 2013-06-18 Advanced Micro Devices, Inc. Multimedia content protection
US7636816B2 (en) * 2006-09-29 2009-12-22 Broadcom Corporation Global address space management
US7809934B2 (en) * 2006-10-13 2010-10-05 Texas Instruments Incorporated Security measures for preventing attacks that use test mechanisms
US20080294838A1 (en) * 2007-05-25 2008-11-27 Agere Systems Inc. Universal boot loader using programmable on-chip non-volatile memory
JP4865694B2 (ja) * 2007-12-28 2012-02-01 ラピスセミコンダクタ株式会社 プロセッサ装置
US20090172420A1 (en) * 2007-12-31 2009-07-02 Kabushiki Kaisha Toshiba Tamper resistant method and apparatus for a storage device
US20090204823A1 (en) * 2008-02-07 2009-08-13 Analog Devices, Inc. Method and apparatus for controlling system access during protected modes of operation
KR101484110B1 (ko) * 2008-02-29 2015-01-28 삼성전자주식회사 메모리 컨트롤러 및 그에 따른 메모리 장치
US8156317B2 (en) * 2008-05-16 2012-04-10 Ati Technologies Ulc Integrated circuit with secure boot from a debug access port and method therefor
US8725123B2 (en) * 2008-06-05 2014-05-13 Headwater Partners I Llc Communications device with secure data path processing agents
US8954804B2 (en) * 2008-07-15 2015-02-10 Ati Technologies Ulc Secure boot circuit and method
KR101460665B1 (ko) * 2008-07-16 2014-11-12 삼성전자주식회사 메모리 인터페이스를 사용한 SoC 디바이스 검증 모델
US8594333B2 (en) * 2008-09-05 2013-11-26 Vixs Systems, Inc Secure key access with one-time programmable memory and applications thereof
US8589700B2 (en) * 2009-03-04 2013-11-19 Apple Inc. Data whitening for writing and reading data to and from a non-volatile memory
US8484451B2 (en) * 2010-03-11 2013-07-09 St-Ericsson Sa Method and apparatus for software boot revocation

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1248106C (zh) * 2002-10-31 2006-03-29 松下电器产业株式会社 半导体集成电路装置
CN101526771A (zh) * 2008-03-03 2009-09-09 三星电子株式会社 使用os的单元以及使用所述单元的成像设备
CN102105870A (zh) * 2008-07-23 2011-06-22 微动公司 具有外部存储器存取控制的处理系统

Also Published As

Publication number Publication date
RU2015126874A (ru) 2017-01-13
KR20140073384A (ko) 2014-06-16
EP2907068B1 (en) 2019-01-09
BR102013031549A2 (pt) 2016-02-16
EP2741228A3 (en) 2014-08-13
BR112015010401B1 (pt) 2021-10-19
KR101915005B1 (ko) 2019-01-07
CN104871169B (zh) 2018-02-06
JP2016511848A (ja) 2016-04-21
CN103853983A (zh) 2014-06-11
RU2651213C2 (ru) 2018-04-18
EP2741228A2 (en) 2014-06-11
JP2016510444A (ja) 2016-04-07
ZA201504606B (en) 2016-06-29
AU2013355648A1 (en) 2015-04-16
WO2014088239A1 (en) 2014-06-12
AU2013355576A1 (en) 2015-04-09
RU2013154083A (ru) 2015-06-10
EP2907068A1 (en) 2015-08-19
EP2907068A4 (en) 2016-12-21
BR112015010401A2 (pt) 2017-07-11
AU2013355648B2 (en) 2018-12-06
EP2741228B1 (en) 2020-03-18
KR20140073397A (ko) 2014-06-16
BR102013031549B1 (pt) 2021-01-26
CN104871169A (zh) 2015-08-26
RU2628325C2 (ru) 2017-08-15

Similar Documents

Publication Publication Date Title
CN103853983B (zh) 执行安全引导的片上系统、使用其的图像形成装置及方法
US10878098B2 (en) System on chip to perform a secure boot, an image forming apparatus using the same, and method thereof
KR102434444B1 (ko) 가상 트러스트 컴퓨팅 베이스를 이용한 기기 보안성 검증 방법 및 장치
US8572410B1 (en) Virtualized protected storage
US20140164753A1 (en) System on chip for performing secure boot, image forming apparatus using the same, and method thereof
JP5736994B2 (ja) 情報処理装置、正当性検証方法、及びプログラム
CN101441601B (zh) 一种硬盘ata指令的加密传输的方法及系统
JPWO2005096158A1 (ja) 利用認証方法、利用認証プログラム、情報処理装置および記録媒体
JP2017157018A (ja) 情報処理装置、情報処理方法、情報処理プログラム、及びトラステッド・プラットフォーム・モジュール
JP2008005408A (ja) 記録データ処理装置
JP2016146618A (ja) 情報処理装置
JP4724107B2 (ja) リムーバブル・デバイスを用いたユーザの認証方法およびコンピュータ
CN110659506A (zh) 基于密钥刷新对存储器进行重放保护
CN110932853A (zh) 一种基于可信模块的密钥管理装置和密钥管理方法
KR101214899B1 (ko) 유에스비 보안장치 및 그 보안 방법
KR101256373B1 (ko) 장착식 스마트 카드와 메모리 카드를 구비한 유에스비 보안장치 및 그 보안 방법
CN113676326A (zh) Tddi芯片
EP4254855A1 (en) A device and a method for controlling use of a cryptographic key
SSD FIPS 140-2 Cryptographic Module Non-Proprietary Security Policy
SDencrypter FIPS 140-2 Level-3 Non-propriety Security Policy
Canon FIPS 140-2 Security Policy
JP2004240719A (ja) ソフトウェア実行制御方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20170411

Address after: Gyeonggi Do, South Korea

Applicant after: Aisi Printing Solutions Co.,Ltd.

Address before: Gyeonggi Do, South Korea

Applicant before: Samsung Electronics Co.,Ltd.

TA01 Transfer of patent application right
CB02 Change of applicant information
CB02 Change of applicant information

Address after: Gyeonggi Do, South Korea

Applicant after: S-PRINTING SOLUTION Co.,Ltd.

Address before: Gyeonggi Do, South Korea

Applicant before: Aisi Printing Solutions Co.,Ltd.

GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20191118

Address after: Texas, USA

Patentee after: HEWLETT-PACKARD DEVELOPMENT Co.,L.P.

Address before: Han Guojingjidao

Patentee before: S-PRINTING SOLUTION Co.,Ltd.

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

Granted publication date: 20190412

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