(57)【特許請求の範囲】
【請求項１】
証明補助情報発行部（１０）、検証部（２０）および証明部（３０）を含み、利用資格を検証する利用資格検証装置において、
前記証明補助情報発行部（１０）は、
利用資格の認証の際に用いる証明情報（Ｋ）を管理する証明情報管理手段（１０３）と、
秘密情報（ｄ）を管理する秘密情報管理手段（１０２）と、
逆関数を求めることが少なくとも計算量的に困難な一方向性関数を少なくとも前記秘密情報管理手段（１０２）が管理する秘密情報に対し適用する第１の一方向性関数計算手段（１０４）と、
前記証明情報管理手段（１０３）が管理する証明情報と、前記第１の一方向性関数計算手段の計算結果をもとに証明補助情報（ｔ）を計算する証明補助情報計算手段（１０５）と、
証明補助情報の計算の過程で情報を送受信する第１の通信手段（１０１）とを有し、
前記検証部（２０）は、
証明情報（Ｋ）を保持する証明情報保持手段（２０１）と、
試験情報（ｒ）を計算する試験情報計算手段（２０２）と、
逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用する第２の一方向性関数計算手段（２０３）と、
（ｉ）前記第２の一方向性計算手段（２０３）を、前記証明情報保持手段（２０１）が保持する証明情報と、試験情報とに対し作用させた結果と、（ｉｉ）前記証明部（３０）から送られてきた応答情報とが等しいか検査する応答情報検証手段（２０４）と、
利用資格の認証の過程で情報を送受信する第２の通信手段（２０５）とを有し、
前記証明部（３０）は、
秘密情報（ｄ）を保持する秘密情報保持手段（３０１）と、
応答情報の計算に用いるために前記証明補助情報発行部（１０）から送られてきた証明補助情報（ｔ）を管理する証明補助情報管理手段（３０２）と、
逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用する第３の一方向性関数計算手段３０４）と、
（ｉ）前記第３の一方向性関数計算手段（３０４）を少なくとも前記秘密情報保持手段（３０１）が保持する秘密情報に作用させた結果と、前記証明補助情報管理手段（３０２）が管理する証明補助情報とをもとに得られる値と、（ｉｉ）試験情報とに、さらに前記第３の一方向性関数計算手段（３０４）を作用させて応答情報を計算する応答情報計算手段（３０３）と、
利用資格の認証の過程および証明補助情報計算の過程で情報を送受信する第３の通信手段（３０５）とを有し、前記検証部（２０）は、前記応答情報検証手段（２０４）の検証結果に基づいて利用資格を検証することを特徴とする利用資格検証装置。
【請求項２】
証明補助情報発行部（１０）、検証部（２０）および証明部（３０）を含み、利用資格を検証する利用資格検証装置において、
前記証明補助情報発行部（１０）は、
利用資格の認証の際に用いる証明情報（Ｋ）を管理する証明情報管理手段（１０３）と、
秘密情報（ｄｐ、ｄｖ）を管理する秘密情報管理手段（１０２）と、
逆関数を求めることが少なくとも計算量的に困難な一方向性関数を少なくとも前記秘密情報管理手段（１０２）が管理する秘密情報に対し適用する、第１の一方向性関数計算手段（１０４）と、
前記証明情報管理手段（１０３）が管理する証明情報と、前記第１の一方向性関数計算手段（１０４）の計算結果をもとに証明補助情報（ｔｐ、ｔｖ）を計算する証明補助情報計算手段（１０５）と、
証明補助情報の計算の過程で情報を送受信する第１の通信手段（１０１）とを有し、
前記検証部（２０）は、
秘密情報（ｄｖ）を保持する第１の秘密情報保持手段（２０６）と、
前記証明補助情報発行部（１０）から送られてきた証明補助情報（ｔｖ）を管理する第１の証明補助情報管理手段（２０７）と、
試験情報（ｒ）を計算する試験情報計算手段（２０２）と、
逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用する第２の一方向性関数計算手段（２０３）と、
（ｉ）（ａ）少なくとも前記第１の秘密情報保持手段（２０６）が保持する秘密情報（ｄｖ）に前記第２の一方向性関数計算手段（２０３）を作用させた結果と、前記第１の証明補助情報管理手段（２０７）が管理する証明補助情報（ｔｖ）とをもとに得られる値（Ｋ）と、（ｂ）試験情報（ｒ）とに対しさらに前記第２の一方向性計算手段を作用させた結果（ｆ（Ｋ，ｒ））と、（ｉｉ）前記証明部（３０）から送られてきた応答情報（Ｒ）とが等しいか検査する応答情報検証手段（２０４）と、
利用資格の認証の過程で情報を送受信する第２の通信手段（２０５）とを有し、
前記証明部（３０）は、
秘密情報（ｄｐ）を保持する第２の秘密情報保持手段（３０６）と、
応答情報の計算に用いるために前記証明補助情報発行部（１０）から送られてきた証明補助情報（ｔｐ）を管理する第２の証明補助情報管理手段（３０７）と、
逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用する第３の一方向性関数計算手段（３０４）と、
（ｉ）少なくとも前記第２の秘密情報保持手段（３０６）が保持する秘密情報（ｄｐ）に前記第３の一方向性関数計算手段（３０４）を作用させた結果と、前記第２の証明補助情報管理手段（３０７）が管理する証明補助情報（ｔｐ）とをもとに得られる値（Ｋ’）と、（ｉｉ）試験情報（ｒ）とに、さらに前記第３の一方向性関数計算手段（３０４）を作用させて応答情報（Ｒ）を計算する応答情報計算手段（３０３）と、
利用資格の認証の過程および証明補助情報計算の過程で情報を送受信する第３の通信手段（３０５）とを有し、前記検証部（２０）は、前記応答情報検証手段（２０４）の検証結果に基づいて利用資格を検証することを特徴とする利用資格検証装置。
【請求項３】
請求項１ないし請求項２の利用資格検証装置であって、
前記証明情報管理手段は、利用条件を示す情報である使用制限記述を証明情報と併せて管理し、
前記証明補助情報管理手段は、使用制限記述を証明補助情報と併せて管理し、
前記証明部で用いる証明補助情報および前記証明部で生成する応答情報の計算には使用制限記述を含むことを特徴とする利用資格検証装置。
【請求項４】
請求項１ないし請求項３の利用資格検証装置であって、復号手段を備え、利用資格があると判定した場合には、証明情報あるいは証明情報から得られる値を前記復号手段の復号鍵として用い、情報を復号することを特徴とする利用資格検証装置。
【請求項５】
請求項１ないし請求項４の利用資格検証装置であって、利用資格検証時の履歴を管理する履歴管理手段を備え、証明情報保持手段あるいは第１の証明補助情報管理手段は、伝達情報を証明情報あるいは証明補助情報と併せて管理し、試験情報はさらに伝達情報を含み、利用資格検証時に前記伝達情報を履歴管理手段に格納することを特徴とする利用資格検証装置。
【請求項６】
証明補助情報発行部（１０）、検証部（２０）および証明部（３０）を含み、利用資格を検証する利用資格検証装置において、
前記証明補助情報発行部（１０）は、
利用資格の認証の際に用いる証明情報（Ｋ）を管理する証明情報管理手段（２０１）と、
秘密情報（ｄ）を管理する秘密情報管理手段（１０２）と、
少なくとも前記秘密情報管理手段（１０２）が管理する秘密情報に対し、逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用する第１の一方向性関数計算手段（１０４）と、
前記証明情報管理手段（１０３）が管理する証明情報（Ｋ）と、前記第１の一方向性関数計算手段（１０４）の計算結果をもとに証明補助情報（ｔ）を計算する証明補助情報計算手段（１０５）と、
証明補助情報の計算の過程で情報を送受信する第１の通信手段（１０１）とを有し、
前記検証部（２０）は、
証明情報（Ｋ）を保持する証明情報保持手段（２０１）と、
第１の試験情報（ｒ１）を計算する第１の試験情報計算手段（２０９）と、
逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用する第２の一方向性関数計算手段（２０３）と、
（ｉ）前記証明部（３０）から受信した第２の試験情報（ｒ２）と、前記証明情報保持手段（２０１）に保持されている証明情報（Ｋ）と、内部状態変更情報（ｍ）とに対して前記第２の一方向性関数計算手段（２０３）を作用させた結果からなる第１応答情報部分（ｆ（Ｋ，ｒ２，ｍ））と、（ｉｉ）前記内部状態変更情報（ｍ）からなる第２応答情報部分（ｍ）とを含む第１の応答情報（Ｒ１）を計算する第１の応答情報計算手段（２１０）と、
（ｉ）前記第２の一方向性計算手段（２０３）を、前記証明情報保持手段（２０１）が保持する証明情報（Ｋ）と、第１の試験情報（ｒ１）とに対し作用させた結果（ｆ（Ｋ，ｒ１））と、（ｉｉ）前記証明部（３０）から送られてきた第２の応答情報（Ｒ２）が等しいか検査する第１の応答情報検証手段（２１１）と、
利用資格の認証の過程で情報を送受信する第２の通信手段（２０５）とを有し、
前記証明部（３０）は、
秘密情報（ｄ）を保持する秘密情報保持手段（３０１）と、
応答情報の計算に用いるために前記証明補助情報発行部（１０）から送られてきた証明補助情報（ｔ）を管理する証明補助情報管理手段（３０２）と、
検証された利用資格に基づく利用に対応して変更される内部状態を管理する内部状態管理手段（３１２）と、
逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用する第３の一方向性関数計算手段（３０４）と、
（ｉ）少なくとも前記秘密情報保持手段（３０１）が保持する秘密情報（ｄ）に前記第３の一方向性関数計算手段（３０４）を作用させた結果と、前記証明補助情報管理手段（３０２）が管理する証明補助情報（ｔ）とをもとに得られる値（Ｋ’）と、（ｉｉ）第１の試験情報（ｒ１）とにさらに前記第３の一方向性関数計算手段（３０４）を作用させて第２の応答情報（Ｒ２）を計算する第２の応答情報計算手段（３１０）と、
第２の試験情報（ｒ２）を計算する第２の試験情報計算手段（３０９）と、
（ｉ）（ａ）少なくとも前記秘密情報保持手段（３０１）が保持する秘密情報（ｄ）に対して前記第３の一方向性関数計算手段（３０４）を作用させた結果と、前記証明補助情報管理手段（３０２）が管理する証明補助情報（ｔ）とをもとに得られる値（Ｋ’）と、（ｂ）第２の試験情報（ｒ２）と、（ｃ）前記第１の応答情報（Ｒ１）の第２応答情報部分（ｍ）とに対して前記第３の一方向性関数計算手段（３０４）を作用させた結果（ｆ（Ｋ’，ｒ２、ｍ））と、（ｉｉ）前記第１の応答情報（Ｒ１）の第１応答情報部分（ｆ（Ｋ，ｒ２，ｍ））が等しいか検査する第２の応答情報検証手段（３１１）と、
利用資格の認証の過程および証明補助情報計算の過程で情報を送受信する第３の通信手段（３０５）とを有し、前記検証部（２０）は、前記第１の応答情報検証手段（２１１）の検証結果に基づいて利用資格を検証し、前記証明部（３０）は第２応答情報検証手段（３１１）の検証結果に基づいて前記内部状態の変更を許容することを特徴とする利用資格検証装置。
【請求項７】
証明補助情報発行部（１０）、検証部（２０）および証明部（３０）を含み、利用資格を検証する利用資格検証装置において、
前記証明補助情報発行部（１０）は、
利用資格の認証の際に用いる証明情報（Ｋ）を管理する証明情報管理手段（１０３）と、
秘密情報（ｄｐ、ｄｖ）を管理する秘密情報管理手段（１０２）と、
少なくとも前記秘密情報管理手段（１０２）が管理する秘密情報（ｄｐ、ｄｖ）に対し、逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用する第１の一方向性関数計算手段（１０４）と、
前記証明情報管理手段（１０３）が管理する証明情報（Ｋ）と、前記第１の一方向性関数計算手段（１０４）の計算結果をもとに証明補助情報（ｔｐ、ｔｖ）を計算する証明補助情報計算手段（１０５）と、
証明補助情報の計算の過程で情報を送受信する第１の通信手段（１０１）とを有し、
前記検証部（２０）は、
秘密情報（ｄｖ）を保持する第１の秘密情報保持手段（２０６）と、
証明補助情報（ｔｖ）を管理する第１の証明補助情報管理手段（２０７）と、
第１の試験情報（ｒ１）を計算する第１の試験情報計算手段（２０９）と、
逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用する第２の一方向性関数計算手段（２０３）と、
（ｉ）（ａ）少なくとも前記第１の秘密情報保持手段（２０６）が保持する秘密情報（ｄｖ）に前記第２の一方向性関数計算手段（２０３）を作用させた結果と前記第１の証明補助情報管理手段（２０７）が管理する証明補助情報（ｔｖ）とをもとに得られる値（Ｋ）と、（ｂ）受信した第２の試験情報（ｒ２）と、（ｃ）内部状態変更情報（ｍ）とに対して前記第２の一方向性関数計算手段（２０３）を作用させた結果からなる第１応答情報部分（ｆ（Ｋ，ｒ２，ｍ））と、（ｉｉ）前記内部状態変更情報（ｍ）からなる第２応答情報部分（ｍ）とを含む第１の応答情報（Ｒ１）を計算する第１の応答情報計算手段（２１０）と、
（ｉ）（ａ）少なくとも前記第１の秘密情報保持手段（２０６）が保持する秘密情報（ｄｖ）に前記第２の一方向性関数計算手段（２０３）を作用させた結果と前記第１の証明補助情報管理手段（２０７）が管理する証明補助情報（ｔｖ）とをもとに得られる値（Ｋ）と、（ｂ）第１の試験情報（ｒ１）とに対し前記第２の一方向性計算手段（２０３）を作用させた結果（ｆ（Ｋ，ｒ１））と、（ｉｉ）前記証明部（３０）から送られてきた第２の応答情報（Ｒ２）が等しいか検査する第１の応答情報検証手段（２１１）と、
利用資格の認証の過程で情報を送受信する第２の通信手段（２０５）とを有し、
前記証明部（３０）は、
秘密情報（ｄｐ）を保持する第２の秘密情報保持手段（３０６）と、
応答情報の作成に用いるために前記証明補助情報発行部（１０）から送られてきた証明補助情報（ｔｐ）を管理する第２の証明補助情報管理手段（３０７）と、
検証された利用資格に基づく利用に対応して変更される内部状態を管理する内部状態管理手段（３１２）と、
逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用する第３の一方向性関数計算手段（３０４）と、
（ｉ）（ａ）少なくとも前記第２の秘密情報保持手段（３０６）が保持する秘密情報（ｄｐ）に前記第３の一方向性関数計算手段（３０４）を作用させた結果と、（ｂ）前記第２の証明補助情報管理手段（３０７）が管理する証明補助情報（ｔｐ）とをもとに得られる値（Ｋ’）と、（ｉｉ）第１の試験情報（ｒ１）とにさらに前記第３の一方向性関数計算手段（３０４）を作用させて第２の応答情報（Ｒ２）を計算する第２の応答情報計算手段（３１０）と、
第２の試験情報（ｒ２）を計算する第２の試験情報計算手段（３０９）と、
（ｉ）（ａ）少なくとも前記第２の秘密情報保持手段（３０６）が保持する秘密情報（ｄｐ）に対して前記第３の一方向性関数計算手段（３０４）を作用させた結果と、前記第２の証明補助情報管理手段（３０７）が管理する証明補助情報（ｔｐ）とをもとに得られる値（Ｋ’）と、（ｂ）第２の試験情報（ｒ２）と、（ｃ）前記第１の応答情報（Ｒ１）の第２応答情報部分（ｍ）とに対して前記第３の一方向性関数計算手段（３０４）を作用させた結果（ｆ（Ｋ’，ｒ２，ｍ））と、前記第１の応答情報の第１応答情報部分（ｆ（Ｋ，ｒ２，ｍ））が等しいか検査する第２の応答情報検証手段（３１１）と、
利用資格の認証の過程および証明補助情報計算の過程で情報を送受信する第３の通信手段（３０５）とを有し、前記検証部（２０）は、前記第１の応答情報検証手段（２１１）の検証結果に基づいて利用資格を検証し、前記証明部（３０）は第２の応答情報検証手段（３１１）の検証結果に基づいて前記内部状態の変更を許容する特徴とする利用資格検証装置。
【請求項８】
請求項６ないし請求項７の利用資格検証装置であって、証明情報管理手段は、利用条件を示す情報である使用制限記述を証明情報と併せて管理し、証明補助情報管理手段、使用制限記述を証明補助情報と併せて管理し、証明部で用いる証明補助情報および証明部で生成される応答情報の計算には使用制限記述を含むことを特徴とする利用資格検証装置。
【請求項９】
請求項６ないし請求項８の利用資格検証装置であって、復号手段を備え、利用資格があると判定した場合には、証明情報あるいは証明情報から得られる値を前記復号手段の復号鍵として用い、情報を復号することを特徴とする利用資格検証装置。
【請求項１０】
請求項６ないし請求項９の利用資格検証装置であって、利用資格検証時の履歴を管理する履歴管理手段を備え、証明情報保持手段あるいは第１の証明補助情報管理手段は、伝達情報を証明情報あるいは証明補助情報と併せて管理し、試験情報はさらに伝達情報を含み、利用資格検証時に前記伝達情報を履歴管理手段に格納することを特徴とする利用資格検証装置。
【請求項１１】
証明補助情報発行部（１０）、検証部（２０）および証明部（３０）を用いて利用資格を検証する利用資格検証方法において、
前記証明補助情報発行部（１０）が実行する証明補助情報発行ステップは、
証明情報管理手段（１０３）が、利用資格の認証の際に用いる証明情報を保持する証明情報保持サブステップと、
秘密情報管理手段（１０２）が、秘密情報を保持する秘密情報保持サブステップと、
一方向性関数計算手段（１０４）が、少なくとも前記秘密情報保持サブステップにより保持される秘密情報に対し、逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用する第１の一方向性関数計算サブステップと、
証明補助情報計算手段（１０５）が、前記証明情報保持サブステップにより保持される証明情報と、前記第１の一方向性関数計算サブステップの計算結果をもとに証明補助情報を計算する証明補助情報計算サブステップと、
第１の通信手段（１０１）が、証明補助情報の計算の過程で情報を送受信する第１の通信サブステップとを有し、
前記検証部（２０）が実行する検証ステップは、
証明情報保持手段（２０１）が、証明情報を保持する証明情報保持サブステップと、
試験情報計算手段（２０２）が、試験情報を計算する試験情報計算サブステップと、
前記証明情報保持サブステップにより保持される証明情報と、試験情報とに対し、逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用する第２の一方向性関数計算手段（２０３）を作用させた結果と、前記証明部（３０）から送られてきた応答情報とが等しいか検査する応答情報検証サブステップと、
第２の通信手段（２０５）が、利用資格の認証の過程で情報を送受信する第２の通信サブステップとを有し、
前記証明部（３０）が実行する証明ステップは、
秘密情報保持手段（３０１）が、秘密の情報を保持する秘密情報保持サブステップと、
証明補助情報保持手段（３０２）が、応答情報の計算に用いるために前記証明補助情報発行部（１０）から送られてきた証明補助情報を保持する証明補助情報保持サブステップと、
応答情報計算手段（３０３）が、（ｉ）少なくとも前記秘密情報保持手段（３０１）が保持する秘密情報に、逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用する第３の一方向性関数計算手段（３０４）を作用させた結果と、前記証明補助情報保持手段（３０２）が保持する証明補助情報とをもとに得られる値と、（ｉｉ）試験情報とに、さらに前記第３の一方向性関数計算手段（３０４）を作用させて応答情報を計算する応答情報計算サブステップと、
第３の通信手段（３０５）が、利用資格の認証の過程および証明補助情報計算の過程で情報を送受信する第３の通信サブステップとを有し、前記検証部（２０）は、前記応答情報検証手段（２０４）の検証結果に基づいて利用資格を検証することを特徴とする利用資格検証方法。
【請求項１２】
証明補助情報発行部（１０）、検証部（２０）および証明部（３０）を用いて利用資格を検証する利用資格検証方法において、
前記証明補助情報発行部（１０）が実行する証明補助情報発行ステップは、
証明情報管理手段（１０３）が、利用資格の認証の際に用いる証明情報を保持する証明情報保持サブステップと、
秘密情報管理手段（１０２）が、秘密情報を保持する秘密情報保持サブステップと、
第１の一方向性関数計算手段（１０４）が、少なくとも前記秘密情報保持サブステップにより保持される秘密情報に対し、逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用する第１の一方向性関数計算サブステップと、
証明補助情報計算手段（１０５）が、前記証明情報保持サブステップにより保持される証明情報と、前記第１の一方向性関数計算サブステップの計算結果をもとに証明補助情報を計算する証明補助情報計算サブステップと、
第１の通信手段（１０１）が、証明補助情報の計算の過程で情報を送受信する第１の通信サブステップとを有し、
前記検証部（２０）が実行する検証ステップは、
証明情報保持手段（２０１）が、証明情報を保持する証明情報保持サブステップと、
第１の試験情報計算手段（２０９）が、第１の試験情報を計算する第１の試験情報計算サブステップと、
第１の応答情報計算手段（２１０）が、（ｉ）前記証明部（３０）受信した第２の試験情報と、前記証明情報保持ステップで保持している証明情報と、内部状態に対して、逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用する第２の一方向性関数計算手段（２０３）を作用させた結果からなる第１応答情報部分と、（ｉｉ）前記内部状態変更情報からなる第２応答上方部分とを含む第１の応答情報を計算する第１の応答情報計算サブステップと、
第１の応答情報検証手段（２１１）が、（ｉ）前記証明情報保持サブステップにより保持される証明情報と、第１の試験情報とに対し前記第２の一方向性計算サブステップを作用させた結果と、（ｉｉ）前記証明部から送られてきた第２の応答情報が等しいか検査する第１の応答情報検証サブステップと、
第２の通信手段（２０５）が、利用資格の認証の過程で情報を送受信する第２の通信サブステップとを有し、
前記証明部（３０）が実行する証明ステップは、
秘密情報保持手段（３０１）が、秘密の情報を保持する秘密情報保持サブステップと、
証明補助情報管理手段（３０２）が、応答情報の計算に用いるために前記証明補助情報発行部（１０）から送られてきた証明補助情報を保持する証明補助情報保持サブステップと、
内部状態管理手段（３１２）が、検証された利用に対応して変更される内部状態を保持する内部状態保持サブステップと、
第２の応答情報計算手段（３１０）が、（ｉ）少なくとも前記秘密情報保持サブステップにより保持された秘密情報に対して逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用する第３の一方向性関数計算を作用させた結果と、前記証明補助情報保持サブステップにより保持された証明補助情報とをもとに得られる値と、（ｉｉ）第１の試験情報とにさらに前記第３の一方向性関数計算手段（３０４）を作用させて第２の応答情報を計算する第２の応答情報計算サブステップと、
第２の試験情報計算手段（３０９）が、第２の試験情報を計算する第２の試験情報計算サブステップと、
第２の応答情報検証手段（３１１）が、（ｉ）（ａ）少なくとも前記秘密情報保持サブステップにより保持された秘密情報に対して前記第３の一方向性関数計算手段を作用させた結果と、前記証明補助情報保持サブステップにより保持された証明補助情報とをもとに得られる値と、（ｂ）前記第２の試験情報と、（ｃ）前記第１の応答情報の第２応答情報部分に対して前記第３の一方向性関数計算手段（３０４）を作用させた結果と、（ｉｉ）前記第１応答情報の第１応答情報部分が等しいか検査する第２の応答情報検証サブステップと、
第３の通信手段（３０５）が、利用資格の認証の過程および証明補助情報計算の過程で情報を送受信する第３の通信サブステップとを有し、前記検証部（２０）は、前記第１の応答情報検証手段（２１１）の検証結果に基づいて利用資格を検証し、前記証明部（３０）は第２応答情報検証手段（３１１）の検証結果に基づいて前記内部状態の変更を許容することを特徴とする利用資格検証方法。
【請求項１３】
証明補助情報発行部（１０）、検証部（２０）および証明部（３０）を用いて利用資格を検証する利用資格検証方法において、
前記証明情報補助情報発行部（１０）が実行する証明補助情報発行ステップは、
証明情報管理手段（１０３）が、利用資格の認証の際に用いる証明情報を保持する証明情報保持サブステップと、
秘密情報管理手段（１０２）が、秘密情報を保持する秘密情報保持サブステップと、
一方向性関数計算手段（１０４）が、少なくとも前記秘密情報保持サブステップにより保持される秘密情報に対し、逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用する第１の一方向性関数計算サブステップと、
証明補助情報計算手段（１０５）が、前記証明情報保持サブステップにより保持される証明情報と、前記第１の一方向性関数計算サブステップの計算結果をもとに証明補助情報を計算する証明補助情報計算サブステップと、
第１の通信手段（１０１）が、証明補助情報の計算の過程で情報を送受信する第１の通信サブステップとを有し、
前記検証部（２０）が実行する検証ステップは、
第１の秘密情報保持手段（２０６）が、秘密情報を保持する第１の秘密情報保持サブステップと、
第１の証明補助情報保持手段（２０７）が、証明補助情報を保持する第１の証明補助情報保持サブステップと、
第１の試験情報計算手段（２０９）が、第１の試験情報を計算する第１の試験情報計算サブステップと、
逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用する第２の一方向性関数計算サブステップと、
前記第１の応答情報計算手段（２１０）が、（ｉ）（ａ）少なくとも前記第１の秘密情報保持ステップにより保持された秘密情報に逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用する第２の一方向性関数計算手段（２０３）を作用させた結果と前記第１の証明補助情報管理手段（２０７）が管理する証明補助情報とをもとに得られる値と、（ｂ）受信した第２の試験情報と、（ｃ）内部状態変更情報とに対して、前記第２の一方向性関数計算手段（２０３）を作用させた結果からなる第１応答情報部分と、（ｉｉ）前記内部状態変更情報からなる第２応答情報部分とを含む第１の応答情報を計算する第１の応答情報計算サブステップと、
第１の応答情報検証手段（２１１）が、（ｉ）（ａ）少なくとも前記第１の秘密情報保持手段（２０６）が保持する秘密情報に前記第２の一方向性関数計算手段（２０３）を作用させた結果と前記第１の証明補助情報管理手段（２０７）が管理する証明補助情報とをもとに得られる値と、（ｂ）第１の試験情報とに対し前記第２の一方向性計算手段を作用させた結果と、（ｉｉ）前記証明部（３０）から送られてきた第２の応答情報が等しいか検査する第１の応答情報検証サブステップと、
第２の通信手段（２０５）が、利用資格の認証の過程で情報を送受信する第２の通信サブステップとを有し、
前記証明部（３０）が実行する証明ステップは、
第２の秘密情報保持手段（３０６）が、秘密の情報を保持する第２の秘密情報保持サブステップと、
第２の証明補助情報管理手段（３０７）が、応答情報の作成に用いるために前記証明補助情報発行部（１０）から送られてきた証明補助情報を保持する第２の証明補助情報保持サブステップと、
内部状態管理手段（３１２）が、検証された利用資格に基づく利用に対応して変更される内部状態を保持する内部状態保持サブステップと、
第２の応答情報計算手段（３１０）が、（ｉ）（ａ）少なくとも前記秘密情報保持サブステップにより保持される秘密情報に逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用する第３の一方向性関数計算手段（３０４）を作用させた結果と、（ｂ）前記第２の証明補助情報保持サブステップにより保持される証明補助情報とをもとに得られる値と、（ｉｉ）前記第１の試験情報とにさらに前記第３の一方向性関数計算手段（３０４）を作用させて第２の応答情報を計算する第２の応答情報計算サブステップと、
第２の試験情報計算手段（３０９）が、第２の試験情報を計算する第２の試験情報計算サブステップと、
第２の応答情報検証手段（３１１）が、（ｉ）（ａ）少なくとも前記秘密情報保持サブステップにより保持される秘密情報に対して前記第３の一方向性関数計算手段を作用させた結果と、前記第２の証明補助情報保持サブステップにより保持される証明補助情報とをもとに得られる値と、（ｂ）第２の試験情報と、（ｃ）前記第２の応答情報の第２応答情報部分とに対して前記第３の一方向性関数計算手段（３０４）を作用させた結果と、（ｉｉ）前記第１の応答情報の第１応答上方部分が等しいか検査する第２の応答情報検証サブステップと、
第３の通信手段（３０５）が、利用資格の認証の過程および証明補助情報計算の過程で情報を送受信する第３の通信サブステップとを有し、前記検証部（２０）は、前記第１の応答情報検証手段（２１１）の検証結果に基づいて利用資格を検証し、前記証明部（３０）は前記第２の応答情報検証手段（３１１）の検証結果に基づいて前記内部状態の変更を許容することを特徴とする利用資格検証方法。
【請求項１４】
証明補助情報発行装置（１０）、応答情報検証装置（２０）および証明装置（３０）を有し、利用資格を検証する利用資格検証システムにおいて、
前記証明補助情報発行装置（１０）は、
利用資格の認証の際に用いる証明情報を管理する証明情報管理手段（１０３）と、
秘密情報を管理する秘密情報管理手段（１０２）と、
少なくとも前記秘密情報管理手段が管理する秘密情報に対し、逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用する第１の一方向性関数計算手段（１０４）と、
前記証明情報管理手段（１０３）が管理する証明情報と、前記第１の一方向性関数計算手段（１０４）の計算結果をもとに証明補助情報を計算する証明補助情報計算手段（１０５）と、
証明補助情報の計算の過程で情報を送受信する第１の通信手段（１０１）とを有し、
前記応答情報検証装置（２０）は、
証明情報を保持する証明情報保持手段（２０１）と、
試験情報を計算する試験情報計算手段（２０２）と、
逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用する第２の一方向性関数計算手段（２０３）と、
（ｉ）前記証明情報保持手段（２０１）が保持する証明情報と、試験情報とに対し前記第２の一方向性計算手段（２０３）を作用させた結果と、（ｉｉ）前記証明装置（３０）から送られてきた応答情報とが等しいか検査する応答情報検証手段（２０４）と、
利用資格の認証の過程で情報を送受信する第２の通信手段（２０５）とを有し、
前記証明装置（３０）は、
秘密情報を保持する秘密情報保持手段（３０１）と、
応答情報の計算に用いるために前記証明補助情報発行装置（１０）から送られてきた証明補助情報を管理する証明補助情報管理手段（３０２）と、
逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用する一方向性関数計算手段（３０４）と、
（ｉ）少なくとも前記秘密情報保持手段（３０１）が保持する秘密情報に前記一方向性関数計算手段（３０４）を作用させた結果と、前記証明補助情報管理手段（３０２）が管理する証明補助情報とをもとに得られる値と、（ｉｉ）前記応答情報検証装置（２０）から受け取った試験情報とに、さらに前記一方向性関数計算手段（３０４）を作用させて応答情報を計算する応答情報計算手段（３０３）と、
利用資格の認証の過程で情報を送受信する第３の通信手段（３０５）とを有し、
前記応答情報検証装置（２０）は、前記応答情報検証手段（２０４）の検証結果に基づいて利用資格を検証することを特徴とする利用資格検証システム。
【請求項１５】
証明補助情報発行装置（１０）、応答情報検証装置（２０）および証明装置（３０）を有し、利用資格を検証する利用資格検証システムにおいて、
前記証明補助情報発行装置（１０）は、
利用資格の認証の際に用いる証明情報を管理する証明情報管理手段（１０３）と、
秘密情報を管理する秘密情報管理手段（１０２）と、
少なくとも前記秘密情報管理手段が管理する秘密情報に対し、逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用する、第１の一方向性関数計算手段（１０４）と、
前記証明情報管理手段（１０３）が管理する証明情報と、前記第１の一方向性関数計算手段（１０４）の計算結果をもとに証明補助情報を計算する証明補助情報計算手段（１０５）と、
証明補助情報の計算の過程で情報を送受信する第１の通信手段（１０１）とを有し、
前記応答情報検証装置（２０）は、
秘密情報を保持する第１の秘密情報保持手段（２０６）と、
前記証明補助情報発行装置から送られてきた証明補助情報を管理する第１の証明補助情報管理手段（２０７）と、
試験情報を計算する試験情報計算手段（２０２）と、
逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用する第２の一方向性関数計算手段（２０３）と、
（ｉ）（ａ）少なくとも前記第１の秘密情報保持手段（２０６）が保持する秘密情報に前記第２の一方向性関数計算手段（２０３）を作用させた結果と、前記第１の証明補助情報管理手段（２０７）が管理する証明補助情報とをもとに得られる値と、（ｂ）試験情報とに対しさらに前記第２の一方向性計算手段（２０３）を作用させた結果と、（ｉｉ）前記証明装置（３０）から送られてきた応答情報とが等しいか検査する応答情報検証手段と、
利用資格の認証の過程で情報を送受信する第２の通信手段（２０５）とを有し、
前記証明装置（３０）は、
秘密情報を保持する第２の秘密情報保持手段（３０６）と、
応答情報の計算に用いるために前記証明補助情報発行装置（１０）から送られてきた証明補助情報を管理する第２の証明補助情報管理手段（３０７）と、
逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用する第３の一方向性関数計算手段（３０４）と、
（ｉ）少なくとも前記第２の秘密情報保持手段（３０６）が保持する秘密情報に前記第３の一方向性関数計算手段（３０４）を作用させた結果と、前記第２の証明補助情報管理手段（３０７）が管理する証明補助情報とをもとに得られる値と、（ｉｉ）試験情報とに、さらに前記第３の一方向性関数計算手段（３０４）を作用させて応答情報を計算する応答情報計算手段（３０３）と、
利用資格の認証の過程で情報を送受信する第３の通信手段（３０５）とを有し、
前記応答情報検証装置（２０）は、前記応答情報検証手段（２０４）の検証結果に基づいて利用資格を検証することを特徴とする利用資格検証システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、利用資格を検証する利用資格検証装置に関する。
【０００２】
【従来の技術】
ネットワークの進展につれ、ソフトウェアやマルチメディアデータなどのデジタル情報で表現された知的財産が飛躍的に増大している。そして、デジタル情報は簡単に複製することがで、また不正にコピーしたとしても一切痕跡が残らない。このため、デジタル情報に関する著作権の保護が問題となっている。
【０００３】
利用の権利を表すものとして日常的に用いているものにチケットがあり、チケットのデジタル化も試みられている。しかしながら、前述の著作権保護と同様の問題がある。
【０００４】
ソフトウェアの利用資格を検証する従来の技術として、米国特許５，５８６，１８６号明細書で開示されている技術がある。（以下、従来技術と呼ぶ。）この技術はソフトウェアのアクセス制御を実現するものであるが、暗号化されたソフトウェアを復号する代わりに、暗号化された所与の情報が正しく復号されることで利用資格を確認することにより、チケットのデジタル化にも用いることができる。
【０００５】
従来技術では、ソフトウェアを暗号化した状態で配布しておき、利用者が該ソフトウェアの利用を希望するときには、復号するための情報（利用者鍵）をソフトウェアベンダから購入する方法を採っている。暗号化にはＲＳＡ（Ｒｉｖｅｓｔ−Ｓｈａｍｉｒ−Ａｄｌｅｍａｎ）公開鍵暗号を用いており、利用者鍵としてＲＳＡ公開鍵対の秘密鍵と利用者識別情報に所定の演算を行なって得られる値を使用する。
【０００６】
【従来技術の問題点】
従来技術は、ＲＳＡベースの認証方式であるため、計算量が多い。ＢｒｕｃｅＳｃｈｎｅｉｅｒ，Ａｐｐｌｉｅｄ  Ｃｒｙｐｔｏｇｒａｐｈｙ（Ｓｅｃｏｎｄ  Ｅｄｉｔｉｏｎ），Ｗｉｌｅｙ，１９９６によれば、ワークステーション（ＳＰＡＲＣ２）で、法数１０２４ビット・公開鍵８ビットのＲＳＡ暗号系を使って１０２４ビットのデータを処理する時間は、署名が０．９７秒、検証が０．０８秒かかっている。このため、ＩＣカードのような、ワークステーションと比較してはるかにＣＰＵパワー・メモリが少ない装置では、認証のために時間が掛かるという問題がある。
【０００７】
【発明が解決しようとする課題】
本発明は上記の問題に鑑みてなされたもので、ＩＣカードのようにＣＰＵパワー・メモリの少ない装置でも高速に認証が可能な利用資格検証装置の実現を課題とする。
【０００８】
【課題を解決する手段】
前記課題を解決するため、請求項１の利用資格検証装置は、証明補助情報発行部、検証部および証明部を有する。そして、前記証明補助情報発行部は、利用資格の認証の際に用いる証明情報を管理する証明情報管理手段と、秘密の情報を管理する秘密情報管理手段と、証明補助情報の計算に用いる第１の一方向性関数計算手段と、証明補助情報を計算する証明補助情報計算手段と、第１の通信手段とを有する。また、前記検証部は、証明情報を保持する証明情報保持手段と、試験情報を計算する試験情報計算手段と、第２の一方向性関数計算手段と、応答情報を検証する応答情報検証手段と、第２の通信手段とを有する。さらに、前記証明部は、秘密情報を保持する秘密情報保持手段と、証明補助情報を管理する証明補助情報管理手段と、第３の一方向性関数計算手段と、応答情報を計算する応答情報計算手段と、第３の通信手段とを有する。
【０００９】
また、請求項２の利用資格検証装置は、証明補助情報発行部、検証部および証明部を有する。そして、前記証明補助情報発行部は、証明情報を管理する証明情報管理手段と、秘密の情報を管理する秘密情報管理手段と、証明補助情報の計算に用いる第１の一方向性関数計算手段と、証明補助情報を計算する証明補助情報計算手段と、第１の通信手段とを有する。また、前記検証部は、秘密情報を保持する第１の秘密情報保持手段と、証明補助情報を管理する第１の証明補助情報管理手段と、試験情報を計算する試験情報計算手段と、第２の一方向性関数計算手段と、応答情報を検証する応答情報検証手段と、第２の通信手段とを有する。さらに、前記証明部は、秘密情報を保持する第２の秘密情報保持手段と、証明補助情報を管理する第２の証明補助情報管理手段と、第３の一方向性関数計算手段と、応答情報を計算する応答情報計算手段と、第３の通信手段とを有する。
【００１０】
請求項３の利用資格検証装置は、請求項１ないし請求項２の利用資格検証装置であって、証明情報管理手段は、利用条件を示す情報である使用制限記述を証明情報と併せて管理し、証明補助情報管理手段は、使用制限記述を証明補助情報と併せて管理し、前記証明部で用いる証明補助情報および前記証明部で生成される応答情報の計算には使用制限記述を含む。
【００１１】
請求項４の利用資格検証装置は、請求項１ないし請求項３の利用資格検証装置であって、復号手段を備え、利用資格があると判定した場合には、証明情報あるいは証明情報から得られる値を前記復号手段の復号鍵として用い、情報を復号する。
【００１２】
請求項５の利用資格検証装置は、請求項１ないし請求項４の利用資格検証装置であって、利用資格検証時の履歴を管理する履歴管理手段を備え、第１の証明補助情報管理手段は、伝達情報を証明補助情報と併せて管理し、試験情報はさらに伝達情報を含み、利用資格検証時に前記伝達情報を履歴管理手段に格納する。
【００１３】
請求項６の利用資格検証装置は、証明補助情報発行部、検証部および証明部を有する。そして、前記証明補助情報発行部は、利用資格の認証の際に用いる証明情報を管理する証明情報管理手段と、秘密の情報を管理する秘密情報管理手段と、少なくとも前記秘密情報管理手段が管理する秘密情報に対し、逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用する第１の一方向性関数計算手段と、前記秘密情報管理手段が管理する秘密情報と、前記第１の一方向性関数計算手段の計算結果をもとに証明補助情報を計算する証明補助情報計算手段と、証明補助情報の計算の過程で情報を送受信する第１の通信手段とを有する。また、前記検証部は、証明情報を保持する証明情報保持手段と、第１の試験情報を計算する第１の試験情報計算手段と、逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用する第２の一方向性関数計算手段と、受信した第２の試験情報に前記第２の一方向性関数計算手段を作用させ、第１の応答情報を計算する第１の応答情報計算手段と、前記証明情報保持手段が保持する証明情報と、第１の試験情報の一部もしくは全部をもとに得られる値に対し前記第２の一方向性計算手段を作用させた結果と第２の応答情報が等しいか検査する第１の応答情報検証手段と、利用資格の認証の過程で情報を送受信する第２の通信手段とを有する。さらに、前記証明部は、秘密の情報を保持する秘密情報保持手段と、応答情報の作成に用いる証明補助情報を管理する証明補助情報管理手段と、証明補助情報に対応する内部状態を管理する内部状態管理手段と、試験情報を計算する第２の試験情報計算手段と、逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用する第３の一方向性関数計算手段と、受信した情報の一部もしくは全部と、前記秘密情報保持手段が保持する秘密情報と、前記証明補助情報管理手段が管理する証明補助情報をもとに得られる値に、前記第３の一方向性関数計算手段を作用させて第２の応答情報を計算する第２の応答情報計算手段と、第２の試験情報を計算する第２の試験情報計算手段と、第１の応答情報、および第２の試験情報の一部もしくは全部と、前記秘密情報保持手段が保持する秘密情報と、前記証明補助情報管理手段が管理する証明補助情報をもとに得られる値に、前記第３の一方向性関数計算手段を作用させた結果と応答情報が等しいか検査する第２の応答情報検証手段と、利用資格の認証の過程および証明補助情報計算の過程で情報を送受信する第３の通信手段とを有している。
【００１４】
請求項７の利用資格検証装置は、証明補助情報発行部、検証部および証明部を有する。そして、前記証明情報発行部は、利用資格の認証の際に用いる証明情報を管理する証明情報管理手段と、秘密の情報を管理する秘密情報管理手段と、少なくとも前記秘密情報管理手段が管理する秘密情報に対し、逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用する第１の一方向性関数計算手段と、前記秘密情報管理手段が管理する秘密情報と、前記第１の一方向性関数計算手段の計算結果をもとに証明補助情報を計算する証明補助情報計算手段と、証明補助情報の計算の過程で情報を送受信する第１の通信手段と、秘密の情報を保持する第１の秘密情報保持手段と、証明補助情報を管理する第１の証明補助情報管理手段と、第１の試験情報を計算する第１の試験情報計算手段と、逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用する第２の一方向性関数計算手段と、受信した第２の試験情報に前記第２の一方向性関数計算手段を作用させ、第１の応答情報を計算する第１の応答情報計算手段と、前記証明情報保持手段が保持する証明情報と、第１の試験情報の一部もしくは全部をもとに得られる値に対し前記第２の一方向性計算手段を作用させた結果と第２の応答情報が等しいか検査する第１の応答情報検証手段と、利用資格の認証の過程で情報を送受信する第２の通信手段とを有する。さらに、前記証明部は、秘密の情報を保持する第２の秘密情報保持手段と、応答情報の作成に用いる証明補助情報を管理する第２の証明補助情報管理手段と、証明補助情報に対応する内部状態を管理する内部状態管理手段と、試験情報を計算する第２の試験情報計算手段と、逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用する第３の一方向性関数計算手段と、受信した情報の一部もしくは全部と、前記秘密情報保持手段が保持する秘密情報と、前記証明補助情報管理手段が管理する証明補助情報をもとに得られる値に、前記第３の一方向性関数計算手段を作用させて第２の応答情報を計算する第２の応答情報計算手段と、第２の試験情報を計算する第２の試験情報計算手段と、第１の応答情報、および第２の試験情報の一部もしくは全部と、前記秘密情報保持手段が保持する秘密情報と、前記証明補助情報管理手段が管理する証明補助情報をもとに得られる値に、前記第３の一方向性関数計算手段を作用させた結果と応答情報が等しいか検査する第２の応答情報検証手段と、利用資格の認証の過程および証明補助情報計算の過程で情報を送受信する第３の通信手段とを有している。
【００１５】
請求項８の利用資格検証装置は、請求項６ないし請求項７の利用資格検証装置であって、証明情報管理手段は、利用条件を示す情報である使用制限記述を証明情報と併せて管理し、証明補助情報管理手段は、使用制限記述を証明補助情報と併せて管理し、前記証明部で用いる証明補助情報および前記証明部で生成される応答情報の計算には使用制限記述を含む。
【００１６】
請求項９の利用資格検証装置は、請求項６ないし請求項８の利用資格検証装置であって、復号手段を備え、利用資格があると判定した場合には、証明情報あるいは証明情報から得られる値を前記復号手段の復号鍵として用い、情報を復号する。
【００１７】
請求項１０の利用資格検証装置は、請求項６ないし請求項９の利用資格検証装置であって、利用資格検証時の履歴を管理する履歴管理手段を備え、第１の証明補助情報管理手段は、伝達情報を証明補助情報と併せて管理し、試験情報はさらに伝達情報を含み、利用資格検証時に前記伝達情報を履歴管理手段に格納する。
【００１８】
【作用】
本発明の利用資格検証装置は、証明補助情報の発行と、利用資格の検証を行う。
【００１９】
証明補助情報の発行では、各手段はいずれの請求項の利用資格検証装置も以下の作用をする。
【００２０】
第１の通信手段で、秘密情報保持手段を有するどの機器に対して、どのような権利を発行するかを識別するための情報を受信する。該権利を期間などで制限する使用制限記述がある場合には、このとき使用制限記述が併せて指定される。
【００２１】
秘密情報管理手段は、機器を識別する情報から、該機器の秘密情報保持手段が保持する秘密情報を検索する。
【００２２】
証明情報管理手段は、権利を識別する情報から、該権利に対応する証明情報を検索する。第１の一方向性関数計算手段は、少なくとも該秘密情報と該権利識別情報に対し、逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用する。使用制限記述が存在する場合には、使用制限記述も含めて一方向性関数を適用する。
【００２３】
証明補助情報計算手段は、該証明情報と、一方向性関数を適用した結果得られる値をもとに、証明補助情報を計算する。
【００２４】
該証明補助情報は、第１の通信手段から送信され、該機器の通信手段へと伝達されて、該機器の証明補助情報管理手段に格納される。
【００２５】
請求項１の利用資格検証装置での利用資格の検証における作用は、以下の通りである。
【００２６】
試験情報計算手段は、乱数を生成し、該乱数と証明情報保持手段が保持する権利の識別情報を併せて試験情報とする。
【００２７】
該試験情報は、第２の通信手段から第３の通信手段へと伝達される。
証明補助情報管理手段は、該試験情報に含まれる権利の識別情報に対応する証明補助情報を検索する。
【００２８】
第３の一方向性関数計算手段は、秘密情報保持手段が保持する秘密情報と該権利識別情報に対し、逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用する。
【００２９】
応答情報計算手段は、前記の一方向性関数の計算結果と該証明補助情報とを演算し、証明情報を求める。第３の一方向性関数計算手段は、該証明情報と該試験情報の乱数に対し、逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用し、応答情報とする。
【００３０】
第３の通信手段は、応答情報を第２の通信手段へ伝達する。
【００３１】
第２の一方向性関数計算手段は、該証明情報と該試験情報の乱数に対し、逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用する。
【００３２】
応答情報検証部は、前記一方向性関数の適用結果と、該応答情報とを比較し、一致する場合に限り利用資格があるものと判定する。
【００３３】
請求項２の利用資格検証装置での利用資格の検証における作用は、以下の通りである。
【００３４】
利用資格の検証に先立ち、第２の通信手段から権利の識別情報を入力するか、事前に定められた規則にしたがって計算することにより、どの権利を検証するかを決定する。
【００３５】
試験情報計算手段は、乱数を生成し、該乱数と該権利の識別情報を併せて試験情報とする。
【００３６】
該試験情報は、第２の通信手段から第３の通信手段へと伝達される。
第２の証明補助情報管理手段は、該試験情報に含まれる権利の識別情報に対応する証明補助情報を検索する。
【００３７】
第３の一方向性関数計算手段は、秘密情報保持手段が保持する秘密情報と該権利識別情報に対し、逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用する。
【００３８】
応答情報計算手段は、前記の一方向性関数の計算結果と該証明補助情報とを演算し、証明情報を求める。
【００３９】
第３の一方向性関数計算手段は、該証明情報と該試験情報の乱数に対し、逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用し、応答情報とする。
【００４０】
第３の通信手段は、応答情報を第２の通信手段へ伝達する。
【００４１】
第２の一方向性関数計算手段は、秘密情報保持手段が保持する秘密情報と該権利識別情報に対し、逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用する。
【００４２】
応答情報計算手段は、前記の一方向性関数の計算結果と該証明補助情報とを演算し、証明情報を求める。
【００４３】
第２の一方向性関数計算手段は、該証明情報と該試験情報の乱数に対し、逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用する。
【００４４】
応答情報検証部は、前記一方向性関数の適用結果と、該応答情報とを比較し、一致する場合に限り利用資格があるものと判定する。
【００４５】
請求項３の利用資格検証装置での利用資格の検証における作用は、以下の通りである。
【００４６】
この利用資格検証装置は、請求項１ないし請求項２の利用資格検証装置と同様の手段を備える。
【００４７】
応答情報の計算に用いる証明補助情報を管理する証明補助情報管理手段は、使用限記述を証明補助情報と併せて管理し、権利の識別情報から証明補助情報を検索する際、使用制限記述も同時に検索する。
【００４８】
第３の一方向性関数計算手段は、該権利識別情報、該使用制限記述、および秘密情報保持手段が保持する秘密情報に対し、逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用する。
【００４９】
応答情報計算手段は、前記の一方向性関数の計算結果と該証明補助情報とを演算し、証明情報を求める。第３の一方向性関数計算手段は、該証明情報、該試験情報の乱数、および該使用制限記述に対し、逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用する。該使用制限記述とここで得られた値とを併せて、応答情報とする。
【００５０】
応答情報検証手段は、証明情報、該試験情報の乱数、該応答情報の使用制限記述に対して第１の一方向性関数計算手段を適用した値と、該応答情報の使用制限記述以外の情報が一致し、かつ使用制限記述が所定の条件を満たす場合に限り利用資格があるものと判定する。（応答情報計算手段で使用制限記述が所定の条件を満たすか判定する方法もある。）
請求項４の利用資格検証装置での利用資格の検証における作用は、以下の通りである。
【００５１】
この利用資格検証装置は、請求項１ないし請求項３の利用資格検証装置と同様の手段を備える。
【００５２】
応答情報検証手段で、利用資格があるものと判定された場合には、復号手段により証明情報あるいは証明情報から得られる値を前記復号手段の復号鍵として用い、情報を復号する。
【００５３】
請求項５の利用資格検証装置での利用資格の検証における作用は、以下の通りである。
【００５４】
この利用資格検証装置は、請求項１ないし請求項４の利用資格検証装置と同様の手段を備える。
【００５５】
証明情報保持手段あるいは第１の証明補助情報管理手段は、伝達情報を証明情報あるいは証明補助情報と併せて管理する。
【００５６】
試験情報は、さらに該伝達情報を含む。
【００５７】
利用資格検証時に前記伝達情報を履歴管理手段に格納する。
【００５８】
請求項６の利用資格検証装置での利用資格の検証における作用は、以下の通りである。
【００５９】
第１の試験情報計算手段は、第１の乱数を生成し、少なくとも該乱数と証明情報保持手段が保持する権利の識別情報を併せて試験情報とする。
【００６０】
該試験情報は、第２の通信手段から第３の通信手段へと伝達される。
【００６１】
第２の試験情報計算手段は、第２の乱数を生成して、これを第２の試験情報とする。
【００６２】
第３の通信手段は、第２の試験情報を第２の通信手段に伝達する。
第１の応答情報計算手段は、少なくとも第２の試験情報を第２の一方向性関数計算手段に入力し、ここで得られた値を含む情報を第１の応答情報とする。
【００６３】
第１の応答情報は、第２の通信手段から第３の通信手段へと伝達される。
第３の一方向性関数計算手段は、秘密情報保持手段が保持する秘密情報と該権利識別情報に対し、逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用する。
【００６４】
証明補助情報管理手段は、該試験情報に含まれる権利の識別情報に対応する証明補助情報を検索する。
【００６５】
第２の応答情報計算手段は、前記の一方向性関数の計算結果と該証明補助情報とを演算し、証明情報を求める。次いで、第１の応答情報が、第２の試験情報と該証明情報を含む情報に対し、第３の一方向性関数計算手段を適用して得られる値を比較する。
【００６６】
値が所定の関係を満たさなければ意味のない値を生成して第２の応答情報とし、所定の関係を満たせば、後述の内部状態の変更と応答情報の計算を行う。
【００６７】
内部状態管理手段は、該権利識別情報に対応する内部状態を検索し、第１の試験情報もしくは第１の応答情報で伝達された情報に応じて、該内部状態を変更する。
【００６８】
第３の一方向性関数計算手段は、該証明情報と、第１の試験情報に含まれる第１の乱数に対し、逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用する。
【００６９】
第２の応答情報計算手段は、この値を第２の応答情報とする。
【００７０】
第３の通信手段は、応答情報を第２の通信手段へ伝達する。
【００７１】
第２の一方向性関数計算手段は、該証明情報と該試験情報の乱数に対し、逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用する。
【００７２】
応答情報検証部は、前記一方向性関数の適用結果と、該応答情報とを比較し、一致する場合に限り利用資格があるものと判定する。
【００７３】
請求項７の利用資格検証装置での利用資格の検証における作用は、以下の通りである。
【００７４】
利用資格の検証に先立ち、第２の通信手段から権利の識別情報を入力するか、事前に定められた規則にしたがって計算することにより、どの権利を検証するかを決定する。
【００７５】
試験情報計算手段は、乱数を生成し、該乱数と該権利の識別情報を併せて試験情報とする。
【００７６】
該試験情報は、第２の通信手段から第３の通信手段へと伝達される。
第１の証明補助情報管理手段は、該試験情報に含まれる権利の識別情報に対応する証明補助情報を検索する。
【００７７】
第１の試験情報計算手段は、第１の乱数を生成し、少なくとも該乱数と証明情報保持手段が保持する権利の識別情報を併せて試験情報とする。
該試験情報は、第２の通信手段から第３の通信手段へと伝達される。
第２の試験情報計算手段は、第２の乱数を生成して、これを第２の試験情報とする。
【００７８】
第３の通信手段は、第２の試験情報を第２の通信手段に伝達する。
第２の一方向性関数計算手段は、秘密情報保持手段が保持する秘密情報と該権利識別情報に対し、逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用する。
【００７９】
第１の応答情報計算手段は、前記の一方向性関数の計算結果と該証明補助情報とを演算し、証明情報を求める。
【００８０】
第１の応答情報計算手段は、少なくとも該証明情報と第２の試験情報を第２の一方向性関数計算手段に入力し、ここで得られた値を含む情報を第１の応答情報とする。
【００８１】
第１の応答情報は、第２の通信手段から第３の通信手段へと伝達される。
第３の一方向性関数計算手段は、秘密情報保持手段が保持する秘密情報と該権利識別情報に対し、逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用する。
【００８２】
証明補助情報管理手段は、該試験情報に含まれる権利の識別情報に対応する証明補助情報を検索する。
【００８３】
第２の応答情報計算手段は、前記の一方向性関数の計算結果と該証明補助情報とを演算し、証明情報を求める。次いで、第１の応答情報が、第２の試験情報と該証明情報を含む情報に対し、第３の一方向性関数計算手段を適用して得られる値を比較する。
【００８４】
値が所定の関係を満たさなければ意味のない値を生成して第２の応答情報とし、所定の関係を満たせば、後述の内部状態の変更と応答情報の計算を行う。
【００８５】
内部状態管理手段は、該権利識別情報に対応する内部状態を検索し、第１の試験情報もしくは第１の応答情報で伝達された情報に応じて、該内部状態を変更する。
【００８６】
第３の一方向性関数計算手段は、該証明情報と、第１の試験情報に含まれる第１の乱数に対し、逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用する。
【００８７】
第２の応答情報計算手段は、この値を第２の応答情報とする。
【００８８】
第３の通信手段は、応答情報を第２の通信手段へ伝達する。
【００８９】
第２の一方向性関数計算手段は、該証明情報と該試験情報の乱数に対し、逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用する。
【００９０】
応答情報検証部は、前記一方向性関数の適用結果と、該応答情報とを比較し、一致する場合に限り利用資格があるものと判定する。
【００９１】
請求項１０の利用資格検証装置での利用資格の検証における作用は、以下の通りである。
【００９２】
この利用資格検証装置は、請求項６ないし請求項９の利用資格検証装置と同様の手段を備える。
【００９３】
証明情報保持手段あるいは第１の証明補助情報管理手段は、伝達情報を証明情報あるいは証明補助情報と併せて管理する。
【００９４】
第１の試験情報もしくは第１の応答情報は、さらに該伝達情報を含む。
【００９５】
利用資格検証時に前記伝達情報を履歴管理手段に格納する。
【００９６】
【発明の実施の態様】
以下に述べる実施例の利用資格検証装置は、いずれも証明補助情報発行器、検証器、証明器の３つの要素からなる。
【００９７】
証明補助情報発行器は、利用資格の検証の過程で用いる証明補助情報を発行する。
【００９８】
検証器と証明器は対話証明を行って、利用資格の有無を検証する。対話証明の過程では、公開鍵暗号系と比べて計算量がはるかに少ない、ＭＤ５やＳＨＡなどの一方向性関数を用いる。以下の実施例では、一方向性関数として複数の引数を取るものを用いるが、各引数のビット列を連結することにより、ＭＤ５やＳＨＡを用いることができる。
【００９９】
なお、以下説明する利用者資格検証装置の実施例と請求項との対応関係は以下のとおりであり、各実施例を対応する図を参照して説明する。なお、図１〜図８は各実施例の構成を示しており、図９および図１０は動作を示している。
【０１００】
【表１】
第１の実施例            請求項１        図１
第２の実施例            請求項２        図２
第３の実施例            請求項３        図２
第４の実施例            請求項４        図３
第５の実施例            請求項５        図４、図９
第６の実施例            請求項６        図５
第７の実施例            請求項７        図６
第８の実施例            請求項８        図６
第９の実施例            請求項９        図７
第１０の実施例          請求項１０      図８、図１０
【０１０１】
［第１の実施例］
以下、第１の実施例について説明する。この実施例は、一方向性関数を用いて基本的な対話認証を行なうものである。
【０１０２】
図１は、第１の実施例の構成を示しており、この図において、利用資格検証装置は、証明補助情報発行器１０、検証器２０および証明器３０を含んでいる。証明補助情報発行器１０は証明器２０に証明補助情報を発行する。証明器３０は、この証明補助情報を利用して検証器２０との間で対話認証を行い。認証が成功すると例えばプログラム実行部４０がプログラムを実行するようになっている。
【０１０３】
証明補助情報発行器１０は、第１の通信部１０１、秘密情報管理部１０２、証明情報管理部１０３、第１の一方向性計算部１０４、証明補助情報計算部１０５を含んで構成されている。
【０１０４】
証明補助情報発行器１０の処理の流れは図１１に示されている。
【０１０５】
この証明補助情報発行器１０は、証明器３０からの要求に基づいて証明補助情報の発行を行なう。第１の通信部１０１は、証明器３０から、証明装置３０の識別情報や、どのような権利を発行するかを識別するための情報を受信する（図１１のＳ１１、Ｓ１２）。秘密情報管理部１０２は、証明装置３０を識別する情報から、証明装置３０が保持する秘密情報を検索する（Ｓ１３）。証明情報管理部１０３は、権利を識別する情報から、該権利に対応する証明情報（Ｋ）を検索する。第１の一方向性関数計算部１０４は、少なくとも秘密情報と権利識別情報とに対し、逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用する。証明補助情報計算部１０５は、証明情報と、一方向性関数を適用した結果得られる値をもとに、証明補助情報を計算する（Ｓ１４）。この証明補助情報は、第１の通信部１０１から証明器３０に送信される（Ｓ１５）。
【０１０６】
検証器２０は、証明情報保持部２０１、試験情報計算部２０２、第２の一方向性関数計算部２０３、応答情報検証器２０４および第２の通信部２０５を含んで構成されている。
【０１０７】
検証器２０は、証明器３０に試験情報を送り、証明器３０から返される証明情報を検証して証明装置との間で対話認証を行なう。
【０１０８】
検証器２０の処理の流れは図１２に示されている。
【０１０９】
証明情報保持部２０１は、権利の識別情報を保持している。試験情報計算部２０２は、乱数を生成し、乱数と証明情報保持部２０１が保持する権利の識別情報とを併せて試験情報とする（図１２のＳ２１）。この試験情報は、第２の通信部２０５から証明器３０の第３の通信部３０５へと伝達される（Ｓ２２）。また第２の通信部２０５は証明器３０から返される応答情報を受信する（Ｓ２３）。第２の一方向性関数計算部２０３は、証明情報と該試験情報の乱数に対し、逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用する。応答情報検証器２０４は、一方向性関数の適用結果と、応答情報とを比較し、一致する場合に限り利用資格があるものと判定する（Ｓ２４、Ｓ２５）。
【０１１０】
証明器３０は、秘密情報保持部３０１、証明補助情報管理部３０２、応答情報計算部３０３、第３の一方向性関数計算部３０４および第３の通信部３０５を含んで構成されている。
【０１１１】
証明器３０は、検証器２０から送られてくる試験情報に対して所定の計算を施して応答情報を生成し、検証器２０に返す。
【０１１２】
証明器３０の処理の流れは図１３に示されている。
【０１１３】
試験情報は、第２の通信部２０５から第３の通信部３０５へと伝達される（Ｓ３１）。
【０１１４】
秘密情報保持部３０１は、証明器３０に固有の秘密情報を保持している。証明補助情報管理部３０２は、試験情報に含まれる権利の識別情報に対応する証明補助情報を検索する（Ｓ３２）。証明補助情報は予め証明補助情報発行器１０から入手している。第３の一方向性関数計算部３０４は、秘密情報保持部３０１が保持する秘密情報と試験情報に含まれる権利識別情報とに対し、逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用する（Ｓ３３）。応答情報計算部３０３は、一方向性関数の計算結果と証明補助情報とを演算し、証明情報を求める。さらに第３の一方向性関数計算部３０４は、証明情報と試験情報に含まれる乱数とに対し、逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用し、応答情報とする。この応答情報は第３の通信部３０５を介して検証器２０の第２の通信部２０５に送られる（Ｓ３４、Ｓ３５）。
【０１１５】
以下、第１の実施例の認証のプロトコルについて詳細に説明する。
【０１１６】
第１の実施例では、証明補助情報ｔを以下のように定める。
【０１１７】
【数１】
ｔ＝Ｋ−ｆ（ｄ，ｎ）
ここで、Ｋは証明情報、ｆは一方向性関数、ｄは秘密情報、ｎは検証すべき権利を識別する情報である。  検証器２０から証明器３０に送る試験情報Ｃは、ｒを乱数として、
【０１１８】
【数２】
Ｃ＝（ｎ，ｒ）である。
【０１１９】
証明器３０は、以下の計算により応答情報Ｒを求める。
【０１２０】
【数３】
Ｒ＝ｆ（ｔ＋ｆ（ｄ，ｎ），ｒ）
証明器３０が、正しい証明補助情報ｔを保持している場合には、
【０１２１】
【数４】
ｔ＋ｆ（ｄ，ｎ）＝Ｋ−ｆ（ｄ，ｎ）＋ｆ（ｄ，ｎ）＝Ｋ
となって、証明情報Ｋを復元でき、
【０１２２】
【数５】
Ｒ＝ｆ（Ｋ，ｒ）
となる。
【０１２３】
検証器２０はｆ（Ｋ，ｒ）を求めて応答情報Ｒと比較し、両者が等しい場合に限り、証明器が利用資格を有するものと判定する。
【０１２４】
［第２の実施例］
つぎに第２の実施例について説明する。この実施例は、認証対象の権利が複数あり、どの権利について認証するかを予め決めるようになっている。どの権利を認証するかは、権利の識別情報を入力したり、予め定められた規則で計算を行なって決定する。一方向性関数を用いる認証手法の基本は第１の実施例と同様である。
【０１２５】
図２は第２の実施例の構成を示しており、この図において、図１と対応する箇所には対応する符号を付した。
【０１２６】
この実施例の証明補助情報発行器１０は、検証器１０および証明器２０の要求にそれぞれ応答して対応する証明補助情報を発行する。
【０１２７】
検証器２０は、第１の秘密情報保持部２０６および第１の証明補助情報管理部２０７を有している。証明器３０は、第２の秘密情報保持部３０６および第２の証明補助情報管理部３０７を有している。
【０１２８】
まず、利用資格の検証に先立ち、第２の通信部２０５を介して権利の識別情報が入力され、どの権利を検証するかが決定される。この決定は、事前に定められた規則にしたがって計算することにより、行なってもよい。
【０１２９】
試験情報計算部２０２は、乱数を生成し、乱数と権利の識別情報を併せて試験情報とする。この試験情報は、第２の通信部２０５から証明器３０の第３の通信部３０５へと伝達される。
【０１３０】
証明器３０の第２の証明補助情報管理部３０７は、試験情報に含まれる権利の識別情報に対応する証明補助情報を検索する。そして第３の一方向性関数計算部３０４は、第２の秘密情報保持部３０６が保持する秘密情報と権利識別情報とに対し、逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用する。さらに、応答情報計算部３０３は、一方向性関数の計算結果と証明補助情報とを演算し、証明情報を求める。第３の一方向性関数計算部３０４は、さらに、証明情報と該試験情報の乱数とに対し、逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用し、応答情報とする。この応答情報は第３の通信部３０５および第２の通信部２０５を介して検証器２０に送られる。
【０１３１】
検証器２０の第２の一方向性関数計算部２０３は、第１の秘密情報保持部２０６が保持する秘密情報と権利識別情報とに対し、逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用する。そして一方向性関数の計算結果と証明補助情報とに対して所定の演算が行なわれ、証明情報が求められる。第２の一方向性関数計算部２０３は、さらに証明情報と試験情報の乱数に対し、逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用する。応答情報検証器２０４は、一方向性関数の適用結果と、応答情報とを比較し、一致する場合に限り利用資格があるものと判定する。
【０１３２】
つぎに、第２の実施例の認証プロトコルについて詳細に説明する。
【０１３３】
第２の実施例では、検証器の証明補助情報ｔｖと証明器の証明補助情報ｔｐを以下のように定める。
【０１３４】
【数６】
ｔｖ＝Ｋ−ｆ（ｄｖ，ｎ）
ｔｐ＝Ｋ−ｆ（ｄｐ，ｎ）
ここで、Ｋは証明情報、ｆは一方向性関数、ｄｖは検証器２０の秘密情報、ｄｐは証明器３０の秘密情報、ｎは検証すべき権利を識別する情報である。
【０１３５】
検証器２０から証明器３０に送る試験情報Ｃは、ｒを乱数として、
【０１３６】
【数７】
Ｃ＝（ｎ，ｒ）
である。
【０１３７】
証明器３０は、以下の計算により応答情報Ｒを求める。
【０１３８】
【数８】
Ｒ＝ｆ（ｔｐ＋ｆ（ｄｐ，ｎ），ｒ）
証明器３０が、正しい証明補助情報ｔｐを保持している場合には、
【０１３９】
【数９】
ｔｐ＋ｆ（ｄｐ，ｎ）＝Ｋ−ｆ（ｄｐ，ｎ）＋ｆ（ｄｐ，ｎ）＝Ｋ
となって、証明情報Ｋを復元でき、
【０１４０】
【数１０】
Ｒ＝ｆ（Ｋ，ｒ）
となる。
【０１４１】
検証器２０は、ｔｖ＋ｆ（ｄｖ，ｎ）を計算しＫを求める。次いでｆ（Ｋ，ｒ）を求めてＲと比較し、両者が等しい場合に限り、証明器が利用資格を有するものと判定する。
【０１４２】
［第３の実施例］
つぎに第３の実施例について説明する。この実施例は、第２の実施例においてさらに利用制限を導入するものである。
【０１４３】
第３の実施例の構成自体は第２の実施例と同様であり、図２に示すとおりである。
【０１４４】
以下、第３の実施例の認証プロトコルについて説明する。
【０１４５】
第３の実施例では、検証器２０の証明補助情報ｔｖと証明器３０の証明補助情報ｔｐを以下のように定める。
【０１４６】
【数１１】
ｔｖ＝Ｋ−ｆ（ｄｖ，ｎ）
ｔｐ＝Ｋ−ｆ（ｄｐ，ｎ，Ｌ）
ここで、Ｋは証明情報、ｆは一方向性関数、ｄｖは検証器２０の秘密情報、ｄｐは証明器３０の秘密情報、ｎは検証すべき権利を識別する情報、Ｌは使用制限記述である。使用制限記述Ｌは、たとえば使用期限を表すビット列である。
【０１４７】
検証器２０から証明器３０に送る試験情報Ｃは、ｒを乱数として、
【０１４８】
【数１２】
Ｃ＝（ｎ，ｒ）
である。
【０１４９】
証明器３０は、以下の計算により応答情報Ｒを求める。
【０１５０】
【数１３】
Ｒ＝（Ｌ，ｆ（ｔｐ＋ｆ（ｄｐ，ｎ，Ｌ），ｒ，Ｌ））
証明器３０が、正しい証明補助情報ｔｐを保持している場合には、
【０１５１】
【数１４】
ｔｐ＋ｆ（ｄｐ，ｎ，Ｌ）＝Ｋ−ｆ（ｄｐ，ｎ，Ｌ）＋ｆ（ｄｐ，ｎ，Ｌ）＝Ｋ
となって、証明情報Ｋを復元でき、
【０１５２】
【数１５】
Ｒ＝（Ｌ，ｆ（Ｋ，ｒ，Ｌ））
となる。
【０１５３】
検証器２０は、ｔｖ＋ｆ（ｄｖ，ｎ）を計算しＫを求める。次いでｆ（Ｋ，ｒ）を求めてＲと比較し、両者が等く、かつ使用制限記述Ｌが使用条件を満たす場合に限り、証明器３０が利用資格を有するものと判定する。
【０１５４】
ここでは使用制限記述Ｌが使用条件を満たすか否かの判定を検証器２０で行うものとしたが、証明器３０で行うようにしてもよい。このときには、使用制限記述Ｌを応答情報に含めなくともよい。
【０１５５】
［第４の実施例］
つぎに第４の実施例について説明する。この実施例は、証明情報Ｋまたは証明情報から導出した値を鍵として暗号化された情報を復号するものである。
【０１５６】
図３は、第４の実施例の構成を示しており、この図において図２と対応する箇所には対応する符号を付した。この実施例では、検証器２０に復号部２０８が付加されている。
【０１５７】
第４の実施例で扱う情報および検証手順は第３の実施例と同じである。検証器２０の復号部２０８が、証明器３０が利用資格を有すると判定された場合に、証明情報ＫあるいはＫを用いて計算可能な値を鍵として用い、暗号化された情報を復号する。
【０１５８】
［第５の実施例］
つぎに第５の実施例について説明する。この実施例は利用履歴を管理できるようにしたものである。
【０１５９】
図４は、第５の実施例の構成を示しており、この図において、図３と対応する箇所には対応する符号を付した。図４においては、証明器３０に履歴管理部３０８を設けている。
【０１６０】
以下、第５の実施例の認証プロトコルについて説明する。
【０１６１】
この認証手順は図９にも示す。第１〜第４の実施例の各動作は第５の実施例に含まれているので第１〜第４の実施例の動作も図９から理解できる。
【０１６２】
以下、第５の実施例の認証プロトコルについて詳細に説明する。
【０１６３】
第５の実施例では、検証器２０の証明補助情報ｔｖと証明器３０の証明補助情報ｔｐを以下のように定める。
【０１６４】
【数１６】
ｔｖ＝Ｋ−ｆ（ｄｖ，ｎ）
ｔｐ＝Ｋ−ｆ（ｄｐ，ｎ，Ｌ）
ここで、Ｋは証明情報、ｆは一方向性関数、ｄｖは検証器２０の秘密情報、ｄｐは証明器３０の秘密情報、ｎは検証すべき権利を識別する情報、Ｌは使用制限記述である。使用制限記述Ｌは、たとえば使用期限を表すビット列である。
【０１６５】
検証器２０は、ｔｖ＋ｆ（ｄｖ，ｎ）を計算しＫを求める。
【０１６６】
検証器２０から証明器３０に送る試験情報Ｃは、ｒを乱数として、
【０１６７】
【数１７】
Ｃ＝（ｎ，Ｉ，ｒ，ｓ）
である。ここで、Ｉは検証器２０から証明器３０に伝達する情報、ｓは
【０１６８】
【数１８】
ｓ＝ｆ（Ｋ，Ｉ，ｒ）
なる値である。  証明器３０は、以下の計算によりＫ’を求める。
【０１６９】
【数１９】
Ｋ’＝ｔｐ＋ｆ（ｄｐ，ｎ，Ｌ）
次いでｆ（Ｋ’，Ｉ，ｒ）を計算し、ｓと比較する。ｓが一致した場合に限り、Ｉを含む情報を履歴管理部３０８に格納する。
【０１７０】
証明器３０は、さらに、応答情報Ｒを求める。
【０１７１】
【数２０】
Ｒ＝（Ｌ，ｆ（ｔｐ＋ｆ（ｄｐ，ｎ，Ｌ），ｒ，Ｌ））
証明器３０が、正しい証明補助情報ｔｐを保持している場合には、
【０１７２】
【数２１】
ｔｐ＋ｆ（ｄｐ，ｎ，Ｌ）＝Ｋ−ｆ（ｄｐ，ｎ，Ｌ）＋ｆ（ｄｐ，ｎ，Ｌ）＝Ｋ
となって、証明情報Ｋを復元でき、
【０１７３】
【数２２】
Ｒ＝（Ｌ，ｆ（Ｋ，ｒ，Ｌ））
となる。
【０１７４】
次いでｆ（Ｋ，ｒ）を求めてＲと比較し、両者が等く、かつＬが使用条件を満たす場合に限り、証明器が利用資格を有するものと判定する。
【０１７５】
ここでは、使用制限記述Ｌが使用条件を満たすか否かの判定を検証器２０で行うものとしたが、証明器３０で行うようにしてもよい。
【０１７６】
［第６の実施例］
つぎに第６の実施例について説明する。第６の実施例は相互認証を行なって証明器３０の内部状態を変更できるようにしたものである。
【０１７７】
図５は、第６の実施例の構成を示しており、この図において、図１と対応する箇所には対応する符号を付した。図５においては、検証器２０に第１の試験情報計算部２０９、第１の応答情報計算部２１０および第１の応答情報検証器２１１を設け、証明器３０に第２の試験情報計算部３０９、第２の応答情報計算部３１０、第２の応答情報検証器３１１および内部状態管理部３１２を設けている。
【０１７８】
この実施例では、対話認証の過程で、お互いが認証を行い、検証器２０は復号等を行い、証明器３０は、復号等に対応する内部状態の変更を行なう。
【０１７９】
この実施例の検証器２０および証明器３０の処理の流れはそれぞれ図１４および図１５に示されている。
【０１８０】
検証器２０の第１の試験情報計算部２０９は、第１の乱数を生成し、少なくとも第１の乱数と証明情報保持部２０１が保持する権利の識別情報とを併せて試験情報とする（図１４のＳ４１）。この試験情報は、第２の通信部２０５から証明器３０の第３の通信部３０５へと伝達される（Ｓ４２、図１５のＳ５１）。
【０１８１】
他方、第２の試験情報計算部３０９は、第２の乱数を生成して、これを第２の試験情報とし、第３の通信部３０５を介して検証器２０（第２の通信部２０５）へ送信する（Ｓ５２、Ｓ４３）。
【０１８２】
検証器２０の第１の応答情報計算部２１０は、少なくとも第２の試験情報と、検証器２０から証明器３０に伝達した情報とを第２の一方向性関数計算部２０３に入力し、ここで得られた値と、伝達したい情報そのものとを含むように第１の応答情報を生成する。この第１の応答情報は、第２の通信部２０５から証明器３０の第３の通信部３０５へと伝達される（Ｓ４４、Ｓ５３）。
【０１８３】
証明器３０の第３の一方向性関数計算部３０４は、秘密情報保持部３０１が保持する秘密情報と権利識別情報とに対し、逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用する。
【０１８４】
証明補助情報管理部３０２は、試験情報に含まれる権利の識別情報に対応する証明補助情報を検索する（Ｓ５４）。
【０１８５】
第２の応答情報計算部３１０は、一方向性関数の計算結果と証明補助情報とを演算し、証明情報を求める。次いで、第２の試験情報と、証明情報を含む情報に対し、第３の一方向性関数計算部３０４を適用し、この結果得られた値と第１の応答情報（その一部）とを照合する（Ｓ５５、Ｓ５６）。値が所定の関係を満たさなければ意味のない値を生成して第２の応答情報とし、所定の関係を満たせば、後述の内部状態の変更と応答情報の計算を行う。
【０１８６】
内部状態管理部３１２は、権利識別情報に対応する内部状態を検索し、第１の試験情報もしくは第１の応答情報で伝達された情報に応じて、内部状態を変更する。
【０１８７】
第３の一方向性関数計算部３０４は、証明情報と、第１の試験情報に含まれる第１の乱数とに対し、逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用し、第２の応答情報計算部３１１は、この値を第２の応答情報とする。第３の通信部３０５は、第２の応答情報を第２の検証器２０の通信部２０５へ伝達する（Ｓ５７、Ｓ５８、Ｓ４５））。
【０１８８】
検証器２０の第２の一方向性関数計算部２０３は、証明情報と試験情報の乱数に対し、逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用する。第１の応答情報検証器２１１は、一方向性関数の適用結果と、第２の応答情報とを比較し、一致する場合に限り利用資格があるものと判定する（Ｓ４６、Ｓ４７）。
【０１８９】
以下、第６の実施例の認証のプロトコルについて説明する。
【０１９０】
第６の実施例では、証明補助情報ｔを以下のように定める。
【０１９１】
【数２３】
ｔ＝Ｋ−ｆ（ｄ，ｎ）
ここで、Ｋは証明情報、ｆは一方向性関数、ｄは秘密情報、ｎは検証すべき権利を識別する情報である。
【０１９２】
検証器２０から証明器３０に送る第１の試験情報Ｃ１は、ｒ１を乱数として、
【０１９３】
【数２４】
Ｃ１＝（ｎ，ｒ１）
である。
【０１９４】
証明器３０は、検証器２０へ第２の試験情報Ｃ２を送る。
【０１９５】
【数２５】
Ｃ２＝ｒ２
ここで、ｒ２は乱数である。
【０１９６】
検証器２０は、第１の応答情報Ｒ１を証明器３０へ送る。
【０１９７】
【数２６】
Ｒ１＝（ｍ，ｆ（Ｋ，ｒ２，ｍ））
ここで、ｍは検証器２０から証明器３０へと伝達する情報である。ｍは、たとえば、利用の都度課金される額である。
【０１９８】
証明器３０は、以下の計算によりＫ’を求める。
【０１９９】
【数２７】
Ｋ’＝ｔ＋ｆ（ｄ，ｎ）
証明補助情報ｔが正しい場合には、Ｋ’は証明情報Ｋと一致する。
【０２００】
証明器３０はｆ（Ｋ’，ｒ２，ｍ）を計算して、Ｒ１の第２項と比較する。両者が等しい場合には、検証器２０から伝達された情報ｍにしたがい、検証すべき権利に対応する内部状態を変更する。たとえば、ｍが利用の都度課金される額であれば、プリペイドの額を相応分だけ減じる。
【０２０１】
次いで、証明器３０は第２の応答情報Ｒ２を求める。
【０２０２】
【数２８】
Ｒ２＝ｆ（Ｋ’，ｒ１）
証明器が正しい証明補助情報ｔを保持している場合には、Ｋ’は証明情報Ｋに一致し、
【０２０３】
【数２９】
Ｒ２＝ｆ（Ｋ，ｒ１）
となる。
【０２０４】
検証器２０はｆ（Ｋ，ｒ１）を求めてＲ２と比較し、両者が等しい場合に限り、証明器３０が利用資格を有するものと判定する。
【０２０５】
［第７の実施例］
つぎに第７の実施例について説明する。この実施例は、認証対象の権利が複数あり、どの権利について認証するかを予め決めるようになっている。どの権利を認証するかは、権利の識別情報を入力したり、予め定められた規則で計算を行なって決定する。他の構成は第６の実施例と同様である。
【０２０６】
この実施例の検証器２０は、第６の実施例（図５）の構成に加え、第１の秘密情報保持部２０６および第１の証明補助情報管理部２０７を設けている。また、証明器３０は、第２の秘密情報保持部３０６（図５の秘密情報保持部３０１）および第２の証明補助情報管理部３０７（図５の秘密情報保持部３０２）を有している。図６において、図５と対応する箇所には対応する符号を付した。
【０２０７】
この実施例の証明補助情報発行器１０は、検証器１０および証明器２０の要求にそれぞれ応答して対応する証明補助情報を発行する。
【０２０８】
利用資格の検証に先立ち、第２の通信部２０５から権利の識別情報を入力するか、事前に定められた規則にしたがって計算することにより、どの権利を検証するかを決定する。
【０２０９】
検証器２０の第１の証明補助情報管理部２０７は、試験情報に含まれる権利の識別情報に対応する証明補助情報を検索する。
【０２１０】
第１の試験情報計算部２０９は、第１の乱数を生成し、少なくとも乱数と権利の識別情報とを併せて試験情報とする。この試験情報は、第２の通信部２０５から証明器３０の第３の通信部３０５へと伝達される。
【０２１１】
証明器３０の第２の試験情報計算部３０９は、第２の乱数を生成して、これを第２の試験情報とする。第３の通信部３０５は、第２の試験情報を検証器２０の第２の通信部２０５に伝達する。
【０２１２】
検証器２０の第２の一方向性関数計算部２０３は、秘密情報保持部２０６が保持する秘密情報と権利識別情報に対し、逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用する。
【０２１３】
第１の応答情報計算部２１０は、一方向性関数の計算結果と証明補助情報とを演算し、証明情報を求める。第１の応答情報計算部２１０は、少なくとも第２の試験情報と検証器２０から証明器３０に伝達した情報とを第２の一方向性関数計算部に入力し、ここで得られた値と、伝達した情報そのものとように第１の応答情報を生成する。この第１の応答情報は、第２の通信部２０５から第３の通信部３０５へと伝達される。
【０２１４】
証明器３０の第３の一方向性関数計算部３０４は、第２の秘密情報保持部２０６が保持する秘密情報と権利識別情報とに対し、逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用する。
【０２１５】
第２の証明補助情報管理部３０７は、試験情報に含まれる権利の識別情報に対応する証明補助情報を検索する。
【０２１６】
第２の応答情報計算部３１０は、一方向性関数の計算結果と証明補助情報とを演算し、証明情報を求める。次いで、第１の応答情報が、第２の試験情報と証明情報とを含む情報に対し、第３の一方向性関数計算部を適用して得られる値と、第１の応答情報（その一部）とを照合する。値が所定の関係を満たさなければ意味のない値を生成して第２の応答情報とし、所定の関係を満たせば、後述の内部状態の変更と応答情報の計算を行う。
【０２１７】
内部状態管理部３１２は、権利識別情報に対応する内部状態を検索し、第１の試験情報もしくは第１の応答情報で伝達された情報に応じて、内部状態を変更する。
【０２１８】
第３の一方向性関数計算部３０４は、証明情報と、第１の試験情報に含まれる第１の乱数に対し、逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用し、第２の応答情報計算部３１０は、この値を第２の応答情報とする。第３の通信部３０５は、応答情報を第２の通信部２０５へ伝達する。
【０２１９】
検証器２０の第２の一方向性関数計算部２０３は、証明情報と試験情報の乱数に対し、逆関数を求めることが少なくとも計算量的に困難な一方向性関数を適用する。
【０２２０】
第１の応答情報検証器２１１は、一方向性関数の適用結果と、第２の応答情報とを比較し、一致する場合に限り利用資格があるものと判定する。
【０２２１】
以下、第７の実施例の認証プロトコルについて説明する。
【０２２２】
第７の実施例では、検証器の証明補助情報ｔｖと証明器の証明補助情報ｔｐを以下のように定める。
【０２２３】
【数３０】
ｔｖ＝Ｋ−ｆ（ｄｖ，ｎ）
ｔｐ＝Ｋ−ｆ（ｄｐ，ｎ）
ここで、Ｋは証明情報、ｆは一方向性関数、ｄｖは検証器の秘密情報、ｄｐは証明器の秘密情報、ｎは検証すべき権利を識別する情報である。
【０２２４】
検証器２０から証明器３０に送る第１の試験情報Ｃ１は、ｒ１を乱数として、
【０２２５】
【数３１】
Ｃ１＝（ｎ，ｒ１）
である。
【０２２６】
３０証明器は、第２の試験情報Ｃ２を検証器２０へ送る。
【０２２７】
【数３２】
Ｃ２＝ｒ２
ここで、ｒ２は乱数である。
【０２２８】
検証器２０は、ｔｖ＋ｆ（ｄｖ，ｎ）を計算しＫを求める。次いで、以下の計算により第１の応答情報Ｒ１を求める。
【０２２９】
【数３３】
Ｒ１＝（ｍ，ｆ（Ｋ，ｒ２，ｍ））
ここで、ｍは検証器２０から証明器３０へと伝達する情報である。
【０２３０】
証明器３０は、以下の計算によりＫ’を求める。
【０２３１】
【数３４】
Ｋ’＝ｔｐ＋ｆ（ｄｐ，ｎ）
証明補助情報ｔｐが正しい場合には、Ｋ’は証明情報Ｋと一致する。
【０２３２】
証明器３０はｆ（Ｋ’，ｒ２，ｍ）を計算して、Ｒ１の第２項と比較する。両者が等しい場合には、検証器２０から伝達された情報ｍにしたがい、検証すべき権利に対応する内部状態を変更する。たとえば、ｍが利用の都度課金される額であれば、プリペイドの額を相応分だけ減じる。
【０２３３】
次いで、証明器３０は第２の応答情報Ｒ２を求める。
【０２３４】
【数３５】
Ｒ２＝ｆ（Ｋ’，ｒ１）
証明器が正しい証明補助情報ｔｐを保持している場合には、Ｋ’は証明情報Ｋに一致し、
【０２３５】
【数３６】
Ｒ２＝ｆ（Ｋ，ｒ）
となる。
【０２３６】
検証器２０はｆ（Ｋ，ｒ）を求めてＲ２と比較し、両者が等しい場合に限り、証明器３０が利用資格を有するものと判定する。
［第８の実施例］
つぎに第８の実施例について説明する。第８の実施例は、第７の実施例において利用制限情報を導入したものである。第８の実施例の構成は第７の実施例と同様に図６に示すように構成される。
【０２３７】
以下、第８の実施例の認証プロトコルについて説明する。
【０２３８】
第８の実施例では、検証器２０の証明補助情報ｔｖと証明器３０の証明補助情報ｔｐを以下のように定める。
【０２３９】
【数３７】
ｔｖ＝Ｋ−ｆ（ｄｖ，ｎ）
ｔｐ＝Ｋ−ｆ（ｄｐ，ｎ，Ｌ）
ここで、Ｋは証明情報、ｆは一方向性関数、ｄｖは検証器２０の秘密情報、ｄｐは証明器３０の秘密情報、ｎは検証すべき権利を識別する情報、Ｌは使用制限記述である。
【０２４０】
検証器２０から証明器３０に送る第１の試験情報Ｃ１は、ｒ１を乱数として、
【０２４１】
【数３８】
Ｃ１＝（ｎ，ｒ１）
である。
【０２４２】
証明器３０から検証器２０に送る第２の試験情報Ｃ２は、ｒ２を乱数として、
【０２４３】
【数３９】
Ｃ２＝ｒ２
である。
【０２４４】
検証器２０は、ｔｖ＋ｆ（ｄｖ，ｎ）を計算しＫを求める。次いで、以下の計算により第１の応答情報Ｒ１を求める。
【０２４５】
【数４０】
Ｒ１＝（ｍ，ｆ（Ｋ，ｒ２，ｍ））
ここで、ｍは検証器２０から証明器３０へと伝達する情報である。
【０２４６】
証明器３０は、以下の計算によりＫ’を求める。
【０２４７】
【数４１】
Ｋ’＝ｔｐ＋ｆ（ｄｐ，ｎ）
証明補助情報ｔｐが正しい場合には、Ｋ’は証明情報Ｋと一致する。
【０２４８】
証明器はｆ（Ｋ’，ｒ２，ｍ）を計算して、Ｒ１の第２項と比較する。両者が等しい場合には、検証器２０から伝達された情報ｍにしたがい、検証すべき権利に対応する内部状態を変更する。  次いで、証明器３０は第２の応答情報Ｒ２を求める。
【０２４９】
【数４２】
Ｒ２＝（Ｌ，ｆ（ｔｐ＋ｆ（ｄｐ，ｎ，Ｌ），ｒ，Ｌ））
証明器３０が正しい証明補助情報ｔｐを保持している場合には、Ｋ’は証明情報Ｋに一致し、
【０２５０】
【数４３】
Ｒ２＝（Ｌ，ｆ（Ｋ，ｒ，Ｌ））
となる。
【０２５１】
検証器２０は、ｔｖ＋ｆ（ｄｖ，ｎ）を計算しＫを求める。次いでｆ（Ｋ，ｒ）を求めてＲ２の第２項と比較し、両者が等く、かつ使用制限記述Ｌが使用条件を満たす場合に限り、証明器３０が利用資格を有するものと判定する。
【０２５２】
ここでは使用制限記述Ｌが使用条件を満たすか否かの判定を検証器２０で行うものとしたが、証明器３０で行うようにしてもよい。
【０２５３】
［第９の実施例］
第９の実施例は、第８の実施例において検証器２０に復号部２０８を設けたものである。図７は第９の実施例の構成を示しており、この図において図６と対応する箇所には対応する符号を付した。
【０２５４】
第９の実施例では、扱う情報および検証手順は第８の実施例と同じである。証明器が利用資格を有すると判定した場合には、復号部２０８が、証明情報ＫあるいはＫを用いて計算可能な値を鍵として用い、暗号化された情報を復号する。
【０２５５】
［第１０の実施例］
つぎに第１０の実施例について説明する。この実施例は利用履歴を管理できるようにしたものである。
【０２５６】
図８は、第１０の実施例の構成を示しており、この図において、図７と対応する箇所には対応する符号を付した。図８においては、証明器３０に履歴管理部３０８を設けている。
【０２５７】
以下、第１０の実施例の認証プロトコルについて説明する。
【０２５８】
この認証手順は図１０にも示す。第５〜第９の実施例の各動作は第１０の実施例に含まれているので第５〜第９の実施例の動作も図１０から理解できる。
【０２５９】
第１０の実施例では、検証器の証明補助情報ｔｖと証明器の証明補助情報ｔｐを以下のように定める。
【０２６０】
【数４４】
ｔｖ＝Ｋ−ｆ（ｄｖ，ｎ）
ｔｐ＝Ｋ−ｆ（ｄｐ，ｎ，Ｌ）
ここで、Ｋは証明情報、ｆは一方向性関数、ｄｖは検証器２０の秘密情報、ｄｐは証明器３０の秘密情報、ｎは検証すべき権利を識別する情報、Ｌは使用制限記述である。使用制限記述Ｌは、たとえば使用期限を表すビット列である。
【０２６１】
検証器２０は、ｔｖ＋ｆ（ｄｖ，ｎ）を計算しＫを求める。
【０２６２】
検証器２０から証明器３０に送る第１の試験情報Ｃ１は、ｒ１を乱数として、
【０２６３】
【数４５】
Ｃ１＝（ｎ，Ｉ，ｒ，ｓ）
である。ここで、Ｉは検証器から証明器に伝達する情報、ｓは
【０２６４】
【数４６】
ｓ＝ｆ（Ｋ，Ｉ，ｒ）
なる値である。
【０２６５】
証明器３０は、以下の計算によりＫ’を求める。
【０２６６】
【数４７】
Ｋ’＝ｔｐ＋ｆ（ｄｐ，ｎ，Ｌ）
次いで証明器３０は、ｆ（Ｋ’，Ｉ，ｒ）を計算し、ｓと比較する。ｓが一致した場合に限り、Ｉを含む情報を履歴保持部３０８に格納する。
【０２６７】
証明器３０は、第２の試験情報Ｃ２を検証器に送る。
【０２６８】
【数４８】
Ｃ２＝ｒ２
ここで、ｒ２は乱数である。
【０２６９】
検証器２０は、ｔｖ＋ｆ（ｄｖ，ｎ）を計算しＫを求める。次いで、以下の計算により第１の応答情報Ｒ１を求める。
【数４９】
Ｒ１＝（ｍ，ｆ（Ｋ，ｒ２，ｍ））
ここで、ｍは検証器から証明器へと伝達する情報である。
証明器は、以下の計算によりＫ’を求める。
【０２７０】
【数５０】
Ｋ’＝ｔｐ＋ｆ（ｄｐ，ｎ）
証明補助情報ｔｐが正しい場合には、Ｋ’は証明情報Ｋと一致する。
【０２７１】
証明器３０はｆ（Ｋ’，ｒ２，ｍ）を計算して、Ｒ１の第２項と比較する。両者が等しい場合には、検証器２０から伝達された情報ｍにしたがい、検証すべき権利に対応する内部状態を変更する。
【０２７２】
次いで、証明器３０は第２の応答情報Ｒ２を求める。
【０２７３】
【数５１】
Ｒ２＝（Ｌ，ｆ（ｔｐ＋ｆ（ｄｐ，ｎ，Ｌ），ｒ，Ｌ））
証明器３０が、正しい証明補助情報ｔｐを保持している場合には、
【０２７４】
【数５２】
ｔｐ＋ｆ（ｄｐ，ｎ，Ｌ）＝Ｋ−ｆ（ｄｐ，ｎ，Ｌ）＋ｆ（ｄｐ，ｎ，Ｌ）＝Ｋ
となって、証明情報Ｋを復元でき、
【０２７５】
【数５３】
Ｒ２＝（Ｌ，ｆ（Ｋ，ｒ，Ｌ））
となる。
【０２７６】
検証器２０は、ｆ（Ｋ，ｒ）を求めてＲ２と比較する。両者が等く、かつＬが使用条件を満たす場合に限り、証明器３０が利用資格を有するものと判定する。
【０２７７】
ここでは、使用制限記述Ｌが使用条件を満たすか否かの判定を検証器２０で行うものとしたが、証明器３０で行うようにしてもよい。
【０２７８】
以上の実施例では、一方向性関数としてＭＤ５やＳＨＡを例として挙げたが、代わりにＤＥＳなどの慣用暗号系を用いてもよい。
【０２７９】
以上の本実施例では、検証器の認証と、証明器が権利を有することの証明に使う情報を同一の証明情報としたが、それぞれについて別個の証明情報を用いることとし、証明情報保持部、秘密情報保持部、証明補助情報管理部で適切な情報を扱うようにしてもよい。
【０２８０】
以上の実施例では、耐タンパー性のあるハードウェアを用いることはとくに前提にしていないが、証明情報保持部、秘密情報保持部、および一方向性関数計算部を耐タンパー性のあるハードウェアで保護することにより、不正の危険を低減することができる。
【０２８１】
以上の実施例では、ソフトウェアの実行の可否の制御のために本発明の利用資格検証装置を用いたが、証明補助情報を、実世界で提供されている種々のサービスで通常用いられているチケット（切符）として用いることが可能である。
【０２８２】
以上の実施例では、証明補助情報として、一方向性関数用いて得た値を証明情報から減じた結果を用いたが、ビット毎の排他的論理和など、逆算が可能な演算の組み合わせを証明情報に適用した結果であればよい。
【０２８３】
［適用例］
つぎに、実施例の具体的な適用例について説明する。なお、以下では、証明補助情報のことをチケットと呼ぶ。
【０２８４】
まず、ソフトウエアのアクセス制御に用いる場合について説明する。
【０２８５】
図１６は、ソフトウェアのアクセス制御をネットワーク上で行う例を示している。なお、図１６において図１と対応する箇所には対応する符号を付した。図１６において、利用者計算機１０００とチケット発行計算機２０００とがネットワーク３０００で接続されている。ネットワーク３０００はＷＡＮでもＬＡＮでもよい。利用者計算機１０００はハードウェア１００１に所定のオペレーティングシステム１００２がインストールされ、このオペレーティングシステム１００２上でアプリケーションプログラム１００３および証明プログラム３０が動作する。アプリケーションプログラム１００３には検証プログラム２０が埋め込まれている。アプリケーションプログラム１００３は記録媒体の形態で提供されてもよいし、オンラインで提供されていもよい。証明プログラム３０の一部は利用者計算機１０００に実装された耐タンパー装置上で実行されることが好ましい。
【０２８６】
チケット発行計算機２０００もハードウェア２００１およびオペレーティングシステム２００２を有し、チケット発行サーバ３０が動作するようになっている。
【０２８７】
ユーザは、アプリケーション１００３を利用したい場合には、証明用補助情報（チケット）の発行をチケット発行サーバに要求する。この要求は、ユーザの識別番号とアプリケーションの識別番号とを伴う。チケット発行サーバ１０は、ユーザの識別番号およびアプリケーションの識別番号に基づいてそれぞれユーザの秘密情報および公開鍵の法数および証明情報を取り出す。そして証明補助情報を計算して利用計算機１０００の証明プログラム２０に渡す。
【０２８８】
以降、証明プログラム３０と検証プログラム２０とが試験情報Ｃおよび応答情報Ｒをやり取りして認証を行い、認証が成功したならばアプリケーションプログラムが利用可能になる。
【０２８９】
ソフトウェア（アプリケーション１００３）の保護の手法としてはソフトウェアの少なくとも一部を暗号鍵で暗号しておくことが考えられる。ソフトウェアの暗号鍵をＫとし、乱数をｒとする。安全のためには、鍵Ｋそのものがソフトウェアに含まれないことが望ましい。鍵Ｋそのものはソフトウェアに含まれない場合、暗号化されたソフトウェアの一部を復号し、所定の条件を満たすかどうか検査すればよい。
【０２９０】
つぎに実施例を改札装置の制御に用いる例を説明する。図１７は本実施例が適用された改札システムを示しており、この図において、ＩＣカード４０００には証明器３０を実現するプログラムがインストールされている。チケット発行端末５０００はＩＣカードが着脱可能なものであり、チケット発行サーバ３０と通信してＩＣカード４０００に証明補助情報（チケット）を書き込む。ユーザは入場するときにＩＣカード４０００を入場ゲート６０００に提示し（例えばスロットに挿入して）、この間、入場ゲート６０００の検証装置１０とＩＣカード４０００の証明装置２０とが相互に通信して認証を行う。認証が成功すればユーザは入場ゲート６０００を通過することが可能になる。
【０２９１】
【発明の効果】
一般に公開鍵暗号系と比較して、ハッシュは数千倍高速である。Ｂｒｕｃｅ  Ｓｃｈｎｅｉｅｒ，Ａｐｐｌｉｅｄ  Ｃｒｙｐｔｏｇｒａｐｈｙ（ＳｅｃｏｎｄＥｄｉｔｉｏｎ），Ｗｉｌｅｙ，１９９６によれば、１２８ビットのダイジェストを計算するＭＤ５アルゴリズムを米国インテル社製のプロセッサ（３３ＭＨｚの４８６ＳＸ、商標）で実行したとき、毎秒１７４ＭＢ符号化できる。前述のように、同書によれば、法数１０２４ビット・公開鍵８ビットのＲＳＡ暗号系をＳＰＡＲＣ２で実行する時間は、署名が０．９７秒、検証が０．０８秒かかっている。したがって、認証機構を公開鍵暗号系からハッシュに変更することにより、計算量を数千分の１に削減し、実行速度を向上させることが可能である。
【０２９２】
以上のように、本発明の利用資格検証装置によれば、ソフトウェアのアクセス制御を効率よく実行できる。さらに、検証器側に証明補助情報を使用することにより、アーケードゲームや各種サービスを実行できるハードウェアを制限でき、ハードに対するライセンス料の徴収やフランチャイズ制を実現可能である。
【図面の簡単な説明】
【図１】  この発明の第１の実施例の構成を示すブロック図である。
【図２】  この発明の第２の実施例および第３の実施例の構成を示すブロック図である。
【図３】  この発明の第４の実施例の構成を示すブロック図である。
【図４】  この発明の第５の実施例の構成を示すブロック図である。
【図５】  この発明の第６の実施例の構成を示すブロック図である。
【図６】  この発明の第７の実施例および第８の実施例の構成を示すブロック図である。
【図７】  この発明の第９の実施例の構成を示すブロック図である。
【図８】  この発明の第１０の実施例の構成を示すブロック図である。
【図９】  この発明の第５の実施例の全体の動作を説明する図である。
【図１０】  この発明の第１０の実施例の全体の動作を説明する図である。
【図１１】  この発明の第１の実施例の証明補助情報発行器の動作を説明するフローチャートである。
【図１２】  この発明の第１の実施例の検証器の動作を説明するフローチャートである。
【図１３】  この発明の第１の実施例の証明器の動作を説明するフローチャートである。
【図１４】  この発明の第６の実施例の検証器の動作を説明するフローチャートである。
【図１５】  この発明の第１の実施例の証明器の動作を説明するフローチャートである。
【図１６】  この発明の実施例の第１の適用例を示すブロック図である。
【図１７】  この発明の実施例の第２の適用例を示すブロック図である。
【符号の説明】
１０    証明補助情報発行器
２０    検証器
３０    証明器
１０１    第１の通信部
１０２    秘密情報管理部
１０３    証明情報管理部
１０４    第１の一方向性計算部
１０５    証明補助情報計算部
２０１    証明情報保持部
２０２    試験情報計算部
２０３    第２の一方向性関数計算部
２０４    応答情報検証器
２０５    第２の通信部
２０６    第１の秘密情報保持部
２０７    第１の証明補助情報管理部
２０８    復号部
２０９    第１の試験情報計算部
２１０    第１の応答情報計算部
２１１    第１の応答情報検証部
３０１    秘密情報保持部
３０２    証明補助情報管理部
３０３    応答情報計算部
３０４    第３の一方向性関数計算部
３０５    第３の通信部
３０６    第２の秘密情報保持部
３０７    第２の証明補助情報管理部
３０８    履歴管理部
３０９    第２の試験情報計算部
３１０    第２の応答情報計算部
３１１    第２の応答情報検証部
３１２    内部状態管理部
【図１】
0003815022.tif 000002
【図２】
0003815022.tif 000003
【図３】
0003815022.tif 000004
【図４】
0003815022.tif 000005
【図５】
0003815022.tif 000006
【図６】
0003815022.tif 000007
【図７】
0003815022.tif 000008
【図８】
0003815022.tif 000009
【図９】
0003815022.tif 000010
【図１０】
0003815022.tif 000011
【図１１】
0003815022.tif 000012
【図１２】
0003815022.tif 000013
【図１３】
0003815022.tif 000014
【図１４】
0003815022.tif 000015
【図１５】
0003815022.tif 000016
【図１６】
0003815022.tif 000017
【図１７】
0003815022.tif 000018