(57)【特許請求の範囲】
【請求項１】
ユーザの権限を証明するために生成された証明データの正当性を検証することにより上記ユーザのアクセス資格を認証するアクセス資格認証装置において、
第１の認証用データを記憶する第１の記憶手段と、
ユーザの固有情報を記憶する第２の記憶手段と、
上記ユーザの固有情報と、アクセス資格認証の特徴情報とに対し、証明用補助情報を生成するために予め定められた第１の所定の計算を実行した実行結果である証明用補助情報を記憶する第３の記憶手段と、
上記第１の記憶手段に保持されている上記第１の認証用データと、上記第２の記憶手段に記憶されている上記ユーザの固有情報と、上記第３の記憶手段に記憶されている上記証明用補助情報とに証明データを生成するために予め定められた第２の所定の計算を施して証明データを生成する証明データ生成手段と、
上記証明データ生成手段によって生成された証明データが、上記アクセス資格認証の特徴情報に基づいて生成されていることを検証する証明データ検証手段とを有し、
特に上記アクセス資格認証の特徴情報Ｘが、法ｐ、正整数ａとして、Ｙ＝ａＸ  ｍｏｄ  ｐなる関係を満たすように構成される、非対称暗号系における復号鍵であり、ＹがＸに対応する暗号化の鍵であるとき、
上記証明データ生成手段は、第１の記憶手段に記憶されている第１の認証用データに対して、法ｐのもとで、上記Ｘの値でべき乗した値を証明データとして生成し、
上記証明データ検証手段は、上記証明データ生成手段が生成した証明データを用いることにより、上記Ｙによって暗号化されたデータが正しく復号可能であることを検証し、
さらに、  上記証明用補助情報を生成するために予め定められた第１の所定の計算と、上記証明データを生成するために予め定められた第２の所定の計算とを、上記ユーザの固有情報、上記アクセス資格の特徴情報および上記証明用補助情報が対応する場合に上記証明データ検証手段が上記証明データを正当なものと検証するように選定したことを特徴とするアクセス資格認証装置。
【請求項２】
第２の認証用データを記憶する第４の記憶部を有し、
上記第２の認証用データが適当なデータを上記復号鍵に対応する暗号化鍵を用いて暗号化したものであり、
上記証明データ検証手段は、上記証明データ生成手段が生成する上記証明データと、上記第４の記憶手段に記憶されている第２の認証用データとに対して特定の演算を施した結果が、アクセス資格認証の特徴情報である上記暗号鍵に対応する復号鍵によって、上記第２の認証用データを正しく復号したものであることを認証することを特徴とする請求項１に記載のアクセス資格認証装置。
【請求項３】
乱数生成手段を有し、上記乱数生成手段は発生させた乱数による効果を加えた値を上記第１の認証用データとして、上記第１の記憶手段に記憶させることを特徴とする請求項１乃至２に記載のアクセス資格認証装置。
【請求項４】
上記証明データ検証手段が、上記証明データ生成手段によって生成された証明データから上記乱数による効果を除去することを特徴とする請求項３に記載のアクセス資格認証装置。
【請求項５】
認証用素データを記憶する第５の記憶手段と、上記乱数生成手段が生成した乱数を記憶する第６の記憶手段を備え、
上記乱数生成手段は生成した乱数を上記第６の記憶手段に書き込むと共に、上記第５の記憶手段に記憶されている上記認証用素データに上記乱数を用いた乱数効果を施した後、上記第１の認証用データとして上記第１の記憶手段に書き込むことを特徴とする請求項３に記載のアクセス資格認証装置。
【請求項６】
上記証明データ検証手段は、上記第６の記憶手段に記憶されている乱数による乱数効果を、上記証明データ生成手段によって生成された証明データから除去することを特徴とする請求項５に記載のアクセス資格認証装置。
【請求項７】
ユーザの権限を証明するために生成された証明データの正当性を検証することにより上記ユーザのアクセス資格を認証するアクセス資格認証装置において、
第１の認証用データを記憶する第１の記憶手段と、
ユーザの固有情報を記憶する第２の記憶手段と、
上記ユーザの固有情報と、アクセス資格認証の特徴情報とに対し、証明用補助情報を生成するために予め定められた第１の所定の計算を実行した実行結果である証明用補助情報を記憶する第３の記憶手段と、
第２の認証用データを記憶する第４の記憶手段と、
乱数生成手段と、
上記第１の記憶手段に保持されている上記第１の認証用データと、上記第２の記憶手段に記憶されている上記ユーザの固有情報と、上記第３の記憶手段に記憶されている上記証明用補助情報とに証明データを生成するために予め定められた第２の所定の計算を施して証明データを生成する証明データ生成手段と、
上記証明データ生成手段によって生成された証明データが、上記アクセス資格認証の特徴情報に基づいて生成されていることを検証する証明データ検証手段とを有し、
特に上記アクセス資格認証の特徴情報Ｘが、法ｐ、正整数ａとして、Ｙ＝ａＸ  ｍｏｄ  ｐなる関係を満たすように構成される、非対称暗号系における復号鍵であり、ＹがＸに対応する暗号化の鍵であるとき、
上記第２の認証用データが所定のデータを上記復号鍵に対応する暗号化鍵を用いて暗号化したものであり、
上記乱数生成手段は、第１の認証用データＣ１に対して発生させた乱数による効果を施した値と、第２の認証用データＣ２もしくは第２の認証用データＣ２に対して上記乱数による効果を施した値の組とを、第１の記憶手段に記憶させ、
上記証明データ検証手段は、上記証明データ生成手段によって生成された証明データから上記乱数による効果を除去した結果が、アクセス資格認証の特徴情報である復号鍵で、上記第４の記憶手段に記憶されている第２の認証用データＣ２を正しく復号したものであることを検証し、
さらに、上記証明用補助情報を生成するために予め定められた第１の所定の計算と、上記証明データを生成するために予め定められた第２の所定の計算とを、上記ユーザの固有情報、上記アクセス資格の特徴情報および上記証明用補助情報が対応する場合に上記証明データ検証手段が上記証明データを正当なものと検証するように選定したことを特徴とするアクセス資格認証装置。
【請求項８】
認証用素データを記憶する第５の記憶手段と、生成した乱数を記憶する第６の記憶手段を備え、
上記乱数生成手段は生成した乱数を上記第６の記憶手段に書き込むと共に、上記第５の記憶手段に記憶されている上記認証用素データに上記乱数を用いた乱数効果を施した値と、上記第４の記憶手段に記憶されている上記第２の認証用データに対して上記乱数を用いた乱数効果を施した値との組を、上記第１の記憶手段に書き込むことを特徴とする請求項７に記載のアクセス資格認証装置。
【請求項９】
認証用素データを記憶する第５の記憶手段と、生成した乱数を記憶する第６の記憶手段を備え、
上記乱数生成手段は生成した乱数を上記第６の記憶手段に書き込むと共に、上記第５の記憶手段に記憶されている認証用素データに上記乱数を用いた乱数効果を施した値と、上記第４の記憶手段に記憶されている上記第２の認証用データとの組を、上記第１の記憶手段に書き込むことを特徴とする請求項７に記載のアクセス資格認証装置。
【請求項１０】
証明データ検証手段は、上記第６の記憶手段に記憶されている乱数による乱数効果を、上記証明データ生成手段によって生成された証明データから除去することを特徴とする請求項８または９に記載のアクセス資格認証装置。
【請求項１１】
上記証明データ生成手段が、第１の演算手段と、第２の演算手段と、第３の演算手段とから構成され、
上記第１の演算手段は、上記第１の記憶手段に記憶されている認証用データと、上記第３の記憶手段に記憶されている証明用補助情報とに所定の計算を施し、  上記第２の演算手段は、上記第１の記憶手段に記憶されている認証用データと、上記第２の記憶手段に記憶されているユーザの固有情報とに所定の計算を施し、
上記第３の演算手段が、上記第１の演算手段による計算結果と、上記第２の演算手段による計算結果とに所定の計算を施し、その結果として上記証明データを生成することを特徴とする請求項１乃至１０に記載のアクセス資格認証装置。
【請求項１２】
上記アクセス資格認証の特徴情報が、法ｐ、正整数ａのもとでＹ＝ａＸ  ｍｏｄ  ｐを満たすように構成される復号鍵Ｘであり、鍵Ｘに対応する暗号化の鍵がＹであり、
ｕが上記ａを法ｐのもとで所定の乱数ｚを指数としてべき乗した数であり（ｕ＝ａｚ  ｍｏｄ  ｐ）、
Ｃが、上記Ｙを法ｐのもとで上記乱数ｚを指数としてべき乗した数と、データＫとの積であるとき（Ｃ＝ＹｚＫ  ｍｏｄ  ｐ）、
上記第１の記憶手段に認証用データとしてｕが記憶され、上記第４の記憶手段にはＣが記憶され、
証明データ検証手段は、第４の記憶手段に記憶されているＣを証明データ生成手段によって生成された証明データＲで割ったものと、上記Ｋとが法ｐのもとで合同であること（Ｋ  ｍｏｄ  ｐ＝  ＣＲ−１  ｍｏｄ  ｐ）を検証することを特徴とする、
請求項２に記載のアクセス資格認証装置。
【請求項１３】
特に上記アクセス資格認証の特徴情報が、法ｐ、正整数ａのもとでＹ＝ａＸ  ｍｏｄ  ｐを満たすように構成される復号鍵Ｘであり、鍵Ｘに対応する暗号化の鍵がＹであり、
ｕが上記ａを法ｐのもとで所定の乱数ｚを指数としてべき乗した数であり（ｕ＝ａｚ  ｍｏｄ  ｐ）、
Ｃが、上記Ｙを法ｐのもとで上記乱数ｚを指数としてべき乗した数と、データＫとの積であるとき（Ｃ＝ＹｚＫ  ｍｏｄ  ｐ）、
上記第５の記憶手段に認証用素データとしてｕが記憶され、上記第４の記憶手段にはＣが記憶され、
上記乱数生成手段は、生成した乱数ｒを指数として上記ｕを法ｐのもとで冪乗して得られる数ｕ’（＝ｕｒ  ｍｏｄ  ｐ）を認証用データとして法数ｐとともに上記第１の記憶手段に書き込み、
証明データ検証手段は、第６の記憶手段に記憶されている乱数ｒの法（ｐ−１）のもとでの逆数を指数として、証明データ生成手段によって生成された証明データＲを法数ｐのもとで冪乗した以下の式で表わされる数ｖ
【数１】
0003613929.tif 000013
を計算し、
更に、第４の記憶手段に記憶されているＣを上記ｖで割ったものと、上記Ｋとが法ｐのもとで合同であること（Ｋ  ｍｏｄ  ｐ＝Ｃｖ−１  ｍｏｄ  ｐ）を検証することを特徴とする請求項６に記載のアクセス資格認証装置。
【請求項１４】
特に上記アクセス資格認証の特徴情報が、法ｐ、正整数ａのもとでＹ＝ａＸ  ｍｏｄ  ｐを満たすように構成される復号鍵Ｘであり、鍵Ｘに対応する暗号化の鍵がＹであり、
ｕが上記ａを法ｐのもとで所定の乱数ｚを指数としてべき乗した数であり（ｕ＝ａｚ  ｍｏｄ  ｐ）、
Ｃが、上記Ｙを法ｐのもとで上記乱数ｚを指数としてべき乗した数と、データＫとの積であるとき（Ｃ＝ＹｚＫ  ｍｏｄ  ｐ）、
上記第５の記憶手段に認証用素データとしてｕが記憶され、上記第４の記憶手段にはＣが記憶され、
上記乱数生成手段は、生成した乱数ｒを指数として上記ａを法ｐのもとで冪乗した値に上記ｕを乗じて得られる数ｕ’（＝ａｒｕ  ｍｏｄ  ｐ）を認証用データとして法数ｐとともに上記第１の記憶手段に書き込み、
証明データ検証手段は、法ｐのもとで、証明データ生成手段によって生成された証明データＲを、上記Ｙを第６の記憶手段に記憶されている乱数ｒでべき乗した値で割った数ｖ（＝ＲＹ−ｒ  ｍｏｄ  ｐ）を計算し、
更に、第４の記憶手段に記憶されているＣを上記ｖで割ったものと、上記Ｋとが法ｐのもとで合同であること（Ｋ  ｍｏｄ  ｐ＝Ｃｖ−１  ｍｏｄ  ｐ）を検証することを特徴とする請求項６に記載のアクセス資格認証装置。
【請求項１５】
特に上記アクセス資格認証の特徴情報が、法ｐ、正整数ａのもとでＹ＝ａＸ  ｍｏｄ  ｐを満たすように構成される復号鍵Ｘであり、鍵Ｘに対応する暗号化の鍵がＹであり、
ｕが上記ａを法ｐのもとで所定の乱数ｚを指数としてべき乗した数であり（ｕ＝ａｚ  ｍｏｄ  ｐ）、
Ｃが、上記Ｙを法ｐのもとで上記乱数ｚを指数としてべき乗した数と、データＫとの積であるとき（Ｃ＝ＹｚＫ  ｍｏｄ  ｐ）、
上記第５の記憶手段に認証用素データとしてｕが記憶され、上記第４の記憶手段にはＣが記憶され、
上記乱数生成手段は、生成した乱数ｒを指数として上記ｕを法ｐのもとで冪乗して得られる数ｕ’（＝ｕｒ  ｍｏｄ  ｐ）と、生成した乱数ｒを指数として上記Ｃを法ｐのもとで冪乗して得られる数Ｃ’（＝Ｃｒ  ｍｏｄ  ｐ）との組を認証用データとして法数ｐとともに上記第１の記憶手段に書き込み、
証明データ検証手段は、第６の記憶手段に記憶されている乱数ｒの法（ｐ−１）のもとでの逆数を指数として、上記証明データ生成手段によって生成された証明データＲを法数ｐのもとで冪乗した数と、上記Ｋとが、法ｐのもとで合同であること
【数２】
0003613929.tif 000014
を検証することを特徴とする請求項８乃至１１に記載のアクセス資格認証装置。
【請求項１６】
特に上記アクセス資格認証の特徴情報が、法ｐ、正整数ａのもとでＹ＝ａＸ  ｍｏｄ  ｐを満たすように構成される復号鍵Ｘであり、鍵Ｘに対応する暗号化の鍵がＹであり、
ｕが上記ａを法ｐのもとで所定の乱数ｚを指数としてべき乗した数であり（ｕ＝ａｚ  ｍｏｄ  ｐ）、
Ｃが、上記Ｙを法ｐのもとで上記乱数ｚを指数としてべき乗した数と、データＫとの積であるとき（Ｃ＝ＹｚＫ  ｍｏｄ  ｐ）、
上記第５の記憶手段に認証用素データとしてｕが記憶され、上記第４の記憶手段にはＣが記憶され、
上記乱数生成手段は、生成した乱数ｒを指数として上記ａを法ｐのもとで冪乗した値に上記ｕを乗じて得られる数ｕ’（＝ｕａｒ  ｍｏｄ  ｐ）と、上記Ｃとの組を、認証用データとして法数ｐとともに上記第１の記憶手段に書き込み、
証明データ検証手段は、上記Ｙを第６の記憶手段に記憶されている乱数ｒで冪乗した値に上記証明データ生成手段によって生成された証明データＲを乗じた値と、上記Ｋとが、法ｐのもとで合同であること（Ｋ  ｍｏｄ  ｐ  ＝  ＲＹｒ  ｍｏｄ  ｐ）を検証することを特徴とする請求項９乃至１１に記載のアクセス資格認証装置。
【請求項１７】
上記第３の記憶手段に記憶される証明用補助情報ｔが、上記Ｘから、上記第２の記憶手段に記憶されるユーザ識別情報ｅと上記ｐとに依存する非衝突性関数値Ｆ（ｐ，ｅ）を減じて得られるデータｔ（＝Ｘ−Ｆ（ｐ，ｅ））であり、
上記証明データ生成手段は、上記ｔと、上記ｅと、第１の記憶手段に書き込まれた認証用データｕ’から、法ｐのもとでｕ’のＸ乗（（ｕ’）Ｘ  ｍｏｄ  ｐ）を計算することを特徴とする請求項１乃至６または１１乃至１４に記載のアクセス資格認証装置。
【請求項１８】
上記第３の記憶手段に記憶される証明用補助情報ｔが、上記Ｘから、上記第２の記憶手段に記憶されるユーザ識別情報ｅと上記ｐとに依存する非衝突性関数値Ｆ（ｐ，ｅ）を減じて得られるデータｔ（＝Ｘ−Ｆ（ｐ，ｅ））であり、
上記証明データ生成手段は、上記ｔと、上記ｅと、第１の記憶手段に書き込まれた認証用データｕ’及びＣ’から、法ｐのもとで、上記Ｃ’を上記ｕ’のＸ乗で割った値（Ｃ’（ｕ’）−Ｘ  ｍｏｄ  ｐ）を計算することを特徴とする請求項７乃至１１、１５または１６に記載のアクセス資格認証装置。
【請求項１９】
上記第３の記憶手段に記憶される証明用補助情報ｔが、上記Ｘから、上記第２の記憶手段に記憶されるユーザ識別情報ｅと上記暗号化鍵Ｙとに依存する非衝突性関数値Ｆ（Ｙ，ｅ）を減じて得られるデータｔ（＝Ｘ−Ｆ（Ｙ，ｅ））であり、
上記証明データ生成手段は、上記ｔと、上記ｅと、第１の記憶手段に書き込まれた認証用データｕ’から、法ｐのもとでｕ’のＸ乗（（ｕ’）Ｘ  ｍｏｄ  ｐ）を計算することを特徴とする請求項１乃至６または１１乃至１４に記載のアクセス資格認証装置。
【請求項２０】
上記第３の記憶手段に記憶される証明用補助情報ｔが、上記Ｘから、上記第２の記憶手段に記憶されるユーザ識別情報ｅと上記暗号化鍵Ｙとに依存する非衝突性関数値Ｆ（Ｙ，ｅ）を減じて得られるデータｔ（＝Ｘ−Ｆ（Ｙ，ｅ））であり、
上記証明データ生成手段は、上記ｔと、上記ｅと、第１の記憶手段に書き込まれた認証用データｕ’及びＣ’から、法ｐのもとで、上記Ｃ’を上記ｕ’のＸ乗で割った値（Ｃ’（ｕ’）−Ｘ  ｍｏｄ  ｐ）を計算することを特徴とする請求項７乃至１１、１５または１６に記載のアクセス資格認証装置。
【請求項２１】
上記証明データ生成手段が、第１の演算手段と、第２の演算手段と、第３の演算手段とからなり、
上記第１の演算手段は、上記法ｐのもとで、上記ｕ’の上記ｔ乗した値（（ｕ’）ｔ  ｍｏｄ  ｐ）を計算し、
上記第２の演算手段は、上記法ｐのもとで上記ｕの上記Ｆ（ｐ，ｅ）乗した値（（ｕ’）Ｆ（ｐ，ｅ）  ｍｏｄ  ｐ）を計算し、
上記第３の演算手段は、上記法ｐのもとで、第１の演算手段の計算結果と第２の演算手段の計算結果とを乗ずることによって、証明データＲ（＝（ｕ’）ｔ（ｕ’）Ｆ（ｐ，ｅ）  ｍｏｄ  ｐ）を生成することを特徴とする請求項１７に記載のアクセス資格認証装置。
【請求項２２】
上記証明データ生成手段が、第１の演算手段と、第２の演算手段と、第３の演算手段とからなり、
上記第１の演算手段は、上記法ｐのもとで、上記ｕ’の上記ｔ乗した値（（ｕ’）ｔ  ｍｏｄ  ｐ）を計算し、
上記第２の演算手段は、上記法ｐのもとで、上記ｕの上記Ｆ（ｐ，ｅ）乗した値（（ｕ’）Ｆ（ｐ，ｅ）  ｍｏｄ  ｐ）を計算し、
上記第３の演算手段は、上記法ｐのもとで、第１の演算手段の計算結果と第２の演算手段の計算結果とを乗じた値の逆数を計算し、さらにその値に上記Ｃ’を乗ずることによって、証明データＲ（＝Ｃ’（（ｕ’）ｔ（ｕ’）Ｆ（ｐ，ｅ））−１  ｍｏｄ  ｐ）を生成することを特徴とする請求項１８に記載のアクセス資格認証装置。
【請求項２３】
上記証明データ生成手段が、第１の演算手段と、第２の演算手段と、第３の演算手段とからなり、
上記第１の演算手段は、上記法ｐのもとで、上記ｕ’の上記ｔ乗した値（（ｕ’）ｔ  ｍｏｄ  ｐ）を計算し、
上記第２の演算手段は、上記法ｐのもとで上記ｕの上記Ｆ（Ｙ，ｅ）乗した値（（ｕ’）Ｆ（Ｙ，ｅ）  ｍｏｄ  ｐ）を計算し、
上記第３の演算手段は、上記法ｐのもとで、第１の演算手段の計算結果と第２の演算手段の計算結果とを乗ずることによって、証明データＲ（＝（ｕ’）ｔ（ｕ’）Ｆ（Ｙ，ｅ）  ｍｏｄ  ｐ）を生成することを特徴とする請求項１９に記載のアクセス資格認証装置。
【請求項２４】
上記証明データ生成手段が、第１の演算手段と、第２の演算手段と、第３の演算手段とからなり、
上記第１の演算手段は、上記法ｐのもとで、上記ｕ’の上記ｔ乗した値（（ｕ’）ｔ  ｍｏｄ  ｐ）を計算し、
上記第２の演算手段は、上記法ｐのもとで、上記ｕの上記Ｆ（Ｙ，ｅ）乗した値（（ｕ’）Ｆ（Ｙ，ｅ）  ｍｏｄ  ｐ）を計算し、
上記第３の演算手段は、上記法ｐのもとで、第１の演算手段の計算結果と第２の演算手段の計算結果とを乗じた値の逆数を計算し、さらにその値に上記Ｃ’を乗ずることによって、証明データＲ（＝Ｃ’（（ｕ’）ｔ（ｕ’）Ｆ（Ｙ，ｅ））−１  ｍｏｄ  ｐ）を生成することを特徴とする請求項２０に記載のアクセス資格認証装置。
【請求項２５】
ユーザの権限を証明するために生成された証明データの正当性を検証することにより上記ユーザのアクセス資格を認証するアクセス資格認証装置において、
第１の認証用データを記憶する第１の記憶手段と、
ユーザの固有情報を記憶する第２の記憶手段と、
上記ユーザの固有情報と、アクセス資格認証の特徴情報とに対し、証明用補助情報を生成するために予め定められた第１の所定の計算を実行した実行結果である証明用補助情報を記憶する第３の記憶手段と、
上記第１の記憶手段に保持されている認証用データと、上記第２の記憶手段に記憶されている上記ユーザの固有情報と、上記第３の記憶手段に記憶されている上記証明用補助情報とに証明データを生成するために予め定められた第２の所定の計算を施して証明データを生成する証明データ生成手段と、
上記証明データ生成手段によって生成された証明データが上記アクセス資格認証の特徴情報に基づいて生成されていることを検証する証明データ検証手段とを有し、
上記アクセス資格認証の特徴情報が、有限体上の楕円曲線において定義される非対象鍵暗号の復号鍵であり、
さらに、上記証明用補助情報を生成するために予め定められた第１の所定の計算と、上記証明データを生成するために予め定められた第２の所定の計算とを、上記ユーザの固有情報、上記アクセス資格の特徴情報および上記証明用補助情報が対応する場合に上記証明データ検証手段が上記証明データを正当なものと検証するように選定したことを特徴とするアクセス資格認証装置。
【請求項２６】
上記証明データ生成手段が、第１の演算手段と、第２の演算手段と、第３の演算手段とから構成され、
上記第１の演算手段は、上記第１の記憶手段に記憶されている認証用データと、上記第２の記憶手段に記憶されている証明用補助情報とに所定の計算を施し、  上記第２の演算手段は、上記第１の記憶手段に記憶されている認証用データと、第３の記憶手段に記憶されているユーザの固有情報とに所定の計算を施し、
上記第３の演算手段が、上記第１の演算手段による計算結果と、上記第２の演算手段による計算結果とに所定の計算を施し、その結果として上記証明データを生成することを特徴とする請求項２５に記載のアクセス資格認証装置。
【請求項２７】
乱数生成手段を有し、上記乱数生成手段は発生させた乱数による効果を加えた値を上記第１の認証用データとして、上記第１の記憶手段に記憶させることを特徴とする請求項２５または２６に記載のアクセス資格認証装置。
【請求項２８】
上記証明データ検証手段が、上記証明データ生成手段によって生成された証明データから上記乱数による効果を除去することを特徴とする請求項２７に記載のアクセス資格認証装置。
【請求項２９】
認証用素データを記憶する第５の記憶手段と、上記乱数生成手段が生成した乱数を記憶する第６の記憶手段を備え、
上記乱数生成手段は生成した乱数を第６の記憶手段に書き込むと共に、上記第５の記憶手段に記憶されている認証用素データに上記乱数を用いた乱数効果を施した後、上記第１の認証用データとして上記第１の記憶手段に書き込むことを特徴とする請求項２７に記載のアクセス資格認証装置。
【請求項３０】
証明データ検証手段は、上記第６の記憶手段に記憶されている乱数による乱数効果を、上記証明データ生成手段によって生成された証明データから除去することを特徴とする請求項２９に記載のアクセス資格認証装置。
【請求項３１】
第２の認証用データを記憶する第４の記憶部を有し、
上記第２の認証用データが適当なデータを上記復号鍵に対応する暗号化鍵を用いて暗号化したものであり、
上記証明データ検証手段は、上記証明データ生成手段が生成する上記証明データが、アクセス資格認証の特徴情報である上記暗号鍵に対応する復号鍵によって、上記第２の認証用データを正しく復号したものであることを認証することを特徴とする請求項２５乃至３０に記載のアクセス資格認証装置。
【請求項３２】
第２の認証用データを記憶する第４の記憶部を有し、
上記第２の認証用データが適当なデータを上記復号鍵に対応する暗号化鍵を用いて暗号化したものであり、
上記証明データ検証手段は、上記証明データ生成手段が生成する上記証明データと、上記第４の記憶手段に記憶されている第２の認証用データとに対して特定の演算を施した結果が、アクセス資格認証の特徴情報である上記暗号鍵に対応する復号鍵によって、上記第２の認証用データを正しく復号したものであることを認証することを特徴とする請求項２５乃至３０に記載のアクセス資格認証装置。
【請求項３３】
上記第１の認証用データが適当なデータを上記復号鍵に対応する暗号化鍵を用いて暗号化したものであり、
上記証明データ検証手段は、上記証明データ生成手段が生成する上記証明データが、上記第１の認証用データを正しく復号したものであることを検証することを特徴とする請求項２５乃至３０に記載のアクセス資格認証装置。
【請求項３４】
上記証明データ検証手段は、上記第６の記憶手段に記憶されている乱数による乱数効果を、上記証明データ生成装置によって生成された証明データから除去した結果が、アクセス資格認証の特徴情報である復号鍵で上記第５の記憶手段に記憶されている認証用素データを復号したものであることを検証することを特徴とする請求項３３記載のアクセス資格認証装置。
【請求項３５】
特に、有限体上の楕円曲線Ｅ上の点をＰとし、上記アクセス資格認証の特徴情報を正整数Ｘとして、復号鍵Ｘに対応する暗号化鍵Ｙを、上記ＰをＸ倍したＥ上の点（Ｙ＝ＸＰ）とするとき、
所定の乱数ｚを用いて、ｕを上記ＰをＥ上でｚ倍した点とし（ｕ＝ｚＰ）、
Ｃを上記ＹをＥ上で上記ｚ倍した数とＥ上の点Ｋとの和とすると（Ｃ＝Ｋ＋ｚＹ）、
上記第５の記憶手段に認証用素データとしてＣが記憶され、
上記乱数生成手段は、Ｅ上のランダムな点ｒを生成し、上記ｕと、上記Ｃにｒを加えた点  Ｃ’（＝ｒ＋Ｃ）との組を認証用データとして上記第１の記憶手段に書き込み、
上記証明データ検証手段は、上記証明データ生成手段によって生成された証明データＲから、第６の記憶手段に記憶されているｒを減じた値と、上記Ｋとが等しくなること（Ｋ＝Ｒ−ｒ）を検証することを特徴とする請求項３３または３４に記載のアクセス資格認証装置。
【請求項３６】
特に、有限体上の楕円曲線Ｅ上の点をＰとし、上記アクセス資格認証の特徴情報を正整数Ｘとして、復号鍵Ｘに対応する暗号化鍵Ｙを、上記ＰをＸ倍したＥ上の点（Ｙ＝ＸＰ）とするとき、
所定のな乱数ｚを用いて、ｕ’を所定の乱数ｚを用いて上記ＰをＥ上でｚ倍した点とし（ｕ’＝ｚＰ）、
Ｃを上記ＹをＥ上で上記ｚ倍した値（ｚＹ）とデータＫとに所定の演算を施した値とし、
上記第１の記憶手段に認証用データとしてｕ’が記憶され、上記第４の記憶手段にはＣが記憶され、
上記証明データ検証手段は、上記第４の記憶手段に記憶されているＣと証明データＲとに演算を施した値と、上記Ｋとが等しくなることを検証することを特徴とする請求項３２に記載のアクセス資格認証装置。
【請求項３７】
特に、有限体上の楕円曲線Ｅ上の位数がｑである点をＰとし、上記アクセス資格認証の特徴情報を正整数Ｘとして、復号鍵Ｘに対応する暗号化鍵Ｙを、上記ＰをＸ倍したＥ上の点（Ｙ＝ＸＰ）とするとき、
所定の乱数ｚを用いて、ｕを上記ＰをＥ上でｚ倍した点とし（ｕ＝ｚＰ）、
Ｃを上記ＹをＥ上で上記ｚ倍した値（ｚＹ）とデータＫとに所定の演算を施した値とし、
上記第５の記憶手段に認証用素データとしてｕが記憶され、上記第４の記憶手段にはＣが記憶され、
上記乱数生成手段は、乱数ｒを生成し、上記ｕをＥ上でｒ倍した点ｕ’（＝ｒｕ）を認証用データとして上記第１の記憶手段に書き込み、
上記証明データ検証手段は、上記証明データ生成手段によって生成された証明データＲを、上記第６の記憶手段に記憶されている乱数ｒの法ｑのもとでの逆数倍した値ｖ（＝（ｒ−１  ｍｏｄｑ）  Ｒ）を計算し、
更に、上記第４の記憶手段に記憶されているＣと上記ｖとに所定の演算を施した値と、上記Ｋとが等しくなることを検証することを特徴とする請求項３２に記載のアクセス資格認証装置。
【請求項３８】
特に、有限体上の楕円曲線Ｅ上の点をＰとし、上記アクセス資格認証の特徴情報を正整数Ｘとして、復号鍵Ｘに対応する暗号化鍵Ｙを、上記ＰをＸ倍したＥ上の点（Ｙ＝ＸＰ）とするとき、
所定の乱数ｚを用いて、ｕを上記ＰをＥ上でｚ倍した点とし（ｕ＝ｚＰ）、
Ｃを上記ＹをＥ上で上記ｚ倍した値（ｚＹ）とデータＫとに所定の演算を施した値とし、
上記第５の記憶手段に認証用素データとしてｕが記憶され、上記第４の記憶手段にはＣが記憶され、
上記乱数生成手段は、乱数ｒを生成し、上記ＰをＥ上でｒ倍した点と上記ｕとの和ｕ’（＝ｒＰ＋ｕ）を認証用データとして上記第１の記憶手段に書き込み、
上記証明データ検証手段は、上記Ｙを上記第６の記憶手段に記憶されている乱数ｒでｒ倍した値を、上記証明データ生成手段によって生成された証明データＲから減じた値ｖ（＝Ｒ−ｒＹ）を計算し、
更に、上記第４の記憶手段に記憶されているＣと上記ｖとに所定の演算を施した値と、上記Ｋとが等しくなることを検証することを特徴とする請求項３２に記載のアクセス資格認証装置。
【請求項３９】
特に、有限体上の楕円曲線Ｅ上の点をＰとし、上記アクセス資格認証の特徴情報を正整数Ｘとして、復号鍵Ｘに対応する暗号化鍵Ｙを、上記ＰをＸ倍したＥ上の点（Ｙ＝ＸＰ）とするとき、
所定の乱数ｚを用いて、ｕを上記ＰをＥ上でｚ倍した点とし（ｕ＝ｚＰ）、
Ｃを上記ＹをＥ上で上記ｚ倍した値（ｚＹ）とデータＫとに所定の演算を施した値とし、
上記ｕとＣとの組が、認証用データとして上記第１の記憶手段に記憶され、
上記証明データ検証手段は、上記証明データ生成手段によって生成された証明データＲと、上記Ｋとが等しくなることを検証することを特徴とする請求項３１に記載のアクセス資格認証装置。
【請求項４０】
特に、有限体上の楕円曲線Ｅ上の位数がｑである点をＰとし、上記アクセス資格認証の特徴情報を正整数Ｘとして、復号鍵Ｘに対応する暗号化鍵Ｙを、上記ＰをＸ倍したＥ上の点（Ｙ＝ＸＰ）とするとき、
所定の乱数ｚを用いて、ｕを上記ＰをＥ上でｚ倍した点とし（ｕ＝ｚＰ）、
Ｃを上記ＹをＥ上で上記ｚ倍した数とＥ上の点Ｋとの和とすると（Ｃ＝Ｋ＋ｚＹ）、
上記第５の記憶手段に認証用素データとしてｕが記憶され、上記第４の記憶手段にはＣが記憶され、
上記乱数生成手段は、乱数ｒを生成し、上記ｕをＥ上でｒ倍した点ｕ’（＝ｒｕ）と、上記ＣをＥ上でｒ倍した点Ｃ’（＝ｒＣ）との組を認証用データとして上記第１の記憶手段に書き込み、
上記証明データ検証手段は、上記証明データ生成手段によって生成された証明データＲを、上記第６の記憶手段に記憶されている乱数ｒの法ｑのもとでの逆数倍した値と、上記Ｋとが等しくなること（Ｋ＝（ｒ−１  ｍｏｄｑ）  Ｒ）を検証することを特徴とする請求項３１に記載のアクセス資格認証装置。
【請求項４１】
特に、有限体上の楕円曲線Ｅ上の点をＰとし、上記アクセス資格認証の特徴情報を正整数Ｘとして、復号鍵Ｘに対応する暗号化鍵Ｙを、上記ＰをＸ倍したＥ上の点（Ｙ＝ＸＰ）とするとき、
所定の乱数ｚを用いて、ｕを上記ＰをＥ上でｚ倍した点とし（ｕ＝ｚＰ）、
Ｃを上記ＹをＥ上で上記ｚ倍した点とＥ上の点Ｋとの和とすると（Ｃ＝Ｋ＋ｚＹ）、
上記第５の記憶手段に認証用素データとしてｕが記憶され、上記第４の記憶手段にはＣが記憶され、
上記乱数生成手段は、乱数ｒを生成し、上記ＰをＥ上でｒ倍した値と上記ｕとの和ｕ’（＝ｕ＋ｒＰ）と、上記Ｃとの組を、認証用データとして上記第１の記憶手段に書き込み、
上記証明データ検証手段は、上記Ｙを上記第６の記憶手段に記憶されている乱数ｒ倍した値を、上記証明データ生成手段によって生成された証明データＲに加えた値と、上記Ｋとが、等しくなること（Ｋ＝Ｒ＋ｒＹ）を検証することを特徴とする請求項３１に記載のアクセス資格認証装置。
【請求項４２】
上記第３の記憶手段に記憶される証明用補助情報ｔが、上記アクセス資格認証の特徴情報と、ユーザの固有情報とから作成されることを特徴とする請求項２５乃至４１に記載のアクセス資格認証装置。
【請求項４３】
上記第３の記憶手段に記憶される証明用補助情報ｔが、ユーザの固有情報を、非衝突性関数の入力として計算した値を用いて作成されることを特徴とする請求項４２に記載のアクセス資格認証装置。
【請求項４４】
上記証明データ生成手段は、証明用補助情報と、ユーザの固有情報とから、上記Ｅ上で上記ｕ’のＸ倍（Ｘｕ’）を計算することを特徴とする請求項３６乃至３８に記載のアクセス資格認証装置。
【請求項４５】
上記証明データ生成手段は、前上記非アクセス資格認証の特徴情報と、ユーザの固有情報を用いて、上記Ｅ上で上記点Ｃ’から上記ｕ’のＸ倍を減じた値（Ｃ’−Ｘｕ’）を計算することを特徴とする請求項３５または３９乃至４１に記載のアクセス資格認証装置。
【請求項４６】
上記第３の記憶手段に記憶される証明用補助情報ｔが、少なくとも上記アクセス資格認証の特徴情報と、ユーザの固有情報と、楕円曲線を規定する情報とから作成されることを特徴とする請求項２５乃至４１に記載のアクセス資格認証装置。
【請求項４７】
上記第３の記憶手段に記憶される証明用補助情報ｔが、少なくとも上記アクセス資格認証の特徴情報と、ユーザの固有情報と、暗号化鍵Ｙとから作成されることを特徴とする請求項２５乃至４１に記載のアクセス資格認証装置。
【請求項４８】
上記第３の記憶手段に記憶される証明用補助情報ｔが、少なくともユーザの固有情報と、楕円曲線を規定する情報とを、非衝突性関数の入力として計算した値を用いて作成されることを特徴とする請求項４６に記載のアクセス資格認証装置。
【請求項４９】
上記第３の記憶手段に記憶される証明用補助情報ｔが、少なくともユーザの固有情報と、暗号化鍵Ｙとを、非衝突性関数の入力として計算した値を用いて作成されることを特徴とする請求項４７に記載のアクセス資格認証装置。
【請求項５０】
上記証明データ生成手段は、少なくとも上記証明用補助情報と、ユーザの固有情報と、楕円曲線を規定する情報とを用いて、上記Ｅ上でｕ’のＸ倍（Ｘｕ’）を計算することを特徴とする請求項３６乃至３８に記載のアクセス資格認証装置。
【請求項５１】
上記証明データ生成手段は、少なくとも上記証明用補助情報と、ユーザの固有情報と、暗号化鍵Ｙとを用いて、上記Ｅ上でｕ’のＸ倍（Ｘｕ’）を計算することを特徴とする請求項３６乃至３８に記載のアクセス資格認証装置。
【請求項５２】
上記証明データ生成手段は、少なくとも上記アクセス資格認証の特徴情報と、ユーザの固有情報と、楕円曲線を規定する情報とを用いて、上記Ｅ上で点Ｃ’からｕ’のＸ倍を減じた値（Ｃ’−  Ｘｕ’）を計算することを特徴とする請求項３５または３９乃至４１に記載のアクセス資格認証装置。
【請求項５３】
上記証明データ生成手段は、少なくとも上記アクセス資格認証の特徴情報と、ユーザの固有情報と、暗号化鍵Ｙとを用いて、上記Ｅ上で点Ｃ’からｕ’のＸ倍を減じた値（Ｃ’−Ｘｕ’）を計算することを特徴とする請求項３５または３９乃至４１に記載のアクセス資格認証装置。
【請求項５４】
特に、ｐ個の元を持つ有限体Ｆｐ（ｐは３より大きい素数をべき乗した値）上の楕円曲線Ｅをｙ２＝ｘ３＋ａｘ＋ｂとするとき、
上記第３の記憶手段に記憶される証明用補助情報ｔが、上記Ｘから、上記第２の記憶手段に記憶されるユーザ識別情報ｅと上記ｐ，ａ，ｂとに依存する非衝突性関数値Ｆ（ｐ，ａ，ｂ，ｅ）を減じて得られるデータｔ（＝Ｘ−Ｆ（ｐ，ａ，ｂ，ｅ））であり、
上記証明データ生成手段は、上記ｔと、上記ｅと、上記ｐ，ａ，ｂと、第１の記憶手段に書き込まれた認証用データｕ’から、上記Ｅ上でｕ’のＸ倍（Ｘｕ’）を計算することを特徴とする請求項３２または３６乃至３８に記載のアクセス資格認証装置。
【請求項５５】
特に、標数が２でｐ個の元を持つ有限体Ｆｐ上の楕円曲線Ｅをｙ２＋ｃｙ＝ｘ３＋ａｘ＋ｂとするとき、
上記第３の記憶手段に記憶される証明用補助情報ｔが、上記Ｘから、上記第２の記憶手段に記憶されるユーザ識別情報ｅと上記ｐ，ａ，ｂ，ｃとに依存する非衝突性関数値Ｆ（ｐ，ａ，ｂ，ｃ，ｅ）を減じて得られるデータｔ（＝Ｘ−Ｆ（ｐ，ａ，ｂ，ｃ，ｅ））であり、
上記証明データ生成手段は、上記ｔと、上記ｅと、上記ｐ，ａ，ｂ，ｃと、第１の記憶手段に書き込まれた認証用データｕ’から、上記Ｅ上でｕ’のＸ倍（Ｘｕ’）を計算することを特徴とする請求項３２または３６乃至３８に記載のアクセス資格認証装置。
【請求項５６】
特に、標数が２でｐ個の元を持つ有限体Ｆｐ上の楕円曲線Ｅをｙ２＋ｘｙ＝ｘ３＋ａｘ＋ｂとするとき、
上記第３の記憶手段に記憶される証明用補助情報ｔが、上記Ｘから、上記第２の記憶手段に記憶されるユーザ識別情報ｅと上記ｐ，ａ，ｂとに依存する非衝突性関数値Ｆ（ｐ，ａ，ｂ，ｅ）を減じて得られるデータｔ（＝Ｘ−Ｆ（ｐ，ａ，ｂ，ｅ））であり、
上記証明データ生成手段は、上記ｔと、上記ｅと、上記ｐ，ａ，ｂと、第１の記憶手段に書き込まれた認証用データｕ’から、上記  Ｅ上でｕ’のＸ倍（Ｘｕ’）を計算することを特徴とする請求項３２または３６乃至３８に記載のアクセス資格認証装置。
【請求項５７】
特に、標数が３でｐ個の元を持つ有限体Ｆｐ上の楕円曲線Ｅをｙ２＝ｘ３＋ａｘ２＋ｂｘ＋ｃとするとき、
上記第３の記憶手段に記憶される証明用補助情報ｔが、上記Ｘから、上記第２の記憶手段に記憶されるユーザ識別情報ｅと上記ｐ，ａ，ｂ，ｃとに依存する非衝突性関数値Ｆ（ｐ，ａ，ｂ，ｃ，ｅ）を減じて得られるデータｔ（＝Ｘ−Ｆ（ｐ，ａ，ｂ，ｃ，ｅ））であり、
上記証明データ生成手段は、上記ｔと、上記ｅと、上記ｐ，ａ，ｂ，ｃと、第１の記憶手段に書き込まれた認証用データｕ’から、上記Ｅ上でｕ’のＸ倍（Ｘｕ’）を計算することを特徴とする請求項３２または３６乃至３８に記載のアクセス資格認証装置。
【請求項５８】
上記証明データ生成手段は、上記Ｅ上で上記ｕ’をＸ倍した値Ｘｕ’と、第１の記憶手段に書き込まれた認証用データＣ’とを用いて証明用データを生成することを特徴とする請求項３１、３５、３９乃至４１、４５、５２または５３に記載のアクセス資格認証装置。
【請求項５９】
上記証明データ生成手段は、第１の記憶手段に書き込まれた認証用データＣ’から、上記Ｅ上で上記ｕ’をＸ倍した値Ｘｕ’を減じたもの（Ｃ’−Ｘｕ’）を計算することを特徴とする請求項５８に記載のアクセス資格認証装置。
【請求項６０】
上記証明データ生成手段が、第１の演算手段と、第２の演算手段と、第３の演算手段とからなり、
上記第１の演算手段は、上記Ｅ上で、上記ｕ’を上記ｔ倍した値（ｔｕ’）を計算し、
上記第２の演算手段は、上記Ｅ上で、上記ｕを上記Ｆ（ｐ，ａ，ｂ，ｅ）倍した値（Ｆ（ｐ，ａ，ｂ，ｅ）ｕ’）を計算し、
上記第３の演算手段は、第１の演算手段の計算結果から第２の演算手段の計算結果を加えることによって、
証明データＲ（＝ｔｕ’＋Ｆ（ｐ，ａ，ｂ，ｅ）ｕ’）を生成することを特徴とする請求項５４または５６に記載のアクセス資格認証装置。
【請求項６１】
上記証明データ生成手段が、第１の演算手段と、第２の演算手段と、第３の演算手段とからなり、
上記第１の演算手段は、上記Ｅ上で、上記ｕ’を上記ｔ倍した値（ｔｕ’）を計算し、
上記第２の演算手段は、上記Ｅ上で、上記ｕを上記Ｆ（ｐ，ａ，ｂ，ｃ，ｅ）倍した値（Ｆ（ｐ，ａ，ｂ，ｃ，ｅ）ｕ’）を計算し、
上記第３の演算手段は、第１の演算手段の計算結果と第２の演算手段の計算結果を加えることによって、
証明データＲ（＝ｔｕ’＋Ｆ（ｐ，ａ，ｂ，ｃ，ｅ）ｕ’）を生成することを特徴とする請求項５５または５７に記載のアクセス資格認証装置。
【請求項６２】
上記証明データ生成手段が、第１の演算手段と、第２の演算手段と、第３の演算手段とからなり、
上記第１の演算手段は、上記Ｃ’から、上記Ｅ上で上記ｕ’を上記ｔ倍した値を減じた値（Ｃ’−ｔｕ’）を計算し、
上記第２の演算手段は、上記Ｅ上で、上記ｕを上記Ｆ（ｐ，ａ，ｂ，ｅ）倍した値（Ｆ（ｐ，ａ，ｂ，ｅ）ｕ’）を計算し、
上記第３の演算手段は、第１の演算手段の計算結果と第２の演算手段の計算結果とを用いて、
証明データＲ（＝Ｃ’−ｔｕ’−Ｆ（ｐ，ａ，ｂ，ｅ）ｕ’）を生成することを特徴とする請求項５９に記載のアクセス資格認証装置。
【請求項６３】
上記証明データ生成手段が、第１の演算手段と、第２の演算手段と、第３の演算手段とからなり、
上記第１の演算手段は、上記Ｃ’から、上記Ｅ上で上記ｕ’を上記ｔ倍した値を減じた値（Ｃ’−ｔｕ’）を計算し、
上記第２の演算手段は、上記Ｅ上で、上記ｕを上記Ｆ（ｐ，ａ，ｂ，ｃ，ｅ）倍した値（Ｆ（ｐ，ａ，ｂ，ｃ，ｅ）ｕ’）を計算し、
上記第３の演算手段は、第１の演算手段の計算結果と第２の演算手段の計算結果とを用いて、
証明データＲ（＝Ｃ’−ｔｕ’−Ｆ（ｐ，ａ，ｂ，ｃ，ｅ）ｕ’）を生成することを特徴とする請求項５９に記載のアクセス資格認証装置。
【請求項６４】
上記証明データ検証手段が、上記証明データと、上記第４の記憶手段に記憶されている第２の認証用データとを用いて、所定の演算を行うことにより、上記第２の認証用データを復号することを特徴とする請求項６０または６１に記載のアクセス資格認証装置。
【請求項６５】
少なくとも上記第１の記憶手段と、上記第２の記憶手段と、上記第３の記憶手段と、上記証明データ生成手段とから構成される証明データ生成装置と、少なくとも上記証明データ検証手段を有し、さらに認証用データを記憶する第７の記憶手段と、証明データを記憶する第８の記憶手段を備えた証明データ検証装置とが、互いに通信することによりユーザのアクセス資格を認証するアクセス資格認証装置において、
上記証明データ検証装置は、上記第７の記憶手段に記憶されている認証用データを上記証明データ生成装置の上記第１の記憶手段に書き出し、
上記証明データ生成装置は、上記証明データ生成手段によって上記第１の記憶手段に書き込まれた上記認証用データをもとに生成した証明データを、上記証明データ検証装置中の上記第８の記憶手段に書き出し、
上記証明データ検証装置は上記第８の記憶手段に書き込まれた上記証明データを用いてユーザのアクセス資格を認証することを特徴する請求項１乃至６４に記載のアクセス資格認証装置。
【請求項６６】
少なくとも、上記第２の記憶手段と、上記証明データ生成手段とが、内部のデータ及び処理手続きを外部から観測することを困難ならしめる防御手段中に保持されていることを特徴とする請求項１乃至６５に記載のアクセス資格認証装置。
【請求項６７】
少なくとも、上記第２の記憶手段と、上記証明データ生成手段とが、ＩＣカードなどの携帯可能な小型演算装置として構成されていることを特徴とする請求項１乃至６５に記載のアクセス資格認証装置。
【請求項６８】
少なくとも、上記第２の記憶手段と、上記第２の演算手段とが、内部のデータ及び処理手続きを外部から観測することを困難ならしめる防御手段中に保持されていることを特徴とする請求項１１乃至２４または２６乃至６５に記載のアクセス資格認証装置。
【請求項６９】
少なくとも、上記第２の記憶手段と、上記第２の演算手段とが、ＩＣカードなどの携帯可能な小型演算装置として構成されていることを特徴とする請求項１１乃至２４、２６乃至６５に記載のアクセス資格認証装置。
【請求項７０】
上記証明データ検証手段は、さらに、暗号化されたデータである上記第２の認証用データに対応する平文データを記憶する第９の記憶手段と、比較手段とを有し、
上記比較手段は、上記証明データ生成手段が生成した上記証明データの値、もしくは上記証明データを用いて演算を行った結果得られた値と、第９の記憶手段に記憶されている平文データを比較し、両者が一致した場合に限り、上記証明データが正当であると判断することを特徴とする請求項２乃至２４または３１乃至６９に記載のアクセス資格認証装置。
【請求項７１】
上記証明データ検証手段は、さらに、何らかのデータを暗号を用いて暗号化したデータを記憶する第１０の記憶手段を有し、
上記第２の認証用データは、上記データを暗号化するために用いた暗号の鍵を暗号化したものであり、
上記証明データ検証手段は、上記証明データ生成手段が生成した証明データの値、もしくは上記証明データを用いて演算を行った結果得られた値を、上記データを暗号化するために用いた暗号の復号鍵として用いることにより、上記暗号化されたデータが復号できることによって、上記証明データが正当であると判断することを特徴とする請求項２乃至２４または３１乃至６９に記載のアクセス資格認証装置。
【請求項７２】
上記証明データ検証手段は、さらに、データの冗長性を検証する冗長性検証手段を有し、
上記証明データ生成手段が生成した上記証明データの値、もしくは上記証明データを用いて演算を行った結果得られた値が、冗長性検証手段によって特定の冗長性をもつことが確認されることによって、
上記証明データが正当であると判断することを特徴とする請求項２乃至６９に記載のアクセス資格認証装置。
【請求項７３】
上記証明データ検証手段は、さらに、暗号化されたデータである上記第２の認証用データに対応する平文データに、所定の一方向関数を施した結果を記憶する第１１の記憶手段と、上記一方向関数を実行する第４の演算手段と、比較手段とを有し、
第４の演算手段は、上記証明データ生成手段が生成した上記証明データの値もしくは上記証明データを用いて演算を行った結果得られた値に一方向関数を施し、
上記比較手段は、第４の演算手段による計算結果と、第１１の記憶手段に記憶されているデータを比較し、両者が一致した場合に限り、上記証明データが正当であると判断することを特徴とする請求項２乃至２４、３１、３２または３６乃至６９に記載のアクセス資格認証装置。
【請求項７４】
上記証明データ検証手段は、さらに、プログラム実行手段を含み、
上記第２の認証用データは、プログラムを暗号化して得られるデータであり、  上記証明データ検証手段が、証明データ生成手段が生成した上記証明データの値、もしくは上記証明データを用いて特定の演算を行った値をプログラムの一部もしくは全部としてプログラム実行手段に引き渡すことにより、
上記証明データ生成手段が暗号化されたプログラムである上記第２の認証用データを正しく復号した場合、即ち、暗号化されたプログラムが正しく復号された場合に限り、プログラム実行手段が正しい動作を行うことを特徴とする請求項２乃至２４または３１乃至６９に記載のアクセス資格認証装置。
【請求項７５】
上記証明データ検証手段は、さらに、プログラム実行手段と、プログラム記憶手段と、プログラム復号手段とを含み、
上記プログラム記憶手段に記憶されているプログラムは、その一部あるいは全部が暗号化されたものであり、
上記第２の認証用データは、上記暗号化されたプログラムを復号するための復号鍵を別途暗号化して得られるデータであり、
上記証明データ検証手段は、上記証明データ生成手段が生成した上記証明データをプログラム復号手段に引き渡し、
プログラム復号手段は、上記証明データ生成手段が生成した証明データの値、もしくは上記証明データを用いて演算を行った結果得られた値を復号鍵として、プログラム記憶手段に記憶されたプログラムの一部もしくは全部を復号し、
上記プログラム実行手段が復号されたプログラムを実行することにより、
証明データ生成手段が上記第２の認証用データを正しく復号された場合、即ち、暗号化されたプログラムを復号するために復号鍵が正しく復号された場合に限り、上記プログラム実行手段が正しい動作を行うことを特徴とする請求項２乃至２４または３１乃至６９に記載のアクセス資格認証装置。
【請求項７６】
第１の記憶手段、第２の記憶手段、第３の記憶手段、証明データ生成手段および証明データ検証手段を用いて、ユーザの権限を証明するために生成された証明データの正当性を検証することにより上記ユーザのアクセス資格を認証するアクセス資格認証方法において、
上記第１の記憶手段に第１の認証用データを記憶する第１の記憶ステップと、
上記第２の記憶手段にユーザの固有情報を記憶する第２の記憶ステップと、
上記ユーザの固有情報と、アクセス資格認証の特徴情報とに対し、証明用補助情報を生成するために予め定められた第１の所定の計算を実行した実行結果である証明用補助情報を、上記第３の記憶手段に記憶する第３の記憶ステップと、
上記第１の記憶ステップで記憶された上記第１の認証用データと、上記第２の記憶ステップで記憶された上記ユーザの固有情報と、上記第３の記憶ステップで記憶された上記証明用補助情報とに、上記証明データ生成手段により、証明データを生成するために予め定められた第２の所定の計算を施して証明データを生成する証明データ生成ステップと、
上記証明データ生成ステップによって生成された証明データが、上記アクセス資格認証の特徴情報に基づいて生成されていることを、上記証明データ検証手段により検証する証明データ検証ステップとを有し、
特に上記アクセス資格認証の特徴情報Ｘが、法ｐ、正整数ａとして、Ｙ＝ａＸ  ｍｏｄ  ｐなる関係を満たすように構成される、非対称暗号系における復号鍵であり、ＹがＸに対応する暗号化の鍵であるとき、
上記証明データ生成ステップは、第１の記憶ステップでに記憶された第１の認証用データに対して、法ｐのもとで、上記Ｘの値でべき乗した値を証明データとして生成し、
上記証明データ検証ステップは、上記証明データ生成ステップが生成した証明データを用いることにより、上記Ｙによって暗号化されたデータが正しく復号可能であることを検証し、
さらに、上記証明用補助情報を生成するために予め定められた第１の所定の計算と、上記証明データを生成するために予め定められた第２の所定の計算とを、上記ユーザの固有情報、上記アクセス資格の特徴情報および上記証明用補助情報が対応する場合に上記証明データ検証手段が上記証明データを正当なものと検証するように選定したことを特徴とするアクセス資格認証方法。
【請求項７７】
第１の記憶手段、第２の記憶手段、第３の記憶手段、第４の記憶手段、乱数生成手段、証明データ生成手段および証明データ検証手段を用いて、ユーザの権限を証明するために生成された証明データの正当性を検証することにより上記ユーザのアクセス資格を認証するアクセス資格認証方法において、
上記第１の記憶手段に第１の認証用データを記憶する第１の記憶ステップと、
上記第２の記憶手段にユーザの固有情報を記憶する第２の記憶ステップと、
上記ユーザの固有情報と、アクセス資格認証の特徴情報とに対し、証明用補助情報を生成するために予め定められた第１の所定の計算を実行した実行結果である証明用補助情報を、上記第３の記憶手段に記憶する第３の記憶ステップと、
上記第４の記憶手段に第２の認証用データを記憶する第４の記憶ステップと、
上記乱数生成手段により乱数生成ステップと、
上記第１の記憶ステップで記憶された上記第１の認証用データと、上記第２の記憶ステップで記憶された上記ユーザの固有情報と、上記第３の記憶ステップで記憶された上記証明用補助情報とに、上記証明データ生成手段により、証明データを生成するために予め定められた第２の所定の計算を施して証明データを生成する証明データ生成ステップと、
上記証明データ生成ステップによって生成された証明データが、上記アクセス資格認証の特徴情報に基づいて生成されていることを、上記証明データ検証手段により検証する証明データ検証ステップとを有し、
特に上記アクセス資格認証の特徴情報Ｘが、法ｐ、正整数ａとして、Ｙ＝ａＸ  ｍｏｄ  ｐなる関係を満たすように構成される、非対称暗号系における復号鍵であり、ＹがＸに対応する暗号化の鍵であるとき、
上記第２の認証用データが所定のデータを上記復号鍵に対応する暗号化鍵を用いて暗号化したものであり、
上記乱数生成ステップは、第１の認証用データＣ１に対して発生させた乱数による効果を施した値と、第２の認証用データＣ２もしくは第２の認証用データＣ２に対して上記乱数による効果を施した値の組とを、第１の記憶ステップにより記憶させ、
上記証明データ検証ステップは、上記証明データ生成ステップによって生成された証明データから上記乱数による効果を除去した結果が、アクセス資格認証の特徴情報である復号鍵で、上記第４の記憶ステップで記憶された第２の認証用データＣ２を正しく復号したものであることを検証し、
さらに、上記証明用補助情報を生成するために予め定められた第１の所定の計算と、上記証明データを生成するために予め定められた第２の所定の計算とを、上記ユーザの固有情報、上記アクセス資格の特徴情報および上記証明用補助情報が対応する場合に上記証明データ検証手段が上記証明データを正当なものと検証するように選定したことを特徴とするアクセス資格認証方法。
【請求項７８】
第１の記憶手段、第２の記憶手段、第３の記憶手段、証明データ生成手段および証明データ検証手段を用いて、ユーザの権限を証明するために生成された証明データの正当性を検証することにより上記ユーザのアクセス資格を認証するアクセス資格認証方法において、
上記第１の記憶手段に第１の認証用データを記憶する第１の記憶ステップと、
上記第２の記憶手段にユーザの固有情報を記憶する第２の記憶ステップと、
上記ユーザの固有情報と、アクセス資格認証の特徴情報とに対し、証明用補助情報を生成するために予め定められた第１の所定の計算を実行した実行結果である証明用補助情報を、上記第３の記憶手段に記憶する第３の記憶ステップと、
上記第１の記憶ステップで記憶された認証用データと、上記第２の記憶ステップで記憶された上記ユーザの固有情報と、上記第３の記憶ステップで記憶された上記証明用補助情報とに、上記証明データ生成手段により、証明データを生成するために予め定められた第２の所定の計算を施して証明データを生成する証明データ生成ステップと、
上記証明データ生成ステップによって生成された証明データが上記アクセス資格認証の特徴情報に基づいて生成されていることを、上記証明データ検証手段により検証する証明データ検証ステップとを有し、
上記アクセス資格認証の特徴情報が、有限体上の楕円曲線において定義される非対象鍵暗号の復号鍵であり、
さらに、上記証明用補助情報を生成するために予め定められた第１の所定の計算と、上記証明データを生成するために予め定められた第２の所定の計算とを、上記ユーザの固有情報、上記アクセス資格の特徴情報および上記証明用補助情報が対応する場合に上記証明データ検証手段が上記証明データを正当なものと検証するように選定したことを特徴とするアクセス資格認証方法。
【請求項７９】
第１の記憶手段、第２の記憶手段、第３の記憶手段、証明データ生成手段および証明データ検証手段を用いて、ユーザの権限を証明するために生成された証明データの正当性を検証することにより上記ユーザのアクセス資格を認証するために用いられるアクセス資格認証用コンピュータプログラムを記録した記録媒体において、
上記第１の記憶手段に第１の認証用データを記憶する第１の記憶ステップと、
上記第２の記憶手段にユーザの固有情報を記憶する第２の記憶ステップと、
上記ユーザの固有情報と、アクセス資格認証の特徴情報とに対し、証明用補助情報を生成するために予め定められた第１の所定の計算を実行した実行結果である証明用補助情報を、上記第３の記憶手段に記憶する第３の記憶ステップと、
上記第１の記憶ステップで記憶された上記第１の認証用データと、上記第２の記憶ステップで記憶された上記ユーザの固有情報と、上記第３の記憶ステップで記憶された上記証明用補助情報とに、上記証明データ生成手段により、証明データを生成するために予め定められた第２の所定の計算を施して証明データを生成する証明データ生成ステップと、
上記証明データ生成ステップによって生成された証明データが、上記アクセス資格認証の特徴情報に基づいて生成されていることを、上記証明データ検証手段により検証する証明データ検証ステップとをコンピュータに実行させるために用いられるコンピュータプログラムをコンピュータに読み出し可能に記録した記録媒体であって、
特に上記アクセス資格認証の特徴情報Ｘが、法ｐ、正整数ａとして、Ｙ＝ａＸ  ｍｏｄ  ｐなる関係を満たすように構成される、非対称暗号系における復号鍵であり、ＹがＸに対応する暗号化の鍵であるとき、
上記証明データ生成ステップは、第１の記憶ステップでに記憶された第１の認証用データに対して、法ｐのもとで、上記Ｘの値でべき乗した値を証明データとして生成し、
上記証明データ検証ステップは、上記証明データ生成ステップが生成した証明データを用いることにより、上記Ｙによって暗号化されたデータが正しく復号可能であることを検証し、
さらに、上記証明用補助情報を生成するために予め定められた第１の所定の計算と、上記証明データを生成するために予め定められた第２の所定の計算とを、上記ユーザの固有情報、上記アクセス資格の特徴情報および上記証明用補助情報が対応する場合に上記証明データ検証手段が上記証明データを正当なものと検証するように選定したことを特徴とするアクセス資格認証用コンピュータプログラムを記録した記録媒体。
【請求項８０】
第１の記憶手段、第２の記憶手段、第３の記憶手段、第４の記憶手段、乱数生成手段、証明データ生成手段および証明データ検証手段を用いて、ユーザの権限を証明するために生成された証明データの正当性を検証することにより上記ユーザのアクセス資格を認証するアクセス資格認証用コンピュータプログラムを記録した記録媒体において、
上記第１の記憶手段に第１の認証用データを記憶する第１の記憶ステップと、
上記第２の記憶手段にユーザの固有情報を記憶する第２の記憶ステップと、
上記ユーザの固有情報と、アクセス資格認証の特徴情報とに対し、証明用補助情報を生成するために予め定められた第１の所定の計算を実行した実行結果である証明用補助情報を、上記第３の記憶手段に記憶する第３の記憶ステップと、
上記第４の記憶手段に第２の認証用データを記憶する第４の記憶ステップと、
上記乱数生成手段により乱数生成ステップと、
上記第１の記憶ステップで記憶された上記第１の認証用データと、上記第２の記憶ステップで記憶された上記ユーザの固有情報と、上記第３の記憶ステップで記憶された上記証明用補助情報とに、上記証明データ生成手段により、証明データを生成するために予め定められた第２の所定の計算を施して証明データを生成する証明データ生成ステップと、
上記証明データ生成ステップによって生成された証明データが、上記アクセス資格認証の特徴情報に基づいて生成されていることを、上記証明データ検証手段により検証する証明データ検証ステップとをコンピュータに実行させるためのコンピュータプログラムをコンピュータに読み出し可能に記録した記録媒体であって、
特に上記アクセス資格認証の特徴情報Ｘが、法ｐ、正整数ａとして、Ｙ＝ａＸ  ｍｏｄ  ｐなる関係を満たすように構成される、非対称暗号系における復号鍵であり、ＹがＸに対応する暗号化の鍵であるとき、
上記第２の認証用データが所定のデータを上記復号鍵に対応する暗号化鍵を用いて暗号化したものであり、
上記乱数生成ステップは、第１の認証用データＣ１に対して発生させた乱数による効果を施した値と、第２の認証用データＣ２もしくは第２の認証用データＣ２に対して上記乱数による効果を施した値の組とを、第１の記憶ステップにより記憶させ、
上記証明データ検証ステップは、上記証明データ生成ステップによって生成された証明データから上記乱数による効果を除去した結果が、アクセス資格認証の特徴情報である復号鍵で、上記第４の記憶ステップで記憶された第２の認証用データＣ２を正しく復号したものであることを検証し、
さらに、上記証明用補助情報を生成するために予め定められた第１の所定の計算と、上記証明データを生成するために予め定められた第２の所定の計算とを、上記ユーザの固有情報、上記アクセス資格の特徴情報および上記証明用補助情報が対応する場合に上記証明データ検証手段が上記証明データを正当なものと検証するように選定したことを特徴とするアクセス資格認証用コンピュータプログラムを記録した記録媒体。
【請求項８１】
第１の記憶手段、第２の記憶手段、第３の記憶手段、証明データ生成手段および証明データ検証手段を用いて、ユーザの権限を証明するために生成された証明データの正当性を検証することにより上記ユーザのアクセス資格を認証するアクセス資格認証用コンピュータプログラムを記録した記録媒体において、
上記第１の記憶手段に第１の認証用データを記憶する第１の記憶ステップと、
上記第２の記憶手段にユーザの固有情報を記憶する第２の記憶ステップと、
上記ユーザの固有情報と、アクセス資格認証の特徴情報とに対し、証明用補助情報を生成するために予め定められた第１の所定の計算を実行した実行結果である証明用補助情報を、上記第３の記憶手段に記憶する第３の記憶ステップと、
上記第１の記憶ステップで記憶された認証用データと、上記第２の記憶ステップで記憶された上記ユーザの固有情報と、上記第３の記憶ステップで記憶された上記証明用補助情報とに、上記証明データ生成手段により、証明データを生成するために予め定められた第２の所定の計算を施して証明データを生成する証明データ生成ステップと、
上記証明データ生成ステップによって生成された証明データが上記アクセス資格認証の特徴情報に基づいて生成されていることを、上記証明データ検証手段により検証する証明データ検証ステップとをコンピュータに実行させるためのコンピュータプログラムをコンピュータに読み出し可能に記録した記録媒体であって、
上記アクセス資格認証の特徴情報が、有限体上の楕円曲線において定義される非対象鍵暗号の復号鍵であり、
さらに、上記証明用補助情報を生成するために予め定められた第１の所定の計算と、上記証明データを生成するために予め定められた第２の所定の計算とを、上記ユーザの固有情報、上記アクセス資格の特徴情報および上記証明用補助情報が対応する場合に上記証明データ検証手段が上記証明データを正当なものと検証するように選定したことを特徴とするアクセス資格認証用コンピュータプログラムを記録した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明はユーザのアクセス資格を認証するアクセス資格認証装置に関する。
【０００２】
【従来の技術】
［従来の技術の説明］
この発明と同分野に属する先行技術としてプログラムの実行制御技術が知られている。プログラム実行制御技術は、
１．  アプリケーションプログラム中にユーザ認証のためのルーチンを埋め込み、
２．  該ルーチンはアプリケーションの実行を試みているユーザが正規の認証用の鍵を保有していることを検査し、
３．  前記認証用の鍵の存在が確認された場合に限りプログラムを続行し、それ以外の場合にはプログラムの実行を停止する
技術である。当技術を利用することにより、認証鍵を保有する正規のユーザにのみアプリケーションプログラムの実行を可能ならしめることが出来る。当技術はソフトウェア頒布事業において実用化されており、製品として、例えばＲａｉｎｂｏｗ  Ｔｅｃｈｎｏｌｏｇｉｅｓ，  Ｉｎｃ．社のＳｅｎｔｉｎｅｌＳｕｐｅｒＰｒｏ（商標）や、Ａｌａｄｄｉｎ  Ｋｎｏｗｌｅｄｇｅ  Ｓｙｓｔｅｍｓ  Ｌｔｄ．社のＨＡＳＰ（商標）等がある。
【０００３】
以下にプログラム実行制御技術について、より詳細に説明する。
１．  ソフトウェアの実行を行うユーザはユーザ識別情報として認証鍵を保有する。認証鍵は暗号化のための鍵であり、ソフトウェアの利用を許可する者、例えばソフトウェアベンダがユーザに配布する。認証鍵は複製を防ぐためにハードウェア中のメモリ等に厳重に封入され、郵便等の物理的手段を用いてユーザに配送される。
２．  ユーザは認証鍵を内蔵したハードウェアを指定された方法で所有のパソコン・ワークステーションに装着する。ハードウェアは、例えばプリンタポートに装着される。
３．  ユーザがアプリケーションプログラムを起動し、プログラムの実行が前記ユーザ認証ルーチンに及ぶと、プログラムはユーザの認証鍵を内蔵したハードウェアと通信する。通信の結果に基づいてプログラムは認証鍵を識別し、正しい認証鍵の存在が確認されると次のステップへ実行を移す。通信が失敗し認証鍵の存在が確認できない場合は、プログラムは自らを停止し以降の実行ができないようにする。
【０００４】
アクセス資格認証ルーチンによる認証鍵の識別は、例えば、次のようなプロトコルに従って行われる。
１．  アクセス資格認証ルーチンは適当な数を生成し鍵内蔵ハードウェアに送信する。
２．  鍵内蔵ハードウェアは内蔵する認証鍵を用いて送られた数を暗号化し、前記認証ルーチンに返信する。
３．  認証ルーチンは、返信された数が予め予想された数、即ちハードウェアに送信した数を正しい認証鍵で暗号化して得られる数であるか否かを判定する。
４．  返信された数が予想された数と一致する場合にはプログラムの実行を続行し、一致しない場合には停止する。
【０００５】
この際、アプリケーションプログラムと認証鍵内蔵ハードウェア間の通信は、たとえ同じアプリケーションプログラム中の同じ箇所において同じハードウェアとの間で交換されるものであろうとも、実行のたびに異ならなければならない。さもなければ、正常な実行過程における通信内容を一度記録し、以後プログラムを実行する度に記録した通りにアプリケーションプログラムへの返信を行うことにより、正しい認証鍵を保有しないユーザでもプログラムを実行することが可能となってしまう。このような通信内容の再現によるアプリケーションプログラムの不正実行をリプレイアタック（ｒｅｐｌａｙ  ａｔｔａｃｋ）と呼ぶ。
【０００６】
リプレイアタックを防ぐために、通常、鍵内蔵ハードウェアに送られる数は通信の度に新たに生成される乱数を用いる。
【０００７】
［従来の技術の問題点］
従来技術の問題点は、アプリケーションプログラムを作成する際に、プログラム作成者がユーザが持つ認証鍵を予め想定した上で、該認証鍵に基づいてプログラムの保護処理を行わなければならないという性質に由来する。
【０００８】
つまり、プログラム作成者は、鍵内蔵ハードウェアからの正しい返信をプログラム作成時に予測して、正しい返信を受けた場合にのみプログラムが正常に実行されるようにプログラムの作成を行わなければならない。
【０００９】
上記特徴を有する従来技術の利用形態は基本的に２通りとなるが、いずれの場合も以下に述べる問題を有する。
【００１０】
１．  第一の方法ではユーザの認証鍵をユーザ毎に異なるように用意する。即ち、ユーザ甲には認証鍵甲、ユーザ乙には認証鍵乙というように、ユーザ毎に異なる認証鍵を一つずつ用意する。
【００１１】
この場合、プログラム作成者は、プログラム中の認証ルーチンをユーザ毎に適切に変えてプログラムを作成する必要がある。つまり、ユーザ毎に認証鍵が異なるので、プログラム中の認証ルーチンは該プログラムを利用するユーザ固有の認証鍵を識別するように作成されなければならず、プログラム作成者は利用ユーザの数だけ異なるプログラムを作成する必要がある。
【００１２】
対象となるユーザが多数の場合、プログラムをユーザ毎に個別化する作業はプログラム作成者にとって耐えがたい労力を要求し、管理しなければならないユーザ認証鍵のリストも膨大なものとなる。
【００１３】
２．  第二の方法では、プログラム作成者はアプリケーション毎にそれぞれ異なる認証鍵を用意する。即ち、アプリケーション甲には認証鍵甲、アプリケーション乙には認証鍵乙というように、アプリケーション毎に異なる認証鍵を一つずつ用意し、固有の認証鍵を識別するように各アプリケーションプログラムを作成する。
【００１４】
この方法では、第一の方法の場合のようにユーザ毎にプログラムを個別的に作成する必要は無くなるが、逆に、ユーザは利用するアプリケーションの数だけ認証鍵を保持しなければならないこととなる。
【００１５】
この制約はプログラム作成者及びユーザそれぞれに以下のような問題を惹起する。
【００１６】
前述のように、認証鍵はハードウェアに厳重に封入した状態でユーザに配布する必要がある。従って、プログラム自身はネットワークを介して簡便に配布することができるのと対照的に、認証鍵を内蔵するハードウェアの配布は郵便等の物理手段に頼らざるを得ない。この制限は、コスト、時間、梱包の手間いずれをとっても、プログラム作成者とって大きな負担となる。
【００１７】
プログラム作成者は、ユーザの要求に応えるべく、アプリケーション毎に異なるハードウェアを一定個数ストックしておかなければならず、在庫管理のコストを必要とする。
【００１８】
また、ユーザは利用するアプリケーションを変更する度にハードウェアを交換しなければならないという煩雑さに甘んじなければならない。
【００１９】
ユーザがあるアプリケーションを使いたいとしても、認証鍵が封入されたハードウェアが届くまで待たねばならず、即座に利用できないという点での不便さも生ずる。
【００２０】
この負担を軽減するため、ハードウェア中に複数の認証鍵を予め封入しておき、新しいアプリケーションの利用をユーザに許可する度に、ハードウェア中の未使用の認証鍵を利用可能とするためのパスワードをユーザに教えるといった方法が用いられる。しかしながら、この方法を用いたとしても、前記の問題点は原理的に解決されないことは明らかである。実際、商品化に際しては、上記問題点に起因する不便さを緩和するために、ハードウェアは連接して複数結合することが可能となるように設計される。
【００２１】
このように、上記二つのいずれの方法をとったとしても、プログラム作成者及びユーザの利便に問題が存在する。
【００２２】
なお、実行制御の外的な特質を考えると、メールのプライバシー保護やファイルや計算機資源のアクセス制御、その他一般のデジタルコンテンツアクセス制御にも適用可能であると想像できる。しかしながら、従来技術をこれらの分野に適用しようとしても、前記の問題点により不可能である。
【００２３】
【発明が解決しようとする課題】
この発明は、以上の事情を考慮してなされたものであり、ユーザ側及びアプリケーション作成者等のプロテクト側の双方に生ずる、多数の認証鍵等の固有情報を取り扱うことによって派生する不具合を解消し、プログラムの実行制御、デジタルコンテンツ（静止画・動画・音声等）のアクセス権保護、メールのプライバシー保護、ファイルや計算機資源のアクセス制御等を行う際に、ユーザのアクセス資格を簡易に認証する事ができるようにした、アクセス資格認証装置を提供することを目的とする。
【００２４】
【課題を解決するための手段】
本発明の第１の実現形態にによれば、上述の目的を達成するために、ユーザの権限を証明するために生成された証明データの正当性を検証することにより上記ユーザのアクセス資格を認証するアクセス資格認証装置に、第１の認証用データを記憶する第１の記憶手段と、ユーザの固有情報を記憶する第２の記憶手段と、上記ユーザの固有情報と、アクセス資格認証の特徴情報とに対し、所定の計算を実行した実行結果である証明用補助情報を記憶する第３の記憶手段と、上記第１の記憶手段に保持されている認証用データと、上記第２の記憶手段に記憶されている上記ユーザの固有情報と、上記第３の記憶手段に記憶されている上記証明用補助情報とに所定の計算を施して証明データを生成する証明データ生成手段と、上記証明データ生成手段によって生成された証明データが、上記アクセス資格認証の特徴情報に基づいて生成されていることを検証する証明データ検証手段とを設け、特に上記アクセス資格認証の特徴情報Ｘが、法ｐ、正整数ａとして、Ｙ＝ａＸ  ｍｏｄ  ｐなる関係を満たすように構成し、非対称暗号系における復号鍵であり、ＹがＸに対応する暗号化の鍵であるように設定し、上記証明データ生成手段は、第１の記憶手段に記憶されている第１の認証用データに対して、法ｐのもとで、前記Ｘの値でべき乗した値を証明データとして生成し、上記証明データ検証手段が、上記証明データ生成手段が生成した証明データを用いることにより、上記Ｙによって暗号化されたデータが正しく復号可能であることを検証するように構成される。
【００２５】
このような構成により、証明用補助データ（アクセスチケット）を導入することで、アクセス資格認証の特徴情報とユーザ固有情報とを独立させることができる。ユーザはあらかじめ固有情報を保持し、プログラム作成者等のアクセスコントロールを行いたい者は、ユーザが所持する固有情報とは独立にアクセス資格認証の特徴情報を用意し、証明用補助データ（アクセスチケット）をユーザの固有情報とアプリケーションプログラムの作成等に使用したアクセス資格認証の特徴情報とに応じて作成し、配布することにより、実行制御等のユーザのアクセス資格の認証を行う事ができる。
【００２６】
また本発明の第１の実現形態において、上記アクセス資格認証装置に、第２の認証用データを記憶する第４の記憶部を設け、上記第２の認証用データを適当なデータを前記復号鍵に対応する暗号化鍵を用いて暗号化したものとし、上記証明データ検証手段が、上記証明データ生成手段が生成する上記証明データと、上記第４の記憶手段に記憶されている第２の認証用データとに対して特定の演算を施した結果が、アクセス資格認証の特徴情報である上記暗号鍵に対応する復号鍵によって、上記第２の認証用データを正しく復号したものであることを認証するようにすることもできる。
【００２７】
また、上記第１の実現形態において、上記アクセス資格認証装置に、乱数生成手段を設け、乱数生成手段は発生させた乱数による効果を加えた値を上記第１の認証用データとして、第１の記憶手段に記憶させるようにしてもよい。
【００２８】
また、上記第１の実現形態において、上記証明データ検証手段は、上記証明データ生成手段によって生成された証明データから上記乱数による効果を除去するように構成することもできる。
【００２９】
また、上記第１の実現形態において、上記アクセス資格認証装置に、認証用素データを記憶する第５の記憶手段と、乱数生成手段が生成した乱数を記憶する第６の記憶手段を設け、上記乱数生成手段が生成した乱数を第６の記憶手段に書き込むと共に、上記第５の記憶手段に記憶されている認証用素データに前記乱数を用いた乱数効果を施した後、第１の認証用データとして上記第１の記憶手段に書き込むようにしてもよい。
【００３０】
また、上記第１の実現形態において、上記証明データ検証手段が、上記第６の記憶手段に記憶されている乱数による乱数効果を、上記証明データ生成手段によって生成された証明データから除去するようにすることもできる。
【００３１】
また、本発明の第２の実現形態によれば、上述の目的を達成するために、ユーザの権限を証明するために生成された証明データの正当性を検証することにより上記ユーザのアクセス資格を認証するアクセス資格認証装置に、第１の認証用データを記憶する第１の記憶手段と、ユーザの固有情報を記憶する第２の記憶手段と、上記ユーザの固有情報と、アクセス資格認証の特徴情報とに対し、所定の計算を実行した実行結果である証明用補助情報を記憶する第３の記憶手段と、第２の認証用データを記憶する第４の記憶手段と、乱数生成手段と、上記第１の記憶手段に保持されている認証用データと、上記第２の記憶手段に記憶されている上記ユーザの固有情報と、上記第３の記憶手段に記憶されている上記証明用補助情報とに所定の計算を施して証明データを生成する証明データ生成手段と、上記証明データ生成手段によって生成された証明データが、上記アクセス資格認証の特徴情報に基づいて生成されていることを検証する証明データ検証手段とを設け、上記アクセス資格認証の特徴情報Ｘが、法ｐ、正整数ａとして、Ｙ＝ａＸ  ｍｏｄ  ｐなる関係を満たすように構成される非対称暗号系における復号鍵であり、ＹがＸに対応する暗号化の鍵であるように設定し、上記第２の認証用データを適当なデータを前記復号鍵に対応する暗号化鍵を用いて暗号化したものとし、乱数生成手段は、第１の認証用データＣ１に対して発生させた乱数による効果を施した値と、第２の認証用データＣ２もしくは第２の認証用データＣ２に対して上記乱数による効果を施した値の組とを、第１の記憶手段に記憶させ、上記証明データ検証手段は、上記証明データ生成手段によって生成された証明データから上記乱数による効果を除去した結果が、アクセス資格認証の特徴情報である復号鍵で、上記第４の記憶手段に記憶されている第２の認証用データＣ２を正しく復号したものであることを検証するように構成される。
【００３２】
この構成においても、第１の実現形態と同様な効果を実現できる。
【００３３】
また、上記第２の実現形態において、上記アクセス資格認証装置に、認証用素データを記憶する第５の記憶手段と、生成した乱数を記憶する第６の記憶手段を設け、上記乱数生成手段は生成した乱数を第６の記憶手段に書き込むと共に、上記第５の記憶手段に記憶されている認証用素データに前記乱数を用いた乱数効果を施した値と、上記第４の記憶手段に記憶されている第２の認証用データに対して上記乱数を用いた乱数効果を施した値との組を、上記第１の記憶手段に書き込むようにすることもできる。
【００３４】
また、上記第２の実現形態において、上記アクセス資格認証装置に、認証用素データを記憶する第５の記憶手段と、生成した乱数を記憶する第６の記憶手段を設け、上記乱数生成手段は生成した乱数を第６の記憶手段に書き込むと共に、上記第５の記憶手段に記憶されている認証用素データに前記乱数を用いた乱数効果を施した値と、上記第４の記憶手段に記憶されている第２の認証用データとの組を、上記第１の記憶手段に書き込むようにすることもできる。
【００３５】
また、上記第２の実現形態において、証明データ検証手段が、上記第６の記憶手段に記憶されている乱数による乱数効果を、上記証明データ生成手段によって生成された証明データから除去するようにすることもできる。
【００３６】
また、上記第１、第２の実現形態において、上記証明データ生成手段を、第１の演算手段と、第２の演算手段と、第３の演算手段とから構成し、第１の演算手段は、上記第１の記憶手段に記憶されている認証用データと、上記第３の記憶手段に記憶されている証明用補助情報とに所定の計算を施し、第２の演算手段は、上記第１の記憶手段に記憶されている認証用データと、第２の記憶手段に記憶されているユーザの固有情報とに所定の計算を施し、第３の演算手段が、上記第１の演算手段による計算結果と、上記第２の演算手段による計算結果とに所定の計算を施し、その結果として上記証明データを生成するようにすることもできる。
【００３７】
また、上記第１の実現形態において、特に上記アクセス資格認証の特徴情報が、法ｐ、正整数ａのもとでＹ＝ａＸ  ｍｏｄ  ｐを満たすように構成される復号鍵Ｘであり、鍵Ｘに対応する暗号化の鍵がＹであり、ｕが上記ａを法ｐのもとで所定の乱数ｚを指数としてべき乗した数であり（ｕ＝ａｚ  ｍｏｄ  ｐ）、Ｃが、上記Ｙを法ｐのもとで上記乱数ｚを指数としてべき乗した数と、データＫとの積であるとき（Ｃ＝ＹｚＫ  ｍｏｄ  ｐ）、上記第１の記憶手段に認証用データとしてｕが記憶され、上記第４の記憶手段にはＣが記憶され、証明データ検証手段は、第４の記憶手段に記憶されているＣを証明データ生成手段によって生成された証明データＲで割ったものと、前記Ｋとが法ｐのもとで合同であること（Ｋｍｏｄ  ｐ＝  ＣＲ−１  ｍｏｄ  ｐ）を検証するようにしてもよい。
【００３８】
また、上記第１の実現形態において、特に上記アクセス資格認証の特徴情報が、法ｐ、正整数ａのもとでＹ＝ａＸ  ｍｏｄ  ｐを満たすように構成される復号鍵Ｘであり、鍵Ｘに対応する暗号化の鍵がＹであり、ｕが上記ａを法ｐのもとで所定の乱数ｚを指数としてべき乗した数であり（ｕ＝ａｚ  ｍｏｄ  ｐ）、Ｃが、上記Ｙを法ｐのもとで上記乱数ｚを指数としてべき乗した数と、データＫとの積であるとき（Ｃ＝ＹｚＫ  ｍｏｄ  ｐ）、上記第５の記憶手段に認証用素データとしてｕが記憶され、上記第４の記憶手段にはＣが記憶され、上記乱数生成手段は、生成した乱数ｒを指数として前記ｕを法ｐのもとで冪乗して得られる数ｕ’（＝ｕｒ  ｍｏｄ  ｐ）を認証用データとして法数ｐとともに上記第１の記憶手段に書き込み、証明データ検証手段は、第６の記憶手段に記憶されている乱数ｒの法（ｐ−１）のもとでの逆数を指数として、証明データ生成手段によって生成された証明データＲを法数ｐのもとで冪乗した数ｖ
【００３９】
【数３】
0003613929.tif 000002
を計算し、更に、第４の記憶手段に記憶されているＣを前記ｖで割ったものと、前記Ｋとが法ｐのもとで合同であること（Ｋ  ｍｏｄ  ｐ＝  Ｃｖ−１  ｍｏｄ  ｐ）を、検証するようにしてもよい。
【００４０】
また、上記第１の実現形態において、特に上記アクセス資格認証の特徴情報が、法ｐ、正整数ａのもとでＹ＝ａＸ  ｍｏｄ  ｐを満たすように構成される復号鍵Ｘであり、鍵Ｘに対応する暗号化の鍵がＹであり、ｕが上記ａを法ｐのもとで所定の乱数ｚを指数としてべき乗した数であり（ｕ＝ａｚ  ｍｏｄ  ｐ）、Ｃが、上記Ｙを法ｐのもとで上記乱数ｚを指数としてべき乗した数と、データＫとの積であるとき（Ｃ＝ＹｚＫ  ｍｏｄ  ｐ）、上記第５の記憶手段に認証用素データとしてｕが記憶され、上記第４の記憶手段にはＣが記憶され、上記乱数生成手段は、生成した乱数ｒを指数として前記ａを法ｐのもとで冪乗した値に上記ｕを乗じて得られる数ｕ’（＝ａｒｕ  ｍｏｄ  ｐ）を認証用データとして法数ｐとともに上記第１の記憶手段に書き込み、上記証明データ検証手段は、法ｐのもとで、証明データ生成手段によって生成された証明データＲを、上記Ｙを第６の記憶手段に記憶されている乱数ｒでべき乗した値で割った数ｖ（＝ＲＹ−ｒ  ｍｏｄｐ）を計算し、更に、第４の記憶手段に記憶されているＣを前記ｖで割ったものと、前記Ｋとが法ｐのもとで合同であること（Ｋ  ｍｏｄ  ｐ＝Ｃｖ−１  ｍｏｄ  ｐ）を検証するようにしてもよい。
【００４１】
また、上記第２の実現形態において、特に上記アクセス資格認証の特徴情報が、法ｐ、正整数ａのもとでＹ＝ａＸ  ｍｏｄ  ｐを満たすように構成される復号鍵Ｘであり、鍵Ｘに対応する暗号化の鍵がＹであり、ｕが上記ａを法ｐのもとで所定の乱数ｚを指数としてべき乗した数であり（ｕ＝ａｚ  ｍｏｄ  ｐ）、Ｃが、上記Ｙを法ｐのもとで上記乱数ｚを指数としてべき乗した数と、データＫとの積であるとき（Ｃ＝ＹｚＫ  ｍｏｄ  ｐ）、上記第５の記憶手段に認証用素データとしてｕが記憶され、上記第４の記憶手段にはＣが記憶され、上記乱数生成手段は、生成した乱数ｒを指数として前記ｕを法ｐのもとで冪乗して得られる数ｕ’（＝ｕｒ  ｍｏｄ  ｐ）と、生成した乱数ｒを指数として前記Ｃを法ｐのもとで冪乗して得られる数Ｃ’（＝Ｃｒ  ｍｏｄ  ｐ）との組を認証用データとして法数ｐとともに上記第１の記憶手段に書き込み、証明データ検証手段は、第６の記憶手段に記憶されている乱数ｒの法（ｐ−１）のもとでの逆数を指数として、上記証明データ生成手段によって生成された証明データＲを法数ｐのもとで冪乗した数と、前記Ｋとが、法ｐのもとで合同であること
【００４２】
【数４】
0003613929.tif 000003
を検証するようにしてもよい。
【００４３】
また、上記第２の実現形態において、特に上記アクセス資格認証の特徴情報が、法ｐ、正整数ａのもとでＹ＝ａＸ  ｍｏｄ  ｐを満たすように構成される復号鍵Ｘであり、鍵Ｘに対応する暗号化の鍵がＹであり、ｕが上記ａを法ｐのもとで所定の乱数ｚを指数としてべき乗した数であり（ｕ＝ａｚ  ｍｏｄ  ｐ）、Ｃが、上記Ｙを法ｐのもとで上記乱数ｚを指数としてべき乗した数と、データＫとの積であるとき（Ｃ＝ＹｚＫ  ｍｏｄ  ｐ）、上記第５の記憶手段に認証用素データとしてｕが記憶され、上記第４の記憶手段にはＣが記憶され、上記乱数生成手段は、生成した乱数ｒを指数として前記ａを法ｐのもとで冪乗した値に前記ｕを乗じて得られる数ｕ’（＝  ｕａｒ  ｍｏｄ  ｐ）と、前記Ｃとの組を、認証用データとして法数ｐとともに上記第１の記憶手段に書き込み、証明データ検証手段は、上記Ｙを第６の記憶手段に記憶されている乱数ｒで冪乗した値に上記証明データ生成手段によって生成された証明データＲを乗じた値と、前記Ｋとが、法ｐのもとで合同であること（Ｋ  ｍｏｄ  ｐ＝ＲＹｒ  ｍｏｄ  ｐ）を検証するようにしてもよい。
【００４４】
また、上記第１の実現形態において、上記第３の記憶手段に記憶される証明用補助情報ｔが、上記Ｘから、上記第２の記憶手段に記憶されるユーザ識別情報ｅと上記ｐとに依存する非衝突性関数値Ｆ（ｐ，ｅ）を減じて得られるデータｔ（＝Ｘ−Ｆ（ｐ，ｅ））であり、上記証明データ生成手段は、前記ｔと、前記ｅと、第１の記憶手段に書き込まれた認証用データｕ’から、法ｐのもとでｕ’のＸ乗（（ｕ’）Ｘ  ｍｏｄ  ｐ）を計算するようにしてもよい。
【００４５】
また、上記第２の実現形態において、上記第３の記憶手段に記憶される証明用補助情報ｔが、上記Ｘから、上記第２の記憶手段に記憶されるユーザ識別情報ｅと上記ｐとに依存する非衝突性関数値Ｆ（ｐ，ｅ）を減じて得られるデータｔ（＝Ｘ−Ｆ（ｐ，ｅ））であり、上記証明データ生成手段は、前記ｔと、前記ｅと、第１の記憶手段に書き込まれた認証用データｕ’及びＣ’から、法ｐのもとで、  上記Ｃ’を上記ｕ’のＸ乗で割った値（Ｃ’（ｕ’）−Ｘ  ｍｏｄ  ｐ）を計算するようにしてもよい。
【００４６】
また、上記第１の実現形態において、上記第３の記憶手段に記憶される証明用補助情報ｔが、上記Ｘから、上記第２の記憶手段に記憶されるユーザ識別情報ｅと上記暗号化鍵Ｙとに依存する非衝突性関数値Ｆ（Ｙ，ｅ）を減じて得られるデータｔ（＝Ｘ−Ｆ（Ｙ，ｅ））であり、上記証明データ生成手段は、上記ｔと、上記ｅと、第１の記憶手段に書き込まれた認証用データｕ’から、法ｐのもとでｕ’のＸ乗（（ｕ’）Ｘ  ｍｏｄ  ｐ）を計算するようにしてもよい。
【００４７】
また、上記第２の実現形態において、上記第３の記憶手段に記憶される証明用補助情報ｔが、上記Ｘから、上記第２の記憶手段に記憶されるユーザ識別情報ｅと上記暗号化鍵Ｙとに依存する非衝突性関数値Ｆ（Ｙ，ｅ）を減じて得られるデータｔ（＝Ｘ−Ｆ（Ｙ，ｅ））であり、上記証明データ生成手段は、上記ｔと、上記ｅと、第１の記憶手段に書き込まれた認証用データｕ’及びＣ’から、法ｐのもとで、上記Ｃ’を上記ｕ’のＸ乗で割った値（Ｃ’（ｕ’）−Ｘ  ｍｏｄ  ｐ）を計算するようにしてもよい。
【００４８】
また、上記第１の実現形態において、上記証明データ生成手段が、第１の演算手段と、第２の演算手段と、第３の演算手段とからなり、第１の演算手段は、上記法ｐのもとで、上記ｕ’の上記ｔ乗した値（（ｕ’）ｔ  ｍｏｄ  ｐ）を計算し、第２の演算手段は、上記法ｐのもとで上記ｕの上記Ｆ（ｐ，ｅ）乗した値（（ｕ’）Ｆ（ｐ，ｅ）  ｍｏｄ  ｐ）を計算し、第３の演算手段は、前記法ｐのもとで、第１の演算手段の計算結果と第２の演算手段の計算結果とを乗ずることによって、証明データＲ（＝（ｕ’）ｔ（ｕ’）Ｆ（ｐ，ｅ）  ｍｏｄ  ｐ）を生成するようにしてもよい。
【００４９】
また、上記第２の実現形態において、上記証明データ生成手段が、第１の演算手段と、第２の演算手段と、第３の演算手段とからなり、第１の演算手段は、上記法ｐのもとで、上記ｕ’の上記ｔ乗した値（（ｕ’）ｔ  ｍｏｄ  ｐ）を計算し、第２の演算手段は、上記法ｐのもとで、上記ｕの上記Ｆ（ｐ，ｅ）乗した値（（ｕ’）Ｆ（ｐ，ｅ）  ｍｏｄ  ｐ）を計算し、第３の演算手段は、上記法ｐのもとで、第１の演算手段の計算結果と第２の演算手段の計算結果とを乗じた値の逆数を計算し、さらにその値に上記Ｃ’を乗ずることによって、証明データＲ（＝Ｃ’（（ｕ’）ｔ（ｕ’）Ｆ（ｐ，ｅ））−１  ｍｏｄ  ｐ）を生成するようにしてもよい。
【００５０】
また、上記第１の実現形態において、上記証明データ生成手段が、第１の演算手段と、第２の演算手段と、第３の演算手段とからなり、上記第１の演算手段は、上記法ｐのもとで、上記ｕ’の上記ｔ乗した値（（ｕ’）ｔ  ｍｏｄ  ｐ）を計算し、上記第２の演算手段は、上記法ｐのもとで上記ｕの上記Ｆ（Ｙ，ｅ）乗した値（（ｕ’）Ｆ（Ｙ，ｅ）  ｍｏｄ  ｐ）を計算し、上記第３の演算手段は、上記法ｐのもとで、第１の演算手段の計算結果と第２の演算手段の計算結果とを乗ずることによって、証明データＲ（＝（ｕ’）ｔ（ｕ’）Ｆ（Ｙ，ｅ）  ｍｏｄ  ｐ）を生成するようにしてもよい。
【００５１】
また、上記第２の実現形態において、上記証明データ生成手段が、第１の演算手段と、第２の演算手段と、第３の演算手段とからなり、上記第１の演算手段は、上記法ｐのもとで、上記ｕ’の上記ｔ乗した値（（ｕ’）ｔ  ｍｏｄ  ｐ）を計算し、上記第２の演算手段は、上記法ｐのもとで、上記ｕの上記Ｆ（Ｙ，ｅ）乗した値（（ｕ’）Ｆ（Ｙ，ｅ）  ｍｏｄ  ｐ）を計算し、上記第３の演算手段は、上記法ｐのもとで、第１の演算手段の計算結果と第２の演算手段の計算結果とを乗じた値の逆数を計算し、さらにその値に上記Ｃ’を乗ずることによって、証明データＲ（＝Ｃ’（（ｕ’）ｔ（ｕ’）Ｆ（Ｙ，ｅ））−１  ｍｏｄ  ｐ）を生成するようにしてもよい。
【００５２】
また、本発明の第３の実現形態によれば、上述の目的を達成するために、ユーザの権限を証明するために生成された証明データの正当性を検証することにより上記ユーザのアクセス資格を認証するアクセス資格認証装置に、第１の認証用データを記憶する第１の記憶手段と、  ユーザの固有情報を記憶する第２の記憶手段と、上記ユーザの固有情報と、アクセス資格認証の特徴情報とに対し、所定の計算を実行した実行結果である証明用補助情報を記憶する第３の記憶手段と、上記第１の記憶手段に保持されている認証用データと、上記第２の記憶手段に記憶されている上記ユーザの固有情報と、上記第３の記憶手段に記憶されている上記証明用補助情報とに所定の計算を施して証明データを生成する証明データ生成手段と、上記証明データ生成手段によって生成された証明データが上記アクセス資格認証の特徴情報に基づいて生成されていることを検証する証明データ検証手段とを設け、上記アクセス資格認証の特徴情報が、有限体上の楕円曲線において定義される非対称鍵暗号の復号鍵であるように構成される。
【００５３】
このようにアクセス資格認証の特徴情報に、有限体上での楕円曲線上で定義された、非対称鍵暗号系を用いることにより、ＲＳＡ公開鍵暗号等を用いる場合に比べて、鍵の長さを短くしても同等の安全性が得られ、かつ処理を高速に行うことができる。
【００５４】
また、上記第３の実現形態において、上記証明データ生成手段を、第１の演算手段と、第２の演算手段と、第３の演算手段とから構成し、第１の演算手段は、上記第１の記憶手段に記憶されている認証用データと、上記第３の記憶手段に記憶されている証明用補助情報とに所定の計算を施し、第２の演算手段は、上記第１の記憶手段に記憶されている認証用データと、第３の記憶手段に記憶されているユーザの固有情報とに所定の計算を施し、第３の演算手段が、上記第１の演算手段による計算結果と、上記第２の演算手段による計算結果とに所定の計算を施し、その結果として上記証明データを生成するようにすることもできる。
【００５５】
また、上記第３の実現形態において、上記アクセス資格認証装置に、第２の認証用データを記憶する第４の記憶部を設け、上記第２の認証用データを適当なデータを前記復号鍵に対応する暗号化鍵を用いて暗号化したものとし、上記証明データ検証手段は、上記証明データ生成手段が生成する上記証明データが、アクセス資格認証の特徴情報である上記暗号鍵に対応する復号鍵によって、上記第２の認証用データを正しく復号したものであることを認証するようにしてもよい。
【００５６】
また、上記第３の実現形態において、上記アクセス資格認証装置に、第２の認証用データを記憶する第４の記憶部を設け、上記第２の認証用データを適当なデータを前記復号鍵に対応する暗号化鍵を用いて暗号化したものとし、上記証明データ検証手段は、上記証明データ生成手段が生成する上記証明データと、上記第４の記憶手段に記憶されている第２の認証用データとに対して特定の演算を施した結果が、アクセス資格認証の特徴情報である上記暗号鍵に対応する復号鍵によって、上記第２の認証用データを正しく復号したものであることを認証するようにすることもできる。
【００５７】
また、上記第３の実現形態において、上記アクセス資格認証装置に、乱数生成手段を設け、乱数生成手段は発生させた乱数による効果を加えた値を上記第１の認証用データとして、第１の記憶手段に記憶させるようにすることもできる。
【００５８】
また、上記第３の実現形態において、上記証明データ検証手段が、上記証明データ生成手段によって生成された証明データから上記乱数による効果を除去するようにしてもよい。
【００５９】
また、上記第３の実現形態において、上記アクセス資格認証装置に、認証用素データを記憶する第５の記憶手段と、乱数生成手段が生成した乱数を記憶する第６の記憶手段を設け、上記乱数生成手段は生成した乱数を第６の記憶手段に書き込むと共に、上記第５の記憶手段に記憶されている認証用素データに前記乱数を用いた乱数効果を施した後、第１の認証用データとして上記第１の記憶手段に書き込むようにしてもよい。
【００６０】
また、上記第３の実現形態において、証明データ検証手段が、上記第６の記憶手段に記憶されている乱数による乱数効果を、上記証明データ生成手段によって生成された証明データから除去するようにしてもよい。
【００６１】
また、上記第３の実現形態において、上記第１の認証用データを適当なデータを前記復号鍵に対応する暗号化鍵を用いて暗号化したものとし、上記証明データ検証手段は、上記証明データ生成手段が生成する上記証明データが、上記第１の認証用データを正しく復号したものであることを検証するようにしてもよい。
【００６２】
また、上記第３の実現形態において、証明データ検証手段は、第６の記憶手段に記憶されている乱数による乱数効果を、上記証明データ生成装置によって生成された証明データから除去した結果が、アクセス資格認証の特徴情報である復号鍵で第５の記憶手段に記憶されている認証用素データを復号したものであることを検証するようにしてもよい。
【００６３】
また、上記第３の実現形態において、特に、有限体上の楕円曲線Ｅ上の点をＰとし、上記アクセス資格認証の特徴情報を正整数Ｘとして、復号鍵Ｘに対応する暗号化鍵Ｙを、上記ＰをＸ倍したＥ上の点（Ｙ＝ＸＰ）とするとき、所定の乱数ｚを用いて、ｕを上記ＰをＥ上でｚ倍した点とし（ｕ＝ｚａ）、Ｃを上記ＹをＥ上で上記ｚ倍した数とＥ上の点Ｋとの和とすると（Ｃ＝Ｋ＋ｚＹ）、上記第５の記憶手段に認証用素データとしてＣが記憶され、上記第４の記憶手段にはｕが記憶され、上記乱数生成手段は、Ｅ上のランダムな点ｒを生成し、前記ｕと、前記Ｃにｒを加えた点Ｃ’（＝ｒ＋Ｃ）との組を認証用データとして上記第１の記憶手段に書き込み、証明データ検証手段は、証明データ生成手段によって生成された証明データＲから、第６の記憶手段に記憶されているｒを減じた値と、前記Ｋとが等しくなること（Ｋ＝Ｒ−ｒ）を検証するようにしてもよい。
【００６４】
また、上記第３の実現形態において、特に、有限体上の楕円曲線Ｅ上の点をＰとし、上記アクセス資格認証の特徴情報を正整数Ｘとして、復号鍵Ｘに対応する暗号化鍵Ｙを、上記ＰをＸ倍したＥ上の点（Ｙ＝ＸＰ）とするとき、所定の乱数ｚを用いて、ｕを上記ＰをＥ上でｚ倍した点とし（ｕ’＝ｚＰ）、Ｃを上記ＹをＥ上で上記ｚ倍した値（ｚＹ）とデータＫとに所定の演算を施した値とし、上記第１の記憶手段に認証用データとしてｕ’が記憶され、上記第４の記憶手段にはＣが記憶され、証明データ検証手段は、第４の記憶手段に記憶されているＣと証明データＲとに演算を施した値と、前記Ｋとが等しくなることを検証するようにしてもよい。
【００６５】
また、上記第３の実現形態において、特に、有限体上の楕円曲線Ｅ上の位数がｑである点をＰとし、上記アクセス資格認証の特徴情報を正整数Ｘとして、復号鍵Ｘに対応する暗号化鍵Ｙを、上記ＰをＸ倍したＥ上の点（Ｙ＝ＸＰ）とするとき、所定の乱数ｚを用いて、ｕを上記ＰをＥ上でｚ倍した点とし（ｕ＝ｚＰ）、Ｃを上記ＹをＥ上で上記ｚ倍した値（ｚＹ）とデータＫとに所定の演算を施した値とし、上記第５の記憶手段に認証用素データとしてｕが記憶され、上記第４の記憶手段にはＣが記憶され、上記乱数生成手段は、乱数ｒを生成し、前記ｕをＥ上でｒ倍した点ｕ’（＝ｒｕ）を認証用データとして上記第１の記憶手段に書き込み、証明データ検証手段は、証明データ生成手段によって生成された証明データＲを、第６の記憶手段に記憶されている乱数ｒの法ｑのもとでの逆数倍した値ｖ（＝（ｒ−１  ｍｏｄｑ）Ｒ）を計算し、更に、第４の記憶手段に記憶されているＣと前記ｖとに所定の演算を施した値と、前記Ｋとが等しくなることを検証するようにしてもよい。
【００６６】
また、上記第３の実現形態において、特に、有限体上の楕円曲線Ｅ上の点をＰとし、上記アクセス資格認証の特徴情報を正整数Ｘとして、復号鍵Ｘに対応する暗号化鍵Ｙを、上記ＰをＸ倍したＥ上の点（Ｙ＝ＸＰ）とするとき、所定の乱数ｚを用いて、ｕを上記ＰをＥ上でｚ倍した点とし（ｕ＝ｚＰ）、Ｃを上記ＹをＥ上で上記ｚ倍した値（ｚＹ）とデータＫとに所定の演算を施した値とし、上記第５の記憶手段に認証用素データとしてｕが記憶され、上記第４の記憶手段にはＣが記憶され、上記乱数生成手段は、乱数ｒを生成し、前記ＰをＥ上でｒ倍した点と上記ｕとの和ｕ’（＝ｒＰ＋ｕ）を認証用データとして上記第１の記憶手段に書き込み、証明データ検証手段は、上記Ｙを第６の記憶手段に記憶されている乱数ｒでｒ倍した値を、証明データ生成手段によって生成された証明データＲから減じた値ｖ（＝Ｒ−ｒＹ）を計算し、更に、第４の記憶手段に記憶されているＣと前記ｖとに所定の演算を施した値と、前記Ｋとが等しくなることを検証するようにしてもよい。
【００６７】
また、上記第３の実現形態において、特に、有限体上の楕円曲線Ｅ上の点をＰとし、上記アクセス資格認証の特徴情報を正整数Ｘとして、復号鍵Ｘに対応する暗号化鍵Ｙを、上記ＰをＸ倍したＥ上の点（Ｙ＝ＸＰ）とするとき、所定の乱数ｚを用いて、ｕを上記ＰをＥ上でｚ倍した点とし（ｕ＝ｚＰ）、Ｃを上記ＹをＥ上で上記ｚ倍した値（ｚＹ）とデータＫとに所定の演算を施した値とし、前記ｕとＣとの組が、認証用データとして上記第１の記憶手段に記憶され、証明データ検証手段は、証明データ生成手段によって生成された証明データＲと、前記Ｋとが等しくなることを検証するようにしてもよい。
【００６８】
また、上記第３の実現形態において、特に、有限体上の楕円曲線Ｅ上の位数がｑである点をＰとし、上記アクセス資格認証の特徴情報を正整数Ｘとして、復号鍵Ｘに対応する暗号化鍵Ｙを、上記ＰをＸ倍したＥ上の点（Ｙ＝ＸＰ）とするとき、所定の乱数ｚを用いて、ｕを上記ＰをＥ上でｚ倍した点とし（ｕ＝ｚａ）、Ｃを上記ＹをＥ上で上記ｚ倍した数とＥ上の点Ｋとの和とすると（Ｃ＝Ｋ＋ｚＹ）、上記第５の記憶手段に認証用素データとしてｕが記憶され、上記第４の記憶手段にはＣが記憶され、上記乱数生成手段は、乱数ｒを生成し、前記ｕをＥ上でｒ倍した点ｕ’（＝ｒｕ）と、前記ＣをＥ上でｒ倍した点Ｃ’（＝ｒＣ）との組を認証用データとして上記第１の記憶手段に書き込み、証明データ検証手段は、証明データ生成手段によって生成された証明データＲを、第６の記憶手段に記憶されている乱数ｒの法ｑのもとでの逆数倍した値と、前記Ｋとが等しくなること（Ｋ＝（ｒ−１  ｍｏｄｑ）  Ｒ）を検証するようにしてもよい。
【００６９】
また、上記第３の実現形態において、特に、有限体上の楕円曲線Ｅ上の点をＰとし、上記アクセス資格認証の特徴情報を正整数Ｘとして、復号鍵Ｘに対応する暗号化鍵Ｙを、上記ＰをＸ倍したＥ上の点（Ｙ＝ＸＰ）とするとき、所定の乱数ｚを用いて、ｕを上記ＰをＥ上でｚ倍した点とし（ｕ＝ｚＰ）、Ｃを上記ＹをＥ上で上記ｚ倍した点とＥ上の点Ｋとの和とすると（Ｃ＝Ｋ＋ｚＹ）、上記第５の記憶手段に認証用素データとしてｕが記憶され、上記第４の記憶手段にはＣが記憶され、上記乱数生成手段は、乱数ｒを生成し、前記ＰをＥ上でｒ倍した値と前記ｕとの和ｕ’（＝ｕ＋ｒＰ）と、前記Ｃとの組を、認証用データとして上記第１の記憶手段に書き込み、証明データ検証手段は、上記Ｙを第６の記憶手段に記憶されている乱数ｒ倍した値を、証明データ生成手段によって生成された証明データＲに加えた値と、前記Ｋとが、等しくなること（Ｋ＝Ｒ＋ｒＹ）を検証するようにしてもよい。
【００７０】
また、上記第３の実現形態において、上記第３の記憶手段に記憶される証明用補助情報ｔが、上記非対称暗合の復号鍵と、ユーザの固有情報とから作成されるようにしてもよい。
【００７１】
また、上記第３の実現形態において、上記第３の記憶手段に記憶される証明用補助情報ｔが、ユーザの固有情報を、非衝突性関数の入力として計算した値を用いて作成されるようにしてもよい。
【００７２】
また、上記第３の実現形態において、上記証明データ生成手段は、上記証明用補助情報と、ユーザの固有情報とから、上記Ｅ上でｕ’のＸ倍（Ｘｕ’）を計算するようにしてもよい。
【００７３】
また、上記第３の実現形態において、上記証明データ生成手段は、前上記非対称暗合の復号鍵と、ユーザの固有情報を用いて、上記Ｅ上で点Ｃ’からｕ’のＸ倍を減じた値（Ｃ’−Ｘｕ’）を計算するようにしてもよい。
【００７４】
また、上記第３の実現形態において、上記第３の記憶手段に記憶される証明用補助情報ｔが、上記非対称暗合の復号鍵と、ユーザの固有情報と、楕円曲線を規定する情報とから作成されるようにしてもよい。
【００７５】
また、上記第３の実現形態において、上記第３の記憶手段に記憶される証明用補助情報ｔが、ユーザの固有情報と、楕円曲線を規定する情報とを、非衝突性関数の入力として計算した値を用いて作成されるようにしてもよい。
【００７６】
また、上記第３の実現形態において、上記第３の記憶手段に記憶される証明用補助情報ｔが、少なくともユーザの固有情報と、楕円曲線を規定する情報とを、非衝突性関数の入力として計算した値を用いて作成されるようにしてもよい。
【００７７】
また、上記第３の実現形態において、上記第３の記憶手段に記憶される証明用補助情報ｔが、少なくともユーザの固有情報と、暗号化鍵Ｙとを、非衝突性関数の入力として計算した値を用いて作成されるようにしてもよい。
【００７８】
また、上記第３の実現形態において、上記証明データ生成手段は、上記証明用補助情報と、ユーザの固有情報と、楕円曲線を規定する情報とから、上記Ｅ上でｕ’のＸ倍（Ｘｕ’）を計算するようにしてもよい。
【００７９】
また、上記第３の実現形態において、上記証明データ生成手段は、少なくとも上記証明用補助情報と、ユーザの固有情報と、暗号化鍵Ｙとを用いて、上記Ｅ上でｕ’のＸ倍（Ｘｕ’）を計算するようにしてもよい。
【００８０】
また、上記第３の実現形態において、上記証明データ生成手段は、前上記非対称暗合の復号鍵と、ユーザの固有情報と、楕円曲線を規定する情報とを用いて、上記Ｅ上で点Ｃ’からｕ’のＸ倍を減じた値（Ｃ’−Ｘｕ’）を計算するようにしてもよい。
【００８１】
また、上記第３の実現形態において、上記証明データ生成手段は、少なくとも上記アクセス資格認証の特徴情報と、ユーザの固有情報と、暗号化鍵Ｙとを用いて、上記Ｅ上で点Ｃ’からｕ’のＸ倍を減じた値（Ｃ’−Ｘｕ’）を計算するようにしてもよい。
【００８２】
また、上記第３の実現形態において、特に、ｐ個の元を持つ有限体Ｆｐ（ｐは３より大きい素数をべき乗した値）上の楕円曲線Ｅをｙ２＝ｘ３＋ａｘ＋ｂとするとき、上記第３の記憶手段に記憶される証明用補助情報ｔが、上記Ｘから、上記第２の記憶手段に記憶されるユーザ識別情報ｅと上記ｐ，ａ，ｂとに依存する非衝突性関数値Ｆ（ｐ，ａ，ｂ，ｅ）を減じて得られるデータｔ（＝Ｘ−Ｆ（ｐ，ａ，ｂ，ｅ））であり、上記証明データ生成手段は、前記ｔと、前記ｅと、上記ｐ，ａ，ｂと、第１の記憶手段に書き込まれた認証用データｕ’から、前記Ｅ上でｕ’のＸ倍（Ｘｕ’）を計算するようにしてもよい。
【００８３】
また、上記第３の実現形態において、特に、標数が２でｐ個の元を持つ有限体Ｆｐ上の楕円曲線Ｅをｙ２＋ｃｙ＝ｘ３＋ａｘ＋ｂとするとき、上記第３の記憶手段に記憶される証明用補助情報ｔが、上記Ｘから、上記第２の記憶手段に記憶されるユーザ識別情報ｅと上記ｐ，ａ，ｂ，ｃとに依存する非衝突性関数値Ｆ（ｐ，ａ，ｂ，ｃ，ｅ）を減じて得られるデータｔ（＝Ｘ−Ｆ（ｐ，ａ，ｂ，ｃ，ｅ））であり、上記証明データ生成手段は、前記ｔと、前記ｅと、上記ｐ，ａ，ｂ，ｃと、第１の記憶手段に書き込まれた認証用データｕ’から、前記  Ｅ上でｕ’のＸ倍（Ｘｕ’）を計算するようにしてもよい。
【００８４】
また、上記第３の実現形態において、特に、標数が２でｐ個の元を持つ有限体Ｆｐ上の楕円曲線Ｅをｙ２＋ｘｙ＝ｘ３＋ａｘ＋ｂとするとき、上記第３の記憶手段に記憶される証明用補助情報ｔが、上記Ｘから、上記第２の記憶手段に記憶されるユーザ識別情報ｅと上記ｐ，ａ，ｂとに依存する非衝突性関数値Ｆ（ｐ，ａ，ｂ，ｅ）を減じて得られるデータｔ（＝Ｘ−Ｆ（ｐ，ａ，ｂ，ｅ））であり、上記証明データ生成手段は、前記ｔと、前記ｅと、上記ｐ，ａ，ｂと、第１の記憶手段に書き込まれた認証用データｕ’から、前記Ｅ上でｕ’のＸ倍（Ｘｕ’）を計算するようにしてもよい。
【００８５】
また、上記第３の実現形態において、特に、標数が３でｐ個の元を持つ有限体Ｆｐ上の楕円曲線Ｅをｙ２＝ｘ３＋ａｘ２＋ｂｘ＋ｃとするとき、上記第３の記憶手段に記憶される証明用補助情報ｔが、上記Ｘから、上記第２の記憶手段に記憶されるユーザ識別情報ｅと上記ｐ，ａ，ｂ，ｃとに依存する非衝突性関数値Ｆ（ｐ，ａ，ｂ，ｃ，ｅ）を減じて得られるデータｔ（＝Ｘ−Ｆ（ｐ，ａ，ｂ，ｃ，ｅ））であり、上記証明データ生成手段は、前記ｔと、前記ｅと、上記ｐ，ａ，ｂ，ｃと、第１の記憶手段に書き込まれた認証用データｕ’から、前記  Ｅ上でｕ’のＸ倍（Ｘｕ’）を計算するようにしてもよい。
【００８６】
また、上記第３の実現形態において、上記証明データ生成手段が、上記  Ｅ上で上記ｕ’をＸ倍した値Ｘｕ’と、第１の記憶手段に書き込まれた認証用データＣ’とを用いて証明用データを生成するようにしてもよい。
【００８７】
また、上記第３の実現形態において、上記証明データ生成手段が、第１の記憶手段に書き込まれた認証用データＣ’から、上記Ｅ上で上記ｕ’をＸ倍した値Ｘｕ’を減じたもの（Ｃ’−Ｘｕ’）を計算するようにしてもよい。
【００８８】
また、上記第３の実現形態において、上記証明データ生成手段が、第１の演算手段と、第２の演算手段と、第３の演算手段とからなり、第１の演算手段は、上記Ｅ上で、上記ｕ’を上記ｔ倍した値（ｔｕ’）を計算し、第２の演算手段は、上記Ｅ上で、上記ｕを上記Ｆ（ｐ，ａ，ｂ，ｅ）倍した値（Ｆ（ｐ，ａ，ｂ，ｅ）ｕ’）を計算し、第３の演算手段は、第１の演算手段の計算結果から第２の演算手段の計算結果を減じることによって、証明データＲ（＝ｔｕ’＋Ｆ（ｐ，ａ，ｂ，ｅ）ｕ’）を生成するようにしてもよい。
【００８９】
また、上記第３の実現形態において、上記証明データ生成手段が、第１の演算手段と、第２の演算手段と、第３の演算手段とからなり、第１の演算手段は、上記Ｅ上で、上記ｕ’を上記ｔ倍した値（ｔｕ’）を計算し、第２の演算手段は、上記Ｅ上で、上記ｕを上記Ｆ（ｐ，ａ，ｂ，ｃ，ｅ）倍した値（Ｆ（ｐ，ａ，ｂ，ｃ，ｅ）ｕ’）を計算し、第３の演算手段は、第１の演算手段の計算結果と第２の演算手段の計算結果を加えることによって、証明データＲ（＝ｔｕ’＋Ｆ（ｐ，ａ，ｂ，ｃ，ｅ）ｕ’）を生成するようにしてもよい。
【００９０】
また、上記第３の実現形態において、上記証明データ生成手段が、第１の演算手段と、第２の演算手段と、第３の演算手段とからなり、第１の演算手段は、上記Ｃ’から、上記Ｅ上で上記ｕ’を上記ｔ倍した値を減じた値（Ｃ’−ｔｕ’）を計算し、第２の演算手段は、上記Ｅ上で、上記ｕを上記Ｆ（ｐ，ａ，ｂ，ｅ）倍した値（Ｆ（ｐ，ａ，ｂ，ｅ）ｕ’）を計算し、第３の演算手段は、第１の演算手段の計算結果と第２の演算手段の計算結果とをもちいて、証明データＲ（＝Ｃ’−ｔｕ’−Ｆ（ｐ，ａ，ｂ，ｅ）ｕ’）を生成するようにしてもよい。
【００９１】
また、上記第３の実現形態において、上記証明データ生成手段が、第１の演算手段と、第２の演算手段と、第３の演算手段とからなり、第１の演算手段は、上記Ｃ’から、上記Ｅ上で上記ｕ’を上記ｔ倍した値を減じた値（Ｃ’−ｔｕ’）を計算し、第２の演算手段は、上記Ｅ上で、上記ｕを上記Ｆ（ｐ，ａ，ｂ，ｃ，ｅ）倍した値（Ｆ（ｐ，ａ，ｂ，ｃ，ｅ）ｕ’）を計算し、第３の演算手段は、第１の演算手段の計算結果と第２の演算手段の計算結果とを用いて、証明データＲ（＝Ｃ’−ｔｕ’−Ｆ（ｐ，ａ，ｂ，ｃ，ｅ）ｕ’）を生成するようにしてもよい。
【００９２】
また、上記第３の実現形態において、上記証明データ検証手段が、上記証明データＲと、上記第４の記憶手段に記憶されている第２の認証用データとを用いて、所定の演算を行うことにより、上記第２の認証用データを復号するようにしてもよい。
【００９３】
また、上記各々の実現形態において、少なくとも、上記第２の記憶手段と、上記証明データ生成手段とを、内部のデータ及び処理手続きを外部から観測することを困難ならしめる防御手段中に保持するようにすることもできる。
【００９４】
また、上記各々の実現形態において、少なくとも、上記第２の記憶手段と、上記証明データ生成手段とを、ＩＣカードなどの携帯可能な小型演算装置として構成するようにしてもよい。
【００９５】
また、上記各々の実現形態において、少なくとも、上記第２の記憶手段と、上記第２の演算手段とを、内部のデータ及び処理手続きを外部から観測することを困難ならしめる防御手段中に保持するようにしてもよい。
【００９６】
また、上記各々の実現形態において、少なくとも、上記第２の記憶手段と、上記第２の演算手段とを、ＩＣカードなどの携帯可能な小型演算装置として構成するようにすることもできる。
【００９７】
また、上記各々の実現形態において、少なくとも上記第１の記憶手段と、上記第２の記憶手段と、上記第３の記憶手段と、上記証明データ生成手段とから構成される証明データ生成装置と、少なくとも上記証明データ検証手段を有し、さらに認証用データを記憶する第７の記憶手段と、証明データを記憶する第８の記憶手段を備えた証明データ検証装置とが、互いに通信し、証明データ検証装置は、第７の記憶手段に記憶されている認証用データを証明データ生成装置の第１の記憶手段に書き出し、証明データ生成装置は、証明データ生成手段によって第１の記憶手段に書き込まれた上記認証用データをもとに生成した証明データを、証明データ検証装置中の第８の記憶手段に書き出し、証明データ検証装置は第８の記憶手段に書き込まれた上記証明データを用いてユーザのアクセス資格を認証するように構成することもできる。
【００９８】
また、上記各々の実現形態において、上記証明データ検証手段に、さらに、暗号化されたデータである上記第２の認証用データに対応する平文データを記憶する第９の記憶手段と、比較手段とを設け、上記比較手段は、上記証明データ生成手段が生成した上記証明データの値、もしくは上記証明データを用いて演算を行った結果得られた値と、第９の記憶手段に記憶されている平文データを比較し、両者が一致した場合に限り、上記証明データが正当であると判断するようにしてもよい。
【００９９】
また、上記各々の実現形態において、上記証明データ検証手段に、さらに、何らかのデータを暗号を用いて暗号化したデータを記憶する第１０の記憶手段を設け、上記第２の認証用データが、上記データを暗号化するために用いた暗号の鍵を暗号化したものであり、上記証明データ検証手段は、上記証明データ生成手段が生成した証明データの値、もしくは上記証明データを用いて演算を行った結果得られた値を、前記データを暗号化するために用いた暗号の復号鍵として用いることにより、前記暗号化されたデータが復号できることによって、上記証明データが正当であると判断するようにしてもよい。
【０１００】
また、上記各々の実現形態において、上記証明データ検証手段に、さらに、データの冗長性を検証する冗長性検証手段を設け、上記証明データ生成手段が生成した上記証明データの値、もしくは上記証明データを用いて演算を行った結果得られた値が、冗長性検証手段によって特定の冗長性をもつことが確認されることによって、上記証明データが正当であると判断するようにしてもよい。
【０１０１】
また、上記各々の実現形態において、上記証明データ検証手段に、さらに、暗号化されたデータである上記第２の認証用データに対応する平文データに、所定の一方向関数を施した結果を記憶する第１１の記憶手段と、上記一方向関数を実行する第４の演算手段と、比較手段とを設け、第４の演算手段は、上記証明データ生成手段が生成した上記証明データの値もしくは上記証明データを用いて演算を行った結果得られた値に一方向関数を施し、上記比較手段は、第４の演算手段による計算結果と、第１１の記憶手段に記憶されているデータを比較し、両者が一致した場合に限り、上記証明データが正当であると判断するようにしてもよい。
【０１０２】
また、上記各々の実現形態において、上記証明データ検証手段に、さらに、プログラム実行手段を設け、上記第２の認証用データは、プログラムを暗号化して得られるデータであり、上記証明データ検証手段は、証明データ生成手段が生成した上記証明データの値、もしくは上記証明データを用いて特定の演算を行った値をプログラムとしてプログラム実行手段に引き渡し、証明データ生成手段が暗号化されたプログラムである上記第２の認証用データを正しく復号した場合、即ち、暗号化されたプログラムが正しく復号された場合に限り、プログラム実行手段が正しい動作を行うように構成してもよい。
【０１０３】
また、上記各々の実現形態において、上記証明データ検証手段に、さらに、プログラム実行手段と、プログラム記憶手段と、プログラム復号手段とを設け、プログラム記憶手段には、プログラムの一部あるいは全部が暗号化されたものを記憶させておき、上記第２の認証用データは、前記暗号化されたプログラムを復号するための復号鍵を別途暗号化して得られるデータであり、上記証明データ検証手段は、証明データ生成手段が生成した上記証明データをプログラム復号手段に引き渡し、プログラム復号手段は、上記証明データ生成手段が生成した証明データの値、もしくは上記証明データを用いて演算を行った結果得られた値を復号鍵として、プログラム記憶手段に記憶されたプログラムを復号し、プログラム実行手段は復号されたプログラムを実行することにより、証明データ生成手段が上記第２の認証用データを正しく復号した場合、即ち、暗号化されたプログラムを復号するために復号鍵が正しく復号された場合に限り、プログラム実行手段が正しい動作を行うように構成することも可能である。
【０１０４】
また、本発明は方法として実現することもでき、また少なくとも一部をソフトウエアとして実装することもできる。
【０１０５】
【発明の実施の態様】
［全体の構成］
具体的な個別の実施例を述べる前に、本発明の実施形態の全体像を以下に述べる。
本発明を、ユーザのＰＣあるいはワークステーション上で動作するアプリケーションプログラムの実行制御に用いる場合について述べる。図１にこの実施形態における装置の構成を示す。
【０１０６】
図１において、この実施例のアクセス資格認証装置は証明データ検証装置１０および証明データ生成装置１１からなっており、証明データ生成装置１１はアクセスチケット生成装置１２からアクセスチケット（証明用補助データ）１３を受領するようになっている。証明データ検証装置１０は検証ルーチンを実行する検証手段１５を含んでいる。証明データ生成装置１１はユーザ固有情報１６およびアクセスチケット１３を保持し、証明データ生成手段１７（例えばプログラム）を含んでいる。
【０１０７】
アクセスチケット生成装置１２は例えばアプリケーション作成者、独立した第三者機関等のプロテクト側に設けられている。アクセスチケット生成装置１２はアクセス資格認証の特徴情報１４およびユーザ固有情報１６ａに基づいてアクセスチケットを生成し、このアクセスチケット１３が通信またはフロッピーディスク等の送付を介してユーザに送られ、ユーザの証明データ生成装置１１に保持される。この後、証明データ検証装置１０は認証用データ１８を証明データ生成装置１１に送出する。証明データ生成装置１１はアクセスチケット１３およびユーザ固有情報１６を用いて証明データ１９を生成し、これを証明データ検証装置１０に返送する。証明データ検証装置１０は認証用データに基づいて証明データの正当性を検証する。すなわち、証明データが、認証用データとアクセス資格認証の特徴情報に基づいて生成されたデータであることを検証する。
【０１０８】
証明データの正当性が検証されれば、ユーザのアクセス資格が認証され、これに応じて実行手段２０が所定の処理、例えばプログラムの実行継続やファイルへのアクセス許容等を実行する。
【０１０９】
この実施形態では、証明データ生成装置１１はユーザが用いる計算機上の証明用プログラムとして実現することができる。この際、ユーザを識別するための固有情報（ユーザ固有情報）を、ユーザがコピーして配布することができると、正当な利用権をもたないユーザにもアプリケーションプログラムの使用を許すこととなる。そこで、ユーザ固有情報はその正当な保持者であるユーザであってもこれを窃取することができないように、該計算機に装着され、耐タンパー特性を有する証明用ハードウェア（ＩＣカード、ボードなど）を併用することが可能である。この際、ＩＣカードのような携帯性のあるハードウェアを用いれば、ユーザが複数のＰＣあるいはワークステーション上で作業をする場合に便利である。
【０１１０】
証明データ検証装置１０は該ユーザが利用するアプリケーションプログラムの一部として構成される。即ち、ユーザが該アプリケーションプログラムをＰＣあるいはワークステーション上で起動すると、該アプリケーションプログラム中にプログラムとして記述された証明データ検証装置１０が起動され、証明データ生成装置１１と通信してユーザ認証を行い、通信が正しく終了した場合に限って該アプリケーションプログラムの実行を可能とする。
【０１１１】
ユーザが、証明データ検証装置１０が埋めこまれた前記アプリケーションプログラムを利用するためには、ユーザ本人宛に発行され、前記アプリケーションプログラムに対応する証明用補助情報（アクセスチケット）を取得する必要がある。ユーザは、前記ＰＣあるいはワークステーション上にインストールされた証明データ生成プログラムに、取得したアクセスチケットを登録するとともに、例えば、ユーザ固有情報がＩＣカードに封入されている場合には、ＩＣカードを前記ＰＣあるいはワークステーションに装着する。アクセスチケットは、前記ＰＣあるいはワークステーション上に置く構成にしてもよいし、ＩＣカード中に置いてもよい。
【０１１２】
証明データ生成装置１１（ＰＣあるいはワークステーション上のプログラムとＩＣカードによって構成される）は、ユーザ固有情報とアクセスチケットに基づいて計算を行い、その計算に基づいて証明データ検証装置１０と通信を行う。この計算の過程でユーザ識別情報が用いられるが、ユーザ識別情報が外部に漏洩すると問題があるため、前記プログラムの少なくとも一部はＩＣカード等の防御手段によって保護される必要がある。
【０１１３】
通信の結果、証明データ検証装置による認証が成功するのは、ユーザ固有情報と、アクセスチケットと、証明データ検証装置１０が検証するアクセス資格認証の特徴情報の三つが正しく対応している場合に限られる。
【０１１４】
ユーザ固有情報あるいはアクセスチケットの一方が欠けていた場合には、認証は成功しない。
【０１１５】
アクセスチケットは特定のユーザ宛に発行される。即ち、アクセスチケットの生成に際して、特定のユーザのユーザ固有情報が使用される。アクセスチケット生成時に使用されるユーザ固有情報と、証明データ生成装置によって使用される前記ユーザ固有情報とが対応していない場合、やはり、認証は成功しない。
【０１１６】
また、アクセスチケットは、特定のアクセス資格認証の特徴情報に基づいて生成され、証明データ検証装置１０はこのアクセス資格認証の特徴情報を認証するように構成される。従って、アクセスチケットの生成のもととなった特徴情報と、アプリケーションプログラムに埋めこまれている証明データ検証装置１０が認証しようとする特徴情報とが互いに対応していなかった場合にも、認証は成功しない。
【０１１７】
また、アプリケーションプログラムがネットワークによって結合された別の計算機上で実行され、実行結果がネットワークを介してユーザが用いる計算機に通信されるものとしてもよい。この場合、いわゆるサーバ・クライアントモデルに基づく構成となる。先に述べた、ユーザのＰＣあるいはワークステーション上で実行されるアプリケーションプログラムの実行制御の場合では、証明データ生成装置１１と証明データ検証装置１０との通信がいわゆるプロセス間通信として実行されるのに対し、サーバ・クライアント・モデルに従った場合、明データ生成装置と証明データ検証装置との通信はＴＣＰ／ＩＰなどのネットワークプロトコルに従った通信として実行される。
【０１１８】
また、アプリケーションプログラムが専用装置上に構成されている場合にも、本発明を適用することが可能である。例えば、証明データ生成装置１１全体をＩＣカード内に実装し、取得したアクセスチケットもＩＣカードに登録するものとする。証明データ検証装置１０は前記専用装置上に実装されるが、該専用装置はＩＣカードを挿入するためのスロットを備え、ユーザは該スロットに所有するＩＣカードを挿入することで認証を行う。
【０１１９】
このような専用装置による構成は、銀行のＡＴＭ機や、ゲームセンターにおけるゲーム機などに適用することができる。
【０１２０】
ユーザによるアクセスチケットの取得に関しては、アクセスチケットを発行する共通のセンターが、ユーザからの発行依頼に応じて生成して配布する方法と、アプリケーションプログラムの作成者が、アクセスチケット発行プログラムやアクセスチケット生成装置１２の助けを借りて個別に生成する方法がある。
【０１２１】
このような場合、アクセスチケット生成装置１２は、チケット発行者によって管理され、アクセスチケットはこれら正当な権利者等によって、ユーザの環境とは別個に作成され、配布される。
【０１２２】
生成されたアクセスチケットは、フロッピーディスク等の可搬型記憶媒体を介してユーザに配送されるものとしてもよいが、アクセスチケットが十分な安全性を備えていることから、電子メールなどを用いてネットワークを介して配送されるように構成してもよい。
【０１２３】
アクセスチケットの安全性とは、以下の二つの性質である。
【０１２４】
１）アクセスチケットは記名式である。即ち、アクセスチケットが発行されたユーザ本人（正確には、アクセスチケット生成時に用いられたユーザ固有情報の保持者）だけが該アクセスチケットを用いて証明データ生成装置１１を正しく作動させることができる。従って、悪意の第三者が、他のユーザのアクセスチケットを不正に手に入れたとしても、この第三者がアクセスチケットの発行先である正規のユーザのユーザ固有情報を手に入れないかぎり、このアクセスチケットを利用することは不可能である。
【０１２５】
２）アクセスチケットはさらに厳密な安全性を保持している。即ち、悪意の第三者が任意個数のアクセスチケットを集めて、いかなる解析を行ったとしても、得られた情報をもとに別のアクセスチケットを偽造したり、証明データ生成装置１１の動作を模倣して認証を成立させるような装置を構成することは不可能である。
【０１２６】
以下では、より具体的な構成について実施例に即して説明する。なお、各実施例の証明データ生成装置および検証装置の構成を示す図および動作を説明する図は以下のとおりである。
【０１２７】
【表１】
実施例  証明装置        検証装置        証明の動作      検証の動作
第１    図２            図３            図９            図１０
第２    図２            図７            図９            図１２
第３    図２            図５            図８            図１１
第４    図２            図７            図９            図１３
第５    図２            図５            図８            図１４
第６    図６            図３            図１７          図１８
第７    図６            図４            図１６          図１９
第８    図６            図７            図１７          図２１
第９    図６            図５            図１６          図２０
第１０  図６            図７            図１７          図２２
第１１  図６            図５            図１６          図２３
第１２  図６            図７            図１５          図２４
第１３  図６            図３            図１７          図３１
第１４  図６            図４            図３５          図３２
第１５  図６            図７            図１７          図３３
第１６  図６            図７            図１７          図３４
第１７  図６            図７            図１５          図３６
第８    図６            図７            図１５          図３７
［第１の実施例］
本実施例は乱数効果を付与せず、また復号を検証装置側で行うものである。本実施例の証明データ生成装置の構成方法を図２に、検証装置の構成方法を図３に示す。また、本実施例の証明データ生成装置の動作を図９に、検証装置の動作を図１０に示す。
【０１２８】
本発明における第１の実施例では、アクセス資格認証の特徴情報Ｘは、法数ｐ（ｐは十分大きな素数）のもとでのＥｌＧａｍａｌ暗号の秘密鍵であり、Ｙが対応する公開鍵である。即ち、式１−１を満たす。
【０１２９】
【数５】
（１−１）              Ｙ＝ａＸ  ｍｏｄ  ｐ
ここで、ａは位数ｐの有限体の乗法群の生成元、即ち、式１−２及び１−３を満たす。
【０１３０】
【数６】
（１−２）    ａ≠０
【０１３１】
【数７】
（１−３）    ｍｉｎ｛ｘ＞０｜ａＸ＝１  ｍｏｄ  ｐ｝＝ｐ−１
次に、ユーザを識別するために、ユーザ毎に異なる数であるユーザ固有情報ｅを定める。アクセスチケットｔは次の式１−４に基づいて生成される。
【０１３２】
【数８】
（１−４）      ｔ＝Ｘ−Ｆ（ｐ，ｅ）
Ｘをアクセスチケット秘密鍵、Ｙをアクセスチケット公開鍵と呼ぶ。
【０１３３】
関数Ｆは関数値が衝突しにくい関数であり、例えば、一方向ハッシュ関数ｈを利用して、式１−５あるいは式１−６のように定めることができる。
【０１３４】
【数９】
（１−５）Ｆ（ｘ，ｙ）＝ｈ（ｘ｜ｙ）
【０１３５】
【数１０】
（１−６）Ｆ（ｘ，ｙ，ｚ，ｗ）＝ｈ（ｘ｜ｙ｜ｚ｜ｗ）
ここで、ｘ｜ｙはｘとｙとのビットの連結であることを表す。
【０１３６】
一方向ハッシュ関数とは、ｈ（ｘ）＝ｈ（ｙ）を満たす相異なるｘ、ｙを算出することが著しく困難であるという性質をもつ関数である。一方向ハッシュ関数の例として、ＲＳＡ  Ｄａｔａ  Ｓｅｃｕｒｉｔｙ  Ｉｎｃ．によるＭＤ２、ＭＤ４、ＭＤ５、米国連邦政府による規格ＳＨＳ（Ｓｅｃｕｒｅ  Ｈａｓｈ  Ｓｔａｎｄａｒｄ）が知られている。
【０１３７】
また、以下では暗号化されるデータＫを検証用データ、証明データ生成装置が証明のために生成するデータＲを証明用データとよぶ。また、証明データ生成装置が証明データを生成するために、検証装置から受け取るデータ、及び、検証装置が復号された値を検証するために用いるデータを認証用データとよぶ。
【０１３８】
図を参照してさらに第１の実施例を詳細に説明する。図２において、証明データ生成装置１１は、受信データ記憶部１１１、第１演算部１１２、アクセスチケット記憶部１１３、第２演算部１１４、ユーザ固有情報記憶部１１５、指数生成部１１６、証明データ制西部１１７等を含んで構成される。
【０１３９】
また、図３において、証明データ検証装置１０は、アクセスチケット公開鍵記憶部１０１、受信データ記憶部１０２、検証用演算部１０３、認証用データ記憶部１０４、認証用素データ記憶部１０５、実行手段２０等を含んで構成される。
【０１４０】
以下に本実施例の動作を示す。
【０１４１】
１．ユーザが、アクセス資格認証装置による認証を必要とするデジタルコンテンツにアクセスすることによって、証明データ検証装置１０が起動される。
【０１４２】
証明データ検証装置１０がユーザのＰＣあるいはワークステーション上で動作するアプリケーションプログラムの一部として構成されている場合、ユーザがキーボードあるいはマウスなどの指示装置を用いた通常の方法で、アプリケーションプログラムを起動する。アプリケーションプログラムの実行が証明データ検証装置１０を構成しているプログラムに到達することによりことにより、証明データ検証装置１０が起動される。
【０１４３】
証明データ検証装置１０がネットワークで結ばれた他のＰＣあるいはワークステーション（サーバと呼ぶ）上に構成されている場合、ユーザは自分のＰＣあるいはワークステーション上の通信プログラムを起動し、該通信プログラムが所定の手続きに従って前記サーバに通信の開設要求を行うことにより、前記サーバ上の証明データ検証装置１０が起動される。例えば、ユーザの通信プログラムがサーバと通信する際にＴＣＰ／ＩＰと呼ばれる手続きに従うとすると、証明データ検証装置をサーバの特定のポートに予め対応づけておき、更に、ユーザの通信プログラムが該ポートを指定してＴＣＰ接続要求をサーバに要求するように設定しておくことにより、サーバ上のデーモン（ｉｎｅｔｄ）がＴＣＰ接続要求に応じて証明データ検証装置１０を起動することが可能となる。このような実現方法は、インターネットなどのネットワークにおいて広く利用されているものである。
【０１４４】
証明データ検証装置１０を専用目的の装置とすることも可能である。例えば、証明データ検証装置１０をＩＣカード・リーダ・ライター内のＲＯＭに焼きつけられたプログラムとして構成し、証明データ生成装置をＩＣカードのマイクロコントローラーに実装されたプログラムとすることができる。この場合、ユーザがＩＣカードをリーダ・ライターに挿入することにより、証明データ検証装置１０が起動される。
【０１４５】
２．証明データ検証装置１０は、認証用データｕ’と、アクセスチケット公開鍵記憶部１０１に記憶されている法数ｐとを、証明データ生成装置１１中の受信データ記憶部１１１に書き込む。認証用素データ記憶部１０５には、認証用素データとしてｕが、また、認証用データ記憶部１０４には、認証用データとしてＣが記憶されているが、それらは次の性質を満たす。
【０１４６】
ｕは、上記ａを法ｐのもとで所定の乱数ｚを指数としてべき乗した数であり、即ち、式１−７を満たす。
【０１４７】
【数１１】
（１−７）    ｕ＝ａｚ  ｍｏｄ  ｐ
ここで、検証用データを適当なデータＫとする時、Ｃは、アクセスチケット公開鍵Ｙを、法ｐのもとで、上記乱数ｚを指数としてべき乗した数と、検証用データＫとの積であり、式１−８を満たす。
【０１４８】
【数１２】
（１−８）    Ｃ＝ＹｚＫ  ｍｏｄ  ｐ
検証用データＫを証明データ検証装置１０に保持せず、代わりに、その暗号化の結果であるＣのみを保持するように証明データ検証装置１０を構成すれば、証明データ検証装置１０から検証用データが漏洩する危険を回避することができる。
【０１４９】
また、本実施例では、認証用データｕ’は認証用素データｕと同一である。
【０１５０】
【数１３】
（１−９）      ｕ’＝ｕ
３．証明データ生成装置１１中の第１演算部１１２は、アクセスチケット記憶部１１３に記憶されているアクセスチケットｔを取得し、受信データ記憶部１１１に書き込まれた法数ｐのもとで式１−１０を実行しＳを得る。
【０１５１】
【数１４】
（１−１０）    Ｓ＝ｕｔ  ｍｏｄ  ｐ
４．証明データ生成装置１１中の指数生成部１１６は、ユーザ固有情報記憶部１１５に記憶されているユーザの固有情報ｅを取得し、式１−１１の計算を実行する。
【０１５２】
【数１５】
（１−１１）    Ｆ（ｅ，ｐ）
５．証明データ生成装置１１中の第２演算部１１４は、指数生成部１１６で生成されたデータを用いて、式１−１２の計算を実行しＳ’を得る。
【０１５３】
【数１６】
（１−１２）    Ｓ’＝ｕＦ（ｐ，ｅ）  ｍｏｄ  ｐ
６．証明データ生成装置１１中の証明データ生成部１１７は、第１および第２演算部１１２、１１４からＳ’およびＳを得て、式１−１３の計算を行いＲを得る。
【０１５４】
【数１７】
（１−１３）    Ｒ  ＝  Ｓ・Ｓ’ｍｏｄ  ｐ
７．証明データ生成装置１１はＲを証明データ検証装置１０の受信データ記憶部１０２に返送する。
【０１５５】
８．証明データ検証装置１０中の検証用演算部１０３（検証手段１５）は、認証用データ記憶部１０４から認証用データＣを取り出し、式１−１４の計算を行う。
【０１５６】
【数１８】
（１−１４）    Ｋ’＝Ｃ・Ｒ−１  ｍｏｄ  ｐ
９．証明データ生成装置１１において用いられるアクセスチケットｔとユーザの固有情報ｅの組み合わせが正しい場合に限り、計算の結果得られたＫ’と検証用データＫが一致し、正しく検証が行われる。
【０１５７】
１０．計算されたＫ’は、証明データ検証装置１０中の実行手段２０に引き渡されるが、実行手段２０はＫ’＝Ｋが成立する場合に限り正規の処理を実行する。
【０１５８】
以下、証明データ検証装置１０において、ＫとＫ’が同一であることを検証する方法について、いくつかの例を記す。
【０１５９】
［１］．検証用データと復号結果を直接比較する構成例
図２５に示す構成例では、検証手段１５（検証用演算部１０３）は予め検証用データＫを記憶しておく。検証手段１５中の比較部は、この検証用データＫと、認証用データを復号したデータＫ’とを直接比較し、Ｋ’＝  Ｋが成立する場合に限り正規の処理を実行し、成立しない場合には処理を中止するなどのエラー処理を実行する。
【０１６０】
この構成例では、検証すべき検証用データＫそのものが装置中に現れるという安全上の弱点がある。例えば、証明データ検証装置１０がユーザのＰＣあるいはワークステーション上で動作するプログラムとして構成されている場合、プログラムを解析してＫを窃取することは、困難であっても、必ずしも不可能ではない。Ｋの値がユーザの知るところとなると、証明データ生成装置１０の動作を模倣する装置を構成することが可能となり、なりすましによる不正アクセスが可能となる。
【０１６１】
［２］．一方向性関数を用いた構成例
上記の欠点を改善するため、図２６に示す構成例では、検証手段１５が記憶している検証のためのデータを、検証用データＫそのものではなく、Ｋに前述の一方向ハッシュ関数ｈを施して得られるデータｈ（Ｋ）とする。一方向ハッシュ関数の性質から、証明データ記憶手段に記憶されるデータｙから、ｙ＝ｈ（ｘ）を満たすｘを算出することは著しく困難である。
【０１６２】
検証手段１５は、入力データに対し一方向ハッシュ関数を施した結果を返す変換部を有する。比較部は、認証用データを復号したデータＫ’をハッシュ関数の入力として得られる出力ｈ（Ｋ’）と、記憶されているデータ（＝ｈ（Ｋ））とを比較する。
【０１６３】
この方法例では、検証用データＫがプログラム中に現れることがなく、また、証明データ記憶手段に記憶されたｈ（Ｋ）からＫを計算することも著しく困難であることから、上記［１］の例よりは安全であるといえる。
【０１６４】
しかしながら、比較部はプログラム中では条件文として構成されており、証明データ検証装置１０がプログラムで、分析・改竄が容易であるような構成の場合には、該条件文をスキップするようにプログラムを改竄することが可能である点で、なお弱点を有している。
［３］復号された値が、特定のデータを復号するための復号鍵である構成例
図２７に示す構成例では、検証のために記憶されているデータが、暗号化されたデータであり、認証用データを復号したデータＫ’は、この暗号化されたデータを復号するための鍵である。
【０１６５】
検証手段１５は、データＫ’の値を、検証のために記憶されているデータを暗号化するのに用いた暗号の復号鍵として用いて復号し、その結果、暗号化されたデータが復号できた場合のみ、プログラムの実行を可能とする。
この構成でも、検証装置中に復号鍵そのものは現れないため、安全度は高くなっている。
【０１６６】
［４］復号された値が特定の冗長性を満たすことを確認する構成例
図２８に示す構成例では、検証装置１０が冗長性検証手段をもち、検証手段１５は、認証用データを復号したデータＫ’の値を、冗長性検証手段に送る。冗長性検証手段が、そのデータが特定の冗長性を満たすことを確認した場合のみ、プログラムの実行を可能とする。
冗長性の例としては、復号されたデータがある特定のパターンを繰り返していることや、特定の位置のデータが特定の条件を満たすこと、あるいは、データが特定の言語として意味があること、等があげられる。
【０１６７】
［５］．プログラムコード自体を暗号化する構成例
図２９に示す構成例では、証明データ検証装置１０が保持するプログラムのコードの一部或は全部を暗号化したデータを認証用データとして、認証用データ記憶手段１０４に保持する。即ち、認証用データを復号したデータＫ’はプログラムのコードの一部或は全部となる。
【０１６８】
実行手段２０はデータＫ’を、プログラム中の予め定められた位置に埋め込み、その後、埋め込んだプログラムを実行する。証明データ生成装置１１が正しいデータを返信した場合、即ち、Ｋ’がコードを正しく復号したものである場合に限ってプログラムは実行可能となる。
【０１６９】
実行手段２０は復号されたコードを本来のプログラムに埋め込んだファイルを生成した後、そのファイルを起動してもよいが、プログラムがメモリ上に展開されている状態で、復号したコードをメモリ上のプログラムに埋め込んだのち起動する方法が、安全上は望ましい。
【０１７０】
この構成例では、プログラムの実行に不可欠なコードの一部或は全部が暗号化されているため、実行手段がユーザのＰＣあるいはワークステーション上で動作するアプリケーションプログラムとして構成されているような比較的安全性の低い場合でも、不正実行を防止することができる。
【０１７１】
［６］．復号された値がプログラムの復号鍵である構成例
図３０に示す構成例は、証明データ検証装置１０がプログラムのコードの一部或は全部を暗号化したデータを保持しており、認証用データを復号したデータＫ’が、暗号化したプログラムコードを復号するために必要な復号鍵となっているものである。この構成によると、暗号化するコードのサイズに関わらず、データＫ’のサイズを一定の小さい値に抑えることが可能となり、通信のオーバヘッドを減少させることができる。
【０１７２】
検証手段１５はデータＫ’を用いて、記憶している暗号化されたプログラムコードを復号する。実行手段２０は、復号されたコードを、プログラム中の予め定められた位置に埋め込み、その後、埋め込んだプログラムを実行する。証明データ生成装置１１が正しいデータを返信していた場合、即ち、Ｋ’によってコードが正しく復号されていた場合に限ってプログラムは実行可能となる。
【０１７３】
［第２の実施例］
つぎに本発明の第２の実施例について説明する。この実施例は第１の実施例の変形例であり、乱数効果を用いる点で第１の実施例と異なっている。
【０１７４】
本実施例では、ＥｌＧａｍａｌ公開鍵暗号の構成方法、アクセスチケットｔ、及び認証用素データｕ，認証用データＣの生成方法とそれぞれの満たすべき性質は、第１の実施例と同様である。
【０１７５】
本実施例では、認証用データ及び証明データに乱数効果を付与することにより、通信路上でこれらのデータを盗まれた場合に、再使用を不可能とするような構成例を示す。
【０１７６】
本実施例の証明データ生成装置１１の構成方法を図２に、検証装置１０の構成方法を図７に示す。また、本実施例の証明データ生成装置１１の動作を図９に、検証装置の動作を図１２に示す。
【０１７７】
図を参照してさらに本実施例を説明する。図２の証明データ生成装置１１を用いる点では、第１の実施例と同じである。第７図において、検証装置１０は、アクセスチケット公開鍵１０１、受信データ記憶部１０２、検証用演算部１０３、認証用データ記憶部１０４、認証用素データ記憶部１０５、乱数生成部１０６、乱数記憶部１０７、乱数効果除去部１０８、乱数効果付与部１０９等を含んで構成されている。
【０１７８】
以下、本実施例の動作について説明する。
【０１７９】
１．ユーザがアクセスすることによって、証明データ検証装置１０が起動される。
【０１８０】
証明データ検証装置１０の実現方法として、ユーザのＰＣやワークステーション上で動作するアプリケーションプログラム、ユーザのＰＣやワークステーションとネットワークを介して接続されたサーバ上のサーバプログラム、あるいは、ＩＣカード・リーダ・ライターのような専用の装置のいずれも可能であることは、第１の実施例の場合と変わらない。これは、以降の実施例においても同様である。
【０１８１】
２．証明データ検証装置１０は、認証用データｕ’と、アクセスチケット公開鍵記憶部１０１に記憶されている法数ｐとを、証明データ生成装置１１中の受信データ記憶部１１１に書き込む。
【０１８２】
認証用素データ記憶部１０５には、認証用素データとしてｕが記憶され、認証用データ記憶部１０２には認証用データＣが記憶されている。
【０１８３】
証明データ検証装置１０は、乱数生成部１０６によって、乱数ｒをアクセスチケット公開鍵記憶部１０１に保持されている法数ｐより１引いた値（ｐ−１）と互いに素になるように生成し、乱数記憶部１０７に記録する。
【０１８４】
次いで、乱数効果付与部１０９は、認証用素データ記憶部１０５に記憶されているデータｕを取得して、式２−１により認証用データｕ’を計算する。
【０１８５】
【数１９】
（２−１）      ｕ’＝ｕｒ  ｍｏｄ  ｐ
このように、認証用データに乱数効果を加え、証明データ生成装置１１が返す証明データを検証する際に乱数効果を除去するように構成することにより、いわゆるリプレイアタックを防止することができる。これは、以下の実施例においても、同様である。
【０１８６】
３．証明データ生成装置１１中の第１演算部１１２は、アクセスチケット記憶部１１３に記憶されているアクセスチケットｔを取得し、受信データ記憶部１１１に書き込まれた法数ｐのもとで式２−２を実行しＳを得る。
【０１８７】
【数２０】
（２−２）    Ｓ＝ｕ’ｔ  ｍｏｄ  ｐ
４．証明データ生成装置１１中の指数生成部１１６は、ユーザ固有情報記憶部１１５に記憶されているユーザの固有情報ｅを取得し、式２−３の計算を実行する。
【０１８８】
【数２１】
（２−３）    Ｆ（ｐ，ｅ）
５．証明データ生成装置１１中の第２演算部１１４は、指数生成部１１６で生成されたデータを用いて、式２−４の計算を実行しＳ’を得る。
【０１８９】
【数２２】
（２−４）    Ｓ’＝ｕ’Ｆ（ｐ，ｅ）  ｍｏｄ  ｐ
６．証明データ生成装置１１中の証明データ生成部１１７は、第１および第２演算部１１２、１１４からＳ’およびＳを得て、式２−５の計算を行いＲを得る。
【０１９０】
【数２３】
（２−５）    Ｒ  ＝  Ｓ’Ｓ  ｍｏｄ  ｐ
７．証明データ生成装置１１はＲを証明データ検証装置１０の受信データ記憶部１０２に返送する。
【０１９１】
８．証明データ検証装置１０中の乱数効果除去部１０８は、乱数記憶部１０７から先に生成した乱数ｒを取り出し、まず式２−６の計算を行う。
【０１９２】
【数２４】
0003613929.tif 000004
次いで、計算の結果得られたｖと、認証用データ記憶部１０４に記憶されているＣを用いて、式２−７の計算を行う。
【０１９３】
【数２５】
（２−７）    Ｋ’＝Ｃ・ｖ−１  ｍｏｄ  ｐ
９．証明データ生成装置１１において用いられるアクセスチケットｔとユーザの固有情報ｅの組み合わせが正しい場合に限り、計算の結果得られたＫ’と検証用データＫが一致し、正しく検証が行われる。
【０１９４】
Ｋ’と検証用データＫとの比較方法に関しては、第１の実施例と同様の方法を用いることができる。
【０１９５】
［第３の実施例］
本発明の第３の実施例は第２の実施例の変形例であり、乱数効果を付与するとともに復号を証明データ生成装置１１側で行うものである。
【０１９６】
本実施例では、ＥｌＧａｍａｌ公開鍵暗号の構成方法、アクセスチケットｔ、及び認証用素データｕ，認証用データＣの生成方法とそれぞれの満たすべき性質は、第１の実施例と同様である。
【０１９７】
本実施例の証明データ生成装置の構成方法を図２に、検証装置の構成方法を図５に示す。また、本実施例の証明データ生成装置の動作を図８に、検証装置の動作を図１１に示す。
【０１９８】
図５において、先に説明した図７等の各部と対応する個所には対応する符号を付した。
【０１９９】
以下、本実施例の動作について説明する。
【０２００】
１．ユーザがアクセスすることによって、証明データ検証装置１０が起動される。
【０２０１】
２．証明データ検証装置１０は、認証用データｕ’，Ｃ’と、アクセスチケット公開鍵記憶部１０１に記憶されている法数ｐとを、証明データ生成装置１１中の受信データ記憶部１１１に書き込む。
【０２０２】
認証用素データ記憶部１０５には、認証用素データとしてｕが記憶され、認証用データ記憶部１０４には認証用データＣが記憶されている。
【０２０３】
証明データ検証装置１０は、乱数生成部１０６によって、乱数ｒをアクセスチケット公開鍵記憶部１０１に保持されている法数ｐより１引いた値（ｐ−１）と互いに素になるように生成し、乱数記憶部１０７に記録する。
【０２０４】
次いで、乱数効果付与部１０９は、認証用素データ記憶部１０５に記憶されているデータｕを取得して、式３−１の計算により認証用データｕ’を計算する。
【０２０５】
【数２６】
（３−１）      ｕ’＝ｕｒ  ｍｏｄ  ｐ
また、認証用データＣ’は、次のように生成される。
【０２０６】
認証用データ記憶部１０４に記憶されているデータＣを取得して、式３−２の計算を行う。
【０２０７】
【数２７】
（３−２）      Ｃ’＝Ｃｒ  ｍｏｄ  ｐ
３．証明データ生成装置１１中の第１演算部１１２は、アクセスチケット記憶部１１３に記憶されているアクセスチケットｔを取得し、受信データ記憶部１１１に書き込まれた法数ｐのもとで式３−３を実行しＳを得る。
【０２０８】
【数２８】
（３−３）    Ｓ＝ｕ’ｔ  ｍｏｄ  ｐ
４．証明データ生成装置１１中の指数生成部１１６は、ユーザ固有情報記憶部１１５に記憶されているユーザの固有情報ｅを取得し、式３−４の計算を実行する。
【０２０９】
【数２９】
（３−４）    Ｆ（ｐ，ｅ）
５．証明データ生成装置１１中の第２演算部１１４は、指数生成部１１６で生成されたデータを用いて、式３−５の計算を実行しＳ’を得る。
【０２１０】
【数３０】
（３−５）    Ｓ’＝ｕ’Ｆ（ｐ，ｅ）  ｍｏｄ  ｐ
６．証明データ生成装置１１中の証明データ生成部１１７は、第１および第２演算部１１２、１１４からＳ’およびＳを得て、式３−６の計算を行いＲを得る。
【０２１１】
【数３１】
（３−６）    Ｒ＝Ｃ’（Ｓ’Ｓ）−１  ｍｏｄ  ｐ
７．証明データ生成装置１１はＲを証明データ検証装置１０の受信データ記憶部１０２に返送する。
【０２１２】
８．証明データ検証装置１０中の乱数効果除去部１０８は、乱数記憶部１０７から先に生成した乱数ｒを取り出し、式３−７の計算を行う。
【０２１３】
【数３２】
0003613929.tif 000005
９．証明データ生成装置１１において用いられるアクセスチケットｔとユーザの固有情報ｅの組み合わせが正しい場合に限り、計算の結果得られたＫ’と証明データＫが一致し、正しく検証が行われる。
【０２１４】
Ｋ’と検証用データＫとの比較方法に関しては、第１の実施例と同様の方法を用いることができる。
【０２１５】
［第４の実施例］
本発明の第４の実施例も、第２の実施例の変形例であり、乱数効果を付与するとともに、復号を検証装置１０側で行う。第２の実施例とは乱数効果の付与の態様が異なる。
【０２１６】
本実施例では、ＥｌＧａｍａｌ公開鍵暗号の構成方法、アクセスチケットｔ、及び認証用素データｕ，認証用データＣの生成方法とそれぞれの満たすべき性質は、第１の実施例と同様である。
【０２１７】
本実施例の証明データ生成装置の構成方法を図２に、検証装置の構成方法を図７に示す。また、本実施例の証明データ生成装置の動作を図９に、検証装置の動作を図１３に示す。
【０２１８】
以下、本実施例の動作について説明する。
【０２１９】
１．ユーザがアクセスすることによって、証明データ検証装置１０が起動される。
【０２２０】
２．証明データ検証装置１０は、認証用データｕ’と、アクセスチケット公開鍵記憶部１０１に記憶されている法数ｐとを、証明データ生成装置１１中の受信データ記憶部１１１に書き込む。
【０２２１】
認証用素データ記憶部１０５には、認証用素データとしてｕが記憶され、認証用データ記憶部１０４には認証用データＣが記憶されている。
【０２２２】
証明データ検証装置１０は、乱数生成部１０６によって、乱数ｒを生成し、乱数記憶部１０７に記録する。
【０２２３】
次いで、乱数効果付与部１０９は、認証用素データ記憶部１０５に記憶されているデータｕを取得して、式４−１により認証用データｕ’を計算する。
【０２２４】
【数３３】
（４−１）      ｕ’＝ｕ・ａｒ  ｍｏｄ  ｐ
３．証明データ生成装置１１中の第１演算部１１２は、アクセスチケット記憶部１１３に記憶されているアクセスチケットｔを取得し、受信データ記憶部１１１に書き込まれた法数ｐのもとで式４−２を実行しＳを得る。
【０２２５】
【数３４】
（４−２）    Ｓ＝ｕ’ｔ  ｍｏｄ  ｐ
４．証明データ生成装置１１中の指数生成部１１６は、ユーザ固有情報記憶部１１５に記憶されているユーザの固有情報ｅを取得し、式４−３の計算を実行する。
【０２２６】
【数３５】
（４−３）    Ｆ（ｐ，ｅ）
５．証明データ生成装置１１中の第２演算部１１４は、指数生成部１１６で生成されたデータを用いて、式４−４の計算を実行しＳ’を得る。
【０２２７】
【数３６】
（４−４）    Ｓ’＝ｕ’Ｆ（ｐ，ｅ）  ｍｏｄ  ｐ
６．証明データ生成装置１１中の証明データ生成部１１７は、第１および第２演算部１１２、１１４からＳ’およびＳを得て、式４−５の計算を行いＲを得る。
【０２２８】
【数３７】
（４−５）    Ｒ＝Ｓ’Ｓ  ｍｏｄ  ｐ
７．証明データ生成装置１１はＲを証明データ検証装置１０の受信データ記憶部１０２に返送する。
【０２２９】
８．証明データ検証装置１０中の乱数効果除去部１０８は、乱数記憶部１０７から先に生成した乱数ｒを取り出し、まず式４−６の計算を行う。
【０２３０】
【数３８】
（４−６）    ｖ＝Ｙ−ｒ・Ｒ  ｍｏｄ  ｐ
次に認証用データ記憶部１０４からＣを取り出して、式４−７の計算を行う。
【０２３１】
【数３９】
（４−７）Ｋ’＝Ｃ・ｖ−１  ｍｏｄ  ｐ
９．証明データ生成装置１１において用いられるアクセスチケットｔとユーザの固有情報ｅの組み合わせが正しい場合に限り、計算の結果得られたＫ’と検証用データＫが一致し、正しく検証が行われる。
【０２３２】
Ｋ’とＫとの比較方法に関しては、第１の実施例と同様の方法を用いることができる。
【０２３３】
［第５の実施例］
本発明の第５の実施例も第２の実施例の変形例であり、乱数効果を付与するとともに復号を証明データ生成装置１１側で行う。
【０２３４】
本実施例では、ＥｌＧａｍａｌ公開鍵暗号の構成方法、アクセスチケットｔ、及び認証用素データｕ，認証用データＣの生成方法とそれぞれの満たすべき性質は、第１の実施例と同様である。
【０２３５】
本実施例の証明データ生成装置の構成方法を図２に、検証装置の構成方法を図５に示す。また、本実施例の証明データ生成装置の動作を図８に、検証装置の動作を図１４に示す。
【０２３６】
以下、本実施例の動作について説明する。
【０２３７】
１．ユーザがアクセスすることによって、証明データ検証装置１０が起動される。
【０２３８】
２．証明データ検証装置１０は、認証用データｕ’，Ｃと、アクセスチケット公開鍵記憶部１０１に記憶されている法数ｐとを、証明データ生成装置１１中の受信データ記憶部１１１に書き込む。
【０２３９】
認証用素データ記憶部１０５には、認証用素データとしてｕが記憶され、認証用データ記憶部１０４には認証用データＣが記憶されている。
【０２４０】
証明データ検証装置１０は、乱数生成部１０６によって、乱数ｒを生成し、乱数記憶部１０７に記録する。
【０２４１】
次いで、乱数効果付与部１０９は、認証用素データ記憶部１０５に記憶されているデータｕを取得して、式５−１の計算により認証用データｕ’を計算する。
【０２４２】
【数４０】
（５−１）      ｕ’＝ｕ・ａｒ  ｍｏｄ  ｐ
３．証明データ生成装置１１中の第１演算部１１２は、アクセスチケット記憶部１１３に記憶されているアクセスチケットｔを取得し、受信データ記憶部１１１に書き込まれた法数ｐのもとで式５−２を実行しＳを得る。
【０２４３】
【数４１】
（５−２）    Ｓ＝ｕ’ｔ  ｍｏｄ  ｐ
４．証明データ生成装置１１中の指数生成部１１６は、ユーザ固有情報記憶部１１５に記憶されているユーザの固有情報ｅを取得し、式５−３の計算を実行する。
【０２４４】
【数４２】
（５−３）    Ｆ（ｐ，ｅ）
５．証明データ生成装置１１中の第２演算部１１４は、指数生成部１１６で生成されたデータを用いて、式５−４の計算を実行しＳ’を得る。
【０２４５】
【数４３】
（５−４）    Ｓ’＝ｕ’Ｆ（ｐ，ｅ）  ｍｏｄ  ｐ
６．証明データ生成装置１１中の証明データ生成部１１７は、第１および第２演算部１１２、１１４からＳ’およびＳを得て、式５−５の計算を行いＲを得る。
【０２４６】
【数４４】
（５−５）    Ｒ＝Ｃ’（Ｓ’Ｓ）−１  ｍｏｄ  ｐ
７．証明データ生成装置１１はＲを証明データ検証装置１０の受信データ記憶部１０２に返送する。
【０２４７】
８．証明データ検証装置１０中の乱数効果除去部１０８は、乱数記憶部１０７から先に生成した乱数ｒを取り出し、アクセスチケット公開鍵記憶部１０１からＹを取り出して、式５−６の計算を行う。
【０２４８】
【数４５】
（５−６）    Ｋ’＝Ｙｒ・Ｒ    ｍｏｄ  ｐ
９．証明データ生成装置１１において用いられるアクセスチケットｔとユーザの固有情報ｅの組み合わせが正しい場合に限り、計算の結果得られたＫ’と検証用データＫが一致し、正しく検証が行われる。
【０２４９】
Ｋ’と検証用データＫとの比較方法に関しては、第１の実施例と同様の方法を用いることができる。
【０２５０】
［第６の実施例］
本発明における第６の実施例では、ＥｌＧａｍａｌ公開鍵暗号の代わりに、有限体上の楕円曲線上で定義される暗号系を用いる。また乱数効果を付与せず、復号を証明データ検証装置１０側で行う。
【０２５１】
本実施例では、ｐ個の元を持つ有限体Ｆｐ（ｐは３より大きい素数をべき乗した値）上の楕円曲線Ｅ：ｙ２＝ｘ３＋ａｘ＋ｂ（ただし、４ａ３＋２７ｂ２≠０）をえらび、Ｅ上の一点をＰとする。
【０２５２】
ここで、アクセス資格認証の特徴情報をＸとし、点Ｙを式６−１のようにして生成する。
【０２５３】
【数４６】
（６−１）    Ｙ＝ＸＰ
次に、ユーザを識別するために、ユーザ毎に異なる数であるユーザ固有情報ｅを定める。アクセスチケットｔは次の式６−２に基づいて生成される。
【０２５４】
【数４７】
（６−２）              ｔ＝Ｘ−Ｆ（ｐ，ｅ，ａ，ｂ）
Ｘをアクセスチケット秘密鍵、Ｙをアクセスチケット公開鍵と呼ぶ。
【０２５５】
また、Ｅ上の点ｕと点Ｃを以下のように定める。
点ｕは、上記点Ｐを所定の乱数ｚ倍した数であり、即ち、式６−３を満たす。
【０２５６】
【数４８】
（６−３）    ｕ＝ｚＰ
検証用データをＫとし、ＫをＥ上の点Ｌに対応させる。点Ｃはアクセスチケット公開鍵Ｙを、上記乱数ｚ倍した数と、点Ｌとの和であり、式６−４を満たす。
【０２５７】
【数４９】
（６−４）    Ｃ＝Ｌ＋ｚＹ
データＫを点Ｌに対応させる方法としては、例えば、「暗号・ゼロ知識証明・数論」（情報処理学会監修／岡本・大田編）共立出版のｐｐ．２３１に述べられているような方法を用いることができる。
【０２５８】
検証用データＫを証明データ検証装置に保持せず、代わりに、その暗号化の結果であるＣのみを保持するように証明データ検証装置を構成すれば、証明データ検証装置から検証用データＫが漏洩する危険を回避することができる。
【０２５９】
本実施例の証明データ生成装置の構成方法を図６に、証明データ検証装置の構成方法を図３に示す。また、本実施例の証明データ生成装置の動作を図１７に、証明データ検証装置の動作を図１８に示す。
【０２６０】
図６の証明データ生成装置１１の構成は基本的には図２等の証明データ生成装置１１と同様であり、対応する箇所に対応する符号を付した。なお、図６では図２の指数生成部１１６に変えて倍数生成部１１９を用いる。
【０２６１】
以下に本実施例の動作を示す。
【０２６２】
１．ユーザがアクセスすることによって、証明データ検証装置１０が起動される。
【０２６３】
証明データ検証装置１０の実現方法として、ユーザのＰＣやワークステーション上で動作するアプリケーションプログラム、ユーザのＰＣやワークステーションとネットワークを介して接続されたサーバ上のサーバプログラム、あるいは、ＩＣカード・リーダ・ライターのような専用の装置のいずれも可能であることは、第１の実施例の場合と変わらない。これは、以下のすべての実施例においても同様である。
【０２６４】
２．認証用素データ記憶部１０５には、認証用素データとしてＥ上の点ｕが、また、認証用データ記憶部１０４には、認証用データとしてＥ上の点Ｃが記憶されている。
【０２６５】
証明データ検証装置１０は、認証用データｕ’と、アクセスチケット公開鍵記憶部１０１に記憶されている、楕円曲線Ｅを定義するパラメータｐ，ａ，ｂを、証明データ生成装置１１中の受信データ記憶部１１１に書き込む。
【０２６６】
本実施例では、認証用データｕ’は認証用素データｕである。
【０２６７】
【数５０】
（６−５）    ｕ’＝ｕ
３．証明データ生成装置１１中の第１演算部１１２は、アクセスチケット記憶部１１３に記憶されているアクセスチケットｔを取得し、式６−６を実行してＳを得る。
【０２６８】
【数５１】
（６−６）    Ｓ＝ｔｕ’
４．証明データ生成装置１１中の倍数生成部１１９は、ユーザ固有情報記憶部１１５に記憶されているユーザの固有情報ｅを取得し、式６−７の計算を実行する。
【０２６９】
【数５２】
（６−７）    Ｆ（ｐ，ｅ，ａ，ｂ）
５．証明データ生成装置１１中の第２演算部１１４は、倍数生成部１１９で生成されたデータを用いて、式６−８の計算を実行しＳ’を得る。
【０２７０】
【数５３】
（６−８）    Ｓ’＝Ｆ（ｐ，ｅ，ａ，ｂ）ｕ’
６．証明データ生成装置１１中の証明データ生成部１１７は、第１および第２演算部１１２、１１４からＳ’およびＳを得て、式６−９の計算を行いＲを得る。
【０２７１】
【数５４】
（６−９）    Ｒ＝Ｓ＋Ｓ’
７．証明データ生成装置１１はＲを証明データ検証装置１０の受信データ記憶部１０２に返送する。
【０２７２】
８．証明データ検証装置１０中の検証用演算部１０３は、認証用データ記憶部１０４から認証用データＣを取り出し、式６−１０の計算を行う。
【０２７３】
【数５５】
（６−１０）    Ｌ’＝Ｃ−Ｒ
９．検証用演算部１０３は点Ｌ’に対応するデータＫ’を計算する。
【０２７４】
点Ｌ’をデータＫ’に対応させる方法としては、例えば前述した、「暗号・ゼロ知識証明・数論」（情報処理学会監修／岡本・大田編）共立出版  のｐｐ．２３１に述べられているような方法を用いることができる。
【０２７５】
証明データ生成装置１１において用いられるアクセスチケットｔとユーザの固有情報ｅの組み合わせが正しい場合に限り、計算の結果得られたＫ’と検証用データＫが一致し、正しく検証が行われる。
【０２７６】
Ｋ’と検証用データＫとの比較方法に関しては、第１の実施例と同様の方法を用いることができる。
【０２７７】
なお、本実施例では、楕円曲線Ｅをｙ２＝ｘ３＋ａｘ＋ｂとしたがそれ以外にも以下のような構成とすることも可能である。
【０２７８】
１）  標数２の有限体上の楕円曲線Ｅをｙ２＋ｃｙ≡ｘ３＋ａｘ＋ｂ  ｍｏｄ  ｐ（ただし、ｂ≠０）とし、楕円曲線を定義するパラメータとして、本実施例で示したものに加えてｃを証明データ生成装置に送付し、証明データ生成装置はユーザ固有情報を用いてＦ（ｐ，ｅ，ａ，ｂ，ｃ）を計算する。
【０２７９】
２）  標数２の有限体上の楕円曲線Ｅをｙ２＋ｘｙ≡ｘ３＋ａｘ＋ｂ  ｍｏｄ  ｐ（ただし、ａ≠０）とする。
【０２８０】
３）  標数３の有限体上の楕円曲線Ｅをｙ２≡ｘ３＋ａｘ２＋ｂｘ＋ｃ  ｍｏｄｐとし、楕円曲線を定義するパラメータとして、本実施例で示したものに加えてｃを証明データ生成装置に送付し、証明データ生成装置はユーザ固有情報を用いてＦ（ｐ，ｅ，ａ，ｂ，ｃ）を計算し、これを元にＳ’を計算する。
【０２８１】
これらの構成方法は、以下のすべての実施例に対して、同様に適用可能である。
【０２８２】
［第７の実施例］
本発明の第７の実施例は、第６の実施例の変形例であり、復号を証明データ生成装置側で行う点で第６の実施例と異なる。
本実施例では、有限体上での楕円曲線の設定方法と楕円曲線Ｅ上での暗号の構成方法、アクセスチケットｔ、及び認証用素データｕ，認証用データＣの生成方法と、それぞれの満たすべき性質は、第６の実施例と同様である。
【０２８３】
また、楕円曲線上の点とデータを対応させる方法についても、第６の実施例と同様の方法を用いることができる。
【０２８４】
本実施例の証明データ生成装置の構成方法を図６に、証明データ検証装置の構成方法を図４に示す。また、本実施例の証明データ生成装置の動作を図１６に、証明データ検証装置の動作を図１９に示す。なお、図４において図３等の証明データ検証装置１０と対応する箇所には対応する符号を付した。
【０２８５】
以下、本実施例の動作について説明する。
【０２８６】
１．ユーザがアクセスすることによって、証明データ検証装置１０が起動される。
【０２８７】
２．認証用素データ記憶部１０５には、認証用素データとしてＥ上の点ｕが、また、認証用データ記憶部１０４には、認証用データとしてＥ上の点Ｃが記憶されている。
【０２８８】
証明データ検証装置１０は、認証用データｕ，Ｃと、アクセスチケット公開鍵記憶部１０１に記憶されている、楕円曲線Ｅを定義するパラメータｐ，ａ，ｂを、証明データ生成装置１１中の受信データ記憶部１１１に書き込む。
【０２８９】
３．証明データ生成装置１１中の第１演算部１１２は、アクセスチケット記憶部１１３に記憶されているアクセスチケットｔを取得し、式７−１を実行してＳを得る。
【０２９０】
【数５６】
（７−１）    Ｓ＝ｔｕ
４．証明データ生成装置１１中の倍数生成部１１９は、ユーザ固有情報記憶部１１５に記憶されているユーザの固有情報ｅを取得し、式７−２の計算を実行する。
【０２９１】
【数５７】
（７−２）    Ｆ（ｐ，ｅ，ａ，ｂ）
５．証明データ生成装置１１中の第２演算部１１４は、倍数生成部１１９で生成されたデータを用いて、式７−３の計算を実行しＳ’を得る。
【０２９２】
【数５８】
（７−３）    Ｓ’＝Ｆ（ｐ，ｅ，ａ，ｂ）ｕ
６．証明データ生成装置１１中の証明データ生成部１１７は、第１および第２演算部１１２、１１４からＳ’およびＳを得て、式７−４の計算を行いＲを得る。
【０２９３】
【数５９】
（７−４）    Ｒ＝Ｃ−  Ｓ−  Ｓ’
７．証明データ生成装置１１はＲを証明データ検証装置１０の受信データ記憶部１０２に返送する。
【０２９４】
８．検証用演算部１０３は点Ｒに対応するデータＫ’を計算する。証明データ生成装置１１において用いられるアクセスチケットｔとユーザの固有情報ｅの組み合わせが正しい場合に限り、計算の結果得られたＫ’と検証用データＫが一致し、正しく検証が行われる。
【０２９５】
Ｋ’と検証用データＫとの比較方法に関しては、第１の実施例と同様の方法を用いることができる。
【０２９６】
［第８の実施例］
本発明の第８の実施例も第６の実施例の変形例であり、乱数効果を付与するとともに、復号を証明データ検証装置１０側で行う。
【０２９７】
本実施例では、有限体上での楕円曲線の設定方法と楕円曲線Ｅ上での暗号の構成方法、アクセスチケットｔ、及び認証用素データｕ，認証用データＣの生成方法と、それぞれの満たすべき性質は、第６の実施例と同様である。また、楕円曲線上の点とデータを対応させる方法についても、第６の実施例と同様の方法を用いることができる。
【０２９８】
なお、本実施例では、点Ｐの位数をｑとする。
【０２９９】
本実施例の証明データ生成装置１１の構成方法を図６に、証明データ検証装置１０の構成方法を図７に示す。また、本実施例の証明データ生成装置１１の動作を図１７に、証明データ検証装置１０の動作を図２１に示す。
【０３００】
以下、本実施例の動作について説明する。
【０３０１】
１．ユーザがアクセスすることによって、証明データ検証装置１０が起動される。
【０３０２】
２．認証用素データ記憶部１０５には、認証用素データとしてＥ上の点ｕが、また、認証用データ記憶部１０４には、認証用データとしてＥ上の点Ｃが記憶されている。
【０３０３】
証明データ検証装置１０は、認証用データｕ’と、アクセスチケット公開鍵記憶部１０１に記憶されている、楕円曲線Ｅを定義するパラメータｐ，ａ，ｂを、証明データ生成装置１１中の受信データ記憶部１１１に書き込む。
【０３０４】
証明データ検証装置１０は、乱数生成部１０６によって、乱数ｒをアクセスチケット公開鍵記憶部１０１に保持されている点Ｐの位数ｑと互いに素になるように生成し、乱数記憶部１０７に記録する。
【０３０５】
ここで、認証用データｕ’は、次のように生成される。すなわち、乱数効果付与部１０９は、認証用素データ記憶部１０５に記憶されているデータｕを取得して、式８−１の計算を行う。
【０３０６】
【数６０】
（８−１）      ｕ’＝ｒｕ
このように、認証用データに乱数効果を加え、証明データ生成装置１１が返す証明データを検証する際に乱数効果を除去するように構成することにより、いわゆるリプレイアタックを防止することができる。これは、以下の実施例においても、同様である。
【０３０７】
３．証明データ生成装置１１中の第１演算部１１２は、アクセスチケット記憶部１１３に記憶されているアクセスチケットｔを取得し、式８−２を実行してＳを得る。
【０３０８】
【数６１】
（８−２）    Ｓ＝ｔｕ’
４．証明データ生成装置１１中の倍数生成部１１９は、ユーザ固有情報記憶部１１５に記憶されているユーザの固有情報ｅを取得し、式８−３の計算を実行する。
【０３０９】
【数６２】
（８−３）    Ｆ（ｐ，ｅ，ａ，ｂ）
５．証明データ生成装置１１中の第２演算部１１４は、倍数生成部１１９で生成されたデータを用いて、式８−４の計算を実行しＳ’を得る。
【０３１０】
【数６３】
（８−４）    Ｓ’＝Ｆ（ｐ，ｅ，ａ，ｂ）ｕ’
６．証明データ生成装置１１中の証明データ生成部１１７は、第１および第２演算部１１２、１１４からＳ’およびＳを得て、式８−５の計算を行いＲを得る。
【０３１１】
【数６４】
（８−５）    Ｒ＝Ｓ＋Ｓ’
７．証明データ生成装置１１はＲを証明データ検証装置１０の受信データ記憶部１０２に返送する。
【０３１２】
８．証明データ検証装置１０中の乱数効果除去部１０８は、乱数記憶部１０７から先に生成した乱数ｒを取り出して、まず式８−６の計算を行う。
【０３１３】
【数６５】
（８−６）    ｖ＝（ｒ−１  ｍｏｄ  ｑ）Ｒ
次いで、計算の結果得られたｖと、認証用データ記憶部１０４に記憶されているＣを用いて、式８−７の計算を行う。
【０３１４】
【数６６】
（８−７）    Ｌ’＝Ｃ−ｖ
９．検証用演算部１０３は点Ｌ’に対応するデータＫ’を計算する。証明データ生成装置１１において用いられるアクセスチケットｔとユーザの固有情報ｅの組み合わせが正しい場合に限り、計算の結果得られたＫ’と検証用データＫが一致し、正しく検証が行われる。
【０３１５】
Ｋ’と検証用データＫとの比較方法に関しては、第１の実施例と同様の方法を用いることができる。
【０３１６】
［第９の実施例］
本発明の第９の実施例は第７の実施例の変形例であり、乱数効果を付与するとともに、復号を証明データ生成装置１１側で行う。
【０３１７】
本実施例では、有限体上での楕円曲線の設定方法と楕円曲線Ｅ上での暗号の構成方法、アクセスチケットｔ、及び認証用素データｕ，認証用データＣの生成方法と、それぞれの満たすべき性質は、第６の実施例と同様である。
【０３１８】
また、楕円曲線上の点とデータを対応させる方法についても、第６の実施例と同様の方法を用いることができる。
【０３１９】
なお、本実施例では、点Ｐの位数をｑとする。
【０３２０】
本実施例の証明データ生成装置１１の構成方法を図６に、証明データ検証装置１０の構成方法を図５に示す。また、本実施例の証明データ生成装置１１の動作を図１６に、証明データ検証装置１０の動作を図２０に示す。
【０３２１】
以下、本実施例の動作について説明する。
【０３２２】
１．ユーザがアクセスすることによって、証明データ検証装置１０が起動される。
【０３２３】
２．認証用素データ記憶部１０５には、認証用素データとしてＥ上の点ｕが、また、認証用データ記憶部１０４には、認証用データとしてＥ上の点Ｃが記憶されている。
【０３２４】
証明データ検証装置１１は、認証用データｕ’，Ｃ’と、アクセスチケット公開鍵記憶部１０１に記憶されている、楕円曲線Ｅを定義するパラメータｐ，ａ，ｂを、証明データ生成装置１１中の受信データ記憶部１１１に書き込む。
【０３２５】
証明データ検証装置１０は、乱数生成部１０６によって、乱数ｒをアクセスチケット公開鍵記憶部１０１に保持されている点Ｐの位数ｑと互いに素になるように生成し、乱数記憶部１０７に記録する。
【０３２６】
ここで、認証用データｕ’は、次のように生成される。すなわち、乱数効果付与部１０９は、認証用素データ記憶部１０５に記憶されているデータｕを取得して、式９−１の計算を行う。
【０３２７】
【数６７】
（９−１）      ｕ’＝ｒｕ
また、認証用データＣ’は、次のように生成される。認証用データ記憶部１０４に記憶されているデータＣを取得して、式９−２の計算を行う。
【０３２８】
【数６８】
（９−２）      Ｃ’＝ｒＣ
３．証明データ生成装置１１中の第１演算部１１２は、アクセスチケット記憶部１１３に記憶されているアクセスチケットｔを取得し、式９−３を実行してＳを得る。
【０３２９】
【数６９】
（９−３）    Ｓ＝ｔｕ’
４．証明データ生成装置１１中の倍数生成部１１９は、ユーザ固有情報記憶部１１５に記憶されているユーザの固有情報ｅを取得し、式９−４の計算を実行する。
【０３３０】
【数７０】
（９−４）    Ｆ（ｐ，ｅ，ａ，ｂ）
５．証明データ生成装置１１中の第２演算部１１４は、倍数生成部１１９で生成されたデータを用いて、式９−５の計算を実行しＳ’を得る。
【０３３１】
【数７１】
（９−５）    Ｓ’＝Ｆ（ｐ，ｅ，ａ，ｂ）ｕ’
６．証明データ生成装置１１中の証明データ生成部１１７は、第１および第２演算部１１２、１１４からＳ’およびＳを得て、式９−６の計算を行いＲを得る。
【０３３２】
【数７２】
（９−６）    Ｒ＝Ｃ’−Ｓ−Ｓ’
７．証明データ生成装置１１はＲを証明データ検証装置１０の受信データ記憶部１０２に返送する。
【０３３３】
８．証明データ検証装置１０中の乱数効果除去部１０８は、乱数記憶部１０７から先に生成した乱数ｒを取り出し、アクセスチケット公開鍵記憶部１０１から点Ｐの位数ｑを取り出して、式９−７の計算を行う。
【０３３４】
【数７３】
（９−７）    Ｌ’＝（ｒ−１  ｍｏｄ  ｑ）Ｒ
９．検証用演算部１０３は点Ｌ’に対応するデータＫ’を計算する。証明データ生成装置１１において用いられるアクセスチケットｔとユーザの固有情報ｅの組み合わせが正しい場合に限り、計算の結果得られたＫ’と検証用データＫが一致し、正しく検証が行われる。
【０３３５】
Ｋ’と検証用データとの比較方法に関しては、第１の実施例と同様の方法を用いることができる。
【０３３６】
［第１０の実施例］
本発明の第１０の実施例は、第８の実施例と同様に第６の実施例の変形例を示す。本実施例は乱数効果を付与するとともに、復号を証明データ検証装置１０側で行う。第８の実施例とは乱数効果の手法が異なる。
【０３３７】
本実施例では、有限体上での楕円曲線の設定方法と楕円曲線Ｅ上での暗号の構成方法、アクセスチケットｔ、及び認証用素データｕ，認証用データＣの生成方法と、それぞれの満たすべき性質は、第６の実施例と同様である。
【０３３８】
また、楕円曲線上の点とデータを対応させる方法についても、第６の実施例と同様の方法を用いることができる。
【０３３９】
本実施例の証明データ生成装置の構成方法を図６に、証明データ検証装置の構成方法を図７に示す。また、本実施例の証明データ生成装置の動作を図１７に、証明データ検証装置の動作を図２２に示す。
【０３４０】
以下、本実施例の動作について説明する。
【０３４１】
１．ユーザがアクセスすることによって、証明データ検証装置１０が起動される。
【０３４２】
２．認証用素データ記憶部１０５には、認証用素データとしてＥ上の点ｕが、また、認証用データ記憶部１０４には、認証用データとしてＥ上の点Ｃが記憶されている。
【０３４３】
証明データ検証装置１０は、認証用データｕ’と、アクセスチケット公開鍵記憶部１０１に記憶されている、楕円曲線Ｅを定義するパラメータｐ，ａ，ｂを、証明データ生成装置１１中の受信データ記憶部１１１に書き込む。
【０３４４】
証明データ検証装置１０は、乱数生成部１０６によって、乱数ｒを生成し、乱数記憶部１０７に記録する。
【０３４５】
ここで、認証用データｕ’は、次のように生成される。すなわち乱数効果付与部１０９は、認証用素データ記憶部１０５に記憶されているデータｕを取得して、式１０−１の計算を行う。
【０３４６】
【数７４】
（１０−１）      ｕ’＝ｕ＋ｒＰ
３．証明データ生成装置１１中の第１演算部１１２は、アクセスチケット記憶部１１３に記憶されているアクセスチケットｔを取得し、式１０−２を実行しＳを得る。
【０３４７】
【数７５】
（１０−２）    Ｓ＝ｔｕ’
４．証明データ生成装置１１中の倍数生成部１１９は、ユーザ固有情報記憶部１１５に記憶されているユーザの固有情報ｅを取得し、式１０−３の計算を実行する。
【０３４８】
【数７６】
（１０−３）      Ｆ（ｐ，ｅ，ａ，ｂ）
５．証明データ生成装置１１中の第２演算部１１４は、倍数生成部１１９で生成されたデータを用いて、式１０−４の計算を実行しＳ’を得る。
【０３４９】
【数７７】
（１０−４）    Ｓ’＝Ｆ（ｐ，ｅ，ａ，ｂ）ｕ’
６．証明データ生成装置１１中の証明データ生成部１１７は、第１および第２演算部１１２、１１４からＳ’およびＳを得て、式１０−５の計算を行いＲを得る。
【０３５０】
【数７８】
（１０−５）    Ｒ＝Ｓ＋Ｓ’
７．証明データ生成装置１１はＲを証明データ検証装置１０の受信データ記憶部１０２に返送する。
【０３５１】
８．証明データ検証装置１０中の乱数効果除去部１０８は、乱数記憶部１０７から先に生成した乱数ｒを取り出し、まず式１０−６の計算を行う。
【０３５２】
【数７９】
（１０−６）    ｖ＝Ｒ−ｒＹ
次に認証用データ記憶部１０４からＣを取り出して、上記ｖの値を用いて式１０−７の計算を行う。
【０３５３】
【数８０】
（１０−７）    Ｌ’＝Ｃ−ｖ
９．検証手段は点Ｌ’に対応するデータＫ’を計算する。証明データ生成装置１１において用いられるアクセスチケットｔとユーザの固有情報ｅの組み合わせが正しい場合に限り、計算の結果得られたＫ’と検証用データＫが一致し、正しく検証が行われる。
【０３５４】
Ｋ’と検証用データＫとの比較方法に関しては、第１の実施例と同様の方法を用いることができる。
【０３５５】
［第１１の実施例］
本発明の第１１の実施例は第７の実施例の変形例であり、乱数効果を付与するとともに復号を証明データ生成装置１１側で行うものである。
【０３５６】
本実施例では、有限体上での楕円曲線の設定方法と楕円曲線Ｅ上での暗号の構成方法、アクセスチケットｔ、及び認証用素データｕ，認証用データＣの生成方法と、それぞれの満たすべき性質は、第６の実施例と同様である。
【０３５７】
また、楕円曲線上の点とデータを対応させる方法についても、第６の実施例と同様の方法を用いることができる。
【０３５８】
本実施例の証明データ生成装置１１の構成方法を図６に、証明データ検証装置１０の構成方法を図５に示す。また、本実施例の証明データ生成装置１１の動作を図１６に、証明データ検証装置１０の動作を図２３に示す。
【０３５９】
以下、本実施例の動作について説明する。
【０３６０】
１．ユーザがアクセスすることによって、証明データ検証装置１０が起動される。
【０３６１】
２．認証用素データ記憶部１０５には、認証用素データとしてＥ上の点ｕが、また、認証用データ記憶部１０４には、認証用データとしてＥ上の点Ｃが記憶されている。
【０３６２】
証明データ検証装置１０は、認証用データｕ’，Ｃ’と、アクセスチケット公開鍵記憶部１０１に記憶されている、楕円曲線Ｅを定義するパラメータｐ，ａ，ｂを、証明データ生成装置１１中の受信データ記憶部１１１に書き込む。ただし、Ｃ’＝Ｃである。
【０３６３】
証明データ検証装置は、乱数生成部によって、乱数ｒを生成し、乱数記憶部に記録する。
ここで、認証用データｕ’は、次のように生成される。すなわち、乱数効果付与部１０９は、認証用素データ記憶部１０５に記憶されているデータｕを取得して、式１１−１の計算を行う。
【０３６４】
【数８１】
（１１−１）      ｕ’＝ｕ＋ｒａ
３．証明データ生成装置１１中の第１演算部１１２は、アクセスチケット記憶部１１３に記憶されているアクセスチケットｔを取得し、式１１−２を実行してＳを得る。
【０３６５】
【数８２】
（１１−２）    Ｓ＝ｔｕ’
４．証明データ生成装置１１中の倍数生成部１１９は、ユーザ固有情報記憶部１１５に記憶されているユーザの固有情報ｅを取得し、式１１−３の計算を実行する。
【０３６６】
【数８３】
（１１−３）    Ｆ（ｐ，ｅ，ａ，ｂ）
５．証明データ生成装置１１中の第２演算部１１４は、倍数生成部１１９で生成されたデータを用いて、式１１−４の計算を実行しＳ’を得る。
【０３６７】
【数８４】
（１１−４）    Ｓ’＝Ｆ（ｐ，ｅ，ａ，ｂ）ｕ’
６．証明データ生成装置１１中の証明データ生成部１１７は、第１および第２演算部１１２、１１４からＳ’およびＳを得て、式１１−５の計算を行いＲを得る。
【０３６８】
【数８５】
（１１−５）    Ｒ＝Ｃ’−Ｓ−Ｓ’
７．証明データ生成装置１１はＲを証明データ検証装置１０の受信データ記憶部１０２に返送する。
【０３６９】
８．証明データ検証装置１０中の乱数効果除去部１０８は、乱数記憶部１０７から先に生成した乱数ｒを取り出し、アクセスチケット公開鍵記憶部１０１からＹを取り出して、式１１−６の計算を行う。
【０３７０】
【数８６】
（１１−６）    Ｌ’＝Ｒ＋ｒＹ
９．検証手段は点Ｌ’に対応するデータＫ’を計算する。証明データ生成装置１１において用いられるアクセスチケットｔとユーザの固有情報ｅの組み合わせが正しい場合に限り、計算の結果得られたＫ’と検証用データＫが一致し、正しく検証が行われる。
【０３７１】
Ｋ’と検証用データＫとの比較方法に関しては、第１の実施例と同様の方法を用いることができる。
【０３７２】
［第１２の実施例］
本発明の第１２の実施例は第６の実施例の変形例であり、乱数効果を付与するとともに、証明データ検証装置１０側で復号を行うようにしている。
【０３７３】
本実施例では、有限体上での楕円曲線の設定方法と楕円曲線Ｅ上での暗号の構成方法、及び認証用素データｕ，認証用データＣの生成方法と、それぞれの満たすべき性質は、第６の実施例と同様である。本実施例では、アクセスチケットｔは以下の式で生成される。
【数８７】
（１２−０）    ｔ＝Ｘ−Ｆ（ｐ，ｅ，ａ，ｂ，Ｙ）
【０３７４】
また、楕円曲線上の点とデータを対応させる方法についても、第６の実施例と同様の方法を用いることができる。
【０３７５】
本実施例の証明データ生成装置の構成方法を図６に、証明データ検証装置の構成方法を図７に示す。また、本実施例の証明データ生成装置の動作を図１５に、証明データ検証装置の動作を図２４に示す。
【０３７６】
以下、本実施例の動作について説明する。
【０３７７】
１．ユーザがアクセスすることによって、証明データ検証装置１０が起動される。
【０３７８】
２．認証用素データ記憶部１０５には、認証用素データとしてＥ上の点ｕが、また、認証用データ記憶部１０４には、認証用データとしてＥ上の点Ｃが記憶されている。
【０３７９】
証明データ検証装置１０は、認証用データｕ’と、アクセスチケット公開鍵記憶部１０１に記憶されている、楕円曲線Ｅを定義するパラメータｐ，ａ，ｂと、公開鍵Ｙとを、証明データ生成装置１１中の受信データ記憶部１１１に書き込む。
【０３８０】
証明データ検証装置１０は、乱数生成部１０６によって、乱数ｒを生成し、乱数記憶部１０７に記録する。
【０３８１】
ここで、認証用データｕ’は、次のように生成される。すなわち、乱数効果付与部１０９は、認証用素データ記憶部１０５に記憶されているデータｕを取得して、式１２−１の計算を行う。
【０３８２】
【数８８】
（１２−１）      ｕ’＝ｕ＋ｒＰ
３．証明データ生成装置１１中の第１演算部１１２は、アクセスチケット記憶部１１３に記憶されているアクセスチケットｔを取得し、式１２−２を実行しＳを得る。
【０３８３】
【数８９】
（１２−２）    Ｓ＝ｔｕ’
４．証明データ生成装置１１中の倍数生成部１１９は、ユーザ固有情報記憶部１１５に記憶されているユーザの固有情報ｅを取得し、式１２−３の計算を実行する。
【０３８４】
【数９０】
（１２−３）      Ｆ（ｐ，ｅ，ａ，ｂ，Ｙ）
５．証明データ生成装置１１中の第２演算部１１４は、倍数生成部１１９で生成されたデータを用いて、式１２−４の計算を実行しＳ’を得る。
【０３８５】
【数９１】
（１２−４）    Ｓ’＝Ｆ（ｐ，ｅ，ａ，ｂ，Ｙ）ｕ’
６．証明データ生成装置１１中の証明データ生成部１１７は、第１および第２演算部１１２、１１４からＳ’およびＳを得て、式１２−５の計算を行いＲを得る。
【０３８６】
【数９２】
（１２−５）    Ｒ＝Ｓ＋Ｓ’
７．証明データ生成装置１１はＲを証明データ検証装置１０の受信データ記憶部１０２に返送する。
８．証明データ検証装置１０中の乱数効果除去部１０８は、乱数記憶部１０７から先に生成した乱数ｒを取り出し、まず式１２−６の計算を行う。
【０３８７】
【数９３】
（１２−６）    ｖ＝Ｒ−ｒＹ
次に認証用データ記憶部１０４からＣを取り出して、上記ｖの値を用いて式１２−７の計算を行う。
【０３８８】
【数９４】
（１２−７）Ｌ’＝Ｃ−ｖ
９．検証用演算部１０３は点Ｌ’に対応するデータＫ’を計算する。証明データ生成装置１１において用いられるアクセスチケットｔとユーザの固有情報ｅの組み合わせが正しい場合に限り、計算の結果得られたＫ’と検証用データＫが一致し、正しく検証が行われる。
【０３８９】
Ｋ’と検証用データＫとの比較方法に関しては、第１の実施例と同様の方法を用いることができる。
【０３９０】
［第１３の実施例］
本発明の第１３の実施例は第６の実施例の変形例であり、乱数効果を付与しない。また復号を証明データ検証装置１０側で行う。
【０３９１】
本実施例では、有限体上での楕円曲線の設定方法と楕円曲線Ｅ上での暗号の構成方法、アクセスチケットｔ、及び認証用素データｕの生成方法と、それぞれの満たすべき性質は、第６の実施例と同様である。
【０３９２】
本実施例では、証明データをＫとする。そして、式１３−１により、アクセスチケット公開鍵Ｙを、上記所定の乱数ｚ倍したＥ上の点Ｃ（ｃｘ，ｃｙ）を生成する。
【０３９３】
【数９５】
（１３−１）    Ｃ（ｃｘ，ｃｙ）＝ｚＹ
さらに、前記証明データＫと点Ｃのｘ座標の値ｃｘとの排他的論理和をとったものを、認証用データｃとする。
【０３９４】
【数９６】
0003613929.tif 000006
本実施例の証明データ生成装置の構成方法を図６に、証明データ検証装置の構成方法を図３に示す。また、本実施例の証明データ生成装置の動作を図１７に、証明データ検証装置の動作を図３１に示す。
【０３９５】
以下に本実施例の動作を示す。
【０３９６】
１．ユーザがアクセスすることによって、証明データ検証装置１０が起動される。
【０３９７】
２．認証用データ記憶部１０４には、認証用データとしてｃが記憶されている。
【０３９８】
証明データ検証装置１０は、認証用データｕ’（＝ｕ）と、アクセスチケット公開鍵記憶部１０１に記憶されている、楕円曲線Ｅを定義するパラメータｐ，ａ，ｂを、証明データ生成装置１１中の受信データ記憶部１１１に書き込む。
【０３９９】
３．証明データ生成装置１１中の第１演算部１１２は、アクセスチケット記憶部１１３に記憶されているアクセスチケットｔを取得し、式１３−３を実行してＳを得る。
【０４００】
【数９７】
（１３−３）    Ｓ＝ｔｕ’
４．証明データ生成装置１１中の倍数生成部１１９は、ユーザ固有情報記憶部１１５に記憶されているユーザの固有情報ｅを取得し、式１３−４の計算を実行する。
【０４０１】
【数９８】
（１３−４）    Ｆ（ｐ，ｅ，ａ，ｂ）
５．証明データ生成装置１１中の第２演算部１１４は、倍数生成部１１９で生成されたデータを用いて、式１３−５の計算を実行しＳ’を得る。
【０４０２】
【数９９】
（１３−５）    Ｓ’＝Ｆ（ｐ，ｅ，ａ，ｂ）ｕ’
６．証明データ生成装置１１中の証明データ生成部１１７は、第１および第２演算部１１２、１１４からＲ’およびＳを得て、式１３−６の計算を行いＲを得る。
【０４０３】
【数１００】
（１３−６）  Ｒ＝Ｓ＋Ｓ’
７．証明データ生成装置１１はＲを証明データ検証装置１０の受信データ記憶部１０２に返送する。
【０４０４】
８．証明データ検証装置１０中の検証用演算部１０３は、認証データ記憶部１０４から認証用データｃを取り出し、証明データＲのｘ座標ｖｘとの排他的論理和Ｋ’を計算する。
【０４０５】
【数１０１】
0003613929.tif 000007
（ただし点Ｒの座標を（ｖｘ，ｖｙ）とする）
９．証明データ生成装置１１において用いられるアクセスチケットｔとユーザの固有情報ｅの組み合わせが正しい場合に限り、計算の結果得られたＫ’と検証用データＫが一致し、正しく検証が行われる。
【０４０６】
Ｋ’と検証用データＫとの比較方法に関しては、第１の実施例と同様の方法を用いることができる。
【０４０７】
［第１４の実施例］
本発明の第１４の実施例は、第１３の実施例の変形例であり、乱数効果を付与しない。復号を証明データ生成装置１１側で行う。
【０４０８】
本実施例では、有限体上での楕円曲線の設定方法と楕円曲線Ｅ上での暗号の構成方法、アクセスチケットｔ、及び認証用素データｕ、認証用データｃの生成方法と、それぞれの満たすべき性質は、第１３の実施例と同様である。
【０４０９】
本実施例の証明データ生成装置の構成方法を図６に、証明データ検証装置の構成方法を図４に示す。また、本実施例の証明データ生成装置の動作を図３５に、証明データ検証装置の動作を図３２に示す。
【０４１０】
以下、本実施例の動作について説明する。
【０４１１】
１．ユーザがアクセスすることによって、証明データ検証装置１０が起動される。
【０４１２】
２．証明データ検証装置１０は、認証用データｕ’（＝ｕ）およびＣ’（＝ｃ）と、アクセスチケット公開鍵記憶部１０１に記憶されている、楕円曲線Ｅを定義するためのパラメータｐ，ａ，ｂを、証明データ生成装置１１中の受信データ記憶部１１１に書き込む。
【０４１３】
３．証明データ生成装置１１中の第１演算部１１２は、アクセスチケット記憶部１１３に記憶されているアクセスチケットｔを取得し、式１４−１を実行してＳを得る。
【０４１４】
【数１０２】
（１４−１）    Ｓ＝ｔｕ’
４．証明データ生成装置１１中の倍数生成部１１９は、ユーザ固有情報記憶部１１５に記憶されているユーザの固有情報ｅを取得し、式１４−２の計算を実行する。
【０４１５】
【数１０３】
（１４−２）    Ｆ（ｐ，ｅ，ａ，ｂ）
５．証明データ生成装置１１中の第２演算部１１４は、倍数生成部１１９で生成されたデータを用いて、式１４−３の計算を実行しＳ’を得る。
【０４１６】
【数１０４】
（１４−３）    Ｓ’＝Ｆ（ｐ，ｅ，ａ，ｂ）ｕ’
６．証明データ生成装置１１中の証明データ生成部１１７は、第１および第２演算部１１２、１１４からＳ’およびＳを得て、式１４−４の計算を行いＬを得る。
【０４１７】
【数１０５】
（１４−４）    Ｌ＝Ｓ＋Ｓ’
次に、証明用データｃと、点Ｌのｘ座標ｖｘを用いて、式１４−５の計算を行い、Ｒを得る。
【０４１８】
【数１０６】
0003613929.tif 000008
（ただし点Ｌの座標を（ｖｘ，ｖｙ）とする）
７．証明データ生成装置１１はＲを証明データ検証装置１０の受信データ記憶部１０２に返送する。
【０４１９】
８．証明データ生成装置１１において用いられるアクセスチケットｔとユーザの固有情報ｅの組み合わせが正しい場合に限り、受信したＲと検証用データＫが一致し、正しく検証が行われる。
【０４２０】
Ｒと検証用データＫとの比較方法に関しては、第１の実施例と同様の方法を用いることができる。
【０４２１】
［第１５の実施例］
本発明の第１５の実施例は第１３の実施例の変形例であり、復号を証明データ検証装置１０側で行う。
【０４２２】
本実施例では、有限体上での楕円曲線の設定方法と楕円曲線Ｅ上での暗号の構成方法、アクセスチケットｔ、及び認証用素データｕ，認証用データｃの生成方法と、それぞれの満たすべき性質は、第１３の実施例と同様である。なお、本実施例では、点Ｐの位数をｑであるとする。
【０４２３】
本実施例の証明データ生成装置の構成方法を図６に、証明データ検証装置の構成方法を図７に示す。また、本実施例の証明データ生成装置の動作を図１７に、証明データ検証装置の動作を図３３に示す。
【０４２４】
以下、本実施例の動作について説明する。
【０４２５】
１．ユーザがアクセスすることによって、証明データ検証装置１０が起動される。
【０４２６】
２．認証用データ記憶部１０４には、認証用データとしてｃが記憶されている。
【０４２７】
証明データ検証装置１０は、乱数生成部１０６によって、乱数ｒをアクセスチケット公開鍵記憶部１０１に保持されている点Ｐの位数ｑと互いに素になるように生成し、乱数記憶部１０７に記録する。
【０４２８】
次いで、乱数効果付与部１０９は、認証用素データ記憶部１０５に記憶されているデータｕを取得して、式１５−１の計算を行う。
【０４２９】
【数１０７】
（１５−１）      ｕ’＝ｒｕ
証明データ検証装置１０は、こうして生成された認証用データｕ’と、アクセスチケット公開鍵記憶部１０１に記憶されている、楕円曲線Ｅを定義するパラメータｐ，ａ，ｂを、証明データ生成装置１１中の受信データ記憶部１１１に書き込む。
【０４３０】
３．証明データ生成装置１１中の第１演算部１１２は、アクセスチケット記憶部１１３に記憶されているアクセスチケットｔを取得し、式１５−２を実行してＳを得る。
【０４３１】
【数１０８】
（１５−２）    Ｓ＝ｔｕ’
４．証明データ生成装置１１中の倍数生成部１１９は、ユーザ固有情報記憶部１１５に記憶されているユーザの固有情報ｅを取得し、式１５−３の計算を実行する。
【０４３２】
【数１０９】
（１５−３）    Ｆ（ｐ，ｅ，ａ，ｂ）
５．証明データ生成装置１１中の第２演算部１１４は、倍数生成部１１９で生成されたデータを用いて、式１５−４の計算を実行しＳ’を得る。
【０４３３】
【数１１０】
（１５−４）    Ｓ’＝Ｆ（ｐ，ｅ，ａ，ｂ）ｕ’
６．証明データ生成装置１１中の証明データ生成部１１７は、第１および第２演算部１１２、１１４からＳ’およびＳを得て、式１５−５の計算を行いＲを得る。
【０４３４】
【数１１１】
（１５−５）    Ｒ＝Ｓ＋Ｓ’
７．証明データ生成装置１１はＲを証明データ検証装置１０の受信データ記憶部１０２に返送する。
【０４３５】
８．データ検証装置１０中の乱数効果除去部１０８は、乱数記憶部１０７から先に生成した乱数ｒを取り出し、アクセスチケット公開鍵記憶部１０１から点Ｐの位数ｑを取り出して、式１５−６の計算を行う。
【０４３６】
【数１１２】
（１５−６）    ｖ＝（ｒ−１  ｍｏｄ  ｑ）Ｒ
９．証明データ検証装置１０中の検証用演算部１０３は、認証データ記憶部１０４から認証用データｃを取り出し、ｃとｖのｘ座標ｖｘとの排他的論理和Ｋ’を計算する。
【０４３７】
【数１１３】
0003613929.tif 000009
（ただし点Ｒの座標を（ｖｘ，ｖｙ）とする）
１０．証明データ生成装置１１において用いられるアクセスチケットｔとユーザの固有情報ｅの組み合わせが正しい場合に限り、計算の結果得られたＫ’と検証用データＫが一致し、正しく検証が行われる。
【０４３８】
Ｋ’と検証用データＫとの比較方法に関しては、第１の実施例と同様の方法を用いることができる。
【０４３９】
［第１６の実施例］
本発明の第１６の実施例は、第１３の実施例の変形例であり、復号を証明データ検証装置１０側で行う。第１５の実施例とは乱数効果の扱いが異なる。
【０４４０】
本実施例では、有限体上での楕円曲線の設定方法と楕円曲線Ｅ上での暗号の構成方法、アクセスチケットｔ、及び認証用素データｕ，認証用データｃの生成方法と、それぞれの満たすべき性質は、第１３の実施例と同様である。
【０４４１】
本実施例の証明データ生成装置の構成方法を図６に、証明データ検証装置の構成方法を図７に示す。また、本実施例の証明データ生成装置の動作を図１７に、証明データ検証装置の動作を図３４に示す。
【０４４２】
以下、本実施例の動作について説明する。
【０４４３】
１．ユーザがアクセスすることによって、証明データ検証装置１０が起動される。
【０４４４】
２．認証用データ記憶部１０４には、認証用データとしてｃが記憶されている。
【０４４５】
証明データ検証装置１０は、乱数生成部１０６によって、乱数ｒを生成し、乱数記憶部１０７に記録する。
【０４４６】
次いで、乱数効果付与部１０９は、認証用素データ記憶部１０５に記憶されているデータｕを取得して、式１５−１の計算を行う。
【０４４７】
【数１１４】
（１６−１）      ｕ’＝ｕ＋ｒＰ
証明データ検証装置１０は、こうして生成された認証用データｕ’と、アクセスチケット公開鍵記憶部１０１に記憶されている、楕円曲線Ｅを定義するパラメータｐ，ａ，ｂを、証明データ生成装置１１中の受信データ記憶部１１１に書き込む。
【０４４８】
３．証明データ生成装置１１中の第１演算部１１２は、アクセスチケット記憶部１１３に記憶されているアクセスチケットｔを取得し、式１６−２を実行しＳを得る。
【０４４９】
【数１１５】
（１６−２）    Ｓ＝ｔｕ’
４．証明データ生成装置１１中の倍数生成部１１９は、ユーザ固有情報記憶部１１５に記憶されているユーザの固有情報ｅを取得し、式１６−３の計算を実行する。
【０４５０】
【数１１６】
（１６−３）      Ｆ（ｐ，ｅ，ａ，ｂ）
５．証明データ生成装置１１中の第２演算部１１４は、倍数生成部１１９で生成されたデータを用いて、式１６−４の計算を実行しＳ’を得る。
【０４５１】
【数１１７】
（１６−４）    Ｓ’＝Ｆ（ｐ，ｅ，ａ，ｂ）ｕ’
６．証明データ生成装置１１中の証明データ生成部１１７は、第１および第２演算部１１２、１１４からＳ’およびＳを得て、式１６−５の計算を行いＲを得る。
【０４５２】
【数１１８】
（１６−５）    Ｒ＝Ｓ＋Ｓ’
７．証明データ生成装置１１はＲを証明データ検証装置１０の受信データ記憶部１０２に返送する。
【０４５３】
８．証明データ検証装置１０中の乱数効果除去部１０８は、乱数記憶部１０７から先に生成した乱数ｒを取り出し、まず式１６−６の計算を行う。
【０４５４】
【数１１９】
（１６−６）    ｖ＝Ｒ−ｒＹ
９．証明データ検証装置１０中の検証用演算部１０３は、認証データ記憶部１０４から認証用データｃを取り出し、ｃとｖのｘ座標ｖｘとの排他的論理和Ｋ’を計算する。
【０４５５】
【数１２０】
0003613929.tif 000010
（ただし点Ｒの座標を（ｖｘ，ｖｙ）とする）
１０．証明データ生成装置１１において用いられるアクセスチケットｔとユーザの固有情報ｅの組み合わせが正しい場合に限り、計算の結果得られたＫ’と検証用データＫが一致し、正しく検証が行われる。
【０４５６】
Ｋ’と検証用データＫとの比較方法に関しては、第１の実施例と同様の方法を用いることができる。
【０４５７】
［第１７の実施例］
本発明の第１７の実施例は、第１３の実施例の変形例であり、復号を証明データ検証装置１０側で行っている。
【０４５８】
本実施例では、有限体上での楕円曲線の設定方法と楕円曲線Ｅ上での暗号の構成方法、認証用素データｕ，認証用データｃの生成方法と、それぞれの満たすべき性質は、第１３の実施例と同様である。なお、本実施例では、点Ｐの位数をｑであるとする。また、本実施例では、アクセスチケットｔは以下の式により生成される。
【数１２１】
（１７−０）    ｔ＝Ｘ−Ｆ（ｐ，ｅ，ａ，ｂ，Ｙ）
【０４５９】
本実施例の証明データ生成装置の構成方法を図６に、証明データ検証装置の構成方法を図７に示す。また、本実施例の証明データ生成装置の動作を図１５に、証明データ検証装置の動作を図３６に示す。
【０４６０】
以下、本実施例の動作について説明する。
【０４６１】
１．ユーザがアクセスすることによって、証明データ検証装置１０が起動される。
【０４６２】
２．認証用データ記憶部１０４には、認証用データとしてｃが記憶されている。
【０４６３】
証明データ検証装置１０は、乱数生成部１０６によって、乱数ｒをアクセスチケット公開鍵記憶部１０１に保持されている点Ｐの位数ｑと互いに素になるように生成し、乱数記憶部１０７に記録する。
【０４６４】
次いで、乱数効果付与部１０９は、認証用素データ記憶部１０５に記憶されているデータｕを取得して、式１７−１の計算を行う。
【０４６５】
【数１２２】
（１７−１）      ｕ’＝ｒｕ
証明データ検証装置１０は、こうして生成された認証用データｕ’と、アクセスチケット公開鍵記憶部１０１に記憶されている、楕円曲線Ｅを定義するパラメータｐ，ａ，ｂと、公開鍵Ｙとを、証明データ生成装置１１中の受信データ記憶部１１１に書き込む。
【０４６６】
３．証明データ生成装置１１中の第１演算部１１２は、アクセスチケット記憶部１１３に記憶されているアクセスチケットｔを取得し、式１７−２を実行してＳを得る。
【０４６７】
【数１２３】
（１７−２）    Ｓ＝ｔｕ’
４．証明データ生成装置１１中の倍数生成部１１９は、ユーザ固有情報記憶部１１５に記憶されているユーザの固有情報ｅを取得し、式１７−３の計算を実行する。
【０４６８】
【数１２４】
（１７−３）    Ｆ（ｐ，ｅ，ａ，ｂ，Ｙ）
５．証明データ生成装置１１中の第２演算部１１４は、倍数生成部１１９で生成されたデータを用いて、式１７−４の計算を実行しＳ’を得る。
【０４６９】
【数１２５】
（１７−４）    Ｓ’＝Ｆ（ｐ，ｅ，ａ，ｂ，Ｙ）ｕ’
６．証明データ生成装置１１中の証明データ生成部１１７は、第１および第２演算部１１２、１１４からＳ’およびＳを得て、式１７−５の計算を行いＲを得る。
【０４７０】
【数１２６】
（１７−５）    Ｒ＝Ｓ＋Ｓ’
７．証明データ生成装置１１はＲを証明データ検証装置１０の受信データ記憶部１０２に返送する。
【０４７１】
８．データ検証装置１０中の乱数効果除去部１０８は、乱数記憶部１０７中から先に生成した乱数ｒを取り出し、アクセスチケット公開鍵記憶部１０１から点Ｐの位数ｑを取り出して、式１７−６の計算を行う。
【０４７２】
【数１２７】
（１７−６）    ｖ＝（ｒ−１  ｍｏｄ  ｑ）Ｒ
９．証明データ検証装置１０中の検証用演算部１０３は、認証データ記憶部１０４から認証用データｃを取り出し、ｃとｖのｘ座標ｖｘとの排他的論理和Ｋ’を計算する。
【０４７３】
【数１２８】
0003613929.tif 000011
（ただし点Ｒの座標を（ｖｘ，ｖｙ）とする）
１０．証明データ生成装置１１において用いられるアクセスチケットｔとユーザの固有情報ｅの組み合わせが正しい場合に限り、計算の結果得られたＫ’と検証用データＫが一致し、正しく検証が行われる。
【０４７４】
Ｋ’と検証用データＫとの比較方法に関しては、第１の実施例と同様の方法を用いることができる。
【０４７５】
［第１８の実施例］
本発明の第１８の実施例では、第１３の実施例の変形例であり、復号を証明データ検証装置１０側で行っている。
【０４７６】
本実施例では、有限体上での楕円曲線の設定方法と楕円曲線Ｅ上での暗号の構成方法、認証用素データｕ，認証用データｃの生成方法と、それぞれの満たすべき性質は、第１３の実施例と同様である。また、本実施例では、アクセスチケットｔは以下の式により生成される。
【数１２９】
（１８−０）    ｔ＝Ｘ−Ｆ（ｐ，ｅ，ａ，ｂ，Ｙ）
【０４７７】
本実施例の証明データ生成装置の構成方法を図６に、証明データ検証装置の構成方法を図７に示す。また、本実施例の証明データ生成装置の動作を図１５に、証明データ検証装置の動作を図３７に示す。
【０４７８】
以下、本実施例の動作について説明する。
【０４７９】
１．ユーザがアクセスすることによって、証明データ検証装置１０が起動される。
【０４８０】
２．認証用データ記憶部１０４には、認証用データとしてｃが記憶されている。
【０４８１】
証明データ検証装置１０は、乱数生成部１０６によって、乱数ｒを生成し、乱数記憶部１０７に記録する。
【０４８２】
次いで、乱数効果付与部１０９は、認証用素データ記憶部１０５に記憶されているデータｕを取得して、式１８−１の計算を行う。
【０４８３】
【数１３０】
（１８−１）      ｕ’＝ｕ＋ｒＰ
証明データ検証装置１０は、こうして生成された認証用データｕ’と、アクセスチケット公開鍵記憶部１０１に記憶されている、楕円曲線Ｅを定義するパラメータｐ，ａ，ｂと、公開鍵Ｙとを、証明データ生成装置１１中の受信データ記憶部１１１に書き込む。
【０４８４】
３．証明データ生成装置１１中の第１演算部１１２は、アクセスチケット記憶部１１３に記憶されているアクセスチケットｔを取得し、式１８−２を実行しＳを得る。
【０４８５】
【数１３１】
（１８−２）    Ｓ＝ｔｕ’
４．証明データ生成装置１１中の倍数生成部１１９は、ユーザ固有情報記憶部１１５に記憶されているユーザの固有情報ｅを取得し、式１８−３の計算を実行する。
【０４８６】
【数１３２】
（１８−３）      Ｆ（ｐ，ｅ，ａ，ｂ，Ｙ）
５．証明データ生成装置１１中の第２演算部１１４は、倍数生成部１１９で生成されたデータを用いて、式１８−４の計算を実行しＳ’を得る。
【０４８７】
【数１３３】
（１８−４）    Ｓ’＝Ｆ（ｐ，ｅ，ａ，ｂ，Ｙ）ｕ’
６．証明データ生成装置１１中の証明データ生成部１１７は、第１および第２演算部１１２、１１４からＳ’およびＳを得て、式１８−５の計算を行いＲを得る。
【０４８８】
【数１３４】
（１８−５）    Ｒ＝Ｓ＋Ｓ’
７．証明データ生成装置１１はＲを証明データ検証装置１０の受信データ記憶部１０２に返送する。
【０４８９】
８．証明データ検証装置１０中の乱数効果除去部１０８は、乱数記憶部１０７から先に生成した乱数ｒを取り出し、まず式１８−６の計算を行う。
【０４９０】
【数１３５】
（１８−６）    ｖ＝Ｒ−ｒＹ
９．証明データ検証装置１０中の検証用演算部１０３は、認証データ記憶部１０４から認証用データｃを取り出し、ｃとｖのｘ座標ｖｘとの排他的論理和Ｋ’を計算する。
【０４９１】
【数１３６】
0003613929.tif 000012
（ただし点Ｒの座標を（ｖｘ，ｖｙ）とする）
１０．証明データ生成装置１１において用いられるアクセスチケットｔとユーザの固有情報ｅの組み合わせが正しい場合に限り、計算の結果得られたＫ’と検証用データＫが一致し、正しく検証が行われる。
【０４９２】
Ｋ’と検証用データＫとの比較方法に関しては、第１の実施例と同様の方法を用いることができる。
【０４９３】
【発明の効果】
以上の説明から明らかなように、本発明によれば、証明用補助データ（アクセスチケット）を導入することにより、アクセス資格認証の特徴情報とユーザ固有情報とを独立させることができ、したがってプロテクト側もユーザ側も、１つの固有情報を準備しておくだけですむ。
【０４９４】
アクセスチケットは、特定のユーザの固有情報とアクセス資格認証の特徴情報とに基づいて計算されるデータであり、また、ユーザ固有情報を知らずに、アクセスチケットからアクセス資格認証の特徴情報を計算することは困難である。そして、ユーザ固有情報とアクセスチケットとの正しい組み合わせ、すなわち、ユーザ固有情報と該ユーザ固有情報に基づいて計算されたアクセスチケットの組み合わせが入力された場合に限って、正しい証明用データが計算される。したがってユーザはあらかじめ固有情報を保持し、プログラム作成者等のプロテクト者はユーザが所持する固有情報とは独立にアクセス資格認証の特徴情報を用意し、アクセスチケットをユーザの固有情報とアプリケーションプログラムの作成等に使用したアクセス資格認証の特徴情報とに応じて作成し、配布することにより、実行制御等のユーザのアクセス資格の認証を行う事ができる。
【０４９５】
また、本発明によれば、アクセス資格認証の特徴情報に、有限体上での楕円曲線上で定義された、非対称鍵暗号系を用いることにより、ＲＳＡ公開鍵暗号等を用いる場合に比べて、鍵の長さを短くしても同等の安全性が得られ、かつ処理を高速に行うことができる。
【図面の簡単な説明】
【図１】全体の構成を示す図である。
【図２】ＥｌＧａｍａｌ暗号を用いた証明データ生成装置の構成を示す図である。
【図３】第１の証明データ検証装置の構成を示す図である。
【図４】第２の証明データ検証装置の構成を示す図である。
【図５】第３の証明データ検証装置の構成を示す図である。
【図６】楕円曲線暗号を用いた証明データ生成装置の構成を示す図である。
【図７】第４の証明データ検証装置の構成を示す図である。
【図８】実施例３および５における証明データ生成装置の動作を示す図である。
【図９】実施例１、２、４における証明データ生成装置の動作を示す図である。
【図１０】実施例１における証明データ検証装置の動作を示す図である。
【図１１】実施例３における証明データ検証装置の動作を示す図である。
【図１２】実施例２における証明データ検証装置の動作を示す図である。
【図１３】実施例４における証明データ検証装置の動作を示す図である。
【図１４】実施例５における証明データ検証装置の動作を示す図である。
【図１５】実施例１２、１７、１８における証明データ生成装置の動作を示す図である。
【図１６】実施例７、９、１１における証明データ生成装置の動作を示す図である。
【図１７】実施例６、７、１０、１３、１５、１６における証明データ生成装置の動作を示す図である。
【図１８】実施例６における証明データ検証装置の動作を示す図である。
【図１９】実施例７における証明データ検証装置の動作を示す図である。
【図２０】実施例９における証明データ検証装置の動作を示す図である。
【図２１】実施例８における証明データ検証装置の動作を示す図である。
【図２２】実施例１０における証明データ検証装置の動作を示す図である。
【図２３】実施例１１における証明データ検証装置の動作を示す図である。
【図２４】実施例１２における証明データ検証装置の動作を示す図である。
【図２５】復号結果の検証方法（復号結果を直接比較する場合）を示す図である。
【図２６】復号結果の検証方法（一方向性関数を用いる場合）を示す図である。
【図２７】復号結果の検証方法（復号された値が他のデータの復号鍵である場合）を示す図である。
【図２８】復号結果の検証方法（復号された値の冗長性を検証する場合）を示す図である。
【図２９】復号結果の検証方法（復号された値がプログラムコードの場合）を示す図である。
【図３０】復号結果の検証方法（復号された値がプログラムコードを復号するための鍵である場合）を示す図である。
【図３１】実施例１３における証明データ検証装置の動作を示す図である。
【図３２】実施例１４における証明データ検証装置の動作を示す図である。
【図３３】実施例１５における証明データ検証装置の動作を示す図である。
【図３４】実施例１６における証明データ検証装置の動作を示す図である。
【図３５】実施例１４における証明データ生成装置の動作を示す図である。
【図３６】実施例１７における証明データ検証装置の動作を示す図である。
【図３７】実施例１８における証明データ検証装置の動作を示す図である。
【図１】
0003613929.tif 000015
【図２】
0003613929.tif 000016
【図３】
0003613929.tif 000017
【図４】
0003613929.tif 000018
【図５】
0003613929.tif 000019
【図６】
0003613929.tif 000020
【図７】
0003613929.tif 000021
【図８】
0003613929.tif 000022
【図９】
0003613929.tif 000023
【図１０】
0003613929.tif 000024
【図１１】
0003613929.tif 000025
【図１２】
0003613929.tif 000026
【図１３】
0003613929.tif 000027
【図１４】
0003613929.tif 000028
【図１５】
0003613929.tif 000029
【図１６】
0003613929.tif 000030
【図１７】
0003613929.tif 000031
【図１８】
0003613929.tif 000032
【図１９】
0003613929.tif 000033
【図２０】
0003613929.tif 000034
【図２１】
0003613929.tif 000035
【図２２】
0003613929.tif 000036
【図２３】
0003613929.tif 000037
【図２４】
0003613929.tif 000038
【図２５】
0003613929.tif 000039
【図２６】
0003613929.tif 000040
【図２７】
0003613929.tif 000041
【図２８】
0003613929.tif 000042
【図２９】
0003613929.tif 000043
【図３０】
0003613929.tif 000044
【図３１】
0003613929.tif 000045
【図３２】
0003613929.tif 000046
【図３３】
0003613929.tif 000047
【図３４】
0003613929.tif 000048
【図３５】
0003613929.tif 000049
【図３６】
0003613929.tif 000050
【図３７】
0003613929.tif 000051