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