(57)【要約】【課題】不揮発性記憶媒体への暗号ブロック連鎖モードの暗号データの書き換え時、書き換え処理速度と当該記憶媒体の書き換え寿命を向上させる。【解決手段】不揮発性記憶媒体のデータ書き換え時、以下の処理を行う。(1)読み出した第１の暗号化データを復号して第１のデータとし、(2)データを構成するデータ要素の配置情報に基づき第１のデータの構成を復元し、(3)第１のデータ処理後の第２のデータを配置情報に基づき変更して第３のデータとし、(4)第３のデータと第１のデータから差分データ要素を特定し、(5)差分データ要素を含むブロックのうち、先頭位置に最も近いブロックより前方のブロックは第１の暗号化データから対応する暗号文ブロックを抽出し、前記ブロック以降のブロックは第３のデータの対応ブロック以降を暗号化して連結し、(6)第１の暗号化データと比較し、変化があるページまたはブロックのみ不揮発性記憶媒体に書き込む。【選択図】図１
2010009174.tif 000002
【特許請求の範囲】
【請求項１】
暗号ブロック連鎖モードで暗号化されたデータを不揮発性記憶媒体から読み出し、書き込む不揮発性記憶媒体制御装置であって、
不揮発性記憶媒体から第１の暗号化データを読み込むデータ読込部と、
前記第１の暗号化データを復号して第１のデータとするデータ復号部と、
第１のデータを処理したデータであって、不揮発性記憶媒体に書き込む第２のデータを受け付けるデータ受付部と、
前記第２のデータと前記第１のデータを比較し、データを構成するデータ要素に変化のあった差分データ要素を特定し、前記差分データ要素の中で前記第２のデータの先頭位置に最も近い差分データ要素を含むブロックに対して、当該ブロックより前方のブロックは、前記第１の暗号化データから対応する暗号文ブロックを抽出して第２の暗号化データとし、前記ブロックを含む以降のブロックは、第２のデータを暗号化して第３の暗号化データとし、前記第２の暗号化データと前記第３の暗号化データを連結して第４の暗号化データとするデータ暗号化部と、
不揮発性記憶媒体に前記第４の暗号化データを書き込むデータ書込部と、
を備えることを特徴とする不揮発性記憶媒体制御装置。
【請求項２】
暗号ブロック連鎖モードで暗号化されたデータを不揮発性記憶媒体から読み出し、書き込む不揮発性記憶媒体制御装置であって、
不揮発性記憶媒体から第１の暗号化データを読み込むデータ読込部と、
前記第１の暗号化データを復号して第１のデータとするデータ復号部と、
データを構成する各データ要素の配置情報を含むデータ構成情報を前記第１のデータと関連付けて管理するデータ構成情報管理部と、
前記データ構成情報に基づき、前記第１のデータの構成を復元するデータ構成復元部と、
不揮発性記憶媒体に書き込む第２のデータを受け付けるデータ受付部と、
前記データ構成情報に基づき、前記第２のデータの構成を変更して第３のデータとするデータ構成変更部と、
前記第３のデータと前記第１のデータを比較して差分データ要素を特定し、前記差分データ要素のうち、前記第３のデータの先頭位置に最も近いデータ要素を含むブロックに対して、前記ブロックより前方のブロックは、前記第１の暗号化データから対応する暗号文ブロックを抽出して第２の暗号化データとし、前記ブロック以降のブロックは、該ブロック以降の第３のデータを暗号化して第３の暗号化データとし、前記第２の暗号化データと前記第３の暗号化データを連結して第４の暗号化データとするデータ暗号化部と、
不揮発性記憶媒体に前記第４の暗号化データを書き込むデータ書込部と、
を具備することを特徴とする不揮発性記憶媒体制御装置。
【請求項３】
前記データ構成情報は、データを構成する各データ要素の更新状況情報をさらに含むデータ構成情報であって、
前記データ構成変更部は、前記更新状況情報に基づいて、更新頻度の高いデータ要素がデータ後方部に配置されるように前記データ受付部で受け付けた前記第２のデータの構成を変更して第３のデータとするデータ構成変更部、
であることを特徴とする請求項２に記載の不揮発性記憶媒体制御装置。
【請求項４】
前記更新状況情報と、データ要素の配置毎に定められた所定の更新状況の閾値とを比較して、データ構成の変更要否を判断するデータ構成変更要否判定部を、さらに備え、
前記データ構成変更部は、前記データ構成変更要否判定部の判定結果に基づいて、更新頻度の高いデータ要素がデータ後方部に配置されるように前記データ受付部で受け付けた前記第２のデータの構成を変更して第３のデータとするデータ構成変更部、
であることを特徴とする請求項３に記載の不揮発性記憶媒体制御装置。
【請求項５】
前記データ構成情報は、該データ構成情報と関連づけられているデータの末尾に連結されてデータを構成しているデータ構成情報、
であることを特徴とする請求項１から請求項３のいずれか１項に記載の不揮発性記憶媒体制御装置。
【請求項６】
前記不揮発性記憶媒体は、ページ単位で書込可能で、かつ、ブロック単位で消去可能な不揮発性半導体メモリであって、
前記データ書込部は、前記データ読込部で読み込んだ第１の暗号化データと、前記データ暗号化部で暗号化された第４の暗号化データを比較して、前記第４の暗号化データのうち、変化があったページまたはブロックのみを書き換えるデータ書込部、
であることを特徴とする請求項２から請求項５のいずれか１項に記載の不揮発性記憶媒体制御装置。
【請求項７】
暗号ブロック連鎖モードで暗号化されたデータを不揮発性記憶媒体から読み出し、書き込む不揮発性記憶媒体制御方法であって、
不揮発性記憶媒体から第１の暗号化データを読み込むデータ読込ステップと、
前記第１の暗号化データを復号して第１のデータとするデータ復号ステップと、
第１のデータを処理したデータであって、不揮発性記憶媒体に書き込む第２のデータを受け付けるデータ受付ステップと、
前記第２のデータと前記第１のデータを比較し、データを構成するデータ要素に変化のあった差分データ要素を特定し、前記差分データ要素の中で前記第２のデータの先頭位置に最も近い差分データ要素を含むブロックに対して、当該ブロックより前方のブロックは、前記第１の暗号化データから対応する暗号文ブロックを抽出して第２の暗号化データとし、前記ブロックを含む以降のブロックは、第２のデータを暗号化して第３の暗号化データとし、前記第２の暗号化データと前記第３の暗号化データを連結して第４の暗号化データとするデータ暗号化ステップと、
不揮発性記憶媒体に前記第４の暗号化データを書き込むデータ書込ステップと、
を含むことを特徴とする不揮発性記憶媒体制御方法。
【請求項８】
暗号ブロック連鎖モードで暗号化されたデータを不揮発性記憶媒体から読み出し、書き込む不揮発性記憶媒体制御方法であって、
不揮発性記憶媒体から第１の暗号化データを読み込むデータ読込ステップと、
前記第１の暗号化データを復号して第１のデータとするデータ復号ステップと、
データを構成する各データ要素の配置情報を含むデータ構成情報を前記データと関連付けて管理するデータ構成情報管理ステップと、
前記データ構成情報に基づき、前記第１のデータの構成を復元するデータ構成復元ステップと、
不揮発性記憶媒体に書き込む第２のデータを受け付けるデータ受付ステップと、
前記データ構成情報に基づき、前記第２のデータの構成を変更して第３のデータとするデータ構成変更ステップと、
前記第３のデータと前記第１のデータを比較して差分データ要素を特定し、前記差分データ要素のうち、前記第３のデータの先頭位置に最も近いデータ要素を含むブロックに対して、前記ブロックより前方のブロックは、前記第１の暗号化データから対応する暗号文ブロックを抽出して第２の暗号化データとし、前記ブロック以降のブロックは、該ブロック以降の第３のデータを暗号化して第３の暗号化データとし、前記第２の暗号化データと前記第３の暗号化データを連結して第４の暗号化データとするデータ暗号化ステップと、
不揮発性記憶媒体に前記第４の暗号化データを書き込むデータ書込ステップと、
を含むことを特徴とする不揮発性記憶媒体制御方法。
【請求項９】
前記データ構成情報は、データを構成する各データ要素の更新状況情報をさらに含むデータ構成情報であって、
前記データ構成変更ステップは、前記更新状況情報に基づいて、更新頻度の高いデータ要素がデータ後方部に配置されるように前記データ受付ステップで受け付けた前記第２のデータの構成を変更して第３のデータとするデータ構成変更ステップ、
であることを特徴とする請求項８に記載の不揮発性記憶媒体制御方法。
【請求項１０】
前記更新状況情報と、データ要素の配置毎に定められた所定の更新状況の閾値とを比較して、データ構成の変更要否を判断するデータ構成変更要否判定ステップを、さらに備え、
前記データ構成変更ステップは、前記データ構成変更要否判定ステップの判定結果に基づいて、更新頻度の高いデータ要素がデータ後方部に配置されるように前記データ受付ステップで受け付けた前記第２のデータの構成を変更して第３のデータとするデータ構成変更ステップ、
であることを特徴とする請求項９に記載の不揮発性記憶媒体制御方法。
【請求項１１】
前記データ構成情報は、該データ構成情報と関連づけられているデータの末尾に連結されてデータを構成しているデータ構成情報、
であることを特徴とする請求項８から請求項１０のいずれか１項に記載の不揮発性記憶媒体制御方法。
【請求項１２】
前記不揮発性記憶媒体は、ページ単位で書込可能で、かつ、ブロック単位で消去可能な不揮発性半導体メモリであって、
前記データ書込ステップは、前記データ読込ステップで読み込んだ第１の暗号化データと、前記データ暗号化ステップで暗号化された第４の暗号化データを比較して、前記第４の暗号化データのうち、変化があったページまたはブロックのみを書き換えるデータ書込ステップ、
であることを特徴とする請求項８から請求項１１のいずれか１項に記載の不揮発性記憶媒体制御方法。
【請求項１３】
暗号ブロック連鎖モードで暗号化されたデータを不揮発性記憶媒体から読み出し、書き込む不揮発性記憶媒体制御プログラムであって、
不揮発性記憶媒体から第１の暗号化データを読み込むデータ読込ステップと、
前記第１の暗号化データを復号して第１のデータとするデータ復号ステップと、
第１のデータを処理したデータであって、不揮発性記憶媒体に書き込む第２のデータを受け付けるデータ受付ステップと、
前記第２のデータと前記第１のデータを比較し、データを構成するデータ要素に変化のあった差分データ要素を特定し、前記差分データ要素の中で前記第２のデータの先頭位置に最も近い差分データ要素を含むブロックに対して、当該ブロックより前方のブロックは、前記第１の暗号化データから対応する暗号文ブロックを抽出して第２の暗号化データとし、前記ブロックを含む以降のブロックは、第２のデータを暗号化して第３の暗号化データとし、前記第２の暗号化データと前記第３の暗号化データを連結して第４の暗号化データとするデータ暗号化ステップと、
不揮発性記憶媒体に前記第４の暗号化データを書き込むデータ書込ステップと、
をコンピュータに実行させるための不揮発性記憶媒体制御プログラム。
【請求項１４】
暗号ブロック連鎖モードで暗号化されたデータを不揮発性記憶媒体から読み出し、書き込む不揮発性記憶媒体制御プログラムであって、
不揮発性記憶媒体から第１の暗号化データを読み込むデータ読込ステップと、
前記第１の暗号化データを復号して第１のデータとするデータ復号ステップと、
データを構成する各データ要素の配置情報を含むデータ構成情報を前記データと関連付けて管理するデータ構成情報管理ステップと、
前記データ構成情報に基づき、前記第１のデータの構成を復元するデータ構成復元ステップと、
不揮発性記憶媒体に書き込む第２のデータを受け付けるデータ受付ステップと、
前記データ構成情報に基づき、前記第２のデータの構成を変更して第３のデータとするデータ構成変更ステップと、
前記第３のデータと前記第１のデータを比較して差分データ要素を特定し、前記差分データ要素のうち、前記第３のデータの先頭位置に最も近いデータ要素を含むブロックに対して、前記ブロックより前方のブロックは、前記第１の暗号化データから対応する暗号文ブロックを抽出して第２の暗号化データとし、前記ブロック以降のブロックは、該ブロック以降の第３のデータを暗号化して第３の暗号化データとし、前記第２の暗号化データと前記第３の暗号化データを連結して第４の暗号化データとするデータ暗号化ステップと、
不揮発性記憶媒体に前記第４の暗号化データを書き込むデータ書込ステップと、
をコンピュータに実行させるための不揮発性記憶媒体制御プログラム。
【請求項１５】
前記データ構成情報は、データを構成する各データ要素の更新状況情報をさらに含むデータ構成情報であって、
前記データ構成変更ステップは、前記更新状況情報に基づいて、更新頻度の高いデータ要素がデータ後方部に配置されるように前記データ受付機能で受け付けた前記第２のデータの構成を変更して第３のデータとするデータ構成変更ステップ、
であることを特徴とする請求項１４に記載の不揮発性記憶媒体制御プログラム。
【請求項１６】
前記更新状況情報と、データ要素の配置毎に定められた所定の更新状況の閾値とを比較して、データ構成の変更要否を判断するデータ構成変更要否判定ステップを、さらに備え、
前記データ構成変更ステップは、前記データ構成変更要否判定ステップの判定結果に基づいて、更新頻度の高いデータ要素がデータ後方部に配置されるように前記データ受付ステップで受け付けた前記第２のデータの構成を変更して第３のデータとするデータ構成変更ステップ、
であることを特徴とする請求項１５に記載の不揮発性記憶媒体制御プログラム。
【請求項１７】
前記データ構成情報は、該データ構成情報と関連づけられているデータの末尾に連結されてデータを構成しているデータ構成情報、
であることを特徴とする請求項１４から請求項１６のいずれか１項に記載の不揮発性記憶媒体制御プログラム。
【請求項１８】
前記不揮発性記憶媒体は、ページ単位で書込可能で、かつ、ブロック単位で消去可能な不揮発性半導体メモリであって、
前記データ書込ステップは、前記データ読込機能で読み込んだ第１の暗号化データと、前記データ暗号化ステップで暗号化された第４の暗号化データを比較して、前記第４の暗号化データのうち、変化があったページまたはブロックのみを書き換えるデータ書込ステップ、
であることを特徴とする請求項１４から請求項１７のいずれか１項に記載の不揮発性記憶媒体制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性記憶媒体にデータを格納する装置、方法、及びプログラムに関するものであって、より詳しくは、書き換え回数に制限のある不揮発性半導体メモリに暗号化データを格納する装置、方法、及びプログラムに関するものである。
【背景技術】
【０００２】
不揮発性記憶媒体とは、記憶媒体に供給される電源を切っても記憶内容を保持することができる電子媒体を意味する、映像機器、音響機器での映像や音楽の記録再生、または電子計算機（コンピュータ）での情報処理に使用する記録媒体の総称であり、主に、リムーバブルメディア、あるいは、主記憶装置以外の記憶装置、すなわち補助記憶装置に使用されている媒体を指す。不揮発性記憶媒体の代表的な例として、不揮発性半導体メモリ、ハードディスク、光ディスク等がある。
【０００３】
フラッシュメモリは、書き換え回数に制限のある不揮発性半導体メモリとして、広く知られている。このフラッシュメモリは、フラッシュＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）またはフラッシュＲＯＭとも呼ばれるＥＥＰＲＯＭの一種であり、記憶セルを接続する構造によりＮＡＮＤ型フラッシュメモリ（以降、「ＮＡＮＤ型フラッシュ」と呼ぶ）とＮＯＲ型フラッシュメモリに大別される。
【０００４】
ＮＡＮＤ型フラッシュでは、記憶セルを駆動するのに必要な導線を複数の記憶セルで共有している。このため、データの書き込み、読み込みはページと呼ばれる複数ビット単位で行われ、データの消去はブロックとよばれる複数ページ単位で一括して行われる。
【０００５】
ところが、ＮＡＮＤ型フラッシュは、データの書き換えおよび消去を繰り返すとセルが劣化し、データを書き込むことができなくなる性質を持つ。このため、特定のブロックのみにデータの書き込み、消去が集中すると、そのブロックだけ早く寿命を迎えてしまう結果をもたらす。
【０００６】
上述の課題を解決する手段として、例えば、特許文献１が開示されている。
【０００７】
更新頻度の異なるデータがフラッシュメモリ上の同一ブロックに存在する場合、頻繁に更新されるデータのために、ほとんど更新されないデータを含む該当ブロックがマージ動作の対象になり、フラッシュメモリの書き換え寿命が短くなるという課題がある。特許文献１は、データの更新頻度に応じて、異なるメモリ空間（ブロック）を割り当て、頻繁に更新されるデータとそうでないデータが同一のブロックに書き込まれないように構成を開示している。このため、マージ動作の発生を抑制し、フラッシュメモリのブロック書き換え回数を低減することを可能としている。
【０００８】
しかし、ＮＡＮＤ型フラッシュは、ハードウェア特性上、既に使われたページにデータを書き込むためには、そのページが含まれるブロック全体を消去しなければならない。つまり、あるブロックに書き込んだデータの一部を書き換える場合、まず、そのブロック内の書き換えないデータを別のブロックにコピーした後、この別のブロックに新たに更新するデータを書き込み、最後に元のブロックを消去するような動作が必要になる。このため、データの書き込みや消去の動作回数が多くなるので、処理速度の大幅な低下をもたらす。
【０００９】
上述の課題を解決する手段として、例えば、特許文献２が開示されている。
【００１０】
あるブロックのデータの一部を書き換えた場合、ブロック全体のコピー、及び、消去動作が必要になり、フラッシュメモリの書き換え処理速度が低下する、あるいは、フラッシュメモリの書き換え寿命が短くなるという課題がある。特許文献２は、第１のブロックに格納されたデータの一部を更新した際に、更新データを一時書き込み用の第２のブロックに書き込むとともに、論理−物理アドレス変換情報を変更することにより、第１のブロックの未更新データと、第２のブロックの更新データを更新後のデータとして管理する構成を開示している。これにより、メモリ素子に対する消去回数を削減でき、書き換え処理速度を向上できるとともに、メモリ素子の損耗を抑制して寿命の向上を図っている。
【００１１】
次に、不揮発性記憶媒体に格納されるデータとして暗号化されたデータが格納される場合を考える。暗号アルゴリズムは、ブロック暗号とストリーム暗号の２つに大別できる。ブロック暗号は、ある特定のビット数のまとまり（以降、「ブロック」と呼ぶ）を暗号化単位として処理する暗号アルゴリズムの総称であり、ＤＥＳ（Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）やＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）等が広く知られている。
【００１２】
ブロック暗号は、固定長のブロックを暗号化する暗号化アルゴリズムであり、ブロック長よりも長いメッセージを暗号化する際には、ブロック暗号アルゴリズムを繰り返し適用して、長いメッセージ全体を暗号化する必要がある。この繰り返し方法をブロック暗号化モード（以降、「モード」と呼ぶ）と呼んでいる。ＩＳＯ／ＩＥＣ  １０１１６では、ブロック暗号化モードとして、ＥＣＢモード（Ｅｌｅｃｔｒｉｃ  ＣｏｄｅＢｏｏｋ  ｍｏｄｅ：電子符号表モード）、ＣＢＣモード（Ｃｉｐｈｅｒ  Ｂｌｏｃｋ  Ｃｈａｉｎｉｎｇ  ｍｏｄｅ：暗号ブロック連鎖モード）、ＣＦＢモード（Ｃｉｐｈｅｒ−Ｆｅｅｄｂａｃｋ  ｍｏｄｅ：暗号フィードバックモード）、ＯＦＢモード（Ｏｕｔｐｕｔ−Ｆｅｅｄｂａｃｋ  ｍｏｄｅ：出力フィードバックモード）を規定している。
【００１３】
ＣＢＣモードは、前の平文ブロックを暗号化した結果を次の平文にＸＯＲ演算によって重ね合わせ、その結果に対して暗号化処理を行う。最初のブロックを暗号化する場合は、前の暗号文の最後のブロックを利用するか、または外部から与えた初期ベクトルを利用する。つまり、ＣＢＣモードでは、前のブロックの暗号化結果が次のブロックに連鎖される。
【特許文献１】特開２００７−２２０１０１号公報
【特許文献２】特開２００７−１６４３９１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
しかしながら、ＣＢＣモードで暗号化された上で不揮発性記憶媒体に格納されたデータの一部（以降、「データ要素」と呼ぶ）を更新し、再びＣＢＣモードで暗号化した上で不揮発性記憶媒体に格納するデータ書き換え動作を考えた場合、特許文献１、あるいは、特許文献２に開示される構成では、暗号ブロックの連鎖により、更新されたデータ要素以降の暗号文が変わるため、平文では更新されていないデータ要素であったとしても、該一部のデータ要素以降のページまたはブロックの書き換えを要するという課題を有していた。
【００１５】
本発明は、従来の課題を解決するもので、不揮発性記憶媒体に対するＣＢＣモードで暗号化されたデータの書き換え動作における書き換え処理速度を向上する手段を提供することを第１の目的とする。また、本発明は、書き換え回数に制限のある不揮発性半導体メモリに対するＣＢＣモードで暗号化されたデータの書き換え動作における書き換え寿命の向上、及び、書き換え処理速度を向上する手段を提供することを第２の目的とする。
【課題を解決するための手段】
【００１６】
上記課題を解決するために、本発明の一実施態様は、不揮発性記憶媒体から読み込んだ暗号化データを復号し、処理後に再度暗号化して書き込む際、以下の処理を行う。(1)読み出した第１の暗号化データを復号して第１のデータとする。(2)データを構成するデータ要素の配置情報に基づき第１のデータの構成を復元する。(3)第１のデータ処理後の第２のデータを配置情報に基づき変更して第３のデータとする。(4)第３のデータと第１のデータから差分データ要素を特定する。(5)差分データ要素を含むブロックのうち、先頭位置に最も近いブロックより前方のブロックは、第１の暗号化データから対応する暗号文ブロックを抽出し、前記ブロック以降のブロックは、第３のデータの対応ブロック以降を暗号化して連結する。(6)第１の暗号化データと比較し、変化があるページまたはブロックのみ不揮発性記憶媒体に書き込む。
【発明の効果】
【００１７】
本態様によれば、所定のデータ構成、あるいは、更新箇所及び更新履歴等の更新状況に応じて、データの構成、すなわち、データ要素の配置・順序、を変更した上でデータを暗号化することで、ＣＢＣモードのような暗号ブロック連鎖モードによる暗号化処理を効率化することができる。
【００１８】
また、本態様の記憶媒体制御装置によれば、所定のデータ構成、あるいは、更新箇所及び更新履歴等の更新状況に応じて、データの構成、すなわち、データ要素の配置・順序、を変更した上でデータを暗号化することで、ＣＢＣモードのような暗号ブロック連鎖モードによる暗号化処理を効率化することができ、また、不揮発性記憶媒体のブロックの書き換え回数を低減でき、不揮発性記憶媒体の書き換え寿命を延ばすことができる。
【発明を実施するための最良の形態】
【００１９】
本発明の一実施態様の不揮発性記憶媒体制御装置は、不揮発性記憶媒体から第１の暗号化データを読み込むデータ読込部と、第１の暗号化データを復号して第１のデータとするデータ復号部と、第１のデータを処理したデータであって、不揮発性記憶媒体に書き込む第２のデータを受け付けるデータ受付部と、第２のデータと第１のデータを比較し、データを構成するデータ要素に変化のあった差分データ要素を特定し、差分データ要素の中で第２のデータの先頭位置に最も近い差分データ要素を含むブロックに対して、当該ブロックより前方のブロックは、第１の暗号化データから対応する暗号文ブロックを抽出して第２の暗号化データとし、ブロックを含む以降のブロックは、第２のデータを暗号化して第３の暗号化データとし、第２の暗号化データと第３の暗号化データを連結して第４の暗号化データとするデータ暗号化部と、不揮発性記憶媒体に第４の暗号化データを書き込むデータ書込部を備えている。
【００２０】
また、本発明の一実施態様の不揮発性記憶媒体制御装置は、不揮発性記憶媒体から暗号ブロック連鎖モードで暗号化された第１の暗号化データを読み込むデータ読込部と、前記データ読込部で読み込んだ前記第１の暗号化データを復号して第１のデータとするデータ復号部と、データを構成する各データ要素の配置情報を含むデータ構成情報を前記データと関連付けて管理するデータ構成情報管理部と、前記データ構成情報に基づいて、前記データ復号部で復号された前記第１のデータの構成を復元するデータ構成復元部と、不揮発性記憶媒体に書き込む第２のデータを受け付けるデータ受付部と、前記データ構成情報に基づいて、前記データ受付部で受け付けた前記第２のデータの構成を変更して第３のデータとするデータ構成変更部と、前記第３のデータと前記第１のデータとを比較して差分データ要素を特定し、前記差分データ要素のうち、前記第３のデータの先頭位置に最も近いデータ要素を含むブロックに対して、前記ブロックより前方のブロックに関しては、前記第１の暗号化データより対応する暗号文ブロックを抽出して第２の暗号化データとし、前記ブロック以降のブロックに関しては、該ブロック以降の第３のデータを暗号ブロック連鎖モードで暗号化して第３の暗号化データとし、前記第２の暗号化データと前記第３の暗号化データを連結して第４の暗号化データとするデータ暗号化部と、不揮発性記憶媒体に前記データ暗号化部で暗号化した前記第４の暗号化データを書き込むデータ書込部とを備えている。
【００２１】
また、本発明の一実施態様の不揮発性半導体メモリ制御装置は、不揮発性記憶媒体から暗号ブロック連鎖モードで暗号化された第１の暗号化データを読み込むデータ読込部と、前記データ読込部で読み込んだ前記第１の暗号化データを復号して第１のデータとするデータ復号部と、データを構成する各データ要素の配置情報を含むデータ構成情報を前記データと関連付けて管理するデータ構成情報管理部と、前記データ構成情報に基づいて、前記データ復号部で復号された前記第１のデータの構成を復元するデータ構成復元部と、不揮発性記憶媒体に書き込む第２のデータを受け付けるデータ受付部と、前記データ構成情報に基づいて、前記データ受付部で受け付けた前記第２のデータの構成を変更して第３のデータとするデータ構成変更部と、前記第３のデータと前記第１のデータとを比較して差分データ要素を特定し、前記差分データ要素のうち、前記第３のデータの先頭位置に最も近いデータ要素を含むブロックに対して、前記ブロックより前方のブロックに関しては、前記第１の暗号化データより対応する暗号文ブロックを抽出して第２の暗号化データとし、前記ブロック以降のブロックに関しては、該ブロック以降の第３のデータを暗号ブロック連鎖モードで暗号化して第３の暗号化データとし、前記第２の暗号化データと前記第３の暗号化データを連結して第４の暗号化データとするデータ暗号化部と、前記データ読込部で読み込んだ第１の暗号化データと、前記データ暗号化部で暗号化された第４の暗号化データを比較して、前記第４の暗号化データのうち、変化があったページまたはブロックのみを書き換えるデータ書込部とを備えている。
【００２２】
以下、本発明の実施の形態について、図面を参照しながら詳細に説明する。
【００２３】
なお、以下の説明において、データＤは、データ識別子Ｄで識別可能なデータを意味するものとする。データ要素ａは、データ要素識別子ａで識別可能なデータ要素を意味するものとする。Ｄ［ａ，ｂ，ｃ，ｄ］は、データＤを構成するデータ要素ａ、データ要素ｂ、データ要素ｃ、データ要素ｄを、データ要素ａ、データ要素ｂ、データ要素ｃ、データ要素ｄの順に配置したデータであることを意味するものとする。Ｅ（Ｄ）は、データＤを暗号ブロック連鎖モードで暗号化したデータであることを意味するものとする。Ｅ（Ｄ［ａ，ｂ，ｃ，ｄ］）は、Ｄ［ａ，ｂ，ｃ，ｄ］を暗号ブロック連鎖モードで暗号化したデータであることを意味するものとする。データＤ’は、データＤの一部が変更されたデータであることを意味するものとする。データ要素ａ’は、データ要素ａの値が変更されたデータ要素であることを意味するものとする。
【００２４】
（実施の形態１）
まず、本実施の形態における端末装置の全体構成について図を用いて説明する。
【００２５】
図１は、本実施の形態における端末装置の全体構成を示す図である。端末装置１００は、ホスト装置１１０と、不揮発性記憶媒体１３０と、ホスト装置１１０及び不揮発性記憶媒体１３０に接続された不揮発性記憶媒体制御装置１２０と、から構成される。
【００２６】
不揮発性記憶媒体１３０は、端末装置１００に組み込まれていてもよいし、また抜き差しできるようにコネクタ、ソケット等を用いて端末装置１００に接続される構成であってもよい。
【００２７】
ホスト装置１１０は、不揮発性記憶媒体制御装置１２０を介して不揮発性記憶媒体１３０に格納されたデータを取得するデータ取得部１１１と、前記データを更新するデータ更新部１１２と、不揮発性記憶媒体制御装置１２０に対して、不揮発性記憶媒体１３０へのデータの書き込みを要求するデータ書込要求部１１３から構成される。
【００２８】
不揮発性記憶媒体制御装置１２０は、不揮発性記憶媒体１３０に接続され、不揮発性記憶媒体１３０に格納された第１の暗号化データを読み込むデータ読込部１２１と、データ読込部１２１で読み込んだ前記第１の暗号化データを復号して第１のデータとするデータ復号部１２２と、データを構成する各データ要素の配置情報を含むデータ構成情報を前記データと関連付けて管理するデータ構成情報管理部１２３と、データ構成情報管理部１２３で管理している前記データ構成情報に基づいて、データ復号部１２２で復号された前記第１のデータの構成を復元して第２のデータを得るデータ構成復元部１２４と、ホスト装置１１０のデータ取得部１１１と接続され、データ構成復元部１２４で復元した前記第２のデータをホスト装置１１０に出力するデータ出力部１２５と、ホスト装置１１０のデータ書込要求部１１３と接続され、ホスト装置１１０のデータ書込要求部１１３から不揮発性記憶媒体１３０に書き込む第３のデータを受け付けるデータ受付部１２６と、データ構成情報管理部１２３で管理している前記データ構成情報に基づいて、データ受付部１２６で受け付けた前記第３のデータの構成を変更して第４のデータとするデータ構成変更部１２７と、前記第４のデータと前記第１のデータとを比較して、値が異なるデータ要素（以降、「差分データ要素」と呼ぶ）を特定し、前記差分データ要素のうち、前記第４のデータの先頭位置に最も近いデータ要素を含む平文ブロックに対して、前記平文ブロックより前方の平文ブロックに関しては、前記第１の暗号化データより対応する暗号文ブロックを抽出して第１の中間暗号化データとし、前記平文ブロック以降の平文ブロックに関しては、第４のデータより対応する平文ブロックを抽出して暗号ブロック連鎖モードで暗号化して第２の中間暗号化データとし、前記第１の中間暗号化データと前記第２の中間暗号化データを連結して第２の暗号化データとするデータ暗号化部１２８と、不揮発性記憶媒体１３０に接続され、データ暗号化部１２８で暗号化した前記第２の暗号化データを不揮発性記憶媒体１３０に書き込むデータ書込部１２９から構成される。
【００２９】
次に、本実施の形態で扱うデータ及びデータ構造について、図を用いて説明する。
【００３０】
図２は、ホスト装置１１０で扱うデータの構成例を示す図である。データ２００は、データ要素２０１の集まりで構成されている。データ要素２０１は、ホスト装置１１０にとって論理的に意味のある情報の単位である。データ要素２０１は、文字列、数値、バイト列、日付時刻情報等の任意のデータ形式、及び任意の長さのデータとして表現可能である。
【００３１】
図３は、データ構成情報管理部１２３が管理するデータ構成情報の構成例を示す図である。データ構成情報３００は、不揮発性記憶媒体１３０に格納されたデータを一意に識別可能なデータ識別子３０１と、データを構成するデータ要素を一意に識別可能なデータ要素識別子３０２と、データ構成復元部１２４において、不揮発性記憶媒体１３０から取得したデータをホスト装置１１０で扱うデータにする際のデータ要素の並び順を示す復元時順序情報３０３と、不揮発性記憶媒体１３０に格納する際のデータ要素の並び順を示す格納時順序情報３０４からなるレコードの集合である。例えば、データＤ００１は、データ要素ａ、データ要素ｂ、データ要素ｃ、データ要素ｄの４つのデータ要素で構成されていることを示しており、また、データ構成復元部１２４においてデータ構成を復元する際には、データＤ００１を構成する各データ要素を、データ要素ａ、データ要素ｂ、データ要素ｃ、データ要素ｄの順に並び替えることを示しており、また、データ構成変更部１２７においてデータ構成を変更する際には、データＤ００１を構成する各データ要素を、データ要素ａ、データ要素ｃ、データ要素ｂ、データ要素ｄの順に並び替えることを示している。
【００３２】
図４は、不揮発性記憶媒体１３０に格納されたデータの構成例を示す図である。不揮発性記憶媒体１３０には、少なくとも１つ以上のデータが、暗号ブロック連鎖モードで暗号化された状態で格納されている。各暗号化データ４０１は、暗号化データ１のように必ずしも物理的に連続した領域に格納される必要はなく、ファイルシステム等の手段を用いて、暗号化データ２のように物理的に分散した領域に格納してもよい。
【００３３】
次に、本実施の形態における不揮発性記憶媒体１３０に格納されたデータの書き換え動作について、図３、及び図５から図７を用いて詳細に説明する。
【００３４】
図５は、本実施の形態における不揮発性記憶媒体１３０に格納されたデータの読み込み、及び、書き換え動作の概要を示すフローチャートである。
【００３５】
図６は、本実施の形態における不揮発性記憶媒体１３０に格納されたデータの読み込み、及び、書き換え動作におけるデータ及びデータ構造の変化を示す説明図である。図６において、斜線掛けされた部分は、暗号化されたデータ及びデータ要素であることを示す。
【００３６】
図３の示すデータ構成情報の構成は、データ構成情報を用いてデータ構成を復元するステップ（Ｓ５０４）、及び、データ構成情報を用いてデータ構成を変更するステップ（Ｓ５０８）、において参照するデータ構成情報を示している。
【００３７】
以下、不揮発性記憶媒体１３０に格納されたデータＤ００１をデータＤ００１’に書き換える場合の動作を例に、本実施の形態におけるデータの読み込み、及び、書き換え動作について詳細に説明する。なお、データＤ００１は、データ要素ａ、データ要素ｂ、データ要素ｃ、データ要素ｄの４つのデータ要素から構成されるデータであるとし、データ要素ｂをデータ要素ｂ’に更新するものとする。
【００３８】
まず、不揮発性記憶媒体制御装置１２０は、ホスト装置１１０からデータＤ００１に対するデータ取得要求を受け付ける（Ｓ５０１）と、データ読込部１２１を用いて、不揮発性記憶媒体１３０に格納されたデータ６０１より、要求されたデータＤ００１に対応する第１の暗号化データＥ（Ｄ００１［ａ，ｃ，ｂ，ｄ］）６０２を読み込む（Ｓ５０２）。
【００３９】
次に、データ復号部１２２を用いて、暗号ブロック連鎖モードで暗号化された第１の暗号化データＥ（Ｄ００１［ａ，ｃ，ｂ，ｄ］）６０２を復号し、第１のデータＤ００１［ａ，ｃ，ｂ，ｄ］６０３を得る（Ｓ５０３）。
【００４０】
次に、データ構成復元部１２４を用いて、第１のデータＤ００１［ａ，ｃ，ｂ，ｄ］６０３のデータ構成を復元する（Ｓ５０４）。具体的には、データ構成復元部１２４は、データ構成情報管理部１２３で管理するデータ構成情報を参照してデータＤ００１を構成するデータ要素及び各データ要素の復元時順序情報を取得し（Ｓ７０１）、第１のデータＤ００１［ａ，ｃ，ｂ，ｄ］６０３を構成するデータ要素の順序と比較する（Ｓ７０２）。順序が異なる場合（Ｓ７０３）は、前記復元時順序情報に従って、第１のデータＤ００１［ａ，ｃ，ｂ，ｄ］６０３を構成するデータ要素の順序を並び替える（Ｓ７０４）。ここで、データ構成情報が図３に示したデータ構成情報３００であるとすると、第１のデータＤ００１［ａ，ｃ，ｂ，ｄ］６０３の復元時順序は、データ要素ａ、データ要素ｂ、データ要素ｃ、データ要素ｄ、の順になる。従って、データ構成復元部１２４は、データ要素ａ、データ要素ｃ、データ要素ｄ、データ要素ｂの順に配置された平文データである第１のデータＤ００１［ａ，ｃ，ｂ，ｄ］６０３を、データ要素ａ、データ要素ｂ、データ要素ｃ、データ要素ｄ、の順に配置された平文データに並び替え、第２のデータＤ００１［ａ，ｂ，ｃ，ｄ］６０４とする。
【００４１】
次に、データ出力部１２５を用いて、第２のデータＤ００１［ａ，ｂ，ｃ，ｄ］６０４をホスト装置１１０のデータ取得部１１１に渡す（Ｓ５０５）。
【００４２】
次に、データ更新部１１２でデータを更新する。データ更新部１１２は、データ取得部１１１で取得した第２のデータＤ００１［ａ，ｂ，ｃ，ｄ］６０４のデータ要素ｂをｂ’に変更する（Ｓ５０６）。この変更後のデータを第３のデータＤ００１’［ａ，ｂ’，ｃ，ｄ］６０５とする。
【００４３】
次に、第３のデータＤ００１’［ａ，ｂ’，ｃ，ｄ］６０５で、不揮発性記憶媒体１３０に格納された第１の暗号化データＥ（Ｄ００１［ａ，ｃ，ｂ，ｄ］）を更新するために、データ書込要求部１１３を用いて、第３のデータＤ００１’［ａ，ｂ’，ｃ，ｄ］６０５を不揮発性記憶媒体制御装置１３０のデータ受付部１２６に渡す（Ｓ５０７）。
【００４４】
次に、データ構成変更部１２７を用いて、第３のデータＤ００１’［ａ，ｂ’，ｃ，ｄ］６０５のデータ構成を変更する（Ｓ５０８）。具体的には、データ構成変更部１２７は、データ構成情報管理部１２３で管理するデータ構成情報を参照してデータＤ００１を構成するデータ要素及び各データ要素の格納時順序情報を取得し（Ｓ７０１）、第３のデータＤ００１’［ａ，ｂ’，ｃ，ｄ］６０５を構成するデータ要素の順序と比較する（Ｓ７０２）。順序が異なる場合（Ｓ７０３）は、Ｄ００１を構成するデータ要素の前記格納時順序情報に従って、第３のデータＤ００１’［ａ，ｂ’，ｃ，ｄ］６０５を構成するデータ要素の順序を並び替える（Ｓ７０４）。ここで、データ構成情報が図３に示したデータ構成情報３００であるとすると、データ格納時には、データＤ００１を、データ要素ａ、データ要素ｃ、データ要素ｂ、データ要素ｄ、の順に配置する必要がある。従って、データ構成変更部１２７は、データ要素ａ、データ要素ｂ’、データ要素ｃ、データ要素ｄの順に配置された平文データである第３のデータＤ００１’［ａ，ｂ’，ｃ，ｄ］６０５を、データ要素ａ、データ要素ｃ、データ要素ｂ’、データ要素ｄ、の順に配置された平文データに並び替え、第４のデータＤ００１’［ａ，ｃ，ｂ’，ｄ］６０６とする。
【００４５】
次に、データ暗号化部１２８を用いて、第４のデータＤ００１’［ａ，ｃ，ｂ’，ｄ］６０６を暗号ブロック連鎖モードで暗号化し、第２の暗号化データＥ（Ｄ００１’ ［ａ，ｃ，ｂ’，ｄ］）６０７を得る。データ暗号化部１２８の動作の詳細については後述する。
【００４６】
最後に、データ書込部１２９を用いて、第２の暗号化データＥ（Ｄ００１’［ａ，ｃ，ｂ’，ｄ］）６０７を不揮発性記憶媒体１３０に書き込む。
【００４７】
次に、データ暗号化部１２８における暗号化動作について、図８、および図９を用いてさらに詳細に説明する。
【００４８】
図８は、本実施の形態における暗号化動作の概要を示すフローチャートである。
【００４９】
図９は、本実施の形態における暗号化動作の際のデータ処理の概要を示す説明図である。
【００５０】
まず、データ構成復元前の更新前データと、データ構成変更後の更新後データ、の各データ要素の値を比較して、データ更新の前後で変更された要素、すなわち、差分データ要素を特定する（Ｓ８０１）。図９の例では、更新前データＤ００１［ａ，ｃ，ｂ，ｄ］９０１と、更新後データＤ００１’［ａ，ｃ，ｂ’，ｄ］９０２を比較することで、差分データ要素としてｂ’（ｂ）を得る。
【００５１】
次に、差分データ要素が存在する場合（Ｓ８０２でＹｅｓの場合）は、更新後データにおいて、更新後データの先頭位置に最も近い差分データ要素を含む平文ブロック（以降、「先頭差分平文ブロック」と呼ぶ）を特定する（Ｓ８０３）。ここで「更新後データの先頭」とは、更新後データを並べたとき、更新後データが論理的に先頭に配置される位置を示す。図９の例では、更新後データＤ００１’［ａ，ｃ，ｂ’，ｄ］９０２を平文ブロックに分解した更新後データＤ００１’［ａ，ｃ，ｂ’，ｄ］９０３において、データ要素ａを含む平文ブロック１が先頭位置になり、先頭位置に最も近い差分データ要素ｂ’を含む平文ブロックとなる平文ブロック３が、更新後データＤ００１’［ａ，ｃ，ｂ’，ｄ］９０２の先頭差分平文ブロックとなる。
【００５２】
次に、先頭差分平文ブロックより前方の平文ブロックに関しては、更新前データの暗号化データより、対応する暗号文ブロックを抽出して中間暗号化データ１とする（Ｓ８０４）。図９の例では、先頭差分平文ブロックである平文ブロック３より前方の平文ブロック１および平文ブロック２に関しては、更新前データである前記第１のデータＤ００１［ａ，ｃ，ｂ，ｄ］の暗号化データである第１の暗号化データＥ（Ｄ００１［ａ，ｃ，ｂ，ｄ］）９０４より、対応する暗号文ブロックを抽出して中間暗号化データ１とするので、中間暗号化データ１は、暗号文ブロック１と暗号文ブロック２とで構成されることになる。
【００５３】
次に、先頭差分平文ブロック以降の平文ブロックに関しては、更新後データより対応する平文ブロックを抽出し、暗号ブロック連鎖モードで暗号化して、中間暗号化データ２とする（Ｓ８０５）。図９の例では、先頭差分平文ブロックである平文ブロック３以降の平文ブロック、すなわち、平文ブロック３、平文ブロック４を暗号ブロック連鎖モードで暗号化して中間暗号化データ２とする。より具体的には、中間暗号化データ２は、暗号文ブロック２と平文ブロック３をＸＯＲ演算した結果に対して、ブロック暗号アルゴリズムによる所定の暗号化処理を行った結果である暗号文ブロック３と、暗号文ブロック３と平文ブロック４をＸＯＲ演算した結果に対して、ブロック暗号アルゴリズムによる所定の暗号化処理を行った結果である暗号文ブロック４とで構成される。
【００５４】
最後に、前記中間暗号化データ１と前記中間暗号化データ２を連結して暗号化データを得る（Ｓ８０６）。図９の例では、暗号化データは、Ｅ（Ｄ００１’［ａ，ｃ，ｂ’，ｄ］）９０５となる。
【００５５】
また、差分データ要素が存在しない場合（Ｓ８０２でＮｏの場合）は、更新後データを暗号ブロック連鎖モードで暗号化して暗号化データを得る（Ｓ８０７）。
【００５６】
かかる構成によれば、更新頻度の高いデータ要素をデータ後部に配置するようにデータ構成情報３００の格納時順序情報を定義し、データ構成変更部１２７において、前記データ構成情報３００に基づいて各データ要素の順序を並び替え、データ暗号化部１２８において、更新されたデータ要素を含む平文ブロック以降の平文ブロックのみについて暗号化を行うようにすることで、更新後データを暗号化する際に全てのデータを暗号化する必要がなくなり、データの暗号化を効率化することができる。
【００５７】
なお、本実施の形態では、データ構成変更部１２７は、データ構成情報の格納時順序情報に基づいて、第３のデータＤ００１’［ａ，ｂ’，ｃ，ｄ］６０５を構成するデータ要素の順序を並び替える（Ｓ７０４）としたが、データを構成する各データ要素の更新回数を示す更新状況情報をさらに含むデータ構成情報とし、前記更新状況情報に基づいて、更新回数の多いデータ要素がデータ後方部に配置されるように前記データ受付部で受け付けた前記第３のデータの構成を変更して第４のデータとするデータ構成変更部１２７としても良い。以下、データＤ００１のデータ要素ｂをデータ要素ｂ’に更新したデータＤ００１’を不揮発性記憶媒体１３０に格納する際のデータ構成変更部１２７の動作の概要について、図１０を参照しながら説明する。
【００５８】
図１０は、図３で示したデータ構成情報の構成例に対して、データを構成する各データ要素の更新状況情報３０５をさらに加えたデータ構成情報の構成例である。
【００５９】
図１０によると、データＤ００１に関する更新状況情報は、データ要素ａの更新回数が１回、データ要素ｂの更新回数が１０回、データ要素ｃの更新回数が３回、データ要素ｄの更新回数が１２回、であることから、データ格納時には、更新回数の多いデータ要素がデータ後方部に配置されるように並び替えた順である、データ要素ａ、データ要素ｃ、データ要素ｂ、データ要素ｄ、の順に配置する必要がある。従って、データ構成変更部１２７は、データ要素ａ、データ要素ｂ’、データ要素ｃ、データ要素ｄの順に配置された平文データである第３のデータＤ００１’［ａ，ｂ’，ｃ，ｄ］６０５を、データ要素ａ、データ要素ｃ、データ要素ｂ’、データ要素ｄ、の順に配置された平文データに並び替え、第４のデータＤ００１’［ａ，ｃ，ｂ’，ｄ］６０６とする。
【００６０】
なお、本実施の形態では、更新状況情報３０５として、データを構成する各データ要素の更新回数を示す情報を更新状況情報３０５としたが、各データ要素の単位時間当たりの更新回数を示す更新頻度情報を更新状況情報３０５としてもよい。
【００６１】
また、以上の説明では、データ格納時には、更新回数の多いデータ要素がデータ後方部に配置されるように並び替えるとしたが、データ要素毎、あるいは、格納時順序情報に応じて定めた閾値に基づいて、更新されたデータ要素の更新回数が該データ要素に対応する所定の閾値を超えた場合にのみデータ要素を並び替えるとしてもよい。以下、データＤ００１のデータ要素ｂをデータ要素ｂ’に更新したデータＤ００１’を不揮発性記憶媒体１３０に格納する際のデータ構成変更部１２７の動作の概要について、図１１を参照しながら説明する。
【００６２】
図１１は、図１０で示したデータ構成情報の構成例に対して、データを構成する各データ要素の並び替え要否を判定するための閾値３０６をさらに加えたデータ構成情報の構成例である。
【００６３】
図１１によると、データＤ００１に関する閾値は、データ要素ａに対応する閾値が１、データ要素ｂに対応する閾値が９回、データ要素ｃに対応する閾値が１０、データ要素ｄに対応する閾値が２０、であることから、データＤ００１のデータ要素ｂをデータ要素ｂ’に更新したデータＤ００１’を不揮発性記憶媒体１３０に格納する場合、更新されたデータ要素ｂの更新回数＝１０回は、データ要素ｂに対応する閾値＝９よりも大きいため、データ要素の並び替えを行うことになる。従って、データ構成変更部１２７は、データ要素ａ、データ要素ｂ’、データ要素ｃ、データ要素ｄの順に配置された平文データである第３のデータＤ００１’［ａ，ｂ’，ｃ，ｄ］６０５を、データ要素ａ、データ要素ｃ、データ要素ｂ’、データ要素ｄ、の順に配置された平文データに並び替え、第４のデータＤ００１’［ａ，ｃ，ｂ’，ｄ］６０６とする。
【００６４】
かかる構成によれば、更新データ要素の配置に応じたより柔軟かつ効率的な書き換え制御が可能になる。例えば、データ前方部のデータ要素は更新頻度が低くてもデータ構成を変更したり、データ後方部のデータ要素は所定の更新頻度以上に達しない限りデータ構成を変更しないといった制御が可能になる。
【００６５】
また、以上の説明では、データ構成変更部１２７は、格納時順序情報３０４、あるいは、更新状況情報３０５に基づいてデータ要素を並び替えるとしたが、データ要素種別に基づいてデータ要素を並び替えるとしてもよい。なお、データ要素種別とは、データ要素の型や種類といった属性を示す情報であり、例えば、データの一意識別子や、データの名称、データ作成日時、データ更新日時等の情報である。
【００６６】
また、データ構成情報をデータ本体の末尾に連結してもよい。データ構成情報はデータ更新の度に更新される情報であり、必ず不揮発性記憶媒体の書き換えが必要になるが、かかる構成によれば、これをデータ本体の更新による不揮発性記憶媒体の書き換えと一括して行うことが可能となり、不揮発性記憶媒体の書き換え回数をより低減することができる。
【００６７】
なお、本実施の形態では、データ書込部１２９は、データ暗号化部１２８で暗号化した前記第２の暗号化データを不揮発性記憶媒体１３０に書き込むとしたが、不揮発性記憶媒体を、フラッシュメモリ等の書き換え回数に制限のある不揮発性半導体メモリとして、データ読込部１２１で読み込んだ第１の暗号化データと、データ暗号化部１２８で暗号化された第４の暗号化データを比較して、前記第４の暗号化データのうち、変化があったページまたはブロックのみを書き換えるデータ書込部１２９としてもよい。
【００６８】
以下、データＤ００１のデータ要素ｂをデータ要素ｂ’に更新したデータＤ００１’を不揮発性記憶媒体１３０に格納し、さらに、データＤ００１’のデータ要素ｂ’をデータ要素ｂ”に更新したデータＤ００１”を不揮発性記憶媒体１３０に格納する動作の概要について、図１２から図１５を参照しながら説明する。
【００６９】
図１２は、不揮発性記憶媒体１３０に格納されたデータＤ００１を読み込み、データＤ００１のデータ要素ｂをデータ要素ｂ’に更新したデータＤ００１’を不揮発性記憶媒体１３０に書き込む一連の動作におけるデータ及びデータ構造の変化を示す説明図である。図１２において、斜線掛けされた部分は、暗号化されたデータ及びデータ要素であることを示し、（）で囲まれた数字は、不揮発性記憶媒体１３０のブロック書き換え回数を示す。なお、説明を簡単にするために、データ要素のサイズとブロックサイズは等しいものとしたが、相互に異なるサイズであってもよい。
【００７０】
図１３は、不揮発性記憶媒体１３０に格納されたデータＤ００１を読み込み、データＤ００１のデータ要素ｂをデータ要素ｂ’に更新したデータＤ００１’を不揮発性記憶媒体１３０に書き込む一連の動作において、データ構成情報管理部１２３が管理するデータ構成情報の構成例を示す図である。
【００７１】
図１４は、不揮発性記憶媒体１３０に格納されたデータＤ００１’を読み込み、データＤ００１’のデータ要素ｂ’をデータ要素ｂ”に更新したデータＤ００１”を不揮発性記憶媒体１３０に書き込む一連の動作におけるデータ及びデータ構造の変化を示す説明図である。
【００７２】
図１５は、不揮発性記憶媒体１３０に格納されたデータＤ００１’を読み込み、データＤ００１’のデータ要素ｂ’をデータ要素ｂ”に更新したデータＤ００１”を不揮発性記憶媒体１３０に書き込む一連の動作において、データ構成情報管理部１２３が管理するデータ構成情報の構成例を示す図である。
【００７３】
まず、図１２及び図１３を用いて、不揮発性記憶媒体１３０に格納されたデータＤ００１を読み込み、データＤ００１のデータ要素ｂをデータ要素ｂ’に更新したデータＤ００１’を不揮発性記憶媒体１３０に書き込む一連の動作について詳細に説明する。
【００７４】
不揮発性記憶媒体制御装置１２０は、ホスト装置１１０からデータＤ００１に対するデータ取得要求を受け付ける（Ｓ５０１）と、データ読込部１２１を用いて、フラッシュメモリ１３０に格納されたデータ６０１より、要求されたデータＤ００１に対応する第１の暗号化データＥ（Ｄ００１［ａ，ｂ，ｃ，ｄ］）６０２を読み込む（Ｓ５０２）。
【００７５】
次に、データ復号部１２２を用いて、暗号ブロック連鎖モードで暗号化された第１の暗号化データＥ（Ｄ００１［ａ，ｂ，ｃ，ｄ］）６０２を復号し、第１のデータＤ００１［ａ，ｂ，ｃ，ｄ］６０３を得る（Ｓ５０３）。
【００７６】
次に、データ構成復元部１２４を用いて、第１のデータＤ００１［ａ，ｂ，ｃ，ｄ］６０３のデータ構成を復元する（Ｓ５０４）。具体的には、データ構成復元部１２４は、データ構成情報管理部１２３で管理するデータ構成情報を参照してデータＤ００１を構成するデータ要素及び各データ要素の復元時順序情報を取得し（Ｓ７０１）、第１のデータＤ００１［ａ，ｂ，ｃ，ｄ］６０３を構成するデータ要素の順序と比較する（Ｓ７０２）。順序が異なる場合（Ｓ７０３）は、前記復元時順序情報に従って、第１のデータＤ００１［ａ，ｂ，ｃ，ｄ］６０３を構成するデータ要素の順序を並び替える（Ｓ７０４）。ここで、データ構成情報が図１３に示したデータ構成情報３００であるとすると、第１のデータＤ００１［ａ，ｂ，ｃ，ｄ］６０３の復元時順序は、データ要素ａ、データ要素ｂ、データ要素ｃ、データ要素ｄ、の順になる。従って、データ構成復元部１２４は、データ要素ａ、データ要素ｂ、データ要素ｃ、データ要素ｂの順に配置された平文データである第１のデータＤ００１［ａ，ｂ，ｃ，ｄ］６０３を、第２のデータＤ００１［ａ，ｂ，ｃ，ｄ］６０４とする。
【００７７】
次に、データ出力部１２５を用いて、第２のデータＤ００１［ａ，ｂ，ｃ，ｄ］６０４をホスト装置１１０のデータ取得部１１１に渡す（Ｓ５０５）。
【００７８】
次に、データ更新部１１２を用いて、データ取得部１１１で取得した第２のデータＤ００１［ａ，ｂ，ｃ，ｄ］６０４のデータ要素ｂをｂ’に変更する（Ｓ５０６）。この変更後のデータを第３のデータＤ００１’［ａ，ｂ’，ｃ，ｄ］６０５とする。
【００７９】
次に、第３のデータＤ００１’［ａ，ｂ’，ｃ，ｄ］６０５で、不揮発性記憶媒体１３０に格納された第１の暗号化データＥ（Ｄ００１［ａ，ｂ，ｃ，ｄ］）を更新するために、データ書込要求部１１３を用いて、第３のデータＤ００１’［ａ，ｂ’，ｃ，ｄ］６０５を不揮発性記憶媒体１３０のデータ受付部１２６に渡す（Ｓ５０７）。
【００８０】
次に、データ構成変更部１２７を用いて、第３のデータＤ００１’［ａ，ｂ’，ｃ，ｄ］６０５のデータ構成を変更する（Ｓ５０８）。ここで、データ構成情報が図１３に示したデータ構成情報３００であるとすると、データ格納時には、データＤ００１を、データ要素ａ、データ要素ｃ、データ要素ｄ、データ要素ｂ’、の順に配置する必要がある。従って、データ構成変更部１２７は、データ要素ａ、データ要素ｂ’、データ要素ｃ、データ要素ｄの順に配置された平文データである第３のデータＤ００１’［ａ，ｂ’，ｃ，ｄ］６０５を、データ要素ａ、データ要素ｃ、データ要素ｄ、データ要素ｂ’、の順に配置された平文データに並び替え、第４のデータＤ００１’［ａ，ｃ，ｄ，ｂ’］６０６とする。
【００８１】
次に、データ暗号化部１２８を用いて、第４のデータＤ００１’［ａ，ｃ，ｄ，ｂ’］６０６を暗号ブロック連鎖モードで暗号化し、第２の暗号化データＥ（Ｄ００１’［ａ，ｃ，ｄ，ｂ’］）６０７を得る。
【００８２】
最後に、データ書込部１２９を用いて、第２の暗号化データＥ（Ｄ００１’［ａ，ｃ，ｄ，ｂ’］）６０７を不揮発性記憶媒体１３０に書き込む。この時、データ書込部１２９は、第１の暗号化データＥ（Ｄ００１［ａ，ｂ，ｃ，ｄ］）６０１と、第２の暗号化データＥ（Ｄ００１’［ａ，ｃ，ｄ，ｂ’］）６０７を比較して異なる部分のみを書き換えるため、データ要素ａに対応するブロックは書き換えられず、データ要素ｃ、データ要素ｄ、データ要素ｂ’に対応するブロックが書き換えられることになる。
【００８３】
次に、図１４及び図１５を用いて、不揮発性記憶媒体１３０に格納されたデータＤ００１’を読み込み、データＤ００１’のデータ要素ｂ’をデータ要素ｂ”に更新したデータＤ００１”を不揮発性記憶媒体１３０に書き込む一連の動作について詳細に説明する。
【００８４】
不揮発性記憶媒体制御装置１２０は、ホスト装置１１０からデータＤ００１’に対するデータ取得要求を受け付ける（Ｓ５０１）と、データ読込部１２１を用いて、不揮発性記憶媒体１３０に格納されたデータ６０１より、要求されたデータＤ００１’に対応する第１の暗号化データＥ（Ｄ００１’［ａ，ｃ，ｄ，ｂ’］）６０２を読み込む（Ｓ５０２）。
【００８５】
次に、データ復号部１２２を用いて、暗号ブロック連鎖モードで暗号化された第１の暗号化データＥ（Ｄ００１’［ａ，ｃ，ｄ，ｂ’］）６０２を復号し、第１のデータＤ００１’［ａ，ｃ，ｄ，ｂ’］６０３を得る（Ｓ５０３）。
【００８６】
次に、データ構成復元部１２４を用いて、第１のデータＤ００１’［ａ，ｃ，ｄ，ｂ’］６０３のデータ構成を復元する（Ｓ５０４）。ここで、データ構成情報が図１５に示したデータ構成情報３００であるとすると、第１のデータＤ００１’［ａ，ｃ，ｄ，ｂ’］６０３の復元時順序は、データ要素ａ、データ要素ｂ’、データ要素ｃ、データ要素ｄ、の順になる。従って、データ構成復元部１２４は、データ要素ａ、データ要素ｂ’、データ要素ｃ、データ要素ｂの順に配置された平文データである第１のデータＤ００１’［ａ，ｂ’，ｃ，ｄ］６０３を、第２のデータＤ００１’［ａ，ｂ’，ｃ，ｄ］６０４とする。
【００８７】
次に、データ出力部１２５を用いて、第２のデータＤ００１’［ａ，ｂ’，ｃ，ｄ］６０４をホスト装置１１０のデータ取得部１１１に渡す（Ｓ５０５）。
【００８８】
次に、データ更新部１１２を用いて、データ取得部１１１で取得した第２のデータＤ００１’［ａ，ｂ’，ｃ，ｄ］６０４のデータ要素ｂ’をｂ”に変更する（Ｓ５０６）。この変更後のデータを第３のデータＤ００１”［ａ，ｂ”，ｃ，ｄ］６０５とする。
【００８９】
次に、第３のデータＤ００１”［ａ，ｂ”，ｃ，ｄ］６０５で、不揮発性記憶媒体１３０に格納された第１の暗号化データＥ（Ｄ００１’［ａ，ｃ，ｄ，ｂ’］）を更新するために、データ書込要求部１１３を用いて、第３のデータＤ００１”［ａ，ｂ”，ｃ，ｄ］６０５を不揮発性記憶媒体１３０のデータ受付部１２６に渡す（Ｓ５０７）。
【００９０】
次に、データ構成変更部１２７を用いて、第３のデータＤ００１”［ａ，ｂ”，ｃ，ｄ］６０５のデータ構成を変更する（Ｓ５０８）。ここで、データ構成情報が図１５に示したデータ構成情報３００であるとすると、データ格納時には、データＤ００１”を、データ要素ａ、データ要素ｃ、データ要素ｄ、データ要素ｂ”、の順に配置する必要がある。従って、データ構成変更部１２７は、データ要素ａ、データ要素ｃ、データ要素ｄ、データ要素ｂ”の順に配置された平文データである第３のデータＤ００１”［ａ，ｂ”，ｃ，ｄ］６０５を、データ要素ａ、データ要素ｃ、データ要素ｄ、データ要素ｂ”、の順に配置された平文データに並び替え、第４のデータＤ００１”［ａ，ｃ，ｄ，ｂ”］６０６とする。
【００９１】
次に、データ暗号化部１２８を用いて、第４のデータＤ００１”［ａ，ｃ，ｄ，ｂ”］６０６を暗号ブロック連鎖モードで暗号化し、第２の暗号化データＥ（Ｄ００１”［ａ，ｃ，ｄ，ｂ”］）６０７を得る。
【００９２】
最後に、データ書込部１２９を用いて、第２の暗号化データＥ（Ｄ００１”［ａ，ｃ，ｄ，ｂ”］）６０７を不揮発性記憶媒体１３０に書き込む。この時、データ書込部１２９は、第１の暗号化データＥ（Ｄ００１’［ａ，ｃ，ｄ，ｂ’］）６０１と、第２の暗号化データＥ（Ｄ００１”［ａ，ｃ，ｄ，ｂ”］）６０７を比較して異なる部分のみを書き換えるため、データ要素ａ、データ要素ｃ、データ要素ｄ、に対応するブロックは書き換えられず、データ要素ｂ”に対応するブロックのみが書き換えられることになる。
【００９３】
かかる構成によれば、暗号ブロック連鎖モードによる暗号化データに対しても、不揮発性記憶媒体であるフラッシュメモリのブロックの書き換え回数を低減でき、フラッシュメモリの書き換え寿命を延ばすことができる。
【００９４】
また、以上の説明では、説明を簡単にするために、データ要素のサイズと、暗号文ブロック及び平文ブロックのサイズと、不揮発性記憶媒体（フラッシュメモリ）１３０のブロックのサイズを等しいものとして扱ったが、相互に異なるサイズであってもよい。
【００９５】
また、本発明はこれら実施の形態に何等限定されるものではなく、その要旨を逸脱しない範囲において種々なる態様で実施し得る。
【産業上の利用可能性】
【００９６】
本発明の不揮発性記憶媒体制御装置は、データ要素の配置・順序を変更した上でデータを暗号化することで、ＣＢＣモードのような暗号ブロック連鎖モードによる暗号化処理を効率化するという効果を有し、暗号ブロック連鎖モードの暗号データの書き換え時、書き換え処理速度を向上することができる不揮発性記憶媒体制御装置として有用である。
【００９７】
また、本発明の不揮発性記半導体メモリ記憶媒体制御装置は、データ要素の配置・順序、を変更した上でデータを暗号化することで、ＣＢＣモードのような暗号ブロック連鎖モードによる暗号化処理を効率化する効果を有し、また、不揮発性記半導体メモリ記憶媒体のブロックの書き換え回数を低減できるので、書き換え寿命を延ばすことができる不揮発性記半導体メモリ記憶媒体制御装置として有用である。
【図面の簡単な説明】
【００９８】
【図１】本発明の実施の形態に係る端末装置の全体構成を示す機能ブロック図
【図２】本発明の実施の形態に係るホスト装置１１０で扱うデータの構成例を示す図
【図３】本発明の実施の形態に係るデータ構成情報管理部１２３が管理するデータ構成情報の構成例を示す図
【図４】本発明の実施の形態に係る不揮発性記憶媒体１３０に格納されたデータの構成例を示す図
【図５】本発明の実施の形態に係るデータの読み込み、及び、書き換え動作の概要を示すフローチャート
【図６】本発明の実施の形態に係るデータの読み込み、及び、書き換え動作におけるデータ及びデータ構造の変化を示す説明図
【図７】本発明の実施の形態に係るデータ構成情報を用いてデータ構成を復元するステップＳ５０４の動作の詳細を示すフローチャート
【図８】本発明の実施の形態に係る暗号化動作の概要を示すフローチャート
【図９】本発明の実施の形態に係る暗号化動作の際のデータ処理の概要を示す説明図
【図１０】本発明の実施の形態に係るデータ構成情報管理部１２３が管理するデータ構成情報の構成例を示す図
【図１１】本発明の実施の形態に係るデータ構成情報管理部１２３が管理するデータ構成情報の構成例を示す図
【図１２】本発明の実施の形態に係るデータの読み込み、及び、書き換え動作におけるデータ及びデータ構造の変化を示す説明図
【図１３】本発明の実施の形態に係るデータの読み込み、及び、書き換え動作におけるデータ及びデータ構造の変化を示す説明図
【図１４】本発明の実施の形態に係るデータ構成情報管理部１２３が管理するデータ構成情報の構成例を示す図
【図１５】本発明の実施の形態に係るデータ構成情報管理部１２３が管理するデータ構成情報の構成例を示す図
【符号の説明】
【００９９】
１００    端末装置
１１０    ホスト装置
１２０    不揮発性記憶媒体制御装置
１３０    不揮発性記憶媒体
１１１    データ取得部
１１２    データ更新部
１１３    データ書込要求部
１２１    データ読込部
１２２    データ復号部
１２３    データ構成情報管理部
１２４    データ構成復元部
１２５    データ出力部
１２６    データ受付部
１２７    データ構成変更部
１２８    データ暗号化部
１２９    データ書込部
２００    データ（データ本体）
２０１    データ要素
３００    データ構成情報
３０１    データ識別子
３０２    データ要素識別子
３０３    復元時順序情報
３０４    格納時順序情報
３０５    更新状況情報
３０６    閾値
４０１    暗号化データ
【図１】
2010009174.tif 000003
【図２】
2010009174.tif 000004
【図３】
2010009174.tif 000005
【図４】
2010009174.tif 000006
【図５】
2010009174.tif 000007
【図６】
2010009174.tif 000008
【図７】
2010009174.tif 000009
【図８】
2010009174.tif 000010
【図９】
2010009174.tif 000011
【図１０】
2010009174.tif 000012
【図１１】
2010009174.tif 000013
【図１２】
2010009174.tif 000014
【図１３】
2010009174.tif 000015
【図１４】
2010009174.tif 000016
【図１５】
2010009174.tif 000017