專利名稱:鑒別系統、鑒別方法、證明器件、驗證器件及其程序和記錄介質的制作方法
技術領域:
本發明涉及消息鑒別技術,并特別涉及用于證明和驗證將預定信息存儲在指定的或未指定的器件中的技術。
背景技術:
用于鑒別將預定信息存儲在指定的或未指定的器件中(例如,在諸如硬盤這樣的存儲器中)的技術稱為消息鑒別技術。所述技術的特征是鑒別過程所需的通信量不取決于證明為存儲的信息的量(信息量)。
下面將描述傳統的消息鑒別技術的概要。證明器件和驗證器件預先共享密鑰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日
發明者山本剛, 藤崎英一郎 申請人:日本電信電話株式會社