技术简介:
本专利针对加密密钥存储与使用安全性不足的问题,提出多代密钥轮换机制。通过加密解密运算部动态生成并更新密钥,结合合法性评价密钥的哈希校验和调试器验证机制,实现密钥完整性验证与非法操作阻断。当检测到密钥不匹配或调试程序运行时,自动终止加密/解密流程及数据传输,有效防止密钥篡改与未授权访问。
关键词:加密密钥管理,安全验证,哈希校验
加密、解密电路的制作方法
【专利摘要】本发明实现一种加密、解密电路,可以控制用于向数据存储部发送秘钥数据内容的引线数量的增加,并且不会导致电路设计复杂化。实现一种加密解密电路,加密解密运算部包含加密解密运算电路和避开该加密解密运算电路的回避路径,对于输入的数据,可以选择或者在加密解密运算电路进行加密或解密,或者避开加密解密运算电路而直接输出。从选择器到秘钥存储部和初始值存储部只需设置1根引线即可,可以控制用于向秘钥存储部和初始值存储部发送秘钥数据内容的引线数量的增加,并且不会导致电路设计复杂化。
【专利说明】加密、解密电路
[0001]本申请涉及母案为如下申请的分案申请:
[0002]申请日:2006年7月5日
[0003]申请号:201010545579.1
[0004]发明名称:加密、解密电路
【技术领域】
[0005]本发明涉及可保障保密数据的安全性的加密、解密电路。
【背景技术】
[0006]在下述专利文献I中,公开了一种能够对并列输入的流数据避免秘钥选择的麻烦的加密、解密电路。根据该电路,向多个输入接口并列输入TV广播的流数据、记录在DVD的流数据或CATV线路的流数据等(参照第0015段),与输入路径相对应的解密秘钥和输入数据利用其调停部向加密解密运算部输出(参照第0038段)。而且,加密解密运算部使用从调停部输入的解密秘钥,对输入的加密数据进行解密运算处理,再输出解密数据(参照第0039 段)。
[0007]【专利文献I】特开2004-88505号公报
[0008]上述专利文献I涉及在该图1的寄存器131?134内设定秘钥数据内容的结构,但是,只记述了“秘钥131?134由寄存器构成,通过TV接收装置的控制部分别设定与听众选择的频道相对应的节目的解密秘钥”(第0025段),关于具体采用什么样的电路构成去设定秘钥数据的内容,没有具体的描述。因此,若借鉴该描述的方法,可以考虑设置多根引线,单纯地从输入接口或输入流处理部向各寄存器131?134供给秘钥数据。但是,像这样设置从输入接口或输入流处理部到各寄存器131?134的引线将使引线增加并导致电路设计复杂化。
[0009]此外,在上述专利文献I中,该图1的秘钥存储部对每个加密或解密数据的信道只设有一个寄存器(分别是131?134)。当使用存储在寄存器中的秘钥从流数据中生成新的秘钥时,必须使用存储在寄存器中的第I秘钥去解密第2秘钥,并将第2秘钥重写到存储器。然后,当使用第I秘钥去解密第2秘钥之外的秘钥时,必须再次将第I秘钥重写到寄存器上。但是,这样的加密解密运算会降低数据处理的能力。
[0010]进而,上述专利文献I存在容易通过输出接口从外部非法取得需要保密的秘钥的信息或需要保密的输出流数据、容易进行非法篡改的问题。
[0011]例如,当采用CBC(Cipher Block Chaining:加密块链)方式或 CFB (CipherFeedBack:加密反馈)方式等块加密解密方式时,必须给出第I秘钥生成用的IV(Initializat1n Vecto r:初始化矢量)。根据该IV生成的秘钥可以存储在形成加密解密电路的芯片内或存储在设于其外部的非易失性存储器等中。
[0012]但是,为了降低成本,当采用微细工艺时,将保存秘钥或加密解密程序的非易失性存储器在形成了加密解密电路的芯片内制作成一个芯片很困难。这是因为,非易失性存储器微细化很困难,当采用栅极长度为90nm水平的前端工艺时,可以形成加密解密电路,但另一方面,若利用同一工艺,要想在I个芯片内形成非易失性存储器很困难。
[0013]当然,将非易失性存储器放在形成了加密解密电路的芯片内,可以提高秘钥的安全性。若将非易失性存储器做成外挂的结构,使通用的非易失性存储器可以自由装卸,则当卸下非易失性存储器时,很容易改变所存储的秘钥的内容。
[0014]S卩,上述专利文献I记载的现有的加密解密电路没有考虑保障需要保密的秘钥的信息的安全性。
【发明内容】
[0015]本发明是鉴于上述问题而提出的,其目的在于实现一种加密解密电路,可以控制用于向数据存储部发送秘钥数据的内容的引线数量的增加,不会导致电路设计复杂化,此夕卜,可以提高加密解密运算的能力,进而可以保障需要保密的数据的安全性。
[0016]本发明的第I方面涉及一种加密解密电路,具有输入部、加密解密运算部、输出部和数据存储部,上述加密解密运算部包括:对经上述输入部输入的数据进行加密或解密的加密解密运算电路、使经上述输入部输入的数据避开上述加密解密运算电路的回避路径、和选择输出上述加密解密运算电路的输出和上述回避路径的输出中某一个输出的选择器,上述选择器的输出施加给上述输出部和上述数据存储部,上述数据存储部将存储的数据施加给上述加密解密运算部。
[0017]本发明的第3方面涉及一种加密解密电路,具有加密解密运算部和秘钥存储部,上述秘钥存储部对经上述加密解密运算部加密或解密后的输入数据的I信道设置多个存储部,上述多个存储部中的I个中存储用于进行上述加密或解密的第I秘钥,上述加密解密运算部是使用存储在上述多个存储部的上述I个中的上述第I秘钥,从上述输入数据中解密用于进行上述加密或解密的第2秘钥,并将上述第2秘钥存储在上述多个存储部的另外I个存储部中。
[0018]本发明的第5方面涉及一种加密解密电路,具有加密解密运算部和秘钥存储部,上述秘钥存储部包含:第I存储部、和分别与利用上述加密解密运算部加密或解密的输入数据的多个信道分别对应的多个第2存储部,上述第I存储部存储上述多个信道公共的、用于进行上述加密或解密的第I秘钥,上述加密解密运算部是使用存储在上述第I存储部中的上述第I秘钥,从上述输入数据中解密用于进行上述加密或解密的第2秘钥,并将上述第2秘钥存储在上述多个第2存储部中。
[0019]本发明的第7方面涉及一种加密解密电路,具有:秘钥存储部;使用所给的第I秘钥从解密后的输入数据中解密用于进行上述解密的第2秘钥,并将该第2秘钥存储在上述秘钥存储部中的解密运算部;和秘钥有效判定电路,上述秘钥有效判定电路在上述解密运算部中使用上述第I秘钥解密了上述第2秘钥时,使表示上述第2秘钥有效的秘钥有效信号激活,在使用上述第I秘钥之外的秘钥解密上述第2秘钥时,不激活上述秘钥有效信号。
[0020]本发明的第9方面涉及一种加密解密电路,具有:秘钥存储部;使用所给的加密秘钥生成用于对利用上述加密秘钥加密后的输入数据进行解密的解密秘钥,并将上述解密秘钥存储在上述秘钥存储部中的加密解密运算部;和解密秘钥有效判定电路,上述解密秘钥有效判定电路在上述加密解密运算部使用上述加密秘钥生成了上述解密秘钥时,使表示上述解密秘钥有效的解密秘钥有效信号激活,在使用上述加密秘钥之外的秘钥生成了上述解密秘钥时,不激活上述解密秘钥有效信号。
[0021]本发明的第11方面涉及一种加密解密电路,具有:存储第I代加密秘钥的秘钥存储部、加密解密运算部和加密解密秘钥代一致判定电路,上述加密解密运算部使用上述第I代加密秘钥生成用于输入数据的加密的第2代加密秘钥,并更新上述第I代加密秘钥并将上述第2代加密秘钥存储在上述秘钥存储部中,依次使用第η代加密秘钥(η:自然数)生成用于上述输入数据的加密的第η+1代加密秘钥,并更新上述第η代加密秘钥将上述第η+1代加密秘钥存储在上述秘钥存储部中,使用上述第I代加密秘钥生成用于利用上述第I代加密秘钥加密的上述输入数据的解密的第I代解密秘钥,并将上述第I代解密秘钥存储在上述秘钥存储部中,依次分别使用上述第η+1代之前的加密秘钥分别生成用于上述输入数据的解密的第η+1代之前的解密秘钥,并更新上述第η代解密秘钥将上述第η+1代解密秘钥存储在上述秘钥存储部中,上述加密解密秘钥代一致判定电路在上述加密解密运算部使用对应的上述第η代加密秘钥生成了上述第η代解密秘钥时,激活表示上述第η代解密秘钥有效的加密解密秘钥代一致信号,在使用对应的上述第η代加密秘钥之外的秘钥生成了上述第η代解密秘钥时,不激活上述加密解密秘钥代一致信号。
[0022]本发明的第13方面涉及一种加密解密电路,具有:存储第I代加密秘钥的秘钥存储部、加密解密运算部、和加密解密秘钥代许可电路,上述加密解密运算部使用上述第I代加密秘钥生成用于输入数据的加密的第2代加密秘钥,并更新上述第I代加密秘钥将上述第2代加密秘钥存储在上述秘钥存储部中,依次使用第η代加密秘钥(η:自然数)生成用于上述输入数据的加密的第η+1代加密秘钥,并更新上述第η代加密秘钥后将上述第η+1代加密秘钥存储在上述秘钥存储部中,使用上述第I代加密秘钥生成用于利用上述第I代加密秘钥加密的上述输入数据的解密的第I代解密秘钥,并将上述第I代解密秘钥存储在上述秘钥存储部中,依次分别使用上述第η+1代之前的加密秘钥分别生成用于上述输入数据的解密的第η+1代之前的解密秘钥,并更新上述第η代解密秘钥后将上述第η+1代解密秘钥存储在上述秘钥存储部中,上述加密解密秘钥代许可电路在上述加密解密运算部使用对应的上述第η代加密秘钥有效地生成了上述第η代解密秘钥时,每当生成上述第η代解密秘钥时,便生成表示已生成上述第η代之前的解密秘钥的加密解密秘钥第η代许可信号。
[0023]本发明的第14方面涉及一种加密解密电路,具有:加密解密运算部;秘钥存储部;以及包含多个逻辑门电路的组合并利用上述组合生成规定的信号,再将上述规定的信号作为开始秘钥输出的开始秘钥输出电路,上述加密解密运算部使用上述开始秘钥对给定的用于进行输入数据的加密或解密的第I秘钥进行加密,并将上述第I秘钥存储在上述秘钥存储部中。
[0024]若按照本发明的第I方面,加密解密运算部包含加密解密运算电路、回避路径和选择器,选择器的输出与输出部和数据存储部连接,数据存储部将存储的数据提供给加密解密运算部。因此,可以在加密解密运算电路中对经输入部输入的数据进行加密或解密后,再输出给输出部和数据存储部,也可以绕开加密解密运算电路直接向输出部和数据存储部输出。若像现有技术那样,当采用设置从输入部到数据存储部的引线的构成时,且加密解密电路采用CBC或CFB等块加密解密方式时,则还需要从加密解密运算电路到数据存储部的引线,到数据存储部需要2根连接线。另一方面,若按照本发明,从选择器到数据存储部只需要设置I根引线,可以控制用于向数据存储部发送秘钥数据的内容的引线数量的增加,可以实现不会使电路设计变得复杂的加密解密电路。
[0025]若按照本发明的第3方面,秘钥存储部对经上述加密解密运算部加密或解密后的输入数据的I个信道包含多个存储部,加密解密运算部使用存储在多个存储部之一的、用于进行加密或解密第I秘钥,从输入数据中解密用于进行加密或解密的第2秘钥,并将第2秘钥存储在多个存储部的另外I个存储部中。若像现有技术那样,当秘钥存储部对加密或解密的输入数据的信道只包含I个存储部时,使用I个存储部中存储的第I秘钥解密第2秘钥,必须将第2秘钥重写到该存储部。然后,当使用第I秘钥解密第2秘钥之外的秘钥时,必须再次将第I秘钥重写到该存储部中。另一方面,若按照本发明,秘钥存储部按输入数据的信道包含多个存储部,可以持续保存第I秘钥而无需对多个存储部之一进行重写。因此,可以提高加密解密运算的能力。
[0026]若按照本发明的第5方面,秘钥存储部包含:存储用于进行加密或解密的多信道共用的第I秘钥的第I存储部、和分别与利用加密解密运算部进行加密或解密的输入数据的多信道相对应的多个第2存储部,加密解密运算部使用存储在第I存储部中的第I秘钥,从输入数据中解密用于进行加密或解密的第2秘钥,并将第2秘钥存储在多个存储部的另一个中。若像现有技术那样,当秘钥存储部对加密或解密的输入数据的I个信道只包含I个存储部时,使用I个存储部中存储的第I秘钥解密第2秘钥,必须将第2秘钥重写到该存储部。然后,当使用第I秘钥解密第2秘钥之外的秘钥时,必须再次将第I秘钥重写到该存储部中。另一方面,若按照本发明,秘钥存储部包含与分别和多个信道对应的多个第2存储部不同的第I存储部,并可以持续保存第I秘钥而不必对多个第2存储部进行重写。因此,可以提高加密解密运算的能力。
[0027]若按照本发明的第7方面,秘钥有效判定电路在上述解密运算部使用第I秘钥解密了第2秘钥时,使表示第2秘钥有效的秘钥有效信号激活,在使用第I秘钥之外的秘钥解密了第2秘钥时,不激活秘钥有效信号。因此,根据秘钥有效信号的激活或不激活,解密运算部可以判定从输入数据解密的第2秘钥是使用合法的第I秘钥生成的,还是使用除此之外的非法的秘钥生成的。由此,可以防止秘钥的非法使用,从而可以保障需要保密的数据的安全性。
[0028]若按照本发明的第9方面,上述解密秘钥有效判定电路在加密解密运算部使用加密秘钥生成了解密秘钥时,使表示解密秘钥有效的解密秘钥有效信号激活,在使用加密秘钥之外的秘钥生成解密秘钥时,不激活解密秘钥有效信号。因此,根据解密秘钥有效信号的激活或不激活,加密解密运算部可以判定根据加密秘钥生成的解密秘钥是使用合法的加密秘钥生成的,还是使用除此之外的非法的秘钥生成的。由此,可以防止秘钥的非法使用,可以保障需要保密的数据的安全性。
[0029]若按照本发明的第11方面,可实现如下的加密解密电路:加密解密秘钥代一致判定电路在上述加密解密运算部使用对应的第η代加密秘钥生成了上述第η代解密秘钥时,激活表示第η代解密秘钥有效的加密解密秘钥代一致信号,在使用对应的第η代加密秘钥之外的秘钥生成了第η代解密秘钥时,不激活上述加密解密秘钥代一致信号。因此,根据加密解密秘钥代一致信号的激活或不激活,加密解密运算部可以判定根据加密秘钥生成的解密秘钥是使用合法的加密秘钥生成的,还是使用除此之外的非法的秘钥生成的。可以防止秘钥的非法使用,并可以保障需要保密的数据的安全性。
[0030]若按照本发明的第13方面,可实现如下的加密解密电路:加密解密秘钥代许可电路在加密解密运算部使用对应的第η代加密秘钥有效地生成了第η代解密秘钥时,每当生成第η代解密秘钥时,便生成表示已生成第η代之前的解密秘钥的加密解密秘钥第η代许可信号。因此,可以利用加密解密运算部与代的级别对应地进行应许可的运算处理,由此可以防止秘钥的非法使用,可以保障需要保密的数据的安全性。
[0031]若按照本发明的第14方面,可实现如下的加密解密电路,具有:包含多个逻辑门电路的组合并利用上述组合生成规定的信号,再将上述规定的信号作为开始秘钥输出的开始秘钥输出电路,加密解密运算部使用开始秘钥对给定的用于进行输入数据的加密或解密的第I秘钥进行加密,并将第I秘钥存储在秘钥存储部中。由于利用多个逻辑门电路的组合生成开始秘钥,故不可能从外部改变开始秘钥。因此,利用该开始秘钥加密的第I秘钥的安全性得到提高,可以防止秘钥的非法使用,从而可以保障需要保密的数据的安全性。
【专利附图】
【附图说明】
[0032]图1是表示本发明的加密解密电路的结构例的图。
[0033]图2是表示本发明的加密解密运算装置内的详细结构的图。
[0034]图3是实施方式I的控制各信道的优先顺序的信道优先处理判定部的方框图。
[0035]图4是信道优先处理判定部可取的各个状态的状态迁移图的例子。
[0036]图5是表示各信道的状态寄存器的迁移的图。
[0037]图6是表示实施方式2的秘钥存储部(CKeyl)的具体结构例的图。
[0038]图7是表示实施方式2的秘钥存储部(CKeyl)的另一结构例的图。
[0039]图8是表示实施方式3的秘钥存储部(CKeyl、CKey2、CKey3)的具体结构例的图。
[0040]图9是表示实施方式4的秘钥有效判定电路的图。
[0041]图10是表示实施方式5的解密秘钥有效判定电路的图。
[0042]图11是表示实施方式6的加密解密秘钥代一致判定电路的图。
[0043]图12是表示实施方式7的加密解密秘钥代许可电路的图。
[0044]图13是表示实施方式8的信道3的秘钥存储部周边结构的图。
[0045]图14是表示实施方式8的解密处理的流程图。
[0046]图15是表示实施方式9的信道3的秘钥存储部周边结构的图。
[0047]图16是表示实施方式9的非易失性存储器的存储内容的图。
[0048]图17是表示实施方式9的合法性评价电路的具体结构例的图。
[0049]图18是表示实施方式10的信道3的秘钥存储部周边的结构的图。
[0050]图19是表示实施方式10的合法性评价电路的具体结构例的图。
[0051 ]图20是表示实施方式11的合法性评价电路的具体结构例的图。
[0052]图21是表示实施方式12的加密解密电路的图。
【具体实施方式】
[0053]<实施方式1>
[0054]本实施方式涉及一种加密解密电路,其加密解密运算部包含加密解密运算电路和避开该电路的回避路径,可以选择在加密解密运算电路中对输入的数据进行加密或解密,或者避开加密解密运算电路而直接将输入的数据输出,该加密解密电路可以控制用于向数据存储部发送秘钥数据内容的引线数量的增加。
[0055]图1示出本发明的加密解密电路的结构例。该加密解密电路由内置在微机中的ICdntegrated Circuit:集成电路)芯片I构成,将图1中的符号I的方框内的电路集成在I块芯片中。IC芯片I具有用于控制加密解密电路的动作的CPU(Central ProcessingUnit:中央处理单元)3、用于数据交换的总线4、用于存储运算数据或临时存储数据的RAM (Ramdom Access Memory:随机存取存储器)6和进行加密解密的加密解密运算装置5,CPU3、RAM6和加密解密运算装置5的各部分都与总线4连接。
[0056]再有,在IC芯片I的外部,设置了非易失性存储器2,用于存储CPU3的动作程序和加密解密运算装置5进行运算所必须的秘钥数据,非易失性存储器2与延伸到IC芯片I外部的总线4连接。再有,非易失性存储器2可以是能够与总线4进行拆装的通用元件,也可以是和IC芯片I制作成I块芯片的内置存储器。
[0057]加密解密运算装置5具有用于根据来自CPU3的指示控制加密解密运算装置5内各部分的控制部51、用于临时存储实施运算处理的输入数据的输入缓冲器53、进行输入数据的加密解密处理时保存必要的秘钥数据的秘钥存储部54、保存在采用CBC(Cipher BlockChaining:加密块链)方式等块加密解密方式时所必需的IV(Initializat1n Vector:初始化矢量)的初始值存储部55、对输入的数据进行加密解密运算的加密解密运算部52、和用于暂时保存运算结果的输出缓冲器56。
[0058]这里,以采用CBC方式进行数据的加密为例,说明数据的大致流程。首先,CPU3通过总线4将保存在非易失性存储器2的秘钥数据复制到秘钥存储部54中。其次,CPU3对初始值存储部55设定IV。IV因不必隐蔽,故可以从IC芯片I和非易失性存储器2的外部提供,或者也可以从非易失性存储器2的内部传送过去。
[0059]其次,通过CPU3向控制部51发出运算内容的指示。这里,设定进行CBC方式的数据加密的指示。最后,向输入缓冲器53输入要加密的数据。控制部51使加密解密运算部52进行输入缓冲器53所保存的数据和IV的异或(EXOR)运算,然后,指示加密解密运算部52进行加密,并将运算结果存储在输出缓冲器56中。CBC方式时,来自加密解密运算部52的输出数据作为下次输入的数据的IV使用,因此,该输出数据的内容重写并保存在初始值存储部55中。
[0060]图2是表示图1的加密解密运算装置5内的详细结构的图。如图2所示,输入缓冲器53具有选择器53a?53c、53g、和输入缓冲器(I nputBuffer =InBufl?3) 53d?53f。秘钥存储部54具有选择器54a、54e、541、数据加密用秘钥存储部(秘钥(CipherKey) =CKeyl?3) 54b?54d、以及数据解密用秘钥存储部(解密秘钥(Inverse CipherKey):1Keyl?3)54f?54h。初始值存储部55具有选择器55a、55e和初始值存储部(Initializat1n Vector (初始化向量):1V1 ?3) 55b ?55d。
[0061]加密解密运算部52具有:将输入缓冲器53的选择器53g的输出、和初始值存储部55的选择器55e的输出进行异或(EXOR)运算的异或电路52a ;对异或电路52a的输出进行加密解密的加密解密运算电路52b ;使输入缓冲器53的选择器53g的输出避开加密解密运算电路52b的回避路径52d ;和从加密解密运算电路52b的输出和回避路径52d的输出中选择某一个输出的选择器52c。输出缓冲器56具有选择器56a、56e和输出缓冲器(OutputBuffer:OutBuf I ?3) 56b ?56d。
[0062]在本实施方式中,设想进行3个并列信道的数据流处理。InBufl、2、3等数字部分与所输入的数据流的信道相对应。这里,用信道表示处理各数据流的路径。例如,使用向信道I输入数据等表现。信道I?3中可以输入各种各样的数据,例如,信道I配送TV广播的流数据,向信道2配送来自DVD的流数据,向信道3配送CATV线路的流数据等。再有,输入信道I的数据的运算使用附加有下标I的符号IV1、InBufUCKeyU IKeyl、OutBufl。其余的信道也一样,使用带有标注了相同下标的符号的电路进行处理。加密解密运算部52由所有信道共同使用。
[0063]在本实施方式中,因不仅能与总线4相连接,还能与多个输入源(图中的“数据输入总线1、2、3”)连接,故在输入缓冲器53的初级设置了选择器53a?53c。作为多个输入源,例如是来自RAM6的直接输入等。因此,数据传送的效率与单独用总线4传送所有信道的数据相比,可更高效率地进行数据传送。但是,当多个信道的数据同时输入时,因发生竞争,故控制部51需要有控制由加密解密运算部52处理哪一个信道数据的电路。输出缓冲器56的结构也是基于同样的考虑。数据输入输出是使用总线4还是使用专用的数据输入总线1、2、3,可以预先从CPU3向加密解密运算部52内的控制部51发出指示。
[0064]这里,说明本实施方式的使用了加密解密电路的多个信道的数据传送顺序。3个数据流经由选择器53a?53c分别输入到输入缓冲器53d?53f (InBufl、2、3)。接着,信道I的加密秘钥或解密秘钥从输入缓冲器53d(InBufl)经选择器53g,再通过回避路径52d,并经由选择器52c和选择器54a或54e保存在秘钥存储部54b (CKeyl)或秘钥存储部54f (IKeyl)中。此外,信道I的IV同样经选择器53a输入到输入缓冲器53d(InBufI),从输入缓冲器53d(InBuf I)经选择器53g,再通过回避路径52d,并经由选择器52c、55a保存在初始值存储部55b (IVl)中。
[0065]这些数据可以通过选择器52c、56a,在加密解密运算电路52b不进行向输出缓冲器56输出数据的期间随时进行保存。这是因为选择器52c的数据传送没有竞争。当想要加密解密的明码数据(以后称作‘文本数据’)输入并保存到输入缓冲器53d(InBufI)中时,控制部51在确认出不会与其他信道的处理发生竞争的基础上,加密解密运算部52使用输入缓冲器53d (InBufl)、秘钥存储部54b (CKeyl)或秘钥存储部54f (IKeyl)、和初始值存储部55b(IVl)中保存的数据进行运算。其运算结果保存在输出缓冲器56b (OutBufl)中。竞争的判定使用下面所示的信道优先处理判定部。
[0066]图3是对多个信道的每一个判定其在加密解密运算电路52b中进行加密或解密的优先顺序的信道优先处理判定部51a的方框图。信道优先处理判定部51a设在控制部51内。再有,图4是在信道优先处理判定部51a中各信道可取的各个状态(00)、(01)、(Ix)的状态迁移图的例子。
[0067]优先处理判定部51a在控制部51a内部接收来自信道1、2、3的各信道处理请求信号。信道优先处理判定部51a包含信道1、2、3优先顺序判定电路SJl?SJ3和信道1、2、3次状态运算电路SOl?S03,信道1、2、3优先顺序判定电路SJl?SJ3根据保存当前各信道状态的信道1、2、3状态寄存器SRl?SR3、信道1、2、3处理请求信号和信道1、2、3的状态寄存器的值判定各信道的数据处理的优先顺序,并根据判定结果分别输出信道1、2、3处理许可信号,信道1、2、3下次状态运算电路SOl?S03根据信道1、2、3处理许可信号确定下次的状态。
[0068]信道1、2、3处理请求信号在控制部51接收到表示输入缓冲器53中已存储了可进行运算的大小的数据这一信息之后,向信道优先处理判定部51a输出。优先顺序与状态寄存器SRl?SR3内的各值对应确定。在图4的例子中,(00)表示最优先状态,(01)表示次优先状态,(Ix)表示低优先级的状态。各信道必须取(00)、(01)、(Ix)中的某一个状态。当然,当信道数增加时,可以通过增加状态进行对应。
[0069]最优先状态(00)表示即使和其他信道竞争处理请求时也必须处理的情况。次优先状态(01)表示最优先状态的信道没有数据处理请求时进行处理的情况。低优先级状态(Ix)表示最优先和次优先状态的信道都没有数据处理请求时进行处理的情况。电源接通后的初始值可以是使信道I的状态置为(00),信道2的状态置为(01),信道3的状态置为(Ix)。
[0070]在图4中,若开始处理处于最优先状态(00)的信道,则迁移到低优先级状态(Ix)(箭头a),随之,处于次优先状态(01)的信道迁移到最优先状态(00)(箭头e),处于低优先级状态(Ix)的信道迁移到次优先状态(01)(箭头d)。当处于最优先状态(00)的信道没有处理请求而处于次优先状态(01)的信道有处理请求时,处理处于次优先状态(01)的信道。接着,已处理的信道迁移到低优先级状态(Ix)(箭头b),而处于低优先级状态(Ix)的信道则迁移到次优先状态(01)(箭头d)。当处于最优先状态(00)的信道和处于次优先状态(01)的信道都没有处理请求而处于低优先级状态(Ix)的信道有处理请求时,处理处于低优先级状态(Ix)的信道。这时,已处理的信道仍然维持低优先级状态(lx)。
[0071]图5是表示当信道I接受了数据处理请求,继而分别是信道1、信道3,信道I和2同时接受了数据处理请求时的、各信道的状态寄存器SRl?SR3的迁移的图。要说明图5中的状态迁移,则首先,因处于最优先状态(00)的信道I有处理请求,故处理信道I。处理后的信道I迁移到低优先级状态(Ix)(箭头a)。与之相伴,处于次优先状态(01)的信道2迁移到最优先状态(00)(箭头e),处于低优先级状态(Ix)的信道3迁移到次优先状态(01)(箭头d) ο
[0072]其次,因信道I有处理请求,故处理处于低优先级状态(Ix)的信道I。这时,已处理的信道I仍然维持低优先级状态(Ix)(箭头c)。其余的信道2和3都维持相同的状态。其次,因处于次优先状态(01)的信道3有处理请求,故处理处于次优先状态(01)的信道3。接着,处理后的信道3迁移到低优先级状态(Ix)(箭头b)。而处于低优先级状态(Ix)的信道I迁移到次优先状态(01)(箭头d)。其次,因处于次优先状态(01)的信道I和处于最优先状态(00)的信道2都有处理请求,故处理处于最优先状态(00)的信道2,信道2迁移到低优先级状态(Ix)(箭头a)。与之相伴,处于次优先状态(01)的信道I迁移到最优先状态
(00)(箭头e),处于低优先级状态(Ix)的信道3迁移到次优先状态(01)(箭头d)。
[0073]这样,优先处理判定部51a向各信道分配优先顺序已定的各规定的状态,根据对各信道的加密解密处理请求,使多个信道的每一个发生状态迁移,由此,判定优先顺序。
[0074]再有,控制部51根据由优先处理判定部51a判定的信号处理许可信号控制图2的加密解密运算装置5中的各选择器53g、54a、54e、541、55a、55e、52c、56a,由此,可以恰当地及时处理信道的数据,而不依赖于数据的输入状况。当处理多个数据流时,在本发明的加密解密运算装置5中,因没有伴随数据流切换的开销,故可以算出各信道的最大处理能力=运算电路的最大处理能力/(信道数)。
[0075]若按照本实施方式的加密解密电路,加密解密运算部52包含加密解密运算电路52b和回避路径52d及选择器52c,选择器52c的输出与输出缓冲器56、秘钥存储部54和初始值存储部55连接,秘钥存储部54和初始值存储部55向加密解密运算部52给出所存储的数据。因此,加密解密运算电路52b可以对经输入缓冲器53输入的数据进行加密或解密,再向输出缓冲器56、秘钥存储部54和初始值存储部55输出,也可以避开加密解密运算电路52b而直接向输出缓冲器56、秘钥存储部54和初始值存储部55输出。在像现有技术那样采用从输入缓冲器53向秘钥存储部54和初始值存储部55设置了引线的结构时,若加密解密运算电路52b采用CBC或CFB等块加密解密方式,则必须还要有从加密解密运算电路52b到秘钥存储部54和初始值存储部55的引线,到秘钥存储部54和初始值存储部55等的数据存储部的连接线必须是双重连接线。另一方面,若按照本发明,只设置I条从选择器52c到秘钥存储部54和初始值存储部55的引线即可,可以控制用于向秘钥存储部54和初始值存储部55发送秘钥数据内容的引线数量的增加,可以实现不会导致电路设计变得复杂的加密解密电路。
[0076]进而,若按照本实施方式的加密解密电路,进而具有优先处理判定部51a,对各信道判定其在加密解密电路52b中进行加密解密的优先顺序。因此,在加密解密电路52b中可以恰当地对多个信道中的处理优先级高的数据进行加密解密。
[0077]<实施方式2>
[0078]本实施方式是实施方式I的加密解密电路的变形例,在实施方式I的秘钥存储部54中,对输入数据的I个信道设置多个存储部(寄存器),将用于进行输入数据的加密或解密的第I秘钥存储在多个存储部的I个中,使用第I秘钥,从输入数据中解密第2秘钥,并将第2秘钥存储在多个存储部的另一个中。
[0079]本实施方式也采用了图1?图5所示的各电路结构。本实施方式示出秘钥存储部54内的各秘钥存储部54b?54d的详细结构。
[0080]作为秘钥存储部54b (CKeyl)的具体结构例子,图6和图7示出秘钥存储部54bl、54b2。图6示出可以对由加密解密运算部52加密或解密的输入数据的I个信道进行存储的秘钥为I个的情况,图7示出可存储的秘钥是2个的情况。再有,在图6和图7中,虽然只表述了秘钥存储部54bl、54b2 (CKeyl),但秘钥存储部54c (CKey2)、秘钥存储部54d(CKey3)也是同样的结构。下面,为了简化说明,作为秘钥存储部54b?54d的代表,只说明秘钥存储部 54bl、54b2 (CKeyl)的结构。
[0081]在图6和图7中,虚线包围的部分表示秘钥存储部54bl、54b2(CKeyl)。秘钥存储部5 4b 1、5 4b 2 (CKe y I)包含由对应于秘钥长度的位构成的、作为存储部的寄存器RlO(CKeylJ))和数据选择电路S10。选择电路SlO在来自控制部51的写入请求信号(在图6和图7中记作“CKeyl_0写入请求信号”)激活时,对寄存器RlO的输入端,选择秘钥数据(在图6和图7中记作“数据输入”)进行输出。在来自控制部51的写入请求信号未被激活时,选择电路SlO使寄存器RlO的输出向输入端反馈(保持当前的值)。
[0082]在图7中,除了寄存器RlO和选择电路SlO之夕卜,又增加了 I个寄存器Rll (CKey 1_1)和选择电路SI I。寄存器RlO和选择电路SlO的信号输入和图6的情况一样。此外,还设置了 AND门A20、A10、A11、0R门010、反相器120。
[0083]向AND门A20输入来自控制部51的写入请求信号(记作“CKeyl_l写入请求信号”)、以及表示已选择存储在寄存器RlO (CKeylJ))的秘钥作为向加密解密运算部52的输出的、使来自控制部51的CKeylJ)选择信号(记作“CKeyl_0”)通过反相器120的信号。此外,向AND门AlO输入CKeylJ)选择信号和寄存器RlO (CKeylJ))的输出,向AND门All输入表示已选择存储在寄存器Rll (CKeyl_l)的秘钥作为对加密解密运算部52的输出的、来自控制部51的CKeyl_l选择信号(记作“CKeyl_l”)和寄存器Rll (CKey 1_1)的输出。AND门AlO和All的各输出被输入到OR门010,OR门010的输出变成秘钥存储部54b2 (CKeyl)的输出。
[0084]AND门A20的输出施加给选择电路Sll,选择电路Sll在来自控制部51的CKeyl_l写入请求信号激活且存储在寄存器RlO(CKeylJ))中的秘钥未向加密解密运算部52输出(CKeylJ)没有被选中)时,选择和加给选择电路SlO的秘钥数据相同的秘钥数据(数据输K),向寄存器Rl I的输入端输出。在来自控制部51的CKeyl_l写入请求信号未被激活或存储在寄存器RlO (CKeylJ))中的秘钥已输出到加密解密运算部52 (CKeylJ)已被选中)时,选择电路Sll使寄存器Rll的输出向输入端反馈(保持当前的值)。
[0085]通过这样的结构,在CKeylJ)写入请求信号激活时,寄存器RlO(CKeylJ))的内容被改写成经选择电路SlO的秘钥数据(数据输入)。此外,在有CKey 1_1写入请求信号且来自寄存器RlO (CKeylJ))的数据加密解密运算结果不是数据输入时,经选择电路Sll的秘钥数据(数据输入)可以向寄存器Rll (CKey 1_1)存储。
[0086]这意味着只能按照特定的顺序生成秘钥。这样构成是为了提高秘钥的安全性。在该例子中,当选择利用加密解密运算部52对寄存器Rll (CKeyl_l)内的秘钥数据进行加密解密后再返回秘钥存储部542b时,其运算结果可以保存在寄存器RlO(CKeylJ))和寄存器Rll (CKey 1_1)中,而当选择利用加密解密运算部52对寄存器RlO(CKeylJ))内的秘钥数据进行加密解密后再返回秘钥存储部542b时,其运算结果只能保存在寄存器RlO (CKeyl_0)中。
[0087]对于需要加密解密的数据,也有只使用I个秘钥的应用(applicat1n)(这时可以是图6的结构),但是,从安全方面考虑,很少使用同一秘钥进行所有数据的传送,大多是加密解密运算部52使用某个原始的开始秘钥生成临时秘钥,并使用该临时秘钥进行数据的加密解密。
[0088]临时秘钥的生成有时也可以进行多次。在使用保存在非易失性存储器2中的开始秘钥和为数据流准备的临时秘钥对I个数据流进行加密运算的情况下,通过使用图7所示结构的秘钥寄存器,将非易失性存储器2内的开始秘钥保存在寄存器Rll (CKey 1_1)中,使用该开始秘钥解密由数据流给出的临时秘钥,并将该临时秘钥保存在寄存器RlO (CKeylJ))中。在图6的结构中,当对每一个某数据长度都进行需要更新临时秘钥的某数据的处理时,每当生成临时秘钥时都必须对寄存器RlO (CKeylJ))重新设定开始秘钥。像图7所示的结构那样,通过具有像一个秘钥能对另一个秘钥进行解密那样的电路结构,可以消除数据切换时发生的因临时秘钥的切换而引起的处理能力下降的现象。
[0089]即,在本实施方式中,秘钥存储部54相对于利用加密解密运算部52加密后的输入数据的I个信道包含多个寄存器R10、R11。而且,寄存器Rll存储用于加密的第I秘钥(开始秘钥),加密解密运算部52使用存储在I个寄存器Rl I中的第I秘钥(开始秘钥),从输入数据中解密用于进行加密或解密的第2秘钥(临时秘钥)。接着,将该第2秘钥(临时秘钥)存储在寄存器RlO中。
[0090]当像现有技术那样,秘钥存储部相对于加密或解密的输入数据的信道只包含I个寄存器时,必须使用I个寄存器中存储的第I秘钥(开始秘钥)去解密第2秘钥,并将第2秘钥重写到该寄存器中。然后,当使用第I秘钥(开始秘钥)解密第2秘钥之外的秘钥时,必须再次将第I秘钥(开始秘钥)重写到该寄存器中。另一方面,若按照本发明,秘钥存储部54按各输入数据的信道包含多个寄存器R10、R11,可以使其中的一个持续保存第I秘钥(开始秘钥)而不用重写。因此,可以提高加密解密运算的能力。
[0091]此外,若按照本实施方式的加密解密电路,当加密解密运算部52使用存储在寄存器RlO中的第2秘钥(临时秘钥),从输入数据中解密用于进行加密或解密的第3秘钥(又一个临时秘钥)时,将第3秘钥(又一个临时秘钥)存储在寄存器Rll之外的寄存器(即寄存器R10)中。因此,存储在寄存器Rll中的第I秘钥(开始秘钥)无需利用使用第2秘钥(临时秘钥)解密后的第3秘钥(又一个临时秘钥)进行重写,在寄存器R10、R11之间、仅仅在特定的方向上保存解密后的第3秘钥(又一个临时秘钥)。由此,包含非法秘钥在内重写存储在寄存器Rll上的第I秘钥(开始秘钥)很困难,并且可以防止秘钥的非法使用,实现能够保障需要加密数据的安全性的加密解密电路。
[0092]再有,上面示出了秘钥存储部54内的加密秘钥的各秘钥存储部54b?54d的结构,但对于秘钥存储部54内的解密秘钥的各秘钥存储部54f?54h,也可以采用同样的结构。
[0093]<实施方式3>
[0094]本实施方式是实施方式2的加密解密电路的变形例,像实施方式2那样,对输入数据的I个信道设置多个存储部(寄存器),而且,使用存储在某个信道的存储部中的第I秘钥,从输入数据中解密用于进行加密或解密的第2秘钥,并将该第2秘钥存储在不同信道的存储部之一。
[0095]本实施方式中也采用了图1?图5所示的各电路结构。在本实施方式中,示出秘钥存储部54内的各秘钥存储部54b?54d的详细结构。
[0096]当信道1、2所使用的数据流是公共的、且进行加密解密运算的数据位置不同时,例如,当一边记录图像数据一边在记录结束后再生数据时,信道1、2的运算所使用的秘钥的一部分变成信道1、2的公共秘钥。例如,考虑开始秘钥作为整个数据流是公共秘钥,根据开始秘钥生成由数据流内的特定的数据长度单位使用的秘钥,并从通过以更短的单位特定的数据长度单位进行使用的秘钥来解密临时秘钥后再进行运算的情形。在上述图6所示结构的情况下,因必须进行对寄存器RlO(CKeylJ))设定对整个数据公共的开始秘钥,根据寄存器RlO (CKeylJ))的公共开始秘钥来解密数据长度单位的秘钥,再重写并保存到寄存器RlO(CKeylJ))中,然后,使用寄存器RlO(CKeylJ))的秘钥解密以更短的数据单位使用的临时秘钥,并保存在寄存器RlO (CKeylJ))中的作业,故每当生成临时秘钥时都必须进行该操作,可以预想其数据传送的能力将大大下降。
[0097]图8是表示本实施方式的秘钥存储部54b(CKeyl)、54C(CKey2)、54d(CKey3)的具体结构例的图。在图8中,上述各部分作为秘钥存储部54b3(CKeyl)、54Cl(CKey2)、54dl (CKey3)示出。这里,变成能在秘钥存储部54b3 (CKeyl)、54cl (CKey2)中选择已在秘钥存储部54dl (CKey3)的寄存器R31 (CKey3_l)中设定的秘钥的结构。再有,因信道I和信道2的功能没有差别,故省略信道2的结构和信号的说明。
[0098]信道I的秘钥存储部54b3 (CKeyl)的结构除了省去了 AND门A20和反相器120,直接对选择电路Sll给出了 CKeylJ)写入请求信号这一点以及增加AND门A12,取代OR门010而采用接收AND门AlO?A12的各输出的OR门011这一点之外,和图7的秘钥存储部54b2 (CKeyl)的结构相同。至于输入到秘钥存储部54b3 (CKeyl)的信号的意义也和图7的秘钥存储部54b2 (CKeyl)的情况相同,“CKeyl_0选择”是指在信道I的加密运算时存储在寄存器RlO (CKeylJ))中的秘钥在使用于加密解密运算部52时激活的信号,“数据输入”是指从选择器52c输出的数据的输入。此外,“CKeyl_0写入请求”是指在信道I中对寄存器RlO (CKey 1_0)进行秘钥写入时激活的信号,“CKeyl_l写入请求”是指在信道I中对寄存器Rll(CKeyl_l)进行秘钥写入时激活的信号。而且,“CKeyl_l选择”是指在信道I的加密运算时存储在寄存器Rll (CKey 1_1)中的秘钥使用于加密解密运算部52时激活的信号。
[0099]此外,秘钥存储部54dl (CKey3)包含由和秘钥长度对应的位构成的、作为存储部的寄存器R30(CKey3_0)和数据选择电路S30。选择电路S30在来自控制部51的CKey3_0写入请求信号激活时,向寄存器R30的输入端选择秘钥数据(“数据输入”)并输出。在来自控制部51的CKey3_0写入请求信号未被激活时,选择电路S30使寄存器R30的输出向输入端反馈(保持当前的值)。
[0100]秘钥存储部54dl (CKey3)除了寄存器R30和选择电路S30之外,还具有I个寄存器R31(CKey3_l)和选择电路S31。此外,还设置了 AND门A30、A31、0R门031。
[0101]向AND门A30中输入寄存器R30(CKey3_0)的输出、和表示已选择存储在寄存器R30 (CKey3_0)的秘钥作为对加密解密运算部52的输出的、来自控制部51的CKey3_0选择信号(记作“CKey3_0选择”)。此外,向AND门A31输入表示已选择存储在寄存器R31 (CKey3_l)中的秘钥作为对加密解密运算部52的输出的、来自控制部51的CKey3_l选择信号和寄存器R31(CKey3_l)的输出。AND门A30和A31的各输出被输入到OR门031,OR门031的输出变成秘钥存储部54dl(CKey3)的输出。
[0102]再有,信道3的寄存器R31(CKey3_l)的输出被输入到信道I的AND门A12的一端。向AND门A12的另一端输入“用CKeyl选择CKey3_l”信号。该“用CKeyl选择CKey3_l”信号是指存储在寄存器R31 (CKey3_l)中的秘钥在被加密解密运算部52用于进行信道I的加密运算时激活的信号。再有,“CKey3_0写入请求”、“CKey3_l写入请求”、“数据输入”、““CKey3_l选择””的各信号和上述“CKeyl_0写入请求”、“CKeyl_l写入请求”、“数据输入”、““CKeyl_l选择””的各信号是同样的信号,只在不是信道I的寄存器R1、Rll而是信道3的寄存器R30、R31这一点上有所不同。
[0103]在本实施方式中,对信道3的寄存器R31(CKey3_l)设定对整个数据公共的开始秘钥,从寄存器R31(CKey3_l)的公共秘钥解密数据长度单位的秘钥,再保存在信道I的寄存器Rll(CKeyl_l)(若是信道2则是寄存器R21(CKey2_l)中,然后,使用寄存器Rll (CKeyl_l)(若是信道2则是寄存器R21 (CKey2_l))的秘钥解密以更短的数据单位进行使用的临时秘钥,并保存在寄存器RlO(CKeylJ))(若是信道2则是寄存器R20 (CKey2_0))中。
[0104]S卩,若按照本实施方式的加密解密电路,秘钥存储部54包含用于进行加密或解密的、存储信道I和2公共的第I秘钥的寄存器R30、R31和分别与利用加密解密运算部52加密或解密后的输入数据的信道I和2对应的寄存器R10、R11、R20、R21。加密解密运算部52使用寄存器R31中存储的第I秘钥,从输入数据中解密用于进行加密或解密的第2秘钥,并将第2秘钥存储在寄存器R10、R11、R20、R21中的一个。
[0105]当像现有技术那样,秘钥存储部对加密或解密的输入数据的一个信道只包含I个寄存器时,必须使用I个寄存器中存储的第I秘钥(公共秘钥)去解密第2秘钥(数据长度单位的秘钥),并将第2秘钥(数据长度单位的秘钥)重写到该寄存器中。然后,当使用第I秘钥(公共秘钥)解密第2秘钥(数据长度单位的秘钥)之外的秘钥(临时秘钥)时,必须再次将第I秘钥(公共秘钥)重写到该存储部中。另一方面,若按照本发明,秘钥存储部54包含和分别对应于信道1、2的寄存器R10、R11、R20、R21不同的信道3的寄存器R30、R31,并可以持续保存第I秘钥(公共秘钥)而不用将其重写到寄存器R10、R11、R20、R21中。因此,可以提高加密解密运算的能力。
[0106]此外,若按照本实施方式的加密解密电路,当加密解密运算部52使用存储在寄存器R11、R21中的第2秘钥(数据长度单位秘钥),从输入数据中解密用于进行加密或解密的第3秘钥(临时秘钥)时,将第3秘钥(临时秘钥)存储在寄存器R30、R31之外的寄存器R10、R20中。因此,存储在寄存器R30、R31中的第I秘钥(公共秘钥)无需通过使用第2秘钥(数据长度单位秘钥)解密后的第3秘钥(临时秘钥)进行重写,而在寄存器R30、R31和寄存器RlO、R11、R20、R21之间、仅在特定的方向上保存解密后的第3秘钥(临时秘钥)。因此,重写包含非法秘钥的、存储在寄存器R30、R31上的第I秘钥(公共秘钥)很困难,可以防止秘钥的非法使用,实现能够保障需要加密的数据的安全性的加密解密电路。
[0107]再有,上面示出了秘钥存储部54内的加密秘钥的各秘钥存储部54b?54d的结构,但对于秘钥存储部54内的解密秘钥的各秘钥存储部54f?54h,也可以采用同样的结构。
[0108]〈实施方式4>
[0109]本实施方式是实施方式I的加密解密电路的变形例,在实施方式I的控制部51内设置秘钥有效判定电路,根据秘钥有效判定电路输出的秘钥有效信号是否激活,判定从输入数据解密的第2秘钥是使用第I秘钥生成的,还是使用除此之外的非法秘钥生成的。
[0110]本实施方式也采用了图1?图5所示的各电路结构。在本实施方式中,示出图2所示的控制部51内的秘钥有效判定电路51b的详细结构。
[0111]为了保障秘钥的安全性(合法性),控制部51需要用于判定解密时是不是根据规定的秘钥计算的秘钥的判定电路。图9是这样的秘钥有效判定电路51b。秘钥有效判定电路51b具有反相器150、AND门A50、OR门050和寄存器R50。
[0112]向反相器150的输入端施加无效秘钥输入信号。无效秘钥输入信号例如在所使用的秘钥不是指定的秘钥而是从CPU3提供的已知的秘钥时,或在秘钥的生成顺序之外请求生成秘钥时,由控制部51激活。反相器150的输出施加给AND门A50的一个输入端。向AND门A50的另一输入端施加寄存器R50的输出。
[0113]向OR门050的一个输入端施加有效秘钥输入信号。有效秘钥输入信号在按照规定的步骤更新了秘钥时,由控制部51激活。接着,OR门050的输出被输入到寄存器R50。寄存器R50的输出变成秘钥有效信号。
[0114]S卩,在本实施方式中,加密解密运算部52使用给定的第I秘钥,从解密的输入数据中解密用于解密的第2秘钥,并将该第2秘钥存储在秘钥存储部54中,在这样的结构中,秘钥有效判定电路51b在加密解密运算部52中使用第I秘钥解密了第2秘钥时,从寄存器R50输出的表示第2秘钥有效的秘钥有效信号被激活,另一方面,当使用第I秘钥之外的秘钥来解密第2秘钥时,采用不激活秘钥有效信号的结构。
[0115]因此,若按照本实施方式的加密解密电路,若对加密解密运算部52施加秘钥有效信号,则加密解密运算部52可以根据秘钥有效信号是否激活来判定从输入数据中解密的第2秘钥是使用合法的第I秘钥生成的,还是使用除此之外的非法秘钥生成的。因此,可以防止秘钥的非法使用,实现能够保障需要加密的数据的安全性的加密解密电路。
[0116]此外,在加密解密运算部52中,当所施加的秘钥有效信号未激活时,停止输入数据的解密。或者,可以废除解密的计算结果。这样,可以防止秘钥的非法使用,实现能够保障需要加密的数据的安全性的加密解密电路。
[0117]〈实施方式5>
[0118]本实施方式是实施方式4的加密解密电路的变形例,实施方式4的秘钥有效判定电路51b作为解密秘钥有效判定电路,并使其具有如下功能:当加密解密运算部52使用加密秘钥生成解密秘钥时,使表示解密秘钥有效的解密秘钥有效信号激活,当使用加密秘钥之外的秘钥生成解密秘钥时,不激活解密秘钥有效信号。
[0119]秘钥存储部54的寄存器RlO (CKeylJ))等大多由不需要复位功能、寄存器的数量多、从减少面积的观点来看也不需要复位的触发器或锁存器结构。但是,当根据所施加的加密秘钥CKey生成并保存解密数据时所使用的解密秘钥IKey时,在利用正规的步骤生成解密秘钥之后输入非法的加密秘钥,但不生成解密秘钥,由此,可以产生虽然加密秘钥是非法秘钥但解密秘钥却是正规秘钥的状态。这意味着可以使用和加密秘钥完全无关的解密秘钥进行运算。
[0120]当加密秘钥不是有效秘钥时,停止加密解密运算部52的运算功能,这样的结构虽然没有大的问题,但是,当在除规定的步骤之外,从外部输入了与规定的步骤无关的已知的秘钥时允许处理已知的文本数据那样的条件下,构成加密解密电路时,会降低数据的安全性。在设想这种情形后,图10示出本实施方式的用于对加密秘钥判定解密秘钥是否有效的解密秘钥有效判定电路。
[0121]如图10所示,该解密秘钥有效判定电路51c具有和图9的秘钥有效判定电路51b大致相同的结构,包括反相器151、AND门A51、OR门051和寄存器R51。再有,解密秘钥有效判定电路51c还具有图9的秘钥有效判定电路51b所不具有的AND门A52。
[0122]向反相器151的输入端施加无效秘钥输入信号。无效秘钥输入信号是和图9的秘钥有效判定电路51b所示的信号相同的信号。反相器151的输出施加给AND门A51的一个输入端。向AND门A51的另一输入端施加寄存器R51的输出。
[0123]向AND门A52的一个输入端施加有效秘钥输入信号。向AND门A52的另一个输入端施加表示利用有效的加密秘钥生成了解密秘钥的信号(记作“利用有效秘钥生成解密秘钥”)。接着,向OR门051的一个输入端施加AND门A52的输出。有效秘钥输入信号也是和图9的秘钥有效判定电路51b所示的信号相同的信号。接着,OR门051的输出被输入到寄存器R51。寄存器R51的输出变成秘钥有效信号。
[0124]S卩,在本实施方式中,加密解密运算部52使用给定的加密秘钥,生成用于利用该加密秘钥加密的输入数据的解密的解密秘钥,并将该解密秘钥存储在秘钥存储部54中,在这样的结构中,秘钥有效判定电路51c在加密解密运算部52使用对应的加密秘钥解密了解密秘钥时,从寄存器R51输出的、表示解密秘钥有效的解密秘钥有效信号被激活,另一方面,当使用对应的加密秘钥之外的秘钥解密了解密秘钥时,采用不激活解密秘钥有效信号的结构。
[0125]此外,在该电路中,只有当输入了有效秘钥输入信号且已利用有效秘钥进行了解密秘钥的生成时,才设定解密秘钥有效信号。再有,当发生复位时,解密秘钥有效信号被初始化(无效)。
[0126]若按照本实施方式的加密解密电路,解密秘钥有效判定电路51c在加密解密运算部52使用对应的加密秘钥解密了解密秘钥时,激活表示解密秘钥有效的解密秘钥有效信号,在使用对应的加密秘钥之外的秘钥解密了解密秘钥时,不激活解密秘钥有效信号。因此,若对加密解密运算部52施加解密秘钥有效信号,则加密解密运算部52可以根据解密秘钥有效信号是否激活来判定根据加密秘钥生成的解密秘钥是使用合法的加密秘钥生成的,还是使用除此之外的非法秘钥生成的。因此,可实现防止秘钥的非法使用,并能够保障需要加密的数据的安全性的加密解密电路。
[0127]此外,向加密解密运算部20施加解密秘钥有效信号,在加密解密运算部52中,当施加的秘钥有效信号未激活时,停止输入数据的解密。或者,可以废除解密的计算结果。这样,可以实现防止秘钥的非法使用,并能够保障需要加密的数据的安全性的加密解密电路。
[0128]〈实施方式6>
[0129]本实施方式是实施方式5的加密解密电路的变形例,将实施方式5的解密秘钥有效判定电路51c作为加密解密秘钥代一致判定电路,并使其进而具有检测加密秘钥的代和解密秘钥的代是否一致的功能。
[0130]即使是利用有效步骤进行的秘钥生成,也有可能将运算开始时原始的秘钥(第I代)、从原始秘钥解密的数据公共的秘钥(第2代)、从数据公共的秘钥生成的临时秘钥(第3代)和持续进行秘钥生成及与之相伴的解密秘钥的生成时,不同代的组合的秘钥保存在秘钥组(set)(例如CKey 1_1的寄存器和IKeyl_l的寄存器等)中。为了禁止这样的状态,图11示出本实施方式的判定加密秘钥和解密秘钥组是不是同一代的加密解密秘钥代一致判定电路。
[0131]如图11所示,该加密解密秘钥代一致判定电路51d具有反相器152、AND门A53、选择电路S50和寄存器R52。
[0132]向反相器152的输入端施加无效秘钥输入信号。无效秘钥输入信号是和图9的秘钥有效判定电路51b所示的信号相同的信号。反相器152的输出施加给AND门A53的一个输入端。向AND门A53的另一输入端施加寄存器R52的输出。
[0133]AND门A53的输出和表示利用有效的加密秘钥生成了解密秘钥的信号(记作“利用有效秘钥生成解密秘钥”)施加给选择电路S50。此外,还对选择电路S50施加有效秘钥输入信号(有效秘钥输入信号是和图9的秘钥有效判定电路51b所示的信号相同的信号),与有效秘钥输入信号的值相对应,确定从选择电路S50输出AND门A53的输出,还是表示利用有效的加密秘钥生成了解密秘钥的信号。具体地说,当有效秘钥输入信号激活时,选择表示利用有效的加密秘钥生成了解密秘钥的信号,当有效秘钥输入信号未激活时,选择AND门A53的输出。接着,选择电路S50的输出被输入到寄存器R52中。寄存器R52的输出变成加密解密秘钥代一致信号。
[0134]当选择了有效秘钥输入信号时,且当利用有效秘钥进行解密秘钥生成时,设定加密解密秘钥代一致信号。在无效秘钥输入信号设定之前,在没有选择解密秘钥生成的情况下,即使例如输入了已知的秘钥或进行规定的秘钥更新并设定了有效秘钥输入信号时,力口密解密秘钥代一致信号也被清除。
[0135]S卩,在本实施方式中,加密解密运算部52使用存储在秘钥存储部54中的第I代加密秘钥,生成用于输入数据的解密的第2代加密秘钥,并更新第I代加密秘钥,将第2代加密秘钥存储在秘钥存储部54中,依次使用第η代加密秘钥(η:自然数)生成用于输入数据的加密的第η+1代加密秘钥,并更新第η代加密秘钥,将第η+1代加密秘钥存储在秘钥存储部54中,使用第I代加密秘钥生成用于通过第I代加密秘钥加密的输入数据的解密的第I代解密秘钥,并将第I代解密秘钥存储在上述秘钥存储部54中,依次分别使用第η+1代之前的加密秘钥,分别生成用于输入数据的解密的第η+1代之前的解密秘钥,并更新第η代解密秘钥,将第η+1代解密秘钥存储在上述秘钥存储部54中,在这样的结构中,加密解密秘钥代一致判定电路51d在加密解密运算部52中使用对应的第η代加密秘钥生成了第η代解密秘钥时,激活表示第η代解密秘钥有效的加密解密秘钥代一致信号,另一方面,在使用对应的第η代加密秘钥之外的秘钥生成了第η代解密秘钥时,采用不激活加密解密秘钥代一致信号的结构。
[0136]因此,若按照本实施方式的加密解密电路,通过对加密解密运算部52施加加密解密秘钥代一致信号,从而加密解密运算部52可以根据加密解密秘钥代一致信号是否激活来判定根据加密秘钥生成的解密秘钥是使用合法的加密秘钥生成的,还是使用除此之外的非法的秘钥生成的。因此,可以实现防止秘钥的非法使用,并能够保障需要加密的数据的安全性的加密解密电路。
[0137]此外,在加密解密运算部52中,当所提供的加密解密秘钥代一致信号未激活时,停止输入数据的解密,或者,可以废除解密的计算结果。由此,可以实现防止秘钥的非法使用,并能够保障需要加密的数据的安全性的加密解密电路。
[0138]〈实施方式7>
[0139]本实施方式是实施方式6的加密解密电路的变形例,涉及如下加密解密电路:当加密解密运算部25使用对应的第η代加密秘钥有效地生成了第η代解密秘钥时,每当生成第η代解密秘钥时,便生成表示生成了第η代之前的解密秘钥的加密解密秘钥第η代许可信号。
[0140]不仅对所处理的加密解密秘钥是不是同一代,还对利用秘钥的更新在现状下已解密到哪一代的秘钥进行管理,从而能够以代为单位对已生成的秘钥进行存取控制。例如,禁止参考第I代的秘钥从信道1、2传送到寄存器R31 (CKey3_l),如此等等。
[0141]图12示出一例用于实现上述功能的加密解密秘钥代许可电路51e的电路例。在本实施方式中,以能管理第3代之前的生成秘钥的电路为例进行说明。
[0142]加密解密秘钥代许可电路51e具有反相器153、代I条件判定电路J51、代I寄存器R53、代2条件判定电路J52、代2寄存器R54、代3条件判定电路J53和代3寄存器R55。再有,代I条件判定电路J51、代2条件判定电路J52和代3条件判定电路J53都是多输入的AND电路。无效秘钥输入信号(无效秘钥输入信号是与图9的秘钥有效判定电路51b所示的信号相同的信号)经反相器153施加给代I条件判定电路J51、代2条件判定电路J52和代3条件判定电路J53的各部分。
[0143]对代I条件判定电路J51施加开始秘钥输入信号。代I条件判定电路J51的输出施加给代I寄存器R53。代I寄存器R53的输出(代I许可信号)施加给代2条件判定电路J52,同时,还反馈给代I条件判定电路J51。对代2条件判定电路J52施加有效秘钥更新信号。代2条件判定电路J52的输出施加给代2寄存器R54。代2寄存器R54的输出(代2许可信号)施加给代3条件判定电路J53,同时,还反馈给代2条件判定电路J52。对代3条件判定电路J53也施加有效秘钥更新信号。代3条件判定电路J53的输出施加给代3寄存器R55。代3寄存器R55的输出(代3许可信号)反馈给代3条件判定电路J53。
[0144]代I许可信号在作为有效秘钥输入了初次运算使用的秘钥(记作开始秘钥)时被激活。代2许可信号在设定了代I许可信号的状态下且当进行有效秘钥的更新时被激活。代3许可信号在代I许可信号和代2许可信号被激活的状态下,且当进行有效秘钥的更新时被激活。当输入了被判断为无效的秘钥时,清除各代的许可信号。
[0145]S卩,在本实施方式中,加密解密运算部52使用第I代加密秘钥(开始秘钥),生成用于输入数据的加密的第2代加密秘钥,并更新第I代加密秘钥,将第2代加密秘钥存储在秘钥存储部54中,依次使用第η代加密秘钥(η:自然数)生成用于输入数据的加密的第η+1代加密秘钥,并更新第η代加密秘钥,并将第η+1代加密秘钥存储在秘钥存储部54中,使用第I代加密秘钥生成用于利用第I代加密秘钥加密的输入数据的解密的第I代解密秘钥,并将第I代解密秘钥存储在秘钥存储部54中,依次分别使用第η+1代之前的加密秘钥分别生成用于输入数据的解密的第η+1代之前的解密秘钥,并更新第η代解密秘钥,将第η+1代解密秘钥存储在秘钥存储部54中,在这样的结构中,加密解密秘钥代许可电路51e在加密解密运算部52使用对应的第η代加密秘钥有效地生成了第η代解密秘钥时,采用如下结构:每当生成第η代解密秘钥时,便生成表示已生成了第η代之前的解密秘钥的加密解密秘钥第η代许可信号。
[0146]因此,加密解密运算部52可以与代的等级对应地进行应许可的运算处理,因此,可以实现防止秘钥的非法使用,并能够保障需要加密的数据的安全性的加密解密电路。
[0147]〈实施方式8>
[0148]本实施方式是实施方式I的加密解密电路的变形例,设有包含多个逻辑电路的组合,并利用该组合生成规定的信号,将该规定的信号作为开始秘钥输出的开始秘钥输出电路,加密解密运算部使用该开始秘钥进行输入数据的加密或解密。
[0149]在供给加密后的数据的系统中,存在由要处理的所有的加密数据公共使用的原始秘钥。该秘钥装在进行解密的装置一侧。当将该加密数据公共使用的原始秘钥保存在非易失性存储器2内时,从非易失性存储器2经总线4对加密解密运算装置5进行秘钥的设定,所以,通过使用调试器对总线4进行观测,可以简单地特定某个秘钥。作为防止出现这一现象的方法,在使用设在加密解密运算装置5内的秘钥(称作开始秘钥)加密原始秘钥的基础上,将其保存在非易失性存储器2中,通过采用不可能将开始秘钥读出到加密解密运算装置5外部的电路结构,可以防止原始秘钥的泄露。图13示出本实施方式的秘钥存储部54周边的结构。
[0150]在图13中,开始秘钥输出电路Kl连接在秘钥存储部54内的信道3的秘钥存储部54d2上。开始秘钥输出电路Kl是用于输出固定的开始秘钥的电路,设在加密解密运算装置5内。开始秘钥输出电路Kl包含AND门或OR门等多级逻辑门电路的组合,利用该组合生成规定的信号,将该规定的信号作为开始秘钥输出。因开始秘钥输出电路Kl由逻辑门电路组合构成,故不可能从外部改变开始秘钥。
[0151]与图8的秘钥存储部54dl进行比较,在秘钥存储部54d2中,数据输入不直接施加给选择电路S31,而是接收数据输入和来自开始秘钥输出电路Kl的开始秘钥信号的另一选择电路S32的输出施加给选择电路S31。再有,作为另一选择电路S32的选择信号,施加开始秘钥选择信号。
[0152]在秘钥存储部54d2中,当开始秘钥选择信号激活时,选择电路S32施加给选择电路S31的不是数据输入,而是开始秘钥的信号。接着,开始秘钥存储在寄存器R31(CKey3_l)中。接着,加密解密运算部52使用开始秘钥对给定的用于对输入数据进行加密或解密的第I秘钥(该秘钥从非易失性存储器2中读出)进行加密,并将加密后的第I秘钥重写并存储在秘钥存储部54的寄存器R31 (CKey3_l)中。
[0153]由于开始秘钥采用最初只能从寄存器R31(CKey3_l)读出的结构,故不可能通过输出缓冲器56d (0utBuf3)将开始秘钥向外部读出。再有,开始秘钥根据从CPU3到控制部51的开始秘钥选择请求,通过设定开始选择信号,由此可以保存在寄存器R31 (CKey3_l)中。
[0154]S卩,若按照本实施方式的加密解密电路,具有:包含多个逻辑门电路的组合,并利用该组合生成规定的信号,将该规定的信号作为开始秘钥输出的开始秘钥输出电路K1,力口密解密运算部52使用开始秘钥加密给定的用于对输入数据进行加密或解密的第I秘钥,并将第I秘钥存储在秘钥存储部54中。因利用多个逻辑门电路的组合生成开始秘钥,故不可能从外部改变开始秘钥。因此,由该开始秘钥加密后的第I秘钥的安全性得到提高,可以实现防止秘钥的非法使用,并能够保障需要加密的数据的安全性的加密解密电路。
[0155]再有,假定数据流是具有该数据流固有的秘钥的数据流,是使用数据公共的原始秘钥加密后的数据流。是具有在数据流内部以数据流固有的秘钥并以某一特定的单位进行了加密的数据秘钥的数据流。此外,是具有在数据内部以数据秘钥并以比数据秘钥的单位小的单位进行了加密的临时秘钥的数据流。
[0156]在图14的流程图中示出秘钥的解密顺序。首先,将装置固有的秘钥作为开始秘钥保存在寄存器R31(CKey3_l)中(步骤STl)。其次,使用寄存器R31 (CKey3_l)内的开始秘钥解密保存在非易失性存储器2中的加密后的数据公共的原始秘钥,并将解密后的秘钥重写并保存在寄存器R31(CKey3_l)中(步骤ST2)。再有,设数据公共的原始秘钥是在非易失性存储器内使用开始秘钥加密后保存的秘钥。
[0157]其次,使用保存在寄存器R31(CKey3_l)中的原始秘钥解密包含在输入数据中的数据固有的秘钥,再将解密后的秘钥重写并保存在寄存器R31(CKey3_l)中(步骤ST3)。其次,使用寄存器R31(CKey3_l)中保存的数据固有的秘钥来解密包含在输入数据中的按特定的数据长度保存的数据秘钥,并将解密后的秘钥保存在寄存器Rll (CKeyl_l)或寄存器R21(CKey2_l)中(步骤 ST4)。
[0158]其次,使用寄存器Rll(CKeyl_l)或寄存器R21(CKey2_l)中保存的数据秘钥解密包含在每一个更小的数据中的加密后的临时秘钥,并将解密后的秘钥保存在寄存器RlO (CKeyl_0)或寄存器 R20 (CKey2_0)中(步骤 ST5)。
[0159]接着,使用寄存器RlO (CKeylJ))或寄存器R20 (CKey2_0)中保存的临时秘钥进行输入数据的加密或解密(步骤ST6)。
[0160]〈实施方式9>
[0161]本实施方式是实施方式8的加密解密电路的变形例,进而设置输出作为规定的信号的合法性评价秘钥的合法性评价秘钥输出电路,使用合法性评价秘钥求出保存在非易失性存储器2中的秘钥的散列值,根据该散列值评价非易失性存储器2内的秘钥是否被篡改。
[0162]即使像实施方式8那样使用了开始秘钥,也不是不可能篡改非易失性存储器2内存在的加密后的数据公共的原始秘钥或进行秘钥解密的程序,不能完全防止非法使用。本实施方式使上述状态下的安全性进一步提高。
[0163]图15示出本实施方式的秘钥存储部54周边的结构。在图15中,除了图13的结构之外,进而使ROM合法性评价秘钥输出电路Ql连接在秘钥存储部54内的信道3的秘钥存储部54d2上。ROM合法性评价秘钥输出电路Ql是输出用于评价作为规定信号的ROM(非易失性存储器2)的合法性的秘钥的、和开始秘钥输出电路Kl 一样由多个逻辑门电路构成的电路。
[0164]ROM合法性评价秘钥输出电路Ql可以向选择电路S32施加合法性评价秘钥的信号以代替来自开始秘钥输出电路Kl的开始秘钥。由此,可以将合法性评价秘钥存储在寄存器R31(CKey3_l)中。
[0165]加密解密运算部52在将加密秘钥存储到非易失性存储器2中时,使用合法性评价秘钥求出该秘钥的散列值,并将该散列值作为MAC(Message Authenticat1n Code:信息证明码)存储在非易失性存储器2中。图16示出此时的非易失性存储器2中所存储的内容。在图16中,加密后的秘钥数据是ROM程序20,散列值是MAC21。再有,对于加密解密运算部52,散列函数可以是单向函数。
[0166]而且,在利用加密解密运算部52进行运算时,必须利用加密解密运算部52内的合法性评价电路ES进行ROM程序20的合法性评价。在该评价中,首先,从寄存器R31(CKey3_l)读出ROM合法性评价秘钥。接着,使用ROM合法性评价秘钥进行外部输入的给定秘钥的解密。该解密后的秘钥重写并保存到寄存器R31(CKey3_l)。使用该解密后的秘钥从信道3中读出全部ROM程序20,并计算MAC。计算结果重写并保存到寄存器R31(CKey3_l)。再有,可以利用实施方式7的代管理去禁止从寄存器R31 (CKey3_l)向输出缓冲器56d (OutBuf3)输出MAC计算结果。在MAC的计算结束的时刻,将计算结果和非易失性存储器2内保存的MAC21输入到合法性评价电路ES中。
[0167]图17是将合法性评价电路ES的具体结构例作为合法性评价电路ESl示出的图。本实施方式中的合法性评价电路ESl具有比较电路CPl和寄存器R60。比较电路CPl将根据读入的ROM程序20计算出来的MAC值和经输入缓冲器53f (InBuf3)读出的、保存在非易失性存储器2中的MAC21的值进行比较。若两者一致,则比较电路CPl的输出被激活,寄存器R60保存比较电路CPl的输出。若两者不一致,则比较电路CPl的输出不被激活。寄存器R60的输出变成ROM合法性评价结果信号。再有,ROM合法性评价结果信号可以重写并保存在寄存器R31(CKey3_l)中。
[0168]S卩,加密解密运算部52内的合法性评价电路ESl在将加密后的秘钥存储到非易失性存储器2中时,使用合法性评价秘钥求出秘钥的散列值,并将该散列值作为MAC21存储在非易失性存储器2中,当使用非易失性存储器2中存储的秘钥进行加密或解密时,使用合法性评价秘钥求出从非易失性存储器2读出的秘钥的散列值,将该散列值和存储在非易失性存储器2中的MAC21的散列值进行比较。
[0169]因此,若非易失性存储器2中存储的秘钥被篡改,则从非易失性存储器2读出的秘钥的散列值和非易失性存储器2中存储的MAC21的散列值不同,所以,加密解密运算部52可以停止使用从非易失性存储器2读出的秘钥进行加密或解密。因此,可以实现防止秘钥的非法使用,并能够保障需要加密的数据的安全性的加密解密电路。
[0170]〈实施方式10>
[0171]本实施方式是实施方式9的加密解密电路的变形例,进而设置输出作为规定信号的调试器验证秘钥的调试器验证秘钥输出电路,防止使用调试器去非法取得数据。
[0172]调试器是在芯片开发时为了有效地调试固件而使用的装置。当使用调试器时,可以简单地变更程序计数器,所以,例如在加密解密电路中,可以对加密步骤的程序执行跳转。因此,如果没有禁止使用调试器的装置,就不能保障数据的安全性。本实施方式就是在上述状况下来提高安全性。
[0173]图18示出本实施方式的秘钥存储部54周边的结构。在图18中,除了图15的结构之外,进而使调试器验证秘钥输出电路BI连接在秘钥存储部54内的信道3的秘钥存储部54d2上。调试器验证秘钥输出电路BI是输出作为规定信号的调试器验证秘钥的、和开始秘钥输出电路Kl同样由多个逻辑门电路构成的电路。
[0174]调试器验证秘钥输出电路BI可以向选择电路S32给出调试器验证秘钥的信号以代替来自开始秘钥输出电路Kl的开始秘钥。由此,可以将调试器验证秘钥存储在寄存器R31(CKey3_l)中。
[0175]加密解密运算部52使用调试器验证秘钥进行规定的验证用数据的加密或解密。此外,加密解密运算部52接收表示正在使用调试器的调试器使用信号,检测出是否使用调试器。当检测出正在使用调试器时,只要没有输入和加密或解密后的验证用数据一致的密码,便停止输入数据的加密或解密。
[0176]图19是将合法性评价电路ES的具体结构例作为合法性评价电路ES2示出的图。本实施方式中的合法性评价电路ES2具有实施方式9所示的比较电路CPl和寄存器R60。比较电路CPl将使用调试器验证秘钥加密或解密后的规定的验证用数据和经由输入缓冲器53f(InBuf3)读入的、用户给出的密码进行比较。若两者一致,则比较电路CPl的输出被激活,寄存器R60保存比较电路CPl的输出。若两者不一致,则比较电路CPl的输出不被激活。寄存器R60的输出变成调试程序使用许可信号。再有,调试器使用许可信号可以重写并保存在寄存器R31 (CKey3_l)。调试器使用许可信号的输出和ROM合法性评价结果信号的输出相当,比较电路CPl和寄存器R60公用,因ROM合法性评价结果信号和调试程序使用许可信号都可以重写并保存在寄存器R31(CKey3_l)中,故可以公用比较电路CPl和寄存器R60。
[0177]本实施方式的合法性评价电路ES2进而具有OR门060、061和寄存器R61。向OR门060的一个输入端施加调试程序使用信号,向另一输入端施加寄存器R61的正输出。OR门060的输出被输入到寄存器R61。寄存器R61的反相输出施加给OR门061的一个输入端,向OR门061的另一个输入端施加寄存器R62的输出(调试程序使用许可信号)。OR门061的输出变成数据输出许可信号。
[0178]因OR门060的另一个输入端被施加寄存器R61的正输出,故一次接收的调试程序使用信号可以由寄存器R61保持。这是因为在使用调试器跳转程序之后,与断开调试器的情况相对应。
[0179]若调试器使用信号激活,则因寄存器R61的反相输出不激活,故只要调试器使用许可信号不激活,数据输出许可信号就不会激活。
[0180]S卩,若按照本实施方式的加密加密电路,加密解密运算部52使用调试器验证秘钥加密或解密规定的验证用数据,当检测出正在使用调试程序时,只要没有输入和加密或解密后的验证用数据相一致的密码,便停止输入数据的加密或解密。因此,可以防止使用调试程序非法取得秘钥和秘钥的非法使用,实现能够保障需要加密的数据的安全性的加密解密电路。
[0181]〈实施方式11>
[0182]本实施方式是实施方式10的加密解密电路的变形例,即使输入了和加密或解密后的验证用数据一致的密码,当由非易失性存储器2读出的秘钥的散列值和非易失性存储器2中存储的MAC21的散列值不同时,也停止输入数据的加密或解密。
[0183]图20是将本实施方式的合法性评价电路ES的具体结构例作为合法性评价电路ES3示出的图。本实施方式中的合法性评价电路ES3除了图19的合法性评价电路ES2的结构(比较电路CP2、寄存器R61、R62、0R门060、061)之外,进而具有进行ROM合法性评价秘钥输出电路Ql的输出和调试程序使用信号的运算,并将运算结果作为ROM合法性评价秘钥输出的运算电路0P、和对图17的从寄存器R60输出的ROM合法性评价结果和OR门061的输出进行与运算的AND门A60。
[0184]运算电路OP在调试程序使用信号处于未激活的状态时,直接输出来自ROM合法性评价秘钥输出电路Ql的ROM合法性评价秘钥,但是当调试程序使用信号处于激活状态时,将来自ROM合法性评价秘钥输出电路Ql的ROM合法性评价秘钥改变后再输出。此外,AND门A60只要调试程序使用许可信号和ROM合法性评价结果都没有激活,就不激活数据输出许可信号。
[0185]S卩,即使输入了和加密或解密后的验证用数据一致的密码,当由非易失性存储器2读出的秘钥的散列值和非易失性存储器2中存储的MAC21的散列值不同时,加密解密运算部52停止输入数据的加密或解密。
[0186]因此,可以防止使用调试程序非法取得秘钥和秘钥的非法使用,实现能够保障需要加密的数据的安全性的加密解密电路。
[0187]〈实施方式12>
[0188]本实施方式是实施方式11的加密解密电路的变形例,即使IC芯片I可以使输入数据不通过加密解密运算部52传送,在由非易失性存储器2读出的秘钥的散列值和非易失性存储器2中存储的MAC21的散列值不同的情况、以及检测出正在使用调试程序且没有输入密码的情况中的至少一种情况下,也停止输入数据的传送。
[0189]图21是表示本实施方式的加密解密电路的图。在图21中,由实施方式11生成的ROM合法性评价结果和调试程序使用许可信号输入到设在加密解密运算装置5之外的AND门A70中,当AND门A70的两个输入端都不处于激活状态时,设在芯片I内的数据传送用总线上的数据不能向芯片外面输出。具体地说,设置AND门A71,AND门A70的输出和数据传送用总线输入到AND门A71。当AND门A70的输出来激活时,AND门A71不能将数据传送用总线上的数据输出到芯片的外面。
[0190]S卩,在本实施方式中,可以不通过加密解密运算部52传送输入数据,在由非易失性存储器2读出的秘钥的散列值和非易失性存储器2中存储的MAC21的散列值不同的情况、以及检测出正在使用调试程序且没有输入密码的情况中的至少一种情况下,停止输入数据的传送。
[0191]因此,可以禁止不通过加密解密运算部52而传送输入数据,实现能够保障需要加密的数据的安全性的加密解密电路。
[0192]再有,在本发明中,虽然没有特别描述加密解密运算部52,但加密解密运算部52并不限于这一种。例如,当处理数据流时使用的加密种类有多种时,图2的加密解密运算部52可以搭载多个加密解密运算部。此外,当I个加密解密运算部52的处理能力不够时,也可以搭载2个同一类型的加密解密运算部。
[0193]〈其他〉
[0194]在上述说明中,对于实施方式9?11所示的合法性评价电路和实施方式1、2所示的加密解密电路,都以实施方式I的公共秘钥加密方式的加密解密电路为例进行了说明。但是,上述实施方式9?12的思想也可以适用于公共秘钥加密方式之外的加密解密电路。
【权利要求】
1.一种加密解密电路,其特征在于:具有存储第I代加密秘钥的秘钥存储部、加密解密运算部、和加密解密秘钥代一致判定电路,所述加密解密运算部使用所述第I代加密秘钥生成用于加密输入数据的第2代加密秘钥,并更新所述第I代加密秘钥并将所述第2代加密秘钥存储在所述秘钥存储部中,依次使用第η代加密秘钥生成用于所述输入数据的加密的第η+1代加密秘钥,更新所述第η代加密秘钥并将所述第η+1代加密秘钥存储在所述秘钥存储部中,其中η是自然数,使用所述第I代加密秘钥生成用于利用所述第I代加密秘钥加密的所述输入数据的解密的第I代解密秘钥,并将所述第I代解密秘钥存储在所述秘钥存储部中,依次分别使用所述第η+1代之前的加密秘钥分别生成用于所述输入数据的解密的第η+1代之前的解密秘钥,更新所述第η代解密秘钥并将所述第η+1代解密秘钥存储在所述秘钥存储部中,所述加密解密秘钥代一致判定电路在所述加密解密运算部使用对应的所述第η代加密秘钥生成了所述第η代解密秘钥时,激活表示所述第η代解密秘钥有效的加密解密秘钥代一致信号,在使用对应的所述第η代加密秘钥之外的秘钥生成了所述第η代解密秘钥时,不激活所述加密解密秘钥代一致信号。
2.权利要求1记载的加密解密电路,其特征在于:所述加密解密秘钥代一致信号施加给所述加密解密运算部,当所述加密解密秘钥代一致信号不激活时,所述加密解密运算部停止所述解密,或者废除所述解密的运算结果。
3.一种加密解密电路,其特征在于:具有存储了第I代加密秘钥的秘钥存储部、加密解密运算部、和加密解密秘钥代许可电路,所述加密解密运算部使用所述第I代加密秘钥生成用于输入数据的加密的第2代加密秘钥,更新所述第I代加密秘钥并将所述第2代加密秘钥存储在所述秘钥存储部中,依次使用第η代加密秘钥生成用于所述输入数据的加密的第η+1代加密秘钥,更新所述第η代加密秘钥并将所述第η+1代加密秘钥存储在所述秘钥存储部中,其中η是自然数,使用所述第I代加密秘钥生成用于利用所述第I代加密秘钥加密的所述输入数据的解密的第I代解密秘钥,并将所述第I代解密秘钥存储在所述秘钥存储部中,依次分别使用所述第η+1代之前的加密秘钥分别生成用于所述输入数据的解密的第η+1代之前的解密秘钥,更新所述第η代解密秘钥并将所述第η+1代解密秘钥存储在所述秘钥存储部中,所述加密解密秘钥代许可电路在所述加密解密运算部使用对应的所述第η代加密秘钥有效地生成了所述第η代解密秘钥时,每当生成所述第η代解密秘钥时,便生成表示已生成了所述第η代之前的解密秘钥的加密解密秘钥第η代许可信号。
4.一种加密解密电路,其特征在于:具有加密解密运算部;秘钥存储部;和包含多个逻辑门电路的组合并利用所述组合生成规定的信号,再将所述规定的信号作为开始秘钥输出的开始秘钥输出电路,所述加密解密运算部使用所述开始秘钥对给定的用于进行输入数据的加密或解密的第I秘钥进行加密,并将所述第I秘钥存储在所述秘钥存储部中。
5.权利要求4记载的加密解密电路,其特征在于:进而具有输出作为规定信号的合法性评价秘钥的合法性评价秘钥输出电路和其它的秘钥存储部,所述加密解密运算部使用所述合法性评价秘钥对给定的第2秘钥进行解密,当将加密后的所述第I秘钥存储在所述其它的秘钥存储部中时,使用解密后的所述第2秘钥求出所述第I秘钥的第I散列值,并将所述第I散列值存储在所述其它的秘钥存储部中,当进行使用了所述第I秘钥的所述加密或解密时,使用解密后的所述第2秘钥求出从所述其它的秘钥存储部读出的所述第I秘钥的第2散列值,并将所述第I散列值和第2散列值进行比较。
6.权利要求4记载的加密解密电路,其特征在于:进而具有输出作为规定的信号的调试器验证秘钥的调试器验证秘钥输出电路,所述加密解密运算部使用所述调试器验证秘钥对给定的验证用数据进行加密或解密,当检测出正在使用调试程序时,只要没有输入和所述加密或解密后的所述验证用数据一致的密码,便停止所述输入数据的加密或解密。
7.权利要求6记载的加密解密电路,其特征在于:进而具有输出作为规定信号的合法性评价秘钥的合法性评价秘钥输出电路,所述加密解密运算部使用所述合法性评价秘钥对给定的第2秘钥进行解密,当将加密后的所述第I秘钥存储在所述秘钥存储部时,使用解密后的所述第2秘钥求出所述第I秘钥的第I散列值,并将所述第I散列值存储在所述秘钥存储部中,当进行使用了所述第I秘钥的所述加密或解密时,使用解密后的所述第2秘钥求出从所述秘钥存储部读出的所述第I秘钥的第2散列值,并将所述第I散列值和第2散列值进行比较,即使输入了和所述加密或解密后的所述验证用数据一致的密码,当所述第I和第2散列值不同时,也停止所述输入数据的加密或解密。
8.权利要求5至权利要求7的任何一项记载的加密解密电路,其特征在于:可以不通过所述加密解密运算部来传送所述输入数据,在所述第I和第2散列值不同的情况、和检测出调试程序正在使用且没有输入所述密码的情况中的至少一种情况下,停止所述输入数据的所述传送。
【文档编号】H04L9/08GK104393990SQ201410768257
【公开日】2015年3月4日 申请日期:2006年7月5日 优先权日:2005年7月13日
【发明者】宫内成典, 山口敦男 申请人:瑞萨电子株式会社