程序交付方法及其系统的制作方法

文档序号:6554744阅读:165来源:国知局
专利名称:程序交付方法及其系统的制作方法
技术领域
本发明涉及装载在具有将被加密的程序解密并执行的功能的信息设备等中的半导体LSI。而且,涉及将程序加密后从程序所有者一方交付给程序使用者一方的设备的处理系统及其方法。
背景技术
近几年来,随着程序能重写或用户程序能执行的信息设备的普及,人们正在考虑防止软件的非法拷贝的构造。在将程序加密并分配的方式中,人们想出了使解密被加密的程序的程序(以下叫做“解密程序”)不被拷贝那样的办法。例如,做到将解密程序配置在从外部不能读出的LSI内部的存储器中,而且,从外部不能读出被解密的程序(例如,参照专利文献1)。
图18是表示执行被加密的程序的现有的半导体集成电路装置的方框图。
图18所示的半导体集成电路装置1具有CPU、经由内部总线7进行数据的输入输出的内装ROM4和内装RAM5、经过外部总线2控制与外部的数据的输入输出的总线端口6、经由IO总线8与CPU3连接的IO端口9、控制内装RAM5的存储器端口10、以及控制存储器端口10的控制寄存器11。
解密被加密的程序的程序被存储在内装ROM4中。解密被加密的程序的程序被读入到内装RAM5,并通过解密程序被解密。被解密的程序被写出到内装RAM5。被写出到内装RAM5的、被解密的程序通过来自控制寄存器11的控制防止从存储器端口10向外部读出。
专利文献1特开平8-30558号公报。

发明内容
但是,象上述那样,由于将解密程序保持在LSI内部,因此必须将非易失性存储器内装在LSI中。从而,提高LSI所需要的成本。
另外,当将有恶意的程序加密并读入LSI内部,并执行程序时,通过该程序将解密程序传送到外部,使解密程序有可能被破坏(hacking)。其结果,通过使用被破坏的解密程序,就有可能破坏被加密的程序。而且,由于不能变更解密程序,所以若一旦被破坏就不能使用该LSI。
而且,产生在传送被加密的程序的一方不能进行密码程序和密码强度的选择的问题。
因此,本发明的目的在于提供降低成本、减小加密的程序被破坏的可能性的半导体集成电路装置。
为解决上述课题,本发明的第1半导体集成电路装置具备在与总线之间进行数据的输入输出的第1存储器;在与所述总线之间进行数据的输入输出的第2存储器;保持加密密钥的加密密钥保持部分;控制从外部向所述总线的存取的总线端口;经由所述总线端口将被加密的程序和解密程序存储在所述第1存储器,使用所述解密程序和所述加密密钥对所述被加密的程序进行解密,并执行被解密的程序的CPU;以及若所述被加密的程序和所述解密程序被存储在所述第1存储器中,那么对于所述总线端口禁止来自外部的存取,许可向所述第1和第2的存储器的存取并进行所述被加密的程序和所述解码程序从所述第1存储器向所述第2存储器的传送,若所述传送结束,那么禁止向所述第1存储器的存取,若所述解密和所述被解密的程序的执行已结束,那么禁止向所述第2存储器的存取的控制部分。
若依据本发明的第1半导体集成电路装置,就没有必要在半导体集成电路装置的内部具备用于保持解密程序的非易失性存储器,并能降低成本。另外,解密中的程序和数据不会从外部被观测,能对被加密的程序进行解密并执行,并能减小所加密的程序被破坏的可能性。
另外,在本发明的第1半导体集成电路装置中,还具备控制从所述CPU向所述加密密钥保持部分的存取的加密密钥存取端口,所述加密密钥存取端口在所述传送结束时许可向所述加密密钥保持部分的存取,在所述被解密的程序的执行结束时禁止向所述加密密钥保持部分的存取。
另外,在本发明的第1半导体集成电路装置中,所述CPU包含寄存器,若所述被解密的程序的执行结束,就消去存储在所述寄存器中的数据。
另外,在本发明的第1半导体集成电路装置中,所述控制部分通过控制向所述第1和第2存储器的选片信号控制向所述第1和第2存储器的存取。
另外,在本发明的第1半导体集成电路装置中,所述控制部分包含存储第1标识位和第2标识位的标识位存储部分,在所述第1标识位被置位时许可向所述第1存储器和所述第2存储器的存取,在所述第1标识位被复位、所述第2标识位被置位时禁止向所述第1存储器的存取,在所述第1和第2标识位都被复位时禁止向所述第2存储器的存取,所述总线端口在所述第1或第2标识位中至少1个被置位时,禁止来自外部的存取,所述CPU若将所述被加密的程序和所述解密程序输入到所述第1存储器,就将所述第1标识位和所述第2标识位置位,若所述传送结束,就将所述第1标识位复位,若所述被解密的程序的执行已结束,就将所述第2标识位复位。
为解决上述课题,本发明的第2半导体集成电路装置具备在与总线之间进行数据的输入输出的第1存储器;在与所述总线之间进行数据的输入输出的第2存储器;被连接在所述总线和所述第1存储器之间,控制从所述总线向所述第1存储器的存取的第1存储器端口;被连接在所述总线和所述第2存储器之间,控制从所述总线向所述第2存储器的存取的第2存储器端口;保持加密密钥的加密密钥保持部分;控制从外部向所述总线的存取的总线端口;经由所述总线端口进行将被加密的程序和解密程序向所述第1存储器的写入,使用所述解密程序和所述密钥对所述被加密的程序进行解密,进行将被解密的程序向所述第2存储器的写入,并执行被解密的程序的CPU;以及若向所述第1存储器的写入已结束,那么对于所述总线端口禁止从外部向所述总线的存取,对于所述第1存储器端口禁止向所述第1存储器的写入,对于所述第2存储器端口,许可向所述第2的存储器的存取,若所述被解密的程序的执行已结束,那么对于所述CPU将消去被存储在所述寄存器中的数据,并禁止向所述密钥保持部分的存取,同时,对于所述第2存储器端口禁止向所述第2存储器的存取的控制部分。
若依据本发明的第2半导体集成电路装置,在半导体集成电路装置中就不需要具备用于保持解密程序的非易失性存储器,并能降低成本。另外,解密过程中的程序和数据不会从外部被观测,能够对被加密的程序进行解密并执行,能够减小所加密的程序被破坏的可能性。
为解决上述课题,本发明的第3半导体集成电路装置具备在与总线之间进行数据的输入输出的第1存储器;在与所述总线之间进行数据的输入输出的第2存储器;被连接在所述总线和所述第1存储器之间,控制从所述总线向所述第1存储器的存取的存储器端口;保持加密密钥的加密密钥保持部分;控制从外部向所述总线的存取的总线端口;具有寄存器,经由所述总线端口进行将被加密的程序和解密程序向所述第1存储器的写入,使用所述解密程序和所述密钥对所述被加密的程序进行解密,进行将被解密的程序向所述第2存储器的写入,并执行被解密的程序的CPU;以及包含消去所述第2存储器中的数据的存储器初始化部分,若结束向所述第1存储器的写入,对于所述总线端口就禁止从外部向所述总线的存取,对于所述存储器端口禁止向所述第1存储器的写入,若结束所述被解密的程序的执行,对于所述CPU就消去被存储在所述寄存器中的数据,禁止向所述密钥保持部分的存取,对于所述存储器初始化部分将消去所述第2存储器中的数据的控制部分。
若依据本发明的第3半导体集成电路装置,在半导体集成电路装置中就没有必要具备用于保持解密程序的非易失性存储器,并能降低成本。另外,解密过程中的程序和数据不会从外部被观测,能够对被加密的程序进行解密并执行,能够减小所加密的程序被破坏的可能性。
为解决上述课题,本发明的第4半导体集成电路装置具备在与总线之间进行数据的输入输出的第1存储器;在与所述总线之间进行数据的输入输出的第2存储器;保持加密密钥的加密密钥保持部分;保持解密密钥的解密密钥保持部分;控制从外部向所述总线的存取的总线端口;包含寄存器,经由所述总线端口进行将被加密的解密密钥和解密密钥解密程序向所述第1存储器存储的第1存储,使用所述解密密钥解密程序和所述加密密钥进行对所述被加密的解密密钥解密的第1解密,进行将被解密的解密密钥向所述解密密钥保持部分的写入,进行将被解密的程序和解密程序向所述第1存储器存储的第2存储,使用所述解密程序和所述被解密的解密密钥进行对所述被加密的程序解密的第2解密,并执行被解密的程序的CPU;以及向所述第1存储器的所述第1存储结束时,对于所述总线端口禁止从外部向所述总线的存取,许可向所述第1存储器和所述第2存储器的存取,并进行从所述第1存储器向所述第2存储器传送所述被加密的解密密钥和所述解密密钥解密程序,在该传送结束时,许可向所述加密密钥保持部分的存取,禁止向所述第1存储器的存取,在所述第1解密结束时,对于所述CPU将消去被存储在所述寄存器中的数据,并禁止向所述加密密钥保持部分的存取,同时,禁止向所述第2存储器的存取,许可向所述第1存储器的存取,对于所述总线端口许可从外部向所述总线的存取,在向所述第1存储器的所述第2存储结束时,对于所述总线端口禁止从外部向所述总线的存取,许可向所述第2存储器的存取,并从所述第1存储器向所述第2存储器进行所述被加密的程序和所述解密程序的传送,在该传送结束时,许可向所述解密密钥保持部分的存取,禁止向所述第1存储器的存取,在结束所述第2解密和所述被解密的程序的执行时,对于所述CPU将消去被存储在所述寄存器中的数据,禁止向所述加密密钥保持部分的存取,禁止向所述第2存储器的存取的控制部分。
若依据本发明的第4半导体集成电路装置,没有必要在半导体集成电路装置中具备用于保持解密程序的非易失性的存储器,并能够降低成本。另外,不从外部观测解密过程中的程序和数据,能够对被加密的程序解密并执行,能够减小所加密的程序被破坏的可能性。而且,在传送所加密的程序的一方能够选择密码程序和密码强度。
为解决上述课题,本发明的第1程序交付方法是在第1装置和第2装置之间进行程序的交付的程序交付方法,它具备以下步骤从所述第2装置向所述第1装置进行公开密钥的传送的步骤;从其外部将解密程序传送到所述第2装置的步骤;在所述第1装置中,使用所述公开密钥进行所述程序的加密,并将所加密的程序传送到所述第2装置的步骤;以及在所述第2装置中,使用与所述公开密钥对应的加密密钥和所述解密程序对所述被加密的程序解密的步骤。
若依据本发明的第1程序交付方法,那么在半导体集成电路装置的内部没有必要具用于保持解密程序的非易失性的存储器,并能够降低成本。另外,解密过程中的程序和数据不会从外部被观测,能够对被加密的程序进行解密并执行,能够减小所加密的程序被破坏的可能性。
为解决上述课题,本发明的第2程序交付方法是在第1装置和第2装置之间进行程序交付的程序交付方法,它具备以下步骤从所述第2装置向所述第1装置进行公开密钥的传送的步骤;在所述第1装置中,使用所述公开密钥进行解密密钥的加密,并将所加密的解密密钥传送到所述第2装置的步骤;在所述第2装置中,使用与所述公开密钥对应的加密密钥将所述被加密的解密密钥进行解密的步骤;在所述第1装置中,使用与所述解密密钥对应的加密密钥进行所述程序的加密,并将所加密的程序传送到所述第2装置的步骤;以及在所述第2装置中,使用被解密的解密密钥将所述被加密的程序进行解密的步骤。
若依据本发明的第2程序交付方法,那么在半导体集成电路装置的内部不需要用于保持解密程序的非易失性的存储器,并能够降低成本。另外,解密过程中的程序和数据不会从外部被观测,能够对被加密的程序进行解密并执行,能够减小所加密的程序被破坏的可能性。而且,在传送被加密的程序的一方能够选择密码程序和密码强度。
为解决上述课题,本发明的第1程序交付系统是具备第1装置和第2装置,并在所述第1装置和所述第2装置之间进行程序的交付的程序交付系统,所述第1装置应使用公开密钥将所述程序加密,并将被加密的该程序向所述第2装置传送,所述第2装置应使用与所述公开密钥对应的加密密钥和从该第2装置的外部传送的解密程序将通过所述第1装置被加密的程序进行解密。
若依据本发明的第1程序交付系统,那么在半导体集成电路装置的内部不需要用于保持解密程序的非易失性的存储器,并能够降低成本。另外,解密过程中的程序和数据不会从外部被观测,能够对被加密的程序进行解密并执行,能够减小所加密的程序被破坏的可能性。
为解决上述课题,本发明的第2程序交付系统是具备第1装置和第2装置,并在所述第1装置和所述第2装置之间进行程序的交付的程序交付系统,所述第1装置应使用公开密钥将解密密钥加密,并将已加密的解密密钥向所述第2装置进行传送,使用与所述解密密钥对应的加密密钥将所述程序加密,并将已加密的程序向所述第2装置进行传送,所述第2装置应使用与所述公开密钥对应的加密密钥将通过所述第1装置被加密的解密密钥进行解密,并使用被解密的解密密钥将通过所述第1装置被加密的程序进行解密。
若依据本发明的第2程序交付系统,那么在半导体集成电路装置的内部不需要用于保持解密程序的非易失性的存储器,并能够降低成本。另外,解密过程中的程序和数据不会从外部被观测,能够对被加密的程序进行解密并执行,能够减小所加密的程序被破坏的可能性。而且,在传送被加密的程序的一方能够选择密码程序和密码强度。


图1是用于说明在第1实施形态中的半导体集成电路装置的构成的方框图。
图2是表示被加密的程序的解密顺序的流程图。
图3是用于说明在第2实施形态中的半导体集成电路装置的构成的方框图。
图4是表示被加密的程序的解密顺序的流程图。
图5是用于说明在第1实施形态中的半导体集成电路装置的构成的方框图。
图6是表示被加密的程序的解密顺序的流程图。
图7是用于说明在第4实施形态中的半导体集成电路装置的构成的方框图。
图8是表示被加密的解密密钥的解密程序的流程图。
图9是表示标识位的状态、总线端口、以及选片信号的状态的相关的图。
图10是表示被加密的程序的解密顺序的流程图。
图11是表示从使用者一方向程序开发者一方传送公开密钥的图。
图12是表示解密密钥的加密的图。
图13是表示从程序开发者一方向使用者一方的被加密的解密密钥的传送的图。
图14是表示被加密的解密密钥的解密的图。
图15是表示程序的加密的图。
图16是表示从程序开发者一方向使用者一方的被加密的程序的传送的图。
图17是表示被加密的程序的解密的图。
图18是表示现有的半导体集成电路装置的构成的方框图。
具体实施例方式
以下,参照

关于本发明的各实施形态。
(第1实施形态)图1是用于说明在第1实施形态中的半导体集成电路装置101的构成的方框图。
如图1所示那样,被加密的程序从作为程序的开发者一方的设备的PC128a(与第1装置对应)经由PC126向程序的使用者一方被传送。在使用者一方的信息设备140内的半导体集成电路装置101(与第2装置对应)中,使用加密密钥和解密程序将被加密的程序进行解密并执行。
PC128a是程序开发者一方的设备,并保持程序D128a和用于将程序加密的密码程序128b。
信息设备140是程序使用者一方的设备,并具有半导体集成电路装置101、保持解密程序D123a的闪速(flash)存储器123a、USB上游端口124以及外围设备150。此外,通过外部总线102与半导体集成电路装置101、闪速存储器123a以及USB上游端口124连接。
半导体集成电路装置101具有CPU103a、内装RAM104(与第1存储器对应)和105(与第2存储器对应)、公开密钥存储寄存器106、加密密钥寄存器107、加密密钥存取端口108a、总线端口110a、保密控制器111a、以及IO端口122。此外,内部总线109如图示那样被连接。
CPU103a具有通用寄存器控制器119a和通用寄存器120a。
保密控制器111a具有存储程序解密执行标识位112F(与第2标识位对应)和RAM复写标识位113F(与第1标识位对应)的标识位存储部分113a、选片分配器114a以及DAM118a。
以下,具体地说明关于各要素的内容和动作。
外部总线102是在向被存储在公开密钥存储寄存器106中的公开密钥的个人计算机128a的传送中,以及在使用该公开密钥和密码程序D128b使被加密的程序向半导体集成电路装置101的传送中被使用。
CPU103a通过被存储在内装RAM104和105、或闪速存储器123a中的程序进行工作。除使通常的程序工作外,还执行被加密的程序的解密和被解密的程序。另外,将从外部输入的、被加密的程序和解密程序D123a传送到内装RAM104中。
内装RAM104是在通常时间,即,在解密程序D123a、被解密的程序都没有执行时被使用的存储器。下面,使用公开密钥和密码程序D128b说明关于将被加密的程序进行解密并执行的场合。首先,在总线端口110a连接外部总线102和内部总线109的状态下,通过CPU110a使被加密的程序和闪速存储器123a内的解密程序D123a被传送到内装RAM104。接着,在总线端口110a将外部总线102和内部总线109分离后,通过DMA118A使被加密的程序和解密程序D123a从内装RAM104传送到内装RAM105。之后,在被解密的程序的执行结束之前期间,通过保密控制器111a禁止从内部总线109向内装RAM104的存取。
内装RAM105在解密程序D123a的执行时,以及在被解密的程序的执行时被使用。下面,说明关于将被加密的程序解密并执行的场合。在总线端口110a将外部总线102和内部总线109分离后,通过DMA118a使被加密的程序和解密程序D123a从内装RAM104传送到内装RAM105。另外,在总线端口110a连接外部总线102和内部总线109的状态下,通过保密控制器111a禁止从内部总线109向内装RAM105的存取。因此,暂时被存储在内装RAM105中的、被解密的程序和解密处理的执行过程中的数据不会从外部被观测。
公开密钥存储寄存器106是存储公开密钥的读出专用的寄存器。公开密钥是在被传送到位于半导体集成电路装置101的外部的个人计算机128a,并通过密码程序D128b将程序D128a加密时使用的密钥。
加密密钥存储寄存器107是存储加密密钥的读出专用的寄存器。加密密钥是在将通过解密程序D123a加密的程序进行解密时使用的密钥。
加密密钥存取端口108a只在RAM复写标识位113F被复位期间使CPU103a从加密密钥存储寄存器107读出加密密钥变为可能。即,解密程序D123a被开始,被加密的程序和解密程序D123a从内装RAM104向内装RAM105的传送结束,RAM复写标识位113F被复位,之后只在将程序解密期间和正在执行被解密的程序期间,CPU103a才有可能从加密密钥存储寄存器107读出加密密钥,在除此以外的时间禁止加密密钥的读出。
内部总线109在半导体集成电路装置101的内部的程序和数据的传送中被使用。
总线端口110a在程序解密执行标识位112F、RAM复写标识位113F中至少1个被置位时分离内部总线109和外部总线102。为此,在被加密的程序和解密程序D123a的传送过程中,在解密程序D123a和被解密的程序的执行过程中,内部总线109和内装RAM105不会从外部被观测。在其它场合,连接内部总线109和外部总线102。
保密控制器111a内装保持程序解密执行标识位112F和RAM复写标识位113F的标识位存储部分113a、选片分配器114a、以及DMA控制器118(以下,叫做“DMA”)。而且,在将密码程序D128b和通过被存储在公开密钥存储寄存器106中的公开密钥加密的程序解密,并执行被加密的程序时,进行总线端口110a、加密密钥存取端口108a、选片信号116S和117S、以及通用寄存器控制器119a的控制。
下面,说明关于将通过密码程序D128b加密的程序解密并执行的场合。首先,在总线端口110a连接外部总线102和内部总线109的状态下,若通过CPU103使被加密的程序和解密程序D123a传送到内装RAM104,那么,接着,总线端口110a将使外部总线102和内部总线109分离。接着,选片分配器114a使选片信号116S和117S确立,并将通过DMA118a加密的程序和解密程序D123a从内装RAM104传送到内装RAM105。在传送结束时,选片分配器114a取消选片信号116S,之后,转移到CPU103a的控制。然后,在CPU103a中,若程序被解密,并且被解密的程序的执行已结束,那么在选片分配器114a中形成结束通知。在接收通知时,选片分配器114a取消选片信号117S,使通用寄存器控制器119将通用寄存器120a初始化,并将来自CPU103a的选片信号115S作为选片信号116S输出。之后,总线端口110a使内部总线109和外部总线102连接。
程序解密执行标识位112F在解密程序D123a开始时被CPU103a置位,在被解密的程序的执行结束时被CPU103a复位。解密程序D123a被开始,被加密的程序和解密程序D123a从内装RAM104向内装RAM105的传送结束,并且RAM复写标识位113F被复位。之后,在将所加密的程序解密期间和被解密的程序正在执行期间,禁止向内装RAM104的存取,并使向内装RAM105和加密密钥存储寄存器107的存取变成可能。若程序解密执行标识位112F被复位,那么向内装RAM105和加密密钥存储寄存器107的存取被禁止。
RAM复写标识位113F在解密程序D123a开始时被CPU103a置位,从内装RAM104向内装RAM105的数据传送结束时被复位。内装RAM104和105在存储变换方面是相同的,通常,向双方的选片不会同时被确立。但是,为了将被加密的程序等传送到内装RAM105,在从内装RAM104向内装RAM105的传送时,通过将RAM复写标识位113F置位,分别向各自的内装RAM104、105确立来自选片分配器114a的选片信号116S、117S。
选片分配器(以下,假定为“CS分配器”)114a在RAM复写标识位113F被置位时同时确立选片信号116S和117S。因此,使被加密的程序和解密程序从DMA118a的内装RAM104向内装RAM105的传送将变成可能。在程序解密执行标识位112F被置位,而且RAM复写标识位113F被复位时,在取消选片信号116F的同时将选片信号115S作为选片信号117S传送。因此,在被加密的程序的解密时,以及在被解密的程序的执行时,使向内装的RAM105的存取变成可能。在二者都不适用时,在将选片信号115S作为选片信号116S传送的同时取消选片信号117S。因此,在通常情况下,即,在解密程序D123a、被解密的程序都没有被执行时,禁止向内装RAM105的存取。
选片信号115S在从CPU103a输出,并对内装RAM104或内装RAM105存取时被确立。
选片信号116S和117S在从CS分配器114a输出,并且选片信号116S对内装RAM104存取时被确立,选片信号117S在对内装RAM105存取时被确立。
DMA控制器118a在RAM复写标识位113F被置位时,进行被加密的程序和解密程序从内装RAM104向内装RAM105的传送。此外,在传送结束时RAM复写标识位113被复位。
通用寄存器控制器119a在程序解密执行标识位112F被复位时将通用寄存器120a复位。因此,在被加密的程序的解密过程中,以及在被解密的程序的执行过程中,不会从外部观测在通用寄存器120a中所生成的数据。
IO端口122经由IO总线121与CPU103a连接。另外,还与外围设备150中的声音模块和视频模块152等装卸的电路连接。
闪速存储器123a保持解密程序D123a。
解密程序D123a经由半导体集成电路装置101内部的内装RAM104被传送到内装RAM105,并在将被加密的程序进行解密时与被存储在加密密钥存储寄存器107中的加密密钥一起被使用。
USB上游端口124是经由USB电缆125与个人计算机126连接,并在将被加密的程序传送到半导体集成电路装置101时被使用。
USB电缆125是在从个人计算机126向上游端口124的被加密的程序的传送中被使用。
个人计算机126是从个人计算机128a接收被加密的程序,并将被加密的程序传送到装载了半导体集成电路装置101的信息设备140。
网络线路127是用于将被加密的程序从个人计算机128传送到个人计算机126。
个人计算机128是经由网络线路127从个人计算机126接收被存储在公开密钥存储寄存器106中的公开密钥,使用密码程序D128b和公开密钥将程序D128a加密,并经由网络线路127传送到个人计算机126。
程序D128a使用密码程序D128b和被存储在公开密钥存储寄存器106中的公开密钥被加密,并经由网络线路127、个人计算机126、USB电缆125、USB上游端口124、以及外部总线102被传送到半导体集成电路装置101。然后,在半导体集成电路装置101内使用解密程序D123a和被存储在加密密钥存储寄存器107中的加密密钥被解密。
D128b是密码程序,是使用被存储在公开密钥存储寄存器106中的公开密钥对程序D128a进行加密。
信息设备140具有半导体集成电路装置101、外围设备150、闪速存储器123a、以及USB上游端口124。
外围设备150具有声音模块151、视频模块152,并与半导体集成电路装置101内的IO端口122连接。
声音模块151与半导体集成电路装置101的IO端口122连接,经过数据传送的发送接收、控制信号的接收,进行声音的再生、记录。
视频模块152与半导体集成电路装置101的IO端口122连接,经过数据传送的发送接收、控制信号的接收,进行活动图象的再生。
接着,使用图2,概略说明关于将被加密的程序解密生成程序D128a,并执行程序D128a的顺序。
图2是表示在第1实施形态中的被加密的程序的解密顺序的流程图。
首先,在步骤ST201中,CPU103a进行将解密程序D123a和被加密的程序向内装RAM104的传送。
接着,若该传送结束,就前进到步骤ST202,CPU103a将程序解密执行标识位112F和RAM复写标识位113F置位。这时,总线端口110a将内部总线109和外部总线102进行分离。
接着,在该分离后,前进到步骤ST203,DMA控制器118a进行内装RAM104中的解密程序D123a和被加密的程序向内装RAM105的传送。
接着,若该传送结束,就前进到步骤ST204,CPU103a使RAM复写标识位113F复位。由此,直到后述的步骤ST206结束,CS分配器114a没有确立选片信号116S。
接着,前进到步骤ST205,CPU103a执行解密D123a,并使用被存储在加密密钥存储寄存器107中的加密密钥将被加密的程序解密,生成程序D128a。然后,将所生成的程序D128a写入到内装RAM105。
接着,前进到步骤ST206,并且CPU103a执行程序D128a。
最后,前进到步骤ST207,并且CPU103a将解密执行标识位112F复位。程序解密执行标识位112F被复位时,通用寄存器控制器119a将通用寄存器120a复位。若程序解密执行标识位112F被复位,那么总线端口110a就连接内部总线109和外部总线102。另外,CS分配器114a将选片信号115S作为选片信号116S输出,并取消选片信号117S。
由于选片信号116S在解密程序D123a被执行并完成程序D128a的生成时没有被确立,因此解密过程中的数据和程序D128a不会存储在内装RAM104中。而且,由于选片信号117S在总线端口110a正连接着外部总线102和内部总线109时被取消,因此解密过程中的数据和程序D128a不会从外部被观测。
象以上那样,若依据第1实施形态,就可以在半导体集成电路装置的内部不需要具备用于保持解密程序的非易失性存储器,并能降低成本。另外,解密中的程序和数据不会从外部被观测,能将被加密的程序解密并执行,能够减小所加密的程序被破坏的可能性。
(第2实施形态)图3是用于说明涉及第2实施形态的半导体集成电路装置301的构成的方框图。
图3所示的半导体集成电路装置301与图1所示的半导体集成电路装置101比较,不同之处在于它还具备存储器端口302(与第1存储器端口对应)和303(与第2存储器端口对应)。另外,保密控制器111b在只具有存储程序解密执行标识位112F的标识位存储部分113b这一点上与图1所示的保密控制器111a不同。此外,其它要素进行与图1所示的要素相同的动作,因此没有重复其说明。
存储器端口302在程序解密执行标识位112F被置位时,通过来自保密控制器的控制停止向内装RAM104的写入。即,在程序的解密过程中,以及在被解密的程序的执行过程中,不能向内装RAM104写入数据。
存储器端口303在程序解密执行标识位112F被复位时,通过保密控制器111b停止向内装RAM105的存取。即,在总线端口110b连接内部总线109和外部总线102期间不能向内装RAM105存取。因此,写入到内装RAM105的、被解密的程序和解密处理执行中的数据不会从外部被观测。
接着,使用图4,说明关于将被加密的程序解密,生成程序D128a,并执行程序D128a的顺序。
图4是表示在第2实施形态中的被加密的程序的解密顺序的流程图。
首先,在步骤ST201中,CPU103b进行解密程序D123a和被加密的程序向内装RAM104的传送。
接着,若该传送结束,就前进到步骤ST402,并且,CPU103b将程序解密执行标识位112F置位。这时,总线端口110b进行内部总线109和外部总线102的分离。另外,存储器端口302停止向内装RAM104的写入,存储器端口303许可向内装RAM105的存取。
接着,前进到步骤ST205,并且,CPU103b执行解密程序D123a,使用被存储在加密密钥存储寄存器107中的加密密钥将被加密的程序解密,生成程序D128a,并写入到内装RAM105。
接着,前进到步骤ST206,并且,CPU103b执行程序D128a。
最后,若程序D128b的执行结束,就前进到步骤ST207,并将程序解密执行标识位112F复位。在程序解密执行标识位112F被复位时,通用寄存器控制器119b通过来自保密控制器111b的控制将通用寄存器120b复位。若程序解密执行标识位112F被复位时,总线端口110b就连接内部总线109和外部总线102。另外,存储器端口302许可向内装RAM104的写入,存储器端口303停止向内装RAM105的存取。
在半导体集成电路装置301中,存储器端口302在执行解密程序D123a,生成程序D128a时停止向内装RAM104的写入,因此解密过程中的数据和程序D128a不会被存储到内装RAM104。而且,存储器端口303在总线端口110连接外部总线102和内部总线109时停止向内装RAM105的存取,因此解密过程中的数据和程序D128a不会被输出到外部。
象以上那样,若依据第2实施形态,在半导体集成电路装置的内部可以不需要用于保持解密程序的非易失性存储器,并能够降低成本。另外,解密过程中的程序和数据不会从外部被观测,能将被加密的程序解密并执行,而且能够能够减小所加密的程序被破坏的可能性。
(第3实施形态)图5是用于说明涉及第3实施形态的半导体集成电路装置501的构成的方框图。
图5所示的半导体集成电路装置501与图1所示的半导体集成电路装置101比较,不同之处在于它还具备存储端口402。另外,保密控制器111c在具有存储程序解密执行标识位112F的标识位存储部分113c,以及RAM初始化部分502(与存储器初始化对应)这一点上与图1所示的保密控制器111a不同。此外,其它要素进行与图1所示的要素相同的动作,因此没有重复其说明。
RAM初始化部分502在程序解密执行标识位112F刚刚被复位之前,在内装RAM105中的全部区域写入“1”并消去数据。因此,做到被写入到内装RAM105的、被解密的程序和解密中的数据从外部不能观测。
接着,使用图6,说明关于将被加密的程序解密、生成程序D128a,并执行程序D128a的程序。
图6是表示在第3实施形态中的、被加密的程序的解密顺序的流程图。
首先,在步骤ST201中,CPU103c进行解密程序D123a和被加密的程序向内装RAM104的传送。
接着,若该传送结束,就前进到步骤ST402,并且CPU103c将程序解密执行标识位112F置位。这时,总线端口110c进行内部总线109和外部总线102的分离。另外,这时,存储器端口402通过来自保密控制器111c的控制停止向内装RAM104的写入。
接着,前进到步骤ST205,并且CPU103c执行解密程序D123a,使用存储在加密密钥存储寄存器107中的加密密钥将被加密的程序解密后生成程序D128a,并写入到内装RAM105。
接着,若所生成的程序D128a被写入到内装RAM105,就前进到步骤ST206,并且CPU103c执行程序D128a。
接着,前进到步骤ST607,RAM初始化部分502在RAM105中的全部区域写入“1”并消去数据。
最后,若内装RAM105中的数据被消去,就前进到步骤ST207,并将程序解密执行标识位112F复位。在程序解密执行标识位112F被复位时,通用寄存器控制器119c通过来自保密控制器111c的控制将通用寄存器120c复位。若程序解密执行标识位112F被复位,总线端口110c就连接内部总线109和外部总线102。而且这时,存储器端口402通过来自保密控制器111c的控制许可向内装RAM104的写入。
在半导体集成电路装置501中,由于存储器端口402在执行解密程序D123a,生成程序D128a时停止向内装RAM104的写入,因此解密过程中的数据和程序D128a不会被存储到内装RAM104。而且,通过RAM初始化部分502,总线端口110在将外部总线102和内部总线109从分离状态刚刚变成连接状态之前全部消去内装RAM105中的数据,因此,解密过程中的数据和程序D128a不会被输出到外部。
象以上那样,若依据第3实施形态,在半导体集成电路装置的内部不需要具备用于保持解密程序的非易失性存储器,并能降低成本。另外,从外部不会观测解密过程中的程序和数据,能够将被加密的程序解密并执行,能够减小所加密的程序被破坏的可能性。
(第4实施形态)图7是用于说明涉及第4实施形态的半导体集成电路装置701的构成的方框图。
图7所示的半导体集成电路装置701与图1所示的半导体集成电路装置101比较,不同之点在于它还具备解密密钥存取端口703和解密密钥存储寄存器702。另外,除了程序D728a和密码程序D728b外,PC128d还保持解密密钥密码程序D728c、加密D728d、以及解密密钥D728e,在这一点与图1所示的PC128a不同。标识位存储部分113d除了程序解密执行标识位112F和RAM复写标识位113F外,还保持解密密钥解密标识位704F,在这一点与图1所示的标识位存储部分113a不同。闪速存储器123d除了解密程序723a外,在保持解密密钥解密程序D723b这一点上不相同。此外,其它要素进行与图1所示的要素相同的动作,但以与图1的场合不同的部分为中心进行说明。
CPU103d通过被存储在内装RAM104和105,或闪速存储器123d中的程序动作。除使通常的程序动作外,还执行被加密的解密密钥、被加密的程序的解密以及被解密的程序。另外,将从外部输入的被加密的解密密钥、被加密的程序和解密密钥解密程序D723b、解密程序D723a传送到内装RAM104。
内装RAM104是在解密程序D723a、解密密钥解密程序D723b、被解密的程序都没有被执行时使用的存储器。下面,说明关于将被加密的解密密钥进行解密并保存在解密密钥存储寄存器702中的场合。首先,在总线端口110d连接外部总线102和内部总线109的状态下,被加密的解密密钥和闪速存储器123d内的解密密钥解密程序D723b通过CPU103d,经由外部总线102和内部总线109被传送到内装RAM104。接着,在总线端口110d将外部总线102和内部总线109分离后,通过DMA118d,被加密的解密密钥和解密密钥解密程序D723b从内装RAM104被传送到内装RAM105。之后,在直到解密密钥解密程序D723b结束期间,通过保密控制器111d禁止从内部总线109向内装RAM104的存取。
接下来,说明关于将被加密的程序进行解密并执行的场合。首先,在总线端口110d连接了外部总线102和内部总线109的状态下,通过CPU103d,被加密的程序和解密程序D723a被传送到内装RAM104。接着,在总线端口110d将外部总线102和内部总线109分离后,通过DMA118d,被加密的程序和解密程序D723a从内装RAM104被传送到内装RAM105。之后,在直到被解密的程序的执行已结束期间,通过保密控制器111d,禁止从内部总线109向内装RAM104的存取。
内装RAM105在执行解密密钥解密程序D723b、解密程序D723a、以及被解密的程序D728b时被使用。下面,说明关于将被加密的解密密钥进行解密并保存在解密密钥存储寄存器702中的场合。在总线端口110d将外部总线102和内部总线109分离后,通过DMA118d,被加密的解密密钥和解密密钥解密程序D723b从内装RAM104被传送到内装RAM105。而且,在被加密的解密密钥的解密过程中,CPU103d使用内装RAM105进行它的解密。另外,说明关于将被加密的程序进行解密并执行的场合。在总线端口110d将外部总线102和内部总线109分离后,被加密的程序和解密程序D723a从内装RAM104被传送到内装RAM105。在被加密的程序的解密过程中以及在被解密的程序的执行过程中,CPU103d使用内装RAM105进行被加密的程序的解密以及被解密的程序的执行。在总线端口110d连接外部总线102和内部总线109时,禁止从内部总线109向内装RAM105的存取。因此,暂时被存储在内装RAM105中的被解密的解密密钥D728e和被解密的程序D728a、以及在它们的解密处理的执行过程中的数据不会从外部被观测。
公开密钥存储寄存器106是存储了公开密钥的、读出专用的寄存器。公开密钥是被传送到位于半导体集成电路装置701的外部的个人计算机128d,并用于与解密密钥密码程序D728c一起将解密密钥D728e加密的密钥。被加密的解密密钥使用解密密钥解密程序D723b和被存储在加密密钥存储寄存器107中的加密密钥被解密。
加密密钥存储寄存器107是存储了加密密钥的、读出专用的寄存器。加密密钥是在使用公开密钥将被加密的解密密钥进行解密时使用的密钥。
解密密钥存储寄存器702是存储D728e的、能写入和读出的寄存器。解密密钥D728e用于与解密密钥解密程序D723b一起将被加密的程序解密的密钥。
加密密钥存取端口108d只在解密密钥解密标识位704F被置位、RAM复写标识位113F被复位期间,CPU103d使从加密密钥存储寄存器107读出加密密钥变成可能。即,只在解密密钥解密程序D723b被开始,被加密的解密密钥以及解密密钥解密程序D723b从RAM104向内装RAM105的传送结束,RAM复写标识位113F被复位,之后将被加密的解密密钥进行解密期间,CPU103d使从加密密钥存储寄存器107读出加密密钥变成可能,除此以外的时间,禁止加密密钥的读出。
解密密钥存取端口703在解密密钥解密标识位704F被置位,而且RAM复写标识位113被复位期间,解密密钥D728e的写入变为可能。另外,在程序解密执行标识位112F被置位,而且RAM复写标识位113F被复位期间,读出解密密钥D728e变为可能。除此以外的时间,一同禁止写入、读出。即,在解密密钥解密程序D723b被开始,被加密的解密密钥和解密密钥解密程序D723b从内装RAM104向RAM105的传送结束,RAM复写标识位113F被复位,之后将被加密的解密密钥进行解密期间,解密密钥D728e的写入变为可能。另外,在解密程序D723a被开始,被加密的程序和解密程序D723a从内装RAM104向RAM105的传送结束,RAM复写标识位113F被复位,之后将被加密的程序进行解密期间,解密密钥D728e的读出变为可能。
总线端口110d在解密密钥解密标识位704F、程序解密执行标识位112F、RAM复写标识位113F中间的至少1个被置位时将分离内部总线109和外部总线102。为此,在解密密钥解密程序D723b、解密程序D723a、被解密的程序D728a的执行过程中,内部总线109和内装RAM105不会从外部被观测。在其它场合连接内部总线109和外部总线102。
保密控制器111d内装解密密钥解密标识位704F、程序解密执行标识位112F、以及保持RAM复写标识位113F的标识位存储部分、CS分配器114d、DMA118d。
解密密钥解密标识位704F在解密密钥解密程序D723b开始时被CPU103置位,在解密密钥的解密结束时,被CPU103复位。解密密钥解密程序D723b被开始,被加密的解密密钥和解密密钥解密程序D723b从内装RAM104向内装RAM105的传送结束,RAM复写标识位113F被复位。之后在将被加密的解密密钥进行解密期间,禁止向内装RAM104的存取,并且使向内装RAM105、加密密钥存储寄存器107、以及解密密钥存储寄存器702的存取变为可能。若解密密钥解密标识位704F被复位,就禁止向内装RAM105、加密密钥存储寄存器107、以及解密密钥存储寄存器702的存取。
程序解密执行标识位112F在解密程序D723a开始时被CPU103d置位,在被解密的程序的执行结束时被CPU103d复位。解密密钥解密程序D723b被开始,被加密的解密密钥和解密密钥解密程序D723a从内装RAM104向内装RAM105的传送结束,RAM复写标识位113F被复位。之后在将被加密的解密密钥进行解密期间和在将被解密程序执行期间,禁止向内装RAM104的存取,并使向内装RAM105和解密存储寄存器702的存取变为可能。若程序解密执行标识位112F被复位,就禁止向内装RAM105、加密密钥存储寄存器107以及解密密钥存储寄存器702的存取。
RAM复写标识位113F在解密密钥解密程序D723b或解密程序D723a开始时被CPU103d置位,在从内装RAM104向内装RAM105的数据的传送结束时被CPU103d复位。
CS分配器114d在RAM复写标识位113F被置位时同时确立选片信号116S和117S。因此,被加密的解密密钥、解密密钥解密程序D723b、被加密的程序、以及解密程序D723a从DMA118d的内装RAM104向内装RAM105的传送变为可能。另外,在解密密钥解密标识位704F或程序解密执行标识位112F被置位,而且RAM复写标识位113F被复位时,在取消选片信号116S的同时将选片信号115S作为选片信号117S传送。在被加密的解密密钥的解密时、在被加密的程序的解密时、以及在被解密的程序的执行时使向内装RAM105的存取变为可能。在都不合适时,将选片信号115S作为选片信号116S传送,同时,取消选片信号117S。因此,在通常时间,即,在解密密钥解密程序D723b、解密程序D723a、被解密的程序D728a中的一个没有被执行时,禁止向内装RAM105的存取。
DMA118d在RAM复写标识位113F被置位时,使被加密的解密密钥、解密密钥解密程序D723b、被加密的程序、解密程序D723a进行从内装RAM104向内装RAM105的传送,若传送结束,就将RAM复写标识位113F复位。
通用寄存器控制器119d在解密密钥解密标识位704F或程序解密执行标识位112F被复位时将通用寄存器120d复位。因此,在被加密的解密密钥的解密过程中、在被加密的程序的解密过程中、以及在被解密的程序的执行过程中被通用寄存器120d生成的数据不会从外部被观测。
解密密钥解密程序D723b被保持在闪速存储器123d中。在通过解密密钥密码程序D728c和公开密钥将被加密的解密密钥进行解密时,经由半导体集成电路装置701内部的内装RAM104被传送到内装RAM105,并与被存储在加密密钥存储寄存器107中的加密密钥一起将被被加密的解密密钥进行解密。
解密程序D723a被保持在闪速存储器123d中。在通过密码程序D728b和加密密钥D728d将被加密的程序进行解密时,经由半导体集成电路装置701内部的内装RAM104被传送到内装RAM105,并与被存储在解密密钥存储寄存器702中的解密密钥一起将被被加密的程序进行解密。
程序D728a使用密码程序D728b和加密密钥D728d被加密,并经由网络线路127、个人计算机126、USB电缆125、USB上游端口124、外部总线102被传送到半导体集成电路装置701。然后,在半导体集成电路装置701内使用解密程序D723a和被存储在解密密钥存储寄存器107中的解密密钥D728e解密。
密码程序D728b使用加密密钥D728d将程序D728a加密。
解密密钥密码程序D728c与存储在公开密钥存储寄存器106中的公开密钥一起将解密密钥D728e加密。
加密密钥D728d与密码程序D728b一起将程序D728a解密。
解密密钥D728e与解密程序D723a一起使用加密密钥D728d将被加密的程序解密。
信息设备740具有半导体集成电路装置701、外围设备150、闪速存储器123d、以及USB上游端口124。
接着,使用图8,说明关于将被加密的解密密钥进行解密并将解密密钥D728e存储到解密密钥存储寄存器702的顺序。
图8是表示在第4实施形态中的被加密的解密密钥的解密顺序的流程图。
首先,在步骤ST801中,CPU103d进行将解密密钥解密程序D723b和被加密的解密密钥向内装RAM104的传送。
接着,若该传送结束,就前进到步骤ST802,并且CPU103d将解密密钥解密标识位704F和RAM复写标识位113F置位。这时,总线端口110d进行内部总线109和外部总线102的分离。
接着,在该分离后,前进到步骤ST803,并且,DMA118d进行将内装RAM104中的解密密钥解密程序D723b和被加密的解密密钥向内装RAM105的传送。
接着,若该传送结束,就前进到步骤ST804,并且CPU103d将RAM复写标识位113F复位。由此,直到后述的步骤ST805结束,CS分配器114d没有确立选片信号116S。
接着,前进到步骤ST805,CPU103d使用被存储在加密密钥存储寄存器107中的加密密钥执行解密密钥解密程序D723b,并将被加密的解密密钥进行解密生成解密密钥D728e,然后向解密密钥存储寄存器702写入。
最后,前进到步骤ST806,将解密密钥解密标识位704F复位。在解密密钥解密标识位704F被复位时,通用寄存器控制器119d将通用寄存器120d复位。若解密密钥解密标识位704F被复位,那么总线端口110d就连接内部总线109和外部总线102。另外,CS分配器114d将选片信号115S作为选片信号116S传送,并取消选片信号117S。
图9表示与解密密钥解密标识位704F、程序解密执行标识位112F、以及与RAM复写标识位113F的状态对应的总线端口110d、加密密钥存取端口108d、解密密钥存取端口703、选片信号116S和117S的状态。
在图9中,总线端口110d、加密密钥存取端口108d、解密密钥存取端口703在数据的传送变为可能的场合表示为open(断开),在该数据的传送是不可能的场合表示为close(闭合)。另外,在作为选片信号116S和117S传送选片信号115S中的信号的场合,表示为CS115。
如图9所示那样,在总线端口110d连接外部总线102和内部总线109时,不能向加密密钥存储寄存器107和解密密钥存储寄存器702的存取。另外,选片信号116S在解密密钥解密程序D723b被执行,生成解密密钥D728e时没有被确立。因此,解密过程中的数据和加密密钥、解密密钥D728e不会被存储到内装RAM104中。而且,选片信号117S在总线110d连接外部总线102和内部总线109时被取消,因此,解密过程中的数据和加密密钥、解密密钥D728e不会被输出到外部。
接着,使用图10,说明关于将被加密的程序解密,生成程序D728a,并执行程序D728a的顺序。
图10是表示在第4实施形态中的、被加密的程序的解密顺序的流程图。
首先,在步骤ST1001中,CPU103d将解密程序D723a和被加密的程序传送到内装RAM104。
接着,若该传送结束,就前进到步骤ST1002,并且CPU103d将程序解密执行标识位112F、RAM复写标识位113F置位。这时,总线端口110d进行内部总线109和外部总线102的分离。
接着,在该分离后,前进到步骤ST1003,并且DMA118D进行内装RAM104中的解密程序D723a和被加密的程序向内装RAM105的传送。
接着,若该传送结束,就前进到步骤ST1004,并且CPU103d将RAM复写标识位113F复位。由此,直到后述的步骤ST1006结束,CS分配器114D没有确立选片信号116S。
接着,前进到步骤ST1005,并且CPU103d使用解密密钥D728e执行解密程序D723a,并将被加密的程序解密,生成程序D728a。然后,将所生成的程序D728a写入到内装RAM105。
接着,前进到步骤ST1006,并且CPU103d执行程序D728a。
最后,前进到步骤ST1007,CPU103d将程序解密执行标识位112F复位。在程序解密执行标识位112F被复位时,通用寄存器控制器119d将通用寄存器120d复位。若程序解密执行标识位112F被复位,总线端口110d就连接内部总线109和外部总线102。另外,CS分配器114d将选片信号115S作为选片信号116S传送,并取消选片信号117S。
如上述图9所示那样,选片信号116S在执行解密程序D723a并生成程序D728a时没有被确立。为此,解密过程中的数据和解密密钥D728e、程序D728a不会被存储在内装RAM104中。而且,选片信号117S在总线端口110d连接外部总线102和内部总线109时被取消,因此解密过程中的数据和解密密钥D728e、程序D728a不会被输出到外部。
这样一来,在半导体集成电路装置的内部就没有必要具备用于保持解密程序的非易失性存储器,并能够降低成本。另外,不会使解密过程中的程序和数据从外部被观测,能够将被加密的程序解密并执行,并能减小所加密的程序被破坏的可能性。
而且,在传送被加密的程序的一方能够选择密码程序和密码强度。
<程序的交付方法及系统>
图11~图17是用于说明程序交付系统及其方法的图,以下,以作为本实施形态的第4实施形态为例进行说明。
图11~图17表示在程序的使用者一方使用的信息设备内的半导体集成电路装置701(与第2装置对应)和程序的开发者一方使用的PC128d(与第1装置对应)之间,在将程序加密,将被加密的程序解密之前的数据的交换。
首先,如图11所示那样,使用者一方的半导体集成电路装置701将被存储在公开密钥存储寄存器106中的公开密钥D106传送到开发者一方的PC128d。
接着,如图12所示那样,开发者一方的PC128d使用公开密钥D106和解密密钥密码程序D728c将解密密钥D728e加密,生成被加密的解密密钥1201。
接着,如图13所示那样,开发者一方的PC128d将被加密的解密密钥1201传送到使用者一方的半导体集成电路装置701。
接着,如图14所示那样,使用者一方的半导体集成电路装置701使用被存储在加密密钥存储寄存器107中的加密密钥D107和解密密钥解密程序D723b,将被加密的解密密钥1201进行解密,并将解密密钥D728e存储在解密密钥存储寄存器702中。
接着,如图15所示那样,开发者一方的PC128d使用加密密钥D728d和密码程序D728b,将程序D728a加密,生成被加密的程序1501。
接着,如图16所示那样,开发者一方的PC128d将被加密的程序1501传送到使用者一方的半导体集成电路装置701。
最后,如图17所示那样,使用者一方的半导体集成电路装置701使用解密密钥D728e和解密程序D723a将被加密的程序1501解密,然后,执行被解密的程序D728a。
通过这样做,被加密的程序能够用程序开发者一方所具有的加密密钥被加密后交付使用者一方,并用程序开发者一方所具有的解密密钥解密,因此能够用程序开发者一方所希望的密码强度将程序加密并交付。
此外,在以上说明的第1~第4实施形态的半导体集成电路中,说明了关于使用选片信号进行内装RAM104、内装RAM105的控制的场合,但是,不言而喻,即使是使用了允许写入信号和允许读出信号的场合,同样,在各实施形态中,本发明也能实施。
象以上那样,若依据涉及本发明的半导体集成电路装置,在半导体集成电路装置的内部没有必要具备用于保持解密程序的非易失性存储器,并能降低成本。另外,使解密过程中的程序和数据不会从外部被观测,能够将被加密的程序解密并执行,能够减小所加密的程序被破坏的可能性。
权利要求
1.一种在第1装置和第2装置之间进行程序交付的程序交付方法,具备以下步骤从所述第2装置向所述第1装置进行公开密钥的传送的步骤;从其外部将解密程序传送到所述第2装置的步骤;在所述第1装置中,使用所述公开密钥进行所述程序的加密,并将所加密的程序传送到所述第2装置的步骤;以及在所述第2装置中,使用与所述公开密钥对应的加密密钥和所述解密程序对所述被加密的程序解密的步骤。
2.一种在第1装置和第2装置之间进行程序交付的程序交付方法,具备以下步骤从所述第2装置向所述第1装置进行公开密钥的传送的步骤;在所述第1装置中,使用所述公开密钥进行解密密钥的加密,并将所加密的解密密钥传送到所述第2装置的步骤;在所述第2装置中,使用与所述公开密钥对应的加密密钥将所述被加密的解密密钥进行解密的步骤;在所述第1装置中,使用与所述解密密钥对应的加密密钥进行所述程序的加密,并将所加密的程序传送到所述第2装置的步骤;以及在所述第2装置中,使用被解密的解密密钥将所述被加密的程序进行解密的步骤。
3.一种程序交付系统,具备第1装置和第2装置,并在所述第1装置和所述第2装置之间进行程序交付;所述第1装置使用公开密钥将所述程序加密,并被加密的该程序向所述第2装置传送;所述第2装置使用与所述公开密钥对应的加密密钥和从该第2装置的外部传送的解密程序将通过所述第1装置被加密的程序进行解密。
4.一种程序交付系统,具备第1装置和第2装置,并在所述第1装置和所述第2装置之间进行程序交付;所述第1装置使用公开密钥将解密密钥加密,将已加密的解密密钥向所述第2装置进行传送,使用与所述解密密钥对应的加密密钥,将所述程序加密,并将已加密的程序向所述第2装置进行传送;所述第2装置使用与所述公开密钥对应的加密密钥,将通过所述第1装置被加密的解密密钥进行解密,并使用被解密的解密密钥将通过所述第1装置被加密的程序进行解密。
全文摘要
本发明提供一种程序交付方法及其系统,该程序交付系统具备第1装置和第2装置,并在所述第1装置和所述第2装置之间进行程序交付,所述第1装置使用公开密钥将所述程序加密,并被加密的该程序向所述第2装置传送,所述第2装置使用与所述公开密钥对应的加密密钥和从该第2装置的外部传送的解密程序将通过所述第1装置被加密的程序进行解密。
文档编号G06F12/14GK1822011SQ20061000922
公开日2006年8月23日 申请日期2003年10月31日 优先权日2002年10月31日
发明者川口谦一 申请人:松下电器产业株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1