掌桥专利:专业的专利平台
掌桥专利
首页

片上系统和包括片上系统的电子装置

文献发布时间:2024-04-18 20:01:55


片上系统和包括片上系统的电子装置

本申请基于并要求于2022年7月11日在韩国知识产权局提交的第10-2022-0085279号韩国专利申请、于2022年8月12日在韩国知识产权局提交的第10-2022-0101593号韩国专利申请、和于2022年10月14日在韩国知识产权局提交的第10-2022-0132723号韩国专利申请的优先权,这些韩国专利申请的公开通过引用全部包含于此。

技术领域

公开涉及片上系统,并且更具体地,涉及包括安全元件的片上系统,该安全元件具有增强的安全性能。

背景技术

片上系统可表示执行各种操作的系统被集成在其中的单个芯片。片上系统可与外部装置(诸如,存储器装置)进行通信,并且执行一个或多个操作。

片上系统可存储和使用信息(诸如,密码和需要被保持安全的关于用户的个人信息)。因此,正在积极进行进一步开发片上系统的安全功能的研究。开发片上系统的安全功能的技术之一包括正在被研究的片上系统内部的安全元件,该安全元件提供安全功能和安全存储位置。

发明内容

公开的一个或多个方面提供包括安全元件的片上系统,该安全元件具有增强的安全功能。

根据公开的一个方面,提供一种芯片上系统,所述片上系统包括:主机中央处理器(CPU);以及安全元件,包括:主要装置,被配置为通过内部总线发送加密的数据,多个次要装置,被配置为接收加密的数据,安全CPU,被配置为管理用于访问所述多个次要装置的一个或多个访问密钥,以及内部总线,被配置为:基于所述一个或多个访问密钥之中的访问密钥,在所述多个次要装置之中选择加密的数据将被发送到的第一次要装置,并且将加密的数据和错误检测标签发送到第一次要装置。

主要装置可包括存储器加密引擎(MEE),存储器加密引擎(MEE)被配置为通过对一般数据进行加密来生成加密的数据。

内部总线可包括:总线许可开关,被配置为基于所述访问密钥选择第一次要装置;标签生成器,被配置为:生成错误检测标签,并且将错误检测标签附加到加密的数据;互连,被配置为发送附加有错误检测标签的加密的数据;以及标签检查器,被配置为确定附加有错误检测标签的加密的数据是否异常。

标签生成器还可被配置为基于加密的数据的类型来生成错误检测标签。

标签检查器还可被配置为:基于确定出附加有错误检测标签的加密的数据中不存在异常,将加密的数据发送到第一次要装置,并且基于确定出附加有错误检测标签的加密的数据中已经发生异常,将异常警报输出到主机CPU。

主机CPU可被配置为:基于接收到异常警报,停止安全元件的操作。

错误检测标签可包括奇偶校验位、循环冗余校验(CRC)和纠错码(ECC)中的至少一个。

第一次要装置可包括加扰电路,加扰电路被配置为基于地址加扰来设置加密的数据将被存储在的地址。

根据公开的一个方面,提供一种片上系统,所述片上系统包括:主机中央处理器(CPU);以及安全元件,包括:加密电路,被配置为生成加密密钥,安全CPU,被配置为通过使用加密密钥对一般数据进行加密来生成加密的数据,内部存储器,被配置为存储加密的数据,一次性可编程(OTP)存储器,被配置为存储加密密钥中的一个或多个和安全元件中使用的唯一标识符(UID),攻击检测电路,被配置为检测是否已经发生对加密的数据的外部攻击,内部总线,被配置为在安全元件内发送加密的数据和错误检测标签,以及外部总线,被配置为将加密的数据发送到安全元件的外部。

主机CPU可包括:存储器加密引擎(MEE),被配置为通过对一般数据进行加密来生成加密的数据。

内部总线可包括:总线许可开关,被配置为基于访问密钥来选择安全元件内的加密的数据将被发送到的目标装置。

内部总线可包括:标签生成器,被配置为:基于加密的数据的类型来生成错误检测标签,并且将错误检测标签附加到加密的数据;互连,被配置为发送附加有错误检测标签的加密的数据;以及标签检查器,被配置为确定附加有错误检测标签的加密的数据是否异常。

标签检查器还可被配置为:基于确定出附加有错误检测标签的加密的数据中不存在异常,将加密的数据发送到目标装置;并且基于确定出附加有错误检测标签的加密的数据中已经发生异常,将异常警报输出到主机CPU。

内部存储器可包括:加扰电路,被配置为基于地址加扰来设置加密的数据将被存储在的地址。

加密电路可包括:随机数生成器,被配置为生成用于生成加密密钥的随机数;以及加密密钥管理电路,被配置为基于通过随机数生成器生成的第一随机数来生成第一加密密钥。

攻击检测电路可包括:参考电压生成器,被配置为生成参考电压;温度检测器,被配置为基于参考电压来检测异常温度;以及电压检测器,被配置为基于参考电压来检测外部供应的电压是否异常。

攻击检测电路还可包括:电压调节器,被配置为基于参考电压来生成用于安全元件的操作的调整的电压。

攻击检测电路可包括:图案生成器,被配置为基于由加密电路生成的随机数来生成随机图案;以及图案比较器,被配置为:通过将经由第一层接收的随机图案的第一输出与经由第二层接收的随机图案的第二输出进行比较,确定是否已经发生外部攻击。

外部总线可包括:回滚防止电路,被配置为检测从安全元件的外部发送的数据是否被回滚。

安全元件还可包括:振荡器,被配置为向安全元件供应独立的系统时钟。

根据公开的一个方面,提供一种电子装置,所述电子装置包括:片上系统,包括主机中央处理器(CPU)和安全元件;以及外部存储器,被配置为与安全元件传送加密的数据,其中,安全元件被配置为:基于一般数据和加密参数生成第一加密标签,通过将第一加密标签附加到一般数据来生成加密的数据,并且将加密的数据发送到外部存储器,并且其中,外部存储器还被配置为存储加密的数据。

基于从外部存储器接收到加密的数据,安全元件还可被配置为:通过对加密的数据进行解密来获得恢复的数据;基于恢复的数据和加密参数来生成第二加密标签;并且将第一加密标签与第二加密标签进行比较,以确定恢复的数据是否异常。

安全元件还可被配置为:基于第一加密标签与第二加密标签相同,将恢复的数据存储在内部存储器中;并且基于第一加密标签与第二加密标签不同,将异常警报输出到主机CPU。

附图说明

从以下结合附图的详细描述将更清楚地理解公开的实施例,在附图中:

图1是示出根据示例实施例的包括片上系统的电子装置的框图;

图2是示出根据示例实施例的安全元件的组件的框图;

图3是更详细地示出根据示例实施例的安全元件的组件的框图;

图4是根据示例实施例的操作安全元件的方法的流程图;

图5是根据示例实施例的根据在安全元件中加密的数据是否异常的操作方法的流程图;

图6是示出根据示例实施例的安全元件的组件的框图;

图7是示出根据示例实施例的安全元件的攻击检测电路的示例的框图;

图8是示出根据示例实施例的安全元件的攻击检测电路的示例的框图;

图9是示出根据示例实施例的包括片上系统的电子装置的框图;

图10是根据示例实施例的当片上系统将数据发送到外部存储器时的操作方法的流程图;以及

图11是根据示例实施例的当片上系统从外部存储器接收数据时的操作方法的流程图。

具体实施方式

在下文中,将参照附图详细解释公开的各种示例实施例。

参照在附图中示出并在以下描述中详细描述的非限制性实施例,更全面地解释各种特征及其有利细节。省略对公知组件和处理技术的描述,以免不必要地模糊在此的实施例。此外,由于一些实施例可与一个或多个其他实施例组合以形成新的实施例,因此在此描述的各种实施例不一定是相互排斥的。除非另有指示,否则如在此所使用的术语“或”表示非排它性的或。在此使用的示例仅意在便于理解可实践在此的实施例的方式,并且进一步使本领域技术人员能够实践在此的实施例。因此,示例不应被解释为限于在此的实施例的范围。

如在此使用的,表述“……中的至少一个”在位于一列元素之后时,修饰整列元素,而不修饰列中的单个元素。例如,表述“a、b和c中的至少一个”应被理解为仅包括a、仅包括b、仅包括c、包括a和b两者、包括a和c两者、包括b和c两者、或包括全部的a、b和c。

附图用于帮助容易地理解各种技术特征,并且应理解,在此呈现的实施例不受附图的限制。因此,本公开应被解释为扩展到除了在附图中特别阐述的那些之外的任何改变、等同物和替代物。尽管在此可使用术语第一、第二等来描述各种元件,但是这些元件不应受这些术语的限制。这些术语通常仅用于将一个元件与另一元件区分开。

图1是示出根据示例实施例的包括片上系统的电子装置的框图。

参照图1,根据示例实施例,电子装置1包括片上系统10、动态随机存取存储器(DRAM)20、非易失性存储器(NVM)30和安全NVM 40。

根据示例实施例,电子装置1可以是但不限于智能电话、平板PC、智能TV、移动电话、个人数字助理(PDA)、膝上型计算机、媒体播放器、微服务器、全球定位系统(GPS)装置、电子书阅读器、数字广播终端、导航装置、自助服务终端、MP3播放器、数码相机、家用电器和其他移动或非移动计算装置中的任何一个。此外,电子装置1可以是可穿戴装置,包括但不限于具有数据处理功能的手表、眼镜、发带和戒指。然而,公开不限于此,因此,根据各种其他示例实施例,电子装置1可包括使用处理器基于操作系统(OS)进行操作的所有类型的装置。

根据示例实施例,片上系统10控制电子装置1的整体操作。此外,片上系统10可控制包括在电子装置1中的一个或多个组件。片上系统10执行OS和应用程序,并且可执行各种计算或数据处理操作。片上系统10可表示用于执行特定操作的专用处理器或能够通过执行存储在存储器装置中的一个或多个软件程序来执行相应操作的通用处理器。根据示例实施例,专用处理器可以是嵌入式处理器。例如,芯片上系统10可被实施为中央处理器(CPU)、微处理器或通信处理器(CP)。然而,公开不限于此,因此,片上系统10可由其他类型的处理器实施。根据示例实施例,片上系统10可包括用于执行一般操作的区域和用于执行与和安全性相关的数据处理相关的操作的区域。

根据示例实施例,片上系统10可包括主机CPU 100、安全元件200、一个或多个外围装置300、片上系统(SoC)互连400、DRAM接口500和NVM控制器600。

主机CPU 100可控制片上系统10的整体操作。主机CPU 100可控制包括在电子装置1中的一个或多个装置的操作。根据示例实施例,主机CPU 100可通过控制片上系统10的操作来控制包括在电子装置1中的一个或多个装置的操作。根据示例实施例,主机CPU 100可以是应用处理器(AP)。

安全元件200可执行与片上系统10的安全性相关的操作。安全元件200可安装和执行安全应用,并且可存储安全数据。安全元件200可包括提供用于安全存储、支付、认证或其他各种服务的应用的执行的硬件、软件、接口和协议。将稍后参照图2给出安全元件200的结构和操作的详细描述。

外围装置300可包括用于操作片上系统10的各种装置。

片上系统互连400可电连接包括在片上系统10中的装置。片上系统互连400可用作主机CPU 100、安全元件200、外围装置300、DRAM接口500和NVM控制器600之间的数据传输路径。

DRAM接口500可将片上系统10连接到设置在片上系统10外部的DRAM 20。DRAM接口500可管理包括在片上系统10中的装置与DRAM 20之间的数据传输。

NVM控制器600可将片上系统10连接到设置在片上系统10外部的NVM 30。NVM控制器600可基于从包括在片上系统10中的装置接收的命令来控制NVM 30的读取操作和写入操作。

DRAM 20和NVM 30可位于片上系统10外部。DRAM 20和NVM 30可由于片上系统10的有限区域而布置在外部,并且可被配置为执行诸如存储数据的操作。

安全NVM 40可直接连接到片上系统10的安全元件200。安全NVM 40直接连接到安全元件200,并且可存储用于安全元件200的操作的安全数据。根据示例实施例,安全NVM 40可不连接到片上系统10的除了安全元件200之外的其他装置。

图2是示出根据示例实施例的安全元件的组件的框图。

参照图2,根据示例实施例的安全元件200可包括主要装置210、内部总线220、第一次要装置230、第二次要装置240和安全CPU 250。尽管图2示出安全元件200包括一个主要装置210和两个次要装置(即,第一次要装置230和第二次要装置240)的示例实施例,但是公开不限于此。因此,根据另一示例实施例,安全元件200可包括两个或更多个主要装置,或者可包括一个次要装置或三个或更多个次要装置。尽管本实施例描述主要装置和次要装置,但是公开不限于此,因此,根据另一实施例,主要装置可被称为第一装置,并且次要装置可被称为第二装置。根据另一实施例,主要装置可被称为主装置,并且次要装置可被称为辅助装置。

主要装置210、第一次要装置230和第二次要装置240可包括在安全元件200中操作的各种硬件块、软件块或它们的组合。根据示例实施例,主要装置210、第一次要装置230和第二次要装置240中的每个可各自是被配置为执行特定功能的软件知识产权(IP)块、固件IP块或硬件IP块。

安全CPU 250可控制安全元件200的整体操作。例如,安全CPU 250可读取存储在DRAM 20、NVM 30和安全NVM 40中的任何一个中的数据,并执行与安全元件200的内部命令对应的操作。

内部总线220可将主要装置210、第一次要装置230、第二次要装置240和安全CPU250互连。内部总线220可用作主要装置210、第一次要装置230、第二次要装置240和安全CPU250之间的数据传输路径。

根据示例实施例,主要装置210可将加密的数据发送到第一次要装置230或第二次要装置240。根据示例实施例,主要装置210可通过内部总线220将加密的数据发送到第一次要装置230或第二次要装置240。也就是说,内部总线220可促进加密的数据从主要装置210到第一次要装置230或第二次要装置240的传输。根据示例实施例,次要装置中的一个可被选择或设置为加密的数据将被发送到的次要装置。例如,第一次要装置230和第二次要装置240中的一个可被设置或选择为加密的数据将从主要装置210被发送到的次要装置。根据示例实施例,次要装置中的一个可由安全CPU 250选择或设置为加密的数据将从主要装置210被发送到的次要装置。然而,公开不限于此。根据示例实施例,第一次要装置230和第二次要装置240中的一个可基于从安全CPU 250接收的访问密钥而被设置或选择。根据示例实施例,内部总线220可将加密的数据发送到第一次要装置230和第二次要装置240之中的设置的次要装置。根据示例实施例,内部总线220可基于从安全CPU 250接收的访问密钥来从第一次要装置230和第二次要装置240之中设置加密的数据将被发送到的次要装置,并且通过使用错误检测标签将加密的数据发送到设置的次要装置。因此,第一次要装置230或第二次要装置240可接收加密的数据。下面可参照图3更详细地描述安全元件200的操作。

图3是更详细地示出根据示例实施例的安全元件的组件的框图。

参照图3,根据示例实施例的安全元件200可包括主要装置210、内部总线220、第一次要装置230、第二次要装置240和安全CPU 250。

主要装置210可通过内部总线220将加密的数据发送到另一装置。此外,主要装置210可通过内部总线220从其他装置接收加密的数据。例如,主要装置210可通过内部总线220将加密的数据发送到次要装置230和次要装置240中的一个或多个,和/或可从次要装置230和次要装置240中的一个或多个接收加密的数据。然而,公开不限于此,因此,主要装置210可通过内部总线220将加密的数据发送到一个或多个其他装置,和/或通过内部总线220从一个或多个其他装置接收加密的数据。

主要装置210可包括存储器加密引擎(MEE)211。主要装置210可通过经由MEE 211对一般数据进行加密来生成加密的数据。此外,主要装置210可通过经由MEE 211对加密的数据进行解密来生成一般数据。

MEE 211可接收将由主要装置210发送到另一装置的一般数据。根据示例实施例,一般数据可以是明文的形式。根据示例实施例,MEE 211可从安全NVM 40接收数据。然而,公开不限于此,因此,MEE 211可从另一源装置接收数据。MEE 211可通过对接收的一般数据进行加密来生成加密的数据。根据示例实施例,加密的数据可以是密文的形式。

此外,MEE 211可通过内部总线220接收从另一装置发送的加密的数据。MEE 211可通过对接收的加密的数据进行解密来生成一般数据。

根据示例实施例,MEE 211可通过使用通过固定密钥和动态值的组合得出的动态密钥对一般数据进行加密来生成加密的数据。

根据示例实施例,MEE 211可通过基于加密算法对一般数据进行加密来生成加密的数据。此外,MEE 211可通过基于加密算法对加密的数据进行解密来生成一般数据。根据示例实施例,MEE 211使用的加密算法可以是但不限于高级加密标准(AES)、数据加密标准(DES)、三重DES、SEED、高安全和轻量(HIGHT)、ARIA和轻量级加密算法(LEA)中的任何一种。

内部总线220可通过使用访问密钥和错误检测标签将从主要装置210接收的加密的数据发送到第一次要装置230或第二次要装置240。

内部总线220可包括总线许可开关221、多个标签生成器222、互连223和多个标签检查器。根据示例实施例,多个标签生成器222可包括第一标签生成器222_1、第二标签生成器222_2、第三标签生成器222_3和第四标签生成器222_4。根据示例实施例,多个标签检查器224可包括第一标签检查器224_1、第二标签检查器224_2、第三标签检查器224_3和第四标签检查器224_4。

总线许可开关221可接收由主要装置210发送的加密的数据。总线许可开关221可基于访问密钥来设置加密的数据将被发送到的次要装置。根据示例实施例,总线许可开关221可基于访问密钥在多个次要装置之中选择加密的数据将被发送到的次要装置。然而,公开不限于此,因此,根据另一示例实施例,总线许可开关221可基于访问密钥在多个次要装置之中选择加密的数据将被发送到的一个或多个次要装置。

访问密钥可表示主要装置210对多个次要装置的访问权限。例如,访问密钥可表示主要装置210访问第一次要装置230和/或第二次要装置240的访问权限。访问密钥可以是包括若干位的值,并且可由安全CPU 250管理。

总线许可开关221可通过使用访问密钥来确定主要装置210是否可访问加密的数据将被发送到的次要装置。例如,总线许可开关221可使用访问密钥来确定主要装置210是否能够访问加密的数据将被发送到的次要装置。此后,总线许可开关221可根据确定的结果设置或选择加密的数据将被发送到的次要装置。

根据示例实施例,总线许可开关221可基于访问密钥在第一次要装置230和第二次要装置240之中选择设置用于接收由主要装置210发送的加密的数据的次要装置。

总线许可开关221可将加密的数据发送到第一标签生成器222_1。

第一标签生成器222_1可基于从总线许可开关221接收的加密的数据来生成错误检测标签。错误检测标签可以是将被附加到加密的数据以确定通过内部总线220发送的数据是否被外部攻击损坏的标签。根据示例实施例,错误检测标签可包括奇偶校验位、循环冗余校验(CRC)和纠错码(ECC)中的至少一个。然而,公开不限于此,因此,根据另一示例实施例,其他错误检测技术可被实施。

第一标签生成器222_1可基于加密的数据的类型来生成错误检测标签。根据示例实施例,当内部总线220使用高级微控制器总线架构(AMBA)协议时,加密的数据可根据加密的数据是总线控制信号、读取数据还是写入数据以不同的时序被发送。因此,第一标签生成器222_1可根据加密的数据的类型不同地设置传输时序,并且根据设置的传输时序生成错误检测标签。

第一标签生成器222_1可将生成的错误检测标签附加到从主要装置210接收的加密的数据。第一标签生成器222_1可将加密的数据连同错误检测标签一起发送到互连223。例如,加密的数据可被附加有错误检测标签,并且第一标签生成器222_1可将附加有错误检测标签的加密的数据发送到互连223。

第二标签生成器222_2可基于从安全CPU 250接收的加密的数据来生成错误检测标签。此外,第二标签生成器222_2可将生成的错误检测标签附加到从安全CPU 250接收的加密的数据。

第三标签生成器222_3可基于从第一次要装置230接收的加密的数据来生成错误检测标签。第三标签生成器222_3可将生成的错误检测标签附加到从第一次要装置230接收的加密的数据。

第四标签生成器222_4可基于从第二次要装置240接收的加密的数据来生成错误检测标签。第四标签生成器222_4可将生成的错误检测标签附加到从第二次要装置240接收的加密的数据。

根据示例实施例,第二标签生成器222_2、第三标签生成器222_3和第四标签生成器222_4可各自按照与第一标签生成器222_1相同的方式生成错误检测标签。

互连223可发送加密的数据,其中错误检测标签附加到加密的数据。根据示例实施例,互连223可从多个标签生成器222中的任何一个接收附加有错误检测标签的加密的数据,并且将接收的附加有错误检测标签的加密的数据发送到多个标签检查器224中的任何一个。例如,互连223可从第一标签生成器222_1、第二标签生成器222_2、第三标签生成器222_3和第四标签生成器222_4中的任何一个接收附加有错误检测标签的加密的数据,并且将接收的附加有错误检测标签的加密的数据发送到第一标签检查器224_1、第二标签检查器224_2、第三标签检查器224_3和第四标签检查器224_4中的任何一个。

根据示例实施例,多个标签检查器224(即,第一标签检查器224_1、第二标签检查器224_2、第三标签检查器224_3和第四标签检查器224_4)中的每个可从互连223接收附加有错误检测标签的加密的数据。例如,多个标签检查器224中的任何一个可从互连223接收附加有错误检测标签的加密的数据。多个标签检查器224可各自基于错误检测标签和加密的数据来确定附加有错误检测标签的加密的数据是否异常。多个标签检查器224可根据错误检测标签的类型通过使用不同的方法来确定加密的数据是否异常。

当确定附加有错误检测标签的加密的数据中不存在异常时,多个标签检查器224可各自将加密的数据发送到接收装置。例如,当确定附加有错误检测标签的加密的数据中不存在异常时,第一标签检查器224_1、第二标签检查器224_2、第三标签检查器224_3和第四标签检查器224_4中的每个可各自将加密的数据发送到接收装置。根据示例实施例,当确定附加有错误检测标签的加密的数据中不存在异常时,第一标签检查器224_1可将加密的数据发送到主要装置210。当确定附加有错误检测标签的加密的数据中不存在异常时,第二标签检查器224_2可将加密的数据发送到安全CPU 250。当确定附加有错误检测标签的加密的数据中不存在异常时,第三标签检查器224_3可将加密的数据发送到第一次要装置230。当确定附加有错误检测标签的加密的数据中不存在异常时,第四标签检查器224_4可将加密的数据发送到第二次要装置240。

相反,当确定附加有错误检测标签的加密的数据中已经发生错误(或,异常)时,多个标签检查器224(即,第一标签检查器224_1、第二标签检查器224_2、第三标签检查器224_3和第四标签检查器224_4)可各自将异常警报输出到主机CPU 100。当异常警报被接收到时,主机CPU 100可执行对策。根据示例实施例,主机CPU 100可停止安全元件200的操作。

第一次要装置230可通过内部总线220从另一装置接收加密的数据。此外,第一次要装置230可通过内部总线220发送将被发送到另一装置的加密的数据。

第一次要装置230可包括加扰电路231。第一次要装置230可通过加扰电路231设置用于存储接收的加密的数据的地址。根据示例实施例,加扰电路231可通过地址加扰来设置用于存储加密的数据的地址。此外,第一次要装置230可通过加扰电路231搜索用于存储将被发送的加密的数据的地址。

第二次要装置240可通过内部总线220从另一装置接收加密的数据。此外,第二次要装置240可通过内部总线220发送将被发送到另一装置的加密的数据。

第二次要装置240可包括加扰电路241。第二次要装置240可通过加扰电路241设置用于存储接收的加密的数据的地址。根据示例实施例,加扰电路241可通过地址加扰来设置用于存储加密的数据的地址。此外,第二次要装置240可通过加扰电路241搜索用于存储将被发送的加密的数据的地址。

安全CPU 250可通过内部总线220发送将被发送到另一装置的加密的数据。此外,安全CPU 250可通过内部总线220从其他装置接收加密的数据。

安全CPU 250可包括MEE 251。安全CPU 250可通过经由MEE 251对一般数据进行加密来生成加密的数据。此外,安全CPU 250可通过MEE 251对加密的数据进行解密来生成一般数据。根据示例实施例,包括在安全CPU 250中的MEE 251的功能和操作可与包括在主要装置210中的MEE 211的功能和操作相同。

根据示例实施例,安全CPU 250可管理访问密钥。安全CPU 250可将访问密钥提供给总线许可开关221,从而使总线许可开关221能够设置加密的数据将被发送到的次要装置。

通过使用如上所述的包括安全元件200的片上系统10,内部总线220可通过使用访问密钥和错误检测标签来发送加密数据,从而提高片上系统10的安全性能。

图4是根据示例实施例的操作安全元件的方法的流程图。

参照图4,在操作S410中,主要装置210可通过MEE 211生成加密的数据。MEE 211可通过对一般数据进行加密来生成加密的数据。由主要装置210生成的加密的数据可被发送到内部总线220的总线许可开关221。

在操作S420中,内部总线220可通过总线许可开关221设置加密的数据将被发送到的次要装置。根据示例实施例,内部总线220可通过总线许可开关221选择加密的数据将被发送到的次要装置。例如,总线许可开关221可基于从安全CPU 250接收的访问密钥在多个次要装置之中设置或选择加密的数据将被发送到的次要装置。根据示例实施例,总线许可开关221可在多个次要装置之中选择加密的数据将被发送到的一个或多个次要装置。

根据示例实施例,当主要装置210要将加密的数据发送到第一次要装置230时,总线许可开关221可基于访问密钥确定主要装置210是否能够访问第一次要装置230。此外,当确定主要装置210能够访问第一次要装置230时,总线许可开关221可将第一次要装置230设置为加密的数据将被发送到的次要装置。

根据示例实施例,当确定主要装置210不能够访问第一次要装置230时,总线许可开关221可基于访问密钥确定主要装置210是否能够访问第二次要装置240,并且总线许可开关221可将第二次要装置240设置为加密的数据将被发送到的次要装置。

在加密的数据将被发送到的次要装置被设置之后,总线许可开关221可将加密的数据发送到第一标签生成器222_1。

在操作S430中,内部总线220可使用第一标签生成器222_1生成错误检测标签。例如,第一标签生成器222_1可基于接收的加密的数据来生成错误检测标签。

在操作S440中,内部总线220可使用第一标签生成器222_1将错误检测标签附加到加密的数据。例如,第一标签生成器222_1可将错误检测标签附加到加密的数据,并且将附加有错误检测标签的加密的数据发送到互连223。

在操作S450中,内部总线220可通过互连223发送附加有错误检测标签的加密的数据。互连223可将附加有错误检测标签的加密的数据发送到第三标签检查器224_3,第三标签检查器224_3是与“由总线许可开关221设置为将加密的数据发送到的次要装置”的第一次要装置230对应的标签检查器。

在操作S460中,内部总线220可通过第三标签检查器224_3确定加密的数据是否异常。第三标签检查器224_3可基于错误检测标签和加密的数据来确定附加有错误检测标签的加密的数据是否异常。可参照图5描述根据第三标签检查器224_3确定加密的数据是否异常的结果的操作。

图5是根据示例实施例的用于在安全元件中确定加密的数据是否异常的操作方法的流程图。

参照图5,在操作S510中,内部总线220可使用第三标签检查器224_3来确定加密的数据中是否已经发生错误。例如,第三标签检查器224_3可确定加密的数据中是否已经发生错误。

根据示例实施例,当确定加密的数据中已经发生异常时,在操作S520中,内部总线220可将异常警报输出到主机CPU 100。例如,第三标签检查器224_3可基于确定加密的数据中已经发生错误来将异常警报输出到主机CPU 100。因此,主机CPU 100可基于输出的异常警报来执行对策。例如,主机CPU 100可执行诸如停止安全元件200的操作的对策。然而,公开不限于此,因此,响应于异常警报,可由主机CPU 100或电子装置的其他组件执行其他对策操作。以这种方式,提高了系统的安全性。

另一方面,当确定加密的数据中不存在异常时,在操作S530中,内部总线220可使用第三标签检查器224_3将加密的数据发送到第一次要装置230。例如,当第三标签检查器224_3确定加密的数据中不存在异常时,第三标签检查器224_3可将加密的数据发送到第一次要装置230。

图6是示出根据示例实施例的安全元件的组件的框图。

参照图6,根据示例实施例的安全元件700可包括安全CPU 710、内部存储器720、加密电路730、一次性可编程(One Time Programmable,OTP)存储器740、攻击检测电路(或,攻击检测器电路)750、内部总线760和外部总线770。

安全CPU 710可控制安全元件700的整体操作。安全CPU 710可通过对安全攻击执行对策来保持安全元件700的安全性。

安全CPU 710可包括MEE。安全CPU 710可通过经由MEE对一般数据进行加密来生成加密的数据。MEE可基于由稍后描述的加密电路730生成的加密密钥来生成加密密钥。包括在安全CPU 710中的MEE的功能和操作可与包括在根据图3的实施例的主要装置210中的MEE211的功能和操作相同。

安全CPU 710可管理访问密钥。安全CPU 710可将访问密钥提供给内部总线760,从而控制通过内部总线760访问包括在安全元件700中的装置中的任何一个的授权。

内部存储器720可存储加密的数据。内部存储器720可包括加扰电路。内部存储器720可通过经由加扰电路执行地址加扰操作来设置用于存储加密的数据的地址。此外,内部存储器720可通过加扰电路搜索加密的数据被存储在的地址。

加密电路730可响应于安全攻击而执行各种操作。例如,加密电路730可执行以下操作包括但不限于:用于故障注入攻击(FIA)的错误检测、数据掩码、密钥掩码、响应于侧信道攻击(SCA)的操作电流/时序随机化等。

加密电路730可生成用于一般数据的加密的加密密钥。加密电路730可包括随机数生成器和加密密钥管理电路。

随机数生成器可生成用于生成加密密钥的随机数。通过随机数生成器生成的随机数可被注入到安全元件700中的其他装置中并用于安全操作。根据示例实施例,通过随机数生成器生成的随机数可被注入到将稍后参照图8描述的攻击检测电路750的图案生成器755中。

加密密钥管理电路可基于通过随机数生成器生成的随机数来生成加密密钥。加密密钥管理电路可使用加密算法中的任何一种来生成加密密钥,加密算法包括但不限于AES、DES、三重DES、SEED、HIGHT、ARIA和LEA。根据示例实施例,加密密钥管理电路可将生成的加密密钥发送到安全CPU 710的MEE。

根据示例实施例,OTP存储器740可存储一个或多个加密密钥和唯一标识符(UID)。例如,OTP存储器740可存储在安全元件700内部使用的唯一标识符(UID)和至少一些加密密钥。OTP存储器740可以以加密形式存储至少一些加密密钥和UID。OTP存储器740可通过加密协议检查存储在其中的值的完整性。

攻击检测电路750可检测是否已经发生对加密的数据的外部攻击。攻击检测电路750可检测来自外部的激光攻击、毛刺攻击、电压攻击、温度攻击等,并且可包括用于检测这样的攻击的各种类型的传感器。将稍后参照图7和图8更详细地描述攻击检测电路750的结构和操作。

内部总线760可用作包括在安全元件700中的装置之间的数据传输路径。内部总线760可使用错误检测标签在安全元件700内部发送加密的数据。

如上面图3中所示,内部总线760可包括总线许可开关、多个标签生成器、互连和多个标签检查器。总线许可开关可基于访问密钥来选择在安全元件700内的加密的数据将被发送到的目标。多个标签生成器可基于加密的数据的类型生成错误检测标签,并且将错误检测标签附加到加密的数据。互连可发送附加有错误检测标签的加密的数据。多个标签检查器可确定附加有错误检测标签的加密的数据是否异常。当确定附加有错误检测标签的加密的数据中不存在异常时,多个标签检查器可将加密的数据发送到目标装置。当确定附加有错误检测标签的加密的数据中已经发生异常时,多个标签检查器可将错误警报输出到主机CPU 100。

内部总线760的详细操作可与上面参照图3至图5描述的操作相同。

外部总线770可用作包括在安全元件700中的装置与在包括安全元件700的片上系统10内部的其他装置(例如,主机CPU 100、外围装置300等)之间的数据传输路径。外部总线770可将在安全元件700内部生成的加密的数据发送到安全元件700的外部。例如,外部总线770可将在安全元件700内部生成的加密的数据发送到安全元件700外部的一个或多个组件或装置。此外,外部总线770可将在安全元件700外部生成的加密的数据发送到安全元件700的内部。

外部总线770可检测从安全元件700外部发送的数据是否被回滚(roll back)。在示例实施例中,外部总线770可包括回滚防止电路,并且回滚防止电路可被配置为检测从安全元件700的外部发送的数据是否被回滚。例如,外部总线770可检测从安全元件700外部的组件或装置发送的数据是否被回滚。外部总线770可通过检查与数据一起发送的时间戳来检测数据是否被回滚。

根据示例实施例,安全元件700还可包括振荡器。振荡器可向安全元件700的内部供应独立的系统时钟。因此,安全元件700内部的安全操作可独立于安全元件700的外部而被执行。

图7是示出根据示例实施例的安全元件的攻击检测电路的示例的框图。

参照图7,攻击检测电路750可包括参考电压生成器751、温度传感器(或,温度检测器)752、电压检测器753和电压调节器754。

参考电压生成器751可生成参考电压。参考电压生成器751可生成不管外部环境如何的恒定参考电压,并且向攻击检测电路750中的其他装置供应生成的参考电压。

温度传感器752可基于参考电压来检测异常温度。根据示例实施例,温度传感器752可通过确定通过温度传感器检测到的温度是否在基于参考电压计算的正常温度范围内来检测异常温度。当检测到异常温度时,温度传感器752可将异常警报输出到主机CPU 100。

电压检测器753可基于参考电压来检测外部供应的电压是否异常。根据示例实施例,电压检测器753可通过确定通过电压传感器检测到的外部供应的电压是否在基于参考电压计算的正常电压范围内来检测外部供应的电压是否异常。此外,电压检测器753可通过检测在通过电压传感器检测到的外部供应的电压中是否发生毛刺来检测外部供应的电压是否异常。当检测到外部供应的电压异常时,电压检测器753可将异常警报输出到主机CPU100。

电压调节器754可基于参考电压来生成用于安全元件700的操作的调整的电压。由于调整的电压基于具有不管外部环境如何的恒定电平的参考电压而被生成,因此调整的电压也可具有不管外部环境如何的恒定电平。因此,调整的电压可用于安全元件700的操作,安全元件700即使在通过外部环境的变化的攻击下也需要正常操作。根据示例实施例,电压调节器754可以是低压差(LDO)调节器。

图8是示出根据示例实施例的安全元件的攻击检测电路的示例的框图。

参照图8,攻击检测电路750可包括图案生成器755和图案比较器756。

图案生成器755可基于由加密电路730生成的随机数来生成随机图案。接下来,图案生成器755可通过第一层800和第二层900将随机图案发送到图案比较器756。

根据示例实施例,第一层800可以是覆盖片上系统10的下部部分的下部金属层,并且第二层900可以是覆盖片上系统10的上部部分的上部金属层。

图案比较器756可将通过第一层800接收的随机图案与通过第二层900接收的随机图案进行比较,从而确定是否已经发生外部攻击。例如,当外部攻击者物理地去除第一层800或第二层900以检测片上系统10内部的数据时,由图案比较器756通过第一层800接收的图案和由图案比较器756通过第二层900接收的图案可彼此不同。因此,图案比较器756可将通过不同路径发送的随机图案彼此进行比较,从而检测对片上系统10的物理安全攻击。

当包括如上所述的安全元件700的片上系统10被使用时,包括在安全元件700中的每个装置执行用于增强安全性能的操作,因此片上系统10的安全性能可被提高。此外,通过在安全元件700中加密和发送数据并通过攻击检测电路750检测是否已经发生对加密的数据的外部攻击,可处置对片上系统10的各种类型的安全攻击。

图9是示出根据示例实施例的包括片上系统的电子装置的框图。

参照图9,电子装置1可包括片上系统10和外部存储器20。

片上系统10可包括主机CPU 100、安全元件200和片上系统互连400。由于图9中示出的主机CPU 100、安全元件200和片上系统互连400执行与图1中示出的主机CPU 100、安全元件200和片上系统互连400的操作总体类似的操作,因此下面将给出上面未描述的操作的描述。

安全元件200可将加密的数据发送到外部存储器20。根据示例实施例,安全元件200可基于加密参数和将被发送的一般数据来生成加密的数据。将稍后参照图10更详细地描述与安全元件200传输加密的数据相关的操作。

安全元件200可从外部存储器20接收加密的数据。根据示例实施例,安全元件200可基于加密参数和接收的加密的数据来确定接收的加密的数据中是否存在异常。将稍后参照图11更详细地描述与安全元件200接收加密的数据相关的操作。

外部存储器20可通过片上系统互连400连接到片上系统10。根据示例实施例,外部存储器20可以是DRAM。根据示例实施例,外部存储器20可通过图1中示出的DRAM接口500连接到片上系统互连400。

外部存储器20可通过片上系统互连400与安全元件200交换加密的数据。此外,外部存储器20可存储从安全元件200接收的加密的数据。此外,外部存储器20可将存储的加密的数据发送到安全元件200。

图10是根据示例实施例的当片上系统将数据发送到外部存储器时的操作方法的流程图。

参照图10,在操作S1010中,安全元件200可通过使用一般数据和加密参数来生成第一加密标签。例如,安全元件200可基于一般数据和加密参数来生成第一加密标签。

根据示例实施例,安全元件200可通过使用包括但不限于AES、DES、三重DES、SEED、HIGHT、ARIA和LEA的加密算法中的任何一种来生成第一加密标签。安全元件200使用的加密算法的类型不受限制。

根据示例实施例,加密参数可以是用于验证一般数据的完整性的参数,并且可以是例如密钥值、计数器值、时序器值等中的任何一个。在这种情况下,安全元件200可使用与加密参数相同的值,但是加密参数的初始向量值可每次变化。

第一加密标签和用于生成第一加密标签的加密参数可被存储在安全元件200中。

在操作S1020中,安全元件200可通过将第一加密标签附加到一般数据来生成加密的数据。根据示例实施例,安全元件200可通过将第一加密标签附加到一般数据的前端或后端来生成加密的数据。

在操作S1030中,安全元件200可将加密的数据发送到外部存储器20。加密的数据可通过片上系统互连400从安全元件200发送到外部存储器20。

当从安全元件200接收到加密的数据时,外部存储器20可存储加密的数据。根据示例实施例,外部存储器20可对加密的数据执行附加加密,或者可在通过地址加扰设置加密的数据将被存储在的地址之后存储加密的数据。

图11是根据示例实施例的当片上系统从外部存储器接收数据时的操作方法的流程图。

参照图11,在操作S1110中,安全元件200可从外部存储器20接收加密的数据。安全元件200可通过片上系统互连400从外部存储器20接收加密的数据。

在操作S1120中,安全元件200可通过对加密的数据进行解密来获得恢复的数据。安全元件200可通过使用在上面描述的操作S1010中使用的加密算法和加密参数对加密的数据进行解密来获得恢复的数据。

根据示例实施例,当外部存储器20中的加密的数据中不存在异常时,恢复的数据将与一般数据相同。相反,当外部存储器20中的加密的数据中发生异常时,恢复的数据将与一般数据不同。

在操作S1130中,安全元件200可通过使用恢复的数据和加密参数来生成第二加密标签。安全元件200可通过使用在上面描述的操作S1010中使用的加密算法和加密参数来从恢复的数据获得第二加密标签。

在操作S1140中,安全元件200可将第一加密标签与第二加密标签进行比较,以确定恢复的数据是否异常。根据示例实施例,安全元件200可在通过使用第一加密标签执行上面描述的操作S1010之后使用存储在安全元件200中的值。

当第一加密标签和第二加密标签相同时,安全元件200可确定恢复的数据中不存在异常。由于恢复的数据中不存在异常,因此安全元件200可将恢复的数据存储在内部存储器中。

当第一加密标签和第二加密标签不相同时,安全元件200可确定恢复的数据中已经发生异常。由于恢复的数据中已经发生异常,因此安全元件200可将异常警报输出到主机CPU 100。

通过使用如上所述的电子装置1,可通过经由第一加密标签和第二加密标签确定加密的数据是否异常来提高片上系统10的安全性能。

虽然已经参考公开的实施例具体示出和描述了公开,但是将理解,在不脱离所附权利要求的精神和范围的情况下,可在其中进行形式和细节上的各种改变。

技术分类

06120116566500