(58)【調査した分野】(Int.Cl.,DB名)
前記通信装置は、前記第1の認証コードのコード長を、前記記憶装置から前記通信装置に送信するコンテンツデータの機密レベルに応じて設定する、請求項1に記載の情報処理システム。
【発明の概要】
【発明が解決しようとする課題】
【0006】
上述した一般的なチャレンジアンドレスポンス型の相互認証によると、通信装置と半導体記憶装置との間で授受される認証コードのコード長は、製品の実運用時に一意的に定められた固定値である。従って、攻撃者が認証コードの解析を行う際に、通信装置と半導体記憶装置との間で送受信される様々なデータのうちのどの部分のデータが認証コードであるかが、攻撃者によって特定されやすい。また、攻撃者によるハッキング技術の向上に対抗してシステムのセキュリティ強度を向上したい場合であっても、認証コードを複雑化するという観点からの対策をとることが困難である。
【0007】
本発明はかかる事情に鑑みて成されたものであり、認証コードのコード長が固定値である情報処理システムよりもセキュリティ強度を向上することが可能な、情報処理システムを得ることを目的とするものである。
【課題を解決するための手段】
【0008】
本発明の第1の態様に係る情報処理システムは、通信装置と、前記通信装置に接続される記憶装置と、を備える情報処理システムであって、
前記通信装置は、ソフトウェア処理によって前記情報処理システムを制御する主制御部と、前記主制御部とは別に実装され、ハードウェア処理によって前記記憶装置を制御する第1の制御回路と、を有し、前記記憶装置は、コンテンツデータが記憶された記憶部と、前記記憶部を制御する第2の制御回路と、を有し、前記第1の制御回路は、第1の数列と第4の数列とを順に生成する第1の数列生成部と、第1の認証制御部と、を含み、前記第2の制御回路は、前記第1の数列と同一の第2の数列と、前記第4の数列と同一の第3の数列とを順に生成する第2の数列生成部と、第2の認証制御部と、を含み、前記第1の認証制御部は、第1の認証コードのコード長の設定値に基づいて、当該設定値に相当するビット長の前記第1の数列を前記第1の数列生成部から取得することにより、当該第1の数列を含む前記第1の認証コードを生成し、前記第1の認証コードと、当該第1の認証コードのコード長を示す第1のコード長情報とを含む認証コマンドを、前記記憶装置に送信し、前記第2の認証制御部は、前記第1のコード長情報に相当するビット長の前記第2の数列を前記第2の数列生成部から取得することにより、当該第2の数列を含む第2の認証コードを生成し、前記通信装置から受信した前記第1の認証コードと、自身が生成した前記第2の認証コードとが一致するか否かによって、前記通信装置を認証し、前記第2の認証制御部は、第3の認証コードのコード長の設定値に基づいて、当該設定値に相当するビット長の前記第3の数列を前記第2の数列生成部から取得することにより、当該第3の数列を含む前記第3の認証コードを生成し、前記第3の認証コードと、当該第3の認証コードのコード長を示す第2のコード長情報とを、前記通信装置に送信し、前記第1の認証制御部は、前記第2のコード長情報に相当するビット長の前記第4の数列を前記第1の数列生成部から取得することにより、当該第4の数列を含む第4の認証コードを生成し、前記記憶装置から受信した前記第3の認証コードと、自身が生成した前記第4の認証コードとが一致するか否かによって、前記記憶装置を認証し、前記通信装置は、前記第1の認証コードのコード長を可変に設定可能であり、前記記憶装置は、前記第3の認証コードのコード長を可変に設定可能であり、前記記憶装置は、前記第3の認証コードのコード長を、前記第1の認証コードのコード長とは異なる値に設定することを特徴とするものである。
【0009】
第1の態様に係る情報処理システムによれば、通信装置は、記憶装置に通信装置を認証させるための第1の認証コードのコード長を可変に設定可能である。従って、認証の処理毎に、あるいは任意のタイミングで、第1の認証コードのコード長を異ならせることができる。また、攻撃者によるハッキング技術の向上に対抗して、第1の認証コードのコード長を拡大することができる。さらに、記憶装置から通信装置に送信するコンテンツデータの機密レベルに応じて、第1の認証コードのコード長を異ならせることができる。その結果、認証コードのコード長が固定値である情報処理システムよりもセキュリティ強度を向上することが可能となる。
また、第1の態様に係る情報処理システムによれば、第1の認証制御部は、第1の認証コードのコード長の設定値に基づいて、当該設定値に相当するビット長の第1の数列を第1の数列生成部から取得することにより、当該第1の数列を含む第1の認証コードを生成する。従って、第1の認証制御部が第1の数列生成部から取得する第1の数列のビット長を、コード長の設定値に応じて異ならせることにより、コード長が異なる様々な第1の認証コードを簡易に生成することが可能となる。
また、第1の態様に係る情報処理システムによれば、第2の数列生成部は、第1の数列と同一の第2の数列を生成する。また、第2の認証制御部は、第1のコード長情報に相当するビット長の第2の数列を第2の数列生成部から取得することにより、当該第2の数列を含む第2の認証コードを生成する。そして、第2の認証制御部は、通信装置から受信した第1の認証コードと、自身が生成した第2の認証コードとが一致するか否かによって、通信装置を認証する。通信装置が正当である場合には第1の認証コードと第2の認証コードとは一致し、通信装置が不正である場合には第1の認証コードと第2の認証コードとは一致しない。従って、第1の認証コードと第2の認証コードとが一致するか否かによって、通信装置が正当であるか不正であるかを簡易かつ確実に認証することが可能となる。
また、第1の態様に係る情報処理システムによれば、記憶装置は、通信装置に記憶装置を認証させるための第3の認証コードのコード長を可変に設定可能である。従って、認証の処理毎に、あるいは任意のタイミングで、第3の認証コードのコード長を異ならせることができる。また、攻撃者によるハッキング技術の向上に対抗して、第3の認証コードのコード長を拡大することができる。さらに、記憶装置から通信装置に送信するコンテンツデータの機密レベルに応じて、第3の認証コードのコード長を異ならせることができる。その結果、認証コードのコード長が固定値である情報処理システムよりもセキュリティ強度を向上することが可能となる。
また、第1の態様に係る情報処理システムによれば、第2の認証制御部は、第3の認証コードのコード長の設定値に基づいて、当該設定値に相当するビット長の第3の数列を第2の数列生成部から取得することにより、当該第3の数列を含む第3の認証コードを生成する。従って、第2の認証制御部が第2の数列生成部から取得する第3の数列のビット長を、コード長の設定値に応じて異ならせることにより、コード長が異なる様々な第3の認証コードを簡易に生成することが可能となる。
また、第1の態様に係る情報処理システムによれば、第1の数列生成部は、第3の数列と同一の第4の数列を生成する。また、第1の認証制御部は、第2のコード長情報に相当するビット長の第4の数列を第1の数列生成部から取得することにより、当該第4の数列を含む第4の認証コードを生成する。そして、第1の認証制御部は、記憶装置から受信した第3の認証コードと、自身が生成した第4の認証コードとが一致するか否かによって、記憶装置を認証する。記憶装置が正当である場合には第3の認証コードと第4の認証コードとは一致し、記憶装置が不正である場合には第3の認証コードと第4の認証コードとは一致しない。従って、第3の認証コードと第4の認証コードとが一致するか否かによって、記憶装置が正当であるか不正であるかを簡易かつ確実に認証することが可能となる。
【0010】
本発明の第2の態様に係る情報処理システムは、第1の態様に係る情報処理システムにおいて特に、前記通信装置は、前記第1の認証コードのコード長をランダムに設定することを特徴とするものである。
【0011】
第2の態様に係る情報処理システムによれば、通信装置は、第1の認証コードのコード長をランダムに設定する。従って、第1の認証コードのコード長はランダムに変更されるため、攻撃者が認証コードの解析を行う際に、通信装置と記憶装置との間で送受信される様々なデータのうちのどの部分のデータが認証コードであるかを、攻撃者が特定することが困難である。その結果、攻撃者による認証コードの解析がさらに困難となるため、セキュリティ強度をさらに向上することが可能となる。
【0012】
本発明の第3の態様に係る情報処理システムは、第1の態様に係る情報処理システムにおいて特に、前記通信装置は、前記第1の認証コードのコード長を、前記情報処理システムに要求されるセキュリティ強度に応じて設定することを特徴とするものである。
【0013】
第3の態様に係る情報処理システムによれば、通信装置は、第1の認証コードのコード長を、情報処理システムに要求されるセキュリティ強度に応じて設定する。従って、攻撃者によるハッキング技術の向上に対抗して以前より高いセキュリティ強度が要求された場合には、第1の認証コードのコード長を以前より拡大して設定することができる。その結果、攻撃者による認証コードの解析が困難となるため、セキュリティ強度を向上することが可能となる。
【0014】
本発明の第4の態様に係る情報処理システムは、第1の態様に係る情報処理システムにおいて特に、前記通信装置は、前記第1の認証コードのコード長を、前記記憶装置から前記通信装置に送信するコンテンツデータの機密レベルに応じて設定することを特徴とするものである。
【0015】
第4の態様に係る情報処理システムによれば、通信装置は、第1の認証コードのコード長を、記憶装置から通信装置に送信するコンテンツデータの機密レベルに応じて設定する。従って、機密レベルが高いコンテンツデータほど第1の認証コードのコード長を拡大して設定することにより、セキュリティ強度を向上することが可能となる。
【0016】
本発明の第5の態様に係る情報処理システムは、第1〜第4のいずれか一つの態様に係る情報処理システムにおいて特に
、前記第1の認証コードのコード長の設定は、前記第1の制御回路が実行することを特徴とするものである。
【0017】
第5の態様に係る情報処理システムによれば、第1の制御回路は、ハードウェア処理によって第1の認証コードのコード長を設定する。従って、プログラム解析等によって主制御部の制御を改変するような攻撃を受けた場合であっても、第1の制御回路によるハードウェア処理の内容が解析されない限り、攻撃者によって第1の認証コードのコード長が特定されることはない。その結果、攻撃者による認証コードの解析がさらに困難となるため、セキュリティ強度をさらに向上することが可能となる。
【0018】
本発明の第6の態様に係る情報処理システムは、第1〜第4のいずれか一つの態様に係る情報処理システムにおいて特に
、前記第1の認証コードのコード長の設定は、前記主制御部が実行することを特徴とするものである。
【0019】
第6の態様に係る情報処理システムによれば、主制御部は、ソフトウェア処理によって第1の認証コードのコード長を設定する。従って、第1の認証コードのコード長を設定するための回路を第1の制御回路に実装する必要がないため、回路構成の簡略化及びコストの削減を図ることが可能となる。
【0026】
本発明の
第7の態様に係る情報処理システムは、
第1〜第6のいずれか一つの態様に係る情報処理システムにおいて特に、前記記憶装置は、前記第
3の認証コードのコード長をランダムに設定することを特徴とするものである。
【0027】
第7の態様に係る情報処理システムによれば、記憶装置は、第
3の認証コードのコード長をランダムに設定する。従って、第
3の認証コードのコード長はランダムに変更されるため、攻撃者が認証コードの解析を行う際に、通信装置と記憶装置との間で送受信される様々なデータのうちのどの部分のデータが認証コードであるかを、攻撃者が特定することが困難である。その結果、攻撃者による認証コードの解析がさらに困難となるため、セキュリティ強度をさらに向上することが可能となる。
【0028】
本発明の
第8の態様に係る情報処理システムは、
第1〜第6のいずれか一つの態様に係る情報処理システムにおいて特に、前記記憶装置は、前記第
3の認証コードのコード長を、前記情報処理システムに要求されるセキュリティ強度に応じて設定することを特徴とするものである。
【0029】
第8の態様に係る情報処理システムによれば、記憶装置は、第
3の認証コードのコード長を、情報処理システムに要求されるセキュリティ強度に応じて設定する。従って、攻撃者によるハッキング技術の向上に対抗して以前より高いセキュリティ強度が要求された場合には、第
3の認証コードのコード長を以前より拡大して設定することができる。その結果、攻撃者による認証コードの解析が困難となるため、セキュリティ強度を向上することが可能となる。
【0030】
本発明の
第9の態様に係る情報処理システムは、
第1〜第6のいずれか一つの態様に係る情報処理システムにおいて特に、前記記憶装置は、前記第
3の認証コードのコード長を、前記通信装置に送信するコンテンツデータの機密レベルに応じて設定することを特徴とするものである。
【0031】
第9の態様に係る情報処理システムによれば、記憶装置は、第
3の認証コードのコード長を、通信装置に送信するコンテンツデータの機密レベルに応じて設定する。従って、機密レベルが高いコンテンツデータほど第
3の認証コードのコード長を拡大して設定することにより、セキュリティ強度を向上することが可能となる。
【0032】
本発明の
第10の態様に係る情報処理システムは、
第1〜第9のいずれか一つの態様に係る情報処理システムにおいて特に
、前記第
3の認証コードのコード長の設定は、前記第2の制御回路が実行することを特徴とするものである。
【0033】
第10の態様に係る情報処理システムによれば、第
3の認証コードのコード長の設定は、第2の制御回路が実行する。従って、プログラム解析等によって通信装置の主制御部の制御を改変するような攻撃を受けた場合であっても、第2の制御回路によるハードウェア処理の内容が解析されない限り、攻撃者によって第
3の認証コードのコード長が特定されることはない。その結果、攻撃者による認証コードの解析がさらに困難となるため、セキュリティ強度をさらに向上することが可能となる。
【0034】
本発明の
第11の態様に係る情報処理システムは、
第1〜第9のいずれか一つの態様に係る情報処理システムにおいて特に
、前記第
3の認証コードのコード長の設定は、前記主制御部が実行することを特徴とするものである。
【0035】
第11の態様に係る情報処理システムによれば、第
3の認証コードのコード長の設定は、通信装置の主制御部が実行する。従って、第
3の認証コードのコード長を設定するための回路を第2の制御回路に実装する必要がないため、回路構成の簡略化及びコストの削減を図ることが可能となる。
【0040】
本発明の
第12の態様に係る情報処理システムは、
第1〜第11のいずれか一つの態様に係る情報処理システムにおいて特に、前記記憶装置は、前記通信装置を正当と判定した場合に、前記第1の認証コードに応答して前記第
3の認証コードを前記通信装置に送信することを特徴とするものである。
【0041】
第12の態様に係る情報処理システムによれば、記憶装置は、第1の認証コードに基づいて通信装置を認証し、通信装置を正当と判定した場合には、第1の認証コードに応答して第
3の認証コードを通信装置に送信し、通信装置は、第
3の認証コードに基づいて記憶装置を認証する。従って、通信装置から記憶装置への第1の認証コードの送信と、それに応答する記憶装置から通信装置への第
3の認証コードの送信との、一往復の通信によって、通信装置と記憶装置との相互認証を行うことができる。その結果、通信装置及び記憶装置それぞれからの往復通信(合計で二往復の通信)が必要となる一般的なチャレンジアンドレスポンス型の相互認証と比較すると、処理の高速化及び効率化を図ることが可能となる。
【発明の効果】
【0044】
本発明によれば、認証コードのコード長が固定値である情報処理システムよりもセキュリティ強度を向上することが可能となる。
【発明を実施するための形態】
【0046】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、異なる図面において同一の符号を付した要素は、同一又は相応する要素を示すものとする。
【0047】
<実施の形態1>
図1は、本発明の実施の形態1に係る情報処理システム1の全体構成を概略的に示す図である。情報処理システム1は、通信装置2と半導体記憶装置3とを備えて構成されている。通信装置2は、例えばパーソナルコンピュータである。半導体記憶装置3は、例えば、通信装置2に着脱自在に接続可能なメモリカードである。あるいは、半導体記憶装置3に代えて、光ディスクや磁気ディスク等の任意の記憶装置を用いることもできる。
【0048】
通信装置2は、ソフトウェア処理によって情報処理システム1を制御するメインシステムとしてのマイクロプロセッサ11(主制御部)と、マイクロプロセッサ11とは別に実装されたメモリコントローラ12(第1の制御回路)とを備えて構成されている。メモリコントローラ12は、ハードウェア処理によって半導体記憶装置3を制御する。
【0049】
半導体記憶装置3は、画像、音声、テキスト、コード、管理情報等の任意のコンテンツデータが記憶されたメモリアレイ22(記憶部)と、メモリアレイ22を制御するメモリコントローラ21(第2の制御回路)とを備えて構成されている。メモリアレイ22は、例えばNAND型フラッシュメモリを用いて構成されている。但し、この例に限定されるものではなく、メモリアレイ22はNOR型フラッシュメモリ等を用いて構成されていても良い。
【0050】
図2は、マイクロプロセッサ11の構成を示す図である。マイクロプロセッサ11は、バス47を介して相互に接続された、CPU41、演算器42、RAM43、ROM44、ブリッジ45、及びレジスタ46を備えて構成されている。
【0051】
図3は、メモリコントローラ12の構成を示す図である。
図3の接続関係で示すように、メモリコントローラ12は、鍵生成部51(第1の数列生成部)、暗号化・復号部52、認証制御部53(第1の認証制御部)、マスク回路54,55、及びコード長設定部56を備えて構成されている。鍵生成部51は、機密性の高い固定値の共有鍵Pを用いて、所定の乱数生成アルゴリズムによってランダムな数列(以下の例ではセッション鍵K)を生成する。鍵生成部51は、メモリコントローラ12がマイクロプロセッサ11から認証コマンドC0を受領する度に、毎回異なるセッション鍵K(ナンス)を生成する。
【0052】
図4は、コード長設定部56の構成を示す図である。コード長設定部56は、乱数生成器71及び不揮発性メモリ72を備えて構成されている。不揮発性メモリ72には、複数のインデックス値と複数のコード長との対応関係が記述されたデータテーブル73が格納されている。
図4に示した例では、インデックス値「00」「01」「10」「11」は、それぞれコード長「64ビット」「128ビット」「192ビット」「256ビット」に対応する。なお、
図4に示したデータテーブル73における項目数やコード長の数値は一例であり、この例に限定されるものではない。
【0053】
図5は、メモリコントローラ21の構成を示す図である。
図5の接続関係で示すように、メモリコントローラ21は、鍵生成部61(第2の数列生成部)、暗号化・復号部62、認証制御部63(第2の認証制御部)、及びコード長設定部64を備えて構成されている。鍵生成部61は、鍵生成部51が保持している共有鍵Pと同一の共有鍵Pを用いて、鍵生成部51と同一の乱数生成アルゴリズムによって、鍵生成部51が生成するセッション鍵Kと同一のセッション鍵Kを生成する。鍵生成部61は、メモリコントローラ21がメモリコントローラ12から暗号化認証コマンドXを受信する度に、毎回異なるセッション鍵Kを生成する。
【0054】
図6は、コード長設定部64の構成を示す図である。コード長設定部64は、乱数生成器81及び不揮発性メモリ82を備えて構成されている。不揮発性メモリ82には、複数のインデックス値と複数のコード長との対応関係が記述されたデータテーブル83が格納されている。
図6に示した例では、インデックス値「00」「01」「10」「11」は、それぞれコード長「64ビット」「128ビット」「192ビット」「256ビット」に対応する。なお、
図6に示したデータテーブル83における項目数やコード長の数値は一例であり、この例に限定されるものではない。また、不揮発性メモリ82を省略して、データテーブル83をメモリアレイ22内に格納しても良い。さらに、データテーブル73とデータテーブル83とで、共通のインデックス値に対応して異なるコード長を記述しても良い。
【0055】
以下、
図3〜6を参照して、通信装置2と半導体記憶装置3との相互認証の処理について説明する。前提として、暗号化・復号部52,62は、鍵生成部51,61が前回生成したセッション鍵K(N−1)によって初期化されているものとする。また、相互認証の処理が完了して通信装置2及び半導体記憶装置3の正当性が互いに認証されるまでは、マイクロプロセッサ11からメモリアレイ22へのアクセスは許可されていない。
【0056】
まずマイクロプロセッサ11は、相互認証の実行を指示するための所定バイト長の認証コマンドC0を発行する。
図7は、認証コマンドC0を示す図である。認証コマンドC0は、それが認証コマンドであることを識別するための特定のコマンドIDと、無意味なデータによって埋められた未定義領域とを含む。メモリコントローラ12は、マイクロプロセッサ11から認証コマンドC0を受領し、受領した認証コマンドC0を認証制御部53に入力する。
【0057】
次にコード長設定部56は、認証制御部53からの要求に従って、半導体記憶装置3が通信装置2を認証するための認証コードS(N)のコード長を設定する。具体的に、コード長設定部56は、乱数生成器71によってディジタル乱数を生成し、そのディジタル乱数の例えば下位2ビットをインデックス値として採用する。そして、データテーブル73を参照することにより、そのインデックス値に対応するコード長を特定して、そのコード長を認証コードS(N)のコード長として設定する。コード長設定部56は、コード長の設定値をデータM1として認証制御部53に入力する。
【0058】
次に鍵生成部51は、認証制御部53からの要求に従って、データM1で示されるコード長設定値に相当するビット長を有する、今回のセッション鍵K(N)を生成する。鍵生成部51は、生成したセッション鍵K(N)を暗号化・復号部52及び認証制御部53に入力する。
【0059】
次に認証制御部53は、認証コマンドC0及びセッション鍵K(N)に基づいて認証コマンドC1(N)を生成する。具体的に、認証制御部53は、鍵生成部51から入力されたセッション鍵K(N)を、そのまま認証コードS(N)として採用する。そして、認証コマンドC0の未定義領域のデータを、先頭から順に、認証コードS(N)のコード長を示すコード長情報L(N)と認証コードS(N)とによって置き換えることにより、コマンドIDとコード長情報L(N)と認証コードS(N)とを含む認証コマンドC1(N)を生成する。
図8は、認証コマンドC1を示す図である。認証制御部53は、生成した認証コマンドC1(N)を暗号化・復号部52に入力する。
【0060】
次に暗号化・復号部52は、現在設定されているセッション鍵K(N−1)を用いて認証コマンドC1(N)を暗号化することにより、暗号化認証コマンドX(N)を生成する。そして、生成した暗号化認証コマンドX(N)をメモリコントローラ21に送信する。
【0061】
次に認証制御部53は、鍵生成部51が今回生成したセッション鍵K(N)によって、暗号化・復号部52を初期化する。
【0062】
メモリコントローラ21は、メモリコントローラ12から受信した暗号化認証コマンドX(N)を、暗号化・復号部62に入力する。
【0063】
次に暗号化・復号部62は、現在設定されているセッション鍵K(N−1)を用いて暗号化認証コマンドX(N)を復号することにより、認証コマンドC1(N)を再生する。そして、再生した認証コマンドC1(N)を認証制御部63に入力する。
【0064】
次に認証制御部63は、認証コマンドC1(N)からコード長情報L(N)と認証コードS(N)とを抽出する。
【0065】
次に鍵生成部61は、認証制御部63からの要求に従って、コード長情報L(N)で示されるコード長に相当するビット長を有するセッション鍵K(N)を生成する。鍵生成部61は、生成したセッション鍵K(N)を暗号化・復号部62及び認証制御部63に入力する。
【0066】
次に認証制御部63は、鍵生成部61から入力されたセッション鍵K(N)に基づいて認証コードS(N)を生成する。具体的に、認証制御部63は、鍵生成部61から入力されたセッション鍵K(N)を、そのまま認証コードS(N)として採用する。
【0067】
次に認証制御部63は、暗号化認証コマンドX(N)の復号により再生した認証コマンドC1(N)から抽出した認証コードS(N)と、鍵生成部61から入力されたセッション鍵K(N)に基づいて自身が生成した認証コードS(N)とを比較することにより、通信装置2の正当性を認証する。具体的に、認証制御部63は、両認証コードS(N)が一致する場合には通信装置2を正当と判定し、両認証コードS(N)が一致しない場合には通信装置2を不正と判定する。
【0068】
認証制御部63は、通信装置2を不正と判定した場合には、暗号化・復号部62に対して通信装置2からの送信データの受信を禁止する。これにより、メモリコントローラ21は、以後に通信装置2から半導体記憶装置3に向けて送信されるデータを受信しない。
【0069】
一方、通信装置2を正当と判定した場合には、次に認証制御部63は、鍵生成部61が今回生成したセッション鍵K(N)によって、暗号化・復号部62を初期化する。
【0070】
次にコード長設定部64は、認証制御部63からの要求に従って、通信装置2が半導体記憶装置3を認証するための認証コードS(N+1)のコード長を設定する。具体的に、コード長設定部64は、乱数生成器81によってディジタル乱数を生成し、そのディジタル乱数の例えば下位2ビットをインデックス値として採用する。そして、データテーブル83を参照することにより、そのインデックス値に対応するコード長を特定して、そのコード長を認証コードS(N+1)のコード長として設定する。コード長設定部64は、コード長の設定値をデータM2として認証制御部63に入力する。なお、認証コードS(N+1)のコード長は、認証コードS(N)のコード長と同一であっても良いし、異なっていても良い。
【0071】
次に鍵生成部61は、認証制御部63からの要求に従って、データM2で示されるコード長設定値に相当するビット長を有する、次回のセッション鍵K(N+1)を生成する。鍵生成部61は、生成したセッション鍵K(N+1)を認証制御部63に入力する。
【0072】
次に認証制御部63は、セッション鍵K(N+1)に基づいて認証コードS(N+1)を生成する。具体的に、認証制御部63は、鍵生成部61から入力されたセッション鍵K(N+1)を、そのまま認証コードS(N+1)として採用する。そして、認証コードS(N+1)のコード長を示すコード長情報L(N+1)を、認証コードS(N+1)の先頭に付加することにより、認証コードC2(N+1)を生成する。
図9は、認証コードC2を示す図である。認証制御部63は、生成した認証コードC2(N+1)を暗号化・復号部62に入力する。
【0073】
次に暗号化・復号部62は、現在設定されているセッション鍵K(N)を用いて認証コードC2(N+1)を暗号化することにより、暗号化認証コードY(N+1)を生成する。そして、生成した暗号化認証コードY(N+1)をメモリコントローラ12に送信する。
【0074】
メモリコントローラ12は、メモリコントローラ21から受信した暗号化認証コードY(N+1)を、暗号化・復号部52に入力する。
【0075】
次に暗号化・復号部52は、現在設定されているセッション鍵K(N)を用いて暗号化認証コードY(N+1)を復号することにより、認証コードC2(N+1)を再生する。そして、再生した認証コードC2(N+1)を認証制御部53に入力する。
【0076】
次に認証制御部53は、認証コードC2(N+1)からコード長情報L(N+1)と認証コードS(N+1)とを抽出する。
【0077】
次に鍵生成部51は、認証制御部53からの要求に従って、コード長情報L(N+1)で示されるコード長に相当するビット長を有するセッション鍵K(N+1)を生成する。鍵生成部51は、生成したセッション鍵K(N+1)を認証制御部53に入力する。
【0078】
次に認証制御部53は、鍵生成部51から入力されたセッション鍵K(N+1)に基づいて認証コードS(N+1)を生成する。具体的に、認証制御部53は、鍵生成部51から入力されたセッション鍵K(N+1)を、そのまま認証コードS(N+1)として採用する。
【0079】
次に認証制御部53は、暗号化認証コードY(N+1)の復号により再生した認証コードC2(N+1)から抽出した認証コードS(N+1)と、鍵生成部51から入力されたセッション鍵K(N+1)に基づいて自身が生成した認証コードS(N+1)とを比較することにより、半導体記憶装置3の正当性を認証する。具体的に、認証制御部53は、両認証コードS(N+1)が一致する場合には半導体記憶装置3を正当と判定し、両認証コードS(N+1)が一致しない場合には半導体記憶装置3を不正と判定する。
【0080】
認証制御部53は、半導体記憶装置3を不正と判定した場合には、データをオール「0」又はオール「1」に置換する等のマスク処理を有効にする制御信号Dを、マスク回路54,55に入力する。これにより、通信装置2と半導体記憶装置3との間での以後の通信が遮断される。
【0081】
一方、半導体記憶装置3を正当と判定した場合には、次に認証制御部53は、マスク処理を無効にする制御信号Dを、マスク回路54,55に入力する。これにより、通信装置2は、半導体記憶装置3に対してコンテンツデータの読み出しコマンド等を送信することが可能となり、また、半導体記憶装置3からコンテンツデータを受信することが可能となる。
【0082】
次回の相互認証の処理では、認証制御部63は、再生した認証コマンドC1(N+1)から抽出した認証コードS(N+1)と、自身が生成した認証コードS(N+1)とが一致するか否かによって、通信装置2の正当性を認証する。また、認証制御部53は、再生した認証コードC2(N+2)から抽出した認証コードS(N+2)と、自身が生成した認証コードS(N+2)とが一致するか否かによって、半導体記憶装置3の正当性を認証する。
【0083】
なお、以上の説明では、通信装置2は、メモリコントローラ12のハードウェア処理によって認証コードS(N)のコード長をランダムに設定したが、マイクロプロセッサ11のソフトウェア処理によって認証コードS(N)のコード長をランダムに設定しても良い。同様に、半導体記憶装置3は、メモリコントローラ21のハードウェア処理によって認証コードS(N+1)のコード長をランダムに設定したが、マイクロプロセッサ11のソフトウェア処理によって認証コードS(N+1)のコード長をランダムに設定しても良い。
【0084】
また、以上の説明では、通信装置2は、認証の処理毎に認証コードS(N)のコード長を変更したが、所定の複数回の認証処理毎等の任意のタイミングで、コード長の変更を行っても良い。同様に、半導体記憶装置3は、認証の処理毎に認証コードS(N+1)のコード長を変更したが、所定の複数回の認証処理毎等の任意のタイミングで、コード長の変更を行っても良い。
【0085】
<実施の形態2>
図10は、実施の形態2に係るメモリコントローラ12の構成を示す図である。
図10の接続関係で示すように、メモリコントローラ12は、鍵生成部51、暗号化・復号部52、認証制御部53、及びマスク回路54,55を備えて構成されている。
【0086】
図11は、実施の形態2に係るメモリコントローラ21の構成を示す図である。
図11の接続関係で示すように、メモリコントローラ21は、鍵生成部61、暗号化・復号部62、及び認証制御部63を備えて構成されている。
【0087】
図12は、メモリアレイ22のメモリ空間を示す図である。通信装置2と半導体記憶装置3との間で授受される認証コードSのコード長を示すコード長フラグF0が、メモリ空間の特定のアドレスA0に格納されている。コード長フラグF0の設定値は、情報処理システム1に要求されるセキュリティ強度に応じて任意に設定可能である。マイクロプロセッサ11は、メモリ空間のアドレスA0にアクセスすることによって、コード長フラグF0の設定値を読み出すことが可能である。また、マイクロプロセッサ11は、メモリ空間のアドレスA0にアクセスすることによって、コード長フラグF0の設定値を更新することが可能である。例えば、コード長フラグF0の設定値を、初期値の64ビットから、128ビット、192ビット、256ビットに順に更新することができる。なお、コード長フラグF0は、マイクロプロセッサ11、メモリコントローラ12、又はメモリコントローラ21内の、メモリアレイ22とは別の不揮発性メモリに格納されていても良い。
【0088】
以下、
図10〜12を参照して、通信装置2と半導体記憶装置3との相互認証の処理について説明する。前提として、暗号化・復号部52,62は、鍵生成部51,61が前回生成したセッション鍵K(N−1)によって初期化されているものとする。また、相互認証の処理が完了して通信装置2及び半導体記憶装置3の正当性が互いに認証されるまでは、マイクロプロセッサ11は、アドレスA0以外のメモリ空間へアクセスすることができない。
【0089】
まずマイクロプロセッサ11は、メモリアレイ22のアドレスA0にアクセスすることにより、コード長フラグF0の設定値を読み出す。
【0090】
次にマイクロプロセッサ11は、相互認証の実行を指示するための所定バイト長の認証コマンドC0を発行する。また、マイクロプロセッサ11は、コード長フラグF0の設定値を示すコード長設定情報Q1を発行する。メモリコントローラ12は、マイクロプロセッサ11から認証コマンドC0及びコード長設定情報Q1を受領し、受領した認証コマンドC0及びコード長設定情報Q1を認証制御部53に入力する。
【0091】
次に鍵生成部51は、認証制御部53からの要求に従って、コード長設定情報Q1で示されるコード長設定値に相当するビット長を有する、今回のセッション鍵K(N)を生成する。鍵生成部51は、生成したセッション鍵K(N)を暗号化・復号部52及び認証制御部53に入力する。
【0092】
次に認証制御部53は、認証コマンドC0及びセッション鍵K(N)に基づいて認証コマンドC1(N)を生成する。具体的に、認証制御部53は、鍵生成部51から入力されたセッション鍵K(N)を、そのまま認証コードS(N)として採用する。そして、認証コマンドC0の未定義領域のデータを、先頭から順に、認証コードS(N)のコード長を示すコード長情報L(N)と認証コードS(N)とによって置き換えることにより、コマンドIDとコード長情報L(N)と認証コードS(N)とを含む認証コマンドC1(N)を生成する。認証制御部53は、生成した認証コマンドC1(N)を暗号化・復号部52に入力する。
【0093】
次に暗号化・復号部52は、現在設定されているセッション鍵K(N−1)を用いて認証コマンドC1(N)を暗号化することにより、暗号化認証コマンドX(N)を生成する。そして、生成した暗号化認証コマンドX(N)をメモリコントローラ21に送信する。
【0094】
次に認証制御部53は、鍵生成部51が今回生成したセッション鍵K(N)によって、暗号化・復号部52を初期化する。
【0095】
メモリコントローラ21は、メモリコントローラ12から受信した暗号化認証コマンドX(N)を、暗号化・復号部62に入力する。
【0096】
次に暗号化・復号部62は、現在設定されているセッション鍵K(N−1)を用いて暗号化認証コマンドX(N)を復号することにより、認証コマンドC1(N)を再生する。そして、再生した認証コマンドC1(N)を認証制御部63に入力する。
【0097】
次に認証制御部63は、認証コマンドC1(N)からコード長情報L(N)と認証コードS(N)とを抽出する。
【0098】
次に鍵生成部61は、認証制御部63からの要求に従って、コード長情報L(N)で示されるコード長に相当するビット長を有するセッション鍵K(N)を生成する。鍵生成部61は、生成したセッション鍵K(N)を暗号化・復号部62及び認証制御部63に入力する。
【0099】
次に認証制御部63は、鍵生成部61から入力されたセッション鍵K(N)に基づいて認証コードS(N)を生成する。具体的に、認証制御部63は、鍵生成部61から入力されたセッション鍵K(N)を、そのまま認証コードS(N)として採用する。
【0100】
次に認証制御部63は、暗号化認証コマンドX(N)の復号により再生した認証コマンドC1(N)から抽出した認証コードS(N)と、鍵生成部61から入力されたセッション鍵K(N)に基づいて自身が生成した認証コードS(N)とを比較することにより、通信装置2の正当性を認証する。具体的に、認証制御部63は、両認証コードS(N)が一致する場合には通信装置2を正当と判定し、両認証コードS(N)が一致しない場合には通信装置2を不正と判定する。
【0101】
認証制御部63は、通信装置2を不正と判定した場合には、暗号化・復号部62に対して通信装置2からの送信データの受信を禁止する。これにより、メモリコントローラ21は、以後に通信装置2から半導体記憶装置3に向けて送信されるデータを受信しない。
【0102】
一方、通信装置2を正当と判定した場合には、次に認証制御部63は、鍵生成部61が今回生成したセッション鍵K(N)によって、暗号化・復号部62を初期化する。
【0103】
次に認証制御部63は、メモリアレイ22のアドレスA0にアクセスすることにより、コード長フラグF0の設定値を読み出す。
【0104】
次に鍵生成部61は、認証制御部63からの要求に従って、コード長フラグF0の設定値に相当するビット長を有する、次回のセッション鍵K(N+1)を生成する。鍵生成部61は、生成したセッション鍵K(N+1)を認証制御部63に入力する。
【0105】
次に認証制御部63は、セッション鍵K(N+1)に基づいて認証コードS(N+1)を生成する。具体的に、認証制御部63は、鍵生成部61から入力されたセッション鍵K(N+1)を、そのまま認証コードS(N+1)として採用する。そして、認証コードS(N+1)のコード長を示すコード長情報L(N+1)を、認証コードS(N+1)の先頭に付加することにより、認証コードC2(N+1)を生成する。認証制御部63は、生成した認証コードC2(N+1)を暗号化・復号部62に入力する。
【0106】
次に暗号化・復号部62は、現在設定されているセッション鍵K(N)を用いて認証コードC2(N+1)を暗号化することにより、暗号化認証コードY(N+1)を生成する。そして、生成した暗号化認証コードY(N+1)をメモリコントローラ12に送信する。
【0107】
メモリコントローラ12は、メモリコントローラ21から受信した暗号化認証コードY(N+1)を、暗号化・復号部52に入力する。
【0108】
次に暗号化・復号部52は、現在設定されているセッション鍵K(N)を用いて暗号化認証コードY(N+1)を復号することにより、認証コードC2(N+1)を再生する。そして、再生した認証コードC2(N+1)を認証制御部53に入力する。
【0109】
次に認証制御部53は、認証コードC2(N+1)からコード長情報L(N+1)と認証コードS(N+1)とを抽出する。
【0110】
次に鍵生成部51は、認証制御部53からの要求に従って、コード長情報L(N+1)で示されるコード長に相当するビット長を有するセッション鍵K(N+1)を生成する。鍵生成部51は、生成したセッション鍵K(N+1)を認証制御部53に入力する。
【0111】
次に認証制御部53は、鍵生成部51から入力されたセッション鍵K(N+1)に基づいて認証コードS(N+1)を生成する。具体的に、認証制御部53は、鍵生成部51から入力されたセッション鍵K(N+1)を、そのまま認証コードS(N+1)として採用する。
【0112】
次に認証制御部53は、暗号化認証コードY(N+1)の復号により再生した認証コードC2(N+1)から抽出した認証コードS(N+1)と、鍵生成部51から入力されたセッション鍵K(N+1)に基づいて自身が生成した認証コードS(N+1)とを比較することにより、半導体記憶装置3の正当性を認証する。具体的に、認証制御部53は、両認証コードS(N+1)が一致する場合には半導体記憶装置3を正当と判定し、両認証コードS(N+1)が一致しない場合には半導体記憶装置3を不正と判定する。
【0113】
認証制御部53は、半導体記憶装置3を不正と判定した場合には、データをオール「0」又はオール「1」に置換する等のマスク処理を有効にする制御信号Dを、マスク回路54,55に入力する。これにより、通信装置2と半導体記憶装置3との間での以後の通信が遮断される。
【0114】
一方、半導体記憶装置3を正当と判定した場合には、次に認証制御部53は、マスク処理を無効にする制御信号Dを、マスク回路54,55に入力する。これにより、通信装置2は、半導体記憶装置3に対してコンテンツデータの読み出しコマンド等を送信することが可能となり、また、半導体記憶装置3からコンテンツデータを受信することが可能となる。
【0115】
次回の相互認証の処理では、認証制御部63は、再生した認証コマンドC1(N+1)から抽出した認証コードS(N+1)と、自身が生成した認証コードS(N+1)とが一致するか否かによって、通信装置2の正当性を認証する。また、認証制御部53は、再生した認証コードC2(N+2)から抽出した認証コードS(N+2)と、自身が生成した認証コードS(N+2)とが一致するか否かによって、半導体記憶装置3の正当性を認証する。
【0116】
コード長フラグF0の設定値を更新する場合(例えば、セキュリティ強度の向上のためにコード長を拡大する場合)には、マイクロプロセッサ11は、コード長フラグF0の更新命令Q2を発行する。更新命令Q2には、コード長の更新値が含まれる。メモリコントローラ12は、マイクロプロセッサ11から更新命令Q2を受領し、受領した更新命令Q2を暗号化・復号部52に入力する。
【0117】
次に暗号化・復号部52は、現在設定されているセッション鍵Kを用いて更新命令Q2を暗号化することにより、暗号化更新命令Q2を生成する。そして、生成した暗号化更新命令Q2をメモリコントローラ21に送信する。
【0118】
メモリコントローラ21は、メモリコントローラ12から受信した暗号化更新命令Q2を、暗号化・復号部62に入力する。
【0119】
次に暗号化・復号部62は、現在設定されているセッション鍵Kを用いて暗号化更新命令Q2を復号することにより、更新命令Q2を再生する。そして、再生した更新命令Q2を認証制御部63に入力する。
【0120】
次に認証制御部63は、メモリアレイ22のアドレスA0にアクセスすることにより、コード長フラグF0の現在の設定値を、更新命令Q2に含まれる更新値によって更新する。以降、通信装置2及び半導体記憶装置3は、コード長フラグF0の更新後の設定値に相当するコード長を有する認証コードを生成する。
【0121】
なお、以上の説明では、通信装置2から半導体記憶装置3に送信される認証コードS(N)のコード長と、半導体記憶装置3から通信装置2に送信される認証コードS(N+1)のコード長とが同一である例について述べたが、両認証コードのコード長は互いに異なっていても良い。通信装置2から半導体記憶装置3に送信される認証コード用のコード長フラグと、半導体記憶装置3から通信装置2に送信される認証コード用のコード長フラグとを、メモリアレイ22の別アドレスに格納し、コード長を個別に設定可能とすることにより、両認証コードのコード長を互いに異ならせることができる。
【0122】
また、以上の説明では、通信装置2と半導体記憶装置3との間で授受される認証コードSのコード長を、情報処理システム1に要求されるセキュリティ強度に応じて設定する例について述べたが、半導体記憶装置3から通信装置2に送信されるコンテンツデータの機密性(機密レベル)に応じてコード長を設定することもできる。
【0123】
図13は、メモリアレイ22のメモリ空間を示す図である。メモリ空間の領域R1には機密性が高レベルのコンテンツデータが格納されており、領域R2には機密性が中レベルのコンテンツデータが格納されており、領域R3には機密性が低レベルのコンテンツデータが格納されている。
【0124】
また、メモリ空間のアドレスA1には、通信装置2が領域R1にアクセスする際に、当該アクセスに先行する相互認証において通信装置2と半導体記憶装置3との間で授受される認証コードSのコード長を設定するためのコード長フラグF1が格納されている。コード長フラグF1の設定値は、例えば192ビットである。
【0125】
同様に、メモリ空間のアドレスA2には、通信装置2が領域R2にアクセスする際に、当該アクセスに先行する相互認証において通信装置2と半導体記憶装置3との間で授受される認証コードSのコード長を設定するためのコード長フラグF2が格納されている。コード長フラグF2の設定値は、例えば128ビットである。
【0126】
同様に、メモリ空間のアドレスA3には、通信装置2が領域R3にアクセスする際に、当該アクセスに先行する相互認証において通信装置2と半導体記憶装置3との間で授受される認証コードSのコード長を設定するためのコード長フラグF3が格納されている。コード長フラグF3の設定値は、例えば64ビットである。
【0127】
通信装置2から半導体記憶装置3へのアクセス要求が発生した場合、まずマイクロプロセッサ11は、そのアクセス要求が領域R1〜R3のどの領域へのアクセス要求であるかを判定する。
【0128】
そのアクセス要求が領域R1へのアクセス要求である場合には、マイクロプロセッサ11は、メモリアレイ22のアドレスA1にアクセスすることにより、コード長フラグF1の設定値を読み出す。以降は上述した処理と同様の処理が行われることにより、例えば192ビット長の認証コードS(N),S(N+1)を用いた相互認証が実行される。
【0129】
そのアクセス要求が領域R2へのアクセス要求である場合には、マイクロプロセッサ11は、メモリアレイ22のアドレスA2にアクセスすることにより、コード長フラグF2の設定値を読み出す。これにより、例えば128ビット長の認証コードS(N),S(N+1)を用いた相互認証が実行される。
【0130】
そのアクセス要求が領域R3へのアクセス要求である場合には、マイクロプロセッサ11は、メモリアレイ22のアドレスA3にアクセスすることにより、コード長フラグF3の設定値を読み出す。これにより、例えば64ビット長の認証コードS(N),S(N+1)を用いた相互認証が実行される。
【0131】
<まとめ>
上記実施の形態1,2に係る情報処理システム1によれば、通信装置2は、半導体記憶装置3に通信装置2を認証させるための第1の認証コードS(N)のコード長を可変に設定可能である。従って、認証の処理毎に、あるいは任意のタイミングで、認証コードS(N)のコード長を異ならせることができる。また、攻撃者によるハッキング技術の向上に対抗して、認証コードS(N)のコード長を拡大することができる。さらに、半導体記憶装置3から通信装置2に送信するコンテンツデータの機密レベルに応じて、認証コードS(N)のコード長を異ならせることができる。その結果、認証コードS(N)のコード長が固定値である情報処理システムよりもセキュリティ強度を向上することが可能となる。
【0132】
また、上記実施の形態1に係る情報処理システム1によれば、通信装置2は、認証コードS(N)のコード長をランダムに設定する。従って、認証コードS(N)のコード長はランダムに変更されるため、攻撃者が認証コードS(N)の解析を行う際に、通信装置2と半導体記憶装置3との間で送受信される様々なデータのうちのどの部分のデータが認証コードS(N)であるかを、攻撃者が特定することが困難である。その結果、攻撃者による認証コードS(N)の解析がさらに困難となるため、セキュリティ強度をさらに向上することが可能となる。
【0133】
また、上記実施の形態2に係る情報処理システム1によれば、通信装置2は、認証コードS(N)のコード長を、情報処理システム1に要求されるセキュリティ強度に応じて設定する。従って、攻撃者によるハッキング技術の向上に対抗して以前より高いセキュリティ強度が要求された場合には、認証コードS(N)のコード長を以前より拡大して設定することができる。その結果、攻撃者による認証コードS(N)の解析が困難となるため、セキュリティ強度を向上することが可能となる。
【0134】
また、上記実施の形態2に係る情報処理システム1によれば、通信装置2は、認証コードS(N)のコード長を、半導体記憶装置3から通信装置2に送信するコンテンツデータの機密レベルに応じて設定する。従って、機密レベルが高いコンテンツデータほど認証コードS(N)のコード長を拡大して設定することにより、セキュリティ強度を向上することが可能となる。
【0135】
また、上記実施の形態1に係る情報処理システム1によれば、メモリコントローラ12(第1の制御回路)は、ハードウェア処理によって認証コードS(N)のコード長を設定する。従って、プログラム解析等によってマイクロプロセッサ11の制御を改変するような攻撃を受けた場合であっても、メモリコントローラ12によるハードウェア処理の内容が解析されない限り、攻撃者によって認証コードS(N)のコード長が特定されることはない。その結果、攻撃者による認証コードS(N)の解析がさらに困難となるため、セキュリティ強度をさらに向上することが可能となる。
【0136】
また、上記実施の形態2に係る情報処理システム1によれば、マイクロプロセッサ11は、ソフトウェア処理によって認証コードS(N)のコード長を設定する。従って、認証コードS(N)のコード長を設定するための回路をメモリコントローラ12に実装する必要がないため、回路構成の簡略化及びコストの削減を図ることが可能となる。
【0137】
また、上記実施の形態1,2に係る情報処理システム1によれば、認証制御部53(第1の認証制御部)は、データM1で示される認証コードS(N)のコード長の設定値に基づいて、当該設定値に相当するビット長のセッション鍵K(N)を鍵生成部51(第1の数列生成部)から取得することにより、セッション鍵K(N)を含む認証コードS(N)を生成する。従って、認証制御部53が鍵生成部51から取得するセッション鍵K(N)のビット長を、コード長の設定値に応じて異ならせることにより、コード長が異なる様々な認証コードS(N)を簡易に生成することが可能となる。
【0138】
また、上記実施の形態1,2に係る情報処理システム1によれば、鍵生成部61(第2の数列生成部)は、鍵生成部51が生成するセッション鍵K(N)と同一のセッション鍵K(N)を生成する。また、認証制御部63(第2の認証制御部)は、第1のコード長情報L(N)に相当するビット長のセッション鍵K(N)を鍵生成部61から取得することにより、セッション鍵K(N)を含む第2の認証コードS(N)を生成する。そして、認証制御部63は、認証コマンドC1に含まれる第1の認証コードS(N)と、自身が生成した第2の認証コードS(N)とが一致するか否かによって、通信装置2を認証する。通信装置2が正当である場合には第1の認証コードS(N)と第2の認証コードS(N)とは一致し、通信装置2が不正である場合には第1の認証コードS(N)と第2の認証コードS(N)とは一致しない。従って、第1の認証コードS(N)と第2の認証コードS(N)とが一致するか否かによって、通信装置2が正当であるか不正であるかを簡易かつ確実に認証することが可能となる。
【0139】
また、上記実施の形態1,2に係る情報処理システム1によれば、半導体記憶装置3は、通信装置2に半導体記憶装置3を認証させるための第2の認証コードS(N+1)のコード長を可変に設定可能である。従って、認証の処理毎に、あるいは任意のタイミングで、認証コードS(N+1)のコード長を異ならせることができる。また、攻撃者によるハッキング技術の向上に対抗して、認証コードS(N+1)のコード長を拡大することができる。さらに、半導体記憶装置3から通信装置2に送信するコンテンツデータの機密レベルに応じて、認証コードS(N+1)のコード長を異ならせることができる。その結果、認証コードのコード長が固定値である情報処理システムよりもセキュリティ強度を向上することが可能となる。
【0140】
また、上記実施の形態1に係る情報処理システム1によれば、半導体記憶装置3は、認証コードS(N+1)のコード長をランダムに設定する。従って、認証コードS(N+1)のコード長はランダムに変更されるため、攻撃者が認証コードS(N+1)の解析を行う際に、通信装置2と半導体記憶装置3との間で送受信される様々なデータのうちのどの部分のデータが認証コードS(N+1)であるかを、攻撃者が特定することが困難である。その結果、攻撃者による認証コードS(N+1)の解析がさらに困難となるため、セキュリティ強度をさらに向上することが可能となる。
【0141】
また、上記実施の形態2に係る情報処理システム1によれば、半導体記憶装置3は、認証コードS(N+1)のコード長を、情報処理システム1に要求されるセキュリティ強度に応じて設定する。従って、攻撃者によるハッキング技術の向上に対抗して以前より高いセキュリティ強度が要求された場合には、認証コードS(N+1)のコード長を以前より拡大して設定することができる。その結果、攻撃者による認証コードS(N+1)の解析が困難となるため、セキュリティ強度を向上することが可能となる。
【0142】
また、上記実施の形態2に係る情報処理システム1によれば、半導体記憶装置3は、認証コードS(N+1)のコード長を、通信装置2に送信するコンテンツデータの機密レベルに応じて設定する。従って、機密レベルが高いコンテンツデータほど認証コードS(N+1)のコード長を拡大して設定することにより、セキュリティ強度を向上することが可能となる。
【0143】
また、上記実施の形態1に係る情報処理システム1によれば、認証コードS(N+1)のコード長の設定は、メモリコントローラ21が実行する。従って、プログラム解析等によって通信装置2のマイクロプロセッサ11の制御を改変するような攻撃を受けた場合であっても、メモリコントローラ21によるハードウェア処理の内容が解析されない限り、攻撃者によって認証コードS(N+1)のコード長が特定されることはない。その結果、攻撃者による認証コードS(N+1)の解析がさらに困難となるため、セキュリティ強度をさらに向上することが可能となる。
【0144】
また、上記実施の形態2に係る情報処理システム1によれば、認証コードS(N+1)のコード長の設定は、通信装置2のマイクロプロセッサ11が実行する。従って、認証コードS(N+1)のコード長を設定するための回路をメモリコントローラ21に実装する必要がないため、回路構成の簡略化及びコストの削減を図ることが可能となる。
【0145】
また、上記実施の形態1,2に係る情報処理システム1によれば、認証制御部63は、データM2で示される認証コードS(N+1)のコード長の設定値に基づいて、当該設定値に相当するビット長のセッション鍵K(N+1)を鍵生成部61から取得することにより、セッション鍵K(N+1)を含む認証コードS(N+1)を生成する。従って、認証制御部63が鍵生成部61から取得するセッション鍵K(N+1)のビット長を、コード長の設定値に応じて異ならせることにより、コード長が異なる様々な認証コードS(N+1)を簡易に生成することが可能となる。
【0146】
また、上記実施の形態1,2に係る情報処理システム1によれば、鍵生成部51は、鍵生成部61が生成するセッション鍵K(N+1)と同一のセッション鍵K(N+1)を生成する。また、認証制御部53は、第2のコード長情報L(N+1)に相当するビット長のセッション鍵K(N+1)を鍵生成部51から取得することにより、セッション鍵K(N+1)を含む第1の認証コードS(N+1)を生成する。そして、認証制御部53は、半導体記憶装置3から受信した第2の認証コードS(N+1)と、自身が生成した第1の認証コードS(N+1)とが一致するか否かによって、半導体記憶装置3を認証する。半導体記憶装置3が正当である場合には第1の認証コードS(N+1)と第2の認証コードS(N+1)とは一致し、半導体記憶装置3が不正である場合には第1の認証コードS(N+1)と第2の認証コードS(N+1)とは一致しない。従って、第1の認証コードS(N+1)と第2の認証コードS(N+1)とが一致するか否かによって、半導体記憶装置3が正当であるか不正であるかを簡易かつ確実に認証することが可能となる。
【0147】
また、上記実施の形態1,2に係る情報処理システム1によれば、半導体記憶装置3は、認証コードS(N)に基づいて通信装置2を認証し、通信装置2を正当と判定した場合には、認証コードS(N)に応答して認証コードS(N+1)を通信装置2に送信し、通信装置2は、認証コードS(N+1)に基づいて半導体記憶装置3を認証する。従って、通信装置2から半導体記憶装置3への認証コードS(N)の送信と、それに応答する半導体記憶装置3から通信装置2への認証コードS(N+1)の送信との、一往復の通信によって、通信装置2と半導体記憶装置3との相互認証を行うことができる。その結果、通信装置及び半導体記憶装置それぞれからの往復通信(合計で二往復の通信)が必要となる一般的なチャレンジアンドレスポンス型の相互認証と比較すると、処理の高速化及び効率化を図ることが可能となる。