(57)【特許請求の範囲】
【請求項１】
認証端末、サービス提供端末およびサービス利用端末を有する認証ハンドオーバシステムにおいて認証のハンドオーバを実行する認証ハンドオーバ方法であって、
前記認証端末は、前記サービス提供端末と事前に共有する事前共有鍵を用いて前記サービス提供端末と相互認証を実行し、当該相互認証に成功すると前記事前共有鍵に基づいて生成される第一セッション鍵の共有を実行し、
前記サービス利用端末は前記サービス提供端末と前記認証端末との間で共有されている前記第一セッション鍵を前記認証端末から受信し、
前記サービス利用端末は前記認証端末から受信した前記第一セッション鍵を用いて前記サービス提供端末と相互認証を実行し、
前記サービス提供端末は前記サービス利用端末との相互認証に成功すると、前記サービス利用端末と前記第一セッション鍵に基づいて生成される第二セッション鍵を共有し、当該第二セッション鍵を用いて前記サービス利用端末にサービスを提供することを特徴とする認証ハンドオーバ方法。
【請求項２】
前記サービス提供端末は第一乱数ｒ１を生成して前記認証端末に送信し、
前記認証端末は前記第一乱数ｒ１を受信し、第二乱数ｒ２を生成し、前記事前共有鍵によって確定する関数に前記第一乱数ｒ１と前記第二乱数ｒ２を代入することで第一認証データを生成し、当該第一認証データを前記サービス提供端末に送信し、
前記サービス提供端末は前記第一認証データを受信し、前記第一乱数ｒ１と前記事前共有鍵によって確定する関数に基づき第一確認データを生成し、前記認証端末から受信した前記第一認証データと前記第一確認データとを比較することで前記認証端末を認証し、前記認証端末から受信した前記第二乱数ｒ２と前記事前共有鍵によって確定する関数に基づき第二認証データを生成して前記認証端末に送信し、
前記認証端末は前記第二認証データを前記サービス提供端末から受信し、前記認証端末が生成した第二乱数ｒ２と前記事前共有鍵によって確定する関数に基づき第二確認データを生成し、前記第二認証データと前記第二確認データとを比較することで前記サービス提供端末を認証し、
前記認証端末と前記サービス提供端末との間の相互認証が成功すると、前記認証端末と前記サービス提供端末とはそれぞれ前記第一乱数ｒ１、前記第二乱数ｒ２と前記事前共有鍵によって確定する関数に基づき前記第一セッション鍵を生成することで前記認証端末と前記サービス提供端末との間で前記第一セッション鍵を共有することを特徴とする請求項１に記載の認証ハンドオーバ方法。
【請求項３】
前記サービス利用端末は第三乱数ｒ３を生成して前記サービス提供端末に送信し、
前記サービス提供端末は前記サービス利用端末から前記第三乱数ｒ３を受信し、第四乱数ｒ４を生成し、前記第一セッション鍵によって確定する関数と前記第三乱数ｒ３、前記第四乱数ｒ４に基づいて第三認証データを生成して前記サービス利用端末に送信し、
前記サービス利用端末は前記第三認証データを受信し、前記第一セッション鍵によって確定する関数と前記第三乱数ｒ３、前記第四乱数ｒ４に基づいて第三確認データを生成し、前記第三認証データと前記第三確認データとを比較することで前記サービス提供端末を認証し、前記サービス提供端末の認証が成功すると、前記第一セッション鍵によって確定する関数と前記第四乱数ｒ４に基づいて第四認証データを生成して前記サービス提供端末に送信し、
前記サービス提供端末は前記サービス利用端末から前記第四認証データを受信し、前記第一セッション鍵によって確定する関数と前記第四乱数ｒ４に基づいて第四確認データを生成し、前記第四認証データと前記第四確認データとを比較することで前記サービス利用端末を認証し、
前記サービス利用端末と前記サービス提供端末との間の相互認証が成功すると、前記サービス利用端末と前記サービス提供端末とはそれぞれ前記第三乱数ｒ３、前記第四乱数ｒ４と前記第一セッション鍵によって確定する関数に基づき前記第二セッション鍵を生成することで前記サービス利用端末と前記サービス提供端末との間で前記第二セッション鍵を共有することを特徴とする請求項１または２に記載の認証ハンドオーバ方法。
【請求項４】
前記認証端末は前記サービス利用端末の認証を実行し、前記サービス利用端末の認証が成功すると、前記サービス提供端末と前記認証端末との間で共有されている前記第一セッション鍵を前記サービス利用端末へ送信することを特徴とする請求項１ないし３のいずれか一項に記載の認証ハンドオーバ方法。
【請求項５】
認証端末、サービス提供端末およびサービス利用端末を有し、認証のハンドオーバを実行する認証ハンドオーバシステムであって、
前記認証端末は、
前記サービス提供端末と事前に共有する事前共有鍵を用いて前記サービス提供端末と相互認証を実行する手段と、
前記サービス提供端末との相互認証に成功すると前記サービス提供端末と前記事前共有鍵に基づいて生成される第一セッション鍵を共有する手段と、
前記サービス利用端末に前記第一セッション鍵を送信する手段と
を有し、
前記サービス利用端末は、
前記サービス提供端末と前記認証端末との間で共有されている前記第一セッション鍵を前記認証端末から受信する手段と、
前記認証端末から受信した前記第一セッション鍵を用いて前記サービス提供端末と相互認証を実行する手段と、
前記サービス提供端末との相互認証が成功すると、前記サービス提供端末との間で前記第一セッション鍵に基づいて生成される第二セッション鍵を共有する手段と、
前記第二セッション鍵を用いて前記サービス提供端末からサービスを受信する手段と
を有し、
前記サービス提供端末は、
前記認証端末と事前に共有する事前共有鍵を用いて前記認証端末と相互認証を実行する手段と、
前記認証端末との相互認証に成功すると前記認証端末と前記第一セッション鍵を共有する手段と、
前記認証端末と共有している前記第一セッション鍵を用いて前記サービス利用端末と相互認証を実行する手段と、
前記サービス利用端末との相互認証に成功すると、前記サービス利用端末と前記第一セッション鍵に基づいて生成される第二セッション鍵を共有する手段と、
当該第二セッション鍵を用いて前記サービス利用端末にサービスを提供する手段と
を有することを特徴とする認証ハンドオーバシステム。
【請求項６】
請求項５に記載の認証ハンドオーバシステムにおいて使用される認証端末であって、
前記サービス提供端末と事前に共有する事前共有鍵を用いて前記サービス提供端末と相互認証を実行する手段と、
前記サービス提供端末との相互認証に成功すると前記サービス提供端末と前記事前共有鍵に基づいて生成される第一セッション鍵を共有する手段と、
前記サービス利用端末に前記第一セッション鍵を送信する手段と
を有することを特徴とする認証端末。
【請求項７】
請求項５に記載の認証ハンドオーバシステムにおいて使用されるサービス利用端末であって、
前記サービス提供端末と前記認証端末との間で共有されている前記第一セッション鍵を前記認証端末から受信する手段と、
前記認証端末から受信した前記第一セッション鍵を用いて前記サービス提供端末と相互認証を実行する手段と、
前記サービス提供端末との相互認証が成功すると、前記サービス提供端末との間で前記第一セッション鍵に基づいて生成される第二セッション鍵を共有する手段と、
前記第二セッション鍵を用いて前記サービス提供端末からサービスを受信する手段と
を有することを特徴とするサービス利用端末。
【請求項８】
請求項５に記載の認証ハンドオーバシステムにおいて使用されるサービス提供端末であって、
前記認証端末と事前に共有する事前共有鍵を用いて前記認証端末と相互認証を実行する手段と、
前記認証端末との相互認証に成功すると前記認証端末と前記第一セッション鍵を共有する手段と、
前記認証端末と共有している前記第一セッション鍵を用いて前記サービス利用端末と相互認証を実行する手段と、
前記サービス利用端末との相互認証に成功すると、前記サービス利用端末と前記第一セッション鍵に基づいて生成される第二セッション鍵を共有する手段と、
当該第二セッション鍵を用いて前記サービス利用端末にサービスを提供する手段と
を有することを特徴とするサービス提供端末。
【請求項９】
コンピュータに請求項６に記載の認証端末として機能させるプログラム。
【請求項１０】
コンピュータに請求項７に記載のサービス利用端末として機能させるプログラム。
【請求項１１】
コンピュータに請求項８に記載のサービス提供端末として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は認証ハンドオーバ技術に関する。
【背景技術】
【０００２】
従来、２つの端末間で相互認証を実行したり、鍵共有を実行したりする発明が提案されている（特許文献１、２）。また、ＩＳＯ（国際標準化機構）も相互認証方式を標準化している（非特許文献１ないし３）。ところで、コンテンツを視聴するための鍵をある視聴端末から別の視聴端末に自己移譲する技術も提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−０１７８４１号公報
【特許文献２】特開２０１４−１１０５３９号公報
【非特許文献】
【０００４】
【非特許文献１】International Organization for Standardization, Geneve, Switzerland. ISO/IEC 9798-2:2008, Information technology - Security techniques - Entity Authentication - Part 2: Mechanisms using symmetric encipherment algorithms, 2008. Third edition
【非特許文献２】International Organization for Standardization, Geneve, Switzerland. ISO/IEC 9798-3:1998, Information technology - Security techniques - Entity Authentication - Part 3: Mechanisms using digital signature techniques, 1998. Second edition.
【非特許文献３】International Organization for Standardization, Geneve, Switzerland. ISO/IEC 9798-4:1999, Information technology - Security techniques - Entity Authentication - Part 4: Mechanisms using a cryptographic check function, 1999. Second edition.
【非特許文献４】S. Kiyomoto, T. Tanaka, M. Yoshida, and M. Kuroda, "Design of Self-Delegation for Mobile Terminal," IPSJ Journal, Vol.46, No.8, pp.1947-1958, 2005.
【発明の概要】
【発明が解決しようとする課題】
【０００５】
サービス提供端末からサービス利用端末へサービスを提供するためには、サービス提供端末とサービス利用端末とが相互認証を実行することが必要とされることがある。この場合に、サービス提供端末と認証端末との間で相互認証と鍵共有を実行し、この鍵を認証端末からサービス利用端末に渡し、さらにこの鍵を用いてサービス利用端末とサービス提供端末との間で相互認証を行い、さらに別の鍵を共有することで認証のハンドオーバが実現できれば便利であろう。上述した自己移譲技術では、ある視聴端末が利用していた鍵を他の視聴端末に移譲するにすぎず、他の視聴端末とサービス提供端末との間の相互認証が実行されない。つまり、不正な視聴端末にサービスが提供されてしまうこともありうる。そこで、本発明は、認証端末、サービス提供端末およびサービス利用端末との間で認証のハンドオーバを実現可能とすることを目的とする。
【課題を解決するための手段】
【０００６】
本発明によれば、
認証端末、サービス提供端末およびサービス利用端末を有する認証ハンドオーバシステムにおいて認証のハンドオーバを実行する認証ハンドオーバ方法であって、
前記認証端末は、前記サービス提供端末と事前に共有する事前共有鍵を用いて前記サービス提供端末と相互認証を実行し、当該相互認証に成功すると前記事前共有鍵に基づいて生成される第一セッション鍵の共有を実行し、
前記サービス利用端末は前記サービス提供端末と前記認証端末との間で共有されている前記第一セッション鍵を前記認証端末から受信し、
前記サービス利用端末は前記認証端末から受信した前記第一セッション鍵を用いて前記サービス提供端末と相互認証を実行し、
前記サービス提供端末は前記サービス利用端末との相互認証に成功すると、前記サービス利用端末と前記第一セッション鍵に基づいて生成される第二セッション鍵を共有し、当該第二セッション鍵を用いて前記サービス利用端末にサービスを提供することを特徴とする認証ハンドオーバ方法が提供される。
【発明の効果】
【０００７】
本発明によれば、認証端末、サービス提供端末およびサービス利用端末との間で認証のハンドオーバが実現される。
【図面の簡単な説明】
【０００８】
【図１】認証ハンドオーバシステムの一例を示す図
【図２】認証ハンドオーバ処理に関与する信号のシーケンスを示す図
【図３】認証端末の機能を示すブロック図
【図４】サービス提供端末の機能を示すブロック図
【図５】サービス利用端末の機能を示すブロック図
【図６】サービス提供端末の機能を示すブロック図
【図７】サービス提供端末が実行する認証ハンドオーバ処理を示すフローチャート
【図８】サービス利用端末が実行する認証ハンドオーバ処理を示すフローチャート
【図９】サービス利用端末と認証端末が実行する認証ハンドオーバ処理を示すフローチャート
【図１０】サービス利用端末が実行する認証ハンドオーバ処理を示すフローチャート
【図１１】サービス提供端末が実行する認証ハンドオーバ処理を示すフローチャート
【発明を実施するための形態】
【０００９】
＜認証システム＞
図１（Ａ）は認証ハンドオーバシステム１００の一例を示す図である。認証端末１０１、サービス提供端末１０３およびサービス利用端末１０４は通信リンク１０２を介して接続されている。通信リンク１０２は無線回線であってもよいし、有線回線であってもよい。また、コンピュータ内の通信バスなどであってもよい。図１（Ｂ）が示すように、認証端末１０１はＳＩＭカードであってもよいし、サービス利用端末１０４はＳＩＭカードを挿入されて通信するスマートフォンやタブレット端末などであってもよい。
【００１０】
本実施形態では、概ね次の手順にしたがって認証のハンドオーバが実行される。手順Iで認証端末１０１とサービス提供端末１０３との間で相互認証とセッション鍵の共有が実行される。次に、手順IIで、認証端末１０１とサービス提供端末１０３との間で共有されているセッション鍵が認証端末１０１からサービス利用端末１０４に転送される。この際に、認証端末１０１とサービス利用端末１０４との間で相互認証が実行されてもよい。手順IIIでサービス利用端末１０４とサービス提供端末１０３との間で相互認証とセッション鍵の共有が実行される。とりわけ、認証端末１０１とサービス提供端末１０３との間で共有されているセッション鍵が既知の鍵として手順IIIにおける相互認証と鍵共有に利用される。サービス利用端末１０４とサービス提供端末１０３との間で共有された新しいセッション鍵を用いてサービス提供端末１０３からサービス利用端末１０４へサービスが提供される。
【００１１】
＜認証ハンドオーバ＞
図２ないし図６を参照しながら実施形態における認証ハンドオーバについて説明する。図２は認証端末１０１、サービス提供端末１０３およびサービス利用端末１０４間で送受信される情報のシーケンスを示している。図２では上述した手順IないしIIIと関連付けて信号が示されている。図３は手順I、IIに関与する認証端末１０１の機能を示す図である。図４は手順Iに関与するサービス提供端末１０３の機能を示す図である。図４は手順Iに関与するサービス提供端末１０３の機能を示す図である。図５は手順II、IIIに関与するサービス利用端末１０４の機能を示す図である。図６は手順IIIに関与するサービス提供端末１０３の機能を示す図である。
【００１２】
［手順I］
手順Iは、たとえば、認証端末１０１がサービス提供端末１０３に対して相互認証の開始要求を送信することで開始される。サービス提供端末１０３の乱数生成部４０１は乱数ｒ１を生成し、送信部４０２に出力する。乱数ｒ１は第一乱数と呼ばれてもよい。送信部４０２は乱数ｒ１を開始要求に対するレスポンスとして認証端末１０１に送信する。
【００１３】
認証端末１０１の受信部３０１は乱数ｒ１を受信すると、ＭＡＣ生成部３０２と鍵生成部３０５に乱数ｒ１を出力する。なお、ＭＡＣはメッセージ認証コードの略称である。ＭＡＣ生成部３０２は乱数ｒ１と、乱数生成部３０３によって生成された乱数ｒ２とを連結し、予め定められたＭＡＣ関数ＭＡＣｋ（）に連結結果を代入することでメッセージ認証コード（第一認証データＭＡＣｋ（ｒ１||ｒ２））を生成し、連結部３０６に出力する。||は連結を意味する演算記号である。乱数ｒ２は第二乱数と呼ばれてもよい。ＭＡＣ関数ＭＡＣｋ（）は、認証端末１０１とサービス提供端末１０３との間で事前に共有されている情報（事前共有鍵ｋ）によって定まるＭＡＣ関数である。つまり、認証端末１０１とサービス提供端末１０３とはＭＡＣ関数ＭＡＣｋ（）を事前共有している。連結部３０６は、第一認証データＭＡＣｋ（ｒ１||ｒ２）に対して乱数生成部３０３によって生成された乱数ｒ２を連結し、連結結果を送信部３０７に出力する。連結結果であるＭＡＣｋ（ｒ１||ｒ２）||ｒ２は相互認証と鍵共有に必要となる認証データである。送信部３０７は認証データＭＡＣｋ（ｒ１||ｒ２）||ｒ２をサービス提供端末１０３に送信する。
【００１４】
サービス提供端末１０３の受信部４０３は認証データであるＭＡＣｋ（ｒ１||ｒ２）||ｒ２を認証端末１０１から受信する。受信部４０３は受信した認証データＭＡＣｋ（ｒ１||ｒ２）||ｒ２を分離部４０４に出力する。分離部４０４は、認証データＭＡＣｋ（ｒ１||ｒ２）||ｒ２を第一認証データＭＡＣｋ（ｒ１||ｒ２）と乱数ｒ２とに分離する。分離部４０４は、第一認証データＭＡＣｋ（ｒ１||ｒ２）を検証部４０６に出力し、乱数ｒ２をＭＡＣ生成部４０５に出力する。第一認証データＭＡＣｋ（ｒ１||ｒ２）は認証端末１０１を認証するために必要となるデータである。乱数ｒ２は、サービス提供端末１０３を認証端末１０１で認証してもらうための第二認証データＭＡＣｋ（ｒ２）を生成するために必要となるデータである。また、乱数ｒ２は相互認証が成功したときに鍵生成部４０７で鍵ｋｓを生成するために使用される。鍵ｋｓは第一セッション鍵の一例である。ＭＡＣ生成部４０５は、乱数生成部４０１により生成された乱数ｒ１と認証端末１０１から受信された乱数ｒ２とに基づき第一確認データＭＡＣｋ（ｒ１||ｒ２）を生成し、検証部４０６に出力する。認証端末１０１のＭＡＣ生成部４０５とサービス提供端末１０３のＭＡＣ生成部３０２は同一のＭＡＣ関数ＭＡＣｋ（）を事前に共有している（つまり、鍵ｋが事前に共有されている）。検証部４０６はサービス提供端末１０３で生成された第一確認データＭＡＣｋ（ｒ１||ｒ２）と、認証端末１０１で生成された第一認証データＭＡＣｋ（ｒ１||ｒ２）とが一致するかどうかに基づき、認証端末１０１が正当な端末かどうかを判定する。サービス提供端末１０３で生成された第一確認データＭＡＣｋ（ｒ１||ｒ２）と認証端末１０１で生成された第一認証データＭＡＣｋ（ｒ１||ｒ２）とが一致していれば、認証端末１０１は正当な端末と判定される（認証成功：ＯＫ）。一方で、サービス提供端末１０３で生成された第一確認データＭＡＣｋ（ｒ１||ｒ２）と認証端末１０１で生成された第一認証データＭＡＣｋ（ｒ１||ｒ２）とが一致しなければ、認証端末１０１は正当な端末ではないと判定される（認証失敗：ＮＧ）。検証部４０６は認証結果（認証成功／認証失敗）をＭＡＣ生成部４０５に出力する。認証成功の場合、ＭＡＣ生成部４０５は、認証端末１０１から受信された乱数ｒ２をＭＡＣ関数ＭＡＣｋ（）に代入することで第二認証データＭＡＣｋ（ｒ２）を生成し、送信部４０２に出力する。送信部４０２は第二認証データＭＡＣｋ（ｒ２）を認証端末１０１に送信する。なお、認証に失敗した場合、送信部４０２は認証失敗を意味する信号を認証端末１０１に送信してもよい。
【００１５】
認証端末１０１の受信部３０１はサービス提供端末１０３から第二認証データＭＡＣｋ（ｒ２）を受信する。受信部３０１は第二認証データＭＡＣｋ（ｒ２）を検証部３０４に出力する。検証部３０４は、認証端末１０１において乱数生成部３０３により生成された乱数ｒ２からＭＡＣ生成部３０２により生成された第二確認データＭＡＣｋ（ｒ２）とサービス提供端末１０３で生成された第二認証データＭＡＣｋ（ｒ２）とが一致しているかどうかに基づきサービス提供端末１０３が正当な端末かどうかを判定する。両者が一致していればサービス提供端末１０３は正当な端末と判定される（認証成功：ＯＫ）。一方、両者が一致していなければサービス提供端末１０３は正当な端末ではないと判定される（認証失敗：ＮＧ）。検証部３０４は相互認証の結果を示す情報（ＯＫ／ＮＧ）を送信部３０７に出力する。送信部３０７は相互認証の結果を示す情報（ＯＫ／ＮＧ）をサービス提供端末１０３に送信する。また、検証部３０４は相互認証に成功したときは成功したことを示す情報（鍵生成命令）を鍵生成部３０５に出力する。鍵生成部３０５は、サービス提供端末１０３から受信した乱数ｒ１と乱数生成部３０３により生成された乱数ｒ２とに基づきセッション鍵ｋｓを生成する。たとえば、鍵生成部３０５は乱数ｒ１と乱数ｒ２の排他的論理和を求め、これをＭＡＣ関数ＭＡＣｋ（）に代入することで生成してもよい（ｋｓ＝ＭＡＣｋ（ｒ１ XOR ｒ２））。なお、鍵生成部３０５は排他的論理和を演算する演算部とＭＡＣ生成部３０２により実現されてもよい。
【００１６】
サービス提供端末１０３の受信部４０３は認証端末１０１から相互認証の結果を受信する。相互認証が成功したのであれば、鍵生成部４０７は、乱数生成部４０１が生成した乱数ｒ１と認証端末１０１から受信された乱数ｒ２とに基づき鍵ｋｓを生成する。鍵生成部４０７は、認証端末１０１の鍵生成部３０５と同一の手法によりセッション鍵ｋｓを生成する。たとえば、鍵生成部４０７は、乱数ｒ１、ｒ２との排他的論理和を求め、これをＭＡＣ関数ＭＡＣｋ（）に代入することでセッション鍵ｋｓを生成する。この場合、鍵生成部４０７は排他的論理和を演算する演算部とＭＡＣ生成部４０５により実現されてもよい。
【００１７】
このように手順Iによれば認証端末１０１とサービス提供端末１０３とが事前共有鍵ｋを用いて相互認証を実行する。さらに、認証端末１０１とサービス提供端末１０３とが事前共有鍵ｋを用いてセッション鍵ｋｓを共有する。
【００１８】
［手順II］
手順IIは、たとえば、サービス利用端末１０４から認証端末１０１に対して認証ハンドオーバの開始要求（セッション鍵ｋｓの提供要求）を送信することで開始される。たとえば、サービス利用端末１０４の送信部５０１は当該要求を認証端末１０１に送信する。
【００１９】
認証端末１０１の受信部３０１はサービス利用端末１０４から当該要求を受信すると、認証端末１０１とサービス提供端末１０３との間で共有しているセッション鍵ｋｓをサービス利用端末１０４に送信部３０７を通じて送信する。
【００２０】
サービス利用端末１０４の受信部５０３はセッション鍵ｋｓを認証端末１０１から受信する。なお、セッション鍵ｋｓはＭＡＣｋ（ｒ１ XOR ｒ２）である。
【００２１】
なお、手順IIにおいて認証端末１０１はサービス提供端末１０３を認証してもよい。つまり、認証端末１０１は、認証に成功すると、セッション鍵ｋｓをサービス利用端末１０４に提供し、認証に失敗すすると、セッション鍵ｋｓをサービス利用端末１０４に提供しない。
【００２２】
［手順III］
手順IIIは、たとえば、サービス利用端末１０４からサービス提供端末１０３に対して認証ハンドオーバの開始要求を送信することで開始される。たとえば、サービス利用端末１０４の送信部５０１は、乱数生成部５０２が生成した乱数ｒ３を含む当該要求をサービス提供端末１０３に送信する。乱数ｒ３は第三乱数と呼ばれてもよい。
【００２３】
図６が示すように、サービス提供端末１０３は受信部４０３でサービス利用端末１０４から乱数ｒ３を伴う要求を受信する。受信部４０３は乱数ｒ３をＭＡＣ生成部６０２に出力する。ＭＡＣ生成部６０２は、乱数生成部６０１により生成された乱数ｒ４とサービス利用端末１０４から受信した乱数ｒ３に基づき第三認証データＭＡＣｋｓ（ｒ３||ｒ４）を生成し、連結部６０３に出力する。乱数ｒ４は第四乱数と呼ばれてもよい。ＭＡＣ生成部６０２は、ＭＡＣ関数ＭＡＣｋｓ（）を使用して認証データを生成する。ＭＡＣ関数ＭＡＣｋｓ（）はセッション鍵ｋｓによって定まるＭＡＣ関数である。連結部６０３は、第三認証データＭＡＣｋｓ（ｒ３||ｒ４）に乱数生成部６０１により生成された乱数ｒ４を連結し、連結結果を送信部４０２に出力する。送信部４０２は認証データＭＡＣｋｓ（ｒ３||ｒ４）||ｒ４をサービス利用端末１０４に送信する。
【００２４】
サービス利用端末１０４の受信部５０３はサービス提供端末１０３から認証データＭＡＣｋｓ（ｒ３||ｒ４）||ｒ４を受信する。受信部５０３は認証データＭＡＣｋｓ（ｒ３||ｒ４）||ｒ４を分離部５０４に出力する。分離部５０４は認証データＭＡＣｋｓ（ｒ３||ｒ４）||ｒ４を第三認証データＭＡＣｋｓ（ｒ３||ｒ４）と乱数ｒ４とに分離する。分離部５０４は第三認証データＭＡＣｋｓ（ｒ３||ｒ４）を検証部５０６に出力し、乱数ｒ４をＭＡＣ生成部５０５に出力する。ＭＡＣ生成部５０５は、セッション鍵ｋｓによって定まるＭＡＣ関数ＭＡＣｋｓ（）に、乱数生成部５０２により生成された乱数ｒ３と、サービス提供端末１０３において生成された乱数ｒ４と代入して第三確認データＭＡＣｋｓ（ｒ３||ｒ４）を生成し、検証部５０６に出力する。検証部５０６は、サービス提供端末１０３で生成された第三認証データＭＡＣｋｓ（ｒ３||ｒ４）とサービス利用端末１０４で生成された第三確認データＭＡＣｋｓ（ｒ３||ｒ４）とが一致するかどうかに基づき、サービス提供端末１０３が正当な端末かどうかを判定する。サービス提供端末１０３で生成された第三認証データＭＡＣｋｓ（ｒ３||ｒ４）とサービス利用端末１０４で生成された第三確認データＭＡＣｋｓ（ｒ３||ｒ４）とが一致していれば、認証成功（ＯＫ）と判定される。一方、サービス提供端末１０３で生成された第三認証データＭＡＣｋｓ（ｒ３||ｒ４）とサービス利用端末１０４で生成された第三確認データＭＡＣｋｓ（ｒ３||ｒ４）とが一致していなければ、認証失敗（ＮＧ）と判定される。認証失敗（ＮＧ）であれば、送信部５０１は認証失敗（ＮＧ）を示す認証結果をサービス提供端末１０３に送信する。一方で、認証成功（ＯＫ）であれば、ＭＡＣ生成部５０５は、サービス提供端末１０３で生成された乱数ｒ４をＭＡＣ関数ＭＡＣｋｓ（）に代入して第四認証データＭＡＣｋｓ（ｒ４）を生成する。送信部５０１は、認証成功（ＯＫ）示す認証結果とともに第四認証データＭＡＣｋｓ（ｒ４）をサービス提供端末１０３に送信する。
【００２５】
サービス提供端末１０３の受信部４０３は認証結果を受信する。とりわけ、認証成功を示す認証結果と第四認証データＭＡＣｋｓ（ｒ４）を受信すると、第四認証データＭＡＣｋｓ（ｒ４）を検証部６０６に出力する。また、ＭＡＣ生成部６０２は、乱数生成部６０１が生成した乱数ｒ４をＭＡＣ関数ＭＡＣｋｓ（）に代入することで第四確認データＭＡＣｋｓ（ｒ４）を生成し、検証部６０６に出力する。検証部６０６は、サービス提供端末１０３で生成された第四確認データＭＡＣｋｓ（ｒ４）とサービス利用端末１０４で生成された第四認証データＭＡＣｋｓ（ｒ４）が一致するかどうかに基づき、サービス利用端末１０４が正当な端末かどうかを判定する。両者が一致すれば、サービス利用端末１０４は正当な端末と判定され（認証成功：ＯＫ）、両者が一致しなければ、サービス利用端末１０４は正当な端末ではないと判定される（認証失敗：ＮＧ）。検証部６０６は送信部４０２を通じて検証結果（ＯＫ／ＮＧ）をサービス利用端末１０４に送信する。認証成功であれば、排他的論理和部６０４は、サービス利用端末１０４から受信された乱数ｒ３と乱数生成部６０１により生成された乱数ｒ４との排他的論理和を求め、鍵生成部６０５に出力する。鍵生成部６０５は、セッション鍵ｋｓによって定まるＭＡＣ関数ＭＡＣｋｓ（）に、乱数ｒ３と乱数ｒ４の排他的論理和を代入することで、新しいセッション鍵ｋａを生成する。新しいセッション鍵ｋａは第二セッション鍵の一例である。
【００２６】
また、サービス利用端末１０４の受信部５０３が検証結果（ＯＫ）をサービス提供端末１０３から受信すると、相互認証が完了する。そこで、鍵生成部５０７は、乱数生成部５０２により生成された乱数ｒ３とサービス提供端末１０３から提供された乱数ｒ４との排他的論理和を求める。さらに、鍵生成部５０７は、セッション鍵ｋｓによって定まるＭＡＣ関数ＭＡＣｋｓ（）に、乱数ｒ３と乱数ｒ４の排他的論理和を代入することで、新しいセッション鍵ｋａを生成する。ｋａ＝ＭＡＣｋｓ（ｒ３ XOR ｒ４）。鍵生成部５０７は、排他的論理和を演算する演算部とＭＡＣ生成部５０５により実現されてもよい。
【００２７】
このようにサービス利用端末１０４とサービス提供端末１０３との間で相互認証と新しいセッション鍵ｋａの共有とが完了すると、サービス提供端末１０３は新しいセッション鍵ｋａを使用してサービス利用端末１０４にサービスを提供する。サービスは、たとえば、動画や音楽などのコンテンツを配信するサービスなどである。つまり、サービス提供端末１０３は送信部４０２からコンテンツ（サービス）を送信する。サービス利用端末１０４は受信部５０３でコンテンツ（サービス）を受信する。
【００２８】
＜フローチャート＞
図７は手順Ｉにおいてサービス提供端末１０３が実行する各工程を示すフローチャートである。各工程はＣＰＵがプログラムを実行することで実現されてもよいし、一部またはすべての工程がＡＳＩＣ（特定用途集積回路）やＦＰＧＡ（フィールドプログラマブルゲートアレイ）などのハードウエアによって実現されてもよい。
【００２９】
Ｓ７０１でサービス提供端末１０３は認証端末１０１から相互認証の開始要求を受信する。Ｓ７０２でサービス提供端末１０３は乱数ｒ１を生成する。Ｓ７０３でサービス提供端末１０３は乱数ｒ１を認証端末１０１に送信する。
【００３０】
Ｓ７０４でサービス提供端末１０３は認証端末１０１から認証データＭＡＣｋ（ｒ１||ｒ２）||ｒ２を受信する。Ｓ７０４でサービス提供端末１０３は第一確認データを生成する。たとえば、サービス提供端末１０３は乱数生成部４０１により生成された乱数ｒ１と認証端末１０１から受信された乱数ｒ２とに基づき第一確認データＭＡＣｋ（ｒ１||ｒ２）を生成する。Ｓ４０６は、サービス提供端末１０３は認証端末１０１から受信された認証データＭＡＣｋ（ｒ１||ｒ２）||ｒ２から分離した第一認証データＭＡＣｋ（ｒ１||ｒ２）と第一確認データＭＡＣｋ（ｒ１||ｒ２）とが一致するかどうかに基づき認証に成功したかどうかを判定する。両者が一致すれば、サービス提供端末１０３は認証成功と判定し、Ｓ７０７に進む。両者が不一致であれば、サービス提供端末１０３は認証失敗と判定し、認証失敗を示す認証結果を認証端末１０１に送信し、相互認証処理を終了する。
【００３１】
Ｓ７０７でサービス提供端末１０３は第二認証データを生成する。たとえば、サービス提供端末１０３は認証端末１０１から受信された乱数ｒ２をＭＡＣ関数ＭＡＣｋ（）に代入することで第二認証データＭＡＣｋ（ｒ２）を生成する。Ｓ７０８でサービス提供端末１０３は第二認証データＭＡＣｋ（ｒ２）を認証端末１０１に送信する。Ｓ７０９でサービス提供端末１０３は認証端末１０１から相互認証結果（ＯＫ／ＮＧ）を受信する。Ｓ７１０でサービス提供端末１０３は受信した相互認証結果に基づき、相互認証に成功したかどうかを判定する。相互認証に失敗したのであれば、サービス提供端末１０３はセッション鍵ｋｓを生成せずに、相互認証処理を終了する。一方で、相互認証に成功したのであれば、サービス提供端末１０３はＳ７１１に進む。Ｓ７１１でサービス提供端末１０３は、セッション鍵ｋｓを生成する。たとえば、サービス提供端末１０３は、乱数ｒ１と乱数ｒ２の排他的論理和を求め、これをＭＡＣ関数ＭＡＣｋ（）に代入することでセッション鍵ｋｓを生成する（ｋｓ＝ＭＡＣｋ（ｒ１ XOR ｒ２））。
【００３２】
図８は手順Ｉにおいて認証端末１０１が実行する各工程を示すフローチャートである。各工程はＣＰＵがプログラムを実行することで実現されてもよいし、一部またはすべての工程がＡＳＩＣやＦＰＧＡなどのハードウエアによって実現されてもよい。
【００３３】
Ｓ８０１で認証端末１０１は相互認証の開始要求をサービス提供端末１０３に送信する。Ｓ８０１で認証端末１０１はサービス提供端末１０３から乱数ｒ１を受信する。
【００３４】
Ｓ８０３で認証端末１０１は乱数ｒ２を生成する。Ｓ８０４で認証端末１０１は認証データＭＡＣｋ（ｒ１||ｒ２）||ｒ２を生成する。たとえば、認証端末１０１はサービス提供端末１０３で生成された乱数ｒ１と自己が生成した乱数ｒ２とに基づき第一認証データＭＡＣｋ（ｒ１||ｒ２）を生成する。また、認証端末１０１は第一認証データＭＡＣｋ（ｒ１||ｒ２）に乱数ｒ２を連結して認証データＭＡＣｋ（ｒ１||ｒ２）||ｒ２を生成する。Ｓ８０５で認証端末１０１は第一認証データＭＡＣｋ（ｒ１||ｒ２）を含む認証データＭＡＣｋ（ｒ１||ｒ２）||ｒ２をサービス提供端末１０３に送信する。
【００３５】
Ｓ８０６で認証端末１０１はサービス提供端末１０３から認証結果を受信する。認証結果は、ＯＫ／ＮＧと相互認証のための第二認証データＭＡＣｋ（ｒ２）を含むものとする。なお、これらは別々に送受信されてもよい。Ｓ８０７で認証端末１０１は受信された認証結果に基づきサービス提供端末１０３での認証が成功したかどうかを判定する。認証に失敗したのであれば認証端末１０１は相互認証を終了する。一方、認証に成功したのであれば認証端末１０１はＳ８０８に進む。Ｓ８０８で認証端末１０１は第二確認データＭＡＣｋ（ｒ２）を生成する。たとえば、認証端末１０１は自己が生成した乱数ｒ２をＭＡＣ関数ＭＡＣｋ（）に代入することで第二確認データＭＡＣｋ（ｒ２）を生成する。Ｓ８０９で認証端末１０１は相互認証に成功したかどうかを判定する。たとえば、認証端末１０１はサービス提供端末１０３から受信された第二認証データＭＡＣｋ（ｒ２）と自己が作成した第二確認データＭＡＣｋ（ｒ２）とが一致するかどうかに基づき、相互認証に成功したかどうかを判定する。両者が不一致であれば、相互認証が失敗したと判定し、認証端末１０１は相互認証に失敗したことを示す認証結果をサービス提供端末１０３に送信し、相互認証処理を終了する。一方で、両者が一致していれば相互認証に成功したと判定し、認証端末１０１はＳ８１０に進む。Ｓ８１０で認証端末１０１は相互認証に成功したことを示す相互認証結果をサービス提供端末１０３に送信する。
【００３６】
Ｓ８１１で認証端末１０１は乱数ｒ１と乱数ｒ２の排他的論理和を求め、これをＭＡＣ関数ＭＡＣｋ（）に代入することでセッション鍵ｋｓを生成する（ｋｓ＝ＭＡＣｋ（ｒ１ XOR ｒ２））。
【００３７】
図９（Ａ）は手順IIにおいてサービス利用端末１０４が実行する各工程を示すフローチャートである。各工程はＣＰＵがプログラムを実行することで実現されてもよいし、一部またはすべての工程がＡＳＩＣやＦＰＧＡなどのハードウエアによって実現されてもよい。
【００３８】
Ｓ９０１でサービス利用端末１０４はセッション鍵ｋｓの要求を認証端末１０１に送信する。Ｓ９０２でサービス利用端末１０４はセッション鍵ｋｓを認証端末１０１から受信する。
【００３９】
図９（Ｂ）は手順IIにおいて認証端末１０１が実行する各工程を示すフローチャートである。各工程はＣＰＵがプログラムを実行することで実現されてもよいし、一部またはすべての工程がＡＳＩＣやＦＰＧＡなどのハードウエアによって実現されてもよい。
【００４０】
Ｓ９１１で認証端末１０１はセッション鍵ｋｓの要求をサービス利用端末１０４から受信する。Ｓ９１２で認証端末１０１はセッション鍵ｋｓをサービス利用端末１０４に送信する。
【００４１】
図１０は手順IIIにおいてサービス利用端末１０４が実行する各工程を示すフローチャートである。各工程はＣＰＵがプログラムを実行することで実現されてもよいし、一部またはすべての工程がＡＳＩＣやＦＰＧＡなどのハードウエアによって実現されてもよい。
【００４２】
Ｓ１００１でサービス利用端末１０４は乱数ｒ３を生成する。Ｓ１００２でサービス利用端末１０４は乱数ｒ３をサービス提供端末１０３に送信する。なお、乱数ｒ３は認証ハンドオーバの開始要求とともに送信されてもよい。
【００４３】
Ｓ１００２でサービス利用端末１０４は第三認証データＭＡＣｋｓ（ｒ３||ｒ４）をサービス提供端末１０３から受信する。第三認証データＭＡＣｋｓ（ｒ３||ｒ４）は認証データＭＡＣｋｓ（ｒ３||ｒ４）||ｒ４として受信されてもよい。Ｓ１００４でサービス利用端末１０４は第三確認データＭＡＣｋｓ（ｒ３||ｒ４）を生成する。Ｓ１００５でサービス利用端末１０４は第三認証データＭＡＣｋｓ（ｒ３||ｒ４）と第三確認データＭＡＣｋｓ（ｒ３||ｒ４）とに基づき認証が成功したかどうかを判定する。第三認証データＭＡＣｋｓ（ｒ３||ｒ４）と第三確認データＭＡＣｋｓ（ｒ３||ｒ４）とが一致していれば認証成功と判定し、サービス利用端末１０４はＳ１００６に進む。一方、第三認証データＭＡＣｋｓ（ｒ３||ｒ４）と第三確認データＭＡＣｋｓ（ｒ３||ｒ４）とが一致していなければ認証失敗と判定し、サービス利用端末１０４は認証失敗を示す認証結果をサービス提供端末に送信し、認証ハンドオーバを終了する。
【００４４】
Ｓ１００６でサービス利用端末１０４は第四認証データＭＡＣｋｓ（ｒ４）を生成する。Ｓ１００７でサービス利用端末１０４は認証成功を示す認証結果とともに第四認証データＭＡＣｋｓ（ｒ４）をサービス提供端末１０３に送信する。
【００４５】
Ｓ１００８でサービス利用端末１０４は相互認証結果をサービス提供端末１０３から受信する。Ｓ１００９でサービス利用端末１０４は相互認証結果に基づき相互認証が成功したかどうかを判定する。相互認証に失敗したのであれば、サービス利用端末１０４は認証ハンドオーバを終了する。一方で、相互認証に成功したのであれば、サービス利用端末１０４は新たなセッション鍵ｋａを生成する。
【００４６】
図１１は手順IIIにおいてサービス提供端末１０３が実行する各工程を示すフローチャートである。各工程はＣＰＵがプログラムを実行することで実現されてもよいし、一部またはすべての工程がＡＳＩＣやＦＰＧＡなどのハードウエアによって実現されてもよい。
【００４７】
Ｓ１１０１でサービス提供端末１０３はサービス利用端末１０４から認証ハンドオーバ要求とともに乱数ｒ３を受信する。
【００４８】
Ｓ１１０２でサービス提供端末１０３は乱数ｒ４を生成する。Ｓ１１０３でサービス提供端末１０３は第三認証データＭＡＣｋｓ（ｒ３||ｒ４）を生成し、さらに乱数ｒ４を連結して認証データＭＡＣｋｓ（ｒ３||ｒ４）||ｒ４を生成する。Ｓ１１０４でサービス提供端末１０３は第四認証データＭＡＣｋｓ（ｒ３||ｒ４）を含む認証データＭＡＣｋｓ（ｒ３||ｒ４）||ｒ４をサービス利用端末１０４に送信する。
【００４９】
Ｓ１１０５でサービス提供端末１０３はサービス利用端末１０４から認証結果を受信する。なお、認証結果が成功を示している場合、第四認証データＭＡＣｋｓ（ｒ４）も認証結果とともに受信される。Ｓ１１０６でサービス提供端末１０３は認証結果に基づきサービス利用端末１０４で実行された認証が成功したかどうかを判定する。認証に失敗したのであれば、サービス提供端末１０３は認証ハンドオーバ処理を終了する。一方、認証に成功したのであればサービス提供端末１０３はＳ１１０７に進む。
【００５０】
Ｓ１１０７でサービス提供端末１０３は第四確認データＭＡＣｋｓ（ｒ４）を生成する。Ｓ１１０８でサービス提供端末１０３はサービス利用端末１０４から受信された第四認証データＭＡＣｋｓ（ｒ４）と自己が作成した第四確認データＭＡＣｋｓ（ｒ４）とが一致しているかどうかに基づき、相互認証が成功したかどうかを判定する。両者が不一致であれば相互認証が失敗したと判定し、サービス提供端末１０３は認証ハンドオーバ処理を終了する。一方、両者が一致していれば相互認証が成功したと判定し、サービス提供端末１０３はＳ１１０９に進む。
【００５１】
Ｓ１１０９でサービス提供端末１０３は相互認証結果をサービス利用端末１０４に送信する。
【００５２】
Ｓ１１１０でサービス提供端末１０３は新しいセッション鍵ｋａを生成する。
【００５３】
Ｓ１１１１でサービス提供端末１０３は新しいセッション鍵ｋａを用いてサービス利用端末１０４にサービスを提供する。
【００５４】
＜まとめ＞
以上説明したように、本実施形態によれば、認証端末１０１、サービス提供端末１０３およびサービス利用端末１０４を有する認証ハンドオーバシステム１００において認証のハンドオーバを実行する認証ハンドオーバ方法が提供される。
【００５５】
手順Iにおいて、認証端末１０１はサービス提供端末１０３と相互認証を実行し、当該相互認証に成功すると第一セッション鍵ｋｓの共有を実行する。手順IIにおいて、サービス利用端末１０４はサービス提供端末１０３と認証端末１０１との間で共有されている第一セッション鍵を認証端末１０１から受信する。手順IIIにおいて、サービス利用端末１０４は認証端末１０１から受信した第一セッション鍵を用いてサービス提供端末１０３と相互認証を実行する。さらに、サービス提供端末１０３はサービス利用端末１０４との相互認証に成功すると、第一セッション鍵を用いてサービス利用端末１０４と第二セッション鍵を共有し、当該第二セッション鍵を用いてサービス利用端末１０４にサービスを提供する。このように、サービス利用端末１０４はサービス提供端末１０３と認証端末１０１との間で共有されている第一セッション鍵を既知の鍵として用いてサービス提供端末１０３と相互認証および鍵共有を実行する。つまり、認証端末１０１、サービス提供端末１０３およびサービス利用端末１０４との間で認証のハンドオーバを実現することが可能となる。また、サービスを利用する端末と認証を行う端末とが分離されているため、相互認証と鍵共有の安全性が高まるであろう。
【００５６】
手順Iに関して説明したように、認証端末１０１とサービス提供端末１０３は事前に共有している情報を用いて相互認証と第一セッション鍵の共有とを実行してもよい。具体的には、認証端末１０１とサービス提供端末１０３は事前に共有している情報である事前共有鍵を用いて相互認証と第一セッション鍵の共有とを実行してもよい。たとえば、ＳＩＭカードのような認証端末１０１はサービス提供端末１０３と同様にサービス提供者側の管理下にあり、相互認証や鍵共有に必要な情報を安全に維持することができる。本実施形態では、事前共有鍵についてはサービス利用端末１０４に渡す必要がない。したがって、事前共有鍵が漏洩することは困難であり、サービス提供端末１０３とサービス利用端末１０４との間の相互認証と鍵共有とが安全に実行することが可能となろう。
【００５７】
手順Ｉでは、たとえば、サービス提供端末１０３は第一乱数ｒ１を生成して認証端末１０１に送信する。認証端末１０１は第一乱数ｒ１を受信し、第二乱数ｒ２を生成し、事前共有鍵によって確定する関数に第一乱数ｒ１と第二乱数ｒ２を代入することで第一認証データを生成し、当該第一認証データをサービス提供端末１０３に送信する。サービス提供端末１０３は第一認証データを受信し、第一乱数ｒ１と事前共有鍵によって確定する関数に基づき第一確認データを生成し、認証端末１０１から受信した第一認証データと第一確認データとを比較することで認証端末１０１を認証し、認証端末１０１から受信した第二乱数ｒ２と事前共有鍵によって確定する関数に基づき第二認証データを生成して認証端末１０１に送信する。認証端末１０１は第二認証データをサービス提供端末１０３から受信し、認証端末１０１が生成した第二乱数ｒ２と事前共有鍵によって確定する関数に基づき第二確認データを生成し、第二認証データと第二確認データとを比較することでサービス提供端末１０３を認証する。認証端末１０１とサービス提供端末１０３との間の相互認証が成功すると、認証端末１０１とサービス提供端末１０３とはそれぞれ第一乱数ｒ１、第二乱数ｒ２と事前共有鍵によって確定する関数に基づき第一セッション鍵を生成することで認証端末１０１とサービス提供端末１０３との間で第一セッション鍵を共有する。
【００５８】
手順IIでは、認証端末１０１はサービス利用端末１０４の認証を実行し、サービス利用端末１０４の認証が成功すると、サービス提供端末１０３と認証端末１０１との間で共有されている第一セッション鍵をサービス利用端末１０４へ送信してもよい。このようにサービス利用端末１０４を認証することで、さらに認証ハンドオーバの安全性が高まるであろう。
【００５９】
手順IIIでは、たとえば、サービス利用端末１０４は第三乱数ｒ３を生成してサービス提供端末１０３に送信する。サービス提供端末１０３はサービス利用端末１０４から第三乱数ｒ３を受信し、第四乱数ｒ４を生成し、第一セッション鍵によって確定する関数と第三乱数ｒ３、第四乱数ｒ４に基づいて第三認証データを生成してサービス利用端末１０４に送信する。サービス利用端末１０４は第三認証データを受信し、第一セッション鍵によって確定する関数と第三乱数ｒ３、第四乱数ｒ４に基づいて第三確認データを生成し、第三認証データと第三確認データとを比較することでサービス提供端末１０３を認証し、サービス提供端末１０３の認証が成功すると、第一セッション鍵によって確定する関数と第四乱数ｒ４に基づいて第四認証データを生成してサービス提供端末１０３に送信する。サービス提供端末１０３はサービス利用端末１０４から第四認証データを受信し、第一セッション鍵によって確定する関数と第四乱数ｒ４に基づいて第四確認データを生成し、第四認証データと第四確認データとを比較することでサービス利用端末１０４を認証する。サービス利用端末１０４とサービス提供端末１０３との間の相互認証が成功すると、サービス利用端末１０４とサービス提供端末１０３とはそれぞれ第三乱数ｒ３、第四乱数ｒ４と第一セッション鍵によって確定する関数に基づき第二セッション鍵を生成することでサービス利用端末１０４とサービス提供端末１０３との間で第二セッション鍵を共有する。
【００６０】
手順I、IIIでは具体的な認証データの生成方法やセッション鍵の生成方法について言及したが、これらは一例に過ぎない。手順Iでは、手順IIIで必要となる事前共有情報を生成できれば十分である。また、手順IIでは事前共有情報を認証端末１０１からサービス利用端末１０４に提供できれば十分である。また、手順IIIでは、この事前共有情報を用いてサービス提供端末１０３とサービス利用端末１０４との間で相互認証とセッション鍵の共有とが実行できれば十分である。
【００６１】
図３を用いて説明したように、認証端末１０１のＭＡＣ生成部３０２、乱数生成部３０３および検証部３０４などはサービス提供端末１０３と相互認証を実行する手段として機能する。また、鍵生成部３０５などは、サービス提供端末１０３との相互認証に成功するとサービス提供端末１０３と第一セッション鍵を共有する手段として機能する。また、送信部３０７などはサービス利用端末１０４に第一セッション鍵を送信する手段として機能する。
【００６２】
図４を用いて説明したように、サービス提供端末１０３の乱数生成部４０１、ＭＡＣ生成部４０５および検証部４０６などは認証端末１０１と相互認証を実行する手段として機能する。鍵生成部４０７などは、認証端末１０１との相互認証に成功すると認証端末１０１と第一セッション鍵を共有する手段として機能する。
【００６３】
図５を用いて説明したように、サービス利用端末１０４の受信部５０３などはサービス提供端末１０３と認証端末１０１との間で共有されている第一セッション鍵を認証端末１０１から受信する手段として機能する。乱数生成部５０２、ＭＡＣ生成部５０５および検証部５０６などは認証端末１０１から受信した第一セッション鍵を用いてサービス提供端末１０３と相互認証を実行する手段として機能する。鍵生成部５０７などはサービス提供端末１０３との相互認証が成功すると、サービス提供端末１０３との間で第二セッション鍵を共有する手段として機能する。受信部５０３は第二セッション鍵を用いてサービス提供端末１０３からサービスを受信する手段として機能する。
【００６４】
図６を用いて説明したように、サービス提供端末１０３の乱数生成部６０１、ＭＡＣ生成部６０２および検証部６０６などは認証端末１０１と共有している第一セッション鍵を用いてサービス利用端末１０４と相互認証を実行する手段として機能する。鍵生成部６０５などは、サービス利用端末１０４との相互認証に成功すると、サービス利用端末１０４と第二セッション鍵を共有する手段として機能する。送信部４０２は、当該第二セッション鍵を用いてサービス利用端末１０４にサービスを提供する手段として機能する。なお、サービス提供端末１０３のＣＰＵなどはコンテンツに対して第二セッション鍵を適用する手段として機能する。
【００６５】
認証端末１０１、サービス提供端末１０３およびサービス利用端末１０４の各機能の一部またはすべてはＣＰＵなどのプロセッサがプログラムを実行することで実現してもよいし、ＡＳＩＣなどのハードウエアが実現してもよい。プログラムはコンピュータ可読記録媒体に記録されて提供される。
【図１】
0006487352.tif 000002
【図２】
0006487352.tif 000003
【図３】
0006487352.tif 000004
【図４】
0006487352.tif 000005
【図５】
0006487352.tif 000006
【図６】
0006487352.tif 000007
【図７】
0006487352.tif 000008
【図８】
0006487352.tif 000009
【図９】
0006487352.tif 000010
【図１０】
0006487352.tif 000011
【図１１】
0006487352.tif 000012