上記の通り、なりすまし防止技術を用いたセキュア通信は、改ざん防止技術を用いたセキュア通信に比べてセキュリティレベルが高い。
しかし、なりすまし防止技術を用いたセキュア通信を実現するためには、改ざん防止技術を用いてそれを実現する場合と比較すると、実装すべき回路規模が大きくなってコストが増大するとともに、処理内容が複雑化してレイテンシが大きくなるという問題がある。
本発明はかかる事情に鑑みて成されたものであり、通信装置とそれに接続される記憶装置とを備える情報処理システムにおいて、コストの増大やレイテンシの増大を伴うことなく、なりすまし防止技術を用いたセキュア通信と同程度のセキュリティレベルを実現することが可能な情報処理システムを得ることを目的とするものである。
本発明の第1の態様に係る情報処理システムは、通信装置と、前記通信装置に接続され、コンテンツデータが記憶された記憶部を有する記憶装置と、を備える情報処理システムであって、前記記憶装置は、前記通信装置から受信したアクセスコマンドに応答して前記通信装置に送信するコンテンツデータに基づいて、第1のセキュリティパラメータを生成し、前記第1のセキュリティパラメータと、前記通信装置に前記記憶装置を認証させるための第1の認証コードとを合成することによって、合成パラメータを生成し、前記コンテンツデータと前記合成パラメータとを含む合成パラメータ付きコンテンツデータを、前記通信装置に送信し、前記通信装置は、前記記憶装置から前記合成パラメータ付きコンテンツデータを受信し、前記合成パラメータ付きコンテンツデータに含まれる前記合成パラメータから、前記第1のセキュリティパラメータと前記第1の認証コードとを抽出し、前記合成パラメータから抽出した前記第1のセキュリティパラメータに基づいて、前記合成パラメータ付きコンテンツデータに含まれる前記コンテンツデータの完全性を評価し、前記合成パラメータから抽出した前記第1の認証コードに基づいて、前記記憶装置の正当性を認証することを特徴とするものである。
第1の態様に係る情報処理システムによれば、記憶装置は、通信装置から受信したアクセスコマンドに応答して通信装置に送信するコンテンツデータに基づいて、第1のセキュリティパラメータを生成し、第1のセキュリティパラメータと、通信装置に記憶装置を認証させるための第1の認証コードとを合成することによって、合成パラメータを生成し、コンテンツデータと合成パラメータとを含む合成パラメータ付きコンテンツデータを、通信装置に送信する。また、通信装置は、記憶装置から合成パラメータ付きコンテンツデータを受信し、合成パラメータ付きコンテンツデータに含まれる合成パラメータから、第1のセキュリティパラメータと第1の認証コードとを抽出する。そして、合成パラメータから抽出した第1のセキュリティパラメータに基づいて、合成パラメータ付きコンテンツデータに含まれるコンテンツデータの完全性を評価し、また、合成パラメータから抽出した第1の認証コードに基づいて、記憶装置の正当性を認証する。このように通信装置は、コンテンツデータの完全性の評価と、記憶装置の正当性の認証とを実行できる。従って、なりすまし防止技術を実現するための大規模な専用回路の実装が不要になるとともに、当該専用回路を用いた複雑な処理も不要となるため、コストの増大やレイテンシの増大を伴うことなく、なりすまし防止技術を用いたセキュア通信と同程度のセキュリティレベルを実現することが可能となる。
本発明の第2の態様に係る情報処理システムは、第1の態様に係る情報処理システムにおいて特に、前記通信装置は、前記記憶装置が生成する前記第1の認証コードと同一の第2の認証コードを生成し、前記合成パラメータと前記第2の認証コードとに基づいて、前記合成パラメータから前記第1のセキュリティパラメータを抽出し、前記合成パラメータ付きコンテンツデータに含まれる前記コンテンツデータに基づいて、第2のセキュリティパラメータを生成し、抽出した前記第1のセキュリティパラメータと、生成した前記第2のセキュリティパラメータとを比較することによって、前記コンテンツデータの完全性を評価することを特徴とするものである。
第2の態様に係る情報処理システムによれば、通信装置は、記憶装置が生成する第1の認証コードと同一の第2の認証コードを生成し、合成パラメータと第2の認証コードとに基づいて、合成パラメータから第1のセキュリティパラメータを抽出する。また、通信装置は、合成パラメータ付きコンテンツデータに含まれるコンテンツデータに基づいて、第2のセキュリティパラメータを生成する。そして、抽出した第1のセキュリティパラメータと、生成した第2のセキュリティパラメータとを比較することによって、コンテンツデータの完全性を評価する。記憶装置から通信装置に送信されたコンテンツデータが改ざんされている場合には、記憶装置が生成した第1のセキュリティパラメータ(つまり合成パラメータから抽出した第1のセキュリティパラメータ)と、通信装置が生成した第2のセキュリティパラメータとは一致しない。従って、抽出した第1のセキュリティパラメータと、生成した第2のセキュリティパラメータとを比較することによって、コンテンツデータが改ざんされているか否かを簡易かつ確実に評価することが可能となる。
本発明の第3の態様に係る情報処理システムは、第2の態様に係る情報処理システムにおいて特に、前記記憶装置は、前記第1のセキュリティパラメータと前記第1の認証コードとの排他的論理和演算によって、前記合成パラメータを生成し、前記通信装置は、前記合成パラメータと前記第2の認証コードとの排他的論理和演算によって、前記合成パラメータから前記第1のセキュリティパラメータを抽出することを特徴とするものである。
第3の態様に係る情報処理システムによれば、記憶装置は、第1のセキュリティパラメータと第1の認証コードとの排他的論理和演算によって、合成パラメータを生成する。そして、通信装置は、合成パラメータと第2の認証コードとの排他的論理和演算によって、合成パラメータから第1のセキュリティパラメータを抽出する。このように、通信装置が第1の認証コードと同一の第2の認証コードを生成し、合成パラメータと第2の認証コードとの排他的論理和演算を行うことによって、合成パラメータから第1のセキュリティパラメータを簡易かつ正確に抽出することが可能となる。
本発明の第4の態様に係る情報処理システムは、第1〜第3のいずれか一つの態様に係る情報処理システムにおいて特に、前記通信装置は、前記記憶装置が生成する前記第1の認証コードと同一の第2の認証コードを生成し、前記合成パラメータ付きコンテンツデータに含まれる前記コンテンツデータに基づいて、第2のセキュリティパラメータを生成し、前記合成パラメータと前記第2のセキュリティパラメータとに基づいて、前記合成パラメータから前記第1の認証コードを抽出し、抽出した前記第1の認証コードと、生成した前記第2の認証コードとを比較することによって、前記記憶装置の正当性を認証することを特徴とするものである。
第4の態様に係る情報処理システムによれば、通信装置は、記憶装置が生成する第1の認証コードと同一の第2の認証コードを生成する。また、通信装置は、合成パラメータ付きコンテンツデータに含まれるコンテンツデータに基づいて、第2のセキュリティパラメータを生成し、合成パラメータと第2のセキュリティパラメータとに基づいて、合成パラメータから第1の認証コードを抽出する。そして、抽出した第1の認証コードと、生成した第2の認証コードとを比較することによって、記憶装置の正当性を認証する。記憶装置が不正である場合には、記憶装置が生成した第1の認証コード(つまり合成パラメータから抽出した第1の認証コード)と、通信装置が生成した第2の認証コードとは一致しない。従って、抽出した第1の認証コードと、生成した第2の認証コードとを比較することによって、記憶装置が正当であるか不正であるかを簡易かつ確実に認証することが可能となる。
本発明の第5の態様に係る情報処理システムは、第4の態様に係る情報処理システムにおいて特に、前記記憶装置は、前記第1のセキュリティパラメータと前記第1の認証コードとの排他的論理和演算によって、前記合成パラメータを生成し、前記通信装置は、前記合成パラメータと前記第2のセキュリティパラメータとの排他的論理和演算によって、前記合成パラメータから前記第1の認証コードを抽出することを特徴とするものである。
第5の態様に係る情報処理システムによれば、記憶装置は、第1のセキュリティパラメータと第1の認証コードとの排他的論理和演算によって、合成パラメータを生成する。そして、通信装置は、合成パラメータと第2のセキュリティパラメータとの排他的論理和演算によって、合成パラメータから第1の認証コードを抽出する。このように、通信装置が第1のセキュリティパラメータと同一の第2のセキュリティパラメータを生成し、合成パラメータと第2のセキュリティパラメータとの排他的論理和演算を行うことによって、合成パラメータから第1の認証コードを簡易かつ正確に抽出することが可能となる。
本発明の第6の態様に係る情報処理システムは、第1〜第5のいずれか一つの態様に係る情報処理システムにおいて特に、前記通信装置は、ソフトウェア処理によって前記情報処理システムを制御する主制御部と、前記主制御部とは別に実装され、ハードウェア処理によって前記記憶装置を制御する第1の制御回路と、を有し、前記記憶装置は、前記記憶部を制御する第2の制御回路をさらに有し、前記アクセスコマンドの発行は、前記主制御部が実行し、前記合成パラメータ付きコンテンツデータの受信と、前記第1のセキュリティパラメータ及び前記第1の認証コードの抽出と、前記コンテンツデータの完全性の評価と、前記記憶装置の正当性の認証とは、前記第1の制御回路が実行し、前記アクセスコマンドの受信と、前記第1のセキュリティパラメータの生成と、前記合成パラメータの生成と、前記合成パラメータ付きコンテンツデータの生成及び送信とは、前記第2の制御回路が実行することを特徴とするものである。
第6の態様に係る情報処理システムによれば、合成パラメータ付きコンテンツデータの受信と、第1のセキュリティパラメータ及び第1の認証コードの抽出と、コンテンツデータの完全性の評価と、記憶装置の正当性の認証とは、第1の制御回路が実行する。また、アクセスコマンドの受信と、第1のセキュリティパラメータの生成と、合成パラメータの生成と、合成パラメータ付きコンテンツデータの生成及び送信とは、第2の制御回路が実行する。このように、通信装置によるコンテンツデータの完全性の評価及び記憶装置の正当性の認証の処理において、主制御部が実行する処理はアクセスコマンドの発行だけであり、合成パラメータの生成、合成パラメータからの第1のセキュリティパラメータ及び第1の認証コードの抽出、コンテンツデータの完全性の評価、及び記憶装置の正当性の認証等の本質的な処理は、第1の制御回路と第2の制御回路との間で実行される。従って、プログラム解析等によって主制御部の制御を改変するような攻撃を受けた場合であっても、第1の制御回路及び第2の制御回路によるハードウェア処理の内容が解析及び改変されない限り、攻撃者によってコンテンツデータの完全性の評価及び記憶装置の正当性の認証の処理が回避されることはない。その結果、主制御部の制御を改変するような攻撃を受けた場合であっても、コンテンツデータが改ざんされることや、記憶装置からコンテンツデータが不正に読み出されることを防止することが可能となる。
本発明の第7の態様に係る情報処理システムは、第6の態様に係る情報処理システムにおいて特に、前記第1の制御回路は、前記合成パラメータ付きコンテンツデータに含まれる前記コンテンツデータを前記主制御部に入力し、前記記憶装置を不正と判定した場合及び/又は前記コンテンツデータの完全性を否定した場合には、その旨の通知を前記主制御部に入力することを特徴とするものである。
第7の態様に係る情報処理システムによれば、第1の制御回路は、コンテンツデータが改ざんされているか否かに拘わらず、また記憶装置が正当であるか不正であるかに拘わらず、合成パラメータ付きコンテンツデータに含まれるコンテンツデータを主制御部に入力する。従って、コンテンツデータの完全性を評価する処理及び記憶装置の正当性を認証する処理の完了を待つことなく、受信したコンテンツデータを早期に主制御部に入力することが可能となる。また、第1の制御回路は、記憶装置を不正と判定した場合及び/又はコンテンツデータの完全性を否定した場合には、その旨の通知を主制御部に入力する。従って、主制御部は、第1の制御回路から入力されたコンテンツデータを破棄又は無効化する等の処理を実行することが可能となる。
本発明の第8の態様に係る情報処理システムは、第6の態様に係る情報処理システムにおいて特に、前記第1の制御回路は、前記記憶装置を不正と判定した場合及び/又は前記コンテンツデータの完全性を否定した場合には、前記合成パラメータ付きコンテンツデータに含まれる前記コンテンツデータを前記主制御部に入力しないことを特徴とするものである。
第8の態様に係る情報処理システムによれば、第1の制御回路は、記憶装置を不正と判定した場合及び/又はコンテンツデータの完全性を否定した場合には、合成パラメータ付きコンテンツデータに含まれるコンテンツデータを主制御部に入力しない。従って、改ざんされたコンテンツデータが主制御部に入力されることや、不正な記憶装置から読み出されたコンテンツデータが主制御部に入力されること等を防止することが可能となる。
本発明の第9の態様に係る情報処理システムは、第7又は第8の態様に係る情報処理システムにおいて特に、前記第1の制御回路はさらに、前記記憶装置を不正と判定した場合及び/又は前記コンテンツデータの完全性を否定した場合には、前記第1の制御回路と前記第2の制御回路との間での以後の通信を遮断することを特徴とするものである。
第9の態様に係る情報処理システムによれば、第1の制御回路は、記憶装置を不正と判定した場合及び/又はコンテンツデータの完全性を否定した場合には、第1の制御回路と第2の制御回路との間での以後の通信を遮断する。これにより、通信装置から記憶装置にアクセスコマンドが送信されることや、記憶装置から通信装置にコンテンツデータが送信されることが禁止される。その結果、記憶装置からコンテンツデータが不正に読み出されることや、記憶装置から読み出されたコンテンツデータが改ざんされて通信装置に送信されること等を防止することが可能となる。
本発明の第10の態様に係る情報処理システムは、第6〜第9のいずれか一つの態様に係る情報処理システムにおいて特に、前記第1の制御回路は、第1の数列を生成する第1の数列生成部と、前記第1の数列に基づいて前記第2の認証コードを生成する第1の認証制御部と、を含み、前記第2の制御回路は、前記第1の数列と同一の第2の数列を生成する第2の数列生成部と、前記第2の数列に基づいて前記第1の認証コードを生成する第2の認証制御部と、を含み、前記第1の認証制御部は、前記合成パラメータから抽出した前記第1の認証コードと、前記第1の数列に基づいて生成した前記第2の認証コードとが一致するか否かによって、前記記憶装置の正当性を認証することを特徴とするものである。
第10の態様に係る情報処理システムによれば、第1の認証制御部は、合成パラメータから抽出した第1の認証コードと、第1の数列に基づいて生成した第2の認証コードとが一致するか否かによって、記憶装置の正当性を認証する。記憶装置が不正である場合には、合成パラメータから抽出した第1の認証コードと、第1の数列に基づいて生成した第2の認証コードとは一致しない。従って、合成パラメータから抽出した第1の認証コードと、第1の数列に基づいて生成した第2の認証コードとが一致するか否かによって、記憶装置が正当であるか不正であるかを簡易かつ確実に認証することが可能となる。
本発明の第11の態様に係る情報処理システムは、第10の態様に係る情報処理システムにおいて特に、前記第2の認証制御部は、前記第2の数列を圧縮することにより、前記第1の認証コードを生成することを特徴とするものである。
第11の態様に係る情報処理システムによれば、第2の認証制御部は、第2の数列を圧縮することにより、第1の認証コードを生成する。従って、第2の数列のビット長が許容認証コード長を超える場合であっても、第2の数列を圧縮することによって、許容認証コード長に収まる第2の認証コードを生成することが可能となる。
本発明の第12の態様に係る情報処理システムは、第10又は第11の態様に係る情報処理システムにおいて特に、前記第1の数列生成部及び前記第2の数列生成部は、認証の処理毎に異なる前記第1の数列及び前記第2の数列をそれぞれ生成することを特徴とするものである。
第12の態様に係る情報処理システムによれば、第1の数列生成部及び第2の数列生成部は、認証の処理毎に異なる第1の数列及び第2の数列をそれぞれ生成する。その結果、第1の認証コード及び第2の認証コードは認証の処理毎に変更されるため、セキュリティ強度を向上することが可能となる。
本発明の第13の態様に係る情報処理システムは、第1〜第12のいずれか一つの態様に係る情報処理システムにおいて特に、前記通信装置は、前記記憶装置に前記通信装置を認証させるための第3の認証コードを前記アクセスコマンドに付加することによって、認証コード付きアクセスコマンドを生成し、前記認証コード付きアクセスコマンドを前記記憶装置に送信し、前記記憶装置は、前記通信装置から前記認証コード付きアクセスコマンドを受信し、前記認証コード付きアクセスコマンドに含まれる前記第3の認証コードに基づいて、前記通信装置の正当性を認証し、前記通信装置を正当と判定した場合には、前記認証コード付きアクセスコマンドに含まれる前記アクセスコマンドに基づいて、前記記憶部にアクセスすることを特徴とするものである。
第13の態様に係る情報処理システムによれば、通信装置は、記憶装置に通信装置を認証させるための第3の認証コードをアクセスコマンドに付加することによって、認証コード付きアクセスコマンドを生成し、当該認証コード付きアクセスコマンドを記憶装置に送信する。また、記憶装置は、通信装置から認証コード付きアクセスコマンドを受信し、認証コード付きアクセスコマンドに含まれる第3の認証コードに基づいて、通信装置の正当性を認証する。そして、通信装置を正当と判定した場合には、認証コード付きアクセスコマンドに含まれるアクセスコマンドに基づいて、記憶部にアクセスする。このように、記憶装置が第3の認証コードに基づいて通信装置の正当性を認証することにより、記憶装置と通信装置との相互認証を実現できるため、セキュリティ強度をさらに向上することが可能となる。
しかも、アクセスコマンドに第3の認証コードを付加した認証コード付きアクセスコマンドを用いることによって、記憶装置による通信装置の認証と、記憶部へのアクセスとを、共通の処理として実行することができる。従って、通信装置が記憶装置にアクセスコマンドを送信する前に、記憶装置が通信装置を認証する処理を別個に実行する必要がなく、認証の処理に伴うオーバーヘッドを低減できるため、コンテンツデータにアクセスするまでの所要時間を短縮することが可能となる。つまり、通信装置から記憶装置への認証コード付きアクセスコマンドの送信と、それに応答する記憶装置から通信装置への合成パラメータ付きコンテンツデータの送信との、一往復の通信によって、通信装置と記憶装置との相互認証を行うことができる。その結果、通信装置及び記憶装置それぞれからの往復通信(合計で二往復の通信)が必要となる一般的なチャレンジアンドレスポンス型の相互認証と比較すると、処理の高速化及び効率化を図ることが可能となる。
本発明の第14の態様に係る情報処理システムは、第13の態様に係る情報処理システムにおいて特に、前記記憶装置は、前記通信装置を不正と判定した場合には、前記アクセスコマンドに基づく前記記憶部へのアクセスを行わないことを特徴とするものである。
第14の態様に係る情報処理システムによれば、記憶装置は、通信装置を不正と判定した場合には、アクセスコマンドに基づく記憶部へのアクセスを行わない。従って、不正な通信装置から記憶装置にリードコマンドが送信された場合等であっても、記憶装置は記憶部からのコンテンツデータの読み出しを実行しない。その結果、記憶装置からコンテンツデータが不正に読み出されること等を防止することが可能となる。
本発明の第15の態様に係る情報処理システムは、第14の態様に係る情報処理システムにおいて特に、前記記憶装置はさらに、前記通信装置を不正と判定した場合には、以後に前記通信装置から送信されるアクセスコマンドを受信しないことを特徴とするものである。
第15の態様に係る情報処理システムによれば、記憶装置は、通信装置を不正と判定した場合には、以後に通信装置から送信されるアクセスコマンドを受信しない。従って、不正な通信装置から記憶装置にリードコマンドが送信された場合等であっても、記憶装置は当該リードコマンドを受信しない。その結果、記憶装置からコンテンツデータが不正に読み出されること等を防止することが可能となる。
本発明の第16の態様に係る情報処理システムは、第13〜第15のいずれか一つの態様に係る情報処理システムにおいて特に、前記通信装置から前記記憶装置に送信される前記認証コード付きアクセスコマンドに含まれる前記第3の認証コードと、当該アクセスコマンドに応答して前記記憶装置から前記通信装置に送信される前記合成パラメータを生成する際に使用される前記第1の認証コードとは、互いに異なることを特徴とするものである。
第16の態様に係る情報処理システムによれば、通信装置から記憶装置に送信される認証コード付きアクセスコマンドに含まれる第3の認証コードと、当該アクセスコマンドに応答して記憶装置から通信装置に送信される合成パラメータを生成する際に使用される第1の認証コードとは、互いに異なる。つまり、通信装置が記憶装置に送信する第3の認証コードと、通信装置が記憶装置から受信する第1の認証コードとは、互いに異なる。このように、送信時と受信時とで認証コードを異ならせることにより、セキュリティ強度をさらに向上することが可能となる。
本発明によれば、通信装置とそれに接続される記憶装置とを備える情報処理システムにおいて、コストの増大やレイテンシの増大を伴うことなく、なりすまし防止技術を用いたセキュア通信と同程度のセキュリティレベルを実現することが可能となる。
以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、異なる図面において同一の符号を付した要素は、同一又は相応する要素を示すものとする。
<実施の形態1>
図1は、本発明の実施の形態1に係る情報処理システム1の全体構成を概略的に示す図である。情報処理システム1は、通信装置2と半導体記憶装置3とを備えて構成されている。通信装置2は、例えばパーソナルコンピュータである。半導体記憶装置3は、例えば、通信装置2に着脱自在に接続可能なメモリカードである。あるいは、半導体記憶装置3に代えて、光ディスクや磁気ディスク等の任意の記憶装置を用いることもできる。
通信装置2は、ソフトウェア処理によって情報処理システム1を制御するメインシステムとしてのマイクロプロセッサ11(主制御部)と、マイクロプロセッサ11とは別に実装されたメモリコントローラ12(第1の制御回路)とを備えて構成されている。メモリコントローラ12は、ハードウェア処理によって半導体記憶装置3を制御する。
半導体記憶装置3は、画像、音声、テキスト、コード、管理情報等の任意のコンテンツデータが記憶されたメモリアレイ22(記憶部)と、メモリアレイ22を制御するメモリコントローラ21(第2の制御回路)とを備えて構成されている。メモリアレイ22は、例えばNAND型フラッシュメモリを用いて構成されている。但し、この例に限定されるものではなく、メモリアレイ22はNOR型フラッシュメモリ等を用いて構成されていても良い。
図2は、マイクロプロセッサ11の構成を示す図である。マイクロプロセッサ11は、バス47を介して相互に接続された、CPU41、演算器42、RAM43、ROM44、ブリッジ45、及びレジスタ46を備えて構成されている。
図3は、実施の形態1に係るメモリコントローラ12の構成を示す図である。図3の接続関係で示すように、メモリコントローラ12は、鍵生成部51(第1の数列生成部)、暗号化・復号部52、認証制御部53(第1の認証制御部)、マスク回路54,55、及びハッシュ回路56を備えて構成されている。鍵生成部51は、機密性の高い固定値の共有鍵Pを用いて、所定の乱数生成アルゴリズムによってランダムな数列(以下の例ではセッション鍵K)を生成する。鍵生成部51は、メモリコントローラ12がマイクロプロセッサ11からアクセスコマンドを受領する度に、毎回異なるセッション鍵K(ナンス)を生成する。
図4は、実施の形態1に係るメモリコントローラ21の構成を示す図である。図4の接続関係で示すように、メモリコントローラ21は、鍵生成部61(第2の数列生成部)、暗号化・復号部62、認証制御部63(第2の認証制御部)、及びハッシュ回路64を備えて構成されている。鍵生成部61は、鍵生成部51が保持している共有鍵Pと同一の共有鍵Pを用いて、鍵生成部51と同一の乱数生成アルゴリズムによって、鍵生成部51が生成するセッション鍵Kと同一のセッション鍵Kを生成する。鍵生成部61は、メモリコントローラ21がメモリコントローラ12から暗号化済みアクセスコマンドを受信する度に、毎回異なるセッション鍵Kを生成する。
以下、図3,4を参照して、本実施の形態に係る情報処理システム1の動作について説明する。前提として、暗号化・復号部52,62は、鍵生成部51,61が前回生成したセッション鍵K(N−1)によって初期化されているものとする。また、以下の例では、通信装置2がメモリアレイ22にアクセスするためのアクセスコマンドとして、リードコマンドを使用する場合について説明する。
まずマイクロプロセッサ11は、メモリアレイ22から所望のコンテンツデータを読み出すための所定バイト長のリードコマンドC0を発行する。図5は、リードコマンドC0を示す図である。リードコマンドC0は、それがリードコマンドであることを識別するための特定のコマンドIDと、メモリアレイ22内におけるコンテンツデータの格納場所を示すアドレスと、無意味なデータで埋められた未定義領域とを含む。
図3を参照して、メモリコントローラ12は、マイクロプロセッサ11からリードコマンドC0を受領し、受領したリードコマンドC0を暗号化・復号部52に入力する。
次に暗号化・復号部52は、現在設定されているセッション鍵K(N−1)を用いてリードコマンドC0を暗号化することにより、暗号化済みリードコマンドX0を生成する。そして、生成した暗号化済みリードコマンドX0をメモリコントローラ21に送信する。
次に鍵生成部51は、認証制御部53からの要求に従ってセッション鍵K(N)を生成する。セッション鍵K(N)は、暗号化・復号部52及び認証制御部53に入力される。
次に認証制御部53は、鍵生成部51が今回生成したセッション鍵K(N)によって、暗号化・復号部52を初期化する。
図4を参照して、メモリコントローラ21は、メモリコントローラ12から受信した暗号化済みリードコマンドX0を暗号化・復号部62に入力する。
次に暗号化・復号部62は、現在設定されているセッション鍵K(N−1)を用いて暗号化済みリードコマンドX0を復号することにより、リードコマンドC0を再生する。そして、再生したリードコマンドC0を認証制御部63に入力する。
次に認証制御部63は、リードコマンドC0から読み出しアドレスを抽出する。
次に鍵生成部61は、認証制御部63からの要求に従ってセッション鍵K(N)を生成する。セッション鍵K(N)は、暗号化・復号部62及び認証制御部63に入力される。
次に認証制御部63は、鍵生成部61が今回生成したセッション鍵K(N)によって、暗号化・復号部62を初期化する。
次に鍵生成部61は、認証制御部63からの要求に従って、次回のセッション鍵K(N+1)を生成する。セッション鍵K(N+1)は、認証制御部63に入力される。
次に認証制御部63は、リードコマンドC0から抽出した読み出しアドレスに基づいて、メモリアレイ22へのアクセスを行う。つまり、読み出しアドレスを示す制御信号Uによって、メモリアレイ22からコンテンツデータT0を読み出す。コンテンツデータT0は、認証制御部63及びハッシュ回路64に入力される。
次にハッシュ回路64は、予め定められた任意のハッシュ関数を用いてコンテンツデータT0のハッシュ値を算出する。そして、算出したハッシュ値HBを認証制御部63に入力する。
次に認証制御部63は、鍵生成部61から入力されたセッション鍵K(N+1)に基づいて、通信装置2が半導体記憶装置3の正当性を認証するための認証コードSB(N+1)を生成する。例えば、セッション鍵K(N+1)のビット長が所定の許容認証コード長以下である場合には、セッション鍵K(N+1)をそのまま認証コードSB(N+1)として使用する。一方、セッション鍵K(N+1)のビット長が許容認証コード長を超える場合には、セッション鍵K(N+1)を圧縮することによって、許容認証コード長に収まる認証コードSB(N+1)を生成する。一例として、許容認証コード長が例えば32ビットに設定されており、セッション鍵K(N+1)のビット長が128ビットである場合には、セッション鍵K(N+1)を、第127−96ビット、第95−64ビット、第63−32ビット、及び第31−0ビットの4つのビット群に分割し、先頭のビット群から順に次のビット群との間で排他的論理和演算を行う([127:96] ExOR [95:64] ExOR [63:32] ExOR [31:0])。これにより、128ビット長のセッション鍵K(N+1)から32ビット長の認証コードSB(N+1)を生成する。
次に認証制御部63は、ハッシュ値HBと認証コードSB(N+1)との排他的論和演算を行うことによって、ハッシュ値HBと認証コードSB(N+1)とが合成された合成パラメータVB(N+1)を生成する。
次に認証制御部63は、コンテンツデータT0に合成パラメータVB(N+1)を付加することによって、合成パラメータ付きコンテンツデータT1(N+1)を生成する。図6は、合成パラメータ付きコンテンツデータT1(N+1)の第1の例を示す図である。認証制御部63は、コンテンツデータT0の末尾に合成パラメータVB(N+1)を付加することにより、合成パラメータ付きコンテンツデータT1(N+1)を生成する。図7は、合成パラメータ付きコンテンツデータT1(N+1)の第2の例を示す図である。認証制御部63は、コンテンツデータT0の先頭に合成パラメータVB(N+1)を付加することにより、合成パラメータ付きコンテンツデータT1(N+1)を生成する。認証制御部63は、生成した合成パラメータ付きコンテンツデータT1(N+1)を暗号化・復号部62に入力する。
次に暗号化・復号部62は、現在設定されているセッション鍵K(N)を用いて合成パラメータ付きコンテンツデータT1(N+1)を暗号化することにより、暗号化済み合成パラメータ付きコンテンツデータY1(N+1)を生成する。そして、生成した暗号化済み合成パラメータ付きコンテンツデータY1(N+1)をメモリコントローラ12に送信する。
図3を参照して、メモリコントローラ12は、メモリコントローラ21から受信した暗号化済み合成パラメータ付きコンテンツデータY1(N+1)を暗号化・復号部52に入力する。
次に暗号化・復号部52は、現在設定されているセッション鍵K(N)を用いて暗号化済み合成パラメータ付きコンテンツデータY1(N+1)を復号することにより、合成パラメータ付きコンテンツデータT1(N+1)を再生する。そして、再生した合成パラメータ付きコンテンツデータT1(N+1)を認証制御部53に入力する。また、暗号化・復号部52は、合成パラメータ付きコンテンツデータT1(N+1)に含まれるコンテンツデータT0をハッシュ回路56に入力する。
次にハッシュ回路56は、ハッシュ回路64と同一のハッシュ関数を用いてコンテンツデータT0のハッシュ値を算出する。そして、算出したハッシュ値HAを認証制御部53に入力する。
次に鍵生成部51は、認証制御部53からの要求に従ってセッション鍵K(N+1)を生成する。セッション鍵K(N+1)は、認証制御部53に入力される。次に認証制御部53は、上述した認証制御部63と同様の処理によって、セッション鍵K(N+1)に基づいて認証コードSA(N+1)を生成する。
次に認証制御部53は、合成パラメータ付きコンテンツデータT1(N+1)に含まれる合成パラメータVB(N+1)から、ハッシュ値HBと認証コードSB(N+1)とを抽出する。具体的に認証制御部53は、合成パラメータ付きコンテンツデータT1(N+1)に含まれる合成パラメータVB(N+1)と、自身が生成した認証コードSA(N+1)との排他的論理和演算を行うことによって、合成パラメータVB(N+1)からハッシュ値HBを抽出する。また、合成パラメータ付きコンテンツデータT1(N+1)に含まれる合成パラメータVB(N+1)と、ハッシュ回路56から入力されたハッシュ値HAとの排他的論理和演算を行うことによって、合成パラメータVB(N+1)から認証コードSB(N+1)を抽出する。
次に認証制御部53は、合成パラメータVB(N+1)から抽出したハッシュ値HBと、ハッシュ回路56から入力されたハッシュ値HAとを比較することによって、コンテンツデータT0の完全性(データが一致すること。つまりデータが改ざんされていないこと)を評価する。具体的には、両ハッシュ値が一致している場合にはコンテンツデータT0の完全性を肯定し、両ハッシュ値が一致していない場合にはコンテンツデータT0の完全性を否定する。
次に認証制御部53は、合成パラメータVB(N+1)から抽出した認証コードSB(N+1)と、自身が生成した認証コードSA(N+1)とを比較することによって、半導体記憶装置3の正当性(データ送信者が正規であること。つまりなりすましでないこと)を認証する。具体的には、両認証コードが一致している場合には半導体記憶装置3を正当と認証し、両認証コードが一致していない場合には半導体記憶装置3を不正と認証する。
図6に示した第1の例によると、合成パラメータVBはコンテンツデータT0の末尾に付加されている。従って、認証制御部53は、合成パラメータVBよりも先にコンテンツデータT0を処理する。この場合、認証制御部53は、コンテンツデータT0の完全性を評価する処理、及び半導体記憶装置3の正当性を認証する処理の完了を待つことなく、合成パラメータ付きコンテンツデータT1(N+1)から抽出したコンテンツデータT0をマイクロプロセッサ11に入力する。その後、コンテンツデータT0の完全性を否定した場合及び/又は半導体記憶装置3を不正と判定した場合には、認証制御部53は、コンテンツデータT0が改ざんされている旨及び/又は半導体記憶装置3が不正である旨の通知をマイクロプロセッサ11に入力する。一方、コンテンツデータT0の完全性を肯定し、かつ半導体記憶装置3を正当と判定した場合には、認証制御部53は、当該通知をマイクロプロセッサ11に入力しない。
図7に示した第2の例によると、合成パラメータVBはコンテンツデータT0の先頭に付加されている。従って、認証制御部53は、コンテンツデータT0よりも先に合成パラメータVBを処理する。この場合、認証制御部53は、コンテンツデータT0の完全性を評価する処理、及び半導体記憶装置3の正当性を認証する処理を先に行い、コンテンツデータT0の完全性を否定した場合及び/又は半導体記憶装置3を不正と判定した場合には、合成パラメータ付きコンテンツデータT1(N+1)から抽出したコンテンツデータT0をマイクロプロセッサ11に入力しない。一方、コンテンツデータT0の完全性を肯定し、かつ半導体記憶装置3を正当と判定した場合には、認証制御部53は、合成パラメータ付きコンテンツデータT1(N+1)から抽出したコンテンツデータT0をマイクロプロセッサ11に入力する。
また、認証制御部53は、コンテンツデータT0の完全性を否定した場合及び/又は半導体記憶装置3を不正と判定した場合には、データをオール「0」又はオール「1」に置換する等のマスク処理を有効にする制御信号Dを、マスク回路54,55に入力する。これにより、通信装置2と半導体記憶装置3との間での以後の通信が遮断される。
認証制御部53,63は、マイクロプロセッサ11からリードコマンドC0が発行される度に、上記と同様の処理を行う。次回の処理では、認証制御部53は、合成パラメータVB(N+2)から抽出したハッシュ値HBと、ハッシュ回路56から入力されたハッシュ値HAとを比較することによって、コンテンツデータT0の完全性を評価する。また、合成パラメータVB(N+2)から抽出した認証コードSB(N+2)と、自身が生成した認証コードSA(N+2)とを比較することによって、半導体記憶装置3の正当性を認証する。
なお、以上の説明では、通信装置2がコンテンツデータT0の完全性を評価する処理及び半導体記憶装置3の正当性を認証する処理を、メモリコントローラ12のハードウェア処理によって実行したが、マイクロプロセッサ11のソフトウェア処理によって実行しても良い。
また、以上の説明では、コンテンツデータT0の完全性を評価するためのセキュリティパラメータとしてハッシュ値を用いたが、CRC(Cyclic Redundancy Check)値、MAC(Message Authentication Code)値、又は誤り訂正で用いられるエラーシンドローム等の、他のセキュリティパラメータを用いても良い。
<実施の形態2>
図8は、実施の形態2に係るメモリコントローラ12の構成を示す図である。また、図9は、実施の形態2に係るメモリコントローラ21の構成を示す図である。
以下、図8,9を参照して、本実施の形態に係る情報処理システム1の動作について説明する。前提として、暗号化・復号部52,62は、鍵生成部51,61が前回生成したセッション鍵K(N−1)によって初期化されているものとする。また、以下の例では、通信装置2がメモリアレイ22にアクセスするためのアクセスコマンドとして、リードコマンドを使用する場合について説明する。
まずマイクロプロセッサ11は、メモリアレイ22から所望のコンテンツデータを読み出すための所定バイト長のリードコマンドC0を発行する。
図8を参照して、メモリコントローラ12は、マイクロプロセッサ11からリードコマンドC0を受領し、受領したリードコマンドC0を認証制御部53に入力する。
次に鍵生成部51は、認証制御部53からの要求に従ってセッション鍵K(N)を生成する。セッション鍵K(N)は、暗号化・復号部52及び認証制御部53に入力される。
次に認証制御部53は、セッション鍵K(N)に基づいて、半導体記憶装置3が通信装置2の正当性を認証するための認証コードS(N)を生成する。例えば、セッション鍵K(N)のビット長が所定の許容認証コード長以下である場合には、セッション鍵K(N)をそのまま認証コードS(N)として使用する。一方、セッション鍵K(N)のビット長が許容認証コード長を超える場合には、セッション鍵K(N)を圧縮することによって、許容認証コード長に収まる認証コードS(N)を生成する。一例として、許容認証コード長がリードコマンドC0の未定義領域のビット長(例えば32ビット)に設定されており、セッション鍵K(N)のビット長が128ビットである場合には、セッション鍵K(N)を、第127−96ビット、第95−64ビット、第63−32ビット、及び第31−0ビットの4つのビット群に分割し、先頭のビット群から順に次のビット群との間で排他的論理和演算を行う([127:96] ExOR [95:64] ExOR [63:32] ExOR [31:0])。これにより、128ビット長のセッション鍵K(N)から32ビット長の認証コードS(N)を生成する。
次に認証制御部53は、リードコマンドC0に認証コードS(N)を付加することによって、認証コード付きリードコマンドC1(N)を生成する。図10は、認証コード付きリードコマンドC1(N)を示す図である。認証制御部53は、リードコマンドC0の未定義領域に含まれる無意味なデータを、認証コードS(N)に置き換えることにより、コマンドIDとアドレスと認証コードS(N)とを含む認証コード付きリードコマンドC1(N)を生成する。認証制御部53は、生成した認証コード付きリードコマンドC1(N)を暗号化・復号部52に入力する。
次に暗号化・復号部52は、現在設定されているセッション鍵K(N−1)を用いて認証コード付きリードコマンドC1(N)を暗号化することにより、暗号化済み認証コード付きリードコマンドX1(N)を生成する。そして、生成した暗号化済み認証コード付きリードコマンドX1(N)を、メモリコントローラ21に送信する。
次に認証制御部53は、鍵生成部51が今回生成したセッション鍵K(N)によって、暗号化・復号部52を初期化する。
図9を参照して、メモリコントローラ21は、メモリコントローラ12から受信した暗号化済み認証コード付きリードコマンドX1(N)を暗号化・復号部62に入力する。
次に暗号化・復号部62は、現在設定されているセッション鍵K(N−1)を用いて暗号化済み認証コード付きリードコマンドX1(N)を復号することにより、認証コード付きリードコマンドC1(N)を再生する。そして、再生した認証コード付きリードコマンドC1(N)を認証制御部63に入力する。
次に認証制御部63は、認証コード付きリードコマンドC1(N)から、リードコマンドC0と認証コードS(N)とを抽出する。
次に鍵生成部61は、認証制御部63からの要求に従ってセッション鍵K(N)を生成する。セッション鍵K(N)は、暗号化・復号部62及び認証制御部63に入力される。次に認証制御部63は、上述した認証制御部53と同様の処理によって、セッション鍵K(N)に基づいて認証コードS(N)を生成する。
次に認証制御部63は、認証コード付きリードコマンドC1(N)から抽出した認証コードS(N)と、鍵生成部61から入力されたセッション鍵K(N)に基づいて生成した認証コードS(N)とを比較することにより、通信装置2の正当性を認証する。具体的には、両認証コードS(N)が一致する場合には通信装置2を正当と判定し、両認証コードS(N)が一致しない場合には通信装置2を不正と判定する。
認証制御部63は、通信装置2を不正と判定した場合には、認証コード付きリードコマンドC1(N)から抽出したリードコマンドC0に基づくメモリアレイ22へのアクセスを行わない。つまり、メモリアレイ22からのコンテンツデータT0の読み出しを実行しない。
また、認証制御部63は、通信装置2を不正と判定した場合には、暗号化・復号部62に対して通信装置2からの送信データの受信を禁止する。これにより、メモリコントローラ21は、以後に通信装置2から半導体記憶装置3に向けて送信されるアクセスコマンドを受信しない。
一方、通信装置2を正当と判定した場合には、次に認証制御部63は、認証コード付きリードコマンドC1(N)から抽出したリードコマンドC0に基づいて、メモリアレイ22へのアクセスを行う。つまり、読み出しアドレスを示す制御信号Uによって、メモリアレイ22からコンテンツデータT0を読み出す。コンテンツデータT0は、認証制御部63及びハッシュ回路64に入力される。
また、認証制御部63は、通信装置2を正当と判定した場合には、鍵生成部61が今回生成したセッション鍵K(N)によって、暗号化・復号部62を初期化する。
次に鍵生成部61は、認証制御部63からの要求に従って、次回のセッション鍵K(N+1)を生成する。セッション鍵K(N+1)は、認証制御部63に入力される。
次にハッシュ回路64は、予め定められた任意のハッシュ関数を用いてコンテンツデータT0のハッシュ値を算出する。そして、算出したハッシュ値HBを認証制御部63に入力する。
次に認証制御部63は、鍵生成部61から入力されたセッション鍵K(N+1)に基づいて、通信装置2が半導体記憶装置3の正当性を認証するための認証コードSB(N+1)を生成する。認証制御部63は、上述した認証制御部53と同様に、セッション鍵K(N+1)のビット長が所定の許容認証コード長以下である場合には、セッション鍵K(N+1)をそのまま認証コードSB(N+1)として使用する。一方、セッション鍵K(N+1)のビット長が許容認証コード長を超える場合には、セッション鍵K(N+1)を圧縮することによって、許容認証コード長に収まる認証コードSB(N+1)を生成する。
次に認証制御部63は、ハッシュ値HBと認証コードSB(N+1)との排他的論和演算を行うことによって、ハッシュ値HBと認証コードSB(N+1)とが合成された合成パラメータVB(N+1)を生成する。
次に認証制御部63は、コンテンツデータT0に合成パラメータVB(N+1)を付加することによって、合成パラメータ付きコンテンツデータT1(N+1)を生成する。認証制御部63は、生成した合成パラメータ付きコンテンツデータT1(N+1)を暗号化・復号部62に入力する。
次に暗号化・復号部62は、現在設定されているセッション鍵K(N)を用いて合成パラメータ付きコンテンツデータT1(N+1)を暗号化することにより、暗号化済み合成パラメータ付きコンテンツデータY1(N+1)を生成する。そして、生成した暗号化済み合成パラメータ付きコンテンツデータY1(N+1)をメモリコントローラ12に送信する。
図8を参照して、メモリコントローラ12は、メモリコントローラ21から受信した暗号化済み合成パラメータ付きコンテンツデータY1(N+1)を暗号化・復号部52に入力する。
次に暗号化・復号部52は、現在設定されているセッション鍵K(N)を用いて暗号化済み合成パラメータ付きコンテンツデータY1(N+1)を復号することにより、合成パラメータ付きコンテンツデータT1(N+1)を再生する。そして、再生した合成パラメータ付きコンテンツデータT1(N+1)を認証制御部53に入力する。また、暗号化・復号部52は、合成パラメータ付きコンテンツデータT1(N+1)に含まれるコンテンツデータT0をハッシュ回路56に入力する。
次にハッシュ回路56は、ハッシュ回路64と同一のハッシュ関数を用いてコンテンツデータT0のハッシュ値を算出する。そして、算出したハッシュ値HAを認証制御部53に入力する。
次に鍵生成部51は、認証制御部53からの要求に従ってセッション鍵K(N+1)を生成する。セッション鍵K(N+1)は、認証制御部53に入力される。次に認証制御部53は、上述した認証制御部63と同様の処理によって、セッション鍵K(N+1)に基づいて認証コードSA(N+1)を生成する。
次に認証制御部53は、合成パラメータ付きコンテンツデータT1(N+1)に含まれる合成パラメータVB(N+1)から、ハッシュ値HBと認証コードSB(N+1)とを抽出する。具体的に認証制御部53は、合成パラメータ付きコンテンツデータT1(N+1)に含まれる合成パラメータVB(N+1)と、自身が生成した認証コードSA(N+1)との排他的論理和演算を行うことによって、合成パラメータVB(N+1)からハッシュ値HBを抽出する。また、合成パラメータ付きコンテンツデータT1(N+1)に含まれる合成パラメータVB(N+1)と、ハッシュ回路56から入力されたハッシュ値HAとの排他的論理和演算を行うことによって、合成パラメータVB(N+1)から認証コードSB(N+1)を抽出する。
次に認証制御部53は、合成パラメータVB(N+1)から抽出したハッシュ値HBと、ハッシュ回路56から入力されたハッシュ値HAとを比較することによって、コンテンツデータT0の完全性を評価する。具体的には、両ハッシュ値が一致している場合にはコンテンツデータT0の完全性を肯定し、両ハッシュ値が一致していない場合にはコンテンツデータT0の完全性を否定する。
次に認証制御部53は、合成パラメータVB(N+1)から抽出した認証コードSB(N+1)と、自身が生成した認証コードSA(N+1)とを比較することによって、半導体記憶装置3の正当性を認証する。具体的には、両認証コードが一致している場合には半導体記憶装置3を正当と認証し、両認証コードが一致していない場合には半導体記憶装置3を不正と認証する。
図6に示した第1の例によると、合成パラメータVBはコンテンツデータT0の末尾に付加されている。従って、認証制御部53は、合成パラメータVBよりも先にコンテンツデータT0を処理する。この場合、認証制御部53は、コンテンツデータT0の完全性を評価する処理、及び半導体記憶装置3の正当性を認証する処理の完了を待つことなく、合成パラメータ付きコンテンツデータT1(N+1)から抽出したコンテンツデータT0をマイクロプロセッサ11に入力する。その後、コンテンツデータT0の完全性を否定した場合及び/又は半導体記憶装置3を不正と判定した場合には、認証制御部53は、コンテンツデータT0が改ざんされている旨及び/又は半導体記憶装置3が不正である旨の通知をマイクロプロセッサ11に入力する。一方、コンテンツデータT0の完全性を肯定し、かつ半導体記憶装置3を正当と判定した場合には、認証制御部53は、当該通知をマイクロプロセッサ11に入力しない。
図7に示した第2の例によると、合成パラメータVBはコンテンツデータT0の先頭に付加されている。従って、認証制御部53は、コンテンツデータT0よりも先に合成パラメータVBを処理する。この場合、認証制御部53は、コンテンツデータT0の完全性を評価する処理、及び半導体記憶装置3の正当性を認証する処理を先に行い、コンテンツデータT0の完全性を否定した場合及び/又は半導体記憶装置3を不正と判定した場合には、合成パラメータ付きコンテンツデータT1(N+1)から抽出したコンテンツデータT0をマイクロプロセッサ11に入力しない。一方、コンテンツデータT0の完全性を肯定し、かつ半導体記憶装置3を正当と判定した場合には、認証制御部53は、合成パラメータ付きコンテンツデータT1(N+1)から抽出したコンテンツデータT0をマイクロプロセッサ11に入力する。
また、認証制御部53は、コンテンツデータT0の完全性を否定した場合及び/又は半導体記憶装置3を不正と判定した場合には、データをオール「0」又はオール「1」に置換する等のマスク処理を有効にする制御信号Dを、マスク回路54,55に入力する。これにより、通信装置2と半導体記憶装置3との間での以後の通信が遮断される。
認証制御部53,63は、マイクロプロセッサ11からリードコマンドC0が発行される度に、上記と同様の処理を行う。次回の処理では、認証制御部63は、認証コード付きリードコマンドC1(N+1)から抽出した認証コードS(N+1)と、鍵生成部61から入力されたセッション鍵K(N+1)に基づいて生成した認証コードS(N+1)とが一致するか否かによって、通信装置2の正当性を認証する。また、認証制御部53は、合成パラメータVB(N+2)から抽出したハッシュ値HBと、ハッシュ回路56から入力されたハッシュ値HAとを比較することによって、コンテンツデータT0の完全性を評価する。また、認証制御部53は、合成パラメータVB(N+2)から抽出した認証コードSB(N+2)と、自身が生成した認証コードSA(N+2)とを比較することによって、半導体記憶装置3の正当性を認証する。
なお、以上の説明では、通信装置2がコンテンツデータT0の完全性を評価する処理及び半導体記憶装置3の正当性を認証する処理を、メモリコントローラ12のハードウェア処理によって実行したが、マイクロプロセッサ11のソフトウェア処理によって実行しても良い。
また、以上の説明では、コンテンツデータT0の完全性を評価するためのセキュリティパラメータとしてハッシュ値を用いたが、CRC値、MAC値、又は誤り訂正で用いられるエラーシンドローム等の、他のセキュリティパラメータを用いても良い。
また、以上の説明では、リードコマンドC0及びその応答値としてのコンテンツデータT0に認証コードSをそれぞれ付加したが、ライトコマンドやイレースコマンド等の他のアクセスコマンドに認証コードSを付加しても良い。
ライトコマンドに認証コードSを付加する場合には、半導体記憶装置3は、通信装置2から受信したライトコマンドに付加されている認証コードSと、自ら生成した認証コードSとに基づいて、通信装置2の正当性を認証することができる。また、ライトコマンドに続いて送信されるステータスコマンドの応答値としてのステータス通知に認証コードSを付加することにより、通信装置2は、半導体記憶装置3から受信したステータス通知に付加されている認証コードSと、自ら生成した認証コードSとに基づいて、半導体記憶装置3の正当性を認証することができる。
イレースコマンドに認証コードSを付加する場合には、半導体記憶装置3は、通信装置2から受信したイレースコマンドに付加されている認証コードSと、自ら生成した認証コードSとに基づいて、通信装置2の正当性を認証することができる。また、イレースコマンドに続いて送信されるステータスコマンドの応答値としてのステータス通知に認証コードSを付加することにより、通信装置2は、半導体記憶装置3から受信したステータス通知に付加されている認証コードSと、自ら生成した認証コードSとに基づいて、半導体記憶装置3の正当性を認証することができる。
<まとめ>
上記実施の形態1,2に係る情報処理システム1によれば、半導体記憶装置3は、通信装置2から受信したリードコマンドC0,C1に応答して通信装置2に送信するコンテンツデータT0に基づいて、ハッシュ値HB(第1のセキュリティパラメータ)を生成し、ハッシュ値HBと、通信装置2に半導体記憶装置3を認証させるための第1の認証コードSB(N+1)とを合成することによって、合成パラメータVB(N+1)を生成し、コンテンツデータT0と合成パラメータVB(N+1)とを含む合成パラメータ付きコンテンツデータT1(N+1)を、通信装置2に送信する。また、通信装置2は、半導体記憶装置3から合成パラメータ付きコンテンツデータT1(N+1)を受信し、合成パラメータ付きコンテンツデータT1(N+1)に含まれる合成パラメータVB(N+1)から、ハッシュ値HBと認証コードSB(N+1)とを抽出する。そして、合成パラメータVB(N+1)から抽出したハッシュ値HBに基づいて、合成パラメータ付きコンテンツデータT1(N+1)に含まれるコンテンツデータT0の完全性を評価し、また、合成パラメータVB(N+1)から抽出した認証コードSB(N+1)に基づいて、半導体記憶装置3の正当性を認証する。このように通信装置2は、コンテンツデータT0の完全性の評価と、半導体記憶装置3の正当性の認証とを実行できる。従って、なりすまし防止技術を実現するための大規模な専用回路の実装が不要になるとともに、当該専用回路を用いた複雑な処理も不要となるため、コストの増大やレイテンシの増大を伴うことなく、なりすまし防止技術を用いたセキュア通信と同程度のセキュリティレベルを実現することが可能となる。
また、上記実施の形態1,2に係る情報処理システム1によれば、通信装置2は、半導体記憶装置3が生成する認証コードSB(N+1)と同一の第2の認証コードSA(N+1)を生成し、合成パラメータVB(N+1)と認証コードSA(N+1)とに基づいて、合成パラメータVB(N+1)からハッシュ値HBを抽出する。また、通信装置2は、合成パラメータ付きコンテンツデータT1(N+1)に含まれるコンテンツデータT0に基づいて、ハッシュ値HA(第2のセキュリティパラメータ)を生成する。そして、抽出したハッシュ値HBと、生成したハッシュ値HAとを比較することによって、コンテンツデータT0の完全性を評価する。半導体記憶装置3から通信装置2に送信されたコンテンツデータT0が改ざんされている場合には、半導体記憶装置3が生成したハッシュ値HB(つまり合成パラメータVB(N+1)から抽出したハッシュ値)と、通信装置2が生成したハッシュ値HAとは一致しない。従って、抽出したハッシュ値HBと、生成したハッシュ値HAとを比較することによって、コンテンツデータT0が改ざんされているか否かを簡易かつ確実に評価することが可能となる。
また、上記実施の形態1,2に係る情報処理システム1によれば、半導体記憶装置3は、ハッシュ値HBと認証コードSB(N+1)との排他的論理和演算によって、合成パラメータVB(N+1)を生成する。そして、通信装置2は、合成パラメータVB(N+1)と認証コードSA(N+1)との排他的論理和演算によって、合成パラメータVB(N+1)からハッシュ値HBを抽出する。このように、通信装置2が認証コードコードSB(N+1)と同一の認証コードSA(N+1)を生成し、合成パラメータVB(N+1)と認証コードSA(N+1)との排他的論理和演算を行うことによって、合成パラメータVB(N+1)からハッシュ値HBを簡易かつ正確に抽出することが可能となる。
また、上記実施の形態1,2に係る情報処理システム1によれば、通信装置2は、半導体記憶装置3が生成する認証コードSB(N+1)と同一の認証コードSA(N+1)を生成する。また、通信装置2は、合成パラメータ付きコンテンツデータT1(N+1)に含まれるコンテンツデータT0に基づいて、ハッシュ値HAを生成し、合成パラメータVB(N+1)とハッシュ値HAとに基づいて、合成パラメータVB(N+1)から認証コードSB(N+1)を抽出する。そして、抽出した認証コードSB(N+1)と、生成した認証コードSA(N+1)とを比較することによって、半導体記憶装置3の正当性を認証する。半導体記憶装置3が不正である場合には、半導体記憶装置3が生成した認証コードSB(N+1)(つまり合成パラメータVB(N+1)から抽出した認証コード)と、通信装置2が生成した認証コードSA(N+1)とは一致しない。従って、抽出した認証コードSB(N+1)と、生成した認証コードSA(N+1)とを比較することによって、半導体記憶装置3が正当であるか不正であるかを簡易かつ確実に認証することが可能となる。
また、上記実施の形態1,2に係る情報処理システム1によれば、半導体記憶装置3は、ハッシュ値HBと認証コードSB(N+1)との排他的論理和演算によって、合成パラメータVB(N+1)を生成する。そして、通信装置2は、合成パラメータVB(N+1)とハッシュ値HAとの排他的論理和演算によって、合成パラメータVB(N+1)から認証コードSB(N+1)を抽出する。このように、通信装置2がハッシュ値HBと同一のハッシュ値HAを生成し、合成パラメータVB(N+1)とハッシュ値HAとの排他的論理和演算を行うことによって、合成パラメータVB(N+1)から認証コードSB(N+1)を簡易かつ正確に抽出することが可能となる。
また、上記実施の形態1,2に係る情報処理システム1によれば、合成パラメータ付きコンテンツデータT1(N+1)の受信と、ハッシュ値HB及び認証コードSB(N+1)の抽出と、コンテンツデータT0の完全性の評価と、半導体記憶装置3の正当性の認証とは、メモリコントローラ12(第1の制御回路)が実行する。また、リードコマンドC0の受信と、ハッシュ値HBの生成と、合成パラメータVB(N+1)の生成と、合成パラメータ付きコンテンツデータT1(N+1)の生成及び送信とは、メモリコントローラ21(第2の制御回路)が実行する。このように、通信装置2によるコンテンツデータT0の完全性の評価及び半導体記憶装置3の正当性の認証の処理において、マイクロプロセッサ11(主制御部)が実行する処理はリードコマンドC0の発行だけであり、合成パラメータVB(N+1)の生成、合成パラメータVB(N+1)からのハッシュ値HB及び認証コードSB(N+1)の抽出、コンテンツデータT0の完全性の評価、及び半導体記憶装置3の正当性の認証等の本質的な処理は、メモリコントローラ12とメモリコントローラ21との間で実行される。従って、プログラム解析等によってマイクロプロセッサ11の制御を改変するような攻撃を受けた場合であっても、メモリコントローラ12及びメモリコントローラ21によるハードウェア処理の内容が解析及び改変されない限り、攻撃者によってコンテンツデータT0の完全性の評価及び半導体記憶装置3の正当性の認証の処理が回避されることはない。その結果、マイクロプロセッサ11の制御を改変するような攻撃を受けた場合であっても、コンテンツデータT0が改ざんされることや、半導体記憶装置3からコンテンツデータT0が不正に読み出されることを防止することが可能となる。
また、上記実施の形態1,2に係る情報処理システム1において、図6に示した第1の例によれば、メモリコントローラ12は、コンテンツデータT0が改ざんされているか否かに拘わらず、また半導体記憶装置3が正当であるか不正であるかに拘わらず、合成パラメータ付きコンテンツデータT1(N+1)に含まれるコンテンツデータT0をマイクロプロセッサ11に入力する。従って、コンテンツデータT0の完全性を評価する処理及び半導体記憶装置3の正当性を認証する処理の完了を待つことなく、受信したコンテンツデータT0を早期にマイクロプロセッサ11に入力することが可能となる。また、メモリコントローラ12は、半導体記憶装置3を不正と判定した場合及び/又はコンテンツデータT0の完全性を否定した場合には、その旨の通知をマイクロプロセッサ11に入力する。従って、マイクロプロセッサ11は、メモリコントローラ12から入力されたコンテンツデータT0を破棄又は無効化する等の処理を実行することが可能となる。
また、上記実施の形態1,2に係る情報処理システム1において、図7に示した第2の例によれば、メモリコントローラ21は、半導体記憶装置3を不正と判定した場合及び/又はコンテンツデータT0の完全性を否定した場合には、合成パラメータ付きコンテンツデータT1(N+1)に含まれるコンテンツデータT0をマイクロプロセッサ11に入力しない。従って、改ざんされたコンテンツデータT0がマイクロプロセッサ11に入力されることや、不正な半導体記憶装置3から読み出されたコンテンツデータT0がマイクロプロセッサ11に入力されること等を防止することが可能となる。
また、上記実施の形態1,2に係る情報処理システム1によれば、メモリコントローラ12は、半導体記憶装置3を不正と判定した場合及び/又はコンテンツデータT0の完全性を否定した場合には、メモリコントローラ12とメモリコントローラ21との間での以後の通信を遮断する。これにより、通信装置2から半導体記憶装置3にアクセスコマンドが送信されることや、半導体記憶装置3から通信装置2にコンテンツデータT0が送信されることが禁止される。その結果、半導体記憶装置3からコンテンツデータT0が不正に読み出されることや、半導体記憶装置3から読み出されたコンテンツデータT0が改ざんされて通信装置2に送信されること等を防止することが可能となる。
また、上記実施の形態1,2に係る情報処理システム1によれば、認証制御部53(第1の認証制御部)は、合成パラメータVB(N+1)から抽出した認証コードSB(N+1)と、鍵生成部51が生成したセッション鍵K(N+1)に基づいて生成した認証コードSA(N+1)とが一致するか否かによって、半導体記憶装置3の正当性を認証する。半導体記憶装置3が不正である場合には、合成パラメータVB(N+1)から抽出した認証コードSB(N+1)と、セッション鍵K(N+1)に基づいて生成した認証コードSA(N+1)とは一致しない。従って、合成パラメータVB(N+1)から抽出した認証コードSB(N+1)と、セッション鍵K(N+1)に基づいて生成した認証コードSA(N+1)とが一致するか否かによって、半導体記憶装置3が正当であるか不正であるかを簡易かつ確実に認証することが可能となる。
また、上記実施の形態1,2に係る情報処理システム1によれば、認証制御部63は、鍵生成部61が生成したセッション鍵K(N+1)のビット長が許容認証コード長を超える場合には、セッション鍵K(N+1)を圧縮することにより認証コードSB(N+1)を生成する。従って、セッション鍵K(N+1)のビット長が許容認証コード長を超える場合であっても、セッション鍵K(N+1)を圧縮することによって、許容認証コード長に収まる認証コードSB(N+1)を生成することが可能となる。
また、上記実施の形態1,2に係る情報処理システム1によれば、鍵生成部51,61は、認証の処理毎に異なるセッション鍵Kをそれぞれ生成する。その結果、認証制御部53,63が生成する認証コードSは認証の処理毎に変更されるため、セキュリティ強度を向上することが可能となる。
また、上記実施の形態2に係る情報処理システム1によれば、通信装置2は、半導体記憶装置3に通信装置2を認証させるための第3の認証コードS(N)をリードコマンドC0に付加することによって、認証コード付きリードコマンドC1(N)を生成し、当該認証コード付きリードコマンドC1(N)を半導体記憶装置3に送信する。また、半導体記憶装置3は、通信装置2から認証コード付きリードコマンドC1(N)を受信し、認証コード付きリードコマンドC1(N)に含まれる認証コードS(N)に基づいて、通信装置2の正当性を認証する。そして、通信装置2を正当と判定した場合には、認証コード付きリードコマンドC1(N)に含まれるリードコマンドC0に基づいて、メモリアレイ22にアクセスする。このように、半導体記憶装置3が認証コードS(N)に基づいて通信装置2の正当性を認証することにより、半導体記憶装置3と通信装置2との相互認証を実現できるため、セキュリティ強度をさらに向上することが可能となる。
しかも、リードコマンドC0に認証コードS(N)を付加した認証コード付きリードコマンドC1(N)を用いることによって、半導体記憶装置3による通信装置2の認証と、メモリアレイ22へのアクセスとを、共通の処理として実行することができる。従って、通信装置2が半導体記憶装置3にリードコマンドを送信する前に、半導体記憶装置3が通信装置2を認証する処理を別個に実行する必要がなく、認証の処理に伴うオーバーヘッドを低減できるため、コンテンツデータにアクセスするまでの所要時間を短縮することが可能となる。つまり、通信装置2から半導体記憶装置3への認証コード付きリードコマンドC1(N)の送信と、それに応答する半導体記憶装置3から通信装置2への合成パラメータ付きコンテンツデータT1(N+1)の送信との、一往復の通信によって、通信装置2と半導体記憶装置3との相互認証を行うことができる。その結果、通信装置2及び半導体記憶装置3それぞれからの往復通信(合計で二往復の通信)が必要となる一般的なチャレンジアンドレスポンス型の相互認証と比較すると、処理の高速化及び効率化を図ることが可能となる。
また、上記実施の形態2に係る情報処理システム1によれば、半導体記憶装置3は、通信装置2を不正と判定した場合には、リードコマンドC0に基づくメモリアレイ22へのアクセスを行わない。従って、不正な通信装置2から半導体記憶装置3にリードコマンドが送信された場合等であっても、半導体記憶装置3はメモリアレイ22からのコンテンツデータT0の読み出しを実行しない。その結果、半導体記憶装置3からコンテンツデータT0が不正に読み出されること等を防止することが可能となる。
また、上記実施の形態2に係る情報処理システム1によれば、半導体記憶装置3は、通信装置2を不正と判定した場合には、以後に通信装置2から送信されるリードコマンドを受信しない。従って、不正な通信装置2から半導体記憶装置3にリードコマンドが送信された場合等であっても、半導体記憶装置3は当該リードコマンドを受信しない。その結果、半導体記憶装置3からコンテンツデータT0が不正に読み出されること等を防止することが可能となる。
また、上記実施の形態2に係る情報処理システム1によれば、通信装置2から半導体記憶装置3に送信される認証コード付きリードコマンドC1(N)に含まれる認証コードS(N)と、当該リードコマンドに応答して半導体記憶装置3から通信装置2に送信される合成パラメータVB(N+1)を生成する際に使用される認証コードSB(N+1)とは、互いに異なる。つまり、通信装置2が半導体記憶装置3に送信する認証コードS(N)と、通信装置2が半導体記憶装置3から受信する認証コードSB(N+1)とは、互いに異なる。このように、送信時と受信時とで認証コードを異ならせることにより、セキュリティ強度をさらに向上することが可能となる。