説明

メモリシステム、メモリカード及びコンピュータシステム

【課題】コンピュータと半導体メモリとを備えたシステムにおけるセキュリティを向上させることを目的とする。
【解決手段】コンピュータシステム1において、メモリカード3が予め暗号化済みアドレス91及びアドレス発行ドライバ92をコンピュータ2に送信する。そして、メモリアレイ32にアクセスするとき、コンピュータ2は、メモリカード3から取得したアドレス発行ドライバ92によって必要な暗号化済みアドレス91を特定し、特定した暗号化済みアドレス91をメモリカード3に対して発行する。さらに、復号回路31は、コンピュータ2において発行された暗号化済みアドレス91に基づいてメモリアレイ32における位置を指定するための正規アドレスを生成する。メモリコントローラ30は、復号回路31により生成された正規アドレスに基づいてメモリアレイ32にアクセスする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、メモリアレイに記憶されたユーザ情報のセキュリティを向上させる技術に関する。
【背景技術】
【0002】
従来より、コンピュータと、当該コンピュータにおいて使用されるユーザ情報を記憶したメモリカード(半導体メモリ)とを備えるシステムが知られている。このようなシステムとして、例えば、コンピュータとしてのゲーム装置と、ゲームカセット(当該ゲーム装置において動作するゲームソフトを記憶した半導体メモリがパッケージされている)とを備えるシステムでは、不正業者等による不正コピーを防止する必要があるため、一般に、何らかのセキュリティ機能が採用されている。
【0003】
このようなシステムで採用されるセキュリティ機能としては、例えば、ゲーム装置とゲームカセットとの間で暗号化されたデータをやり取りする機能等が提案されている。この場合、ゲーム装置とゲームカセットとの間では、暗号化されたデータが送受信されているので、この間のデータを不正に取得してコピーしたとしてもシステムが正常に動作することはない。
【0004】
例えば、特許文献1及び特許文献2にはスクランブルと呼ばれる技術が記載されており、これらの技術は、いずれも、ルールを知らない第三者に対して、メモリから出力されるデータを認識不能にする技術である。
【0005】
【特許文献1】特開平07−219852号公報
【特許文献2】特開平06−318037号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
ところが、ゲーム装置は一般のユーザが所有している装置であり、正規品であるため、ゲーム装置に設けられたセキュリティ機能は不正カードに対しても正常に動作する。したがって、正規のゲームカセットの半導体メモリに記憶されているユーザ情報(ROMイメージ)をそのままコピーされると、例え暗号化アルゴリズムが堅固であっても、当該不正カセットが正常に使用できてしまうという問題があった。例えば、上記特許文献1及び特許文献2に記載されている技術では、ゲーム装置(情報処理装置)側にも対になる解読装置を備えてているが、この解読装置は不正カセットに対しても正常に動作する。
【0007】
また、互換性を担保するためには、長期間、仕様を変更すべきではないという事情があるが、変更なく恒常的に使用されるセキュリティ機能は、頻繁に変更される場合に比べて解析しやすく、セキュリティレベルが低下しやすいという問題があった。
【0008】
さらに、上記特許文献1及び特許文献2に記載されている技術では、情報処理装置側に対となる解読装置を備えている必要があるため、仕様の変更が容易ではないという問題があった。仕様の変更が容易にできなければ、一旦、ルールが見破られてしまうと、対処するのが難しく、その被害は甚大なものとなる。
【0009】
本発明は、上記課題に鑑みなされたものであり、コンピュータと半導体メモリとを備えたシステムにおけるセキュリティを向上させることを目的とする。
【課題を解決するための手段】
【0010】
上記の課題を解決するため、請求項1の発明は、コンピュータに接続されるメモリシステムであって、前記コンピュータからアクセスされるユーザ情報を記憶するメモリアレイと、暗号情報を記憶する記憶部と、前記記憶部に記憶された暗号情報を前記コンピュータに送信する通信部と、前記コンピュータにより発行された暗号化済みアドレスに基づいて、前記メモリアレイにおける位置を指定するための正規アドレスを生成する復号回路と、前記復号回路により生成された正規アドレスに基づいて前記メモリアレイにアクセスする制御回路とを備えることを特徴とする。
【0011】
また、請求項2の発明は、請求項1の発明に係るメモリシステムであって、ネットワークを介して前記コンピュータに接続されるサーバ装置を備え、前記記憶部及び前記通信部は、前記サーバ装置に設けられることを特徴とする。
【0012】
また、請求項3の発明は、請求項1または2の発明に係るメモリシステムであって、前記記憶部に記憶される暗号情報は、暗号化済みアドレスを含むことを特徴とする。
【0013】
また、請求項4の発明は、請求項1ないし3のいずれかの発明に係るメモリシステムであって、前記記憶部に記憶される暗号情報は、暗号化済みアドレスを前記コンピュータにおいて発行するためのドライバを含むことを特徴とする。
【0014】
また、請求項5の発明は、コンピュータに装着されるメモリカードであって、前記コンピュータからアクセスされるユーザ情報を記憶するメモリアレイと、暗号情報を記憶する記憶部と、前記記憶部に記憶された暗号情報を前記コンピュータに送信するとともに、前記コンピュータにより前記暗号情報に基づいて発行された暗号化済みアドレスを受信する通信部と、前記通信部により受信された暗号化済みアドレスに基づいて、前記メモリアレイにおける位置を指定するための正規アドレスを生成する復号回路と、前記復号回路により生成された正規アドレスに基づいて前記メモリアレイにアクセスする制御回路とを備えることを特徴とする。
【0015】
また、請求項6の発明は、請求項5の発明に係るメモリカードであって、前記記憶部に記憶される暗号情報は、暗号化済みアドレスを含むことを特徴とする。
【0016】
また、請求項7の発明は、請求項5または6の発明に係るメモリカードであって、前記記憶部に記憶される暗号情報は、暗号化済みアドレスを前記コンピュータにおいて発行するためのドライバを含むことを特徴とする。
【0017】
また、請求項8の発明は、コンピュータとメモリシステムとを備えるコンピュータシステムであって、前記メモリシステムが、前記コンピュータからアクセスされるユーザ情報を記憶するメモリアレイと、暗号情報を記憶する記憶部と、前記記憶部に記憶された暗号情報を前記コンピュータに送信する通信部と、前記コンピュータにより発行された暗号化済みアドレスに基づいて、前記メモリアレイにおける位置を指定するための正規アドレスを生成する復号回路と、前記復号回路により生成された正規アドレスに基づいて前記メモリアレイにアクセスする制御回路とを備え、前記コンピュータは、前記メモリアレイにアクセスするときにおいて、前記通信部により送信された暗号情報によって、前記アクセスに必要な暗号化済みアドレスを特定し、特定した暗号化済みアドレスを前記メモリシステムに対して発行することを特徴とする。
【発明の効果】
【0018】
請求項1ないし8に記載の発明では、メモリシステムの通信部により暗号情報をコンピュータに送信する。そして、復号回路によって、コンピュータにより発行された暗号化済みアドレスに基づいて、メモリアレイにおける位置を指定するための正規アドレスを生成し、復号回路により生成された正規アドレスに基づいてメモリアレイにアクセスすることにより、メモリシステムに記憶されている情報をコピーしただけでは正常に動作しないので、セキュリティが向上する。また、アップデートを行う場合においてコンピュータを変更する必要がないので、例えば、暗号の仕様変更が容易である。
【発明を実施するための最良の形態】
【0019】
以下、本発明の好適な実施の形態について、添付の図面を参照しつつ、詳細に説明する。
【0020】
<1. 第1の実施の形態>
図1は、本発明に係るコンピュータシステム1を示す図である。
【0021】
コンピュータシステム1は、コンピュータ2と、コンピュータ2に装着されるメモリカード3とを備えている。
【0022】
コンピュータ2は、各種データの演算を行うCPU20、各種データを記憶するRAM21、ユーザのための入出力装置22およびインタフェース23を備え、一般的なパーソナルコンピュータとしての機能を有する。
【0023】
なお、本実施の形態においてコンピュータ2は汎用的な装置として説明するが、コンピュータ2は、専用の用途に用いられるゲーム装置や、PDA、あるいは携帯電話等であってもよい。例えば、コンピュータ2がゲーム装置である場合、メモリカード3はゲーム装置に装着されるゲームカセットであり、ユーザ情報90はゲーム装置にロードされるゲームプログラム等である。
【0024】
CPU20は、RAM21を一時的なワーキングエリアとして使用しつつ、各種データの演算等を行うとともに、各種制御信号を生成することにより、コンピュータ2の各構成を制御する。
【0025】
本実施の形態におけるCPU20は、後述するインタフェース23を介してメモリカード3から暗号化済みアドレス91及びアドレス発行ドライバ92を取得してRAM21に記憶させる。
【0026】
また、CPU20がメモリカード3のメモリアレイ32にアクセスする際には、既にRAM21に記憶されているアドレス発行ドライバ92によって、暗号化済みアドレス91から必要な暗号化済みアドレス91を特定し、特定した暗号化済みアドレス91を含むコマンドを生成してメモリカード3に向けて発行(送信)する。
【0027】
入出力装置22とは、ユーザに対して各種データを表示するディスプレイやLED、文字や画像等を印字するプリンタ、ユーザがデータを入力するための各種ボタン類やスキャナ、マウス、キーボード、ジョイスティックあるいはコントローラ等の各種装置類が該当する。
【0028】
なお、コンピュータ2は、入出力装置22として、ここに例示したすべての装置類を備えている必要はなく、また、入出力装置22はここに例示した装置類に限定されるものでもない。コンピュータ2はコンピュータシステム1の用途等に応じて、入出力装置22として、適宜必要な構成を備えていればよい。
【0029】
インタフェース23は、メモリカード3との間でデータ通信を行う機能を有している。インタフェース23はメモリカード3を装着するカードスロットを備えており、当該カードスロットにメモリカード3が装着されることによって、コンピュータ2とメモリカード3とが電気的に、かつ、データ通信可能に接続される。
【0030】
メモリカード3は、メモリコントローラ30、復号回路31、メモリアレイ32およびインタフェース33を備え、主に本発明におけるメモリシステムに相当する。メモリカード3は、主にコンピュータ2によって使用されるユーザ情報90を記憶する装置として使用される。
【0031】
メモリコントローラ30は、メモリアレイ32に記憶されている暗号情報(暗号化済みアドレス91及びアドレス発行ドライバ92)を、インタフェース33を介して予めコンピュータ2に転送する。また、インタフェース33を介してコンピュータ2から受信したコマンドに含まれる暗号化済みアドレス91を復号回路31に転送する。さらに、復号回路31によって復号された正規アドレスを取得して、コンピュータ2から受信したコマンドを実行する。
【0032】
復号回路31は、暗号化済みアドレス91を、メモリアレイ32における位置を指定するための正規アドレスに変換するように構成された論理回路である。すなわち、復号回路31は、メモリコントローラ30から転送された暗号化済みアドレス91を入力とし、入力された暗号化済みアドレス91を当該論理回路で処理して、当該暗号化済みアドレス91に対応する正規アドレスを生成する。生成した正規アドレスは、復号回路31の出力としてメモリコントローラ30に入力される。
【0033】
なお、復号回路31における論理回路は、暗号化済みアドレス91と、正規アドレスとの変換アルゴリズム(暗号化アルゴリズム)に応じて、設計される。また、本実施の形態では、正規アドレスはメモリアレイ32の物理アドレスとする。
【0034】
メモリアレイ32は、不揮発性の複数の記憶素子から構成され、図1に示すように、ユーザ情報90とともに、暗号化済みアドレス91及びアドレス発行ドライバ92を記憶する。すなわち、本実施の形態におけるメモリアレイ32は、本発明におけるメモリアレイに相当するとともに、記憶部の機能も備えている。
【0035】
本実施の形態におけるメモリアレイ32を構成する記憶素子は、データの読み出しのみならず、消去や書換も可能な記憶素子である。このような記憶素子としては、例えば、NAND素子を採用することができるが、メモリアレイ32を構成する記憶素子は、必ずしも消去や書換が可能でなくてもよく、少なくとも各種データを記憶することができる素子であればよい。
【0036】
インタフェース33は、コンピュータ2との間でデータ通信を行う機能を有している。インタフェース33がコンピュータ2のインタフェース23と迎合することによって、先述のように、コンピュータ2とメモリカード3とが電気的に、かつ、データ通信可能に接続される。
【0037】
以上が第1の実施の形態におけるコンピュータシステム1の構成及び機能の説明である。次に、コンピュータシステム1の動作について説明する。なお、以下では、暗号化済みアドレスの「1000番地」と、メモリアレイ32の正規アドレス(物理アドレス)の「2000番地」とが暗号化によって対応している例を、適宜、用いる。
【0038】
図2は、コンピュータ2の動作を示す流れ図である。コンピュータ2は、電源が投入された後に所定の初期設定を行い、監視状態となる。
【0039】
監視状態においてCPU20は、メモリカード3を検出したか否か(ステップS1)、メモリカード3へのアクセス要求が発生したか否か(ステップS4)、及び、終了指示があったか否か(ステップS9)を監視する。ただし、監視状態において、CPU20は必ずしも待機している必要はなく、何らかの処理を並行して実行していてもよい。
【0040】
監視状態において、メモリカード3が検出されると、CPU20はステップS1においてYesと判定し、メモリカード3から暗号化済みアドレス91及びアドレス発行ドライバ92を取得する(ステップS2)。
【0041】
なお、ステップS1におけるメモリカード3の検出とは、当該メモリカード3の最初の検出のことを言う。すなわち、コンピュータシステム1では、メモリカード3がインタフェース23に挿入されたとき、または、コンピュータ2の電源投入時に既にメモリカード3が挿入されていた場合等に、ステップS1においてYesと判定される。
【0042】
また、ステップS2の処理を具体的に説明すると、まず、CPU20は、インタフェース23を介して、暗号化済みアドレス91及びアドレス発行ドライバ92の送信を要求する情報(以下、単に「要求」と称する)をメモリカード3に送信する。この要求に応じて、メモリカード3から暗号化済みアドレス91及びアドレス発行ドライバ92が送信されるので、CPU20は、受信した暗号化済みアドレス91及びアドレス発行ドライバ92をRAM21に格納する。
【0043】
なお、本実施の形態において、コンピュータ2からメモリカード3に向けて送信される「要求」とは、メモリアレイ32に記憶されている暗号化済みアドレス91及びアドレス発行ドライバ92を読み出すコマンド(リードコマンド)の一種である。すなわち、この「要求」にも、暗号化済みアドレス91及びアドレス発行ドライバ92のメモリアレイ32における位置を指定するためのアドレス(以下、「要求用アドレス」と称する)が含まれることとなるが、要求用アドレスは予めコンピュータ2のイニシャルブートロム(図示せず)等に記憶されているものとする。
【0044】
暗号化済みアドレス91及びアドレス発行ドライバ92を取得すると、CPU20は、メモリカード3の使用を許可して(ステップS3)、監視状態に戻る。
【0045】
ステップS3の処理は、例えば、メモリカード3の使用の可否を示す状態テーブルに、メモリカード3が使用可能となったことを示す情報を格納することにより行う。また、ステップS3において、コンピュータ2は、メモリカード3に向けて、動作モードをセキュリティモードに変更する遷移コマンドを送信する。なお、詳細は後述するが、セキュリティモードとはセキュリティ機能をONにしたモードであって、具体的には、メモリコントローラ30がコマンドに含まれるアドレスを復号回路31に転送するモードである。
【0046】
監視状態において、メモリカード3へのアクセス要求が発生すると、CPU20はステップS4においてYesと判定し、メモリカード3の使用可否を確認する(ステップS5)。
【0047】
未だステップS3が実行されていない場合、メモリカード3は使用可能とはなっていない。したがって、CPU20はステップS5においてNoと判定し、ステップS6ないしS8の処理をスキップする。
【0048】
一方、既にステップS3が実行されてメモリカード3が使用可能となっていれば、CPU20はステップS5においてYesと判定し、既にRAM21に転送され記憶されているアドレス発行ドライバ92を起動する(ステップS6)。
【0049】
次に、CPU20は起動したアドレス発行ドライバ92によって、既にRAM21に転送され記憶されている暗号化済みアドレス91から、発生したアクセス要求にとって必要な暗号化済みアドレス91を特定する(ステップS7)。
【0050】
発生したアクセス要求が、メモリアレイ32の正規アドレスの「2000番地」からユーザ情報90を読み出す要求である場合、アドレス発行ドライバ92は、暗号化済みアドレス91の値として、例えば、「1000」を特定する。
【0051】
そして、CPU20は、このようにして特定した暗号化済みアドレス91を含むコマンド(ここに示す例ではリードコマンド)を生成してメモリカード3に向けて送信し(ステップS8)、監視状態に戻る。
【0052】
なお、ここでは詳細を図示していないが、コマンドの送信を完了すると、CPU20は、メモリカード3から、当該コマンドに対する結果を取得する。詳細は後述するが、ここに示す例では、メモリアレイ32の「2000番地」から読み出されたユーザ情報90がインタフェース23を介して受信される。
【0053】
このように、コンピュータ2には、予めメモリカード3から暗号化済みアドレス91及びアドレス発行ドライバ92が送信され記憶されるので、コンピュータ2(CPU20)は必要に応じて暗号化済みアドレス91を特定してコマンドを生成することが可能である。
【0054】
また、メモリカード3に送信されるアドレスは、暗号化された暗号化済みアドレス91であるため、コンピュータ2とメモリカード3との間でこれを不正に取得したとしても解析は容易ではない。すなわち、従来のシステムに比べて、コンピュータ2とメモリカード3との間の通信のセキュリティレベルは劣るものではない。
【0055】
監視状態において終了指示があると、CPU20はステップS8においてYesと判定し、全ての処理を終了する。
【0056】
以上が、コンピュータシステム1の主にコンピュータ2の動作である。次に、メモリカード3の動作を説明する。
【0057】
図3は、メモリカード3の動作を示す流れ図である。メモリカード3のメモリコントローラ30は、所定の初期設定を行って動作モードを「ノーマルモード」に設定した後、監視状態となる。なお、ノーマルモードとは、セキュリティ機能をOFFにしたモードであって、具体的には、メモリコントローラ30がコマンドに含まれるアドレスを復号回路31に転送しないモードである。
【0058】
メモリコントローラ30は、監視状態において、コンピュータ2からコマンドを受信したか否か(ステップS11)、及び、終了指示があったか否か(ステップS18)を監視する。
【0059】
まず、監視状態においてコンピュータ2から暗号化済みアドレス91及びアドレス発行ドライバ92を送信するよう求める「要求」を受信した場合について説明する。「要求」は、先述のようにリードコマンドである。したがって、メモリコントローラ30はステップS11においてYesと判定し、動作モードがノーマルモードか否かを判定する(ステップS12)。
【0060】
メモリカード3は立ち上げ時においてノーマルモードで動作しており、コンピュータ2から「要求」を受信したときの動作モードはノーマルモードである。したがって、要求(要求用アドレスを含むリードコマンド)を受信した場合、メモリコントローラ30はステップS12においてYesと判定し、要求に含まれる要求用アドレスを復号回路31に転送することなく、コマンドを実行する(ステップS13)。これにより、メモリコントローラ30によって要求用アドレスの位置からデータが読み出される。
【0061】
先述のように、要求用アドレスは、暗号化済みアドレス91及びアドレス発行ドライバ92の位置を指定するアドレスである。すなわち、「要求」が受信された場合、ステップS13が実行されることにより、暗号化済みアドレス91及びアドレス発行ドライバ92がメモリアレイ32から読み出される。
【0062】
暗号化済みアドレス91及びアドレス発行ドライバ92を読み出すと、メモリコントローラ30は、読み出した暗号化済みアドレス91及びアドレス発行ドライバ92を実行結果としてコンピュータ2に送信する(ステップS17)。
【0063】
このようにして、コンピュータ2に送信された暗号化済みアドレス91及びアドレス発行ドライバ92は、先述のように(図2に示すステップS2)、コンピュータ2によって取得され、記憶される。なお、ステップS17を実行して、暗号化済みアドレス91及びアドレス発行ドライバ92の送信を終了すると、メモリコントローラ30は、監視状態に戻る。
【0064】
このように、未だコンピュータ2が暗号化済みアドレス91及びアドレス発行ドライバ92を取得していない状態では、コンピュータ2は暗号化済みアドレス91を発行することができない。この状態でコマンドに含まれるアドレスが復号回路31に転送されると、当該アドレスが暗号化済みアドレス91ではないために、正常なアクセスが行えない。しかし、コンピュータシステム1では、このときメモリカード3がノーマルモードに設定されるので、要求用アドレスが復号回路31に転送されることがない。したがって、暗号化済みアドレス91ではない要求用アドレスによって正常に暗号化済みアドレス91及びアドレス発行ドライバ92を読み出すことができる。
【0065】
暗号化済みアドレス91及びアドレス発行ドライバ92を取得すると、コンピュータ2は動作モードをセキュリティモードに切り替えるための遷移コマンドをメモリカード3に送信する。この遷移コマンドを受信した場合について説明する。
【0066】
監視状態において、遷移コマンドを受信すると、メモリコントローラ30はステップS11においてYesと判定する。このとき動作モードはノーマルモードであるから、ステップS12においてYesと判定され、ステップS13が実行されることにより、受信した遷移コマンドが実行される(すなわち、セキュリティモードに切り替わる)。
【0067】
このようにコンピュータシステム1は、コンピュータ2が暗号化済みアドレス91及びアドレス発行ドライバ92を取得した後は、メモリカード3を速やかにセキュリティモードに遷移させる。
【0068】
次に、監視状態において、メモリカード3が通常のコマンド(暗号化済みアドレス91を含むコマンド)を受信した場合を説明する。
【0069】
監視状態においてコンピュータ2からコマンドを受信すると、メモリコントローラ30はステップS11においてYesと判定する。通常のコマンドを受信するとき、メモリカード3は、既にセキュリティモードに遷移している。
【0070】
したがって、メモリコントローラ30は、ステップS12においてNoと判定し、受信したコマンドに含まれる暗号化済みアドレス91を抽出して、復号回路31に転送する(ステップS14)。なお、ステップS14において復号回路31に転送される暗号化済みアドレス91とは、先述のように(図2に示すステップS7)、コンピュータ2が実行しようとするコマンドに応じて、特定された暗号化済みアドレス91である。
【0071】
復号回路31は、転送された暗号化済みアドレス91を論理回路に入力することにより、正規アドレス(メモリアレイ32の物理アドレス)を生成し(ステップS15)、生成した正規アドレスをメモリコントローラ30に転送する。上記に示した例では、受信したリードコマンドから抽出され転送された暗号化済みアドレス91の「1000番地」が、復号回路31によって、正規アドレスの「2000番地」に復号され、メモリコントローラ30に転送される。
【0072】
復号回路31から正規アドレスが転送されると、メモリコントローラ30は、転送された正規アドレスに基づいてコマンドを実行する(ステップS16)。そして、その実行結果をコンピュータ2に向けて送信し、監視状態に戻る。ここに示す例では、正規アドレスが「2000番地」であるから、メモリアレイ32の「2000番地」からユーザ情報90が読み出され、コンピュータ2に向けて送信される。
【0073】
このように、本実施の形態におけるメモリカード3では、コマンドに含まれるアドレス(暗号化済みアドレス91)を、復号回路31で復号することによって正規アドレスを生成する。したがって、メモリコントローラ30はコンピュータ2が意図した位置(メモリアレイ32における位置)にアクセスすることができる。
【0074】
監視状態において、終了指示を検出すると、メモリコントローラ30は、ステップS18においてYesと判定し、全ての処理を終了する。
【0075】
以上が、本実施の形態におけるコンピュータシステム1の動作の説明である。
【0076】
次に、コンピュータシステム1において、メモリアレイ32に記憶されているデータが不正カードにコピーされた場合について、検証する。
【0077】
不正コピーを行う業者は、通常、製造工場を保有していないため、一般に流通しているハードウェア(汎用カード)を購入して不正カードとして使用する。あるいは、汎用品(メモリとFPGA)を組み合わせて模造品を製造して不正カードとして使用する。このような不正カードであっても、メモリカード3のメモリコントローラ30、メモリアレイ32及びインタフェース33に相当する構成を備えていれば、コンピュータ2に装着することが可能である。
【0078】
コンピュータ2に装着可能な不正カードのメモリアレイに、メモリカード3のメモリアレイ32に記憶されているデータがそのままコピーされると、ユーザ情報90、暗号化済みアドレス91及びアドレス発行ドライバ92が不正カードのメモリアレイに記憶された状態となる。
【0079】
コンピュータ2に装着されるメモリカードが不正カードであったとしても、当該不正カードにユーザ情報90、暗号化済みアドレス91及びアドレス発行ドライバ92が記憶されていれば、コンピュータ2は暗号化済みアドレス91及びアドレス発行ドライバ92を、不正カードのメモリアレイから正常に取得することができる。すなわち、メモリカード3の代わりに不正カードが使用された場合であっても、図2に示すコンピュータ2の処理は、ほぼそのまま動作する危険性がある。
【0080】
しかし、汎用カードである不正カードは、ハードウェアとしての復号回路31を備えていない。そのため、不正カードは、コンピュータ2から受信したコマンドに含まれる暗号化済みアドレス91を正規アドレスに復号することができず、意図した位置にアクセスすることができない。例えば、暗号化済みアドレス91をそのまま正規アドレスと認識すれば、誤った位置にアクセスすることになる。
【0081】
これを上記に示した例で具体的に説明すると、メモリアレイの「2000番地」に記憶されているユーザ情報90を読みだそうとしても、コンピュータ2が生成するリードコマンドには暗号化済みアドレス91が含められており、その値として「1000」が送信される。したがって、例えリードコマンドに含まれる暗号化済みアドレス91をアドレスとして認識できたとしても、不正カードはメモリアレイの「1000番地」からデータを読み出すこととなる。すなわち、所望するユーザ情報90が不正カードのメモリアレイに記憶されているにもかかわらず、不正カードはこれを読み出すことができない。
【0082】
一般に、復号回路31の内容(論理回路の構造)を解析することは非常に困難であるので、既に存在する不正カードのメモリアレイにメモリアレイ32に記憶されている情報をコピーしたとしても、正規のアドレスを得ることができないので、当該不正カードは正常に動作しない。したがって、コンピュータシステム1のセキュリティ機能は、従来のシステムに比べて向上する。
【0083】
また、先述のように、コンピュータシステム1では、メモリカード3から予め暗号化済みアドレス91及びアドレス発行ドライバ92をコンピュータ2に送信する。これはコンピュータ2側のセキュリティ機能をメモリカード3から送信した情報に基づいて構築することを意味する。すなわち、コンピュータシステム1では、メモリカード3の設計変更のみでセキュリティ機能の更新(アップデート)が可能であり、コンピュータ2側の更新は不要である。したがって、コンピュータシステム1は容易にアップデートすることができる。また、頻繁にセキュリティ機能のアップデートを行ったとしても、コンピュータ2を所有するユーザに負担をかけることはない。
【0084】
一方、旧ゲームソフトについてセキュリティ機能が破られて、復号回路31に相当する構成を備えた不正カードが登場し、これが流通した場合を考える。
【0085】
この場合、例えば新作ゲームソフトを発売する際に、暗号化済みアドレス91及びアドレス発行ドライバ92を更新した上で、復号回路31を新たに組み替えたメモリカード3を製造して販売すれば、流通した不正カードに新作ゲームソフトをコピーしても、復号回路31が異なるため新作ゲームソフトは動作しない。すなわち、コンピュータシステム1では、万が一セキュリティ機能が破られたとしても、被害を最小限(ここに示す例では旧ゲームソフトのみ)に抑えることができる。そして、このような仕様変更を行ったとしても、旧ゲームソフトを格納した正規のメモリカード3はコンピュータ2において問題なく動作するため、正規品を購入したユーザに負担をかけることもない。
【0086】
以上のように、第1の実施の形態におけるコンピュータシステム1では、メモリカード3が暗号化済みアドレス91及びアドレス発行ドライバ92をコンピュータ2に送信する。そして、メモリアレイ32にアクセスするとき、コンピュータ2は、メモリカード3から取得したアドレス発行ドライバ92によって必要な暗号化済みアドレス91を特定し、特定した暗号化済みアドレス91をメモリカード3に対して発行する。さらに、メモリカード3の復号回路31は、コンピュータ2において発行された暗号化済みアドレス91に基づいて、メモリアレイ32における位置を指定するための正規アドレスを生成し、メモリコントローラ30は、復号回路31により生成された正規アドレスに基づいてメモリアレイ32にアクセスする。このように構成することにより、メモリカード3に記憶されている情報をコピーしただけでは、コンピュータシステム1が正常に動作しないので、セキュリティが向上する。また、アップデートを行う場合においてコンピュータ2を変更する必要がないので、例えば、暗号の仕様変更が容易である。
【0087】
なお、本実施の形態では、動作モードを適宜設定することにより復号回路31を用いるか否かを判定した。しかし、メモリカード3において、受信したコマンドを逐次解析して、復号回路31を用いるか否かを判定するようにしてもよい。例えば、暗号化済みアドレス91及びアドレス発行ドライバ92を要求する際に使用するコマンドを、通常のコマンドと識別可能に構成するとともに、メモリカード3側でこれを判定し、復号回路31にアドレスを転送するか否かを判定してもよい。
【0088】
また、ユーザ情報90には、コマンドコードが含まれていてもよい。すなわち、コンピュータ2は、少なくともメモリカード3に対して「要求」を行うためのコマンドコードを記憶していれば、他のコマンドコードはユーザ情報90として、後から取得するようにしてもよい。
【0089】
<2. 第2の実施の形態>
上記第1の実施の形態では、メモリコントローラ30は、復号回路31から転送された正規アドレスに基づいて、コンピュータ2から受信したコマンドを実行する例で説明した。しかし、本発明は、このような構成に限定されるものではない。すなわち、以下のような手順を採用してもよい。
【0090】
コンピュータ2において、一般のアクセス要求が発生した場合、コンピュータ2は、アドレス発行ドライバ92によって暗号化済みアドレス91を特定し、特定した暗号化済みアドレス91を含むアドレス変換コマンドを生成してメモリカード3に送信する。すなわち、本実施の形態におけるコンピュータ2は、発生したアクセス要求(例えば、読み出し要求)に先だって、必ず正規アドレスを取得するための要求を行う。
【0091】
コンピュータ2からコマンドを受信した場合、メモリカード3のメモリコントローラ30は、当該コマンドに含まれる暗号化済みアドレス91を復号回路31に転送する。さらに、復号回路31から転送される正規アドレスを、アドレス変換コマンドの実行結果としてコンピュータ2に送信する。
【0092】
コンピュータ2では、アドレス変換コマンドの実行結果として、メモリカード3から正規アドレスを受け取った後に、メモリカード3の動作モードをノーマルモードに変更する遷移コマンドを送信する。当該遷移コマンドを受信したメモリカード3の動作モードは、セキュリティモードからノーマルモードに変更される。
【0093】
次に、コンピュータ2は、アドレス変換コマンドの実行結果として受信した正規アドレスを含むコマンド(例えばリードコマンド)を生成してメモリカード3に送信する。
【0094】
このとき、メモリカード3の動作モードはノーマルモードに変更されているので、当該コマンドに含まれる正規アドレスが復号回路31に転送されることはなく、正常にコマンドが実行される。
【0095】
そして、このコマンドの実行結果を受信したコンピュータ2は、再び、ノーマルモードをセキュリティモードに変更する遷移コマンドをメモリカード3に送信する。これにより、メモリカード3の動作モードが再びセキュリティモードに変更される。
【0096】
このように、動作モードを適宜遷移させることにより、通常のコマンド(例えば、リードコマンド、ライトコマンド、デリートコマンド等)に含まれるアドレスとしては、正規アドレスが用いられるように構成しても、第1の実施の形態と同様の効果を得ることができる。
【0097】
<3. 第3の実施の形態>
上記実施の形態では、本発明におけるメモリシステムがメモリカード3としての一体構造体(パッケージ)を形成している例について説明したが、メモリシステムはこのような形態に限定されるものではない。
【0098】
図4は、第3の実施の形態におけるコンピュータシステム1aを示す図である。コンピュータシステム1aは、コンピュータ2a、メモリカード3a及びサーバ装置4を備えている。
【0099】
コンピュータ2aは、第1の実施の形態におけるコンピュータ2に相当する装置であり、ネットワーク9を介してサーバ装置4とデータ通信が可能な状態で接続されている。すなわち、コンピュータ2aはサーバ装置4との間でデータの送受信を行う通信部(図示せず)を備えている。
【0100】
メモリカード3aは、第1の実施の形態におけるメモリカード3に相当する装置であり、ユーザ情報90が記憶される。メモリカード3aのハードウェア構成は、ほぼメモリカード3と同様であるが、メモリカード3aのメモリアレイには、暗号化済みアドレス91及びアドレス発行ドライバ92が記憶されていない。
【0101】
サーバ装置4は、一般的なコンピュータの構成及び機能を備えた装置であり、図示しない記憶装置を備えている。サーバ装置4の記憶装置には、暗号化済みアドレス91及びアドレス発行ドライバ92が記憶される。
【0102】
このような構成のコンピュータシステム1aの動作について説明する。
【0103】
コンピュータ2aは、例えば、電源投入時にサーバ装置4に対して、暗号化済みアドレス91及びアドレス発行ドライバ92を送信するように要求する。この要求に応じて、サーバ装置4は、コンピュータ2aに対して、暗号化済みアドレス91及びアドレス発行ドライバ92を送信する。サーバ装置4から送信された暗号化済みアドレス91及びアドレス発行ドライバ92は、コンピュータ2aのRAMに記憶される。
【0104】
すなわち、本実施の形態におけるコンピュータシステム1aでは、コンピュータ2aによる暗号化済みアドレス91及びアドレス発行ドライバ92の取得が、サーバ装置4から行われる。なお、暗号化済みアドレス91及びアドレス発行ドライバ92が取得された後は、第1の実施の形態と同様に動作が行われる。
【0105】
一般に、コンピュータ2aはコンテンツを利用するユーザ側に設置されている装置であり、かつ、台数も比較的多いため容易にアップデートできない。しかし、サーバ装置4はコンテンツを配信する提供者側に設置することができ、かつ、必要となる台数も限られているので、容易にアップデートすることができる。
【0106】
以上のように、第3の実施の形態におけるコンピュータシステム1aのように、メモリシステムがメモリカード3aとサーバ装置4とを備える構造であっても、第1の実施の形態と同様に、コンピュータ2aを変更することなく、セキュリティ機能のアップデートを行うことができる。
【0107】
なお、サーバ装置4に記憶されている暗号化済みアドレス91及びアドレス発行ドライバ92がアップデートされると、それまでのメモリカード3aが使用できなくなる可能性がある。この問題を回避するためには、例えば、装着されたメモリカード3aのバージョン情報等を、コンピュータ2aからサーバ装置4に向けて送信し、このバージョン情報に応じて、サーバ装置4がコンピュータ2aに送信する暗号化済みアドレス91及びアドレス発行ドライバ92を選択するように構成すればよい。
【0108】
また、サーバ装置4から取得された暗号化済みアドレス91及びアドレス発行ドライバ92は、一旦、メモリカード3aに記憶されてもよい。例えば、メモリカード3aに補助的な専用の記憶領域(EEPROM等)を、ユーザ情報90を記憶するメモリアレイとは別に設けておき、当該記憶領域にサーバ装置4から取得した暗号化済みアドレス91及びアドレス発行ドライバ92を記憶してもよい。
【0109】
また、暗号化済みアドレス91及びアドレス発行ドライバ92がいずれもサーバ装置4に記憶されると説明したが、暗号化済みアドレス91またはアドレス発行ドライバ92の一方のみがサーバ装置4に記憶され、他方がメモリカード3aに記憶されてもよい。
【0110】
<4. 変形例>
以上、本発明の実施の形態について説明してきたが、本発明は上記実施の形態に限定されるものではなく様々な変形が可能である。
【0111】
例えば、上記実施の形態に示した動作は例示であって、ここに示した工程に限定されるものではない。すなわち、同様の効果を得られるのであれば、適宜変更されてもよいし、他のセキュリティ機能と重畳的に採用されてもよい。
【0112】
また、上記実施の形態では、正規アドレスはメモリアレイ32の物理アドレスとして説明したが、正規アドレスは論理アドレスであってもよい。その場合、メモリコントローラ30において、論理アドレスが物理アドレスに変換される。
【0113】
また、上記実施の形態では、暗号情報の全て(暗号化済みアドレス91またはアドレス発行ドライバ92)がコンピュータ2,2a以外の装置に記憶される例について説明したが、このような例に限定されるものではない。例えば、アドレス発行ドライバ92がコンピュータ2,2aに記憶されており、コンピュータ2,2aが暗号化済みアドレス91のみ外部から取得するよう構成してもよい。その場合であっても、暗号化済みアドレス91及び復号回路31をアップデートするだけで、セキュリティ機能を更新することができる。
【0114】
さらに、復号回路31は論理回路の一部がハードウェアとして実現されていればよく、復号回路31の機能の一部をソフトウェアによる情報処理で実現してもよい。その場合は、当該ソフトウェアの書き換えにより復号回路31のアップデートが可能となる。
【図面の簡単な説明】
【0115】
【図1】本発明に係るコンピュータシステムを示す図である。
【図2】コンピュータの動作を示す流れ図である。
【図3】メモリカードの動作を示す流れ図である。
【図4】第3の実施の形態におけるコンピュータシステムを示す図である。
【符号の説明】
【0116】
1,1a コンピュータシステム
2,2a コンピュータ
20 CPU
21 RAM
22 入出力装置
23 インタフェース
3,3a メモリカード
30 メモリコントローラ
31 復号回路
32 メモリアレイ
33 インタフェース
4 サーバ装置
9 ネットワーク
90 ユーザ情報
91 暗号化済みアドレス
92 アドレス発行ドライバ

【特許請求の範囲】
【請求項1】
コンピュータに接続されるメモリシステムであって、
前記コンピュータからアクセスされるユーザ情報を記憶するメモリアレイと、
暗号情報を記憶する記憶部と、
前記記憶部に記憶された暗号情報を前記コンピュータに送信する通信部と、
前記コンピュータにより発行された暗号化済みアドレスに基づいて、前記メモリアレイにおける位置を指定するための正規アドレスを生成する復号回路と、
前記復号回路により生成された正規アドレスに基づいて前記メモリアレイにアクセスする制御回路と、
を備えることを特徴とするメモリシステム。
【請求項2】
請求項1に記載のメモリシステムであって、
ネットワークを介して前記コンピュータに接続されるサーバ装置を備え、
前記記憶部及び前記通信部は、前記サーバ装置に設けられることを特徴とするメモリシステム。
【請求項3】
請求項1または2に記載のメモリシステムであって、
前記記憶部に記憶される暗号情報は、暗号化済みアドレスを含むことを特徴とするメモリシステム。
【請求項4】
請求項1ないし3のいずれかに記載のメモリシステムであって、
前記記憶部に記憶される暗号情報は、暗号化済みアドレスを前記コンピュータにおいて発行するためのドライバを含むことを特徴とするメモリシステム。
【請求項5】
コンピュータに装着されるメモリカードであって、
前記コンピュータからアクセスされるユーザ情報を記憶するメモリアレイと、
暗号情報を記憶する記憶部と、
前記記憶部に記憶された暗号情報を前記コンピュータに送信するとともに、前記コンピュータにより前記暗号情報に基づいて発行された暗号化済みアドレスを受信する通信部と、
前記通信部により受信された暗号化済みアドレスに基づいて、前記メモリアレイにおける位置を指定するための正規アドレスを生成する復号回路と、
前記復号回路により生成された正規アドレスに基づいて前記メモリアレイにアクセスする制御回路と、
を備えることを特徴とするメモリカード。
【請求項6】
請求項5に記載のメモリカードであって、
前記記憶部に記憶される暗号情報は、暗号化済みアドレスを含むことを特徴とするメモリカード。
【請求項7】
請求項5または6に記載のメモリカードであって、
前記記憶部に記憶される暗号情報は、暗号化済みアドレスを前記コンピュータにおいて発行するためのドライバを含むことを特徴とするメモリカード。
【請求項8】
コンピュータとメモリシステムとを備えるコンピュータシステムであって、
前記メモリシステムが、
前記コンピュータからアクセスされるユーザ情報を記憶するメモリアレイと、
暗号情報を記憶する記憶部と、
前記記憶部に記憶された暗号情報を前記コンピュータに送信する通信部と、
前記コンピュータにより発行された暗号化済みアドレスに基づいて、前記メモリアレイにおける位置を指定するための正規アドレスを生成する復号回路と、
前記復号回路により生成された正規アドレスに基づいて前記メモリアレイにアクセスする制御回路と、
を備え、
前記コンピュータは、前記メモリアレイにアクセスするときにおいて、前記通信部により送信された暗号情報によって、前記アクセスに必要な暗号化済みアドレスを特定し、特定した暗号化済みアドレスを前記メモリシステムに対して発行することを特徴とするコンピュータシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2008−262413(P2008−262413A)
【公開日】平成20年10月30日(2008.10.30)
【国際特許分類】
【出願番号】特願2007−105083(P2007−105083)
【出願日】平成19年4月12日(2007.4.12)
【出願人】(591128453)株式会社メガチップス (322)
【Fターム(参考)】