(57)【要約】【課題】単一の値またはパターンが繰り返されるデータが暗号化の対象となる場合の耐タンパ性を向上させることを可能としたファイルシステムを提供する。【解決手段】繰り返し部分検出部２２は、利用者プログラム１０から渡されたファイルデータ中に繰り返し部分がないかを検索する。繰り返し部分が有ったら、ランダム値生成部２３は、ランダム値を生成し、繰り返し部分編集部２４は、繰り返し部分をランダム値に改変する。また、メタ情報記録部２５は、ランダム値に改変された繰り返し部分を元の値に戻すためのメタ情報を記録する。そして、制御部２１は、データ／ブロック変換部２６によってブロック化したファイルデータおよびメタ情報をブロック暗号化／復号モジュール３０を介して外部記憶装置３に書き込む。【選択図】      図２
2008061035.tif 000002
【特許請求の範囲】
【請求項１】
データを暗号化および復号する暗号化復号装置を介在させて、外部記憶装置へのファイルの書き込みおよび前記外部記憶装置からのファイルの読み出しを実行するファイルシステムにおいて、
書き込み対象のファイルのデータを前記暗号化復号装置に引き渡す際に単一の値またはパターンが繰り返された状態となる繰り返し部分を検索する検索手段と、
前記検索手段により検出された繰り返し部分の値をランダムな値に置き換える置き換え手段と、
前記置き換え手段によりランダムな値に置き換えられた繰り返し部分の値を元の状態に復元するための情報を、前記書き込み対象のファイルのデータを前記外部記憶装置上で管理するためのメタ情報として記録する記録手段と、
を具備することを特徴とするファイルシステム。
【請求項２】
読み出し対象のファイルのデータを前記暗号化復号装置から受け取った際、前記記録手段により記録された前記メタ情報に基づき、前記置き換え手段によりランダムな値に置き換えられた繰り返し部分の値を元の状態に復元する復元手段を具備することを特徴とする請求項１記載のファイルシステム。
【請求項３】
前記検索手段は、利用者プログラムにより書き込まれる実データ中から繰り返し部分を検索することを特徴とする請求項１記載のファイルシステム。
【請求項４】
前記検索手段は、前記書き込み対象のファイルの領域として確保されているが利用者プログラムによる実データの書き込みは行われていない領域を繰り返し部分として検索することを特徴とする請求項１記載のファイルシステム。
【請求項５】
前記検索手段は、前記書き込み対象のファイルのデータを格納するために割り当てられたブロック内の当該ファイルのデータが存在しない領域を繰り返し部分として検索することを特徴とする請求項１記載のファイルシステム。
【請求項６】
データを暗号化および復号する暗号化復号装置を介在させて、主記憶装置から外部記憶装置へのスワップアウトおよび前記外部記憶装置から前記主記憶装置へのページインを実行する仮想記憶システムにおいて、
スワップアウト対象のページのデータ中から単一の値またはパターンが繰り返された繰り返し部分を検索する検索手段と、
前記検索手段により検出された繰り返し部分の値をランダムな値に置き換える置き換え手段と、
前記置き換え手段によりランダムな値に置き換えられた繰り返し部分の値を元の状態に復元するための情報を、前記スワップアウト対象のページのデータを仮想記憶上で管理するためのメタ情報として記録する記録手段と、
を具備することを特徴とする仮想記憶システム。
【請求項７】
ページイン対象のページのデータを前記暗号化復号装置から受け取った際、前記記録手段により記録された前記メタ情報に基づき、前記置き換え手段によりランダムな値に置き換えられた繰り返し部分の値を元の状態に復元する復元手段を具備することを特徴とする請求項６記載の仮想記憶システム。
【請求項８】
外部記憶装置へのデータの書き込みおよび前記外部記憶装置からのデータの読み出しを実行する上位システムと、前記上位システムと前記外部記憶装置との間に介在して前記書き込みデータの暗号化および前記読み出しデータの復号を実行する暗号化復号装置との間に介在させて設けられ、前記暗号化復号装置による暗号化の耐タンパ性を向上させるための処理を実行する耐タンパ性向上化システムであって、
前記書き込みデータを前記暗号化復号装置に引き渡す際に単一の値またはパターンが繰り返された状態となる繰り返し部分を検索する検索手段と、
前記検索手段により検出された繰り返し部分の値をランダムな値に置き換える置き換え手段と、
前記置き換え手段によりランダムな値に置き換えられた繰り返し部分の値を元の状態に復元するための情報を、前記書き込みデータを前記外部記憶装置上で管理するためのメタ情報として記録する記録手段と、
を具備することを特徴とする耐タンパ性向上化システム。
【請求項９】
前記読み出しデータを前記暗号化復号装置から受け取った際、前記記録手段により記録された前記メタ情報に基づき、前記置き換え手段によりランダムな値に置き換えられた繰り返し部分の値を元の状態に復元する復元手段を具備することを特徴とする請求項１記載の耐タンパ性向上化システム。
【請求項１０】
データを暗号化および復号する暗号化復号装置を介在させて、外部記憶装置へのデータの書き込みおよび前記外部記憶装置からのデータの読み出しを実行するコンピュータシステムの耐タンパ性向上化方法であって、
前記書き込みデータを前記暗号化復号装置に引き渡す際に単一の値またはパターンが繰り返された状態となる繰り返し部分を検索する検索ステップと、
前記検索ステップにより検出された繰り返し部分の値をランダムな値に置き換える置き換えステップと、
前記置き換えステップによりランダムな値に置き換えられた繰り返し部分の値を元の状態に復元するための情報を、前記書き込みデータを前記外部記憶装置上で管理するためのメタ情報として記録する記録ステップと、
を具備することを特徴とする耐タンパ性向上化方法。
【請求項１１】
前記読み出しデータを前記暗号化復号装置から受け取った際、前記記録ステップにより記録された前記メタ情報に基づき、前記置き換えステップによりランダムな値に置き換えられた繰り返し部分の値を元の状態に復元する復元ステップを具備することを特徴とする請求項１０記載の耐タンパ性向上化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、外部記憶装置へのデータ出力時に暗号化を実行するコンピュータに適用して好適な暗号化の耐タンパ性向上化技術に関する。
【背景技術】
【０００２】
近年、ノートブックタイプやデスクトップタイプ等、様々なタイプのパーソナルコンピュータが広く普及しており、その性能も飛躍的に向上している。また、動画像のデジタル圧縮符号化技術の進展に伴って、ＨＤ（High Definition）規格の高精細映像を扱うことが可能なパーソナルコンピュータも流通し始めている。
【０００３】
このような状況から、最近では、著作権保護されたコンテンツをパーソナルコンピュータ上でどのように取り扱うかが非常に大きな問題となってきている。デジタル化された情報は、品質を劣化させずに何世代にも渡ってコピーが可能であるからである。そして、不正コピー防止のための主要な技術として暗号化が存在しており、これまでも種々の提案がなされている（例えば特許文献１等参照）。
【特許文献１】特開２００２−９３０５８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、単一の値またはパターンが繰り返されるデータは、暗号の解読において解きやすい（これを「耐タンパ性が低い」という）データといわれている。従って、例えば著作権保護されたコンテンツを暗号化してＨＤＤ等の外部記憶装置に書き込むパーソナルコンピュータ等においては、如何なるデータであっても耐タンパ性を低下させない仕組みを備えることが急務となっている。
【０００５】
この発明は、このような事情を考慮してなされたものであり、単一の値またはパターンが繰り返されるデータが暗号化の対象となる場合の耐タンパ性を向上させることを可能としたファイルシステム、仮想記憶システム、耐タンパ性向上化システムおよび耐タンパ性向上化方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
この目的を達成するために、この発明は、データを暗号化および復号する暗号化復号装置を介在させて、外部記憶装置へのファイルの書き込みおよび前記外部記憶装置からのファイルの読み出しを実行するファイルシステムにおいて、書き込み対象のファイルのデータを前記暗号化復号装置に引き渡す際に単一の値またはパターンが繰り返された状態となる繰り返し部分を検索する検索手段と、前記検索手段により検出された繰り返し部分の値をランダムな値に置き換える置き換え手段と、前記置き換え手段によりランダムな値に置き換えられた繰り返し部分の値を元の状態に復元するための情報を、前記書き込み対象のファイルのデータを前記外部記憶装置上で管理するためのメタ情報として記録する記録手段と、を具備することを特徴とする。
【０００７】
また、この発明は、データを暗号化および復号する暗号化復号装置を介在させて、主記憶装置から外部記憶装置へのスワップアウトおよび前記外部記憶装置から前記主記憶装置へのページインを実行する仮想記憶システムにおいて、スワップアウト対象のページのデータ中から単一の値またはパターンが繰り返された繰り返し部分を検索する検索手段と、前記検索手段により検出された繰り返し部分の値をランダムな値に置き換える置き換え手段と、前記置き換え手段によりランダムな値に置き換えられた繰り返し部分の値を元の状態に復元するための情報を、前記スワップアウト対象のページのデータを仮想記憶上で管理するためのメタ情報として記録する記録手段と、を具備することを特徴とする。
【発明の効果】
【０００８】
この発明によれば、単一の値またはパターンが繰り返されるデータが暗号化の対象となる場合の耐タンパ性を向上させることを可能とする。
【発明を実施するための最良の形態】
【０００９】
以下、図面を参照して、この発明の実施形態を説明する。
【００１０】
（第１実施形態）
まず、この発明の第１実施形態について説明する。図１は、第１実施形態のファイルシステムが動作するコンピュータのシステム構成を概略的に示す図である。
【００１１】
本コンピュータは、図１に示すように、ＣＰＵ１、主記憶装置２、外部記憶装置３、表示コントローラ４、キーボードコントローラ５等を備えており、これらはシステムバスを介して相互接続されている。
【００１２】
ＣＰＵ１は、本コンピュータの動作を制御するプロセッサであり、外部記憶装置３から主記憶装置２にロードされる各種プログラムを実行する。このＣＰＵ１によって実行される各種プログラムの１つとして、本実施形態のファイルシステムは実現されている。
【００１３】
主記憶装置２は、本コンピュータの主記憶として用いられる高速小容量の例えばＤＲＡＭ（dynamic random-access memory）等のメモリデバイスであり、一方、外部記憶装置３は、本コンピュータの外部記憶として用いられる低速大容量の例えばＨＤＤ（hard disk drive）等のメモリデバイスである。
【００１４】
表示コントローラ４は、本コンピュータが提供するユーザインタフェースのアウトプット側を担うデバイスであり、ＣＰＵ１が作成した表示データを例えばＬＣＤ（liquid crystal display）等の表示装置に表示する。一方、キーボードコントローラ５は、本コンピュータが提供するユーザインタフェースのインプット側を担うデバイスであり、ユーザによる例えばキーボードやマウス等の操作を数値化してＣＰＵ１に伝達する。
【００１５】
次に、このようなシステム構成を持つ本コンピュータにおいて実行される外部記憶装置３に対するアクセス処理の流れを図２を参照して説明する。
【００１６】
利用者プログラム１０が外部記憶装置３へのファイルの書き込みを行う場合、ファイルシステム２０が、このファイルのデータを利用者プログラム１０から受け取って、当該データを外部記憶装置３が取り扱い可能なデータ長のブロックに変換する。また、この時、ファイルシステム２０は、当該データを外部記憶装置３上で管理するためのメタ情報を作成し、ファイルのデータと同様に、当該メタ情報を外部記憶装置３が取り扱い可能なデータ長のブロックに変換する。
【００１７】
本コンピュータでは、ファイルシステム２０と外部記憶装置３との間に、ブロック暗号化／復号モジュール３０を介在させており、ファイルシステム２０が作成した（メタ情報およびファイルデータの）ブロックは、ブロック暗号化／復号モジュール３０によって暗号化された後に外部記憶装置３に書き込むようになっている。従って、たとえ外部記憶装置３が持ち去られたとしても、書き込まれているファイルデータが不正利用されてしまうことを防止できる。
【００１８】
一方、利用者プログラム１０が外部記憶装置３からのファイルの読み出しを行う場合、外部記憶装置３のブロックは、まず、ブロック暗号化／復号モジュール３０によって復号が施され、続いて、ファイルシステム２０において、ブロックからファイルデータへの変換が実行されて元の状態に戻されて、ファイルのデータとして利用者プログラム１０へと引き渡される。従って、本コンピュータ上で正規に動作する利用者プログラム１０は、外部記憶装置３に書き込まれているファイルデータを何ら問題なく利用できる。
【００１９】
ところで、ファイルシステム２０からブロック暗号化／復号モジュール３０に引き渡されるブロックに「耐タンパ性が低い」データが含まれていると、このブロック暗号化／復号モジュール３０の暗号化アルゴリズムが解読されてしまうおそれがある。「耐タンパ性が低い」データの代表的な例としては、単一の値またはパターンが繰り返されるデータが挙げられる。そこで、本コンピュータでは、ファイルシステム２０が、単一の値またはパターンが繰り返されるデータに対する暗号化がブロック暗号化／復号モジュール３０によって実行されることがないようにする仕組みを備えたものであり、以下、この点について詳述する。
【００２０】
図２に示すように、ファイルシステム２０は、制御部２１、繰り返し部分検出部２２、ランダム値生成部２３、繰り返し部分編集部２４、メタ情報記録部２５およびデータ／ブロック変換部２６を有している。ファイルシステム２０は、制御部２１によって全体的な動作制御が司られており、繰り返し部分検出部２２、ランダム値生成部２３、繰り返し部分編集部２４、メタ情報記録部２５およびデータ／ブロック変換部２６の各部は、この制御部２１の制御下で動作する。
【００２１】
利用者プログラム１０からファイルデータを渡されると、まず、繰り返し部分検出部２２が、このファイルデータの中に、単一の値またはパターンが繰り返される部分（ここでは、これを「繰り返し部分」という）が存在しないかを調べる。もし、繰り返し部分検出部２２によって繰り返し部分が検出されると、ランダム値生成部２３が、この繰り返し部分を改変するためのランダム値を生成する。
【００２２】
次に、繰り返し部分編集部２４が、繰り返し部分検出部２２によって検出された繰り返し部分を、ランダム値生成部２３によって生成されたランダム値に改変し、また、メタ情報記録部２５が、ランダム値に改変された繰り返し部分を元の値に戻すための情報を、当該ファイルデータを外部記憶装置３上で管理するためのメタ情報として記録する。
【００２３】
そして、データ／ブロック変換部２６が、繰り返し部分が改変されたファイルデータおよび改変された繰り返し部分を元の値に戻すための情報を含むメタ情報を外部記憶装置３が取り扱い可能なデータ長のブロックに変換する。これらのブロックは、制御部２１の制御の下、ブロック暗号化／復号モジュール３０に引き渡され、暗号化が施された後、外部記憶装置３に書き込まれる。
【００２４】
例えば、利用者プログラム１０から受け取ったファイルデータ中に、図３（Ａ）に示すような”０”が連続する部分が存在したとすると、この部分が繰り返し部分として繰り返し部分検出部２２によって検出される。そうすると、ランダム値生成部２３によるランダム値の生成と繰り返し部分編集部２４による繰り返し部分の改変が行われ、”０”が連続する部分が、例えば図３（Ｂ）に示すような”Ｊ２Ｋ…”といったランダム値に置き換えられることになる。その結果、本来であれば”０”が連続する「耐タンパ性が低い」データに対してブロック暗号化／復号モジュール３０による暗号化が実行されるところ、置き換えられたランダム値に対してブロック暗号化／復号モジュール３０による暗号化が実行されることになるので、システムとして耐タンパ性を向上させることを実現する。
【００２５】
また、この時、メタ情報記録部２５により、”Ｊ２Ｋ…”というランダム値に置き換えられた繰り返し部分を”０”に戻すための情報がメタ情報として記録される。図４は、メタ情報記録部２５によりメタ情報として記録される、改変された繰り返し部分を元の値に戻すための情報を例示する図である。図４に示すように、メタ情報記録部２５は、「繰り返し部分の位置」、「繰り返し部分の長さ」、「繰り返される値」を、メタ情報として一般的に記録される情報に加えて新たに記録する。なお、メタ情報として一般的に記録される情報には、例えば「ファイルの長さ」、「ファイル中のデータの位置と外部記憶装置３の位置との対応」の他、「ファイルの名前」、「ファイルの属性情報」、「ファイルに関連する時刻」などが存在する。
【００２６】
一方、（ブロック暗号化／復号モジュール３０を介して）外部記憶装置３からブロックが読み出され、ブロックからメタ情報やファイルデータへの変換がファイルデータ／ブロック変換部２６により実行された場合、制御部２１は、メタ情報から繰り返し部分の改変が行われているかどうかを調べ、行われていれば、改変された繰り返し部分の元の値へ復元を繰り返し部分編集部２４に実行させる。その結果、利用者プログラム１０には、本来の状態でファイルデータが引き渡されることになる。
【００２７】
図５は、利用者プログラム１０が外部記憶装置３へのファイル書き込みを行う場合のファイルシステム２０の動作手順を示すフローチャートである。
【００２８】
繰り返し部分検出部２２は、利用者プログラム１０から渡されたファイルデータ中に繰り返し部分がないかを検索する（ステップＡ１）。繰り返し部分が有ったら（ステップＡ２のＹＥＳ）、ランダム値生成部２３は、ランダム値を生成し（ステップＡ３）、繰り返し部分編集部２４は、繰り返し部分をランダム値に改変する（ステップＡ４）。また、メタ情報記録部２５は、ランダム値に改変された繰り返し部分を元の値に戻すためのメタ情報を記録する（ステップＡ５）。
【００２９】
そして、制御部２１は、データ／ブロック変換部２６によってブロック化したファイルデータをブロック暗号化／復号モジュール３０を介して外部記憶装置３に書き込むとともに（ステップＡ６）、同じくデータ／ブロック変換部２６によってブロック化したメタ情報をブロック暗号化／復号モジュール３０を介して外部記憶装置３に書き込む（ステップＡ７）。
【００３０】
また、図６は、利用者プログラム１０が外部記憶装置３からのファイルの読み出しを行う場合のファイルシステム２０の動作手順を示すフローチャートである。
【００３１】
制御部２１は、ブロック暗号化／復号モジュール３０を介して外部記憶装置３からブロックを読み出すと（ステップＢ１）、データ／ブロック変換部２６によってブロックから再編成したメタ情報を参照し（ステップＢ２）、繰り返し部分の改変が行われていないかを判断する（ステップＢ３）。もし、繰り返し部分の改変が行われていたら（ステップＢ３のＹＥＳ）、制御部２１は、改変された繰り返し部分の復元を繰り返し部分編集部２４に実行させる（ステップＢ４）。そして、制御部２１は、（繰り返し部分の復元が適宜に行われる）ファイルデータを利用者プログラム１０に返却する。
【００３２】
このように、本実施形態のファイルシステム２０によれば、単一の値またはパターンが繰り返されるデータが暗号化の対象となる場合の耐タンパ性を向上させる。
【００３３】
（第２実施形態）
次に、この発明の第２実施形態について説明する。図７は、第２実施形態のファイルシステム２０の機能ブロックを示す図である。
【００３４】
図７に示すように、第２実施形態のファイルシステム２０は、第１実施形態において有していた繰り返し部分検出部２２および繰り返し部分編集部２４に代えて、ホール／フラグメント検出部２７およびホール／フラグメント編集部２８を有するものである。
【００３５】
ファイルは、「バイトの列」であるが、どの位置においても書き込みが可能である。したがって、ファイル中に、「ファイルの領域として確保されているが利用者プログラムによる実データの書き込みは行われていない領域」を作ることができる。通常、このような領域は、「ホール」と呼ばれている。そして、これらの領域の値は、ＰＯＳＩＸ（移植可能なオペレーティングシステムの規約）では、”０”に設定することとなっている。
【００３６】
いま、図８に示すように、ファイル領域中にホールが存在していると想定する。このままファイルデータ／ブロック変換部２６によるブロック化が施されてブロック暗号化／復号モジュール３０に渡されると、”０”という単一の値が繰り返された部分を含む「耐タンパ性が低い」データ部分に対する暗号化が実行されてしまうことになる。
【００３７】
そこで、第２実施形態のファイルシステム２０では、第１に、ホールを第１実施形態の繰り返し部分と同等とみなし、これをホール／フラグメント検出部２７で検出するとともにホール／フラグメント編集部２８でランダム値に改変する。
【００３８】
また、例えばファイル末端部では、「ファイルに対するブロックが割り当てられているがブロックの一部はファイルの一部ではない領域」が存在することがある。通常、このような領域は、「フラグメント」と呼ばれている。この領域には、利用者のデータは存在しないので、例えば”０”をファイルシステム自身が割り当てるようになっている。
【００３９】
いま、図９に示すように、ファイル末端部を格納するブロック中にフラグメントが存在していると想定する。このままファイルデータ／ブロック変換部２６によるブロック化が施されてブロック暗号化／復号モジュール３０に渡されると、”０”という単一の値が繰り返された部分を含む「耐タンパ性が低い」データ部分に対する暗号化が実行されてしまうことになる。
【００４０】
そこで、第２実施形態のファイルシステム２０では、第２に、フラグメントを第１実施形態の繰り返し部分と同等とみなし、これをホール／フラグメント検出部２７で検出するとともにホール／フラグメント編集部２８でランダム値に改変する。
【００４１】
図１０は、利用者プログラム１０が外部記憶装置３へのファイル書き込みを行う場合のファイルシステム２０の動作手順を示すフローチャートである。
【００４２】
ホール／フラグメント検出部２７は、利用者プログラム１０から渡されたファイルデータがホールまたはフラグメントを発生させていないかを検索する（ステップＣ１）。ホールまたはフラグメントを発生させていた場合（ステップＣ２のＹＥＳ）、ランダム値生成部２３は、ランダム値を生成し（ステップＣ３）、ホール／フラグメント編集部２８は、発生するホールまたはフラグメントをランダム値に改変する（ステップＣ４）。また、メタ情報記録部２５は、ランダム値に改変された繰り返し部分を元の値に戻すためのメタ情報を記録する（ステップＣ５）。
【００４３】
そして、制御部２１は、データ／ブロック変換部２６によってブロック化したファイルデータをブロック暗号化／復号モジュール３０を介して外部記憶装置３に書き込むとともに（ステップＣ６）、同じくデータ／ブロック変換部２６によってブロック化したメタ情報をブロック暗号化／復号モジュール３０を介して外部記憶装置３に書き込む（ステップＣ７）。
【００４４】
なお、利用者プログラム１０が外部記憶装置３からのファイルの読み出しを行う場合のファイルシステム２０の動作手順は、（図６に示した）第１実施形態のファイルシステム２０の動作手順と同様であるので、ここでは、その説明は省略する。
【００４５】
また、ここでは、説明を分かり易くするために、利用者プログラム１０から受け取る実データ中に存在する繰り返し部分をランダム値に改変する処理に代えて、ホールまたはフラグメントをランダム値に改変する処理を行う例を示したが、利用者プログラム１０から受け取る実データ中に存在する繰り返し部分をランダム値に改変する処理に加えて、ホールまたはフラグメントをランダム値に改変する処理を行うようにすることは当然に可能であり、また、その方がより好ましい。
【００４６】
このように、本実施形態のファイルシステム２０によれば、単一の値またはパターンが繰り返されるデータが暗号化の対象となる場合の耐タンパ性を向上させる。
【００４７】
（第３実施形態）
次に、この発明の第３実施形態について説明する。図１１は、第３実施形態の仮想記憶システムの機能ブロックを示す図である。
【００４８】
コンピュータは、利用者プログラム１０が主記憶装置２上で保持する内容を一時的に外部記憶装置３へ掃きだすことにより、主記憶装置２の実容量よりも大きな利用者プログラム１０を実行できるようにする仕組みを備えている。この仕組みを仮想記憶といい、仮想記憶を実現するモジュールを「仮想記憶システム」と呼ぶ。
【００４９】
第３実施形態のコンピュータでは、セキュリティ強化を図るために、仮想記憶システム４０が外部記憶装置３に掃きだす利用者プログラム１０の内容を、ブロック暗号化／復号モジュール３０によって暗号化を施す。そこで、この第３実施形態の仮想記憶システム４０は、外部記憶装置３に掃きだす内容中に単一の値またはパターンが繰り返される部分が存在したら、その部分をランダム値に改変する。その理由は、第１実施形態および第２実施形態のファイルシステムと同様、耐タンパ性の向上を図るためである。
【００５０】
そのために、仮想記憶システム４０は、繰り返し部分検出部４２、ランダム値生成部４３、繰り返し部分編集部４４およびメタ情報記録部４５を有している。なお、この仮想記憶システム４０も、ＣＰＵ１によって実行される各種プログラムの１つとして実現されている。
【００５１】
繰り返し部分検出部４２は、主記憶装置２上でスワップアウト対象となっているページデータの中に繰り返し部分が存在しないかを調べる。ランダム値生成部４３は、繰り返し部分を改変するためのランダム値を生成する。繰り返し部分編集部４４は、繰り返し部分をランダム値に改変する。そして、メタ情報記録部４５は、改変された繰り返し部分を元の値に復元するための情報をメタ情報として記録する。
【００５２】
なお、仮想記憶システム４０が外部記憶装置３に格納するページデータは、あくまで一時的に退避したデータであり、これを外部記憶装置３上で恒久的に管理すべくメタ情報を外部記憶装置３に格納する必要はないので、仮想記憶システム４０は、このメタ情報を稼働期間内に限り自己管理する。
【００５３】
図１２は、主記憶装置２から外部記憶装置３へのスワップアウトを行う場合の仮想記憶システム４０の動作手順を示すフローチャートである。
【００５４】
繰り返し部分検出部４２は、スワップアウト対象のページデータ中に繰り返し部分がないかを検索し（ステップＤ１）。繰り返し部分が有ったら（ステップＤ２のＹＥＳ）、ランダム値生成部４３は、ランダム値を生成し（ステップＤ３）、繰り返し部分編集部４４は、繰り返し部分をランダム値に改変する（ステップＤ４）。また、メタ情報記録部２５は、ランダム値に改変された繰り返し部分を元の値に戻すためのメタ情報を記録する（ステップＤ５）。
【００５５】
そして、制御部４１は、データ／ブロック変換部４６によってブロック化したページデータをブロック暗号化／復号モジュール３０を介して外部記憶装置３に書き込む（ステップＤ６）。
【００５６】
また、図１３は、外部記憶装置３から主記憶装置２へのページインを行う場合の仮想記憶システム４０の動作手順を示すフローチャートである。
【００５７】
制御部４１は、ブロック暗号化／復号モジュール３０を介して外部記憶装置３からブロックを読み出すと（ステップＥ１）、自己管理するメタ情報を参照し（ステップＥ２）、繰り返し部分の改変が行われていないかを判断する（ステップＥ３）。もし、繰り返し部分の改変が行われていたら（ステップＥ３のＹＥＳ）、制御部４１は、改変された繰り返し部分の復元を繰り返し部分編集部４４に実行させる（ステップＢ４）。そして、制御部４１は、（繰り返し部分の復元が適宜に行われる）ページデータを主記憶装置２にページインさせる（ステップＥ５）。
【００５８】
このように、本実施形態の仮想記憶システム４０によれば、単一の値またはパターンが繰り返されるデータが暗号化の対象となる場合の耐タンパ性を向上させる。
【００５９】
（第４実施形態）
次に、この発明の第４実施形態について説明する。図１４は、第４実施形態において実行される外部記憶装置３に対するアクセス処理の流れを示す図である。
【００６０】
第１実施形態および第２実施形態では、ファイルシステム２０が繰り返し部分をランダム値に改変する仕組みを備え、第３実施形態では、仮想記憶システム４０が繰り返し部分をランダム値に改変する仕組みを備える例を説明した。これに対し、第４実施形態では、繰り返し部分をランダム値に改変する仕組みを耐タンパ性向上化モジュール５０として独立させ、既存のファイルシステム２０および仮想記憶システム４０（耐タンパ性向上化モジュール５０から見ると上位システム）をそのまま適用できるようにした。
【００６１】
耐タンパ性向上化モジュール５０は、ファイルシステム２０および仮想記憶システム４０とブロック暗号化／復号モジュール３０との間に介在して、ファイルシステム２０または仮想記憶システム４０から受け取ったブロック中に繰り返し部分が存在しないかを調べる。そして、存在していれば、この繰り返し部分をランダム値に改変するとともに、改変された繰り返し部分を元の値に復元するためのメタ情報を管理する。このメタ情報は、ファイルシステム２０および仮想記憶システム４０が管理するメタ情報とは異なる独自の情報である。
【００６２】
そして、耐タンパ性向上化モジュール５０は、外部記憶装置３のブロックをファイルシステム２０または仮想記憶システム４０に引き渡す場合には、自身が管理するメタ情報に基づき、改変した繰り返し部分を元の値に復元する。
【００６３】
このように、本実施形態の耐タンパ性向上化モジュール５０によれば、既存のファイルシステム２０および仮想記憶システム４０の改造を伴うことなく、単一の値またはパターンが繰り返されるデータが暗号化の対象となる場合の耐タンパ性を向上させる。
【００６４】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００６５】
【図１】本発明の各実施形態に係るコンピュータのシステム構成を概略的に示す図
【図２】第１実施形態のファイルシステムの機能ブロックを示す図
【図３】第１実施形態のファイルシステムが実行するファイルデータ中の繰り返し部分のランダム値への改変を説明するための図
【図４】第１実施形態のファイルシステムがランダム値に改変した繰り返し部分を元の値に戻すために記録するメタ情報を例示する図
【図５】第１実施形態のファイルシステムの利用者プログラムが外部記憶装置へのファイル書き込みを行う場合の動作手順を示すフローチャート
【図６】第１実施形態のファイルシステムの利用者プログラムが外部記憶装置からのファイルの読み出しを行う場合の動作手順を示すフローチャート
【図７】第２実施形態のファイルシステムの機能ブロックを示す図
【図８】第２実施形態のファイルシステムがランダム値への改変を実行するホールについて説明するための図
【図９】第２実施形態のファイルシステムがランダム値への改変を実行するフラグメントについて説明するための図
【図１０】第２実施形態のファイルシステムの利用者プログラムが外部記憶装置へのファイル書き込みを行う場合の動作手順を示すフローチャート
【図１１】第３実施形態の仮想記憶システムの機能ブロックを示す図
【図１２】第３実施形態の仮想記憶システムの主記憶装置から外部記憶装置へのスワップアウトを行う場合の動作手順を示すフローチャート
【図１３】第３実施形態の仮想記憶システムの外部記憶装置から主記憶装置へのページインを行う場合の動作手順を示すフローチャート
【図１４】第４実施形態において実行される外部記憶装置に対するアクセス処理の流れを示す図
【符号の説明】
【００６６】
１…ＣＰＵ、２…主記憶装置、３…外部記憶装置、４…表示コントローラ、５…キーボードコントローラ、１０…利用者プログラム、２０…ファイルシステム、２１…制御部、２２…繰り返し部分検出部、２３…ランダム値生成部、２４…繰り返し部分編集部、２５…メタ情報記録部、２６…データ／ブロック変換部、２７…ホール／フラグメント検出部、２８…ホール／フラグメント編集部、３０…ブロック暗号化／復号モジュール、４０…仮想記憶システム、４１…制御部、４２…繰り返し部分検出部、４３…ランダム値生成部、４４…繰り返し部分編集部、４５…メタ情報記録部、４６…データ／ブロック変換部、５０…耐タンパ性向上化モジュール。
【図１】
2008061035.tif 000003
【図２】
2008061035.tif 000004
【図３】
2008061035.tif 000005
【図４】
2008061035.tif 000006
【図５】
2008061035.tif 000007
【図６】
2008061035.tif 000008
【図７】
2008061035.tif 000009
【図８】
2008061035.tif 000010
【図９】
2008061035.tif 000011
【図１０】
2008061035.tif 000012
【図１１】
2008061035.tif 000013
【図１２】
2008061035.tif 000014
【図１３】
2008061035.tif 000015
【図１４】
2008061035.tif 000016