篡改监视系统、管理装置、保护控制模组及检测模组的制作方法

文档序号:6396992阅读:138来源:国知局
专利名称:篡改监视系统、管理装置、保护控制模组及检测模组的制作方法
技术领域
本发明涉及监视在信息处理 装置等的设备内部中动作的模组等的篡改的技术。
背景技术
近年来,为了使具有隐秘数据的应用程序不被有恶意的第三者(以下,称作“攻击者”)不正当地解析,开发了通过软件保护应用程序的技术(专利文献2、专利文献3)。作为通过软件保护应用程序的技术,例如有使用对应用程序的哈希值进行的篡改验证,或在不利用应用程序时将该应用程序加密来保存、仅在利用时将加密应用程序解密并向存储器装载的解密装载功能等。但是,即使利用这样的技术,如果保护应用程序的软件(以下,称作“保护控制模组”)自身被攻击者篡改,则应用程序也会受到攻击者的攻击。所以,使用进行保护控制模组的篡改检测的检测模组进行保护控制模组的篡改检测(专利文献2、专利文献3)。检测模组将构成保护控制模组的全部的数据读入,计算MAC (MessageAuthentication Code)值,由此进行保护控制模组的篡改检测。现有技术文献专利文献专利文献I :国际公开第2008/099682号专利文献2 :国际公开第2009/118800号专利文献3 :国际公开第2010/092832号专利文献4 :日本专利第2948814号说明书非专利文献非专利文献I :冈本龙明、山本博资,“现代加密”,产业图书(1997年)
发明概要发明要解决的问题但是,在进行保护控制模组的篡改检测的检测模组被篡改的情况下,有包含在保护控制模组中的应用程序的解密密钥由被篡改的检测模组不正当地取得的危险性。如果这样,则有可能使用不正当地取得的解密密钥,将加密的应用程序解密,不正当的应用程序安装到信息处理装置中,通过该不正当的应用程序,使用者的个人信息或内容等泄漏。

发明内容
本发明是鉴于上述问题而做出的,目的是提供一种能够降低从保护控制模组不正当地取得应用程序的解密密钥的可能性的篡改监视系统、管理装置、保护控制模组、检测模组、集成电路、方法、计算机程序及存储有计算机程序的记录介质。为了达到上述目的,本发明是一种篡改监视系统,包括保护应用程序的保护控制模组、监视上述保护控制模组的篡改的多个检测模组和管理装置的,其特征在于,上述管理装置具备分散密钥生成单元,将解密密钥分解而生成多个分散密钥,上述解密密钥用于将被加密的上述应用程序解密;以及输出单元,将所生成的多个上述分散密钥分别向多个上述检测模组输出;各检测模组取得上述分散密钥并存储到内部中;上述保护控制模组具备取得单元,从多个上述检测模组分别取得上述分散密钥;复原单元,将所取得的多个上述分散密钥综合而复原上述解密密钥;解密单元,使用由上述复原单元复原的上述解密密钥,将被加密的上述应用程序解密;以及删除单元,在由上述解密单元进行的解密结束后,将上述解密密钥删除。发明效果根据上述结构,保护控制模组并不是总是保持解密密钥,而是仅 在将被加密的应用程序解密的时间段保持解密密钥,在解密结束后将该解密密钥删除,所以能够降低从保护控制模组不正当地泄漏上述解密密钥的可能性。这样,能够提高篡改监视系统的安全性。


图I表示作为本发明的实施方式I的篡改监视系统IOd的整体结构。图2表示作为本发明的实施方式2的检测系统10的整体结构。图3是表示管理装置200的判断部210的结构的框图。图4是表示管理装置200的软件发布部220的结构的框图。图5表示验证基数据640的数据构造的一例。图6是表示由多个第一解密部分处理651、第二解密部分处理652及第三解密部分处理653构成的解密处理650的概念图。图7是表示加解密密钥631的分解及向检测模组群130的分散的概念图。图8表示设备100的硬件结构的一例。图9表示设备100的软件层级构造的一例。图10是表示保护控制模组120的结构的框图。图11是表示从检测模组群130的分散密钥的收集及加解密密钥631的复原的概念图。图12表示第一解密部分处理的验证数据341的数据构造的一例。图13表示第二解密部分处理的验证数据342的数据构造的一例。图14表示第三解密部分处理的验证数据343的数据构造的一例。图15是表示检测模组131的结构的框图。图16是表示检测系统10的整体的动作的流程图。图17是表示检测系统10的初始设定的动作的顺序图。图18是表示管理装置200的验证基数据的生成的动作的流程图。图19是表示检测系统10的检测的动作的顺序图,后接图20。图20是表示检测系统10的检测的动作的顺序图,后接图21。图21是表示检测系统10的检测的动作的顺序图,上接图22。图22是表示作为本发明的实施方式3的检测系统IOa的私有密钥631a的分解及向检测模组群130a的分散的概念图。图23是表示保护控制模组120a的结构的框图。
图24表示检测模组选择部310具有的检测模组列表351的数据构造的一例。图25是表示检测模组131a的结构的框图。图26是表示检测系统IOa的初始设定的动作的顺序图。图27是表示检测系统IOa的检测的动作的流程图。图28是表示对于保护控制模组120a的检测的动作的顺序图。图29是表示检测系统IOa的应用的解密的动作的流程图。图30是表示作为本发明的实施方式4的检测系统IOb的私有密钥631b的分解及向检测模组群130b的分散的概念图。 图31表示检测系统IOb的检测模组群130b的结构,检测模组132b被无效化。图32是说明检测系统IOb的再分散密钥的生成的概念图。图33是表示检测系统IOb的检测模组131b的结构的框图。图34是说明检测系统IOb的基于再分散密钥进行的分散密钥的更新的概念图。图35是表示检测系统IOb的基于再分散密钥进行的分散密钥的更新的动作的顺序图。图36是表示本发明的实施方式的变形例的分散密钥的生成及向检测模组群130c的分散的概念图。图37表示检测模组选择部310具有的检测模组列表351a的数据构造的一例。
具体实施例方式本发明的一技术方案,是一种篡改监视系统,包括保护应用程序的保护控制模组、监视上述保护控制模组的篡改的多个检测模组、以及管理装置。上述管理装置具备分散密钥生成单元,将解密密钥分解而生成多个分散密钥,上述解密密钥用于将被加密的上述应用程序解密;以及输出单元,将所生成的多个上述分散密钥分别向多个上述检测模组输出。各检测模组取得上述分散密钥并存储到内部中。上述保护控制模组具备取得单元,从多个上述检测模组分别取得上述分散密钥;复原单元,将所取得的多个上述分散密钥综合而复原上述解密密钥;解密单元,使用由上述复原单元复原的上述解密密钥,将被加密的上述应用程序解密;删除单元,在由上述解密单元进行的解密结束后,将上述解密密钥删除。这里,也可以是,上述管理装置还包括验证数据生成单元,该验证数据生成单元对被加密的没有篡改的上述应用程序,实施由多个解密部分处理构成的解密处理,按每个解密部分处理,对向该解密部分处理的输入数据及来自该解密部分处理的输出数据的双方,实施单向性的变换,生成解密验证值,按每个解密部分处理,生成包含上述输入数据及上述解密验证值的验证数据;上述输出单元还将上述验证数据向上述保护控制模组输出;上述解密单元对被加密的上述应用程序实施由多个解密部分处理构成的解密处理;上述保护控制模组还包括第二输出单元,该第二输出单元按上述解密单元的每个解密部分处理将来自该解密部分处理的输出数据及接受到的上述验证数据向检测模组输出;上述检测模组包括接收单元,接受上述输出数据及上述验证数据;以及验证单元,使用接受到的上述输出数据及上述验证数据进行验证,在验证失败的情况下,输出该验证结果。这里,也可以是,上述验证单元对包含在上述验证数据中的上述输入数据及接受到的上述输出数据的双方实施与单向性的上述变换相同的变换,生成第二验证值,判断包含在上述验证数据中的上述解密验证值与生成的上述第二验证值是否一致,由此进行上述验证,在不一致的情况下,看作验证失败,输出上述验证结果。这里,也可以是,上述保护控制模组还保护其他一个以上的应用程序;上述管理装置还包括证书生成单元,针对其他上述应用程序,按每个解密部分处理生成解密验证值,按每个解密部分处理,对针对包括上述应用程序及其他应用程序的多个上述应用程序生成的多个上述解密验证值实施数字签名而生成证书;上述验证数据生成单元生成包含按每个解密部分处理生成的针对其他上述应用程序的上述解密验证值及按每个解密部分处理生成的上述证书的上述验证数据;上述输出单元将包含上述证书的上述验证数据向上述保护控制模组输出;上述第二输出单元将包含上述证书的上述验证数据向上述检测模组输出;上述接收单元接受包含上述证书的上述验证数据;上述验证单元还按每个解密部分处理,使用包含在接受到的上述验证数据中的上述证书进行验证。这里,也可以是,上述验证单元对包含在上述验证数据中的上述输入数据及接受 到的上述输出数据的双方实施与单向性的上述变换相同的变换,生成第二验证值,使用包含在上述验证数据中的针对其他上述应用程序的上述解密验证值、所生成的上述第二验证值以及上述证书,进行上述验证。这里,也可以是,多个上述解密部分处理分别对应于多个上述检测模组;上述第二输出单元对与各解密部分处理对应的上述检测模组,输出来自该解密部分处理的上述输出数据及上述验证数据。这里,也可以是,各检测模组还包括将用于识别与自身对应的上述解密部分处理的识别信息发送给其他检测模组的发送单元;各检测模组的上述接收单元还从其他检测模组接受用于识别与该其他检测模组对应的上述解密部分处理的识别信息;各检测模组的上述验证单元还对接受到的上述识别信息及用于识别与自身对应的上述解密部分处理的识别信息的重复性、以及接受到的上述识别信息及用于识别与自身对应的上述解密部分处理的识别信息与用于分别识别多个上述解密部分处理的识别信息的完整性进行验证。这里,也可以是,各检测模组的上述验证单元在接受到的上述识别信息及用于识别与自身对应的上述解密部分处理的上述识别信息中有重复、或者接受到的上述识别信息及用于识别与自身对应的上述解密部分处理的上述识别信息没有包括用于识别多个解密部分处理的全部的识别信息的情况下,输出表示验证失败的验证结果。这里,也可以是,上述保护控制模组被附加了对没有篡改的上述保护控制模组实施数字签名而生成的篡改检测用证书;各检测模组包括在上述解密结束、上述解密密钥被删除后、使用上述篡改检测用证书进行上述保护控制模组的篡改的检测的验证单元。这里,也可以是,上述分散密钥生成单元生成多个上述分散密钥,以使得通过将生成的多个分散密钥相加而能够得到上述解密密钥;上述复原单元通过将多个上述分散密钥相加,复原上述解密密钥。这里,也可以是,上述分散密钥生成单元使用秘密分散法从上述解密密钥生成多个上述分散密钥;上述复原单元使用上述秘密分散法从多个上述分散密钥将上述解密密钥复原。这里,也可以是,上述保护控制模组还包括将被加密的上述应用程序对上述检测模组输出的第二输出单元;各检测模组包括第二取得单元,从上述保护控制模组取得被加密的上述应用程序;第二解密单元,使用所存储的上述分散密钥,将被加密的上述应用程序进行部分解密而生成部分解密文;以及第三输出单元,将所生成的上述部分解密文向上述保护控制模组输出;上述取得单元从各检测模组取得上述部分解密文;上述解密单元使用所取得的多个上述部分解密文,将被加密的上述应用程序解密。这里,也可以是,上述应用程序通过RSA加密方式被加密;上述第二解密单元对被加密的上述应用程序实施基于上述分散密钥的值的乘幂,生成上述部分解密文;上述解密单元通过将多个上述部分解密文的值相乘,将被加密的上述应用程序解密。这里,也可以是,上述保护控制模组还包括从全部的上述检测模组中选择多个检测模组的选择单元;上述第二输出单元对由上述选择单元选择的上述检测模组输出被加密的上述应用程序。这里,也可以是,上述保护控制模组被附加了对没有篡改的上述保护控制 模组实施数字签名而生成的篡改检测用证书;各检测模组包括使用上述篡改检测用证书对上述保护控制模组的篡改进行检测的验证单元。这里,也可以是,多个上述检测模组中的一个上述检测模组被无效化;上述分散密钥生成单元还将分配给被无效化的上述检测模组的上述分散密钥分解,生成多个再分散密钥;上述输出单元还将所生成的多个再分散密钥分别向没有被无效化的多个上述检测模组输出;没有被无效化的各检测模组还包括取得上述再分散密钥、使用所取得的上述再分散密钥将存储的上述分散密钥更新而生成新的分散密钥的分散密钥更新单元。这里,也可以是,上述分散密钥生成单元生成多个上述再分散密钥,以使得通过将所生成的多个再分散密钥相加能够得到上述分散密钥;上述分散密钥更新单元通过对存储的上述分散密钥加上取得的上述再分散密钥,生成新的上述分散密钥。这里,也可以是,多个上述检测模组被分类为第一组及第二组;上述分散密钥生成单元还将上述解密密钥分解而生成多个第二分散密钥;上述输出单元将所生成的多个上述分散密钥分别向属于上述第一组的多个上述检测模组输出,还将所生成的多个上述第二分散密钥分别向属于上述第二组的多个上述检测模组输出;属于上述第一组的各检测模组取得上述分散密钥并存储到内部中;属于上述第二组的各检测模组取得上述第二分散密钥并存储到内部中;上述取得单元从属于第一或第二组的多个上述检测模组分别取得上述分散密钥或上述第二分散密钥;上述复原单元将所取得的多个上述分散密钥综合或者将所取得的多个上述第二分散密钥综合,来复原上述解密密钥。这里,也可以是,上述保护控制模组及多个上述检测模组分别是计算机程序;上述应用程序、上述保护控制模组及多个上述检测模组存储在信息处理装置中。这里,也可以是,上述输出单元在上述信息处理装置的初始设定时,将多个上述分散密钥分别向多个上述检测模组输出。这里,也可以是,在上述信息处理装置中执行上述应用程序时,上述取得单元从多个上述检测模组分别取得上述分散密钥。此外,本发明的一技术方案,是一种管理装置,对保护应用程序的保护控制模组和监视上述保护控制模组的篡改的多个检测模组进行管理,其特征在于,具备分散密钥生成单元,将解密密钥分解而生成多个分散密钥,上述解密密钥用于将被加密的上述应用程序解密;以及输出单元,将所生成的多个上述分散密钥分别向多个上述检测模组输出。
这里,也可以是,上述管理装置还包括验证数据生成单元,对被加密的没有篡改的上述应用程序,实施由多个解密部分处理构成的解密处理,按每个解密部分处理,对向该解密部分处理的输入数据及来自该解密部分处理的输出数据的双方实施单向性的变换,生成解密验证值,按每个解密部分处理生成包含上述输入数据及上述解密验证值的验证数据;上述输出单元还将上述验证数据向上述保护控制模组输出。这里,也可以是,上述保护控制模组还保护其他一个以上的应用程序;上述管理装置还包括证书生成单元,针对其他上述应用程序,按每个解密部分处理生成解密验证值,按每个解密部分处理,对针对包括上述应用程序及其他应用程序的多个上述应用程序生成的多个上述解密验证值实施数字签名而生成证书;上述验证数据生成单元生成包括按每个解密部分处理生成的针对其他上述应用程序的上述解密验证值及按每个解密部分处理生成的上述证书的上述验证数据;上述输出单元将包含上述证书的上述验证数据向上述保护控制模组输出。这里,也可以是,上述分散密钥生成单元生成多个上述分散密钥,以使得通过将所生成的多个分散密钥相加能够得到上述解密密钥。 这里,也可以是,上述分散密钥生成单元使用秘密分散法从上述解密密钥生成多个上述分散密钥。这里,也可以是,多个上述检测模组中的一个上述检测模组被无效化;上述分散密钥生成单元还将分配给被无效化的上述检测模组的上述分散密钥分解,生成多个再分散密钥;上述输出单元还将所生成的多个再分散密钥分别向没有被无效化的多个上述检测模组输出·这里,也可以是,上述分散密钥生成单元生成多个上述再分散密钥,以使得通过将所生成的多个再分散密钥的相加能够得到上述分散密钥。这里,也可以是,多个上述检测模组被分类为第一及第二组;上述分散密钥生成单元还将上述解密密钥分解而生成多个第二分散密钥;上述输出单元将所生成的多个上述分散密钥分别向属于上述第一组的多个上述检测模组输出,还将所生成的多个上述第二分散密钥分别向属于上述第二组的多个上述检测模组输出。这里,也可以是,上述保护控制模组及多个上述检测模组分别是计算机程序;上述应用程序、上述保护控制模组及多个上述检测模组存储在信息处理装置中;上述输出单元在上述信息处理装置的初始设定时将多个上述分散密钥分别向多个上述检测模组输出。此外,本发明的一技术方案是一种保护控制模组,保护应用程序,被多个检测模组监视篡改。由管理装置将用于将被加密的上述应用程序解密的解密密钥分解而生成多个分散密钥,将所生成的多个上述分散密钥分别向多个上述检测模组输出。由各检测模组将上述分散密钥存储到内部中。上述保护控制模组的特征在于,具备取得单元,从多个上述检测模组分别取得上述分散密钥;复原单元,将所取得的多个上述分散密钥综合而复原上述解密密钥;解密单元,使用由上述复原单元复原的上述解密密钥,将被加密的上述应用程序解密;删除单元,在由上述解密单元进行的解密结束后,将上述解密密钥删除。这里,也可以是,上述管理装置还对被加密的没有篡改的上述应用程序,实施由多个解密部分处理构成的解密处理,按每个解密部分处理,对向该解密部分处理的输入数据及来自该解密部分处理的输出数据的双方实施单向性的变换,生成解密验证值,按每个解密部分处理生成包含上述输入数据及上述解密验证值的验证数据,将上述验证数据向上述保护控制模组输出;上述解密单元对被加密的上述应用程序实施由多个解密部分处理构成的解密处理;上述保护控制模组还包括按上述解密单元的每个解密部分处理将来自该解密部分处理的输出数据及接受到的上述验证数据向检测模组输出的第二输出单元。这里,也可以是,上述保护控制模组还保护其他一个以上的应用程序;上述管理装置还针对其他上述应用程序,按每个解密部分处理生成解密验证值,按每个解密部分处理对针对包括上述应用程序及其他应用程序的多个上述应用程序生成的多个上述解密验证值实施数字签名而生成证书,生成包括按每个解密部分处理生成的针对其他上述应用程序的上述解密验证值及按每个解密部分处理生成的上述证书的上述验证数据,将包含上述证书的上述验证数据向上述保护控制模组输出;上述第二输出单元将包含上述证书的上述验证数据向上述检测模组输出。
这里,也可以是,多个上述解密部分处理分别对应于多个上述检测模组;上述第二输出单元对与各解密部分处理对应的上述检测模组,输出来自该解密部分处理的上述输出数据及上述验证数据。这里,也可以是,上述管理装置生成多个上述分散密钥,以使得通过将所生成的多个分散密钥相加能够得到上述解密密钥;上述复原单元通过将多个上述分散密钥相加,复原上述解密密钥。这里,也可以是,上述管理装置使用秘密分散法从上述解密密钥生成多个上述分散密钥;上述复原单元使用上述秘密分散法从多个上述分散密钥复原上述解密密钥。这里,也可以是,上述保护控制模组还包括将被加密的上述应用程序对上述检测模组输出的第二输出单元;各检测模组从上述保护控制模组取得被加密的上述应用程序,使用存储的上述分散密钥,将被加密的上述应用程序进行部分解密,生成部分解密文,将所生成的上述部分解密文向上述保护控制模组输出;上述取得单元从各检测模组取得上述部分解密文;上述解密单元使用所取得的多个上述部分解密文,将被加密的上述应用程序解
LU O这里,也可以是,上述应用程序通过RSA加密方式被加密;由上述检测模组对被加密的上述应用程序实施基于上述分散密钥的值的乘幂,生成上述部分解密文;上述解密单元通过将多个上述部分解密文的值相乘,将被加密的上述应用程序解密。这里,也可以是,上述保护控制模组还包括从全部的上述检测模组中选择多个检测模组的选择单元;上述第二输出单元对由上述选择单元选择的上述检测模组输出被加密的上述应用程序。这里,也可以是,多个上述检测模组被分类为第一及第二组;上述管理装置还将上述解密密钥分解而生成多个第二分散密钥,将所生成的多个上述分散密钥分别向属于上述第一组的多个上述检测模组输出,还将所生成的多个上述第二分散密钥分别向属于上述第二组的多个上述检测模组输出;属于上述第一组的各检测模组将上述分散密钥存储到内部中;属于上述第二组的各检测模组将上述第二分散密钥存储到内部中;上述取得单元从属于第一或第二组的多个上述检测模组分别取得上述分散密钥或上述第二分散密钥;上述复原单元将所取得的多个上述分散密钥综合或者将所取得的多个上述第二分散密钥综合,来复原上述解密密钥。
这里,也可以是,上述保护控制模组及多个上述检测模组分别是计算机程序;上述应用程序、上述保护控制模组及多个上述检测模组存储在信息处理装置中。这里,也可以是,在上述信息处理装置中执行上述应用程序时,上述取得单元从多个上述检测模组分别取得上述分散密钥。本发明的一技术方案是对保护应用程序的保护控制模组监视篡改的多个检测模组中的一个检测模组。由管理装置将用于将被加密的上述应用程序解密的解密密钥分解而生成多个分散密钥,将所生成的多个上述分散密钥分别向多个上述检测模组输出。上述检测模组的特征在于,具备取得单元,取得上述分散密钥;存储单元,存储所取得的上述分散密钥;以及输出单元,对上述保护控制模组输出上述分散密钥。这里,也可以是,由上述管理装置对被加密的没有篡改的上述应用程序实施由多个解密部分处理构成的解密处理,按每个解密部分处理对向该解密部分处理的输入数据及来自该解密部分处理的输出数据的双方实施单向性的变换,生成解密验证值,按每个解密部分处理生成包含上述输入数据及上述解密验证值的验证数据,进而将上述验证数据向上述保护控制模组输出;由上述保护控制模组对被加密的上述应用程序实施由多个解密部分 处理构成的解密处理,还按上述解密单元的每个解密部分处理,将来自该解密部分处理的输出数据及接受到的上述验证数据向检测模组输出;上述检测模组还包括接收单元,接受上述输出数据及上述验证数据;以及验证单元,使用接受到的上述输出数据及上述验证数据进行验证,在验证失败的情况下,输出该验证结果。这里,也可以是,上述验证单元对包含在上述验证数据中的上述输入数据及接受到的上述输出数据的双方实施与单向性的上述变换相同的变换,生成第二验证值,判断包含在上述验证数据中的上述解密验证值与所生成的上述第二验证值是否一致,进行上述验证,在不一致的情况下,看作验证失败,输出上述验证结果。这里,也可以是,上述保护控制模组还保护其他一个以上的应用程序;上述管理装置还针对其他上述应用程序,按每个解密部分处理生成解密验证值,按每个解密部分处理对针对包括上述应用程序及其他应用程序的多个上述应用程序生成的多个上述解密验证值实施数字签名而生成证书,生成包括按每个解密部分处理生成的针对其他上述应用程序的上述解密验证值及按每个解密部分处理生成的上述证书的上述验证数据,将包含上述证书的上述验证数据向上述保护控制模组输出;由上述保护控制模组将包含上述证书的上述验证数据向上述检测模组输出;上述接收单元接受包含上述证书的上述验证数据;上述验证单元还按每个解密部分处理,使用包含在接受到的上述验证数据中的上述证书进行验证。这里,也可以是,上述验证单元对包含在上述验证数据中的上述输入数据及接受到的上述输出数据的双方实施与单向性的上述变换相同的变换,生成第二验证值,使用包含在上述验证数据中的针对其他上述应用程序的上述解密验证值及所生成的上述第二验证值、以及上述证书,进行上述验证。这里,也可以是,多个上述解密部分处理分别对应于多个上述检测模组;由上述保护控制模块对与各解密部分处理对应的上述检测模块输出来自该解密部分处理的上述输出数据及上述验证数据。上述检测模组还包括将用于识别与自身对应的上述解密部分处理的识别信息发送给其他检测模组的发送单元;上述接收单元还从其他检测模组接受用于识别与该其他检测模组对应的上述解密部分处理的识别信息;上述验证单元还对接受到的上述识别信息及用于识别与自身对应的上述解密部分处理的识别信息的重复性、以及接受到的上述识别信息及用于识别与自身对应的上述解密部分处理的识别信息与分别识别多个上述解密部分处理的识别信息的完整性进行验证。这里,也可以是,上述验证单元在接受到的上述识别信息及用于识别与自身对应的上述解密部分处理的上述识别信息中有重复、或者接受到的上述识别信息及用于识别与自身对应的上述解密部分处理的上述识别信息没有包括用于识别多个解密部分处理的全部的识别信息的情况下,输出表示验证失败的验证结果。这里,也可以是,上述保护控制模组被附加了对没有篡改的上述保护控制模组实施数字签名而生成的篡改检测用证书;上述检测模组还包括在上述解密结束、上述解密密钥被删除后、使用上述篡改检测用证书对上述保护控制模组的篡改进行检测的验证单元。
这里,也可以是,由上述保护控制模组还将被加密的上述应用程序对上述检测模组输出;上述检测模组还包括第二取得单元,从上述保护控制模组取得被加密的上述应用程序;第二解密单元,使用存储的上述分散密钥,将被加密的上述应用程序进行部分解密,生成部分解密文;以及第三输出单元,将所生成的上述部分解密文向上述保护控制模组输出。这里,也可以是,上述应用程序通过RSA加密方式被加密;上述第二解密单元对被加密的上述应用程序实施基于上述分散密钥的值的乘幂,生成上述部分解密文。这里,也可以是,上述保护控制模组被附加了对没有篡改的上述保护控制模组实施数字签名而生成的篡改检测用证书;上述检测模组包括使用上述篡改检测用证书对上述保护控制模组的篡改进行检测的验证单元。这里,也可以是,多个上述检测模组中的一个上述检测模组被无效化;由上述管理装置还将分配给被无效化的上述检测模组的上述分散密钥分解,生成多个再分散密钥,将生成的多个再分散密钥分别向没有被无效化的多个上述检测模组输出;没有被无效化的上述检测模组还包括取得上述再分散密钥、使用所取得的上述再分散密钥将存储的上述分散密钥更新而生成新的分散密钥的分散密钥更新单元。这里,也可以是,由上述管理装置生成多个上述再分散密钥,以使得通过将所生成的多个再分散密钥相加,能够得到上述分散密钥;上述分散密钥更新单元通过对存储的上述分散密钥加上所取得的上述再分散密钥,生成新的上述分散密钥。这里,也可以是,上述保护控制模组及多个上述检测模组分别是计算机程序;上述应用程序、上述保护控制模组及多个上述检测模组存储在信息处理装置中。本发明的一技术方案,是一种控制方法,用于管理装置,该管理装置管理保护应用程序的保护控制模组、以及监视上述保护控制模组的篡改的多个检测模组,该控制方法的特征在于,包括分散密钥生成步骤,将解密密钥分解而生成多个分散密钥,上述解密密钥用于将被加密的上述应用程序解密;以及输出步骤,将所生成的多个上述分散密钥分别向多个上述检测模组输出。本发明的一技术方案,是一种计算机可读取的记录介质,记录有在管理装置中使用的控制用的计算机程序,该管理装置管理保护应用程序的保护控制模组、以及监视上述保护控制模组的篡改的多个检测模组,该记录介质记录有用于使作为计算机的上述管理装置执行以下步骤的计算机程序分散密钥生成步骤,将解密密钥分解而生成多个分散密钥,上述解密密钥用于将被加密的上述应用程序解密;以及输出步骤,将所生成的多个上述分散密钥分别向多个上述检测模组输出。本发明的一技术方案,是一种计算机程序,其是在管理装置中使用的控制用的计算机程序,该管理装置管理保护应用程序的保护控制模组、以及监视上述保护控制模组的篡改的多个检测模组,该计算机程序用于使作为计算机的上述管理装置执行分散密钥生成步骤,将解密密钥分解而生成多个分散密钥,上述解密密钥用于将被加密的上述应用程序解密;以及输出步骤,将所生成的多个上述分散密钥分别向多个上述检测模组输出。本发明的一技术方案,是一种集成电路,构成管理装置,该管理装置管理保护应用程序的保护控制模组、以及监视上述保护控制模组的篡改的多个检测模组,该集成电路的特征在于,具备分散密钥生成单元,将解密密钥分解而生成多个分散密钥,上述解密密钥用于将被加密的上述应用程序解密;以及输出单元,将所生成的多个上述分散密钥分别向多个上述检测模组输出。
本发明的一技术方案,是一种控制方法,在保护应用程序、被多个检测模组监视篡改的保护控制模组中使用。由管理装置将用于将被加密的上述应用程序解密的解密密钥分解而生成多个分散密钥,将所生成的多个上述分散密钥分别向多个上述检测模组输出;由各检测模组将上述分散密钥存储到内部中。上述控制方法的特征在于,包括取得步骤,从多个上述检测模组分别取得上述分散密钥;复原步骤,将所取得的多个上述分散密钥综合而复原上述解密密钥;解密步骤,使用由上述复原步骤复原的上述解密密钥,将被加密的上述应用程序解密;以及删除步骤,在上述解密步骤的解密结束后,将上述解密密钥删除。本发明的一技术方案,是一种计算机可读取的记录介质,记录有在保护控制模组中使用的控制用的计算机程序,该保护控制模组保护应用程序,被多个检测模组监视篡改。由管理装置将用于将被加密的上述应用程序解密的解密密钥分解而生成多个分散密钥,将所生成的多个上述分散密钥分别向多个上述检测模组输出;由各检测模组将上述分散密钥存储到内部中。上述记录介质记录有用于使作为计算机的上述保护控制模组执行以下步骤的计算机程序取得步骤,从多个上述检测模组分别取得上述分散密钥;复原步骤,将所取得的多个上述分散密钥综合而复原上述解密密钥;解密步骤,使用由上述复原步骤复原的上述解密密钥,将被加密的上述应用程序解密;以及删除步骤,在上述解密步骤的解密结束后,将上述解密密钥删除。本发明的一技术方案,是一种计算机程序,其是在保护应用程序、被多个检测模组监视篡改的保护控制模组中使用的控制用的计算机程序。由管理装置将用于将被加密的上述应用程序解密的解密密钥分解而生成多个分散密钥,将所生成的多个上述分散密钥分别向多个上述检测模组输出;由各检测模组将上述分散密钥存储到内部中。上述计算机程序用于使作为计算机的上述保护控制模组执行取得步骤,从多个上述检测模组分别取得上述分散密钥;复原步骤,将所取得的多个上述分散密钥综合而复原上述解密密钥;解密步骤,使用由上述复原步骤复原的上述解密密钥,将被加密的上述应用程序解密;以及删除步骤,在上述解密步骤的解密结束后,将上述解密密钥删除。本发明的一技术方案,是一种集成电路,构成保护应用程序、被多个检测模组监视篡改的保护控制模组。由管理装置将用于将被加密的上述应用程序解密的解密密钥分解而生成多个分散密钥,将所生成的多个上述分散密钥分别向多个上述检测模组输出;由各检测模组将上述分散密钥存储到内部中。上述集成电路具备取得单元,从多个上述检测模组分别取得上述分散密钥;复原单元,将所取得的多个上述分散密钥综合而复原上述解密密钥;解密单元,使用由上述复原单元复原的上述解密密钥,将被加密的上述应用程序解密;以及删除单元,在由上述解密单元进行的解密结束后,将上述解密密钥删除。本发明的一技术方案,是一种在对保护应用程序的保护控制模组监视篡改的多个检测模组中的一个检测模组中使用的方法。由管理装置将用于将被加密的上述应用程序解密的解密密钥分解而生成多个分散密钥,将所生成的多个上述分散密钥分别向多个上述检测模组输出。上述方法的特征在于,包括取得步骤,取得上述分散密钥;存储步骤,存储所取得的上述分散密钥;以及输出步骤,对上述保护控制模组输出上述分散密钥。本发明的一技术方案,是一种计算机可读取的记录介质,记录有在对保护应用程序的保护控制模组监视篡改的多个检测模组中的一个检测模组中使用的计算机程序。由管 理装置将用于将被加密的上述应用程序解密的解密密钥分解而生成多个分散密钥,将所生成的多个上述分散密钥分别向多个上述检测模组输出。上述记录介质记录有用于使作为计算机的上述检测模组执行以下步骤的计算机程序取得步骤,取得上述分散密钥;存储步骤,存储所取得的上述分散密钥;以及输出步骤,对上述保护控制模组输出上述分散密钥。本发明的一技术方案,是一种在对保护应用程序的保护控制模组监视篡改的多个检测模组中的一个检测模组中使用的计算机程序。由管理装置将用于将被加密的上述应用程序解密的解密密钥分解而生成多个分散密钥,将所生成的多个上述分散密钥分别向多个上述检测模组输出。上述计算机程序用于使作为计算机的上述检测模组执行取得步骤,取得上述分散密钥;存储步骤,存储所取得的上述分散密钥;以及输出步骤,对上述保护控制模组输出上述分散密钥。本发明的一技术方案,是一种集成电路,构成对保护应用程序的保护控制模组监视篡改的多个检测模组中的一个检测模组。,由管理装置将用于将被加密的上述应用程序解密的解密密钥分解而生成多个分散密钥,将所生成的多个上述分散密钥分别向多个上述检测模组输出。上述集成电路的特征在于,具备取得单元,取得上述分散密钥;存储单元,存储所取得的上述分散密钥;以及输出单元,对上述保护控制模组输出上述分散密钥。I.实施方式I这里,对作为本发明的实施方式I的篡改监视系统IOd进行说明。(I)篡改监视系统IOd的结构篡改监视系统IOd如图I所示,包括保护控制模组120d、多个检测模组131d、132d、...、135d 及管理装置 200d。保护控制模组120d保护应用程序。检测模组131d、132d、…、135d分别监视保护控制模组120d的篡改。管理装置200d如图I所示,包括分散密钥生成部251d及输出部252d。分散密钥生成部251d将解密密钥分解而生成多个分散密钥,该解密密钥用于将被加密的上述应用程序解密。输出部252d将所生成的多个上述分散密钥分别向多个上述检测模组输出。检测模组131d、132d、…、135d分别取得分散密钥并存储在内部中。
保护控制模组120d如图I所示,包括取得部381d、复原部382d、解密部383d及删除部384d。取得部381d从多个检测模组131d、132d、…、135d分别取得分散密钥。复原部382d将所取得的多个上述分散密钥综合而复原上述解密密钥。解密部383d使用由复原部382d复原的上述解密密钥,将被加密的上述应用程序解密。删除部384d在由解密部383d进行的解密结束后,将上述解密密钥删除。根据该结构,保护控制模组120d不用总是保持解密密钥,而仅在将被加密的应用 程序解密的时间段中保持解密密钥,在解密结束后将该解密密钥删除,所以能够降低上述解密密钥从保护控制模组120d不正当地泄漏的可能性。这样,能够提高篡改监视系统IOd的安全性。(2)也可以是,管理装置200d还包括验证数据生成部(未图示)。验证数据生成部对被加密的没有篡改的上述应用程序实施由多个解密部分处理构成的解密处理,按每个解密部分处理,对向该解密部分处理的输入数据及从该解密部分处理的输出数据的双方实施单向性的变换,生成解密验证值,按每个解密部分处理生成包括上述输入数据及上述解密验证值的验证数据。输出部252d还将上述验证数据向保护控制模组120d输出。解密部383d对被加密的上述应用程序实施由多个解密部分处理构成的解密处理。保护控制模组还包括第二输出部(未图示)。第二输出部按解密部383d的每个解密部分处理,将来自该解密部分处理的输出数据及接受到的上述验证数据向检测模组131d输出。检测模组131d包括接收部(未图示)和验证部(未图示)。接收部接受上述输出数据及上述验证数据。验证部使用接受到的上述输出数据及上述验证数据进行验证,在验证失败的情况下,输出该验证结果。根据该结构,检测模组能够使用上述输出数据及上述验证数据进行针对构成保护控制模组120d具有的解密处理的解密部分处理的篡改的验证。(3)也可以是,验证部对包含在上述验证数据中的上述输入数据及接受到的上述输出数据的双方实施与单向性的上述变换相同的变换,生成第二验证值,通过判断包含在上述验证数据中的上述解密验证值与所生成的上述第二验证值是否一致,进行上述验证,在不一致的情况下,看作验证失败,输出上述验证结果。(4)也可以是,保护控制模组120d还保护其他的一个以上的应用程序。管理装置200d还包括证书生成单元(未图示)。证书生成单元对其他上述应用程序按每个解密部分处理生成解密验证值,按每个解密部分处理,对针对包括上述应用程序及其他应用程序的多个上述应用程序生成的多个上述解密验证值实施数字签名而生成证书。验证数据生成部生成下述验证数据,该验证数据包括按每个解密部分处理生成的针对其他上述应用程序的上述解密验证值及按每个解密部分处理生成的上述证书。
输出部252d将包括上述证书的上述验证数据向保护控制模组120d输出。第二输出部将包括上述证书的上述验证数据向检测模组131d输出。接收部接受包括上述证书的上述验证数据。验证部还按每个解密部分处理,使用包含在接受到的上述验证数据中的上述证书进行验证。根据该结构,在多个应用程序进行动作的情况下,检测模组能够使用上述输出数据及上述验证数据对构成保护控制模组120d所具有的解密处理的解密部分处理进行篡改的验证。(5)也可以是,验证部对包含在上述验证数据中的上述输入数据及接受到的上述输出数据的双方实施与单向性的上述变换相同的变换,生成第二验证值,使用包含在上述 验证数据中的针对其他上述应用程序的上述解密验证值及生成的上述第二验证值、以及上述证书,进行上述验证。(6)多个上述解密部分处理分别对应于多个上述检测模组。第二输出部也可以对与各解密部分处理对应的上述检测模组输出来自该解密部分处理的上述输出数据及上述验证数据。根据该结构,各检测模组对对应的解密部分处理进行验证,所以在不具有与解密部分处理的对应关系的检测模组被篡改的情况下,能够使得不影响篡改的验证。(7)也可以是,各检测模组还包括发送部,该发送部将用于识别与自身对应的上述解密部分处理的识别信息对其他检测模组发送。各检测模组的接收部还从其他检测模组接受用于识别与该其他检测模组对应的上述解密部分处理的识别信息。各检测模组的验证部还对接受到的上述识别信息及与自身对应的上述解密部分处理的识别信息的重复性、以及接受到的上述识别信息及用于识别与自身对应的上述解密部分处理的识别信息与用于分别识别多个上述解密部分处理的识别信息的完整性进行验证。根据该结构,各检测模组对上述重复性及上述完整性进行验证,所以在多个检测模组被篡改为验证相同的解密部分处理的情况下、或检测模组被篡改为不验证对应的解密部分处理的情况下,也能够检测这样的篡改。(8)也可以是,在接受到的上述识别信息及用于识别与自身对应的上述解密部分处理的上述识别信息中有重复、或者接受到的上述识别信息及用于识别与自身对应的上述解密部分处理的上述识别信息不包括用于识别多个解密部分处理的全部的识别信息的情况下,各检测模组的验证部输出表示验证失败的验证结果。(9)保护控制模组120d中被附加了对没有篡改的上述保护控制模组实施数字签名而生成的篡改检测用证书。各检测模组也可以包括在上述解密结束、上述解密密钥被删除后、使用上述篡改检测用证书对上述保护控制模组进行篡改的检测的验证部。根据该结构,能够进行使用篡改检测用证书的检测。(10)也可以是,分散密钥生成部251d生成多个上述分散密钥,以使得通过所生成的多个分散密钥的相加来得到上述解密密钥。
复原部382d通过多个上述分散密钥的相加,复原上述解密密钥。根据该结构,能够将原来的解密密钥复原。(11)也可以是,分散密钥生成部251d使用秘密分散法从上述解密密钥生成多个上述分散密钥。复原部382d使用上述秘密分散法从多个上述分散密钥复原上述解密密钥。根据该结构,能够将原来的解密密钥复原。(12)也可以是,保护控制模组120d还包括将被加密的上述应用程序对上述检测模组输出的第二输出部。 各检测模组包括第二取得部、第二解密部、和第三输出部。第二取得部从保护控制模组120d取得被加密的上述应用程序。第二解密部使用存储的上述分散密钥将被加密的上述应用程序进行部分解密,生成部分解密文。第三输出部将所生成的上述部分解密文向保护控制模组120d输出。取得部381d从各检测模组取得上述部分解密文。解密部383d使用所取得的多个上述部分解密文,将被加密的上述应用程序解密。根据该结构,保护控制模组120d不用总是保持解密密钥。因此,上述解密密钥不可能从保护控制模组120d不正当地泄漏。(13)也可以是,上述应用程序通过RSA加密方式被加密。第二解密部对被加密的上述应用程序实施基于上述分散密钥的值的乘幂,生成上述部分解密文。解密部383d通过将多个上述部分解密文的值相乘,将被加密的上述应用程序解
LU O根据该结构,能够将被加密的应用程序解密。(14)也可以是,保护控制模组120d还包括从全部的上述检测模组中选择多个检测模组的选择部。第二输出部对由选择部选择的上述检测模组输出被加密的上述应用程序。根据该结构,由于所选择的检测模组进行部分解密,所以即使是没有被选择的检测模组被篡改的情况,也不会对验证造成影响。(15)也可以是,保护控制模组120d中被附加了对没有篡改的上述保护控制模组实施数字签名而生成的篡改检测用证书。各检测模组包括使用上述篡改检测用证书对上述保护控制模组进行篡改的检测的验证部。根据该结构,能够进行使用篡改检测用证书的检测。(16)也可以是,多个上述检测模组中的一个上述检测模组被无效化。分散密钥生成部251d还将分配给被无效化的上述检测模组的上述分散密钥分解而生成多个再分散密钥。输出部252d还将所生成的多个再分散密钥分别向没有被无效化的多个上述检测模组输出。没有被无效化的各检测模组还包括取得上述再分散密钥、使用所取得的上述再分散密钥将存储的上述分散密钥更新而生成新的分散密钥的分散密钥更新部。根据该结构,即使在一个检测模组被无效化的情况下,保护控制模组也能够从没有被无效化的检测模组取得新的分散密钥而将解密密钥复原。(17)也可以是,分散密钥生成部251d生成多个上述再分散密钥,以使得通过所生成的多个再分散密钥的相加来得到上述分散密钥。分散密钥更新部通过对存储的上述分散密钥加上所取得的上述再分散密钥,生成新的上述分散密钥。(18)也可以是,多个上述检测模组被分类为第一及第二组。
分散密钥生成部251d还将上述解密密钥分解而生成多个第二分散密钥。输出部252d将所生成的多个上述分散密钥分别向属于上述第一组的多个上述检测模组输出,进而将所生成的多个上述第二分散密钥分别向属于上述第二组的多个上述检测模组输出。属于上述第一组的各检测模组取得上述分散密钥,存储到内部中。属于上述第二组的各检测模组取得上述第二分散密钥,存储到内部中。取得部381d从属于第一或第二组的多个上述检测模组分别取得上述分散密钥或上述第二分散密钥。复原部382d将所取得的多个上述分散密钥综合或者将所取得的多个上述第二分散密钥综合,来复原上述解密密钥。根据上述结构,即使在属于第一组的检测模组被篡改的情况下,也能够使用属于第二组的检测模组进行验证。此外,即使在属于第二组的检测模组被篡改的情况下,也能够使用属于第一组的检测模组进行验证。(19)也可以是,保护控制模组120d及多个检测模组131d、132d、· · ·、135d分别
是计算机程序。上述应用程序、保护控制模组120d及多个检测模组131d、132d、…、135d存储在
信息处理装置中。(20)也可以是,输出部252d在上述信息处理装置的初始设定时将多个上述分散密钥分别向多个上述检测模组输出。(21)也可以是,在上述信息处理装置中执行上述应用程序时,取得部381d从多个检测模组131d、132d、…、135d分别取得上述分散密钥。(22)也可以是,由管理装置200d将用于将被加密的上述应用程序解密的解密密钥分解而生成多个分散密钥,将所生成的多个上述分散密钥分别向多个检测模组131d、132d、…、135d输出。这里,检测模组131d、132d、…、135d对保护应用程序的保护控制模组监视篡改。检测模组131d、132d、…、135d中的一个检测模组也可以具备取得部、存储部和输出部。取得部取得上述分散密钥。存储部存储所取得的上述分散密钥。输出部对保护控制模组120d输出上述分散密钥。2.实施方式2
这里,对作为本发明的实施方式2的检测系统10进行说明。2. I检测系统10的结构检测系统10如图2所示,包括设备100及管理装置200,设备100和管理装置200经由以因特网为代表的网络20连接。设备100是向使用者提供各种服务的信息处理装置。例如,设备100经由网络20对内容分发服务器装置(未图示)进行访问,购买音乐及影像等的内容并再现。此外,设备100经由网络20对金融机构的服务器装置(未图示)进行访问,进行网上银行操作(存款的余额查询及转账等)。设备100例如是PC (个人计算机)、便携电话机、便携信息终端装置、数字广播接收装置、DVD (Digital Versatile Disc)播放器、BD (Blu — ray Disc)播放器、内容记录装 置等。在设备100中,安装有应用程序,执行该应用程序。此外,在设备100中,安装有作为计算机程序的保护控制模组120及多个检测模组131、132、…、135。保护控制模组120保护应用程序。此外,多个检测模组131、132、…、135分别监视对保护控制模组120的篡改。管理装置200管理保护控制模组120及多个检测模组131、132、…、135。2. 2管理装置200的结构管理装置200生成为了验证保护控制模组120是否正确地动作而需要的验证基数据,向设备100输出。管理装置200如图2所示,包括判断部210、软件发布部220及通信部230。具体而言,管理装置200 是具备 CPlXCentral Processing Unit)、R0M(Read OnlyMemory)> RAM (Random Access Memory)、硬盘单兀、NIC (Network Interface Card)等的计算机系统。在ROM或硬盘单元中,存储有用于控制管理装置200的动作的控制用的计算机程序。通过由CPU按照这些控制用的计算机程序动作,管理装置200的判断部210及软件发布部220发挥其功能。此外,通信部230通过NIC发挥其功能。(I)判断部 210判断部210根据存储在设备100内部中的计算机程序(应用程序(以下,称作“应用”)110、111、112、113、114、保护控制模组120及检测模组群130)的状态,决定设备100应执行的处理,对软件发布部220进行各种指示。判断部210如图3所示,包括接收部501、发送部502及指示生成部503。接收部501从各检测模组接收检测结果、各种委托等,将接收到的检测结果、各种委托等向指示生成部503输出。此外,接收部501从软件发布部220接收表示处理的完成的通知,将接收到的通知向指示生成部503输出。发送部502从指示生成部503接受指示,将接受到的指示向软件发布部220发送。指示生成部503从保护控制模组120接受验证基数据的生成委托。如果接受到验证基数据的生成委托,则生成验证基数据的生成指示,将所生成的验证基数据的生成指示经由发送部502向软件发布部220输出。(2)软件发布部220软件发布部220当检测到存储在设备100内部中的保护控制模组120时,将包括各检测模组在验证中使用的验证数据的验证基数据向保护控制模组120发送。软件发布部220如图4所示,包括接收部601、发送部602、控制部603、认证部604、证书生成部605、签名私有密钥保持部606、加解密密钥保持部607、软件保持部608、验证基数据生成部609及分散密钥生成部610。(签名私有密钥保持部606)签名私有密钥保持部606保持有签名私有密钥Prk (632)。签名私有密钥Prk(632)是分配给管理装置200的公开密钥加密方式的私有密钥,在由证书生成部605生成证书时使用。这里,作为公开密钥加密方式的一例,是基于RSA的方式。(加解密密钥保持部607)
加解密密钥保持部607保持有为了将应用加密及为了将加密应用解密而使用的加解密密钥d (631)。加解密密钥d (631)是秘密加密方式的秘密密钥。作为加解密密钥d (631)的一例,是 128 位长的 AES (Advanced Encryption Standard :高级加密标准)的秘密密钥。(软件保持部608)软件保持部608预先存储有作为计算机程序的保护控制模组120、作为计算机程序的检测模组群130及作为计算机程序的应用110、111、…、114。保护控制模组120、检测模组群130及应用110、111、…、114安装在设备100中。关于保护控制模组120,检测模组群130及应用110、111、…、114在后面叙述。(接收部601)接收部601经由网络20及通信部230从设备100的各检测模组接收对于保护控制模组120的检测结果,将接收到的检测结果向控制部603输出。(发送部602)发送部602通过控制部603的控制,经由通信部230及网络20向设备100发送针对设备100内部的各应用及保护控制模组120的篡改验证的委托、在这些验证中需要的验证基数据等。(控制部603)控制部603控制软件发布部220的各构成要素。此外,控制部603将由分散密钥生成部610生成的多个分散密钥分别经由发送部602、通信部230及网络20向设备100的多个检测模组131、132、…、135输出。进而,控制部603将由验证基数据生成部609生成的验证基数据640 (后述)经由发送部602、通信部230及网络20向设备100的保护控制模组120输出。(认证部604)认证部604在与各检测模组或保护控制模组120之间进行相互认证。(验证基数据生成部609)验证基数据生成部609如以下所示,对被加密的没有篡改的应用实施由多个解密部分处理构成的解密处理,按每个解密部分处理,对向该解密部分处理的输入数据及来自该解密部分处理的输出数据的双方实施单向性的变换,生成解密验证值,按每个解密部分处理生成包括上述输入数据及上述解密验证值的验证数据。
具体而言,验证基数据生成部609如以下所示,生成图5所示的包括第一解密部分处理数据641、第二解密部分处理数据642及第三解密部分处理数据643的验证基数据640,将所生成的验证基数据640向控制部603输出。(a)验证基数据生成部609生成判定信息。这里,将构成以下说明的解密算法D的解密子过程(也称作解密部分处理)的数量作为判定信息。如后述那样,作为一例,由于解密子过程的数量是“3”,所以将判定信息设为“3”。(b)接着,验证基数据生成部609从软件保持部608读出应用110、111、…、114。应用110、111、…、114带有文件名,从应用110、111、…、114各自的文件名中提取识别信息。这里,假设从应用110、111、· · ·、114各自的文件名提取了识别信息“110”、“111”、“112,,、“113,,及“114”。(C)验证基数据生成部609从加解密密钥保持部607读出加解密密钥d(631)。接 着,验证基数据生成部609将存储在软件保持部608中的保护控制模组120所包含的解密装载部304 (后述)设为执行状态,并对解密装载部304进行控制,以使得使用读出的加解密密钥d (631)通过加密算法E将所读出的应用110、111、…、114加密。这里,作为加密算法E的一例,是秘密密钥加密方式的AES。这样,从应用110、111、…、114分别生成加密应用 IlOeUlle,…、114e。(d)接着,验证基数据生成部609对设为执行状态的解密装载部304进行控制,以使得使用所读出的加解密密钥d (631)通过作为加密算法E的逆变换的解密算法D将加密应用110e、llle、…、114e解密而生成解密应用IlOcUIllcU…、114d。这里,解密算法D由多个解密子过程(解密部分处理)构成。加密文通过依次经过多个解密子过程被变换为明文。由多个解密子过程构成的解密处理的例子是DES (DataEncryption Standard :数据加密标准)及AES。这里,作为一例,假设解密算法D由3个解密子过程构成。由解密装载部304执行的解密处理650如在图6中作为一例表示那样,依次经过3个解密子过程(解密部分处理)、即依次经过第一解密部分处理651,第二解密部分处理652及第三解密部分处理653来进行。具体而言,如图6所示,加密应用661经过第一解密部分处理651变换为第一中间应用662。接着,第一中间应用662经过第二解密部分处理652变换为第二中间应用663。接着,第二中间应用663经过第三解密部分处理653变换为解密应用664。此时,验证基数据生成部609对解密装载部304进行控制,以使其输出作为解密处理650的最终结果的解密应用664、以及作为第一解密部分处理651的输出的第一中间应用662及作为第二解密部分处理652的输出的第二中间应用663。这样,针对加密应用110e、llle、...、114e分别生成解密应用110d、llld、…、114d,针对加密应用110e、llle、...、114e分别生成第一中间应用110da、lllda、...、114da,生成第二中间应用 110db、llldb、…、114db。(e)验证基数据生成部609如下所示,针对各解密子过程(解密部分处理),按每个应用生成解密验证值。针对第一解密部分处理651,验证基数据生成部609将加密应用IlOe及第一中间应用IlOda按该顺序结合而生成结合体,对所生成的结合体实施哈希(hash)运算,生成解密验证值A (645a)。解密验证值A (645a) =Hash (加密应用110e| |第一中间应用IlOda)这里,作为一例而使用哈希SHA — I。但是,并不限定于此。也可以使用SHA —2、SHA — 3 或米用块加密的 CBC — MAC(Cipher Block Chaining — Message AuthenticationCode)等。此外,Hash (X)表示对数据X实施哈希运算而生成的哈希值,(a I |b)表示将数据a与数据b按该顺序结合而生成的结合体。对于加密应用llle、112e、…、114e也同样,生成解密验证值B (645b)、解密验证值C (645c)、解密验证值D (645d)及解密验证值E (645e)。解密验证值B (645b) =Hash (加密应用Ille |第一中间应用Illda)
解密验证值C (645c) =Hash (加密应用112e |第一中间应用112da)解密验证值D (645d) =Hash (加密应用113e| |第一中间应用113da)解密验证值E (645e) =Hash (加密应用114e |第一中间应用114da)接着,对于第二解密部分处理652,验证基数据生成部609将第一中间应用IlOda及第二中间应用IlOdb按该顺序结合而生成结合体,对所生成的结合体实施哈希运算,生成解密验证值F (645f)。解密验证值F (645f) =Hash (第一中间应用110da| |第二中间应用IlOdb)对于第一中间应用lllda、112da、…、114da也同样,生成解密验证值G (645g)、解密验证值H (645h)、解密验证值I (645i)及解密验证值J (645j)。解密验证值G (645g) =Hash (第一中间应用lllda| |第二中间应用Illdb)解密验证值H (645h) =Hash (第一中间应用112da| |第二中间应用112db)解密验证值I (645i) =Hash (第一中间应用113da |第二中间应用113db)解密验证值J (645j) =Hash (第一中间应用114da| |第二中间应用114db)接着,对于第三解密部分处理653,验证基数据生成部609将第二中间应用IlOdb及解密应用IlOd按该顺序结合而生成结合体,对所生成的结合体实施哈希运算,生成解密验证值K (645k)。解密验证值K (645k) =Hash (第二中间应用IlOdb | |解密应用IlOd)对于第二中间应用llldb、112db、...、114db也同样,生成解密验证值L (6451)、解密验证值M (645m)、解密验证值N (645η)及解密验证值O (645ο)。解密验证值L (6451) =Hash (第二中间应用Illdb |解密应用Illd)解密验证值M (645m) =Hash (第二中间应用112db| |解密应用112d)解密验证值N (645n) =Hash (第二中间应用113db| |解密应用113d)解密验证值O (645ο) =Hash (第二中间应用114db| |解密应用114d)(f)验证基数据生成部609如下所示,对于各解密子过程(解密部分处理)生成解密证书。对于第一解密部分处理651,验证基数据生成部609将解密验证值A (645a)、解密验证值B (645b)、解密验证值C (645c)、解密验证值D (645d)及解密验证值E (645e)按该顺序结合而生成结合体。接着,对所生成的结合体实施哈希运算,生成哈希值。接着,将所生成的哈希值向证书生成部605输出,使用签名私有密钥Prk (632)对所生成的哈希值实施签名生成算法Sign,生成解密处理证书646a。解密处理证书646a=Sign (Prk, Hash (A B C D E))这里,签名生成算法Sign 例如是 RSA 签名、DSA (Digital Signature Algorithm)或椭圆曲线DSA等的以公开密钥加密为基础的签名方式的算法。另外,签名生成算法Sign并不限定于这些。除此以外,也可以是MAC ( Message Authentication Code)等的以共通密钥加密及哈希函数为基础的签名方式的算法。关于签名生成算法,在非专利文献I的171页到187页中详细地说明。此外,Sign (X, y)表示使用私有密钥x对数据y实施签名生成算法Sign而生成的签名数据。接着,对于第二解密部分处理652,验证基数据生成部609将解密验证值F(645f)、解密验证值G (645g)、解密验证值H (645h)、解密验证值I (645i)及解密验证值J (645j)按该顺序结合而生成结合体。接着,对所生成的结合体实施哈希运算而生成哈希值。接着,将所生成的哈希值向证书生成部605输出,使用签名私有密钥Prk (632)对所生成的哈希值实施签名生成算法Sign,生成解密处理证书646a。解密处理证书646b=Sign (Prk, Hash (F G H I J))接着,对于第三解密部分处理653,验证基数据生成部609将解密验证值K(645k)、解密验证值L (6451)、解密验证值M (645m)、解密验证值N (645η)及解密验证值O (645ο)按该顺序结合而生成结合体。接着,对所生成的结合体实施哈希运算而生成哈希值。接着,将所生成的哈希值向证书生成部605输出,使用签名私有密钥Prk (632)对所生成的哈希值实施签名生成算法Sign,生成解密处理证书646c。解密处理证书646c=Sign (Prk, Hash (K L M N O))(g)验证基数据生成部609针对第一解密部分处理651,将识别信息“ 110”、加密应用IlOe及解密验证值A (645a)作为第一组,将识别信息“111”、加密应用Ille及解密验证值B (645b)作为第二组,将识别信息“112”、加密应用112e及解密验证值C (645c)作为第三组,将识别信息“113”、加密应用113e及解密验证值D (645d)作为第四组,将识别信息“114”、加密应用114e及解密验证值E (645e)作为第五组,生成包括判定信息“3”、第一组、第二组、…、第五组及解密处理证书646a的第一解密部分处理数据641。接着,验证基数据生成部609针对第二解密部分处理652,将识别信息“ 110”、第一中间应用I IOda及解密验证值F( 645f )作为第一组,将识别信息“ 111 ”、第一中间应用11 Ida及解密验证值G (645g)作为第二组,将识别信息“112”、第一中间应用112da及解密验证值H (645h)作为第三组,将识别信息“113”、第一中间应用113da及解密验证值I (645i)作为第四组,将识别信息“114”、第一中间应用114da及解密验证值J (645j)作为第五组,生成包括判定信息“3”、第一组、第二组、…、第五组及解密处理证书646b的第二解密部分处理数据642。接着,验证基数据生成部609针对第三解密部分处理653,将识别信息“ 110”、第二中间应用I IOdb及解密验证值K( 645k)作为第一组,将识别信息“ 111 ”、第二中间应用11 Idb及解密验证值L (6451)作为第二组,将识别信息“112”、第二中间应用112db及解密验证值M (645m)作为第三组,将识别信息“113”、第二中间应用113db及解密验证值N (645η)作为第四组,将识别信息“114”、第二中间应用114db及解密验证值O (645ο)作为第五组,生成包括判定信息“3”、第一组、第二组、…、第五组及解密处理证书646c的第三解密部分处理数据643。(h)接着,验证基数据生成部609生成包括第一解密部分处理数据641、第二解密部分处理数据642及第三解密部分处理数据643的验证基数据640。在图5中表示这样生成的验证基数据640。如在图5中作为一例表示那样,验证基数据640包括第一解密部分处理数据641、第二解密部分处理数据642及第三解密部分处理数据643。第一解密部分处理数据641包括判定信息“3”、第一组、第二组、…、第五组及解密处理证书646a。第一组包括识别信息“110”、加密应用IlOe及解密验证值A(645a)。第二组包括识别信息“111”、加密应用Ille及解密验证值B(645b)。第三组包括识别信息“112”、加密应用112e及解密验证值C (645c)。第四组包括识别信息“113”、加密应用113e及解密验证值D (645d)。第五组包括识别信息“114”、加密应用114e及解密验证值E (645e)。 关于第二解密部分处理数据642及第三解密部分处理数据643,也具有与第一解密部分处理数据641同样的结构。(证书生成部605)证书生成部605从验证基数据生成部609接受作为签名对象的数据。如果接受到数据,则证书生成部605从签名私有密钥保持部606读出签名私有密钥Prk (632)。接着,证书生成部605通过基于签名生成算法Sign的数字签名,使用所读出的签名私有密钥Prk (632),生成对接受到的数据的签名数据,将所生成的签名数据向验证基数据生成部609输出。这里,关于签名生成算法Sign,如上所述。(分散密钥生成部610)分散密钥生成部610如下所示,将由加解密密钥保持部607保持的加解密密钥d(631)分解,生成多个分散密钥。作为生成分散密钥的方法的一例,分散密钥生成部610以如果将所生成的全部的分散密钥相加则能够生成原来的加解密密钥d (631)的方式生成多个分散密钥。例如,在将加解密密钥d (631)分解为5个分散密钥的情况下,以成为d=dl+d2+d3+d4+d5 的方式生成分散密钥 dl、d2、...、d5。在此情况下,作为一例,分散密钥生成部610生成随机数rl作为分散密钥dl,生成随机数r2作为分散密钥d2,生成随机数r3作为分散密钥d3,生成随机数r4作为分散密钥d4。dl=rld2=r2d3=r3d4=r4接着,分散密钥生成部610通过d5=d - (dl+d2+d3+d4)计算d5。这样,从加解密密钥d生成分散密钥dl、d2、d3、d4及d5,所以满足d=dl+d2+d3+d4+d5。此外,分散密钥生成部610也可以将由加解密密钥保持部607保持的加解密密钥d (631)作为秘密信息,将使用秘密分散法从加解密密钥d (631)生成的多个分散信息分别作为分散密钥。秘密分散法记载在非专利文献I中。作为一例,如图7所示,分散密钥生成部610随机地选择整数al、a2、…、an — 1,如图7的式6所不,设定(η — I)次多项式。在式6中,d是常数项,d是加解密密钥。整数al、a2、…、an — I分别是次数为I以上的项的系数。分散密钥生成部610使用图7的式6所示的(η — I)次多项式,如式I 式5所示,按每个应用生成分散密钥dj = f (j) (j = 1,2, ···, n)0接着,分散密钥生成部610将所生成的多个分散密钥dl、d2、…、d5经由控制部603、发送部602、通信部230及网络20向设备100的检测模组群130发送。(3)通信部 230通信部230经由网络20与设备100进行通信。通信部230根据从设备100接收 到的信息,对管理装置200内部的各部输出该接收到的信息。此外,将从管理装置200内部的各部接受到的指示及信息向设备100发送。具体而言,将从软件发布部220接受到的指示及通知等向设备100发送、或将从设备100接受到的篡改检测的检测结果等的信息向判断部210发送。另外,通信部230在设备100与管理装置200之间的通信中,也可以使用将数据加密而确保了通信的安全的通信路径。2. 3设备100的结构设备100如图2所示,在内部中存储有应用110、111、112、113、114、保护控制模组120及检测模组群130等的计算机程序,在设备100中,这些计算机程序动作。( I)设备100的硬件结构设备100 如图 8 所示,包括 CPU171、EEPROM (Electrically Erasable andProgrammable Read Only Memory) 172、RAM173、NIC174、总线 175 及其他设备等而构成。CPU171、EEPR0M172、RAM173及NIC174经由总线175可相互通信地连接。EEPR0M172是非易失性的半导体存储器,具备用于保存引导装载程序190、保护控制模组 120、检测模组 131、132、…、135、应用 110、111、…、114 及 OS (Operating System)180等的计算机程序的区域。保存在EEPR0M172中的计算机程序装载在RAM173中,通过由CPU171执行装载在RAM173中的计算机程序,实现各计算机程序具有的功能。RAM173是易失性的半导体存储器,具备用于存储上述计算机程序及其他数据的区域。在RAM173中,装载保护控制模组120、检测模组131、132、…、135、应用110、111、…、114及0S180等的计算机程序。此外,RAM173被用作CPU171的工作区。NIC174是用于与网络20连接的扩展卡。(2)设备100的软件结构接着,对设备100的软件结构进行说明。在设备100中,如图9所示,存储有引导装载程序190、保护控制模组120,0S180及应用110、111、…、114。0S180包括检测模组群130,检测模组群130包括检测模组131、132、133、134 及 135。如果投入设备100的电源,则首先引导装载程序190动作,接着,保护控制模组120装载到RAM173中,保护控制模组120变得能够动作。接着,0S180装载到RAM173中,0S180动作。此时,由于在0S180中包含有检测模组群130,所以检测模组群130变得能够动作。接着,应用110、111、…、114的某个或全部装载到RAM173中,应用110、111、…、114变得能够执行。(3)保护控制模组120保护控制模组120具有用于保护各应用以使各应用不被攻击者解析、此外使隐秘数据不被从各应用抽取的功能,其是用于进行控制以发挥这些功能的计算机程序。另外,隐秘数据如后述那样,是由各应用保持的应设为秘密的数据。用于通过保护控制模组120保护应用的一个功能是解密装载功能。解密装载功能在不利用应用时将该应用加密而保存,仅在利用应用时将加密应用解密而生 成明文的应用,将所生成的明文的应用向存储器装载。此外,别的功能是判断应用是否被篡改的篡改检测功能。进而,别的功能是判断调试器等的解析工具是否动作的解析工具检测功能。保护控制模组120控制基于这些功能的动作,判断各应用是否受到攻击者的解析或攻击等。当检测到攻击者的攻击等时,保护控制模组120将被检测到攻击的应用的动作停止。此外,进行将该应用所利用的存储器、特别是记录有隐秘数据的存储器区域清空等的处理。例如,将该存储器区域用“O”填满。这样,防止隐秘数据的泄漏。保护控制模组120从多个检测模组131、132、…、135分别取得分散密钥,接着,将所取得的多个上述分散密钥综合而复原加解密密钥,使用上述加解密密钥,将被加密的应用解密,在被加密的应用的解密结束后,将上述加解密密钥删除。保护控制模组120如图10所示,包括接收部301、发送部302、控制部303、解密装载部304、篡改检测部305、解析工具检测部306、加解密密钥复原部307、验证基数据保持部308及验证数据生成部309。此外,保护控制模组120被添加了篡改检测用证书331。(篡改检测用证书331)篡改检测用证书331是用于检测保护控制模组120自身的篡改的证书。篡改检测用证书331对保护控制模组120的整体实施哈希运算SHA — I而生成哈希值,使用由管理装置200保持的签名私有密钥632对所生成的哈希值实施基于签名生成算法Sign的数字签名,包含所生成的签名数据。这里,关于签名生成算法Sign,如上所述。此外,设为了使用散列SHA — 1,但并不限定于此。也可以使用SHA — 2、SHA — 3或米用块加密的 CBC — MACCCipher Block Chaining-Message Authentication Code)等。(接收部301)接收部301从各检测模组接收分散信息、各种委托等。(发送部302)发送部302向各检测模组131、132、…、135发送各种委托等。(控制部303)控制部303控制解密装载部304、篡改检测部305及解析工具检测部306而使其动作,在各应用被攻击者攻击的情况下检测攻击。控制部303经由接收部301从设备100的检测模组131、132、…、135分别取得分
散密钥。
控制部303在加密应用的解密结束后,将由加解密密钥复原部307生成、在加密应用的解密中使用的加解密密钥631删除。控制部303按每个上述解密部分处理,将来自该解密部分处理的输出数据及接受到的上述验证数据向检测模组输出。作为一例,控制部303经由发送部302将第一中间应用及验证数据向检测模组131发送,将第二中间应用及验证数据向检测模组132发送,将解密应用及验证数据向检测模组133发送。此外,控制部303经由发送部302,将应用的识别信息,作为一例,向检测模组131、检测模组132及检测模组133发送。(解密装载部304)在执行保持在设备100内部中的加密应用110e、llle、...、114e时,解密装载部304进行如下处理使用由加解密密钥复原部307复原的加解密密钥631,过解密算法D将加密应用110e、llle、…、114e解密,生成明文的应用110、111、…、114,将所生成的应用110、 111、…、114 装置到 RAM173。此外,例如当应用110的执行中发生了向其他应用112的上下文切换时,使用加解密密钥631,通过加密算法E将存储在RAM173上的与应用110有关系的数据加密而生成加密数据,将所生成的加密数据暂时存储,当再次向应用110上下文切换时,进行将存储的加密数据解密而生成数据、将所生成的数据保存到RAM173上的处理。另外,所谓上下文切换,是指将CPU的状态(上下文)保存或复原,以使多个模组能够共用I个CPU的过程。此外,解密装载部304通过解密算法D对被加密的应用实施由多个解密部分处理构成的解密处理。这里,关于由多个解密部分处理构成的解密处理,已经使用图6进行了说明。另外,作为在解密装载部304中使用的加密算法E及解密算法D的一例,是秘密密钥加密方式的AES。此外,也可以是DES。(篡改检测部305)篡改检测部305执行确认各应用是否被篡改的篡改检测处理。篡改检测处理通过使用对各应用附加的篡改检测用的证书来进行。另外,也可以通过比较MAC值来进行篡改检测。(解析工具检测部306)解析工具检测部306在调试器等的解析工具被安装或动作等时检测这些情况。这是因为,可以想到不正当的攻击者为了攻击各应用而安装解析工具或使其动作。例如,使用如下方法检索保存有调试器等的解析工具的文件名,或检查调试器所使用的特殊的寄存器是否被使用,或检测调试器所设定的中断等。(加解密密钥复原部307)加解密密钥复原部307如在图11中作为一例表示那样,将从多个检测模组接收到的多个分散密钥综合而复原用于将各应用加解密的加解密密钥631。如上所述,在分散密钥生成部610中以如果将所生成的全部的分散密钥相加则能够生成原来的加解密密钥d (631)的方式生成了多个分散密钥的情况下,加解密密钥复原部307通过将全部的分散密钥相加,来复原原来的加解密密钥631。例如,在以使d=dl+d2+d3+d4+d5的方式从加解密密钥d生成了多个分散密钥dl、d2、d3、d4、d5情况下,通过d=dl+d2+d3+d4+d5复原加解密密钥。在使用秘密分散法将加解密密钥分解的情况下,通过基于秘密分散法的秘密信息的复原方法,将加解密密钥复原。作为一例,如在图7的式I 式5所示地生成了分散密钥的情况下,如果收集η个分散密钥,则根据η — I次的多项式y=f (x)的η个坐标(aj,f(a j)),唯一地决定多项式y=f (χ)。结果,能够求出多项式的常数项d。关于基于秘密分散法进行的秘密信息的复原,已在非专利文献I中详细地说明。(验证基数据保持部308)验证基数据保持部308保持从管理装置200接收到的验证基数据640。关于验 证基数据640的数据构造,如上所述。(验证数据生成部309)验证数据生成部309从保持在验证基数据保持部308中的验证基数据640中提取第一解密部分处理数据641,将所提取的第一解密部分处理数据641作为验证数据341。此夕卜,从验证基数据640中提取第二解密部分处理数据642,将所提取的第二解密部分处理数据642作为验证数据342。此外,从验证基数据640中提取第三解密部分处理数据643,将所提取的第三解密部分处理数据643作为验证数据343。在图12 图14中分别表示验证数据341、验证数据342及验证数据343的数据构
造的一例。作为一例,验证数据生成部309将所生成的验证数据341经由控制部303及发送部302向检测模组131发送。检测模组131保持验证数据341。此外,作为一例,验证数据生成部309将所生成的验证数据342经由控制部303及发送部302向检测模组132发送。检测模组132保持验证数据342。进而,作为一例,验证数据生成部309将所生成的验证数据343经由控制部303及发送部302向检测模组133发送。检测模组133保持验证数据343。(4)检测模组群130检测模组群130如图2所示,包括5个检测模组131、132、133、134及135。检测模组131、132、133、134及135是分别具有检测保护控制模组120是否被篡改的功能的计算机程序。各检测模组从管理装置200取得分散密钥,存储到内部中。此外,各检测模组将对保护控制模组120的篡改的检测结果经由网络20向管理装置200发送。检测模组131如图15所示,包括接收部401、发送部402、控制部403、验证部404、验证数据保持部405及分散密钥保持部406。检测模组132、133、134、135也具有与检测模组131同样的结构,所以省略关于他们的说明。(接收部401)接收部401从管理装置200接收各种指示。此外,接收向其他模组委托的处理的结果、其他检测模组对保护控制模组120的篡改检测结果。(发送部402)发送部402向管理装置200、保护控制模组120、其他检测模组发送各种处理结果等的数据。
(控制部403)控制部403基于由接收部401接收到的各种指示及通知,控制验证部404,进行对保护控制模组120的验证处理。此外,控制部403针对与该检测模组对应的解密部分处理,经由接收部401从保护控制模组120接受来自该解密部分处理的输出数据及针对该解密部分处理生成的验证数据。作为一例,检测模组131的控制部403接受第一中间应用及针对与检测模组131对应的解密部分处理生成的验证数据。此外,检测模组132的控制部403接受第二中间应用及针对与检测模组132对应的解密部分处理生成的验证数据。进而,检测模组133的控制部403接受解密应用及针对与检测模组133对应的解密部分处理生成的验证数据。接着,控制部403针对与该检测模组对应的解密部分处理,将接受到的输出数据及验证数据向验证部404输出。作为一例,检测模组131的控制部403将第一中间应用及针对与检测模组131对应的解密部分处理生成的验证数据向验证部404输出。此外,检测模组132的控制部403将第二中间应用及针对与检测模组132对应的解密部分处理生成的 验证数据向验证部404输出。进而,检测模组133的控制部403将解密应用及针对与检测模组133对应的解密部分处理生成的验证数据向验证部404输出。(验证部404)验证部404进行保护控制模组120是否正常动作的验证。验证部404使用从控制部403接受到的输出数据及验证数据进行验证,在验证失败的情况下,输出该验证结果。以下,详细地说明。(a)验证部404在应用110、111、…、114中的某一个被执行的情况下,使用保持在验证数据保持部405中的验证数据341,进行对保护控制模组120的验证。验证部404对包含在验证数据中的输入数据及接受到的输出数据的双方实施与由验证基数据生成部609使用的单向性的上述变换相同的变换而生成第二验证值,并通过判断包含在验证数据中的解密验证值与所生成的上述第二验证值是否一致来进行验证,在不一致的情况下,看作验证失败,输出验证结果。这里,假设验证部404是构成检测模组131的要素而进行说明。此外,假设执行应用 110。验证部404经由接收部401、控制部403从保护控制模组120接受应用110的识别信息、应用110的第一中间应用及验证数据341。接着,验证部404从接受到的验证数据341中提取与接受到的识别信息对应的加密应用,将所提取的加密应用与接受到的第一中间应用按该顺序结合而生成结合体,对所生成的结合体实施哈希运算Hash,计算哈希值。接着,验证部404从验证数据341中提取与接受到的识别信息对应的解密验证值,判断所提取的解密验证值与计算出的哈希值是否一致。在所提取的解密验证值与计算出的哈希值不一致的情况下,验证失败。在所提取的解密验证值与计算出的哈希值一致的情况下,从接受到的验证数据341中提取解密处理证书,从接受到的验证数据341中提取与接受到的识别信息对应的解密验证值以外的全部的解密验证值B、C、D、E,将计算出的哈希值与所提取的全部的解密验证值B、C、D、E结合而生成结合体,使用签名公开密钥Pbk对所生成的结合体和所提取的解密处理证书实施签名验证算法Vrfy。检测结果=Vrfy (Pbk,解密处理证书,(哈希值IBI |c| IDIIE))这里,签名验证算法Vrfy是与签名生成算法Sign对应的签名验证算法,例如是RSA签名、DSA (Digital Signature Algorithm)或椭圆曲线DSA等的以公开密钥加密为基础的签名方式的算法。此外,签名公开密钥Pbk是对应于签名私有密钥Prk( 632 )、且分配给管理装置200的公开密钥加密方式的公开密钥。此外,Vrfy (x, y, z)表示使用公开密钥x对签名数据y及数据z实施签名验证算法Vrfy得到的检测结果。检测结果表示成功及失败的某一种。 在基于解密验证值的验证及基于解密处理证书的验证的双方成功的情况下,作为使用了验证数据的验证成功。此外,在基于解密验证值的验证及基于解密处理证书的验证的某一个失败的情况下,作为使用了验证数据的验证失败。另外,在验证部404是构成检测模组132的要素的情况下,验证部404从保护控制模组120接受应用110的识别信息、应用110的第二中间应用及验证数据342。接着,从接受到的验证数据342中提取与接受到的识别信息对应的第一中间应用,将所提取的第一中间应用与接受到的第二中间应用按该顺序结合而生成结合体,对所生成的结合体实施哈希运算Hash,计算哈希值。接着,从验证数据342中提取与接受到的识别信息对应的解密验证值,判断所提取的解密验证值与计算出的哈希值是否一致。此外,从接受到的验证数据342中提取解密处理证书,从接受到的验证数据342提取与接受到的识别信息对应的解密验证值以外的全部的解密验证值G、H、I、J,将计算出的哈希值与所提取的全部的解密验证值G、H、I、J结合而生成结合体,使用签名公开密钥Pbk对所生成的结合体和所提取的解密处理证书实施签名验证算法Vrfy。此外,在验证部404是构成检测模组133的要素的情况下,验证部404从保护控制模组120接受应用110的识别信息、应用110的解密应用及验证数据343。接着,从接受到的验证数据343中提取与接受到的识别信息对应的第二中间应用,将所提取的第二中间应用与接受到的解密应用按该顺序结合而生成结合体,对所生成的结合体实施哈希运算Hash,计算哈希值。接着,从验证数据343中提取与接受到的识别信息对应的解密验证值,判断所提取的解密验证值与计算出的哈希值是否一致。此外,从接受到的验证数据343中提取解密处理证书,从接受到的验证数据343中提取与接受到的识别信息对应的解密验证值以外的全部的解密验证值L、M、N、O,将计算出的哈希值与所提取的全部的解密验证值L、M、N、O结合而生成结合体,使用签名公开密钥Pbk对所生成的结合体和所提取的解密处理证书实施签名验证算法Vrfy。此外,在执行应用111、112、…、114的情况下,也与上述内容相同。(b)此外,验证部404在应用110、111、…、114的某个被执行的情况下,如下所示地使用识别解密部分处理的标识符进行验证。验证部404对从其他应用接受到的上述识别信息及用于识别与自身对应的上述解密部分处理的识别信息的重复性、以及接受到的上述识别信息及用于识别与自身对应的上述解密部分处理的识别信息与分别识别多个上述解密部分处理的识别信息的完整性进行验证。验证部404在接受到的上述识别信息及用于识别与自身对应的上述解密部分处理的上述识别信息中有重复的情况下,或者在接受到的上述识别信息及用于识别与自身对应的上述解密部分处理的上述识别信息不包括用于识别多个解密部分处理的全部的识别信息的情况下,输出表示验证失败的验证结果。这里,假设验证部404是构成检测模组131的要素而进行说明。验证部404从检测模组132及133分别接收用于识别解密部分处理的标识符。接着,验证部404使用用于识别自身在验证中使用的解密部分处理的标识符、以及从其他多个检测模组分别接收到的多个标识符,验证与全部的解密部分处理对应的验证是否由某个检测模组进行。例如,在用于识别验证部404在验证中使用的解密部分处理的标识符是用于识别图6所示的第一解密部分处理651的标识符、从其他检测模组接收两个标识符、且各个标识符是用于识别图6所示的第二解密部分处理652及第三解密部分处理653的标识符的情况下,判断为进行了与全部的解密部分处理对应的验证。 此外,例如,在用于识别自身在验证中使用的解密部分处理的标识符及接收到的多个标识符中存在一致的标识符的情况下,验证部404判断为没有进行与全部的解密部分处理对应的验证。此外,例如,如果在识别验证部404自身在验证中使用的解密部分处理的标识符及接收到的多个标识符中不存在用于识别图6所示的各解密部分处理的标识符,则验证部404判断为没有进行与全部的解密部分处理对应的验证。在进行了与全部的解密部分处理对应的验证的情况下,作为基于解密部分处理的标识符进行的验证成功,在没有进行与全部的解密部分处理对应的验证的情况下,作为基于解密部分处理的标识符进行的验证失败。(C)进而,验证部404在应用110、111、…、114中的哪个都没有被执行的情况下,如下所示,使用对保护控制模组120附加的篡改检测用证书331进行篡改检测处理。验证部404对保护控制模组120的整体实施哈希运算SHA — I而生成哈希值,使用签名公开密钥Pbk对所生成的哈希值及篡改检测用证书331实施基于签名验证算法Vrfy的数字签名验证。这里,也可以使用预先计算出的消息认证码(Message Authentication Code)(以下,称作“MAC值”)。在使用MAC值的情况下,验证部404使用所保持的验证密钥来生成MAC值,将计算出的MAC值与从管理装置200预先接收并保持的MAC值比较来进行篡改检测。(验证数据保持部405)验证数据保持部405保持用于验证保护控制模组120的解密装载部304是否正常地动作的验证数据341。验证数据341是从保护控制模组120发送的数据。另外,检测模组132的验证数据保持部405保持验证数据342。此外,检测模组133的验证数据保持部405保持验证数据343。(5)应用 110U1U …、114应用110、111、…、114分别是用于对使用设备100的使用者提供各种功能的计算
机程序。 例如,应用110是用于经由网络20从内容分发服务器装置购买音乐内容或影像内容并将购买的内容再现的计算机程序。此外,应用111是用于对金融机构的服务器装置进行访问并利用余额确认或转账等的网上银行的计算机程序。各应用保持有用于在与内容分发服务器装置及金融机构的服务器装置之间进行对方装置是否正当的认证的认证密钥、用于证明自身确实是本人的口令等不能被他人知道的隐秘数据。对隐秘数据而言,为了使得不被有恶意的第三者(以下,称作“攻击者”)从应用中抽取、此外为了使抽取的隐秘数据不被不正当地利用而需要进行保护。2. 4检测系统10的动作( I)整体的动作概要使用图16所示的流程图对检测系统10整体的概要的动作进行说明。
在检测系统10的动作中,如图16所示,当将设备100在工厂制造时,作为初始设定处理,将保护控制模组120、检测模组群130、应用110、111、···、其他计算机程序安装到设备100中。此外,向保护控制模组120内埋入验证基数据640 (步骤S100)。然后,将设备100从工厂出货,供使用者使用。当由使用者使用设备100时,在设备100内部中,作为检测处理,保护控制模组120保护各应用免受攻击者的攻击,执行各应用。与此同时,各检测模组验证保护控制模组120是否没有被攻击。在存储在设备100内部中的计算机程序(保护控制模组120及检测模组群130)被攻击并篡改的情况下,没有被篡改的检测模组向管理装置200通知这些计算机程序被篡改。此外,设备100也可以在该设备100所具有的显示部上显示这些计算机程序被篡改(步骤S200)。(2)初始设定处理的动作接着,使用图17所示的顺序图对初始设定处理进行说明。这里,将检测模组131、132、133、134、135分别单独进行的处理假设为由检测模组群130进行而集中记载。在工厂中,当制造设备100时,管理装置200的软件发布部220的分散密钥生成部610将由加解密密钥保持部607保持的加解密密钥631分解而生成多个分散密钥,将多个分散密钥向保持在软件保持部608中的检测模组131、132、…、135写入(步骤S1000)。接着,控制部603经由发送部602、通信部230,将保护控制模组120、检测模组群
130、应用110、111、…、114及设备100的动作所需要的其他的计算机程序向设备100发送。这些计算机程序被附加了用于验证这些计算机程序的篡改的证书(篡改检测用证书)。设备100分别接收被附加了证书的保护控制模组120、检测模组群130、应用110、111、…、114及其他计算机程序(步骤S1001)。在设备100的EEPR0M172中,安装分别被附加了证书的保护控制模组120、检测模组群130、应用110、111、…、114及其他计算机程序(步骤S1002)。如果这些计算机程序的安装结束,则执行进行设备100的初始设定的计算机程序、及用于测试设备100是否正常动作的计算机程序等,进行设备100的初始化处理。此外,对保护控制模组120进行初始化指示(步骤S1003)。保护控制模组120如果接受到初始化指示,则对管理装置200委托验证基数据640的发送(步骤S1004)。管理装置200如果从保护控制模组120接收到验证基数据640的发送的委托,则执行验证基数据640的生成处理(步骤S1005)。
如果验证基数据640的生成处理完成,则管理装置200将验证基数据640向保护控制模组120发送(步骤S1006)。保护控制模组120从管理装置200接收验证基数据640,将接收到的验证基数据640向验证基数据保持部308存储(步骤S1007)。(3)验证基数据640的生成动作使用图18所示的流程图对验证基数据640的生成的动作进行说明。验证基数据生成部609从软件保持部608读出应用110、111、…、114。接着,验证基数据生成部609将存储在软件保持部608中的保护控制模组120所包含的解密装载部304设为可执行状态,解密装载部304使用加解密密钥631,通过加密算法E将应用110、111、…、114 加密(步骤 S1101)。解密装载部304通过解密算法D将加密应用110e、llie、…、114e解密,针对各加密应用输出作为各解密部分处理的输出数据的第一中间应用、第二中间应用及解密应用,验证基数据生成部609针对各加密应用取得加密应用、第一中间应用、第二中间应用及解 密应用(步骤SI 102)。针对各加密应用,验证基数据生成部609对证书生成部605进行控制,以使其针对加密应用及第一中间应用的组、第一中间应用及第二中间应用的组、以及第二中间应用及解密应用的组生成解密验证值,验证基数据生成部609针对多个解密验证值,使用保持在签名私有密钥保持部606中的签名私有密钥632生成解密处理证书(步骤S1203)。最后,验证基数据生成部609生成包括第一解密部分处理数据641、第二解密部分处理数据642及第三解密部分处理数据643的验证基数据640 (步骤S1104)。(4)检测处理的动作这里,使用图19 图21所示的顺序图对图16的步骤S200所示的检测处理的详细情况进行说明。设备100如果结束初始化处理则被从工厂出货,运送到使用者侧。使用者使用设备100,在利用各应用时,在设备100内部中,保护控制模组120进行控制以发挥解密装载功能、篡改检测功能及解析工具检测功能等功能,保护各应用免受攻击者的攻击。这里,以在执行应用110时进行对保护控制模组120的验证的情况为例进行说明。另外,在执行其他应用111、112、113、114时进行对保护控制模组120的验证的情况下,也是与执行应用110的情况同样的动作,所以省略说明。此外,在执行应用以外的情况下,使用对保护控制模组120附加的篡改检测用证书进行对保护控制模组120的篡改检测处理。在此情况下,也可以使用预先计算出的MAC值。保护控制模组120如果接收执行应用110的命令(步骤S2000),则生成对各检测模组的分散密钥的发送委托(步骤S2001),对各检测模组发送所生成的发送委托(步骤S2002)。在图19中,对检测模组131、132、133发送发送委托,但对于检测模组134、135也同样发送分散密钥的发送委托。各检测模组从保护控制模组120接收发送委托(步骤S2002),将保持的分散密钥读出(步骤S2003),将所读出的分散密钥向保护控制模组120发送(步骤S2004)。保护控制模组120从多个分散密钥复原加解密密钥(步骤S2005)。
保护控制模组120通过解密装载部304将加密应用IlOe解密,执行应用110 (步骤 S2006)。保护控制模组120的控制部303在应用的解密完成后,将复原的加解密密钥删除(步骤 S2007)。接着,保护控制模组120针对各解密部分处理,根据保持在验证基数据保持部308中的验证基数据640生成验证数据(步骤S2008)。保护控制模组120的控制部303经由发送部302,将应用的识别信息、第一中间应用及验证数据向检测模组131发送(步骤S2009a),将应用的识别信息、第二中间应用及验证数据向检测模组132发送(步骤S2009b),将应用的识别信息、解密应用及验证数据向检 测模组133发送(步骤S2009c)。各检测模组使用验证数据,验证解密部分处理的输入输出对应是否正确。具体而言,各检测模组根据验证数据内的数据和接收到的中间应用或解密应用生成解密验证值,将所生成的解密验证值与验证数据内的解密验证值比较,判断两者是否一致。进而进行解密处理证书的签名验证。(步骤S2010a、S2010b及S2010c)。各检测模组在使用了验证数据的验证失败的情况下,即在解密验证值不一致的情况下或解密处理证书的签名验证失败的情况下,判定为保护控制模组120被篡改(在步骤S2011a、S2011b或S2011c中为“是”),向判断部210发送检测结果(步骤S2012a、S2012b或S2012c )。各检测模组在验证值一致、并且解密处理证书的签名验证成功的情况下,判定为保护控制模组120没有被篡改(在步骤S2011a、S2011b或S2011c中为“否”),将用于识别验证数据的解密部分处理的标识符向其他检测模组发送(步骤S2013a、S2013b或S2013c)。具体而言,检测模组131发送验证了第一解密部分处理之意的通知及用于识别第一解密部分处理的标识符。并且,各检测模组使用用于识别各解密部分处理的标识符,确认是否验证了保护控制模组120的全部的解密部分处理(步骤S2014a、S2014b或S2014c)。在没有验证全部的解密部分处理的情况下、或者多个解密部分处理被发送到了 I个检测模组的情况下,认为保护控制模组120进行了不正当动作,判定为保护控制模组120被篡改(在步骤S2014a、S2014b或S2014c中是“是”),向判断部210发送检测结果(步骤S2015a、S2015b 或 S2015c)。在验证了全部的解密部分处理的情况下(在步骤S2014a、S2014b或S2014c中是“否”),什么都不做。保护控制模组120从0S180接受表示应用已结束的结束通知(步骤S2016),将结束通知向各检测模组通知(步骤S2017)。各检测模组在从保护控制模组120接收到表示应用已结束的结束通知后,或在应用没有动作的情况下,使用篡改检测用证书331进行保护控制模组120的篡改检测(步骤S2018a、S2018b或S2018c)。这里,各检测模组的验证部404也可以使用验证部404所保持的验证密钥计算保护控制模组120的MAC值,将计算出的MAC值与保持的MAC值比较,如果MAC值一致,则判定为保护控制模组120没有被篡改,如果MAC值不一致则判定为保护控制模组120被篡改。在判定为保护控制模组120被篡改的情况下(在S2019a、S2019b或S2019c中为“是”),各检测模组将检测结果向判断部210通知(S2020a、S2020b或S2020c)。
在判定为保护控制模组120没有被篡改的情况下(在S2019a、S2019b或S2019c中为“否”),什么都不做。2. 5检测系统10的效果在检测系统10中,在应用的执行中(图19的步骤S2000到S2015),在从多个分散密钥复原加解密密钥(步骤S2005)到将加解密密钥删除(步骤S2007)的期间中,保护控制模组120保持着应用的加解密密钥。但是,在该应用的执行中,保护控制模组保持加解密密钥的期间被限定在从加解密密钥的复原(步骤S2005)到加解密密钥的删除(步骤S2007)的期间内,能够降低被篡改的不正当的检测模组从保护控制模组120不正当地取得加解密密钥的可能性。在应用的执行结束后,即在应用没有被执行的情况下(图19的步骤S2015以后),保护控制模组120不保持应用的加解密密钥。因此,即使检测模组使用篡改检测用证书进行保护控制模组120的篡改检测,不正当的检测模组也不能取得加解密密钥,保护控制模 组120的加解密密钥不会泄漏,所以能够提高检测系统10的安全性。3.实施方式3这里,对作为本发明的实施方式3的检测系统IOa (未图示)进行说明。3. I 概要在检测系统10中,向检测模组写入分散密钥,在将应用解密而执行的情况下,保护控制模组从多个检测模组收集分散密钥,使用收集的分散密钥暂时将加解密密钥复原。在此情况下,为了防止由不正当的检测模组不正当地取得加解密密钥,在应用解密中,不进行由检测模组进行的使用篡改检测用证书的篡改检测、或使用MAC值的篡改检测。相对于此,在检测系统IOa中,保护控制模组不将加解密密钥复原,检测模组执行应用的解密的一部分。由此,在应用解密时,即使由检测模组进行使用篡改检测用证书的篡改检测或使用MAC值的篡改检测,也不会由不正当的检测模组取得加解密密钥。在检测系统IOa中,在应用的加解密中使用公开密钥加密方式的RSA加密。关于RSA加密,记载在非专利文献I中,所以省略这里的说明。此外,在检测系统IOa中,将明文的应用表现为M。将基于RSA加密方式的使用公开密钥e的加密表现为M~e,将加密应用表现为C。因而,是C=M~e。此外,将基于RSA加密方式的使用私有密钥d的解密表现为C~d。因而,是M=C~d。另外,a~b表示将a进行b次
幂的运算。3. 2检测系统IOa的结构检测系统IOa具有与检测系统10同样的结构。这里,以与检测系统10的不同点为中心进行说明。管理装置200的软件发布部220的软件保持部608代替保护控制模组120而存储有保护控制模组120a,代替检测模组群130而存储有检测模组群130a。检测模组群130a包括检测模组 131a、132a、133a、134a 及 135a。此外,在设备100中,代替保护控制模组120及检测模组群130而安装有保护控制模组120a及检测模组群130a。(I)管理装置200的软件发布部220
在管理装置200的软件发布部220中包含的加解密密钥保持部607代替加解密密钥d (631)而存储有私有密钥d (631a)。在管理装置200的软件发布部220中包含的分散密钥生成部610作为一例而如图22所示,以满足d=dl+d2+d3=dl+d4+d5的方式将私有密钥d (631a)分解而生成多个分散密钥dl (641a)、分散密钥d2 (642a)、分散密钥d3 (643a)、分散密钥d4 (644a)及分散密钥d5 (645a)。具体而言,分散密钥生成部610生成随机数rl,将所生成的随机数rl作为分散密钥dl (641a),生成随机数r2,将所生成的随机数r2作为分散密钥d2 (642a),生成随机数r3,将所生成的随机数r3作为分散密钥d4 (644a)。dl=rl
d2=r2d4=r3接着,分散密钥生成部610通过d3=d - dl - d2计算分散密钥d3 (643a),通过d5=d - dl - d4 计算分散密钥 d5 (645a)。这样,从私有密钥d生成分散密钥dl、d2、d3、d4及d5,所以满足d=dl+d2+d3=dl+d4+d5。接着,分散密钥生成部610如图22所示,将所生成的多个分散密钥dl (641a)、d2(642a)、…、d5 (645a)经由控制部603、发送部602、通信部230及网络20分别向设备100的检测模组群130a的检测模组131a、132a、133a、134a及135a发送。在设备100的检测模组群130a的检测模组131a、132a、133a、134a及135a中,分别存储分散密钥 dl (641a)、d2 (642a)、...、d5 (645a)。(2)保护控制模组120a保护控制模组120a如图23所示,包括接收部301、发送部302、控制部303、解密装载部304、篡改检测部305、解析工具检测部306及检测模组选择部310。保护控制模组120a被附加了篡改检测用证书331a。篡改检测用证书331a与篡改检测用证书331同样,是用于进行保护控制模组120a自身的篡改检测的证书。这里,具有与保护控制模组120同样的功能的构成要素赋予相同的符号,省略对他们的说明。如果将保护控制模组120a的结构与保护控制模组120的结构比较,则保护控制模组120a不包括加解密密钥复原部307、验证基数据保持部308及验证数据生成部309。此夕卜,保护控制模组120a包括在保护控制模组120中不存在的检测模组选择部310。(3)检测模组选择部310检测模组选择部310如下所示,在应用的解密时,选择执行该应用的解密的检测模组。检测模组选择部310作为一例而如图24所示,保持有表示进行应用的解密的检测模组的组合的检测模组列表351。检测模组列表351保持有多个由索引和检测模组标识符群构成的组。各组表示进行应用的解密的多个检测模组。索引是用于识别对应的检测模组标识符群的识别信息。检测模组标识符群包括多个检测模组标识符。多个检测模组标识符分别是用于识别多个检测模组的识别信息。这些多个检测模组是进行应用的解密的检测模组。在这些多个检测模组中,存储有用于进行应用的解密的分散密钥。如图24所示,检测模组列表351具有由索引361 “I”、和包括检测模组标识符“131”、“132”及“133”的检测模组标识符群362构成的组,具有由索引363 “2”、和包括检测模组标识符“131”、“134”及“135”的检测模组标识符群364构成的组。这里,假设由检测模组标识符“131”、“132”、“133”、“134”及“135”识别的检测模组分别是检测模组131a、132a、133a、134a及135a。因而,能够使用由包含在检测模组列表351中的一个组的检测模组标识符群内的 多个检测模组标识符识别的多个检测模组的全部,从存储在各个检测模组中的分散密钥将私有密钥复原。例如,在与索引361 “I”对应的检测模组标识符群362中,包括检测模组标识符“ 131”、“ 132”及“ 133”。检测模组标识符“ 131”、“ 132”及“ 133”分别识别检测模组131a、132a及133a。在检测模组131a、132a及133a中,分别如图22所示,存储有分散密钥dl(641a)、分散密钥d2 (642a)及分散密钥d3 (643a)。通过将这些分散密钥dl (641a)、分散密钥d2 (642a)及分散密钥d3 (643a)相加,能够计算私有密钥631a。此外,关于与索引363 “2”对应的检测模组标识符群364也同样,通过将存储在由检测模组标识符群364内的检测模组标识符“ 131”、“ 134”及“ 135”识别的检测模组中的分散密钥dl (641a)、分散密钥d4 (644a)及分散密钥d5 (645a)相加,能够计算私有密钥631a。这里,检测模组列表351如图24所示包括两组,但并不限定于此。检测模组列表351也可以包括更多的组。检测模组选择部310通过控制部303的控制,在应用的解密时,从检测模组列表351中随机地选择一个索引。接着,提取与所选择的索引对应的检测模组标识符群,将所提取的检测模组标识符群向控制部303输出。(4)检测模组131a的结构检测模组13Ia如图25所示,包括接收部401、发送部402、控制部403、验证部404、分散密钥保持部406及解密部410。这里,对于具有与检测模组131同样的功能的构成要素赋予相同的符号,省略其说明。与检测模组131的结构相比较,检测模组131a不具备验证数据保持部405。此外,包括在检测模组131中不存在的解密部410。检测模组132a、133a、134a及135a也具有与检测模组131a同样的结构,所以将关于他们的说明省略。解密部410通过RSA加密方式,使用由分散密钥保持部406保持的分散密钥dl(641a)将加密应用C (110)解密,生成解密文Ml。Ml=C~dl接着,解密部410将解密文Ml经由控制部403及发送部402向保护控制模组120a输出。
另外,检测模组132a的解密部410也同样,通过RSA加密方式,使用由检测模组132a的分散密钥保持部406保持的分散密钥d2 (642a)将加密应用C (110)解密,生成解密文M2。M2=C"d2接着,解密部410将解密文Ml经由控制部403及发送部402向保护控制模组120a输出。此外,检测模组133a的解密部410也同样,通过RSA加密方式,使用由检测模组133a的分散密钥保持部406保持的分散密钥d3 (643a)将加密应用C (110)解密,生成解密文M3。M3=C"d3接着,解密部410将解密文Ml经由控制部403及发送部402向保护控制模组120a 输出。进而,关于检测模组134a的解密部410及检测模组135a的解密部410也同样。3. 3检测系统IOa的动作(I)初始设定的动作使用图26所示的顺序图对检测系统IOa中的初始设定的动作进行说明。在工厂中,在制造设备100时,管理装置200的软件发布部220的分散密钥生成部610将由加解密密钥保持部607保持的私有密钥631a分解而生成多个分散密钥641a、642a、…、645a,将所生成的多个分散密钥641a、642a、…、645a向保持在软件保持部608中的检测模组131a、132a、…、135a写入(步骤S1100)。接着,控制部603经由发送部602、通信部230,将保护控制模组120a、检测模组群130a、应用110a、llla、…、114a及设备100的动作所需要的其他的计算机程序向设备100发送。这些计算机程序被附加了用于验证这些计算机程序的篡改的证书(篡改检测用证书)。另外,应用110a、llla、…、114a被加密。设备100分别接收被附加了证书的保护控制模组120a、检测模组群130a、应用110a、llla、...、114a及其他计算机程序(步骤S1101)。在设备100的EEPR0M172中,安装分别被附加了证书的保护控制模组120a、检测模组群130a、应用IlOaUlla,…、114a及其他计算机程序(步骤S1102)。如果这些计算机程序的安装结束,则执行进行设备100的初始设定的计算机程序、用于测试设备100是否正常动作的计算机程序等,进行设备100的初始化处理(步骤S1103)。(2)检测处理的动作使用图27所示的流程图对检测系统IOa中的检测处理的动作进行说明。在检测处理中,保护控制模组检测处理(S201)与应用解密处理(S202)并行地动作。换言之,在同一时间段内,保护控制模组检测处理(S201)和应用解密处理(S202)动作。在保护控制模组检测处理中,进行保护控制模组120a是否被篡改的篡改检测。在应用解密处理中,在应用执行时使用嵌入到各检测模组中的分散密钥进行应用的解密处理。关于各自的详细情况在后面叙述。另外,假设不论应用解密处理是否执行,保护控制模组检测处理都定期的或不定期地执行。(2 - I)保护控制模组检测处理的动作在保护控制模组检测处理中,检测模组131a、132a、133a、134a及135a使用篡改检测用证书331a实施对保护控制模组120a的篡改检测。另外,各检测模组也可以使用验证部404保持的验证密钥计算保护控制模组120a的MAC值,通过将计算出的MAC值与保持的MAC值比较来进行。如果MAC值一致,则判定为保护控制模组120a没有被篡改,如果MAC值不一致,则判定为保护控制模组120a被篡改。
使用图28所示的顺序图对保护控制模组检测的动作进行说明。另外,在图28中将记载简略化,检测模组131a进行保护控制模组120a的篡改检测。当然,在检测模组132a、133a、134a及135a中也进行同样的处理。检测模组131a使用篡改检测用证书331a,实施对保护控制模组120a的篡改检测(步骤 S2101)。在判定为保护控制模组120a被篡改的情况下(在S2101中“被篡改”),检测模组131a将表示保护控制模组120a被篡改的篡改检测结果向管理装置200的判断部210通知(S2102)。在判定为保护控制模组120a没有被篡改的情况下(在S2101中“没有被篡改”),检测模组131a不向判断部210进行通知,返回篡改检测处理(步骤S2101)。判断部210从检测模组131a、132a、133a、134a及135a接收篡改检测结果。(2 - 2)应用的解密动作使用图29所示的顺序图对检测系统IOa中的应用的解密动作进行说明。保护控制模组120a如果接收到执行应用I IOa的命令(步骤S2110),则由检测模组选择部310选择使哪个检测模组将加密应用C解密(步骤S2111)。这里,假设选择检测模组131a、132a、133a。 接着,保护控制模组120a将加密应用C读出(步骤S2112 ),对所选择的检测模组发送加密应用C (步骤S2113)。各检测模组接收加密应用(步骤S2113),使用保持的分散密钥将加密应用进行部分解密(步骤S2114a、S2114b、S2114c)。具体而言,检测模组131a使用保持的分散密钥dl将加密应用C解密而计算解密文Ml=CTdl (步骤S2114a),检测模组131b使用保持的分散密钥d2将加密应用C解密而计算解密文M2=C~d2 (步骤S2114b),检测模组131c使用保持的分散密钥d3将加密应用C解密而计算解密文M3=C~d3 (步骤S2114c)。各检测模组将部分解密的应用向保护控制模组120a发送(步骤S2115a、S2115b、S2115c)。检测模组131a将解密文Ml向保护控制模组120a发送(步骤S2115a),检测模组131b将解密文M2向保护控制模组120a发送(步骤S2115b),检测模组131c将解密文M3向保护控制模组120a发送(步骤S2115c)。接着,保护控制模组120a从各检测模组接收通过部分解密而得到的解密文M1、M2及 M3 (步骤 S2115a、S2115b、S2115c)。保护控制模组120a使用通过部分解密而得到的解密文将应用解密,执行应用(步骤S2116)。具体而言,将解密文Ml、解密文M2和解密文M3相乘,生成应用。成为Ml X M2 X M3
= (C~dl) X (C~d2) X (C~d3)=C" (dl+d2+d3)=C"d= (M"e) "d=M" (eXd)=M" I=M
能够求出明文的应用M。 保护控制模组120a在应用的解密完成后,向各检测模组通知应用解密完成(步骤S2117)。(2-3)保护控制模组检测处理与应用解密处理的关系如上所述,保护控制模组检测处理和应用解密处理并行地动作。在应用解密时以夕卜,保护控制模组120a动作的情况较少,所以也可以降低保护控制模组检测处理的执行频度。另一方面,在应用解密时,由保护控制模组进行的用于保护应用的动作较多,所以也可以提高保护控制模组检测处理的执行频度。另外,所谓应用解密时,是指从在图29所示的步骤S2115a、S2115b、S2115c中各检测模组向保护控制模组120a发送通过部分解密得到的解密文时起到在步骤S2117中从保护控制模组120a向各检测模组发送应用解密完成通知为止。3. 4检测系统IOa的效果在检测系统IOa中,由于不在保护控制模组120a内复原应用的私有密钥,所以即使在保护控制模组120a被篡改的情况下,也能够防止应用的私有密钥的泄漏。此外,不论是否是应用解密时,检测模组都能够使用篡改检测用证书进行对保护控制模组120的篡改检测。由此,即使保护控制模组120a被篡改,也能够立即检测到,能够提高系统的安全性。4.实施方式4这里,对作为本发明的实施方式4的检测系统IOb (未图示)进行说明。4. I 概要在检测系统IOb中,将各检测模组保持的分散密钥更新。在检测模组被篡改的情况下,有可能无法进行检测系统10中的加解密密钥的复原及检测系统IOa中的应用的解密。另外,进行检测模组是否被篡改的检测的相互监视处理及哪个检测模组被篡改的模组确定处理已在专利文献3中详细地说明,所以这里的说明省略。所以,在检测系统IOb中,通过将各检测模组保持的分散密钥更新,能够进行加解密密钥的复原及应用的解密。4. 2检测系统IOb的结构检测系统IOb具有与检测系统IOa同样的结构。这里,以与检测系统IOa的不同点为中心进行说明。管理装置200的软件发布部220的软件保持部608代替检测模组群130a而存储有检测模组群130b。检测模组群130b包括检测模组131b、132b、133b、134b及135b。
此外,在设备100中,代替检测模组群130a而安装有检测模组群130b。在检测系统IOb中,如图30所示,假设从私有密钥d (631b)生成的多个分散密钥dl (641b)、d2 (642b)、d3 (643b)、d4 (644b)及 d5 (645b)分别被写入到检测模组群 130b的检测模组 131b、132b、133b、134b 及 135b 中。这里,假设满足 d=dl+d2+d3+d4+d5。(I)判断部 210判断部210确定检测模组群130b内的被篡改的检测模组。关于相互监视处理及被篡改的检测模组的确定,已在专利文献3中详细说明,所以这里的说明省略。这里,如图31所示,假设检测模组132b是无效化对象的检测模组而进行说明。判断部210将用于识别作为无效化对象的检测模组的标识符向软件发布部220输 出。这里,作为一例,判断部210将用于识别作为无效化对象的检测模组132b的标识符向软件发布部220的分散密钥生成部610输出。(2)软件发布部220(加解密密钥保持部607)加解密密钥保持部607针对包含在检测模组群130b中的检测模组131b、132b、…、135b,将用于识别各个检测模组的标识符、与对各个检测模组发送的分散密钥建立对应来存储。(分散密钥生成部610)分散密钥生成部610从判断部210接受用于识别作为无效化对象的检测模组的标识符。接着,将与接受到的标识符对应的分散密钥从加解密密钥保持部607读出。这里,作为一例,软件发布部220读出对作为无效化对象的检测模组132b发送的分散密钥d2。接着,分散密钥生成部610将对作为无效化对象的检测模组发送的分散密钥分解,进而生成多个再分散密钥。这里,生成的再分散密钥的数量等于从包含在检测模组群130b中的全部的检测模组除去已成为无效化对象的检测模组的剩余的检测模组的数量。作为一例,分散密钥生成部610如图32所示,将分散密钥d2分解为4个,生成再分散密钥 d21、d23、d24、d25。此时,满足 d2=d21+d23+d24+d25。关于从分散密钥d2生成再分散密钥d21、d23、d24、d25的方法,与从私有密钥d生成分散密钥dl、d2、d3、d4及d5的方法是同样的。接着,分散密钥生成部610将所生成的多个再分散密钥经由控制部603、发送部602、通信部230及网络20,对在设备100中没有成为无效化对象的检测模组发送。作为一例,分散密钥生成部610将所生成的再分散密钥d21、d23、d24及d25分别对检测模组131b、133b、134b 及 135b 发送。(3)检测模组131b的结构检测模组131b如图33所示,包括接收部401、发送部402、控制部403、验证部404、分散密钥保持部406、解密部410及分散密钥更新部420。这里,对于具有与检测模组131a同样的功能的构成要素赋予相同的符合,省略其说明。与检测模组131a的结构相比较,检测模组131b包括在检测模组131a中不存在的分散密钥更新部420。检测模组132b、133b、134b及135b也具有与检测模组131b同样的结构,所以将关于他们的说明省略。分散密钥更新部420从管理装置200接受再分散密钥,从分散密钥保持部406读出分散密钥,对所读出的分散密钥加上接受到的再分散密钥,将加法结果作为新的分散密钥覆盖到存储在分散密钥保持部406中的分散密钥上。作为一例,假设分散密钥更新部420从管理装置200接收再分散密钥d21,在分散密钥保持部406中如图32所示存储有分散密钥dl(641b)。分散密钥更新部420从分散密钥保持部406读出分散密钥dl (641b),如图34所示,对所读出的分散密钥dl (641b)加上接收到的再分散密钥d21,生成新的分散密钥dl+d21 (641c),将所生成的分散密钥dl+d21(641c)覆盖到存储在分散密钥保持部406中的分散密钥dl (641b)上。检测模组133b、134b及135b如图34所示,与检测模组131b同样,接收再分散密钥d23、d24及d25,分别对存储的分散密钥d3、d4及d5加上接收到的再分散密钥d23、d24及d25,生成新的分散密钥d3+d23 (643c)、新的分散密钥d4+d24 (644c)及新的分散密钥d5+d25 (645c),将所生成的新的分散密钥643c、644c及645c存储。 由此,即使检测模组132b被无效化,也能够根据检测模组群130b的检测模组131b、133b、134b、135b所保持的分散密钥求出私有密钥d。4. 3检测系统IOb的动作使用图35所示的顺序图对检测系统IOb中的分散密钥的更新处理的动作进行说明。这里,如图31所示,检测模组132b是无效化对象的检测模组。判断部210将用于识别作为无效化对象的检测模组的标识符向软件发布部220输出(步骤S3000)。软件发布部220的分散密钥生成部610取得与接受到的标识符对应的分散密钥(步骤S3001),将所取得的分散密钥分解而生成多个再分散密钥(步骤S3002),将所生成的再分散密钥向没有被无效化的各检测模组发送(步骤S3003 )。没有被无效化的各检测模组从管理装置200接收再分散密钥(步骤S3003),对存储在分散密钥保持部406中的分散密钥加上接收到的再分散密钥而生成新的分散密钥、将所生成的分散密钥覆盖到分散密钥保持部406中,由此将分散密钥更新(步骤S3004)。这样,即使无效化对象的检测模组被无效化,也能够根据由检测模组群130b的没有被无效化的检测模组131b、133b、134b、135b保持的分散密钥求出私有密钥d。4. 4检测系统IOb的效果在检测系统IOb中,即使存储分散密钥的检测模组被篡改、该检测模组被无效化,也能够通过将存储在没有被无效化的检测模组中的分散密钥更新,来防止不能将用于将应用解密的私有密钥复原的状况。这样,将被篡改的检测模组无效化,能够在提高系统的安全性的同时、将用于将应用解密的私有密钥复原。5.其他变形例另外,基于上述实施方式说明了本发明,但本发明当然并不限定于上述实施方式。以下这样的情况也包含在本发明中。(I)在各实施方式中,也可以在检测处理后在检测模组间进行相互监视处理。另夕卜,关于相互监视处理,已在专利文献2中详细地说明,所以这里省略说明。(2)在上述变形例(I)中,也可以是,在检测处理的结果是保护控制模组为正常、并且相互监视的结果发现了进行不正当动作的检测模组的情况下,将保护控制模组发现的检测模组无效化。此外,也可以是,正常的检测模组进行无效化处理。此外,也可以是,在检测处理的结果是保护控制模组为异常、并且相互监视的结果未能发现进行不正当动作的检测模组的情况下,将保护控制模组更新。另外,关于检测模组的无效化处理及保护控制模组的更新处理,已在专利文献2中详细地说明,所以这里省略说明。 (3)在检测系统10中,在图19的步骤S2005中将加解密密钥复原,但保护控制模组120也还可以验证复原后的加解密密钥是否正确。在此情况下,保护控制模组120在初始设定处理时,从管理装置200接收加解密密钥的验证值。该验证值既可以是解密密钥的哈希值,也可以是解密密钥的MAC值。保护控制模组120在步骤S2005中将加解密密钥复原后,使用验证值验证复原后的加解密密钥是否正确。由此,能够检测复原后的加解密密钥不正确,能够提高系统的安全性。(4)在检测系统10中,在图19的步骤S2004中从各检测模组接收分散密钥,在步骤S2005中将加解密密钥复原,但保护控制模组120也可以还验证从检测模组接收到的分散密钥是否正确。在此情况下,保护控制模组120在初始设定处理时,从管理装置200接收各检测模组的分散密钥的验证值。该验证值既可以是分散密钥的哈希值,也可以是分散密钥的MAC值。保护控制模组120在图19的步骤S2004中从各检测模组接收到分散密钥后,在步骤S2005中将加解密密钥复原之前,使用验证值验证接收到的分散密钥是否正确。由此,能够检测到复原后的加解密密钥不正确,能够确定哪个检测模组发送了异常的分散密钥。这样,将发送了异常的分散密钥的检测模组判断为被篡改,将被篡改的检测模组无效化,由此能够提高系统的安全性。(5)在检测系统IOa中,在图29的步骤S2116中将应用解密,但保护控制模组120a也可以还验证解密后的应用是否正确。在此情况下,保护控制模组120a在初始设定处理时从管理装置200接收应用的验证值。该验证值既可以是应用的哈希值,也可以是应用的MAC值。保护控制模组120a在图29的步骤S2116中将应用解密后,使用验证值验证解密后的应用是否正确。由此,能够检测到解密后的应用不正确的情况,能够提高系统的安全性。(6)在检测系统IOa中,在图29的步骤S2115a、S2115b及S2115c中,接收将加密应用进行部分解密而得到的解密文Ml、M2及M3,在步骤S2116中将应用解密,但保护控制模组120a也可以还验证从检测模组接收到的通过部分解密得到的解密文是否正确。在此情况下,保护控制模组120a在初始设定处理时,从管理装置200接收通过部分解密得到的解密文的验证值。该验证值既可以是通过部分解密得到的解密文的哈希值,也可以是通过部分解密得到的解密文的MAC值。
保护控制模组120a在图29的步骤S2116中将应用解密之前,使用验证值验证从检测模组接收到的通过部分解密得到的解密文是否正确。由此,能够检测出从检测模组接收到的通过部分解密得到的解密文不正确的情况,能够确定从哪个检测模组发送了异常的解密文。这样,将发送了异常的解密文的检测模组判断为被篡改,将被篡改的检测模组无效化,由此能够提高系统的安全性。(7)在检测系统10中,在初始设定中,也可以如下所示地将加解密密钥分解。分散密钥生成部610如图36所示,将加解密密钥d (631)分解而生成分散密钥dl(651)、d2 (652)、d3 (653)、d4 (654)、d5 (655)及 d6 (656)。这里,假设满足d=dl ( + ) d2 ( + ) d3=d4 ( + ) d5 ( + ) d6。此时,(+ )表示排他逻辑和。
在将加解密密钥复原时,从保持在检测模组选择部310中的包括检测模组群的检测模组列表中选择检测模组的组合,向所选择的检测模组发送分散密钥。作为一例,在图37中表示检测模组选择部310保持的检测模组列表351a。保护控制模组120从各检测模组接收分散密钥,使用接收到的多个分散密钥将加解密密钥复原。在检测模组选择部310选择了检测模组131、132、133的情况下,根据接收到的分散密钥计算dl ( + ) d2 ( + ) d3,将加解密密钥d复原。由此,想要取得加解密密钥的攻击者只要不知道能够将加解密密钥复原的组合,就不能将加解密密钥复原。进而,即使攻击者将检测模组随机地攻击、从包括检测模组131、132、133的4个以上的检测模组取得了分散密钥,也只要没有选择正确的组合的检测模组(例如,检测模组
131、132、133),就不能将加解密密钥复原。攻击者即使从检测模组131、132、133、134取得分散密钥dl、d2、d3及d4、计算dl( + )d2 ( + ) d3 ( + )(14,由于(1关(11 ( + )d2 ( + ) d3 ( + ) d4,攻击者不能求出加解密密钥d。在使用秘密分散法的分解中,能够根据分散密钥dl、d2、d3、d4求出加解密密钥d,但在使用排他逻辑和的分解中,不能求出加解密密钥d。(8)在检测系统10中,在图21的步骤S2016中,保护控制模组120通知应用的结束,检测模组在接收到应用的结束后,进行基于篡改检测用证书的篡改检测。但是,本发明并不限定于此。也可以是,在图19的步骤S2007中,在将加解密密钥删除后,保护控制模组120对检测模组通知加解密密钥的删除,在接受到加解密密钥的删除的通知后,检测模组进行基于篡改检测用证书的篡改检测。此外,也可以是,保护控制模组120在图19的步骤S2006中,在完成加密应用的解密之后紧接着将加解密密钥删除(S2007),如果加密应用的解密完成,则保护控制模组120将加密应用的解密的完成的通知向各检测模组发送,各检测模组在接受到加密应用的解密的完成的通知后,进行基于篡改检测用证书的篡改检测。(9)在检测系统10中,在图21的步骤S2016中,保护控制模组120通知应用的结束,检测模组如果接受到应用的结束的通知,则进行基于篡改检测用证书的篡改检测。但是,在保护控制模组120被篡改的情况下,保护控制模组120有可能不通知应用的结束。
此外,在变形例(8)中,保护控制模组120也可以对检测模组通知加解密密钥的删除,在接受到加解密密钥的删除的通知后,检测模组进行基于篡改检测用证书的篡改检测。但是,在保护控制模组120被篡改的情况下,保护控制模组120有可能不通知加解密密钥的删除。进而,在变形例(8)中,也可以是,如果加密应用的解密完成,则保护控制模组120将加密应用的解密的完成的通知向各检测模组发送,各检测模组在接受到加密应用的解密的完成的通知后,进行基于篡改检测用证书的篡改检测。但是,在保护控制模组1202被篡改的情况下,保护控制模组120有可能不进行加密应用的解密的完成的通知。
因此,也可以是,在从应用开始执行起经过一定期间也没有上述通知的情况下,检测模组执行保护控制模组120的篡改检测,以备如上述的情况。这里,一定期间例如可以是应用的解密所需要的时间。此外,一定期间也可以是从服务器预先通知的时间。(10)在各实施方式及变形例中,各检测模组保持有I个分散密钥,但并不限定于此。第I检测模组也可以保持分配给自身的分散密钥、并且保持分配给其他第2检测模组的分散密钥。此时,也可以是,在第2检测模组被攻击的情况下,保持有被攻击的第2检测模组的分散密钥的第I检测模组将分配给被攻击的第2检测模组的分散密钥分解而生成再分散密钥,将所生成的再分散密钥向其他没有被攻击的检测模组发送。由此,能够不经由服务器装置而进行没有被攻击的检测模组保持的分散密钥的更新。关于保持其他检测模组的分散密钥、进行分散密钥的更新的处理,已在专利文献I中详细说明,所以这里省略。(11)在各实施方式及变形例中,也可以在第I检测模组被篡改的情况下执行被篡改的第I检测模组的无效化处理。此外,也可以在执行无效化处理后将新的第2检测模组向设备内追加安装。此时,在新的第2检测模组中预先保持有分散密钥dx的状态下安装。这里,假设在无效化处理中被无效化的第I检测模组的分散密钥为dy。第2检测模组将分散密钥的差dy - dx向其他第3检测模组发送。第3检测模组接收分散密钥的差dy - dx,对所保持的分散密钥dz加上差dy — dx,从而将分散密钥更新。由此,能够不变更加解密密钥d的值而执行被篡改的检测模组的无效化处理及新的检测模组的追加处理。此外,被无效化的第I检测模组的分散密钥有可能泄漏,但由于与新的检测模组群的分散密钥都不相等,所以不会造成新的检测模组群的分散密钥的泄漏。为了保证上述内容,使dx - dy+dz不为与其他检测模组的分散密钥相同的值。(12)在各实施方式及变形例中,各检测模组保持有I个分散密钥,但并不限定于此。第I检测模组也可以保持分配给自身的分散密钥、并且保持分配给其他第2检测模组的分散密钥。此时,在第2检测模组被攻击的情况下,保持有被攻击的第2检测模组的分散密钥的第I检测模组将分配给被攻击的第2检测模组的分散密钥向服务器装置发送。服务器装置接收分散密钥,将接收到的分散密钥分解而生成多个再分散密钥,将所生成的多个再分散密钥向没有被攻击的检测模组发送。没有被攻击的各检测模组接受再分散密钥,将自身保持的分散密钥更新。服务器装置接收到分散密钥以后的处理与图35的步骤S3002以后的处理是同样的,所以这里省略。(13)在各实施方式及变形例中,也可以以全部的检测模组的分散密钥互不相等的方式生成分散密钥。由此,即使分散密钥从各个检测模组泄漏,其他检测模组的分散密钥也不会泄漏。相对于此,如果两个检测模组的分散密钥相同,则在它们中的某一个检测模组的分散密钥泄漏时,造成两个检测模组双方的分散秘密的泄漏。(14)在检测系统IOb中,管理装置200取得无效化对象的检测模组的分散密钥,将所取得的分散密钥分解而生成多个再分散密钥,将所生成的多个再分散密钥分别向不是无效化对象的检测模组发送。不是无效化对象的各检测模组接收再分散密钥,使用接收到的再分散密钥将该检测模组保持的分散密钥更新。但是,并不限定于此。也可以是,管理装置200从私有密钥d重新生成应再次向各检测模组发送的分散 密钥,将新的分散密钥向不是无效化对象的各检测模组发送。不是无效化对象的各检测模组用接收到的新的分散密钥取代由分散密钥保持部406保持的分散密钥。(15)上述各模组具体而言,既可以分别是单独的计算机程序,也可以是装入到操作系统中的模组,也可以是从操作系统调用的驱动程序,也可以是应用程序。(16)也可以如以下这样构成。本发明的一技术方案,也可以是对保护应用程序的保护控制模组、和监视上述保护控制模组的篡改的多个检测模组进行管理的管理装置。上述管理装置也可以具备分散密钥生成电路,将用于将被加密的上述应用程序解密的解密密钥分解而生成多个分散密钥;以及输出电路,将所生成的多个上述分散密钥分别向多个上述检测模组输出。此外,本发明的一技术方案,也可以是构成对保护应用程序的保护控制模组、和监视上述保护控制模组的篡改的多个检测模组进行管理的管理装置的集成电路。上述集成电路也可以具备分散密钥生成电路,将用于将被加密的上述应用程序解密的解密密钥分解而生成多个分散密钥;以及输出电路,将所生成的多个上述分散密钥分别向多个上述检测模组输出。进而,本发明的一技术方案也可以是对保护应用程序的保护控制模组、和监视上述保护控制模组的篡改的多个检测模组进行管理的管理装置。上述管理装置也可以具备存储器部,存储有由多个计算机命令组合而构成的计算机程序;以及处理器,从存储在上述存储器部中的上述计算机程序将计算机命令I个个读出并解读,根据其解读结果而动作。上述计算机程序也可以使作为计算机的上述管理装置执行分散密钥生成步骤,将用于将被加密的上述应用程序解密的解密密钥分解而生成多个分散密钥;以及输出步骤,将所生成的多个上述分散密钥分别向多个上述检测模组输出。(17)也可以如以下这样构成。本发明的一技术方案也可以是保护应用程序、由多个检测模组监视篡改的保护控制模组。由管理装置将用于将被加密的上述应用程序解密的解密密钥分解而生成多个分散密钥,将所生成的多个上述分散密钥分别向多个上述检测模组输出;由各检测模组将上述分散密钥存储到内部中。上述保护控制模组也可以具备取得电路,从多个上述检测模组分别取得上述分散密钥;复原电路,将所取得的多个上述分散密钥综合而复原上述解密密钥;解密电路,使用由上述复原电路复原的上述解密密钥,将被加密的上述应用程序解密;以及删除电路,在由上述解密电路进行的解密结束后,将上述解密密钥删除。此外,本发明的一技术方案也可以是构成保护应用程序、由多个检测模组监视篡改的保护控制模组的集成电路。由管理装置将用于将被加密的上述应用程序解密的解密密钥分解而生成多个分散密钥,将所生成的多个上述分散密钥分别向多个上述检测模组输出;由各检测模组将上述分散密钥存储到内部中。上述集成电路也可以具备取得电路,从多个上述检测模组分别取得上述分散密钥;复原电路,将所取得的多个上述分散密钥综合而复原上述解密密钥;解密电路,使用由上述复原电路复原的上述解密密钥,将被加密的上述应用程序解密;以及删除电路,在由上述解密电路进行的解密结束后,将上述解密密钥删除。进而,本发明的一技术方案也可以是保护应用程序、由多个检测模组监视篡改的保护控制模组。上述保护控制模组也可以具备存储器部,存储有由多个计算机命令组合而 构成的计算机程序;处理器,从存储在上述存储器部中的上述计算机程序将计算机命令I个个读出并解读,根据其解读结果而动作。由管理装置将用于将被加密的上述应用程序解密的解密密钥分解而生成多个分散密钥,将所生成的多个上述分散密钥分别向多个上述检测模组输出;由各检测模组将上述分散密钥存储到内部中。上述计算机程序也可以使作为计算机的上述保护控制模组执行取得步骤,从多个上述检测模组分别取得上述分散密钥;复原步骤,将所取得的多个上述分散密钥综合而复原上述解密密钥;解密步骤,使用由上述复原步骤复原的上述解密密钥,将被加密的上述应用程序解密;以及删除步骤,在上述解密步骤的解密结束后,将上述解密密钥删除。(18)也可以如以下这样构成。本发明的一技术方案也可以是对保护应用程序的保护控制模组监视篡改的多个检测模组中的一个检测模组。由管理装置将用于将被加密的上述应用程序解密的解密密钥分解而生成多个分散密钥,将所生成的多个上述分散密钥分别向多个上述检测模组输出。上述检测模组也可以具备取得电路,取得上述分散密钥;存储电路,存储所取得的上述分散密钥;以及输出电路,对上述保护控制模组输出上述分散密钥。此外,本发明的一技术方案也可以是构成对保护应用程序的保护控制模组监视篡改的多个检测模组中的一个检测模组的集成电路。由管理装置将用于将被加密的上述应用程序解密的解密密钥分解而生成多个分散密钥,将所生成的多个上述分散密钥分别向多个上述检测模组输出。上述集成电路也可以具备取得电路,取得上述分散密钥;存储电路,存储所取得的上述分散密钥;以及输出电路,对上述保护控制模组输出上述分散密钥。此外,本发明的一技术方案也可以是对保护应用程序的保护控制模组监视篡改的多个检测模组中的一个检测模组。上述检测模组也可以具备存储器部,存储有由多个计算机命令组合而构成的计算机程序;以及处理器,从存储在上述存储器部中的上述计算机程序将计算机命令I个个读出并解读,根据其解读结果而动作。由管理装置将用于将被加密的上述应用程序解密的解密密钥分解而生成多个分散密钥,将所生成的多个上述分散密钥分别向多个上述检测模组输出。上述计算机程序也可以使作为计算机的上述检测模组执行取得步骤,取得上述分散密钥;存储步骤,使上述存储器存储所取得的上述分散密钥;以及输出步骤,对上述保护控制模组输出上述分散密钥。
(19)也可以如以下这样构成。本发明的一技术方案,是包括具有保护应用的功能的保护控制模组、和多个检测模组的信息处理装置,其特征在于,上述检测模组分别具备分散密钥保持单元,保持将用于加解密应用的加解密密钥分解后的分散密钥;以及发送单元,将上述分散密钥向上述保护控制模组发送;上述保护控制模组具备接收单元,在被加密的上述应用的解密时,从上述检测模组接收分散密钥;加解密密钥复原单元,从上述分散密钥将上述加解密密钥复原;以及解密单元,作为输入数据而被输入使用上述加解密密钥被加密的上述应用,将上述输入数据解密,将解密结果作为输出数据输出。根据该结构,在应用解密时验证由保护控制模组进行的加密应用的解密处理,所以不用将保护控制模组保持的加解密密钥向检测模组公开就能够判定保护控制模组是否被篡改。此外,在应用解密时以外,在从检测模组发送分散密钥到接受加解密密钥的删除通知的期间以外,保护控制模组不保持应用的加解密密钥,所以检测模组在保护控制模组 的篡改检测中,能够通过将保护控制模组的数据读入、使用篡改检测用证书来判定保护控制模组是否被篡改。由此,即使检测模组被篡改并进行不正当动作,保护控制模组的信息及应用的信息也不会泄漏,所以能够提高系统的安全性。此外,由于保护控制模组不保持应用的加解密密钥,所以即使保护控制模组被攻击,加解密密钥也不会泄漏,保护控制模组的信息及应用的信息也不会泄漏,所以能够提高系统的安全性。这里,也可以是,上述保护控制模组具备分解单元,将上述输出数据分解为至少k (k ^ 2)个分解数据;分配单元,将分解后的k个分解数据向某个检测模组分配;上述多个检测模组分别具备验证单元,使用被分配的分解数据、基于上述输入数据和在上述解密单元进行正常动作的情况下期待的分解数据的值生成的验证数据、以及输入数据,判断被分配的分解数据是否正确。由此,在应用解密时验证由保护控制模组120进行的被加密应用的解密处理,因此不用将保护控制模组120保持的加解密密钥向检测模组公开就能够判断保护控制模组120是否被篡改。这里,也可以是,上述保护控制模组具备将上述加解密密钥删除的删除单元;上述检测模组具备验证上述保护控制模组是否被篡改的篡改检测单元;上述保护控制模组在从由上述加解密密钥复原单元将上述加解密密钥复原到由上述删除单元完成加解密密钥的删除为止的时间以外,执行上述篡改检测单元。由此,在应用解密时以外,在从检测模组发送分散密钥到接受加解密密钥的删除通知为止的期间以外,保护控制模组不保持应用的加解密密钥,所以检测模组在保护控制模组的篡改检测中,能够通过将保护控制模组的数据读入、使用篡改检测用证书来判定保护控制模组是否被篡改。这里,也可以是,上述保护控制模组具备在将上述删除单元执行后对上述检测模组通知删除完成的通知发送单元;上述检测模组具备从上述保护控制模组接收加解密密钥的删除完成的通知的通知接收单元;通过接收上述通知单元的上述通知,判断为上述删除单元完成了加解密密钥的删除。此外,作为本发明的其他技术方案的信息处理装置,包括具有保护应用的功能的保护控制模组、和多个检测模组,其特征在于,上述检测模组分别具备分散密钥保持单元,保持将用于对应用进行解密的解密密钥分解后的分散密钥;部分解密单元,作为输入数据而被输入被加密的上述应用,利用上述分散密钥将上述输入数据进行部分解密,将解密结果作为输出数据输出;以及发送单元,将上述输出数据向保护控制模组发送;上述保护控制模组具备接收单元,从上述检测模组接收输出数据;应用解密单元,根据多个上述输出数据计算解密后的上述应用。由此,在保护控制模组内不复原应用的加解密密钥,所以即使在保护控制模组被篡改的情况下,也能够防止应用的加解密密钥的泄漏。
这里,上述检测模组也可以具备验证上述保护控制模组是否被篡改的篡改检测单
J Li ο由此,不论是否是应用解密时,检测模组在保护控制模组的篡改检测中,都能够通过将保护控制模组的数据读入、使用篡改检测用证书来判定保护控制模组是否被篡改。进而,即使保护控制模组被篡改也能够立即检测到,能够提高系统的安全性。这里,也可以是,上述篡改检测单元在从上述检测模组的上述解密单元的执行开始到上述保护控制模组的上述应用解密单元的执行完成为止的时间中,提高上述保护控制模组的检测处理的执行频度。这里,也可以是,上述保护控制模组具备在执行上述应用解密单元后向上述检测模组通知执行完成的通知发送单元;上述检测模组具备从上述保护控制模组接收上述应用解密单元的执行完成的通知的通知接收单元;通过接收上述通知单元的上述通知,判断为上述应用解密单元的执行完成。这里,也可以是,上述检测模组具备分散密钥接收单元,经由网络与管理装置连接,从上述管理装置接收更新用的分散密钥;以及更新单元,根据由上述分散密钥接收单元接收到的分散密钥和由上述分散密钥保持单元保持的分散密钥,生成新的分散密钥,将由上述分散密钥保持单元保持的分散密钥更新。由此,即使保持应用的加解密密钥的检测模组被篡改,也可以通过将被篡改的检测模组以外的检测模组保持的分散密钥更新,来防止将应用的加解密密钥复原。此外,即使检测模组被篡改,也能够进行应用的加解密,通过将被篡改的检测模组无效化,能够提高系统的安全性。这里,上述信息处理装置的特征在于,具备分散密钥接收单元,经由网络与管理装置连接,从上述管理装置接收更新用的分散密钥;以及更新单元,根据由上述分散密钥接收单元接收到的分散密钥和由上述分散密钥保持单元保持的分散密钥,更新为新的分散密钥。此外,作为本发明的另一技术方案的管理装置,具备经过多个处理工序将输入的加密数据解密的解密单元,并且与验证各处理工序的信息处理装置连接,其特征在于,具备验证基数据生成单元,根据向上述多个处理工序的输入数据和在上述解密单元进行正常动作的情况下期待的来自各处理工序的输出数据,生成验证基数据;以及发送单元,将所生成的上述验证基数据向上述信息处理装置发送。
这里,也可以是,上述信息处理装置的上述解密单元将被加密的多个应用解密;上述验证基数据生成单元分别对应于上述多个处理工序,针对上述多个应用,分别生成包括被加密的应用、表示在上述解密单元进行了正常动作的情况下可期待的各处理工序的输入数据与输出数据的对应关系的验证值、以及根据将多个上述验证值结合而得到的数据生成的结合数据验证值的多个上述验证基数据。(20)上述各装置具体而言是由微处理器、ROM、RAM、硬盘单元、显示器单元、键盘、鼠标等构成的计算机系统。在上述RAM或硬盘单元中存储有计算机程序。通过由上述微处理器按照上述计算机程序动作,各装置实现其功能。这里,计算机程序是为了达到规定的功能而将多个表示对计算机的指令的命令代码组合而构成的。(21)构成上述各装置的构成要素的一部分或全部也可以由I个系统LSI (LargeScale Integration :大规模集成电路)构成。系统LSI是将多个构成部集成到I个芯片上而制造的超多功能LSI,具体而言,是包括微处理器、ROM、RAM等而构成的计算机系统。在上述RAM中存储有计算机程序。通过由上述微处理器按照上述计算机程序动作,系统LSI达到其功能。 此外,构成上述各装置的构成要素的各部既可以单独地形成I个芯片,也可以包括一部分或全部而形成I个芯片。此外,集成电路化的方法并不限定于LSI,也可以由专用电路或通用处理器实现。也可以使用在LSI制造后能够编程的FPGA (Field Programmable Gate Array)、或能够重构LSI内部的电路单元的连接及设定的可重构处理器。(22)构成上述各装置的构成要素的一部分或全部也可以由相对于各装置可拆装的IC卡或单体的模组构成。上述IC卡或上述模组是由微处理器、ROM、RAM等构成的计算机系统。上述IC卡或上述模组也可以包括上述超多功能LSI。通过由微处理器按照计算机程序动作,上述IC卡或上述模组实现其功能。该IC卡或该模组也可以具有防篡改性。(23)本发明的一技术方案也可以是控制各装置的动作的控制方法。此外,也可以是将这些方法通过计算机实现的计算机程序,也可以是由上述计算机程序构成的数字信号。此外,本发明也可以是将上述计算机程序或上述数字信号记录到计算机可读取的记录介质、例如软盘、硬盘、⑶一 ROM、MO、DVD、DVD — ROM、DVD — RAM、BD、半导体存储器等中的产品。此外,也可以是记录在这些记录介质中的上述数字信号。此外,本发明也可以是将上述计算机程序或上述数字信号经由电气通信线路、无线或有线通信线路、以因特网为代表的网络、数据广播等传送的结构。此外,本发明也可以是具备微处理器和存储器的计算机系统,上述存储器存储有上述计算机程序,上述微处理器按照上述计算机程序动作。此外,也可以通过将上述程序或上述数字信号记录到上述记录介质中并移送,或通过将上述程序或上述数字信号经由上述网络等移送,由独立的其他计算机系统实施。(24)也可以将上述实施方式及上述变形例分别组合。工业实用性本发明的篡改监视系统由于保护控制模组不总是保持解密密钥,而是仅在将被加密的应用程序解密的时间段保持解密密钥,在解密结束后将该解密密钥删除,所以能够降低上述解密密钥从保护控制模组不正当地泄漏的可能性,作为监视在信息处理装置等的设备内部中动作的模组等的篡改的技术具有实用性。符号说明10、10a、IOb 检测系统IOd篡改监视系统100 设备110、111、112、113、114 应用
120、120a、120b 保护控制模组130、130a、130b 检测模组群131、132、133、134、135 检测模组171 CPU172 EEPROM173 RAM174 NIC180 OS190引导装载程序200、200d 管理装置210判断部220软件发布部230通信部301接收部302发送部303控制部304解密装载部305篡改检测部306解析工具检测部307加解密密钥复原部308验证基数据保持部309验证数据生成部310检测模组选择部401接收部402发送部403控制部404验证部405验证数据保持部406分散密钥保持部410解密部420分散密钥更新部501接收部
502发送部503指示生成部601接收部602发送部603控制部604认证部605证书生成部606签名私有密钥保持部
607加解密密钥保持部608软件保持部609验证基数据生成部610分散密钥生成部
权利要求
1.一种篡改监视系统,包括保护应用程序的保护控制模组、监视上述保护控制模组的篡改的多个检测模组以及管理装置,其特征在于, 上述管理装置具备 分散密钥生成单元,将解密密钥分解而生成多个分散密钥,上述解密密钥用于将被加密的上述应用程序解密;以及 输出单元,将所生成的多个上述分散密钥分别向多个上述检测模组输出; 各检测模组取得上述分散密钥并存储在内部中; 上述保护控制模组具备 取得单元,从多个上述检测模组分别取得上述分散密钥; 复原单元,将所取得的多个上述分散密钥综合而复原上述解密密钥; 解密单元,使用由上述复原单元复原的上述解密密钥,将被加密的上述应用程序解密;以及 删除单元,在上述解密单元的解密结束后,删除上述解密密钥。
2.如权利要求I所述的篡改监视系统,其特征在于, 上述管理装置还包括 验证数据生成单元,对被加密的没有篡改的上述应用程序实施由多个解密部分处理构成的解密处理,按每个解密部分处理对向该解密部分处理的输入数据及来自该解密部分处理的输出数据的双方实施单向性的变换而生成解密验证值,按每个解密部分处理生成包含上述输入数据及上述解密验证值的验证数据; 上述输出单元还将上述验证数据向上述保护控制模组输出; 上述解密单元对被加密的上述应用程序实施由多个解密部分处理构成的解密处理;上述保护控制模组还包括第二输出单元,该第二输出单元按上述解密单元的每个解密部分处理,将来自该解密部分处理的输出数据及接受到的上述验证数据向检测模组输出;上述检测模组包括 接收单元,接受上述输出数据及上述验证数据;以及 验证单元,使用接受到的上述输出数据及上述验证数据进行验证,在验证失败的情况下,输出该验证结果。
3.如权利要求2所述的篡改监视系统,其特征在于, 上述验证单元对包含在上述验证数据中的上述输入数据及接受到的上述输出数据的双方实施单向性的与上述变换相同的变换而生成第二验证值,并判断包含在上述验证数据中的上述解密验证值与生成的上述第二验证值是否一致,从而进行上述验证,在不一致的情况下,看作验证失败,输出上述验证结果。
4.如权利要求2所述的篡改监视系统,其特征在于, 上述保护控制模组还保护一个以上的其他应用程序; 上述管理装置还包括 证书生成单元,针对上述其他应用程序,按每个解密部分处理生成解密验证值,按每个解密部分处理对针对多个应用程序生成的多个上述解密验证值实施数字签名而生成证书,上述多个应用程序包括上述应用程序及其他应用程序; 上述验证数据生成单元生成将按每个解密部分处理生成的针对上述其他应用程序的上述解密验证值及按每个解密部分处理生成的上述证书包含在内的上述验证数据; 上述输出单元将包含上述证书的上述验证数据向上述保护控制模组输出; 上述第二输出单元将包含上述证书的上述验证数据向上述检测模组输出; 上述接收单元接受包含上述证书的上述验证数据; 上述验证单元还按每个解密部分处理,使用包含在接受到的上述验证数据中的上述证书进行验证。
5.如权利要求4所述的篡改监视系统,其特征在于, 上述验证单元对包含在上述验证数据中的上述输入数据及接受到的上述输出数据的双方实施单向性的与上述变换相同的变换而生成第二验证值,使用包含在上述验证数据中的针对上述其他应用程序的上述解密验证值及所生成的上述第二验证值、以及上述证书,进行上述验证。
6.如权利要求2所述的篡改监视系统,其特征在于, 多个上述解密部分处理分别对应于多个上述检测模组; 上述第二输出单元对与各解密部分处理对应的上述检测模组,输出来自该解密部分处理的上述输出数据及上述验证数据。
7.如权利要求6所述的篡改监视系统,其特征在于, 各检测模组还包括发送单元,该发送单元对其他检测模组发送用于识别与自身对应的上述解密部分处理的识别信息; 各检测模组的上述接收单元还从其他检测模组接受用于识别与该其他检测模组对应的上述解密部分处理的识别信息; 各检测模组的上述验证单元还对接受到的上述识别信息及用于识别与自身对应的上述解密部分处理的识别信息的重复性、以及接受到的上述识别信息及用于识别与自身对应的上述解密部分处理的识别信息与分别识别多个上述解密部分处理的识别信息的完整性进行验证。
8.如权利要求7所述的篡改监视系统,其特征在于, 在接受到的上述识别信息及用于识别与自身对应的上述解密部分处理的上述识别信息中有重复、或者接受到的上述识别信息及用于识别与自身对应的上述解密部分处理的上述识别信息没有包括用于识别多个解密部分处理的全部的识别信息的情况下,各检测模组的上述验证单元输出表示验证失败之意的验证结果。
9.如权利要求1所述的篡改监视系统,其特征在于, 上述保护控制模组被附加了对没有篡改的上述保护控制模组实施数字签名而生成的篡改检测用证书; 各检测模组包括验证单元,该验证单元在上述解密结束、上述解密密钥被删除后,使用上述篡改检测用证书对上述保护控制模组进行篡改检测。
10.如权利要求1所述的篡改监视系统,其特征在于, 上述分散密钥生成单元以通过将生成的多个分散密钥相加而能够得到上述解密密钥的方式生成多个上述分散密钥; 上述复原单元通过将多个上述分散密钥相加,复原上述解密密钥。
11.如权利要求1所述的篡改监视系统,其特征在于,上述分散密钥生成单元使用秘密分散法,从上述解密密钥生成多个上述分散密钥; 上述复原单元使用上述秘密分散法,从多个上述分散密钥复原上述解密密钥。
12.如权利要求I所述的篡改监视系统,其特征在于 , 上述保护控制模组还包括第二输出单元,该第二输出单元将被加密的上述应用程序对上述检测模组输出; 各检测模组包括 第二取得单元,从上述保护控制模组取得被加密的上述应用程序; 第二解密单元,使用所存储的上述分散密钥,将被加密的上述应用程序进行部分解密,从而生成部分解密文;以及 第三输出单元,将所生成的上述部分解密文向上述保护控制模组输出; 上述取得单元从各检测模组取得上述部分解密文; 上述解密单元使用所取得的多个上述部分解密文,将被加密的上述应用程序解密。
13.如权利要求12所述的篡改监视系统,其特征在于, 上述应用程序通过RSA加密方式被加密; 上述第二解密单元对被加密的上述应用程序实施基于上述分散密钥的值的乘幂而生成上述部分解密文; 上述解密单元通过将多个上述部分解密文的值相乘,将被加密的上述应用程序解密。
14.如权利要求12所述的篡改监视系统,其特征在于, 上述保护控制模组还包括选择单元,该选择单元从全部的上述检测模组中选择多个检测模组; 上述第二输出单元对由上述选择单元选择的上述检测模组输出被加密的上述应用程序。
15.如权利要求12所述的篡改监视系统,其特征在于, 上述保护控制模组被附加了对没有篡改的上述保护控制模组实施数字签名而生成的篡改检测用证书; 各检测模组包括验证单元,该验证单元使用上述篡改检测用证书对上述保护控制模组进行篡改检测。
16.如权利要求I所述的篡改监视系统,其特征在于, 多个上述检测模组中的一个上述检测模组被无效化; 上述分散密钥生成单元还将分配给被无效化的上述检测模组的上述分散密钥分解而生成多个再分散密钥; 上述输出单元还将所生成的多个再分散密钥分别向没有被无效化的多个上述检测模组输出; 没有被无效化的各检测模组还包括分散密钥更新单元,该分散密钥更新单元取得上述再分散密钥,使用取得的上述再分散密钥将存储的上述分散密钥更新而生成新的分散密钥。
17.如权利要求16所述的篡改监视系统,其特征在于, 上述分散密钥生成单元以通过将生成的多个再分散密钥相加而能够得到上述分散密钥的方式生成多个上述再分散密钥;上述分散密钥更新单元通过对存储的上述分散密钥加上取得的上述再分散密钥,生成新的上述分散密钥。
18.如权利要求I所述的篡改监视系统,其特征在于, 多个上述检测模组被分类为第一组及第二组; 上述分散密钥生成单元还将上述解密密钥分解而生成多个第二分散密钥; 上述输出单元将所生成的多个上述分散密钥分别向属于上述第一组的多个上述检测模组输出,还将所生成的多个上述第二分散密钥分别向属于上述第二组的多个上述检测模组输出; 属于上述第一组的各检测模组取得上述分散密钥并存储在内部中; 属于上述第二组的各检测模组取得上述第二分散密钥并存储在内部中; 上述取得单元从属于第一组或第二组的多个上述检测模组分别取得上述分散密钥或上述第二分散密钥; 上述复原单元将所取得的多个上述分散密钥综合,或者将所取得的多个上述第二分散密钥综合,来复原上述解密密钥。
19.如权利要求I所述的篡改监视系统,其特征在于, 上述保护控制模组及多个上述检测模组分别是计算机程序; 上述应用程序、上述保护控制模组及多个上述检测模组存储在信息处理装置中。
20.如权利要求19所述的篡改监视系统,其特征在于, 上述输出单元在上述信息处理装置的初始设定时,将多个上述分散密钥分别向多个上述检测模组输出。
21.如权利要求19所述的篡改监视系统,其特征在于, 在上述信息处理装置中执行上述应用程序时,上述取得单元从多个上述检测模组分别取得上述分散密钥。
22.—种管理装置,对保护应用程序的保护控制模组、以及监视上述保护控制模组的篡改的多个检测模组进行管理,其特征在于,具备 分散密钥生成单元,将解密密钥分解而生成多个分散密钥,上述解密密钥用于将被加密的上述应用程序解密;以及 输出单元,将所生成的多个上述分散密钥分别向多个上述检测模组输出。
23.如权利要求22所述的管理装置,其特征在于, 上述管理装置还包括 验证数据生成单元,对被加密的没有篡改的上述应用程序实施由多个解密部分处理构成的解密处理,按每个解密部分处理对向该解密部分处理的输入数据及来自该解密部分处理的输出数据的双方实施单向性的变换而生成解密验证值,按每个解密部分处理生成包含上述输入数据及上述解密验证值的验证数据; 上述输出单元还将上述验证数据向上述保护控制模组输出。
24.如权利要求23所述的管理装置,其特征在于, 上述保护控制模组还保护一个以上的其他应用程序; 上述管理装置还包括证书生成单元,该证书生成单元针对上述其他应用程序,按每个解密部分处理生成解密验证值,按每个解密部分处理对针对多个应用程序生成的多个上述解密验证值实施数字签名而生成证书,上述多个应用程序包括上述应用程序及其他应用程序; 上述验证数据生成单元生成将按每个解密部分处理生成的针对上述其他应用程序的上述解密验证值及按每个解密部分处理生成的上述证书包含在内的上述验证数据; 上述输出单元将包含上述证书的上述验证数据向上述保护控制模组输出。
25.如权利要求22所述的管理装置,其特征在于, 上述分散密钥生成单元以通过将生成的多个分散密钥相加而能够得到上述解密密钥的方式生成多个上述分散密钥。
26.如权利要求22所述的管理装置,其特征在于, 上述分散密钥生成单元使用秘密分散法,从上述解密密钥生成多个上述分散密钥。
27.如权利要求22所述的管理装置,其特征在于, 多个上述检测模组中的一个上述检测模组被无效化; 上述分散密钥生成单元还将分配给被无效化的上述检测模组的上述分散密钥分解而生成多个再分散密钥; 上述输出单元还将所生成的多个再分散密钥分别向没有被无效化的多个上述检测模组输出。
28.如权利要求27所述的管理装置,其特征在于, 上述分散密钥生成单元以通过将生成的多个再分散密钥相加而能够得到上述分散密钥的方式生成多个上述再分散密钥。
29.如权利要求22所述的管理装置,其特征在于, 多个上述检测模组被分类为第一组及第二组; 上述分散密钥生成单元还将上述解密密钥分解而生成多个第二分散密钥; 上述输出单元将所生成的多个上述分散密钥分别向属于上述第一组的多个上述检测模组输出,还将所生成的多个上述第二分散密钥分别向属于上述第二组的多个上述检测模组输出。
30.如权利要求22所述的管理装置,其特征在于, 上述保护控制模组及多个上述检测模组分别是计算机程序; 上述应用程序、上述保护控制模组及多个上述检测模组存储在信息处理装置中;上述输出单元在上述信息处理装置的初始设定时将多个上述分散密钥分别向多个上述检测模组输出。
31.一种保护控制模组,保护应用程序,并被多个检测模组监视篡改,其特征在于, 由管理装置将解密密钥分解而生成多个分散密钥,并将生成的多个上述分散密钥分别向多个上述检测模组输出;上述解密密钥用于将被加密的上述应用程序解密; 由各检测模组将上述分散密钥存储在内部中; 上述保护控制模组具备 取得单元,从多个上述检测模组分别取得上述分散密钥; 复原单元,将所取得的多个上述分散密钥综合而复原上述解密密钥; 解密单元,使用由上述复原单元复原的上述解密密钥,将被加密的上述应用程序解密;以及删除单元,在上述解密单元的解密结束后,删除上述解密密钥。
32.如权利要求31所述的保护控制模组,其特征在于, 上述管理装置还对被加密的没有篡改的上述应用程序实施由多个解密部分处理构成的解密处理,按每个解密部分处理对向该解密部分处理的输入数据及来自该解密部分处理的输出数据的双方实施单向性的变换而生成解密验证值,按每个解密部分处理生成包含上述输入数据及上述解密验证值的验证数据,将上述验证数据向上述保护控制模组输出;上述解密单元对被加密的上述应用程序实施由多个解密部分处理构成的解密处理;上述保护控制模组还包括第二输出单元,该第二输出单元按上述解密单元的每个解密部分处理将来自该解密部分处理的输出数据及接受到的上述验证数据向检测模组输出。
33.如权利要求32所述的保护控制模组,其特征在于, 上述保护控制模组还保护一个以上的其他应用程序; 上述管理装置针对上述其他应用程序,按每个解密部分处理生成解密验证值,按每个解密部分处理对针对多个应用程序生成的多个上述解密验证值实施数字签名而生成证书,上述多个应用程序包括上述应用程序及其他应用程序,上述管理装置生成将按每个解密部分处理生成的针对上述其他应用程序的上述解密验证值及按每个解密部分处理生成的上述证书包含在内的上述验证数据,并将包含上述证书的上述验证数据向上述保护控制模组输出; 上述第二输出单元将包含上述证书的上述验证数据向上述检测模组输出。
34.如权利要求32所述的保护控制模组,其特征在于, 多个上述解密部分处理分别对应于多个上述检测模组; 上述第二输出单元对与各解密部分处理对应的上述检测模组,输出来自该解密部分处理的上述输出数据及上述验证数据。
35.如权利要求31所述的保护控制模组,其特征在于, 上述管理装置以通过将生成的多个分散密钥相加而能够得到上述解密密钥的方式生成多个上述分散密钥; 上述复原单元通过将多个上述分散密钥相加,复原上述解密密钥。
36.如权利要求31所述的保护控制模组,其特征在于, 上述管理装置使用秘密分散法,从上述解密密钥生成多个上述分散密钥; 上述复原单元使用上述秘密分散法,从多个上述分散密钥复原上述解密密钥。
37.如权利要求31所述的保护控制模组,其特征在于, 上述保护控制模组还包括第二输出单元,该第二输出单元将被加密的上述应用程序对上述检测模组输出; 各检测模组从上述保护控制模组取得被加密的上述应用程序,使用存储的上述分散密钥将被加密的上述应用程序进行部分解密而生成部分解密文,将生成的上述部分解密文向上述保护控制模组输出; 上述取得单元从各检测模组取得上述部分解密文; 上述解密单元使用所取得的多个上述部分解密文,将被加密的上述应用程序解密。
38.如权利要求37所述的保护控制模组,其特征在于, 上述应用程序通过RSA加密方式被加密;上述检测模组对被加密的上述应用程序实施基于上述分散密钥的值的乘幂而生成上述部分解密文; 上述解密单元通过将多个上述部分解密文的值相乘,将被加密的上述应用程序解密。
39.如权利要求37所述的保护控制模组,其特征在于, 上述保护控制模组还包括选择单元,该选择单元从全部的上述检测模组中选择多个检测模组; 上述第二输出单元对由上述选择单元选择的上述检测模组输出被加密的上述应用程序。
40.如权利要求31所述的保护控制模组,其特征在于, 多个上述检测模组被分类为第一组及第二组; 上述管理装置还将上述解密密钥分解而生成多个第二分散密钥,将生成的多个上述分散密钥分别向属于上述第一组的多个上述检测模组输出,还将生成的多个上述第二分散密钥分别向属于上述第二组的多个上述检测模组输出; 属于上述第一组的各检测模组将上述分散密钥存储在内部中; 属于上述第二组的各检测模组将上述第二分散密钥存储在内部中; 上述取得单元从属于第一组或第二组的多个上述检测模组分别取得上述分散密钥或上述第二分散密钥; 上述复原单元将所取得的多个上述分散密钥综合,或者将所取得的多个上述第二分散密钥综合,来复原上述解密密钥。
41.如权利要求31所述的保护控制模组,其特征在于, 上述保护控制模组及多个上述检测模组分别是计算机程序; 上述应用程序、上述保护控制模组及多个上述检测模组存储在信息处理装置中。
42.如权利要求41所述的保护控制模组,其特征在于, 在上述信息处理装置中执行上述应用程序时,上述取得单元从多个上述检测模组分别取得上述分散密钥。
43.一种检测模组,其是对保护应用程序的保护控制模组监视篡改的多个检测模组中的一个检测模组,其特征在于, 由管理装置将解密密钥分解而生成多个分散密钥,将生成的多个上述分散密钥分别向多个上述检测模组输出,上述解密密钥用于将被加密的上述应用程序解密; 上述检测模组具备 取得单元,取得上述分散密钥; 存储单元,存储所取得的上述分散密钥;以及 输出单元,对上述保护控制模组输出上述分散密钥。
44.如权利要求43所述的检测模组,其特征在于,上述管理装置对被加密的没有篡改的上述应用程序实施由多个解密部分处理构成的解密处理,按每个解密部分处理对向该解密部分处理的输入数据及来自该解密部分处理的输出数据的双方实施单向性的变换而生成解密验证值,按每个解密部分处理生成包含上述输入数据及上述解密验证值的验证数据,进而将上述验证数据向上述保护控制模组输出;由上述保护控制模组对被加密的上述应用程序实施由多个解密部分处理构成的解密处理,还按上述解密单元的每个解密部分处理将来自该解密部分处理的输出数据及接受到的上述验证数据向检测模组输出; 上述检测模组还包括 接收单元,接受上述输出数据及上述验证数据;以及 验证单元,使用接受到的上述输出数据及上述验证数据进行验证,在验证失败的情况下,输出其验证结果。
45.如权利要求44所述的检测模组,其特征在于, 上述验证单元对包含在上述验证数据中的上述输入数据及接受到的上述输出数据的双方实施单向性的与上述变换相同的变换而生成第二验证值,并判断包含在上述验证数据中的上述解密验证值与生成的上述第二验证值是否一致,从而进行上述验证,在不一致的情况下,看作验证失败,输出上述验证结果。
46.如权利要求44所述的检测模组,其特征在于, 上述保护控制模组还保护一个以上的其他应用程序; 上述管理装置还针对上述其他应用程序,按每个解密部分处理生成解密验证值,按每个解密部分处理对针对多个应用程序生成的多个上述解密验证值实施数字签名而生成证书,上述多个应用程序包括上述应用程序及其他应用程序,上述管理装置生成将按每个解密部分处理生成的针对上述其他应用程序的上述解密验证值及按每个解密部分处理生成的上述证书包含在内的上述验证数据,将包含上述证书的上述验证数据向上述保护控制模组输出; 上述保护控制模组将包含上述证书的上述验证数据向上述检测模组输出; 上述接收单元接受包含上述证书的上述验证数据; 上述验证单元还按每个解密部分处理,使用包含在接受到的上述验证数据中的上述证书进行验证。
47.如权利要求46所述的检测模组,其特征在于, 上述验证单元对包含在上述验证数据中的上述输入数据及接受到的上述输出数据的双方实施单向性的与上述变换相同的变换而生成第二验证值,使用包含在上述验证数据中的针对上述其他应用程序的上述解密验证值及所生成的上述第二验证值、以及上述证书,进行上述验证。
48.如权利要求44所述的检测模组,其特征在于, 多个上述解密部分处理分别对应于多个上述检测模组; 上述保护控制模组对与各解密部分处理对应的上述检测模组输出来自该解密部分处理的上述输出数据及上述验证数据; 上述检测模组还包括发送单元,该发送单元将用于识别与自身对应的上述解密部分处理的识别信息对其他检测模组发送; 上述接收单元还从其他检测模组接受用于识别与该其他检测模组对应的上述解密部分处理的识别信息; 上述验证单元还对接受到的上述识别信息及用于识别与自身对应的上述解密部分处理的识别信息的重复性、以及接受到的上述识别信息及用于识别与自身对应的上述解密部分处理的识别信息与分别用于识别多个上述解密部分处理的识别信息的完整性进行验证。
49.如权利要求48所述的检测模组,其特征在于, 上述验证单元在接受到的上述识别信息及用于识别与自身对应的上述解密部分处理的上述识别信息中有重复、或者接受到的 上述识别信息及用于识别与自身对应的上述解密部分处理的上述识别信息没有包括用于识别多个解密部分处理的全部的识别信息的情况下,输出表示验证失败之意的验证结果。
50.如权利要求43所述的检测模组,其特征在于, 上述保护控制模组被附加了对没有篡改的上述保护控制模组实施数字签名而生成的篡改检测用证书; 上述检测模组还包括验证单元,该验证单元在上述解密结束、上述解密密钥被删除后,使用上述篡改检测用证书对上述保护控制模组进行篡改检测。
51.如权利要求43所述的检测模组,其特征在于, 上述保护控制模组还将被加密的上述应用程序对上述检测模组输出; 上述检测模组还包括 第二取得单元,从上述保护控制模组取得被加密的上述应用程序; 第二解密单元,使用存储的上述分散密钥,将被加密的上述应用程序进行部分解密而生成部分解密文;以及 第三输出单元,将所生成的上述部分解密文向上述保护控制模组输出。
52.如权利要求51所述的检测模组,其特征在于, 上述应用程序通过RSA加密方式被加密; 上述第二解密单元对被加密的上述应用程序实施基于上述分散密钥的值的乘幂而生成上述部分解密文。
53.如权利要求51所述的检测模组,其特征在于, 上述保护控制模组被附加了对没有篡改的上述保护控制模组实施数字签名而生成的篡改检测用证书; 上述检测模组还包括验证单元,该验证单元使用上述篡改检测用证书对上述保护控制模组进行篡改检测。
54.如权利要求43所述的检测模组,其特征在于, 多个上述检测模组中的一个检测模组被无效化; 上述管理装置还将分配给被无效化的上述检测模组的上述分散密钥分解而生成多个再分散密钥,将生成的多个再分散密钥分别向没有被无效化的多个上述检测模组输出;没有被无效化的上述检测模组还包括分散密钥更新单元,该分散密钥更新单元取得上述再分散密钥,使用所取得的上述再分散密钥将存储的上述分散密钥更新而生成新的分散密钥。
55.如权利要求54所述的检测模组,其特征在于, 上述管理装置以通过将生成的多个再分散密钥相加而能够得到上述分散密钥的方式生成多个上述再分散密钥; 上述分散密钥更新单元通过对存储的上述分散密钥加上取得的上述再分散密钥,生成新的上述分散密钥。
56.如权利要求43所述的检测模组,其特征在于,上述保护控制模组及多个上述检测模组分别是计算机程序; 上述应用程序、上述保护控制模组及多个上述检测模组存储在信息处理装置中。
57.一种控制方法,在管理装置中使用,该管理装置对保护应用程序的保护控制模组、以及监视上述保护控制模组的篡改的多个检测模组进行管理,该控制方法的特征在于,包括 分散密钥生成步骤,将解密密钥分解而生成多个分散密钥,上述解密密钥用于将被加密的上述应用程序解密;以及 输出步骤,将所生成的多个上述分散密钥分别向多个上述检测模组输出。
58.一种计算机可读取的记录介质,记录有在管理装置中使用的控制用的计算机程序,该管理装置对保护应用程序的保护控制模组、以及监视上述保护控制模组的篡改的多个检测模组进行管理,该记录介质的特征在于, 记录有用于使作为计算机的上述管理装置执行以下步骤的计算机程序,该步骤为分散密钥生成步骤,将解密密钥分解而生成多个分散密钥,上述解密密钥用于将被加密的上述应用程序解密;以及 输出步骤,将所生成的多个上述分散密钥分别向多个上述检测模组输出。
59.一种计算机程序,其是在管理装置中使用的控制用的计算机程序,该管理装置对保护应用程序的保护控制模组、以及监视上述保护控制模组的篡改的多个检测模组进行管理,该计算机程序的特征在于, 用于使作为计算机的上述管理装置执行以下步骤 分散密钥生成步骤,将解密密钥分解而生成多个分散密钥,上述解密密钥用于将被加密的上述应用程序解密;以及 输出步骤,将所生成的多个上述分散密钥分别向多个上述检测模组输出。
60.一种集成电路,构成对保护应用程序的保护控制模组、以及监视上述保护控制模组的篡改的多个检测模组进行管理的管理装置,其特征在于,具备 分散密钥生成单元,将解密密钥分解而生成多个分散密钥,上述解密密钥用于将被加密的上述应用程序解密;以及 输出单元,将所生成的多个上述分散密钥分别向多个上述检测模组输出。
61.一种控制方法,在保护控制模组中使用,该保护控制模组保护应用程序,并被多个检测模组监视篡改,该控制方法的特征在于, 由管理装置将解密密钥分解而生成多个分散密钥,并将生成的多个上述分散密钥分别向多个上述检测模组输出,上述解密密钥用于将被加密的上述应用程序解密; 由各检测模组将上述分散密钥存储在内部中; 上述控制方法包括 取得步骤,从多个上述检测模组分别取得上述分散密钥; 复原步骤,将所取得的多个上述分散密钥综合而复原上述解密密钥; 解密步骤,使用由上述复原步骤复原的上述解密密钥,将被加密的上述应用程序解密;以及 删除步骤,在上述解密步骤的解密结束后,删除上述解密密钥。
62.一种计算机可读取的记录介质,记录有在保护控制模组中使用的控制用的计算机程序,该保护控制模组保护应用程序,并被多个检测模组监视篡改,该记录介质的特征在于, 由管理装置将解密密钥分解而生成多个分散密钥,并将生成的多个上述分散密钥分别向多个上述检测模组输出,上述解密密钥用于将被加密的上述应用程序解密; 由各检测模组将上述分 散密钥存储在内部中; 上述记录介质记录有用于使作为计算机的上述保护控制模组执行以下步骤的计算机程序,该步骤为 取得步骤,从多个上述检测模组分别取得上述分散密钥; 复原步骤,将所取得的多个上述分散密钥综合而复原上述解密密钥; 解密步骤,使用由上述复原步骤复原的上述解密密钥,将被加密的上述应用程序解密;以及 删除步骤,在上述解密步骤的解密结束后,删除上述解密密钥。
63.一种计算机程序,其是在保护控制模组中使用的控制用的计算机程序,该保护控制模组保护应用程序,并被多个检测模组监视篡改,该计算机程序的特征在于, 由管理装置将解密密钥分解而生成多个分散密钥,并将生成的多个上述分散密钥分别向多个上述检测模组输出,上述解密密钥用于将被加密的上述应用程序解密; 由各检测模组将上述分散密钥存储在内部中; 上述计算机程序用于使作为计算机的上述保护控制模组执行以下步骤 取得步骤,从多个上述检测模组分别取得上述分散密钥; 复原步骤,将所取得的多个上述分散密钥综合而复原上述解密密钥; 解密步骤,使用由上述复原步骤复原的上述解密密钥,将被加密的上述应用程序解密;以及 删除步骤,在上述解密步骤的解密结束后,删除上述解密密钥。
64.一种集成电路,构成保护控制模组,该保护控制模组保护应用程序,并被多个检测模组监视篡改,该集成电路的特征在于, 由管理装置将解密密钥分解而生成多个分散密钥,并将生成的多个上述分散密钥分别向多个上述检测模组输出,上述解密密钥用于将被加密的上述应用程序解密; 由各检测模组将上述分散密钥存储在内部中; 上述集成电路具备 取得单元,从多个上述检测模组分别取得上述分散密钥; 复原单元,将所取得的多个上述分散密钥综合而复原上述解密密钥; 解密单元,使用由上述复原单元复原的上述解密密钥,将被加密的上述应用程序解密;以及 删除单元,在由上述解密单元进行的解密结束后,删除上述解密密钥。
65.一种在检测模组中使用的方法,该检测模组是对保护应用程序的保护控制模组监视篡改的多个检测模组中的一个检测模组,该方法的特征在于, 由管理装置将解密密钥分解而生成多个分散密钥,并将生成的多个上述分散密钥分别向多个上述检测模组输出,上述解密密钥用于将被加密的上述应用程序解密; 上述方法包括取得步骤,取得上述分散密钥; 存储步骤,存储所取得的上述分散密钥;以及 输出步骤,对上述保护控制模组输出上述分散密钥。
66.一种计算机可读取的记录介质,记录有在检测模组中使用的计算机程序,该检测模组是对保护应用程序的保护控制模组监视篡改的多个检测模组中的一个检测模组,该记录介质的特征在于, 由管理装置将解密密钥分解而生成多个分散密钥,并将生成的多个上述分散密钥分别向多个上述检测模组输出,上述解密密钥用于将被加密的上述应用程序解密; 上述记录介质记录有用于使作为计算机的上述检测模组执行以下步骤的计算机程序,该步骤为 取得步骤,取得上述分散密钥; 存储步骤,存储所取得的上述分散密钥;以及 输出步骤,对上述保护控制模组输出上述分散密钥。
67.一种计算机程序,其是在检测模组中使用的计算机程序,该检测模组是对保护应用程序的保护控制模组监视篡改的多个检测模组中的一个检测模组,该计算机程序的特征在于, 由管理装置将解密密钥分解而生成多个分散密钥,并将生成的多个上述分散密钥分别向多个上述检测模组输出,上述解密密钥用于将被加密的上述应用程序解密; 上述计算机程序用于使作为计算机的上述检测模组执行以下步骤 取得步骤,取得上述分散密钥; 存储步骤,存储所取得的上述分散密钥;以及 输出步骤,对上述保护控制模组输出上述分散密钥。
68.一种集成电路,构成对保护应用程序的保护控制模组监视篡改的多个检测模组中的一个检测模组的集成电路,其特征在于, 由管理装置将解密密钥分解而生成多个分散密钥,并将生成的多个上述分散密钥分别向多个上述检测模组输出,上述解密密钥用于将被加密的上述应用程序解密; 上述集成电路具备 取得单元,取得上述分散密钥; 存储单元,存储所取得的上述分散密钥;以及 输出单元,对上述保护控制模组输出上述分散密钥。
全文摘要
管理装置(200d)具备分散密钥生成部(251d),将加密应用程序的解密密钥分解而生成多个分散密钥;以及输出部(252d),将多个上述分散密钥向多个检测模组输出。各检测模组将上述分散密钥存储在内部中。保护控制模组(120d)具备取得部(381d),从多个检测模组取得上述分散密钥;复原部(382d),将多个上述分散密钥综合而复原上述解密密钥复原;解密部(383d),使用上述解密密钥将加密应用程序解密;以及删除部(384d),在解密结束后将上述解密密钥删除。
文档编号G06F21/62GK102893284SQ20128000131
公开日2013年1月23日 申请日期2012年3月1日 优先权日2011年3月15日
发明者海上勇二, 布田裕一, 松崎枣, 静谷启树, 矶边秀司, 梅田笃 申请人:松下电器产业株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1