(57)【要約】【課題】第１の認証演算処理と第２の認証演算処理の、２段の認証演算処理を行う認証方法において、第２の認証演算処理に対して第１の認証演算処理と同一の鍵を与えた場合、不正に認証が成功してしまう。【解決手段】必要認証回数が何回であるか、および実行中の認証演算処理が何回目の認証演算処理であるかを判定し、実行中の認証演算処理が第１の認証演算処理であるか、あるいは第２の認証演算処理であるかを明確に区別する。また、２段の認証演算処理で用いられた各認証中間鍵の値を比較回路によって比較し、同一である場合は不正な認証処理が実行されたものとして、ホスト機器はターゲット機器との認証の失敗を判定する。【特許請求の範囲】
【請求項１】
ターゲット機器とホスト機器との間で行われる認証方法であって、
前記ホスト機器が有する認証用ホスト鍵と前記ターゲット機器が有する認証用スレーブ鍵に基づく認証演算を行って認証中間鍵を生成する第１のステップと、
前記認証中間鍵の値に応じて認証の成否を判定する第２のステップと、
前記第２のステップが終了するごとに、前記第２のステップが行われた回数をカウントする第３のステップとを備え、
前記第３のステップでカウントされた回数が、所定の値と一致するまで、前記第１のステップから前記第３のステップまでを繰り返し行うことを特徴とする認証方法。
【請求項２】
前記所定の値とは、認証が成功するまでに行うべき認証回数に関する情報であることを特徴とする請求項１記載の認証方法。
【請求項３】
前記所定の値とは、認証が成功するまでに生成されるべき認証中間鍵の個数に関する情報であることを特徴とする請求項１記載の認証方法。
【請求項４】
前記第２のステップの結果、認証が成功したと判定された場合のみ、前記第３のステップを行うことを特徴とする請求項１記載の認証方法。
【請求項５】
前記所定の値が２以上である場合、Ｎ（Ｎは所定の値以下の整数）回目の前記第１のステップで生成された前記認証中間鍵と、Ｎ−１回目の前記第１のステップで生成された前記認証中間鍵とを比較する第４のステップをさらに備え、
前記第４のステップの結果、２つの認証中間鍵が等しかった場合には、以降の認証処理を実行不可とすることを特徴とする請求項４記載の認証方法。
【請求項６】
前記所定の値が１である場合に、前記第３のステップを１回終了すると認証を成功させることを特徴とする請求項４記載の認証方法。
【請求項７】
請求項１の認証方法を用い、２回以上の認証演算処理を行って認証に成功した場合に、前記ターゲット機器に格納された機密情報を再暗号化する再暗号化方法であって、
前記ターゲット機器から暗号化されたコンテンツ鍵を読み出す第５のステップと、
前記暗号化されたコンテンツ鍵を所定の認証中間鍵を用いて復号化し、平文のコンテンツ鍵を得る第６のステップと、
前記平文のコンテンツ鍵を、前記所定の認証中間鍵とは異なる認証中間鍵で再暗号化する第７のステップとを備えることを特徴とする再暗号化方法。
【請求項８】
ターゲット機器との間で認証処理を行う機密情報処理用ホスト機器であって、
ターゲット機器との間で前記暗号化されたコンテンツを含む機密情報の入出力を行う第１のインターフェース部と、
前記第１のインターフェースを介して入力された暗号化されたコンテンツに対して、予め定められた所定のシーケンスで復号化処理を行う機密情報処理部と、
前記機密情報処理部に対して、前記所定のシーケンスの起動を指示するＣＰＵとを備え、
前記機密情報処理部は、
認証用ホスト鍵と、
前記認証用ホスト鍵と前記ターゲット機器に格納された認証用スレーブ鍵とを用い認証演算処理を行い、認証中間鍵を生成する認証演算処理回路と、
前記認証中間鍵の値に応じて認証の成否を判定する認証判定回路と、
前記認証判定回路の判定回数をカウントするカウンタとを備え、
前記カウンタの値を所定の値と比較し、一致するまで複数回にわたって前記認証演算処理回路における認証処理を繰り返すことを特徴とする機密情報処理用ホスト機器。
【請求項９】
前記認証演算処理回路が複数回の認証演算処理を行った場合に生成される認証中間鍵の値を比較する鍵比較回路をさらに備えることを特徴とする請求項８記載の機密情報処理用ホスト機器。
【請求項１０】
前記機密情報処理部が、
前記認証処理に成功した場合に、
前記ターゲット機器から暗号化されたコンテンツ鍵を読み出し、
前記暗号化されたコンテンツ鍵を所定の認証中間鍵を用いて復号化し、平文のコンテンツ鍵を取得し、
前記平文のコンテンツ鍵を、前記所定の認証中間鍵とは異なる認証中間鍵で再暗号化することを特徴とする請求項８記載の機密情報処理用ホスト機器。
【発明の詳細な説明】
【技術分野】
【０００１】  本発明は、ターゲット機器内部に記憶される機密情報をホスト機器で扱う際に、ターゲット機器とホスト機器との間で行われる認証方法に関する。
【背景技術】
【０００２】  著作物や個人情報等、不正なコピーあるいは外部への漏洩を防ぐ必要があるコンテンツを記憶するターゲット機器においては、コンテンツは暗号化された状態でターゲット機器に格納される。ターゲット機器に格納された暗号化コンテンツをホスト機器が扱う際は、ターゲット機器とホスト機器の間で認証処理を行う。認証が失敗すれば、暗号化コンテンツを復号化するためのコンテンツ鍵を、ターゲット機器から入手できないような構成にしている。このように構成することにより、不正なホスト機器による暗号化コンテンツの復号化を防いでいる。なお、ターゲット機器とは、例えば、ＳＤカードのようなメモリカードのことを示す。ホスト機器とは、メモリカードからデータを読み出す半導体集積回路、あるいはその半導体集積回路を実装したセット機器、さらにはターゲット機器へとコンテンツを配信するコンテンツ配信機器のことを示す。【０００３】  認証方法に関する従来技術として特許文献１がある。特許文献１においては、第１の認証演算処理と第２の認証演算処理の２段の認証によって認証処理を行うという特徴がある。図７は、特許文献１に記載されるターゲット機器とホスト機器との間の認証方法をフローチャートで示したものである。【０００４】  第２の認証演算処理は、認証用ホスト鍵が破られて第１の認証演算処理が不正に認証ＯＫとなった場合に、破られた認証用ホスト鍵の情報を持つターゲット機器と破られた認証用ホスト鍵を持つホスト機器との間での認証を最終的に失敗させるために、第１の認証演算処理の後に実行される拡張処理である。すなわち、第１の認証演算処理が不正に認証ＯＫとなっても、破られた認証用ホスト鍵を持つホスト機器の使用をこの拡張処理により無効化できるという特徴がある。第２の認証演算処理に用いられる第２の認証用スレーブ鍵は、認証用ホスト鍵が流出して第１の認証演算処理が破られたことが発覚した場合に、ネットワーク等を経由した電子配信でターゲット機器に実装される。すなわち、第２の認証用スレーブ鍵がターゲット機器内に実装されていない場合は、第１の認証演算処理は破られていないので第２の認証演算処理を行う必要はないことになる。【０００５】  認証方法のフローチャートについて図７を参照しながら説明を加える。まず、ホスト機器は、ホスト機器が有する認証用ホスト鍵７０１と、ターゲット機器から読み出した第１の認証用スレーブ鍵７０２を入力として、第１の認証演算処理７０３を実行する。第１の認証演算処理７０３は、一方向関数を含む複数の関数から構成される処理であって、認証に成功すれば第１の認証中間鍵７０４が生成され、認証に失敗すれば値“０”が生成される処理である。第１の認証演算処理７０３が終了すると、生成された第１の認証中間鍵７０４あるいは値“０”が、ホスト機器内の認証中間鍵格納エリアへと格納され、認証判定が行われる。認証判定では、第１の認証演算処理の出力が“０”であるか否かが判定される。“０”である場合は、ホスト機器は、不正なアクセスであるとして認証を失敗させ、以降の処理を行わない。【０００６】  第１の認証演算処理７０３に成功すると、ホスト機器は、第２の認証用スレーブ鍵７０５がターゲット機器内に存在するかど��かの存在判定を行う。第２の認証用スレーブ鍵７０５は、存在する場合は、予めターゲット機器内の所定の領域に格納されている。【０００７】  第２の認証用スレーブ鍵７０５がターゲット機器内に存在しない場合は、第２の認証演算処理７０６を行う必要はないので認証を完了する。第２の認証用スレーブ鍵７０５がターゲット機器内に存在する場合は、これをターゲット機器から読み出し、第２の認証演算処理７０６を行う。第２の認証演算処理７０６は、一方向関数を含む複数の関数から構成される処理であって、認証に成功すれば第２の認証中間鍵７０７が生成され、認証に失敗すれば値“０”が生成される処理である。第２の認証演算処理７０６は、認証用ホスト鍵が破られた場合には、破られた認証用ホスト鍵と新たにターゲット機器内に配置された第２の認証用スレーブ鍵との間の認証を失敗させ、破られていない別の認証用ホスト鍵と第２の認証用スレーブ鍵との間の認証を成功させる処理でもある。言い換えれば、認証用ホスト鍵が破られた場合には、上記の条件を満たす第２の認証用スレーブ鍵を生成し、ターゲット機器内に格納することとなる。【０００８】  第２の認証演算処理７０６が終了すると、生成された第２の認証中間鍵、あるいは値“０”は認証中間鍵格納エリアへと格納され、認証判定が行われる。認証判定では、第２の認証演算処理７０６の出力が“０”であるか否かが判定される。“０”である場合は、ホスト機器は、不正なアクセスであるとして認証を失敗させ、以降の処理を行わない。第２の認証用中間鍵７０７は、その生成の種となる認証用スレーブ鍵が第１の認証用中間鍵７０４と異なるので、その値としても第１の認証用中間鍵７０４と異なる鍵となるべきである。【０００９】  認証用ホスト鍵が破られると、ターゲット機器内に第２の認証用スレーブ鍵が存在しない場合は第２の認証用スレーブ鍵を新規に作成し、ターゲット機器内に第２の認証用スレーブ鍵が既に存在する場合はその値を更新する。この第２の認証用スレーブ鍵の新規作成あるいは更新は、電子配信等によって行われる。第２の認証演算処理によって生成される第２の認証中間鍵の値を更新し、認証用ホスト鍵が破られたホスト機器と、認証用スレーブ鍵を新規作成・更新したターゲット機器との間の認証処理を失敗させる。これにより、破られた認証用ホスト鍵を持つホスト機器の使用を無効化することができる。【００１０】  既にターゲット機器に存在していた暗号化コンテンツ鍵は、第１の認証中間鍵、または更新する前の第２の認証中間鍵で暗号化されている。そのため、値を更新した別の第２の認証中間鍵でコンテンツ鍵を暗号化し直される。【００１１】  ターゲット機器とホスト機器との間での認証が成功すると、ホスト機器は暗号化コンテンツ鍵および暗号化コンテンツをターゲット機器から読み出し、暗号化コンテンツの復号を行う。あるいは、ホスト機器はコンテンツおよびコンテンツ鍵を暗号化し、ターゲット機器への転送を行う。【００１２】  図８は、特許文献１に示される暗号化コンテンツの復号化方法をフローチャートで示したものである。図８において、図７と同一の構成要素については同一の符号を用い、説明を省略する。ホスト機器は、第１の認証中間鍵７０４あ��いは第２の認証中間鍵７０７で暗号化された暗号化コンテンツ鍵８０１を、ターゲット機器から読み出す。ホスト機器は、第２の認証中間鍵７０７を生成している場合は第２の認証中間鍵７０７を、そうでない場合は第１の認証中間鍵７０４を、選択した認証中間鍵８０２とする。そして、読み出した暗号化コンテンツ鍵８０１を、選択した認証中間鍵８０２で復号化することで、平文のコンテンツ鍵８０３を得る。ホスト機器は、コンテンツ鍵８０３で暗号化された暗号化コンテンツ８０４をターゲット機器から読み出し、コンテンツ鍵８０３で復号化することで平文のコンテンツ８０５を得る。【００１３】  図９は、特許文献１に示されるコンテンツの暗号化方法をフローチャートで示したものである。図９において、図７および図８と同一の構成要素については同一の符号を用い、説明を省略する。ホスト機器は、コンテンツ鍵８０３でコンテンツ８０５を暗号化することで暗号化コンテンツ８０４を生成し、ターゲット機器へ転送する。ホスト機器は、第２の認証中間鍵７０７を生成している場合は第２の認証中間鍵７０７を、そうでない場合は第１の認証中間鍵７０４を、選択した認証中間鍵８０２とする。そして、選択した認証中間鍵８０２でコンテンツ鍵８０３を暗号化することで、暗号化コンテンツ鍵８０１を生成し、ターゲット機器へ転送する。【００１４】  図１０は、ターゲット機器内の領域および各領域に格納されるデータを示したものである。図１０において、図７〜図９と同一の構成要素については同一の符号を用い、説明を省略する。【００１５】  認証およびコンテンツの暗号化・復号化において使用されるターゲット機器側のデータについて、ターゲット機器内でそれらのデータを格納する領域には、第１の領域１００１、第２の領域１００２、第３の領域１００３の３つの領域が存在する。第１の領域１００１は、ターゲット機器とホスト機器との間の認証を実行する際にアクセスを行う領域であり、第１の認証用スレーブ鍵７０２が格納される。第２の領域１００２は、ホスト機器とターゲット機器間の認証が成功して初めてアクセスが可能になる領域であり、暗号化コンテンツ鍵８０１が格納される。第３の領域１００３は、ユーザが自由にアクセスできる領域であり、暗号化コンテンツ８０４および第２の認証用スレーブ鍵７０５が格納される。
【特許文献１】特開２０００−３５７１２６号公報
【発明の開示】
【発明が解決しようとする課題】
【００１６】  特許文献１の認証方法によると、認証用ホスト鍵が破られた場合に、破られた認証用ホスト鍵の情報を持つターゲット機器と、破られた認証用ホスト鍵を持つホスト機器との間での認証を失敗させる。そのために、第１の認証演算処理の後に実行される拡張処理である第２の認証演算処理により、破られた認証用ホスト鍵を持つホスト機器の使用を無効化するという特徴がある。【００１７】  しかしながら、第２の認証演算処理に対して、本来使用すべき第２の認証用スレーブ鍵ではなく、第１の認証用スレーブ鍵を与えた場合、認証アルゴリズムが第１の認証演算処理と同一であるとすると、第２の認証演算処理は第１の認証演算処理で生成される第１の認証中間鍵と同じ値の鍵を第２の認証中間鍵として生成してしまう。第２の認証演算処理は、第１の認証演算処理における認証が成功した場合にのみ実行されるため、第１の認証中間鍵の値は“０”ではないことになる。従って、第２の認証中間鍵の値も“０”ではなく、ホスト機器は第２の認証演算処理における認証を成功として判定する。破られた認証用ホスト鍵を持つホスト機器では、本来であれば第２の認証演算処理における認証が失敗すべきであるにも関わらず、認証が成功することになる。このため、破られた認証用ホスト鍵を持つホスト機器による不正なアクセスを許すという課題があった。【００１８】  また、認証用ホスト鍵が破られた場合、既にターゲット機器に存在していた暗号化コンテンツ鍵は、値を更新した別の第２の認証中間鍵で再暗号化する必要がある。しかし、第２の認証演算処理に対して、本来使用すべき第２の認証用スレーブ鍵ではなく、第１の認証用スレーブ鍵を与えた場合、第２の認証演算処理は第１の認証演算処理で生成される第１の認証中間鍵と同じ値の鍵を第２の認証中間鍵として生成する。再暗号化する前の鍵である選択した認証中間鍵と、再暗号化後の鍵である別の第２の認証中間鍵が同一となる可能性がある。このため、暗号化コンテンツ鍵の再暗号化を安全に行うことができないという課題があった。【００１９】  さらに、必要な認証回数を確実に行わせるべき機構が実装されていないとの課題もあった。
【課題を解決するための手段】
【００２０】  本発明の認証方法は、必要認証回数が何回であるか、および実行中の認証演算処理が何回目の認証演算処理であるかをカウントする手段を設ける。これにより、実行中の認証演算処理が第１の認証演算処理であるか、あるいは第２の認証演算処理であるかを明確に区別する。さらに、第２の認証演算処理であれば、何回目の第２の認証演算処理であるかを明確に区別する。【００２１】  また、第２の認証演算処理である場合、新たに生成された第２の認証中間鍵とそれ以前の認証演算処理で生成されている認証中間鍵の値を鍵比較回路によって比較する。比較の結果、同一である場合は、不正な認証処理が実行されたものとして、ホスト機器はターゲット機器との認証を失敗と判定する。
【発明の効果】
【００２２】  本発明によれば、必要な認証回数を確実に行わせることができ、破られた認証用ホスト鍵を持つホスト機器による不正なアクセスを防ぐことができる。また、同一の認証用スレーブ鍵を用いた不正なアクセスを防止することができる。
【図面の簡単な説明】
【００２３】
【図１】本発明における機密情報処理システムの全体構成を示した図
【図２】本発明の実施の形態１における認証方法のフローチャート
【図３】本発明の実施の形態１における認証方法を実行する回路の一例を示した図
【図４】本発明の実施の形態１における鍵を再暗号化する回路の一例を示した図
【図５】本発明の実施の形態２における認証方法のフローチャート
【図６】本発明の実施の形態２における認証方法を実行する回路の一例を示した図
【図７】従来の認証方法のフローチャート
【図８】暗号化コンテンツの復号化のフローチャート
【図９】コンテンツの暗号化のフローチャート
【図１０】ターゲット機器に機密情報を格納した状態を示す図
【符号の説明】
【００２４】  １０１  ターゲット機器
１０２  ホスト機器
１０３  バス
１０４  ターゲットＩ／Ｆ部
１０５  機密情報処理部
１０６  ホストＣＰＵ
１０７  ホストＩ／Ｆ部
１０８  ＲＡＭ
２０１，５０１  認証用ホスト鍵
２０２，５０２  第１の認証用スレーブ鍵
２０４，５０４  第１の認証中間鍵
２１１，５１１  第２の認証用スレーブ鍵
２１２，５１２  第２の認証中間鍵
３０１，６０１  第１の認証演算処理回路
３０２，６０２  認証判定回路
３０３，６０３  認証完了信号出力回路
３０４，６０４  異常検出割り込み
３０５，６０５  認証完了信号
３０６，６０６  カウンタ
３０７，６０７  比較器
３０８，６０８  第２の認証演算処理回路
３０９，６０９  鍵比較回路
４０１  セレクタ
４０２，４０７  暗号化コンテンツ鍵
４０３  復号回路
４０４  コンテンツ鍵
４０５  暗号回路
４０６  別の第２の認証中間鍵
１００１  第１の領域
１００２  第２の領域
１００３  第３の領域
【発明を実施するための最良の形態】
【００２５】  （実施の形態１）
本発明を実施するための最良の形態である実施の形態１について、図面を参照しながら説明する。図１は、ホスト機器とターゲット機器とから構成される機密情報処理システムの全体構成図を示している。【００２６】  ターゲット機器１０１は、ＳＤカードに代表されるメモリカードであり、機密情報を含むデータを格納する。格納の詳細については、図１０と同一であるので説明を省略する。ホスト機器１０２は、ターゲット機器１０１を接続して、ターゲット機器１０１との間で機密情報の読み出し／書き込みを行う。【００２７】  ホスト機器１０２は、内部バス１０３と、ターゲット機器１０１との間でデータの入出力を行うターゲットＩ／Ｆ部１０４と、所定のシーケンスに従って、ターゲット機器との間で認証を行い、また機密情報の暗号化・復号化を行う機密情報処理部１０５と、機密情報処理部１０５に対して所定のシーケンスを起動するホストＣＰＵ１０６と、ターゲット機器１０１、機密情報処理部１０５と、ホストＣＰＵ１０６との間でデータの入出力を行うホストＩ／Ｆ部１０７と、ホストＣＰＵ１０６や機密情報処理部１０５が、その動作のためにデータを一時格納しておくためのワーク領域としてのＲＡＭ１０８とを備えている。【００２８】  ターゲット機器１０１とホスト機器１０２との間で機密情報の読み出し／書き込みが行われる場合には、ターゲット機器１０１とホスト機器１０２との間で認証を行う必要がある。そこで、ホストＣＰＵ１０６によって機密情報処理部１０５が起動され、認証処理が行われる。【００２９】  認証が成功すると、ホスト機器１０２は、ターゲット機器１０１からターゲットＩ／Ｆ部１０４を介して機密情報を読み出す。読み出した機密情報は、機密情報処理部１０５を用いて復号化して利用する。【００３０】  機密情報処理部１０５の動作の起動は、ホストＣＰＵ１０６が行う。しかし、機密情報処理部１０５は秘匿されたハードウェアであり、起動されると、セキュリティの確保された、あるいはセキュリティの必要の少ない、所定のシーケンスのみを行う。【００３１】  図２は、本発明の実施の形態１における認証方法のフローチャートを示す図である。認証処理が開始されると、ホスト機器は、ホスト機器が有する認証用ホスト鍵２０１と、ターゲット機器から読み出した第１の認証用スレーブ鍵２０２を入力として、第１の認証演算処理２０３を実行する。第１の認証演算処理２０３は、一方向関数を含む複数の関数から構成される処理であって、認証に成功すれば第１の認証中間鍵２０４が生成され、認証に失敗すれば値“０”が生成される処理である。第１の認証演算処理２０３が終了すると、生成された第１の認証中間鍵２０４あるいは値“０”が、機密情報処理部１０５内の認証中間鍵格納エリアへと格納され、認証判定２０５が行われる。認証判定２０５では、第１の認証演算処理２０３の出力が“０”であるか否かが判定される。“０”である場合は、ホスト機器は、不正なアクセスであるとして認証を失敗させ（２０６）、以降の処理を行わない。【００３２】  第１の認証演算処理２０３での認証に成功すると、第１の認証中間鍵２０４が生成された後、カウントアップ２０７を実行し、機密情報処理部１０５内のカウンタのカウ���ト値をインクリメントし、カウンタのカウント値を“１”とする。【００３３】  カウンタのカウント値をインクリメントした後、ホスト機器は必要認証回数２０８とカウンタのカウント値との比較判定２０９を行う。必要認証回数２０８が“１”であれば、現在のカウンタのカウント値が必要認証回数２０８と等しくなり、第２の認証演算処理２１０を実行する必要はないとして認証を完了する。【００３４】  必要認証回数２０８とカウンタのカウント値とが等しくない場合は、第２の認証演算処理２１０を実行する必要がある。第２の認証演算処理２１０においては、ホスト機器内において、ホスト機器が有する認証用ホスト鍵２０１とターゲット機器から読み出される第２の認証用スレーブ鍵２１１を入力として、第２の認証演算処理２１０を実行する。第２の認証演算処理２１０は、一方向関数を含む複数の関数から構成される処理であって、認証に成功すれば第２の認証中間鍵２１２が生成され、認証に失敗すれば値“０”が生成される処理である。第２の認証演算処理２１０は、認証用ホスト鍵２０１が破られた場合には、破られた認証用ホスト鍵と新たにターゲット機器内に配置された第２の認証用スレーブ鍵との間の認証を失敗させ、破られていない別の認証用ホスト鍵と第２の認証用スレーブ鍵との間の認証を成功させる処理でもある。【００３５】  第２の認証演算処理２１０が終了すると、生成された第２の認証中間鍵２１２あるいは値“０”は、認証中間鍵格納エリアへと格納され、認証判定２１３が行われる。認証判定２１３では、第２の認証演算処理２１０の出力が“０”であるか否かが判定される。“０”である場合は、ホスト機器は、不正なアクセスであるとして認証を失敗させ（２１４）、以降の処理を行わない。【００３６】  第２の認証演算処理での認証に成功すると、第２の認証中間鍵２１２が生成される。その後、カウントアップ２１５を実行し、ホスト機器が保持するカウンタのカウント値をインクリメントし、カウンタのカウント値を“２”とする。【００３７】  カウンタのカウント値をインクリメントした後、ホスト機器は必要認証回数２０８とカウンタのカウント値との比較判定２１６を行う。必要認証回数２０８が“２”であれば、現在のカウンタのカウント値が必要認証回数２０８と等しくなり、次のステップに進む。必要認証回数２０８とカウンタのカウント値とが一致しない場合は、本実施の形態で想定される認証回数は最大で“２”であるために、異常であるとして処理を終了する（２１７）。【００３８】  必要認証回数２０８と現在のカウンタのカウント値とが一致した場合は、生成された第１の認証中間鍵２０４の値と第２の認証中間鍵２１２の値の鍵比較を行い（２１８）、第１の認証中間鍵２０４と第２の認証中間鍵２１２が等しいか否かを判定する（２１９）。本来は異なるべきである第１の認証中間鍵２０４の値と第２の認証中間鍵２１２の値が等しい場合、不正な手段を用いて認証を試みていると考えられるため、異常を検出したとして認証フローを終了する（２２０）。第１の認証中間鍵２０４と第２の認証中間鍵２１２の値が異なる場合、ホスト機器は認証が成功したとして認証処理を終了する。以上により、ホスト機器とターゲット機器間の���証フローが終了し、ホスト機器はターゲット機器に格納された暗号化コンテンツの復号等を行うことができる。【００３９】  図３は、上記の認証方法を実装したホスト機器における機密情報処理部１０５のうち、認証を行う回路の回路図である。図３において、図１、図２と同一の構成要素については同一の符号を用いる。図３に示される構成は、ハードウェアとして半導体集積回路内に秘匿されている。すなわち、ホストＣＰＵからのアクセスなどによって、その処理のシーケンスを変更することができない。認証処理の中で生成される認証中間鍵などは、いずれも機密情報処理部１０５内の認証中間鍵格納エリア（レジスタ）に格納されるものであるが、図示は省略している。【００４０】  ホスト機器は、認証用ホスト鍵２０１と、ターゲット機器が持つ第１の認証用スレーブ鍵２０２とを入力として、第１の認証演算処理回路３０１において第１の認証演算処理２０３を実行し、第１の認証中間鍵２０４を生成する。ホスト機器は、第１の認証中間鍵２０４を入力として、認証判定回路３０２において認証演算処理の成否を判定する。具体的には、第１の認証中間鍵２０４の値が“０”であるか否かを判定する。認証結果は、認証完了信号出力回路３０３へと出力される。【００４１】  第１の認証中間鍵２０４の値が“０”であった場合、認証完了信号出力回路３０３は異常検出割り込み３０４を出力して処理を終了させる。第１の認証中間鍵２０４の値が“０”でなかったとしても、認証回数終了信号をまだ受信していないので、認証完了信号３０５は出力しない。【００４２】  第１の認証中間鍵２０４の値が“０”でなかった場合、すなわち認証に成功した場合、認証判定回路３０２はカウントアップ信号をカウンタ３０６に出力する。カウンタ３０６は、カウント値をインクリメントして“１”として、比較器３０７へと出力する。比較器３０７は、必要認証回数２０８とカウント値との比較を行う。【００４３】  必要認証回数２０８が“１”であり、カウンタ３０６のカウント値が必要認証回数２０８と等しい場合、比較器３０７は、第２の認証演算処理回路３０８へのイネーブル信号を出力せず、第２の認証演算処理２１０は実行されない。また、認証完了信号出力回路３０３へは認証回数終了信号を出力する。【００４４】  必要認証回数２０８は、認証完了信号出力回路３０３へも入力される。必要認証回数２０８が“１”であった場合、認証回数終了信号を受信した認証完了信号出力回路３０３は認証完了信号３０５を出力する。【００４５】  必要認証回数２０８が“１”でなく、カウンタ３０６のカウント値と必要認証回数２０８が等しくない場合、比較器３０７は第２の認証演算処理回路３０８へのイネーブル信号を出力し、第２の認証演算処理２１０を実行する。ホスト機器は、認証用ホスト鍵２０１と、ターゲット機器から読み出された第２の認証用スレーブ鍵２１１とを、第２の認証演算処理回路３０８への入力として、第２の認証演算処理２１０を実行し、第２の認証中間鍵２１２を生成する。ホスト機器は、第２の認証中間鍵２１２を認証判定回路３０２に入力して、第２の認証演算処理２１０の成否を判定する。具体的には、第２の認証中間鍵２１２の値が“０”であるか否かを判��する。認証結果は、認証完了信号出力回路３０３に出力される。認証結果が認証に失敗したことを示す場合は、認証完了信号出力回路３０３は、異常検出割り込み３０４を出力する。【００４６】  第２の認証中間鍵２１２の値が“０”でなかった場合、すなわち認証に成功した場合、認証判定回路３０２はカウントアップ信号をカウンタ３０６に出力する。カウンタ３０６は、カウント値をインクリメントして“２”として、比較器３０７へと出力する。比較器３０７は必要認証回数２０８と、カウント値との比較を行う。【００４７】  必要認証回数２０８が“２”でない場合、本実施の形態において想定されている最大の認証回数は“２”であるために、比較器３０７は比較回数異常信号を認証完了信号出力回路３０３へと出力する。認証完了信号出力回路３０３は、比較回数異常信号が入力された場合、異常検出割り込み３０４を出力して処理を終了させる。【００４８】  必要認証回数２０８が“２”であり、カウンタ３０６のカウント値が必要認証回数２０８と等しい場合、比較器３０７は、鍵比較回路３０９へとイネーブル信号を出力する。また、認証完了信号出力回路３０３へは認証回数終了信号を出力する。【００４９】  必要認証回数２０８は、認証完了信号出力回路３０３へも出力される。認証完了信号出力回路３０３は、認証回数終了信号を受け取っても、必要認証回数２０８が“２”である場合は、鍵比較回路３０９が出力する鍵比較結果が入力されるまで認証完了信号３０５を出力しない。【００５０】  イネーブル信号が入力された鍵比較回路３０９は、第１の認証中間鍵２０４と第２の認証中間鍵２１２が同一であるかどうかの比較を行い、その鍵比較結果を認証完了信号出力回路３０３へと出力する。【００５１】  認証完了信号出力回路３０３は、鍵比較回路３０９から出力される鍵比較結果が、第１の認証中間鍵２０４と第２の認証中間鍵２１２が一致していることを示すとき、異常検出割り込み３０４を出力して処理を終了させる。また、鍵比較回路３０９から出力される鍵比較結果が、第１の認証中間鍵２０４と第２の認証中間鍵２１２が異なることを示すとき、認証完了信号３０５を出力して認証を成功させる。【００５２】  以上のように、認証完了信号出力回路３０３は、必要認証回数２０８が“１”の場合、認証回数終了信号を受信すると、認証が成功したとして認証を終了する。また、必要認証回数２０８が“２”である場合、認証回数終了信号と２つの鍵が異なることを示す鍵比較結果の双方を受信すると、認証が成功したとして認証を終了する。【００５３】  すなわち、認証回数をカウントし必要認証回数と比較することによって、必要な回数の認証を行わないと認証が成功しない構成として、セキュリティを高めている。また、必要認証回数が２回である場合は、同一の認証用スレーブ鍵を用いて認証が成功されることがないように、生成される認証中間鍵を比較している。【００５４】  図４は、認証に成功した場合に、暗号化コンテンツ鍵を別の第２の認証中間鍵で暗号化し直す再暗号化回路の回路図であり、ホスト機器における機密情報処理部１０５内に実装されている。再暗号化は、認証用ホスト鍵が破られて第２の認証用スレーブ鍵が更新された場合に行われる��理である。【００５５】  図４において、図２と同一の構成要素については、同一の符号を付して説明を省略する。【００５６】  ホスト機器は、第２の認証中間鍵２１２を生成している場合は第２の認証中間鍵２１２を、そうでない場合は第１の認証中間鍵２０４をセレクタ４０１により選択し、選択した認証中間鍵とする。ホスト機器は、選択した認証中間鍵で予め暗号化され、ターゲット機器に格納されている、暗号化コンテンツ鍵４０２を読み出し、復号回路４０３において選択した認証中間鍵で復号化することで平文のコンテンツ鍵４０４を得る。コンテンツ鍵４０４は、暗号回路４０５によって、選択した認証中間鍵とは異なる別の第２の認証中間鍵４０６で再暗号化される。なお、別の第２の認証中間鍵４０６は、認証用ホスト鍵が破られて第２の認証用スレーブ鍵が更新されると、更新された認証用スレーブ鍵を用いて認証を行う際に生成される。再暗号化された暗号化コンテンツ鍵４０７は、暗号化コンテンツ鍵４０２を上書きすることでターゲット機器に格納される。【００５７】  実施の形態１においては、認証回数をカウントすることによって、必要な認証回数の認証演算処理を行わないと処理が終了しないようにしている。また、第２の認証演算処理２１０で生成された第２の認証中間鍵２１２と、第１の認証演算処理２０３で生成された第１の認証中間鍵２０４の値を鍵比較回路３０９において比較することで、破られた認証用ホスト鍵２０１の情報を持つターゲット機器と破られた認証用ホスト鍵２０１を持つホスト機器との間で不正に認証が成功しないようにすることができる。さらに、認証用ホスト鍵２０１が破られた場合に実施される暗号化コンテンツ鍵の再暗号化を安全に行うことができる。【００５８】  （実施の形態２）
本発明の実施の形態２について図面を参照しながら説明する。実施の形態２において、機密情報処理システムの全体構成図は、実施の形態１と同様であるので説明を省略する。【００５９】  図５は、実施の形態２における認証方法のフローチャートを示す図である。実施の形態２は、ターゲット機器が複数の第２の認証用スレーブ鍵を有し、ホスト機器が認証演算処理を３回以上実行可能である点で、実施の形態１と大きく異なっている。【００６０】  認証処理が開始されると、ホスト機器は、ホスト機器が有する認証用ホスト鍵５０１と、ターゲット機器から読み出した第１の認証用スレーブ鍵５０２を入力として、第１の認証演算処理５０３を実行する。第１の認証演算処理５０３は、一方向関数を含む複数の関数から構成される処理であって、認証に成功すれば第１の認証中間鍵５０４が生成され、認証に失敗すれば値“０”が生成される処理である。【００６１】  第１の認証演算処理５０３が終了すると、生成された第１の認証中間鍵５０４あるいは値“０”が、ホスト機器内の認証中間鍵格納エリアへと格納され、認証判定５０５が行われる。認証判定５０５では、第１の認証演算処理５０３の出力が“０”であるか否かが判定される。“０”である場合は、ホスト機器は、不正なアクセスであるとして認証を失敗させ（５０６）、以降の処理を行わない。【００６２】  第１の認証演算処理５０３での認証に成功すると、カウントアップを実行し（５０７）、ホスト機器が保持するカウンタのカウント値をインクリメントし、カウンタのカウント値を“１”とする。【００６３】  カウンタのカウント値をインクリメントした後、ホスト機器は必要認証回数５０８とカウンタのカウント値との比較判定５０９を行う。必要認証回数５０８が“１”であれば、現在のカウンタのカウント値が必要認証回数５０８と等しくなり、第２の認証演算処理５１０を実行する必要はないとして認証を完了する。【００６４】  必要認証回数５０８とカウンタのカウント値とが等しくない場合は、第２の認証演算処理５１０を実行する必要がある。第２の認証演算処理５１０においては、ホスト機器が、ターゲット機器が有する複数の第２の認証用スレーブ鍵５１１のうち１つを読み出す。そして、読み出した第２の認証用スレーブ鍵５１１と認証用ホスト鍵５０１とを入力として、第２の認証演算処理５１０を実行する。第２の認証演算処理５１０は、一方向関数を含む複数の関数から構成される処理であって、認証に成功すれば第２の認証中間鍵５１２が生成され、認証に失敗すれば値“０”が生成される処理である。第２の認証演算処理５１０は、認証用ホスト鍵５０１が破られた場合に、破られた認証用ホスト鍵と新たにターゲット機器内に配置された第２の認証用スレーブ鍵との間の認証を失敗させ、破られていない別の認証用ホスト鍵と第２の認証用スレーブ鍵との間の認証を成功させる処理でもある。【００６５】  第２の認証演算処理５１０が終了すると、生成された第２の認証中間鍵５１２あるいは値“０”は、認証中間鍵格納エリアへと格納され、認証判定５１３が行われる。認証判定５１３では、第２の認証演算処理５１０の出力が“０”であるか否かが判定される。“０”である場合は、ホスト機器は、不正���アクセスであるとして認証を失敗させ（５１４）、以降の処理を行わない。【００６６】  第２の認証演算処理５１０での認証に成功すると、カウントアップを実行し（５１５）、機密情報処理部１０５内のカウンタのカウント値をインクリメントし、カウンタのカウント値を“２”とする。【００６７】  カウンタのカウント値をインクリメントした後、ホスト機器は鍵比較５１６を行う。鍵比較５１６においては、第１の認証中間鍵５０４あるいは１つ前の第２の認証中間鍵５１７の何れかを選択し（５１８）、第２の認証中間鍵５１２との比較を行う。カウンタのカウント値が“２”のときは、第１の認証中間鍵５０４を選択して第２の認証中間鍵と比較する。カウンタのカウント値が“２”以外のときは、１つ前の第２の認証中間鍵５１７を選択して第２の認証中間鍵５１２と比較する。【００６８】  鍵比較５１６が終わると、比較された２つの鍵が等しいか否かの比較判定を行う（５１９）。本来は異なるべきである２つの認証中間鍵の値が等しい場合、不正な手段を用いて認証を試みていると考えられるため、異常を検出したとして認証フローを終了する（５２０）。２つの認証中間鍵の値が異なる場合、再度、必要認証回数５０８とカウンタのカウント値との比較を行う（５２１）。【００６９】  カウンタの現在の値が必要認証回数５０８と等しい場合、ホスト機器は必要な回数の認証演算処理を実行したとして認証を完了する。そうでない場合、ホスト機器は第２の認証演算処理５１０に戻り、１回目の第２の認証演算処理で用いた第２の認証用スレーブ鍵とは異なる第２の認証用スレーブ鍵を用いて、次の第２の認証演算処理を実行する。その際、前回の認証で生成された第２の認証中間鍵５１２を１つ前の第２の認証中間鍵として更新する（５２２）。その結果、２回目の第２の認証演算処理においては、最初に生成された第２の認証中間鍵と、２回目の第２の認証演算処理において生成された第２の認証中間鍵とが、鍵比較５１６において比較されることになる。【００７０】  必要認証回数５０８とカウンタのカウント値が等しくなるまで、第２の認証用スレーブ鍵を変えながら上記処理を繰り返すことにより、任意の回数の第２の認証演算処理を行い、認証を終了することができる。認証が終了すると、ホスト機器は、ターゲット機器にある暗号化コンテンツの復号化等を行うことができる。【００７１】  図６は、上記の認証方法を実装したホスト機器における機密情報処理部のうち、認証を行う回路の回路図である。図６において、図５と同一の構成要素については同一の符号を用いて説明を省略する。また、図６に示される構成は、ハードウェアとして半導体集積回路内に秘匿されている。すなわち、ホストＣＰＵからのアクセスなどによってその処理のシーケンスを変更することができない。なお、認証処理の中で生成される認証中間鍵などは、いずれも機密情報処理部１０５内の認証中間鍵格納エリア（レジスタ）に格納されるものであるが、図示は省略している。【００７２】  ホスト機器は、認証用ホスト鍵５０１と、ターゲット機器から読み出した第１の認証用スレーブ鍵５０２とを入力として、第１の認証演算処理回路６０１において第１の認証演算処理５０３を実行し、第１の認証��間鍵５０４を生成する。ホスト機器は、第１の認証中間鍵５０４を入力として、認証判定回路６０２において、第１の認証演算処理５０３の成否を判定する。具体的には、第１の認証中間鍵５０４が値“０”であるか否かを判定する。認証結果は、認証完了信号出力回路６０３へと出力される。【００７３】  第１の認証中間鍵５０４の値が“０”であった場合、認証結果は“失敗”となるため、認証完了信号出力回路６０３は異常検出割り込み６０４を出力して処理を終了させる。なお、認証結果が“成功”であったとしても、認証回数終了信号を受信していないため、認証完了信号６０５は出力しない。【００７４】  第１の認証中間鍵５０４の値が“０”でなかった場合、すなわち認証に成功した場合、認証判定回路６０２はカウントアップ信号をカウンタ６０６に出力する。カウンタ６０６は、カウント値をインクリメントして“１”として、比較器６０７へと出力する。比較器６０７は、必要認証回数５０８とカウント値との比較を行う。【００７５】  必要認証回数５０８が“１”であり、カウンタ６０６のカウント値と必要認証回数５０８が等しい場合、比較器６０７は第２の認証演算処理回路６０８へのイネーブル信号を出力せず、第２の認証演算処理５１０を実行しない。また、認証完了信号出力回路６０３へは認証回数終了信号が出力される。【００７６】  認証完了信号出力回路６０３は、入力される必要認証回数５０８が“１”である場合、認証回数終了信号を受信すると認証完了信号６０５を出力して認証を成功させる。【００７７】  必要認証回数５０８が“１”でなく、カウンタ６０６のカウント値と必要認証回数５０８が等しくない場合、比較器６０７は、第２の認証演算処理回路６０８へのイネーブル信号を出力し、第２の認証演算処理回路６０８を動作させる。ホスト機器は、認証用ホスト鍵５０１と、ターゲット機器から読み出された第２の認証用スレーブ鍵５１１とを、第２の認証演算処理回路６０８への入力として、第２の認証演算処理５１０を実行し、第２の認証中間鍵５１２を生成する。生成された第２の認証中間鍵５１２は認証判定回路６０２に入力されると共に、１つ前の第２の認証中間鍵格納レジスタ６１０にも格納される。第２の認証演算処理回路６０８は、鍵比較回路６０９へイネーブル信号を出力し、鍵比較回路６０９を動作させる。【００７８】  認証判定回路６０２は、入力された第２の認証中間鍵５１２の値に基づいて、第２の認証演算処理５１０の成否を判定する。具体的には、第２の認証中間鍵５１２の値が“０”であるか否かを判定する。認証結果は、認証完了信号出力回路６０３に出力される。認証に失敗した場合は、認証完了信号出力回路６０３は、異常検出割り込み６０４を出力する。【００７９】  第２の認証中間鍵５１２の値が“０”でなかった場合、すなわち認証に成功した場合、認証判定回路６０２はカウントアップ信号をカウンタ６０６に出力する。カウンタ６０６は、カウント値をインクリメントして“２”として、比較器６０７へと出力する。比較器６０７は必要認証回数５０８と、カウント値との比較を行う。【００８０】  必要認証回数５０８が“２”であり、カウンタ６０６のカウント値が必要認証回数５０８と等しい場合、比較器���０７は、認証完了信号出力回路６０３へと認証回数終了信号を出力する。必要認証回数５０８が“２”でなく、カウンタ６０６のカウント値が必要認証回数５０８と等しくない場合、認証回数終了信号は出力されず、再度第２の認証演算処理回路６０８へとイネーブル信号が出力される。そして、第２の認証演算処理回路６０８は、１回目の第２の認証演算処理で用いた第２の認証用スレーブ鍵とは異なる第２の認証用スレーブ鍵を用いて、第２の認証演算処理を行う。なお、２回目の第２の認証演算処理で生成される第２の認証中間鍵は、１つ前の第２の認証中間鍵格納レジスタ６１０に格納される。その際、１つ前の第２の認証中間鍵格納レジスタ６１０に格納された第２の認証中間鍵と、２回目の第２の認証演算処理で生成された第２の認証中間鍵が、鍵比較回路６０９で比較されてから上書きされる。【００８１】  また、イネーブル信号を入力された鍵比較回路６０９は、カウンタ６０６のカウント値が“２”の場合、第１の認証中間鍵５０４と第２の認証中間鍵５１２が同一であるかどうかの比較を行う。カウンタ６０６のカウント値が“２”より大きい場合、１つ前の第２の認証中間鍵格納レジスタ６１０に格納された第２の認証中間鍵と、第２の認証演算処理回路から出力された第２の認証中間鍵との鍵比較を行う。鍵比較結果は、認証完了信号出力回路６０３へと出力される。【００８２】  認証完了信号出力回路６０３は、鍵比較結果が、２つの認証中間鍵の値が一致していることを示すとき、異常検出割り込み６０４を出力して処理を終了する。【００８３】  認証完了信号出力回路６０３は、必要認証回数５０８が“２”以上の場合、必要認証回数５０８が示す値より１つ少ない回数の鍵比較結果と、認証回数終了信号とを受信した段階で、認証完了信号６０５を出力する。【００８４】  なお、認証に成功した後に、暗号化コンテンツ鍵を別の第２の認証中間鍵で暗号化し直す再暗号化回路については、実施の形態１と同様であるので説明を省略する。【００８５】  実施の形態２において、認証完了信号出力回路６０３は、必要認証回数５０８が“１”の場合、認証回数終了信号を受信すると、認証が成功したとして認証を終了する。また、必要認証回数５０８が“２”以上である場合、認証回数終了信号と必要認証回数より１つ少ない回数の正常な鍵比較結果との双方を受信すると、認証が成功したとして認証を終了する。【００８６】  すなわち、認証回数をカウントし必要認証回数と比較することによって、必要な回数の認証を行わないと認証が成功しない構成としてセキュリティを高めている。また、同一の認証用スレーブ鍵を用いて認証が成功されることがないように、生成される認証中間鍵を順次比較している。【００８７】  なお、本実施の形態においては任意の回数の認証回数を実行するために、実施の形態１で説明された比較回数異常信号は用いていない。しかしながら、例えば認証回数の上限が限られている場合等は、その回数以上の認証が行われた場合に、比較器６０７が比較回数異常信号を出力してもよい。【００８８】  また、鍵比較回路６０９へのイネーブル信号は、実施の形態１と同様に比較器が出力するものであってもよい。【００８９】  （変形例）
実施の形態１、２共に、認証回数をカウントし、ホスト機器に保持される必要認証回数と比較する構成として説明している。しかしながら、認証演算処理が１回行われると１個の認証中間鍵が生成される点に鑑みると、ホスト機器は必要認証回数ではなく必要な認証中間鍵の個数を保持し、認証回数と比較するものであってもよい。あるいは、認証中間鍵自体の個数をカウントし、必要認証回数と比較するものであってもよい。【００９０】  また、第１の認証演算処理回路と第２の認証演算処理回路を別々に設けて認証演算を行っているが、単一の認証演算処理回路を繰り返し用いてもよい。【００９１】  また、必要認証回数は、暗号化されてホスト機器に保持されていると、セキュリティの観点からさらに好ましい。
【産業上の利用可能性】
【００９２】  本発明は、破られた認証用ホスト鍵の情報を持つターゲット機器と、破られた認証用ホスト鍵を持つホスト機器との間での認証が不正な手段によって成功することを防ぐ認証方法であり、セキュリティが向上するので、電子配信等で利用可能である。
【図１】
2006046484.tif 000002
【図２】
2006046484.tif 000003
【図３】
2006046484.tif 000004
【図４】
2006046484.tif 000005
【図５】
2006046484.tif 000006
【図６】
2006046484.tif 000007
【図７】
2006046484.tif 000008
【図８】
2006046484.tif 000009
【図９】
2006046484.tif 000010
【図１０】
2006046484.tif 000011
【手続補正書】
【提出日】平成19年4月25日(2007.4.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ターゲット機器とホスト機器との間で行われる認証方法であって、
前記ホスト機器が有する認証用ホスト鍵と前記ターゲット機器が有する認証用スレーブ鍵に基づく認証演算を行って認証中間鍵を生成する第１のステップと、
前記認証中間鍵の値に応じて認証の成否を判定する第２のステップと、
前記第２のステップが終了するごとに、前記第２のステップが行われた回数をカウントする第３のステップとを備え、
前記第３のステップでカウントされた回数が、所定の値と一致するまで、前記第１のステップから前記第３のステップまでを繰り返し行うことを特徴とする認証方法。
【請求項２】
前記所定の値とは、認証が成功するまでに行うべき認証回数に関する情報であることを特徴とする請求項１記載の認証方法。
【請求項３】
前記所定の値とは、認証が成功するまでに生成されるべき認証中間鍵の個数に関する情報であることを特徴とする請求項１記載の認証方法。
【請求項４】
前記第２のステップの結果、認証が成功したと判定された場合のみ、前記第３のステップを行うことを特徴とする請求項１記載の認証方法。
【請求項５】
前記所定の値が２以上である場合、Ｎ（Ｎは所定の値以下の整数）回目の前記第１のステップで生成された前記認証中間鍵と、Ｎ−１回目の前記第１のステップで生成された前記認証中間鍵とを比較する第４のステップをさらに備え、
前記第４のステップの結果、２つの認証中間鍵が等しかった場合には、以降の認証処理を実行不可とすることを特徴とする請求項４記載の認証方法。
【請求項６】
前記所定の値が１である場合に、前記第３のステップを１回終了すると認証を成功させることを特徴とする請求項４記載の認証方法。
【請求項７】
請求項１の認証方法を用い、２回以上の認証演算処理を行って認証に成功した場合に、前記ターゲット機器に格納された機密情報を再暗号化する再暗号化方法であって、
前記ターゲット機器から暗号化されたコンテンツ鍵を読み出す第５のステップと、
前記暗号化されたコンテンツ鍵を所定の認証中間鍵を用いて復号化し、平文のコンテンツ鍵を得る第６のステップと、
前記平文のコンテンツ鍵を、前記所定の認証中間鍵とは異なる認証中間鍵で再暗号化する第７のステップとを備えることを特徴とする再暗号化方法。
【請求項８】
ターゲット機器との間で認証処理を行う機密情報処理用ホスト機器であって、
ターゲット機器との間で前記暗号化されたコンテンツを含む機密情報の入出力を行う第１のインターフェース部と、
前記第１のインターフェースを介して入力された暗号化されたコンテンツに対して、予め定められた所定のシーケンスで復号化処理を行う機密情報処理部と、
前記機密情報処理部に対して、前記所定のシーケンスの起動を指示するＣＰＵとを備え、
前記機密情報処理部は、
認証用ホスト鍵と、
前記認証用ホスト鍵と前記ターゲット機器に格納された認証用スレーブ鍵とを用い認証演算処理を行い、認証中間鍵を生成する認証演算処理回路と、
前記認証中間鍵の値に応じて認証の成否を判定する認証判定回路と、
前記認証判定回路の判定回数をカウントするカウンタとを備え、
前記カウンタの値を所定の値と比較し、一致するまで複数回にわたって前記認証演算処理回路における認証処理を繰り返すことを特徴とする機密情報処理用ホスト機器。
【請求項９】
前記認証演算処理回路が複数回の認証演算処理を行った場合に生成される認証中間鍵の値を比較する鍵比較回路をさらに備えることを特徴とする請求項８記載の機密情報処理用ホスト機器。
【請求項１０】
前記機密情報処理部が、
前記認証処理に成功した場合に、
前記ターゲット機器から暗号化されたコンテンツ鍵を読み出し、
前記暗号化されたコンテンツ鍵を所定の認証中間鍵を用いて復号化し、平文のコンテンツ鍵を取得し、
前記平文のコンテンツ鍵を、前記所定の認証中間鍵とは異なる認証中間鍵で再暗号化することを特徴とする請求項８記載の機密情報処理用ホスト機器。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ターゲット機器内部に記憶される機密情報をホスト機器で扱う際に、ターゲット機器とホスト機器との間で行われる認証方法に関する。
【背景技術】
【０００２】
著作物や個人情報等、不正なコピーあるいは外部への漏洩を防ぐ必要があるコンテンツを記憶するターゲット機器においては、コンテンツは暗号化された状態でターゲット機器に格納される。ターゲット機器に格納された暗号化コンテンツをホスト機器が扱う際は、ターゲット機器とホスト機器の間で認証処理を行う。認証が失敗すれば、暗号化コンテンツを復号化するためのコンテンツ鍵を、ターゲット機器から入手できないような構成にしている。このように構成することにより、不正なホスト機器による暗号化コンテンツの復号化を防いでいる。なお、ターゲット機器とは、例えば、ＳＤカードのようなメモリカードのことを示す。ホスト機器とは、メモリカードからデータを読み出す半導体集積回路、あるいはその半導体集積回路を実装したセット機器、さらにはターゲット機器へとコンテンツを配信するコンテンツ配信機器のことを示す。
【０００３】
認証方法に関する従来技術として特許文献１がある。特許文献１においては、第１の認証演算処理と第２の認証演算処理の２段の認証によって認証処理を行うという特徴がある。図７は、特許文献１に記載されるターゲット機器とホスト機器との間の認証方法をフローチャートで示したものである。
【０００４】
第２の認証演算処理は、認証用ホスト鍵が破られて第１の認証演算処理が不正に認証ＯＫとなった場合に、破られた認証用ホスト鍵の情報を持つターゲット機器と破られた認証用ホスト鍵を持つホスト機器との間での認証を最終的に失敗させるために、第１の認証演算処理の後に実行される拡張処理である。すなわち、第１の認証演算処理が不正に認証ＯＫとなっても、破られた認証用ホスト鍵を持つホスト機器の使用をこの拡張処理により無効化できるという特徴がある。第２の認証演算処理に用いられる第２の認証用スレーブ鍵は、認証用ホスト鍵が流出して第１の認証演算処理が破られたことが発覚した場合に、ネットワーク等を経由した電子配信でターゲット機器に実装される。すなわち、第２の認証用スレーブ鍵がターゲット機器内に実装されていない場合は、第１の認証演算処理は破られていないので第２の認証演算処理を行う必要はないことになる。
【０００５】
認証方法のフローチャートについて図７を参照しながら説明を加える。まず、ホスト機器は、ホスト機器が有する認証用ホスト鍵７０１と、ターゲット機器から読み出した第１の認証用スレーブ鍵７０２を入力として、第１の認証演算処理７０３を実行する。第１の認証演算処理７０３は、一方向関数を含む複数の関数から構成される処理であって、認証に成功すれば第１の認証中間鍵７０４が生成され、認証に失敗すれば値“０”が生成される処理である。第１の認証演算処理７０３が終了すると、生成された第１の認証中間鍵７０４あるいは値“０”が、ホスト機器内の認証中間鍵格納エリアへと格納され、認証判定が行われる。認証判定では、第１の認証演算処理の出力が“０”であるか否かが判定される。“０”である場合は、ホスト機器は、不正なアクセスであるとして認証を失敗させ、以降の処理を行わない。
【０００６】
第１の認証演算処理７０３に成功すると、ホスト機器は、第２の認証用スレーブ鍵７０５がターゲット機器内に存在するかどうかの存在判定を行う。第２の認証用スレーブ鍵７０５は、存在する場合は、予めターゲット機器内の所定の領域に格納されている。
【０００７】
第２の認証用スレーブ鍵７０５がターゲット機器内に存在しない場合は、第２の認証演算処理７０６を行う必要はないので認証を完了する。第２の認証用スレーブ鍵７０５がターゲット機器内に存在する場合は、これをターゲット機器から読み出し、第２の認証演算処理７０６を行う。第２の認証演算処理７０６は、一方向関数を含む複数の関数から構成される処理であって、認証に成功すれば第２の認証中間鍵７０７が生成され、認証に失敗すれば値“０”が生成される処理である。第２の認証演算処理７０６は、認証用ホスト鍵が破られた場合には、破られた認証用ホスト鍵と新たにターゲット機器内に配置された第２の認証用スレーブ鍵との間の認証を失敗させ、破られていない別の認証用ホスト鍵と第２の認証用スレーブ鍵との間の認証を成功させる処理でもある。言い換えれば、認証用ホスト鍵が破られた場合には、上記の条件を満たす第２の認証用スレーブ鍵を生成し、ターゲット機器内に格納することとなる。
【０００８】
第２の認証演算処理７０６が終了すると、生成された第２の認証中間鍵、あるいは値“０”は認証中間鍵格納エリアへと格納され、認証判定が行われる。認証判定では、第２の認証演算処理７０６の出力が“０”であるか否かが判定される。“０”である場合は、ホスト機器は、不正なアクセスであるとして認証を失敗させ、以降の処理を行わない。第２の認証用中間鍵７０７は、その生成の種となる認証用スレーブ鍵が第１の認証用中間鍵７０４と異なるので、その値としても第１の認証用中間鍵７０４と異なる鍵となるべきである。
【０００９】
認証用ホスト鍵が破られると、ターゲット機器内に第２の認証用スレーブ鍵が存在しない場合は第２の認証用スレーブ鍵を新規に作成し、ターゲット機器内に第２の認証用スレーブ鍵が既に存在する場合はその値を更新する。この第２の認証用スレーブ鍵の新規作成あるいは更新は、電子配信等によって行われる。第２の認証演算処理によって生成される第２の認証中間鍵の値を更新し、認証用ホスト鍵が破られたホスト機器と、認証用スレーブ鍵を新規作成・更新したターゲット機器との間の認証処理を失敗させる。これにより、破られた認証用ホスト鍵を持つホスト機器の使用を無効化することができる。
【００１０】
既にターゲット機器に存在していた暗号化コンテンツ鍵は、第１の認証中間鍵、または更新する前の第２の認証中間鍵で暗号化されている。そのため、値を更新した別の第２の認証中間鍵でコンテンツ鍵を暗号化し直される。
【００１１】
ターゲット機器とホスト機器との間での認証が成功すると、ホスト機器は暗号化コンテンツ鍵および暗号化コンテンツをターゲット機器から読み出し、暗号化コンテンツの復号を行う。あるいは、ホスト機器はコンテンツおよびコンテンツ鍵を暗号化し、ターゲット機器への転送を行う。
【００１２】
図８は、特許文献１に示される暗号化コンテンツの復号化方法をフローチャートで示したものである。図８において、図７と同一の構成要素については同一の符号を用い、説明を省略する。ホスト機器は、第１の認証中間鍵７０４あるいは第２の認証中間鍵７０７で暗号化された暗号化コンテンツ鍵８０１を、ターゲット機器から読み出す。ホスト機器は、第２の認証中間鍵７０７を生成している場合は第２の認証中間鍵７０７を、そうでない場合は第１の認証中間鍵７０４を、選択した認証中間鍵８０２とする。そして、読み出した暗号化コンテンツ鍵８０１を、選択した認証中間鍵８０２で復号化することで、平文のコンテンツ鍵８０３を得る。ホスト機器は、コンテンツ鍵８０３で暗号化された暗号化コンテンツ８０４をターゲット機器から読み出し、コンテンツ鍵８０３で復号化することで平文のコンテンツ８０５を得る。
【００１３】
図９は、特許文献１に示されるコンテンツの暗号化方法をフローチャートで示したものである。図９において、図７および図８と同一の構成要素については同一の符号を用い、説明を省略する。ホスト機器は、コンテンツ鍵８０３でコンテンツ８０５を暗号化することで暗号化コンテンツ８０４を生成し、ターゲット機器へ転送する。ホスト機器は、第２の認証中間鍵７０７を生成している場合は第２の認証中間鍵７０７を、そうでない場合は第１の認証中間鍵７０４を、選択した認証中間鍵８０２とする。そして、選択した認証中間鍵８０２でコンテンツ鍵８０３を暗号化することで、暗号化コンテンツ鍵８０１を生成し、ターゲット機器へ転送する。
【００１４】
図１０は、ターゲット機器内の領域および各領域に格納されるデータを示したものである。図１０において、図７〜図９と同一の構成要素については同一の符号を用い、説明を省略する。
【００１５】
認証およびコンテンツの暗号化・復号化において使用されるターゲット機器側のデータについて、ターゲット機器内でそれらのデータを格納する領域には、第１の領域１００１、第２の領域１００２、第３の領域１００３の３つの領域が存在する。第１の領域１００１は、ターゲット機器とホスト機器との間の認証を実行する際にアクセスを行う領域であり、第１の認証用スレーブ鍵７０２が格納される。第２の領域１００２は、ホスト機器とターゲット機器間の認証が成功して初めてアクセスが可能になる領域であり、暗号化コンテンツ鍵８０１が格納される。第３の領域１００３は、ユーザが自由にアクセスできる領域であり、暗号化コンテンツ８０４および第２の認証用スレーブ鍵７０５が格納される。
【特許文献１】特開２０００−３５７１２６号公報
【発明の開示】
【発明が解決しようとする課題】
【００１６】
特許文献１の認証方法によると、認証用ホスト鍵が破られた場合に、破られた認証用ホスト鍵の情報を持つターゲット機器と、破られた認証用ホスト鍵を持つホスト機器との間での認証を失敗させる。そのために、第１の認証演算処理の後に実行される拡張処理である第２の認証演算処理により、破られた認証用ホスト鍵を持つホスト機器の使用を無効化するという特徴がある。
【００１７】
しかしながら、第２の認証演算処理に対して、本来使用すべき第２の認証用スレーブ鍵ではなく、第１の認証用スレーブ鍵を与えた場合、認証アルゴリズムが第１の認証演算処理と同一であるとすると、第２の認証演算処理は第１の認証演算処理で生成される第１の認証中間鍵と同じ値の鍵を第２の認証中間鍵として生成してしまう。第２の認証演算処理は、第１の認証演算処理における認証が成功した場合にのみ実行されるため、第１の認証中間鍵の値は“０”ではないことになる。従って、第２の認証中間鍵の値も“０”ではなく、ホスト機器は第２の認証演算処理における認証を成功として判定する。破られた認証用ホスト鍵を持つホスト機器では、本来であれば第２の認証演算処理における認証が失敗すべきであるにも関わらず、認証が成功することになる。このため、破られた認証用ホスト鍵を持つホスト機器による不正なアクセスを許すという課題があった。
【００１８】
また、認証用ホスト鍵が破られた場合、既にターゲット機器に存在していた暗号化コンテンツ鍵は、値を更新した別の第２の認証中間鍵で再暗号化する必要がある。しかし、第２の認証演算処理に対して、本来使用すべき第２の認証用スレーブ鍵ではなく、第１の認証用スレーブ鍵を与えた場合、第２の認証演算処理は第１の認証演算処理で生成される第１の認証中間鍵と同じ値の鍵を第２の認証中間鍵として生成する。再暗号化する前の鍵である選択した認証中間鍵と、再暗号化後の鍵である別の第２の認証中間鍵が同一となる可能性がある。このため、暗号化コンテンツ鍵の再暗号化を安全に行うことができないという課題があった。
【００１９】
さらに、必要な認証回数を確実に行わせるべき機構が実装されていないとの課題もあった。
【課題を解決するための手段】
【００２０】
本発明の認証方法は、必要認証回数が何回であるか、および実行中の認証演算処理が何回目の認証演算処理であるかをカウントする手段を設ける。これにより、実行中の認証演算処理が第１の認証演算処理であるか、あるいは第２の認証演算処理であるかを明確に区別する。さらに、第２の認証演算処理であれば、何回目の第２の認証演算処理であるかを明確に区別する。
【００２１】
また、第２の認証演算処理である場合、新たに生成された第２の認証中間鍵とそれ以前の認証演算処理で生成されている認証中間鍵の値を鍵比較回路によって比較する。比較の結果、同一である場合は、不正な認証処理が実行されたものとして、ホスト機器はターゲット機器との認証を失敗と判定する。
【発明の効果】
【００２２】
本発明によれば、必要な認証回数を確実に行わせることができ、破られた認証用ホスト鍵を持つホスト機器による不正なアクセスを防ぐことができる。また、同一の認証用スレーブ鍵を用いた不正なアクセスを防止することができる。
【発明を実施するための最良の形態】
【００２３】
（実施の形態１）
本発明を実施するための最良の形態である実施の形態１について、図面を参照しながら説明する。図１は、ホスト機器とターゲット機器とから構成される機密情報処理システムの全体構成図を示している。
【００２４】
ターゲット機器１０１は、ＳＤカードに代表されるメモリカードであり、機密情報を含むデータを格納する。格納の詳細については、図１０と同一であるので説明を省略する。ホスト機器１０２は、ターゲット機器１０１を接続して、ターゲット機器１０１との間で機密情報の読み出し／書き込みを行う。
【００２５】
ホスト機器１０２は、内部バス１０３と、ターゲット機器１０１との間でデータの入出力を行うターゲットＩ／Ｆ部１０４と、所定のシーケンスに従って、ターゲット機器との間で認証を行い、また機密情報の暗号化・復号化を行う機密情報処理部１０５と、機密情報処理部１０５に対して所定のシーケンスを起動するホストＣＰＵ１０６と、ターゲット機器１０１、機密情報処理部１０５と、ホストＣＰＵ１０６との間でデータの入出力を行うホストＩ／Ｆ部１０７と、ホストＣＰＵ１０６や機密情報処理部１０５が、その動作のためにデータを一時格納しておくためのワーク領域としてのＲＡＭ１０８とを備えている。
【００２６】
ターゲット機器１０１とホスト機器１０２との間で機密情報の読み出し／書き込みが行われる場合には、ターゲット機器１０１とホスト機器１０２との間で認証を行う必要がある。そこで、ホストＣＰＵ１０６によって機密情報処理部１０５が起動され、認証処理が行われる。
【００２７】
認証が成功すると、ホスト機器１０２は、ターゲット機器１０１からターゲットＩ／Ｆ部１０４を介して機密情報を読み出す。読み出した機密情報は、機密情報処理部１０５を用いて復号化して利用する。
【００２８】
機密情報処理部１０５の動作の起動は、ホストＣＰＵ１０６が行う。しかし、機密情報処理部１０５は秘匿されたハードウェアであり、起動されると、セキュリティの確保された、あるいはセキュリティの必要の少ない、所定のシーケンスのみを行う。
【００２９】
図２は、本発明の実施の形態１における認証方法のフローチャートを示す図である。認証処理が開始されると、ホスト機器は、ホスト機器が有する認証用ホスト鍵２０１と、ターゲット機器から読み出した第１の認証用スレーブ鍵２０２を入力として、第１の認証演算処理２０３を実行する。第１の認証演算処理２０３は、一方向関数を含む複数の関数から構成される処理であって、認証に成功すれば第１の認証中間鍵２０４が生成され、認証に失敗すれば値“０”が生成される処理である。第１の認証演算処理２０３が終了すると、生成された第１の認証中間鍵２０４あるいは値“０”が、機密情報処理部１０５内の認証中間鍵格納エリアへと格納され、認証判定２０５が行われる。認証判定２０５では、第１の認証演算処理２０３の出力が“０”であるか否かが判定される。“０”である場合は、ホスト機器は、不正なアクセスであるとして認証を失敗させ（２０６）、以降の処理を行わない。
【００３０】
第１の認証演算処理２０３での認証に成功すると、第１の認証中間鍵２０４が生成された後、カウントアップ２０７を実行し、機密情報処理部１０５内のカウンタのカウント値をインクリメントし、カウンタのカウント値を“１”とする。
【００３１】
カウンタのカウント値をインクリメントした後、ホスト機器は必要認証回数２０８とカウンタのカウント値との比較判定２０９を行う。必要認証回数２０８が“１”であれば、現在のカウンタのカウント値が必要認証回数２０８と等しくなり、第２の認証演算処理２１０を実行する必要はないとして認証を完了する。
【００３２】
必要認証回数２０８とカウンタのカウント値とが等しくない場合は、第２の認証演算処理２１０を実行する必要がある。第２の認証演算処理２１０においては、ホスト機器内において、ホスト機器が有する認証用ホスト鍵２０１とターゲット機器から読み出される第２の認証用スレーブ鍵２１１を入力として、第２の認証演算処理２１０を実行する。第２の認証演算処理２１０は、一方向関数を含む複数の関数から構成される処理であって、認証に成功すれば第２の認証中間鍵２１２が生成され、認証に失敗すれば値“０”が生成される処理である。第２の認証演算処理２１０は、認証用ホスト鍵２０１が破られた場合には、破られた認証用ホスト鍵と新たにターゲット機器内に配置された第２の認証用スレーブ鍵との間の認証を失敗させ、破られていない別の認証用ホスト鍵と第２の認証用スレーブ鍵との間の認証を成功させる処理でもある。
【００３３】
第２の認証演算処理２１０が終了すると、生成された第２の認証中間鍵２１２あるいは値“０”は、認証中間鍵格納エリアへと格納され、認証判定２１３が行われる。認証判定２１３では、第２の認証演算処理２１０の出力が“０”であるか否かが判定される。“０”である場合は、ホスト機器は、不正なアクセスであるとして認証を失敗させ（２１４）、以降の処理を行わない。
【００３４】
第２の認証演算処理での認証に成功すると、第２の認証中間鍵２１２が生成される。その後、カウントアップ２１５を実行し、ホスト機器が保持するカウンタのカウント値をインクリメントし、カウンタのカウント値を“２”とする。
【００３５】
カウンタのカウント値をインクリメントした後、ホスト機器は必要認証回数２０８とカウンタのカウント値との比較判定２１６を行う。必要認証回数２０８が“２”であれば、現在のカウンタのカウント値が必要認証回数２０８と等しくなり、次のステップに進む。必要認証回数２０８とカウンタのカウント値とが一致しない場合は、本実施の形態で想定される認証回数は最大で“２”であるために、異常であるとして処理を終了する（２１７）。
【００３６】
必要認証回数２０８と現在のカウンタのカウント値とが一致した場合は、生成された第１の認証中間鍵２０４の値と第２の認証中間鍵２１２の値の鍵比較を行い（２１８）、第１の認証中間鍵２０４と第２の認証中間鍵２１２が等しいか否かを判定する（２１９）。本来は異なるべきである第１の認証中間鍵２０４の値と第２の認証中間鍵２１２の値が等しい場合、不正な手段を用いて認証を試みていると考えられるため、異常を検出したとして認証フローを終了する（２２０）。第１の認証中間鍵２０４と第２の認証中間鍵２１２の値が異なる場合、ホスト機器は認証が成功したとして認証処理を終了する。以上により、ホスト機器とターゲット機器間の認証フローが終了し、ホスト機器はターゲット機器に格納された暗号化コンテンツの復号等を行うことができる。
【００３７】
図３は、上記の認証方法を実装したホスト機器における機密情報処理部１０５のうち、認証を行う回路の回路図である。図３において、図１、図２と同一の構成要素については同一の符号を用いる。図３に示される構成は、ハードウェアとして半導体集積回路内に秘匿されている。すなわち、ホストＣＰＵからのアクセスなどによって、その処理のシーケンスを変更することができない。認証処理の中で生成される認証中間鍵などは、いずれも機密情報処理部１０５内の認証中間鍵格納エリア（レジスタ）に格納されるものであるが、図示は省略している。
【００３８】
ホスト機器は、認証用ホスト鍵２０１と、ターゲット機器が持つ第１の認証用スレーブ鍵２０２とを入力として、第１の認証演算処理回路３０１において第１の認証演算処理２０３を実行し、第１の認証中間鍵２０４を生成する。ホスト機器は、第１の認証中間鍵２０４を入力として、認証判定回路３０２において認証演算処理の成否を判定する。具体的には、第１の認証中間鍵２０４の値が“０”であるか否かを判定する。認証結果は、認証完了信号出力回路３０３へと出力される。
【００３９】
第１の認証中間鍵２０４の値が“０”であった場合、認証完了信号出力回路３０３は異常検出割り込み３０４を出力して処理を終了させる。第１の認証中間鍵２０４の値が“０”でなかったとしても、認証回数終了信号をまだ受信していないので、認証完了信号３０５は出力しない。
【００４０】
第１の認証中間鍵２０４の値が“０”でなかった場合、すなわち認証に成功した場合、認証判定回路３０２はカウントアップ信号をカウンタ３０６に出力する。カウンタ３０６は、カウント値をインクリメントして“１”として、比較器３０７へと出力する。比較器３０７は、必要認証回数２０８とカウント値との比較を行う。
【００４１】
必要認証回数２０８が“１”であり、カウンタ３０６のカウント値が必要認証回数２０８と等しい場合、比較器３０７は、第２の認証演算処理回路３０８へのイネーブル信号を出力せず、第２の認証演算処理２１０は実行されない。また、認証完了信号出力回路３０３へは認証回数終了信号を出力する。
【００４２】
必要認証回数２０８は、認証完了信号出力回路３０３へも入力される。必要認証回数２０８が“１”であった場合、認証回数終了信号を受信した認証完了信号出力回路３０３は認証完了信号３０５を出力する。
【００４３】
必要認証回数２０８が“１”でなく、カウンタ３０６のカウント値と必要認証回数２０８が等しくない場合、比較器３０７は第２の認証演算処理回路３０８へのイネーブル信号を出力し、第２の認証演算処理２１０を実行する。ホスト機器は、認証用ホスト鍵２０１と、ターゲット機器から読み出された第２の認証用スレーブ鍵２１１とを、第２の認証演算処理回路３０８への入力として、第２の認証演算処理２１０を実行し、第２の認証中間鍵２１２を生成する。ホスト機器は、第２の認証中間鍵２１２を認証判定回路３０２に入力して、第２の認証演算処理２１０の成否を判定する。具体的には、第２の認証中間鍵２１２の値が“０”であるか否かを判定する。認証結果は、認証完了信号出力回路３０３に出力される。認証結果が認証に失敗したことを示す場合は、認証完了信号出力回路３０３は、異常検出割り込み３０４を出力する。
【００４４】
第２の認証中間鍵２１２の値が“０”でなかった場合、すなわち認証に成功した場合、認証判定回路３０２はカウントアップ信号をカウンタ３０６に出力する。カウンタ３０６は、カウント値をインクリメントして“２”として、比較器３０７へと出力する。比較器３０７は必要認証回数２０８と、カウント値との比較を行う。
【００４５】
必要認証回数２０８が“２”でない場合、本実施の形態において想定されている最大の認証回数は“２”であるために、比較器３０７は比較回数異常信号を認証完了信号出力回路３０３へと出力する。認証完了信号出力回路３０３は、比較回数異常信号が入力された場合、異常検出割り込み３０４を出力して処理を終了させる。
【００４６】
必要認証回数２０８が“２”であり、カウンタ３０６のカウント値が必要認証回数２０８と等しい場合、比較器３０７は、鍵比較回路３０９へとイネーブル信号を出力する。また、認証完了信号出力回路３０３へは認証回数終了信号を出力する。
【００４７】
必要認証回数２０８は、認証完了信号出力回路３０３へも出力される。認証完了信号出力回路３０３は、認証回数終了信号を受け取っても、必要認証回数２０８が“２”である場合は、鍵比較回路３０９が出力する鍵比較結果が入力されるまで認証完了信号３０５を出力しない。
【００４８】
イネーブル信号が入力された鍵比較回路３０９は、第１の認証中間鍵２０４と第２の認証中間鍵２１２が同一であるかどうかの比較を行い、その鍵比較結果を認証完了信号出力回路３０３へと出力する。
【００４９】
認証完了信号出力回路３０３は、鍵比較回路３０９から出力される鍵比較結果が、第１の認証中間鍵２０４と第２の認証中間鍵２１２が一致していることを示すとき、異常検出割り込み３０４を出力して処理を終了させる。また、鍵比較回路３０９から出力される鍵比較結果が、第１の認証中間鍵２０４と第２の認証中間鍵２１２が異なることを示すとき、認証完了信号３０５を出力して認証を成功させる。
【００５０】
以上のように、認証完了信号出力回路３０３は、必要認証回数２０８が“１”の場合、認証回数終了信号を受信すると、認証が成功したとして認証を終了する。また、必要認証回数２０８が“２”である場合、認証回数終了信号と２つの鍵が異なることを示す鍵比較結果の双方を受信すると、認証が成功したとして認証を終了する。
【００５１】
すなわち、認証回数をカウントし必要認証回数と比較することによって、必要な回数の認証を行わないと認証が成功しない構成として、セキュリティを高めている。また、必要認証回数が２回である場合は、同一の認証用スレーブ鍵を用いて認証が成功されることがないように、生成される認証中間鍵を比較している。
【００５２】
図４は、認証に成功した場合に、暗号化コンテンツ鍵を別の第２の認証中間鍵で暗号化し直す再暗号化回路の回路図であり、ホスト機器における機密情報処理部１０５内に実装されている。再暗号化は、認証用ホスト鍵が破られて第２の認証用スレーブ鍵が更新された場合に行われる処理である。
【００５３】
図４において、図２と同一の構成要素については、同一の符号を付して説明を省略する。
【００５４】
ホスト機器は、第２の認証中間鍵２１２を生成している場合は第２の認証中間鍵２１２を、そうでない場合は第１の認証中間鍵２０４をセレクタ４０１により選択し、選択した認証中間鍵とする。ホスト機器は、選択した認証中間鍵で予め暗号化され、ターゲット機器に格納されている、暗号化コンテンツ鍵４０２を読み出し、復号回路４０３において選択した認証中間鍵で復号化することで平文のコンテンツ鍵４０４を得る。コンテンツ鍵４０４は、暗号回路４０５によって、選択した認証中間鍵とは異なる別の第２の認証中間鍵４０６で再暗号化される。なお、別の第２の認証中間鍵４０６は、認証用ホスト鍵が破られて第２の認証用スレーブ鍵が更新されると、更新された認証用スレーブ鍵を用いて認証を行う際に生成される。再暗号化された暗号化コンテンツ鍵４０７は、暗号化コンテンツ鍵４０２を上書きすることでターゲット機器に格納される。
【００５５】
実施の形態１においては、認証回数をカウントすることによって、必要な認証回数の認証演算処理を行わないと処理が終了しないようにしている。また、第２の認証演算処理２１０で生成された第２の認証中間鍵２１２と、第１の認証演算処理２０３で生成された第１の認証中間鍵２０４の値を鍵比較回路３０９において比較することで、破られた認証用ホスト鍵２０１の情報を持つターゲット機器と破られた認証用ホスト鍵２０１を持つホスト機器との間で不正に認証が成功しないようにすることができる。さらに、認証用ホスト鍵２０１が破られた場合に実施される暗号化コンテンツ鍵の再暗号化を安全に行うことができる。
【００５６】
（実施の形態２）
本発明の実施の形態２について図面を参照しながら説明する。実施の形態２において、機密情報処理システムの全体構成図は、実施の形態１と同様であるので説明を省略する。
【００５７】
図５は、実施の形態２における認証方法のフローチャートを示す図である。実施の形態２は、ターゲット機器が複数の第２の認証用スレーブ鍵を有し、ホスト機器が認証演算処理を３回以上実行可能である点で、実施の形態１と大きく異なっている。
【００５８】
認証処理が開始されると、ホスト機器は、ホスト機器が有する認証用ホスト鍵５０１と、ターゲット機器から読み出した第１の認証用スレーブ鍵５０２を入力として、第１の認証演算処理５０３を実行する。第１の認証演算処理５０３は、一方向関数を含む複数の関数から構成される処理であって、認証に成功すれば第１の認証中間鍵５０４が生成され、認証に失敗すれば値“０”が生成される処理である。
【００５９】
第１の認証演算処理５０３が終了すると、生成された第１の認証中間鍵５０４あるいは値“０”が、ホスト機器内の認証中間鍵格納エリアへと格納され、認証判定５０５が行われる。認証判定５０５では、第１の認証演算処理５０３の出力が“０”であるか否かが判定される。“０”である場合は、ホスト機器は、不正なアクセスであるとして認証を失敗させ（５０６）、以降の処理を行わない。
【００６０】
第１の認証演算処理５０３での認証に成功すると、カウントアップを実行し（５０７）、ホスト機器が保持するカウンタのカウント値をインクリメントし、カウンタのカウント値を“１”とする。
【００６１】
カウンタのカウント値をインクリメントした後、ホスト機器は必要認証回数５０８とカウンタのカウント値との比較判定５０９を行う。必要認証回数５０８が“１”であれば、現在のカウンタのカウント値が必要認証回数５０８と等しくなり、第２の認証演算処理５１０を実行する必要はないとして認証を完了する。
【００６２】
必要認証回数５０８とカウンタのカウント値とが等しくない場合は、第２の認証演算処理５１０を実行する必要がある。第２の認証演算処理５１０においては、ホスト機器が、ターゲット機器が有する複数の第２の認証用スレーブ鍵５１１のうち１つを読み出す。そして、読み出した第２の認証用スレーブ鍵５１１と認証用ホスト鍵５０１とを入力として、第２の認証演算処理５１０を実行する。第２の認証演算処理５１０は、一方向関数を含む複数の関数から構成される処理であって、認証に成功すれば第２の認証中間鍵５１２が生成され、認証に失敗すれば値“０”が生成される処理である。第２の認証演算処理５１０は、認証用ホスト鍵５０１が破られた場合に、破られた認証用ホスト鍵と新たにターゲット機器内に配置された第２の認証用スレーブ鍵との間の認証を失敗させ、破られていない別の認証用ホスト鍵と第２の認証用スレーブ鍵との間の認証を成功させる処理でもある。
【００６３】
第２の認証演算処理５１０が終了すると、生成された第２の認証中間鍵５１２あるいは値“０”は、認証中間鍵格納エリアへと格納され、認証判定５１３が行われる。認証判定５１３では、第２の認証演算処理５１０の出力が“０”であるか否かが判定される。“０”である場合は、ホスト機器は、不正なアクセスであるとして認証を失敗させ（５１４）、以降の処理を行わない。
【００６４】
第２の認証演算処理５１０での認証に成功すると、カウントアップを実行し（５１５）、機密情報処理部１０５内のカウンタのカウント値をインクリメントし、カウンタのカウント値を“２”とする。
【００６５】
カウンタのカウント値をインクリメントした後、ホスト機器は鍵比較５１６を行う。鍵比較５１６においては、第１の認証中間鍵５０４あるいは１つ前の第２の認証中間鍵５１７の何れかを選択し（５１８）、第２の認証中間鍵５１２との比較を行う。カウンタのカウント値が“２”のときは、第１の認証中間鍵５０４を選択して第２の認証中間鍵と比較する。カウンタのカウント値が“２”以外のときは、１つ前の第２の認証中間鍵５１７を選択して第２の認証中間鍵５１２と比較する。
【００６６】
鍵比較５１６が終わると、比較された２つの鍵が等しいか否かの比較判定を行う（５１９）。本来は異なるべきである２つの認証中間鍵の値が等しい場合、不正な手段を用いて認証を試みていると考えられるため、異常を検出したとして認証フローを終了する（５２０）。２つの認証中間鍵の値が異なる場合、再度、必要認証回数５０８とカウンタのカウント値との比較を行う（５２１）。
【００６７】
カウンタの現在の値が必要認証回数５０８と等しい場合、ホスト機器は必要な回数の認証演算処理を実行したとして認証を完了する。そうでない場合、ホスト機器は第２の認証演算処理５１０に戻り、１回目の第２の認証演算処理で用いた第２の認証用スレーブ鍵とは異なる第２の認証用スレーブ鍵を用いて、次の第２の認証演算処理を実行する。その際、前回の認証で生成された第２の認証中間鍵５１２を１つ前の第２の認証中間鍵として更新する（５２２）。その結果、２回目の第２の認証演算処理においては、最初に生成された第２の認証中間鍵と、２回目の第２の認証演算処理において生成された第２の認証中間鍵とが、鍵比較５１６において比較されることになる。
【００６８】
必要認証回数５０８とカウンタのカウント値が等しくなるまで、第２の認証用スレーブ鍵を変えながら上記処理を繰り返すことにより、任意の回数の第２の認証演算処理を行い、認証を終了することができる。認証が終了すると、ホスト機器は、ターゲット機器にある暗号化コンテンツの復号化等を行うことができる。
【００６９】
図６は、上記の認証方法を実装したホスト機器における機密情報処理部のうち、認証を行う回路の回路図である。図６において、図５と同一の構成要素については同一の符号を用いて説明を省略する。また、図６に示される構成は、ハードウェアとして半導体集積回路内に秘匿されている。すなわち、ホストＣＰＵからのアクセスなどによってその処理のシーケンスを変更することができない。なお、認証処理の中で生成される認証中間鍵などは、いずれも機密情報処理部１０５内の認証中間鍵格納エリア（レジスタ）に格納されるものであるが、図示は省略している。
【００７０】
ホスト機器は、認証用ホスト鍵５０１と、ターゲット機器から読み出した第１の認証用スレーブ鍵５０２とを入力として、第１の認証演算処理回路６０１において第１の認証演算処理５０３を実行し、第１の認証中間鍵５０４を生成する。ホスト機器は、第１の認証中間鍵５０４を入力として、認証判定回路６０２において、第１の認証演算処理５０３の成否を判定する。具体的には、第１の認証中間鍵５０４が値“０”であるか否かを判定する。認証結果は、認証完了信号出力回路６０３へと出力される。
【００７１】
第１の認証中間鍵５０４の値が“０”であった場合、認証結果は“失敗”となるため、認証完了信号出力回路６０３は異常検出割り込み６０４を出力して処理を終了させる。なお、認証結果が“成功”であったとしても、認証回数終了信号を受信していないため、認証完了信号６０５は出力しない。
【００７２】
第１の認証中間鍵５０４の値が“０”でなかった場合、すなわち認証に成功した場合、認証判定回路６０２はカウントアップ信号をカウンタ６０６に出力する。カウンタ６０６は、カウント値をインクリメントして“１”として、比較器６０７へと出力する。比較器６０７は、必要認証回数５０８とカウント値との比較を行う。
【００７３】
必要認証回数５０８が“１”であり、カウンタ６０６のカウント値と必要認証回数５０８が等しい場合、比較器６０７は第２の認証演算処理回路６０８へのイネーブル信号を出力せず、第２の認証演算処理５１０を実行しない。また、認証完了信号出力回路６０３へは認証回数終了信号が出力される。
【００７４】
認証完了信号出力回路６０３は、入力される必要認証回数５０８が“１”である場合、認証回数終了信号を受信すると認証完了信号６０５を出力して認証を成功させる。
【００７５】
必要認証回数５０８が“１”でなく、カウンタ６０６のカウント値と必要認証回数５０８が等しくない場合、比較器６０７は、第２の認証演算処理回路６０８へのイネーブル信号を出力し、第２の認証演算処理回路６０８を動作させる。ホスト機器は、認証用ホスト鍵５０１と、ターゲット機器から読み出された第２の認証用スレーブ鍵５１１とを、第２の認証演算処理回路６０８への入力として、第２の認証演算処理５１０を実行し、第２の認証中間鍵５１２を生成する。生成された第２の認証中間鍵５１２は認証判定回路６０２に入力されると共に、１つ前の第２の認証中間鍵格納レジスタ６１０にも格納される。第２の認証演算処理回路６０８は、鍵比較回路６０９へイネーブル信号を出力し、鍵比較回路６０９を動作させる。
【００７６】
認証判定回路６０２は、入力された第２の認証中間鍵５１２の値に基づいて、第２の認証演算処理５１０の成否を判定する。具体的には、第２の認証中間鍵５１２の値が“０”であるか否かを判定する。認証結果は、認証完了信号出力回路６０３に出力される。認証に失敗した場合は、認証完了信号出力回路６０３は、異常検出割り込み６０４を出力する。
【００７７】
第２の認証中間鍵５１２の値が“０”でなかった場合、すなわち認証に成功した場合、認証判定回路６０２はカウントアップ信号をカウンタ６０６に出力する。カウンタ６０６は、カウント値をインクリメントして“２”として、比較器６０７へと出力する。比較器６０７は必要認証回数５０８と、カウント値との比較を行う。
【００７８】
必要認証回数５０８が“２”であり、カウンタ６０６のカウント値が必要認証回数５０８と等しい場合、比較器６０７は、認証完了信号出力回路６０３へと認証回数終了信号を出力する。必要認証回数５０８が“２”でなく、カウンタ６０６のカウント値が必要認証回数５０８と等しくない場合、認証回数終了信号は出力されず、再度第２の認証演算処理回路６０８へとイネーブル信号が出力される。そして、第２の認証演算処理回路６０８は、１回目の第２の認証演算処理で用いた第２の認証用スレーブ鍵とは異なる第２の認証用スレーブ鍵を用いて、第２の認証演算処理を行う。なお、２回目の第２の認証演算処理で生成される第２の認証中間鍵は、１つ前の第２の認証中間鍵格納レジスタ６１０に格納される。その際、１つ前の第２の認証中間鍵格納レジスタ６１０に格納された第２の認証中間鍵と、２回目の第２の認証演算処理で生成された第２の認証中間鍵が、鍵比較回路６０９で比較されてから上書きされる。
【００７９】
また、イネーブル信号を入力された鍵比較回路６０９は、カウンタ６０６のカウント値が“２”の場合、第１の認証中間鍵５０４と第２の認証中間鍵５１２が同一であるかどうかの比較を行う。カウンタ６０６のカウント値が“２”より大きい場合、１つ前の第２の認証中間鍵格納レジスタ６１０に格納された第２の認証中間鍵と、第２の認証演算処理回路から出力された第２の認証中間鍵との鍵比較を行う。鍵比較結果は、認証完了信号出力回路６０３へと出力される。
【００８０】
認証完了信号出力回路６０３は、鍵比較結果が、２つの認証中間鍵の値が一致していることを示すとき、異常検出割り込み６０４を出力して処理を終了する。
【００８１】
認証完了信号出力回路６０３は、必要認証回数５０８が“２”以上の場合、必要認証回数５０８が示す値より１つ少ない回数の鍵比較結果と、認証回数終了信号とを受信した段階で、認証完了信号６０５を出力する。
【００８２】
なお、認証に成功した後に、暗号化コンテンツ鍵を別の第２の認証中間鍵で暗号化し直す再暗号化回路については、実施の形態１と同様であるので説明を省略する。
【００８３】
実施の形態２において、認証完了信号出力回路６０３は、必要認証回数５０８が“１”の場合、認証回数終了信号を受信すると、認証が成功したとして認証を終了する。また、必要認証回数５０８が“２”以上である場合、認証回数終了信号と必要認証回数より１つ少ない回数の正常な鍵比較結果との双方を受信すると、認証が成功したとして認証を終了する。
【００８４】
すなわち、認証回数をカウントし必要認証回数と比較することによって、必要な回数の認証を行わないと認証が成功しない構成としてセキュリティを高めている。また、同一の認証用スレーブ鍵を用いて認証が成功されることがないように、生成される認証中間鍵を順次比較している。
【００８５】
なお、本実施の形態においては任意の回数の認証回数を実行するために、実施の形態１で説明された比較回数異常信号は用いていない。しかしながら、例えば認証回数の上限が限られている場合等は、その回数以上の認証が行われた場合に、比較器６０７が比較回数異常信号を出力してもよい。
【００８６】
また、鍵比較回路６０９へのイネーブル信号は、実施の形態１と同様に比較器が出力するものであってもよい。
【００８７】
（変形例）
実施の形態１、２共に、認証回数をカウントし、ホスト機器に保持される必要認証回数と比較する構成として説明している。しかしながら、認証演算処理が１回行われると１個の認証中間鍵が生成される点に鑑みると、ホスト機器は必要認証回数ではなく必要な認証中間鍵の個数を保持し、認証回数と比較するものであってもよい。あるいは、認証中間鍵自体の個数をカウントし、必要認証回数と比較するものであってもよい。
【００８８】
また、第１の認証演算処理回路と第２の認証演算処理回路を別々に設けて認証演算を行っているが、単一の認証演算処理回路を繰り返し用いてもよい。
【００８９】
また、必要認証回数は、暗号化されてホスト機器に保持されていると、セキュリティの観点からさらに好ましい。
【産業上の利用可能性】
【００９０】
本発明は、破られた認証用ホスト鍵の情報を持つターゲット機器と、破られた認証用ホスト鍵を持つホスト機器との間での認証が不正な手段によって成功することを防ぐ認証方法であり、セキュリティが向上するので、電子配信等で利用可能である。
【図面の簡単な説明】
【００９１】
【図１】本発明における機密情報処理システムの全体構成を示した図
【図２】本発明の実施の形態１における認証方法のフローチャート
【図３】本発明の実施の形態１における認証方法を実行する回路の一例を示した図
【図４】本発明の実施の形態１における鍵を再暗号化する回路の一例を示した図
【図５】本発明の実施の形態２における認証方法のフローチャート
【図６】本発明の実施の形態２における認証方法を実行する回路の一例を示した図
【図７】従来の認証方法のフローチャート
【図８】暗号化コンテンツの復号化のフローチャート
【図９】コンテンツの暗号化のフローチャート
【図１０】ターゲット機器に機密情報を格納した状態を示す図
【符号の説明】
【００９２】
１０１  ターゲット機器
１０２  ホスト機器
１０３  バス
１０４  ターゲットＩ／Ｆ部
１０５  機密情報処理部
１０６  ホストＣＰＵ
１０７  ホストＩ／Ｆ部
１０８  ＲＡＭ
２０１，５０１  認証用ホスト鍵
２０２，５０２  第１の認証用スレーブ鍵
２０４，５０４  第１の認証中間鍵
２１１，５１１  第２の認証用スレーブ鍵
２１２，５１２  第２の認証中間鍵
３０１，６０１  第１の認証演算処理回路
３０２，６０２  認証判定回路
３０３，６０３  認証完了信号出力回路
３０４，６０４  異常検出割り込み
３０５，６０５  認証完了信号
３０６，６０６  カウンタ
３０７，６０７  比較器
３０８，６０８  第２の認証演算処理回路
３０９，６０９  鍵比較回路
４０１  セレクタ
４０２，４０７  暗号化コンテンツ鍵
４０３  復号回路
４０４  コンテンツ鍵
４０５  暗号回路
４０６  別の第２の認証中間鍵
１００１  第１の領域
１００２  第２の領域
１００３  第３の領域
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2006046484.tif 000012
【図２】
2006046484.tif 000013
【図３】
2006046484.tif 000014
【図４】
2006046484.tif 000015
【図５】
2006046484.tif 000016
【図６】
2006046484.tif 000017
【図７】
2006046484.tif 000018
【図８】
2006046484.tif 000019
【図９】
2006046484.tif 000020
【図１０】
2006046484.tif 000021
【国際調査報告】
2006046484.tif 000022
2006046484.tif 000023