【解決手段】暗号化回路52は、復号回路51が生成した復号コンテンツデータを暗号化することにより、暗号化コンテンツデータを生成する。そして、記憶装置認証回路43は、半導体記憶装置3から受信した暗号化コンテンツデータと、暗号化回路52が生成した暗号化コンテンツデータとに基づいて、半導体記憶装置3を認証する。
前記通信装置は、前記第1の暗号化部及び前記第1の復号部の動作モードとして、ストリーム暗号モードとブロック暗号モードとを選択する第1の暗号モード制御部をさらに有し、
前記記憶装置は、前記第2の暗号化部及び前記第2の復号部の動作モードとして、ストリーム暗号モードとブロック暗号モードとを選択する第2の暗号モード制御部をさらに有し、
前記記憶装置認証部は、前記第1の復号部及び前記第2の暗号化部の動作モードとしてブロック暗号モードが選択された場合に、前記記憶装置の認証を行う、請求項1又は2に記載の情報処理システム。
前記第1の暗号モード制御部及び前記第2の暗号モード制御部は、前記第1の復号部及び前記第2の暗号化部の動作モードとしてブロック暗号モードを選択し、前記第1の暗号化部及び前記第2の復号部の動作モードとしてストリーム暗号モードを選択する、請求項4に記載の情報処理システム。
前記記憶装置認証部が前記記憶装置を不正と認証した場合、前記通信装置は、前記記憶装置に対するデータの送受信を停止する、請求項4〜7のいずれか一つに記載の情報処理システム。
前記通信装置は、前記第1の暗号化部及び前記第1の復号部の動作モードとして、ストリーム暗号モードとブロック暗号モードとを選択する第1の暗号モード制御部をさらに有し、
前記記憶装置は、前記第2の暗号化部及び前記第2の復号部の動作モードとして、ストリーム暗号モードとブロック暗号モードとを選択する第2の暗号モード制御部をさらに有し、
前記通信装置認証部は、前記第1の暗号化部及び前記第2の復号部の動作モードとしてブロック暗号モードが選択された場合に、前記通信装置の認証を行う、請求項2又は3に記載の情報処理システム。
前記第1の暗号モード制御部及び前記第2の暗号モード制御部は、前記第1の暗号化部及び前記第2の復号部の動作モードとしてブロック暗号モードを選択し、前記第1の復号部及び前記第2の暗号化部の動作モードとしてストリーム暗号モードを選択する、請求項9に記載の情報処理システム。
前記通信装置認証部は、前記通信装置を正規と認証した場合、前記第2の暗号化部が生成した暗号化コマンドに基づいて、コンテンツデータのストリーム暗号に用いるカウンタの初期値を設定する、請求項10に記載の記憶装置。
前記通信装置認証部は、前記第2の暗号化部が生成した暗号化コマンドと、所定のパディングデータとの合成値を、前記カウンタの初期値として設定する、請求項11に記載の記憶装置。
前記通信装置認証部が前記通信装置を不正と認証した場合、前記記憶装置は、前記通信装置に対するデータの送受信を停止する、請求項9〜13のいずれか一つに記載の情報処理システム。
前記通信装置は、前記第1の暗号化部及び前記第1の復号部の動作モードとして、ストリーム暗号モードとブロック暗号モードとを選択する第1の暗号モード制御部をさらに有し、
前記記憶装置は、前記第2の暗号化部及び前記第2の復号部の動作モードとして、ストリーム暗号モードとブロック暗号モードとを選択する第2の暗号モード制御部をさらに有し、
前記第1の暗号モード制御部及び前記第2の暗号モード制御部は、前記第1の暗号化部、前記第2の暗号化部、前記第1の復号部、及び前記第2の復号部の動作モードとしてブロック暗号モードを選択し、
前記記憶装置認証部は前記記憶装置の認証を行い、
前記通信装置認証部は前記通信装置の認証を行う、請求項2に記載の情報処理システム。
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、通信装置及び半導体記憶装置では、回路規模又は演算処理時間等のリソースが限られているため、秘匿技術と認証技術とを別個独立に実装したのでは、リソースの増大を招き、リソースの節約の観点からは好ましくない。
【0006】
本発明はかかる事情に鑑みて成されたものであり、秘匿技術と認証技術とを効率的に実装することが可能な情報処理システム、並びに当該情報処理システムが備える通信装置及び記憶装置を得ることを目的とする。
【課題を解決するための手段】
【0007】
本発明の第1の態様に係る情報処理システムは、通信装置と、前記通信装置に接続される記憶装置と、を備え、前記通信装置は、前記記憶装置に送信するコマンドを暗号化することにより、暗号化コマンドを生成する第1の暗号化部と、前記記憶装置から受信した暗号化コンテンツデータを復号することにより、復号コンテンツデータを生成する第1の復号部と、前記記憶装置を認証する記憶装置認証部と、を有し、前記記憶装置は、コンテンツデータが記憶された記憶部と、前記通信装置から受信した暗号化コマンドを復号することにより、復号コマンドを生成する第2の復号部と、前記通信装置に送信するコンテンツデータを暗号化することにより、暗号化コンテンツデータを生成する第2の暗号化部と、を有し、前記第1の暗号化部は、前記第1の復号部が生成した復号コンテンツデータを暗号化することにより、暗号化コンテンツデータを生成し、前記記憶装置認証部は、前記記憶装置から受信した暗号化コンテンツデータと、前記第1の暗号化部が生成した暗号化コンテンツデータとに基づいて、前記記憶装置を認証することを特徴とするものである。
【0008】
第1の態様に係る情報処理システムによれば、第1の暗号化部は、第1の復号部が生成した復号コンテンツデータを暗号化することにより、暗号化コンテンツデータを生成する。そして、記憶装置認証部は、記憶装置から受信した暗号化コンテンツデータと、第1の暗号化部が生成した暗号化コンテンツデータとに基づいて、記憶装置を認証する。このように、秘匿技術と認証技術とを別個独立に実装するのではなく、秘匿技術を用いたセキュア通信の過程で生成される暗号化コンテンツデータに基づいて、通信装置が記憶装置の認証を行うことにより、秘匿技術と認証技術とを効率的に実装することが可能となる。
【0009】
本発明の第2の態様に係る情報処理システムは、第1の態様に係る情報処理システムにおいて特に、前記記憶装置は、前記通信装置を認証する通信装置認証部をさらに有し、前記第2の暗号化部は、前記第2の復号部が生成した復号コマンドを暗号化することにより、暗号化コマンドを生成し、前記通信装置認証部は、前記通信装置から受信した暗号化コマンドと、前記第2の暗号化部が生成した暗号化コマンドとに基づいて、前記通信装置を認証することを特徴とするものである。
【0010】
第2の態様に係る情報処理システムによれば、第2の暗号化部は、第2の復号部が生成した復号コマンドを暗号化することにより、暗号化コマンドを生成する。そして、通信装置認証部は、通信装置から受信した暗号化コマンドと、第2の暗号化部が生成した暗号化コマンドとに基づいて、通信装置を認証する。これにより、通信装置と記憶装置との相互認証を行うことができる。しかも、秘匿技術と認証技術とを別個独立に実装するのではなく、秘匿技術を用いたセキュア通信の過程で生成される暗号化コマンドに基づいて、記憶装置が通信装置の認証を行うことにより、秘匿技術と認証技術とを効率的に実装することが可能となる。
【0011】
本発明の第3の態様に係る情報処理システムは、通信装置と、前記通信装置に接続される記憶装置と、を備え、前記通信装置は、前記記憶装置に送信するコマンドを暗号化することにより、暗号化コマンドを生成する第1の暗号化部と、前記記憶装置から受信した暗号化コンテンツデータを復号することにより、復号コンテンツデータを生成する第1の復号部と、を有し、前記記憶装置は、コンテンツデータが記憶された記憶部と、前記通信装置から受信した暗号化コマンドを復号することにより、復号コマンドを生成する第2の復号部と、前記通信装置に送信するコンテンツデータを暗号化することにより、暗号化コンテンツデータを生成する第2の暗号化部と、前記通信装置を認証する通信装置認証部と、を有し、前記第2の暗号化部は、前記第2の復号部が生成した復号コマンドを暗号化することにより、暗号化コマンドを生成し、前記通信装置認証部は、前記通信装置から受信した暗号化コマンドと、前記第2の暗号化部が生成した暗号化コマンドとに基づいて、前記通信装置を認証することを特徴とするものである。
【0012】
第3の態様に係る情報処理システムによれば、第2の暗号化部は、第2の復号部が生成した復号コマンドを暗号化することにより、暗号化コマンドを生成する。そして、通信装置認証部は、通信装置から受信した暗号化コマンドと、第2の暗号化部が生成した暗号化コマンドとに基づいて、通信装置を認証する。このように、秘匿技術と認証技術とを別個独立に実装するのではなく、秘匿技術を用いたセキュア通信の過程で生成される暗号化コマンドに基づいて、記憶装置が通信装置の認証を行うことにより、秘匿技術と認証技術とを効率的に実装することが可能となる。
【0013】
本発明の第4の態様に係る情報処理システムは、第1又は第2の態様に係る情報処理システムにおいて特に、前記通信装置は、前記第1の暗号化部及び前記第1の復号部の動作モードとして、ストリーム暗号モードとブロック暗号モードとを選択する第1の暗号モード制御部をさらに有し、前記記憶装置は、前記第2の暗号化部及び前記第2の復号部の動作モードとして、ストリーム暗号モードとブロック暗号モードとを選択する第2の暗号モード制御部をさらに有し、前記記憶装置認証部は、前記第1の復号部及び前記第2の暗号化部の動作モードとしてブロック暗号モードが選択された場合に、前記記憶装置の認証を行うことを特徴とするものである。
【0014】
第4の態様に係る情報処理システムによれば、第1の暗号モード制御部は、第1の暗号化部及び第1の復号部の動作モードとして、ストリーム暗号モードとブロック暗号モードとを選択する。また、第2の暗号モード制御部は、第2の暗号化部及び第2の復号部の動作モードとして、ストリーム暗号モードとブロック暗号モードとを選択する。このように、第1の暗号モード制御部及び第2の暗号モード制御部によって、ストリーム暗号モードとブロック暗号モードとを選択することにより、状況や目的に応じて適切な暗号処理を行うことができる。例えば、速い処理速度が要求される状況では、ストリーム暗号モードを選択することによって高速処理を実現でき、また、高い攻撃耐性が要求される状況では、ブロック暗号モードを選択することによって高い攻撃耐性を実現できる。その結果、処理速度の向上と攻撃耐性の向上とを両立することが可能となる。
【0015】
また、記憶装置認証部は、第1の復号部及び第2の暗号化部の動作モードとしてブロック暗号モードが選択された場合に、記憶装置の認証を行う。これにより、記憶装置認証部は、今回のブロックに関する認証処理において第1の暗号化部が生成した暗号化コンテンツデータを、次回のブロックに関する認証処理において使用することができ、その結果、累積メッセージ認証コードを用いて記憶装置の認証を行うことが可能となる。
【0016】
本発明の第5の態様に係る情報処理システムは、第4の態様に係る情報処理システムにおいて特に、前記第1の暗号モード制御部及び前記第2の暗号モード制御部は、前記第1の復号部及び前記第2の暗号化部の動作モードとしてブロック暗号モードを選択し、前記第1の暗号化部及び前記第2の復号部の動作モードとしてストリーム暗号モードを選択することを特徴とするものである。
【0017】
第5の態様に係る情報処理システムによれば、第1の暗号モード制御部及び第2の暗号モード制御部は、第1の復号部及び第2の暗号化部の動作モードとしてブロック暗号モードを選択し、第1の暗号化部及び第2の復号部の動作モードとしてストリーム暗号モードを選択する。これにより、通信装置から記憶装置に送信されるコマンドはストリーム暗号によって暗号化され、記憶装置から通信装置に送信されるコンテンツデータはブロック暗号によって暗号化される。このように、コマンドとコンテンツデータとで暗号モードを異ならせることにより、攻撃者による解析が困難となるため、攻撃耐性をさらに向上することが可能となる。
【0018】
本発明の第6の態様に係る情報処理システムは、第4又は第5の態様に係る情報処理システムにおいて特に、前記通信装置は、前記記憶装置から暗号化コンテンツデータをブロック単位で受信し、前記記憶装置認証部は、前記記憶装置から受信した全てのブロックに対応して、前記記憶装置の認証を行うことを特徴とするものである。
【0019】
第6の態様に係る情報処理システムによれば、記憶装置認証部は、記憶装置から受信した全てのブロックに対応して記憶装置の認証を行う。従って、通信装置が所望のブロックを記憶装置から受信した時点で、記憶装置から通信装置へのブロックの送信が停止された場合(つまり通信装置が最終ブロックを受信していない場合)であっても、記憶装置認証部によって記憶装置の認証を行うことが可能となる。
【0020】
本発明の第7の態様に係る情報処理システムは、第4又は第5の態様に係る情報処理システムにおいて特に、前記通信装置は、前記記憶装置から暗号化コンテンツデータをブロック単位で受信し、前記記憶装置認証部は、前記記憶装置から受信した特定のブロックに対応して、前記記憶装置の認証を行うことを特徴とするものである。
【0021】
第7の態様に係る情報処理システムによれば、記憶装置認証部は、記憶装置から受信した特定のブロックに対応して、記憶装置の認証を行う。従って、記憶装置から受信した全てのブロックに対応して記憶装置の認証を行う場合と比較すると、リソースを節約することが可能となる。
【0022】
本発明の第8の態様に係る情報処理システムは、第4〜第7のいずれか一つの態様に係る情報処理システムにおいて特に、前記記憶装置認証部が前記記憶装置を不正と認証した場合、前記通信装置は、前記記憶装置に対するデータの送受信を停止することを特徴とするものである。
【0023】
第8の態様に係る情報処理システムによれば、記憶装置認証部が記憶装置を不正と認証した場合、通信装置は、記憶装置に対するデータの送受信を停止する。これにより、通信装置は、不正な記憶装置に対して、コマンドの送信及びコンテンツデータの受信を行わないため、不正な記憶装置の使用を防止することが可能となる。
【0024】
本発明の第9の態様に係る情報処理システムは、第2又は第3の態様に係る情報処理システムにおいて特に、前記通信装置は、前記第1の暗号化部及び前記第1の復号部の動作モードとして、ストリーム暗号モードとブロック暗号モードとを選択する第1の暗号モード制御部をさらに有し、前記記憶装置は、前記第2の暗号化部及び前記第2の復号部の動作モードとして、ストリーム暗号モードとブロック暗号モードとを選択する第2の暗号モード制御部をさらに有し、前記通信装置認証部は、前記第1の暗号化部及び前記第2の復号部の動作モードとしてブロック暗号モードが選択された場合に、前記通信装置の認証を行うことを特徴とするものである。
【0025】
第9の態様に係る情報処理システムによれば、第1の暗号モード制御部は、第1の暗号化部及び第1の復号部の動作モードとして、ストリーム暗号モードとブロック暗号モードとを選択する。また、第2の暗号モード制御部は、第2の暗号化部及び第2の復号部の動作モードとして、ストリーム暗号モードとブロック暗号モードとを選択する。このように、第1の暗号モード制御部及び第2の暗号モード制御部によって、ストリーム暗号モードとブロック暗号モードとを選択することにより、状況や目的に応じて適切な暗号処理を行うことができる。例えば、速い処理速度が要求される状況では、ストリーム暗号モードを選択することによって高速処理を実現でき、また、高い攻撃耐性が要求される状況では、ブロック暗号モードを選択することによって高い攻撃耐性を実現できる。その結果、処理速度の向上と攻撃耐性の向上とを両立することが可能となる。
【0026】
また、通信装置認証部は、第1の暗号化部及び第2の復号部の動作モードとしてブロック暗号モードが選択された場合に、通信装置の認証を行う。これにより、通信装置認証部は、今回のブロックに関する認証処理において第2の暗号化部が生成した暗号化コマンドを、次回のブロックに関する認証処理において使用することができ、その結果、累積メッセージ認証コードを用いて通信装置の認証を行うことが可能となる。
【0027】
本発明の第10の態様に係る情報処理システムは、第9の態様に係る情報処理システムにおいて特に、前記第1の暗号モード制御部及び前記第2の暗号モード制御部は、前記第1の暗号化部及び前記第2の復号部の動作モードとしてブロック暗号モードを選択し、前記第1の復号部及び前記第2の暗号化部の動作モードとしてストリーム暗号モードを選択することを特徴とするものである。
【0028】
第10の態様に係る情報処理システムによれば、第1の暗号モード制御部及び第2の暗号モード制御部は、第1の暗号化部及び第2の復号部の動作モードとしてブロック暗号モードを選択し、第1の復号部及び第2の暗号化部の動作モードとしてストリーム暗号モードを選択する。これにより、通信装置から記憶装置に送信されるコマンドはブロック暗号によって暗号化され、記憶装置から通信装置に送信されるコンテンツデータはストリーム暗号によって暗号化される。このように、コマンドとコンテンツデータとで暗号モードを異ならせることにより、攻撃者による解析が困難となるため、攻撃耐性をさらに向上することが可能となる。
【0029】
本発明の第11の態様に係る情報処理システムは、第10の態様に係る情報処理システムにおいて特に、前記通信装置認証部は、前記通信装置を正規と認証した場合、前記第2の暗号化部が生成した暗号化コマンドに基づいて、コンテンツデータのストリーム暗号に用いるカウンタの初期値を設定することを特徴とするものである。
【0030】
第11の態様に係る情報処理システムによれば、通信装置認証部は、通信装置を正規と認証した場合、第2の暗号化部が生成した暗号化コマンドに基づいて、コンテンツデータのストリーム暗号に用いるカウンタの初期値を設定する。これにより、コンテンツデータのアドレスが異なるアクセス毎にカウンタの初期値を異ならせることができるため、攻撃耐性を向上することが可能となる。
【0031】
本発明の第12の態様に係る情報処理システムは、第11の態様に係る情報処理システムにおいて特に、前記通信装置認証部は、前記第2の暗号化部が生成した暗号化コマンドと、所定のパディングデータとの合成値を、前記カウンタの初期値として設定することを特徴とするものである。
【0032】
第12の態様に係る情報処理システムによれば、通信装置認証部は、第2の暗号化部が生成した暗号化コマンドと、所定のパディングデータとの合成値を、カウンタの初期値として設定する。このように、暗号化コマンドそのものをカウンタの初期値として設定するのではなく、暗号化コマンドとパディングデータとの合成値をカウンタの初期値として設定することにより、攻撃耐性をさらに向上することが可能となる。
【0033】
本発明の第13の態様に係る情報処理システムは、第12の態様に係る情報処理システムにおいて特に、前記通信装置認証部は、前記通信装置から前記記憶装置へのアクセス毎にパディングデータを変更することを特徴とするものである。
【0034】
第13の態様に係る情報処理システムによれば、通信装置認証部は、通信装置から記憶装置へのアクセス毎にパディングデータを変更する。これにより、コンテンツデータのアドレスが同一の場合であっても、アクセス毎にカウンタの初期値を異ならせることができるため、攻撃耐性をさらに向上することが可能となる。
【0035】
本発明の第14の態様に係る情報処理システムは、第9〜第13のいずれか一つの態様に係る情報処理システムにおいて特に、前記通信装置認証部が前記通信装置を不正と認証した場合、前記記憶装置は、前記通信装置に対するデータの送受信を停止することを特徴とするものである。
【0036】
第14の態様に係る情報処理システムによれば、通信装置認証部が通信装置を不正と認証した場合、記憶装置は、通信装置に対するデータの送受信を停止する。これにより、記憶装置は、不正な通信装置に対して、コマンドの受信及びコンテンツデータの送信を行わないため、不正な通信装置の使用を防止することが可能となる。
【0037】
本発明の第15の態様に係る情報処理システムは、第2の態様に係る情報処理システムにおいて特に、前記通信装置は、前記第1の暗号化部及び前記第1の復号部の動作モードとして、ストリーム暗号モードとブロック暗号モードとを選択する第1の暗号モード制御部をさらに有し、前記記憶装置は、前記第2の暗号化部及び前記第2の復号部の動作モードとして、ストリーム暗号モードとブロック暗号モードとを選択する第2の暗号モード制御部をさらに有し、前記第1の暗号モード制御部及び前記第2の暗号モード制御部は、前記第1の暗号化部、前記第2の暗号化部、前記第1の復号部、及び前記第2の復号部の動作モードとしてブロック暗号モードを選択し、前記記憶装置認証部は前記記憶装置の認証を行い、前記通信装置認証部は前記通信装置の認証を行うことを特徴とするものである。
【0038】
第15の態様に係る情報処理システムによれば、第1の暗号モード制御部は、第1の暗号化部及び第1の復号部の動作モードとして、ストリーム暗号モードとブロック暗号モードとを選択する。また、第2の暗号モード制御部は、第2の暗号化部及び第2の復号部の動作モードとして、ストリーム暗号モードとブロック暗号モードとを選択する。このように、第1の暗号モード制御部及び第2の暗号モード制御部によって、ストリーム暗号モードとブロック暗号モードとを選択することにより、状況や目的に応じて適切な暗号処理を行うことができる。例えば、速い処理速度が要求される状況では、ストリーム暗号モードを選択することによって高速処理を実現でき、また、高い攻撃耐性が要求される状況では、ブロック暗号モードを選択することによって高い攻撃耐性を実現できる。その結果、処理速度の向上と攻撃耐性の向上とを両立することが可能となる。
【0039】
また、第1の暗号モード制御部及び第2の暗号モード制御部は、第1の暗号化部、第2の暗号化部、第1の復号部、及び第2の復号部の動作モードとしてブロック暗号モードを選択し、記憶装置認証部は記憶装置の認証を行い、通信装置認証部は通信装置の認証を行う。これにより、通信装置と記憶装置との相互認証を行うことが可能となる。
【0040】
さらに、記憶装置認証部は、今回のブロックに関する認証処理において第1の暗号化部が生成した暗号化コンテンツデータを、次回のブロックに関する認証処理において使用することができ、その結果、累積メッセージ認証コードを用いて記憶装置の認証を行うことが可能となる。また、通信装置認証部は、今回のブロックに関する認証処理において第2の暗号化部が生成した暗号化コマンドを、次回のブロックに関する認証処理において使用することができ、その結果、累積メッセージ認証コードを用いて通信装置の認証を行うことが可能となる。
【0041】
本発明の第16の態様に係る通信装置は、記憶装置に送信するコマンドを暗号化することにより、暗号化コマンドを生成する暗号化部と、前記記憶装置から受信した暗号化コンテンツデータを復号することにより、復号コンテンツデータを生成する復号部と、前記記憶装置を認証する記憶装置認証部と、を備え、前記暗号化部は、前記復号部が生成した復号コンテンツデータを暗号化することにより、暗号化コンテンツデータを生成し、前記記憶装置認証部は、前記記憶装置から受信した暗号化コンテンツデータと、前記暗号化部が生成した暗号化コンテンツデータとに基づいて、前記記憶装置を認証することを特徴とするものである。
【0042】
第16の態様に係る通信装置によれば、暗号化部は、復号部が生成した復号コンテンツデータを暗号化することにより、暗号化コンテンツデータを生成する。そして、記憶装置認証部は、記憶装置から受信した暗号化コンテンツデータと、暗号化部が生成した暗号化コンテンツデータとに基づいて、記憶装置を認証する。このように、秘匿技術と認証技術とを別個独立に実装するのではなく、秘匿技術を用いたセキュア通信の過程で生成される暗号化コンテンツデータに基づいて、通信装置が記憶装置の認証を行うことにより、秘匿技術と認証技術とを効率的に実装することが可能となる。
【0043】
本発明の第17の態様に係る記憶装置は、コンテンツデータが記憶された記憶部と、通信装置から受信した暗号化コマンドを復号することにより、復号コマンドを生成する復号部と、前記通信装置に送信するコンテンツデータを暗号化することにより、暗号化コンテンツデータを生成する暗号化部と、前記通信装置を認証する通信装置認証部と、を備え、前記暗号化部は、前記復号部が生成した復号コマンドを暗号化することにより、暗号化コマンドを生成し、前記通信装置認証部は、前記通信装置から受信した暗号化コマンドと、前記暗号化部が生成した暗号化コマンドとに基づいて、前記通信装置を認証することを特徴とするものである。
【0044】
第17の態様に係る記憶装置によれば、暗号化部は、復号部が生成した復号コマンドを暗号化することにより、暗号化コマンドを生成する。そして、通信装置認証部は、通信装置から受信した暗号化コマンドと、暗号化部が生成した暗号化コマンドとに基づいて、通信装置を認証する。このように、秘匿技術と認証技術とを別個独立に実装するのではなく、秘匿技術を用いたセキュア通信の過程で生成される暗号化コマンドに基づいて、記憶装置が通信装置の認証を行うことにより、秘匿技術と認証技術とを効率的に実装することが可能となる。
【発明の効果】
【0045】
本発明によれば、秘匿技術と認証技術とを効率的に実装することが可能な情報処理システム、並びに当該情報処理システムが備える通信装置及び記憶装置を得ることができる。
【発明を実施するための形態】
【0047】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、異なる図面において同一の符号を付した要素は、同一又は相応する要素を示すものとする。
【0048】
図1は、本発明の実施の形態に係る情報処理システム1の全体構成を示す図である。情報処理システム1は、通信装置2と半導体記憶装置3とを備えて構成されている。通信装置2は、例えばパーソナルコンピュータである。半導体記憶装置3は、例えば、通信装置2に着脱自在に接続可能なメモリカードである。あるいは、半導体記憶装置3に代えて、光ディスクや磁気ディスク等の任意の記憶装置を用いることもできる。
【0049】
通信装置2は、マイクロプロセッサ11とセキュリティ制御回路12とを備えて構成されている。半導体記憶装置3は、セキュリティ制御回路21とメモリアレイ22とを備えて構成されている。セキュリティ制御回路12,21は、後述する暗号処理によって、相互にセキュア通信を行う。メモリアレイ22には、画像、音声、テキスト、コード、管理情報等の任意のコンテンツデータが記憶されている。メモリアレイ22は、例えばNAND型フラッシュメモリを用いて構成されている。但し、この例に限定されるものではなく、メモリアレイ22はNOR型フラッシュメモリ等を用いて構成されていても良い。
【0050】
図2は、通信装置2の構成を簡略化して示す図である。マイクロプロセッサ11は、バス30を介して相互に接続された、CPU31、演算器32、RAM33、及びROM34を備えて構成されている。セキュリティ制御回路12は、バス30を介してマイクロプロセッサ11に接続されている。
【0051】
図3は、通信装置2が備えるセキュリティ制御回路12の構成を簡略化して示す図である。
図3の接続関係で示すように、セキュリティ制御回路12は、暗号モード制御回路41、暗号化・復号回路42、記憶装置認証回路43、及び制御回路44を備えて構成されている。暗号化・復号回路42は、暗号モードとして、平文をビット単位で暗号化するストリーム暗号と、平文を固定長(例えば16バイト長)のブロック単位で暗号化するブロック暗号とを切り替えて適用可能である。暗号モード制御回路41は、暗号化・復号回路42に対してストリーム暗号又はブロック暗号の暗号モードを設定する。記憶装置認証回路43は、後述する認証処理によって、半導体記憶装置3が正規であるか不正であるかの認証を行う。
【0052】
図4は、暗号化・復号回路42の構成を簡略化して示す図である。
図4の接続関係で示すように、暗号化・復号回路42は、復号回路51、暗号化回路52、演算回路53,54,56、カウンタ55、及びセレクタ57〜59を備えて構成されている。
【0053】
図5は、半導体記憶装置3が備えるセキュリティ制御回路21の構成を簡略化して示す図である。
図5の接続関係で示すように、セキュリティ制御回路21は、暗号モード制御回路61、暗号化・復号回路62、通信装置認証回路63、及び制御回路64を備えて構成されている。暗号化・復号回路62は、暗号モードとして、ストリーム暗号とブロック暗号とを切り替えて適用可能である。暗号モード制御回路61は、暗号化・復号回路62に対してストリーム暗号又はブロック暗号の暗号モードを設定する。通信装置認証回路63は、後述する認証処理によって、通信装置2が正規であるか不正であるかの認証を行う。
【0054】
図6は、暗号化・復号回路62の構成を簡略化して示す図である。
図6の接続関係で示すように、暗号化・復号回路62は、復号回路71、暗号化回路72、演算回路73,74,76、カウンタ75、及びセレクタ77〜79を備えて構成されている。
【0055】
本実施の形態の例では、暗号化・復号回路42,62には、ブロック暗号の構成法の一種であるSPN構造(SPN:Substitution Permutation Network)を持つ暗号アルゴリズムが実装されている。暗号アルゴリズムとしては、例えばAES(Advanced Encryption Standard)が使用される。AESのCBCモード(CBC:Cipher Block Chaining)によってブロック暗号が実現され、AESのCTRモード(カウンタモード)によってストリーム暗号が実現される。
【0056】
以下、本実施の形態に係る情報処理システム1の動作について説明する。以下の例では、通信装置2がメモリアレイ22にアクセスするためのアクセスコマンドとして、リードコマンドを使用する場合について説明する。
【0057】
図1を参照して、まずマイクロプロセッサ11は、後述する暗号パターンを設定するための暗号制御コマンドを発行する。暗号制御コマンドは、それが暗号制御コマンドであることを識別するための特定のコマンドIDと、複数の暗号パターンの中から所望の暗号パターンを選択するための選択情報とを含む。マイクロプロセッサ11は、暗号制御コマンドを、セキュリティ制御回路12を介してセキュリティ制御回路21に送信する。
【0058】
図3を参照して、セキュリティ制御回路12に入力された暗号制御コマンドは、暗号化・復号回路42を介して制御回路44に入力される。なお、暗号制御コマンドは暗号化されていないため、暗号化・復号回路42は、入力された暗号制御コマンドをそのままスルーして制御回路44に入力する。
【0059】
次に制御回路44は、暗号制御コマンドに含まれる選択情報を抽出し、その選択情報を暗号モード制御回路41に転送する。また、制御回路44は、暗号制御コマンドをセキュリティ制御回路21に送信する。
【0060】
図5を参照して、セキュリティ制御回路21が受信した暗号制御コマンドは、暗号化・復号回路62をスルーして制御回路64に入力される。
【0061】
次に制御回路64は、暗号制御コマンドに含まれる選択情報を抽出し、その選択情報を暗号モード制御回路61に転送する。
【0062】
図7は、暗号パターンの例を示す図である。コマンドXは、通信装置2から半導体記憶装置3に送信されるリードコマンドであり、データYは、半導体記憶装置3から通信装置2に送信されるコンテンツデータである。ハッチングを施した部分にはブロック暗号が適用されることを意味し、ハッチングを施していない部分にはストリーム暗号が適用されることを意味する。これらの暗号パターンは、セキュリティ制御回路12,21によって共有され、メモリアレイ22内に格納されている。但し、暗号パターンは、セキュリティ制御回路12,21が参照可能な他の不揮発性メモリ内に格納されていてもよい。なお、
図7に示した暗号パターンは一例であり、他の任意の暗号パターンを含めてもよい。
【0063】
パターンP1では、コマンドXにブロック暗号が適用され、コンテンツデータYにストリーム暗号が適用される。
【0064】
パターンP2では、コマンドXにストリーム暗号が適用され、コンテンツデータYにブロック暗号が適用される。
【0065】
パターンP3では、コマンドX及びコンテンツデータYの双方にブロック暗号が適用される。
【0066】
パターンP1〜P3の選択は、
図1に示したマイクロプロセッサ11によってアクセス毎に行われる。マイクロプロセッサ11は、要求される通信速度及び要求される攻撃耐性に基づいて、パターンP1〜P3の中から最適なパターンを選択する。
【0067】
例えば、画像や音声等のサイズの大きいデータを読み出す場合には、速い通信速度が要求されるため、コンテンツデータYに関してストリーム暗号が適用されるパターンP1を選択する。また、コードや管理情報等のサイズの小さいデータを読み出す場合には、遅い通信速度で足りるため、コンテンツデータYに関してブロック暗号が適用されるパターンP2,P3を選択する。
【0068】
また、コンテンツデータYに関して高い攻撃耐性が要求される場合には、コンテンツデータYに関してブロック暗号が適用されるパターンP2,P3を選択する。
【0069】
また、コマンドXのデータサイズが大きい場合には、速い通信速度が要求されるため、コマンドXに関してストリーム暗号が適用されるパターンP2を選択する。また、コマンドXのデータサイズが小さい場合には、遅い通信速度で足りるため、コマンドXに関してブロック暗号が適用されるパターンP1,P3を選択する。
【0070】
また、コマンドXに関して高い攻撃耐性が要求される場合には、コマンドXに関してブロック暗号が適用されるパターンP1,P3を選択する。
【0071】
以下、パターンP1〜P3が選択された場合のそれぞれの処理内容について、順に説明する。
【0072】
<パターンP1が選択された場合の処理>
図8〜11は、パターンP1が選択された場合のセキュリティ制御回路12,21の処理内容を順に示す図である。
図8には、セキュリティ制御回路12による1番目のコマンドX1に対する暗号化処理と、セキュリティ制御回路21によるコマンドX1に対する復号処理とが示されている。
図9には、セキュリティ制御回路21による1番目のコンテンツデータY1に対する暗号化処理と、セキュリティ制御回路12によるコンテンツデータY1に対する復号処理とが示されている。
図10には、セキュリティ制御回路12による2番目のコマンドX2に対する暗号化処理と、セキュリティ制御回路21によるコマンドX2に対する復号処理とが示されている。
図11には、セキュリティ制御回路21による2番目のコンテンツデータY2に対する暗号化処理と、セキュリティ制御回路12によるコンテンツデータY2に対する復号処理とが示されている。
【0073】
図3を参照して、上記の通り制御回路44は、暗号制御コマンドに含まれる選択情報を抽出し、その選択情報を暗号モード制御回路41に転送する。
【0074】
図3,4を参照して、次に暗号モード制御回路41は、選択情報で示される暗号パターンに準拠して、セレクタ58,59を制御する。パターンP1では暗号化対象のコマンドXにブロック暗号が適用されるため、暗号モード制御回路41は、セレクタ58,59のフラグを「0」に設定する。
【0075】
また、
図5を参照して、上記の通り制御回路64は、暗号制御コマンドに含まれる選択情報を抽出し、その選択情報を暗号モード制御回路61に転送する。
【0076】
図5,6を参照して、次に暗号モード制御回路61は、選択情報で示される暗号パターンに準拠して、セレクタ77〜79を制御する。パターンP1では復号対象のコマンドXにブロック暗号が適用されるため、暗号モード制御回路61は、セレクタ77〜79のフラグを「0」に設定する。
【0077】
図1を参照して、次にマイクロプロセッサ11は、リードコマンドであるコマンドX1Aを発行する。リードコマンドは、それがリードコマンドであることを識別するための特定のコマンドIDと、読み出し対象のコンテンツデータの所在を示すアドレス情報とを含む。
【0078】
図4,8を参照して、コマンドX1Aは、演算回路56に入力される。また、秘密状態で保持されている所定の初期化ベクトルIVが、演算回路56に入力される。演算回路56は、排他的論理和演算を行うことによって、コマンドX1Aと初期化ベクトルIVとの合成データを生成する。当該合成データは、セレクタ58を介して暗号化回路52に入力される。
【0079】
次に暗号化回路52は、入力された合成データを暗号化することにより、暗号化コマンドX1Bを生成する。
【0080】
図3,4を参照して、暗号化コマンドX1Bは、セレクタ59を介して制御回路44に入力される。次に制御回路44は、暗号化コマンドX1Bをセキュリティ制御回路21に送信する。また、制御回路44は、暗号化コマンドX1Bをカウンタ55の初期値(カウンタ値C11)として設定する。
【0081】
次に暗号モード制御回路41は、選択情報で示される暗号パターンに準拠して、セレクタ57,58を制御する。パターンP1では復号対象のコンテンツデータYにストリーム暗号が適用されるため、暗号モード制御回路41は、セレクタ57,58のフラグを「1」に設定する。
【0082】
図5を参照して、セキュリティ制御回路21が受信した暗号化コマンドX1Bは、暗号化・復号回路62及び通信装置認証回路63に入力される。
【0083】
図6,8を参照して、暗号化コマンドX1Bは、復号回路71に入力される。復号回路71は、暗号化コマンドX1Bを復号することにより、復号データを生成する。当該復号データは、演算回路74に入力される。
【0084】
また、上記の初期化ベクトルIVと同一の初期化ベクトルIVが、演算回路74に入力される。演算回路74は、復号データと初期化ベクトルIVとの排他的論理和演算を行うことによって、復号コマンドX1Aを生成する。
図5,6を参照して、復号コマンドX1Aは、演算回路74からセレクタ77を介して制御回路64に入力される。
【0085】
次に制御回路64は、復号コマンドX1Aを演算回路76に入力する。また、上記の初期化ベクトルIVと同一の初期化ベクトルIVが、演算回路76に入力される。演算回路76は、排他的論理和演算を行うことによって、復号コマンドX1Aと初期化ベクトルIVとの合成データを生成する。当該合成データは、セレクタ78を介して暗号化回路72に入力される。
【0086】
次に暗号化回路72は、入力された合成データを暗号化することにより、暗号化コマンドX1B’を生成する。
【0087】
図5,6を参照して、暗号化コマンドX1B’は、セレクタ79を介して通信装置認証回路63に入力される。
【0088】
次に通信装置認証回路63は、セキュリティ制御回路12から入力された暗号化コマンドX1Bと、暗号化・復号回路62から入力された暗号化コマンドX1B’とを比較することにより、通信装置2の認証を行う。具体的に通信装置認証回路63は、暗号化コマンドX1Bと暗号化コマンドX1B’とが同一である場合には通信装置2を正規と認証し、一方、暗号化コマンドX1Bと暗号化コマンドX1B’とが同一でない場合には通信装置2を不正と認証する。通信装置認証回路63は、認証の結果を制御回路64に入力する。
【0089】
制御回路64は、通信装置2が不正である旨の認証結果を受領した場合には、通信装置2に対する一切のデータの送受信を停止する。つまり、それ以降は、通信装置2からのコマンドの受信を拒否し、また、通信装置2へのコンテンツデータの送信を禁止する。
【0090】
一方、通信装置2が正規である旨の認証結果を受領した場合には、制御回路64は、上記で演算回路74から入力された復号コマンドX1Aに基づいて、メモリアレイ22から所望のコンテンツデータY1を読み出す。
【0091】
また、暗号モード制御回路61は、選択情報で示される暗号パターンに準拠して、セレクタ78,79を制御する。パターンP1では暗号化対象のコンテンツデータYにストリーム暗号が適用されるため、暗号モード制御回路61は、セレクタ78,79のフラグを「1」に設定する。
【0092】
また、通信装置認証回路63は、暗号化コマンドX1B’をカウンタ75の初期値(カウンタ値C11)として設定する。
【0093】
図5,6,9を参照して、次に制御回路64は、メモリアレイ22から読み出したコンテンツデータY1のうち1番目のブロックに相当するコンテンツデータY11Aを、演算回路73に入力する。
【0094】
また、カウンタ75は、カウンタ値C11に基づいて生成したストリームデータを、セレクタ78を介して暗号化回路72に入力する。暗号化回路72は、入力されたストリームデータを暗号化することによって暗号化ストリームデータを生成し、当該暗号化ストリームデータを演算回路73に入力する。
【0095】
次に演算回路73は、コンテンツデータY11Aと当該暗号化ストリームデータとの排他的論理和演算を行うことによって、暗号化コンテンツデータY11Bを生成する。暗号化コンテンツデータY11Bは、セレクタ79を介して出力され、暗号化・復号回路62からセキュリティ制御回路12に送信される。
【0096】
図3を参照して、セキュリティ制御回路12が受信した暗号化コンテンツデータY11Bは、制御回路44を介して暗号化・復号回路42に入力される。
【0097】
図4を参照して、暗号化コンテンツデータY11Bは、演算回路53に入力される。また、カウンタ55は、カウンタ値C11に基づいて生成したストリームデータを、セレクタ58を介して暗号化回路52に入力する。暗号化回路52は、入力されたストリームデータを暗号化することによって暗号化ストリームデータを生成し、当該暗号化ストリームデータを演算回路53に入力する。
【0098】
次に演算回路53は、暗号化コンテンツデータY11Bと当該暗号化ストリームデータとの排他的論理和演算を行うことによって、復号コンテンツデータY11Aを生成する。
図3,4を参照して、復号コンテンツデータY11Aは、セレクタ57を介して出力され、暗号化・復号回路42からマイクロプロセッサ11に入力される。
【0099】
図9を参照して、メモリアレイ22から読み出されたコンテンツデータY1のうち2番目以降のブロックに相当するコンテンツデータY12A〜Y1NAに関しても、カウンタ値C1を順次更新しながら上記と同様の処理が繰り返されることにより、1番目のコマンドX1に対応する1番目のコンテンツデータY1の読み出し処理が完了する。
【0100】
マイクロプロセッサ11によって2番目のリードコマンド(コマンドX2A)が発行されると、上記と同様の処理が繰り返されることにより、メモリアレイ22から2番目のコンテンツデータY2(コンテンツデータY21A〜Y2NA)が読み出される。
【0101】
図10を参照して、セキュリティ制御回路12は、コマンドX2Aと、1番目のコマンドX1Aに対する暗号化処理で生成した暗号化コマンドX1Bとの排他的論理和演算を行うことによって、合成データを生成する。次に、当該合成データを暗号化することにより、暗号化コマンドX2Bを生成する。次に、暗号化コマンドX2Bをセキュリティ制御回路21に送信するとともに、暗号化コマンドX2Bをカウンタ55の初期値(カウンタ値C21)として設定する。
【0102】
セキュリティ制御回路21は、受信した暗号化コマンドX2Bを復号することにより、復号データを生成する。次に、当該復号データと、1番目の暗号化コマンドX1Bに対する復号処理で生成した暗号化コマンドX1B’との排他的論理和演算を行うことによって、復号コマンドX2Aを生成する。次に、復号コマンドX2Aと暗号化コマンドX1B’との排他的論理和演算を行うことによって、合成データを生成する。次に、当該合成データを暗号化することにより、暗号化コマンドX2B’を生成する。次に、暗号化コマンドX2Bと暗号化コマンドX2B’とを比較することにより、通信装置2の認証を行う。通信装置2が正規である場合には、次に、復号コマンドX2Aに基づいてメモリアレイ22からコンテンツデータY2を読み出すとともに、暗号化コマンドX2B’をカウンタ75の初期値(カウンタ値C21)として設定する。
【0103】
図11を参照して、セキュリティ制御回路21は、カウンタ値C21に基づいて生成したストリームデータを暗号化することによって、暗号化ストリームデータを生成する。次に、当該暗号化ストリームデータと、コンテンツデータY2のうち1番目のブロックに相当するコンテンツデータY21Aとの排他的論理和演算を行うことによって、暗号化コンテンツデータY21Bを生成する。次に、暗号化コンテンツデータY21Bをセキュリティ制御回路12に送信する。
【0104】
セキュリティ制御回路12は、カウンタ値C21に基づいて生成したストリームデータを暗号化することによって、暗号化ストリームデータを生成する。次に、当該暗号化ストリームデータと、受信した暗号化コンテンツデータY21Bとの排他的論理和演算を行うことによって、復号コンテンツデータY21Aを生成する。次に、復号コンテンツデータY21Aをマイクロプロセッサ11に入力する。メモリアレイ22から読み出されたコンテンツデータY2のうち2番目以降のブロックに相当するコンテンツデータY22A〜Y2NAに関しても、カウンタ値C2を順次更新しながら上記と同様の処理が繰り返されることにより、2番目のコマンドX2に対応する2番目のコンテンツデータY2の読み出し処理が完了する。
【0105】
3番目以降のリードコマンドに対しても上記と同様の処理が繰り返されることにより、メモリアレイ22から所望のコンテンツデータが読み出される。
【0106】
<パターンP2が選択された場合の処理>
図12〜15は、パターンP2が選択された場合のセキュリティ制御回路12,21の処理内容を順に示す図である。
図12には、セキュリティ制御回路12による1番目のコマンドX1に対する暗号化処理と、セキュリティ制御回路21によるコマンドX1に対する復号処理とが示されている。
図13には、セキュリティ制御回路21による1番目のコンテンツデータY1に対する暗号化処理と、セキュリティ制御回路12によるコンテンツデータY1に対する復号処理とが示されている。
図14には、セキュリティ制御回路12による2番目のコマンドX2に対する暗号化処理と、セキュリティ制御回路21によるコマンドX2に対する復号処理とが示されている。
図15には、セキュリティ制御回路21による2番目のコンテンツデータY2に対する暗号化処理と、セキュリティ制御回路12によるコンテンツデータY2に対する復号処理とが示されている。
【0107】
図3を参照して、上記の通り制御回路44は、暗号制御コマンドに含まれる選択情報を抽出し、その選択情報を暗号モード制御回路41に転送する。
【0108】
図3,4を参照して、次に暗号モード制御回路41は、選択情報で示される暗号パターンに準拠して、セレクタ58,59を制御する。パターンP2では暗号化対象のコマンドXにストリーム暗号が適用されるため、暗号モード制御回路41は、セレクタ58,59のフラグを「1」に設定する。
【0109】
また、
図5を参照して、上記の通り制御回路64は、暗号制御コマンドに含まれる選択情報を抽出し、その選択情報を暗号モード制御回路61に転送する。
【0110】
図5,6を参照して、次に暗号モード制御回路61は、選択情報で示される暗号パターンに準拠して、セレクタ77,78を制御する。パターンP2では復号対象のコマンドXにストリーム暗号が適用されるため、暗号モード制御回路61は、セレクタ77,78のフラグを「1」に設定する。
【0111】
図1を参照して、次にマイクロプロセッサ11は、リードコマンドであるコマンドX1Aを発行する。
【0112】
図4,12を参照して、コマンドX1Aは、演算回路53に入力される。また、制御回路44は、秘密状態で保持されている任意の定数値を、カウンタ55の初期値(カウンタ値C11)として設定する。カウンタ55は、カウンタ値C11に基づいて生成したストリームデータを、セレクタ58を介して暗号化回路52に入力する。暗号化回路52は、入力されたストリームデータを暗号化することによって暗号化ストリームデータを生成し、当該暗号化ストリームデータを演算回路53に入力する。
【0113】
次に演算回路53は、コマンドX1Aと当該暗号化ストリームデータとの排他的論理和演算を行うことによって、暗号化コマンドX1Bを生成する。
【0114】
図3,4を参照して、暗号化コマンドX1Bは、セレクタ59を介して制御回路44に入力される。次に制御回路44は、暗号化コマンドX1Bをセキュリティ制御回路21に送信する。
【0115】
次に暗号モード制御回路41は、選択情報で示される暗号パターンに準拠して、セレクタ57〜59を制御する。パターンP2では復号対象のコンテンツデータYにブロック暗号が適用されるため、暗号モード制御回路41は、セレクタ57〜59のフラグを「0」に設定する。
【0116】
図5を参照して、セキュリティ制御回路21が受信した暗号化コマンドX1Bは、暗号化・復号回路62に入力される。
【0117】
図6,12を参照して、暗号化コマンドX1Bは、演算回路73に入力される。また、制御回路64は、カウンタ55の初期値として設定した上記の定数値を、カウンタ75の初期値(カウンタ値C11)として設定する。カウンタ75は、カウンタ値C11に基づいて生成したストリームデータを、セレクタ78を介して暗号化回路72に入力する。暗号化回路72は、入力されたストリームデータを暗号化することによって暗号化ストリームデータを生成し、当該暗号化ストリームデータを演算回路73に入力する。
【0118】
次に演算回路73は、暗号化コマンドX1Bと当該暗号化ストリームデータとの排他的論理和演算を行うことによって、復号コマンドX1Aを生成する。
図5,6を参照して、復号コマンドX1Aは、演算回路73からセレクタ77を介して制御回路64に入力される。
【0119】
次に制御回路64は、復号コマンドX1Aに基づいて、メモリアレイ22から所望のコンテンツデータY1を読み出す。
【0120】
また、暗号モード制御回路61は、選択情報で示される暗号パターンに準拠して、セレクタ78,79を制御する。パターンP2では暗号化対象のコンテンツデータYにブロック暗号が適用されるため、暗号モード制御回路61は、セレクタ78,79のフラグを「0」に設定する。
【0121】
図5,6,13を参照して、次に制御回路64は、メモリアレイ22から読み出したコンテンツデータY1のうち1番目のブロックに相当するコンテンツデータY11Aを、演算回路76に入力する。また、秘密状態で保持されている所定の初期化ベクトルIVが、演算回路76に入力される。演算回路76は、排他的論理和演算を行うことによって、コンテンツデータY11Aと初期化ベクトルIVとの合成データを生成する。当該合成データは、セレクタ78を介して暗号化回路72に入力される。
【0122】
次に暗号化回路72は、入力された合成データを暗号化することにより、暗号化コンテンツデータY11Bを生成する。暗号化コンテンツデータY11Bは、セレクタ79を介して出力され、暗号化・復号回路62からセキュリティ制御回路12に送信される。
【0123】
図3を参照して、セキュリティ制御回路12が受信した暗号化コンテンツデータY11Bは、制御回路44を介して暗号化・復号回路42及び記憶装置認証回路43に入力される。
【0124】
図4,13を参照して、暗号化コンテンツデータY11Bは、復号回路51に入力される。復号回路51は、暗号化コンテンツデータY11Bを復号することにより、復号データを生成する。当該復号データは、演算回路54に入力される。
【0125】
また、上記の初期化ベクトルIVと同一の初期化ベクトルIVが、演算回路54に入力される。演算回路54は、復号データと初期化ベクトルIVとの排他的論理和演算を行うことによって、復号コンテンツデータY11Aを生成する。
図3,4を参照して、復号コンテンツデータY11Aは、演算回路54からセレクタ57を介して制御回路44に入力される。
【0126】
次に制御回路44は、復号コンテンツデータY11Aを演算回路56に入力する。また、上記の初期化ベクトルIVと同一の初期化ベクトルIVが、演算回路56に入力される。演算回路56は、排他的論理和演算を行うことによって、復号コンテンツデータY11Aと初期化ベクトルIVとの合成データを生成する。当該合成データは、セレクタ58を介して暗号化回路52に入力される。
【0127】
次に暗号化回路52は、入力された合成データを暗号化することにより、暗号化コンテンツデータY11B’を生成する。
【0128】
図3,4を参照して、暗号化コンテンツデータY11B’は、セレクタ59を介して記憶装置認証回路43に入力される。
【0129】
次に記憶装置認証回路43は、制御回路44から入力された暗号化コンテンツデータY11Bと、暗号化・復号回路42から入力された暗号化コンテンツデータY11B’とを比較することにより、半導体記憶装置3の認証を行う。具体的に記憶装置認証回路43は、暗号化コンテンツデータY11Bと暗号化コンテンツデータY11B’とが同一である場合には半導体記憶装置3を正規と認証し、一方、暗号化コンテンツデータY11Bと暗号化コンテンツデータY11B’とが同一でない場合には半導体記憶装置3を不正と認証する。記憶装置認証回路43は、認証の結果を制御回路44に入力する。
【0130】
制御回路44は、半導体記憶装置3が不正である旨の認証結果を受領した場合には、半導体記憶装置3に対する一切のデータの送受信を停止する。つまり、それ以降は、半導体記憶装置3からのコンテンツデータの受信を拒否し、また、半導体記憶装置3へのコマンドの送信を禁止する。
【0131】
一方、半導体記憶装置3が正規である旨の認証結果を受領した場合には、制御回路44は、上記で演算回路54から入力された復号コンテンツデータY11Aを、マイクロプロセッサ11に転送する。
【0132】
図13を参照して、メモリアレイ22から読み出されたコンテンツデータY1のうち2番目以降のブロックに相当するコンテンツデータY12A〜Y1NAに関しても、上記と同様の処理が繰り返されることにより、1番目のコマンドX1に対応する1番目のコンテンツデータY1の読み出し処理が完了する。なお、2番目以降のブロックに対する処理においては、セキュリティ制御回路21は、初期化ベクトルIVに代えて、前回のブロックに対する処理で生成した暗号化コンテンツデータY11B〜Y1(N−1)Bを使用する。同様に、セキュリティ制御回路12は、初期化ベクトルIVに代えて、前回のブロックに対する処理で生成した暗号化コンテンツデータY11B’〜Y1(N−1)B’を使用する。
【0133】
マイクロプロセッサ11によって2番目のリードコマンド(コマンドX2A)が発行されると、上記と同様の処理が繰り返されることにより、メモリアレイ22から2番目のコンテンツデータY2(コンテンツデータY21A〜Y2NA)が読み出される。
【0134】
図14を参照して、セキュリティ制御回路12は、カウンタ値C12に基づいて生成したストリームデータを暗号化することによって、暗号化ストリームデータを生成する。次に、コマンドX2Aと当該暗号化ストリームデータとの排他的論理和演算を行うことによって、暗号化コマンドX2Bを生成する。次に、暗号化コマンドX2Bをセキュリティ制御回路21に送信する。
【0135】
セキュリティ制御回路21は、カウンタ値C12に基づいて生成したストリームデータを暗号化することによって、暗号化ストリームデータを生成する。次に、暗号化コマンドX2Bと当該暗号化ストリームデータとの排他的論理和演算を行うことによって、復号コマンドX2Aを生成する。次に、復号コマンドX2Aに基づいて、メモリアレイ22から所望のコンテンツデータY2を読み出す。
【0136】
図15を参照して、セキュリティ制御回路21は、メモリアレイ22から読み出したコンテンツデータY2のうち1番目のブロックに相当するコンテンツデータY21Aと、前回のアクセスに対する処理で最終ブロックに対応して生成した暗号化コンテンツデータY1NBとの排他的論理和演算を行うことによって、合成データを生成する。次に、当該合成データを暗号化することにより、暗号化コンテンツデータY21Bを生成する。次に、暗号化コンテンツデータY21Bをセキュリティ制御回路12に送信する。
【0137】
セキュリティ制御回路12は、受信した暗号化コンテンツデータY21Bを復号することにより、復号データを生成する。次に、当該復号データと、前回のアクセスに対する処理で最終ブロックに対応して生成した暗号化コンテンツデータY1NB’との排他的論理和演算を行うことによって、復号コンテンツデータY21Aを生成する。次に、復号コンテンツデータY21Aと暗号化コンテンツデータY1NB’との排他的論理和演算を行うことによって、合成データを生成する。次に、当該合成データを暗号化することにより、暗号化コンテンツデータY21B’を生成する。次に、暗号化コンテンツデータY21Bと暗号化コンテンツデータY21B’とを比較することにより、半導体記憶装置3の認証を行う。半導体記憶装置3が正規である場合には、次に、復号コンテンツデータY21Aを、マイクロプロセッサ11に転送する。メモリアレイ22から読み出されたコンテンツデータY2のうち2番目以降のブロックに相当するコンテンツデータY22A〜Y2NAに関しても、上記と同様の処理が繰り返されることにより、2番目のコマンドX2に対応する2番目のコンテンツデータY2の読み出し処理が完了する。
【0138】
3番目以降のリードコマンドに対しても上記と同様の処理が繰り返されることにより、メモリアレイ22から所望のコンテンツデータが読み出される。
【0139】
<パターンP3が選択された場合の処理>
パターンP3が選択された場合には、セキュリティ制御回路12は、
図8,10と同様の処理によってコマンドの暗号化処理を行い、セキュリティ制御回路21は、
図8,10と同様の処理によって暗号化コマンドの復号処理を行う。また、セキュリティ制御回路21は、通信装置2から暗号化コマンドを受信する毎に、受信した暗号化コマンドと、自身が生成した暗号化コマンドとに基づいて、通信装置2の認証を行う。
【0140】
また、パターンP3が選択された場合には、セキュリティ制御回路21は、
図13,15と同様の処理によってコンテンツデータの暗号化処理を行い、セキュリティ制御回路12は、
図13,15と同様の処理によって暗号化コンテンツデータの復号処理を行う。また、セキュリティ制御回路12は、半導体記憶装置3から暗号化コンテンツデータを受信する毎に、受信した暗号化コンテンツデータと、自身が生成した暗号化コンテンツデータとに基づいて、半導体記憶装置3の認証を行う。
【0141】
<まとめ>
本実施の形態に係る情報処理システム1によれば、パターンP2,P3が選択された場合、暗号化回路52(第1の暗号化部)は、復号回路51(第1の復号部)が生成した復号コンテンツデータを暗号化することにより、暗号化コンテンツデータを生成する。そして、記憶装置認証回路43は、半導体記憶装置3から受信した暗号化コンテンツデータと、暗号化回路52が生成した暗号化コンテンツデータとに基づいて、半導体記憶装置3を認証する。このように、秘匿技術と認証技術とを別個独立に実装するのではなく、秘匿技術を用いたセキュア通信の過程で生成される暗号化コンテンツデータに基づいて、通信装置2が半導体記憶装置3の認証を行うことにより、秘匿技術と認証技術とを効率的に実装することが可能となる。
【0142】
また、本実施の形態に係る情報処理システム1によれば、パターンP1,P3が選択された場合、暗号化回路72(第2の暗号化部)は、復号回路71(第2の復号部)が生成した復号コマンドを暗号化することにより、暗号化コマンドを生成する。そして、通信装置認証回路63は、通信装置2から受信した暗号化コマンドと、暗号化回路72が生成した暗号化コマンドとに基づいて、通信装置2を認証する。このように、秘匿技術と認証技術とを別個独立に実装するのではなく、秘匿技術を用いたセキュア通信の過程で生成される暗号化コマンドに基づいて、半導体記憶装置3が通信装置2の認証を行うことにより、秘匿技術と認証技術とを効率的に実装することが可能となる。
【0143】
また、本実施の形態に係る情報処理システム1によれば、暗号モード制御回路41(第1の暗号モード制御部)は、暗号化・復号回路42の動作モードとして、ストリーム暗号モードとブロック暗号モードとを選択する。また、暗号モード制御回路61(第2の暗号モード制御部)は、暗号化・復号回路62の動作モードとして、ストリーム暗号モードとブロック暗号モードとを選択する。このように、暗号モード制御回路41,61によって、ストリーム暗号モードとブロック暗号モードとを選択することにより、状況や目的に応じて適切な暗号処理を行うことができる。例えば、速い処理速度が要求される状況では、ストリーム暗号モードを選択することによって高速処理を実現でき、また、高い攻撃耐性が要求される状況では、ブロック暗号モードを選択することによって高い攻撃耐性を実現できる。その結果、処理速度の向上と攻撃耐性の向上とを両立することが可能となる。
【0144】
また、記憶装置認証回路43は、コンテンツデータに関してブロック暗号モードが選択された場合(つまりパターンP2,P3が選択された場合)に、半導体記憶装置3の認証を行う。これにより、記憶装置認証回路43は、今回のブロックに関する認証処理において暗号化回路52が生成した暗号化コンテンツデータを、次回のブロックに関する認証処理において使用することができ、その結果、累積メッセージ認証コードを用いて半導体記憶装置3の認証を行うことが可能となる。
【0145】
また、本実施の形態に係る情報処理システム1によれば、パターンP2が選択された場合には、通信装置2から半導体記憶装置3に送信されるコマンドはストリーム暗号によって暗号化され、半導体記憶装置3から通信装置2に送信されるコンテンツデータはブロック暗号によって暗号化される。このように、コマンドとコンテンツデータとで暗号モードを異ならせることにより、攻撃者による解析が困難となるため、攻撃耐性をさらに向上することが可能となる。
【0146】
また、本実施の形態に係る情報処理システム1によれば、
図13,15に示したように、記憶装置認証回路43は、半導体記憶装置3から受信した全てのブロックに対応して半導体記憶装置3の認証を行う。従って、通信装置2が所望のブロックを半導体記憶装置3から受信した時点で、半導体記憶装置3から通信装置2へのブロックの送信が停止された場合(つまり通信装置2が最終ブロックを受信していない場合)であっても、記憶装置認証回路43によって半導体記憶装置3の認証を行うことが可能となる。
【0147】
また、本実施の形態に係る情報処理システム1によれば、記憶装置認証回路43が半導体記憶装置3を不正と認証した場合、通信装置2は、半導体記憶装置3に対するデータの送受信を停止する。これにより、通信装置2は、不正な半導体記憶装置3に対して、コマンドの送信及びコンテンツデータの受信を行わないため、不正な半導体記憶装置の使用を防止することが可能となる。
【0148】
また、本実施の形態に係る情報処理システム1によれば、通信装置認証回路63は、コマンドに関してブロック暗号モードが選択された場合(つまりパターンP1,P3が選択された場合)に、通信装置2の認証を行う。これにより、通信装置認証回路63は、今回のコマンドに関する認証処理において暗号化回路72が生成した暗号化コマンドを、次回のコマンドに関する認証処理において使用することができ、その結果、累積メッセージ認証コードを用いて通信装置2の認証を行うことが可能となる。
【0149】
また、本実施の形態に係る情報処理システム1によれば、パターンP1が選択された場合には、通信装置2から半導体記憶装置3に送信されるコマンドはブロック暗号によって暗号化され、半導体記憶装置3から通信装置2に送信されるコンテンツデータはストリーム暗号によって暗号化される。このように、コマンドとコンテンツデータとで暗号モードを異ならせることにより、攻撃者による解析が困難となるため、攻撃耐性をさらに向上することが可能となる。
【0150】
また、本実施の形態に係る情報処理システム1によれば、通信装置認証回路63は、通信装置2を正規と認証した場合、暗号化回路72が生成した暗号化コマンドに基づいて、コンテンツデータのストリーム暗号に用いるカウンタ75の初期値を設定する。これにより、コンテンツデータのアドレスが異なるアクセス毎にカウンタ75の初期値を異ならせることができるため、攻撃耐性を向上することが可能となる。
【0151】
また、本実施の形態に係る情報処理システム1によれば、通信装置認証回路63が通信装置2を不正と認証した場合、半導体記憶装置3は、通信装置2に対するデータの送受信を停止する。これにより、半導体記憶装置3は、不正な通信装置2に対して、コマンドの受信及びコンテンツデータの送信を行わないため、不正な通信装置2の使用を防止することが可能となる。
【0152】
また、本実施の形態に係る情報処理システム1によれば、パターンP3が選択された場合には、記憶装置認証回路43は半導体記憶装置3の認証を行い、通信装置認証回路63は通信装置2の認証を行う。これにより、通信装置2と半導体記憶装置3との相互認証を行うことが可能となる。しかも、記憶装置認証回路43は、今回のブロックに関する認証処理において暗号化回路52が生成した暗号化コンテンツデータを、次回のブロックに関する認証処理において使用することができ、その結果、累積メッセージ認証コードを用いて半導体記憶装置3の認証を行うことが可能となる。また、通信装置認証回路63は、今回のブロックに関する認証処理において暗号化回路72が生成した暗号化コマンドを、次回のブロックに関する認証処理において使用することができ、その結果、累積メッセージ認証コードを用いて通信装置2の認証を行うことが可能となる。
【0153】
<変形例1>
上記実施の形態の例では、パターンP2,P3が選択された場合、
図13,15に示したように記憶装置認証回路43は、半導体記憶装置3から受信する全てのブロックに対応して半導体記憶装置3の認証を行った。この例に限らず、記憶装置認証回路43は、半導体記憶装置3から受信する全てのブロックのうちの特定のブロックのみに対応して、半導体記憶装置3の認証を行ってもよい。例えば、各アクセスにおける先頭ブロックのみ、最終ブロックのみ、又は任意の中間ブロックのみ(あるいはこれらの組合せ)に対応して、半導体記憶装置3の認証を行ってもよい。
【0154】
本変形例に係る情報処理システム1によれば、記憶装置認証回路43は、半導体記憶装置3から受信した特定のブロックに対応して、半導体記憶装置3の認証を行う。従って、半導体記憶装置3から受信した全てのブロックに対応して半導体記憶装置3の認証を行う場合と比較すると、リソースを節約することが可能となる。
【0155】
<変形例2>
図16,17は、
図8,10に対応して、パターンP1が選択された場合のセキュリティ制御回路12,21の処理内容を示す図である。
【0156】
図16を参照して、
図8と同様に暗号化回路52は、コマンドX1Aと初期化ベクトルIVとの合成データを暗号化することにより、暗号化コマンドX1Bを生成する。
【0157】
次に制御回路44は、暗号化コマンドX1Bと、秘密状態で保持されている所定のパディングデータPD1とを排他的論理和演算によって合成することにより、合成データX1PBを生成する。そして、合成データX1PBをカウンタ55の初期値(カウンタ値C11)として設定する。
【0158】
また、
図8と同様に通信装置認証回路63は、セキュリティ制御回路12から入力された暗号化コマンドX1Bと、暗号化・復号回路62から入力された暗号化コマンドX1B’とを比較することにより、通信装置2の認証を行う。
【0159】
通信装置2が正規である場合、通信装置認証回路63は、暗号化コマンドX1B’と、上記と同様のパディングデータPD1とを排他的論理和演算によって合成することにより、合成データX1PB’を生成する。そして、合成データX1PB’をカウンタ75の初期値(カウンタ値C11)として設定する。
【0160】
図17を参照して、
図8と同様に暗号化回路52は、コマンドX2Aと合成データX1PBとの合成データを暗号化することにより、暗号化コマンドX2Bを生成する。
【0161】
次に制御回路44は、暗号化コマンドX2Bと、パディングデータPD1を更新したパディングデータPD2とを排他的論理和演算によって合成することにより、合成データX2PBを生成する。そして、合成データX2PBをカウンタ55の初期値(カウンタ値C21)として設定する。
【0162】
また、
図8と同様に通信装置認証回路63は、セキュリティ制御回路12から入力された暗号化コマンドX2Bと、暗号化・復号回路62から入力された暗号化コマンドX2B’とを比較することにより、通信装置2の認証を行う。
【0163】
通信装置2が正規である場合、通信装置認証回路63は、暗号化コマンドX2B’と、上記と同様のパディングデータPD2とを排他的論理和演算によって合成することにより、合成データX2PB’を生成する。そして、合成データX2PB’をカウンタ75の初期値(カウンタ値C21)として設定する。
【0164】
本変形例に係る情報処理システム1によれば、通信装置認証回路63は、暗号化回路72が生成した暗号化コマンドX1B’と、所定のパディングデータPD1とを合成した合成データX1PB’を、カウンタ75の初期値として設定する。このように、暗号化コマンドX1B’そのものをカウンタ75の初期値として設定するのではなく、暗号化コマンドX1B’とパディングデータPD1との合成データX1PB’をカウンタ75の初期値として設定することにより、攻撃耐性をさらに向上することが可能となる。
【0165】
また、本変形例に係る情報処理システム1によれば、通信装置認証回路63は、通信装置2から半導体記憶装置3へのアクセス毎にパディングデータPD1,PD2を変更する。これにより、コンテンツデータのアドレスが同一の場合であっても、アクセス毎にカウンタ75の初期値を異ならせることができるため、攻撃耐性をさらに向上することが可能となる。