CN104871169A - 执行安全启动的片上系统、使用该片上系统的图像形成装置及其方法 - Google Patents

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

Info

Publication number
CN104871169A
CN104871169A CN201380064091.9A CN201380064091A CN104871169A CN 104871169 A CN104871169 A CN 104871169A CN 201380064091 A CN201380064091 A CN 201380064091A CN 104871169 A CN104871169 A CN 104871169A
Authority
CN
China
Prior art keywords
memory
data
chip
cpu
soc
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201380064091.9A
Other languages
English (en)
Other versions
CN104871169B (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
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 CN104871169A publication Critical patent/CN104871169A/zh
Application granted granted Critical
Publication of CN104871169B publication Critical patent/CN104871169B/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,用于使用多个加密密钥当中与加密密钥设定值相对应的加密密钥来解密存储在外部非易失性存储器中的加密的数据,将解密的数据存储在第二存储器中,并且使用存储在第二存储器中的数据执行启动。因此,可以提高启动操作的安全性。

Description

执行安全启动的片上系统、使用该片上系统的图像形成装置及其方法
技术领域
本总体发明构思的示范性实施例的方法和装置涉及片上系统、使用该片上系统的图像形成装置及其方法,更具体地,涉及使用加密的数据执行安全启动的片上系统、使用该片上系统的图像形成装置及其方法。
背景技术
随着电子技术的发展,各种种类的电子产品已经被开发。具体地,随着计算机进入广泛使用,计算机外设被日益增加地使用。计算机外设是指提高计算机的利用率的装置。打印机、扫描仪、复印机以及多功能外设是这样的计算机外设的代表性示例。
图像形成装置是指执行图像形成作业,即,在纸张或其它介质上形成图像的装置。为了执行图像形成作业,可以使用显影剂,诸如墨水或调色剂。使用利用调色剂的激光方法的图像形成装置可以包括充电单元、显影单元、传送单元、激光扫描单元以及定影单元。包括以上单元的、随着执行作业被消耗的这样的单元可以称为可消耗单元。如果可消耗单元被使用了预定时间,则其特性可能改变,从而不指望良好的打印质量。具体地,当调色剂耗尽时,包含调色剂的调色剂盒应当被新的一个所替换。因此,在发生这样的情形的情况下,产品制造商将可消耗单元与完整产品分开销售。
近些年来,可消耗单元可以具有嵌入其中的存储器,用于准确地确定可消耗单元何时应该被替换。关于可消耗单元的使用的各种信息可以被存储在存储器中。然而,存在这样一个问题:对未经授权的人来说,访问嵌入在可消耗单元中的存储器是容易的。因此,存储在存储器中的信息可以被改变,从而可能难以使用和管理可消耗单元。因此,已经尝试加强可消耗单元的存储器的安全性。
发明内容
技术问题
然而,未经授权的人可以攻击进入与可消耗单元通信的装置,而不是存储器。具体地,可以开发对于通过改变嵌入到装置的主体中的主存储器的启动过程攻击应用到可消耗单元的安全性技术的权宜之计。
问题的解决方案
因此,存在对于提高启动过程的安全性的方法的需要。一个或多个示范性实施例可以克服以上缺点及以上未描述的其它缺点。然而,要理解,一个或多个示范性实施例并不要求克服上述缺点,并且可以不克服任何上述问题。
本总体发明构思的一个或多个示范性实施例提供了片上系统、具有该片上系统的图像形成装置及其方法,该片上系统使用其中存储了加密的数据的非易失性存储器来执行安全启动。
本总体发明构思的附加的特点和效用将在随后的描述中被部分地阐述,并且将从所述描述中部分地变得明显,或者可以通过对本总体发明构思的实践而习得。
根据本总体发明构思的示范性实施例,提供一种片上系统,其包括:第一存储器,用于存储多个加密密钥;第二存储器;第三存储器,用于存储加密密钥设定值;以及中央处理单元(CPU),用于使用多个加密密钥当中与加密密钥设定值相对应的加密密钥来解密存储在外部非易失性存储器中的加密的数据,将解密的数据存储在第二存储器中,并且使用存储在第二存储器中的数据执行启动。
初始化数据可以与多个加密密钥分开地存储在第一存储器中,并且CPU可以使用初始化数据执行初始化并且可以解密加密的数据。
片上系统还可以包括第一电路,用来在预定时间内限制经由外部端口对CPU的访问。
当电力被接通时,第一电路可以输出禁止信号,以禁止对CPU的访问,并且当至少对解密的数据的解密和认证完成时,第一电路可以输出启用信号,以启用对CPU的访问。
第一电路可以包括第一寄存器,并且当对解密的数据的解密和认证完成时,CPU可以改变第一寄存器的存储值。
片上系统可以包括第二电路和第三电路,以控制对第一存储器的访问。
第二电路可以包括第二寄存器,并且第三电路可以包括第三寄存器。当对解密的数据的解密和认证完成时,CPU可以在第二寄存器中存储用于禁止对第一存储器的访问的控制值,并且可以在第三寄存器中存储用于将对第一存储器的访问改变为对第二存储器的访问的控制值。
当解密失败时,CPU可以执行无限循环。
当电力被接通时,CPU可以识别由存储在第三存储器中的设定值或外部引脚指定的存储器,并且当第一存储器被指定时,CPU可以使用加密的数据来执行安全启动,而当第二存储器被指定时,CPU可以使用存储在非易失性存储器中的非加密的数据来执行正常启动。
第一存储器可以是掩模只读存储器(ROM)或一次性可编程(one-timeprogrammable,OTP)ROM,而第二存储器可以是静态随机存取存储器(SRAM)。第三存储器可以是电熔丝(EFUSE)存储器。
片上系统可以包括存储器控制器,该存储器控制器通信地耦合到CPU,包括用于选择与外部存储器的连接状态的至少一个开关,其中存储器控制器根据第一密钥值和第二密钥值之间的比较结果,向外部存储器选择性地输出从CPU接收到的写信号。
片上系统可以包括其中当第一密钥值和第二密钥值相同时,存储器控制器控制至少一个开关选择连接状态以便向外部存储器输出写信号。
片上系统可以包括其中存储器控制器控制至少一个开关以便禁止到外部存储器的连接从而防止写信号被输出到外部存储器。
片上系统可以包括其中即使当存储器控制器在防止写信号被输出到外部存储器时,存储器控制器也控制外部存储器的读操作。
片上系统可以包括其中至少一个开关包括第一开关和第二开关,其中存储器控制器控制第一开关以便控制外部存储器的读操作,并且控制第二开关以控制与第二开关的连接以便控制到外部存储器的写信号的输出。
片上系统可以包括当第一密钥值和预存储的第二密钥值彼此不同时,存储器控制器阻止到外部非易失性存储器的写操作。
本总体发明构思的示范性实施例还可以提供一种图像形成装置,其包括:可消耗单元,其中安装了客户可替换单元监视(Customer Replaceable UnitMonitoring,CRUM)芯片;以及控制器,用于使用可消耗单元来执行图像形成作业,并且根据图像形成作业更新记录在CRUM芯片上的数据。控制器可以包括:非易失性存储器,用于记录加密的数据;以及片上系统,用于在图像形成装置被开启时使用加密的数据执行安全启动,并且在安全启动完成时根据用户命令控制图像形成装置。
片上系统可以包括:第一存储器,用于存储多个加密密钥;第二存储器;第三存储器,用于存储加密密钥设定值;以及CPU,用于使用多个加密密钥当中与加密密钥设定值相对应的加密密钥来解密存储在非易失性存储器中的数据,将解密的数据存储在第二存储器中,并且使用存储在第二存储器中的数据执行启动。
初始化数据可以与多个加密密钥分开地存储在第一存储器中,并且CPU可以使用初始化数据来执行初始化,然后可以解密加密的数据。
当已经发生启动事件时,片上系统可以在预定时间内限制经由外部端口对CPU的访问。
片上系统还可以包括第一电路,当图像形成装置被开启时,第一电路输出禁止信号以禁止对CPU的访问,并且当至少对解密的数据的解密和认证完成时,第一电路输出启用信号以启用对CPU的访问。
第一电路可以包括第一寄存器,并且当至少对解密的数据的解密和认证完成时,CPU可以改变第一寄存器的存储值。
当至少对解密的数据的解密和认证完成时,CPU可以执行寄存器设定作业以禁止对第一存储器的访问,并且将对第一存储器的访问改变为对第二存储器的访问。
当图像形成装置被开启时,CPU可以识别由存储在第三存储器中的设定值或外部引脚指定的存储器,并且当第一存储器被指定时,CPU可以使用加密的数据来执行安全启动,而当第二存储器被指定时,CPU可以使用存储在外部非易失性存储器中的非加密的数据来执行正常的启动。
第一存储器可以是掩模ROM或OTP ROM,而第二存储器可以是SRAM。第三存储器可以是EFUSE存储器。
本总体发明构思的示范性实施例还提供了一种启动图像形成装置的方法,该图像形成装置包括非易失性存储器和片上系统,该方法包括:使用存储在片上系统的第一存储器中的初始化数据来进行初始化,当初始化被执行时,使用存储在第一存储器中的多个加密密钥之一来解密存储在非易失性存储器中的加密的数据,将解密的数据存储在片上系统的第二存储器中,并且使用存储在第二存储器中的数据来执行启动。
该方法还可以包括:当图像形成装置被开启时,识别根据通过片上系统的第三存储器或外部引脚输入的输入值指定的存储器,并且当所指定的存储器是第一存储器时,禁止对片上系统的CPU的访问。
该方法还可以包括:当至少对解密的数据的解密和认证完成时,启用对CPU的访问。
该方法可以包括:当至少对解密的数据的解密和认证完成时,禁止对第一存储器的访问,并且执行寄存器设定以将对第一存储器的访问改变为对第二存储器的访问。
本总体发明构思的示范性实施例还可以提供一种电子设备,其具有存储器设备和片上系统,片上系统包括中央处理单元(CPU)和通信地耦合到CPU和存储器设备的存储器控制器,存储器控制器根据第一密钥值和第二密钥值之间的比较结果向存储器设备选择性地输出从CPU接收到的写信号。
该电子设备可以包括其中当第一密钥值和第二密钥值相同时,存储器控制器控制至少一个开关选择连接状态以便向存储器设备输出写信号。
该电子设备可以包括其中存储器控制器控制至少一个开关以便禁止到存储器设备的连接从而防止写信号被输出到存储器设备。
该电子设备可以包括其中即使当存储器控制器在防止写信号被输出到存储器设备时,存储器控制器也控制存储器设备的读操作。
本总体发明构思的示范性实施例还可以提供一种主机设备,其包括:存储装置,用于存储与多个版本中的每一个相对应的多个密文;通信单元,用于在发生预定事件时接收存储在图像形成装置中的密文;控制器,用于当与图像形成装置的固件版本相对应的密文与接收到的密文相同时,控制图像形成装置处于打印的等待状态,并且当该密文和固件版本彼此不同时,控制器阻止对图像形成装置的使用。
发明的有益效果
根据上述示范性实施例,可以提高启动过程的安全性,从而,可以减少(minimize)和/或防止由未经授权的人的恶意攻击导致的损害。
附图说明
从以下结合附图对实施例的描述中,本总体发明构思的这些和/或其它特征和效用将变得清楚和更加容易理解,附图中:
图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执行安全启动。图1的片上系统100和非易失性存储器200可以被嵌入在电子装置(例如,单个电子装置)中。例如,片上系统100可以被嵌入在图像形成装置(诸如联系图10图示和描述的图像形成装置1000)中。片上系统100可以被嵌入在任何适当的电子设备中。片上系统可以是集成电路、可编程逻辑器件、现场可编程门阵列和/或根据这里公开的本总体发明构思的示范性实施例执行安全启动的任何适当的设备。
片上系统100使用存储在非易失性存储器200中的加密的数据执行启动过程。具体而言,各种数据可以被加密并存储在非易失性存储器200中,所述各种数据诸如启动块启动符号(boot block started symbol,BSS)、内核、初始化程序、操作系统(OS)、另一OS(无线堆栈)、引擎、仿真、固定分段(fixed segment)、堆、认证密钥、加密的OS以及设备驱动程序。
可以按各种方法加密数据。例如,可以使用数据加密标准(DES)方法、三重DES(TDES)方法、先进加密标准(AES)方法、SEED算法、Rivest ShamirAdleman(RSA)方法以及学院研究所机构(academy-research institute-agency,ARIA)算法。
DES方法是指使用利用56位密钥的对称密钥加密算法对数据进行加密和解密的方法。TDES方法是指将DES重复三次的方法。AES方法是指使用32位的任意倍数(诸如128位、160位、192位、224位或256位)的密钥对128位大小的块进行加密和解密的方法。SEED方法,类似于AES方法,是指使用128位或256位的加密密钥对数据进行加密和解密的128位块加密方法。RSA方法是一种使用单向函数的公共密钥加密系统,而ARIA算法是使用128位、192位、或256位的密钥对128位的块进行加密和解密的块加密方法。
用各种上述加密方法加密的各种数据可以被存储在非易失性存储器200中。所存储的数据或加密方法可以根据其中安装了图1的片上系统100和非易失性存储器200的产品的特性或其它环境条件来选择性地应用。
参考图1,片上系统100包括第一存储器110、第二存储器120以及中央处理单元(CPU)130。CPU 130可以是处理器和/或执行本总体发明构思的示范性实施例的任何适当的设备。加密密钥可以被存储在第一存储器110中。第一存储器110可以通过使用掩模只读存储器(ROM)或一次性可编程(onetime programmable,OTP)存储器来实施。
掩模ROM是在制造时预先记忆数据而不允许用户修改该数据的存储器。OTP存储器可以用在系统编程中,但是它是一种一旦数据被编程就不允许其被修改的可编程ROM。
加密密钥是对存储在非易失性存储器200中的数据(具体为启动代码)进行解密的密钥。非易失性存储器200可以存储按上述方法中的一个加密的数据,并且与加密的数据相对应的加密密钥可以被存储在第一存储器110中。
第一存储器110可以存储关于启动加载器的信息。启动加载器是指这样的程序:该程序在OS起动之前被预先运行、结束起动内核所需的所有操作、并最终起动OS。也就是说,OS被划分成其中驱动真实命令的内核、向内核发送包括在程序中的命令的架构以及在内核和架构上驱动的用户接口(UI)。启动加载器是指在起动内核之前配备硬件的程序。具体而言,专用启动加载器信息可以被存储在第一存储器110中。专用启动加载器信息可以包括初始化系统所需的信息。
第二存储器120是用来执行启动操作的内部存储器。第二存储器120可以是不需要初始化的SRAM。然而,这不应当被认为是限制,并且第二存储器120可以是执行如这里公开的本总体发明构思的示范性实施例的任何适当的存储器。
CPU 130使用存储在第一存储器110中的加密密钥,对存储在位于片上系统100外部的非易失性存储器200中的加密的数据进行解密,并且将解密的数据存储在第二存储器120中。CPU 130可以使用存储在第二存储器120中的数据执行启动。解密方法可以对应于数据加密方法。
例如,如果AES方法被应用,则通过重复以下过程来对数据进行加密:对于将被加密的数据和初始输入的密码密钥执行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)互质。使用扩展欧几里德算法来计算D,D具有如下关系:E*D mod PI(N)-1。结果,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)modN=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)的代码和对加密的外部程序代码进行解密的代码或加密密钥。
在操作S230,CPU 130从第一存储器110检测用于初始化系统的代码,并相对于电子装置的硬件执行初始化作业。初始化作业可以包括使用内部锁相环(PLL)电路调快在片上系统100中使用的时钟,或者初始化双倍数据速率(DDR)控制器以使用DDR存储器。初始化作业还可以包括各种初始化操作,诸如初始驱动各种应用,初始化设置以形成与电子装置的内部或外部装置的通信信道,初始化存储器值,设定内部寄存器值,输入/输出(I/O)设定,串行设定,获得MAC地址,以及以太网端口设定。初始化作业可以包括与片上系统100一起配备安装在电子装置中的另一硬件。这样的初始化操作可以根据其中安装了片上系统100的电子装置的种类按各种方式实施。存储在第一存储器110中的代码可以用于其它操作。例如,数据CPU 130读取启动选项引脚设定(SPI/NAND/SD)值,并且根据相应的启动选项将数据引入(即,写入)第二存储器120中。
在操作S240,CPU 130对加载到片上系统100中的加密的数据进行解密。CPU 130可以使用存储在第一存储器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,CPU130使用该加密密钥对存储在非易失性存储器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,CPU130改变地址映射。因此,当有对访问第一存储器110的尝试时,该访问被强制改变为对第二存储器120的访问。
在操作S590,CPU 130使用被复制到第二存储器120中的解密的数据来执行启动。以上已经描述了启动过程,从而省略冗余的解释。
在以上示范性实施例中,已经描述了执行安全启动的片上系统及其操作。然而,根据示范性实施例,根据其中使用了片上系统的环境,可以选择性地执行安全启动或正常启动。
图6是图示出根据本总体发明构思的示范性实施例的片上系统的启动方法的流程图。根据示范性实施例,非易失性存储器200可以将加密的数据和非加密的数据存储在一起。
在这种状态下,如果在操作S610,电子装置被开启,则在操作S615,CPU 130确定是执行安全启动还是执行正常启动。也就是说,如果电力被接通,则CPU 130去往重置向量并取得指令。第一存储器110或第二存储器120可以被指定为重置向量。也就是说,第一存储器110和第二存储器120经由总线150被映射到相同的地址(例如,0xffff0000)上。如果CPU 130从重置向量识别出地址0xffff0000,则CPU 130访问被指定的第一存储器110和第二存储器120之一。存储器可以由通过连接到CPU 130的外部引脚输入的指定值或存储在第三存储器140中的指定值来指定。
如果第二存储器120被指定,则在操作S615:否,确定执行正常启动而非安全启动。在这种情况下,CPU 130访问非易失性存储器200并使用非加密的数据来执行正常启动。
如果第一存储器110被指定,则在操作S615:是,确定执行安全启动。如果执行安全启动,则CPU 130在操作S625访问第一存储器110并在操作S630检测初始化数据。在此之前,CPU 130可以禁止经由外部端口对其自身的访问。
在操作S630,CPU 130使用初始化数据来初始化基础硬件。CPU 130将存储在非易失性存储器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:否,解密和认证中的至少一个失败,则在操作S660,CPU 130落入无限循环。也就是说,CPU 130停止运行安全启动模式。如果在操作S645:是,解密和认证成功,则在操作S650,CPU 130改变地址映射。CPU 130可以控制将要使用第二存储器120而非第一存储器110。因此,在地址映射改变之后,不可能访问存储在第一存储器110中的代码。这时,不可能用JTAG追踪代码和密钥值,并且地址在被访问时被设定为读取0xffffff。
当地址映射改变时,CPU 130跳到复制到第二存储器120(例如,第一启动加载器)中的数据,并在操作S655,使用这个数据执行启动操作。第一启动加载器是指用于将第二启动加载器加载到存储器中的启动加载器。由第二启动加载器执行用于提供UI并加载内核的启动加载器的核心功能。考虑到不足的空间,启动加载器可以被划分为第一启动加载器和第二启动加载器。
如上所述,片上系统100可以按各种形式实施并执行安全启动。上述示范性实施例可以与其它示范性实施例中的至少一个组合在一起改变。与这些示范性实施例有关的图和描述被省略。
图7是详细图示出片上系统的示例的视图。参考图7,除了第一存储器110、第二存储器120、CPU 130、第三存储器140以及总线150以外,片上系统100还可以包括DDR控制器185和各种电路155、160、165、170、175和180。在图7中,第一存储器110通过使用掩模ROM来实施,而第二存储器120通过使用SRAM来实施。第三存储器140通过使用EFUSE存储器来实施。第三存储器140可以存储用于选择加密密钥的设定值(密钥1、2和3)以及用于设定是否执行安全启动的指定值(掩模ROM)。
电路155、160、165、170、175和180中的每一个可以例如是寄存器、逻辑电路以及复用器。第一电路155包括第一寄存器155-1。CPU 130可以使用第一电路155来控制通过外部端口对CPU的访问。具体而言,第一电路155向CPU 130输入与在第一寄存器155-1寄存的值相对应的JTAG_EN信号。
也就是说,如果生成启动事件,则第四电路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最终向第一电路155输出‘0’。
第一电路155包括第一寄存器155-1。第一电路155包括复用器,用于选择性地输出存储在第一寄存器155-1中的值或外部值。如果从第二电路160输入‘0’,则第一电路155向CPU 130输出用于禁止对CPU的访问的信号。因此,通过外部端口对CPU的访问可以被限制一段预定时间,即,期间在具有SOC 100的装置被开启之后执行安全启动的时间。
如果装置被开启,则CPU 130识别根据存储在第三存储器140中的设定值或通过外部引脚输入的输入值指定的存储器。如果所指定的存储器是第一存储器110,则CPU 130在第一寄存器155-1中存储用于禁止对CPU的访问的第一值(例如,‘1’)。
如果系统配备(例如,至少对解密的数据的解密和认证)完成,则CPU 130在第一寄存器155-1中存储用于启用对CPU的访问的第二值(例如,‘0’)。第二电路160的第二寄存器160-1的存储值也可以被改变。
具体而言,如果系统配备完成,则CPU 130在第二寄存器160-1上记录用于禁止对第一存储器110的访问的控制值(例如,‘1’),并且阻止第一存储器110的所有区域的数据被读出。如果第二寄存器160-1的存储值被改为‘1’,则第二电路160的输出值被改为‘1’。
CPU 130在第三寄存器165-1上记录用于将对第一存储器110的访问改为对第二存储器120的访问的控制值(例如,‘1’)。在这种情况下,当CPU 130访问第一存储器110时,对第一存储器110的访问被自动改为对第二存储器120的访问。因为解密的代码被预先复制到第二存储器120中,所以CPU 130可以使用相同代码。
第四电路170可以包括OR门,用于提供通过外部引脚或第三存储器140输入的指定值。CPU 130可以根据通过第四电路170输入的指定值确定是否执行安全启动。
复用器175向总线150选择性地输入从第二存储器120或第二电路160输出的值。
闪存启动加载器(flash boot loader)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。
认证代码910可以根据各种加密算法(例如,DES、TDES、AES、SEED、RSA、ARIA等)来加密和存储。例如,认证代码910可以如上所述根据诸如HMAC-SHA256、HMAC-SHA1以及HMAC-MD5的认证算法来加密(例如,使用诸如DES、TDES、AES、SEED、RSA、ARIA等的加密方法来加密)和存储。
安全启动加载器标头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标准或日本的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使用半色调表将打印数据转换为由‘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可以执行加密数据通信。CRUM芯片1610-1到1610-n可以按各种形式来实施。
图11是详细图示出CRUM芯片的示例的框图。参考图11,CRUM芯片1610包括OS存储器1611、非易失性存储器1612、易失性存储器1613、CPU1614、密码(crypto)单元1615、篡改检测器1616以及接口1617。虽然未图示,但是CRUM芯片1610可以包括用于输出时钟信号的时钟单元和用于生成用于认证的随机值的随机值生成器。然而,一些元件可以被删除,并可以被包括在另一元件中。密码单元1615可以是集成电路、处理器、现场可编程门阵列、可编程逻辑单元和/或用于根据这里公开的本总体发明构思的示范性实施例执行密码技术(例如,加密数据和/或解密数据)的任何适当的设备。篡改检测器1616可以是集成电路、传感器、处理器、现场可编程门阵列、可编程逻辑单元和/或用于根据如这里公开的本总体发明构思的示范性实施例检测与可消耗单元(例如,第一可消耗单元1600-1、第二可消耗单元1600-2等)的篡改的任何适当的设备。接口1617可以是用于向例如包括片上系统100的主控制器1100(例如,如图10中所图示的)发送数据和从该主控制器1100接收数据的任何适当的通信接口。
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监视操作环境,诸如电压、温度、压力、光亮以及频率,并且如果有诸如Decap(即,解封装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,图像形成装置的电力被开启时,在操作S1220,CPU 130访问第一存储器110。因此,在操作S1230,CPU 130通过使用存储在第一存储器中的程序和数据执行各种操作。例如,当初始化数据被存储在第一存储器110中时,CPU 130通过使用初始化数据来执行初始化图像形成装置。当初始化完成时,CPU 130读取非易失性存储器200中的加密的数据,并且通过使用存储在第一存储器110中的加密密钥来解密数据。CPU 130将解密的数据存储在第二存储器120中。
启动操作通过使用第二存储器120而不是通过使用第一存储器110来执行。因此,CPU 130不再需要使用第一存储器110。因此,在操作S1240,CPU130禁止对第一存储器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。除了第一存储器控制器1310、第二存储器控制器1320以及开关单元1330以外的其它元件在以上联系图7进行了具体描述,从而重复的描述被省略。
第一存储器控制器1310是用于控制对第一存储器110的访问的元件和/或设备。第一存储器控制器1310可以是集成电路、处理器、可编程逻辑器件、现场可编程门阵列和/或用于根据本总体发明构思的示范性实施例控制对第一存储器110的访问的任何适当的设备。当从CPU 130接收到读取信号时,第一存储器控制器1310读取由第一存储器110内的读取信号指定的区域中的数据,并且向CPU 130输出数据。第二存储器控制器1320可以控制对第二存储器120的访问。第二存储器控制器1320可以与第一存储器控制器1310一样执行读取和写入。第二存储器控制器1320可以是集成电路、处理器、可编程逻辑器件、现场可编程门阵列和/或用于根据本总体发明构思的示范性实施例控制对第一存储器110的访问的任何适当的设备。
开关单元1330是用于将第一存储器控制器1310和第二存储器控制器1320之一选择性地与总线150连接的元件和/或电子设备。也就是说,如上所述,在装置(例如,图像形成装置、电子装置等)被开启之后,CPU 130使用第一存储器110直到非易失性存储器200的数据被解密为止,此后,CPU 130使用第二存储器120。开关单元1330在CPU 130处于操作状态时连接第一存储器控制器1310与总线150以使用第一存储器110,并且在使用第一存储器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中。因此,第三电线160输出‘1’到开关单元1330。开关单元1330包括第一复用器1331、第二复用器1332以及第三复用器1333。第一复用器1331根据从第三电路160输出的值,选择性地将从第一存储器控制器1310和第二存储器控制器1320输出的值之一输出到总线150。
图13图示了这样的电路结构:其中当从第三电路165输出‘1’时,从第一存储器控制器1310输出的值被传送到总线150,而当从第三电路165输出‘0’时,从第二存储器控制器1320输出的值被传送到总线150。第二复用器1332和第三复用器1333根据从第三电路165输出的值将从总线150输入的值输出到第一存储器控制器1310或第二存储器控制器1320。
根据联系图12和图13图示和描述的本总体发明构思的示范性实施例,第一存储器110,即,诸如MASKROM,以及第二存储器120,即,诸如内部存储器,可以被分配给相同的地址区域,并且被根据启动次序选择性地使用。也就是说,在首先使用存储在第一存储器110中的代码之后,在最后阶段,通过设定寄存器1311,只有总线命令‘1’和数据输入‘1’在开关单元1330内可以是有效的。即使CPU 130访问相同的地址,第二存储器120也被连接,从而,第一存储器110的安全性被增加和/或加强。虽然图13图示了寄存器1311被布置在第一存储器控制器1310内部,但其当然不限于这种情况。例如,寄存器1311可以被布置在第一存储器控制器1310外部,并且可在初始阶段设定(即,只设定一次并且之后不被改变)的各种逻辑电路可以被嵌入到第一存储器控制器1310而非寄存器1311中。
因为开关单元1330被配备(例如,通过设定寄存器1311、和/或根据来自第二存储器控制器1320和/或第二电路160的输出),所有片上系统100不需要用总线150直接连接到诸如第一存储器控制器1310和第二存储器控制器1320的从设备,从而,逻辑的大小可以被降低。
在如上讨论的本总体发明构思的示范性实施例中,片上系统100通过使用存储在第一存储器110、第三存储器140等中的各种软件代码来执行初始化或安全启动。然而,存在如下风险:具有不良意图的人可以通过解封装过程直接对片上系统100(例如,第一存储器110)内的ROM执行攻击。因此,在本总体发明构思的示范性实施例中,软件代码可以在片上系统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。
CPU 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、代码格式化器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、3、4和5中读取寄存器值。与第n组匹配的第一复用器1760从第二、第三、第五和第六寄存器1750-2、3、5和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中生成的数据,并生成软件代码。所生成的软件代码可以被提供给CPU130或可以被复制到第二存储器120。
通过使用在代码生成单元1400中生成的软件代码,CPU 130不仅可以执行初始化操作,而且还可以执行各种操作。
图18和图19是图示出代码生成单元(例如,图14和图15中图示的代码生成单元1400和/或图17中图示的代码生成单元1700)中生成的软件代码的本总体发明构思的各种示范性实施例的视图。
根据图18,软件代码可以包括多个字段1910到1950。各种数据,诸如,条件(图示为图18中的字段1910)、操作码(Opcode)(即,规定了将要执行的操作的操作代码;图示为图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。
CPU 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闪速存储器2000的NOR闪存控制器2310。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,存储器控制器从CPU130接收写信号和第一密钥值。用户可以经由用户接口(例如,图10中图示的用户接口1300)输入由片上系统100接收的第一密钥值,或者第一密钥值可以从CPU 130自动地输入。CPU 130可以随机地选择预存储的多个密钥值中的一个,并且可以将所选择的密钥值的数字(number)输入到存储器控制器,或者可以自身输入密钥值。
当在操作S2420接收到第一密钥值时,在操作S2430,存储器控制器(例如,图23中图示的NOR闪存控制器2310)比较所接收的第一密钥值与预存储的第二密钥值。当在操作S2440确定两个密钥值彼此相同时,在操作S2450,存储器控制器执行对于外部存储器(例如,图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等。具体而言,当从CPU130发送第一密钥值时,信号传送单元2510将第一密钥值存储在寄存器2511内部,并且向比较单元2530提供所存储的第一密钥值。
至少一个第二密钥值可以被存储在密钥值存储装置2520中。
当通过信号传送单元2510传送第一密钥值时,比较单元2530将存储在密钥值存储装置2520中的第二密钥值与所接收的第二密钥值进行比较。
比较单元2530可以根据比较结果输出信号,诸如‘0’或‘1’。也就是说,比较单元2530可以比较第一密钥值和第二密钥值,并且根据第一密钥值是否与第二密钥值相同来输出一信号(例如,可以由比较单元2530输出‘1’),并且当第一密钥值不同于第二密钥信号时输出不同的信号(例如,可以由比较单元2530输出‘0’)。
信号处理器2550可以根据如由比较单元2530确定的比较结果,向外部非易失性存储器(例如,图1、图3、图4、图7以及图13至图15中图示的非易失性存储器200和/或图23中图示的NOR闪速存储器2000)选择性地输出从CPU 130发送的写信号。信号处理器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的连接时,什么都不能输出。也就是说,存储器访问控制器2540和信号处理器2550的转换器2552之间的连接被通过第一开关2551-1禁止。可替换地,即使从存储器访问控制器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之间的通信的事件以及图像形成装置100被开启并且启动完成的事件。除了那些事件以外,事件还可以包括各种情形,诸如检查密文是否是伪造的。
当在操作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,CPU 130通过使用密钥值2810解密密文(版本1)2840,密钥值2810与在操作S2830的加密中使用的密钥值(例如,密钥2810)相同,并且生成明文(版本1)2820,并使用明文(版本1)2820。
图29是根据版本2的明文和密文的示范性实施例。即使假设图29中的密钥值2810与版本1的密钥值2810相同,根据版本2的明文2920也不同于版本1的明文2820,从而,在于操作S2930的加密之后的密文2940也不同于版本1。在操作S2950,密文2940由CPU 130使用密钥值2810在操作S2950解密,以便生成明文2920的版本2,从而CPU 130可以使用明文(版本2)2920。
同样地,根据装置的版本的密文被存储在每个图像形成装置中并被使用,但是与多个版本中的每一个相对应的多个密文可以被存储在主机设备2600中。
图30图示了密钥值被泄露且代码被攻击的状态。被攻击的代码的密文3020不是正式发布的版本,而是由攻击者修改原始文本以便生成新的明文3010而得到的密文3020,然后分别在加密的操作S2930和解密的操作S2950期间将(暴露和/或泄露的)密钥值2810应用到明文3010。也就是说,在操作S2930,使用密钥2810加密新的明文(即,被攻击的代码)3010以形成密文3020。在操作S2950,密文3020使用密钥2810进行解密以形成新的明文3010(即,被攻击的代码)。当这个密文3020被存储在非易失性存储器中时,CPU 130必须按攻击者意图地执行启动,从而,难以正常地管理图像形成装置。然而,这里,主机设备2600没有在主机设备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芯片通过使用第一值和第二值来生成会话密钥,然后,生成第一MAC(Message Authentication Code,消息认证代码)。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 (15)

1.一种片上系统,包括:
第一存储器,用于存储多个加密密钥;
第二存储器;
第三存储器,用于存储加密密钥设定值;
第一存储器控制器,用于控制对第一存储器的访问;
第二存储器控制器,用于控制对第二存储器的访问;
总线;
CPU,用于使用所述多个加密密钥当中与所述加密密钥设定值相对应的加密密钥来解密存储在外部非易失性存储器中的加密的数据,将解密的数据存储在第二存储器中,并且使用存储在第二存储器中的数据执行启动;以及
开关单元,用于根据所述CPU的操作状态选择性地将第一存储器控制器和第二存储器控制器之一与所述总线连接。
2.如权利要求1所述的片上系统,其中,第一存储器控制器包括寄存器,其中寄存了关于第一存储器的访问控制值,
其中,所述开关单元根据所述访问控制值选择性地将第一存储器控制器和第二存储器控制器之一与所述总线连接,
其中,当所述CPU对第一存储器的使用完成时,所述CPU通过改变所述访问控制值来禁止对第一存储器的访问。
3.一种片上系统,包括:
第一存储器,用于存储多个加密密钥;
第二存储器;
第三存储器,用于存储加密密钥设定值;
CPU,用于使用所述多个加密密钥当中与所述加密密钥设定值相对应的加密密钥来解密存储在外部非易失性存储器中的加密的数据,将解密的数据存储在第二存储器中,并且使用存储在第二存储器中的数据执行启动;以及
存储器控制器,其通信地耦合到所述CPU,包括用于选择与外部存储器的连接状态的至少一个开关,
其中,所述存储器控制器根据第一密钥值和第二密钥值之间的比较结果,选择性地将从所述CPU接收到的写信号输出到所述外部存储器。
4.如权利要求3所述的片上系统,其中,当第一密钥值和第二密钥值相同时,所述存储器控制器控制所述至少一个开关选择连接状态,以便将所述写信号输出到所述外部存储器。
5.如权利要求3所述的片上系统,其中,所述存储器控制器控制所述至少一个开关以便禁止到所述外部存储器的连接,从而防止所述写信号被输出到所述外部存储器。
6.如权利要求5所述的片上系统,其中,即使在所述存储器控制器防止所述写信号被输出到所述外部存储器时,所述存储器控制器也控制所述外部存储器的读操作。
7.如权利要求3所述的片上系统,其中,所述至少一个开关包括第一开关和第二开关,其中所述存储器控制器控制第一开关以便控制所述外部存储器的读操作,并且控制第二开关以控制与第二开关的连接以便控制所述写信号到所述外部存储器的输出。
8.一种片上系统,包括:
第一存储器,用于存储多个加密密钥;
第二存储器;
第三存储器,用于存储加密密钥设定值;
CPU,用于使用所述多个加密密钥当中与所述加密密钥设定值相对应的加密密钥来解密存储在外部非易失性存储器中的加密的数据,将解密的数据存储在第二存储器中,并且使用存储在第二存储器中的数据执行启动;以及
代码生成单元,用于生成软件代码,
其中,所述CPU通过使用所述软件代码来执行初始化。
9.如权利要求8所述的片上系统,其中,所述代码生成单元包括:
地址解码器,用于从所述CPU接收地址并解码所述地址;
多个寄存器;以及
复用器,用于通过根据在所述地址解码器中解码的地址选择性地读取存储在所述多个寄存器中的寄存器值、并且通过组合所述寄存器值来生成所述软件代码。
10.如权利要求8所述的片上系统,其中,所述代码生成单元包括:
地址解码器,用于从所述CPU接收地址并解码所述地址;
第一生成单元,用于从所述地址解码器中解码的地址生成指令地址;
多个指令寄存器,其被划分为多个组;
多个指令复用器,用于根据所述指令地址从所述多个指令寄存器中选择性地读取寄存器值;
代码格式化器,用于通过组合在所述多个指令复用器中读取的值来生成代码;
第二生成单元,用于从所述地址解码器中解码的地址生成数据地址;
多个数据寄存器;
数据复用器,用于根据所述数据地址从所述多个数据寄存器中选择性地读取寄存器值并组合所读取的值;以及
复用器,用于通过组合在所述代码格式化器中生成的代码与在第二复用器中组合的数据来生成所述软件代码。
11.一种主机设备,包括:
存储装置,用于存储与多个版本中的每一个相对应的多个密文;
通信单元,用于在发生预定事件时接收存储在图像形成装置中的密文;
控制器,用于当与所述图像形成装置的固件版本相对应的密文与接收到的密文相同时,控制所述图像形成装置处于打印的等待状态,并且当所述密文和所述固件版本彼此不同时,所述控制器阻止对所述图像形成装置的使用。
12.一种电子设备,包括:
存储器设备;以及
片上系统,包括:
中央处理单元(CPU);以及
存储器控制器,其通信地耦合到所述CPU和所述存储器设备,所述存储器控制器用于根据第一密钥值和第二密钥值之间的比较结果,向所述存储器设备选择性地输出从所述CPU接收到的写信号。
13.如权利要求12所述的电子设备,其中,当第一密钥值和第二密钥值相同时,所述存储器控制器控制至少一个开关选择连接状态以便向所述存储器设备输出所述写信号。
14.如权利要求13所述的电子设备,其中,所述存储器控制器控制所述至少一个开关以便禁止到所述存储器设备的连接,从而防止所述写信号被输出到所述存储器设备。
15.如权利要求14所述的电子设备,其中,即使当所述存储器控制器防止所述写信号被输出到所述存储器设备时,所述存储器控制器也控制所述存储器设备的读操作。
CN201380064091.9A 2012-12-06 2013-11-15 执行安全启动的片上系统、使用该片上系统的图像形成装置及其方法 Expired - Fee Related CN104871169B (zh)

Applications Claiming Priority (7)

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
PCT/KR2013/010403 WO2014088239A1 (en) 2012-12-06 2013-11-15 System on chip to perform a secure boot, an image forming apparatus using the same, and method thereof

Publications (2)

Publication Number Publication Date
CN104871169A true CN104871169A (zh) 2015-08-26
CN104871169B CN104871169B (zh) 2018-02-06

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 After (1)

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

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)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106682535A (zh) * 2017-03-16 2017-05-17 周清睿 系统级芯片
CN107451072A (zh) * 2016-05-30 2017-12-08 三星电子株式会社 具有即时加密器的计算系统及其操作方法
CN110929261A (zh) * 2018-09-19 2020-03-27 爱思开海力士有限公司 存储器系统及其操作方法
CN111290977A (zh) * 2020-01-16 2020-06-16 芯创智(北京)微电子有限公司 一种基于ddr多数据单元的寄存器访问系统及方法
CN111492353A (zh) * 2018-08-15 2020-08-04 华为技术有限公司 一种安全的数据转移装置、系统和方法
CN113126905A (zh) * 2019-12-30 2021-07-16 美光科技公司 用于重放受保护存储器块的安全密钥更新

Families Citing this family (40)

* 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
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
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 현대자동차주식회사 차량용 제어기 및 그 업데이트 방법
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 한화테크윈 주식회사 보안 부팅 장치 및 그 동작 방법
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 (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070198856A1 (en) * 2000-01-06 2007-08-23 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
US20080294838A1 (en) * 2007-05-25 2008-11-27 Agere Systems Inc. Universal boot loader using programmable on-chip non-volatile memory
EP2226810A1 (en) * 2009-03-04 2010-09-08 Apple Inc. Data whitening for writing and reading data to and from a non-volatile memory
CN102063034A (zh) * 2008-03-03 2011-05-18 三星电子株式会社 使用os的单元以及使用所述单元的成像设备

Family Cites Families (27)

* 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 日本电气株式会社 具有卷动显示控制功能的无线通信装置
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
JP4349788B2 (ja) * 2002-10-31 2009-10-21 パナソニック株式会社 半導体集積回路装置
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
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 디바이스 검증 모델
WO2010011220A1 (en) * 2008-07-23 2010-01-28 Micro Motion, Inc. Processing system with external memory access control
US8594333B2 (en) * 2008-09-05 2013-11-26 Vixs Systems, Inc Secure key access with one-time programmable memory and applications thereof
US8484451B2 (en) * 2010-03-11 2013-07-09 St-Ericsson Sa Method and apparatus for software boot revocation

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070198856A1 (en) * 2000-01-06 2007-08-23 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
US20080294838A1 (en) * 2007-05-25 2008-11-27 Agere Systems Inc. Universal boot loader using programmable on-chip non-volatile memory
CN102063034A (zh) * 2008-03-03 2011-05-18 三星电子株式会社 使用os的单元以及使用所述单元的成像设备
EP2226810A1 (en) * 2009-03-04 2010-09-08 Apple Inc. Data whitening for writing and reading data to and from a non-volatile memory

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107451072A (zh) * 2016-05-30 2017-12-08 三星电子株式会社 具有即时加密器的计算系统及其操作方法
CN107451072B (zh) * 2016-05-30 2022-06-24 三星电子株式会社 具有即时加密器的计算系统及其操作方法
CN106682535A (zh) * 2017-03-16 2017-05-17 周清睿 系统级芯片
CN111492353A (zh) * 2018-08-15 2020-08-04 华为技术有限公司 一种安全的数据转移装置、系统和方法
US11888827B2 (en) 2018-08-15 2024-01-30 Huawei Technologies Co., Ltd. Secure data transfer apparatus, system, and method
CN110929261A (zh) * 2018-09-19 2020-03-27 爱思开海力士有限公司 存储器系统及其操作方法
CN110929261B (zh) * 2018-09-19 2023-03-28 爱思开海力士有限公司 存储器系统及其操作方法
CN113126905A (zh) * 2019-12-30 2021-07-16 美光科技公司 用于重放受保护存储器块的安全密钥更新
CN111290977A (zh) * 2020-01-16 2020-06-16 芯创智(北京)微电子有限公司 一种基于ddr多数据单元的寄存器访问系统及方法
CN111290977B (zh) * 2020-01-16 2021-11-16 芯创智(北京)微电子有限公司 一种基于ddr多数据单元的寄存器访问系统及方法

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
CN103853983B (zh) 2019-04-12
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
RU2628325C2 (ru) 2017-08-15

Similar Documents

Publication Publication Date Title
CN104871169A (zh) 执行安全启动的片上系统、使用该片上系统的图像形成装置及其方法
US10878098B2 (en) System on chip to perform a secure boot, an image forming apparatus using the same, and method thereof
US20140164753A1 (en) System on chip for performing secure boot, image forming apparatus using the same, and method thereof
CN102200714B (zh) 使用操作系统的单元和使用该单元的成像设备
KR100613156B1 (ko) 정보 처리 장치에 있어서의 데이터 보안
KR20150033895A (ko) 소모품 유닛에 탑재 가능한 crum 칩과 이를 인증하는 화상형성장치 및 그 인증 방법
US9258330B2 (en) Image processing apparatus that operates according to security policies, control method therefor, and storage medium
JP4505004B2 (ja) 画像形成装置
CN116841571A (zh) 一种芯片烧录方法和相关装置
JP2010219883A (ja) 画像形成装置および画像形成方法
KR20180055790A (ko) 소모품 유닛에 탑재 가능한 crum 칩과 이를 인증하는 화상형성장치 및 그 인증 방법

Legal Events

Date Code Title Description
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20170309

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.

GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: Gyeonggi Do, South Korea

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

Address before: Gyeonggi Do, South Korea

Patentee before: Aisi Printing Solutions Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20191112

Address after: Texas, USA

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

Address before: Han Guojingjidao

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

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

Granted publication date: 20180206

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