半导体装置及其控制方法与流程

未命名 08-02 阅读:132 评论:0

半导体装置及其控制方法
1.相关申请的交叉引用
2.于2022年1月27日提交的日本专利申请no.2022-011160的公开内容(包括说明书、附图和摘要)通过引用以其整体并入本文。
技术领域
3.本发明涉及一种半导体装置及其控制方法,并且例如涉及一种适于在抑制电路规模增大的同时满足安全性要求和功能安全要求的半导体装置及其控制方法。


背景技术:

4.近来,在作为半导体装置的示例的ecu(电子控制单元)领域中,在ecu之间的通信中满足安全性要求以防止来自恶意第三方的攻击的必要性正在增加。同时,ecu之间的通信必须满足高水平的功能安全要求,以免引起故障。
5.aes(高级加密标准)技术被称为用于满足安全性要求的示例性加密技术。
6.功能安全要求还要求保证满足功能安全标准的asil(汽车安全完整性等级)的高水平安全。asil指示电子系统中在潜在危险之中应避免的危险水平。这在iso 26262中进行规定。具体地,asil以从a到d的四个阶段进行表示,其中asil-a指示最低程度的危险,asil-d指示最高程度的危险。
7.在要求最高功能安全等级(即,asil-d)的车载电子系统中,使用称为dcls(双核锁步)的安全机制,其中两个核成对以执行锁步(lockstep)操作。在锁步操作中,对同时执行相同处理的两个核中的每个核的处理结果进行比较,如果处理结果彼此一致,则确定未发生故障,如果处理结果彼此不一致,则确定发生了故障。
8.这里,当采用满足安全性要求的加密技术的加密模块(例如,采用aes加密技术的加密模块)是dcls以满足功能安全要求时,复制加密模块,在一个加密模块中执行原始加密处理,在另一加密模块中执行用于验证(比较)的加密处理,然后将由一个加密模块执行的加密处理的结果与由另一加密模块执行的加密处理的结果进行比较,从而实现锁步操作。
9.更具体地,复制的加密模块之一对从外部输入的明文数据执行加密处理以生成第一加密数据,而另一加密模块对加密模块之一所共有的明文数据执行加密处理以生成第二加密数据。比较器对在每个复制的加密模块中生成的加密数据进行比较,以确定加密数据是否彼此一致。这使得能够在高等级下进行故障检测。
10.顺便提及,加密模块的复制不仅对于检测意外故障是有效的,而且对于检测由故障攻击等有意形成的故障是有效的,故障攻击是侧信道攻击之一。与诸如aes和rsa的现代加密器(其被认为在计算上相对于加密分析方法是安全的)的安全接地不同,侧信道攻击是通过物理手段试图通过观察依赖于实现的泄漏信息(诸如电流消耗和处理时间)来非法获取秘密信息的攻击方法。作为具体的攻击技术,dpa(差分功率分析)攻击、cpa(相关功率分析)攻击和故障攻击是已知的。


技术实现要素:

11.然而,加密模块的复制不仅增加了电路规模,而且当复制的加密模块处于锁步操作时,与单个单元的加密模块被操作的情况相比,侧信道信息被增加,从而降低了对侧信道攻击的抵抗力。根据本说明书的描述和附图,其它目的和新颖特征将变得明显。
12.根据实施例,一种半导体装置包括:第一加密器,具有第一加密处理单元,该第一加密处理单元用于通过对从外部输入的明文数据执行加密处理来生成第一加密数据;第一解密器,具有第一解密处理单元,该第一解密处理单元用于通过与加密处理同步地对第一加密数据执行解密处理来生成第一解密数据;比较器,用于将明文数据与对应于明文数据的第一解密数据进行比较;以及控制单元,用于在比较器的比较结果中对第一加密器和第一解密器执行故障确定处理。
13.根据实施例,提供了一种控制半导体装置的方法,该半导体装置包括第一加密器和第一解密器,该方法包括:通过对从外部输入的明文数据执行加密处理来生成第一加密数据,通过与加密处理同步地对第一加密数据执行解密处理来生成第一解密数据,将明文数据与对应于明文数据的第一解密数据进行比较,以及基于比较结果来确定在第一加密器和第一解密器中的任一者中是否存在故障。
14.本公开可以提供一种半导体装置及其控制方法,该半导体装置及其控制方法能够在抑制电路规模增大的同时满足安全性和功能安全要求。
附图说明
15.图1是示出了概念阶段的半导体装置的配置示例的框图。
16.图2是示出了图1所示的半导体装置的操作示例的时序图。
17.图3是示出了根据第一实施例的半导体装置的配置示例的框图。
18.图4是示出了图3所示的半导体装置的操作示例的时序图。
19.图5是示出了根据第一实施例的半导体装置的变型的框图。
20.图6是示出了根据第二实施例的半导体装置的配置示例的框图。
21.图7是示出了图6所示的半导体装置的操作示例的时序图。
具体实施方式
22.在下文中,将参考附图描述实施例。由于附图被简化,实施例的技术范围不应该基于附图的描述被狭义地解释。此外,相同的元件用相同的附图标记表示,而没有冗余的描述。
23.在以下实施例中,如果是出于方便所需要的,描述将被分成节段或实施例。然而,除非另外指明,否则它们不是彼此独立的,并且一者与另一者的一些或所有变型、应用、详细说明、补充说明等相关。在以下实施例中,元件的数目等(包括元件的数目、数值、量、范围等)不限于具体数目,而是可以不小于或等于具体数目,除非具体指明该数目并且原则上清楚地限于具体数目。
24.此外,在以下实施例中,构成元件(包括操作步骤等)不一定是必要的,除非在它们被具体指定的情况下和在它们被认为在原理上明显是必要的情况下。类似地,在以下实施例中,当提及组件等的形状,位置关系等时,假设形状等与形状等基本近似或相似,除了它
们被具体指定的情况和它们被认为在原理上是明显的情况等。这同样适用于上述数目等(包括数目、数值、量、范围等)。
25.(本发明人的先前考虑)
26.在描述根据第一实施例的半导体装置的细节之前,将描述本发明人预先考虑的半导体装置。
27.图1是示出了概念阶段的半导体装置5的配置示例的框图。半导体装置5例如是soc(片上系统),并且包括主机51和安全性ip(知识产权)52。
28.安全性ip 52是功能块之一并且执行对在主机51中使用的数据的加密处理和解密处理以增强安全性。例如,安全性ip 52对从主机51接收到的明文数据进行加密并将加密数据返回给主机51,或对从主机51接收到的加密数据进行解密并将加密数据作为明文数据返回给主机51。安全性ip 52还采用称为dcls的安全机制,其中复制的加密模块被配对以执行锁步操作。因此,半导体装置5可以满足安全性要求和功能安全要求。
29.具体地,安全性ip 52至少包括接口单元(i/f)53、控制单元54、总线55、比较器56、加密模块57和加密模块58。
30.接口单元53是用于向和从主机51传送数据的单元。
31.控制单元54执行对安全性ip 52的一般控制。例如,控制单元54指示加密模块57和58对明文数据进行加密或对加密数据进行解密。此外,控制单元54、比较器56还指示执行预定的比较处理。经由总线55执行控制单元54与加密模块57、加密模块58和比较器56之间的数据(包括指令)传送。
32.加密模块57根据来自控制单元54的指令对从主机51接收到的明文数据进行加密或对从主机51接收到的加密数据进行解密。加密模块58根据来自控制单元54的指令对从主机51接收到的明文数据进行加密或对从主机51接收到的加密数据进行解密。例如,在加密模块57、58中的每一者中采用aes加密技术。
33.加密模块57至少包括加密器571、解密器572和数据存储寄存器573。
34.加密器571至少具有缓冲器5711和加密处理单元5712。缓冲器5711临时存储从主机51接收到的明文数据。加密处理单元5712使用例如s-盒(替换盒)对被存储在缓冲器5711中的明文数据执行加密处理,以生成加密数据。解密器572使用例如反向源s-盒对从主机51接收到的加密数据执行解密处理,以生成解密数据(明文数据)。
35.加密模块58具有与加密模块57相同的配置,并且至少包括加密器581、解密器582和数据存储寄存器583。
36.加密器581至少具有缓冲器5811和加密处理单元5812。缓冲器5811临时存储从主机51接收到的明文数据。加密处理单元5812使用例如s-盒对被存储在缓冲器5811中的明文数据执行加密处理,以生成加密数据。解密器582使用例如反向源s-盒对从主机51接收到的加密数据执行解密处理,以生成解密数据(明文数据)。加密模块58被提供用于检查(用于比较)加密模块57的处理结果是否正确。
37.根据来自控制单元54的指令,比较器56将加密模块57、58的相应处理结果进行比较。加密模块57、58和比较器56的详细操作将在后面进行描述。
38.(半导体装置的操作)
39.随后,将参考图2描述半导体装置5的操作。图2是示出了半导体装置5的操作示例
的时序图。在以下描述中,将作为示例描述通信协议的数据格式包括控制命令cmd和被添加到控制命令cmd的n(其中n是等于或大于1的整数)个块的明文数据pd1至pdn的情况。
40.首先,主机51将指示加密处理的控制命令cmd发送到安全性ip 52(在t50),并且在控制命令cmd之后循序地发送n个块的明文数据pd1到pdn(从t51到t56)。
41.在安全性ip 52中,控制单元54通过接口单元53接收从主机51发送的控制命令cmd,并且对控制命令cmd进行解密。因此,控制单元54识别来自主机51的指令内容。控制单元54通过接口单元53在控制命令cmd之后循序地接收从主机51发送的明文数据pd1到pdn。
42.然后,控制单元54将明文数据pd1至pdn循序地传送到加密模块57、58(从t52到t57)。
43.加密模块57对明文数据pd1至pdn执行加密的流水线处理。
44.具体地,在加密器571中,缓冲器5711临时存储从控制单元54循序被传送的明文数据pd1至pdn(从t52到t57)。然后,加密处理单元5712对被循序地存储在缓冲器5711中的明文数据pd1至pdn执行加密处理(从t52到t57)。由加密处理单元5712循序地生成的加密数据ed1至edn被循序地临时存储在数据存储寄存器573中(从t53到t58)。
45.更具体地,对于流水线处理,首先,缓冲器5711临时存储已从控制单元54被传送的明文数据pd1(在t52)。加密处理单元5712对被存储在缓冲器5711中的明文数据pd1执行加密处理(在t52)。由加密处理单元5712生成的加密数据ed1被临时存储在数据存储寄存器573中(在t53)。此时,缓冲器5711临时存储接下来已从控制单元54被传送的明文数据pd2(在t53)。因此,加密处理单元5712可以在对明文数据pd1的加密处理之后立即对明文数据pd2执行加密处理(在t53)。由加密处理单元5712生成的加密数据ed2被临时存储(重写)在数据存储寄存器573中(在t54)。在加密模块57中,重复这种流水线处理,直到对明文数据pdn执行加密。
46.加密模块58与加密模块57并行地对明文数据pd1至pdn执行加密的流水线处理。
47.具体地,在加密器581中,缓冲器5811循序地临时存储已从控制单元54被循序地传送的明文数据pd1至pdn(从t52到t57)。然后,加密处理单元5812对被循序地存储在缓冲器5811中的明文数据pd1至pdn执行加密处理(从t52到t57)。由加密处理单元5812循序地生成的加密数据ed1至edn被循序地临时存储在数据存储寄存器583中(从t53到t58)。
48.更具体地,对于流水线处理,首先,缓冲器5811临时存储已从控制单元54被传送的明文数据pd1(在t52)。加密处理单元5812对被存储在缓冲器5811中的明文数据pd1执行加密处理(在t52)。由加密处理单元5812生成的加密数据ed1被临时存储在数据存储寄存器583中(在t53)。此时,缓冲器5811临时存储接下来已从控制单元54被传送的明文数据pd2(在t53)。因此,加密处理单元5812可以在对明文数据pd1的加密处理之后立即对明文数据pd2执行加密处理(在t53)。由加密处理单元5812生成的加密数据ed2被临时存储(重写)在数据存储寄存器583中(在t54)。在加密模块58中,重复这种流水线处理,直到对明文数据pdn执行加密。
49.比较器56循序地将被循序地存储在数据存储寄存器573中的加密数据ed1至edn与被循序地存储在数据存储寄存器583中的加密数据ed1至edn进行比较(从t53至t58)。在图2的示例中,由比较器56对被存储在数据存储寄存器573中的加密数据edi(i是从1到n的任何整数)和被存储在数据存储寄存器583中的加密数据edi的比较处理被表示为cmpi。
50.基于比较器56的比较结果,控制单元54对加密模块57(加密器571)执行故障确定。
51.例如,当由比较器56比较的加密模块57、58的相应处理结果匹配时,控制单元54确定在加密模块57中不存在故障,并且通过接口单元53将从数据存储寄存器573获取的加密数据ed1至edn循序地发送到主机51(从t54至t59)。
52.另一方面,当由比较器56比较的加密模块57、58的处理结果彼此不一致时,控制单元54确定在加密模块57、58中的任一者中发生了故障,不将加密数据ed1发送到主机51,并且中断后续处理。
53.因此,通过使用被配备有复制的加密模块的安全性ip 52执行加密处理,半导体装置5满足安全性要求和功能安全要求。
54.然而,在半导体装置5中,为了实现用于满足功能安全要求的锁步操作,需要复制加密模块,电路规模增大。此外,在半导体装置5中,由于与通过一个加密模块的加密处理和通过复制的加密模块中的每一者的加密处理的情况相比,侧信道信息增加,所以降低了对侧信道攻击的抵抗力。也就是说,在半导体装置5中,仍然不可能充分满足安全性要求。
55.因此,发现了根据第一实施例的半导体装置1,其可以在抑制电路规模增大的同时满足安全性要求和功能安全要求。
56.(第一实施例)
57.图3是示出了根据第一实施例的半导体装置1的配置示例的框图。半导体装置1例如是soc,并且包括主机11和安全性ip 12。
58.安全性ip 12是功能块之一,并且执行对在主机11中使用的数据的加密处理和解密处理,以便增强安全性。例如,安全性ip 12对从主机11接收到的明文数据进行加密并将加密数据发送到主机11,或者对从主机11接收到的加密数据进行解密并将加密数据作为明文数据发送到主机11。另外,安全性ip 12通过使用被安装在单个加密模块上的加密器和解密器来实现与dcls相同的操作。
59.具体地,安全性ip 12至少包括接口单元(i/f)13、控制单元14、总线15、比较器16和加密模块17。
60.接口单元13是用于向和从主机11传送数据的单元。
61.控制单元14执行对安全性ip12的总体控制。例如,控制单元14指示加密模块17对明文数据进行加密或对加密数据进行解密。控制单元14还指示比较器16执行预定的比较处理。经由总线15执行控制单元14与加密模块17和比较器16之间的数据(包括指令)传送。
62.加密模块17根据来自控制单元14的指令对从主机11接收到的明文数据进行加密或对从主机11接收到的加密数据进行解密。例如,在加密模块17中采用aes加密技术。
63.加密模块17至少包括加密器171、解密器172、选择器173和缓冲器(数据保持单元)174。
64.加密器171至少具有缓冲器1711和加密处理单元1712。缓冲器1711临时存储从主机11接收到的明文数据。加密处理单元1712使用例如s-盒对被存储在缓冲器1711中的明文数据执行加密处理,以生成加密数据。缓冲器174临时存储在缓冲器1711中存储的明文数据,即,其中加密处理单元1712执行加密处理的明文数据。
65.选择器173根据操作模式选择并输出由加密器171生成的加密数据或从主机11接收到的加密数据。例如,当操作模式为第一模式时,选择器173选择并输出由加密器171生成
的加密数据,而当操作模式为第二模式时,选择器173选择并输出从主机11接收到的加密数据。顺便提及,操作模式由已从主机11接收到指令的控制单元14切换和控制。
66.解密器172至少具有缓冲器1721和解密处理单元1722。缓冲器1721临时存储从选择器173输出的加密数据。解密处理单元1722使用例如反向原始s-盒对被存储在缓冲器1721中的加密数据执行解密处理,以生成解密数据(明文数据)。这里,解密处理单元1722与加密处理单元1712对明文数据的加密处理同步地执行对加密数据的解密处理。因此,由于由加密处理单元1712的加密处理生成的噪声(侧信道信息)被由解密处理单元1722的解密处理生成的噪声干扰,提高了对侧信道攻击的抗扰性。
67.比较器16根据来自控制单元14的指令执行预定的比较处理。例如,当操作模式为第一模式时,比较器16将被存储在缓冲器174中的明文数据与在解密器172中生成的解密数据进行比较,而当操作模式为第二模式时,不执行比较处理。加密模块17和比较器16的详细操作将在后面进行描述。
68.(半导体装置的操作)
69.随后,将参考图4描述半导体装置1的操作。图4是示出了半导体装置1的操作示例的时序图。在以下描述中,将作为示例描述通信协议的数据格式包括控制命令cmd和被添加到控制命令cmd的n(其中n是等于或大于1的整数)个块的明文数据pd1至pdn的情况。
70.首先,主机11将指示加密处理的控制命令cmd发送到安全性ip12(在t10),并且在控制命令cmd之后循序地发送n个块的明文数据pd1至pdn(从t11到t16)。
71.在安全性ip 12中,控制单元14通过接口单元13接收从主机11被发送的控制命令cmd,并且对控制命令cmd进行解密。因此,控制单元14识别来自主机11的指令内容。这里,由于控制命令cmd包括用于对明文数据pd1至pdn进行加密的指令,所以控制单元14将操作模式设置为第一模式。因此,选择器173选择并输出加密器171的输出。控制单元14通过接口单元13在控制命令cmd之后循序地接收从主机11被发送的明文数据pd1至pdn。
72.控制单元14循序地将明文数据pd1至pdn传送到加密模块17(从t12到t17)。
73.在加密模块17中,对明文数据pd1至pdn执行用于加密和解密的流水线处理。具体地,在加密器171中,缓冲器1711临时存储从控制单元14被循序地传送的明文数据pd1至pdn(从t12到t17)。然后,加密处理单元1712对被循序地存储在缓冲器1711中的明文数据pd1至pdn执行加密处理(从t12到t17)。由加密处理单元1712循序地生成的加密数据ed1至edn经由选择器173被传送到解密器172,并且被循序地临时存储在缓冲器1721中(从t13到t18)。并行地,将被循序地存储在加密器171的缓冲器1711中的明文数据pd1至pdn临时存储在缓冲器174中(从t13到t18)。
74.在解密器172中,解密处理单元1722通过对被循序地存储在缓冲器1721中的加密数据ed1至edn执行解密处理(从t13到t18),循序地生成解密数据pd1至pdn。这里,解密处理单元1722与在加密器171中所提供的加密处理单元1712对明文数据的加密处理同步地执行对加密数据的解密处理。因此,由于由加密处理单元1712的加密处理生成的噪声(侧信道信息)被由解密处理单元1722的解密处理生成的噪声干扰,提高了对侧信道攻击的抗扰性。
75.更具体地,对于流水线处理,首先,缓冲器1711临时存储已从控制单元14被传送的明文数据pd1(在t12)。加密处理单元1712对被存储在缓冲器1711中的明文数据pd1执行加密处理(在t12)。由加密处理单元1712生成的加密数据ed1经由选择器173被传送到解密器
172,并且被临时存储在缓冲器1721中(在t13)。解密处理单元1722对被存储在缓冲器1721中的加密数据ed1执行解密处理,以生成解密数据pd1(在t13)。
76.此时,缓冲器174临时存储在加密器171的缓冲器1711中存储的明文数据pd1(在t13)。此外,此时,缓冲器1711临时存储接下来已从控制单元14被传送的明文数据pd2(在t13)。因此,加密处理单元1712可以在对明文数据pd1的加密处理之后立即对明文数据pd2执行加密处理(在t13)。由加密处理单元1712生成的加密数据ed2经由选择器173被传送到解密器172,并且被临时存储在缓冲器1721中(在t14)。解密处理单元1722对被存储在缓冲器1721中的加密数据ed2执行解密处理,以生成解密数据pd2(在t14)。
77.在加密模块17中,重复这种流水线处理,直到对明文数据pdn执行加密和解密。
78.比较器16循序地将被循序地存储在缓冲器174中的明文数据pd1至pdn和在解密器172中循序地生成的解密数据pd1至pdn进行比较(从t13到t18)。在图4的示例中,比较器16将被存储在缓冲器174中的明文数据pdi与在解密器172中生成的解密数据pdi进行比较以作为cmpi。
79.基于比较器16的比较结果,控制单元14对加密模块17(加密器171和解密器172)执行故障确定。
80.例如,当被存储在缓冲器174中的未加密明文数据pd1至pdn和在解密器172中生成的解密数据pd1至pdn彼此一致时,控制单元14确定在加密模块17中不存在故障,通过接口单元13将在加密器171中生成的加密数据ed1至edn从缓冲器1721循序地发送到主机11(从t14到t19)。
81.另一方面,当被存储在缓冲器174中的未加密明文数据pd1至pdn与在解密器172中生成的解密数据pd1至pdn不一致时,控制单元14确定在加密模块17(加密器171和解密器172中的至少一者)中发生了故障,不将加密数据ed1至edn发送到主机11,并且中断后续处理。在这种情况下,由于在加密模块17中发生的故障可能是意外故障,所以控制单元14可以执行对明文数据pd1至pdn的加密、对加密数据ed1至edn的解密、明文数据pd1至pdn与解密数据pd1至pdn的比较、以及基于比较结果的故障确定。然而,当确定即使在预定次数的重复之后在加密模块17中发生了故障时,在加密模块17中发生的故障被确定为永久故障。
82.因此,根据本实施例的半导体装置1,无需重复加密模块,因为它使用在一个加密模块中所设置的加密器和解密器实现了与dcls相同的操作,所以可以抑制电路规模的增加。此外,在根据本实施例的半导体装置1中,通过使加密器的加密处理与解密器的解密处理同步并同步操作,由加密处理生成的噪声(侧信道信息)可以被由解密处理生成的噪声干扰,从而提高了对诸如dpa攻击和cpa攻击的侧信道攻击的抵抗力。即,根据本实施例的半导体装置1可以满足安全性要求和功能安全要求,同时抑制电路规模的增加。
83.顺便提及,控制单元14可以是硬件定序器和cpu(中央处理单元)中的任一者。
84.接口单元13可以包括寄存器,该寄存器临时存储将在主机11和安全性ip 12的控制单元14之间传送的数据。例如,在安全性ip 12中,首先,接口单元13接收从主机11被发送的明文数据并临时存储明文数据,并且控制单元14接收被存储在接口单元13中的明文数据并对明文数据进行解密。
85.(半导体装置的变型)
86.图5是示出了半导体装置1的变型作为半导体装置1a的框图。半导体装置1a还包括
与半导体装置1相比至少具有加密器181和解密器182的加密模块18。半导体装置1a的其他配置,由于与半导体装置1相同,因此省略其描述。
87.由于等效于dcls的操作可以通过使用加密模块17中的一者而不是使用加密模块17、18两者来实现以实现dcls的操作,所以另一加密模块18可以用于另一应用的加密通信。因此,半导体装置1a可以提高整个安全性功能的计算性能。
88.(第二实施例)
89.图6是示出了根据第二实施例的半导体装置2的配置示例的框图。例如,半导体装置2是soc,并且包括主机21和安全性ip 22。顺便提及,半导体装置2中的主机21和安全性ip 22分别对应于半导体装置1中的主机11和安全性ip 12。
90.安全性ip 22包括接口单元23、控制单元24、总线25、比较器26、加密模块27和加密模块28。顺便提及,半导体装置2中的接口单元23、控制单元24、总线25、比较器26和加密模块27分别对应于半导体装置1中的接口单元13、控制单元14、总线15、比较器16和加密模块17。
91.加密模块27至少包括加密器271、解密器272、选择器273和缓冲器(数据保持单元)274。加密器271至少具有缓冲器2711和加密处理单元2712。解密器272至少具有缓冲器2721和解密处理单元2722。顺便提及,半导体装置2中的加密器271、解密器272、选择器273和缓冲器274分别对应于半导体装置1中的加密器171、解密器172、选择器173和缓冲器174。加密器271中的缓冲器2711和加密处理单元2712分别对应于加密器171中的缓冲器1711和加密处理单元1712。解密器272中的缓冲器2721和解密处理单元2722分别对应于解密器172中的缓冲器1721和解密处理单元1722。
92.加密模块28至少包括加密器281、解密器282和选择器283。解密器282至少具有缓冲器2821和解密处理单元2822。加密器281通过使用例如s-盒对从主机21接收到的明文数据执行加密处理来生成加密数据。选择器283根据操作模式选择并输出由加密模块27的加密器271生成的加密数据或从主机21接收到的加密数据。例如,当操作模式为第一模式时,选择器283选择并输出由加密模块27的加密器271生成的加密数据,而当操作模式为第二模式时,选择器283选择并输出从主机21接收到的加密数据。在解密器282中,缓冲器2821临时存储从选择器283输出的加密数据。解密处理单元2822使用例如反向原始s-盒对被存储在缓冲器2821中的加密数据执行解密处理,以生成解密数据(明文数据)。这里,解密处理单元2722、2822与加密处理单元2712对明文数据的加密处理同步地执行对加密数据的解密处理。因此,由于由加密处理单元2712的加密处理生成的噪声(侧信道信息)被由解密处理单元2722、2822的解密处理生成的噪声干扰,所以进一步提高了对侧信道攻击的抗扰性。
93.比较器26根据来自控制单元24的指令执行预定的比较处理。例如,当操作模式为第一模式时,比较器26将被存储在缓冲器274中的明文数据与在解密器272中生成的解密数据和在解密器282中生成的解密数据进行比较,而当操作模式为第二模式时,不执行比较处理。加密模块27、28和比较器26的详细操作将在后面进行描述。
94.(半导体装置的操作)
95.随后,将参考图7描述半导体装置2的操作。图7是示出了半导体装置2的操作示例的时序图。在以下描述中,将作为示例描述通信协议的数据格式包括控制命令cmd和被添加到控制命令cmd的n(其中n是等于或大于1的整数)个块的明文数据pd1至pdn的情况。
96.首先,主机21将指示加密处理的命令cmd发送到安全性ip 22(在t20),并且在命令cmd之后循序地发送n个块的明文数据pd1至pdn(从t21到t26)。
97.在安全性ip 22中,控制单元24通过接口单元23接收从主机21被发送的命令cmd,并且对该命令cmd进行解密。因此,控制单元24识别来自主机21的指令内容。这里,由于命令cmd包括用于对明文数据pd1至pdn进行加密的指令,所以控制单元24将操作模式设置为第一模式。因此,选择器273、283选择并输出加密器271的输出。控制单元24通过接口单元23在控制命令cmd之后循序地接收从主机21被发送的明文数据pd1至pdn。
98.控制单元24循序地将明文数据pd1至pdn传送到加密模块27(从t22到t27)。
99.在加密模块27中,对明文数据pd1至pdn执行用于加密和解密的流水线处理。加密模块28还执行用于对加密数据ed1至edn进行解密的流水线处理。
100.具体地,在加密器271中,缓冲器2711临时存储从控制单元24被循序地传送的明文数据pd1至pdn(从t22到t27)。然后,加密处理单元2712对被循序地存储在缓冲器2711中的明文数据pd1至pdn执行加密处理(从t22到t27)。由加密处理单元2712循序生成的加密数据ed1至edn经由选择器273被传送到解密器272,被循序地临时存储在缓冲器2721中(从t23到t28),经由选择器283被传送到解密器282,并且被临时存储在缓冲器2821中(从t23到t28)。与此并行地,将被循序地存储在加密器271的缓冲器2711中的明文数据pd1至pdn临时存储在缓冲器274中(从t23到t28)。
101.在解密器272中,解密处理单元2722通过对被循序地存储在缓冲器2721中的加密数据ed1至edn执行解密处理(从t23到t28),循序地生成解密数据pd1至pdn。类似地,在解密器282中,解密处理单元2822通过对被循序地存储在缓冲器2821中的加密数据ed1至edn执行解密处理(从t23到t28),循序地生成解密数据pd1至pdn。这里,解密处理单元2722、2822与加密处理单元2712对明文数据的加密处理同步地执行加密数据的解密处理。因此,由于由加密处理单元2712的加密处理生成的噪声(侧信道信息)被由解密处理单元2722、2822的解密处理生成的噪声干扰,所以进一步提高了对侧信道攻击的抗扰性。
102.更具体地,对于流水线处理,首先,缓冲器2711临时存储从控制单元24被传送的明文数据pd1(在t22)。加密处理单元2712对被存储在缓冲器2711中的明文数据pd1执行加密处理(在t22)。由加密处理单元2712生成的加密数据ed1经由选择器273被传送到解密器272,被临时存储在缓冲器2721中(在t23),经由选择器283被传送到解密器282,被临时存储在缓冲器2821中(在t23)。解密处理单元2722对被存储在缓冲器2721中的加密数据ed1执行解密处理,以生成解密数据pd1(在t23)。此外,解密处理单元2822对被存储在缓冲器2821中的加密数据ed1执行解密处理,以生成解密数据pd1(在t23)。
103.此时,缓冲器274临时存储在加密器271的缓冲器2711中存储的明文数据pd1(在t23)。此外,此时,缓冲器2711临时存储接下来已从控制单元24被传送的明文数据pd2(在t23)。因此,加密处理单元2712可以在对明文数据pd1的加密处理之后立即对明文数据pd2执行加密处理(在t23)。由加密处理单元2712生成的加密数据ed2经由选择器273被传送到解密器272,被临时存储在缓冲器2721中(在t24),经由选择器283被传送到解密器282,被临时存储在缓冲器2821中(在t24)。解密处理单元2722对被存储在缓冲器2721中的加密数据ed2执行解密处理,以生成解密数据pd2(在t24)。此外,解密处理单元2822对被存储在缓冲器2821中的加密数据ed2执行解密处理,以生成解密数据pd2(在t24)。
104.在加密模块27、28中,重复这种流水线处理,直到对明文数据pdn执行加密和解密。
105.比较器26循序地将被循序地存储在缓冲器274中的明文数据pd1至pdn、在解密器272中循序生成的解密数据pd1至pdn、以及在解密器282中循序生成的解密数据pd1至pdn进行比较(从t23到t28)。在图7的示例中,比较器26将被存储在缓冲器274中的明文数据pdi、在解密器272中生成的解密数据pdi、以及在解密器282中生成的解密数据pdi进行比较以作为cmpi。
106.基于比较器26的比较结果,控制单元24对加密模块27(加密器271和解密器272)和加密模块28(解密器282)执行故障确定。
107.例如,当在加密之前被存储在缓冲器274中的明文数据pd1至pdn、在解密器272中生成的解密数据pd1至pdn、以及在解密器282中生成的解密数据pd1至pdn彼此一致时,控制单元24确定在加密器271、解密器272和解密器282中的任一者中都没有发生故障。在这种情况下,控制单元24通过接口单元23将在加密器271中生成的加密数据ed1至edn从缓冲器2721循序地发送到主机21(从t24到t29)。
108.此外,当被存储在缓冲器274中的未加密明文数据pd1至pdn和在解密器272中生成的解密数据pd1至pdn彼此一致时,即使它们与在解密器282中生成的解密数据pd1至pdn不一致,也确定至少加密器271和解密器272没有发生故障。在这种情况下,控制单元24通过接口单元23将在加密器271中生成的加密数据ed1至edn从缓冲器2721循序地发送到主机21。此时,控制单元24确定解密器282中发生了故障,并且进行控制以便不采用解密器282的输出。
109.此外,当被存储在缓冲器274中的未加密明文数据pd1至pdn和在解密器282中生成的解密数据pd1至pdn彼此一致时,即使它们与在解密器272中生成的解密数据pd1至pdn不一致,也确定至少加密器271和解密器282没有发生故障。在这种情况下,控制单元24通过接口单元23将在加密器271中生成的加密数据ed1至edn从缓冲器2821循序地发送到主机21。此时,控制单元24确定解密器272中发生了故障,并且进行控制以便不采用解密器272的输出。
110.另一方面,当在解密器272中生成的解密数据pd1至pdn和在解密器282中生成的解密数据pd1至pdn彼此一致,但是在加密之前被存储在缓冲器274中的明文数据pd1至pdn彼此不一致时,确定在加密器271中发生了故障。在这种情况下,控制单元24不将加密数据ed1发送到主机21并且中断后续处理。在这种情况下,由于在加密器271中发生的故障可能是意外故障,所以控制单元24可以执行对明文数据pd1至pdn的加密、对加密数据ed1至edn的解密、明文数据pd1至pdn与解密数据pd1至pdn的比较、以及基于比较结果的故障确定。然而,如果确定即使在预定次数的重复之后在加密器271中发生了故障,则在加密器271中发生的故障被确定为永久故障。在这种情况下,例如,可以使用在加密模块28中所提供的加密器281来代替加密器271。
111.因此,根据本实施例的半导体装置2可以通过将明文数据与由多个解密器中的每一者生成的多个解密数据进行比较来标识在加密器中是否发生了故障或在解密器中是否发生了故障。这里,例如,当确定在用于检查的加密模块(例如,加密模块28)中所提供的解密器中发生了故障时,由于该故障可以被忽略为伪故障,所以抑制了由于故障检测之后的重试而导致的吞吐量的降低。此外,在根据本实施例的半导体装置2中,由于加密器的加密
处理和多个解密器中的每个解密器的解密处理同步地进行操作,由加密处理生成的噪声(侧信道信息)可以被由多个解密处理生成的噪声干扰,可以进一步提高对侧信道攻击(诸如dpa攻击和cpa攻击)的抵抗力。
112.在本实施例中,已经描述了通过将使用一个加密器271和两个解密器272、282而生成的两个解密数据与明文数据进行比较来执行故障确定的情况,但是本发明不限于此。例如,如果实现了三个或更多个具有解密器的加密模块,则可以通过将使用一个加密器271和三个或更多个解密器而生成的三个或更多个解密数据中的每一者与明文数据进行比较来做出故障确定。这进一步增强了对侧信道攻击的容忍度。
113.虽然已经基于实施例具体描述了本发明人做出的发明,但是本发明不限于已经描述的实施例,并且不用说在不脱离其要点的情况下可以做出各种变型。
114.在第一实施例和第二实施例中,在利用加密器对明文数据进行加密之后,在从外部(主机)提供的明文数据和由解密器解密的数据之间进行比较,但本发明不限于此。例如,即使在加密数据被解密器解密之后将从外部(主机)提供的加密数据与由加密器加密的数据进行比较时,也可以实现相同的效果。
115.另外,可以通过使cpu运行用于一些或所有安全性ip的计算机程序来实现本公开。
116.上述程序包括一组指令(或软件代码),用于使计算机在加载到计算机中时执行在本实施例中所描述的一个或多个功能。该程序可以被存储在非瞬态计算机可读介质或有形存储介质上。作为示例而非限制,计算机可读或有形存储介质可以包括随机存取存储器(ram)、只读存储器(rom)、闪存、固态驱动器(ssd)或其它存储器技术、cd-rom、数字多功能盘(dvd)、蓝光(注册商标)盘或其它光盘存储、磁带盒、磁带、磁盘存储或其它磁存储设备。该程序可以在瞬态计算机可读介质或通信介质上被传送。作为示例而非限制,瞬态计算机可读介质或通信介质包括电、光、声或其它类型的传播信号。

技术特征:
1.一种半导体装置,包括:第一加密器,具有第一加密处理单元,所述第一加密处理单元用于通过对从外部输入的明文数据执行加密处理来生成第一加密数据,第一解密器,具有第一解密处理单元,所述第一解密处理单元用于通过与所述加密处理同步地对所述第一加密数据执行解密处理来生成第一解密数据,比较器,用于将所述明文数据与对应于所述明文数据的所述第一解密数据进行比较,以及控制单元,用于在所述比较器的比较结果中针对所述第一加密器和所述第一解密器执行故障确定处理。2.根据权利要求1所述的半导体装置,还包括数据保持单元,所述数据保持单元用于保持所述明文数据,所述比较器将被存储在所述数据保持单元中的所述明文数据与对应于所述明文数据的所述第一解密数据进行比较。3.根据权利要求1所述的半导体装置,当所述明文数据和对应于所述明文数据的所述第一解密数据在所述比较器的比较中一致时,所述控制单元确定在所述第一加密器和所述第一解密器中的任一者中不存在故障,当所述明文数据和对应于所述明文数据的所述第一解密数据在所述比较器的比较中不一致时,所述控制单元确定在所述第一加密器和所述第一解密器中的任一者中存在故障。4.根据权利要求1所述的半导体装置,所述第一加密处理单元使用s-盒(替换盒)执行所述加密处理,所述第一解密处理单元使用逆元素s-盒执行所述解密处理。5.根据权利要求1所述的半导体装置,当所述控制单元确定在所述第一加密器和所述第一解密器中的任一者中存在故障时,所述控制单元重复故障确定处理预定次数。6.根据权利要求1所述的半导体装置,还包括第一选择器,所述第一选择器用于根据至少包括第一模式和第二模式的操作模式,来选择所述第一加密数据或与从外部输入的所述第一加密数据不同的第一外部加密数据,并且将所选择的数据输出到所述第一解密器,当所述操作模式为所述第一模式时,所述第一选择器选择并输出所述第一加密数据,并且所述第一解密器与所述第一加密器中的所述加密处理同步地对所述第一加密数据执行所述解密处理以生成所述第一解密数据,并且所述比较器将所述明文数据与对应于所述明文数据的所述第一解密数据进行比较,当所述操作模式为所述第二模式时,所述第一选择器选择并输出所述第一外部加密数据,并且所述第一解密器对所述第一外部加密数据执行所述解密处理以生成第一外部解密数据,并且所述比较器不使用所述第一外部解密数据执行比较。7.根据权利要求1所述的半导体装置,所述第一加密处理单元对从外部循序输入的所述明文数据执行所述加密处理,并且循序地生成多个所述第一加密数据,
所述第一解密处理单元对多个所述第一加密数据执行所述解密处理,并且循序地生成多个所述第一解密数据,所述比较器循序地将多个所述明文数据与多个所述第一解密数据进行比较,所述控制单元在所述比较器的比较中对所述第一加密器和所述第一解密器执行所述故障确定。8.根据权利要求1所述的半导体装置,还包括第二解密器,所述第二解密器用于与所述第一加密器中的所述加密处理同步地对所述第一加密数据执行所述解密处理,并且生成第二解密数据,所述比较器将所述明文数据与所述第一解密数据和所述第二解密数据进行比较,所述控制单元在所述比较器的比较中对所述第一加密器、所述第一解密器和所述第二解密器执行所述故障确定处理。9.根据权利要求8所述的半导体装置,还包括数据保持单元,所述数据保持单元用于保持所述明文数据,所述比较器将被存储在所述数据保持单元中的所述明文数据与对应于所述明文数据的所述第一解密数据和对应于所述明文数据的所述第二解密数据进行比较。10.根据权利要求8所述的半导体装置,当所述明文数据、对应于所述明文数据的所述第一解密数据和对应于所述明文数据的所述第二解密数据在所述比较器的比较中一致时,所述控制单元确定在所述第一加密器、所述第一解密器和所述第二解密器中的任一者中都不存在故障,当仅所述明文数据和对应于所述明文数据的所述第一解密数据在所述比较器的比较中一致时,所述控制单元确定在所述第二解密器中存在故障,当仅所述明文数据和对应于所述明文数据的所述第二解密数据在所述比较器的比较中一致时,所述控制单元确定在所述第一解密器中存在故障,当仅所述第一解密数据和所述第二解密数据在所述比较器的比较中一致时,所述控制单元确定在所述第一加密器中存在故障。11.根据权利要求8所述的半导体装置,还包括:第一加密模块,至少包括所述第一加密器和所述第一解密器,以及第二加密模块,至少包括与所述第一加密器具有相同配置的第二加密器和第二解密器。12.根据权利要求8所述的半导体装置,所述第一加密处理单元使用s-盒(替换盒)执行所述加密处理,所述第一解密处理单元和所述第二解密处理单元使用逆元素s-盒执行所述解密处理。13.根据权利要求8所述的半导体装置,当所述控制单元确定在所述第一加密器中存在故障时,所述控制单元重复所述故障确定处理预定次数。14.根据权利要求13所述的半导体装置,还包括:第一加密模块,至少包括所述第一加密器和所述第一解密器,以及第二加密模块,至少包括与所述第一加密器具有相同配置的第二加密器和所述第二解密器,
当所述控制单元继续确定在所述第一加密器中存在故障时,即使所述故障确定被重复预定次数,也使用所述第二加密器代替所述第一加密器。15.根据权利要求8所述的半导体装置,还包括:第一选择器,所述第一选择器用于根据至少包括所述第一模式和所述第二模式的操作模式,来选择所述第一加密数据或外部加密数据,所述外部加密数据是与从外部输入的所述第一加密数据不同的加密数据,并且所述第一选择器将所选择的数据输出到所述第一解密器,以及第二选择器,所述第二选择器用于根据所述操作模式来选择所述第一加密数据或外部加密数据,所述外部加密数据是与从外部输入的所述第一加密数据不同的加密数据,并且所述第二选择器将所选择的数据输出到所述第二解密器,当所述操作模式为所述第一模式时,所述第一选择器选择并输出所述第一加密数据,所述第一解密器与所述第一加密器中的所述加密处理同步地执行对所述第一加密数据的解密处理以生成所述第一解密数据,并且所述第二选择器选择并输出所述第一加密数据,所述第二解密器与所述第一加密器中的所述加密处理同步地执行对所述第一加密数据的解密处理以生成所述第二解密数据,并且所述比较器将所述明文数据、对应于所述明文数据的所述第一解密数据和对应于所述明文数据的所述第二解密数据进行比较,当所述操作模式为所述第二模式时,所述第一选择器选择并输出所述第一外部加密数据,所述第一解密器对所述第一外部加密数据执行所述解密处理以生成所述第一外部解密数据,并且所述第二选择器选择并输出所述第二外部加密数据,所述第二解密器对所述第一外部加密数据执行所述解密处理以生成所述第二外部解密数据,并且比较器不使用所述第一外部解密数据和所述第二解密数据执行比较。16.根据权利要求8所述的半导体装置,所述第一加密处理单元对从外部循序输入的所述明文数据执行所述加密处理,并且循序地生成多个所述第一加密数据,所述第一解密处理单元对多个所述第一加密数据执行所述解密处理,并且循序地生成多个所述第一解密数据,所述第二解密处理单元对多个所述第一加密数据执行所述解密处理,并且循序地生成多个所述第二解密数据,所述比较器循序地将多个所述明文数据与多个所述第一解密数据和多个所述第二解密数据进行比较。17.一种控制半导体装置的方法,所述半导体装置包括第一加密器和第一解密器,所述方法包括:通过对从外部输入的明文数据执行加密处理,生成第一加密数据,通过与所述加密处理同步地对所述第一加密数据执行解密处理,生成第一解密数据,将所述明文数据与对应于所述明文数据的所述第一解密数据进行比较,以及基于比较结果,确定在所述第一加密器和所述第一解密器中的任一者中是否存在故障。

技术总结
一种半导体装置及其控制方法能够在抑制电路规模增大的同时满足安全性要求和功能安全要求。该半导体装置包括:第一加密器,具有第一加密处理单元,该第一加密处理单元对从外部输入的明文数据执行加密处理以生成第一加密数据;第一解密器,具有第一解密处理单元,该第一解密处理单元与第一加密装置中的加密处理同步地执行解密处理,以生成针对在第一加密器中生成的第一加密数据的第一解密数据;比较器,将明文数据与对应于明文数据的第一解密数据进行比较;以及控制单元,基于比较器的比较结果来对第一加密器和第一解密器执行故障确定。定。定。


技术研发人员:菅原崇彦
受保护的技术使用者:瑞萨电子株式会社
技术研发日:2023.01.12
技术公布日:2023/7/31
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐