首页> 中国专利> 安全处理装置、安全处理方法、加密信息嵌入方法、程序、存储介质和集成电路

安全处理装置、安全处理方法、加密信息嵌入方法、程序、存储介质和集成电路

摘要

本发明的目的在于提供一种安全处理装置、安全处理方法、加密信息嵌入方法。在对信息使用签名密钥实施签名的签名生成单元中,分割密钥存储单元存储已将签名密钥至少分割为2个的分割秘密密钥、从上述分割秘密密钥计算出上述签名密钥的签名密钥生成式F和签名生成式,签名密钥生成恒等式生成单元使用结合法则、分配法则和交换法则,生成与签名密钥生成式F得到相同结果的签名密钥生成恒等式G,结合分割密钥生成单元生成需要给予签名密钥生成恒等式G作为自变量的、运算了上述分割秘密密钥后的结果的结合分割密钥,签名生成单元基于上述签名密钥生成恒等式G和上述分割秘密密钥,对上述信息实施签名。

著录项

  • 公开/公告号CN101300775A

    专利类型发明专利

  • 公开/公告日2008-11-05

    原文格式PDF

  • 申请/专利权人 松下电器产业株式会社;

    申请/专利号CN200680040882.8

  • 发明设计人 芳贺智之;佐藤太一;浅井理惠子;

    申请日2006-10-24

  • 分类号H04L9/08;G09C1/00;

  • 代理机构永新专利商标代理有限公司;

  • 代理人许玉顺

  • 地址 日本大阪府

  • 入库时间 2023-12-17 20:53:53

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2012-12-19

    授权

    授权

  • 2008-12-31

    实质审查的生效

    实质审查的生效

  • 2008-11-05

    公开

    公开

说明书

技术领域

本发明涉及防止非法地窜改和分析程序的技术等。

背景技术

以前,在检测数据的窜改等的目的中广泛使用着电子签名(以下称作签名)。该签名方法之一有RSA(Rivest Shanir Adleman)签名生成法。在RSA签名生成法中,通过对签名对象信息M使用签名密钥d进行S=M∧dmod n的运算,生成签名S。

上述的签名密钥d是必须要保护的信息,以下将这样的信息称作秘密信息。此外,在本说明书中,记号∧表示乘方运算,记号*表示乘法。

在此,在执行上述的生成RSA签名的处理中,由于在计算机内的RAM和CPU的寄存器等存储器上出现了签名密钥d的值,因此,有通过分析这些存储器来非法取得签名密钥d的危险性。

作为用于防止这样的非法取得签名密钥d的技术之一,在非专利文献1中公开了一种不使签名密钥d的值出现在存储器上而进行签名生成的方法。

在非专利文献1的方法中,首先求满足签名密钥生成式d=(d1*d2)+d3的d1、d2、d3。在此,d1、d2和d3是上述的分割密钥,将根据签名密钥生成分割密钥称作签名密钥的分割。

基于该分割密钥(d1、d2、d3)和签名密钥生成式,按照

S1=M∧d1 mod n

S2=S1∧d2 mod n

S=S2*M∧d3 mod n

的顺序进行运算。这样,不使用签名密钥d而得到与RSA签名生成式S=M∧d mod n相同的签名S。此外,在签名生成处理中,由于在存储器上不是出现签名密钥d,而是出现分割密钥(d1、d2、d3),因此,能够保护签名密钥d。

非专利文献1:“签名生成软件的随机数据搜索的抗窜改性评价”横滨国立大学本田洋之松本勉SCIS2005

但是,在上述的方法中,由于签名密钥生成式总是固定的,因此,能够通过对签名生成部进行静态分析来确定签名密钥生成式。

另外,由于每次利用相同的分割密钥,因此,通过一边改变签名对象数据一边收集多次的签名生成时的随机数据,进行所谓的看收集到的多个随机数据相互之间的差分,抽出不变的数据的动态分析,就能够确定分割密钥。

然后,就产生了若使用利用上述方法确定了的分割密钥和签名密钥生成式,就能确定签名密钥的问题。

发明内容

鉴于上述问题,本发明的目的在于,提供一种即使是非法分析者进行了静态分析和动态分析的情况下,也能够隐匿秘密信息的安全处理装置。

为了解决上述问题,本发明的一种安全处理装置,得到与对消息实施安全运算的情况相同的运算结果,该安全运算使用秘密信息,具有:存储单元,存储有第一秘密信息生成式和第一安全处理过程,所述第一秘密信息生成式中输入将秘密信息至少分割为2个的分割秘密信息作为自变量,根据该分割秘密信息计算出上述秘密信息,所述第一安全运算过程示出使用了上述秘密信息的安全运算的过程;第一生成单元,作为自变量而输入运算了至少2个上述分割秘密信息的结果即结合秘密信息,生成在运算上与上述第一秘密信息生成式等效的第二秘密信息生成式;第二生成单元,基于上述第二秘密信息生成式中包含的算子,作为自变量而输入上述结合秘密信息,生成第二安全运算过程,该第二安全运算过程示出与上述第一安全运算过程等效的运算过程;执行单元,对上述消息实施按照上述第二安全运算过程的安全运算。

本发明的安全处理装置通过具有上述结构,通过在每次执行安全处理时,生成上述结合秘密信息,生成第二安全运算过程,执行第二安全运算过程,由此得到与第一安全运算相同的结果,因此,取代上述秘密信息,在运算用的存储器上出现每次安全运算都成为不同值的结合秘密信息,每次执行安全处理时第二安全运算过程都不同,因此,利用静态分析和动态分析的上述秘密信息的确定变得困难。这样就能够隐匿上述秘密信息。

此外,也可以上述第一秘密信息生成式包含1个以上的运算,上述第二生成单元从上述第一秘密信息生成式中包含的运算中,随机选择与上述运算之间满足交换法则、结合法则、分配法则中的任一个的替代运算的某个运算,通过将选择的运算置换为上述替代运算,生成第二秘密信息生成式。

此外,也可以上述第一秘密信息生成式包含1个以上的运算,各运算包含多个操作数和示出操作数相互之间的计算内容的算子,上述存储单元存储有示出上述第一秘密信息生成式涉及的上述操作数与上述算子的关系的属性信息,上述第一生成单元使用上述属性信息,生成上述第二秘密信息生成式。

此外,也可以在上述第一秘密信息生成式中,向上述操作数输入自变量的值,上述自变量的各个值不重复地对应于上述分割秘密信息的某一个,上述属性信息示出对应于能结合的多个操作数的算子,上述第一生成单元基于上述属性信息,用上述算子结合上述第一秘密信息生成式中的上述多个操作数,上述第二生成单元通过使用上述算子结合与上述已结合的各操作数相对应的分割秘密信息,来生成上述结合秘密信息。

此外,也可以上述第二秘密信息生成式包含1个以上的运算,各运算包含多个操作数和示出操作数相互之间的计算内容的算子,上述存储单元存储有属性信息,该属性信息表示上述第二秘密信息生成式涉及的上述操作数与上述算子的关系,上述第二生成单元使用上述属性信息,生成上述第二安全运算过程。

根据该结构,由于能够随机地生成得到与第一秘密信息生成式相同结果的第二秘密信息生成式,因此,能够使利用静态分析的秘密信息的确定变得困难。

此外,也可以上述第一生成单元进一步生成随机数信息,生成包含了上述随机数信息的上述第二秘密信息生成式,上述第二生成单元基于上述第二秘密信息生成式,使用上述结合秘密信息和上述随机数信息生成第二安全运算过程,该第二安全运算过程示出与上述第一安全运算过程等效的运算过程,上述执行单元对上述消息使用上述结合秘密信息和上述随机数信息,实施按照上述第二安全运算过程的安全运算。

根据该结构,通过包含随机数信息,上述第二秘密信息生成式的分析就变得困难,能够使按照使用随机数信息执行的第二安全运算过程的安全运算的静态分析变得困难。

此外,也可以上述第一生成单元进一步生成使用了上述秘密信息的、不对运算处理的结果造成影响的冗余信息,使用该冗余信息生成上述第二秘密信息生成式。

根据该结构,由于使用冗余信息,因此能够使第二秘密信息生成式的静态分析变得困难。

此外,也可以上述存储单元存储有上述分割秘密信息和上述执行单元不使用的伪信息。

根据该结构,能够使基于存储装置中存储着的信息来静态分析安全处理变得困难。

此外,也可以上述秘密信息是用于生成数字签名的签名密钥,上述安全运算是对上述消息实施数字签名的签名生成运算。

根据该结构,在执行数字签名处理中,能够使利用静态分析的秘密信息的确定变得困难。

此外,上述签名生成处理是RSA(Rivest Shamir Adleman)签名生成处理。

根据该结构,在执行RSA签名生成处理中,能够使利用静态分析的秘密信息的确定变得困难。

此外,上述签名生成处理也可以是利用椭圆曲线数字签名方式的签名处理。

此外,也可以上述安全处理装置进一步具有生成随机数信息的随机数信息生成单元,上述执行单元不直接利用上述随机数k,而是使用至少2个上述随机数信息,进行上述椭圆曲线数字签名方式中的计算定义体GF(p)上的椭圆曲线的位数q即基点P的随机数值k倍点的处理、和使用了定义体GF(q)上的k的逆数(逆数)的值的处理。

根据该结构,在执行利用椭圆曲线数字签名方式的签名处理中,能够使利用静态分析的秘密信息的确定变得困难。

此外,也可以上述秘密信息是上述公开密钥密码的上述秘密密钥,上述执行单元进行利用了公开密钥和秘密密钥的公开密钥密码系统的处理,作为上述安全运算。

根据该结构,在执行利用公开密钥密码的安全处理中,能够使利用静态分析的秘密密钥的确定变得困难。

此外,上述公开密钥密码也可以是RSA密码。

根据该结构,在执行利用RSA密码的安全处理中,能够使利用静态分析的秘密密钥的确定变得困难。

此外,上述公开密钥密码也可以是椭圆曲线密码。

根据该结构,在执行利用椭圆曲线密码的安全处理中,能够使利用静态分析的秘密密钥的确定变得困难。

此外,也可以上述安全处理装置进一步包括:取得单元,从外部取得上述第一生成单元的更新用数据;更新单元,使用上述更新用数据,更新上述第一生成单元。

根据该结构,通过更新第一生成装置,即使是在执行安全处理时进行静态分析的情况下,也能够使秘密信息的确定变得困难。此外,能从装置外部调整所生成的分割密钥的个数和结合分割密钥的个数,能灵活地设定安全强度。

此外,也可以上述安全处理装置进一步包括:取得单元,从外部取得更新用的分割秘密信息;更新单元,将上述存储单元中存储的分割秘密信息,更新为上述取得单元取得的更新用的分割秘密信息。

根据该结构,通过更新分割秘密信息,即使是在执行安全处理时进行静态分析的情况下,也能够使秘密信息的确定变得困难。

此外,能从装置外部调整所生成的分割密钥的个数和结合分割密钥的个数,能灵活地设定安全强度。

本发明的用于安全处理装置的安全处理方法,能够得到与对消息实施了安全运算的情况相同的运算结果,该安全运算使用秘密信息,上述安全处理装置存储单元,该存储单元存储有第一秘密信息生成式和第一安全处理过程,所述第一秘密信息生成式中输入将秘密信息至少分割为2个的分割秘密信息作为自变量,根据该分割秘密信息计算出上述秘密信息,所述第一安全运算过程示出使用了上述秘密信息的安全运算的过程,上述安全处理方法包括:第一生成步骤,作为自变量而输入运算了至少2个上述分割秘密信息的结果即结合秘密信息,生成在运算上与上述第一秘密信息生成式等效的第二秘密信息生成式;第二生成步骤,基于上述第二秘密信息生成式中包含的算子,作为自变量而输入上述结合秘密信息,生成第二安全运算过程,该第二安全运算过程示出与上述第一安全运算过程等效的运算过程;执行步骤,对上述消息实施按照上述第二安全运算过程的安全运算。

本发明的用于安全处理装置的计算机程序,该安全处理装置能够得到与对消息实施了安全运算的情况相同的运算结果,该安全运算使用秘密信息,上述安全处理装置具有存储单元,该存储单元存储有第一秘密信息生成式和第一安全处理过程,所述第一秘密信息生成式中输入将秘密信息至少分割为2个的分割秘密信息作为自变量,根据该分割秘密信息计算出上述秘密信息,所述第一安全运算过程示出使用了上述秘密信息的安全运算的过程,上述计算机程序包括:第一生成步骤,作为自变量而输入运算了至少2个上述分割秘密信息的结果即结合秘密信息,生成在运算上与上述第一秘密信息生成式等效的第二秘密信息生成式;第二生成步骤,基于上述第二秘密信息生成式中包含的算子,作为自变量而输入上述结合秘密信息,生成第二安全运算过程,该第二安全运算过程示出与上述第一安全运算过程等效的运算过程;执行步骤,对上述消息实施按照上述第二安全运算过程的安全运算。

本发明的记录介质是计算机可读取的记录介质,记录有上述计算机程序。

本发明的用于安全处理装置的集成电路,该安全处理装置能够得到与对消息实施了安全运算的情况相同的运算结果,该安全运算使用秘密信息,其特征在于,上述安全处理装置具有存储单元,该存储单元存储有已预先将秘密信息至少分割为2个的分割秘密信息、第一秘密信息生成式和第一安全运算过程,在所述第一秘密信息生成式中作为自变量而输入上述分割秘密信息,所述第一秘密信息生成式根据上述分割秘密信息计算出上述秘密信息,所述第一安全运算过程示出使用了上述分割秘密信息的安全运算的过程;上述集成电路具有:结合秘密信息生成单元,生成将至少2个上述分割秘密信息相互进行运算的结合秘密信息;第一生成单元,作为自变量而输入上述结合秘密信息,生成在运算上与上述第一秘密信息生成式等效的第二秘密信息生成式;第二生成单元,基于上述第二秘密信息生成式中包含的算子,作为自变量而输入上述结合秘密信息,生成示出与上述第一安全运算过程等效的运算过程的第二安全运算过程;执行单元,对上述消息实施按照上述第二安全运算过程的安全运算。

根据该结构,通过在每次执行安全处理时,生成上述结合秘密信息,并生成第二安全运算过程,执行第二安全运算过程,由此得到与第一安全运算相同的结果,因此,取代上述秘密信息,在运算用的存储器上出现每个安全运算都不同值的结合秘密信息,每次执行安全处理时第二安全运算过程都不同,因此,利用静态分析的上述秘密信息的确定变得困难。这样就能够隐匿上述秘密信息。

本发明的加密信息嵌入方法,将上述秘密信息加密后嵌入到进行使用了秘密信息的运算的安全处理装置中,其特征在于,包括:秘密信息加密步骤,使用将上述秘密信息变换为很难分析的状态的加密装置,将上述秘密信息进行加密;嵌入步骤,使用加密信息写入装置,将加密后的秘密信息嵌入到上述安全处理装置中。

根据该结构,通过将秘密信息加密后嵌入到安全处理装置中,能够防止暴露秘密信息。

此外,也可以上述加密装置具有输入单元,该输入单元接受用于决定上述秘密信息的加密方法的参数作为输入,上述秘密信息加密步骤包括:上述输入单元接受上述参数的接受步骤;用基于上述参数决定的加密方法,将上述秘密信息进行加密的加密步骤。

根据该结构,通过从外部给予用于决定上述秘密信息的加密的方法的参数,就能够灵活地设定安全强度。

此外,也可以上述参数是上述秘密信息的分割个数,上述加密步骤包括分割步骤,该分割步骤根据上述分割个数,将上述秘密信息分割为至少2个分割秘密信息。

此外,也可以上述加密步骤进一步包括式生成步骤,该式生成步骤基于上述分割个数,生成至少包含上述分割个数的项的第一秘密信息生成式,上述分割步骤分割上述秘密信息,以便从上述第一秘密信息生成式计算出上述秘密信息。

根据该结构,由于能从装置外部调整秘密信息的分割个数,因此,能够灵活地设定安全强度。

此外,也可以上述参数是第一秘密信息生成式,上述加密步骤包括将上述秘密信息分割为至少2个分割秘密信息,以便从上述第一秘密信息生成式计算出上述秘密信息的步骤。

根据该结构,由于能从装置外部给予第一秘密信息生成式,因此,能够灵活地设定安全强度。

此外,也可以上述秘密信息是从密钥发行机关发行的秘密密钥,上述加密信息嵌入方法进一步具有:上述密钥发行机关用密钥发行机关的秘密密钥加密上述秘密密钥的加密步骤;上述加密装置用公开密钥对已加密了的上述密钥进行解密和验证的验证步骤,上述秘密信息加密步骤将验证后的上述秘密密钥进行加密,上述嵌入步骤包括:将已利用上述加密装置加密后的上述加密信息变换为二进制数据的二进制变换步骤;在安全处理装置中嵌入上述二进制数据的二进制嵌入步骤,所述安全处理装置具有使用上述加密信息对与使用了上述秘密信息的运算结果相同的结果进行运算的功能。

根据该结构,能够保护从密钥发行机关交给制造厂的秘密密钥不在递交途中被盗听和窜改。

附图说明

图1是示出本发明的实施方式1中的签名生成单元的结构概要的图。

图2是示出本发明的实施方式1中的分割密钥识别信息表的结构的图。

图3是用树形结构概念地表现了本发明的实施方式1中的签名密钥生成式的图。

图4是示出本发明的实施方式1中的分割密钥信息表的图。

图5是示出本发明的实施方式1中的签名生成的概要的流程图。

图6是本发明的实施方式1中的恒等式生成流程图。

图7是表示本发明的实施方式1中的利用了交换法则的随机洗牌处理的流程图。

图8是表示本发明的实施方式1中的利用了结合法则的随机分组处理的流程图。

图9是示出本发明的实施方式1中的随机洗牌和随机分组处理执行后的分割密钥信息表的图。

图10是示出本发明的实施方式1中的利用了矩阵的恒等式生成处理的概念的图。

图11是示出本发明的实施方式1中的结合分割密钥识别信息表的图。

图12是详细示出本发明的实施方式1中的签名生成处理的流程图。

图13是示出本发明的实施方式1中的图12的流程图的接续的图。

图14是说明本发明的实施方式1中的生成签名生成式的具体例的图。

图15是本发明的实施方式2中的ECDSA的流程图。

图16是本发明的实施方式2中的图15的S1502的详细流程图。

图17是本发明的实施方式2中的图15的S1504的详细流程图。

图18是示出本发明的实施方式3中的分割密钥嵌入工序的图。

图19是示出本发明的实施方式4中的签名密钥生成恒等式生成单元120的程序的更新概要的图。

图20是示出本发明的实施方式4中的签名密钥生成恒等式生成程序的更新的流程图。

附图标记的说明

10消息M

20签名密钥D

21签名密钥生成式F

22分割密钥生成装置

30签名S

100签名生成单元

110分割密钥存储单元

120签名密钥生成恒等式生成单元

121签名密钥生成恒等式G

130结合分割密钥生成单元

140结合分割密钥存储单元

150签名生成单元

200分割密钥识别信息表

201分割密钥标识符

1000矩阵

1001结合处选择部

1900网络

1901更新服务器

1902更新用的签名密钥生成恒等式生成程序

1903更新用的签名密钥生成恒等式生成程序的窜改检测值

1910收发单元

1920签名密钥生成恒等式生成程序更新单元

具体实施方式

以下,参照附图,关于本发明的实施方式进行说明。

(实施方式1)

关于使用本发明的实施方式1涉及的秘密信息进行安全处理的安全处理装置,以使用签名密钥进行签名生成的签名生成单元为例进行说明。

本发明的一个实施方式涉及的签名生成装置,在对于输入的信息M,生成基于签名生成式S=M∧d mod n的签名S的情况下,不直接在存储器上出现签名密钥d,而是取代签名密钥d,在存储器上出现分割密钥来生成签名,并且,每次生成签名都动态地变更分割密钥的生成过程、分割密钥的值、签名的生成过程。

这样,就能够对于非法分析者的静态分析和动态分析,隐匿秘密信息即签名密钥d。

<结构>

图1是本实施方式1中的包括签名生成单元100的签名生成系统的概要图。

签名生成系统包括:使用签名密钥生成式F21,从签名密钥D生成后述的分割密钥的分割密钥生成装置22;使用上述分割密钥生成签名的签名生成装置100。

消息M10是签名对象数据,是输入到签名生成单元100中的数据。再有,在图1中,消息M10是从外部向签名生成单元100输入的,但也可以是在签名生成单元100内生成的数据,也可以是签名密钥生成装置的存储器内存储着的程序代码和/或数据。

签名密钥D20是在签名生成中利用的秘密密钥信息,是需要保护不被非法分析的信息。具体地说,在使用了公开密钥密码系统的RSA签名生成的情况下,设质数p和质数q的积为n时的RSA签名生成运算M∧d mod n中的变量d,相当于秘密密钥信息,向d代入签名密钥D20。

由于生成签名时不在存储器上出现签名密钥D20的本身的值,因此,图2中示出的分割密钥111(D1、D2、D3、...、Dn)是分割密钥生成装置22基于签名密钥生成恒等式F21,预先分割签名密钥D20的值来得到的分割密钥。在此,在签名密钥生成式F21与分割密钥111(D1、D2、D3、...、Dn)之间,具有通过使用分割密钥111(D1、D2、D3、...、Dn)计算签名密钥生成式F21能计算签名密钥D20的值的关系。

下面,关于分割密钥生成装置22和签名生成单元100依次进行说明。

(1)分割密钥生成装置22

分割密钥生成装置22从外部接受签名密钥生成式F21和签名密钥D20的输入,基于签名密钥生成式F21和签名密钥D20,生成分割密钥识别信息表200和分割密钥信息表400,并将分割密钥识别信息表200和分割密钥信息表400写入到后述的签名生成装置100所具有的分割密钥存储单元1 10中。

分割密钥生成装置22具体地说是由微处理机、ROM、RAM、硬盘单元、显示器单元、键盘、鼠标等构成的计算机系统。在上述ROM或者上述硬盘单元中存储有计算机程序,被上述RAM读出上述计算机程序,通过上述微处理机按照上述计算机程序进行工作,分割密钥生成装置22实现其功能。

在此,作为一例,假设签名密钥生成式F21是设8个变量(d1~d8)为自变量的下式。

F(d1、d2、d3、d4、d5、d6、d7、d8)=(d1+d2+d3+d4)*(d5+d6+d7+d8)

在此,在变量d1中代入分割密钥D1,在变量d2中代入分割密钥D2,同样地,在变量d3~d8中分别代入分割密钥D3~D8。

对分割密钥生成装置22输入签名密钥生成式F21,作为图4中示出的分割密钥信息表400,但在说明分割密钥信息表400之前,使用图3,关于签名密钥生成式F21的表现形式进行说明。

图3用树形结构概念地表现了签名密钥生成式F21“F(d1、d2、d3、d4、d5、d6、d7、d8)=(d1+d2+d3+d4)*(d5+d6+d7+d8)”。

变量d1、d2、d3、d4与所谓加法组1的组信息相关联。

在此,所述组信息是在签名生成式F21中表示操作数(d1~d8)与其他操作数进行何种运算(例如,加法、乘法等)的关系的属性信息。此外,将构成上述组的各操作数和更小的组等称作成员。

例如,在“加法组”中,利用算子“+(加法)”运算各成员,在“乘法组”中,利用“*(乘法)”运算各成员。

再有,关于表示由多个变量构成的组彼此之间的关系和利用何种算子运算组与其他变量的关系的属性信息,也可以称作组信息。

通过这样地给予所谓组信息的属性信息,就能够识别各变量与签名密钥生成式F21的关系。

具体地说,在“加法组”中,由于如上所述地用算子“+(加法)”运算各成员,因此,加法组1就表现了d1+d2+d3+d4的式子。此外,变量d5、d6、d7、d8与所谓加法组2的组信息相关联。加法组2与加法组1的情况同样地表现了d5+d6+d7+d8的式子。另外,所述加法组1和加法组2作为组信息与乘法组1相关联。

所谓“乘法组”的组信息如前所述示出了用算子“*(乘法)”运算该组的各成员,乘法组1表示了加法组1和加法组2相乘的关系,表现了(d1+d2+d3+d4)*(d5+d6+d7+d8)的签名密钥生成式F21。

下面,使用图4,关于将图3的签名密钥生成式F21的结构具体表示为信息的分割密钥信息表400进行说明。

分割密钥信息表400如图4所示,由分割密钥组标识符401和分割密钥组成员标识符402构成。

分割密钥组标识符401是识别上述组的标识符,分割密钥组成员标识符402是示出各组中所属的成员的标识符。

图4中,在加法组1中分配着“AG001”作为分割密钥组标识符401。在此,由于在图3中示出了属于组“AG001”中的成员是变量d1、d2、d3、d4,因此,在分割密钥信息表400中登记着识别各个变量的“id001”、“id003”、“id003”、“id004”,作为分割密钥组成员标识符402。

此外,在加法组2中分配着“AG002”作为分割密钥组标识符401。在此,由于属于组“AG002”中的成员是变量d5、d6、d7、d8,因此,在分割密钥信息表400中登记着识别各个变量的“id005”、“id006”、“id007”、“id008”,作为分割密钥组成员标识符402。

此外,在乘法组1中分配着“MG001”作为分割密钥组标识符401。由于属于组“MG001”中的成员是加法组1和加法组2,因此,在分割密钥信息表400中登记着各个分割密钥组标识符401即“AG001”和“AG002”,作为分割密钥组成员标识符402。

使用这样的数据结构,签名密钥生成恒等式生成单元120通过参照分割密钥识别信息表200和分割密钥信息表400,能够知道签名密钥生成式F21的结构。

下面,关于分割密钥生成装置22基于签名密钥生成式F21,将签名密钥D分割为多个分割密钥的处理进行说明。

在本实施方式中,由于签名密钥生成式F21的输入变量的数量是8个,因此,分割密钥生成装置22将签名密钥D20分割为8个分割密钥D1~D8。

其中,在D1~D8中,随机选择满足F(D1,D2,D3,D4,D5,D6,D7,D8)=D的值。

在此,在签名密钥生成式的自变量dn中代入分割密钥Dn(n:1~8)。即,在签名密钥生成式F21的自变量d1中代入分割密钥D1,同样地在自变量d2中代入分割密钥D2,在自变量d3~d8中代入分割密钥D3~D8。

作为基于签名密钥生成式F21,从签名密钥D计算出分割密钥D1~D8的方法的一例,分割密钥生成装置22从用签名密钥生成式F21进行的最外侧的运算开始,逐次细化运算的单位来进行。

具体地说,首先,分割密钥生成装置22选择出D=R1*R2成立的随机值R1、R2。

接着,选择出R1=(D1+D2+D3+D4)成立的随机值D1、D2、D3、D4,选择出R2=(D5+D6+D7+D8)成立的随机值D5、D6、D7、D8。

分割密钥生成装置22对选择出的各个分割密钥D1~D8分配用于识别各分割密钥的识别信息即分割密钥标识符201。

作为一例,分割密钥生成装置22对分割密钥D1分配“ID001”作为分割密钥标识符201,对分割密钥D2分配“ID002”作为分割密钥标识符201,同样地分别对分割密钥D3、D4、D5、D6、D7、D8分配“ID003”、“ID004”、“ID005”、“ID006”、“ID007”、“ID008”,作为分割密钥标识符201。

分割密钥生成装置22生成图2中示出的、将分割密钥标识符201和分割密钥111的对应起来的分割密钥识别信息表200,将分割密钥识别信息表200写入到后述的签名生成单元100所具有的分割密钥存储单元110中。

(2)签名生成单元100

签名生成单元100如图1所示,其结构包括分割密钥存储单元110、签名密钥生成恒等式生成单元120、结合分割密钥生成单元130、结合分割密钥存储单元140、签名生成单元150。

签名生成单元100具体地说是由微处理机、ROM、RAM、硬盘单元、显示器单元等构成的计算机系统。在上述ROM或者上述硬盘单元中存储有计算机程序,被上述RAM读出上述计算机程序,通过上述微处理机按照上述计算机程序进行工作,签名生成单元100实现其功能。

分割密钥存储单元110是存储器(内存)和硬盘等存储设备,存储由分割密钥生成装置22写入的分割密钥识别信息表200和分割密钥信息表400。

签名密钥生成恒等式生成单元120生成与签名密钥生成式F21恒等的式子即签名密钥生成恒等式121。在此,所述恒等是指在运算中具有等效的、运算结果相同的关系。

以下,使用图,关于签名密钥生成恒等式生成单元120根据签名密钥生成式F21和签名密钥D20,动态地生成与签名密钥生成式F21恒等的式子即签名密钥生成恒等式G121和如图11中所示的后述的结合分割密钥141的方法,详细地进行说明。

再有,以后进行以生成RSA签名为例的说明。

图5是流程图,示出动态地生成签名生成恒等式G121和后述的结合分割密钥141,直到生成签名S30并输出为止的处理的概要。其中,使用图6~图11的流程图详细地说明图5的各步骤。

在图5中,首先,签名密钥生成恒等式生成单元120读取分割密钥存储单元110中存储的分割密钥信息表400,生成与签名密钥生成式F21输出相同结果的签名密钥生成恒等式G121(步骤S501)。

接着,签名密钥生成恒等式生成单元120基于在步骤S501中生成的签名密钥生成恒等式G121,通过结合运算分割密钥存储单元110中存储的分割密钥111,生成与分割密钥111不同的值的结合分割密钥141,并将生成的结合分割密钥141写入到结合分割密钥存储单元140中(步骤S502)。

接着,在签名生成单元150中,使用签名对象消息M10、签名密钥生成恒等式G121和结合分割密钥141,计算出不使签名密钥D20的值出现在存储器中的、成为与M∧d mod n相同的结果的签名S30,并输出签名S30,结束签名生成处理(步骤S503)。

在此,说明书中“A∧B”的记载表示A的B次方,“A mod B”的记载表示用自然数B除A时的剩余。

接着,使用图6,关于上述的图5的步骤S501的详细内容进行说明。

首先,签名密钥生成恒等式生成单元120读入分割密钥存储单元110中存储的分割密钥信息表400,进行随机地重排各组中所属的成员的排列的随机洗牌处理(步骤S601)。以后使用图7,关于随机洗牌的详细过程进行叙述。

接着,将随机洗牌后的分割密钥信息表400的各组的成员随机地分组(步骤S602)。以后使用图8和图9,关于随机分组的处理的详细内容进行叙述。

接着,将在步骤S602中随机分组后的各组进行式展开,变形为后述的所谓矩阵表现的数据结构,随机选择展开后的各组中的结合处来进行结合。其结果,生成与签名密钥生成式F21恒等的签名密钥生成恒等式121,所以将其输出(步骤S603)。以后使用图10,关于步骤S603进行叙述。

下面,使用图7,关于步骤S601中的分割密钥组的成员的随机洗牌处理的详细内容进行说明。

再有,所述本实施方式中的随机洗牌是指利用交换法则,将例如式子d1+d2+d3+d4变换为恒等的式子。此外,在加法等的情况下,将式子1+2+3的计算结果和3+2+1的计算结果相同的关系、即即使调换式子中的操作数的顺序,计算结果也不变的关系,称作“交换法则成立”。

首先,签名密钥生成恒等式生成单元120取得分割密钥存储单元110中存储的分割密钥信息表400的组总数N(步骤S701)。

在此,设分割密钥信息表400表现为二维数组Table。此外,Table[n][m]与图4的分割密钥组成员标识符401相对应,示出属于从上数第n行的组中的、从左数第m个的分割密钥组标识符。此外,在仅写为Table“n”的情况下,示出属于从上数第n行的组中的分割密钥组标识符的集合。

具体地说,若用上述的Table的形式表示图4中示出的分割密钥信息表400,则如下:

Table[0]={AG001,AG002}、

Table[1]={id001,id002,id003,id004}、

Table[2]={id005,id006,id007,id008}。

再有,在该例子和以下的例子中,设Table的各索引(index)从0开始。

组总数N是加法组、乘法组等的组的个数,相当于n的最大值+1。

图4中示出的分割密钥信息表400的情况下,组总数N为3。

接着,用0初始化变量i(步骤S702)。

在此,i是变量,对成为当前混洗对象的分割密钥组是第几个分割密钥组进行计数。

接着,产生随机数值,代入到计数混洗次数的变量sn中(步骤S703)。

在此,混洗次数sn是变量,表示以后对各分割密钥组进行几次混洗。在此,通过利用随机数作为混洗次数sn,能够动态地设定混洗的次数,进而能够动态地生成签名密钥生成恒等式。

接着,取得Table[i]中登记着的成员数,即第i个组中登记着的成员数M(步骤S704)。

接着,产生2个0以上不足M的随机整数,分别代入到变量s1、s2中(步骤S705)。

在此,通过利用随机整数作为s1、s2,能够动态地设定成为混洗对象的成员的位置,进而能够动态地生成签名密钥生成恒等式。

接着,调换Table[i][s1]和Table[i][s2]的值,减小sn(步骤S706)。

即,在调换了属于第i个组中的第s1个结构要素和第s2个结构要素之后,将剩余混洗次数减1。

接着,判定是否sn>0,即、关于成为当前混洗对象的第i个分割密钥组,是否还剩余有混洗次数(步骤S707)。

若步骤S707的判定结果是“是”,就进一步反复进行混洗,向步骤S705返回。

反之,若判定结果是“否”,就判定i是否等于N-1(步骤S708)。即,判定关于全部组混洗是否已结束。

若步骤S708的判定结果是“否”,就通过增加i后向步骤S703转移,对下一个分割密钥组进行混洗(步骤S709)。反之,若步骤S708的判定结果是“是”,则对于全部分割密钥组的混洗已结束,因此就结束了随机洗牌处理。

下面,参照图8的流程图,关于步骤S602中的分割密钥组的成员的随机分组处理的详细内容进行说明。

所述随机分组是例如利用结合法则将式子(d1+d2+d3)+d4变换为恒等式d1+(d2+d3+d4)的处理。在此,例如式子(1+2)+3与式子1+(2+3)的结果是相同值,将这样的关系,即、与一次进行计算的单位的分割方式无关而结果为相同值的关系,称作“结合法则成立”。

再有,在图8中,也如说明图5时所述,用二维数组的Table[n][m]表现分割密钥信息表400并进行说明。

首先,签名密钥生成恒等式生成单元120取得分割密钥存储单元110中存储的分割密钥信息表400的组总数N(步骤S801)。

接着,用0初始化变量i(步骤S802)。在此,i是变量,表示成为当前随机分组的对象的分割密钥组的号码。

接着,将组分割位置列表GP设置为空列表(步骤S803)。在此,组分割位置列表GP是表示在从前面开始的第几个位置上分割分割密钥组的成员的值的列表。

接着,取得Table[i]中登记着的成员数M,随机选择1以上M以下的自然数,将选择的值作为组分割数k(步骤S804)。在此,所述组分割数是表示将分割密钥组分割为几个组的数。通过将组分割数k设定为随机自然数,就能够动态地设定式子的分割数,进而能够动态地生成签名密钥生成恒等式。

接着,不重复地随机选择k-1个0以上M-1以下的整数,按降序重排选择的值,设置为组分割位置列表GP(步骤S805)。

这样地,通过随机设定组分割位置列表GP的内容,就能够动态地设定式子的分割位置,进而能够动态地生成签名密钥生成恒等式。

接着,在位于步骤S804中选择的组分割列表GP的位置上的成员的后面,分隔Table内的成员的组,分为k个组(步骤S806)。

接着,检验i是否等于N-1(步骤S807)。即,关于全部分割密钥组,判定随机分组是否已结束。

若步骤S807的判定结果是“否”,通过增加i并返回步骤S803,进一步关于下一个分割密钥组进行随机分组(步骤S808)。反之,若判定结果是“是”,就判断为关于全部分割密钥组的随机分组已结束,并结束随机分组。

图9是示出了对图4的分割密钥信息表进行了图7的随机洗牌和图8的随机分组的处理之后的分割密钥信息表400的状态的图。

图9中示出了按照图7的流程随机洗牌后的结果,在MG001中,将Table[0][2]={AG001,AG002}的排列混洗为{AG002,AG001},将Table[1][4]={id001,id002,id003,id004}的排列混洗为{id002,id001,id004,id003},将Table[2][4]={id005,id006,id007,id008}的排列混洗为{id007,id006,id008,id005}。

此外,示出了按照图8的流程随机分组后的结果,在MG001中,将分割密钥组成员标识符分组为{AG002}和{AG001}的2个,在AG001中分组为{id002,id001}和{id004,id003}的2个,在AG002中分组为{id005,id006}和{id007,id008}的2个。

在如图9所示随机洗牌和随机分组后的情况下,利用交换法则和结合法则,将图4的分割密钥信息表400所示的签名密钥生成式F21

F(d1,d2,d3,d4,d5,d6,d7,d8)=(d1+d2+d3+d4)*(d5+d6+d7+d8)变换为与签名密钥生成式F21恒等的签名密钥生成恒等式

G’(d1,d2,d3,d4,d5,d6,d7,d8)=((d7+d6)+(d8+d5)*((d2+d1)+(d4+d3))。

接着,进一步使用后述的矩阵表现,将该签名密钥生成恒等式G’进行恒等变换。

图10(a)将图9中生成的签名密钥生成恒等式121的右边((d7+d6)+(d8+d5))*((d2+d1)+(d4+d3))予以矩阵表现。

在此,所述矩阵表现是一种数据结构,为了利用分配法则制作与签名密钥生成式F恒等的式子G,例如使(d1+d2)*(d3+d4)与d1*(d3+d4)+d2*(d3+d4)相等。在此,将例如使式子3*(2+1)的值与式子3*2+3*1的值相等这样的关系,即、式展开前的值与式展开后的值相等的关系,称作“分配法则成立”。

在此,矩阵1000的各要素是示出关于随机分组后的各组彼此之间实施了式展开的情况下所产生的乘法的式子,分别示出使用分配法则展开了签名密钥生成恒等式G’时相乘的项。

若示出更具体的例子,用Matrix[2][2]的2×2的数组表现矩阵1000,则如下。

Matrix[0][0]=(d7+d6)*(d2+d1)

Matrix[0][1]=(d7+d6)*(d4+d3)

Matrix[1][0]=(d8+d5)*(d2+d1)

Matrix[1][1]=(d8+d5)*(d4+d3)

在此,Matrix[n][m]是最初的加法组中的第n个要素与下一个加法组中的第m个要素的积,分别示出了展开了签名密钥生成恒等式时相乘的各项彼此之间的积。再有,假设索引n和m的号码从0开始,在各加法组中,越位于左侧的要素,索引号越小。

例如,Matrix[0][0]成为在图9的表中最初的加法组即AG001中的最初成员(d7+d6)与第2个加法组即AG002中的最初成员(d2+d1)相乘后的值。再有,当然,按照加法组的数量,数组的维数Matrix[n][m]“1”...地增加。

对于这样的矩阵表现的签名密钥生成恒等式G,在上述的步骤S603中,对矩阵表现的各要素进行随机选择结合之处的处理。即,在矩阵表现中,由于属于相同行或者相同列的要素彼此之间是至少其中之一含有共通项的式子,因此,利用该性质,能够彼此结合属于相同行或者列中的式子。

以下,示出更具体的例子。首先,在图10(a)中,假设如1001所图示选择了Matrix[0][1]和Matrix[1][1]作为结合处。在此,在被选择为结合处的1001的Matrix[0][1]和Matrix[1][1]的两个要素中,共同存在着(d4+d3)。因此,通过如

(d4+d3)*((d7+d6)*(d8+d5))

这样地用(d4+d3)总括起来,结合处1001就能够结合。

在此,通过如上所述地随机选择结合处,能够动态地决定结合处,进进而能够动态地生成签名生成密钥恒等式G。

图10(b)用通常的式子的变形,例示了使用矩阵表现直到生成最终的签名密钥生成恒等式G121为止的式变形。

图9中生成的签名密钥生成恒等式G’是

G’=((d7+d6)+(d8+d5))*((d2+d1)+(d4+d3))...(式1)

若使用分配法则展开该式子,就如(式2)所示。

G’=(d7+d6)*(d2+d1)+(d7+d6)*(d4+d3)

+(d8+d5)*(d2+d1)+(d8+d5)*(d4+d3)...(式2)

另外,作为在图10(a)的矩阵1000内通过步骤S603结合(式2)的地方,若结合相当于随机指定的1001的项,则成为(式3)。

G’=(d7+d6)*(d2+d1)+(d8+d5)*(d2+d1)

+(d4+d3)*((d7+d6)*(d8+d5))...(式3)

该(式3)成为经过图6的S601到S603而生成的签名密钥生成恒等式G121。

结合分割密钥生成单元130基于签名密钥生成恒等式G121,将分割密钥存储单元110中存储的分割密钥彼此进行结合运算,生成不同于分割密钥111的值的结合分割密钥141(CD1、CD2、...、CDm)。对生成后的各个结合分割密钥141,赋予用于识别结合分割密钥141的结合分割密钥标识符1101,生成将图11所示的结合分割密钥标识符1101和结合分割密钥141对应起来的结合分割密钥识别信息表600,将结合分割密钥识别信息表600写入到结合分割密钥存储单元140中。

在此,在签名密钥生成恒等式G121与结合分割密钥141(CD1、CD2、...、CDm)之间,具有能够根据结合分割密钥141(CD1、CD2、...、CDm)和签名密钥生成恒等式121计算出签名密钥D的值的关系。

此外,所述结合运算是汇总多个值生成新的值的运算,作为具体的例子,有加法、乘法和其组合等。即,在所谓1+2=3的运算中,“3”是对于所谓“1”和“2”的值实施了所谓“+”的结合运算后得到的值。

具体地说,将如前所述地随机分组后的加法组的各要素{id002,id001}和{id004,id003}、{id005,id006}、{id007,id008}作为一组输入自变量。

若按照签名密钥生成恒等式G’的(式3)所示的最小括弧的单位生成结合分割密钥141,则生成以下的7个结合分割密钥141。

在变量cd1中存储运算了d7+d6的结果值,在cd2中存储运算了d2+d1的结果值,在cd3中存储运算了d8+d5的结果值,在cd4中存储运算了d2+d1的结果值,在cd5中存储运算了d4+d3的结果值,在cd6中存储运算了d7+d6的结果值,在cd7中存储运算了d8+d5的结果值。即,下式成立。

G’(d1,d2,d3,d4,d5,d6,d7,d8)

=G(cd1,cd2,cd3,cd4,cd5,cd6,cd7)

在此,在G’(d1,d2,d3,d4,d5,d6,d7,d8)的自变量的变量d1中,代入具有对应于id001的分割密钥标识符ID001的分割密钥D1,同样地,在变量d2中代入分割密钥D2,在各个变量d3、d4、d5、d6、d7、d8中分别代入分割密钥D3、D4、D5、D6、D7、D8。

此外,在G(cd1,cd2,cd3,cd4,cd5,cd6,cd7)的自变量的变量cd1中代入结合分割密钥D1,同样地,在变量cd2中代入结合分割密钥CD2,在各个变量cd3、cd4、cd5、cd6、cd7中分别代入结合分割密钥CD3、CD4、CD5、CD6、CD7。

在此,CD1=D7+D6成立,CD2=D2+D1成立,CD3=D8+D5成立,CD4=D2+D1成立,CD5=D4+D3成立,CD6=D7+D6成立,CD7=D8+D5成立。

在此,由于结合分割密钥141是运算的结果值,因此,难以仅从该值导出原来的分割密钥111,能够隐匿分割密钥111。

图11示出了在各结合分割密钥141(CD1、CD2、...、CD7)中分别赋予了结合分割密钥标识符1101(ID001、ID002、...、ID007)。

从而,若将签名密钥生成恒等式G’即(式3)作为使用了结合分割密钥141的表现即签名密钥生成恒等式G121,则如下述的(式4)所示。

G(cd1,cd2,cd3,cd4,cd5,cd6,cd7)

=(cd1*cd2)+(cd3*cd4)+cd5*(cd6+cd7)...(式4)

在此,在(式4)的自变量cd1、cd2、...、cd7中代入了结合分割密钥141(CD1、CD2、...、CD7)的值的结果,与在(式3)的自变量d1、d2、...、d8中代入了(D1、D2、...、D8)的结果相等,另外,结合分割密钥141(CD1、CD2、...、CD7)是对分割密钥111(D1、D2、...、D8)进行结合运算的结果,因此,(式4)就成为能够得到与签名密钥生成式F21相同结果的式子,因此,签名生成单元150就利用(式4)作为签名密钥生成恒等式121。

结合分割密钥存储单元140存储由结合分割密钥生成单元130生成签名时动态地生成的结合分割密钥141。

签名生成单元150将消息M10作为输入,使用结合分割密钥存储单元140中存储的结合分割密钥141生成签名S30。若示出RSA签名生成中的例子,则不使用签名密钥D20,而仅使用结合分割密钥141来生成与S=M∧d mod n相同运算结果的签名S30。

接着,使用图12和图13,说明示出签名生成单元150使用了结合分割密钥141和签名密钥生成恒等式G121(式4)的签名生成的处理的流程。

首先说明签名S的生成方法的概略。

根据签名密钥生成恒等式G121的结构决定签名生成中使用的运算式。

例如在签名密钥生成恒等式G的各自变量cd1~cd7中代入CD1~CD7,在签名S是(CD1*CD2)+(CD3*CD4)+CD5*(CD6+CD7)时,使用信息M和n(=p*q),利用下述计算——

S0=(M∧CD1)∧CD2 mod n、

S1=S0*((M∧CD3)∧CD4)mod n、

S=S1*(((M∧CD6)*(M∧CD7))∧CD5)mod n

生成与S=M∧d mod n相同的结果。

更具体地说,如(CD1*CD2)和(CD3*CD4)和CD5*(CD6+CD7)这样用“+”算子分隔上式G,利用分隔后的各个式子,对消息M进行乘方运算,通过乘以各自的乘方运算结果,制作签名S。

以下转移到流程的详细说明,但在以下的例子中,假设签名密钥生成恒等式G121是(式4)。此外,假设签名生成单元150利用使用逆波兰表示法表现了(式4)的方法生成签名。在此,所述逆波兰表示法是在运算对象的后面描述算子的表示法,是用每次出现算子时都对该算子的2个前面的值和1个前面的值,计算适用了该算子的值的规则来表示的表示法。

例如,用逆波兰表示法表示(式4),若示出加入到数组中的例子,就成为如下的数组P。

P[13]={CD1,CD2,*,CD3,CD4,*,+,CD5,CD6,CD7,+,*,+}

以下,使用图12和图13,关于签名生成流程详细地进行说明。

首先,如上所述地用逆波兰表示法表现签名密钥生成恒等式G,将其表现为数组P(步骤S1201)。

接着,设定i和j为1,设定Chk和Flag为0,设定N为数组P的尺寸,将P[0]推入到栈中(步骤S1202)。在此,i是当前着眼的数组的索引,j表示当前堆积在栈中的分割结合密钥的个数。此外,Chk表示是否确认了在数组中直到哪个索引其算子是否为“+”。在此,在使用上述的j,从当前访问的数组P[i]中判定j-1个前面的算子是否是“+”,判定是否是“+”算子的有效区间内时,利用Chk。此外,利用Flag作为表示是否是“+”算子的有效区间内的标志。更具体地说,利用在签名密钥生成恒等式G的分隔点的判定中。

接着,判别P[i]是否是结合分割密钥(步骤S1203)。

若步骤S1203的判别结果是“是”,即是结合分割密钥,就将P[i]的值推入到栈中,为了移动1个数组P中的访问而增加i,此外,由于栈中堆积的分割结合密钥的个数增加,因此增加j(步骤S1204)。

反之,若判别结果是“否”,即P[i]是算子,则使堆栈中堆积着的高位2个结合分割密钥出栈,分别设为Val1、Val2(步骤S1205)。

接着,判定i+j-1是否大于Chk的值,并且i+j-1是否在N以下(步骤S1206)。

若步骤S 1206的判定结果是“是”,就将Chk设定为i+j-1的值。即,直到数组P的第i+j-1个,是否是“+”的判定已结束,因此更新Chk的值。反之若是“否”,就向步骤S1208转移处理。再有,在步骤S1206也确认了i+j-1是否在N以下,是为了防止Chk表示超过了数组尺寸的位置。

接着,判定是否j>0并且Flag=1,并且P[Chk]是否是“+”算子(步骤S1208)。

若步骤S1208的判定结果是“是”,就将Flag设定为0(步骤S1209)。

反之,若判定的结果是否,就向处理“A”转移处理。

下面,使用图13,关于图12的流程的继续进行说明。

首先,判定Val1和Val2的类型(步骤S1301)。

步骤S1301的判别结果,在Val1和Val2两者是结合分割密钥的情况下,向步骤S1310转移处理。

反之,在步骤S1301的判别结果,Val1和Val2的某一个是结合分割密钥,另一个是签名乘方中间值的情况下,向步骤S1320转移处理。此处的所述签名乘方中间值,示出用至少一个以上的结合分割密钥将消息M10乘方后的值,成为在计算签名S30的过程中的中间值。具体地说,后述的S0和S1等相当于它。

反之,在步骤S1301的判别结果是Val1和Val2两者都是签名乘方中间值的情况下,向步骤S1330转移处理。

以下,关于在S1301处理后分别分支为S1310、S1320、S1330时的各处理以后的个别处理进行说明。

以下,关于处理转移到步骤S1310的情况进行说明。

首先,判别Flag(步骤S1310)。

在步骤S1310的判别结果是Falg=0,即是“+”算子的有效区间内的情况下,向步骤S1311转移处理。

接着,判别P[i]的算子(步骤S1311)。

若步骤S1311的判别结果是P[i]是“+”算子,则向步骤S1312转移处理。

反之,若步骤S1311的判别结果,P[i]是“*”算子,则向步骤S1313转移处理。

在步骤S1312中,将(M∧Val)*(M∧Val2)mod n的值推入栈中(步骤S1312)。

在步骤S1313中,将运算了((M∧Val1)∧Val2)mod n后的值推入到栈中(步骤S1313)。

在步骤S1312、S1313的处理之后,设j=j-2,向步骤S1341转移处理(步骤S1314)。在此,设j=j-2是因为,在一系列计算中使用结合分割密钥(相当于Val1和Val2),因此要减少堆积在栈中的结合分割密钥的数量。再有,在步骤S1312和S1313中,将计算结果推入到栈中,但由于该值是上述的签名乘方中间值而不是结合分割密钥,因此将j减2。

在步骤S1341中,由于对于该区间的运算已结束,因此,重新将Flag设定为1(步骤S1341)。即,将Flag设定为0的期间是从判定为用“+”算子分隔数组P[Chk]时开始,直到执行S1312和S1313的处理而更新j的值为止的期间,除此以外的处理是在Flag=1的状态下处理各步骤。换言之,从上一次判定为P[Chk]的用“+”算子的分隔,到判定为下一个P[Chk]的用“+”算子分隔为止,持续Flag=1的状态。

反之,在步骤S1310的判别结果是Flag=1的情况下,即、是利用算子“+”分隔的区间外的情况下,向步骤S1315转移处理。

接着,在步骤S1315中,判别P[i]的算子(步骤S1315)。

若步骤S1315的判别结果为P[i]是“+”算子,就向步骤S1316转移处理。

反之,若步骤S1315的判别结果为P[i]是“*”算子,就向步骤S1317转移处理。

在步骤S1316中,将运算了Val1+Val2后的结果推入栈中(步骤S1316)。

在步骤S1317中,将运算了Val1*Val2后的结果推入到栈中(步骤S1317)。再有,在此,在步骤S1316和步骤S1317中推入的值也看作是分割结合密钥。即,将作为乘方中间值以外而推入的值看作是分割结合密钥。

在步骤S1316和S1317处理之后,向步骤S1340转移处理。以后叙述步骤S1340以后的处理。

到此为止是关于S1310以后的个别处理的说明。

以下,关于向步骤S1 320转移了处理的情况,即、是Val1和Val2的组、结合分割密钥和签名乘方中间值的组的情况进行说明。

首先,判别P[i]的算子(步骤S1320)。

若步骤S1320的判别结果为P[i]是“+”算子,则向步骤S1321转移处理。

反之,若步骤S1320的判别结果为P[i]是“*”算子,就向步骤S1322转移处理。

以下,首先关于向步骤S1321分支时的流程进行说明。

在步骤S1321中,假设结合分割密钥的值为Val1,乘方中间值为Val2,向栈推入运算了(M∧Val1)*Val2 mod n后的值(步骤S1321)。

在步骤S1322中,假设结合分割密钥的值为Val2,乘方中间值为Val1,向栈推入运算了Val1∧Val2 mod n后的值(步骤S1322)。

步骤S1321和S1322处理之后,向步骤S1340转移处理(步骤S1340)。再有,后面叙述步骤S1340以后的处理。

到此为止是关于S1310以后的个别处理的说明。

(S1330以后的个别处理)

以下关于向步骤S1330转移了处理的情况,即、Val1和Val2两者是签名乘方中间值的情况进行说明。

在步骤S1330中,利用乘方中间值即Val1和Val2,将运算了Val1*Val2mod n后的值推入到栈中,并向步骤S1341转移处理(步骤S1330)。

到此为止是关于S1330以后的个别处理的说明。

以上,结束关于S1310、S1320、S1330以后的个别流程的说明。

(S1310、S1320、S1330以后的共通处理)

以下,关于在S1310、S1320、S1330以后成为共通的流程的部分进行说明。

在步骤S1316或S1317,或者S1321或S1322处理之后,减小j,否则不进行任何处理而向步骤S1341转移处理(步骤S1340)。在此,减小j是因为,在步骤S1316或S1317的情况下,使用结合分割密钥即Val1和Val2,仅推入被看作结合分割密钥的值,因此,减1的结合分割密钥减少。此外还因为,在步骤S1321或S1322的情况下,使用乘方中间值和结合分割密钥生成了新的乘方中间值,因此,在该生成中使用的结合分割密钥从栈中消失。

在步骤S1314或者S1340处理之后,置Flag为1,向步骤S1342转移处理(步骤S1341)。

在步骤S1341的处理之后,判别是否为i<N(步骤S1342)。

若步骤S1342中的判别结果是“否”,就关于数组P的下一个要素继续进行同样的处理,因此,在步骤S1343中增加i,并向B转移处理。

反之,若步骤S1342中的判别结果是“是”,则签名的生成已结束,所以将栈的值设为签名S30,输出签名S30(步骤S1344),结束签名生成。

利用以上步骤,使用签名生成恒等式G’和结合分割密钥141生成了对消息M10的签名S30。

在图13中,关于签名生成流程图进行了说明。在此,使用图14示出利用了图13的流程时的栈的样子。

图14是示出了在图12和图13中说明的签名生成流程中的栈的样子的图。

对于用逆波兰表示法表现了签名生成恒等式G121的P,依次说明签名生成。

首先,根据P[13]={CD1,CD2,*,CD3,CD4,*,+,CD5,CD6,CD7,+,*,+},向栈中推入P[0]的结合分割密钥CD1和P[1]的结合分割密钥CD2(步骤S1401)。这时,i和j都是2,i+j-1是3,因此,设定Chk的值为3。

接着,由于P[2]是算子“*”,因此使栈的高位2个的值出栈,由于Flag=0并且是算子“*”,因此,将(M∧CD1)∧CD2 mod n作为S0,向栈中推入S0(步骤S1402)。在该处理结束了的阶段,i=2、j=0、Chk=3。此外,利用步骤S1341的工作,将Flag的值返回到1。

接着,向栈中推入P[3]的结合分割密钥CD3和P[4]的结合分割密钥CD4(步骤S1403)。这时,i=4、j=2,Chk的值被更新为5。再有,由于P[Chk]不是算子“+”,因此Flag的值仍是1。

接着,由于P[5]是算子“*”,因此使栈的高位2个的值出栈,此外,由于i=5、j=2,因此,Chk被更新为6。在此,P[Chk]的算子是“+”,因此,Flag的值被更新为0。由于Flag=0并且P[5]的算子是“*”,因此,将(M∧CD3)∧CD4 mod n作为S1,向栈中推入S1,将Flag更新为1(步骤S1404)。在该处理结束了的阶段,i=5、j=0、Chk=6、Flag=1。

接着,由于P[6]是算子“+”,Flag=1,因此使栈的高位2个的值S0和S1出栈,将S0*S1 mod n的运算结果作为S2,向栈中推入S2。

接着,依次向栈中推入相当于P[7]、P[8]、P[9]的结合分割密钥CD5、CD6、CD7(步骤S1405)。

接着,P[10]是算子“+”,这时的i的值是10,j的值是3,Flag=1并且P[12]=“+”,因此设定Flag为0。之后,使栈的高位2个的值CD6和CD7出栈,由于Flag=0并且是算子“+”,因此,将运算了(M∧CD6)*(M∧CD7)mod n后的值作为S3,向栈中推入S3(步骤S1406)。

接着,由于P[11]是算子“*”,因此使栈的高位2个的S3和CD5出栈。这时S3是签名乘方中间值,CD5是结合分割密钥,是算子“*”,因此,将运算了S3∧CD5 mod n后的值作为S4,推入到栈中(步骤S1407)。

接着,由于P[12]是算子“+”,因此使栈的高位2个的S2和S4出栈。这时,S2和S4都是签名乘方中间值,因此,将运算了S2*S4 mod n后的结果推入到结果栈中(步骤S1408)。

利用以上步骤,就将运算了S2*S4 mod n后的结果作为签名S30,输出签名S30,且签名生成结束。

这样地,在本实施方式中,一切都不利用签名密钥D21的值,而能生成签名S30。另外,由于在生成签名时动态地生成结合分割密钥141,因此能使用每次不同的结合分割密钥来生成签名。另外,不仅签名密钥D,连RSA签名中的秘密信息(p、q)的值也都不利用就能生成签名。此外,由于在每次执行签名生成处理时签名生成恒等式G也每次不同,因此,即使取随机数据的收集结果的差分,也难以确定成为用于计算签名密钥d的密钥候补的结合分割密钥。另外,即使特定了结合分割密钥,为了根据结合分割密钥求签名密钥D,也要确定签名密钥生成式G,必须要分析能取得签名密钥生成恒等式G的所有类型,签名密钥D的分析非常困难。另外,由于签名生成流程也每次不同,生成签名时的功率和签名生成处理时间也变化,因此,有对于功率差分攻击和定时攻击也很安全的效果。

再有,在本实施方式1中,随机洗牌和随机分组结合分割密钥141,然后使用矩阵表现生成了签名密钥生成恒等式G,但这些只不过是一个实施例,只要使用交换法则、结合法则和分配法则等,从签名密钥生成式F21生成签名密钥生成恒等式G就可以,但也可以是本实施方式中说明的方法以外的方法。

再有,在本实施方式1中,通过彼此结合运算已预先存储在分割密钥存储单元中的分割密钥来生成了结合分割密钥,但用结合分割密钥生成单元生成的结合分割密钥也可以是将结合分割密钥彼此结合运算的值。若这样做,由于能取结合分割密钥的值的变动增加,因此就具有更难确定签名密钥D的效果。

再有,在本实施方式1中,通过将已预先存储在分割密钥存储单元中的分割密钥彼此进行结合运算来生成了结合分割密钥,但只要生成与作为使用了签名密钥D的签名生成结果的签名S相同的结果就可以,也可以使用对生成相同结果的处理没有影响的冗余密钥进行处理。此外,冗余密钥也可以设定为产生了随机数的值。在利用以随机数值为代表的冗余密钥的情况下,也可以设定为用签名密钥生成恒等式生成的式子也包含该值。通过利用这样的冗余密钥,利用在原来的处理中不需要的信息,具有使非法分析者的分析更困难的效果。

(实施方式2)

以下,关于本发明的实施方式2进行说明。

在实施方式1中说明了RSA签名生成中的本发明的实施例,但在本实施方式2中关于应用于ECDSA(Elliptic Curve Digital Signature Algorithm即,椭圆曲线数字签名算法)的例子进行说明。ECDSA是基于椭圆曲线上的离散对数问题考虑的签名方法。由于ECDSA自身是公知技术,因此省略详细的说明,以下说明对ECDSA适用了本发明的情况下的实施例。再有,在下述的图15的说明中,除了使用分割随机数信息和结合随机数信息等进行不在存储器上出现秘密信息地计算的处理以外的处理流程,都相当于通常的ECDSA签名的生成流程。

图15是关于适用了本发明时的ECDSA的流程概要进行说明的图。

再有,适用了本发明时的签名生成单元100的结构、签名密钥生成恒等式G121和结合分割密钥141的制作方法与实施方式1相同,故省略说明。

在本实施方式2中,关于适用在ECDSA中时与本实施方式1不同的部分进行说明。

ECDSA中的签名生成式如下式所示。

S=(h+r*d)/k mod q

在此,S是签名,d是签名密钥,r是基点P的k倍点的x坐标,q是基点P的位数。

此外,h是M的散列值,表示为h=Hash(M),M是签名生成对象消息,Hash(M)示出计算签名生成对象消息M的散列值。

在ECDSA中,必须要保密的信息是在步骤S1502中利用的随机数k和在步骤S1504中利用的签名密钥d的值。在此,必须要保密随机数k的理由是,在知道了签名对象消息M和签名(r、S)的情况下,能够利用下式计算签名密钥d。

h=Hash(M)

d=(k*S-h)/r mod q

以后,使用图15,关于保密了签名密钥d和随机数k这2个信息的情况下的ECDSA的签名生成流程进行说明。再有,未在图1的签名生成装置100示出签名生成单元装置100,但具有保持着椭圆曲线的系统参数(y∧2=x∧3+a*x+b、定义体GF(p)、基点P、基点P的位数q),生成随机数的随机数生成单元。

首先,对于签名生成对象消息M,计算散列值Hash(M),将该散列值设为h(步骤S1501)。

接着,对椭圆曲线的基点P产生随机数k,计算P的k倍点,将k倍后的点设为R(步骤S1502)。这时,由于随机数k是秘密信息,因此,生成多个分割随机数信息,使得不直接在存储器中出现随机数k的值,仅使用生成的分割随机数信息计算P的k倍点。以后,使用图16,关于步骤S1502中的该处理进行详细说明。

接着,将R的x坐值设为r(步骤S1503)。

接着,进行与使用了随机数k和签名密钥d的式子S=(h+r*d)/kmod q恒等的运算,不直接在存储器上保持随机数k和签名密钥d的值,取而代之,在存储器上保持分割随机数信息和已预先分割了签名密钥d的分割密钥,使用它们生成签名S(步骤S1504)。

以后,使用图17,关于步骤S1504中的该处理进行详细说明。

最后,根据步骤S1503和S1504的结果,输出(r,S)的对作为签名,并结束ECDSA的签名生成。

下面,使用图16中示出的流程图,关于步骤S1502的详细内容进行说明。

首先,生成m个随机式R1...Rm,制作运算其积的随机数生成式T。在此,R1...Rm的积相当于随机数k(步骤S1601)。

T=R1*R2*...Rm

另外,进一步将R1...Rm分别分割为更细小值(分割随机数信息)的和。

T=∑t(1,h)*∑t(2,i)*…*∑t(m,j)…(式T)

在此

∑t(1,h)=t(1,1)+t(1,2)+...+t(1,h)

∑t(2,i)=t(2,1)+t(2,2)+...+t(2,i)

∑t(m,j)=t(m,1)+t(m,2)+...+t(m,j)

t(1,1)、t(1,2)、...、t(1,h)分别是分割随机数信息,式∑t(1,h)表示h个分割随机数信息的和。

此外,h、i、j...是任意的数。

接着,对于随机数生成式T的项即∑t(1,h)、∑t(2,i)、...、∑t(m,j)中使用着的分割随机数信息t(x,y),即、t(1,1)、t(1,2)、...、t(1,h)、t(2,1)、...、t(2,i)、t(m,1)、...、t(m,j),分别生成并设置随机数(步骤S1602)。

接着,判定∑t(1,h)、∑t(2,i)、...、∑t(m,j)的值是否分别与q互为质数(步骤S1603)。

在此,所谓的“与q互为质数”的条件是为了随机数k具有逆元而必须的条件。

若步骤S1603的判定结果是“否”,就向步骤S1602返回处理,再次进行上述的随机数的生成和设置。

反之,若步骤S1603的判定结果是“是”,就制作与随机数生成式T恒等的随机数生成恒等式U(步骤S1604)。

由于能够用与实施方式1中的从签名密钥生成式F21生成签名密钥生成恒等式G121的方法同样的方法,来进行步骤S1604中的从随机数生成式T制作随机数生成恒等式U,故省略说明。

接着,基于随机数生成恒等式U制作结合随机数信息(步骤S1605)。在此,结合随机数信息相当于实施方式1中的结合分割密钥。从而,步骤S1605的结合随机数信息的制作方法与实施方式1中的结合分割密钥的制作相同,故省略说明。

接着,使用随机数生成恒等式U和在步骤S1605中制作的结合随机数信息,计算基点P的U倍点U*P,将该计算结果设为R(步骤S1606)。

这时,在随机数生成恒等式U的式子中代入结合随机数信息的值来计算出的结果,对应于在ECDSA的本来算法中利用的随机数k。即,不直接在存储器上出现与S1502的随机数k相对应的值,而仅利用将多个分割随机数进行结合运算后的值即结合随机数信息,就能够计算出P的U倍点。

步骤S1606进行椭圆曲线上的点彼此之间的加法和点的n倍点运算。在此,与实施方式1对应地说明该计算,在实施方式1中,RSA的签名生成处理的乘方运算中的“乘方运算”对应于椭圆曲线上的“n倍点运算”,RSA的签名生成处理的“乘法”对应于椭圆曲线上的加法。从而,在RSA的签名生成流程中,利用变更了适用的运算种类后的流程,就能够进行椭圆曲线上的点彼此之间的加法和n倍点运算。

在此,为了容易理解,关于步骤S1601~S1606举具体例进行说明。

首先,在步骤S1601中,假设用上述方法生成的随机数生成式T是以下的式子。

T=∑t(1,4)*∑t(2,4)...(式T)

∑t(1,4)=t(1,1)+t(1,2)+t(1,3)+t(1,4)

∑t(2,4)=t(2,1)+t(2,2)+t(2,3)+t(2,4)

接着,对t(1,1)、t(1,2)、...、t(1,4)、t(2,1)、t(2,2)、...、t(2,4)分别设定随机数值(步骤S1602)。

这时,重新进行随机数值的设定,直到∑t(1,4)与∑t(2,4)互为质数。(步骤S1603)

接着,根据

随机数生成式T=(t(1,1)+t(1,2)+t(1,3)+t(1,4))

*(t(2,1)+t(2,2)+t(2,3)+t(2,4)),

利用交换法则、结合法则、分配法则,例如

T=(((t(1,1)+t(1,3))+((t(1,2)+t(1,4)))

*((t(2,1)+t(2,3))

+(((t(1,1)+t(1,4))+((t(1,2)+t(1,3)))

*((t(2,2)+t(2,4))

这样地将随机数生成恒等式U进行恒等变换,将自变量u1~u6设定为

u1=t(1,1)+t(1,3)

u2=t(1,2)+t(1,4)

u3=t(2,1)+t(2,3)

u4=t(1,1)+t(1,4)

u5=t(1,2)+t(1,3)

u6=t(2,2)+t(2,4)(步骤S1605)。

这样地,随机数生成恒等式U就成为

U(u1,u2,u3,u4,u5,u6)

=(u1+u2)*u3+(u4+u5)*u6。

在自变量u1中代入结合随机数信息U1,在自变量u2中代入结合随机数信息U2,同样地,在自变量u3~u6中代入结合随机数信息U3~U6。

U=(U1+U2)*U3+(U4+U5)*U6

此外,能用

U*P=U3*(U1*P+U2*P)+U6*(U4*P+U5*P)

计算基点P的U倍点U*P。

在此,由于所述随机数生成式T和随机数生成恒等式U恒等,因此,U*P与T*P成为相同结果。另外,由于T是计算随机数k的随机数生成式,因此,不在存储器上装载随机数k和在其生成中使用的随机数生成式T,就能计算P的k倍点。此外,由于随机数生成恒等式U和对应的结合随机数信息等每次都随机生成,因此,能够使随机数k的值的分析变得困难。这样,实施方式2的签名生成单元就能够使ECDSA签名生成流程的分析变得困难。

接着,使用图17说明图15的步骤S1504的详细流程。

首先,生成m个随机值,分别作为分割冗余密钥du1、du2、...、dum,将相加了各分割冗余密钥后的du1+du2+...+dum作为分割冗余密钥生成式Du(步骤S 1701)。

Du=du1+du2+...+dum...(式Du)

这是用于不在存储器上直接出现式S=(h+r*d)/k mod q中的1/k而进行计算的。

即,由于

1/k=Du/(Du*k)

=du1/(Du*k)+du2/(Du*k)+...+dum/(Du*k)

并且,在S1 502中生成的U与k等效,因此,只要取代1/k,计算

du1/(Du*U)+du2/(Du*U)+...+dum/(Du*U)就可以。

另外,若假设上式的Du*U为式A,用与Du*U恒等的式子B1、B2...Bm置换Du*U,则成为

1/k=(du1/B1)+(du2/B2)+...+(dum/Bm),

若将该(du1/B1)置换为C1,同样地将(du2/B2)置换为C2,……,将(dum/Bm)置换为Cm,则成为

1/k=C1+C2+...Cm。

结果,为了计算签名S,只要计算

S=(h/k+r*d/k)mod n

=(h*(C1+C2+...+Cm)

+r*F*(C1+C2+...+Cm))mod n

=(h*(C1+C2+...+Cm)

+r*H)  mod n

就可以。

在此,上式中的F示出了在实施方式1中示出的下式

F(d1,d2,d3,d4,d5,d6,d7,d8)

=(d1+d2+d3+d4)*(d5+d6+d7+d8)

此外,H是与式子F*(C1+C2+...+Cm)恒等的式子,F是上述的签名密钥生成式。

以下,返回到步骤S1702以后的流程图的说明。

下面,判定分割冗余密钥生成式Du的值是否与q互为质数(步骤S1702)。

若步骤S1702的判定结果是“否”,为了进一步生成别的du1...dum,向步骤S1701返回处理。

反之,若步骤S1702的判定结果是“是”,就将在步骤S1502中求得的随机数生成恒等式U和分割冗余密钥生成式Du相乘后的式子U*Du作为A,生成m个与A恒等的式子,作为B1、B2、...、Bm(步骤S1703)。

基于在步骤S1703中生成的恒等式B1、B2、...Bm,生成结合分割密钥bij(i、j=1、2、...)(步骤S1704)。

步骤S1703和S1704将A看作实施方式1中的签名密钥生成式F21,将构成了A的式子的分割冗余密钥du1、du2、...、dum和在步骤S1504中制作的结合随机数信息U1、U2、...、Ui看作分割密钥111,通过进行与实施方式1同样的处理,能够生成恒等式B1、B2、...Bm和与各个恒等式相对应的结合分割密钥bij(i、j=1、2、...)。

再有,在实施方式1中,仅制作了1个签名密钥生成恒等式G121,但在此生成m个相当于签名密钥生成恒等式G121的恒等式B1等,分别制作m组结合分割密钥的组。

接着,使用在步骤S1701中生成的m个分割冗余密钥du1、du2、...、dum和m个恒等式B1、B2、...Bm,制作如下的m个C1、C2、...、Cm(步骤S1705)。

C1=du1/B1

C2=du2/B2

Cm=dum/Bm

这时,能够利用B1、B2、Bm还同与A恒等的情况和Du=du1+du2+...+dum的性质,将C1+C2+...+Cm如下地进行式变形。

C1+C2+...+Cm

=(du1/B1)+(du2/B2)+...+(dum/Bm)

=(du1+du2+...+dum)/A

=(du1+du2+...+dum)/U*Du

=1/U

由于U相当于步骤S1502的随机数k,因此,1/Umod q的值就相当于k∧-1 mod q。这样,就能够不在存储器上装载k的值,而计算k∧-1 modq的值。

此外,由于随机地生成恒等式B1...Bm和分割冗余密钥du1、du2、...、dum等,因此,能够每次进行签名生成时都使k∧-1 mod q的计算过程动态地变化。这样,实施方式2的签名生成装置就能够使ECDSA签名生成流程的分析变得困难。

接着,使用签名密钥生成式F和在步骤S1705中生成的m个Ci(i=1,2,...,m)式,生成(式E)(步骤S1 706)。

F*(C1+C2+...+Cm)...(式E)

接着,生成与(式E)恒等的(式H’)(步骤S1707)。

接着,基于(式H’),使用实施方式1中说明过的流程,对签名密钥生成式F的要素即分割密钥和C1、C2、...、Cm的要素值进行结合运算,将结合运算后的值作为结合分割密钥(步骤S1708)。再有,由于通过将实施方式1中的签名密钥生成式F21看作(式E),将C1、...、Cm的要素值和签名密钥生成式F21的要素值di看作实施方式1中的签名密钥生成式F21的要素值di,步骤S1807和步骤S1708的处理就成为与实施例1同样的处理,故省略详细的说明。这样做,恒等式H’就能够表示作使用了结合分割密钥的H。

这样,由于每次随机地生成对应于恒等式H的结合分割密钥hi,因此,能够使ECDSA签名生成流程的分析变得困难。

接着,使用在步骤S1501中计算出的散列值h、在步骤S1705中生成的式子C1、C2、...、Cm、在步骤S1707中生成的恒等式H、在步骤S1503中计算出的点R的X坐标的值r,用下式

S=h*(C1+C2+...+Cm)+r*H mod q

计算与

S=(h+r*d)/k mod q

恒等的运算,将计算值作为S(步骤S1709)。

以上,实施方式2的签名生成装置能够不直接在存储器上出现随机数值k的值和签名密钥d的值而生成签名S。

再有,在步骤S1709的运算中,期望按照h*(C1+C2+...+Cm)的运算结果值不直接出现在存储器上的顺序进行运算。

这是因为能从h*(C1+C2+...+Cm)的值复原随机数信息即k。

关于运算顺序以后叙述具体例,故省略在此的说明。

接着,举具体例说明图17的流程。

首先,生成3个随机数,分别作为分割冗余密钥du1、du2、du3(步骤S1701)。

Du=du1+du2+du3

在此,在Du与q不是互为质数的情况下,反复进行分割冗余密钥的生成,直到Du与q互为质数(步骤S1702)。

接着,转移到使用了随机数生成恒等式U的计算的说明,但在以下的说明中,假设随机数生成恒等式U为在图16的说明中生成的以下的(式U)。

U=(U1+U2)*U3+(U4+U5)*U6...(式U)

这时,(式A)例如变为如下。

((U1+U2)*U3+(U4+U5)*U6)

*(du1+du2+du3)    ...(式A)

接着,生成与(式A)恒等的(式B1)、(式B2)、(式B3)。

作为恒等式B1的计算过程,首先生成如下的式A的恒等式1,

(((U1+U2)*U3)+((U4+U5)*U6))*(du1+du2)

+((U1+U2)*U3+(U4+U5)*U6)*du3

基于生成的恒等式1,使结合分割密钥分别如下。 

b11=(U1+U2)*U3

b12=(U4+U5)*U6

b13=du1+du2

b14=(U1+U2)*U3+(U4+U5)*U6

b15=du3

于是,使用式A的恒等式1和上述结合分割密钥,恒等式B1变为以下的(式B1)。

(b11+b12)*b13+b14*b15...(式B1)

同样地,作为恒等式B2的计算过程,首先生成如下的式A的恒等式2,

(U1*U3+U2*U3+U4*U6+U5*U6)

*((du1)+(du2+du3))

关于生成的恒等式B2,使结合分割密钥分别如下。

b21=U1*U3

b22=U2*U3

b23=U4*U6

b24=U5*U6

b25=du1

b26=du2+du3

于是,使用式A的恒等式2和上述结合分割密钥,恒等式B2变为以下的(式B2)。

B2=(b21+b22+b23+b24)*(b25+b26)...(式B2)

另外,同样地,作为恒等式B3的计算过程,首先生成如下的式A的恒等式3,

((U1*U3+U4*U6)+(U2*U3+U5*U6))

*(du1+du2+du3)

按照生成的恒等式3,使结合分割密钥分别如下。

b31=U1*U3+U4*U6

b32=U2*U3+U5*U6

b33=du1+du2+du3

于是,使用式A的恒等式3和上述结合分割密钥,恒等式B3变为以下的(式B3)。

(b31+b32)*b33...(式B3)

接着,使用生成的(式B1)、(式B2)、(式B3),在步骤S1705中生成以下的3个式子C1、C2、C3。

C1=du1/B1=du1/((b11+b12)*b13+b14*b15)...(式C1)

C2=du2/B2=du2/((b21+b22+b23+b24)*(b25+b26)...(式C2)

C3=du3/B3=du3/((b31+b32)*b33)...(式C3)

这时,如上所述地C1+C2+C3=k∧(-1)mod q成立。

在此,将ECDSA的签名密钥d分割为8个分割密钥,设签名密钥生成式F为如下的(式F)。

F=(d1+d2+d3+d4)*(d5+d6+d7+d8)...(式F)

这时,接着在步骤S1706中生成的(式E)成为

(d1+d2+d3+d4)*(d5+d6+d7+d8)*(C1+C2+C3)(步骤S1706)。接着,从(式E)生成与(式E)恒等的(式H)(步骤S1707)。在此,设(式E)的恒等变换例为

H=((d1+d3)+(d2+d4))*((d6+d7)+(d8+d5))*C1

+((d2+d3)+(d1+d4))*((d6+d8)+(d7+d5))*(C2+C3),

设结合分割密钥分别为

H1=d1+d3

H2=d2+d4

H3=d6+d7

H4=d8+d5

H5=C1

H6=d2+d3

H7=d1+d4

H8=d6+d8

H9=d7+d5

H10=C2+C3

该情况下,利用上述的结合信息,恒等式H成为如下的(式H)。

((H1+H2)*(H3*H4))*H5

+((H6+H7)*(H8*H9))*H10...(式H)

接着,使用交换法则、结合法则、分配法则,计算

h*(C1+C2+C3)+r*H

=h*(C1+C2+C3)+r*{((H1+H2)*(H3*H4)*H5+

((H6+H7)*(H8*H9))*H10},

使得h*(C1+C2+C3)的值不直接出现在存储器上,将计算结果作为签名S。作为使得h*(C1+C2+C3)的值不直接出现在存储器上的计算顺序的一例,变形为下式进行计算。

h*(C1+C2+C3)+r*{((H1+H2)*(H3*H4)*H5+

((H6+H7)*(H8*H9))*H10}

=h*(C1+C2)+r*{((H1+H2)*(H3*H4))*H5}

+h*C3+r*{((H6+H7)*(H8*H9))*H10}

即,在上述的计算式中,将h*(C1+C2+C3)分为h*(C1+C2)和h*C3进行计算,并且,通过在该计算之间夹入剩余的计算,使h+(C1+C2+C3)的值就不直接出现在存储器上。

通过如上所述的过程,就能不在存储器上直接出现相当于步骤S1502的随机数k的值和签名密钥d的值,并且,能在每次执行签名生成时,使在每次执行签名S的生成中使用的随机数生成恒等式U和签名生成式H改变,因此,具有利用非法分析确定签名密钥d变得非常困难的效果。

再有,在本实施方式1和2中,关于RSA签名和ECDSA进行了说明,但不限定于此,也可以利用在使用了RSA密码、椭圆密码、ElGamal密码等计算运算的公开密钥密码中。此外,由本实施方式1和2例示的过程的应用目的不必须限定于在密码和签名中利用的密钥信息,当然也可以对于不同于它们的需要保护的秘密信息进行适用。

(实施方式3)

以下,关于本发明的实施方式3进行说明。

在本实施方式3中,将签名密钥分割为分割密钥,使用图18说明直到将分割密钥嵌入到终端中的工序。

密钥发行机关是发行用于进行签名生成的签名密钥的机关。

在密钥发行机关中,向n台(信息终端1(1810)、信息终端2(1820)、...、信息终端n(1830))终端发行各自不同的签名密钥1、签名密钥2、...、签名密钥n。

分割密钥生成装置1802是将签名密钥生成式作为输入,基于签名密钥生成式,将从密钥发行机关发行的签名密钥进行分割的装置,输出分割密钥和签名密钥生成式。

分割密钥写入装置1805是向进行签名生成的信息终端写入在分割密钥生成装置1802中生成的分割密钥和由签名密钥生成式构成的分割密钥信息1804的装置。例如,在信息终端是内装了便携式电话机等的机器的情况下,使用ROM记录器作为分割密钥写入装置。

在此,信息终端1(1810)、信息终端2(1820)、...、信息终端n(1830)是进行签名生成的信息终端。由于这些信息终端的结构是与实施方式1中说明的签名生成单元100相同的结构,因此仅图示了本实施方式3的说明中必要的结构。

制造终端的制造厂对分割密钥生成装置1802输入从密钥发行机关发行的签名密钥1801和签名密钥生成式1803,生成分割密钥信息1804,所述分割密钥信息1804包括分割了签名密钥1801的分割密钥和用于从分割密钥生成签名密钥的信息即签名密钥生成式1803。

分割密钥信息1804包括签名密钥1的分割密钥信息1811、签名密钥2的分割密钥信息1821、签名密钥n的分割密钥信息1831,示出了签名密钥1的分割密钥信息1811是面向信息终端1810的分割密钥信息,签名密钥2的分割密钥信息1821是面向信息终端2(1820)的分割密钥信息,签名密钥n的分割密钥信息1831是面向信息终端n(1830)的分割密钥信息。分割密钥信息(1811、1821、1831)也可以作为实施方式1中示出的分割密钥识别信息表200和分割密钥信息表400,此外,只要是能够识别分割密钥和签名密钥生成式F的关系以便能够计算出与签名密钥d相同的值的信息,就也可以是其他信息。

接着,制造终端的制造厂使用分割密钥写入装置1805,向信息终端1810、1820、1830的各分割密钥存储单元中写入由分割密钥生成装置1802生成的分割密钥信息1804。

在此说明直到写入为止的更具体的一例,由分割密钥生成装置生成的分割密钥信息(1811、1821、1831),是表现了分割密钥识别信息表200和分割密钥信息表400的数据文件,将该数据文件编译来作为二进制数据,使用ROM记录器等分割密钥写入装置1805,将该二进制数据写入到分割密钥存储单元中。

以上,就在信息终端1(1810)的分割密钥存储单元中写入签名密钥1的分割密钥信息1811,在信息终端2(1820)的分割密钥存储单元中写入签名密钥2的分割密钥信息1821,在信息终端n(1830)的分割密钥存储单元中写入签名密钥n的分割密钥信息1831。

再有,在本实施方式3中,信息终端(1810、1820、1830)的签名密钥生成式设定为各自不同的签名密钥生成式F1、F2、...Fn,但也可以在全部信息终端中设定相同的签名密钥生成式。该情况下,为了使各信息终端进行各不相同的处理,最好由分割密钥生成装置1802对每个信息终端生成不同的分割密钥,将生成的按每个信息终端各不相同的分割密钥写入到各信息终端(1810、1820、1830)中。

再有,在本实施方式3中,分割密钥生成装置1802从外部输入签名密钥生成式1803,基于输入的签名密钥生成式分割了签名密钥,但输入的信息不限于此,也可以是用于从签名密钥生成分割密钥的任意的参数信息。例如,也可以向分割密钥生成装置1802输入分割签名密钥的分割个数的参数,按照在分割密钥生成装置1802内输入的分割个数,分割签名密钥。另外,也可以按照在分割密钥生成装置1802内输入的分割个数生成签名密钥生成式,并将其输出。在此,为了生成分割密钥而输入的参数也可以不是分割个数,而是表示安全等级和CPU性能的参数信息,该情况下,也可以按照输入的参数,在分割密钥生成装置1802内决定分割个数。具体地说,也可以在安全等级低或CPU性能高的情况下,生成更多的分割密钥。通过这样做,就能调整签名密钥d的分割数量,因此能够灵活地设定安全强度。

此外,也可以在由密钥发行机关加密后的状态下发行签名密钥1801。该情况下,制造终端的制造厂在对已加密的签名密钥1801进行解密之后,将解密后的签名密钥输入到分割密钥生成装置1802中。此外,若此处的加密方式利用公开密钥加密方式,则密钥发行机关也可以在签名密钥1801中添加签名密钥1801的签名后进行发送,制造厂通过利用密钥发行机关的公开密钥验证签名密钥1801的签名,就能够验证合法性。通过这样做,就能够保护从密钥发行机关交给制造厂的签名密钥1801不在递交途中被盗听和窜改。

再有,已对终端制造制造厂利用分割密钥生成装置1802和分割密钥写入装置1805进行了说明,但现实中,在制造工序中有分割密钥生成装置1802和分割密钥写入装置1805的利用场合不同的情况。作为具体例,有在终端的制造工厂中实施分割密钥写入装置1805的情况等。该情况下,也可以将在分割密钥生成装置1802中生成的分割密钥信息1804加密,将加密后的分割密钥信息分发给终端的制造工厂,在终端的制造工厂中对分发的加密信息进行解密,将解密了的分割密钥信息1804输入到分割密钥写入装置1805中。通过这样做,能进行安全的分割密钥的分发。

再有,在上述中示出了签名密钥1801和分割密钥信息1804的加密方法,但关于该情况下的加密方法不应该特殊限定,只要通过使用AES等共通密钥密码或者RSA和椭圆密码等公开密钥密码来实现就可以。

(实施方式4)

在实施方式4中,使用图19和图20,关于利用签名密钥生成恒等式生成单元120,通过网络更新计算签名密钥生成恒等式的签名密钥生成恒等式生成程序的方法进行说明。

图19是签名生成单元100从位于网络上的更新服务器1901下载更新用的签名密钥生成恒等式生成程序X1902,更新签名密钥生成恒等式生成单元120的签名密钥生成恒等式生成程序的概要图。与实施方式1的不同点在于,实施方式4能够从网络上的更新服务器下载新的签名密钥生成恒等式生成程序,将签名密钥生成恒等式生成单元120的签名密钥生成恒等式生成程序更新为下载后的签名密钥生成恒等式生成程序X1902。

在此,签名生成单元100和更新服务器1901通过因特网等网络1900进行连接。

更新服务器1901保持着与签名生成单元100的签名密钥生成恒等式生成单元120的签名密钥生成恒等式生成程序不同的签名密钥生成恒等式生成程序X1902。在此,签名密钥生成恒等式生成程序X1902具有与签名生成程序同等的功能,即、生成与签名密钥生成式F21恒等的式子即签名密钥生成恒等式G121的功能。但是,假设签名密钥生成恒等式生成程序X1902制作签名密钥生成恒等式G121的流程不同于签名密钥生成恒等式生成单元120的签名密钥生成恒等式生成程序。

此外,更新服务器1901也保持着为了验证更新用的程序即签名密钥生成恒等式生成程序X1902的合法性而利用的签名密钥生成恒等式生成程序X的窜改检测值1903。再有,作为窜改检测值1903的具体例,有签名密钥生成恒等式生成程序X的散列值等。

签名生成单元100除了具备在实施方式1的图1中说明的结构要素之外,在本实施方式4中还具有收发单元1910和签名密钥生成恒等式生成程序更新单元1920。

收发单元1910是通过网络与更新服务器1901进行数据的收发的装置。

签名密钥生成恒等式生成程序更新单元1920利用收发单元1910,向存在于网络上的更新服务器1901发送签名密钥生成恒等式生成程序的更新请求消息。另外,通过收发单元1910,从更新服务器1901接收签名密钥生成恒等式生成程序X1902,用接收到的签名密钥生成恒等式生成程序X1902更新签名密钥生成恒等式生成单元120的程序。

下面,使用图20,关于签名密钥生成恒等式生成单元120的签名密钥生成恒等式生成程序的更新流程进行说明。

首先,签名密钥生成恒等式生成程序更新单元1920向收发单元1910请求签名密钥生成恒等式生成程序X1902的下载(步骤S2001)。

接着,收到了下载请求的收发单元1910,通过网络1900向更新服务器1901发送签名密钥生成恒等式生成程序X1902的下载请求消息(步骤S2002)。

接着,收到了下载请求消息的更新服务器1901,向收发单元1910发送在更新服务器1901内保持着的签名密钥生成恒等式生成程序X1902和签名密钥生成恒等式生成程序X1902的散列值1903(步骤S2003)。

接着,收发单元1910在从更新服务器1901接收完了签名密钥生成恒等式生成程序X1902和签名密钥生成恒等式生成程序X1902的散列值1903的时刻,将下载完了通知通知给签名密钥生成恒等式生成程序更新单元1920(步骤S2004)。

接着,签名密钥生成恒等式生成程序更新单元1920利用签名密钥生成恒等式生成程序X1902的散列值1903,判定是否窜改了签名密钥生成恒等式生成程序X1902。在该判定结果是“是”,即判定为已窜改的情况下,结束更新流程,在该判定结果是“否”,即判定为未窜改的情况下,继续更新处理(步骤S2005)。

接着,签名密钥生成恒等式生成程序更新单元1920通过用下载的签名密钥生成恒等式生成程序X1902进行写入,来更新签名密钥生成恒等式生成单元120的签名密钥生成恒等式生成程序(步骤S2005)。

写入一完了,签名密钥生成恒等式生成程序更新单元1920就通知写入完了通知,保持着结束更新流程(步骤S2006)。

如上所述地,签名生成单元100利用网络1900,从更新服务器1901下载新的签名密钥生成恒等式生成程序X1902后,进行签名密钥生成恒等式生成单元120的签名密钥生成恒等式程序的更新。

通过具有这样的更新功能,通过在非法分析者窜改了签名密钥生成恒等式程序的情况和签名密钥生成恒等式生成程序不妥的情况下,更新签名密钥生成恒等式程序,就能够确保签名生成装置100的安全性。

再有,在实施方式4中,关于发送图20的步骤S2001的下载请求的定时没有示出,但也可以例如在签名生成处理开始的请求之前,在签名生成装置100内验证签名密钥生成恒等式生成单元120的程序(相当于签名密钥生成恒等式生成程序X)的合法性,在验证结果判定为“不合法”的情况下,进行步骤S2001的下载请求。作为验证签名密钥生成恒等式生成单元120的程序的合法性的更具体的方法,有在签名生成单元100内的安全的存储器中保持签名密钥生成恒等式生成单元120的程序的散列值,在开始签名生成处理之前,计算签名密钥生成恒等式生成单元120的签名密钥生成恒等式生成程序的散列值,比较计算出的散列值和存储器内保持着的散列值的方法等。

此外,在实施方式4中,也可以在安全通信线路(SAC)中共有会话密钥,将签名生成单元100与更新服务器1901间的数据通信作为用会话密钥加密后的数据的收发。关于SAC,由于是在Secure Sockets Layer(SSL)等中利用着的已知的技术,故省略说明。

此外,在实施方式4中,通过网络,从更新服务器1901下载了更新用的签名密钥生成恒等式生成程序X1902,但也可以不是网络,而是通过使用记录了签名密钥生成恒等式生成程序X1902的DVD和CD等的记录介质,来更新签名密钥生成恒等式生成单元120的程序。通过使图20中的收发单元1910具有操作与记录介质的数据的读写的驱动器功能,能够实现进行该处理的签名生成单元100。即,通过在图20中,将收发单元1910作为记录介质驱动器,将更新服务器1901作为记录媒介,将下载请求置换为来自媒体的读入请求,就能够实现如上所述的签名生成单元100,因此省略详细的说明。

此外,在实施方式4中更新了签名密钥生成恒等式生成单元120的程序,但也可以将进行更新的对象设为分割密钥存储单元中存储的分割密钥111。该情况下,不仅更新分割密钥111,也同时更新可知分割密钥111和签名密钥生成式F2 1的关联信息的分割密钥识别信息表200和分割密钥信息表400。此外,也可以将进行更新的对象设为结合分割密钥生成单元的程序。

通过这样做,更新服务器就能调整生成的分割密钥的个数和结合分割密钥的个数,能灵活地设定安全强度。

<重写>

再有,基于上述实施方式说明了本发明,但本发明不限定于上述的实施方式。如下的情况也包含在本发明中。

(1)上述的装置具体地说是由微处理机、ROM、RAM、硬盘单元、显示单元、键盘、鼠标等构成的计算机系统。在上述RAM或上述硬盘单元中存储有计算机程序。通过上述微处理机按照上述计算机程序进行工作,上述装置就达到其功能。在此,为了达到规定的功能,组合多个示出对计算机的指令的命令代码来构成了计算机程序。

(2)构成上述的各装置的结构要素的一部分或全部也可以由1个系统LSI(Large Scale Integration:大规模集成电路)构成。系统LSI是在1个芯片上集成多个结构部来制造的超多功能LSI,具体地说是由包含微处理机、ROM、RAM等而构成的计算机系统。在上述RAM中存储有计算机程序。通过上述微处理机按照上述计算机程序进行工作,系统LSI就达到其功能。可以将它们个别地集成为1个芯片,也可以包含其中一部分或全部集成为1个芯片。

此外,在此设定为系统LSI,但有时也根据集成度的不同,称作IC、系统LSI、超级LSI、极级(ultra)LSI。

此外,电路集成化的方法不限于LSI,也可以用专用电路或通用处理器来实现。也可以在LSI制造后,利用可编程的FPGA(Field Programmable GateArray:现场可编程门阵列)和可以再组合LSI内部的电路单元的连接和设定的可重构处理器。

另外,若出现了利用半导体技术的进步或派生的其他技术置换为LSI的集成电路化的技术,当然也可以使用该技术进行功能块的集成化。也能有适应生物技术等的可能性。

(3)在本实施方式1中,分割密钥生成装置22写入分割密钥识别信息表200和分割密钥信息表400,但当然也可以在签名生成装置100内部生成这些表。    

再有,由于具有利用非法分析从分割密钥信息表400的内容确定签名密钥生成式F21的危险,因此,作为更安全的安装方法,也可以在已加密的状态下保持分割密钥信息表400,仅在生成签名时进行解密。这样,由于利用静态解析的签名密钥生成式F21的确定变得困难,因此,安全性提高。此外,若不确定签名密钥生成式F21,签名密钥d的确定就也困难。

(4)在实施方式中,关于首先生成签名密钥生成恒等式,接着生成符合上述签名生成恒等式的结合分割密钥的情况进行了说明,但不限于此,只要遵从签名密钥生成恒等式和结合分割密钥所能生成的过程就可以。

例如,也可以首先随机地生成结合分割密钥,接着生成包含相当于该结合分割密钥的部分的签名生成恒等式。

(5)构成上述装置的结构要素的一部分或全部也可以由可拆装在装置上的IC卡或单体模块构成。上述IC卡或上述模块是由微处理机、ROM、RAM等构成的计算机系统。上述IC卡或上述模块也可以包括上述超多功能LSI。通过微处理机按照计算机程序进行工作,上述IC卡或上述模块就达到其功能。该IC卡或该模块也可以具有抗窜改性。

(6)本发明也可以是上述所示的方法。此外,也可以是利用计算机实现这些方法的计算机程序,也可以是由上述计算机程序构成的数字信号。

此外,本发明也可以将上述计算机程序或上述数字信号记录在计算机可读取的记录介质中,例如软磁盘、硬盘、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BD(Blu-ray Disc)、半导体存储器等中。此外,也可以是这些记录介质中记录着的上述数字信号。

此外,本发明也可以经由电气通信线路、无线或有线通信线路、以因特网为代表的网络、数据广播等,来传送上述计算机程序或上述数字信号。

此外,本发明也可以是具有微处理机和存储器的计算机系统,上述存储器存储有上述计算机程序,上述微处理机按照上述计算机程序进行工作。

此外,也可以通过记录在上述记录介质中来移送上述程序或上述数字信号,或者通过经由上述网络等移送上述程序或者上述数字信号,利用独立的其他计算机系统来实施。

(7)也可以分别组合上述实施方式和上述变形例。

(8)说明书中的有关用语“交换法则”、“分配法则”、“结合法则”、“逆波兰表示法”的描述,只不过是为便于描述而描述了公知的用语,不是对这些用语给予新的定义。

工业上的实用性

本发明涉及的安全处理装置和方法通过从运算结果仅导出分割后的秘密信息,具有不在程序的执行中出现秘密信息而能够执行安全处理的效果。此外,还具有每次在执行利用秘密信息的安全处理时,动态地生成每次不同的分割秘密信息,通过使安全处理的执行流程动态地变更,使非法分析者的动态分析变得困难的效果。因此,在进行若泄露给非法分析者就导致利益损失的、使用了秘密信息的处理的软件等的领域中有用。

权利要求书(按照条约第19条的修改)

1(修改后)、一种安全处理装置,能够得到与对消息实施了安全运算的情况相同的运算结果,该安全运算使用秘密信息,其特征在于,具有:

存储单元,存储有已预先将秘密信息至少分割为2个以上的分割秘密信息、第一秘密信息生成式和第一安全运算过程,在所述第一秘密信息生成式中作为自变量而输入上述分割秘密信息,所述第一秘密信息生成式根据上述分割秘密信息计算出上述秘密信息,所述第一安全运算过程示出使用了上述分割秘密信息的安全运算的过程;

结合秘密信息生成单元,生成将至少2个上述分割秘密信息相互进行运算的结合秘密信息;

第一生成单元,作为自变量而输入上述结合秘密信息,生成在运算上与上述第一秘密信息生成式等效的第二秘密信息生成式;

第二生成单元,基于上述第二秘密信息生成式中包含的算子,作为自变量而输入上述结合秘密信息,生成示出与上述第一安全运算过程等效的运算过程的第二安全运算过程;以及

执行单元,对上述消息实施按照上述第二安全运算过程的安全运算。

2(修改后)、如权利要求1所述的安全处理装置,其特征在于,

上述第一秘密信息生成式包含1个以上的运算,

上述第一生成单元从上述第一秘密信息生成式中包含的运算中,随机选择与上述运算之间满足交换法则、结合法则、分配法则中的任一个的替代运算的某个运算,通过将选择的运算置换为上述替代运算,生成第二秘密信息生成式。

3、如权利要求2所述的安全处理装置,其特征在于,

上述第一秘密信息生成式包含1个以上的运算,各运算包含多个操作数和示出操作数相互之间的计算内容的算子,

上述存储单元存储有示出上述第一秘密信息生成式涉及的上述操作数与上述算子的关系的属性信息,

上述第一生成单元使用上述属性信息,生成上述第二秘密信息生成式。

4、如权利要求3所述的安全处理装置,其特征在于,

在上述第一秘密信息生成式中,向上述操作数输入自变量的值,上述自变量的各自的值不重复地对应于上述分割秘密信息的某一个,

上述属性信息示出对应于能结合的多个操作数的算子,

上述第一生成单元基于上述属性信息,用上述算子结合上述第一秘密信息生成式中的上述多个操作数,

上述第二生成单元通过使用上述算子结合与上述已结合的各操作数相对应的分割秘密信息,来生成上述结合秘密信息。

5、如权利要求2所述的安全处理装置,其特征在于,

上述第二秘密信息生成式包含1个以上的运算,各运算包含多个操作数和示出操作数相互之间的计算内容的算子,

上述存储单元存储有属性信息,该属性信息表示上述第二秘密信息生成式涉及的上述操作数与上述算子的关系,

上述第二生成单元使用上述属性信息,生成上述第二安全运算过程。

6、如权利要求1所述的安全处理装置,其特征在于,

上述第一生成单元进一步生成随机数信息,生成包含了上述随机数信息的上述第二秘密信息生成式,

上述第二生成单元基于上述第二秘密信息生成式,使用上述结合秘密信息和上述随机数信息生成第二安全运算过程,该第二安全运算过程示出与上述第一安全运算过程等效的运算过程,

上述执行单元对上述消息使用上述结合秘密信息和上述随机数信息,实施按照上述第二安全运算过程的安全运算。

7、如权利要求1所述的安全处理装置,其特征在于,

上述第一生成单元进一步生成使用了上述秘密信息的、不对运算处理的结果造成影响的冗余信息,使用该冗余信息生成上述第二秘密信息生成式。

8、如权利要求1所述的安全处理装置,其特征在于,

上述存储单元存储有上述分割秘密信息和上述执行单元不使用的伪信息。

9、如权利要求1所述的安全处理装置,其特征在于,

上述秘密信息是用于生成数字签名的签名密钥,

上述安全运算是对上述消息实施数字签名的签名生成运算。

10、如权利要求9所述的安全处理装置,其特征在于,

上述签名生成处理是RSA(Rivest Shamir Adleman)签名生成处理。

11、如权利要求9所述的安全处理装置,其特征在于,

上述签名生成处理是利用椭圆曲线数字签名方式的签名处理。

12、如权利要求11所述的安全处理装置,其特征在于,

上述安全处理装置进一步具有生成随机数信息的随机数信息生成单元,

上述执行单元不直接利用上述随机数k,而是使用至少2个上述随机数信息,进行上述椭圆曲线数字签名方式中的计算定义体GF(p)上的椭圆曲线的位数q即基点P的随机数值k倍点的处理、和使用了定义体GF(q)上的k的逆数的值的处理。

13、如权利要求1所述的安全处理装置,其特征在于,

上述秘密信息是上述公开密钥密码的上述秘密密钥,

上述执行单元进行利用了公开密钥和秘密密钥的公开密钥密码系统的处理,作为上述安全运算。

14、如权利要求13所述的安全处理装置,其特征在于,

上述公开密钥密码是RSA密码。

15、如权利要求13所述的安全处理装置,其特征在于,

上述公开密钥密码是椭圆曲线密码。

16、如权利要求1所述的安全处理装置,其特征在于,

上述安全处理装置进一步包括:

取得单元,从外部取得上述第一生成单元的更新用数据;以及

更新单元,使用上述更新用数据,更新上述第一生成单元。

17、如权利要求1所述的安全处理装置,其特征在于,

上述安全处理装置进一步包括:

取得单元,从外部取得更新用的分割秘密信息;以及

更新单元,将上述存储单元中存储的分割秘密信息,更新为上述取得单元取得的更新用的分割秘密信息。

18(修改后)、一种用于安全处理装置的安全处理方法,能够得到与对消息实施了安全运算的情况相同的运算结果,该安全运算使用秘密信息,其特征在于,

上述安全处理装置具有存储单元,该存储单元存储有已预先将秘密信息至少分割为2个以上的分割秘密信息、第一秘密信息生成式和第一安全运算过程,在所述第一秘密信息生成式中作为自变量而输入上述分割秘密信息,所述第一秘密信息生成式根据上述分割秘密信息计算出上述秘密信息,所述第一安全运算过程示出使用了上述分割秘密信息的安全运算的过程,

上述安全处理方法包括:

结合秘密信息生成步骤,生成将至少2个上述分割秘密信息相互进行运算的结合秘密信息;

第一生成步骤,作为自变量而输入上述结合秘密信息,生成输出与上述第一秘密信息生成式相同的结果的第二秘密信息生成式;

第二生成步骤,基于上述第二秘密信息生成式中包含的算子,作为自变量而输入上述结合秘密信息,生成第二安全运算过程,该第二安全运算过程示出与上述第一安全运算过程等效的运算过程;以及

执行步骤,对上述消息实施按照上述第二安全运算过程的安全运算。

19(修改后)、一种用于安全处理装置的计算机程序,该安全处理装置能够得到与对消息实施了安全运算的情况相同的运算结果,该安全运算使用秘密信息,其特征在于,

上述安全处理装置具有存储单元,该存储单元存储有已预先将秘密信息至少分割为2个以上的分割秘密信息、第一秘密信息生成式和第一安全运算过程,在所述第一秘密信息生成式中作为自变量而输入上述分割秘密信息,所述第一秘密信息生成式根据上述分割秘密信息计算出上述秘密信息,所述第一安全运算过程示出使用了上述分割秘密信息的安全运算的过程,

上述计算机程序包括:

结合秘密信息生成步骤,生成将至少2个上述分割秘密信息相互进行运算的结合秘密信息;

第一生成步骤,作为自变量而输入上述结合秘密信息,生成输出与上述第一秘密信息生成式相同的结果的第二秘密信息生成式;

第二生成步骤,基于上述第二秘密信息生成式中包含的算子,作为自变量而输入上述结合秘密信息,生成第二安全运算过程,该第二安全运算过程示出与上述第一安全运算过程等效的运算过程;以及

执行步骤,对上述消息实施按照上述第二安全运算过程的安全运算。

20、一种记录介质,是计算机可读取的记录介质,其特征在于,记录有权利要求19记载的计算机程序。

21(修改后)、一种用于安全处理装置的集成电路,该安全处理装置能够得到与对消息实施了安全运算的情况相同的运算结果,该安全运算使用秘密信息,其特征在于,

上述安全处理装置具有存储单元,该存储单元存储有已预先将秘密信息至少分割为2个以上的分割秘密信息、第一秘密信息生成式和第一安全运算过程,在所述第一秘密信息生成式中作为自变量而输入上述分割秘密信息,所述第一秘密信息生成式根据上述分割秘密信息计算出上述秘密信息,所述第一安全运算过程示出使用了上述分割秘密信息的安全运算的过程;

上述集成电路具有:

结合秘密信息生成单元,生成将至少2个上述分割秘密信息相互进行运算的结合秘密信息;

第一生成单元,作为自变量而输入上述结合秘密信息,生成在运算上与上述第一秘密信息生成式等效的第二秘密信息生成式;

第二生成单元,基于上述第二秘密信息生成式中包含的算子,作为自变量而输入上述结合秘密信息,生成示出与上述第一安全运算过程等效的运算过程的第二安全运算过程;以及

执行单元,对上述消息实施按照上述第二安全运算过程的安全运算。

22、一种加密信息嵌入方法,将上述秘密信息加密后嵌入到进行使用了秘密信息的运算的安全处理装置中,其特征在于,包括:

秘密信息加密步骤,使用将上述秘密信息变换为很难分析的状态的加密装置,将上述秘密信息进行加密;以及

嵌入步骤,使用加密信息写入装置,将加密后的秘密信息嵌入到上述安全处理装置中。

23、如权利要求22所述的加密信息嵌入方法,其特征在于,

上述加密装置具有输入单元,该输入单元接受用于决定上述秘密信息的加密方法的参数作为输入,

上述秘密信息加密步骤包括:

上述输入单元接受上述参数的接受步骤;以及

用基于上述参数决定的加密方法,将上述秘密信息加密的加密步骤。

24、如权利要求23所述的加密信息嵌入方法,其特征在于,

上述参数是上述秘密信息的分割个数,

上述加密步骤包括分割步骤,该分割步骤根据上述分割个数,将上述秘密信息分割为至少2个分割秘密信息。

25、如权利要求24所述的加密信息嵌入方法,其特征在于,

上述加密步骤进一步包括式生成步骤,该式生成步骤基于上述分割个数,生成至少包含上述分割个数的项的第一秘密信息生成式,

上述分割步骤分割上述秘密信息,以便从上述第一秘密信息生成式计算出上述秘密信息。

26、如权利要求23所述的加密信息嵌入方法,其特征在于,

上述参数是第一秘密信息生成式,

上述加密步骤包括将上述秘密信息分割为至少2个分割秘密信息,以便从上述第一秘密信息生成式计算出上述秘密信息的步骤。

27、如权利要求22所述的加密信息嵌入方法,其特征在于,

上述秘密信息是从密钥发行机关发行的秘密密钥,

上述加密信息嵌入方法进一步具有:

上述密钥发行机关用密钥发行机关的秘密密钥加密上述秘密密钥的加密步骤;以及

上述加密装置用公开密钥对已加密了的上述密钥进行解密和验证的验证步骤,

上述秘密信息加密步骤将验证后的上述秘密密钥进行加密,

上述嵌入步骤包括:

将已利用上述加密装置加密后的上述加密信息变换为二进制数据的二进制变换步骤;以及

在安全处理装置中嵌入上述二进制数据的二进制嵌入步骤,所述安全处理装置具有使用上述加密信息对与使用了上述秘密信息的运算结果相同的结果进行运算的功能。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号