(57)【要約】【課題】マイクロプロセッサの制御を改変するような攻撃を受けた場合であっても、記憶装置からコンテンツデータが不正に読み出されることを防止することが可能な、情報処理システムを得る。【解決手段】マイクロプロセッサ１１は、通信装置２と半導体記憶装置３との相互認証を指示する認証コマンドＣを発行し、通信装置２のメモリコントローラ１２は、認証コマンドＣを受領することにより、半導体記憶装置３のメモリコントローラ２１との間で相互認証を実行する。【選択図】図３
2015015542.tif 000002
【特許請求の範囲】
【請求項１】
通信装置と、
前記通信装置に接続される記憶装置と、
を備える情報処理システムであって、
前記通信装置は、
ソフトウェア処理によって前記情報処理システムを制御する主制御部と、
前記主制御部とは別に実装され、ハードウェア処理によって前記記憶装置を制御する第１の制御回路と、
を有し、
前記記憶装置は、
コンテンツデータが記憶された記憶部と、
前記記憶部を制御する第２の制御回路と、
を有し、
前記主制御部は、前記通信装置と前記記憶装置との相互認証を指示するコマンドを発行し、
前記第１の制御回路は、前記コマンドを受領することにより、前記第２の制御回路との間で相互認証を実行する、情報処理システム。
【請求項２】
前記第１の制御回路は、前記コマンドに基づいて、前記第２の制御回路に前記第１の制御回路を認証させるための第１の認証コードを生成し、当該第１の認証コードを前記第２の制御回路に送信する、請求項１に記載の情報処理システム。
【請求項３】
前記第１の制御回路は、前記コマンドのコマンドＩＤ以外のデータを、自ら生成した数列に置き換えることにより、前記第１の認証コードを生成する、請求項２に記載の情報処理システム。
【請求項４】
前記第２の制御回路は、前記第１の認証コードに基づいて前記第１の制御回路を認証し、前記第１の制御回路を不正と判定した場合には、以後に前記通信装置から前記記憶装置に向けて送信されるデータを受信しない、請求項２又は３に記載の情報処理システム。
【請求項５】
前記第２の制御回路は、前記第１の認証コードに基づいて前記第１の制御回路を認証し、前記第１の制御回路を正当と判定した場合には、前記第１の制御回路に前記第２の制御回路を認証させるための第２の認証コードを生成し、当該第２の認証コードを前記第１の制御回路に送信する、請求項２〜４のいずれか一つに記載の情報処理システム。
【請求項６】
前記第１の制御回路は、前記第２の認証コードに基づいて前記第２の制御回路を認証し、前記第２の制御回路を不正と判定した場合には、前記通信装置と前記記憶装置との間での以後の通信を遮断する、請求項５に記載の情報処理システム。
【請求項７】
前記第１の制御回路は、
第１の数列を生成する第１の数列生成部と、
前記第１の数列を含む前記第１の認証コードを生成する第１の認証制御部と、
を含み、
前記第２の制御回路は、
前記第１の数列と同一の第２の数列を生成する第２の数列生成部と、
前記第２の数列を含む前記第２の認証コードを生成する第２の認証制御部と、
を含み、
前記第２の認証制御部は、前記第１の認証コードに含まれる前記第１の数列と、前記第２の数列生成部が生成した前記第２の数列とが一致するか否かによって、前記第１の制御回路を認証し、
前記第１の認証制御部は、前記第２の認証コードに含まれる前記第２の数列と、前記第１の数列生成部が生成した前記第１の数列とが一致するか否かによって、前記第２の制御回路を認証する、請求項５又は６に記載の情報処理システム。
【請求項８】
前記第１の数列生成部及び前記第２の数列生成部は、認証の処理毎に異なる前記第１の数列及び前記第２の数列をそれぞれ生成する、請求項７に記載の情報処理システム。
【請求項９】
前記第１の制御回路から前記第２の制御回路に送信される前記第１の認証コードに含まれる前記第１の数列と、当該第１の認証コードに応答して前記第２の制御回路から前記第１の制御回路に送信される前記第２の認証コードに含まれる前記第２の数列とは、互いに異なる、請求項７又は８に記載の情報処理システム。
【請求項１０】
前記第２の認証制御部は、前記第１の制御回路を認証する際に生成された前記第２の数列の次に生成された更新後の第２の数列を含めて、前記第２の認証コードを生成し、
前記第１の認証制御部は、当該第２の認証コードに含まれる前記更新後の第２の数列と、前記第１の認証コードを生成する際に生成された前記第１の数列の次に生成された更新後の第１の数列とが一致するか否かによって、前記第２の制御回路を認証する、請求項９に記載の情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置と記憶装置とを備える情報処理システムに関する。
【背景技術】
【０００２】
通信装置とそれに接続される半導体記憶装置とを備える情報処理システムにおいては、半導体記憶装置に記憶されたコンテンツデータが不正に読み出されることを防止すべく、コンテンツデータへのアクセスを許可する前に、通信装置と半導体記憶装置とが相互に正当性を認証し合う技術（相互認証技術）が実用化されている。
【０００３】
一般的なチャレンジアンドレスポンス型の相互認証では、通信装置は、第１の認証コードを生成し、当該第１の認証コードを暗号化して半導体記憶装置に送信する。半導体記憶装置は、受信した第１の認証コードを復号した後、当該第１の認証コードを再び暗号化して通信装置に送信する。通信装置は、受信した第１の認証コードを復号した後、半導体記憶装置に送信した第１の認証コードと、半導体記憶装置から受信した第１の認証コードとが一致するか否かによって、半導体記憶装置の正当性を認証する。また、通信装置が半導体記憶装置の正当性を認証した後、半導体記憶装置は、第２の認証コードを生成し、当該第２の認証コードを暗号化して通信装置に送信する。通信装置は、受信した第２の認証コードを復号した後、当該第２の認証コードを再び暗号化して半導体記憶装置に送信する。半導体記憶装置は、受信した第２の認証コードを復号した後、通信装置に送信した第２の認証コードと、通信装置から受信した第２の認証コードとが一致するか否かによって、通信装置の正当性を認証する。
【０００４】
なお、下記特許文献１には、複数の相互認証手続を準備しておき、ＣＰＵが複数の相互認証手続の中から一の相互認証手続を選択することにより、その選択した相互認証手続をＣＰＵが実行する情報処理装置が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−３４９７５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
一般的に、通信装置と半導体記憶装置との間の相互認証は、マイクロプロセッサが認証プログラムを実行することによるソフトウェア処理によって行われる。従って、コンテンツデータの不正な読み出しを企図する攻撃者は、認証プログラムの解析や、マイクロプロセッサ内のＲＯＭ又はＲＡＭのデータを改ざんすることによって、相互認証の処理を回避するようにマイクロプロセッサの制御を改変しようとする。そして、そのような改変がなされれば、半導体記憶装置からコンテンツデータが不正に読み出されてしまう。
【０００７】
本発明はかかる事情に鑑みて成されたものであり、マイクロプロセッサの制御を改変するような攻撃を受けた場合であっても、記憶装置からコンテンツデータが不正に読み出されることを防止することが可能な、情報処理システムを得ることを目的とするものである。
【課題を解決するための手段】
【０００８】
本発明の第１の態様に係る情報処理システムは、通信装置と、前記通信装置に接続される記憶装置と、を備える情報処理システムであって、前記通信装置は、ソフトウェア処理によって前記情報処理システムを制御する主制御部と、前記主制御部とは別に実装され、ハードウェア処理によって前記記憶装置を制御する第１の制御回路と、を有し、前記記憶装置は、コンテンツデータが記憶された記憶部と、前記記憶部を制御する第２の制御回路と、を有し、前記主制御部は、前記通信装置と前記記憶装置との相互認証を指示するコマンドを発行し、前記第１の制御回路は、前記コマンドを受領することにより、前記第２の制御回路との間で相互認証を実行することを特徴とするものである。
【０００９】
第１の態様に係る情報処理システムによれば、主制御部は、通信装置と記憶装置との相互認証を指示するコマンドを発行する。そして、第１の制御回路は、コマンドを受領することにより、第２の制御回路との間で相互認証を実行する。このように、通信装置と記憶装置との相互認証において、主制御部が実行する処理はコマンドの発行だけであり、認証コードの作成や判定等の本質的な処理は、第１の制御回路と第２の制御回路との間で実行される。従って、プログラム解析等によって主制御部の制御を改変するような攻撃を受けた場合であっても、第１の制御回路及び第２の制御回路によるハードウェア処理の内容が解析及び改変されない限り、攻撃者によって相互認証の処理が回避されることはない。その結果、主制御部の制御を改変するような攻撃を受けた場合であっても、記憶装置からコンテンツデータが不正に読み出されることを防止することが可能となる。
【００１０】
本発明の第２の態様に係る情報処理システムは、第１の態様に係る情報処理システムにおいて特に、前記第１の制御回路は、前記コマンドに基づいて、前記第２の制御回路に前記第１の制御回路を認証させるための第１の認証コードを生成し、当該第１の認証コードを前記第２の制御回路に送信することを特徴とするものである。
【００１１】
第２の態様に係る情報処理システムによれば、第１の制御回路は、主制御部から受領したコマンドに基づいて、第２の制御回路に第１の制御回路を認証させるための第１の認証コードを生成する。このように、主制御部ではなく第１の制御回路によって第１の認証コードが生成されるため、プログラム解析等を行っても攻撃者は第１の認証コードを特定することができない。その結果、記憶装置からコンテンツデータが不正に読み出されることを防止することが可能となる。
【００１２】
本発明の第３の態様に係る情報処理システムは、第２の態様に係る情報処理システムにおいて特に、前記第１の制御回路は、前記コマンドのコマンドＩＤ以外のデータを、自ら生成した数列に置き換えることにより、前記第１の認証コードを生成することを特徴とするものである。
【００１３】
第３の態様に係る情報処理システムによれば、第１の制御回路は、前記コマンドのコマンドＩＤ以外のデータを、自ら生成した数列に置き換えることにより、前記第１の認証コードを生成する。これにより、プログラム解析等によっては特定できない第１の認証コードを、簡易に生成することが可能となる。また、第１の認証コードにはコマンドＩＤが含まれるため、第２の制御回路は、第１の認証コードを受信することにより、相互認証の処理を適切に開始することが可能となる。
【００１４】
本発明の第４の態様に係る情報処理システムは、第２又は第３の態様に係る情報処理システムにおいて特に、前記第２の制御回路は、前記第１の認証コードに基づいて前記第１の制御回路を認証し、前記第１の制御回路を不正と判定した場合には、以後に前記通信装置から前記記憶装置に向けて送信されるデータを受信しないことを特徴とするものである。
【００１５】
第４の態様に係る情報処理システムによれば、第２の制御回路は、第１の制御回路を不正と判定した場合には、以後に通信装置から記憶装置に向けて送信されるデータを受信しない。従って、不正な通信装置から記憶装置に向けて読み出しコマンドが送信された場合等であっても、記憶装置は当該読み出しコマンドを受信しない。その結果、記憶装置からコンテンツデータが不正に読み出されることを防止することが可能となる。
【００１６】
本発明の第５の態様に係る情報処理システムは、第２〜第４のいずれか一つの態様に係る情報処理システムにおいて特に、前記第２の制御回路は、前記第１の認証コードに基づいて前記第１の制御回路を認証し、前記第１の制御回路を正当と判定した場合には、前記第１の制御回路に前記第２の制御回路を認証させるための第２の認証コードを生成し、当該第２の認証コードを前記第１の制御回路に送信することを特徴とするものである。
【００１７】
第５の態様に係る情報処理システムによれば、第２の制御回路は、第１の制御回路を正当と判定した場合には、第１の制御回路に第２の制御回路を認証させるための第２の認証コードを生成し、当該第２の認証コードを第１の制御回路に送信する。従って、第１の制御回路から第２の制御回路への第１の認証コードの送信と、それに応答する第２の制御回路から第１の制御回路への第２の認証コードの送信との、一往復の通信によって、通信装置と記憶装置との相互認証を行うことができる。その結果、通信装置及び記憶装置それぞれからの往復通信（合計で二往復の通信）が必要となる一般的なチャレンジアンドレスポンス型の相互認証と比較すると、処理の高速化及び効率化を図ることが可能となる。
【００１８】
本発明の第６の態様に係る情報処理システムは、第５の態様に係る情報処理システムにおいて特に、前記第１の制御回路は、前記第２の認証コードに基づいて前記第２の制御回路を認証し、前記第２の制御回路を不正と判定した場合には、前記通信装置と前記記憶装置との間での以後の通信を遮断することを特徴とするものである。
【００１９】
第６の態様に係る情報処理システムによれば、第１の制御回路は、第２の制御回路を不正と判定した場合には、通信装置と記憶装置との間での以後の通信を遮断する。従って、通信装置から不正な記憶装置に向けて読み出しコマンドが送信されることや、不正な記憶装置から通信装置に向けてコンテンツデータが送信されることが回避される。その結果、記憶装置からコンテンツデータが不正に読み出されることを防止することが可能となる。
【００２０】
本発明の第７の態様に係る情報処理システムは、第５又は第６の態様に係る情報処理システムにおいて特に、前記第１の制御回路は、第１の数列を生成する第１の数列生成部と、前記第１の数列を含む前記第１の認証コードを生成する第１の認証制御部と、を含み、前記第２の制御回路は、前記第１の数列と同一の第２の数列を生成する第２の数列生成部と、前記第２の数列を含む前記第２の認証コードを生成する第２の認証制御部と、を含み、前記第２の認証制御部は、前記第１の認証コードに含まれる前記第１の数列と、前記第２の数列生成部が生成した前記第２の数列とが一致するか否かによって、前記第１の制御回路を認証し、前記第１の認証制御部は、前記第２の認証コードに含まれる前記第２の数列と、前記第１の数列生成部が生成した前記第１の数列とが一致するか否かによって、前記第２の制御回路を認証することを特徴とするものである。
【００２１】
第７の態様に係る情報処理システムによれば、第２の認証制御部は、第１の認証コードに含まれる第１の数列と、第２の数列生成部が生成した第２の数列とが一致するか否かによって、第１の制御回路を認証する。通信装置が不正である場合には、第１の認証コードには、第２の数列生成部が生成した第２の数列と一致する第１の数列が含まれていない。従って、通信装置（又は第１の制御回路）が不正であることを、確実に検出することが可能となる。また、第１の認証制御部は、第２の認証コードに含まれる第２の数列と、第１の数列生成部が生成した第１の数列とが一致するか否かによって、第２の制御回路を認証する。記憶装置が不正である場合には、第２の認証コードには、第１の数列生成部が生成した第１の数列と一致する第２の数列が含まれていない。従って、記憶装置（又は第２の制御回路）が不正であることを、確実に検出することが可能となる。
【００２２】
本発明の第８の態様に係る情報処理システムは、第７の態様に係る情報処理システムにおいて特に、前記第１の数列生成部及び前記第２の数列生成部は、認証の処理毎に異なる前記第１の数列及び前記第２の数列をそれぞれ生成することを特徴とするものである。
【００２３】
第８の態様に係る情報処理システムによれば、第１の数列生成部及び第２の数列生成部は、認証の処理毎に異なる第１の数列及び第２の数列をそれぞれ生成する。その結果、第１の認証コード及び第２の認証コードは認証の処理毎に変更されるため、セキュリティ強度を向上することが可能となる。
【００２４】
本発明の第９の態様に係る情報処理システムは、第７又は第８の態様に係る情報処理システムにおいて特に、前記第１の制御回路から前記第２の制御回路に送信される前記第１の認証コードに含まれる前記第１の数列と、当該第１の認証コードに応答して前記第２の制御回路から前記第１の制御回路に送信される前記第２の認証コードに含まれる前記第２の数列とは、互いに異なることを特徴とするものである。
【００２５】
第９の態様に係る情報処理システムによれば、第１の制御回路から第２の制御回路に送信される第１の認証コードに含まれる第１の数列と、当該第１の認証コードに応答して第２の制御回路から第１の制御回路に送信される第２の認証コードに含まれる第２の数列とは、互いに異なる。つまり、通信装置が記憶装置に送信する第１の認証コードと、通信装置が記憶装置から受信する第２の認証コードとは、互いに異なる。このように、送信時と受信時とで認証コードを異ならせることにより、セキュリティ強度を向上することが可能となる。
【００２６】
本発明の第１０の態様に係る情報処理システムは、第９の態様に係る情報処理システムにおいて特に、前記第２の認証制御部は、前記第１の制御回路を認証する際に生成された前記第２の数列の次に生成された更新後の第２の数列を含めて、前記第２の認証コードを生成し、前記第１の認証制御部は、当該第２の認証コードに含まれる前記更新後の第２の数列と、前記第１の認証コードを生成する際に生成された前記第１の数列の次に生成された更新後の第１の数列とが一致するか否かによって、前記第２の制御回路を認証することを特徴とするものである。
【００２７】
第１０の態様に係る情報処理システムによれば、第２の認証制御部は、第１の制御回路を認証する際に生成された第２の数列の次に生成された更新後の第２の数列を含めて、第２の認証コードを生成する。これにより、記憶装置から通信装置に送信する第２の認証コードを、通信装置から記憶装置に送信する第１の認証コードから簡易かつ確実に変更することが可能となる。また、第１の認証制御部は、第２の認証コードに含まれる更新後の第２の数列と、第１の認証コードを生成する際に生成された第１の数列の次に生成された更新後の第１の数列とが一致するか否かによって、第２の制御回路を認証する。記憶装置が正当である場合には、第２の認証コードに含まれる更新後の第２の数列は、第１の数列生成部によって生成された更新後の第１の数列に一致しており、一方、記憶装置が不正である場合には、第２の認証コードに含まれる更新後の第２の数列は、第１の数列生成部によって生成された更新後の第１の数列に一致していない。従って、更新後の第２の数列が更新後の第１の数列に一致するか否かを確認することによって、記憶装置が正当であるか不正であるかを簡易かつ確実に判定することが可能となる。
【発明の効果】
【００２８】
本発明によれば、マイクロプロセッサの制御を改変するような攻撃を受けた場合であっても、記憶装置からコンテンツデータが不正に読み出されることを防止することが可能となる。
【図面の簡単な説明】
【００２９】
【図１】本発明の実施の形態に係る情報処理システムの全体構成を概略的に示す図である。
【図２】マイクロプロセッサの構成を示す図である。
【図３】メモリコントローラの構成を示す図である。
【図４】メモリコントローラの構成を示す図である。
【発明を実施するための形態】
【００３０】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、異なる図面において同一の符号を付した要素は、同一又は相応する要素を示すものとする。
【００３１】
図１は、本発明の実施の形態に係る情報処理システム１の全体構成を概略的に示す図である。情報処理システム１は、通信装置２と半導体記憶装置３とを備えて構成されている。通信装置２は、例えばパーソナルコンピュータである。半導体記憶装置３は、例えば、通信装置２に着脱自在に接続可能なメモリカードである。あるいは、半導体記憶装置３に代えて、光ディスクや磁気ディスク等の任意の記憶装置を用いることもできる。
【００３２】
通信装置２は、ソフトウェア処理によって情報処理システム１を制御するメインシステムとしてのマイクロプロセッサ１１（主制御部）と、マイクロプロセッサ１１とは別に実装されたメモリコントローラ１２（第１の制御回路）とを備えて構成されている。メモリコントローラ１２は、ハードウェア処理によって半導体記憶装置３を制御する。
【００３３】
半導体記憶装置３は、画像、音声、テキスト、コード、管理情報等の任意のコンテンツデータが記憶されたメモリアレイ２２（記憶部）と、メモリアレイ２２を制御するメモリコントローラ２１（第２の制御回路）とを備えて構成されている。メモリアレイ２２は、例えばＮＡＮＤ型フラッシュメモリを用いて構成されている。但し、この例に限定されるものではなく、メモリアレイ２２はＮＯＲ型フラッシュメモリ等を用いて構成されていても良い。
【００３４】
図２は、マイクロプロセッサ１１の構成を示す図である。マイクロプロセッサ１１は、バス４７を介して相互に接続された、ＣＰＵ４１、演算器４２、ＲＡＭ４３、ＲＯＭ４４、ブリッジ４５、及びレジスタ４６を備えて構成されている。
【００３５】
図３は、メモリコントローラ１２の構成を示す図である。図３の接続関係で示すように、メモリコントローラ１２は、鍵生成部５１（第１の数列生成部）、暗号化・復号部５２、認証制御部５３（第１の認証制御部）、及びマスク回路５４，５５を備えて構成されている。鍵生成部５１は、機密性の高い固定値の共有鍵Ｐを用いて、所定の乱数生成アルゴリズムによってランダムな数列（以下の例ではセッション鍵Ｋ）を生成する。鍵生成部５１は、メモリコントローラ１２がマイクロプロセッサ１１から認証コマンドＣを受領する度に、毎回異なるセッション鍵Ｋ（ナンス）を生成する。
【００３６】
図４は、メモリコントローラ２１の構成を示す図である。図４の接続関係で示すように、メモリコントローラ２１は、鍵生成部６１（第２の数列生成部）、暗号化・復号部６２、及び認証制御部６３（第２の認証制御部）を備えて構成されている。鍵生成部６１は、鍵生成部５１が保持している共有鍵Ｐと同一の共有鍵Ｐを用いて、鍵生成部５１と同一の乱数生成アルゴリズムによって、鍵生成部５１が生成するセッション鍵Ｋと同一のセッション鍵Ｋを生成する。鍵生成部６１は、メモリコントローラ２１がメモリコントローラ１２から暗号化認証コードＸを受信する度に、毎回異なるセッション鍵Ｋを生成する。
【００３７】
以下、図３，４を参照して、通信装置２と半導体記憶装置３との相互認証の処理について説明する。前提として、暗号化・復号部５２，６２は、鍵生成部５１，６１が前回生成したセッション鍵Ｋ（Ｎ−１）によって初期化されているものとする。また、相互認証の処理が完了して通信装置２及び半導体記憶装置３の正当性が互いに認証されるまでは、マイクロプロセッサ１１からメモリアレイ２２へのアクセスは許可されていない。
【００３８】
まずマイクロプロセッサ１１は、相互認証の実行を指示するための所定バイト長の認証コマンドＣを発行する。認証コマンドＣは、それが認証コマンドであることを識別するための特定のコマンドＩＤと、コマンドＩＤ以外のデータとを含む。メモリコントローラ１２は、マイクロプロセッサ１１から認証コマンドＣを受領し、受領した認証コマンドＣを認証制御部５３に入力する。
【００３９】
次に鍵生成部５１は、認証制御部５３からの要求に従ってセッション鍵Ｋ（Ｎ）を生成する。セッション鍵Ｋ（Ｎ）は、暗号化・復号部５２及び認証制御部５３に入力される。
【００４０】
次に認証制御部５３は、認証コマンドＣ及びセッション鍵Ｋ（Ｎ）に基づいて認証コードＳ（Ｎ）を生成する。例えば、認証コマンドＣのコマンドＩＤ以外のデータを、セッション鍵Ｋ（Ｎ）に置き換えることにより、コマンドＩＤとセッション鍵Ｋ（Ｎ）とを含む認証コードＳ（Ｎ）を生成する。認証制御部５３は、生成した認証コードＳ（Ｎ）を暗号化・復号部５２に入力する。
【００４１】
次に暗号化・復号部５２は、現在設定されているセッション鍵Ｋ（Ｎ−１）を用いて認証コードＳ（Ｎ）を暗号化することにより、暗号化認証コードＸ（Ｎ）を生成する。そして、生成した暗号化認証コードＸ（Ｎ）をメモリコントローラ２１に送信する。
【００４２】
次に認証制御部５３は、鍵生成部５１が今回生成したセッション鍵Ｋ（Ｎ）によって、暗号化・復号部５２を初期化する。
【００４３】
メモリコントローラ２１は、メモリコントローラ１２から受信した暗号化認証コードＸ（Ｎ）を、暗号化・復号部６２に入力する。
【００４４】
次に暗号化・復号部６２は、現在設定されているセッション鍵Ｋ（Ｎ−１）を用いて暗号化認証コードＸ（Ｎ）を復号することにより、認証コードＳ（Ｎ）を再生する。そして、再生した認証コードＳ（Ｎ）を認証制御部６３に入力する。
【００４５】
次に鍵生成部６１は、認証制御部６３からの要求に従ってセッション鍵Ｋ（Ｎ）を生成する。セッション鍵Ｋ（Ｎ）は、暗号化・復号部６２及び認証制御部６３に入力される。
【００４６】
次に認証制御部６３は、暗号化認証コードＸ（Ｎ）の復号により再生した認証コードＳ（Ｎ）に含まれるセッション鍵Ｋ（Ｎ）と、鍵生成部６１から入力されたセッション鍵Ｋ（Ｎ）とを比較することにより、通信装置２（又はメモリコントローラ１２。以下同様）の正当性を認証する。具体的には、両セッション鍵Ｋ（Ｎ）が一致する場合には通信装置２を正当と判定し、両セッション鍵Ｋ（Ｎ）が一致しない場合には通信装置２を不正と判定する。
【００４７】
認証制御部６３は、通信装置２を不正と判定した場合には、暗号化・復号部６２に対して通信装置２からの送信データの受信を禁止する。これにより、メモリコントローラ２１は、以後に通信装置２から半導体記憶装置３に向けて送信されるデータを受信しない。
【００４８】
一方、通信装置２を正当と判定した場合には、次に認証制御部６３は、鍵生成部６１が今回生成したセッション鍵Ｋ（Ｎ）によって、暗号化・復号部６２を初期化する。
【００４９】
次に鍵生成部６１は、認証制御部６３からの要求に従って、次回のセッション鍵Ｋ（Ｎ＋１）を生成する。セッション鍵Ｋ（Ｎ＋１）は、認証制御部６３に入力される。
【００５０】
次に認証制御部６３は、鍵生成部６１から入力されたセッション鍵Ｋ（Ｎ＋１）に基づいて認証コードＳ（Ｎ＋１）を生成する。例えば、セッション鍵Ｋ（Ｎ＋１）をそのまま認証コードＳ（Ｎ＋１）として使用する。認証制御部６３は、生成した認証コードＳ（Ｎ＋１）を暗号化・復号部６２に入力する。
【００５１】
次に暗号化・復号部６２は、現在設定されているセッション鍵Ｋ（Ｎ）を用いて認証コードＳ（Ｎ＋１）を暗号化することにより、暗号化認証コードＹ（Ｎ＋１）を生成する。そして、生成した暗号化認証コードＹ（Ｎ＋１）をメモリコントローラ１２に送信する。
【００５２】
メモリコントローラ１２は、メモリコントローラ２１から受信した暗号化認証コードＹ（Ｎ＋１）を、暗号化・復号部５２に入力する。
【００５３】
次に暗号化・復号部５２は、現在設定されているセッション鍵Ｋ（Ｎ）を用いて暗号化認証コードＹ（Ｎ＋１）を復号することにより、認証コードＳ（Ｎ＋１）を再生する。そして、再生した認証コードＳ（Ｎ＋１）を認証制御部５３に入力する。
【００５４】
次に鍵生成部５１は、認証制御部５３からの要求に従ってセッション鍵Ｋ（Ｎ＋１）を生成する。セッション鍵Ｋ（Ｎ＋１）は、認証制御部５３に入力される。
【００５５】
次に認証制御部５３は、暗号化認証コードＹ（Ｎ＋１）の復号により再生した認証コードＳ（Ｎ＋１）に含まれるセッション鍵Ｋ（Ｎ＋１）と、鍵生成部５１から入力されたセッション鍵Ｋ（Ｎ＋１）とを比較することにより、半導体記憶装置３（又はメモリコントローラ２１。以下同様）の正当性を認証する。具体的には、両セッション鍵Ｋ（Ｎ＋１）が一致する場合には半導体記憶装置３を正当と判定し、両セッション鍵Ｋ（Ｎ＋１）が一致しない場合には半導体記憶装置３を不正と判定する。
【００５６】
認証制御部５３は、半導体記憶装置３を不正と判定した場合には、データをオール「０」又はオール「１」に置換する等のマスク処理を有効にする制御信号Ｄを、マスク回路５４，５５に入力する。これにより、通信装置２と半導体記憶装置３との間での以後の通信が遮断される。
【００５７】
一方、半導体記憶装置３を正当と判定した場合には、次に認証制御部５３は、マスク処理を無効にする制御信号Ｄを、マスク回路５４，５５に入力する。これにより、通信装置２は、半導体記憶装置３に対してコンテンツデータの読み出しコマンド等を送信することが可能となり、また、半導体記憶装置３からコンテンツデータを受信することが可能となる。
【００５８】
次回の相互認証の処理では、認証制御部６３は、再生した認証コードＳ（Ｎ＋１）に含まれるセッション鍵Ｋ（Ｎ＋１）と、鍵生成部６１が生成したセッション鍵Ｋ（Ｎ＋１）とが一致するか否かによって、メモリコントローラ１２の正当性を認証する。また、認証制御部５３は、再生した認証コードＳ（Ｎ＋２）に含まれるセッション鍵Ｋ（Ｎ＋２）と、鍵生成部５１が生成したセッション鍵Ｋ（Ｎ＋２）とが一致するか否かによって、メモリコントローラ２１の正当性を認証する。
【００５９】
このように本実施の形態に係る情報処理システム１によれば、マイクロプロセッサ１１（主制御部）は、通信装置２と半導体記憶装置３との相互認証を指示する認証コマンドＣを発行する。そして、メモリコントローラ１２（第１の制御回路）は、認証コマンドＣを受領することにより、メモリコントローラ２１（第２の制御回路）との間で相互認証を実行する。このように、通信装置２と半導体記憶装置３との相互認証において、マイクロプロセッサ１１が実行する処理は認証コマンドＣの発行だけであり、認証コードの作成や判定等の本質的な処理は、メモリコントローラ１２とメモリコントローラ２１との間で実行される。従って、プログラム解析や、ＲＯＭ４４又はＲＡＭ４３のデータを改ざんすること等によって、マイクロプロセッサ１１の制御を改変するような攻撃を受けた場合であっても、メモリコントローラ１２，２１によるハードウェア処理の内容が解析及び改変されない限り、攻撃者によって相互認証の処理が回避されることはない。その結果、マイクロプロセッサ１１の制御を改変するような攻撃を受けた場合であっても、半導体記憶装置３からコンテンツデータが不正に読み出されることを防止することが可能となる。
【００６０】
また、本実施の形態に係る情報処理システム１によれば、メモリコントローラ１２は、マイクロプロセッサ１１から受領した認証コマンドＣに基づいて、メモリコントローラ２１にメモリコントローラ１２を認証させるための第１の認証コードＳ（Ｎ）を生成する。このように、マイクロプロセッサ１１ではなくメモリコントローラ１２によって認証コードＳ（Ｎ）が生成されるため、プログラム解析等を行っても攻撃者は認証コードＳ（Ｎ）を特定することができない。その結果、半導体記憶装置３からコンテンツデータが不正に読み出されることを防止することが可能となる。
【００６１】
また、本実施の形態に係る情報処理システム１によれば、メモリコントローラ１２は、認証コマンドＣのコマンドＩＤ以外のデータを、自ら生成した数列に置き換えることにより、認証コードＳ（Ｎ）を生成する。これにより、プログラム解析等によっては特定できない認証コードを、簡易に生成することが可能となる。また、認証コードＳ（Ｎ）にはコマンドＩＤが含まれるため、メモリコントローラ２１は、認証コードＳ（Ｎ）を受信することにより、相互認証の処理を適切に開始することが可能となる。
【００６２】
また、本実施の形態に係る情報処理システム１によれば、メモリコントローラ２１は、メモリコントローラ１２を不正と判定した場合には、以後に通信装置２から半導体記憶装置３に向けて送信されるデータを受信しない。従って、不正な通信装置２から半導体記憶装置３に向けて読み出しコマンドが送信された場合等であっても、半導体記憶装置３は当該読み出しコマンドを受信しない。その結果、半導体記憶装置３からコンテンツデータが不正に読み出されることを防止することが可能となる。
【００６３】
また、本実施の形態に係る情報処理システム１によれば、メモリコントローラ２１は、メモリコントローラ１２を正当と判定した場合には、メモリコントローラ１２にメモリコントローラ２１を認証させるための第２の認証コードＳ（Ｎ＋１）を生成し、当該認証コードＳ（Ｎ＋１）をメモリコントローラ１２に送信する。従って、メモリコントローラ１２からメモリコントローラ２１への認証コードＳ（Ｎ）の送信と、それに応答するメモリコントローラ２１からメモリコントローラ１２への認証コードＳ（Ｎ＋１）の送信との、一往復の通信によって、通信装置２と半導体記憶装置３との相互認証を行うことができる。その結果、通信装置２及び半導体記憶装置３それぞれからの往復通信（合計で二往復の通信）が必要となる一般的なチャレンジアンドレスポンス型の相互認証と比較すると、処理の高速化及び効率化を図ることが可能となる。
【００６４】
また、本実施の形態に係る情報処理システム１によれば、メモリコントローラ１２は、メモリコントローラ２１を不正と判定した場合には、通信装置２と半導体記憶装置３との間での以後の通信を遮断する。従って、通信装置２から不正な半導体記憶装置３に向けて読み出しコマンドが送信されることや、不正な半導体記憶装置３から通信装置２に向けてコンテンツデータが送信されることが回避される。その結果、半導体記憶装置３からコンテンツデータが不正に読み出されることを防止することが可能となる。
【００６５】
また、本実施の形態に係る情報処理システム１によれば、認証制御部６３は、再生した認証コードＳ（Ｎ）に含まれるセッション鍵Ｋ（Ｎ）と、鍵生成部６１が生成したセッション鍵Ｋ（Ｎ）とが一致するか否かによって、メモリコントローラ１２の正当性を認証する。通信装置２が不正である場合には、認証コードＳ（Ｎ）には、鍵生成部６１が生成したセッション鍵Ｋ（Ｎ）と一致するセッション鍵Ｋ（Ｎ）が含まれていない。従って、通信装置２が不正であることを、確実に検出することが可能となる。また、認証制御部５３は、再生した認証コードＳ（Ｎ＋１）に含まれるセッション鍵Ｋ（Ｎ＋１）と、鍵生成部５１が生成したセッション鍵Ｋ（Ｎ＋１）とが一致するか否かによって、メモリコントローラ２１の正当性を認証する。半導体記憶装置３が不正である場合には、認証コードＳ（Ｎ＋１）には、鍵生成部５１が生成したセッション鍵Ｋ（Ｎ＋１）と一致するセッション鍵Ｋ（Ｎ＋１）が含まれていない。従って、半導体記憶装置３が不正であることを、確実に検出することが可能となる。
【００６６】
また、本実施の形態に係る情報処理システム１によれば、鍵生成部５１，６１は、認証の処理毎に異なるセッション鍵Ｋをそれぞれ生成する。その結果、認証コードＳは認証の処理毎に変更されるため、セキュリティ強度を向上することが可能となる。
【００６７】
また、本実施の形態に係る情報処理システム１によれば、メモリコントローラ１２からメモリコントローラ２１に送信される認証コードＳ（Ｎ）に含まれるセッション鍵Ｋ（Ｎ）と、当該認証コードＳ（Ｎ）に応答してメモリコントローラ２１からメモリコントローラ１２に送信される認証コードＳ（Ｎ＋１）に含まれるセッション鍵Ｋ（Ｎ＋１）とは、互いに異なる。つまり、通信装置２が半導体記憶装置３に送信する認証コードＳ（Ｎ）と、通信装置２が半導体記憶装置３から受信する認証コードＳ（Ｎ＋１）とは、互いに異なる。このように、送信時と受信時とで認証コードＳを異ならせることにより、セキュリティ強度を向上することが可能となる。
【００６８】
また、本実施の形態に係る情報処理システム１によれば、認証制御部６３は、メモリコントローラ１２を認証する際に生成されたセッション鍵Ｋ（Ｎ）の次に生成された更新後のセッション鍵Ｋ（Ｎ＋１）を含めて、認証コードＳ（Ｎ＋１）を生成する。これにより、半導体記憶装置３から通信装置２に送信する認証コードＳ（Ｎ＋１）を、通信装置２から半導体記憶装置３に送信する認証コードＳ（Ｎ）から簡易かつ確実に変更することが可能となる。また、認証制御部５３は、認証コードＳ（Ｎ＋１）に含まれる更新後のセッション鍵Ｋ（Ｎ＋１）と、認証コードＳ（Ｎ）を生成する際に生成されたセッション鍵Ｋ（Ｎ）の次に生成された更新後のセッション鍵Ｋ（Ｎ＋１）とが一致するか否かによって、メモリコントローラ２１を認証する。半導体記憶装置３が正当である場合には、認証コードＳ（Ｎ＋１）に含まれる更新後のセッション鍵Ｋ（Ｎ＋１）は、鍵生成部５１によって生成された更新後のセッション鍵Ｋ（Ｎ＋１）に一致しており、一方、半導体記憶装置３が不正である場合には、認証コードＳ（Ｎ＋１）に含まれる更新後のセッション鍵Ｋ（Ｎ＋１）は、鍵生成部５１によって生成された更新後のセッション鍵Ｋ（Ｎ＋１）に一致していない。従って、両セッション鍵Ｋ（Ｎ＋１）が一致するか否かを確認することによって、半導体記憶装置３が正当であるか不正であるかを簡易かつ確実に判定することが可能となる。
【符号の説明】
【００６９】
１  情報処理システム
２  通信装置
３  半導体記憶装置
１１  マイクロプロセッサ
１２  メモリコントローラ
２１  メモリコントローラ
２２  メモリアレイ
５１  鍵生成部
５２  暗号化・復号部
５３  認証制御部
６１  鍵生成部
６２  暗号化・復号部
６３  認証制御部
【図１】
2015015542.tif 000003
【図２】
2015015542.tif 000004
【図３】
2015015542.tif 000005
【図４】
2015015542.tif 000006