(57)【特許請求の範囲】
【請求項１】
外部システムと接続される複数の端子を有する外側端子群と、データ記憶手段と接続される複数の端子を有する内側端子群との間で、端子の接続を組み替えることでデータ保護を行うメモリシステムであって、
前記外部システムからのデータ保護要求に応じて、前記データ記憶手段に格納されたデータからキーワードを生成するキーワード生成手段と、
前記キーワードに基づき擬似乱数値を生成する擬似乱数生成手段と、
前記擬似乱数生成手段により生成された前記擬似乱数値に基づき端子組替パターンを生成する端子組替パターン生成手段と、
前記端子組替パターンに基づいて、前記外側端子群の端子と前記内側端子群の端子との接続を組み替える端子接続組替手段と、を有するメモリシステム。
【請求項２】
前記キーワード生成手段により生成された前記キーワードを格納するキーワード格納手段と、
前記キーワードを前記外部システムへ通知するキーワード通知手段と、
入力されたデータと前記キーワード格納手段に格納された前記キーワードとが一致するか否かを判定する判定手段と、をさらに備え、
前記キーワード通知手段は、前記キーワード生成手段により前記キーワードが生成された後に、前記キーワードを前記外部システムへ通知し、
前記外部システムからの指定キーワードを含むデータ保護解除要求に応じて、
前記判定手段は、前記指定キーワードを入力されたデータとして判定し、
前記キーワードと前記指定キーワードとが一致すると判定された場合に、
前記端子組替パターン生成手段は、前記外側端子群の端子と前記内側端子群の端子との接続対を正常接続に戻すように端子正常接続パターンを生成し、
前記端子接続組替手段は、前記端子正常接続パターンに基づいて、前記外側端子群の端子と前記内側端子群の端子との接続を組み替える、請求項１に記載のメモリシステム。
【請求項３】
前記キーワード生成手段は、一方向ハッシュ関数を備え、
前記キーワードは、前記一方向ハッシュ関数により生成されるハッシュ値であることを特徴とする請求項１又は２に記載のメモリシステム。
【請求項４】
前記端子は、前記メモリシステムのデータ端子又はアドレス端子のいずれか一方、もしくは両方である請求項１乃至３のいずれか１項に記載のメモリシステム。
【請求項５】
前記外部システムより入力された任意のデータであるユーザデータを格納するユーザデータ格納手段をさらに備え、
前記キーワード生成手段は、前記データ記憶手段に格納されたデータと前記ユーザデータ格納手段に格納されたユーザデータとを結合して、前記キーワードを生成する、請求項１乃至４のいずれか１項に記載のメモリシステム。
【請求項６】
前記擬似乱数生成手段は、前記外側端子群及び前記内側端子群の端子数分の擬似乱数値を擬似乱数列として生成し、
前記端子組替パターン生成手段は、前記擬似乱数列の要素番号と前記要素番号に対応する前記擬似乱数列の擬似乱数値との対応関係を、前記外側端子群の端子番号及び前記内側端子群の端子番号として対応付けた端子組替パターンを生成する、請求項１乃至５のいずれか１項に記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリシステム及びデータ保護方法に関し、特にデータ転送経路を組み替えるデータ保護機構を備えるメモリシステム及び方法に関する。
【背景技術】
【０００２】
近年のデジタル技術の発展に伴い、取り扱うデータのセキュリティに対する要求が高まってきている。従来はシステム外へ出力されるデータに対してのセキュリティがメインであったため、システム内で使用されている半導体メモリ（メモリシステム）を取り外し読み取ることは可能であった。そのため、取り外された半導体メモリ（メモリシステム）のデータが不正に利用されることが無いようにする必要性がある。
【０００３】
例えば、特許文献１にメモリシステムにおける従来のデータ保護方法が開示されている。特許文献１は、データ転送システムとＤＤＲ−ＳＤＲＡＭ（Double Data Rate - Synchronous Dynamic Random Access Memory）から構成されるシステムである。図１１において、９１はデータ転送システム、９２は転送を制御するＬＳＩ（Large Scale Integration）、９３はＢＵＳ Ｉ／Ｆ（Inter Face）、９４はＤＤＲ−ＳＤＲＡＭ、９１０はＷＲ ＦＩＦＯ（First In First Out）、９２０はスクランブラ、９３０はＤＤＲ−ＳＤＲＡＭ Ｉ／Ｆ、９４０はＲＤ ＦＩＦＯ、９５０はデスクランブラを示し、矢印は各ブロック間のデータの流れを示す。
【０００４】
データ転送システム９１は、システム外であるＬＳＩ９２からＢＵＳＩ／Ｆ９３を介したＤＤＲ−ＳＤＲＡＭ９４へのデータ格納時に、スクランブラ９２０において、データ線を任意に設定した時間毎に組み替える。また、データ転送システム９１は、ＤＤＲ−ＳＤＲＡＭ９４から前記システム外へのデータ読み出し時に、デスクランブラ９５０において、データ線を組み替えて元に戻す。
【０００５】
データ格納時にスクランブラ９２０は、まず、擬似乱数（スクランブルデータ）を発生させる。次に、予めデータ転送システム９１内に有する複数の組替パターンテーブルの中から、発生させたスクランブルデータを基に組替パターンテーブルを選択する。その後、選択された組替パターンテーブルにより単位データ量毎にデータのビット配列を組み替えて、スクランブル済みデータを生成する。そして、スクランブル済みデータ及びスクランブルデータをまとめて、ＤＤＲ−ＳＤＲＡＭ９４へ格納する。このとき、スクランブルデータは、任意に設定した時間毎に発生させる。
【０００６】
また、データ読み出し時にデスクランブラ９５０は、まず、ＤＤＲ−ＳＤＲＡＭ９４から読み出したデータをスクランブル済みデータ及びスクランブルデータに分離する。次に、予めデータ転送システム９１内に有する複数の逆変換用組替パターンテーブルの中から、分離されたスクランブルデータを基に逆変換用組替パターンテーブルを選択する。その後、選択された逆変換用組替パターンテーブルにより単位データ量毎にデータのビット配列を組み替えて、デスクランブル済みデータ、すなわち、元のデータに変換する。そして、デスクランブル済みデータをＢＵＳＩＦ９３へ送る。
【特許文献１】特開２００７−１８３８３４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１に記載されたデータ保護方法には、組替パターンテーブル及び逆変換用組替パターンテーブル（組替パターンデータ）の予測不可能性が低いという問題点がある。それは、組替パターンデータは、予めデータ転送システム９１内に保持しておく必要があり、保持可能なテーブル個数の制約から、扱うデータ量に応じて組替パターンデータを増加させることは困難なためである。また、読み出したデータ内にスクランブルデータが含まれているため、スクランブルデータから組替パターンデータを突き止められる可能性があるためである。特に、組替パターンテーブルがユーザ等により設定された場合、無意識の癖などで規則性が見出される可能性がある。そのため、組み替えられたデータを読み出された際に、データを解読される可能性がある。
【課題を解決するための手段】
【０００８】
本発明の第１の態様にかかるメモリシステムは、外部システムと接続される複数の端子を有する外側端子群（例えば、本発明の実施の形態におけるデータ端子１０ａ又はアドレス端子１１ａ）と、データ記憶手段（例えば、本発明の実施の形態におけるデータ記憶部６）と接続される複数の端子を有する内側端子群（例えば、本発明の実施の形態におけるデータ端子１０ｂ又はアドレス端子１１ｂ）との間で、端子の接続を組み替えることでデータ保護を行うものである。前記外部システムからのデータ保護要求に応じて、データ記憶部６に格納されたデータからキーワードを生成するキーワード生成手段（例えば、本発明の実施の形態におけるハッシュ値生成部５）と、前記キーワードに基づき擬似乱数値を生成する擬似乱数生成手段（例えば、本発明の実施の形態における擬似乱数生成部３２）と、前記擬似乱数生成手段により生成された前記擬似乱数値に基づき端子組替パターンを生成する端子組替パターン生成手段（例えば、本発明の実施の形態におけるデータ端子組替制御部３３又はアドレス端子組替制御部３４）と、前記端子組替パターンに基づいて、前記外側端子群の端子と前記内側端子群の端子との接続を組み替える端子接続組替手段（例えば、本発明の実施の形態におけるデータ端子組替装置７又はアドレス端子組替装置８）と、を有する。
【０００９】
上述のメモリシステムにより、データ記憶部６に格納されたデータから生成されたキーワードを基に、端子数分の擬似乱数値を生成し、生成された擬似乱数列の列番号と擬似乱数値の対応付けを外側端子と内側端子の対応付けとして端子組替パターンとすることで、端子接続組替を行うことができる。これにより、本来接続されてはならない他のユーザシステムにメモリシステム１が接続されたとしても端子の接続が異なるため、正しいデータの配列でデータを読み出すことができなり、データを保護することができる。
【００１０】
特許文献１のように、組替パターンデータを保持する場合、全ての組替パターンデータが必要となるが、組合せ数が増えるほど現実的では無いため全組合せ数より少ない数に絞られることになる。そのため、組替パターンデータの予測不可能性が低くなる。それに比べ、本発明の第１の態様にかかるメモリシステムは、端子数分の擬似乱数値を生成することにより端子組替パターンを生成するため、端子数の接続対を全て網羅することができ、特許文献１に比べて、無作為性および予測不可能性が高い端子の組み替えができる。
【発明の効果】
【００１１】
本発明により、端子組替パターンにおける予測不可能性の高いデータ保護機構を備えたメモリシステムを提供することができる。
【発明を実施するための最良の形態】
【００１２】
以下では、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略する。
【００１３】
発明の実施の形態１．
図１は、本発明の実施の形態１にかかるデータ保護機構を備えたメモリシステム１の全体構成を示すブロック図である。メモリシステム１は、制御端子９、データ端子１０、及び、アドレス端子１１により外部のユーザシステムと接続することができる。ユーザシステムは、メモリシステム１に対して、データの格納、読み出しの要求を行うものである。
【００１４】
メモリシステム１は、データ記憶装置２と、制御装置３と、ハッシュ値格納部４と、データ端子組替装置７と、アドレス端子組替装置８と、を備える。
【００１５】
データ記憶装置２は、ハッシュ値生成部５と、データ記憶部６と、を備える。データ記憶部６は、データを記憶する記憶装置である。ハッシュ値生成部５は、一方向ハッシュ関数を備え、入力データを基に固定長の擬似乱数（ハッシュ値）を生成するものである。ここでは、ハッシュ値生成部５は、ハッシュ値データ制御ＢＵＳ−ＩＦ１４を介して、制御装置３からのハッシュ値生成要求を受け付け、データ記憶部６に格納されているデータをハッシュ値生成用平文データ信号１５として読み出して、ハッシュ値を生成する。また、ハッシュ値生成部５は、生成したハッシュ値をハッシュ値データ制御ＢＵＳ−ＩＦ１４を介して、ハッシュ値格納部４へ格納する。
【００１６】
ハッシュ値格納部４は、ハッシュ値を記憶する記憶装置である。
【００１７】
制御装置３は、データ保護及びデータ保護解除処理を制御する装置である。制御装置３は、メモリシステム制御ＢＵＳ−ＩＦ１６を介して制御端子９に接続された外部のユーザシステムと各種制御情報の送受信を行う。また、制御装置３は、ハッシュ値データ制御ＢＵＳ−ＩＦ１４を介して、データ記憶装置２へハッシュ値生成要求を送り、生成されたハッシュ値をハッシュ値格納部４から受け取る。また、制御装置３は、後述するデータ端子組替パターン制御信号１２及びアドレス端子組替パターン制御信号１３により、データ端子組替装置７及びアドレス端子組替装置８へデータ端子及びアドレス端子の接続組替を指示する。
【００１８】
データ端子組替装置７は、データ端子１０のメモリシステム１外側とデータ記憶装置２の間に位置し、外部接続側データ端子１０ａとデータ記憶装置接続側データ端子１０ｂの接続組替を担う。
【００１９】
アドレス端子組替装置８は、アドレス端子１１のメモリシステム１外側とデータ記憶装置２の間に位置し、外部接続側アドレス端子１１ａとデータ記憶装置接続側アドレス端子１１ｂの接続組替を担う。
【００２０】
尚、ここでは、データ端子１０及びアドレス端子１１の端子接続の初期状態を次のように定める。データ端子１０においては、外部接続側データ端子１０ａの第１端子、第２端子、・・・、第ｍ端子と、データ記憶装置接続側データ端子１０ｂの第１端子、第２端子、・・・、第ｍ端子とが接続されているものとし、これをメモリシステム１における正規のデータ端子接続対とする。また、アドレス端子１１においては、外部接続側アドレス端子１１ａの第１端子、第２端子、・・・、第ｎ端子と、データ記憶装置接続側アドレス端子１１ｂの第１端子、第２端子、・・・、第ｎ端子とが接続されているものとし、これをメモリシステム１における正規のアドレス端子接続対とする。また、上述した正規のデータ端子接続対及び正規のアドレス端子接続対は、制御装置３内に格納されているものとする。
【００２１】
図２は、本発明の実施の形態１にかかる制御装置３の構成を示すブロック図である。制御装置３は、システム制御部３１と、擬似乱数生成部３２と、データ端子組替制御部３３と、アドレス端子組替制御部３４とを含む。尚、その他の構成については、図１と同様のため、説明を省略する。
【００２２】
システム制御部３１は、制御端子９と、データ記憶装置２と、ハッシュ値格納部４とのやり取りと、擬似乱数生成部３２と、データ端子組替制御部３３と、アドレス端子組替制御部３４とのやり取りを制御する。
【００２３】
擬似乱数生成部３２は、システム制御部３１から受け取ったデータを初期状態とした擬似乱数生成関数により複数の擬似乱数を擬似乱数列として生成し、生成した擬似乱数列をシステム制御部３１へ送る。ここで、擬似乱数生成部３２は、データ端子用擬似乱数生成関数及びアドレス端子用擬似乱数生成関数を備えているものとする。また、メモリシステム１の備えるデータ端子１０の端子数及びアドレス端子１１の各端子数を予め記憶しているものとする。データ端子用擬似乱数生成関数は、データ端子１０の端子数分の擬似乱数を生成し、データ端子用擬似乱数列とする。また、同様に、アドレス端子用擬似乱数生成関数は、アドレス端子１１の端子数分の擬似乱数を生成し、アドレス端子用擬似乱数列とする。また、データ端子用及びアドレス端子用擬似乱数生成関数でそれぞれ生成される擬似乱数の上限値は各端子数の最大値とする。
【００２４】
データ端子組替制御部３３は、システム制御部３１から受け取った擬似乱数列を基に、データ端子組替パターンデータを生成し、データ端子組替装置７へ送り、データ端子の接続組替を指示する。ここで、データ端子組替パターンデータとは、外部接続側データ端子１０ａとデータ記憶装置接続側データ端子１０ｂの各端子の接続先の対応付けを定義したものである。
【００２５】
アドレス端子組替制御部３４は、システム制御部３１から受け取った擬似乱数列を基に、アドレス端子組替パターンデータを生成し、アドレス端子組替装置８へ送り、アドレス端子の接続組替を指示する。ここで、アドレス端子組替パターンデータとは、外部接続側アドレス端子１１ａとデータ記憶装置接続側アドレス端子１１ｂの各端子の接続先の対応付けを定義したものである。
【００２６】
次に、データ保護機構を備えたメモリシステム１の動作について説明する。図３は、本発明の実施の形態１にかかるデータ保護機構を備えたメモリシステム１のデータ保護の設定手順を示すシーケンス図である。
【００２７】
データの保護設定を行うには、外部のユーザシステムから制御端子９によりメモリシステム１の制御装置３内のシステム制御部３１に対して、データ保護要求が送信される（Ｓ１０１）。システム制御部３１は、ユーザシステムからのデータ保護要求を受けてデータ保護動作を開始する。
【００２８】
まず、システム制御部３１は、データ記憶装置２内のハッシュ値生成部５に対して、ハッシュ値生成要求を送信する（Ｓ１０２）。
【００２９】
続いて、ハッシュ値生成要求を受信したハッシュ値生成部５は、データ記憶部６より記憶されているデータをハッシュ値生成用平文データ信号１５として読み出す。その後、ハッシュ値生成部５は、ハッシュ値生成用平文データ信号１５を基に、一方向ハッシュ関数によるハッシュ値生成処理によりハッシュ値を生成する（Ｓ１０３）。
【００３０】
次に、ハッシュ値生成部５は、ハッシュ値データ制御ＢＵＳ-ＩＦ１４を介して、生成したハッシュ値をハッシュ値格納部４へ格納する（Ｓ１０４）。
【００３１】
その後、ハッシュ値生成部５は、システム制御部３１に対してハッシュ値の生成と格納が完了した旨であるハッシュ値生成完了通知を送信する（Ｓ１０５）。
【００３２】
次に、前記ハッシュ値生成完了通知を受けた制御装置３内のシステム制御部３１は、ハッシュ値格納部４より生成されたハッシュ値を読み出して、擬似乱数生成部３２へ転送する（Ｓ１０６）。
【００３３】
以降、ステップＳ１０７乃至Ｓ１１１については、データ端子用及びアドレス端子用のそれぞれの処理がされるが、以下では、まず、データ端子用の処理について説明する。尚、データ端子用及びアドレス端子用の処理は並列、直列、その他の組み合わせは任意である。
【００３４】
擬似乱数生成部３２は、転送されたハッシュ値を擬似乱数生成関数の初期状態（ＳＥＥＤ）として初期設定して、擬似乱数列を生成する擬似乱数生成処理を行う（Ｓ１０７）。ここでは、データ端子用擬似乱数生成関数を用いて、データ端子用擬似乱数列が生成される。
【００３５】
次に、システム制御部３１は、データ端子用擬似乱数列を取得し、データ端子組替制御部３３に転送する。データ端子組替制御部３３は、データ端子組替パターンデータを生成する端子組替パターン生成処理を行う（Ｓ１０８）。
【００３６】
そして、データ端子組替制御部３３は、データ端子組替装置７に対して、前記生成されたデータ端子組替パターンデータを端子組替パターン通知（データ端子組替パターン制御信号１２）として送信する（Ｓ１０９）。データ端子組替装置７は、データ端子組替パターンデータに基づいて、外部接続側データ端子１０ａとデータ記憶装置接続側データ端子１０ｂの接続を組み替える端子組替実行処理を行う（Ｓ１１０）。データ端子組替装置７は、端子組替実行処理の完了後、データ端子組替制御部３３へ完了した旨として端子組替完了通知を送信する（Ｓ１１１）。
【００３７】
続いて、同様に処理されるアドレス端子について説明する。すなわち、擬似乱数生成部３２は、アドレス端子用擬似乱数生成関数を用いて、アドレス端子用擬似乱数列が生成する（Ｓ１０７）。また、システム制御部３１は、前記生成されたアドレス端子用擬似乱数列を取得し、アドレス端子組替制御部３４に転送する。アドレス端子組替制御部３４は、アドレス端子組替パターンデータを生成する端子組替パターン生成処理を行う（Ｓ１０８）。
【００３８】
そして、アドレス端子組替制御部３４は、アドレス端子組替装置８に対して、前記生成されたアドレス端子組替パターンデータを端子組替パターン通知（アドレス端子組替パターン制御信号１３）として送信する（Ｓ１０９）。アドレス端子組替装置８は、アドレス端子組替パターンデータに基づいて、外部接続側アドレス端子１１ａとデータ記憶装置接続側アドレス端子１１ｂの接続を組み替える端子組替実行処理を行う（Ｓ１１０）。アドレス端子組替装置８は、端子組替実行処理の完了後、アドレス端子組替制御部３４へ完了した旨として端子組替完了通知を送信する（Ｓ１１１）。
【００３９】
データ端子組替制御部３３及びアドレス端子組替制御部３４は、端子組替完了通知を受け、それぞれ、システム制御部３１に転送する。
【００４０】
次に、前記通知を受けたシステム制御部３１は、ハッシュ値格納部４よりハッシュ値を読み出して、外部のユーザシステムに対してメモリシステム制御ＢＵＳ-ＩＦ１６を介して制御端子９により、ハッシュ値をデータ保護の解除鍵として出力する（Ｓ１１３）。そして、システム制御部３１は、データ保護設定が完了した旨であるデータ保護完了通知を送信する（Ｓ１１４）。
【００４１】
図４は、擬似乱数生成処理及び端子組替パターン生成処理の詳細を示すフローチャート図である。また、図５は、端子番号と擬似乱数との対応付けを定義した表の例である。
【００４２】
まず、擬似乱数生成部３２は、転送されたハッシュ値をデータ端子用擬似乱数生成関数Ｒ（ｘ）の初期状態（ＳＥＥＤ）として初期設定済みである。その後、擬似乱数生成部３２は、データ端子用擬似乱数生成関数Ｒ（ｘ）を用いて、データ端子数ｍ分の擬似乱数Ｒ（１）〜Ｒ（ｍ）を生成する（Ｓ１５０）。ここで、データ端子用擬似乱数列Ｒ（ｘ）（ｘ＝１，２、・・・、ｍ）とする。例えば、データ端子用擬似乱数列Ｒ（ｘ）は、４，７，３，９、・・・、５となる。また、このとき、データ端子用擬似乱数列Ｒ（ｘ）は、システム制御部３１により、データ端子組替制御部３３へ転送される。
【００４３】
次に、データ端子組替制御部３３は、アクセスカウンタであるｘに初期値１を代入する（Ｓ１５１）。その後、データ端子組替制御部３３は、ｘがデータ端子数ｍ以下であるかを判定することで、データ端子組替パターンデータが生成されたか否かを判定する（Ｓ１５２）。ｘがｍ以下である場合、ｘを外部接続側データ端子１０ａのデータ端子番号とし、擬似乱数Ｒ（ｘ）をデータ記憶装置接続側データ端子１０ｂのデータ端子番号として、ｘと擬似乱数Ｒ（ｘ）との値を対応付けてデータ端子組替パターンデータとして生成する（Ｓ１５３）。例えば、ｘ＝１の時、図５（ａ）に示すように、Ｒ（１）＝４であるため、外部接続側データ端子１０ａのデータ端子番号"１"と、データ記憶装置接続側データ端子１０ｂのデータ端子番号"４"と、を対応付ける。そして、データ端子組替制御部３３は、ｘ＋１をｘに代入する（Ｓ１５４）。以降、ｘがｍ以下である間、データ端子組替制御部３３は、Ｓ１５２乃至Ｓ１５４の処理を繰り返し実行する。その結果、図５（ａ）のような対応付けがされたデータ端子組替パターンデータが生成される。
【００４４】
ステップＳ１５２にて、ｘがｍを超える場合、アドレス端子における同様の処理が行われる。すなわち、擬似乱数生成部３２は、転送されたハッシュ値をアドレス端子用擬似乱数生成関数Ｒ'（ｙ）の初期状態（ＳＥＥＤ）として初期設定済みである。その後、擬似乱数生成部３２は、アドレス端子用擬似乱数生成関数Ｒ'（ｙ）を用いて、アドレス端子数ｎ分の擬似乱数Ｒ'（１）〜Ｒ'（ｎ）を生成する（Ｓ１６０）。ここで、アドレス端子用擬似乱数列Ｒ'（ｙ）（ｙ＝１，２、・・・、ｎ）とする。例えば、アドレス端子用擬似乱数列Ｒ'（ｘ）は、８，２，５，１、・・・、６となる。また、このとき、アドレス端子用擬似乱数列Ｒ'（ｘ）は、システム制御部３１により、アドレス端子組替制御部３４へ転送される。
【００４５】
次に、アドレス端子組替制御部３４は、アクセスカウンタであるｙに初期値１を代入する（Ｓ１６１）。その後、アドレス端子組替制御部３４は、ｙがデータ端子数ｎ以下であるかを判定することで、アドレス端子組替パターンデータが生成されたか否かを判定する（Ｓ１６２）。ｙがｎ以下である場合、ｙを外部接続側アドレス端子１１ａのアドレス端子番号とし、擬似乱数Ｒ'（ｙ）をデータ記憶装置接続側アドレス端子１１ｂのアドレス端子番号として、ｙと擬似乱数Ｒ'（ｙ）との値を対応付けてアドレス端子組替パターンデータとして生成する（Ｓ１６３）。例えば、ｙ＝１の時、図５（ｂ）に示すように、Ｒ'（１）＝８であるため、外部接続側アドレス端子１１ａのアドレス端子番号"１"と、データ記憶装置接続側アドレス端子１１ｂのアドレス端子番号"８"と、を対応付ける。そして、アドレス端子組替制御部３４は、ｙ＋１をｙに代入する（Ｓ１６４）。以降、ｙがｎ以下である間、アドレス端子組替制御部３４は、Ｓ１６２乃至Ｓ１６４の処理を繰り返し実行する。その結果、図５（ｂ）のような対応付けがされたアドレス端子組替パターンデータが生成される。その後、ステップＳ１６２にて、ｙがｎを超える場合、処理を終了する。
【００４６】
以上のようにして生成されたデータ端子組替パターンデータ及びアドレス端子組替パターンデータを用いて、図３のステップＳ１１０の端子組替実行処理が行われる。例えば、データ端子組替装置７は、外部接続側データ端子１０ａの第１端子と、データ記憶装置接続側データ端子１０ｂの第４端子と、を接続する。同様に、データ端子組替装置７は、外部接続側データ端子１０ａの第２端子乃至第ｍ端子に対しても、データ端子組替パターンデータに対応するデータ記憶装置接続側データ端子１０ｂの端子を接続する。また、アドレス端子組替装置８においても同様の処理が行われるため、説明を省略する。
【００４７】
このように、メモリシステム１のデータ端子１０及びアドレス端子１１の端子接続の組み替えを行うことで、任意のユーザシステムがデータ記憶部６に格納されたデータを読み出す際に、正しいデータの配列でデータを読み出すことができなくなる。そのため、仮に、メモリシステム１ごと取り外して、本来接続されてはならない他のユーザシステムにメモリシステム１が接続されたとしても、端子の接続が異なるため、読み出されたデータからの解読が困難となり、より強固にデータを保護することができる。
【００４８】
図６は、本発明の実施の形態１にかかるデータ保護機構を備えたメモリシステム１のデータ保護の解除手順において、解除できる場合を示すシーケンス図である。また、図７は、前記解除手順において、解除ができない場合を示すシーケンス図である。
【００４９】
データの保護解除を行うには、外部のユーザシステムから制御端子９によりメモリシステム１の制御装置３内のシステム制御部３１に対して、データ保護解除の要求が送信される（Ｓ２０１）。その後続けて、外部のユーザシステムから保護設定時に取得した解除鍵が制御装置３に送信される（Ｓ２０２）。システム制御部３１は、外部のユーザシステムからのデータ保護解除要求と解除鍵を受けてデータ保護解除動作を開始する。
【００５０】
まず、システム制御部３１は、ハッシュ値格納部４より設定時に生成し格納しているハッシュ値を読み出す（Ｓ２０３）。
そして、システム制御部３１は、外部のユーザシステムから入手した解除鍵と前記読み出したハッシュ値とが同一であるかを判断する解除鍵判断処理を行う（Ｓ２０４）。
【００５１】
前記判断処理の結果が不一致の場合、システム制御部３１は、外部のユーザシステムに対して不整合の旨を送信（図７のＳ２１０）し、データ保護解除の処理は行わずに解除処理を終了する。
【００５２】
前記判断処理の結果が一致の場合、システム制御部３１は、正常接続パターン生成の旨をデータ端子組替制御部３３及びアドレス端子組替制御部３４に通知する。
【００５３】
以降、ステップＳ２０５乃至Ｓ２０８については、データ端子用及びアドレス端子用のそれぞれの処理がされるが、以下では、まず、データ端子用の処理について説明する。尚、データ端子用及びアドレス端子用の処理は並列、直列、その他の組み合わせは任意である。
【００５４】
データ端子組替制御部３３は、正常接続するためのデータ端子正常接続パターンデータを生成する正常接続パターン生成処理を行う（Ｓ２０５）。データ端子正常接続パターンデータとは、外部接続側データ端子１０ａの端子と、データ記憶装置接続側データ端子１０ｂの端子との正規のデータ端子接続対を指す。ここでは、予め制御装置３内に格納された初期状態を読み出したものとなる。
【００５５】
そして、データ端子組替制御部３３は、データ端子組替装置７に対して、前記生成されたデータ端子正常接続パターンデータを端子組替パターン通知として送信する（Ｓ２０６）。データ端子組替装置７は、データ端子正常接続パターンデータに基づいて、外部接続側データ端子１０ａとデータ記憶装置接続側データ端子１０ｂの接続を組み替える端子組替実行処理を行う（Ｓ２０７）。データ端子組替装置７は、端子組替実行処理の完了後、データ端子組替制御部３３へ完了した旨として端子組替完了通知を送信する（Ｓ２０８）。
【００５６】
続いて、同様に処理されるアドレス端子について説明する。すなわち、アドレス端子組替制御部３４は、正常接続するためのアドレス端子正常接続パターンデータを生成する正常接続パターン生成処理を行う（Ｓ２０５）。アドレス端子正常接続パターンアドレスとは、外部接続側アドレス端子１１ａの端子と、データ記憶装置接続側アドレス端子１１ｂの端子との正規のアドレス端子接続対を指す。ここでは、予め制御装置３内に格納された初期状態を読み出したものとなる。
【００５７】
そして、アドレス端子組替制御部３４は、アドレス端子組替装置８に対して、前記生成されたアドレス端子正常接続パターンデータを端子組替パターン通知として送信する（Ｓ２０６）。アドレス端子組替装置８は、アドレス端子正常接続パターンデータに基づいて、外部接続側アドレス端子１１ａとデータ記憶装置接続側アドレス端子１１ｂの接続を組み替える端子組替実行処理を行う（Ｓ２０７）。アドレス端子組替装置８は、端子組替実行処理の完了後、アドレス端子組替制御部３４へ完了した旨として端子組替完了通知を送信する（Ｓ２０８）。
【００５８】
データ端子組替制御部３３及びアドレス端子組替制御部３４は、端子組替完了通知を受け、それぞれ、システム制御部３１に転送する。
【００５９】
次に、前記通知を受けたシステム制御部３１は、データ保護解除が正常に完了した旨であるデータ保護解除結果（ＯＫ）通知を送信する（Ｓ２０９）。
【００６０】
このように、メモリシステム１のデータ端子１０及びアドレス端子１１の端子接続を正規の接続対に戻すことで、ユーザシステムがデータ記憶部６に格納されたデータを読み出す際に、正しいデータの配列でデータを読み出すことができる。つまり、データの保護設定を行う際に生成されたハッシュ値を端子接続の組替処理の入力値として用いると共に、ハッシュ値をデータの保護設定の要求元へ送付しておき、端子接続を正規の接続対に戻す際の認証として用いることで、データ保護要求者とデータ保護解除要求者の同一性を保証することができる。
【００６１】
本実施の形態では、格納データから生成したハッシュ値を用いて、擬似乱数を生成し、各端子の接続対である端子組替パターンデータを、一方の端子番号と擬似乱数列の端子番号番目の値とを対応付けたパターンデータを毎回生成することにより、端子接続の組替を実現するものである。
【００６２】
そのため、本実施の形態では、特許文献１のように、予め生成された組替パターンデータをシステム内に保持する必要がなくなる。また、本実施の形態では、特許文献１では実質的に保持することが困難であった、理論上の全ての組替パターンデータを網羅することが可能となった。これにより、組替パターンの予測不可能性を公知例に比べ、高めることができる。
【００６３】
特に、データ端子、アドレス端子を組み合わせることで、組替パターンデータ数を増大させることができる。ここで、組替パターンデータ数は、（１）式により算出することができる。通常、データ端子数及びアドレス端子数は数百のオーダーであるため、公知例のように、予めパターンデータを保持することに比べ、余分なデータ容量を節約した上で、これまで保持することが実質的に困難であった組替パターンデータ数を実現できる。
Ｙ＝２＾Ｄ＊２＾Ａ・・・（１）
（Ｙ：組替パターン数  Ｄ：データ端子数  Ａ：アドレス端子数）
【００６４】
また、擬似乱数の生成を、格納データから生成したハッシュ値を用いることで、異なる格納データには異なるハッシュ値となり、擬似乱数生成関数の初期設定が格納データに応じて変化させることができる。そのため、組替パターンデータの予測不可能性をより高めることができる。
【００６５】
また、データ保護設定時に擬似乱数生成に使用したハッシュ値を、ユーザシステムにも保存させておき、解除鍵として用いることで、安全性が高く、かつ、容易なデータ保護解除の認証確認を行うことができる。
【００６６】
また、特許文献１には、メモリ容量に対する制御データ（スクランブルデータ）の負荷が高いという問題点がある。この問題が発生する原因は、格納データをスクランブルして記憶すると共にスクランブル化するための制御データも記憶しなければならないため、格納データ容量が増えると、それに比例して記憶する制御データ容量も増えることに起因する。
【００６７】
それに対し、本実施の形態では、格納データ容量に負荷をかけずにデータ保護を実現できる。それは、本実施の形態では、格納データがそのままデータ記憶部６に記憶され、制御データはデータ記憶部６には記憶されない。その上、本実施の形態における制御データであるハッシュ値は、格納データ容量によらず一定サイズであるため、格納データ容量に比例した増大はない。そのため、ハッシュ値格納部４への負荷は、特許文献１に比べ低いと言える。また、ユーザシステムにデータ保護解除を行うための解除鍵を記憶するメモリが必要であるが、こちらも格納データ容量によらず一定サイズであるため、ユーザシステムのメモリ容量に対する負荷は低いと言える。
【００６８】
発明の実施の形態２．
本発明の実施の形態１においては、ハッシュ値の生成にデータ記憶部６に記憶されたデータのみを使用していたが、本実施の形態では、ハッシュ値生成前にユーザシステムから入力された任意のデータ(例えば日時、文書番号、製造番号など)を、データ記憶部６に記憶されたデータと統合したデータを用いてハッシュ値を生成する構成を有する。以下に、本発明の実施の形態２について図面を参照して詳細に説明する。
【００６９】
図８は、本発明の実施の形態２にかかるデータ保護機構を備えたメモリシステム１の全体構成を示すブロック図である。
【００７０】
メモリシステム１ａは、本発明の実施の形態１にかかるメモリシステム１に、ユーザデータ格納部１７が追加されたものである。また、メモリシステム１ａは、制御装置３と、データ記憶装置２と、ハッシュ値生成部５とがそれぞれ、制御装置３ａと、データ記憶装置２ａと、ハッシュ値生成部５ａとに置き換わったものである。それ以外の構成については、図１と同等のため、説明を省略する。
【００７１】
ユーザデータ格納部１７は、外部のユーザシステムから制御端子９を介して入力された任意のデータを、記憶する記憶装置である。
【００７２】
制御装置３ａは、外部のユーザシステムからのデータ保護要求及びユーザデータ設定を受け付けて、ハッシュ値生成部５ａへハッシュ値生成要求を行う。制御装置３ａのその他の処理は制御装置３と同様のため、説明を省略する。
【００７３】
データ記憶装置２ａは、ハッシュ値生成部５がハッシュ値生成部５ａに置き換わったものである。データ記憶装置２ａのその他の処理はデータ記憶装置２と同様のため、説明を省略する。
【００７４】
ハッシュ値生成部５ａは、ハッシュ値データ制御ＢＵＳ−ＩＦ１４を介して、制御装置３ａからのハッシュ値生成要求を受け付け、データ記憶部６に格納されているデータを読み出すとともに、ユーザデータ格納部１７に格納されているデータを読み出し、それぞれのデータを統合して、ハッシュ値を生成する。また、ハッシュ値生成部５は、生成したハッシュ値をハッシュ値格納部４へ格納する。ハッシュ値生成部５ａのその他の処理はハッシュ値生成部５と同様のため、説明を省略する。
【００７５】
図９は、本発明の実施の形態２にかかる制御装置３ａの構成を示すブロック図である。制御装置３ａは、システム制御部３１がシステム制御部３１ａに置き換わったものである。それ以外の構成については、図７と同等のため、説明を省略する。
【００７６】
システム制御部３１ａは、システム制御部３１の処理の内、ユーザデータ設定を受け付けた後に、ハッシュ値生成部５ａへハッシュ値生成要求を行うようにしたものである。システム制御部３１ａのその他の処理はシステム制御部３１と同様のため、説明を省略する。
【００７７】
図１０は、本発明の実施の形態２にかかるデータ保護機構を備えたメモリシステム１のデータ保護の設定手順を示すシーケンス図である。
【００７８】
データの保護設定を行うには、外部のユーザシステムから制御端子９によりメモリシステム１ａの制御装置３ａ内のシステム制御部３１ａに対して、データ保護要求が送信される（Ｓ３０１）。
その後続けて、外部のユーザシステムからユーザが任意に指定したユーザデータが制御装置３ａに送信される。また、システム制御部３１ａは、受信したユーザデータをユーザデータ格納部１７に格納して、ユーザデータ設定を行う（Ｓ３０２）。システム制御部３１ａは、外部のユーザシステムからのデータ保護要求を受け、ユーザデータ設定を行った後に、データ保護動作を開始する。
【００７９】
まず、システム制御部３１ａは、データ記憶装置２ａ内のハッシュ値生成部５ａに対して、ハッシュ値生成要求を送信する（Ｓ３０３）。
【００８０】
次に、ハッシュ値生成要求を受信したハッシュ値生成部５ａは、ユーザデータ格納部１７に格納されているユーザデータを読み出す（Ｓ３０４）。
【００８１】
続いて、ハッシュ値生成部５ａは、データ記憶部６より記憶されているデータをハッシュ値生成用平文データ信号１５として読み出し、ユーザデータと結合させて、結合済みハッシュ値生成用平文データとする（Ｓ３０５）。ここで、ハッシュ値生成用平文データとユーザデータとの結合は、例えば、ユーザデータをハッシュ値生成用平文データの先頭、又は、末尾に追記するなどであればよい。
【００８２】
その後、ハッシュ値生成部５ａは、生成された結合済みハッシュ値生成用平文データを基に、一方向ハッシュ関数によるハッシュ値生成処理によりハッシュ値を生成する（Ｓ３０６）。
【００８３】
次に、ハッシュ値生成部５ａは、ハッシュ値データ制御ＢＵＳ-ＩＦ１４を介して、生成したハッシュ値をハッシュ値格納部４へ格納する（Ｓ３０７）。
【００８４】
その後、ハッシュ値生成部５ａは、システム制御部３１ａに対してハッシュ値の生成と格納が完了した旨であるハッシュ値生成完了通知を送信する（Ｓ３０８）。
【００８５】
以後の処理は、図３のＳ１０６以降と同等のため、図示及び説明を省略する。
【００８６】
このように、本実施の形態では、ハッシュ値の生成にユーザが指定した任意のデータをさらに加えることにより、読み出したデータと、一方向ハッシュ関数と、擬似乱数生成関数だけでは、類推することが困難なハッシュ値を生成することができるため、予測不可能性をより高めることができる。
【００８７】
尚、ハッシュ値生成用平文データとユーザデータとの結合は、上述した方法に限らず、任意のより複雑な文字列連結による結合を行っても構わない。これにより、予測不可能性のより高いハッシュ値を生成することができる。
【００８８】
その他の発明の実施の形態.
尚、本発明の実施の形態１及び２では、ハッシュ値の生成に一方向ハッシュ関数を用いたが、これに限定されるものではない。例えば、メモリシステム１と外部のユーザシステムの認証に用いる鍵は、公開鍵、秘密鍵等、既存の任意の暗号化技術を適用可能である。
【００８９】
尚、本実施の形態にかかる擬似乱数生成部３２では、生成される擬似乱数の上限値を各端子数の最大値としたが、これに限定されるものではない。例えば、擬似乱数の上限値が各端子数の最大値以上である場合、生成された擬似乱数列内での大小関係での順番を接続端子番号の範囲に置き換えればよい。すなわち、データ端子用擬似乱数列Ｒ（ｘ）が、４２３，７１２，３８７，９７６、・・・、５３４であった時は、１００で割った商を接続端子番号とする、などで構わない。
【００９０】
また、生成される擬似乱数値は重複しても構わない。その場合、例えば、重複した擬似乱数値については、１を加えた接続端子番号とすればよい。
【００９１】
尚、本実施の形態において端子組替を行う対象は、データ端子又はアドレス端子のいずれか一方で構わない。いずれかの端子が組み替わることで、データ保護は実現可能なためである。
【００９２】
尚、本発明の実施の形態１及び２で使用される擬似乱数生成関数は、データ端子及びアドレス端子毎に分ける必要はなく、共通のものを用いても良い。また、データ端子用及びアドレス端子用擬似乱数生成関数は、擬似乱数生成の都度に、データ端子用及びアドレス端子用を入れ替えてもよい。さらに、当該擬似乱数生成関数は、３つ以上備えていて良く、その場合、擬似乱数生成の都度に、ランダムに選択しても構わない。さらに、擬似乱数の生成手段は、上述したものに限定されない。
【００９３】
尚、本発明の活用例として、ＨＤＤ（Hard Disk Drive）レコーダ、ＤＶＤ（Digital Versatile Disk）レコーダ、ムービーや、デジタルカメラのようなデジタル方式の録画再生装置や、ＩＣ（Integrated Circuit）カードやＲＦＩＤ（Radio Frequency Identification）などの記憶データや、各種コンピュータの記憶装置などが挙げられる。
【００９４】
さらに、本発明は上述した実施の形態のみに限定されるものではなく、既に述べた本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
【図面の簡単な説明】
【００９５】
【図１】本発明の実施の形態１にかかるデータ保護機構を備えたメモリシステム１の全体構成を示すブロック図である。
【図２】本発明の実施の形態１にかかる制御装置３の構成を示すブロック図である。
【図３】本発明の実施の形態１にかかるデータ保護方法のデータ保護手順を示すシーケンス図である。
【図４】本発明の実施の形態１にかかるデータ保護方法の擬似乱数生成処理及び端子組替パターン生成処理の詳細を示すフローチャート図である。
【図５】端子番号と擬似乱数との対応付けを定義した表の例である。
【図６】本発明の実施の形態１にかかるデータ保護方法のデータ保護解除手順において、解除できる場合を示すシーケンス図である。
【図７】本発明の実施の形態１にかかるデータ保護方法のデータ保護解除手順において、解除ができない場合を示すシーケンス図である。
【図８】本発明の実施の形態２にかかるデータ保護機構を備えたメモリシステム１ａの全体構成を示すブロック図である。
【図９】本発明の実施の形態２にかかる制御装置３ａの構成を示すブロック図である。
【図１０】本発明の実施の形態２にかかるデータ保護方法のデータ保護手順を示すシーケンス図である。
【図１１】従来例によるメモリシステムのデータ保護方法を示すブロック図である。
【符号の説明】
【００９６】
１、１ａ    メモリシステム    ２、２ａ    データ記憶装置    ３、３ａ    制御装置
４    ハッシュ値格納部    ５、５ａ    ハッシュ値生成部    ６    データ記憶部
７    データ端子組替装置    ８    アドレス端子組替装置    ９    制御端子
１０    データ端子    １０ａ    外部接続側データ端子
１０ｂ    データ記憶装置接続側データ端子    １１    アドレス端子
１１ａ    外部接続側アドレス端子    １１ｂ    データ記憶装置接続側アドレス端子
１２    データ端子組替パターン制御信号
１３    アドレス端子組替パターン制御信号
１４    ハッシュ値データ制御ＢＵＳ−ＩＦ    １５    ハッシュ値生成用平文データ信号
１６    メモリシステム制御ＢＵＳ−ＩＦ    １７    ユーザデータ格納部
３１、３１ａ    システム制御部    ３２    擬似乱数生成部
３３    データ端子組替制御部    ３４    アドレス端子組替制御部
９１    データ転送システム    ９２    ＬＳＩ    ９３    ＢＵＳ Ｉ／Ｆ
９４    ＤＤＲ−ＳＤＲＡＭ    ９１０    ＷＲ ＦＩＦＯ    ９２０    スクランブラ
９３０    ＤＤＲ−ＳＤＲＡＭ Ｉ／Ｆ    ９４０    ＲＤ ＦＩＦＯ
９５０    デスクランブラ
【図１】
0004922123.tif 000002
【図２】
0004922123.tif 000003
【図３】
0004922123.tif 000004
【図４】
0004922123.tif 000005
【図５】
0004922123.tif 000006
【図６】
0004922123.tif 000007
【図７】
0004922123.tif 000008
【図８】
0004922123.tif 000009
【図９】
0004922123.tif 000010
【図１０】
0004922123.tif 000011
【図１１】
0004922123.tif 000012