(57)【特許請求の範囲】
【請求項１】
ユーザの権限を証明するために生成された証明用データ（Ｒ）の正当性を検証することにより、上記ユーザの権限を認証する認証装置において、
ユーザの固有情報（ｅ）を記憶する記憶手段と、
認証用データ（Ｃ）を記憶する第１の記憶手段と、
上記証明用データを生成するための制御情報（Ｌ）であって複数の必須情報からなるリストを持つものを記憶する第２の記憶手段と、
認証の特徴情報（Ｄ）と、上記記憶手段に記憶されているユーザの固有情報（ｅ）と、上記第２の記憶手段に記憶されている証明用データを生成するための制御情報（Ｌ）とに第１の演算を施して生成される認証用補助情報（ｔ）を保持する第３の記憶手段と、
上記証明用データを生成するための必須情報（Ｉ）を記憶する第４の記憶手段と、
上記制御情報（Ｌ）と、上記必須情報（Ｉ）とが、上記制御情報（Ｌ）が持つリストに上記必須情報（Ｉ）が含まれている関係を満たすことを検査する必須情報検査手段と、
上記必須情報検査手段の検査結果が上記制御情報（Ｌ）が持つリストに上記必須情報（Ｉ）が含まれている関係を満たす場合にのみ、少なくとも上記認証用データ（Ｃ）と上記制御情報（Ｌ）と上記必須情報（Ｉ）と上記認証用補助情報（ｔ）とに対して第２の演算を施して証明用データ（Ｒ）を生成する証明用データ生成手段と、
上記証明用データ生成手段により生成された証明用データが上記認証の特徴情報（Ｄ）に基づいて生成されていることを検証する検証手段とを有し、
上記認証用補助情報（ｔ）を生成するために予め定められた第１の演算と、上記証明用データ（Ｒ）を生成するために予め定められた第２の演算とを、上記認証の特徴情報（Ｄ）、ユーザの固有情報（ｅ）、上記制御情報（Ｌ）、上記認証用データ（Ｃ）及び上記必須情報（Ｉ）が対応する場合に上記検証手段が上記証明用データ（Ｒ）を正当なものと検証するように選定し、
さらに上記制御情報（Ｌ）は、複数の必須情報（Ｉ）の各々との間で上記制御情報（Ｌ）が持つリストに上記必須情報（Ｉ）が含まれている関係を満たすように選定されていることを特徴とする認証装置。
【請求項２】
上記資格認証の特徴情報が第１の復号鍵であり、上記必須情報が第２の復号鍵であり、上記認証用データが、適当なデータを、上記２つの復号鍵に対応する暗号鍵を用いて暗号化したものであり、上記検証手段は、上記証明用データ生成手段が生成する上記証明用データが、認証用データを正しく復号したものであることを検証する請求項１記載の認証装置。
【請求項３】
ユーザの権限を証明するために生成された証明用データ（Ｒ）の正当性を検証することにより、上記ユーザの権限を認証する認証装置において、
ユーザの固有情報（ｅ）を記憶する記憶手段と、
認証用データ（Ｃ）を記憶する第１の記憶手段と、
上記証明用データを生成するための制御情報（Ｌ）であって複数の必須情報からなるリストを持つものを記憶する第２の記憶手段と、
認証の特徴情報（Ｄ）と、上記記憶手段に記憶されているユーザの固有情報（ｅ）と、上記第２の記憶手段に記憶されている証明用データを生成するための制御情報（Ｌ）とに第１の演算を施して生成される認証用補助情報（ｔ）を保持する第３の記憶手段と、
上記証明用データを生成するための必須情報（Ｉ）を記憶する第４の記憶手段と、
上記必須情報の検査情報（Ｍ）を記憶する第５の記憶手段と、
上記第１の記憶手段に保持されている認証用データと、上記第４の記憶手段に記憶されている必須情報とに所定の演算を施した結果が、上記第５の記憶手段に記憶されている検査情報と所定の関係にあることを検査する第１の必須情報検査手段と、
上記制御情報（Ｌ）と、上記必須情報（Ｉ）とが、上記制御情報（Ｌ）のリストに上記必須情報（Ｉ）が含まれている関係を満たすことを検査する第２の必須情報検査手段と、
上記第１の必須情報検査手段の検査結果が上記第１の記憶手段に保持されている認証用データと、上記第４の記憶手段に記憶されている必須情報とに所定の演算を施した結果が、上記第５の記憶手段に記憶されている検査情報と所定の関係にあり、かつ上記第２の必須情報検査手段の検査結果が、上記制御情報（Ｌ）が持つリストに上記必須情報（Ｉ）が含まれている関係を満たす場合においてのみ、少なくとも上記認証用データ（Ｃ）と上記制御情報（Ｌ）と上記認証用補助情報（ｔ）とに対して第２の演算を施して証明用データ（Ｒ）を生成する証明用データ生成手段と、
上記証明用データ生成手段により生成された証明用データが上記認証の特徴情報（Ｄ）に基づいて生成されていることを検証する検証手段とを有し、
上記認証用補助情報（ｔ）を生成するために予め定められた第１の演算と、上記証明用データ（Ｒ）を生成するために予め定められた第２の演算とを、上記認証の特徴情報（Ｄ）、ユーザの固有情報（ｅ）、上記制御情報（Ｌ）及び上記認証用データ（Ｃ）が対応する場合に上記検証手段が上記証明用データ（Ｒ）を正当なものと検証するように選定し、
さらに上記制御情報（Ｌ）は、複数の必須情報（Ｉ）の各々との間で上記制御情報（Ｌ）が持つリストに上記必須情報（Ｉ）が含まれている関係を満たすように選定されていることを特徴とする認証装置。
【請求項４】
上記必須情報と上記制御情報とが満たすべき所定の関係が、上記必須情報に記載されている情報が、上記制御情報中にも出現していることである請求項１、２または３記載の認証装置。
【請求項５】
認証される権限が、デジタルデータあるいはプログラムの利用権であり、上記必須情報と上記制御情報とに記載される情報が、利用権が認証されるデジタルデータあるいはプログラムの識別子である請求項１、２、３または４記載の認証装置。
【請求項６】
認証される権限が、デジタルデータあるいはプログラムの利用権であり、上記必須情報と上記制御情報とに記載される情報が、利用権が認証されるデジタルデータあるいはプログラムの属性情報である請求項１、２、３または４記載の認証装置。
【請求項７】
ユーザの権限を証明するために生成された証明用データ（Ｒ）の正当性を検証することにより、上記ユーザがアクセスしようとしているアクセス対象に関する上記ユーザの権限を認証する認証装置において、
ユーザの固有情報（ｅ）を記憶する記憶手段と、
認証用データ（Ｃ）を記憶する第１の記憶手段と、
ユーザに割り当てられた第１の権限属性（Ｌ）であって複数の第２の権限属性からなるリストを持つものを記憶する第２の記憶手段と、
認証の特徴情報（Ｄ）と、上記記憶手段に記憶されているユーザの固有情報（ｅ）と、上記第２の記憶手段に記憶されている上記第１の権限属性（Ｌ）とに第１の演算を施して生成される認証用補助情報（ｔ）を保持する第３の記憶手段と、
上記アクセス対象のアクセスに必要な第２の権限属性（Ｉ）を記憶する第４の記憶手段と、
上記第１の権限属性（Ｌ）と、上記第２の権限属性（Ｉ）とが、上記第１の権限属性（Ｌ）が持つリストに上記第２の権限属性（Ｉ）が含まれている関係を満たすことを検査する権限属性検査手段と、
上記権限属性検査手段の検査結果が上記第１の権限属性（Ｌ）が持つリストに上記第２の権限属性（Ｉ）が含まれている関係を満たす場合にのみ、少なくとも上記認証用データ（Ｃ）と上記第１の権限属性（Ｌ）と上記第２の権限属性（Ｉ）と上記認証用補助情報（ｔ）とに対して第２の演算を施して証明用データ（Ｒ）を生成する証明用データ生成手段と、
上記証明用データ生成手段により生成された証明用データが上記認証の特徴情報（Ｄ）に基づいて生成されていることを検証する検証手段とを有し、
上記認証用補助情報（ｔ）を生成するために予め定められた第１の演算と、上記証明用データ（Ｒ）を生成するために予め定められた第２の演算とを、上記認証の特徴情報（Ｄ）、ユーザの固有情報（ｅ）、上記第１の権限属性（Ｌ）、上記認証用データ（Ｃ）及び上記第２の権限属性（Ｉ）が対応する場合に上記検証手段が上記証明用データ（Ｒ）を正当なものと検証するように選定し、
さらに上記制御情報（Ｌ）は、複数の必須情報（Ｉ）の各々との間で上記第１の権限属性（Ｌ）が持つリストに上記第２の権限属性（Ｉ）が含まれている関係を満たすように選定されていることを特徴とする認証装置。
【請求項８】
ユーザの権限を証明するために生成された証明用データ（Ｒ）の正当性を検証することにより、上記ユーザがアクセスしようとしているアクセス対象に関する上記ユーザの権限を認証する認証方法において、
ユーザ固有情報記憶手段（２０５）がユーザの固有情報（ｅ）を記憶する記憶ステップと、
認証データ記憶手段（２０１）が認証用データ（Ｃ）を記憶する第１の記憶ステップと、
第１の権限属性記憶手段（２０３）がユーザに割り当てられた第１の権限属性（Ｌ）であって複数の第２の権限属性からなるリストを持つものを記憶する第２の記憶ステップと、
認証の特徴情報（Ｄ）と、上記記憶ステップで記憶されている上記ユーザの固有情報（ｅ）と、上記第２の記憶ステップで記憶されている上記第１の権限属性（Ｌ）とに第１の演算を施して生成される認証用補助情報（ｔ）を認証用補助情報記憶手段（２０２）が保持する第３の記憶ステップと、
第２の権限属性記憶手段（２０１）が上記アクセス対象のアクセスに必要な第２の権限属性（Ｉ）を記憶する第４の記憶ステップと、
上記第１の権限属性（Ｌ）と、上記第２の権限属性（Ｉ）とが、上記第１の権限属性（Ｌ）が持つリストに上記第２の権限属性（Ｉ）が含まれている関係を満たすことを権限属性検査部（２０４）が検査する権限属性検査ステップと、
上記権限属性検査ステップの検査結果が上記第１の権限属性（Ｌ）が持つリストに上記第２の権限属性（Ｉ）が含まれている関係を満たす場合にのみ、証明データ生成手段（２０９）が少なくとも上記認証用データ（Ｃ）と上記第１の権限属性（Ｌ）と上記第２の権限属性（Ｉ）と上記認証用補助情報（ｔ）とに対して第２の演算を施して証明用データ（Ｒ）を生成する証明用データ生成ステップと、
上記証明用データ生成ステップで生成された証明用データが上記認証の特徴情報（Ｄ）に基づいて生成されていることを検証する検証手段（１０８）が行う検証ステップとを有し、
上記認証用補助情報（ｔ）を生成するために予め定められた第１の演算と、上記証明用データ（Ｒ）を生成するために予め定められた第２の演算とを、上記認証の特徴情報（Ｄ）、ユーザの固有情報（ｅ）、上記第１の権限属性（Ｌ）、上記認証用データ（Ｃ）及び上記第２の権限属性（Ｉ）が対応する場合に上記検証手段が上記証明用データ（Ｒ）を正当なものと検証するように選定し、
さらに上記第１の権限属性（Ｌ）は、複数の第２の権限属性（Ｉ）の各々との間で上記第１の権限属性（Ｌ）が持つリストに上記第２の権限属性（Ｉ）が含まれている関係を満たすように選定されていることを特徴とする認証方法。
【請求項９】
証明装置によりユーザの権限を証明するために生成された証明用データ（Ｒ）の正当性を検証装置により検証して上記ユーザの権限を認証する認証システムで用いられる上記検証装置において、
認証用データ（Ｃ）を記憶する認証用データ記憶手段（１０６）と、
上記証明用データ（Ｒ）を生成するための必須情報（Ｉ）を記憶する必須情報記憶手段（１０２）とを有し、
証明用データを生成するための制御情報（Ｌ）であって複数の必須情報からなるリストを持つ上記制御情報、ユーザの固有情報（ｅ）および、認証用補助情報（ｔ）（この認証用補助情報（ｔ）は認証の特徴情報（Ｄ）とユーザの固有情報（ｅ）と上記証明用データを生成するための制御情報（Ｌ）とに第１の演算を施して生成されるものである）を保持する上記証明装置（２０）に、上記認証用データ（Ｃ）および上記必須情報（Ｉ）を送出し、
上記証明装置（２０）に保持されている制御情報（Ｌ）と上記証明装置（２０）に送出された必須情報（Ｉ）とが、上記制御情報（Ｌ）が持つリストに上記必須情報（Ｉ）が含まれている関係を満たすときに、上記証明装置（２０）から送られてくる、少なくとも上記認証用データ（Ｃ）、上記制御情報（Ｌ）、上記必須情報（Ｉ）および認証用補助情報（ｔ）とに対して第２の演算を施して上記証明装置（２０）において生成された証明用データ（Ｒ）を受け取り、さらに、
上記証明用データ（Ｒ）が上記認証の特徴情報（Ｄ）に基づいて生成されていることを検証する検証手段（１０８）を有し、
上記証明装置（２０）における上記認証用補助情報（ｔ）を生成するために予め定められた第１の演算と、上記証明用データ（Ｒ）を生成するために予め定められた第２の演算とを、上記認証の特徴情報（Ｄ）、ユーザの固有情報（ｅ）、上記制御情報（Ｌ）、上記認証用データ（Ｃ）及び上記必須情報（Ｉ）が対応する場合に上記検証手段が上記証明用データ（Ｒ）を正当なものと検証するように選定し、
上記検証手段は、上記証明装置（２０）から送られた上記証明用データ（Ｒ）が正当な証明用データ（Ｒ）でない場合には当該証明用データ（Ｒ）は上記認証の特徴情報（Ｄ）に基づいて生成されたものでないと判定し、
さらに上記制御情報（Ｌ）は、複数の検証装置のそれぞれの必須情報（Ｉ）との間で上記制御情報（Ｌ）が持つリストに上記必須情報（Ｉ）が含まれている関係を満たすように選定されていることを特徴とする検証装置。
【請求項１０】
証明装置によりユーザの権限を証明するために生成された証明用データ（Ｒ）の正当性を検証装置により検証して上記ユーザの権限を認証する認証システムで実行される検証方法において、
認証用データ記憶手段（１０６）が、認証用データ（Ｃ）を記憶するステップと、
必須情報記憶手段（１０２）が、上記証明用データ（Ｒ）を生成するための必須情報（Ｉ）を記憶するステップと、
証明用データを生成するための制御情報（Ｌ）であって複数の必須情報からなるリストを持つ上記制御情報、ユーザの固有情報（ｅ）および、認証用補助情報（ｔ）（この認証用補助情報（ｔ）は認証の特徴情報（Ｄ）とユーザの固有情報（ｅ）と上記証明用データを生成するための制御情報（Ｌ）とに第１の演算を施して生成されるものである）を保持する上記証明装置（２０）に、上記認証用データ（Ｃ）および上記必須情報（Ｉ）を送出するステップと、
上記証明装置（２０）に保持されている制御情報（Ｌ）と上記証明装置（２０）に送出された必須情報（Ｉ）とが、上記制御情報（Ｌ）が持つリストに上記必須情報（Ｉ）が含まれている関係を満たすときに、上記証明装置（２０）から送られてくる、少なくとも上記認証用データ（Ｃ）、上記制御情報（Ｌ）、上記必須情報（Ｉ）および認証用補助情報（ｔ）とに対して第２の演算を施して上記証明装置（２０）において生成された証明用データ（Ｒ）を受け取るステップと、
検証手段（１０８）が、上記証明用データ（Ｒ）が上記認証の特徴情報（Ｄ）に基づいて生成されていることを検証するステップとを有し、
上記証明装置（２０）における上記認証用補助情報（ｔ）を生成するために予め定められた第１の演算と、上記証明用データ（Ｒ）を生成するために予め定められた第２の演算とを、上記認証の特徴情報（Ｄ）、ユーザの固有情報（ｅ）、上記制御情報（Ｌ）、上記認証用データ（Ｃ）及び上記必須情報（Ｉ）が対応する場合に上記検証手段が上記証明用データ（Ｒ）を正当なものと検証するように選定し、
上記検証手段は、上記証明装置（２０）から送られた上記証明用データ（Ｒ）が正当な証明用データ（Ｒ）でない場合には当該証明用データ（Ｒ）は上記認証の特徴情報（Ｄ）に基づいて生成されたものでないと判定し、
さらに上記制御情報（Ｌ）は、複数の検証装置のそれぞれの必須情報（Ｉ）との間で上記制御情報（Ｌ）が持つリストに上記必須情報（Ｉ）が含まれている関係を満たすように選定されていることを特徴とする検証方法。
【請求項１１】
証明装置によりユーザの権限を証明するために生成された証明用データ（Ｒ）の正当性を検証装置により検証して上記ユーザの権限を認証する認証システムで用いられる上記証明装置において、
ユーザの固有情報（ｅ）を記憶する記憶手段（２０５）と、
上記検証装置（１０）から送られてくる認証用データ（Ｃ）を記憶する認証用データ記憶手段（２０１）と、
上記証明用データを生成するための制御情報（Ｌ）であって複数の必須情報からなるリストを持つものを記憶する制御情報記憶手段（２０３）と、
認証の特徴情報（Ｄ）と、上記記憶手段に記憶されているユーザの固有情報（ｅ）と、上記第２の記憶手段に記憶されている証明用データを生成するための制御情報（Ｌ）とに第１の演算を施して生成される認証用補助情報（ｔ）を保持する認証用補助情報記憶手段（２０２）と、
上記証明用データ（Ｒ）を生成するための必須情報（Ｉ）を上記検証装置から受け取って記憶する必須情報記憶手段（２０１）と、
上記制御情報（Ｌ）と、上記必須情報（Ｉ）とが、上記制御情報（Ｌ）が持つリストに上記必須情報（Ｉ）が含まれている関係を満たすことを検査する必須情報検査手段（２０４）と、
上記必須情報検査手段（２０４）の検査結果が上記制御情報（Ｌ）が持つリストに上記必須情報（Ｉ）が含まれている関係を満たす場合にのみ、少なくとも上記認証用データ（Ｃ）と上記制御情報（Ｌ）と上記必須情報（Ｉ）と上記認証用補助情報（ｔ）とに対して第２の演算を施して証明用データ（Ｒ）を生成する証明用データ生成手段（２０９）とを有し、
上記生成した証明用データ（Ｒ）を前記証明用データ（Ｒ）が上記認証の特徴情報（Ｄ）に基づいて生成されていることを検証する検証手段を有する上記検証装置（１０）に送出し、
上記認証用補助情報（ｔ）を生成するために予め定められた第１の演算と、上記証明用データ（Ｒ）を生成するために予め定められた第２の演算とを、上記認証の特徴情報（Ｄ）、ユーザの固有情報（ｅ）、上記制御情報（Ｌ）、上記認証用データ（Ｃ）及び上記必須情報（Ｉ）が対応する場合に上記検証手段が上記証明用データ（Ｒ）を正当なものと検証するように選定し、
さらに上記制御情報（Ｌ）は、複数の検証装置のそれぞれの必須情報（Ｉ）との間で上記制御情報（Ｌ）が持つリストに上記必須情報（Ｉ）が含まれている関係を満たすように選定されていることを特徴とする証明装置。
【請求項１２】
証明装置によりユーザの権限を証明するために生成された証明用データ（Ｒ）の正当性を検証装置により検証して上記ユーザの権限を認証する認証システムで実行される証明方法において、
ユーザ固有情報記憶手段（２０５）がユーザの固有情報（ｅ）を記憶する記憶ステップと、
認証用データ記憶手段（２０１）が、上記検証装置（１０）から送られてくる認証用データ（Ｃ）を記憶するステップと、
制御情報記憶手段（２０３）が、上記証明用データを生成するための制御情報（Ｌ）であって複数の必須情報から成るリストを持つものを記憶するステップと、
認証用補助情報記憶手段（２０２）が、認証の特徴情報（Ｄ）と、上記記憶ステップで記憶されている上記ユーザの固有情報（ｅ）と、上記第２の記憶手段に記憶されている証明用データを生成するための制御情報（Ｌ）とに第１の演算を施して生成される認証用補助情報（ｔ）を保持するステップと、
必須情報記憶手段（２０１）が、上記証明用データ（Ｒ）を生成するための必須情報（Ｉ）を上記検証装置から受け取って記憶するステップと、
必須情報検査手段（２０４）が、上記制御情報（Ｌ）と、上記必須情報（Ｉ）とが、上記制御情報（Ｌ）が持つリストに上記必須情報（Ｉ）が含まれている関係を満たすことを検査するステップと、
上記必須情報検査手段（２０４）の検査結果が上記制御情報（Ｌ）が持つリストに上記必須情報（Ｉ）が含まれている関係を満たす場合にのみ、証明用データ生成手段（２０９）が少なくとも上記認証用データ（Ｃ）と上記制御情報（Ｌ）と上記必須情報（Ｉ）と上記認証用補助情報（ｔ）とに対して第２の演算を施して証明用データ（Ｒ）を生成するステップと、
上記証明用データ（Ｒ）を前記証明用データ（Ｒ）が上記認証の特徴情報（Ｄ）に基づいて生成されていることを検証する検証手段を有する上記検証装置（１０）に送出するステップとを有し、
上記認証用補助情報（ｔ）を生成するために予め定められた第１の演算と、上記証明用データ（Ｒ）を生成するために予め定められた第２の演算とを、上記認証の特徴情報（Ｄ）、ユーザの固有情報（ｅ）、上記制御情報（Ｌ）、上記認証用データ（Ｃ）及び上記必須情報（Ｉ）が対応する場合に上記検証手段が上記証明用データ（Ｒ）を正当なものと検証するように選定し、
さらに上記制御情報（Ｌ）は、複数の検証装置のそれぞれの必須情報（Ｉ）との間で上記制御情報（Ｌ）が持つリストに上記必須情報（Ｉ）が含まれている関係を満たすように選定されていることを特徴とする証明方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、暗復号を応用した、デジタルデータやサービスに対するアクセス資格認証技術に関する。
【０００２】
【背景技術】
ユーザのアクセス権を認証する方法は、大きく以下の２つに類別することができる。
【０００３】
▲１▼アクセス制御リストを使う方法
アクセス権の検証器は、アクセスの対象物毎に、該対象物に対してアクセス可能なユーザのリスト（アクセス制御リスト）をもち、ユーザからのアクセス要求があった場合に、ユーザがアクセス制御リストに入っているかを調べて、アクセスの可否を決定する。
【０００４】
▲２▼ケーパビリティ（ｃａｐａｂｉｌｉｔｙ）を使う方法
ユーザが、アクセスの対象物に対するアクセス資格を表すデータ（ケーパビリティ）を持っており、ユーザは、アクセスを要求する際にケーパビリティを所持していることをアクセス権の検証器に証明し、アクセス権の検証器はケーパビリティの所持が正しく証明されたことをチェックして、アクセスの可否を決定する。
【０００５】
アクセスの対象物が、デジタルデータや計算機上で動作するアプリケーションのようなデジタルコンテンツの場合、前者の方法には致命的な問題がある。
【０００６】
デジタルコンテンツは、複製が容易であるために、オリジナルに対するアクセス権は正しく認証できても、複製されたデジタルコンテンツに対するアクセス権の認証はできない。
【０００７】
この問題を解決するために、デジタルコンテンツとアクセス権の検証器とアクセス制御リストを不可分にしておき、複製を作るとデジタルコンテンツとともに検証器とアクセス制御リストも複製されるよう構成することもできるが、この場合、アクセス制御リストの変更があった場合に、すべてのデジタルコンテンツに付随するアクセス制御リストを変更するという事実上不可能な作業を行なわなければならない。
【０００８】
したがって、デジタルコンテンツのアクセス権認証に有効な手段は、ケーパビリティを使う方法になるが、これにも問題がある。
【０００９】
ケーパビリティはアクセス資格を表すデータであり、複製が可能である。あるデジタルコンテンツに対するケーパビリティを持つユーザがケーパビリティを複製し、アクセスしてはならない第三者に複製を渡すと、その第三者も該デジタルコンテンツにアクセスすることが可能になる。
【００１０】
この問題を解決したものに、特願平８−６２０７６号において提案された手法がある。特願平８−６２０７６号に記載されたアクセス制御装置は、デジタルコンテンツに対するアクセス権の所持を証明する証明装置と、証明装置による証明を検証する検証装置からなる。
【００１１】
証明装置は、ユーザ毎に違うユーザ固有情報をユーザに秘密に保持している。デジタルコンテンツに対するケーパビリティは、ユーザ固有情報を使ってマスクが施された形でユーザに配布される。マスクされたケーパビリティをアクセスチケットと呼ぶ。
【００１２】
証明装置は、アクセスチケットと格納しているユーザ固有情報とを利用して、ケーパビリティを所持していることを証明する。アクセスチケットはユーザ毎に違う値でマスクされているので、複製して第三者に渡しても、該第三者はその複製を使ってケーパビリティを所持することを証明できない。
【００１３】
したがって、特願平８−６２０７６号の手法は、ケーパビリティをユーザに配布する方法であって、しかもケーパビリティの複製による不正者のアクセスを防ぐことが可能なものである。
【００１４】
特願平８−６２０７６号のアクセス制御装置の詳細を以下に述べる。
【００１５】
特願平８−６２０７６の検証装置は、暗号化されたデジタルコンテンツと、その復号鍵ＫをＲＳＡ（Ｒｉｖｅｓｔ−Ｓｈａｍｉｒ−Ａｄｌｅｍａｎ）法数ｎ、暗号鍵Ｅで暗合化した暗号化鍵Ｋ*（＝ＫE  ｍｏｄ  ｎ）を持っている。証明装置は、巾乗剰余の演算機能と一方向性ハッシュｆ（ｘ；ｙ）の計算機能を持ったＩＣカードを持っている。ＩＣカードの中には、ユーザ固有情報ｅが蓄積されている。
【００１６】
ＲＳＡ法数ｎ、暗号鍵Ｅに対する復号鍵がＤが、デジタルコンテンツをアクセスするためのケーパビリティである。アクセスチケットｔは、
【００１７】
【数１】
ｔ＝Ｄ−ｆ（ｄ；ｎ）
という値のデータである。
【００１８】
ケーパビリティの所持は、証明装置がＫ*を正しく復号し、デジタルコンテンツの復号鍵Ｋを取出すことができることで証明される。
【００１９】
▲１▼検証装置は、乱数ｒを生成する。
▲２▼検証装置は、Ｃ＝ｒEＫ*  ｍｏｄ  ｎを計算し、ｎとＣを証明装置に送る。
▲３▼証明装置は、ＩＣカード内でＲ1＝Ｃf(d;n)  ｍｏｄ  ｎを計算する。
▲４▼証明装置は、Ｒ2＝Ｃt  ｍｏｄ  ｎを計算する。
▲５▼証明装置は、Ｒ＝Ｒ1Ｒ2  ｍｏｄ  ｎを計算し、検証装置に送る。
▲６▼検証装置は、ｒ-1ｒ≡１  ｍｏｄ  ｎとなるｒ-1を計算し、Ｋ’＝ｒ-1Ｒ  ｍｏｄ  ｎを計算する。
【００２０】
上記の手順が正しく行われれば、Ｋ≡Ｋ’  ｍｏｄ  ｎとなり、ケーパビリティの所持が証明されることは、以下の式からわかる。
【００２１】
【数２】
Ｋ’≡ｒ-1Ｒ
≡ｒ-1Ｒ1Ｒ2
≡ｒ-1Ｃf(d;n)Ｃt
≡ｒ-1Ｃf(d;n)+t
≡ｒ-1ＣD
≡ｒ-1（ｒEＫ*）D
≡ｒ-1（ｒEＫE）D
≡ｒ-1ｒＫ
≡Ｋ                    ｍｏｄ  ｎ
この方式では、ユーザがユーザ毎にｅの違うＩＣカードを持てば、あるデジタルコンテンツにアクセスするためのアクセスチケットは、ユーザ毎に違うものになる。他人のアクセスチケットをコピーしてもそれを使ってケーパビリティの所持を証明することはできない。
【００２２】
【発明が解決しようとする課題】
上記に述べたように、特願平８−６２０７６号で提案されている手法は、ケーパビリティをユーザに配布するための改善された方法であるが、ケーパビリティの設定の自由度が限られているという問題がある。
【００２３】
特願平８−６２０７６号の手法においてケーパビリティは、ＲＳＡの復号鍵Ｄである。このケーパビリティは、Ｋ*を作るときに利用したＲＳＡ公開鍵がＤに対応したものであるようなデジタルコンテンツに対して、アクセス権を持つことを示す。このことは、ケーパビリティＤ1でアクセスできるデジタルコンテンツと、それとことなるケーパビリティＤ2でアクセスできるデジタルコンテンツが重複しないことを要求する。このような制限のあるケーパビリティを使った場合、ユーザ毎のアクセスできるデジタルコンテンツの範囲が複雑に入り組んだ情況に対応するのは、非常に難しい。
【００２４】
たとえば、以下のような場合を考える。
【００２５】
▲１▼ユーザＡのアクセスできるデジタルコンテンツの集合ＳAは、ユーザＢのアクセスできるデジタルコンテンツの集合ＳBの部分集合である。
【００２６】
▲２▼ユーザＡのアクセスできるデジタルコンテンツの集合ＳAと、ユーザＢのアクセスできるデジタルコンテンツの集合ＳBは一致しないが、空集合でない交わりを持つ。
【００２７】
このような場合、特願平８−６２０７６号の手法では、ユーザＡが持つ種々のデジタルコンテンツに対するアクセス権を単一のケーパビリティＤAで、ユーザＢが持つ種々のデジタルコンテンツに対するアクセス権を単一のケーパビリティＤBで表現することはできない。そのかわり、例えば、▲１▼の例では、
（１）ＳAに対するアクセス権の範囲を表すケーパビリティＤ1
（２）ＳB−ＳAに対するアクセス権の範囲を表すケーパビリティＤ2
を用意して、ユーザＡはケーパビリティＤ1のアクセスチケットを持ち、ユーザＢはケーパビリティＤ1のアクセスチケットとケーパビリティＤ2のアクセスチケットの両方を持つようにしなければならない。
【００２８】
また、▲２▼の例では、
（１）ＳA∩ＳBに対するアクセス権の範囲を表すケーパビリティＤ1
（２）ＳA−ＳBに対するアクセス権の範囲を表すケーパビリティＤ2
（３）ＳB−ＳAに対するアクセス権の範囲を表すケーパビリティＤ3
を用意して、ユーザＡはケーパビリティＤ1のアクセスチケットとケーパビリティＤ2のアクセスチケットを持ち、ユーザＢはケーパビリティＤ1のアクセスチケットとケーパビリティＤ3のアクセスチケットを持つようにしなければならない。
【００２９】
多くのユーザのアクセス権の間に上記の例のような複雑な関係が存在しえる場合、特願平８−６２０７６号の手法では、ひとつのデジタルコンテンツに対してひとつのケーパビリティを用意し、各ユーザは自分がアクセスできるすべてのデジタルコンテンツと同じ数のアクセスチケットを持つことになる。デジタルコンテンツの数が多くなれば、ケーパビリティを配布する側の管理コストや、ユーザが持つアクセスチケットの管理コストが膨大になってしまう。
【００３０】
例えば、オフィスにおける文書アクセス権制御では、管理すべきデジタルコンテンツは数十万のオーダーであり、個人がアクセスできるデジタルコンテンツは数万のオーダーになることが予想されるが、ケーパビリティを配布する側がこれらすべてのケーパビリティを管理し、ユーザが数万にのぼるアクセスチケットを管理することは、非常に難しい。
【００３１】
本発明は、以上の事情を考慮してなされたものであり、アクセスチケットを用いてケーパビリティを配布しながら、しかも、アクセスチケットの管理が容易になるようにすることを目的としている。
【００３２】
【課題を解決するための手段】
本発明によれば、上述の目的を達成するために、ユーザの権限を証明するために生成された証明用データ（Ｒ）の正当性を検証することにより、上記ユーザの権限を認証する認証装置に、認証用データ（Ｃ）を記憶する第１の記憶手段と、上記証明用データを生成するための制御情報（Ｌ）を記憶する第２の記憶手段と、認証の特徴情報（Ｄ）と上記第２の記憶手段に記憶されている証明用データを生成するための制御情報（Ｌ）とに所定の演算を施して生成される認証用補助情報（ｔ）を保持する第３の記憶手段と、上記証明用データを生成するための必須情報（Ｉ）を記憶する第４の記憶手段と、上記制御情報（Ｌ）と、上記必須情報（Ｉ）が所定の関係を満たすことを検査する必須情報検査手段と、上記必須情報検査手段の検査結果に従って、少なくとも上記認証用データ（Ｃ）、上記制御情報（Ｌ）、上記必須情報（Ｉ）および上記認証用補助情報（ｔ）を用いて証明用データ（Ｒ）を生成する証明用データ生成手段と、上記証明用データ生成手段により生成された証明用データが上記認証の特徴情報（Ｄ）に基づき生成されたものであるかどうかに依存する処理を行う検証手段とを設け、上記証明用データ生成手段は、正当な上記認証用データ（Ｃ）、正当な上記制御情報（Ｌ）、正当な上記必須情報（Ｉ）および正当な上記認証用補助情報（ｔ）が与えられた時のみ正当な証明用データ（Ｒ）を生成するようになっている。
【００３３】
この構成においては、特願平８−６２０７６号の手法のように認証の特徴情報をケーパビリティにすることなく、制御情報が、ユーザが持つケーパビリティの範囲を規定する情報を含み、必須情報が、コンテンツが必要とするケーパビリティを規定する情報を含むよう構成することにより、制御情報にユーザが持つケーパビリティの範囲を自由に設定でき、かつ、上記必須情報検査手段で、コンテンツが必要とするケーパビリティをユーザが持つことを検査することができる。
【００３４】
また、ユーザによる不正な制御情報や不正な必須情報の使用は、正当な証明用データ（Ｒ）の生成を不能にするので、制御情報や必須情報を差し替えるという攻撃に対して安全である。
【００３５】
また、本発明によれば、上述の目的を達成するために、ユーザの権限を証明するために生成された証明用データ（Ｒ）の正当性を検証することにより、上記ユーザの権限を認証する認証装置に、認証用データ（Ｃ）を記憶する第１の記憶手段と、上記証明用データを生成するための制御情報（Ｌ）を記憶する第２の記憶手段と、認証の特徴情報（Ｄ）と上記第２の記憶手段に記憶されている証明用データを生成するための制御情報（Ｌ）とに所定の演算を施して生成される認証用補助情報（ｔ）を保持する第３の記憶手段と、上記証明用データを生成するための必須情報（Ｉ）を記憶する第４の記憶手段と、上記必須情報の検査情報を記憶する第５の記憶手段と、上記第１の記憶手段に保持されている認証用データと、上記第４の記憶手段に記憶されているアクセス資格認証の必須情報とに所定の演算を施した結果が、上記第５の記憶手段に記憶されている検査情報と所定の関係にあることを検査する第１の必須情報検査手段と、上記制御情報（Ｌ）と、上記必須情報（Ｉ）が所定の関係を満たすことを検査する第２の必須情報検査手段と、上記第１、２の必須情報検査手段の検査結果に従って、少なくとも上記認証用データ（Ｃ）、上記制御情報（Ｌ）および上記認証用補助情報（ｔ）を用いて証明用データ（Ｒ）を生成する証明用データ生成手段と、上記証明用データ生成手段により生成された証明用データが上記認証の特徴情報（Ｄ）に基づき生成されたものであるかどうかに依存する処理を行う検証手段とを設け、上記証明用データ生成手段は、正当な上記認証用データ（Ｃ）、上記制御情報（Ｌ）および上記認証用補助情報（ｔ）が与えられた時のみ正当な証明用データ（Ｒ）を生成するようにしている。
【００３６】
この構成においても、特願平８−６２０７６号の手法のように認証の特徴情報をケーパビリティにすることなく、制御情報が、ユーザが持つケーパビリティの範囲を規定する情報を含み、必須情報が、コンテンツが必要とするケーパビリティを規定する情報を含むよう構成することにより、制御情報にユーザが持つケーパビリティの範囲を自由に設定でき、かつ、上記必須情報検査手段で、コンテンツが必要とするケーパビリティをユーザが持つことを検査することができる。
【００３７】
また、ユーザによる不正な必須情報の使用が行われていないことは第１の必須情報検査手段でチェックされ、ユーザによる不正な制御情報の使用は、正当な証明用データ（Ｒ）の生成を不能にするので、制御情報や必須情報を差し替えるという攻撃に対して安全である。
【００３８】
なお、本発明は、方法やコンピュータプログラム製品としても実現できる。
【００３９】
【発明の実施の態様】
以下、本発明の実施例について説明する。
【００４０】
［実施例１］
実施例１は、本発明を応用した、アクセス資格認証装置である。実施例１は、証明装置と検証装置の２つからなる。検証装置は、アクセス資格が認証されるデジタルコンテンツに付随した装置であり、デジタルコンテンツの利用者が、正当なアクセス権を持つことを検証する。証明装置は、デジタルコンテンツの利用者が保持する装置であり、検証装置に対して、利用者が正当なアクセス権を持つことを証明する。
【００４１】
実施例１の検証装置の構成を図１に示し、証明装置の構成方法を図２に示す。図１において、検証装置１０は、アクセスチケット公開鍵記憶部１０１、必須情報記憶部１０２、認証用素データ記憶部１０３、乱数生成部１０４、乱数記憶部１０５、認証用データ記憶部１０６、受信データ記憶部１０７および検証用演算部１０８を含んで構成されている。認証用データが、認証用素データ記憶部１０３の認証用素データ、乱数生成部１０４の乱数、およびアクセスチケット公開鍵記憶部１０１のアクセスチケット公開鍵を用いて生成され、この認証用データが認証用データ記憶部１０６に記憶された後、証明装置２０に転送される。またアクセスチケット公開鍵の法数、および必須情報が証明装置２０に転送される。
【００４２】
図２において、証明装置２０は、受信データ記憶部２０１、アクセスチケット記憶部２０２、制御情報記憶部２０３、必須情報検査部２０４、ユーザ固有情報記憶部２０５、指数生成部２０６、第１演算部２０７、第２演算部２０８および証明データ生成部２０９を含んで構成されている。受信データ記憶部２０１は、検証装置１０から転送された認証用データ、必須情報および法数を記憶する。必須情報検査部２０４は、検証装置１０から送られた必須情報を制御情報記憶部２０３に記憶されている制御情報と照合する。証明データ生成部２０９は、指数生成部２０６、第１演算部２０７および第２演算部２０８を用いて、アクセスチケット、認証用データ、ユーザ固有情報等に基づいて証明用データを生成する。この証明用データは検証装置１０に返される。
【００４３】
図１において、検証装置１０の受信データ記憶部１０７は証明装置２０から送られる証明用データを記憶し、検証用演算部１０８は、この証明用データを認証用データ、乱数、アクセスチケット公開鍵の法数を用いて検証する。
【００４４】
さらに、この実施例のアクセス資格の認証について説明する。
【００４５】
アクセス資格の認証は、検証装置１０が認証用データを証明装置２０に送り、証明装置２０で、認証用データに対応する証明用データを生成し、それを検証装置１０に送ることで行われる。
【００４６】
実施例１では、検証装置１０が送る認証用データは、なんらかのデータ（検証用データ）を暗号化したものであり、証明装置２０は、認証用データを復号して証明用データを生成する。検証装置１０は、証明装置２０から送られた証明用データが、認証用データを正しく復号したものかどうかを検査することで、証明用データの検証を行う。
【００４７】
証明用データの生成には、認証用データ、ユーザ固有情報、アクセスチケット、制御情報、必須情報の５つが必要である。
【００４８】
ユーザ固有情報は、サービスやデジタルデータの利用者毎に違うデジタルデータであり、証明装置２０（ユーザ固有情報記憶部２０５）内に、利用者からアクセスできない形で格納されている。
【００４９】
制御情報は、ユーザがどの範囲のデジタルコンテンツにアクセスできるか、すなわちユーザのケーパビリティを表現したデータであり、証明装置２０（制御情報記憶部２０３）内に格納されている。具体的には、ユーザがアクセス可能なデジタルコンテンツの識別子のリストである。
【００５０】
アクセスチケットは、認証用データを作るために必要な復号鍵（これが、アクセス資格認証の特徴情報である）とユーザ固有情報と制御情報から生成されるデジタルデータであり、証明装置２０（アクセスチケット記憶部２０２）内に格納されている。
【００５１】
必須情報は、検証装置１０（必須情報記憶部１０２）が保持するデータであり、検証装置１０が付随するデジタルコンテンツのアクセスに必要なケーパビリティを表現したものである。必須情報は、認証用データとともに証明装置２０に送られる。必須情報は、具体的には、デジタルコンテンツの識別子である。
【００５２】
実施例１では、証明装置２０が証明用データを生成する前に、制御情報の中のデジタルコンテンツの識別子のリストの中に、必須情報に記載された識別子が存在するかどうかが調べられる。存在する場合には、証明装置２０は証明用データの生成を行ない、そうでなければ、証明用データの生成は行なわれない。証明用データが生成されなければ、アクセス権は認証されないので、ユーザが必要なケーパビリティを保持している場合にのみ、アクセスが許されることになる。
【００５３】
実施例１では、認証用データは、ユーザ固有情報、アクセスチケット、制御情報、必須情報の５つがそろってはじめて正しい認証用データを生成できる。したがって、必須情報、制御情報、アクセスチケットの不正な差し替えを行なうと、正しい証明用データをえることができない。これにより、必須情報、制御情報、アクセスチケットの差し替えによる不正アクセスを防ぐことができる。
【００５４】
実施例１では、アクセス資格認証の特徴情報Ｄと、Ｄに対応する公開情報Ｅおよびｎ、アクセス資格認証の必須情報Ｉは、以下のように定義される。
【００５５】
ｎはＲＳＡ法数、すなわち、十分大きな二つの素数ｐ、ｑの積であり、式（１−１）を満たす。
【００５６】
【数３】
（１−１）      ｎ＝ｐｑ
φ（ｎ）はｎのオイラー数であり、式（１−２）によって計算される。
【００５７】
【数４】
（１−２）      φ（ｎ）＝（ｐ−１）（ｑ−１）
アクセス資格認証の特徴情報Ｄは、法数ｎのもとでのＲＳＡ秘密鍵であり、式（１−３）を満たす。
【００５８】
【数５】
（１−３）      ｇｃｄ（Ｄ，φ（ｎ））＝１
ここで、ｇｃｄ（ｘ，ｙ）は、二数ｘ、ｙの最大公約数を表す。
また、必須情報Ｉは、式（１−４）を満たす素数である。
【００５９】
【数６】
（１−４）      ｇｃｄ（Ｉ，φ（ｎ））＝１
公開情報Ｅは、式（１−５）を満たすように生成される。
【００６０】
【数７】
（１−５）      ＥＩＤ  ｍｏｄ  φ（ｎ）＝１
Ｄをアクセスチケット秘密鍵、Ｅ、ｎの組をアクセスチケット公開鍵と呼ぶ。
【００６１】
アクセスチケットｔは、アクセスチケット秘密鍵Ｄ、ユーザの固有情報ｅ、法数ｎ、制御情報Ｌを用い、以下の式１−６に基づいて生成される。
【００６２】
【数８】
（１−６）      ｔ＝Ｄ−Ｆ（ｅ，ｎ，Ｌ）
ユーザの固有情報ｅは、ユーザ毎に異なる数であり、ユーザを識別するために用いられる。
【００６３】
関数Ｆは関数値が衝突しにくい関数であり、例えば、一方向ハッシュ関数ｈを利用して、式（１−７）あるいは式（１−８）のように定めることができる。
【００６４】
【数９】
（１−７）      Ｆ（ｘ，ｙ）＝ｈ（ｘ｜ｙ）
（１−８）      Ｆ（ｘ，ｙ，ｚ，ｕ，ｗ）＝ｈ（ｘ｜ｙ｜ｚ｜ｕ｜ｗ）
ここで、ｘ｜ｙはｘとｙとのビットの連結であることを表す。
【００６５】
一方向ハッシュ関数とは、ｈ（ｘ）＝ｈ（ｙ）を満たす相異なるｘ、ｙを算出することが著しく困難であるという性質をもつ関数である。一方向ハッシュ関数の例として、ＲＳＡ  Ｄａｔａ  Ｓｅｃｕｒｉｔｙ  Ｉｎｃ．によるＭＤ２、ＭＤ４、ＭＤ５、米国連邦政府による規格ＳＨＳ（Ｓｅｃｕｒｅ  Ｈａｓｈ  Ｓｔａｎｄａｒｄ）が知られている。
【００６６】
上述の説明中に現れた数において、ｔ、Ｅ、ｎ、Ｉは公開可能であり、残りのＤ、ｅ、ｐ、ｑ、φ（ｎ）および関数Ｆはチケットを作成する権利を有するもの以外には秘密である必要がある。
【００６７】
また、実施例１の検証装置の動作を図３に、証明装置の動作を図４に示す。
以下に本実施例の動作を示す。
【００６８】
［ステップ１］ユーザが、アクセス資格認証装置による認証を必要とするデジタルコンテンツにアクセスすることによって、検証装置１０が起動される。
【００６９】
検証装置１０がユーザのＰＣあるいはワークステーション上で動作するアプリケーションプログラムの一部として構成されている場合、ユーザがキーボードあるいはマウスなどの指示装置を用いた通常の方法で、アプリケーションプログラムを起動する。アプリケーションプログラムの実行が検証装置１０を構成しているプログラムに到達することによりことにより、検証装置１０が起動される。
【００７０】
検証装置１０がネットワークで結ばれた他のＰＣあるいはワークステーション（サーバと呼ぶ）上に構成されている場合、ユーザは自分のＰＣあるいはワークステーション上の通信プログラムを起動し、該通信プログラムが所定の手続きに従って上記サーバに通信の開設要求を行うことにより、上記サーバ上の検証装置が起動される。例えば、ユーザの通信プログラムがサーバと通信する際にＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）と呼ばれる手続きに従うとすると、検証装置をサーバの特定のポートに予め対応づけておき、更に、ユーザの通信プログラムが該ポートを指定してＴＣＰ接続要求をサーバに要求するように設定しておくことにより、サーバ上のデーモン（ｉｎｅｔｄ）がＴＣＰ接続要求に応じて検証装置１０を起動することが可能となる。このような実現方法は、インターネットなどのネットワークにおいて広く利用されているものである。
【００７１】
検証装置１０を専用目的の装置とすることも可能である。例えば、検証装置１０をＩＣカード・リーダ・ライター内のＲＯＭに焼きつけられたプログラムとして構成し、証明装置２０をＩＣカードのマイクロコントローラーに実装されたプログラムとすることができる。この場合、ユーザがＩＣカードをリーダ・ライターに挿入することにより、検証装置１０が起動される。
【００７２】
［ステップ２］検証装置１０は、認証用データＣと、アクセスチケット公開鍵記憶部１０１に記憶されている法数ｎ、及び、必須情報記憶部１０２に記憶されている必須情報Ｉとを、証明装置２０中の受信データ記憶部２０１に書き込む。
【００７３】
認証用データＣは、認証用素データ記憶部１０３に記憶されている認証用素データＣ’に乱数効果を付与して生成される。認証用素データＣ’は、検証用データをＫとすると、データＫに対して式（１−９）を満たしている。
【００７４】
【数１０】
（１−９）      Ｃ’＝ＫE  ｍｏｄ  ｎ
認証用データＣは、検証装置１０により、乱数生成部１０４で乱数ｒを生成し、乱数ｒと、アクセスチケット公開鍵記憶部１０１から取得した公開鍵Ｅ、ｎと、認証用素データ記憶部１０３から取得したＣ’とを用い、乱数効果付与部で式（１−１０）の計算を行うことで生成される。生成された認証用データＣは、証明装置２０中の受信データ記憶部２０１に書き込まれるとともに、検証装置１０の認証用データ記憶部１０６にも記憶される。また、生成した乱数ｒは、乱数記憶部１０５に記憶される。
【００７５】
【数１１】
（１−１０）      Ｃ＝ｒEＣ’  ｍｏｄ  ｎ
このように、認証用データに乱数効果を加え、証明装置２０が返す証明用データを検証する際に乱数効果を除去するように構成することにより、いわゆるリプレイアタックを防止することができる。これは、以下の実施例においても、同様である。
【００７６】
また、データＫを検証装置１０に保持せず、代わりに、その暗号化の結果であるＣ’のみを保持するように検証装置１０を構成し、証明装置２０から送られる証明用データから乱数効果を取り除いたものとＫとが一致することを検証する手段を検証装置１０に持たせれば、検証装置１０からデータＫが漏洩する危険を回避することができる。
【００７７】
［ステップ３］証明装置２０中の必須情報検査部２０４は、受信データ記憶部２０１に記憶されている必須情報Ｉと、制御情報記憶部２０３に記憶されている制御情報Ｌを取得し、制御情報Ｌ中に記述されているリスト内に、必須情報Ｉに記載された識別子が存在するかどうかを検査する。存在していれば、引き続き以下の計算を行う。
【００７８】
［ステップ４］証明装置２０中の指数生成部２０６は、ユーザ固有情報記憶部２０５に記憶されているユーザの固有情報ｅと、受信データ記憶部２０１に記憶されている法数ｎと、制御情報記憶部２０３に記憶されている制御情報Ｌを取得し、式（１−１１）の計算を実行する。
【００７９】
【数１２】
（１−１１）      Ｆ（ｅ，ｎ，Ｌ）
【００８０】
［ステップ５］証明装置２０中の第１演算部２０７は、受信データ記憶部２０１に書き込まれた必須情報Ｉと法数ｎを取得し、これと、指数生成部２０６で生成されたデータとを用いて、式（１−１２）の計算をしＲ’を得る。
【００８１】
【数１３】
（１−１２）      Ｒ’＝ＣIF(e,n,L)  ｍｏｄ  ｎ
【００８２】
［ステップ６］証明装置２０中の第２演算部２０８は、アクセスチケット記憶部２０２に記憶されているアクセスチケットｔ、受信データ記憶部２０１に記憶されている認証用データＣ、必須情報Ｉおよび法数ｎを取得し、式（１−１３）を計算してＲ”を得る。
【００８３】
【数１４】
（１−１３）      Ｒ”＝ＣIt  ｍｏｄ  ｎ
【００８４】
［ステップ７］証明装置２０中の証明用データ生成部２０９は、第１演算部２０７および第２演算部２０８からＲ’およびＲ”を得て、式（１−１４）の計算を行い証明用データＲを得る。
【００８５】
【数１５】
（１−１４）      Ｒ＝Ｒ’Ｒ”  ｍｏｄ  ｎ
【００８６】
［ステップ８］証明装置２０は、証明用データＲを検証装置１０の受信データ記憶部１０７に書き込む。
【００８７】
［ステップ９］検証装置１０中の乱数効果除去部（検証用演算部１０８の一部）は、乱数記憶部１０５中から先に生成した乱数ｒを取り出し、式（１−１５）の計算を行う。
【００８８】
【数１６】
（１−１５）      Ｋ’＝ｒ-1Ｒ  ｍｏｄ  ｎ
【００８９】
［ステップ１０］証明装置２０において用いられるアクセスチケットｔとユーザの固有情報ｅ、必須情報Ｉおよび制御情報Ｌの組み合わせが正しい場合に限り、計算の結果得られたＫ’と検証用データＫが一致し、正しく検証が行われる。
【００９０】
［ステップ１１］計算されたＫ’は、検証装置１０中の実行手段に引き渡されるが、実行手段はＫ’＝Ｋが成立する場合に限り正規の処理を実行する。
【００９１】
上述のステップ３において、必須情報検査部２０４の検査を通らない場合は、検証装置１０が付随しているデジタルコンテンツのアクセスに必要なケーパビリティをユーザが持っていないことを示している。この場合、証明装置２０は証明用データの生成を中止し、検証装置１０に中止を通知する。通知の手段は、たとえば、中止用コードを受信データ記憶部１０７に書き込む方法や、あらかじめ証明用データ生成までの所要時間を定めておいて、所用時間を超過しても受信データ記憶部１０７への書き込みが行われなかった場合は中止とする方法などがある。
【００９２】
必須情報検査部２０４の検査を正常に終了し、上記の手順が正しく行われれば、式（１−１６）により、ＫとＫ’が一致することがわかる。
【００９３】
【数１７】
0004113274.tif 000002
【００９４】
悪意の第三者が、必須情報Ｉや制御情報Ｌ、アクセスチケットｔのどれを差し替えても、ＫとＫ’は一致しないので、デジタルコンテンツへのアクセスができない。これにより、必須情報Ｉや制御情報Ｌ、アクセスチケットｔの正しい組み合わせを使用することが強制される。
【００９５】
検証装置１０において、ＫとＫ’が同一であることを検証する方法はいくつか考えられる。以下にその例を記す。これらの例は、以下の実施例にも同様に適用可能である。
【００９６】
［１］検証用データと復号結果を直接比較する構成例
検証手段は予め検証用データＫを記憶しておく。検証手段中の比較部は、この検証用データＫと、認証用データを復号したデータＫ’とを直接比較し、Ｋ’＝Ｋが成立する場合に限り正規の処理を実行し、成立しない場合には処理を中止するなどのエラー処理を実行する。
【００９７】
この構成例では、検証すべき検証用データＫそのものが装置中に現れるという安全上の弱点がある。例えば、検証装置がユーザのＰＣあるいはワークステーション上で動作するプログラムとして構成されている場合、プログラムを解析してＫを窃取することは、困難であっても、必ずしも不可能ではない。Ｋの値がユーザの知るところとなると、証明装置の動作を模倣する装置を構成することが可能となり、なりすましによる不正アクセスが可能となる。
【００９８】
［２］一方向性関数を用いた構成例
上記の欠点を改善するため、検証手段が記憶している検証のためのデータを、検証用データＫそのものではなく、Ｋに前述の一方向ハッシュ関数ｈを施して得られるデータｈ（Ｋ）とする。一方向ハッシュ関数の性質から、検証手段が記憶している検証のためのデータｙから、ｙ＝ｈ（ｘ）を満たすｘを算出することは著しく困難である。
【００９９】
検証手段は、入力データに対し一方向ハッシュ関数を施した結果を返す変換部を有する。比較部は、認証用データを復号したデータＫ’をハッシュ関数の入力として得られる出力ｈ（Ｋ’）と、記憶されているデータ（＝ｈ（Ｋ））とを比較する。
【０１００】
この方法例では、検証用データＫがプログラム中に現れることがなく、また、検証手段が記憶しているｈ（Ｋ）からＫを計算することも著しく困難であることから、上記［１］の例よりは安全であるといえる。
【０１０１】
しかしながら、比較部はプログラム中では条件文として構成されており、検証装置がプログラムで、分析・改竄が容易であるような構成の場合には、該条件文をスキップするようにプログラムを改竄することが可能である点で、なお弱点を有している。
【０１０２】
［３］復号された値が、特定のデータを復号するための復号鍵である構成例
検証のために記憶されているデータが、暗号化されたデータであり、認証用データを復号したデータＫ’は、この暗号化されたデータを復号するための鍵である。
検証手段は、データＫ’の値を、検証のために記憶されているデータを暗号化するのに用いた暗号の復号鍵として用いて復号し、その結果、暗号化されたデータが復号できた場合のみ、プログラムの実行を可能とする。
この構成でも、検証装置中に復号鍵そのものは現れないため、安全度は高くなっている。
【０１０３】
［４］復号された値が特定の冗長性を満たすことを確認する構成例
検証装置が冗長性検証手段をもち、検証手段は、認証用データを復号したデータＫ’の値を、冗長性検証手段に送る。冗長性検証手段が、そのデータが特定の冗長性を満たすことを確認した場合のみ、プログラムの実行を可能とする。
冗長性の例としては、復号されたデータがある特定のパターンを繰り返していることや、特定の位置のデータが特定の条件を満たすこと、あるいは、データが特定の言語として意味があること、等があげられる。
【０１０４】
［５］プログラムコード自体を暗号化する構成例
検証装置が保持するプログラムのコードの一部或は全部を暗号化したデータを認証用データとして、認証用データ記憶手段に保持する。即ち、認証用データを復号したデータＫ’はプログラムのコードの一部或は全部となる。
【０１０５】
実行手段はデータＫ’を、プログラム中の予め定められた位置に埋め込み、その後、埋め込んだプログラムを実行する。証明装置が正しいデータを返信した場合、即ち、Ｋ’がコードを正しく復号したものである場合に限ってプログラムは実行可能となる。
【０１０６】
実行手段は復号されたコードを本来のプログラムに埋め込んだファイルを生成した後、そのファイルを起動してもよいが、プログラムがメモリ上に展開されている状態で、復号したコードをメモリ上のプログラムに埋め込んだのち起動する方法が、安全上は望ましい。
【０１０７】
この構成例では、プログラムの実行に不可欠なコードの一部或は全部が暗号化されているため、実行手段がユーザのＰＣあるいはワークステーション上で動作するアプリケーションプログラムとして構成されているような比較的安全性の低い場合でも、不正実行を防止することができる。
【０１０８】
［６］復号された値がプログラムの復号鍵である構成例
検証装置がプログラムのコードの一部或は全部を暗号化したデータを保持しており、認証用データを復号したデータＫ’が、暗号化したプログラムコードを復号するために必要な復号鍵となっているものである。この構成によると、暗号化するコードのサイズに関わらず、データＫ’のサイズを一定の小さい値に抑えることが可能となり、通信のオーバヘッドを減少させることができる。
【０１０９】
検証手段はデータＫ’を用いて、記憶している暗号化されたプログラムコードを復号する。実行部は、復号されたコードを、プログラム中の予め定められた位置に埋め込み、その後、埋め込んだプログラムを実行する。証明装置が正しいデータを返信していた場合、即ち、Ｋ’によってコードが正しく復号されていた場合に限ってプログラムは実行可能となる。
【０１１０】
［実施例２］
実施例２も、本発明を応用した、アクセス資格認証装置である。実施例２も、証明装置と検証装置との２つの装置からなる。検証装置は、アクセス資格が認証されるデジタルコンテンツに付随した装置であり、デジタルコンテンツの利用者が、正当なアクセス権を持つことを検証する。証明装置は、デジタルコンテンツの利用者が保持する装置であり、検証装置に対して、利用者が正当なアクセス権を持つことを証明する。
【０１１１】
実施例２の検証装置の構成を図５に示し、証明装置の構成を図６に示す。なお、図５および図６において、それぞれ図１および図２に対応する箇所には対応する符号を付して詳細な説明を省略する。この実施例では、検証装置１０に新たに検査情報生成部１０９が設けられている。また証明装置２０に第１の必須情報検査部２１０および第２の必須情報検査部２１１が設けられている。第２の必須情報検査部２１１は実施例１の必須情報検査部２０４に相当する。
【０１１２】
アクセス資格の認証は、検証装置１０が認証用データを証明装置２０に送り、証明装置２０で、認証用データに対応する証明用データを生成し、それを検証装置１０に送ることで行われる。
【０１１３】
実施例２でも、検証装置１０が送る認証用データは、なんらかのデータ（検証用データ）を暗号化したものであり、証明装置２０は、認証用データを復号して証明用データを生成する。検証装置１０は、証明装置２０から送られた証明用データが、認証用データを正しく復号したものかどうかを検査することで、証明用データの検証を行う。
【０１１４】
証明用データの生成には、認証用データ、ユーザ固有情報、アクセスチケット、制御情報、必須情報、検査情報の６つが必要である。
【０１１５】
ユーザ固有情報は、サービスやデジタルデータの利用者毎に違うデジタルデータであり、証明装置２０内に、利用者からアクセスできない形で格納されている。
【０１１６】
必須情報は、検証装置１０が保持するデータであり、検証装置１０が付随するデジタルコンテンツのアクセスに必要なケーパビリティを表現したものである。必須情報は、認証用データとともに証明装置２０に送られる。本実施例では、必須情報は、具体的には、デジタルコンテンツの種類を表す文字列のリストである。
【０１１７】
検査情報は、検証装置１０が生成し、検証装置１０から認証用データや必須情報とともに証明装置２０に送られる。検査情報は、必須情報が検証装置１０から送られた正しいものであることを証明装置２０内で検査するために使用する情報である。
【０１１８】
制御情報は、ユーザがどの範囲のデジタルコンテンツにアクセスできるか、すなわちユーザのケーパビリティを表現したデータであり、証明装置２０内に格納されている。本実施例では、制御情報は、具体的には、ユーザがアクセス可能なデジタルコンテンツの種類を表す文字列のリストである。
【０１１９】
アクセスチケットは、認証用データを作るために必要な復号鍵（これが、アクセス資格認証の特徴情報である）とユーザ固有情報と制御情報から生成されるデジタルデータであり、証明装置２０内に格納されている。
【０１２０】
実施例２では、証明装置２０が証明用データを生成する前に、検査情報を使って必須情報が差し替えられてないことの確認を行なう。必須情報が差し替えられていなければ、必須情報に記載された文字列のすべてが、制御情報が持つリストの中に含まれるかどうかが調べられる。含まれる場合には、証明装置２０は証明用データの生成を行なう。上記２つのチェックのどちらかに失敗すれば、証明用データの生成は行なわれない。証明用データが生成されなければ、アクセス権は認証されないので、ユーザが必要なケーパビリティを保持している場合にのみ、アクセスが許されることになる。
【０１２１】
実施例２でも、認証用データは、ユーザ固有情報、アクセスチケット、制御情報、必須情報、検査情報の５つがそろってはじめて正しい認証用データを生成できる。したがって、必須情報、制御情報、アクセスチケットの不正な差し替えを行なうと、正しい証明用データをえることができない。これにより、必須情報、制御情報、アクセスチケットの差し替えによる不正アクセスを防ぐことができる。
【０１２２】
本実施例の検証装置１０の動作を図７に示し、証明装置２０の動作を図８に示す。
【０１２３】
本発明における実施例２では、アクセス資格認証の特徴情報Ｄと、ＲＳＡ法数ｎ、およびｎのオイラー数φ（ｎ）が満たすべき性質は、実施例１と同様である。
【０１２４】
本実施例における公開情報Ｅは、式（２−１）を満たすように生成される。
【０１２５】
【数１８】
（２−１）      ＥＤ  ｍｏｄ  φ（ｎ）＝１
アクセスチケットｔは、実施例１同様、アクセスチケット秘密鍵Ｄ、ユーザの固有情報ｅ、法数ｎ、制御情報Ｌ、関数Ｆを用い、以下の式（２−２）に基づいて生成される。
【０１２６】
【数１９】
（２−２）      ｔ＝Ｄ−Ｆ（ｅ，ｎ，Ｌ）
【０１２７】
以下、本実施例の動作について説明する。
【０１２８】
［ステップ１］ユーザがアクセスすることによって、検証装置１０が起動される。検証装置１０の起動態様は実施例１と同様である。
【０１２９】
［ステップ２］検証装置１０中の検査情報生成部１０９は、認証用データＣと、必須情報記憶部１０２に記憶されている必須情報Ｉを取得し、式（２−３）の計算を実行して、検査情報Ｍを生成する。
【０１３０】
【数２０】
（２−３）      Ｍ＝Ｖ（Ｃ，Ｉ）
関数Ｖは、関数Ｆと同様の性質を持つ関数であり、検証装置１０と証明装置２０以外には秘密である必要がある。ここで、認証用データＣは実施例１のステップ２と同様の方法で生成される。
【０１３１】
［ステップ３］検証装置１０は、認証用データＣと、アクセスチケット公開鍵記憶部１０１に記憶されている法数ｎ、必須情報記憶部１０２に記憶されている必須情報Ｉ、および検査情報Ｍを、証明装置２０中の受信データ記憶部２０１に書き込む。
【０１３２】
［ステップ４］証明装置２０中の第１の必須情報検査部２１０は、受信データ記憶部２０１に記憶されている必須情報Ｉと認証用データＣと検査情報Ｍとの間に
【０１３３】
【数２１】
Ｍ＝Ｖ（Ｃ，Ｉ）
の関係が成り立っていることを検証する。上記関係が成り立っていれば、引き続き以下の処理を行う。
【０１３４】
［ステップ５］証明装置２０中の第２の必須情報検査部２１１は、受信データ記憶部２０１に記憶されている必須情報Ｉと、制御情報記憶部２０３に記憶されている制御情報Ｌについて、Ｌが持つリスト中に、必須情報Ｉが持つリストに出現する文字列がすべて存在することを検証する。存在していれば、引き続き以下の計算を行う。
【０１３５】
［ステップ６］証明装置２０中の指数生成部２０６は、ユーザ固有情報記憶部２０５に記憶されているユーザの固有情報ｅと、受信データ記憶部２０１にに記憶されている法数ｎと、制御情報記憶部２０３に記憶されている制御情報Ｌを取得し、式（２−４）の計算を実行する。
【０１３６】
【数２２】
（２−４）      Ｆ（ｅ，ｎ，Ｌ）
【０１３７】
［ステップ７］証明装置２０中の第１演算部２０７は、受信データ記憶部２０１に書き込まれた必須情報Ｉと法数ｎを取得し、これと、指数生成部２０６で生成されたデータとを用いて、式（２−５）の計算をしＲ’を得る。
【０１３８】
【数２３】
（２−５）      Ｒ’＝ＣF(e,n,L)  ｍｏｄ  ｎ
【０１３９】
［ステップ８］証明装置２０中の第２演算部２０８は、アクセスチケット記憶部２０２に記憶されているアクセスチケットｔ、受信データ記憶部２０１に記憶されている認証用データＣ、および法数ｎを取得し、式（２−６）を計算してＲ”を得る。
【０１４０】
【数２４】
（２−６）      Ｒ”＝Ｃt  ｍｏｄ  ｎ
【０１４１】
［ステップ９］証明装置２０中の証明用データ生成部２０９は、第１演算部２０７および第２演算部２０８からＲ’およびＲ”を得て、式（２−７）の計算を行い証明用データＲを得る。
【０１４２】
【数２５】
（２−７）      Ｒ＝Ｒ’Ｒ”  ｍｏｄ  ｎ
【０１４３】
［ステップ１０］証明装置２０は、証明用データＲを検証装置１０の受信データ記憶部１０７に書き込む。
【０１４４】
［ステップ１１］検証装置１０中の乱数効果除去部（検証用演算部１０８の一部）は、乱数記憶部１０５中から先に生成した乱数ｒを取り出し、式（２−８）の計算を行う。
【０１４５】
【数２６】
（２−８）      Ｋ’＝ｒ-1Ｒ  ｍｏｄ  ｎ
【０１４６】
［ステップ１２］証明装置２０において用いられるアクセスチケットｔとユーザの固有情報ｅ、および制御情報Ｌの組み合わせが正しい場合に限り、計算の結果得られたＫ’と検証用データＫが一致し、正しく検証が行われる。
【０１４７】
上述の上記のステップ４における第１の必須情報検査部２１０の検査を通らない場合は、認証用データ、必須情報または検査情報のいずれかが間違っていることを示している。この場合、必須情報の正当性が保証できないので、証明装置２０は証明用データの生成を中止し、検証装置１０に中止を通知する。これにより、正しい必須情報を証明装置に送ることが強制される。
【０１４８】
また、上述のステップ５における第２の必須情報検査部２１１の検査をとおらない場合は、検証装置１０が付随しているデジタルコンテンツのアクセスに必要なケーパビリティをユーザが持っていないことを示している。この場合、証明装置２０は証明用データの生成を中止し、検証装置１０に中止を通知する。
【０１４９】
通知の手段は、たとえば、中止用コードを受信データ記憶部１０７に書き込む方法や、あらかじめ証明用データ生成までの所要時間を定めておいて、所用時間を超過しても受信データ記憶部１０７への書き込みが行われなかった場合は中止とする方法などがある。
【０１５０】
第１、２の必須情報検査部２１０、２１１の検査を正常に終了し、上記の手順が正しく行われれば、式（２−９）により、ＫとＫ’が一致することがわかる。
【０１５１】
【数２７】
0004113274.tif 000003
悪意の第三者が、制御情報Ｌ、アクセスチケットｔのどれを差し替えても、ＫとＫ’は一致しないので、デジタル知財へのアクセスができない。これにより、制御情報Ｌ、アクセスチケットｔの正しい組み合わせを使用することが強制される。
【０１５２】
Ｋ’と検証用データＫとの比較方法に関しては、実施例１と同様の方法を用いることができる。
【０１５３】
【発明の効果】
以上説明したように、本発明によれば、コンテンツ等のアクセスに必要なケーパビリティを検証側の必須情報によりアクセス対象ごとに自由に設定でき、またユーザがどのようなケーパビリティを有しているかを証明側の制御情報で規定することができ、複雑なケーパビリティの割り当てを簡単に実現することができる。しかも、アクセスチケットの利用により必須情報や制御情報の改竄に対処でき、安全性が高い。
【図面の簡単な説明】
【図１】  本発明の実施例１の検証装置の構成を示すブロック図である。
【図２】  本発明の実施例１の証明装置の構成を示すブロック図である。
【図３】  本発明の実施例１の検証装置の動作を説明する図である。
【図４】  本発明の実施例１の証明装置の動作を説明する図である。
【図５】  本発明の実施例２の検証装置の構成を示すブロック図である。
【図６】  本発明の実施例２の証明装置の構成を示すブロック図である。
【図７】  本発明の実施例２の検証装置の動作を説明する図である。
【図８】  本発明の実施例２の証明装置の動作を説明する図である。
【符号の説明】
１０    検証装置
２０    証明装置
１０１    アクセスチケット公開鍵記憶部
１０２    必須情報記憶部
１０３    認証用素データ記憶部
１０４    乱数生成部
１０５    乱数記憶部
１０６    認証用データ記憶部
１０７    受信データ記憶部
１０８    検証用演算部
１０９    検査情報生成部
２０１    受信データ記憶部
２０２    アクセスチケット記憶部
２０３    制御情報記憶部
２０４    必須情報検査部
２０５    ユーザ固有情報記憶部
２０６    指数生成部
２０７    第１演算部
２０８    第２演算部
２０９    証明データ生成部
２１０    第１の必須情報検査部
２１１    第２の必須情報検査部
【図１】
0004113274.tif 000004
【図２】
0004113274.tif 000005
【図３】
0004113274.tif 000006
【図４】
0004113274.tif 000007
【図５】
0004113274.tif 000008
【図６】
0004113274.tif 000009
【図７】
0004113274.tif 000010
【図８】
0004113274.tif 000011