半导体装置相关申请的交叉引用
在此通过引用并入在2011年6月20日提交的日本专利申请No.
2011-136134的包括说明书、附图及摘要在内的全部公开内容。
技术领域
本发明涉及半导体装置,并且更特别地涉及其中对保持于内部存储
器等中的信息实施了安全措施的半导体装置。
背景技术
近年来,人们提出了使用加密技术来提高对半导体装置的非授权访
问的抵抗力或者防止模仿的许多安全技术。在加密技术中,使用了加密
密钥。专利文献1和2公开了使用加密密钥的安全措施的技术。
专利文献1公开了一种技术:在将数据写入记录介质时,通过在根
据加密密钥生成的伪地址中写入伪数据,正规数据和伪(dummy)数
据按照合并的状态记录于记录介质内。专利文献1的技术防止了诸如数
据复制之类的违法行为。专利文献2公开了一种技术:通过使用摘要表
来加密不变的信息块而生成加密值,将哈希函数(hash function)应用
于加密值以获得哈希值,以及将该哈希值用作在一对一的基础上与不变
的信息块对应的记录地址。在专利文献2中,在摘要表内有多个加密密
钥,以及记录地址在这些加密密钥间是不同的。因此,在专利文献2
中,能够提高对攻击(例如,使用生成相同哈希值的不变的信息块来尝
试的攻击的抵抗力)。
相关技术文献
专利文献
专利文献1:日本未经审查的专利申请No.Hei 11(1999)-045508
专利文献2:日本未经审查的专利申请No.2010-074355
发明内容
例如,在执行加密通信的半导体装置中,诸如用于通信的加密密钥
之类的保密信息在半导体装置制成之后被写入诸如闪存的非易失性存储
器之内。非易失性存储器能够由CPU(中央处理单元)访问,以及存
储于非易失性存储器内的信息能够被容易地读取。因此存在这样一个问
题:在半导体装置被分析的情况下,在其内存储了保密信息的存储区域
中的信息会被盗取。为了解决该问题,在专利文献1所公开的技术中,
通过将伪数据写入根据加密密钥唯一生成的伪地址内来提高安全级别。
但是,存在着这样一个问题:由于伪数据由装置写入同一地址内,通过
收集存储于非易失性存储区域内的大量数据,其内写入了伪数据的地址
被解密会被解密。在专利文献2所公开的技术中,用于存储其内写入了
伪数据的地址的装置被制备于半导体装置内,以防止伪数据写入相同的
地址内。但是,该技术具有这样的问题:响应由于识别在地址生成时被
写入数据的地址的序列的发生而减慢,以及因为用于存储地址的电路是
新需要的,所以成本会增加。它还有这样一个问题:由于保密信息和伪
数据被依次写入,因而每条保密信息受到诸如对半导体装置与写入装置
之间的信道非法访问的边信道攻击(side channel attack)之类的攻击而
被读取。
根据本发明的代表性半导体装置具有装置所独有的唯一码(unique
code)并且由该唯一码生成唯一码对应信息。半导体装置具有存储区
域,在该存储区域中,通过加密保密信息而获得的特定信息被存储于与
唯一码对应信息关联的区域内。从存储区域内读出的特定信息通过使用
唯一码对应信息来解密,以生成保密信息。
在半导体装置中,存储保密信息的区域由装置所独有的唯一码来指
定。也就是说,在本发明的半导体装置中,用于存储保密信息的区域在
装置间是不同的。因此,即使在收集了非易失性存储区域内的大量数据
的情况下也难以指定存储保密信息的区域。由于使用了由装置所独有的
唯一码唯一确定的地址区域,因而用于存储其内写入了伪数据的地址的
装置是不必要的。此外,由于保密信息和伪数据被合并且被写入半导体
装置内,因而难以通过诸如边信道攻击之类的攻击来指定保密信息。因
而,在根据本发明的半导体装置中,抑制了通过分析来盗取保密信息,
并且提高了安全性。
在根据本发明的半导体装置中,提高了关于保密信息的安全级别。
附图说明
图1是根据第一实施例的半导体装置以及用于将特定信息写入半导
体装置的写入装置的框图。
图2是示出在第一实施例中的写入装置的操作程序的序列图。
图3是示出根据第一实施例的使用特定信息的半导体装置的操作程
序的序列图。
图4是根据第二实施例的半导体装置以及用于将特定信息写入半导
体装置的写入装置的框图。
图5是示出根据第二实施例的写入装置的操作的流程图。
图6是示出根据第二实施例的写入装置的操作程序的序列图。
图7是示出根据第二实施例的使用特定信息的半导体装置的操作程
序的序列图。
图8是根据第三实施例的半导体装置以及用于将特定信息写入半导
体装置的写入装置的框图。
图9是示出根据第三实施例的写入装置的操作程序的序列图。
图10是根据第四实施例的半导体装置以及用于将特定信息写入半
导体装置的写入装置的框图。
图11是示出根据第四实施例的写入装置的操作程序的序列图。
图12是示出根据第四实施例的使用特定信息的半导体装置的操作
程序的序列图。
图13是示出用于将特定信息存储于存储区域的方法的另一个实例
的示意图。
图14是示出用于将特定信息存储于存储区域的方法的另一个实例
的示意图。
具体实施方式
第一实施例
在下文中,本发明的实施例将参照附图来描述。图1是示出根据第
一实施例的半导体装置1以及用于将特定信息写入半导体装置1的写入
装置2的框图。
如图1所示,半导体装置1具有唯一码生成单元10、唯一码对应信
息生成单元(例如,摘要生成单元11)、存储区域12、存储控制器13、
解密单元(例如,哈希函数解密单元14)及加密单元15。
唯一码生成单元10生成装置所独有的唯一码。例如,唯一码生成
单元10在半导体装置1的存储装置(例如,SRAM(静态随机存取存
储器))启动时通过使用初始值来生成唯一码UC。唯一码UC是由相同
设计的电路生成的值,并且是通过利用被制造为半导体装置的电路具有
变化的特性来生成的码。该技术被称为PUF(Physical Unclonable
Function(物理不可复制功能))并且能够在不需要专用硬件(例如,
称为PUF(物理不可复制功能)的防篡改芯片)的情况下实现数据的高
保密性。作为唯一码UC,除了PUF外,能够使用为半导体装置(例
如,CPU IC)所特有的信息。
摘要生成单元11根据唯一码来生成唯一码对应信息(例如,摘要
值DI)。在第一实施例中,摘要生成单元11被用作唯一码对应信息生
成单元。作为唯一码对应信息生成单元,可以使用根据唯一码UC无条
件地生成与地址值对应的信息的任意单元,以及除了摘要生成单元外,
能够使用按算法来操作的电路。在存储区域12内,存储着通过加密与
摘要值DI关联的区域(例如,在摘要值DI为待访问的地址的情况下,
由摘要值DI指示的区域)内的保密信息而获得的特定信息。存储区域
12可以是非易失性存储器(例如,闪存)的一部分或者非易失性存储器
的整个区域。存储区域12是用于存储通过加密保密信息获得的特定信
息的存储区域,并且是用于即使在电源中断时也保持所存储的信息的存
储器。
存储控制器13根据摘要值DI来生成用于访问存储区域的地址并且
从与该地址对应的区域内读取信息。在写入装置2发出写入指令的情况
下,存储控制器13根据该写入指令将信息写入存储区域12内。
更具体地,存储于半导体装置1内的特定信息HF2由写入装置2
来生成。在写入特定信息HF2时,写入装置2通过合并伪值Dd和特定
信息HF2来发出写入指令。此时,写入装置2将唯一码UC的摘要值
DI指定为特定信息HF2的写入地址,作为存储特定信息HF2的区域。
存储控制器13读取特定信息HF2,作为由半导体装置1的摘要生成单
元11根据唯一码UC生成的摘要值DI的读取地址。
哈希函数解密单元14接收由存储控制器13从与唯一码UC关联的
区域中读取的特定信息HF2。哈希函数解密单元14利用唯一码UC从
特定信息HF2中解密出保密信息(例如,哈希函数HF1)。保密信息
HF1是用于加密过程的哈希函数(例如,加密密钥)。加密单元15通过
使用哈希函数HF1来加密待传输的信息,以生成加密的信息。
如图1所示,写入装置2具有摘要生成单元21、存储单元22、哈
希函数加密单元23、伪值生成单元24、选择器25及缓冲器26。
摘要生成单元21通过与摘要生成单元11的算法相同的算法由唯一
码UC生成摘要值DI。被输入摘要生成单元21的唯一码UC与被输入
摘要生成单元11的唯一码UC相同,并且由半导体装置1来发送。也
就是说,在摘要生成单元21内生成的摘要值DI变为与由半导体装置1
内的摘要生成单元11生成的摘要值DI是相同的。
在存储单元22内,存储着用作半导体装置1内的加密密钥的保密
信息(例如,哈希函数HF1)。哈希函数加密单元23从存储单元22中
读取哈希函数HF1并且生成通过以唯一码UC来加密哈希函数HF1而
获得的特定信息HF2。
伪值生成单元24生成将要连同特定信息HF2一起写入半导体装置
1的存储区域12内的伪值Dd。例如,伪值Dd是由随机数发生器等给
出的信息,并且是通过加密与哈希函数HF1不同的值而获得的假信
息。
选择器25是用于选择待写入缓冲器26内的信息的电路。缓冲器26
是临时存储伪值Dd和特定信息HF2的存储装置。例如,缓冲器26是
非易失性存储器,例如,DRAM(动态随机存取存储器)。优选地,缓
冲器26是具有与半导体装置1的存储区域12的容量相同的容量的存储
装置。
更具体地,选择器25通过与由半导体装置1的存储控制器13使用
摘要值DI来执行读取操作的算法相同的算法将信息写入缓冲器26之
内。例如,在根据第一实施例的写入装置2内,选择器25将特定信息
HF2写入与由在缓冲器26的区域内的摘要值DI指示的地址对应的区域
内,并且将伪值Dd写入由缓冲器26中的另一地址指示的区域内。写
入装置2发出合并存储于缓冲器26内的信息并且将所合并的信息发送
给半导体装置1的指令。
现在将详细地描述根据第一实施例的写入装置2的操作。图2是示
出写入装置2的操作程序的序列图。
如图2所示,首先,写入装置2在摘要生成单元21内接收唯一码
UC(步骤S1)。摘要生成单元21生成摘要值DI(步骤S2)。摘要值被
发送给选择器25(步骤S3)。
随后,写入装置2在哈希函数加密单元23内接收唯一码UC(步骤
S4)。哈希函数加密单元23利用唯一码UC来加密哈希函数HF1以生
成特定信息HF2(步骤S5)。特定信息HF2被传送到选择器25(步骤
S6)。
写入装置2在伪值生成单元24内生成伪值Dd(步骤S7)。伪值
Dd被传送到选择器25(步骤S8)。伪值被生成以便填充与特定信息
HF2不同的缓冲器区域。至于该生成,由少量位构成的伪值可以多次来
生成,或者伪值可以立即生成。
选择器25使用摘要值DI作为地址将所收到的特定信息HF2写入
缓冲器26中的区域内,并且将伪值Dd写入缓冲器26的其他区域内
(步骤S9)。写入装置2将特定信息HF2与存储于缓冲器26内的伪值
Dd进行合并,并且将所合并的信息传送给半导体装置1(步骤S10)。
结果,在半导体装置1的存储区域12内,特定信息HF2被存储于
使用摘要值DI作为地址的区域内,以及伪值Dd被存储于其他区域
内。
随后,将描述使用特定信息HF2的半导体装置1的操作。图3是
示出根据第一实施例的使用特定信息HF2的半导体装置的操作程序的
序列图。
如图3所示,首先,半导体装置1将由唯一码生成单元10生成的
唯一码UC发送到摘要生成单元11和哈希函数解密单元14(步骤S11
和S17)。然后,摘要生成单元11根据所收到的唯一码UC来生成摘要
值DI(步骤S12)。摘要值DI被传送给存储控制器13(步骤S13)。
存储控制器13使用所收到的摘要值DI作为读取地址并且发出读取
指令RD[DI](步骤S14)。根据读取指令RD[DI],存储于存储区域12
中与摘要值DI关联的地址内的特定信息HF2被传送给存储控制器13
(步骤S15)。随后,存储控制器13将所收到的特定信息HF2传送给哈
希函数解密单元14(步骤S16)。
哈希函数解密单元14用所收到的唯一码UC来解密所收到的特定
信息HF2以生成哈希函数HF1(步骤S18)。哈希函数HF1被传送给加
密单元15(步骤S19)。半导体装置1通过使用哈希函数HF1来启动加
密的通信(步骤S20)。
用于分析通用的半导体装置以及非法获取数据的方法包括:(1)用
FIB(聚焦离子束)来处理半导体装置以及用探针来物理分析半导体装
置的方法,(2)通过用电磁波(例如,激光束)照射半导体装置以及在
电源端子中插入噪声来使CPU失控而非法获取数据的故障树分析,
(3)通过观察半导体装置的消耗电流量来分析密钥数据(key data)的
泄漏分析,以及(4)直接耦接至半导体装置的信号端子并且读取信号
信息的方法。
为了避免此类非法分析,在需要高安全级别的领域内,使用了具有
高安全级别的微型计算机(以下称为安全微型计算机)。安全微型计算
机设置有保护布线区的护罩、检测光和信号噪声的功能、通过将随机数
信号与信号结合来分散电流的功能等。
如上所述,通过使用安全微型计算机,能够防止第三方对半导体装
置的非法分析。但是,在使用安全微型计算机的情况下,虽然能够防止
非法分析,但是会出现这样的问题:半导体装置制造商等由于防篡改特
性而无法执行失效分析和故障分析。特别地,由于用于汽车内的车内微
型计算机(例如,ECU)需要高可靠性,因而对半导体装置的失效分析
和故障分析是必要的。由于该原因,其安全级别比安全微型计算机的安
全级别低的通用的微型计算机(以下称为通用微型计算机)被广泛作为
车内微型计算机来使用。但是,近年来,针对车内微型计算机的安全漏
洞(vulnerability)来攻击该目标的案例被报导了。因此,对于车内微
型计算机,在使用通用微型计算机时仍需要半导体装置的具有提高的安
全级别的加密通信系统。
在根据第一实施例的半导体装置中,所加密的特定信息HF2被存
储于与根据唯一码UC生成的唯一码对应信息(例如,摘要值DI)关
联的区域内。因此,在半导体装置1中,特定信息HF2被存储于在装
置间不同的区域内。因此,用于存储特定信息HF2的区域自身能够被
保持为保密的,以免被攻击者盗取。因此,在根据第一实施例的半导体
装置1中,能够提高存储于半导体装置1内的特定信息HF2的安全
性。在根据第一实施例的半导体装置1中,在没有使用安全微型计算机
的情况下,也能够提高安全性。
在根据第一实施例的半导体装置1中,特定信息HF2被存储于作
为能够由CPU(中央处理单元)等来访问的区域的存储区域内。但
是,所存储的特定信息HF2是以装置所独有的唯一码UC来加密的信
息。在根据第一实施例的半导体装置1中,哈希函数HF1在必要时每
次生成。因此,在维护等时,具有与作为特定信息HF2的原始信息的
哈希函数HF1对应的加密密钥的维护人员能够用哈希函数HF1来分析
问题。另一方面,即使在攻击者能够读取特定信息HF2的情况下,攻
击者也无法了解用以加密特定信息HF2的算法并且无法根据特定信息
HF2来解密出哈希函数HF1。也就是说,根据第一实施例的半导体装
置1能够在不牺牲对作为保密信息的哈希函数HF1的维护性能的情况
下提高安全性。
根据第一实施例的半导体装置1通过使用装置自身的唯一码UC来
加密哈希函数HF1而生成特定信息HF2。因此,在根据第一实施例的
半导体装置1中,在解密特定信息HF2时,仅使用唯一码UC就足够
了,并且没有必要通过耦接至服务器等的数据库来获得用于解密的加密
密钥。也就是说,根据第一实施例的半导体装置1在与服务器等耦接方
面不需要安全措施。
此外,在根据第一实施例的半导体装置1中,没有必要使写入装置
2的缓冲器26确保更多的容量作为用于存储特定信息HF2的存储区域
的容量。因此,在根据第一实施例的半导体装置1中,能够有效地使用
设置于半导体装置1内的存储区域。
在第一实施例中,伪值和特定信息HF2由写入装置2按照合并的
阶段写入半导体装置1。因此,即使在对从写入装置2延伸到半导体装
置1的通信路径进行攻击(例如,边信道攻击)时,攻击者也无法区分
伪值和特定信息HF2。在由写入装置2给半导体装置1传送哈希函数
HF1的信息时,哈希函数HF1被加密为特定信息HF2。即使攻击者能
够确定特定信息HF2,只要加密算法是未知的,攻击者就无法获得哈希
函数HF1。根据该观点,同样地,根据第一实施例的半导体装置1和写
入装置2能够提高哈希函数HF1作为保密信息的安全性。
第二实施例
图4是根据第二实施例的半导体装置3以及用于将特定信息写入半
导体装置3的写入装置4的框图。如图4所示,半导体装置3通过将存
储用于对装置所独有的唯一码进行纠错的数据的存储单元31及纠错电
路(例如,ECC电路32)添加至根据第一实施例的半导体装置1而获
得。写入装置4通过将存储用于对装置的唯一码进行纠错的数据(例
如,ECC码)以及用于比较并确认错误码于其上执行的装置的唯一码
的数据(例如,CRC码表)的存储单元41、纠错电路(例如,ECC电
路42)以及用于比较并确认唯一码的CRC电路43添加至第一实施例
的写入装置2而获得。
半导体装置3的ECC电路32校正包含于由唯一码生成单元10生
成的唯一码UC内的错误以生成校正的唯一码CUC。更具体地,ECC
电路32从存储单元31中读取与唯一码UC对应的ECC码,并且根据
ECC码来校正唯一码UC中的错误以生成已纠错的唯一码CUC。
在半导体装置3中,根据已纠错的唯一码CUC,摘要生成单元11
生成摘要值DI。在半导体装置3中,哈希函数解密单元14根据已纠错
的唯一码CUC来执行解密过程。
写入装置4内的ECC电路42校正包含于由唯一码生成单元10生
成的唯一码UC内的错误以生成校正的唯一码CUC。更具体地,ECC
电路42从存储单元41中读取与唯一码UC对应的ECC码,并且根据
ECC码来校正唯一码UC内的错误以生成已纠错的唯一码CUC。存储
于存储单元41内的ECC码与存储于半导体装置3中的存储单元31内
的ECC码是相同的。在相同的ECC码保存于两个装置中的情况下,能
够确认写入装置4和半导体装置3的有效性。
在写入装置4中的CRC电路43将已纠错的唯一码CUC与存储于
存储单元41内的CRC码表进行比较以确定已纠错的唯一码CUC的有
效性。CRC码表是用于记录与ECC码关联的有效唯一码的表格的数
据。在CRC电路43确定已纠错的唯一码CUC为有效的情况下,它将
已纠错的唯一码CUC供应给摘要生成单元21和哈希函数加密单元
23。另一方面,在CRC电路43确定已纠错的唯一码CUC为无效的情
况下,写入装置4停止写入哈希函数HF1的过程。
现在将描述根据第二实施例的写入装置4的操作。图5是示出根据
第二实施例的写入装置4的操作的流程图。
首先,写入装置4接收来自半导体装置3的未校正的唯一码UC
(步骤S21)。随后,写入装置4将ECC码从存储单元41传送到ECC
电路42(步骤S22)。ECC电路42校正未校正的唯一码UC中的错误
以生成已纠错的唯一码CUC(步骤S23)。
写入装置4将CRC码表从存储单元41传送到CRC电路43(步骤
S24)。写入装置4将CRC码表与CRC电路43内的已纠错的唯一码
CUC进行比较(步骤S25)。在CRC码与已纠错的唯一码CUC于步骤
S25的比较中不匹配的情况下(步骤S26中的否),写入装置4停止写
入特定信息HF2的过程。另一方面,在CRC码与已纠错的唯一码
CUC匹配的情况下(步骤S26中的是),写入装置4进入到写入特定信
息HF2的过程。
在步骤S26确定CRC码与已纠错的唯一码CUC相匹配的情况
下,写入装置4根据已纠错的唯一码CUC来生成摘要值DI(步骤
S27)。在步骤S27之后,写入装置4以已纠错的唯一码CUC来加密哈
希函数HF1以生成特定信息HF2(步骤S28)。
写入装置4将特定信息HF2和伪值Dd存储于缓冲器26内(步骤
S29)。更具体地,在步骤S29中,将特定信息HF2存储于其地址是在
缓冲器26的区域中的摘要值DI的区域内,以及将伪值Dd存储于其地
址不是在缓冲器26的区域中的摘要值DI的区域内。随后,写入装置4
将特定信息HF2与伪值Dd进行合并,并且将所合并的信息发送给半导
体装置3(步骤S30)。
在图5的流程图中,当CRC电路43确定已纠错的唯一码CUC不
是正规的唯一码时,写入装置4不将特定信息HF2传送到半导体装置
3。使用该方法和CRC码,在半导体装置3不是正规的半导体装置的情
况下,能够防止特定信息HF2被传送给不正规的半导体装置3。
图6是示出根据第二实施例的写入装置4的操作程序的序列图。如
图6所示,首先,写入装置4接收来自半导体装置3的未校正的唯一码
UC(步骤S31)。随后,写入装置4通过使用ECC电路42中的ECC
码来校正唯一码UC内的错误以生成已纠错的唯一码CUC(步骤
S32)。已纠错的唯一码CUC被传送到CRC电路43(步骤S33)。
在写入装置4中,CRC电路43应用来自CRC码表41的对应的
CRC码,将已纠错的唯一码CUC与CRC码进行比较,并确定已纠错
的唯一码CUC的有效性(步骤S34)。在步骤S34确定已纠错的唯一码
CUC为无效的情况下,过程停止。另一方面,当步骤S34确定已纠错
的唯一码CUC为有效时,过程继续进行。
在步骤S34的过程之后,执行特定信息HF2和伪值Dd的生成以及
特定信息HF2和伪值Dd的传送。具体地,在写入装置4中,已纠错的
唯一码UC由CRC电路43传送到摘要生成单元21和哈希函数加密单
元23(步骤S35和S38)。摘要生成单元21根据已纠错的唯一码CUC
来生成摘要值DI(步骤S36)。摘要值DI被传送到选择器25(步骤
S37)。
随后,写入装置4用已纠错的唯一码UC来加密哈希函数HF1以
在哈希函数加密单元23中生成特定信息HF2(步骤S39)。特定信息
HF2被传送给选择器25(步骤S40)。
写入装置4在伪值生成单元24中生成伪值Dd(步骤S41)。伪值
Dd被传送给选择器25(步骤S42)。伪值Dd被生成使得缓冲器区域除
了特定信息HF2外都被占用。少量位的伪值Dd能够多次来生成,或者
伪值Dd能够立即生成。
选择器25将所收到的特定信息HF2写入其地址是缓冲器26内的
摘要值DI的区域,以及将伪值Dd写入缓冲器26中的其他区域内(步
骤S43)。写入装置4将存储于缓冲器26内的特定信息HF2和伪值Dd
进行合并,并且将所合并的信息传送给半导体装置3(步骤S44)。
随后,将描述使用特定信息的半导体装置3的操作HF2。图7是示
出根据第三实施例的使用特定信息HF2的半导体装置的操作程序的序
列图。
如图7所示,首先,半导体装置1将由唯一码生成单元10生成的
未校正的唯一码UC发送到ECC电路32(步骤S51)。ECC电路32读
取来自存储单元31的ECC码并且校正唯一码UC内的错误以生成已纠
错的唯一码UCU(步骤S52)。ECC电路32将已纠错的唯一码CUC传
送给摘要生成单元11和哈希函数解密单元14(步骤S53和S59)。随
后,摘要生成单元11根据所收到的已纠错的唯一码CUC来生成摘要值
DI(步骤S54)。摘要值DI被传送到存储控制器13(步骤S55)。
存储控制器13将所收到的摘要值DI用作读取地址并且发出读取指
令RD[DI](步骤S56)。根据读取指令RD[DI],存储于与摘要值DI关
联的地址内的特定信息HF2从存储区域12中传送到存储控制器13(步
骤S57)。随后,存储控制器13将所收到的特定信息HF2传送给哈希函
数解密单元14(步骤S58)。
哈希函数解密单元14用所收到的已纠错的唯一码CUC来解密所收
到的特定信息HF2以生成哈希函数HF1(步骤S60)。哈希函数HF1被
传送给加密单元15(步骤S61)。半导体装置1通过使用哈希函数HF1
来启动加密通信(步骤S62)。
如上所述,通过提供纠错电路(例如,ECC电路32),即使在唯一
码UC是例如由于生成原理而在随机位内包含错误的PUF时,根据第
二实施例的半导体装置3也能够通过使用经由校正错误而获得的校正的
唯一码CUC来执行与根据第一实施例的半导体装置1的操作类似的操
作。PUF是装置所独有的值,并且即使在电路相同时,具有相同值的码
也无法生成。因此,通过使用PUF,能够提高安全性。
由于在生成唯一码时没有必要由半导体装置3和写入装置4发送/
接收ECC码来生成唯一码UC,因而保持了ECC码的保密性。由于写
入装置4具有与存储于半导体装置3的存储单元31内的ECC码相同的
ECC码,因而能够确定半导体装置3对于写入装置4的有效性或者写
入装置4对于半导体装置3的有效性。在写入装置4和半导体装置3中
的任意一个装置为无效的情况下,存储于半导体装置3内的ECC码以
及存储于写入装置4内的ECC码不匹配。另一方面,在半导体装置3
中经过了纠错的唯一码UC以及在写入装置4中经过了纠错的唯一码
UC是相同的。在将不同的ECC码应用于相同的唯一码的情况下,没
有进行适当的纠错。因此,对其执行与原始纠错不同的纠错的已纠错的
唯一码CUC具有与CRC码表内的值不同的值。也就是说,根据第二
实施例的写入装置4能够通过在CRC电路43内的CRC过程来确定半
导体装置3的有效性或者写入装置4对于半导体装置3的有效性。
此外,在根据第二实施例的写入装置4中,在半导体装置3和写入
装置4中的任何一个的有效性有可疑的情况下,特定信息HF2的生成
过程和发送过程就停止。因此,根据第二实施例的写入装置4能够防止
特定信息HF2(和哈希函数HF1)泄漏到无效的半导体装置3(例如,
模仿)。也就是说,根据第二实施例的写入装置4能够提高半导体装置3
的安全性。
尽管CRC电路43在第二实施例中被用来确认已纠错的唯一码
CUC的有效性,但是已纠错的唯一码CUC的有效性不一定通过CRC
电路来确认,而是能够通过别的电路来确认,只要该电路具有能够检测
奇偶等错误以及防止错误的校正的功能。
根据第二实施例的半导体装置3将待进行纠错的码作为发送给写入
装置4的唯一码UC来发送。也就是说,在半导体装置3与写入装置4
之间的通信路径内,传输着包含错误的唯一码UC。因此,在根据第二
实施例的半导体装置3内,在对通信路径进行攻击(例如,边信道攻
击)的情况下同样被分接(tap)的唯一码UC包括错误,使得攻击者
无法从所分接的信息中确定有效的唯一码UC。也就是说,通过使用根
据第二实施例的半导体装置3,能够提高通信路径的安全性。
第三实施例
图8是根据第三实施例的半导体装置3以及将特定信息写入半导体
装置3的写入装置4a的框图。如图8所示,在第三实施例中,将描述
具有通过从根据第二实施例的写入装置4中去除CRC电路而获得的写
入装置4a的配置。
如图8所示,在写入装置4a中,在没有由CRC电路执行的CRC
过程的情况下,已纠错的唯一码CUC被传送给摘要生成单元21和哈希
函数加密单元23。如上所述,在第三实施例中的半导体装置3及写入装
置4a与第二实施例中的半导体装置3及写入装置4之间的差异只是
CRC电路的存在/不存在。因此,下面将只描述写入装置4a的操作。
图9是示出根据第三实施例的写入装置4a的操作程序的序列图。
在图9中,为了使写入装置4a的操作对应于写入装置4的操作,用相
同的参考数字来指示与写入装置4的操作基本上相同的操作。
如图9所示,首先,写入装置4a接收来自半导体装置3的待进行
纠错的唯一码UC(S31)。随后,ECC电路42通过使用ECC码来校正
唯一码UC内的错误以生成已纠错的唯一码CUC(步骤S32)。已纠错
的唯一码CUC被传送给摘要生成单元21和哈希函数加密单元23(步
骤S35和S38)。摘要生成单元21根据已纠错的唯一码CUC来生成摘
要值DI(步骤S36)。摘要值DI被传送给选择器25(步骤S37)。
随后,写入装置4a通过哈希函数加密单元23用已纠错的唯一码
CUC来加密哈希函数HF1,以生成特定信息HF2(步骤S39)。特定信
息HF2被传送给选择器25(步骤S40)。
写入装置4在伪值生成单元24中生成伪值Dd(步骤S41)。伪值
Dd被传送给选择器25(步骤S42)。伪值Dd被生成以便填充与特定信
息HF2不同的缓冲区。至于该生成,由少量位构成的伪值可以多次来
生成,或者伪值可以立即生成。
选择器25将所收到的特定信息HF2写入使用摘要值DI作为缓冲
器26中的地址的区域内,并且将伪值Dd写入缓冲器26的其他区域内
(步骤S43)。写入装置4将存储于缓冲器26内的特定信息HF2与伪值
Dd进行合并,并且将所合并的信息传送给半导体装置3(步骤S44)。
如上所述,在根据第三实施例的写入装置4a中,在CRC电路没有
执行CRC过程的情况下,写入特定信息HF2。即使在这种情况下,当
半导体装置3和写入装置4a中的任意一个为无效时,写入半导体装置3
内的特定信息HF2无法通过半导体装置3的已纠错的唯一码CUC来读
取。原因是,由写入装置4a生成的摘要值DI与由半导体装置3生成的
摘要值DI是不同的值。在半导体装置3中,例如,即使在能够从存储
区域12中读取特定信息HF2的情况下,由于用来生成特定信息HF2
的已纠错的唯一码CUC与由半导体装置3生成的已纠错的唯一码CUC
不匹配,哈希函数HF1无法由哈希函数解密单元14来解密。
因此,根据第三实施例的半导体装置3和写入装置4a只能够在装
置为有效的情况下解密哈希函数HF1。在根据第三实施例的半导体装置
3和写入装置4a中的任意一个为无效的情况下,能够防止对哈希函数
HF1的解密。也就是说,根据第三实施例的半导体装置3和写入装置
4a能够在不使用CRC电路的情况下实现高安全性。
第四实施例
图10是根据第四实施例的半导体装置5和写入装置6的框图。如
图10所示,半导体装置5具有代替了根据第一实施例的半导体装置1
的唯一码生成单元10的唯一码生成单元50。在半导体装置5中,在存
储区域12内,没有存储伪值Dd,而是存储了特定信息HF21到HF2n
(n表示指出所存储的特定信息的个数的值)。
唯一码生成单元50生成多个唯一码UC1到UCn(n表示指出所生
成的唯一码的数量的值),并且从唯一码UC1到UCn选出一个唯一码
UCx(x表示指出所选唯一码的编号的值)。唯一码生成单元50将所选
的唯一码UCx给到摘要生成单元11和哈希函数解密单元14。
更具体地,唯一码生成单元50具有唯一码UC1到UCn和选择电
路52。唯一码通过例如PUF(例如,SRAM电路的初始值)来配置。
选择电路52选择唯一码UC1到UCn中的任意一个并且将其作为唯一
码UCx来输出。选择电路52接收模式信号MD。在模式信号MD指示
正常的操作模式的情况下,选择电路52输出从唯一码UC1到UCn选
出的任意唯一码UCx。此时,选择电路52每当需要选择唯一码时就随
机地选择唯一码。另一方面,在模式信号MD指示写入模式的情况下,
选择电路52依次选择唯一码UC1到唯一码UCn并且输出它。
写入装置6具有存储单元22、哈希函数加密单元61及缓冲器62。
哈希函数加密单元61以由半导体装置5依次发送的唯一码来加密哈希
函数HF1以依次生成特定信息HF21到HF2n,并且将特定信息HF21
到HF2n存储于缓冲器62内。也就是说,特定信息HF2n是通过以唯
一码UCn来加密哈希函数HF1而获得的。特定信息HF21到HF2n被
存储于缓冲器62内。写入装置6将存储于缓冲器62内的特定信息
HF21到HF2n进行合并,并且将所合并的信息传送给半导体装置5。
在半导体装置5中,由写入装置6发送的特定信息HF21到HF2n
被存储于存储区域12内。在半导体装置5中,生成了与唯一码UC1到
UCn对应的摘要值DI1到DIn,以及特定信息HF21到HF2n被存储于
其地址是与用于加密过程的唯一码对应的摘要值的区域内。也就是说,
在存储区域12内,通过使用多个唯一码来加密哈希函数HF1而获得的
特定信息HF21到HF2n被存储于与唯一码UC1到UCn关联的多个区
域内。在图10中,摘要值DIx被示出作为摘要值DI1到Din之一。
图11是示出根据第四实施例的写入装置6的操作程序的序列图。
下面将参照图11来描述根据第四实施例的装置电路6的操作程序。
如图11所示,在写入装置6内的哈希函数加密单元61接收唯一码
UC1到UCn(步骤S71)。哈希函数加密单元61用唯一码UC1到UCn
来加密哈希函数HF1以生成特定信息HF21到HF2n(步骤S72)。特定
信息HF21到HF2n被传送给缓冲器62(步骤S73)。写入装置6将存
储于缓冲器62内的特定信息HF21到HF2n进行合并,并且将所合并
的信息传送给半导体装置5(步骤S74)。在半导体装置5中,特定信息
HF21到HF2n被存储于存储区域12中的与唯一码UC1到UCn关联的
多个区域内。
现在将描述使用特定信息HF21到HF2n的半导体装置5的操作。
图12是示出根据第四实施例的使用特定信息HF21到HF2n的半导体
装置5的操作程序的序列图。
如图12所示,半导体装置5将由唯一码生成单元10生成的唯一码
UC1到UCn中的一个作为唯一码UCx来输出,该唯一码是随机选择的
(步骤S81)。所选的唯一码UCx被传送给摘要生成单元11和哈希函数
解密单元14(步骤S82和S88)。随后,摘要生成单元11根据所收到的
唯一码UCx来生成摘要值DIx(步骤S83)。摘要值DIx被传送给存储
控制器13(步骤S84)。
存储控制器13使用所收到的摘要值Dix作为读取地址并且发出读
取指令RD[DIx](步骤S85)。根据读取指令RD[DIx],存储于与摘要值
DI关联的地址内的特定信息HF2x被从存储区域12中传送到存储控制
器13(步骤S86)。随后,存储控制器13将所收到的特定信息HF2传
送给哈希函数解密单元14(步骤S87)。
哈希函数解密单元14用所收到的唯一码UCx来解密所收到的特定
信息HF2x以生成哈希函数HF1(步骤S89)。哈希函数HF1被传送给
加密单元15(步骤S90)。半导体装置5通过使用哈希函数HF1来启动
加密通信(步骤S91)。
在以上的描述中,在根据第四实施例的半导体装置5内,存储区域
12由以唯一码UC1到UCn加密的特定信息HF21到HF2n填充。半导
体装置5根据联系唯一码UC1到UCn而生成的摘要值DI1到Din来读
取能够以唯一码UC1到UCn来解密的特定信息HF21到HF2n,以解
密哈希函数HF1。
通常,存储于存储区域12内的特定信息HF2的个数是1。因此,
即使在攻击者对根据第四实施例的半导体装置5进行分析时,攻击者也
无法确定存储于任意区域内的特定信息是否是真正的特定信息。通过使
用半导体装置5,能够提高哈希函数HF1作为保密信息的安全性。
存储于存储区域12内的特定信息以唯一码UC1到UCn中的任意
唯一码来加密。因此,攻击者仅参照存储于存储区域12内的特定信息
无法了解加密的算法。同样能够通过使用根据第四实施例的半导体装置
5来提高哈希函数HF1作为保密信息的安全性。
第五实施例
在第五实施例中,将描述用于将特定信息HF2存储于存储区域12
内的方法的另一种形式。图13是示出用于存储特定信息HF2的方法的
另一种形式的概念图。在图13所示的实例中,特定信息HF2被分割
(split)并存储于存储区域12中的多个区域内。在图13所示的实例
中,摘要值DI用作指定特定信息HF2的分割数的值,并且还用作存储
摘要值DI的区域的头地址。
在图13所示的实例中,4被生成作为摘要值DI,以及特定信息
HF2被表示为128位。在图13所示的实例中,特定信息HF2的第一个
32位被存储于地址4的区域内,从第33位到第64位的特定信息HF2
被存储于地址5的区域内,从第65位到第96位的特定信息HF2被存
储于地址6的区域内,以及从第97位到第128位的特定信息HF2被存
储于地址7的区域内。由于同样存在分割次数为1的情形,因而在存储
区域12内的一个区域具有大到足以存储没有分割的特定信息HF2的容
量。因此,在分割特定信息HF2以及存储分割信息的情况下,空闲空
间存在于一个区域内。如图13所示,优选的是将伪值存储于空闲空间
内,原因是由于对攻击者隐藏了特定信息HF2。
如上所述,为了从特定信息HF2存储于其内的存储区域12中读取
特定信息HF2,存储控制器13生成用于从摘要值DI中读取特定信息
HF2的读取指令。更具体地,存储控制器13根据摘要值DI来计算存储
于存储区域12中的一个区域内的特定信息的分割次数并且访问存储区
域12。存储控制器13生成数量与与分割次数对应的读取地址,根据使
用读取地址从多个区域读取的信息再生成特定信息HF2,并且将所再生
成的特定信息HF2给到哈希函数解密单元14。在图13所示的实例中,
摘要值DI被用作特定信息HF2存储于其内的区域的头地址,使得存储
控制器13根据摘要值DI来生成数量与分割次数对应的读取地址,包括
头地址以及在头地址之后的读取地址。作为存储分割特定信息的位置,
可以指定根据摘要值DI计算出的另一地址。
图14是示出用于存储特定信息HF2的方法的另一种形式的概念
图。在图14所示的实例中,特定信息HF2被分割并存储于存储区域12
中的多个区域之内。在图14所示的实例中,摘要值DI被用作用于指定
存储于存储区域12中的一个区域内的特定信息HF2的位数的值(分割
位数),并且被用作用于存储摘要值DI的区域的头地址。
在图14所示的实例中,“4”被生成为摘要值DI,以及特定信息
HF2被表示为128位。在图14所示的实例中,特定信息HF2被分割成
4个位,以及所分割的特定信息HF2中的每一个都存储于一个区域内。
由于同样存在分割位数为128位的情形,因而在存储区域12中的一个
区域具有大到足以存储没有分割的特定信息HF2的容量。因此,在特
定信息HF2被分割的情况下,空闲空间存在于一个区域内。如图14所
示,优选的是将伪值存储于空闲空间内以使特定信息HF2对于攻击者
是隐藏的。在其中存储了特定信息HF2的地址区域1到n内,其内写
入特定信息HF2的位置并没有受到限制。更具体地,本发明能够在将
写入图14中的地址4内的HF2[0:3]写入如图14所示的从地址4的头位
开始的区域内或者写入其他区域内时实现。
如上所述,为了从特定信息HF2存储于其内的存储区域12中读取
特定信息HF2,存储控制器13生成用于根据摘要值DI来读取特定信息
HF2的读取指令。更具体地,存储控制器13根据摘要值DI来计算存储
于存储区域12中的一个区域内的特定信息HF2的位数并且访问存储区
域12。存储控制器13生成数量与通过根据分割次数来分割特定信息
HF2而获得的值对应的读取地址,根据使用读取地址从多个区域中读取
的信息来再生成特定信息HF2,以及将所再生成的特定信息HF2给到
哈希函数解密单元14。在图14所示的实例中,摘要值DI被用作其内
存储了特定信息HF2的区域的头地址,使得存储控制器13根据摘要值
DI生成数量与通过根据分割位数来分割特定信息HF2而获得的值对应
的读取地址,包括头地址和在头地址之后的读取地址。作为存储分割特
定信息的位置,可以指定根据摘要值DI计算出的另一地址。
如上所述,通过根据摘要值DI来分割特定信息HF2以及将分割信
息存储于存储区域12内,特定信息HF2被按照在装置间不同的记录长
度存储。因此,即使在攻击者对存储区域12进行分析时,由于存储于
一个区域内的特定信息HF2的记录长度在装置间是不同的,因而攻击
者无法识别出哪些信息是特定信息HF2。也就是说,通过根据依据在装
置间不同的唯一码UC而生成的摘要值DI来改变特定信息HF2的记录
长度,能够提高哈希函数HF1作为保密信息的安全性。
在上述实施例的写入装置中,通过使用与数据被写入其内的半导体
装置的唯一码相同的唯一码UC,生长与半导体装置的摘要值相同的摘
要值DI。通过使写入装置执行上述分割算法,能够正常地执行写入特
定信息HF2的过程。
本发明并不限定于上述实施例,而是能够在不脱离本发明主旨的情
况下适当地改变。本领域技术人员应当理解,与多个实施例相关的内容
可与一个装置结合,例如,将从第一实施例到第二实施例的变化应用于
第四实施例。