(57)【要約】【課題】秘匿すべき情報を保護する秘密情報処理装置を提供する。【解決手段】秘密情報処理装置は、第１秘密値を保持する保持手段と、ユーザ装置から認証情報を含み、データを要求する第１コマンドを受信すると、前記第１秘密値に基づき受信した前記第１コマンドの認証情報を検査することで、前記ユーザ装置の認証を行う認証手段と、を備えており、前記認証手段は、前記第１コマンドを送信したユーザ装置の認証が不成功であると、当該ユーザ装置からその後に受信するコマンドに対する応答として、肯定応答と否定応答のいずれかをランダムに選択する第１モードを開始する。【選択図】図１
2016063373.tif 000002
【特許請求の範囲】
【請求項１】
第１秘密値を保持する保持手段と、
ユーザ装置から認証情報を含み、データを要求する第１コマンドを受信すると、前記第１秘密値に基づき受信した前記第１コマンドの認証情報を検査することで、前記ユーザ装置の認証を行う認証手段と、
を備えており、
前記認証手段は、前記第１コマンドを送信したユーザ装置の認証が不成功であると、当該ユーザ装置からその後に受信するコマンドに対する応答として、肯定応答と否定応答のいずれかをランダムに選択する第１モードを開始することを特徴とする秘密情報処理装置。
【請求項２】
前記認証手段は、前記第１コマンドを送信したユーザ装置の認証が不成功であると、前記第１モードの終了タイミングを決定することを特徴とする請求項１に記載の秘密情報処理装置。
【請求項３】
前記認証手段は、前記第１モードの終了タイミングをランダムに決定することを特徴とする請求項２に記載の秘密情報処理装置。
【請求項４】
前記認証手段は、前記第１コマンドを送信したユーザ装置の認証が不成功であると、当該第１コマンドに対する応答としては否定応答を選択することを特徴とする請求項１から３のいずれか１項に記載の秘密情報処理装置。
【請求項５】
前記認証手段は、前記第１モードにおいて前記肯定応答を選択した場合、前記第１コマンドで要求されたデータとは異なるデータ、又は、前記第１コマンドで要求されたデータとは異なるデータを第２秘密値で暗号化したデータを前記肯定応答に含めることを特徴とする請求項１から４のいずれか１項に記載の秘密情報処理装置。
【請求項６】
前記認証手段は、前記第１モードにおいて前記肯定応答を選択した場合、前記第１コマンドで要求されたデータを第２秘密値で暗号化したデータと、前記コマンドで要求されたデータとは異なるデータのいずれかをランダムに選択して、前記肯定応答に含めることを特徴とする請求項１から４のいずれか１項に記載の秘密情報処理装置。
【請求項７】
前記認証手段は、前記第１モードにおいて前記肯定応答を選択した場合、前記第１コマンドで要求されたデータを第２秘密値で暗号化したデータと、前記第１コマンドで要求されたデータとは異なるデータを前記第２秘密値で暗号化したデータのいずれかをランダムに選択して、前記肯定応答に含めることを特徴とする請求項１から４のいずれか１項に記載の秘密情報処理装置。
【請求項８】
前記認証手段は、前記第１コマンドで要求されたデータとは異なるデータをランダムに生成することを特徴とする請求項５から７のいずれか１項に記載の秘密情報処理装置。
【請求項９】
前記認証手段は、前記第１モードにおいて前記ユーザ装置から受信する前記第１コマンドに対しては、前記第２秘密値に基づき前記認証情報を検査することで、当該ユーザ装置の認証を行うことを特徴とする請求項５から８のいずれか１項に記載の秘密情報処理装置。
【請求項１０】
前記認証手段は、前記第１モードを開始する際に、前記第２秘密値を生成することを特徴とする請求項５から９のいずれか１項に記載の秘密情報処理装置。
【請求項１１】
前記認証手段は、前記第１モードにおいて前記ユーザ装置からコマンドを受信する度に、前記第２秘密値を生成することを特徴とする請求項１０に記載の秘密情報処理装置。
【請求項１２】
前記認証手段は、前記第２秘密値をランダムに生成することを特徴とする請求項１０又は１１に記載の秘密情報処理装置。
【請求項１３】
前記認証手段は、前記第１モードにおいて、第２コマンドを前記ユーザ装置から受信すると、前記第１秘密値に基づき前記第２コマンドの認証情報を検査することで、前記ユーザ装置の認証を行い、認証が成功すると、前記第１モードを終了することを特徴とする請求項１から１２のいずれか１項に記載の秘密情報処理装置。
【請求項１４】
前記認証手段は、前記第１モードにおいて、前記第２コマンドを前記ユーザ装置から受信すると、前記第１秘密値に基づき前記第２コマンドの認証情報を検査することで、前記ユーザ装置の認証を行い、認証が不成功であると、前記第１モードの終了タイミングを遅らせることを特徴とする請求項１３に記載の秘密情報処理装置。
【請求項１５】
前記第１コマンドは、前記保持手段が保持するデータを要求するためのコマンドであることを特徴とする請求項１から１４のいずれか１項に記載の秘密情報処理装置。
【請求項１６】
前記第１コマンドは、前記第１コマンドに含まれるデータを、前記保持手段が保持する第３秘密値で暗号化したデータを要求するコマンドであることを特徴とする請求項１から１４のいずれか１項に記載の秘密情報処理装置。
【請求項１７】
第１秘密値を保持する保持手段と、
ユーザ装置から認証情報を含み、データを要求する第１コマンドを受信すると、前記第１秘密値に基づき受信した前記第１コマンドの認証情報を検査することで、前記ユーザ装置の認証を行う認証手段と、
を備えており、
前記認証手段は、前記第１コマンドを送信したユーザ装置の認証が不成功であると、第２秘密値を生成し、当該ユーザ装置からその後に受信するコマンドに対しては、前記第２秘密値に基づき前記認証情報を検査することで、当該ユーザ装置の認証を行う第１モードを開始することを特徴とする秘密情報処理装置。
【請求項１８】
前記認証手段は、前記第１モードにおいて、第２コマンドを前記ユーザ装置から受信すると、前記第１秘密値に基づき前記第２コマンドの認証情報を検査することで、前記ユーザ装置の認証を行い、認証が成功すると、前記第１モードを終了することを特徴とする請求項１７に記載の秘密情報処理装置。
【請求項１９】
前記認証手段は、前記第１モードにおいて、前記第２コマンドを前記ユーザ装置から受信すると、前記第１秘密値に基づき前記第２コマンドの認証情報を検査することで、前記ユーザ装置の認証を行い、認証が不成功であると、前記第１モードの終了タイミングを遅らせることを特徴とする請求項１８に記載の秘密情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、秘匿すべき情報を保護する秘密情報処理装置に関する。
【背景技術】
【０００２】
ユーザ装置の認証や、秘匿すべき情報の安全な送信のため、非特許文献１や、非特許文献２に記載の暗号化アルゴリズムが使用される。しかしながら、暗号化アルゴリズムにおいて使用する暗号鍵が流出すると、認証においてはなりすましが可能となり、秘匿すべき情報については保護されなくなる。したがって、暗号鍵の秘匿性を維持することが、認証及び暗号通信においては重要である。このため、特許文献１は、定期的に暗号鍵を変更する方法を開示している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許第７３７３５２２号明細書
【非特許文献】
【０００４】
【非特許文献１】ＦＩＰＳ  １９７，Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ（ＡＥＳ），２００１年１１月
【非特許文献２】ＮＩＳＴ  ｓｐｅｃｉａｌ  ｐｕｂｌｉｃａｔｉｏｎ  ８００−３８Ｂ.  Ｒｅｃｏｍｍｅｎｄａｔｉｏｎ  ｆｏｒ  Ｂｌｏｃｋ  Ｃｉｐｈｅｒ  Ｍｏｄｅｓ  ｏｆ  ｏｐｅｒａｔｉｏｎ：Ｔｈｅ  ＣＭＡＣ  Ｍｏｄｅ  ｆｏｒ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ，ＮＩＳＴ，２００５年５月
【発明の概要】
【発明が解決しようとする課題】
【０００５】
例えば、所定のアルゴリズムにより暗号鍵を変更したとしても、暗号鍵を変更するためのアルゴリズムが流出すると、情報の安全性は保てなくなる。
【０００６】
本発明は、秘匿すべき情報を保護する秘密情報処理装置を提供するものである。
【課題を解決するための手段】
【０００７】
本発明の一側面によると、秘密情報処理装置は、第１秘密値を保持する保持手段と、ユーザ装置から認証情報を含み、データを要求する第１コマンドを受信すると、前記第１秘密値に基づき受信した前記第１コマンドの認証情報を検査することで、前記ユーザ装置の認証を行う認証手段と、を備えており、前記認証手段は、前記第１コマンドを送信したユーザ装置の認証が不成功であると、当該ユーザ装置からその後に受信するコマンドに対する応答として、肯定応答と否定応答のいずれかをランダムに選択する第１モードを開始することを特徴とする。
【発明の効果】
【０００８】
本発明によると、秘匿すべき情報を保護することができる。
【図面の簡単な説明】
【０００９】
【図１】一実施形態による秘密情報処理装置の構成図。
【図２】一実施形態による秘密情報処理装置とユーザ装置との間で使用するコマンド及びレスポンスを示す図。
【図３】一実施形態による秘密情報処理装置における処理のフローチャート。
【図４】一実施形態による暗号鍵選択処理のフローチャート。
【図５】一実施形態によるレスポンス選択処理のフローチャート。
【図６】一実施形態による秘密情報処理装置の構成図。
【図７】一実施形態による秘密情報処理装置とユーザ装置との間で使用するコマンド及びレスポンスを示す図。
【発明を実施するための形態】
【００１０】
以下、本発明の例示的な実施形態について図面を参照して説明する。なお、以下の実施形態は例示であり、本発明を実施形態の内容に限定するものではない。また、以下の各図においては、実施形態の説明に必要ではない構成要素については図から省略する。
【００１１】
＜第一実施形態＞
図１は、本実施形態による秘密情報処理装置２０１の構成図である。なお、秘密情報処理装置２０１は、図示しないユーザ装置からコマンドを受信すると、受信したコマンドに応じて生成したレスポンスを当該ユーザ装置に送信する。なお、ユーザ装置は、秘密情報処理装置２０１が秘密情報保持部２０７に保持するのと同じ秘密値である主暗号鍵２０９を保持している。図２は、本実施形態において、ユーザ装置が秘密情報処理装置２０１に送信するコマンドと、コマンドの応答として秘密情報処理装置２０１が当該ユーザ装置に送信するレスポンスを示している。図２に示す様に、本実施形態においてユーザ装置が秘密情報処理装置２０１に送信するコマンドは、秘密情報処理装置２０１が保持する情報（データ）を読み出すためのデータ読出しコマンドと、リセットコマンドと、カウンタ読出しコマンドである。また、秘密情報処理装置２０１は、何れのコマンドであっても、肯定応答（ＡＣＫ）又は否定応答（ＮＡＣＫ）のいずれかを、その応答としてユーザ装置に送信する。
【００１２】
図２の表において、付属データとは、コマンド及びレスポンスに付属して送信される情報を示している。具体的には、ユーザ装置は、コマンドが図２のいずれのコマンドであるかを示すコマンド識別情報（ＣＩＤ）と、各コマンドに対応する付属データを秘密情報処理装置２０１に送信する。同様に、秘密情報処理装置２０１は、レスポンスがＡＣＫ又はＮＡＣＫのいずれであるかを示すレスポンス識別情報（ＲＩＤ）と、各レスポンスに対応する付属データをユーザ装置に送信する。
【００１３】
なお、付属データで使用している"｜"は、結合を意味し、例えば、アドレスが"１２"であり、サイズが"３４"であると、"アドレス｜サイズ"の値は"１２３４"である。また、アドレスは、ユーザ装置が要求するデータが格納されている、秘密情報処理装置２０１のメモリの開始アドレスであり、サイズは、当該開始アドレスから読み出すデータサイズである。さらに、ＭＡＣ（ｋｅｙ、ｘ）は、暗号鍵ｋｅｙにより、値ｘを非特許文献２に記載のＣＭＡＣアルゴリズムで暗号化した結果であり、ＡＥＳ（ｋｅｙ、ｘ）は、暗号鍵ｋｅｙにより、値ｘを非特許文献１に記載のＡＥＳアルゴリズムで暗号化した結果である。なお、コマンドの付属データに含まれる、ユーザ装置が保持する主暗号鍵２０９による暗号結果は、秘密情報処理装置２０１がユーザ装置の正当性を認証するための認証情報として使用される。例えば、ユーザ装置は、データを読み出す場合、データ読出しコマンドのコマンド識別情報と、アドレスと、サイズを結合した値を、主暗号鍵２０９で暗号化して認証情報とする。そして、アドレスと、サイズと、認証情報とを結合した結果を付属データとして秘密情報処理装置２０１に送信する。
【００１４】
なお、より詳しくは、ユーザ装置は、コマンド識別情報と付属データを結合した値をＣＭＤとすると、Ｌｎ(ＣＭＤ)｜ＣＭＤ｜ＣＲＣ（Ｌｎ（ＣＭＤ）｜ＣＭＤ）を秘密情報処理装置２０１に送信する。ここで、Ｌｎ（ｘ）はデータｘの長さを表している。また、ＣＲＣ（ｘ）は、データｘに対する誤り検出符号である。同様に、秘密情報処理装置２０１は、レスポンス識別情報と付属データを結合した値をＲＳＰとすると、Ｌｎ（ＲＳＰ）｜ＲＳＰ｜ＣＲＣ（Ｌｎ（ＲＳＰ）｜ＲＳＰ）をユーザ装置に送信する。誤り検出符号を使用するのは、伝送路におけるノイズ等により生じるビット誤りによる誤動作を防ぐためである。
【００１５】
図１の通信部２０２は、ユーザ装置からコマンドを受信すると、受信したコマンドをコマンド処理部２０４に出力する。コマンド処理部２０４は、誤り検出符号を検査し、誤りを検出すると、通信部２０２経由でユーザ装置にＮＡＣＫを送信する。一方、誤りを検出しないと、コマンドを秘密処理部２０５に出力する。秘密処理部２０５は、コマンド処理部２０４からコマンドを受け取ると、以下に説明する処理によりレスポンスを生成して、コマンド処理部２０４に出力する。コマンド処理部２０４は、秘密処理部２０５からのレスポンスに対して、上述した様に、その長さと、レスポンスと、誤り検出符号の値の計算結果を結合して通信部２０２経由でユーザ装置に送信する。
【００１６】
図３は、秘密処理部２０５での処理フローを示している。まず、正当なユーザ装置から初めてデータ読出しコマンドを受信した場合の処理について説明する。秘密処理部２０５は、Ｓ１０１で乱数生成部２０８に乱数列を発生させる。その後、Ｓ１０２で、秘密処理部２０５は、図４に示す暗号鍵の選択処理を行う。まず、秘密処理部２０５は、図４のＳ２０１でカウンタ値が０であるか否かを判定する。なお、カウンタ値は、秘密情報処理装置２０１の動作開始時に０に初期化しておく。カウンタ値が０であると、秘密処理部２０５は、Ｓ２０５で秘密情報保持部２０７が保持する主暗号鍵２０９を選択する。一方、カウンタ値が０ではないと、秘密処理部２０５は、Ｓ２０２で、当該ユーザ装置からの最初のリセットコマンドであるかを判定する。最初のリセットコマンドである場合には、秘密処理部２０５は、Ｓ２０５で秘密情報保持部２０７が保持する主暗号鍵２０９を選択する。一方、最初のリセットコマンドではない場合、秘密処理部２０５は、Ｓ２０３で、当該ユーザ装置からの最初のカウンタ読出しコマンドであるかを判定する。最初のカウンタ読出しコマンドである場合には、秘密処理部２０５は、Ｓ２０５で秘密情報保持部２０７が保持する主暗号鍵２０９を選択する。一方、最初のカウンタ読出しコマンドではない場合、秘密処理部２０５は、Ｓ２０４で秘密情報保持部２０７が保持する副暗号鍵２１０を選択する。
【００１７】
なお、図４のフローチャートにおいて、最初のリセットコマンドであるとは、データ読出しコマンドの認証情報に対する認証が不成功となった後に初めて受信したリセットコマンドとの意味であるものとする。最初のカウンタ読出しコマンドについても同様である。
【００１８】
本例は、正当なユーザ装置から初めてデータ読出しコマンドを受信した場合であるので、カウンタ値は０であり、よって、秘密処理部２０５は、図３のＳ１０２において主暗号鍵２０９を選択する。秘密処理部２０５は、Ｓ１０３で、主暗号鍵２０９によりコマンドの付属データに含まれる認証情報を検査し、Ｓ１０４で認証結果、つまり、認証成功か不成功かを判定する。本例では、正当なユーザ装置からのデータ読出しコマンドであり認証は成功する。また、Ｓ１０５でのリセットコマンドか否かの判定はＮｏであるため、Ｓ１０８でカウンタ値が０であるか否かが判定され、本例では、カウンタ値が０であるため、秘密処理部２０５は、Ｓ１０７でレスポンスを生成してコマンド処理部２０４に送信する。なお、ここでの、レスポンスとは、認証が成功しているためＡＣＫであり、このレスポンスには、図２に示す様に、ユーザ装置が要求したデータを主暗号鍵２０９で暗号化した値が付属データとして含められる。
【００１９】
続いて、正当ではないユーザ装置からデータ読出しコマンドを受信した場合の処理について図３を用いて説明する。なお、以下の説明において、正当ではないユーザ装置を攻撃装置と呼ぶものとする。また、カウンタ値は０であるものとする。この場合、Ｓ１０２の暗号鍵選択処理で主暗号鍵２０９が選択され、Ｓ１０３では、この主暗号鍵２０９により認証処理が行われる。攻撃装置は主暗号鍵２０９の値を知らないため、Ｓ１０４での認証結果は不成功となる。この場合、秘密処理部２０５は、Ｓ１０９でカウンタ値が０であるか否かを判定する。本例では、カウンタ値は０であるため、秘密処理部２０５は、Ｓ１１０で、Ｓ１０１で生成した乱数列に基づき２以上のカウンタ値を決定して設定する。つまり、Ｓ１０１で２以上のカウンタ値をランダムに選択する。その後、秘密処理部２０５は、Ｓ１１１で副暗号鍵２１０の値と、返送の候補値を、それぞれ、Ｓ１０１で生成した乱数列に基づき決定して設定する。つまり、副暗号鍵２１０と候補値をランダムに生成する。
【００２０】
そして、秘密処理部２０５は、Ｓ１１２で、図５に示すレスポンスの決定処理を行う。まず、秘密処理部２０５は、Ｓ３０１でカウンタ値が０であるかを判定する。カウンタ値が０であると、レスポンスとしてＡＣＫが選択され、その付属データには、通常データ、つまり、ユーザが要求したデータを暗号化した値を含める。本例では、Ｓ１１０においてカウンタ値を乱数列に基づき０以外の値に設定しているため、Ｓ３０２に進む。Ｓ３０２において、１つ前のカウンタ値、つまり、Ｓ１１０で更新する前のカウンタ値が０であるかを判定する。本例では、０であるため、秘密処理部２０５は、Ｓ３０４でＮＡＣＫを応答すると決定し、コマンド処理部２０４に通知する。図３に戻り、秘密処理部２０５は、Ｓ１１３でカウンタ値を１だけ減少させる。この様に、秘密情報処理装置２０１は、あるユーザ装置から受信したデータ読出しコマンドにおいて認証処理が不成功になると、当該ユーザ装置にＮＡＣＫを送信する。これは、正当なユーザ装置からのコマンドに対する認証が何らかの理由により不成功となった場合に、その旨を当該ユーザ装置に知らせるためである。なお、この場合、攻撃装置も認証情報の作成に使用した主暗号鍵２０９が正しくないことを認識する。
【００２１】
続いて、この攻撃装置が、再度、データ読出しコマンドを送信した場合の処理について説明する。この場合、カウンタ値は０ではないため、図３のＳ１０２の暗号鍵選択処理では副暗号鍵２１０が選択される。したがって、Ｓ１０３では、この副暗号鍵２１０により認証処理が行われる。副暗号鍵２１０は、１つ前の図３の処理におけるＳ１１１において乱数列に基づき生成されたものであるため、Ｓ１０４での認証結果は不成功となり処理はＳ１０９に進む。なお、副暗号鍵２１０による認証処理は、主暗号鍵２０９による認証処理と同じ計算処理である。したがって、秘密情報処理装置２０１における消費電力及び実行時間は主暗号鍵２０９と同じである。よって、攻撃装置を使用している攻撃者が、秘密情報処理装置２０１における電気特性の差異を認識することは困難である。本例では、カウンタ値０ではないため、Ｓ１０９の判定結果はＮｏであり、よって、秘密処理部２０５は、Ｓ１１１で副暗号鍵２１０と候補値を再度、乱数列に基づいて決定する。続いて、秘密処理部２０５は、Ｓ１１２でレスポンスの決定処理を行う。本例では、図５のＳ３０１とＳ３０２共にＮｏである。さらに、このユーザ装置からの最初のカウンタ読出しコマンドではないため、処理はＳ３０５に進む。Ｓ３０５において、秘密処理部２０５は、ＮＡＣＫ応答と、ＡＣＫ応答とをランダムに選択する。また、ＡＣＫ応答を選択する場合においても、その付属データに含める暗号化された値については、候補値、或いは、要求されたデータのいずれかをランダムに選択する。なお、付属データに読出しデータを含める場合には、図２に示す通り副暗号鍵２１０で暗号化するが、候補値を含める場合には、副暗号鍵２１０で暗号化してもしなくても良い。
【００２２】
この様に、秘密処理部２０５は、１度、データ読出しコマンドを受信した際の認証が不成功になると、２回目以降は、カウンタ値が０となるまで、ＡＣＫとＮＡＣＫをランダムに返送するモードに遷移する。このとき、正当なユーザ装置が有する主暗号鍵２０９を使用しない。よって、攻撃装置は、認証が成功しているのか否かの判断が困難になる。また、秘密情報処理装置２０１における処理に変化はないため、秘密情報処理装置２０１が偽の処理を行っているか否かを攻撃装置が判定することも困難である。さらに、カウンタ値が０になるタイミング、つまり偽の処理を行うモードの終了タイミングも、乱数列に基づき生成しているため、秘密情報処理装置２０１がいつ、主暗号鍵２０９を使用した処理に復帰するかを予測することも困難である。この構成により、主暗号鍵２０９を取得するための攻撃に対する耐性を高めることができ、秘密にすべき情報を安全に保つことができる。
【００２３】
なお、本実施形態において、正当なユーザ装置は、図２のリセットコマンドを送信することで、秘密情報処理装置２０１が偽の処理を行うモードを終了させ、通常の処理を行うモードに復帰させることができる。なお、正当なユーザ装置は、最初のデータ読出しコマンドの応答としてＮＡＣＫを受信することで、秘密情報処理装置２０１が偽の処理を行う状態となっていることを認識できる。以下、秘密情報処理装置２０１がリセットコマンドを受信した場合についての処理を説明する。秘密処理部２０５は、図３のＳ１０２において暗号鍵の選択処理を行う。図４に示す通り、最初のリセットコマンドである場合には、Ｓ１０２において主暗号鍵２０９が選択される。この場合、Ｓ１０４での認証処理は成功し、Ｓ１０５の判定はＹｅｓであるため、Ｓ１０６でカウンタ値が０にクリアされ、Ｓ１０７でＡＣＫが生成される。なお、攻撃装置がリセットコマンドを送信した場合、Ｓ１０４での認証は不成功になる。図３のフローチャートでは、カウンタ値が０ではないと、カウンタ値が変更されない。しかしながら、リセットコマンドに対する認証が不成功であると、乱数列に基づき決定するカウンタ値の最大値がより大きくなる様に変更してカウンタ値を再設定する構成とすることもできる。また、単に、そのときのカウンタ値をより大きい値に変更して、秘密情報処理装置２０１が偽の処理を行うモードを終了するタイミングを遅らせることができる。これにより、カウンタ値が０となるまでの平均的な期間を長くし、攻撃に対する耐性を高めることができる。
【００２４】
また、正当なユーザ装置は、カウンタ読み出しコマンドにより、カウンタ値が０となるタイミングを知ることができる。カウンタ値が０でない状態で、ユーザ装置がカウンタ読み出しコマンドを送信すると、図４から主暗号鍵２０９が図３のＳ１０２において選択される。ユーザ装置が正当であると、Ｓ１０４での認証処理は成功するが、カウンタ値は０でないため、処理はＳ１０５、Ｓ１０８及びＳ１０９を経由してＳ１１１に進む。Ｓ１１１での処理後、Ｓ１１２においては、最初のカウンタ読出しコマンドであるため、図５のＳ３０６でＡＣＫがレスポンスとして選択される。このレスポンスには、ユーザ装置が要求した情報、つまり、カウンタ読出しコマンドにおいてはカウンタ値を暗号化した値が付属データとして含まれる。
【００２５】
なお、本実施形態において、カウンタ値と、副暗号鍵と、候補値を、それぞれ、同じ乱数列から生成していたが、異なる乱数列を使用する構成とすることもできる。また、本実施形態において、秘密処理部２０５はカウンタが０ではなく、かつ、受信したコマンドが最初のリセットコマンド又は最初のカウンタ読出しコマンド以外であると、副暗号鍵２１０を選択して偽の処理を行っていた。つまり、図３のＳ１１０で乱数列に基づき決定するカウンタ値は、副暗号鍵２１０を使用する偽の処理モードを終了させる終了タイミングを決定するものである。本実施形態においては、この終了タイミングは、受信するコマンド数に基づくものであったが、終了タイミングを時間により決定する構成であっても良い。
【００２６】
なお、本発明は上記具体的な実施形態に限定されず、以下の形態をも含むものである。まず、秘密処理部２０５は、データ読出しコマンドを送信したユーザ装置の認証が不成功であると、当該ユーザ装置からその後に受信するコマンドに対する応答として、ＡＣＫとＮＡＣＫのいずれかをランダムに選択する偽の処理モードを開始する。偽の処理モードにおいては、ＡＣＫとＮＡＣＫがランダムに選択されるため、攻撃装置は、認証の成功可否を判定することが難しく、秘密情報処理装置が保持する主暗号鍵２０９の流出を防ぎ、秘密情報処理装置が保持する情報を保護することができる。また、このとき秘密処理部２０５は、偽の処理モードの終了タイミングを決定する。この偽の処理モードの終了タイミングはランダムに決定される。よって、攻撃装置は、いつ偽の処理モードが終了するかについても予測が困難となる。なお、データ読出しコマンドを送信したユーザ装置の認証が不成功であると、そのときの応答としてはＮＡＣＫを選択する。したがって、正当なユーザ装置の認証が何らかの原因で不成功になったことを正当なユーザ装置は認識できる。
【００２７】
また、偽の処理モードにおいて肯定応答を選択した場合、コマンドで要求されたデータとは異なるデータか、コマンドで要求されたデータとは異なるデータを主暗号鍵２０９とは異なる副暗号鍵２１０で暗号化したデータを当該肯定応答に含める。或いは、これらデータと、コマンドで要求されたデータを副暗号鍵２１０で暗号化したデータとのいずれかをランダムに選択して肯定応答に含める。この様に、偽の処理モードにおける処理を、通常の処理モードにおける処理と同じとすることで、秘密情報処理装置が偽の処理を行っているのか否かを攻撃装置が判別することは難しくなる。また、偽の処理モードにおいて秘密処理部２０５は、副暗号鍵２１０に基づきユーザ装置の認証を行う。この様に、偽の処理モードにおいては主暗号鍵２０９を使用せず、よって、主暗号鍵２０９の流出を防ぐことができる。また、この副暗号鍵２１０もランダムに生成する。
【００２８】
なお、正当なユーザ装置の認証が何らかの原因により不成功になったときのため、リセットコマンドを用意する。リセットコマンドを受信すると、主暗号鍵２０９で認証を行い、認証が成功すると偽の処理モードを終了させる。これにより、正当なユーザ装置は、通常のデータ読出しを行える。なお、リセットコマンドに対しる認証が不成功となると、偽の処理モードの終了タイミングを遅らせる。これにより攻撃装置がリセットコマンドを送信した場合に、偽の処理モードが延長され主暗号鍵２０９の使用開始タイミングも遅れることになる。よって、攻撃装置による攻撃を効果的に回避できる。
【００２９】
また、秘密処理部２０５は、データ読出しコマンドを送信したユーザ装置の認証が不成功であると、副暗号鍵２１０を生成し、当該ユーザ装置からその後に受信するコマンドに対しては、副暗号鍵２１０に基づき認証を行う。主暗号鍵２０９による認証と、副暗号鍵２１０による認証における秘密情報処理装置の動作は同じであり、攻撃装置は、秘密情報処理装置が偽の処理を行っているのか否かを判別することは難しい。つまり、攻撃装置は、秘密情報処理装置が使用している鍵が、主暗号鍵２０９であるか副暗号鍵２１０であるかを判断することは難しく、よって、主暗号鍵２０９を効果的に保護できる。
【００３０】
＜第二実施形態＞
続いて、第二実施形態について第一実施形態との相違点を中心に説明する。図６は、本実施形態による秘密情報処理装置２０１の構成図である。本実施形態の秘密情報処理装置２０１は、秘密情報保持部２０７において、主暗号鍵＃１及び副暗号鍵＃１と、主暗号鍵＃２及び副暗号鍵＃２と、を保持している。なお、主暗号鍵＃１は第一実施形態の主暗号鍵２０９に対応し、副暗号鍵＃１は第一実施形態の副暗号鍵２１０に対応する。つまり、主暗号鍵＃１及び副暗号鍵＃１を纏めて暗号鍵＃１と呼び、主暗号鍵＃２及び副暗号鍵＃２を纏めて暗号鍵＃２と呼ぶと、本実施形態は、暗号鍵＃１に加えて、暗号鍵＃２を有する点で第一実施形態の秘密情報処理装置２０１と相違する。
【００３１】
図７は、本実施形態において使用するコマンドとレスポンスを示している。なお、図７の暗号鍵＃１とは、主暗号鍵＃１及び副暗号鍵＃１のいずれかを意味し、暗号鍵＃２とは、主暗号鍵＃２及び副暗号鍵＃２のいずれかを意味している。本実施形態においては、データ読出しコマンドの付属データと、データ読出しコマンドに対するＡＣＫの付属データが第一実施形態とは異なる。具体的には、ユーザ装置は、認証元情報ＡＤと、コマンド識別情報を結合した値の、主暗号鍵＃１による暗号結果を求め、認証元情報ＡＤと、当該暗号結果を結合した値をデータ読出しコマンドの付属データとする。秘密情報処理装置２０１は、ＡＣＫをレスポンスとする場合、データ読出しコマンドの付属データに含まれる認証元情報ＡＤか図３のＳ１１１で決定した候補値を暗号鍵＃２で暗号した値をレスポンスの付属データとする。なお、暗号鍵＃２による暗号化の対象を認証元情報ＡＤとするか、候補値とするかの決定し方は、第一実施形態における、通常の読出しデータとするか、候補値とするかと同じである。その他の処理についても第一実施形態における読出しデータを、認証元情報ＡＤと読み替えれば良い。但し、本実施形態においては、Ｓ１１１において副暗号鍵＃１と副暗号鍵＃２の両方を乱数列に基づき決定する。
【００３２】
本実施形態は、ユーザ装置が、他の装置による認証を受けるために、認証元情報ＡＤを主暗号鍵＃２で暗号化して生成した認証情報を、当該他の装置に送信する場合に適用される。ユーザ装置は、主暗号鍵＃１を保持するが、主暗号鍵＃２を保持する必要はない。ユーザ装置は、主暗号鍵＃１と認証元情報ＡＤ及びコマンド識別子で作成した認証情報と、認証元情報ＡＤとを含むデータ読出しコマンドを秘密情報処理装置２０１に送信する。そして、認証が成功すると、秘密情報処理装置２０１は、ユーザ装置が他の装置による認証を受けるために必要な認証情報を、主暗号鍵＃２により生成してユーザ装置に送信する。ユーザ装置は、受信した認証情報を他の装置に送信する。この他の装置は、主暗号鍵＃２を保持しており、認証情報によりユーザ装置の認証を行う。
【００３３】
［その他の実施形態］
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【００３４】
２０７：秘密情報保持部、２０９：主暗号鍵、２１０：副暗号鍵、２０５：秘密処理部
【図１】
2016063373.tif 000003
【図２】
2016063373.tif 000004
【図３】
2016063373.tif 000005
【図４】
2016063373.tif 000006
【図５】
2016063373.tif 000007
【図６】
2016063373.tif 000008
【図７】
2016063373.tif 000009