鉴别系统、鉴别方法、证明器件、验证器件及其程序和记录介质的利记博彩app

文档序号:7635517阅读:339来源:国知局
专利名称:鉴别系统、鉴别方法、证明器件、验证器件及其程序和记录介质的利记博彩app
技术领域
本发明涉及消息鉴别技术,并特别涉及用于证明和验证将预定信息存储在指定的或未指定的器件中的技术。
背景技术
用于鉴别将预定信息存储在指定的或未指定的器件中(例如,在诸如硬盘这样的存储器中)的技术称为消息鉴别技术。所述技术的特征是鉴别过程所需的通信量不取决于证明为存储的信息的量(信息量)。
下面将描述传统的消息鉴别技术的概要。证明器件和验证器件预先共享密钥k。其次,证明器件计算对于所保持的信息s具有固定长度的消息鉴别码M(s,k),并将消息鉴别码M(s,k)发送到验证器件。验证器件具有信息s的副本,并验证已从证明器件发送的消息鉴别码M(s,k)的正确性。
主要通过使用涉及公用钥密码学和散列函数的技术来设计消息鉴别码。非专利文献1描述消息鉴别码的配置方法的实例。
非专利文献1Tetsu Iwata,Kaoru Kurosawa,“OMACOne-Key CBCMAC”,LNCS 2887(2003),pp 129-153,Springer-Verlag。

发明内容
由本发明解决的问题在使用消息鉴别码的系统中,验证器件必须存储信息s的副本来将其验证,以便验证鉴别码的正确性。因而在所述系统中,问题出现在验证器件的存储容量的效率中。进一步地,在所述系统中,证明器件和验证器件必须在消息鉴别前共享密钥k。如果密钥k泄漏到外面,那么就不能保持系统安全。因此,在到证明器件和验证器件的密钥k的分布中,和在证明器件和验证器件中的密钥k的管理中,复杂的技术和配置对防止密钥k泄漏到第三方是必需的。换言之,使用消息鉴别码的系统也遭受关于便利和安全性的问题。
考虑到这一点来设计本发明。在其中验证器件验证是否将预定信息存储在证明器件中的技术中,本发明的目的为有效地使用验证器件的存储容量并改进便利和安全性。
解决问题的方式在本发明中,连接在证明器件上以致与证明器件通信的验证器件验证所保持的信息和给定的比较信息的相等性,将所述所保持的信息存储在验证器件中(“比较信息”和“所保持的信息”为位信息)。
因而,在第一存储部件中,验证器件首先存储具有取决于比较信息的内容的内容并且具有不取决于比较信息的信息量的信息量的验证信息和第一随机信息。进一步地,验证器件通过使用存储在第一存储部件中的第一随机信息,来生成在证明器件中生成鉴别信息的鉴别信息生成因子,并且验证器件将生成的鉴别信息生成因子传送到证明器件。
证明器件接收鉴别信息生成因子并通过使用鉴别信息生成因子和存储在第二存储部件中的所保持的信息,来生成具有取决于鉴别信息生成因子和所保持的信息的内容的内容并且具有不取决于所保持的信息的信息量的信息量的鉴别信息。其次,证明器件将鉴别信息传送到验证器件。
验证器件接收从证明器件传送的鉴别信息,并且验证器件的判定部分判定在鉴别信息与存储在第一存储部件中的验证信息和第一随机信息之间是否建立预定关系。这样,验证器件验证存储在证明器件中的所保持的信息是否与比较信息相同。
在所述情况下,对于验证,本发明的验证器件必须存储具有不取决于比较信息的信息量的信息量的验证信息,而不必存储比较信息。因而即使验证的所保持的信息存储在证明器件中并具有大的信息量,并且比较信息也具有大的信息量,验证器件所需的存储容量也没有显著地增加。进一步地,由于本发明,没有在证明器件和验证器件之间共享密钥,因此就有可能达到高水平的便利和安全性。
在本发明中,优选的是验证信息为如下取幂的算术结果所述取幂的基数为其中已定义构成交换半群(communicative semigroup)的运算的有限集的元素,并且取幂的指数为比较信息,将取幂定义在半群上;鉴别信息生成因子为如下取幂的算术结果所述取幂的基数为有限群的元素,并且取幂的指数为第一随机信息,将取幂定义在半群上;鉴别信息为如下取幂的算术结果所述取幂的基数为鉴别信息生成因子,并且取幂的指数为所保持的信息,将取幂定义在半群上;以及判定部分判定鉴别信息是否与如下取幂的算术结果相等所述取幂的基数为验证信息,并且取幂的指数为第一随机信息,将取幂定义在半群上。
所述配置的验证信息为如下取幂的算术结果所述取幂的基数为其中已定义构成交换半群的有限集的元素,并且取幂的指数为比较信息,将取幂定义在半群上。验证信息必需为定义在半群上的有限集的元素。因而验证信息的信息量与有限集的元素中的任何一个的信息量相等,而不管相应的比较信息的信息量。为此,有可能减少在验证器件中存储验证信息所需的存储容量。进一步地,由于在所述配置中不必在证明器件和验证器件之间共享密钥,因此有可能达到高水平的便利和安全性。
而且在本发明的优选配置中,验证器件和证明器件必须共享用于指定半群和有限集的元素的信息。然而,上述信息不必为秘密信息。即使上述信息泄漏给攻击者,也能保证鉴别系统的安全性。因而归因于上述信息在证明器件和验证器件之间的共享的便利和安全性的问题没有出现。
更优选的是鉴于半群,定义在半群上的有限集的阶难于计算。这是因为当攻击者可以计算定义在半群上的有限集的阶时,攻击者可以将计算的次序用作为用于非法生成通过验证的鉴别信息的信息。换言之,取幂的算术结果(所述取幂的基数为鉴别信息生成因子,而取幂的指数为所保持的信息,并且将所述取幂定义在半群上)与取幂的算术结果(所述取幂的基数为鉴别信息生成因子,而取幂的指数为所保持的信息+给定的整数×次序,并且将所述取幂定义在半群上)相等(冲突)。这意味知道次序的攻击者认识到,没有找出所保持的信息也可以通过查找“所保持的信息”+“给定的整数”ד次序”中的一个来生成在验证器件中通过验证的鉴别信息。所述信息起使攻击者能够有效搜索通过验证的鉴别信息的信息的作用。因而当攻击者知道次序时,本发明变得较不安全。为此,合乎需要的是半群的次序难于计算。
进一步地,在本发明中,优选的是验证信息为模幂的结果C(s’),所述模幂的模数为常数N,而模幂的基数为小于N的值g(优选地,值g不小于2并小于N),并且模幂的指数为比较信息s’;鉴别信息生成因子为如下模幂的结果R所述模幂的模数为常数N,而模幂的基数为值g,并且模幂的指数为第一随机信息r;鉴别信息为如下模幂的结果R(s)所述模幂的模数为N,而模幂的基数为鉴别信息生成因子R,并且模幂的指数为所保持的信息s;以及判定部分判定模幂的结果是否与鉴别信息R(s)相等,所述模幂的模数为N,而模幂的基数为验证信息C(s’),并且模幂的指数为第一随机信息r。
所述配置的验证信息为模幂结果C(s’),所述模幂的模数为N,而模幂的基数为小于N的值g,并且模幂的指数为比较信息s’。在所述情况下,验证信息必需为不小于0并不大于N-1的整数,而不管比较信息s’的信息量。这意味有可能抑制在验证器件中存储验证信息所需的存储容量。而且在所述配置中,由于不必在证明器件和验证器件之间共享密钥,因此有可能达到高水平的便利和安全性。进一步地,而且在所述配置中,必须由验证器件和证明器件来共享有关常数N和值g的信息。然而,即使上述信息泄漏给攻击者,也能保证鉴别系统的安全性。因此,归因于上述信息在证明器件和验证器件之间的共享的便利和安全性的问题没有出现。
更优选的是常数N为除可以判定为素数的数之外的自然数,并且难于将N因子分解为素数因子。当常数N为素数时,可以容易地由N-1的计算来确定用于模数为N(Z/NZ)*的剩余类环的乘法的次序。因而合乎需要的是常数N为除可以判定为素数的数之外的数。当常数N为合数(N=p·q,p和q为充分大的素数)时,模数为N的剩余类环为具有p·q-p-q+1的次序的乘法循环群。因而当易于将常数N因子分解为素数因子时,可以基于p和q满足N=p·q来确定用于模数为N的剩余类环的乘法的次序。相反地,众所周知,当次序为确定的并且可以冲突模幂结果时,有可能通过使用上述信息来将常数N因子分解为素数因子(例如,见G.Miller.Riemanann’s hypothesis and testsfor primality.Journal of Computer Systems Science,Vol.13,pages300-317,1976.等)。换言之,当常数N为合数时,次序的确定比N的素数因子分解更加困难(当N为两个素数的积的合数时,所述困难是相同的)。
因而合乎需要的是常数N为除可以判定为素数的数之外的自然数,并且难于将N因子分解为素数因子。在所述情况下,“可以判定为素数的数”意味可以通过使用由提出本申请而公知的素数测试方法来判定为“素数”的数,并且意味由提出本申请而公知为“素数”的数。
进一步地,在本发明中,常数N可以为三个或更多素数的积的合数。在所述情况下,即使攻击者可以将常数N因子分解为素数因子,攻击者也不能容易地计算用于模数为N的剩余类环的乘法的次序。从运算效率的观点,合乎需要的是N为除可以判定为素数的数之外的自然数,并且难于将N因子分解为素数因子(当N为合数时,建立N=p·q并且p和q为充分大的素数)。
况且,在本发明中,优选的是第一随机信息r具有从0≤r≤N·2v-1范围随机选取的值,其中v表示预定的自然数。当从所述范围随机选取第一随机信息r时,可以证明模幂的结果(所述模幂的模数为N,模幂的基数为值g,模幂的指数为第一随机信息r)具有与值[∈(Z/NZ)*](所述值从模数为N的剩余类环的乘法循环群的元素随机选取)的分布难区分的分布。这意味来自模幂的结果的第一随机信息r的确定与解决从乘法循环群的元素随机选取的值的离散对数问题同样困难,其中所述模幂的模数为N,模幂的基数为值g,而模幂的指数为第一随机信息r。换言之,只要第一随机信息r为从0≤r≤N·2v-1范围随机选取的值,就充分地难于从模幂运算结果来指定第一随机信息r。而且当从具有更高的上限的范围选取第一随机信息r时,没有改进安全性并且模幂运算的算术代价增加。
进一步地,在本发明中,优选的是为通过将比较信息分割为多个块而得到的每一第一分割信息来生成验证信息,通过使用每一第一分割信息来生成每一验证信息,并且通过使用鉴别信息生成因子和通过将存储在证明器件中的所保持的信息分割为多个块来得到的第二分割信息中的所有的块来生成鉴别信息。
在所述情况下,通过使用通过将存储在证明器件中的所保持的信息分割为多个块来得到的第二分割信息中的所有的块来生成鉴别信息。因而与通过使用所保持的信息本身的鉴别信息的生成比较,可以使用各种算术方法。因而在使用的算术方法中的一些中,可以高速生成鉴别信息。
在所述请况下,优选的是验证信息为如下取幂的算术结果所述取幂的基数为其中已定义构成交换半群的运算的有限集的元素,并且取幂的指数为第一分割信息,将取幂定义在半群上;鉴别信息生成因子为如下取幂的算术结果所述取幂的基数为有限群的元素,并且取幂的指数为第一随机信息,将取幂定义在半群上;鉴别信息为如下取幂的算术结果所述取幂的基数为鉴别信息生成因子,并且取幂的指数为使用第二分割信息中的所有的块来计算的并且具有比所保持的信息更小的信息量的值,将取幂定义在半群上;以及判定部分判定鉴别信息是否与如下取幂的算术结果相等所述取幂的基数为通过计算验证信息中的所有的块来得到的值,而取幂的指数为第一随机信息,将取幂定义在半群上。
鉴别信息为如下取幂的算术结果所述取幂的基数为鉴别信息生成因子,并且取幂的指数为使用第二分割信息中所有的块来计算的并且具有比所保持的信息更小的信息量的值,将取幂定义在半群上。取幂的算术代价随着指数的值而迅速增加。因而通过减少指数的值,可以明显地减少算术代价。由于指数具有使用第二分割信息中所有的块来计算的并且具有比所保持的信息更小的信息量的值,因此有可能显著地减少用于计算鉴别信息的取幂的代价。
进一步地,在本发明中,优选的是鉴别信息为如下取幂的算术结果所述取幂的指数为通过使用第二分割信息中所有的块和相应于在所保持的信息中的第二分割信息的位的位置并难于预先准备的信息来计算的值,所述值具有比所保持的信息更小的信息量,而取幂的基数为鉴别信息生成因子,并且将取幂定义在半群上。
通过将由使用第二分割信息中所有的块和相应于在所保持的信息中的第二分割信息的位的位置并难于预先准备的信息来计算的值作为指数,来生成鉴别信息。因而有可能防止没有所保持的信息并且不知道在所保持的信息中的每一第二分割信息的位的位置,但只知道每一分割信息的攻击者伪造通过验证器件的验证的鉴别信息。
进一步地,在本发明中,优选的是验证信息为模幂的结果Ci(s’),所述模幂的模数为N,而模幂的基数为小于N的值g,并且模幂的指数为第一分割信息si’;验证信息生成因子为如下模幂的结果R所述模幂的模数为N,而模幂的基数为值g,并且模幂的指数为第一随机信息r;鉴别信息为如下模幂的结果R(s)所述模幂的指数为通过求对于所有i的第二分割信息si与信息H(信息H的值为取决于相应于第二分割信息si的i和从验证器件传送的信息中的某种)的积的和得到的值,而模幂的基数为鉴别信息生成因子R,并且模幂的模数为N;以及判定部分判定鉴别信息R(s)是否与如下模幂的结果相等所述模幂的基数为值的积(所述值为相应于所有i,自乘到每一相应于Ci(s’)的信息H次幂的验证信息Ci(s’)),而模幂的指数为第一随机信息r,并且模幂的模数为N。在所述情况下,i表示表明在比较信息中的第一分割信息si’的位的位置和在所保持的信息中的第二分割信息si的位的位置。
鉴别信息为如下模幂的结果R(s)所述模幂的指数为通过求对于所有i的第二分割信息si与信息H(信息H的值为取决于相应于第二分割信息si的i和从验证器件传送的信息中的某种)的积的和得到的值,而模幂的基数为鉴别信息生成因子R,并且模幂的模数为N。在所述情况下,有可能防止没有所保持的信息并且不知道在所保持的信息中的每一第二分割信息的位置,但只知道每一分割信息的攻击者伪造通过在验证器件中的验证的鉴别信息。
更优选的是信息H为取决于对应于第二分割信息si的i和从验证器件传送的信息中的某种的单向函数值。
在所述请况下,有可能防止两个或更多H(每一H都相应于“从验证器件传送的信息中的某种”和“i”的配对中的两个或多个类型)为相同的值(冲突)。结果,有可能防止在验证器件中通过验证的鉴别信息从不正确的“从验证器件传送的信息中的某种”和不正确的“i”的配对来生成。因而改进验证的可靠性和安全性。
进一步地,在本发明中,验证器件可以由交互式证明来向证明器件证明,通过使用存储在验证器件中的第一随机信息来正确地生成鉴别信息生成因子。在所述情况下,验证器件由同证明器件的交互式证明来向证明器件证明,通过使用存储在验证器件中的第一随机信息来生成由证明器件接收的鉴别信息生成因子。证明器件由同验证器件的交互式证明来验证,是否通过使用存储在验证器件中的第一随机信息来生成鉴别信息生成因子。进一步地,当证明器件可以确认通过使用存储在验证器件中的第一随机信息来生成鉴别信息生成因子时,证明器件将鉴别信息传送到验证器件。
所述配置,如果攻击者的器件没有干预交互式证明的过程,那么就有可能防止在授权的证明器件和授权的验证器件之间干预的攻击者的器件冒充为证明器件到授权的验证器件和冒充为验证器件到授权的证明器件,并防止非法地导致验证器件错误地认可所保持的信息的存储。换言之,当没有使用这样的配置时,在授权的证明器件和授权的验证器件之间干预的攻击者的器件可以冒充为证明器件并从授权的验证器件接收鉴别信息生成因子,而且攻击者的器件可以冒充为验证器件并将鉴别信息生成因子传送到授权的证明器件,由此攻击者的器件就可以接收从授权的证明器件传送的鉴别信息。况且,通过将鉴别信息传送到授权的验证器件,攻击者的器件可以导致验证器件错误地认可攻击者的器件为在其中保留所保持的信息的器件。相比之下,在配置(在所述配置中,只当证明器件可以确认通过使用存储在验证器件中的第一随机信息来生成鉴别信息生成因子时,证明器件将鉴别信息传送到验证器件)中,如果攻击者的器件没有干预交互式证明的过程,那么攻击者的器件就难于冒充验证器件并从授权的鉴别器件接收鉴别信息。结果,有可能防止在授权的证明器件和授权的验证器件之间干预的攻击者的器件非法地导致验证器件错误地认可攻击者的器件保留所保持的信息。
进一步地,所述配置使防止授权的验证器件生成未授权的第一随机信息并防止非法操作(例如,假的验证日志的生成)中的某种为可能。
此外,在所述配置中,交互式证明的目标不是比较信息而是第一随机信息。因而即使当验证的所保持的信息具有大的数据的量并且比较信息具有大的数据的量时,也有可能抑制交互式证明所需的算术代价和通信数据的量。
进一步地,优选地进行包括所述交互式证明的处理如下首先,证明器件生成由如下取幂得到的算术值A所述取幂的基数为其中已定义构成交换半群的运算的有限集的元素g,而取幂的指数为第二随机信息a,将取幂定义在半群上。证明器件将算术值A传送到验证器件。验证器件接收算术值A并由取幂生成鉴别信息生成因子R,所述取幂的基数为有限集的元素g,而取幂的指数为第一随机信息r,将取幂定义在半群上。况且,验证器件由如下取幂生成算术值B所述取幂的基数为算术值A,取幂的指数为第一随机信息r,将取幂定义在半群上。验证信息将鉴别信息生成因子R和算术值B传送到证明器件。证明器件接收鉴别信息生成因子R和算术值B并判定算术值B是否与由取幂得到的算术结果相等,所述取幂的基数为由第二接收部分接收的鉴别信息生成因子,取幂的指数为第二随机信息a,将取幂定义在半群上。当所述算术结果和算术值B与对方相等时,证明器件将鉴别信息传送到验证器件。
如果攻击者的器件没有干预交互式证明的过程,那么所述配置使防止在授权的证明器件和授权的验证器件之间干预的攻击者的器件非法地导致验证器件错误地认可攻击者的器件保留所保持的信息就为可能。况且,在所述配置中,交互式证明的目标为第一随机信息r,从而抑制交互式证明所需的算数代价和通信数据的量。
进一步地,所述配置也使防止授权的验证器件生成未授权的第一随机信息和假的验证日志为可能。
此外,在所述配置中,交互式证明的目标不是比较信息而是第一随机信息。因而即使当验证的所保持的信息具有大的数据的量并且比较信息具有大的数据的量时,也有可能抑制交互式证明所需的算术代价和通信数据的量。
在所述配置中,当确认算术值B与由取幂(所述取幂的基数为鉴别信息生成因子R,取幂的指数为第二随机信息a,将取幂定义在半群上)得到的算术值相等时,更优选的是证明器件进一步地将第二随机信息a传送到验证器件。验证器件接收第二随机信息a并判定算术值A是否与由取幂得到的算术结果相等,所述取幂的基数为有限集的元素g,取幂的指数为第二随机信息a,将取幂定义在半群上。
通过添加这样的处理,有可能防止由不知道所保持的信息s但能够确定A并知道在半群上满足C(s)=gLAm的L和m的攻击者引导的欺诈。换言之,当这样的处理没有进行时,不知道所保持的信息s和比较信息s’但能够确定A并知道满足C(s’)=gLAm(定义在半群上的运算)的L和m的攻击者的器件可以从验证器件接收鉴别信息生成因子R和算术值B,计算RLBm(定义在半群上的运算),并将RLBm作为鉴别信息传送到验证器件。在所述情况下,由于满足RLBm=grLArm=(gLAm)r=C(s’),因此攻击者的器件可以导致验证器件错误地认可攻击者的器件保留所保持的信息s。另一方面,这样的攻击者不知道满足A=ga(定义在半群上的运算)的第二随机信息a。如果这样的攻击者知道第二随机信息a,那么攻击者就可以计算与攻击者不知道所保持的信息s和比较信息s’的事实矛盾的C(s)=gLAm=gL+a·m=gs’。为此,如上所述,通过添加用于判定是否满足A=ga(定义在半群上的运算)的处理或不通过使用由验证器件接收的第二随机信息a,可以防止这样的攻击者的欺诈。
合乎需要的是所述处理的每一取幂都在由在其中有限集的阶难于计算的半群来定义的求余运算上进行。这是因为当攻击者可以计算定义在半群上的有限集的阶时,攻击者可以将计算的次序用作为用于搜索满足A=ga的第二随机信息a的信息。
进一步地,在本发明中,算术值A为如下模幂的结果所述模幂的运算模数为常数N,模幂的基数为小于N的值g,而模幂的指数为第二随机信息a;鉴别信息生成因子为如下模幂的结果所述模幂的模数为N,模幂的基数为值g,模幂的指数为第一随机信息r;以及算术值B为如下模幂的结果所述模幂的模数为N,模幂的基数为算术值A,模幂的指数为第一随机信息r。况且,取幂(所述取幂的基数为由第二接收部分接收的鉴别信息生成因子R,取幂的指数为第二随机信息a,并将取幂定义在半群上)的算术结果为模幂(所述模幂的模数为N,模幂的基数为鉴别信息生成因子R,而模幂的指数为第二随机信息a)的结果。合乎需要的是常数N为除可以判定为素数的数之外的自然数,并难于将N因子分解为素数因子。进一步地,常数N可以为三个或更多素数的积的合数。
进一步地,更优选的是取幂(所述取幂的基数为有限集的元素g,而取幂的指数为第二随机信息a,并且将取幂定义在半群上)的算术结果为模幂(模幂的模数为N,而模幂的基数为有限集的元素g,并且模幂的指数为第二随机信息a)的结果。
此外,更优选的是第二随机信息a具有从0≤r≤N·2v-1范围随机选取的值,其中v表示预定的自然数。当如此选取第二随机信息a时,可以证明模幂的结果(所述模幂的模数为N,模幂的基数为值g,模幂的指数为第二随机信息a)具有与值[∈(Z/NZ)*](所述值从模数为N的剩余类环的乘法循环群的元素随机选取)的分布难区分的分布。这意味从模幂的结果中的第二随机信息a的确定与从模数为N的剩余类环的乘法循环群随机选取的值的离散对数问题的解决同样困难,其中所述模幂的模数为N,模幂的基数为值g,而模幂的指数为第二随机信息a。换言之,只要第二随机信息a为从0≤r≤N·2v-1范围随机选取的值,就充分地难于从上述的模幂运算结果指定第二随机信息a。而且当从具有更高的上限的范围选取第二随机信息a时,没有改进安全性并且模幂运算的算术代价增加。
发明效果根据本发明,有可能有效地使用验证器件的存储容量并在技术中改进便利和安全性,在所述技术中验证器件验证预定信息是否存储在证明器件中。


图1为根据第一实施例来说明证明器件(1)的硬件配置的结构框图;图2为根据第一实施例来说明验证器件(2)的硬件配置的结构框图;图3指出第一实施例的网络配置的实例;图4为根据第一实施例的验证器件(2)的功能框图(1);图5为根据第一实施例的证明器件(1)的功能框图;
图6为根据第一实施例的验证器件(2)的功能框图(2);图7指出第一实施例的处理流程;图8为根据第二实施例来说明第三方器件(3)的硬件配置的结构框图;图9指出第二实施例的网络配置的实例;图10为根据第二实施例的第三方器件(3)的功能框图;图11为根据第二实施例的验证器件(2)的功能框图;图12为根据第二实施例的证明器件(1)的功能框图;图13指出第二实施例的处理流程(1);图14指出第二实施例的处理流程(2);图15为根据第三实施例的第三方器件(3)的功能框图;图16为根据第三实施例的验证器件(2)的功能框图(1);图17为根据第三实施例的证明器件(1)的功能框图;图18为根据第三实施例的验证器件(2)的功能框图(2);图19指出第三实施例的处理流程(1);图20指出第三实施例的处理流程(2);图21为根据第四实施例的证明器件(1)的功能框图(1);图22为根据第四实施例的验证器件(2)的功能框图(1);图23为根据第四实施例的证明器件(1)的功能框图(2);图24为根据第四实施例的验证器件(2)的功能框图(2);图25为根据第四实施例的证明器件(1)的功能框图(3);图26指出第四实施例的处理流程(1);图27指出第四实施例的处理流程(2);图28指出第四实施例的处理流程(3);图29指出第四实施例的处理流程(4);图30为根据第五实施例的验证器件(2)的功能框图(1);图31为根据第五实施例的证明器件(1)的功能框图(1);图32为根据第五实施例的验证器件(2)的功能框图(2);图33为根据第五实施例的证明器件(1)的功能框图(2);图34为根据第五实施例的验证器件(2)的功能框图(3);图35指出第五实施例的处理流程(1);图36指出第五实施例的处理流程(2);
图37指出第五实施例的处理流程(3);图38为根据第六实施例的验证器件(2)的功能框图(1);图39为根据第六实施例的证明器件(1)的功能框图(1);图40为根据第六实施例的证明器件(1)的功能框图(2);图41为根据第六实施例的验证器件(2)的功能框图(2);图42指出第六实施例的处理流程(1);图43指出第六实施例的处理流程(2);和图44指出第六实施例的处理流程(3);附图标记说明1证明器件2验证器件3第三方器件141 鉴别信息生成部分142 c^生成部分143 随机数生成部分145 鉴别判定部分148 A生成部分160 第一判定部分241 验证信息生成部分242 随机数生成部分243 鉴别信息生成因子生成部分244 判定部分247 W生成部分248 z生成部分249 B生成部分250 交互式判定部分260 第二判定部分340 N生成部分341 g生成部分342 验证信息生成部分
具体实施例方式现在将参考附图来描述用于实施本发明的最佳方式。
下面将描述第一实施例的证明器件。
图1为根据第一实施例来说明证明器件(1)的硬件配置的结构框图。
如图1所示,证明器件(1)包括诸如键盘和鼠标这样的输入器件可以连接到的输入部件(11)、诸如液晶显示器这样的输出器件可以连接到的输出部件(12)、能够与证明器件(1)的外面通信的通信器件(例如,通信电缆、LAN卡、网络集线器、路由器、调制解调器等)可以连接到的通信部件(13)、CPU(中央处理器)(14)[可以包括高速缓冲存储器]、用作存储器的RAM(15)、ROM(16)、诸如硬盘、光盘和半导体存储器这样的外部存储器件(17)、和连接输入部件(11)、输出部件(12)、通信部件(13)、CPU(14)、RAM(15)、ROM(16)和外部存储器件(17)由此可以在其中交换数据的总线(18)。按照需要,证明器件(1)可以包括能够在诸如CD-ROM(只读光盘存储器)和DVD(数字万用光盘)这样的存储介质上读取/写入的器件(驱动器)。
证明器件(1)的外部存储器件(17)存储用于证明证明的预定信息s[所保持的信息]的存储所必须的程序[证明器件程序],并存储在程序的处理中所需的数据等。进一步地,将由所述程序的处理得到的数据等存储在RAM、外部存储器件等中。
明确地说,证明器件(1)的外部存储器件(17)[或ROM等]存储用于生成鉴别信息的程序和所述程序的处理所需的数据等(信息s等)。另外,将用于控制基于所述程序的处理的控制程序也存储在外部存储器件(17)等中。
为了解释的便利,在本说明书中,证明的信息s包括位串。不必说,特别当由计算机来实现证明器件(1)、验证器件和第三方器件(稍后将描述验证器件和第三方器件)时,在外部存储器件中将信息中的任何一种都存储为二进制位串。
在证明器件(1)中,将在RAM(15)中读取存储在外部存储器件(17)[或ROM等]中的程序和程序的处理所需的数据。CPU(14)执行程序并处理数据。结果,CPU(14)实现预定功能(鉴别信息生成部分和控制部分)。
下面将描述第一实施例的验证器件。
图2为根据第一实施例来说明验证器件(2)的硬件配置的结构框图。
如图2所示,验证器件(2)包括诸如键盘和鼠标这样的输入器件可以连接到的输入部件(21)、诸如液晶显示器这样的输出器件可以连接到的输出部件(22)、能够与验证器件(2)的外面通信的通信器件(例如,通信电缆、LAN卡、网络集线器、路由器、调制解调器等)可以连接到的通信部件(23)、CPU(中央处理器)(24)[可以包括高速缓冲存储器]、用作存储器的RAM(25)、ROM(26)、诸如硬盘、光盘和半导体存储器这样的外部存储器件(27)、和连接输入部件(21)、输出部件(22)、通信部件(23)、CPU(24)、RAM(25)、ROM(26)和外部存储器件(27)由此可以在其中交换数据的总线(28)。按照需要,验证器件(2)可以包括能够在诸如CD-ROM和DVD这样的存储介质上读取/写入的器件(驱动器)。
验证器件(2)的外部存储器件(27)存储用于验证信息s[所保持的信息]是否存储在证明器件(1)中所必须的程序[验证器件程序],并存储在程序的处理中所需的数据等。进一步地,将由所述程序的处理得到的数据存储在RAM、外部存储器件等中。
明确地说,验证器件(2)的外部存储器件(27)[或ROM等]存储用于生成验证信息的程序、用于生成鉴别信息生成因子的程序、用于生成随机数的程序、用于判定从证明器件接收的信息与存储在验证器件中的信息是否匹配的程序和所述程序的处理所需的数据等。另外,将用于控制基于所述程序的处理的控制程序也存储在外部存储器件(27)等中。
在验证器件(2)中,按照需要在RAM(25)中读取存储在外部存储器件(27)[或ROM等]中的程序和程序的处理所需的数据。CPU(24)执行所述程序并处理数据。结果,CPU(24)实现预定功能(验证信息生成部分、鉴别信息生成因子生成部分、随机数生成部分、判定部分和控制部分)。
下面将描述第一实施例的鉴别系统的网络配置。
图3指出第一实施例的鉴别系统的网络配置。
如图3所示,在第一实施例中,经由网络(5)来连接单个的证明器件(1)和单个的验证器件(2)以致相互通信。当然,虽然经由网络(5)来连接单个的证明器件(1)和单个的验证器件(2)以致相互通信,但是证明器件(1)的数量和验证器件(2)的数量不限于一个。可以经由网络(5)来连接两个或更多的证明器件(1)和两个或更多的验证器件(2)以致相互通信。然而,验证器件(2)的数量通常为一个(换言之,在多数情况中单个的验证器件(2)为足够的)。网络(5)的配置不是特别限定的,因而可以使用包括互联网、LAN(局域网)和对等网络在内的网络。
在第一实施例的网络配置中,不必总是保证在证明器件(1)和验证器件(2)之间的通信的机密性。例如,线路窃听等的可能性不可否认(在下列的实施例中相同)。
本发明的鉴别系统/方法的第一实施例说明基本的实施例并且可以不违反本发明的要点来扩展到各种实施例。下列的解释提到图4至7。在指出器件的功能框的图4至7中,在不同的功能框中由相同的参考数字表明的功能部件不是不同的部件。只是为解释而在不同的功能框中指出相同的功能部件。以相同的样式来说明其他实施例的功能框。
假定证明器件(1)的外部存储器件(17)存储证明为存储的信息s[所保持的信息]。进一步地,假定验证器件(2)的外部存储器件(27)也预先存储信息s[比较信息s’]。为了解释的便利,在实施例中将比较信息s’提到为“s”。然而,“s”没有意味比较信息和所保持的信息总是与对方对等的。
况且,假定与在第一实施例的鉴别系统中共享的参数一样,将充分大的数N和小于N的数g(优选地,数g不小于2并小于N)存储在证明器件(1)的外部存储器件(17)和验证器件(2)的外部存储器件(27)中。如上所述,当第三方知道用于模数为N的剩余类环的乘法的次序时,鉴别系统变得较不安全。进一步地,如上所述,当N无疑为素数时,易于确定用于模数为N的剩余类环的乘法的次序。当N为合数时,用于模数为N的剩余类环的乘法的次序的确定比N的素数因子分解更加困难(当N为两个素数的积的合数时,困难是相同的)。因此,在安全性的观点中,合乎需要的是N为除可以判定为素数的数之外的自然数,并且难于将N因子分解为素数因子。例如,N为作为难于因子分解到素数的合数的RSA模数[N=p·q(p和q为素数),(p-1)/2和(q-1)/2也为素数],或者N为不能判定是否为素数的自然数。进一步地,N可以为接近于2的次幂的数,例如,表示为2m-1的数(梅森数)。在将这样的N用作为模数的情况下,可以通过将诸如2m换为1来计算余数。可以由在普通的CPU中的移位操作或位的重排来进行这样的计算。因而,有可能达到高速的求余的计算。也可以由概率算法来有效地生成这样的N。由于难于素数因子分解的数的表为公知的,因此可以从所述表选取接近于2的次幂的N。
进一步地,合乎需要的是g与N互素。这是因为当g不与N互素并且攻击者知道所述信息时,攻击者可以将有关g的信息用作为用于N的素数因子分解的信息(例如,尝试来确认g的除数与N的除数是否相等)。
况且,假定将预定的自然数v(安全性参数)存储在验证器件(2)的外部存储器件(27)中。
首先,验证器件(2)的控制部分(290)从外部存储器件(27)读取N、g、v和信息s,并将其存储在RAM(25)的对应的预定存储区中[见图4]。此后,“从RAM读取......”意味“从其中已将......存储在RAM中的预定存储区读取......”。
验证器件(2)的验证器件生成部分(241)从RAM(25)中读取g、N和信息s,根据公式(1)来进行运算,并将算术结果C(s)[验证信息]存储在RAM(25)的预定存储区中(步骤S1)[见图4]。在所述情况下,位串的信息s等同于自然数的二进制计数法。
C(s)=gsmod N(1)其次,验证器件(2)的控制部分(290)删除存储在外部存储器件(27)中的信息s(步骤S2)[见图4]。在所述情况下,删除意味公开其中存储目标信息的存储区,例如,在存储区中允许重写(就是说,存储新信息)或用空值重写存储区。
之后,验证器件(2)的随机数生成部分(242)从RAM(25)读取v,生成不大于22v的随机数r[第一随机信息],并将随机数r存储在RAM(25)的预定存储区中(步骤S3)[见图4]。随机数生成部分(242)可以从0≤r≤N·2v-1的范围生成随机数r。这是因为,如上所述,从所述范围选取随机数r的配置在安全性和算术代价的兼容性的观点中为合乎需要的。进一步地,只要可以随机选取值,r就不必总是随机数。虽然在第一实施例中随机数生成部分(242)将随机数r生成为第一随机信息,但是可以在外部存储器件(27)中将预定值存储为第一随机信息,并且可以从外部存储器件(27)读取所述值。在所述情况下,在安全性的观点中必须将预定值对验证器件(2)的外面隐藏。
其次,验证器件(2)的鉴别信息生成因子生成部分(243)从RAM(25)读取g、N和r,根据公式(2)进行运算,并将算术结果R存储在RAM(25)的预定存储区中(步骤S4)[见图4]。
R=grmod N(2)之后,根据验证器件(2)的控制部分(290)的控制,通信部件(23)将在步骤4中得到并从RAM(25)读取的鉴别信息生成因子R传送到证明器件(1)(步骤S5)[见图4]。
在验证器件(2)的控制部分(290)的控制下,将在步骤S1、S3和S4中得到的验证信息C(s)、随机数r和鉴别信息生成因子R存储在外部存储器件(27)中。
其次,根据证明器件(1)的控制部分(190)的控制,通信部件(13)接收在步骤S5中传送的鉴别信息生成因子R,并且控制部分(190)将鉴别信息生成因子R存储在外部存储器件(17)中(步骤S6)[见图5]。
之后,证明器件(1)的控制部分(190)从外部存储器件(17)读取N、信息s和鉴别信息生成因子R,并将其存储在RAM(15)的对应的预定存储区中[见图5]。
其次,证明器件(1)的鉴别信息生成部分(141)从RAM(15)读取N、信息s和鉴别信息生成因子R,根据公式(3)进行运算,并将算术结果R(s)[鉴别信息]存储在RAM(15)的预定存储区中(步骤S7)[见图5]。
R(s)=Rsmod N(3)之后,根据证明器件(1)的控制部分(190)的控制,通信部件(13)将从RAM(15)读取的鉴别信息R(s)(在步骤S7中得到的)传送到验证器件(2)(步骤S8)[见图5]。
其次,根据验证器件(2)的控制部分(290)的控制,通信部件(23)接收在步骤S8中传送的鉴别信息R(s),并且控制部分(290)将鉴别信息R(s)存储在外部存储器件(27)中(步骤S9)[见图6]。
之后,验证器件(2)的控制部分(290)从外部存储器件(27)读取N、随机数r、鉴别信息R(s)和验证信息C(s),并将其存储在RAM(25)的对应的预定存储区中[见图6]。
其次,验证器件(2)的判定部分(244)从RAM(25)读取N、随机数r、鉴别信息R(s)和验证信息C(s),并判定由公式(4)表达的关系是否建立(步骤S10)[见图6]。当判定部分(244)判定所述关系为建立的时,将表明关系为建立的预定信息α(例如,值α=1)存储在RAM(25)的预定存储区中(步骤S11)。当判定部分(244)判定关系没有建立时,将表明关系为没有建立的预定信息α(例如,值α=0)存储在RAM(25)的预定存储区中(步骤S12)。
R(s)=C(s)rmod N(4)在所述情况下,公式(4)的关系的建立意味证明器件(1)存储信息s。当公式(4)的关系没有建立时,证明器件(1)不必存储信息s。
如上所述,验证器件(2)不存储信息s就可以鉴别证明器件(1)是否存储信息s。
现在下面将提到图8至14来描述本发明的第二实施例。
在第一实施例中,假定将大数N预先存储在证明器件(1)的外部存储器件(17)和验证器件(2)的外部存储器件(27)中。N为除可以判定为素数的数之外的自然数,并且难于将N因子分解为素数因子。
在第二实施例中,在本发明中描述的实施例中说明的鉴别系统/方法中将N生成来保证高水平的安全性。N不总是由单个的方法来生成,而可以由各种的方法来生成。在第二实施例中,N由第三方器件(3)来生成。第三方器件(3)不必总是物理上分离的,而可以将其实现为在证明器件(1)和/或验证器件(2)中存在的模块。
在第二实施例中,由相同的参考数字来表明与第一实施例的功能和处理相同的功能和处理,而省略在其中的解释。
第二实施例的证明器件(1)与第一实施例的证明器件(1)相同,因而省略在其中的解释。

与第一实施例不同,在第二实施例中的验证器件(2)的外部存储器件(27)[或ROM等]不需要用于生成验证信息的程序。
在验证器件(2)中,按照需要在RAM(25)中读取存储在外部存储器件(27)[或ROM等]中的程序和程序的处理所需的数据。CPU(24)执行程序并处理数据。结果,CPU(24)实现预定功能(鉴别信息生成因子生成部分、随机数生成部分、判定部分和控制部分)。
下面将描述第二实施例的第三方器件。
图8为根据第二实施例来说明第三方器件(3)的硬件配置的结构框图。
如图8所示,第三方器件(3)包括诸如键盘和鼠标这样的输入器件可以连接到的输入部件(31)、诸如液晶显示器这样的输出器件可以连接到的输出部件(32)、能够与第三方器件(3)的外面通信的通信器件(例如,通信电缆、LAN卡、网络集线器、路由器、调制解调器等)可以连接到的通信部件(33)、CPU(中央处理器)(34)[可以包括高速缓冲存储器]、用作存储器的RAM(35)、ROM(36)、诸如硬盘、光盘和半导体存储器这样的外部存储器件(37)、和连接输入部件(31)、输出部件(32)、通信部件(33)、CPU(34)、RAM(35)、ROM(36)和外部存储器件(37)由此可以在其中交换数据的总线(38)。按照需要,第三方器件(3)可以包括能够在诸如CD-ROM和DVD这样的存储介质上读取/写入的器件(驱动器)。
第三方器件(3)的外部存储器件(37)存储用于生成N的程序、用于生成g的程序、用于生成验证信息的程序和程序的处理所需的数据等(信息s)。另外,将用于控制基于所述程序的处理的控制程序也存储在外部存储器件(37)等中。将由所述程序的处理得到的数据存储在RAM、外部存储器件等中。
在第三方器件(3)中,按照需要在RAM(35)中读取存储在外部存储器件(37)[或ROM等]中的程序和所述程序的处理所需的数据。CPU(34)执行程序并处理数据。结果,CPU(34)实现预定功能(N生成部分、g生成部分、验证信息生成部分和控制部分)。
下面将描述第二实施例的鉴别系统的网络配置。
图9指出第二实施例的鉴别系统的网络配置。
如图9所示,在第二实施例中,经由网络(5)来连接单个的证明器件(1)、单个的验证器件(2)和单个的第三方器件(3)以致相互通信。第三方器件(3)的数量不限于一个。然而,在多个证明器件存在的情况下,如果将与存储在证明器件中的信息(所保持的信息)相同的信息(比较信息)存储在第三方器件中,那么可以生成相应于证明器件的验证信息。因而,单个的第三方器件通常为足够的。
假定将信息s[比较信息]存储在第三方器件(3)的外部存储器件(37)中。况且,假定将预定的自然数v存储在验证器件(2)的外部存储器件(27)中。
首先,第三方器件(3)的控制部分(390)从外部存储器件(37)读取信息s,并将信息s存储在RAM(35)的预定存储区中[见图10]。
第三方器件(3)的N生成部分(340)生成数N。N为除可以判定为素数的数之外的自然数,并且难于将N因子分解为素数因子。N生成部分(340)将N存储在RAM(35)的预定存储区中(步骤S0t)[见图10]。当N为前述的RSA模数时,由(p-1)/2和(q-1)/2为素数,其中p和q表示素数的配对,然后计算N=p·q以致生成N。这种p和q为无限存在的并且可以由概率算法有效地计算N。
例如,可以由通过证明器件和验证器件的处理器执行的程序模块来确定N,以替代通过使用第三方器件来确定N。作为这样的方法的实例,多方协议为可用的(见文献1)。根据所述方法,参与用于确定的N的计算的器件中的任何一种不能将N因子分解为素数因子,并且有可能生成满足需求的随机的N。
(文献1)J.Algesheimer,J.Camenish and V.Shoup,“Efficient ComputationModulo a Shared Secret with Application to the Generation of SharedSafe-Prime Products”,CRYPTO 2002,LNCS 2442,pp.417-432,2002,Springer-Yerlag.
进一步地,为使N难于因子分解为素数因子,可以生成诸如表达为2m-1的N(梅森数)这样的接近于2的次幂的数。可以由概率算法有效地生成N。由于难于将其因子分解为素数因子的数的表为公知的,因此可以从所述表来选取接近于2的次幂的N。
之后,第三方器件(3)的g生成部分(341)从RAM(35)读取N,生成小于N的正整数g,并将g存储在RAM(35)的预定存储区(步骤S1t)[见图10]。
其次,第三方器件(3)的验证信息生成部分(342)从RAM(35)读取g、N和信息s,根据公式(1)来进行运算,并将算术结果C(s)[验证信息]存储在RAM(35)的预定存储区(步骤S2t)[见图10]。
之后,根据第三方器件(3)的控制部分(390)的控制,通信部件(33)将从RAM(35)读取的N、g和验证信息C(s)(在步骤S0t、S1t和S2t中得到的)传送到验证器件(2)(步骤S3t)[见图10]。
其次,第三方器件(3)的控制部分(390)按照需要将存储在外部存储器件(37)中的信息s删除(步骤S4t)。
根据验证器件(2)的控制部分(290)的控制,通信部件(23)接收在步骤S3t中传送的N、g和验证信息C(s),并且控制部分(290)将N、g和验证信息C(s)存储在外部存储器件(27)中(步骤S3v)。
跟随步骤S3v的步骤S3和S4与第一实施例的处理相同,因而省略在其中的解释。
在第一实施例中的步骤S5的处理中,验证器件(2)将鉴别信息生成因子R传送到证明器件(1),但在第二实施例中,除了鉴别信息生成因子R,还将N和g传送到证明器件(1)(步骤S5’)[见图11]。
在第一实施例中的步骤S6的处理中,证明器件(1)从验证器件(2)接收鉴别信息生成因子R,但在第二实施例中,除了鉴别信息生成因子R,还从验证器件(2)接收N和g(步骤S6’)[见图12]。
跟随步骤S6’的步骤S7至S12与第一实施例的处理相同,因而省略在其中的解释。
现在下面将提到图15至20来描述本发明的第三实施例。
第三实施例将描述用于增加在第一实施例和第二实施例中的计算效率的技术。用于增加计算效率的技术可应用于第一实施例和第二实施例中的两者。为在第三实施例中的解释的便利,下面将讨论在其中将用于增加计算效率的技术应用于第二实施例的实例。
将信息s分割为多个信息的块,以便增加计算效率。在第三实施例中,将描述信息的分割的块的实例。将表示为位串的信息s分割为k块分割信息s0,s1,...,sk-1,并且将信息s表达为k块分割信息s0,s1,...,sk-1的位串的组合。换言之,将信息s表达为s=s0|s1|...|sk-1。在第三实施例中,将除数k的值和对于i=0,1,2,...,k-1的si的位长预先存储在证明器件(1)、验证器件(2)和第三方器件(3)的外部存储器件中。当然,可以在诸如第三方器件(3)中随机确定所述值和位长,然后将值和位长传送到验证器件(2)和证明器件(1)。可以随意地改变设计。
进一步地,为了效率,可以将分割数k设置为预定的固定值或者由相等地分割s的位长来得到si的位长,以致可以确定协议。
在第三实施例中,由相同的参考数字来表明与第二实施例相同的功能和处理,而省略在其中的解释。在下文中,信息s为对于k块分割信息s0,s1,...,sk-1的类属名。
第三实施例的证明器件(1)与第一实施例的证明器件(1)相同,因而省略在其中的解释。
第三实施例的验证器件(2)与第二实施例的验证器件(2)相同,因而省略在其中的解释。
第三实施例的第三方器件(3)与第二实施例的第三方器件(3)相同,因而省略在其中的解释。
将v设置为预定的自然数。假定将v存储在验证器件(2)的外部存储器件(27)中。进一步地,H(i,u,R)为预定函数。例如,可以设置H(i,u,R)=ui,可以设置H(i,u,R)=uimod E(优选地,E为大于2v的素数),并且可以使用诸如SHA-1这样的散列函数。况且,可以将不同的函数提供为对于每个i其中至少u和R中的一个为变量的H(i,u,R)(例如,对于i=1设置H(i,u,R)=u,对于i=2设置H(i,u,R)=ui+R)。另外,只要取决于i和至少u和R中的一个来确定函数值,H(i,u,R)就可以为任何函数。
在安全性的观点中,合乎需要的是函数H(i,u,R)为满足下列条件的函数H(i,X)(X表示至少u和R中的一个)。这是因为当使用满足下列条件的函数H(i,X)时,有可能证明只有可以正确得到相应k块分割信息s0,s1,...,sk-1中的全部的H(i,u,R)的用户才可以通过协议的验证。
(1)设置j=0。
(2)随机选取X并且对于i=0,1,...,k-1设置ai+1,j+1=H(i,X)。
(3)设置j=j+1并且当不满足j>k-1时,过程返回到(2)。
(4)在j>k-1的情况下,有高的概率的是矩阵(ai+1,j+1)(i=0,1,...,k-1,j=0,1,...,k-1)为非退化的。
散列函数和上述的H(i,u,R)=uimod E为满足所述条件的函数(例如,见“H.Anton and C.Rorres.Elementary Linear Algebra with Applications.9th ed.,John Wiley & Sons,2005”等)。因而在安全性的观点中,合乎需要的是使用散列函数或上述的H(i,u,R)=uimod E。
进一步地,如上所述,当H(i,u,R)为单向函数时,可以避免函数值的冲突,并提高验证的可靠性和安全性。
假定将信息s[比较信息]存储在第三方器件(3)的外部存储器件(37)中。
步骤S0t和S1t与第二实施例的处理相同,因而省略在其中的解释。
在步骤S1t之后,第三方器件(3)的验证信息生成部分(342)从RAM(35)读取g、N和k块分割信息s0,s1,...,sk-1[通过将比较信息分割为多个块来得到第一分割信息][在RAM(35)中预先从外部存储器件(37)读取所述信息],对于分割信息si中的每一个根据公式(5)来进行运算,并将算术结果Ci(s)={Ci(s)}i=0,1,2,...,k-1[验证信息]存储在RAM(35)的预定存储区中(步骤S2a)[见图15]。位串si等同于自然数的二进制计数法。
Ci(s)=gsimodN---(5)]]>其次,根据第三方器件(3)的控制部分(390)的控制,通信部件(33)将从RAM(35)读取的N、g和验证信息Ci(s)={Ci(s)}i=0,1,2,...,k-1(在步骤S0t、S1t和S2a中得到)传送到验证器件(2)(步骤S3a)[见图15]。
步骤S4t与第二实施例的步骤S4t相同,因而省略在其中的解释。
根据验证器件(2)的控制部分(290)的控制,通信部件(23)接收在步骤S3a中传送的N、g和验证信息Ci(s)={Ci(s)}i=0,1,2,...,k-1,并且通信部件(23)将N、g和验证信息Ci(s)存储在外部存储器件(27)中(步骤S3va)[见图16]。
跟随步骤S3va的步骤S3和S4与第一实施例的处理相同,因而省略在其中的解释。
在步骤S4之后,验证器件(2)的随机数生成部分(242)从RAM(25)读取v(在RAM(25)中预先从外部存储器件(27)读取所述信息),生成不大于v位的随机数u,并将随机数u存储在RAM(25)的预定存储区中(步骤S4a)[见图16]。可以将预定值存储为相应于在外部存储器件(27)中的随机数u并从外部存储器件(27)读取的值。在所述情况下,在安全性的观点中必须将相应于随机数u的预定值对验证器件(2)的外面隐藏。
在第二实施例中的步骤S5’的处理中,将鉴别信息生成因子R、N和g传送到证明器件(1),但在第三实施例中,除了鉴别信息生成因子R、N和g,还将随机数u传送到证明器件(1)(步骤S5a)[见图16]。
在第二实施例中的步骤S6’的处理中,证明器件(1)从验证器件(2)接收鉴别信息生成因子R、N和g,但在第三实施例中,除了鉴别信息生成因子R、N和g,还从验证器件(2)接收随机数u(步骤S6a)[见图17]。
在第一实施例(第二实施例)中的步骤S7的处理中,根据公式(3)来生成鉴别信息R(s),但在第三实施例中,进行下列处理证明器件(1)的验证信息生成部分(141)从RAM(15)读取N、k块分割信息s0,s1,...,sk-1[通过将所保持的信息分割为多个块来得到的第二分割信息]、鉴别信息生成因子R和随机数u(在RAM(15)中预先从外部存储器件(17)读取所述信息),根据公式(6)来进行运算,并将算术结果R(s)[鉴别信息]存储在RAM(15)的预定存储区中(步骤S7a)[见图17]。
R(s)=RΣi=0k-1siH(i,u,R)modN---(6)]]>由公式(6)计算的R(s)为“如下模幂的结果所述模幂的指数为通过求对于所有i的第二分割信息si与信息H(信息H的值为取决于相应于第二分割信息si的i和从验证器件传送的信息中的某种)的积的和得到的值,而模幂的基数为鉴别信息生成因子R,并且模幂的模数为N”的实例。在公式(6)中,“从验证器件(2)传送的信息中的某种”至少为u和R中的一个,并且“信息H”为至少取决于u和R中的一个和i来确定的函数值H(i,u,R)。然而,“从验证器件(2)传送的信息中的某种”可以包括从验证器件(2)传送的除u和R之外的信息。进一步地,可以由证明器件(1)和验证器件(2)来共享在其中“从验证器件(2)传送的信息中的某种”和i匹配“信息H”的表,并且鉴别信息生成部分(141)可以根据表来确定“信息H”。
在所述情况下,公式(6)的指数的位长显著地小于所保持的信息s的全部的位长,并且公式(6)的算术代价大约为第一实施例的公式(3)的算术代价的k分之一。况且,通过适当地选取诸如k这样的参数,将使全部系统的算术代价低于使用诸如SHA-1这样的散列函数的公知的消息鉴别码的鉴别方法的算术代价。
跟随步骤S7a的步骤S8和S9与第一实施例(第二实施例)的处理相同,因而省略在其中的解释。
在第一实施例(第二实施例)中的步骤S10的处理中,根据公式(4)来做判定,但在第三实施例中,做下列的判定验证器件(2)的判定部分(244)从RAM(25)读取N、随机数r、随机数u、鉴别信息生成因子R、鉴别信息R(s)和验证信息C(s)(在RAM(25)中预先从外部存储器件(27)读取所述信息),判定部分(244)判定公式(7)的关系是否建立(步骤S10a)[见图18]。
R(s)=(Πi=0k-1Ci(s)H(i,u,R))rmodN---(7)]]>跟随步骤S10a的步骤S11和S12的处理与第一实施例(第二实施例)的处理相同,因而省略在其中的解释。
现在下面将提到图21至29来描述本发明的第四实施例。
第四实施例将描述用于改进在第一、第二和第三实施例中的安全性的技术。虽然用于改进安全性的技术可应用于第一、第二和第三实施例中的全部。然而为了解释的便利,在第四实施例的实例中将用于改进安全性的技术应用于第三实施例。
在第一、第二和第三实施例中,将传送鉴别信息生成因子R的验证器件认作为可靠的验证器件。然而,如上所述,不可否认的是验证器件可以根据未受权的方法来生成鉴别信息生成因子R,或者冒充为验证器件的攻击者的器件可以进入本发明的系统。提起所述情况,证明器件通过交互式证明来鉴别直接与证明器件通信的验证器件是否的确已基于预定处理来生成鉴别信息生成因子R。第四实施例将描述在其中授权验证器件使用鉴于随机数r的零知识交互式证明的实例。零知识证明的各种配置方法为公知的。在第四实施例中说明的配置为零知识交互式证明的实例。例如,可以配置零知识证明使用在椭圆曲线上的纯量乘法,以替代在第四实施例中描述的零知识证明的配置。
在安全性的观点中,合乎需要的是使用在其中数学上证明零知识的交互式证明。这是因为交互式证明可以保证将随机数r对想要获取随机数r的内容的攻击者隐藏的安全性。在所述情况下,“数学上证明用于向验证器件证明证明器件存储r的交互式证明的零知识”,由此证明当给定的证明器件根据交互式证明的标准来促使响应并且验证器件判定证明器件为可接收的时,可以修改验证器件来构成输出r的器件(例如,见“O.Goldreich Foundations ofCryptography,volume I.Cambridge University Press,2001”等)。在这样的交互式证明的情况下,只有知道r的人才可以根据标准来促使回复。将交互式证明的所述特征称为知识有效性。
如上所述,在安全性的观点下,合乎需要的是由零知识证明来证明知识。为了效率,具有目前没有完全在数学上证明的零知识的诸如c^(稍后描述)这样的部件可以由使用散列函数的位提交来替换。
在第四实施例中,由相同的参考数字来表明与第三实施例的功能和处理相同的功能和处理,而省略在其中的解释。
证明器件(1)的外部存储器件(17)[或ROM等]根据第四实施例来存储用于生成鉴别信息的程序、用于生成c^(稍后描述的)的程序、用于通过交互式证明来鉴别在验证器件中是否正确生成鉴别信息生成因子的程序和所述程序的处理所需的数据等(信息s等)。另外,将用于控制基于所述程序的处理的控制程序也存储在外部存储器件(17)等中。
在第四实施例的证明器件(1)中,按照需要在RAM(15)中读取存储在外部存储器件(17)[或ROM等]中程序和程序的处理所需的数据。CPU(14)执行所述程序并处理数据。结果,CPU(14)实现预定功能(c^生成部分、鉴别判定部分、鉴别信息生成部分和控制部分)。
验证器件(2)的外部存储器件(27)[或ROM等]根据第四实施例来存储用于生成鉴别信息生成因子的程序、用于生成随机数的程序、用于生成W和z(稍后描述的)的程序、用于通过交互式证明来证明在验证器件中正确生成鉴别信息生成因子的程序、用于判定从证明器件接收的信息是否与存储在验证器件中的信息匹配的程序和所述程序的处理所需的数据等。另外,将用于控制基于所述程序的处理的控制程序也存储在外部存储器件(27)等中。
在验证器件(2)中,按照需要在RAM(25)中读取存储在外部存储器件(27)[或ROM等]中程序和程序的处理所需的数据。CPU(24)执行所述程序并处理数据。结果,CPU(24)实现预定功能(鉴别信息生成因子生成部分、随机数生成部分、W生成部分、z生成部分、交互式判定部分、判定部分和控制部分)。
第四实施例的第三方器件(3)与第二实施例的第三方器件(3)相同,因而省略在其中的解释。
将t设置为预定的自然数(小于N)。假定将t存储在证明器件(1)的外部存储器件(17)和验证器件(2)的外部存储器件(27)中。进一步地,事先确定与第三实施例的函数H(i,u,R)相同的函数H(i,u,R)。例如,可以设置H(i,u,R)=ui或者可以使用诸如SHA-1这样的散列函数。
在第三实施例中描述的步骤S6a的处理和步骤S7a的处理之间进行在第四实施例中的交互式证明。
因而省略步骤S0t至S6a和步骤S7a至S12的解释,并且下面将描述交互式证明的处理。
首先,在步骤S6a的处理之后,证明器件(1)的控制部分(190)从外部存储器件(17)读取g、t和N,并将其存储在RAM(15)的预定存储区中。
证明器件(1)的随机数生成部分(143)从RAM(15)读取t,生成不小于0并小于t的随机数c和与N互素、不小于0并小于N的随机数ξ,并将随机数c和随机数ξ存储在RAM(15)的预定存储区中(步骤S611)[见图12]。况且,可以生成不小于0并不大于2t-1的随机数c。
其次,证明器件(1)的c^生成部分(142)从RAM(15)读取N、g、t、随机数c和随机数ξ,根据公式(8)来进行运算,并将算术结果c^存储在RAM(15)的预定存储区中(步骤S612)[见图21]。
c^=gcξtmodN---(8)]]>之后,根据证明器件(1)的控制部分(190)的控制,通信部件(13)将从RAM(15)读取的c^(在步骤S612中得到的)传送到验证器件(2)(步骤S613)[见图21]。
在证明器件(1)的控制部分(190)的控制下,将在步骤S611中得到的随机数c和随机数ξ存储在外部存储器件(17)中。
其次,根据验证器件(2)的控制部分(290)的控制,通信部件(23)接收在步骤S613中传送的c^并将c^存储在外部存储器件(27)中(步骤S614)[见图22]。
之后,验证器件(2)的控制部分(290)从外部存储器件(27)读取N和g,并将N和g存储在RAM(25)的对应的预定存储区中[见图22]。
其次,验证器件(2)的随机数生成部分(242)从RAM(25)读取N,生成不小于0并小于N的随机数w,并将随机数w存储在RAM(25)的预定存储区中(步骤S615)[见图22]。可以生成不小于0并不大于N·23t-1的随机数w。如稍后将描述的,验证器件(2)将z=c·r+w传送到证明器件(1)(步骤S623)。当选取不小于0并不大于N·23t-1的随机数w时,无论使用任何一种方法来提供c和r,都可以证明z=c·r+w的分布和在所述范围中生成的随机数w’的分布为难区分的。换言之,当从所述范围选取w时,对攻击者而言充分地难于从z=c·r+w来估计r,保证协议的安全性。
其次,验证器件(2)的W生成部分(247)从RAM(25)读取N、g和随机数w,根据公式(9)来进行运算,并将算术结果W存储在RAM(25)的预定存储区中(步骤S616)[见图22]。
W=gwmod N(9)之后,根据验证器件(2)的控制部分(290)的控制,通信部件(23)将在步骤S616中得到并从RAM(25)读取的W传送到证明器件(1)(步骤S617)[见图22]。
在验证器件(2)的控制部分(290)的控制下,将在步骤S615中得到随机数w存储在外部存储器件(27)中。
其次,根据证明器件(1)的控制部分(190)的控制,通信部件(13)接收在步骤S617中传送的W并将W存储在外部存储器件(17)中(步骤S618)[见图23]。
之后,证明器件(1)的控制部分(190)从外部存储器件(17)读取随机数c和随机数ξ,并将随机数存储在RAM(15)的对应的预定存储区中。其次,根据证明器件(1)的控制部分(190)的控制,通信部件(13)将从RAM(15)读取的随机数c和随机数ξ传送到验证器件(2)(步骤S619)[见图23]。
之后,根据验证器件(2)的控制部分(290)的控制,通信部件(23)接收在步骤S619中传送的随机数c和随机数ξ,并将随机数c和随机数ξ存储在外部存储器件(27)中(步骤S620)[见图24]。
其次,验证器件(2)的控制部分(290)从外部存储器件(27)读取随机数c、随机数ξ、g、t、N、随机数r、随机数w和c^,并将其存储在RAM(25)的对应的预定存储区中[见图24]。
之后,验证器件(2)的交互式判定部分(250)从RAM(25)读取g、c、t、N、随机数ξ和c^,并判定由公式(8)表达的关系是否建立(步骤S 621)[见图24]。当交互式判定部分(250)判定关系没有建立时,在验证器件(2)的控制部分(290)的控制下结束过程,而不进行后来的处理(步骤S622)。当交互式判定部分(250)判定关系为建立的时,在验证器件(2)的控制部分(290)的控制下进行后来的步骤S623。
其次,验证器件(2)的z生成部分(248)从RAM(25)读取随机数c、随机数r和随机数w,根据公式(10)来进行运算,并将算术结果z存储在RAM(25)的预定存储区中(步骤S623)[见图24]。
z=cr+w(10)其次,根据验证器件(2)的控制部分(290)的控制,通信部件(23)将在步骤S623中得到的并从RAM(25)读取的z传送到证明器件(1)(步骤S624)[见图24]。
然后,根据证明器件(1)的控制部分(190)的控制,通信部件(13)接收在步骤S624中传送的z并将z存储在外部存储器件(17)中(步骤S625)[见图25]。
之后,证明器件(1)的控制部分(190)从外部存储器件(17)读取g、N、鉴别信息生成因子R、z、随机数c、随机数u、信息s和W,并将其存储在RAM(15)的对应的预定存储区中[见图25]。
其次,证明器件(1)的鉴别判定部分(145)从RAM(15)读取g、z、N、随机数c、W、鉴别信息生成因子R,并判定由公式(11)表达的关系是否建立(步骤S626)[见图25]。当鉴别判定部分(145)判定关系没有建立时,在证明器件(1)的控制部分(190)的控制下结束过程,而不进行后来的处理(步骤S627)。当鉴别判定部分(145)判定关系为建立的时,在证明器件(1)的控制部分(190)的控制下进行后来的步骤S7a。在步骤S7a中及其之后的处理与第二实施例的处理相同。
gz=RcW mod N(11)进行步骤S611、S612、S618、S619、S625和S626的处理的部分相应于“交互式证明部分”。进一步地,进行步骤S614至S617和S620至S624的处理的部分相应于“交互式验证部分”。
现在下面将提到图30至37来描述本发明的第五实施例。
在第五实施例中,将限于本发明的交互式证明方法用来改进在第一实施例和第二实施例中的安全性。为了解释的便利,在下列的解释中将限于本发明的交互式证明方法应用于第二实施例。
在第五实施例中,由相同的参考数字来表明与第二实施例和第四实施例的功能和处理相同的功能和处理,因而省略在其中的解释。
证明器件(1)的外部存储器件(17)[或ROM等]根据第五实施例来存储用于生成鉴别信息的程序、用于生成A(稍后描述的)的程序、用于生成随机数的程序、用于判定验证器件是否通过正确地使用第一随机信息来生成鉴别信息生成因子的程序和所述程序的处理所需的数据等(信息s等)。另外,将用于控制基于所述程序的处理的控制程序也存储在外部存储器件(17)等中。
在证明器件(1)中,按照需要在RAM(15)中读取存储在外部存储器件(17)[或ROM等]中的程序和程序的处理所需的数据。CPU(14)执行程序并处理数据。结果,CPU(14)实现预定功能(A生成部分、随机数部分、第一判定部分、鉴别信息生成部分和控制部分)。
验证器件(2)的外部存储器件(27)[或ROM等]根据第五实施例来存储用于生成鉴别信息生成因子的程序、用于生成随机数的程序、用于生成B(稍后描述的)的程序、用于判定证明器件是否已正确地生成A的程序、用于判定从证明器件接收的信息是否与存储在验证器件中的信息匹配的程序和所述程序的处理所需的数据等。另外,将用于控制基于所述程序的处理的控制程序也存储在外部存储器件(27)等中。
在验证器件(2)中,按照需要在RAM(25)中读取存储在外部存储器件(27)[或ROM等]中的程序和程序的处理所需的数据。CPU(24)执行程序并处理数据。结果,CPU(24)实现预定功能(鉴别信息生成因子生成部分、B生成部分、随机数生成部分、第二判定部分、判定部分和控制部分)。
第五实施例的第三方器件(3)与第二实施例的第三方器件(3)相同,因而省略在其中的解释。
将v设置为预定的自然数。假定将v存储在证明器件(1)的外部存储器件(17)和验证器件(2)的外部存储器件(27)中。
步骤S0t到S3v的处理与第二实施例的处理相同,因而省略在其中的解释。
在步骤S3v之后,顺序地进行下列地处理。
首先,验证器件(2)的控制部分(290)从外部存储器件(27)读取N和g,并将N和g存储在RAM(25)的对应的预定存储区中。其次,根据验证器件(2)的控制部分(290)的控制,通信部件(23)将从RAM(25)读取的N和g传送到证明器件(1)(步骤S700)[见图30]。
之后,根据证明器件(1)的控制部分(190)的控制,通信部件(13)接收在步骤S700中传送的N和g,并将N和g存储在外部存储器件(17)中(步骤S701)[见图31]。
之后,证明器件(1)的控制部分(190)从外部存储器件(17)读取N、g和v,并将N、g和v存储在RAM(15)的对应的预定存储区中[见图31]。
其次,证明器件(1)的随机数生成部分(143)从RAM(15)读取v,生成不大于22v的随机数a,并将随机数a存储在RAM(15)的对应的预定存储区中(步骤S702)[见图31]。随机数生成部分(143)可以生成从0≤a≤N·2v-1范围的随机数a。这是因为,如上所述,从所述范围选取随机数a的配置在安全性和算术代价的兼容性的观点中为合乎需要的。进一步地,只要可以随机地选取值,a就不必总为随机数。
其次,证明器件(1)的A生成部分(148)从RAM(15)读取N、g和随机数a,根据公式(12)来进行运算,并将算术结果A存储在RAM(15)的预定存储区中(步骤S703)[见图31]。
A=gamod N(12)之后,根据证明器件(1)的控制部分(190)的控制,通信部件(13)将在步骤S703中得到的并从RAM(15)读取的A传送到验证器件(2)(步骤S704)[见图31]。
在证明器件(1)的控制部分(190)的控制下,将在步骤S703和S704中得到的随机数a和A存储在外部存储器件(17)中。
其次,根据验证器件(2)的控制部分(290)的控制,通信部件(23)接收在步骤S704中传送的A,并将A存储在外部存储器件(27)中(步骤S705)[见图32]。
之后,验证器件(2)的控制部分(290)从外部存储器件(27)读取N、g、v和A,并将其存储在RAM(25)的对应的预定存储区中[见图32]。
其次,验证器件(2)的随机数生成部分(242)从RAM(25)读取v,生成不大于22v的随机数r,并将随机数r存储在RAM(25)的预定存储区中(步骤S706)[见图32]。随机数生成部分(242)可以从0≤rN·2v-1范围来生成随机数r。这是因为,如上所述,从所述范围选取随机数r的配置在安全性和算术代价的兼容性的观点中为合乎需要的。进一步地,只要可以随机地选取值,r就不必总为随机数。
其次,验证器件(2)的鉴别信息生成因子生成部分(243)从RAM(25)读取N、g和随机数r,根据公式(2)进行运算,并将算术结果R[鉴别信息生成因子]存储在RAM(25)的预定存储区(步骤S707)[见图32]。
之后,验证器件(2)的B生成部分(249)从RAM(25)读取N、随机数r和A,根据公式(13)进行运算,并将算术结果B存储在RAM(25)的预定存储区中(步骤S708)[见图32]。
B=Armod N(13)其次,根据验证器件(2)的控制部分(290)的控制,通信部件(23)将在步骤S707和S708中得到的并从RAM(25)读取的鉴别信息生成因子R和B传送到证明器件(1)(步骤S709)[见图32]。
在验证器件(2)的控制部分(290)的控制下,将在步骤S706、S707和S708中得到的随机数r、鉴别信息生成因子R和B存储在外部存储器件(27)中。
其次,根据证明器件(1)的控制部分(190)的控制,通信部件(13)接收在步骤S709中传送的鉴别信息生成因子R和B,并且通信部件(13)将鉴别信息生成因子R和B存储在外部存储器件(17)中(步骤S710)[见图33]。
之后,证明器件(1)的控制部分(190)从外部存储器件(17)读取B、鉴别信息生成因子R、随机数a、信息s和N,并将其存储在RAM(15)的对应的预定存储区中。
其次,证明器件(1)的第一判定部分(160)从RAM(15)读取B、鉴别信息生成因子R、随机数a和N,并判定由公式(14)表达的关系是否建立(步骤S711)[见图33]。当第一判定部分(160)判定关系没有建立时,在证明器件(1)的控制部分(190)的控制下结束过程,而不进行后来的处理(步骤S712)。当第一判定部分(160)判定关系为建立的时,在证明器件(1)的控制部分(190)的控制下进行后来的步骤S713。
B=Ramod N(14)其次,证明器件(1)的鉴别信息生成部分(141)从RAM(15)读取N、信息s和鉴别信息生成因子R,根据公式(3)来进行运算,并将算术结果R(s)[鉴别信息]存储在RAM(15)的预定存储区中(步骤S713)[见图33]。
之后,根据证明器件(1)的控制部分(190)的控制,通信部件(13)将在步骤S713中得到的并从RAM(15)读取的鉴别信息R(s)和在步骤S702中得到的随机数a传送到验证器件(2)(步骤S714)[见图33]。
其次,根据验证器件(2)的控制部分(290)的控制,通信部件(23)接收在步骤S714中传送的鉴别信息R(s)和随机数a,并将其存储在外部存储器件(27)中(步骤S715)[见图34]。
之后,验证器件(2)的控制部分(290)从外部存储器件(27)读取N、随机数r、鉴别信息R(s)、验证信息C(s)、A、随机数a和g,并将其存储在RAM(25)的对应的预定存储区中[见图34]。
之后,验证器件(2)的第二判定部分(260)从RAM(25)读取A、g、随机数a和N,并判定由公式(15)表达的关系是否建立(步骤S716)[见图34]。当第二判定部分(260)判定关系没有建立时,在验证器件(2)的控制部分(290)的控制下结束过程,而不进行后来的处理(步骤S717)。当第二判定部分(260)判定关系为建立的时,在验证器件(2)的控制部分(290)的控制下进行后来的步骤S10。已讨论在步骤S10中及其之后的处理,因而省略在其中的解释。当第二判定部分(260)判定关系没有建立时,合乎需要的是验证器件(2)不将其中关系没有建立的步骤(S716或S10)传送到证明器件(1)。这是因为传送所述信息的协议不能保持安全性。
A=gamodN(15)进行S702至S704、S710和S711的步骤的处理的部分相应于“交互式证明部分”。进一步地,进行S705至S709、S715和S716的步骤的处理的部分相应于“交互式验证部分”。
现在下面将提到图38至44来描述本发明的第六实施例。
第六实施例为用于改进在第五实施例中的计算效率的实施例。用于改进计算效率的技术与第三实施例的技术相同。为了解释的便利,在下列的解释中,将限于本发明的并在第五实施例中描述的交互式证明方法应用于第二实施例,并且将在第三实施例中描述的用于改进计算效率的方法应用于第二实施例。
在第六实施例中,由相同的参考数字来表明与第三实施例和第五实施例的功能和处理相同的功能和处理,因而省略在其中的解释。此后,信息s为对于k块分割信息s0,s1,...,sk-1的类属名。
第六实施例的证明器件(1)与第五实施例的证明器件(1)相同,因而省略在其中的解释。
第六实施例的验证器件(2)与第五实施例的验证器件(2)相同,因而省略在其中的解释。
第六实施例的第三方器件(3)与第二实施例的第三方器件(3)相同,因而省略在其中的解释。
将v设置为预定的自然数。假定将v存储在证明器件(1)的外部存储器件(17)和验证器件(2)的外部存储器件(27)中。
步骤S0t到S3va的处理与第二实施例的处理相同,因而省略在其中的解释。
在步骤S3va之后,顺序地进行下列的处理。
首先,验证器件(2)的控制部分(290)从外部存储器件(27)读取v、N和g,并将其存储在RAM(25)的对应的预定存储区中[见图38]。
其次,验证器件(2)的随机数生成部分(242)从RAM(25)读取v,生成不大于v位的随机数u,并将随机数u存储在RAM(25)的预定存储区中(步骤S800)[见图38]。
之后,根据验证器件(2)的控制部分(290)的控制,通信部件(23)将从RAM(25)读取的随机数u、N和g传送到证明器件(1)(步骤S801)[见图38]。
在验证器件(2)的控制部分(290)的控制下,将在步骤S800中得到的随机数u存储在外部存储器件(27)中。
其次,根据证明器件(1)的控制部分(190)的控制,通信部件(13)接收在步骤S801中传送的随机数u、N和g,并将其存储在外部存储器件(17)中(步骤S802)[见图39]。
在步骤S802之后,进行步骤S702至S712的处理。已在第五实施例中讨论所述处理,因而省略在其中的解释。
在步骤S711之后(换言之,当没有进行在步骤S712中的终止时),处理后来的步骤S803。换言之,证明器件(1)的鉴别信息生成部分(141)从RAM(15)读取N、信息s、鉴别信息生成因子R、随机数u、A和B(预先从外部存储器件(17)读取的),根据公式(16)进行运算,并将算术结果R(s)[鉴别信息]存储在RAM(15)的预定存储区中(步骤S803)[见图40]。
R(s)=RΣi=0k-1siH(i,u,R,A,B)modN---(16)]]>在步骤S803之后,顺序地处理步骤S8、S9和S716。已在第五实施例中讨论所述处理,因而省略在其中的解释。
在步骤S716之后(换言之,当没有进行在步骤S717中的终止时),处理后来的步骤S804。换言之,验证器件(2)的判定部分(244)从RAM(25)读取N、随机数r、随机数u、鉴别信息生成因子R、鉴别信息R(s)、验证信息C(s)、A和B(预先从外部存储器件(27)读取的),并且判定部分(244)判定由公式(17)表达的关系是否建立(步骤S804)[见图41]。
R(s)=(Πi=0k-1Ci(s)H(i,u,R))rmodN---(7)]]>跟随步骤S804的步骤S11和S12的处理与第三实施例的处理相同,因而省略在其中的解释。
本发明的鉴别系统/方法不限于前述的实施例,并且可以不违反本发明的要点来改变所述鉴别系统/方法。
例如,在前述的实施例中,将模数为N(N为常数)的剩余类环的乘法循环群用作为“交换半群”。然而,在本发明中可使用的“交换半群”不限于循环群。例如,“交换半群”可以为模数为多项式的剩余类环的乘法循环群。
进一步地,在前述的实施例中,定义在交换半群上的取幂的基数(例如,g)为诸如自然数这样的数值。然而,取幂的基数可以为多项式。
况且,在前述的实施例中,合乎需要的是N为除可以判定为素数的数之外的自然数,并且难于将N因子分解为素数因子。然而,可以将其他数用作为N。例如,N可以为三个或更多素数的积的合数。在安全性的观点中,只要将本发明应用于在其中攻击者的存在可忽略的用途,N就可以具有任何值。换言之,当将本发明应用于这样的用途时,由定义在半群上的有限集的阶难于计算,以致不必总是设置“交换半群”。
况且,在第二实施例、第三实施例和第六实施例中可以不使用函数H(i,u,R)。在所述情况下,例如,在实施例的处理中设置H(i,u,R)=1。
可以使用其他任何给定的数,代替在实施例中使用的随机数。进一步地,可以将在实施例中存储在外部存储器件中的数据存储在RAM中,并且可以将在实施例中存储在RAM中的数据存储在外部存储器件中。
况且,可以随意地改变生成鉴别信息的方法和判定方法。进一步地,在所述的次序中不必总按时间发生顺序来进行在鉴别系统/方法中描述的处理。按照需要,可以根据进行处理的器件的通过量来进行处理,或是并行地或分离地进行处理。
进一步地,当通过主要由处理器构成的计算机来实现证明器件、验证器件和第三方器件的处理功能时,由程序来描述在证明器件、验证器件和第三方器件中提供的功能的处理内容。由计算机来执行程序,由此在计算机上实现证明器件、验证器件和第三方器件的处理功能。
可以将在其中描述处理内容的程序记录在由计算机可读取的记录介质上。由计算机可读取的记录介质可以为包括,例如,磁记录器、光盘、磁光记录介质和半导体存储器在内的介质中的任何一种。明确地说,例如,磁记录器可以为硬盘器件、软盘和磁带等,光盘可以为DVD(数字通用光盘)、DVD-RAM(随机存取存储器)、CD-ROM(只读光盘存储器)、CD-R(可记录的)/RW(可重写的)等,磁光记录介质可以为MO(磁光盘)等,并且半导体存储器可以为EEP-ROM(电可擦可编程只读存储器)等。
进一步地,通过,例如,出售、转移、借出诸如DVD和CD-ROM这样的其中记录程序的便携式记录介质来分布所述程序。况且,可以将程序存储在服务器计算机的存储器件中并通过将程序经由网络从服务器计算机转移到另一计算机来分布程序。
例如,执行所述程序的计算机首先将程序临时地存储在计算机的存储器件中,所述程序已记录在便携式记录介质上或已将其从服务器计算机转移。当进行处理时,计算机读取存储在计算机的记录介质中的程序,并根据读取的程序进行处理。在用于执行程序的另一实施例中,计算机可以直接从便携式记录介质读取程序,并根据程序进行处理。每当将程序从服务器计算机转移到计算机,处理器就可以根据接收的程序进行处理。况且,可以由所谓的ASP(应用服务供应商)服务来进行上面的处理,在所述服务中不将程序从服务器计算机转移到计算机并且只由执行指令和结果的采集来实现处理功能。假定所述实施例的程序包括用于电子计算机的处理的信息,而信息依据于程序(包括对计算机不为直接命令但具有指定计算机的处理的性质的数据)。
进一步地,在所述实施例中,通过执行在计算机上的预定程序来配置证明器件、验证器件和第三方器件。至少可以将所述处理内容中的一些实现为硬件。
工业实用性本发明用于鉴别预定信息是否存储在指定或未指定的证明器件中。虽然本发明涉及在各种领域中通用的基本技术,但是本发明明确地用于,例如,在文件分布或网络存储服务、高质量数字媒体分布和数据库匹配的配置等中的对方的监控和鉴别。
权利要求
1.一种鉴别系统,包含证明器件,其存储所保持的信息;和验证器件,其连接到所述证明器件以致与所述证明器件通信,所述验证器件验证所述所保持的信息是否与比较信息相同;所述验证器件,包含第一存储部分,其存储具有取决于所述比较信息的内容的内容并且具有不取决于所述比较信息的信息量的信息量的验证信息并存储第一随机信息;鉴别信息生成因子生成部分,其生成用于在所述证明器件中生成鉴别信息的鉴别信息生成因子,通过使用存储在所述第一存储部分中存储的第一随机信息来生成所述鉴别信息生成因子;第一传送部分,其将由所述鉴别信息生成因子生成部分生成的所述鉴别信息生成因子传送到所述证明器件;第一接收部分,其接收由所述证明器件传送的鉴别信息;和判定部分,其判定在由所述第一接收部分接收的鉴别信息与存储在所述第一存储部分中的验证信息和第一随机信息之间是否建立预定关系;所述证明器件,包含第二存储部分,其存储所述所保持的信息;第二接收部分,其接收由所述第一传送部分传送的鉴别信息生成因子;鉴别信息生成部分,其生成具有取决于所述鉴别信息生成因子和所保持的信息的内容的内容并且具有不取决于所述所保持的信息的信息量的信息量的鉴别信息,通过使用由所述第二接收部分接收的鉴别信息生成因子和存储在所述第二存储部分中的所保持的信息来生成所述鉴别信息;和第二传送部分,其将由所述鉴别信息生成部分生成的鉴别信息传送到所述验证器件。
2.如权利要求1所述的鉴别系统,其中所述验证信息为如下取幂的算术结果所述取幂的基数为其中已定义构成交换半群的运算的有限集的元素,并且所述取幂的指数为所述比较信息,所述取幂定义在所述半群上;鉴别信息生成因子为如下取幂的算术结果所述取幂的基数为所述有限群的元素,并且所述取幂的指数为所述第一随机信息,所述取幂定义在所述半群上;鉴别信息为如下取幂的算术结果所述取幂的基数为所述鉴别信息生成因子,并且所述取幂的指数为所述所保持的信息,所述取幂定义在所述半群上;以及所述判定部分判定所述鉴别信息是否与如下取幂的算术结果相等所述取幂的基数为所述验证信息,并且所述取幂的指数为所述第一随机信息,所述取幂定义在所述半群上。
3.如权利要求2所述的鉴别系统,其中难于计算所述半群的有限集的阶。
4.如权利要求2所述的鉴别系统,其中所述验证信息为模幂的结果C(s’),所述模幂的模数为常数N,而所述模幂的基数为小于N的值g,并且所述模幂的指数为所述比较信息s’;所述鉴别信息生成因子为如下模幂的结果R所述模幂的模数为常数N,而所述模幂的基数为所述值g,并且所述模幂的指数为所述第一随机信息r;所述鉴别信息为如下模幂的结果R(s)所述模幂的模数为N,而所述模幂的基数为所述鉴别信息生成因子R,并且所述模幂的指数为所述所保持的信息s;以及所述判定部分判定如下模幂的结果是否与所述鉴别信息R(s)相等所述模幂的模数为N,而所述模幂的基数为所述验证信息C(s’),并且所述模幂的指数为所述第一随机信息r。
5.如权利要求4所述的鉴别系统,其中所述常数N为除可以判定为素数的数之外的自然数,并且难于将N因子分解为素数因子。
6.如权利要求4所述的鉴别系统,其中所述常数N为三个或更多素数的积的合数。
7.如权利要求5所述的鉴别系统,其中所述第一随机信息r为从0≤r≤N·2v-1范围随机选取的值,其中v表示预定的自然数。
8.如权利要求1所述的鉴别系统,其中为通过将所述比较信息分割为多个块而得到的每一第一分割信息来生成所述验证信息,通过使用每一第一分割信息来生成所述每一验证信息;以及所述鉴别信息生成部分通过使用由所述第二接收部分接收的鉴别信息生成因子和通过将存储在所述第二存储部分中的所保持的信息分割为多个块来得到的第二分割信息中所有的块来生成所述鉴别信息。
9.如权利要求8所述的鉴别系统,其中所述验证信息为如下取幂的算术结果所述取幂的基数为其中已定义构成交换半群的运算的有限集的元素,并且所述取幂的指数为所述第一分割信息,所述取幂定义在所述半群上;所述鉴别信息生成因子为如下取幂的算术结果所述取幂的基数为所述有限群的元素,并且取幂的指数为所述第一随机信息,所述取幂定义在所述半群上;所述鉴别信息为如下取幂的算术结果所述取幂的基数为所述鉴别信息生成因子,并且取幂的指数为使用所述第二分割信息中的所有的块来计算的并且具有比所述所保持的信息更小的信息量的值,所述取幂定义在所述半群上;以及所述判定部分判定所述鉴别信息是否与如下取幂的算术结果相等所述取幂的基数为通过计算所述验证信息中的所有的块来得到的值,并且所述取幂的指数为所述第一随机信息,所述取幂定义在所述半群上。
10.如权利要求9所述的鉴别系统,其中所述鉴别信息为如下取幂的算术结果所述取幂的指数为通过使用所述第二分割信息中的所有的块和相应于在所述所保持的信息中的第二分割信息的位的位置并难于预先准备的信息来计算的值,所述值具有比所述所保持的信息更小的信息量,并且取幂的基数为所述鉴别信息生成因子,并且所述取幂定义在所述半群上。
11.如权利要求9所述的鉴别系统,其中难于计算所述半群的有限集的阶。
12.如权利要求9所述的鉴别系统,其中所述验证信息为模幂的结果Ci(s’),所述模幂的模数为N,而所述模幂的基数为小于N的值g,并且所述模幂的指数为所述第一分割信息si’;所述验证信息生成因子为如下模幂的结果R所述模幂的模数为N,而所述模幂的基数为所述值g,并且所述模幂的指数为所述第一随机信息r;所述鉴别信息为如下模幂的结果R(s)所述模幂的指数为通过求对于所有i的所述第二分割信息si和信息H的积的和得到的值,其中信息H的值为取决于相应于所述第二分割信息si的i和从所述验证器件传送的信息中的某种,而所述模幂的基数为所述鉴别信息生成因子R,并且所述模幂的模数为N;以及所述判定部分判定所述鉴别信息R(s)是否与如下模幂的结果相等所述模幂的基数为值的积,其中所述值为相应于所有i,自乘到每一相应于所述Ci(s’)的所述信息H次幂的验证信息Ci(s’),而所述模幂的指数为所述第一随机信息r,并且所述模幂的模数为N。
13.如权利要求12所述的鉴别系统,其中所述常数N为除可以判定为素数的数之外的自然数,并难于将N因子分解为素数因子。
14.如权利要求12所述的鉴别系统,其中所述信息H为取决于对应于所述第二分割信息si的i和从所述验证器件传送的信息中的某种的单向函数的值。
15.如权利要求1所述的鉴别系统,其中所述验证器件包含交互式证明部分,其由所述证明器件的交互式证明来向所述证明器件证明,通过使用存储在所述第一存储部分中的第一随机信息来生成由所述证明器件的第二接收部分接收的鉴别信息生成因子;所述证明器件包含交互式验证部分,其由所述验证器件的交互式证明来验证,是否通过使用存储在所述验证器件的第一存储部分中的第一随机信息生成由所述第二接收部分接收的鉴别信息生成因子;和当所述交互式验证部分可以确认通过使用存储在所述验证器件的第一存储部分中的第一随机信息来生成由所述第二接收部分接收的鉴别信息生成因子时,所述证明器件的第二传送部分将由所述鉴别信息生成部分生成的鉴别信息传送到所述验证器件。
16.如权利要求1所述的鉴别系统,其中所述证明器件包含A生成部分,其生成由如下取幂得到的算术值A所述取幂的基数为其中已定义构成交换半群的运算的有限集的元素g,并且所述取幂的指数为第二随机信息a,所述取幂定义在所述半群上;所述证明器件的第二传送部分将所述算术值A传送到所述验证器件;所述验证器件的第一接收部分从所述证明器件接收所述算术值A;所述验证器件的鉴别信息生成因子生成部分通过求解如下取幂来生成所述鉴别信息生成因子R所述取幂的基数为所述有限集的元素g,并且所述取幂的指数为所述第一随机信息r,所述取幂定义在所述半群上;所述验证器件包含B生成部分,其通过求解如下取幂生成算术值B所述取幂的基数为所述算术值A,并且所述取幂的指数为所述第一随机信息r,所述取幂定义在所述半群上;所述验证器件的第一传送部分将所述鉴别信息生成因子R和算术值B传送到所述证明器件;所述证明器件的第二接收部分接收从所述验证器件传送的鉴别信息生成因子R和算术值B;所述证明器件包含第一判定部分,其判定所述算术值B是否与如下取幂的算术结果相等所述取幂的基数为由所述第二接收部分接收的鉴别信息生成因子R,并且所述取幂的指数为所述第二随机信息a,所述取幂定义在所述半群上;和当所述第一判定部分可以确定所述算术值B与如下取幂的算术结果相等时,其中所述取幂的基数为由所述第二接收部分接收的鉴别信息生成因子R、并且所述取幂的指数为所述第二随机信息a、所述取幂定义在所述半群上,所述证明器件的第二传送部分将由所述鉴别信息生成部分生成的鉴别信息传送到所述验证器件。
17.如权利要求16所述的鉴别系统,其中当所述第一判定部分可以确定所述算术值B与如下取幂的算术结果相等时,其中所述取幂的基数为由所述第二接收部分接收的鉴别信息生成因子R、并且所述取幂的指数为所述第二随机信息a、所述取幂定义在所述半群上,所述证明器件的第二传送部分进一步地将所述第二随机信息a传送到所述验证器件;所述验证器件的第一接收部分接收从所述证明器件传送的第二随机信息a;以及所述验证器件包含第二判定部分,其判定所述算术值A是否与如下取幂的算术结果相等所述取幂的基数为所述有限集的元素g,并且所述取幂的指数为所述第二随机信息a,所述取幂定义在所述半群上。
18.如权利要求16所述的鉴别系统,其中难于计算所述半群的有限集的阶。
19.如权利要求16所述的鉴别系统,其中所述算术值A为如下模幂的结果所述模幂的模数为常数N,所述模幂的基数为小于N的值g,而所述模幂的指数为所述第二随机信息a;所述鉴别信息生成因子R为如下模幂的结果所述模幂的模数为N,所述模幂的基数为所述值g,所述模幂的指数为所述第一随机信息r;所述算术值B为如下模幂的结果所述模幂的模数为N,所述模幂的基数为所述算术值A,而所述模幂的指数为所述第一随机信息r;以及取幂的如下算术结果为如下模幂的结果所述取幂的基数为由所述第二接收部分接收的鉴别信息生成因子R、所述取幂的指数为所述第二随机信息a、而所述取幂定义在所述半群上,并且所述模幂的模数为N、所述模幂的基数为所述鉴别信息生成因子R、而所述模幂的指数为所述第二随机信息a。
20.如权利要求19所述的鉴别系统,其中取幂的如下算术结果为如下模幂的结果所述取幂的基数为所述有限集的元素g、所述取幂的指数为所述第二随机信息a、而所述取幂定义在所述半群上,并且所述模幂的模数为N、所述模幂的基数为所述有限集的元素g、而所述模幂的指数为所述第二随机信息a。
21.如权利要求19所述的鉴别系统,其中所述常数N为除可以判定为素数的数之外的自然数,并且难于将N因子分解为素数因子。
22.如权利要求19所述的鉴别系统,其中所述第二随机信息a为从0≤r≤N·2v-1范围随机选取的值,其中v表示预定的自然数。
23.一种证明器件,其向验证器件证明在所述证明器件中的所保持的信息与比较信息相同,包含存储部分,其存储所述所保持的信息;接收部分,其接收从所述验证器件传送的鉴别信息生成因子;鉴别信息生成部分,其生成具有取决于所述鉴别信息生成因子和所保持的信息的内容的内容并且具有不取决于所述所保持的信息的信息量的信息量的鉴别信息,通过使用由所述接收部分接收的鉴别信息生成因子和存储在所述存储部分中的所述所保持的信息来生成所述鉴别信息;和传送部分,其将由所述鉴别信息生成部分生成的鉴别信息传送到所述验证器件。
24.一种验证器件,其验证在证明器件中的所述所保持的信息是否与比较信息相同,包含存储部分,其存储具有取决于所述比较信息的内容的内容并且具有不取决于所述比较信息的信息量的信息量的验证信息并且存储随机信息;鉴别信息生成因子生成部分,其生成用于在所述证明器件中生成鉴别信息的鉴别信息生成因子,通过使用存储在所述存储部分中的随机信息来生成所述鉴别信息生成因子;传送部分,其将由所述鉴别信息生成因子生成部分生成的鉴别信息生成因子传送到所述证明器件;接收部分,其接收由所述证明器件传送的鉴别信息;和判定部分,其判定在由所述接收部分接收的鉴别信息与存储在所述存储部分中的验证信息和随机信息之间是否建立预定关系。
25.一种鉴别方法,其用于允许验证器件验证存储在证明器件的存储部分中的所保持的信息是否与比较信息相同,所述鉴别方法,包含在所述验证器件的存储部分中存储验证信息的步骤,所述验证信息具有取决于所述比较信息的内容的内容并且具有不取决于所述比较信息的信息量的信息量;在所述验证器件的存储部分中存储随机信息的步骤;生成用于在所述证明器件中生成鉴别信息的鉴别信息生成因子的步骤,通过使用存储在所述存储部分中的随机信息来在鉴别信息生成因子生成部分中生成所述鉴别信息生成因子;由所述验证器件的传送部分来将所述鉴别信息生成因子传送到所述证明器件的步骤;由所述证明器件的接收部分来接收所述鉴别信息生成因子的步骤;生成具有取决于所述鉴别信息生成因子和所保持的信息的内容的内容并且具有不取决于所述所保持的信息的信息量的信息量的鉴别信息的步骤,通过使用存储在所述存储部分中的鉴别信息生成因子和所保持的信息来在所述证明器件的鉴别信息生成部分中生成所述鉴别信息;由所述证明器件的传送部分来将所述鉴别信息传送到所述验证器件的步骤;由所述验证器件的接收部分来接收所述鉴别信息的步骤;以及在所述验证器件的判定部分中判定在所述验证器件的存储部分中存储的验证信息和随机信息与所述鉴别信息之间是否建立预定关系。
26.如权利要求25所述的鉴别方法,其中为通过将所述比较信息分割为多个块而得到的每一第一分割信息来生成所述验证信息,通过使用每一第一分割信息来生成所述每一验证信息;以及通过使用由所述证明器件的接收部分接收的鉴别信息生成因子和通过将存储在所述证明器件的存储部分中的所保持的信息分割为多个块来得到的第二分割信息中的所有的块来生成所述鉴别信息。
27.如权利要求25所述的鉴别方法,其中在所述验证器件的存储部分中存储所述随机信息的步骤与将所述鉴别信息传送到所述验证器件的步骤之间,所述鉴别方法包含(a)在所述验证器件的交互式证明部分中由所述的证明器件的交互式证明来向所述证明器件证明,通过使用存储在所述验证器件的存储部分中的随机信息来生成由所述证明器件的接收部分接收的鉴别信息生成因子的步骤;以及(b)在所述验证器件的交互式验证部分中由所述验证器件的交互式证明来验证,是否通过使用存储在所述验证器件的存储部分的随机信息来生成由所述证明器件的接收部分接收的鉴别信息生成因子的步骤;以及所述鉴别方法进一步地包含(c)当所述证明器件的交互式验证部分可以确认通过使用存储在所述验证器件的存储部分的随机信息来生成由所述证明器件的接收部分接收的鉴别信息生成因子时,由所述证明器件的传送部分将由所述鉴别信息生成部分生成的鉴别信息传送到所述验证器件。
28.一种证明器件程序,其用于导致处理器至少执行如下步骤在存储部分中存储所保持的信息的步骤;导致接收部分接收从验证器件的传送部分传送的鉴别信息生成因子的步骤;生成具有取决于所述鉴别信息生成因子和所保持的信息的内容的内容并且具有不取决于所述所保持的信息的信息量的信息量的鉴别信息的步骤;以及导致所述传送部分将所述鉴别信息传送到所述验证器件的步骤。
29.如权利要求28所述的证明器件程序,其中导致处理器进一步地执行将通过将所述所保持的信息分割为多个块得到的分割信息中的所有的块存储在所述存储部分的步骤;以及生成所述鉴别信息的步骤为通过使用由所述接收部分接收的鉴别信息生成因子和在所述存储部分中存储的分割信息中的所有的块来生成所述鉴别信息。
30.如权利要求28所述的证明器件程序,其中导致所述处理器进一步地执行由所述验证器件的交互式证明来验证,是否通过使用存储在所述验证器件的存储部分中的随机信息来生成由所述接收部分接收的鉴别信息生成因子的步骤;以及当确认通过使用存储在所述验证器件的存储部分中的随机信息来生成由所述接收部分接收的鉴别信息生成因子时,导致所述传送部分将所述鉴别信息传送到所述验证器件的步骤。
31.一种验证器件程序,其用于导致处理器至少执行如下步骤在存储部分中存储具有取决于比较信息的内容的内容并且具有不取决于所述比较信息的信息量的信息量的验证信息并存储随机信息的步骤;生成在证明器件中生成鉴别信息的鉴别信息生成因子的步骤,通过使用存储在所述存储部分中的随机信息来生成所述鉴别信息生成因子;导致传送部分将所述鉴别信息生成因子传送到所述证明器件的步骤;导致接收部分从所述证明器件接收所述鉴别信息的步骤;以及判定在由所述接收部分接收的鉴别信息与存储在所述存储部分中的验证信息和随机信息之间是否建立预定关系的步骤。
32.如权利要求31所述的验证器件程序,其中为通过将所述比较信息分割为多个块而得到的每一分割信息来生成所述验证信息,通过使用每一分割信息来生成所述每一验证信息。
33.如权利要求31所述的验证器件程序,其中导致所述处理器进一步地执行由所述证明器件的交互式证明来向所述证明器件证明,通过使用存储在所述存储部分中的随机信息来生成由所述证明器件的接收部分接收的鉴别信息生成因子。
34.一种由计算机可读取的记录介质,所述记录介质存储如权利要求28所述的证明器件程序。
35.一种由计算机可读取的记录介质,所述记录介质存储如权利要求31所述的验证器件程序。
全文摘要
验证器件在第一存储部分中存储验证信息和第一随机信息。验证信息取决于比较信息的内容,而不取决于比较信息的信息量。进一步地,验证器件通过使用第一随机信息来生成鉴别信息生成因子,并将因子传送到证明器件。证明器件通过使用鉴别信息生成因子和所保持的信息来生成鉴别信息,并将鉴别信息传送到验证器件。鉴别信息取决于鉴别信息生成因子和所保持的信息的内容,而不取决于所保持的信息的信息量。验证器件的判定部分判定在鉴别信息与验证信息和第一随机信息之间是否建立预定关系。这样,验证器件验证存储在证明器件中的所保持的信息是否与比较信息相同。
文档编号H04L9/32GK101080897SQ20068000138
公开日2007年11月28日 申请日期2006年7月13日 优先权日2005年7月13日
发明者山本刚, 藤崎英一郎 申请人:日本电信电话株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1