以下、本発明を図示する実施形態に基づいて説明する。
<<< §1.本発明の基本概念 >>>
図1は、本発明の基本的実施形態に係る偽装処理装置の構成を示すブロック図である。図に一点鎖線で囲った大きなブロックで示されるとおり、この偽装処理装置は、偽装処理ユニット100と復元処理ユニット200とによって構成されている。図に円柱状のブロックで示す要素は、いずれもコンピュータで取り扱われるデータファイルである。
偽装処理ユニット100は、偽装対象となるオリジナルデータファイルFoに対して偽装処理を施して偽装データファイルFdを作成する機能を有し、復元処理ユニット200は、この偽装データファイルFdに対して復元処理を施してオリジナルデータファイルFoを復元する機能を有する。図1では、復元処理ユニット200によって復元されたファイルが、復元データファイルFrとして示されているが、正しい復元が行われた場合、この復元データファイルFrは、オリジナルデータファイルFoと同一のファイルになる。
本発明に係る偽装処理装置の特徴は、偽装対象となるオリジナルデータファイルFoに対して、任意のコンテンツデータファイルFcを利用した偽装処理が施される点である。ここで、オリジナルデータファイルFoは、文書データファイル、表計算データファイル、画像データファイル、動画データファイル、音声データファイルなど、コンピュータによって取り扱うことが可能なファイルであれば、どのようなファイルでもかまわない。また、本願における「データファイル」とは、デジタルデータの集合体からなる電子ファイルを広く意味するものであり、一般に、プログラム、ルーチン、テーブルと呼ばれるものも含む概念である。したがって、種々のアプリケーションプログラムやプラグインプログラムなどのファイルも、本願にいう「データファイル」に含まれる。
一方、コンテンツデータファイルFcは、画像データファイル、動画データファイル、音声データファイルなど、特定のアプリケーションプログラムによって当該ファイルを開くことにより、何らかのコンテンツを提示することができるファイルであれば、どのようなファイルでもかまわない。したがって、文書作成プログラムで作成された文書データファイルや、表計算プログラムで作成された表計算データファイルなども、本願における「コンテンツデータファイルFc」に含まれる。
また、本願では、このような「コンテンツデータファイルFc」を特定のアプリケーションプログラムによって開き、コンテンツをユーザに提示する処理を「コンテンツの再生」と呼んでいる。すなわち、本願における「コンテンツの再生」とは、動画データファイルや音声データファイルなどの場合は、文字どおり、動画や音声を再生する処理を意味し、画像データファイル、文書データファイル、表計算データファイルなどの場合は、画像、文書、表計算シートなどをディスプレイ画面上に表示する処理を意味することになる。
さて、ユーザが、何らかのオリジナルデータファイルFoに対して偽装処理を施したいと考えたとしよう。ユーザが、このような偽装処理を望む理由は、偽装対象となるオリジナルデータファイルFoを保管する際に、セキュリティを高めるためである。オリジナルデータファイルFoは、ユーザ自身のパソコンに内蔵されたハードディスクに保管される場合もあるだろうし、外付けのハードディスク装置に保管される場合もあるだろうし、CD−RやDVD−Rなどに記録されて保管される場合もあるだろう。あるいは、LANで接続されたNAS装置に保管される場合もあるだろうし、前掲の特許文献1に開示されているようなデータアーカイブサービスを利用して、インターネット経由でサービス提供業者のサーバ装置に保管される場合もあるだろう。
一般に、データファイルの保管時に、セキュリティを向上させるための代表的な手法は、ファイルの暗号化である。ファイルを暗号化しておけば、万一、不正者の手に渡ったとしても、内容が盗み見られる可能性は非常に低くなる。既に述べたとおり、本発明によるデータファイルの偽装は、データファイルの暗号化とは別なアプローチによってセキュリティを向上させる手法であり、当該データファイルが、本来とは別なデータファイルであるかのように装うことによってセキュリティを確保する手法である。
そこで、ユーザは、偽装対象となるオリジナルデータファイルFoとともに、任意のコンテンツデータファイルFcを用意する。偽装処理ユニット100は、コンテンツデータファイルFcにオリジナルデータファイルFoを組み込むことにより、偽装データファイルFdを作成する偽装処理を行う。こうして作成された偽装データファイルFdは、オリジナルデータファイルFoを構成するデータを含んだファイルであるが、あたかもコンテンツデータファイルFcのような振る舞いをする。
たとえば、オリジナルデータファイルFoが、どのような種類のデータファイルであったとしても、偽装データファイルFdのファイル名には、コンテンツデータファイルFcのファイル名に付加されている拡張子と同じ拡張子を付加するのが好ましい。一般に、ファイル名の拡張子の部分は、当該データファイルの種類やフォーマットを示す機能を有している。たとえば、「.jpg」なる拡張子は、「JPEG形式」のフォーマットで記述された画像データファイルであることを示す。したがって、偽装データファイルFdが、ファイル名に「.jpg」なる拡張子をもつファイルであった場合、少なくともファイル名を見る限り、画像データファイルであるように見える。
また、多くのコンピュータOSプログラムにおいて、データファイルのファイル名の拡張子の部分は、当該ファイルを開く操作を行ったときに起動するプログラムを示すコードとしても利用されている。たとえば、ファイル名に「.jpg」なる拡張子を有するデータファイルのアイコンをダブルクリックして開く操作を行うと、「JPEG形式」のフォーマットで記述された画像データファイルに対応した画像閲覧/編集用アプリケーションプログラムが自動的に起動し、画像コンテンツの表示が行われる。もちろん、当該プログラムの「開く」コマンドによって、当該データファイルを開いた場合も同様である。
最近は、一般のユーザから、インターネットを介して、デジカメ写真などの画像データファイルを預かったり、Webページ上で画像を閲覧させたりする画像保管サービスも普及している。本発明を利用すれば、ユーザは、偽装処理ユニット100を用いて作成した偽装データファイルFdを、このような画像保管サービスのサイトへ、あたかも1つの画像データファイルとして預けることが可能になる。
たとえば、「JPEG形式」の画像データファイルをコンテンツデータファイルFcとして利用すれば、「.jpg」なる拡張子を有する偽装データファイルFdが作成できるので、これを画像保管サービスのサイトへ「JPEG形式」の画像データファイルとして預けることができる。この場合、偽装データファイルFdは、一見したところ、「JPEG形式」の画像データファイルに見えるため、第三者による不正利用のターゲットとなる可能性は低減する。もちろん、偽装データファイルFdの保管場所が、ユーザ自身のパソコン内であろうが、CD−RやDVD−Rであろうが、LAN接続されたNAS装置であろうが、不正利用のターゲットとなる可能性が低減する効果は同じである。
なお、実用上は、本物の「JPEG形式」の画像データファイルの中に、偽装データファイルFdを混在させて保管すれば、セキュリティを更に向上させることができる。特に、画像データファイルの場合、サムネイルなどによって画像の内容を一覧表示させることが可能なので便利である。ユーザは、偽装に用いるコンテンツデータファイルFcとして画像データファイルを用いるようにし、その画像の内容を覚えておくようにすれば、オリジナルデータファイルFoの復元が必要な場合には、サムネイルなどを一覧表示させることにより、多くの画像データファイルの中から、偽装データファイルFdを選び出すことができる。
オリジナルデータファイルFoを復元するためには、ユーザは、偽装データファイルFdを復元処理ユニット200に与えればよい。復元処理ユニット200は、偽装データファイルFdに組み込まれているオリジナルデータファイルFoを、復元データファイルFrとして出力する機能を果たす。
一般的なアプリケーションプログラムには、このような復元処理の機能は備わっていないので、復元処理ユニット200を有していない第三者には、偽装データファイルFdからオリジナルデータファイルFoを復元する操作を行うことはできない。もちろん、コンピュータに精通した技術者であれば、偽装データファイルFdの構成データを分析ツールで解析することなどにより、オリジナルデータファイルFoを抽出することは可能である。したがって、セキュリティをより高めるためには、後述するように、暗号化の手法を組み合わせるのが好ましい。
ところで、本発明を商業的に利用する場合、図1に示す偽装処理装置が多数のユーザによって利用されることになろう。この場合、あるユーザが作成した偽装データファイルFdに対して、別なユーザが復元処理を行ってしまう可能性がある。たとえば、ユーザA,Bが、ともに図1に示す偽装処理装置のユーザであったとすると、ユーザAが作成した偽装データファイルFdがユーザBの手に渡った場合、ユーザBは、復元処理ユニット200を利用して、当該偽装データファイルFdからオリジナルデータファイルFoを復元することができる。このように、ユーザAが作成した偽装データファイルFdに対して、別なユーザBが無断で復元処理を行ってしまうような事態が生じることは好ましくない。
そこで、本発明では、本来のユーザのみが知る「位置情報」という概念を導入することにより、別なユーザによる無断復元が行われないような対策を講じている。たとえば、上例の場合、ユーザAが、自分自身で撮影した「JPEG形式」のデジカメ画像データファイルをコンテンツデータファイルFcとして利用して、オリジナルデータファイルFoに対する偽装処理を行う場合を考える。この場合、ユーザAは、当該デジカメ画像上で、特定の位置を設定する。設定位置は任意の箇所でよいが、一般的には、復元時まで覚えておけるように、デジカメ画像に写っている何らかの対象物の位置を設定するのが好ましい。後に詳述するように、偽装処理ユニット100が作成する偽装データファイルFdには、この「位置情報」が組み込まれる。
一方、ユーザAが、復元処理ユニット200を用いて、偽装データファイルFdに対する復元処理を行う際には、偽装データファイルFdに含まれているコンテンツデータファイルFcを用いてデジカメ画像を表示し、偽装処理時に設定した位置と同じ位置を指定する操作を行わせる。そして、復元処理ユニット200は、偽装データファイルFdに組み込まれている「位置情報」を参照して、ユーザによって指定された位置が正しい位置であることを条件として、復元データファイルFrを出力するようにする。
このような対策を講じておけば、「正しい設定位置」を知るユーザのみが、オリジナルデータファイルFoの復元を行うことができるようになる。たとえば、上例の場合、ユーザAは、「正しい設定位置」を覚えているため、復元時に当該位置を指定することができるので、復元処理ユニット200を用いて偽装データファイルFdに対する復元処理を行うことができる。ところが、ユーザBは、「正しい設定位置」を知らないため、復元処理を行うことができない。もちろん、ユーザAは、必要に応じて、ユーザBに対して「正しい設定位置」を伝えることができるので、「位置情報の伝達」という形で、ユーザBに復元を許可することができるようになる。
なお、本発明における「位置」とは、「空間的位置」だけでなく、「時間的位置」も含む概念である。たとえば、コンテンツデータファイルFcとして、画像データファイルを用いた場合、コンテンツとして提示される静止画像上で「空間的位置」を設定することができる。これに対して、コンテンツデータファイルFcとして、音声データファイルを用いた場合、コンテンツとして提示される音声の演奏時間軸上で「時間的位置」を設定することができる。また、コンテンツデータファイルFcとして、動画データファイルを用いた場合は、「空間的位置」と「時間的位置」との双方を設定することができる。
<<< §2.偽装処理ユニットの構成および動作 >>>
続いて、図1に示す基本的実施形態における偽装処理ユニット100の構成および動作を説明する。ここで、図に示す黒線矢印は、各構成要素間のデジタルデータの流れを示し、白抜矢印は、ユーザとの間の情報のやり取りを示している。
この偽装処理ユニット100は、偽装対象となるオリジナルデータファイルFoに対して偽装処理を施して偽装データファイルFdを作成するユニットであり、図示のとおり、オリジナルデータファイル入力部110、コンテンツデータファイル入力部120、ファイル偽装部130、偽装段階コンテンツ再生部140、位置設定部150によって構成されている。もっとも、実用上は、この偽装処理ユニット100は、パソコンなどの汎用コンピュータに、専用アプリケーションプログラムを組み込むことによって構成することができ、上記各構成要素は、コンピュータのハードウエアとソフトウエアとの組み合わせによって実現される。
オリジナルデータファイル入力部110は、ユーザのファイル指定操作に基づき、偽装対象となるオリジナルデータファイルFoを入力する機能を果たし、コンテンツデータファイル入力部120は、ユーザのファイル指定操作に基づき、偽装に用いるコンテンツデータファイルFcを入力する機能を果たす。偽装処理ユニット100を、汎用コンピュータを用いて構成した場合、各入力部110,120は、専用アプリケーションプログラムによるデータファイルの読み込みルーチンによって実現することができ、ハードディスク装置などの記憶装置に格納されているデータファイルを、RAMなどの作業用メモリに読み込む機能を果たす。
一方、偽装段階コンテンツ再生部140は、コンテンツデータファイル入力部120が入力したコンテンツデータファイルFcに基づいてコンテンツを再生し、これをユーザに提示する機能を果たす。本発明の原理上、コンテンツデータファイルFcとしては、画像データファイル、動画データファイル、音声データファイル、文書データファイル、表計算データファイルなど、様々な種類の様々なフォーマット形式のデータファイルを利用することができるが、実用上は、一般のユーザにとって利用頻度の高い主要なフォーマット形式のコンテンツデータファイルに対応した再生機能を設けておけば足りる。
たとえば、コンテンツデータファイルFcとして、画像データファイルのみを利用可能な実施形態を採るのであれば、「JPEG形式」,「GIF形式」、「PNG形式」など、主要な画像フォーマットに対応した再生機能(画像閲覧機能)を実現するプログラムによって、偽装段階コンテンツ再生部140を構成しておけば十分である。一般的な汎用パソコンには、既に、「JPEG形式」,「GIF形式」、「PNG形式」などの画像フォーマットに対応した画像閲覧プログラムやライブラリが備わっているので、実用上は、そのようなプログラムやライブラリを利用して、偽装段階コンテンツ再生部140を構成することができる。
位置設定部150は、ユーザの位置設定操作に基づき、偽装段階コンテンツ再生部140による再生中のコンテンツについて、時間上もしくは空間上の所定位置を設定し、設定位置を特定する位置設定データPsを作成する機能をもった構成要素である。具体的には、偽装段階コンテンツ再生部140によるコンテンツ再生機能と連携して、ユーザの位置設定指示を入力し、位置設定データPsを作成する機能を果たせばよい。
ファイル偽装部130は、この偽装処理ユニット100の中枢をなす構成要素であり、コンテンツデータファイル入力部120によって入力されたコンテンツデータファイルFcに、位置設定部150で作成された位置設定データPsを含む管理データM(Ps)と、オリジナルデータファイル入力部110によって入力されたオリジナルデータファイルFoと、を組み込むことにより、偽装データファイルFdを作成し、これを出力する処理を行う。こうして作成された偽装データファイルFdには、結局、コンテンツデータファイルFcと、管理データM(Ps)と、オリジナルデータファイルFoとが含まれていることになる。なお、偽装データファイルFdの具体的なデータ構造は、§3で詳述する。
上述したとおり、偽装処理ユニット100は、パソコンなどの汎用コンピュータに、専用アプリケーションプログラムを組み込むことによって構成される。以下、この偽装処理ユニット100のマンマシンインターフェイスとして用意された操作ウインドウの一例を示しながら、偽装処理ユニット100の動作を説明する。
図2は、図1に示す実施形態における偽装処理ユニット100によって提示される操作ウインドウ300の一例を示す平面図である。偽装処理ユニット100を構成する専用アプリケーションプログラムを起動すると、ディスプレイ画面上に、図示のような操作ウインドウ300が提示されることになる。図1において、白抜矢印で示されている偽装処理ユニット100とユーザとの間の情報のやり取りは、この操作ウインドウ300を介して行われる。
オリジナルデータファイル入力欄310は、オリジナルデータファイル入力部110の機能によって表示される入力欄であり、入力対象となるオリジナルデータファイルFoを指定する操作に利用される。同様に、コンテンツデータファイル入力欄320は、コンテンツデータファイル入力部120の機能によって表示される入力欄であり、入力対象となるコンテンツデータファイルFcを指定する操作に利用される。また、偽装データファイル入力欄330は、ファイル偽装部130の機能によって表示される入力欄であり、作成対象となる偽装データファイルFdのファイル名を指定する操作に利用される。
一方、ファイルリスト表示欄340は、偽装処理ユニット100を構成するパソコンに接続された記憶装置(たとえば、内蔵ハードディスク装置)や、ネットワークを介して接続されたサーバやNAS等の記憶装置内に格納されているデータファイルの一覧を表示する欄である。図示の例の場合、ある特定のフォルダ内に、「FILE01.txt」,「FILE02.mp3」,... ,「FILE07.xls」等のファイルが格納されている状態が示されている。
ユーザは、各入力欄310,320,330をクリックにより選択して、キーボードから所定の文字列を打ち込むことにより、各欄に所望のファイル名を入力することができる。ただ、ここに示す実施形態では、ファイルリスト表示欄340に表示されている特定のファイル名に対するドラッグアンドドロップ操作によっても、各欄に所望のファイル名の入力が可能になるようにしている。
たとえば、図3は、この操作ウインドウ300上において、ユーザが、ファイルリスト表示欄340に表示されている「FILE04.pdf」(PDFフォーマットの文書データファイル)なるファイル名を、オリジナルデータファイル入力欄310へドラッグアンドドロップする操作を行った状態を示す平面図である。オリジナルデータファイル入力部110の機能により、オリジナルデータファイル入力欄310には、「FILE04.pdf」なるファイル名が自動的に入力され、当該ファイルがオリジナルデータファイルFoとして指定されたことになる。すなわち、この例の場合、「FILE04.pdf」なる文書データファイルが、偽装対象として指定されたことになる。もちろん、必要があれば、自動入力されたファイル名に対して、キーボード入力によって修正を施すこともできる。
一方、図4は、図3に示す状態に引き続いて、ユーザが、ファイルリスト表示欄340に表示されている「FILE03.jpg」(JPEG形式の画像データファイル)なるファイル名を、コンテンツデータファイル入力欄320へドラッグアンドドロップする操作を行った状態を示す平面図である。コンテンツデータファイル入力部120の機能により、コンテンツデータファイル入力欄320には、「FILE03.jpg」なるファイル名が自動的に入力され、当該ファイルがコンテンツデータファイルFcとして指定されたことになる。すなわち、この例の場合、「FILE03.jpg」なる画像データファイルが、偽装処理に利用するファイルとして指定されたことになる。もちろん、必要があれば、自動入力されたファイル名に対して、キーボード入力によって修正を施すこともできる。
なお、図4に示す実施形態の場合、「FILE03.jpg」なるファイル名を、コンテンツデータファイル入力欄320へドラッグアンドドロップする操作を行うと、図示のとおり、偽装データファイル入力欄330に、「FILE04.jpg」なるファイル名が自動的に入力される仕様になっている。これは、オリジナルデータファイルFoとして「FILE04.pdf」なるファイルを指定し、コンテンツデータファイルFcとして「FILE03.jpg」なるファイルを指定した場合、ファイル偽装部130の機能によって、作成される偽装データファイルFdのデフォルトファイル名として、「FILE04.jpg」なるファイル名が自動的に付与されるようにしているためである。
すなわち、ファイル偽装部130は、オリジナルデータファイルFoとして指定されたファイル「FILE04.pdf」のファイル名本体部「FILE04」に、コンテンツデータファイルFcとして指定されたファイル「FILE03.jpg」のファイル名拡張子「.jpg」を付加することにより得られる「FILE04.jpg」なるファイル名を、偽装データファイルFdのデフォルトファイル名として、偽装データファイル入力欄330に自動的に表示する機能を果たす。
もちろん、必要があれば、偽装データファイル入力欄330に自動入力されたファイル名に対して、キーボード入力によって修正を施すこともできる。ただ、実用上は、上述した方法で自動入力されたデフォルトファイル名「FILE04.jpg」は、偽装データファイルFdのファイル名として極めてふさわしい。これは、まず第1に、ファイル名「FILE04.jpg」の本体部「FILE04」が、オリジナルデータファイルFoのファイル名本体部と共通するため、ユーザは、当該偽装データファイルFdの元になったオリジナルデータファイルFoが、どのファイルであったかを容易に認識することができるためである。そして第2に、ファイル名「FILE04.jpg」の拡張子「.jpg」が、コンテンツデータファイルFcの拡張子と共通するため、コンピュータのOSプログラムが、拡張子「.jpg」に基づいて、偽装データファイルFdを開くために起動するアプリケーションプログラム(JPEG形式の画像データファイルを閲覧/編集可能なプログラム)を自動選択した場合に、偽装データファイルFdに組み込まれているコンテンツデータファイルFcを正しく開く(再生する)ことができるためである。
特に、上記第2の理由は重要である。もちろん、拡張子を異にする別なファイルフォーマットであっても、相互に互換性があるケースもある。そのような場合は、拡張子の付け替えによって本来とは別なアプリケーションプログラムが起動することになったとしても、正しく開く(再生する)ことが可能である。したがって、本発明を実施する上で、偽装データファイルFdのファイル名に付与する拡張子は、必ずしもコンテンツデータファイルFcの拡張子と同一にする必要はない。ただ、実用上は、ファイル偽装部130が、コンテンツデータファイルFcと同一のファイルフォーマットを示す拡張子をもった偽装データファイルFdを作成するようにしておき、どのようなケースでも、拡張子に基づいて起動したアプリケーションプログラムによって、偽装データファイルFd内のコンテンツ部分が正しく再生されるようにしておくのが好ましい。
更に、図4に示す実施形態の場合、「FILE03.jpg」なるファイル名を、コンテンツデータファイル入力欄320へドラッグアンドドロップする操作を行うと、コンテンツ表示欄350に、「FILE03.jpg」なるファイルの内容が自動的に表示される仕様になっている。これは、偽装段階コンテンツ再生部140の再生機能によるものである。図4において、コンテンツ表示欄350に、5人の人物を含む写真が表示されているのは、「FILE03.jpg」なるファイルが、このような写真画像からなる画像データファイルであったためである。このように、偽装段階コンテンツ再生部140は、コンテンツデータファイル入力部120が入力したコンテンツデータファイルFcに基づいて、コンテンツ表示欄350にコンテンツを再生し、これをユーザに提示する処理を行う。なお、コンテンツデータファイルFcが音声データファイルの場合は、コンテンツ表示欄350への画像表示は基本的には行われないが、後述するように、必要に応じて音声スペクトラム等の画像表示を行うようにしてもよい。
そこで、ユーザは、このコンテンツ表示欄350に表示されている画像に対して、位置情報の設定操作を行うことができる。すなわち、この実施形態の場合、位置設定部150は、コンテンツ表示欄350に表示されている画像上におけるユーザの位置設定操作を認識し、設定された位置を特定する位置設定データPsを作成する処理を行う。
ユーザによる位置設定操作は、様々な形態で行うことが可能である。図5は、このような位置設定操作の一形態を示す平面図である。ここでは、ユーザが、画像上の2点Q1,Q2の位置を設定する操作を行うことにより、当該2点Q1,Q2を対角とする矩形を設定領域A(図のハッチング部分)とする例が示されている。2点Q1,Q2の指定は、マウスのクリック操作によって行えばよい。たとえば、一般的な図形描画ソフトウエアにおける矩形の描画操作のように、点Q1でマウスボタンを押下し、そのまま対角状にドラッグし、点Q2でマウスボタンを放す操作により、2点Q1,Q2を指定させればよい。このとき、図示のように、矩形状の設定領域Aを画面上に表示して、ユーザが設定領域Aを確認できるようにするとよい。
位置設定部150は、このようなユーザによる位置設定操作に基づき、設定された位置を特定する位置設定データPsを作成する。たとえば、上例の場合、コンテンツ表示欄350に表示されている画像上における2点Q1,Q2の座標値Q1(x1,y1),Q2(x2,y2)を、位置設定データPsとして利用すればよい。2点Q1,Q2を対角とする矩形の領域を設定領域Aとする、という取り決めをしておけば、位置設定データPsに基づいて設定領域Aを一義的に定義できる。図示の例の場合、車椅子に乗った婦人の顔の部分が、設定領域Aとして位置設定されたことになる。ユーザは、たとえば「おばあちゃんの顔の部分」というように、当該設定位置を概念的に記憶しておくことができる。
以上、コンテンツ表示欄350に表示されている画像上に、空間上の所定位置を設定する例を述べた。コンテンツデータファイルFcが、画像データファイルや文書データファイルであった場合には、このようにコンテンツ表示欄350を利用して、空間上の所定位置を設定することが可能である。ところが、コンテンツデータファイルFcが、音声データファイルであった場合には、空間上の所定位置を設定することはできない。このように、空間上の位置を設定することができないコンテンツの場合は、時間上の位置を設定するようにすればよい。
図2〜図5に示す操作ウインドウ300の場合、コンテンツ表示欄350の下方に、再生位置表示欄355および再生位置指標356が設けられている。また、その下には、逆再生ボタン361、一時停止ボタン362、再生ボタン363、早送りボタン364が設けられている。コンテンツデータファイル入力欄320に指定したコンテンツデータファイルFcが音声データファイルであった場合(たとえば、ファイルリスト表示欄340から「FILE02.mp3」なるファイルをドラッグアンドドロップ操作で指定したような場合)、コンテンツ表示欄350への画像表示は行われないが、その代わりに、再生ボタン363をクリックすることにより、音声の再生が開始し、パソコンに組み込まれたスピーカから音声が流れることになる。
ユーザは、必要に応じて、一時停止ボタン362をクリックして音声再生を一時停止することもできるし、逆再生ボタン361をクリックして逆方向に再生することもできるし、早送りボタン364をクリックして早送りすることもできる。また、再生位置表示欄355を構成する水平バーは、音楽演奏の時間軸を示しており、再生位置指標356は、この時間軸上での現在の再生位置を示している。ユーザは、この再生位置指標356をドラッグすることにより、再生位置を変更することも可能である。このようなユーザインターフェイスは、様々な音声コンテンツ再生ソフトウエアにおいて用いられている公知の技術であるため、ここでは、その実現方法についての詳細な説明は省略する。
コンテンツデータファイル入力欄320に指定したコンテンツデータファイルFcが「FILE02.mp3」のような音声データファイルであった場合、位置設定部150は、再生位置指標356の時間軸上の位置に基づいて、時間上の設定位置を認識し、当該設定位置を特定する位置設定データPsを作成することができる。具体的には、たとえば、先頭位置からの経過時間を位置設定データPsとして用いることができる。ユーザは、再生ボタン363をクリックして、音声データファイルを再生させながら、所定箇所(たとえば、歌詞の特定のフレーズ部分)で所定の位置設定操作を行えば、そのときの再生位置指標356の位置を、時間上の所定位置として設定できる。この場合も、ユーザは、「ある特定の歌詞の部分」というように、当該設定位置を概念的に記憶しておくことができる。なお、実用上は、音声データファイルの場合は、スペクトラムアナライザプログラムを利用して、音声スペクトラムの画像を自動作成し、コンテンツ表示欄350に視覚エフェクトとして表示してもよい。あるいは、横軸を時間軸とした音声波形画像を表示させてもよい。この場合、ユーザは音声波形の時間軸上で任意の位置設定を行うことができる。
また、コンテンツデータファイル入力欄320に指定したコンテンツデータファイルFcが動画データファイルであった場合(たとえば、ファイルリスト表示欄340から「FILE05.avi」なるファイルをドラッグアンドドロップ操作で指定したような場合)、コンテンツ表示欄350への動画表示と音声再生とが同時に行われることになる。この場合も、ユーザは、各ボタン361〜364をクリックして、動画の時間軸上での再生位置を制御することができるので、時間上の所定位置を設定することができる。また、一時停止ボタン362をクリックすれば、コンテンツ表示欄350には静止画像が得られるので、図5に示す例と同様に、空間上の所定位置を設定することもできる。
このように、動画データファイルの場合、位置設定部150は、時間上の所定位置と空間上の所定位置との双方を設定し、これらの設定位置を特定する位置設定データPsを作成することができる。この場合も、ユーザは、「動画の特定のシーンにおける、おばあちゃんの顔の部分」というように、当該設定位置を概念的に記憶しておくことができる。
こうして、オリジナルデータファイルFoおよびコンテンツデータファイルFcの指定が完了し、更に、位置設定操作が完了すれば、ファイル偽装部130に偽装データファイルFdを作成する処理を実行させることができる。たとえば、図5に示す操作ウインドウ300において、ユーザが、処理開始ボタン370をクリックすると、ファイル偽装部130による偽装処理が開始する。すなわち、ファイル偽装部130は、コンテンツデータファイルFcに、位置設定データPsを含む管理データM(Ps)と、オリジナルデータファイルFoと、を組み込むことにより、偽装データファイルFdを作成し、これを出力する。具体的には、上例の場合、作成された偽装データファイルFdが、「FILE04.jpg」なるファイル名(偽装データファイル入力欄330に入力されているファイル名)で、パソコン用のハードディスク装置に保存されることになる。
すなわち、ハードディスク装置には、新たに「FILE04.jpg」なる偽装データファイルが格納されることになる。ここで、ユーザが、オリジナルデータファイル「FILE04.pdf」を削除する作業を行えば、「PDF形式」の文書データファイル「FILE04.pdf」は、「JPEG形式」の画像データファイル「FILE04.jpg」に置き換えられたことになる。前述したとおり、この偽装データファイル「FILE04.jpg」は、一見したところ、「JPEG形式」の画像データファイルのように見え、実際、アイコンをダブルクリックすると、「JPEG形式」の画像データファイルを取り扱うことができる画像閲覧/編集用アプリケーションソフトウエアが起動し、当該ソフトウエアによって、図4のコンテンツ表示欄350に表示されているような画像が表示されることになる。もちろん、この偽装データファイル「FILE04.jpg」は、通常の画像データファイルとして、NAS装置やデータ保管サイトへ預け入れることも可能である。
<<< §3.偽装データファイルの具体的なデータ構造 >>>
既に§2で述べたとおり、図1に示すファイル偽装部130は、コンテンツデータファイルFcに、位置設定データPsを含む管理データM(Ps)と、オリジナルデータファイルFoと、を組み込むことにより、偽装データファイルFdを作成する機能を有している。ここでは、偽装データファイルFdの具体的なデータ構造の一例を示すことにより、ファイル偽装部130が行う具体的な処理内容を説明する。
一般に、データファイルの構造は、設計者が定めた固有のファイルフォーマットによって定められるべきものであり、どのようなファイルフォーマットを定めるかは、個々の設計者に委ねられている。たとえば、一部のファイルフォーマットでは、ヘッダ部、本体部、フッタ部の3部構成をとるデータ構造が採用されており、§2で例示した「PDF形式」の文書データファイルや、「JPEG形式」の画像データファイルも、ヘッダ部、本体部、フッタ部の3部構成をとるデータ構造をとることができるので、以下、各ファイルがこのようなデータ構造をとる場合を例示する。
図6は、ファイル偽装部130によって作成される偽装データファイルFdの構成例を示す図である。ここでは、§2で述べた例と同様に、オリジナルデータファイルFoが、「FILE04.pdf」なるファイル名をもつ「PDF形式」の文書データファイルであり、コンテンツデータファイルFcが、「FILE03.jpg」なるファイル名をもつ「JPEG形式」の画像データファイルである場合を考える。図の左上に示すとおり、オリジナルデータファイルFoは、ヘッダ部Fo1,本体部Fo2,フッタ部Fo3の3部構成からなり、図の右上に示すとおり、コンテンツデータファイルFcも、ヘッダ部Fc1,本体部Fc2,フッタ部Fc3の3部構成からなる。
ここで、たとえば、ヘッダ部には、当該データファイルのファイルフォーマットのバージョン、本体部のデータサイズなどの補助的な情報が収容され、本体部の部分に、当該データファイルの本来のデータが収容され、フッタ部の部分には、その他の補助的な情報が収容される。なお、ファイル名やその拡張子は、ヘッダ部に収容する構成をとることも可能であるが、多くのOSでは別ファイルで管理されている。
また、ファイルフォーマットによっては、ヘッダ部やフッタ部の境界位置に、特定のマーカとなるデジタルコードを配置することが定められている。たとえば、ある画像データファイルの場合、ヘッダ部の先頭には、必ず「FF D8」という2バイトからなるSOIマーカ(Start of Image marker)を配置し、フッタ部の末尾には、必ず「FF D9」という2バイトからなるEOIマーカ(End of Image marker)を配置する、といった具合である。一般に、データファイルのフッタ部の末尾を示す識別コードは、EOF(End of File)コードと呼ばれており、当該コードの位置を認識することにより、当該データファイルの末尾の認識が可能になる。上例の画像データファイルの場合、上述した「FF D9」(EOIマーカ)が、ファイル末尾を示す識別コードEOFに相当する。
したがって、第1のデータファイルの末尾に、第2のデータファイルを付加する処理を行い、2つのデータファイルを1つのデータファイルに合成した場合でも、ファイル末尾を示す識別コードEOFを認識することにより、両データファイルを元どおり分離することが可能である。また、ファイル末尾を示す識別コードEOFを用いないファイルフォーマットを採用するデータファイルの場合でも、ヘッダ部,本体部,フッタ部のデータ長(データ容量)が既知であれば、当該データ長に基づいて、データファイルの境界を認識することができるので、合成データファイルを元のデータファイルに分離することが可能である。
図6の下段に示す例は、コンテンツデータファイルFcを構成するデータ列D1の末尾に、管理データMを構成するデータ列を付加し、更にその末尾に、オリジナルデータFoを構成するデータ列を付加することにより、偽装データファイルFdを作成した例である。偽装データファイルFdの前段部分は、図の右上に示すコンテンツデータファイルFcを構成するヘッダ部Fc1′,本体部Fc2,フッタ部Fc3であり、中段部分(説明の便宜上、ハッチングを施して示す)は、ファイル偽装部130によって作成された管理データMであり、後段部分は、図の左上に示すオリジナルデータファイルFoを構成するヘッダ部Fo1,本体部Fo2,フッタ部Fo3である。
なお、図6において、偽装データファイルFd内のヘッダ部を符号「Fc1′」で示し、図の右上に示すコンテンツデータファイルFc内のヘッダ部「Fc1」と区別しているのは、ファイル名が変更されていることを示すためである。すなわち、図の右上に示すコンテンツデータファイルFcのファイル名は「FILE03.jpg」であるのに対して、偽装データファイルFdのファイル名は「FILE04.jpg」に変更されている(ファイル名の本体部が、オリジナルデータファイルFoのファイル名の本体部「FILE04」と同一となるように変更されている)。したがって、ファイル名および拡張子をヘッダ部に収容する構成をとる場合や、ファイル名および拡張子が変更されたときにヘッダ部内の管理情報を変更する必要がある場合には、「Fc1′」は「Fc1」に変更を施したものになる。
このコンテンツデータファイルFcを構成するデータ列D1の末尾に、管理データMを構成するデータ列が付加されているが、上述したとおり、フッタ部Fc3の末尾には、ファイル末尾Eを示す識別コードEOF(具体的には「FF D9」なる2バイトからなるEOIマーカ)が配置されているため、両者の境界を認識することができる。あるいは、ヘッダ部Fc1′に記録されているファイル長の情報に基づいて、データ列D1の全長(全データ容量)を認識することによって、両者の境界を認識することもできる。
ここで、管理データMは、ファイル偽装部130によって作成されるデータであり、偽装処理ユニット100から復元処理ユニット200へ伝達すべき情報としての意味をもつ。この管理データMには、少なくとも、位置設定部150によって作成された位置設定データPsが含まれている。図1において、管理データMを「M(Ps)」と記載したのは、位置設定データPsが含まれていることを明確に示すための便宜である。図5に示す例の場合、位置設定データPsは、2点Q1,Q2の座標値Q1(x1,y1),Q2(x2,y2)によって構成されることになる。
なお、ここに示す実施形態では、ファイル偽装部130が、管理データMの一部にオリジナルデータファイルFoのファイル名を埋め込む機能を有している。図において、管理データM内に吹き出しで示されている「FILE04.pdf」は、このようにして埋め込まれたオリジナルデータファイルFoのファイル名である。オリジナルデータファイルFoのファイル名の本体部「FILE04」の部分は、偽装データファイルFdのファイル名の本体部「FILE04」の情報として残されているが、拡張子「.pdf」の部分は失われてしまう。そこで、ここに示す実施形態では、管理データMの部分にオリジナルデータファイルFoのファイル名「FILE04.pdf」をそのまま埋め込むことにより、当該ファイル名を偽装処理ユニット100から復元処理ユニット200へと伝達するようにしている。後述するように、ファイル復元ユニット200は、この管理データMに埋め込まれているファイル名「FILE04.pdf」を、復元データファイルFrのファイル名として付与することになる。
管理データMの末尾には、オリジナルデータファイルFoを構成するデータ列がそのまま付加される。予め、管理データMのデータ長を定めておけば、あるいは、管理データMのデータ長を管理データM内の特定箇所に記録しておけば、当該データ長に基づいて、管理データMの末尾とオリジナルデータファイルFoを構成するデータ列の先頭との間の境界を認識することができる。あるいは、管理データMの末尾に固有の識別コードを配置するよう定めておけば、当該識別コードを利用して、両者の境界を認識することも可能である。
結局、この偽装データファイルFdは、復元処理ユニット200側で、オリジナルデータファイルFo、コンテンツデータファイルFc、管理データMの3つの構成部分に分離することが可能である。もっとも、図示のように合成された偽装データファイルFdは、少なくとも外見上はひとまとまりのデータファイルを構成しており、コンピュータのOSプログラムにより、1つのデータファイルとして取り扱われることになる。しかもそのファイル名「FILE04.jpg」の拡張子「.jpg」により、一見したところ、「JPEG形式」の通常の画像データファイルのように見える。
これは、暗号化処理では得られない偽装処理に特有の効果である。一般に、暗号化されたデータファイルのファイル名には、「.crpt」のように、それが特定の暗号化アプリケーションソフトウエアによって暗号化されたファイルであることを示す拡張子が付与される。このため、当該ファイルは、「暗号化という手法によって物理的に閲覧できない状態におかれている」という観点では、セキュリティの向上効果が得られていることになるが、「暗号化された重要なファイルであることを知らしめており、不正行為のターゲットになりやすい」という観点では、逆にセキュリティを低下させていることになる。本発明で作成される偽装データファイルFdは、一見したところ、通常のコンテンツデータファイルのように見えるため、不正行為のターゲットになる可能性が低減することになる。いわば、暗号化の手法が「大事な物を金庫に保管する手法」であるとすると、本発明で用いる偽装の手法は「大事な物を石ころに見せかけて庭に転がしておく手法」ということができよう。
また、既に述べたとおり、この偽装データファイルFdのアイコンをダブルクリックすれば、一般的なOSプログラムは、その拡張子「.jpg」の部分に基づいて、「JPEG形式」の画像データファイルを開くために予め設定されていた画像閲覧/編集用アプリケーションソフトウエアを起動する処理を行う。このようなアプリケーションソフトウエアは、通常、偽装データファイルFdの先頭部分に位置するヘッダ部Fc1′に記録されている情報を解釈し、当該データファイルを「JPEG形式」の通常の画像データファイルとして取り扱うことになる。
したがって、この「FILE04.jpg」なるファイル名が付された偽装データファイルFdは、そのファイル名だけでなく、実体的にも、「JPEG形式」の通常の画像データファイルとしての振る舞いを見せることになる。もちろん、実際には、図6に示すとおり、偽装データファイルFdは、コンテンツデータファイルFcを構成するデータ列D1の末尾に、管理データMおよびオリジナルデータファイルFoを構成するデータ列という余分なデータ列を付加することによって構成されている。ここでは、この余分なデータ列を「付加データ列D2」と呼ぶことにする。
結局、この図6に示す例の場合、ファイル偽装部130が、管理データMと、オリジナルデータファイルFoを構成するデータと、を含む付加データ列D2を作成し、コンテンツデータファイルFcを構成するデータ列D1の末尾に付加データ列D2を付加することにより、偽装データファイルFdを作成することになる。なお、図示の例では、管理データMの後ろにオリジナルデータファイルFoを構成するデータを配置しているが、逆に、オリジナルデータファイルFoを構成するデータの後ろに管理データMを配置するようにしてもよい。後者の構成を採る場合、たとえば、管理データMのデータ長を1Kバイトというように定めておけば、偽装データファイルFdの末尾の1Kバイトの部分を管理データMの部分として認識することができるので、復元時には、やはり管理データMとオリジナルデータファイルFoとを分離することができる。
さて、図6の下段に示す例のように、付加データ列D2が末尾に付加されていたとしても、偽装データファイルFdを先頭から順番に解析してゆけば、少なくともデータ列D1の部分については、ヘッダ部Fc1′、本体部Fc2、フッタ部Fc3というコンテンツデータファイルFcとしての正しいデータ配列が得られているため、一般的なアプリケーションソフトウエアは、当該データファイルを「JPEG形式」の通常の画像データファイルとして取り扱い、本体部Fc2の内容をディスプレイ画面上に表示することになる。要するに、一般的な画像閲覧/編集用アプリケーションソフトウエアにとっては、付加データ列D2の部分は、いわば「盲腸」のような存在であり、実体的なデータとしての機能は果たさないことになる。
もちろん、フッタ部Fc3の末尾に、余分な付加データ列D2を配置するようなデータ構造は、本来のファイルフォーマットの仕様から外れたものになり、フォーマットの規約違反になる。したがって、アプリケーションソフトウエアによっては、この規約違反を認識し、「本プログラムが対応していないフォーマットで記述されたファイルです。」といったエラーメッセージを提示し、ファイルを開く処理を中止してしまうものがあるかもしれない。ただ、そのようなケースが生じたとしても、本発明を実施する上で何ら支障は生じない。
そもそも本発明は、偽装処理ユニット100で作成された偽装データファイルFdを、復元処理ユニット200で復元することを前提とするものである。したがって、第三者が、「FILE04.jpg」なるファイル名が付された偽装データファイルFdを、一般的な画像閲覧/編集用アプリケーションソフトウエアを用いて開こうとして、それが失敗したとしても、実質的に何ら支障は生じない。
以上、コンテンツデータファイルFcとして、「JPEG形式」の画像データファイルを用いた例を説明したが、その他のフォーマット形式の画像データファイルを用いた場合も同様である。また、本発明では、動画データファイル、音声データファイル、文書データファイル、表計算データファイルなどをコンテンツデータファイルFcとして用いることも可能である。この場合も、ファイル偽装部130が、コンテンツデータファイルFcと同一のファイルフォーマットを示す拡張子をもった偽装データファイルFdを作成するようにすれば、少なくともファイル名を見る限り、偽装データファイルFdは、通常のコンテンツデータファイルのように見える。また、そのアイコンをダブルクリックすれば、それぞれのフォーマットに対応したアプリケーションソフトウエアが起動し、多くの場合、コンテンツの再生が正常に行われることになる。
<<< §4.復元処理ユニットの構成および動作 >>>
続いて、図1に示す基本的実施形態における復元処理ユニット200の構成および動作を説明する。ここでも、図に示す黒線矢印は、各構成要素間のデジタルデータの流れを示し、白抜矢印は、ユーザとの間の情報のやり取りを示している。
復元処理ユニット200は、偽装処理ユニット100で作成された偽装データファイルFdに対して復元処理を施し、オリジナルデータファイルFoを復元するためのユニットであり、図示のとおり、偽装データファイル入力部210、ファイル復元部220、復元段階コンテンツ再生部230、位置指定部240、位置判定部250によって構成されている。なお、実用上は、この復元処理ユニット200も、偽装処理ユニット100と同様に、パソコンなどの汎用コンピュータに、専用アプリケーションプログラムを組み込むことによって構成することができ、上記各構成要素は、コンピュータのハードウエアとソフトウエアとの組み合わせによって実現される。
偽装データファイル入力部210は、ユーザのファイル指定操作に基づき、復元対象となる偽装データファイルFdを入力する機能を果たす。復元処理ユニット200を、汎用コンピュータを用いて構成した場合、偽装データファイル入力部210は、専用アプリケーションプログラムによるデータファイルの読み込みルーチンによって実現することができ、ハードディスク装置などの記憶装置に格納されているデータファイルを、RAMなどの作業用メモリに読み込む機能を果たす。
一方、復元段階コンテンツ再生部230は、偽装データファイル入力部210が入力した偽装データファイルFdに含まれているコンテンツデータファイルFcに基づいてコンテンツを再生し、これをユーザに提示する機能を果たす。この復元段階コンテンツ再生部230は、実質的に、偽装処理ユニット100内の偽装段階コンテンツ再生部140と同等の機能を果たす構成要素である。したがって、実用上は、図1に示す偽装段階コンテンツ再生部140と復元段階コンテンツ再生部230とは、共通の兼用コンテンツ再生部によって構成することができ、同一のプログラムを共用して構成することが可能である。
位置指定部240は、ユーザの位置指定操作に基づき、復元段階コンテンツ再生部230による再生中のコンテンツについて、時間上もしくは空間上の所定位置を指定し、当該指定位置を特定する位置指定データPdを作成する機能をもった構成要素である。具体的には、復元段階コンテンツ再生部230によるコンテンツ再生機能と連携して、ユーザの位置指定指示を入力し、位置指定データPdを作成する機能を果たせばよい。
位置判定部250は、位置指定部240による指定位置が、偽装データファイルFdに含まれている位置設定データPsで特定される設定位置に合致するか否かを判定する機能を果たす。具体的な判定方法については後述する。両者が合致するとの判定結果が得られた場合、位置判定部250からファイル復元部220に対して、合致判定信号Jが与えられる(両者が合致するとの判定結果が得られなかった場合は、非合致判定信号が与えられる)。
ファイル復元部220は、位置判定部250による合致判定(位置指定部240による指定位置が、偽装データファイルFdに含まれている位置設定データPsで特定される設定位置に合致する旨の判定)がなされることを条件として、偽装データファイルFdからオリジナルデータファイルFoを抽出し、これを復元データファイルFrとして出力する。
上述したとおり、復元処理ユニット200は、パソコンなどの汎用コンピュータに、専用アプリケーションプログラムを組み込むことによって構成される。以下、この復元処理ユニット200のマンマシンインターフェイスとして用意された操作ウインドウの一例を示しながら、復元処理ユニット200の動作を説明する。
図7は、図1に示す実施形態における復元処理ユニット200によって提示される操作ウインドウ400の一例を示す平面図である。復元処理ユニット200を構成する専用アプリケーションプログラムを起動すると、ディスプレイ画面上に、図示のような操作ウインドウ400が提示されることになる。図1において、白抜矢印で示されている復元処理ユニット200とユーザとの間の情報のやり取りは、この操作ウインドウ400を介して行われる。
もちろん、必要に応じて、偽装処理ユニット100を構成する専用アプリケーションプログラムと、復元処理ユニット200を構成する専用アプリケーションプログラムとを共通の統合アプリケーションプログラムとして提供することも可能である。この場合、当該統合アプリケーションプログラムを起動した後、コマンドメニューなどを用いて、ユーザに「偽装処理」か「復元処理」かを選択させるようにし、前者が選択された場合には、図2に示すような偽装処理用の操作ウインドウ300を提示して偽装処理用の操作入力が行える状態とし、後者が選択された場合には、図7に示すような復元処理用の操作ウインドウ400を提示して復元処理用の操作入力が行える状態とすればよい。
図7において、偽装データファイル入力欄430は、偽装データファイル入力部210の機能によって表示される入力欄であり、復元対象となる偽装データファイルFdを指定する操作に利用される。一方、ファイルリスト表示欄440は、復元処理ユニット200を構成するパソコンに接続された記憶装置(たとえば、内蔵ハードディスク装置)内に格納されているデータファイルの一覧を表示する欄である。図示の例の場合、ある特定のフォルダ内に、「FILE01.txt」,「FILE02.mp3」,... ,「FILE07.xls」等のファイルが格納されている状態が示されている。
ここでは、ファイルリスト表示欄440に表示されている「FILE04.jpg」なるファイルが、復元対象となる偽装データファイルFdであるものとして、以下の説明を行うことにする。§3で述べたとおり、このファイル「FILE04.jpg」は、一見したところ「JPEG形式」の画像データファイルのように見えるが、実際には、偽装処理ユニット100によって作成された偽装データファイルFdであり、図6の下段に示すようなデータ構造をもったファイルである。
ユーザは、偽装データファイル入力欄430をクリックにより選択して、キーボードから所定の文字列を打ち込むことにより、所望のファイル名を入力することができる。ただ、ここに示す実施形態では、ファイルリスト表示欄440に表示されている特定のファイル名に対するドラッグアンドドロップ操作によっても、偽装データファイル入力欄430に所望のファイル名の入力が可能になるようにしている。
たとえば、図8は、この操作ウインドウ400上において、ユーザが、ファイルリスト表示欄440に表示されている「FILE04.jpg」なるファイル名を、偽装データファイル入力欄430へドラッグアンドドロップする操作を行った状態を示す平面図である。偽装データファイル入力部210の機能により、偽装データファイル入力欄430には、「FILE04.jpg」なるファイル名が自動的に入力され、当該ファイルが偽装データファイルFdとして指定されたことになる。すなわち、この例の場合、「FILE04.jpg」なるデータファイルが、復元対象として指定されたことになる。もちろん、必要があれば、自動入力されたファイル名に対して、キーボード入力によって修正を施すこともできる。
図8に示す実施形態の場合、「FILE04.jpg」なるファイル名を、偽装データファイル入力欄430へドラッグアンドドロップする操作を行い、偽装データファイルFdとして指定する操作を行うと、当該偽装データファイルFdに含まれているコンテンツデータファイルFcに対応するコンテンツが、コンテンツ表示欄450に自動的に表示される仕様になっている。これは、復元段階コンテンツ再生部230の再生機能によるものである。
図8において、コンテンツ表示欄450に、5人の人物を含む写真が表示されているのは、「FILE04.jpg」なる偽装データファイルFdが、図6の下段に示すようなデータ構造を有しており、データ列D1の部分が、このような写真画像からなるコンテンツデータファイルFcであったためである。このように、復元段階コンテンツ再生部230は、偽装データファイルFdに含まれているコンテンツデータファイルFcに基づいて、コンテンツ表示欄450にコンテンツを再生し、これをユーザに提示する処理を行う(なお、コンテンツデータファイルFcが音声データファイルの場合は、後述するように、コンテンツ表示欄450への画像表示は行われないか、あるいは、音声スペクトラムや音声波形の表示が行われる)。
§1で述べたとおり、本発明では、復元処理ユニット200に復元処理を実行させる際に「位置情報」の照合を行っている。すなわち、再生中のコンテンツに関して、偽装処理時に正規のユーザが設定した位置情報と、復元処理時にユーザが指定した位置情報とが合致した場合にのみ、復元されたオリジナルデータファイルFoが提供されることになる。そこで、ユーザは、コンテンツ表示欄450に表示されている画像に対して、位置情報の指定操作を行う。すなわち、この実施形態の場合、位置指定部240は、コンテンツ表示欄450に表示されている画像上におけるユーザの位置指定操作を認識し、指定された位置を特定する位置指定データPdを作成する処理を行う。
ユーザによる位置指定操作は、様々な方法で行うことが可能であるが、最も実用的な方法はマウスクリックによる方法である。図9は、図8に示す操作ウインドウ400上におけるマウスクリック操作によって位置指定を行う例を示す平面図である。具体的には、マウスカーソルをコンテンツ表示欄450に表示されている画像上の所定位置へもってゆき、マウスクリックを行えばよい。ここでは、図に「X印」を示した指定点Pにおいてマウスクリックが行われたものとしよう。この場合、位置指定部240は、指定点Pの位置座標P(x,y)を取り込み、これを位置指定データPdとして出力する処理を行う。
ここに示す実施形態の場合、ユーザに指定点Pの位置を確認させるために、ユーザが指定点Pの位置でマウスクリックを行うと、指定点Pの位置に図示のような「X印」が表示されるようにしている。もし指定点Pの位置を修正したい場合は、別な位置をマウスクリックする操作を行えば、指定点Pの位置座標P(x,y)も新たな座標値に修正され、「X印」の表示位置も新たな位置に修正される。こうして、指定点Pの位置が正しく指定されたら、ユーザは、処理開始ボタン470をクリックする。
位置判定部250は、この処理開始ボタン470のクリックを受けて、判定処理を開始する。すなわち、位置指定部240から与えられた位置指定データPdで特定される指定位置と、偽装データファイルFd内に管理データMとして含まれている位置設定データPsで特定される設定位置とが合致するか否かを判定する。
§2で説明した例では、図5に示すように、画像上における2点Q1,Q2の座標値Q1(x1,y1),Q2(x2,y2)が、位置設定データPsとして設定されている。これは、2点Q1,Q2を対角とする矩形の領域を設定領域Aとする設定である。したがって、この場合、位置判定部250は、図9に示す指定点Pの位置座標P(x,y)と、図5に示す2点Q1,Q2の座標値Q1(x1,y1),Q2(x2,y2)とを比較し、指定点Pが設定領域A内の点であれば、両者が合致するとの判定を行うことになる。両者が合致するとの判定結果が得られた場合、位置判定部250からファイル復元部220に対して、合致判定信号Jが与えられる。
§2の説明では、ユーザが「おばあちゃんの顔の部分」というような概念で、図5の設定領域Aの場所を覚えておく例を述べた。したがって、偽装処理を行ったユーザ自身が復元処理を行う場合は、このような記憶に基づいて、「おばあちゃんの顔の部分」を指定点Pとしてクリックすることは容易にできよう。実際、このユーザが、偽装処理の際に行った位置設定操作の内容を忘れていたとしても、コンテンツ表示欄450に図9に示すような画像表示がなされれば、「おばあちゃんの顔の部分」を設定位置としたことを容易に思い出すであろう。
なお、偽装処理を行ったユーザとは別なユーザが復元処理を行う場合は、「おばあちゃんの顔の部分をクリックして」というようなメッセージを電話や電子メールなどで伝達しておけばよい。特定のメンバーに対してのみ、設定領域Aの場所を示す情報を伝えておけば、これらのメンバーは正規のユーザとして、復元処理を行うことが可能になる。
位置判定部250によって合致の判定がなされ、ファイル復元部220に対して合致判定信号Jが与えられると、ファイル復元部220は、偽装データファイル入力部210によって入力された偽装データファイルFdの中から、オリジナルデータファイルFoを抽出し、これを復元データファイルFrとして出力する処理を行う。
結局、ユーザから見れば、図9に示すコンテンツ表示欄450に表示された画像上の指定点Pの位置でマウスクリックを行うと、当該位置に「X印」が表示されるので、この位置を確認した上で、処理開始ボタン470をクリックすると、所定の場所(たとえば、ファイルリスト表示欄440に表示されているフォルダ内)に、復元データファイルFr(すなわち、オリジナルデータファイルFo)が作成されることになる。
もちろん、位置判定部250による合致の判定がなされなかった場合には、復元データファイルFrの出力処理は行われない。この場合、位置判定部250からファイル復元部220に対して、非合致判定信号が与えられるので、ファイル復元部220によって、「このファイルは復元できません。」などのエラーメッセージが表示されるようにしておけば、ユーザは復元処理に失敗したことを認識することができる。
なお、ファイル復元部220によるオリジナルデータファイルFoの抽出処理は、ファイル偽装部130による偽装データファイルFdの作成プロセスと逆のアルゴリズムで行うことができる。たとえば、図6に示すようなアルゴリズムで偽装データファイルFdの作成が行われた場合には、ファイル復元部220は、偽装データファイルFdの先頭部分に含まれているコンテンツデータファイルFcのヘッダ部Fc1′の情報に基づいて、コンテンツデータファイルFcを構成するデータ列D1の末尾Eを認識し、この末尾Eに後続する管理データMを認識し、この管理データMに後続するオリジナルデータファイルFoを認識し、当該オリジナルデータファイルFoの部分を抽出して復元データファイルFrとして出力すればよい。
データ列D1の末尾Eを認識する1つの方法は、コンテンツデータファイルFcのヘッダ部Fc1′の情報に含まれているファイル長を示すデータを利用する方法である。コンテンツデータファイルFc自身のファイル長(データ容量)を示す情報が、ヘッダ部Fc1′に含まれていれば、当該情報に基づいてデータ列D1の長さを認識することができるので、末尾Eの位置を認識することができる。
データ列D1の末尾Eを認識する別な方法は、コンテンツデータファイルFcのヘッダ部Fc1′の情報に含まれているファイルの種類を示すデータに基づいて、ファイル末尾Eを示す識別子コードEOFを認識し、この識別子コードEOFを検索することにより、コンテンツデータファイルFcを構成するデータ列D1の末尾Eを認識する方法である。たとえば、ヘッダ部Fc1′に、当該コンテンツデータファイルFcが「特定の画像データ形式」のファイルであることを示すデータが含まれていた場合、当該「特定の画像データ形式」のファイルには、末尾Eを示す識別子コードEOFとして、「FF D9」なる2バイトのコードが用いられる、というファイルフォーマット規約を参照することにより、「FF D9」なる2バイトのコードの位置を末尾Eの位置として認識することができる。したがって、データ列の先頭から「FF D9」なる2バイトのコードを検索してゆけば、末尾Eの位置を把握できる。
一方、管理データMについては、予め所定のフォーマットに基づいて所定のデータ長を定めておくことができるので、データ列D1の末尾Eを認識できれば、管理データMの末尾も認識することができるので、オリジナルデータファイルFoの部分のみを切り離して抽出することは容易である。
なお、図6に示す例の場合、ファイル偽装部130が、管理データMの一部にオリジナルデータファイルFoのファイル名(図示の例の場合「FILE04.pdf」)を埋め込む処理を行っているので、ファイル復元部220は、この管理データMに埋め込まれているファイル名「FILE04.pdf」を、出力する復元データファイルFrにそのまま付与することができる。OSプログラムによっては、ファイルのヘッダ部に格納されているファイル名をそのまま当該ファイルのファイル名として利用するものもあるが、管理データMの一部にオリジナルデータファイルFoのファイル名を埋め込むようにしておけば、ファイル復元部220は、どのようなケースにおいても、管理データM内に埋め込まれているファイル名を利用して、復元データファイルFrに正しいファイル名(オリジナルデータファイルFoと同一のファイル名)を付与することが可能になる。
最後に、位置設定部150による位置設定と、位置判定部250による位置判定のバリエーションを述べておく。上述した位置設定および位置判定の一例は、コンテンツデータファイルFcとして画像データファイルが用いられていた場合の例である。この場合、図9に示すとおり、復元段階コンテンツ再生部230によって、コンテンツ表示欄450に画像の提示が行われ、ユーザは、当該画像上で位置指定操作を行うことになる。上例の場合、ユーザがクリック操作で指定した指定点Pが、設定領域A内の点であるか否かが判定される。もっとも、偽装処理時に作成される空間的位置設定データは、必ずしも設定領域Aのような面積をもった領域を示すデータである必要はない。
図10は、空間的位置設定データのバリエーションを示す図である。図10(a) は、面積をもった領域Aを設定位置とする位置設定データPsが作成された例を示す。まず、偽装処理段階において、図10(a) の上段に示すように、2点Q1,Q2を対角とする矩形の設定領域Aを示すデータが、位置設定データPsとして作成される。一方、復元処理段階では、図10(a) の下段に示すように、ユーザがマウスクリックなどで指定した指定点Pが、位置設定データPsで特定される設定領域A内にあるか否かが判定され、設定領域A内にある場合に合致する旨の判定がなされる。図5に示す位置設定操作および図9に示す位置指定操作は、この図10(a) に示す例に対応する。なお、設定領域Aが画像全体と一致するような設定を行っておけば、実質的に、ユーザがどこをクリックしても、合致判定がなされることになる。
一方、図10(b) は、1点Qを設定位置とする位置設定データPsが作成された例を示す。まず、偽装処理段階において、図10(b) の上段に示すように、1点Qの位置を示すデータ(たとえば、点Qの座標値Q(x,y))が、位置設定データPsとして作成される。この場合、ユーザは、たとえば、「おばあちゃんの顔の中心位置」を点Qとして設定する操作を行えばよい。この場合、復元処理段階では、図10(b) の下段に示すように、ユーザがマウスクリックなどで指定した指定点Pが、点Qの所定近傍範囲内にあるか否かが判定され、所定近傍範囲内にある場合に合致する旨の判定がなされる。ここで「所定近傍範囲」としては、点Qを含む任意の近傍範囲を定めておくことができる。たとえば、図10(b) の下段には、点Qを中心とした所定半径rの円Cの内部を「所定近傍範囲」と定めた例が示されている。したがって、この場合、指定点Pが円Cの内部の点であれば、合致する旨の判定がなされる。
このように、コンテンツデータファイルFcとして画像データファイルが用いられていた場合、偽装処理段階では、位置設定部150によって、画像上の点Q(図10(b) 上段の例)もしくは領域A(図10(a) 上段の例)を設定位置とする位置設定データPsを作成すればよい。一方、復元処理段階では、位置指定部240によって、画像上の指定点Pの位置を指定させ、位置判定部250によって、指定点Pが「位置設定データPsで特定される点Qの所定近傍範囲内(図10(b) 下段の例)」もしくは「位置設定データPsで特定される設定領域A内(図10(a) 下段の例)」にある場合に合致判定を行うようにすればよい。
これに対して、コンテンツデータファイルFcとして音声データファイルが用いられていた場合は、時間的位置設定データPsを作成する必要があるので、若干、異なる取り扱いが必要になる。既に§2で述べたとおり、図2〜図5に示す操作ウインドウ300には、コンテンツ表示欄350の下方に、逆再生ボタン361、一時停止ボタン362、再生ボタン363、早送りボタン364、再生位置表示欄355、再生位置指標356が設けられており、コンテンツデータファイル入力欄320に指定したコンテンツデータファイルFcが音声データファイルであった場合、コンテンツ表示欄350への画像表示の代わりに、音声の再生を行うことができ、再生位置表示欄355において時間軸上の点や領域を設定することができる。
同様に、図7〜図9に示す操作ウインドウ400にも、コンテンツ表示欄450の下方に、逆再生ボタン461、一時停止ボタン462、再生ボタン463、早送りボタン464、再生位置表示欄455、再生位置指標456が設けられており、偽装データファイル入力欄430で指定した偽装データファイルFdに含まれているコンテンツデータファイルFcが音声データファイルであった場合、コンテンツ表示欄450への画像表示の代わりに、音声の再生を行うことができ、再生位置表示欄455において時間軸上の点を指定することができる。もちろん、必要に応じて、コンテンツ表示欄450に音声スペクトラムの画像を視覚エフェクトとして表示してもよいし、音声波形を表示して、その時間軸で点や領域を指定させるようにしてもよい。
図11は、時間的位置設定データのバリエーションを示す図である。図11(a) は、時間軸上での幅をもった領域T(時間的区間)を設定位置とする位置設定データPsが作成された例を示す。この例では、時点t1〜時点t2の間の区間として、領域Tが設定された状態が示されている。このような領域Tの設定は、たとえば、偽装処理段階において、音声データファイルを再生しながら、時点t1の位置で「S」キーを打鍵し、時点t2の位置で「E」キーを打鍵する、といった操作入力を行うことにより可能である。ユーザは、「ある特定の歌詞の区間」というように、当該設定位置を概念的に記憶しておくことができる。位置設定データPsとしては、たとえば、先頭位置から時点t1およびt2までの経過時間のデータを用いればよい。
一方、復元処理段階では、ユーザは、音声データファイルを再生しながら、時間軸上での所定点を指定する入力操作を行えばよい。たとえば、一時停止ボタン462をクリックするなどして、再生を停止することにより、時間軸上の1点を指定することが可能である。図11(a) の下段には、再生位置表示欄455によって示される時間軸上の位置tpが指定された例が示されている。一時停止ボタン462のクリックにより、再生位置指標456は、指定位置tpで静止した状態となっている。この状態で、ユーザが、処理開始ボタン470をクリックすると、位置判定部250は、指定位置tpが、領域T内にあるか否かの判定を行い、領域T内にあれば、合致判定信号Jを出力することになる。
これに対して、図11(b) は、時間軸上の1点tを設定位置とする位置設定データPsが作成された例を示す。まず、偽装処理段階において、ユーザは、再生中に一時停止操作を行い、図11(b) の上段に示すように、再生位置指標356を時間軸上の1点tの位置に静止させ、処理開始ボタン370をクリックする。この操作により、時点tを示すデータ(たとえば、先頭位置からの経過時間)が、位置設定データPsとして作成される。
一方、復元処理段階では、ユーザは、音声データファイルを再生しながら、時間軸上での所定点を指定する入力操作を行えばよい。たとえば、一時停止ボタン462をクリックするなどして、再生を停止することにより、時間軸上の1点を指定することが可能である。図11(b) の下段には、再生位置表示欄455によって示される時間軸上の位置tpが指定された例が示されている。一時停止ボタン462のクリックにより、再生位置指標456は、指定位置tpで静止した状態となっている。この状態で、ユーザが、処理開始ボタン470をクリックすると、位置判定部250は、指定位置tpが、点tの所定近傍範囲内にあるか否かが判定され、所定近傍範囲内にある場合に合致する旨の判定がなされる。ここで「所定近傍範囲」としては、点tを含む任意の近傍範囲を定めておくことができる。たとえば、図11(b) の下段には、予め所定の領域幅Δtを定めておき、時間軸上における(t−Δt)〜(t+Δt)の範囲を「所定近傍範囲」と定めた例が示されている。したがって、この場合、指定位置tpが(t−Δt)〜(t+Δt)の範囲内の点であれば、合致する旨の判定がなされる。
このように、コンテンツデータファイルFcとして音声データファイルが用いられていた場合、偽装処理段階では、位置設定部150によって、音声を再生する時間軸上での点t(図11(b) 上段の例)もしくは領域T(図11(a) 上段の例)を設定位置として特定する位置設定データPsを作成すればよい。一方、復元処理段階では、位置指定部240によって、時間軸上で点tpの位置を指定させ、位置判定部250によって、点tpが「位置設定データPsで特定される点tの所定近傍範囲内(図11(b) 下段の例)」もしくは「位置設定データPsで特定される領域T内(図11(a) 下段の例)」にある場合に合致判定を行うようにすればよい。
更に、コンテンツデータファイルFcとして動画データファイルが用いられていた場合は、ユーザは、偽装処理段階において、空間的位置を設定することもできるし、時間的位置を設定することもできるし、その両方を設定することもできる。図12は、空間的位置と時間的位置との双方によって定義される設定領域を示す概念図である。図には、XYt三次元座標系が示されている。ここで、XY二次元座標系は、動画を構成する画像の二次元平面上の位置を示す座標系であり、t軸は時間を示す座標軸である。静止画の場合は、図に領域Aとして示すように、XY二次元座標系上の領域(もしくは点でもよい)として空間的位置の設定が行われるが、動画の場合は、更に時間軸tが加わり、XYt三次元座標系上の点・線・立体として、空間的および時間的位置の設定が行われることになる。図示の立体AAは、時空上の設定領域の一例を示している。この時空上の設定領域AAは、空間的位置は平面領域Aと同じであるが、時間軸上において区間Tを占める領域になる。
コンテンツ再生部140,230によって動画データファイルを再生した場合、コンテンツ表示欄350,450に動画の画像が表示され、同時に音声が提示されることになる。再生位置を時間的に制御できる点は、音声データファイルの再生と同様である。偽装処理段階において、再生中の動画データファイルについて、空間的位置のみを設定するか、時間的位置のみを設定するか、両方を設定するかは、偽装処理を行っているユーザが決める事項である。復元処理段階では、設定が行われている位置の指定を行い、その合致判定が行われる。
たとえば、偽装処理段階で空間的位置のみを設定する場合、位置設定部150は、コンテンツ表示欄350上において、動画を表示するフレーム上の点Q(図10(b) 上段の例)もしくは領域A(図10(a) 上段の例)を設定位置として特定する位置設定データPsを作成する。この場合、復元処理段階で、位置指定部240が、動画を表示するフレーム上の指定点Pの位置を指定し、位置判定部250が、この指定点Pが「位置設定データPsで特定される点Qの所定近傍範囲内(図10(b) 下段の例)」もしくは「位置設定データで特定される領域A内(図10(a) 下段の例)」にある場合に合致判定を行うことになる。
一方、偽装処理段階で時間的位置のみを設定する場合、位置設定部150は、動画を再生する時間軸上での点t(図11(b) 上段の例)もしくは領域T(図11(a) 上段の例)を設定位置として特定する位置設定データPsを作成する。この場合、復元処理段階で、位置指定部240が、動画を再生する時間軸上で点tpの位置を指定し、位置判定部250が、この指定点tpが「位置設定データPsで特定される点tの所定近傍範囲内(図11(b) 下段の例)」もしくは「位置設定データPsで特定される領域T内(図11(a) 下段の例)」にある場合に合致判定を行うことになる。
また、偽装処理段階で空間的位置と時間的位置との双方を設定する場合は、位置設定部150が、上記時間的位置設定データと上記空間的位置設定データとの双方を含む位置設定データPsを作成すればよい。この場合、復元処理段階で、位置指定部240が、動画を再生する時間軸上での点tpと、動画を表示するフレーム上の点Pとの双方を指定し、位置判定部250が、時間軸上での指定点tpが「時間的位置設定データで特定される点tの所定近傍範囲内」もしくは「時間的位置設定データで特定される領域T内」にあり、かつ、空間的な指定点Pが「空間的位置設定データで特定される点Qの所定近傍範囲内」もしくは「空間的位置設定データで特定される領域A内」にある場合に合致判定を行うことになる。
<<< §5.パスワード照合を行う実施形態 >>>
これまで述べてきたとおり、本発明では、偽装処理段階において、本来のユーザのみが知る「コンテンツに関する位置情報」を偽装データファイルFdに組み込んでおき、復元処理段階では、再生中のコンテンツについて「正しい位置情報」が入力された場合に限り、復元データファイルFrの出力が行われるようにしている。
もちろん、このような対策により、偽装データファイルFdに対して、ある程度のセキュリティは確保できるが、よりセキュリティを高めるためには、「位置情報」の照合に「パスワード」の照合を組み合わせるのが好ましい。たとえば、図5に示す例の場合、偽装処理段階で「おばあちゃんの顔の部分」として領域Aという位置設定を行ったため、復元処理段階では、図9に示す指定点Pを指定することができれば、位置判定部250による合致判定がなされ、復元データファイルFrの出力が行われた。
しかしながら、「おばあちゃんの顔の部分」という位置情報を知らない第三者であっても、コンテンツ表示欄450に表示されている画像内の任意の位置を指定して処理開始ボタン470をクリックする、という操作を試行錯誤で繰り返せば、偶然、合致判定がなされて、復元データファイルFrの出力が行われる可能性がある。特に、設定領域Aが広ければ広いほど、そのような偶然の合致が起こる可能性は高くなる。この§5で述べる実施形態では、「パスワード」の照合を組み合わせることにより、上述したような偶然による合致判定がなされることを防ぐことができる。
図13は、パスワード照合を行う実施形態に係る偽装処理装置の構成を示すブロック図である。この図13に示す実施形態と、既に述べた図1に示す実施形態との相違は、偽装段階パスワード入力部160,復元段階パスワード入力部260,パスワード判定部270という新たな構成要素を付加した点、ファイル偽装部130がパスワードを含んだ偽装データファイルFdを作成する点、ファイル復元部220が復元データファイルFrを出力するための条件としてパスワードに関する合致判定がなされることを加えた点である。その余の各構成要素については、その機能に変わりがないため、ここでは説明を省略する。なお、新たに付加された構成要素も、実際には、コンピュータ用プログラムによって実現されるものであり、偽装段階パスワード入力部160と復元段階パスワード入力部260とは、同一の共用プログラムを利用して構成することができる。
偽装段階パスワード入力部160は、図示のとおり、偽装処理ユニット100側の構成要素であり、ユーザの入力操作に基づいてパスワードを入力する機能を有している。具体的には、たとえば、図2に示すような操作ウインドウ300上に、パスワード入力欄を表示し、ここにユーザがキーボードなどを用いて入力した文字列を、パスワードPwとして取り込む機能を果たせばよい。ここでは、説明の便宜上、この偽装段階パスワード入力部160から入力されたパスワードを、「(A)」なる符号を付してパスワードPw(A)という記号で表すことにする。偽装段階パスワード入力部160が入力したパスワードPw(A)は、ファイル偽装部130へ与えられる。
ユーザは、偽装処理段階において、コンテンツに関する位置設定を行うとともに、パスワードの入力を行い、処理開始ボタン370をクリックすることになる。ユーザは任意のパスワードを設定することができるが、実用上は、コンテンツに関連したパスワードを設定するようにするのが好ましい。これは、復元処理段階において、パスワードを思い出しやすくするための配慮である。ここでは、図5に示すような領域Aが位置設定されるとともに、「金婚式」というパスワードが入力されたものとして、以下の説明を行うことにする。この場合、ユーザは「おばあちゃんの顔の部分」として領域Aを記憶するとともに、これに関連した「金婚式」というパスワードを連想記憶することができる。
ここに示す実施形態の場合、ファイル偽装部130は、コンテンツデータファイルFcにパスワードPw(A)を含む管理データMを組み込むことにより、パスワードPw(A)を含んだ偽装データファイルFdを作成する。既に§2で述べたとおり、ファイル偽装部130は、コンテンツデータファイルFcに、位置設定データPsを含む管理データM(Ps)と、オリジナルデータファイルFoと、を組み込むことにより、偽装データファイルFdを作成する機能を有しているが、ここに示す実施形態の場合、管理データMには、位置設定データPsとともにパスワードPw(A)が組み込まれることになる。図13において、ファイル偽装部130から出力される偽装データファイルFdの脇に、(Fc+M(Ps+Pw(A))+Fo)と記載されているのは、偽装データファイルFd内に、コンテンツデータファイルFc、位置設定データとパスワードとが組み込まれた管理データM(Ps+Pw(A))、オリジナルデータファイルFo、が含まれていることを示している。
一方、復元段階パスワード入力部260は、図示のとおり、復元処理ユニット200側の構成要素であり、やはりユーザの入力操作に基づいてパスワードを入力する機能を有している。具体的には、たとえば、図7に示すような操作ウインドウ400上に、パスワード入力欄を表示し、ここにユーザがキーボードなどを用いて入力した文字列を、パスワードPwとして取り込む機能を果たせばよい。ここでは、説明の便宜上、この復元段階パスワード入力部260から入力されたパスワードを、「(B)」なる符号を付してパスワードPw(B)という記号で表すことにする。復元段階パスワード入力部260が入力したパスワードPw(B)は、パスワード判定部270へ与えられる。
パスワード判定部270は、復元段階パスワード入力部260によって入力されたパスワードPw(B)と、偽装データファイル入力部210によって入力された偽装データファイルFd内の管理データMに含まれているパスワードPw(A)とを照合して合致するか否かを判定する。両者が合致すれば、ファイル復元部220に対して、合致判定信号J2を与える(両者が合致しなければ、非合致判定信号が与えられる)。上例の場合、復元段階パスワード入力部260によって入力されたパスワードPw(B)が「金婚式」であれば、合致した旨の判定が行われ、合致判定信号J2が与えられる。
なお、この図13に示す実施形態では、位置判定部250からファイル復元部220に与えられる合致判定信号に「J1」という符号を付し、上記合致判定信号J2と区別している。合致判定信号J1は、位置判定部250による判定の結果、指定位置Pdが設定位置Psに合致したことを示す「位置に関する合致判定信号」であるのに対して、合致判定信号J2は、パスワード判定部270による判定の結果、パスワードPw(B)がパスワードPw(A)に合致したことを示す「パスワードに関する合致判定信号」である。
ファイル復元部220は、位置判定部250とパスワード判定部270との双方において合致判定がなされることを条件として、偽装データファイルFdからオリジナルデータファイルFoを抽出し、これを復元データファイルFrとして出力する処理を行う。すなわち、図示の例の場合、合致判定信号J1と合致判定信号J2との双方が与えられた場合にのみ、復元データファイルFrを出力する。
なお、実用上は、位置判定部250による合致判定がなされなかった場合、もしくは、パスワード判定部270による合致判定がなされなかった場合には、ファイル復元部220が、復元データファイルFrの出力を行う代わりに、ユーザに対して復元失敗を示すメッセージを提示する機能をもたせておくのが好ましい。
具体的には、位置判定部250による合致判定がなされなかった場合には、ファイル復元部220に対して「位置に関する非合致判定信号」が与えられるようにし、パスワード判定部270による合致判定がなされなかった場合には、ファイル復元部220に対して「パスワードに関する非合致判定信号」が与えられるようにし、ファイル復元部220が、いずれかの非合致判定信号が与えられた場合に、復元データファイルFrを出力せずに、「このファイルは復元できません。」などのエラーメッセージを表示するようにすればよい。
あるいは、でたらめな内容をもったダミー復元データファイルを予め用意しておくか、その都度作成するようにし、いずれかの非合致判定信号が与えられた場合には、このダミー復元データファイルを出力するようにしてもよい。この場合、ユーザからは、支障なく復元処理が行われたかのように見えるが、得られるファイルは、オリジナルデータファイルFoではなく、でたらめな内容のファイルということになる。
<<< §6.暗号化を行う実施形態 >>>
さて、上述の§5では、パスワード照合によりセキュリティを向上させる実施形態を述べたが、当該実施形態では、パスワードPw(A)が、管理データMの一部として偽装データファイルFdに組み込まれているので、コンピュータに関する専門知識をもった者が、偽装データファイルFdの中身を解析すれば、パスワードPw(A)の内容を知ることが可能である。そもそも、そのような専門家であれば、偽装データファイルFdを解析することにより、オリジナルデータファイルFoを直接抽出することも可能であろう。したがって、より高度なセキュリティを必要とする用途に利用する場合には、ここで述べる暗号化を行う実施形態を採用するのが好ましい。
図14は、暗号化を行う実施形態に係る偽装処理装置の構成を示すブロック図である。この図14に示す実施形態と、既に述べた図1に示す実施形態との相違は、偽装段階パスワード入力部160,暗号化処理部170,復元段階パスワード入力部260,復号化処理部280という新たな構成要素を付加した点、およびファイル偽装部130が暗号化されたオリジナルデータファイル(以下、暗号化オリジナルデータファイルFFoと呼ぶ)を含んだ偽装データファイルFdを作成する点である。その余の各構成要素については、その機能に変わりがないため、ここでは説明を省略する。なお、新たに付加された構成要素も、実際には、コンピュータ用プログラムによって実現されるものであり、偽装段階パスワード入力部160と復元段階パスワード入力部260とは、同一の共用プログラムを利用して構成することができる。
暗号化を行う実施形態であるのにもかかわらず、パスワード入力部160,260によってパスワードの入力を行うのは、暗号化に用いる暗号キーを、ユーザが入力したパスワードもしくはその一部を利用して作成するためである。図15は、暗号キーを用いた一般的な暗号化および復号化の手順を示す図である。図示のとおり、オリジナルデータファイルFoは、所定の暗号化アルゴリズム10を用いた暗号化処理によって暗号化され、暗号化オリジナルデータファイルFFoが作成される。この暗号化オリジナルデータファイルFFoは、暗号化アルゴリズム10に対応した復号化アルゴリズム20を用いた復号化処理によって復号化され、復元データファイルFrが作成される。
暗号化アルゴリズム10や復号化アルゴリズム20としては、様々な理論に基づくアルゴリズムが知られているが、産業上利用されている一般的なアルゴリズムは、暗号キーを利用したアルゴリズムである。暗号キーは、ユーザ等によって指定された何らかのデジタルデータであり、暗号キーが異なれば、同じアルゴリズムで暗号化を行っても、異なる暗号化ファイルが得られることになる。したがって、正しい復号化を行うためには、暗号化のときに指定した暗号キーと同一の暗号キーが必要になり、暗号化のセキュリティをより高めることが可能になる。
現在最も普及している暗号化・復号化処理の方法は、図15に示すように、暗号化を行う際に、ユーザに何らかのパスワードPw(A)を指定させる方法である。ユーザがパスワードPw(A)を指定したら、所定のキー作成アルゴリズム15を用いて、当該パスワードPw(A)もしくはその一部を利用して暗号キーK(A)を作成する。そして、この暗号キーK(A)を用いた暗号化アルゴリズム10により暗号化処理を実行する。一方、復号化を行う際には、ユーザにパスワードPw(B)を指定させる。ユーザがパスワードPw(B)を指定したら、暗号化のときと同じキー作成アルゴリズム15を用いて、当該パスワードPw(B)もしくはその一部を利用して暗号キーK(B)を作成し、この暗号キーK(B)を用いた復号化アルゴリズム20により復号化処理を実行する。
ユーザが復号化の際に入力したパスワードPw(B)が、暗号化の際に入力したパスワードPw(A)と同一であれば、暗号化アルゴリズム10が用いる暗号キーK(A)と復号化アルゴリズム20が用いる暗号キーK(B)は等しくなるため、正しい復号化が行われ、得られる復元データファイルFrは、オリジナルデータファイルFoと同一のファイルになる。パスワードPw(B)がパスワードPw(A)と異なっていた場合、正しい復号化は行われず、得られる復元データファイルFrは、オリジナルデータファイルFoとは異なるファイルになる。このように、暗号化の際に入力したパスワードPw(A)を知らない限り、正しい復号化を行うことはできない。図14に示す偽装処理装置では、図15に示すような原理に基づく暗号化および復号化を取り入れている。
図14において、偽装段階パスワード入力部160は、図示のとおり、偽装処理ユニット100側の構成要素であり、ユーザの入力操作に基づいてパスワードを入力する機能を有している。この偽装段階パスワード入力部160の機能は、§5で述べた図13に示す偽装段階パスワード入力部160の機能と全く同じである。ここでは、§5の例と同様に、ユーザが「おばあちゃんの顔の部分」として領域Aを設定するとともに、これに関連した「金婚式」というパスワードを入力したものとしよう。
偽装段階パスワード入力部160で入力されたパスワードPw(A)は、暗号化処理部170へ与えられる。暗号化処理部170は、偽装段階パスワード入力部160によって入力されたパスワードPw(A)を利用した所定の暗号化アルゴリズム10を適用して、オリジナルデータファイルFoに対して暗号化処理を施し、暗号化オリジナルデータファイルFFoを作成する。
より具体的には、図15にそのプロセスを示したように、まず、暗号化処理部170において、所定のキー作成アルゴリズム15に基づいて、パスワードPw(A)もしくはその一部を利用して、暗号キーK(A)を作成する処理が実行される。もちろん、パスワードPw(A)をそのまま暗号キーK(A)として用いてもかまわない。続いて、この暗号キーK(A)を用いた所定の暗号化アルゴリズム10により、オリジナルデータファイルFoに対する暗号化処理が実行される。このような暗号キーを用いる暗号化処理自体は公知の技術であるため、ここでは詳しい説明は省略する。
ここに示す実施形態の場合、ファイル偽装部130は、オリジナルデータファイルFoの代わりに、暗号化オリジナルデータファイルFFoを組み込むことにより、偽装データファイルFdを作成する。図14において、ファイル偽装部130から出力される偽装データファイルFdの脇に、(Fc+M(Ps)+FFo)と記載されているのは、偽装データファイルFd内に、コンテンツデータファイルFc、位置設定データが組み込まれた管理データM(Ps)、暗号化オリジナルデータファイルFFo、が含まれていることを示している。
したがって、ここに示す実施形態において作成される偽装データファイルFdのデータ構成は、図6の下段に示す偽装データファイルFdの構成例において、オリジナルデータファイルFoを暗号化オリジナルデータファイルFFoに置き換えたものになる。このため、万一、偽装データファイルFdが不正者の手に渡って解析され、暗号化オリジナルデータファイルFFoの部分が分離抽出されたとしても、復号化を行うことができない限り、オリジナルデータファイルFoを復元することはできない。偽装データファイルFdには、パスワードPw(A)や暗号キーK(A)に関する情報は一切含まれていないので、偽装データファイルFdを解析しても、復号化に必要な暗号キーを入手することはできない。
一方、復元段階パスワード入力部260は、図示のとおり、復元処理ユニット200側の構成要素であり、やはりユーザの入力操作に基づいてパスワードを入力する機能を有している。この偽装段階パスワード入力部260の機能は、§5で述べた図13に示す偽装段階パスワード入力部260の機能と全く同じである。復元段階パスワード入力部260が入力したパスワードPw(B)は、復号化処理部280へ与えられる。
復号化処理部280は、偽装データファイルFdから抽出した暗号化オリジナルデータファイルFFoに対して、復元段階パスワード入力部260によって入力されたパスワードPw(B)を用いて、暗号化処理部170が用いた暗号化アルゴリズム10に対応する復号化アルゴリズム20を実行して復号化処理を行い、復元データファイルFrを作成する。
より具体的には、図15にそのプロセスを示したように、まず、復号化処理部280において、暗号化処理部170が用いたものと同じキー作成アルゴリズム15に基づいて、パスワードPw(B)もしくはその一部を利用して、暗号キーK(B)を作成する処理が実行される。続いて、この暗号キーK(B)を用いた復号化アルゴリズム20により、暗号化オリジナルデータファイルFFoに対する復号化処理が実行される。パスワードPw(B)がパスワードPw(A)と同一であれば(上例の場合、復元段階パスワード入力部260に対して「金婚式」なるパスワードが入力されれば)、復号化によって得られる復元データファイルFrは、オリジナルデータファイルFoと同一のファイルになる。
ファイル復元部220は、復号化処理部280によって復号化されたデータファイルを、復元データファイルFrとして出力する。但し、この実施形態の場合も、図1に示す実施形態と同様に、位置判定部250による位置判定が行われ、ファイル復元部220は、位置判定部250による合致判定がなされることを条件として(すなわち、位置判定部250から合致判定信号Jが与えられることを条件として)、復元データファイルFrの出力を行う。したがって、ここに示す例の場合、ユーザが、「おばあちゃんの顔の部分」を位置指定し、かつ、「金婚式」というパスワードを入力した場合にのみ、オリジナルデータファイルFoと同一の正しい復元データファイルFrが出力されることになる。
ここに示す実施形態の場合、復元処理の際に入力したパスワードPw(B)が正しいパスワードであるか否か(すなわち、パスワードPw(A)に一致するか否か)の判定は行われない。ただ、誤ったパスワードであった場合、得られる復元データファイルFrの内容も誤ったものとなり、ユーザは、オリジナルデータファイルFoの復元に失敗することになる。
なお、図14のブロック図では、位置判定部250からの合致判定信号Jが、ファイル復元部220の制御に用いられているが、合致判定信号Jを復号化処理部280の制御に用いてもよい。
図示の例のように、合致判定信号Jをファイル復元部220の制御に用いた場合、位置判定部250の判定結果にかかわらず、復号化処理部280は、復号化処理を実行し、復元データファイルFrを作成する処理を実行することになる。ただ、位置判定部250によって合致を示す判定がなされなかった場合は、ファイル復元部220には非合致判定信号が与えられることになるので、復元データファイルFrの出力処理は行われないことになる。
これに対して、合致判定信号Jを復号化処理部280の制御に用いることも可能である。すなわち、合致判定信号Jを復号化処理部280に与えるようにし、復号化処理部280は、合致判定信号Jが与えられた場合に限って、復号化処理を実行し、復元データファイルFrを作成するようにする。この場合、位置判定部250によって合致を示す判定がなされなかった場合は、復号化処理部280には非合致判定信号が与えられることになるので、復号化処理は実行されず、復元データファイルFrは作成されることはない。
要するに、位置判定部250による合致判定がなされることを条件として(合致判定がなされた場合に限って)、復号化処理部280による復号化処理およびファイル復元部220による復元データファイルの出力処理の双方の処理がともに行われるようにしておけばよい。別言すれば、位置判定部250による合致判定がなされなかった場合には、上記双方の処理のうちの少なくとも一方の処理が阻止されるようにしておけばよい。復元処理ユニット200から復元データファイルFrを出力させるためには、復号化処理部280による復号化処理と、ファイル復元部220による復元データファイルの出力処理と、の双方の処理がともに行われる必要がある。したがって、位置判定部250による合致判定がなされなかった場合には、少なくともその一方の処理を阻止すれば、復元データファイルFrの出力を阻止することができる。
もちろん、でたらめな内容をもったダミー復元データファイルを予め用意しておくか、その都度作成するようにし、位置判定部250による合致判定がなされなかった場合には、ファイル復元部220によって、このダミー復元データファイルを出力するようにしてもよい。
最後に、図15に示すキー作成アルゴリズム15の具体例をいくつか述べておく。上述したとおり、キー作成アルゴリズムは、何らかのパスワードPwを利用して、何らかの規則に基づき、暗号キーKを作成するアルゴリズムである。図16は、このような暗号キーを生成する方法のいくつかの例を示す図である。
ここでは、パスワードPwとして「APPLEPIE」という英単語が与えられた場合を例にとって説明しよう。最も単純なキー作成アルゴリズムは、パスワードPwを構成する文字列全部をそのまま暗号キーとするものである。この場合、図示のとおり、「APPLEPIE」という英単語がそのまま暗号キーK1として用いられることになる(実際には、個々の文字を数値に変換して暗号キーとすることが多い)。
一方、図示の暗号キーK2「APPLE」は、パスワード「APPLEPIE」の一部(この例の場合、先頭5文字)を抽出するという規則で得られたキーである。また、暗号キーK3「APPLEPIE-MAY」は、パスワード「APPLEPIE」の後ろに、ある規則に基づいた文字列(この例の場合、ハイフンと現在の月名)を付加して得られたキーであり、暗号キーK4は、パスワード「APPLEPIE」の一部(この例の場合、先頭5文字)に、ある特定の文字列(この例の場合、&MELONという文字列)を付加するという規則で得られたキーである。
結局、暗号化処理部170および復号化処理部280は、パスワードPwもしくはその一部を、暗号キーKもしくはその一部として用いた暗号化もしくは復号化処理を実行することになる。
これに対して、図16に示されている暗号キーK5,K6は、若干異なる手法によって作成されたキーである。これら暗号キーK5,K6の作成には、別途、任意のデータ列30を用意しておく必要がある。任意のデータ列30は、どのようなデータ列であってもかまわないが、偽装処理および復元処理を行う際に、何らかの形で入手可能な同一のデータ列である必要がある。したがって、実用上は、コンテンツデータファイルFcを任意のデータ列30として利用するのが最も好ましい。コンテンツデータファイルFcは、偽装処理時には、コンテンツデータファイル入力部120によって取り込まれるファイルであり、復元処理時には、偽装データファイル入力部210によって取り込まれた偽装データファイルFdに含まれているファイルであるから、偽装処理および復元処理のいずれの段階でもユニット内に取り込まれている。
そこで、暗号化処理部170および復号化処理部280が、パスワードPwによって特定される「コンテンツデータファイルFc内の一部分のデータ」を、暗号キーKもしくはその一部として用い、暗号化もしくは復号化処理を実行するようにする。
具体的には、パスワード「APPLEPIE」に基づいて、暗号キーK5を作成するプロセスは次のとおりである。まず、図示のとおり、パスワード「APPLEPIE」を構成する文字列に所定の数値化アルゴリズム35を適用して、当該文字列に固有の所定の固有値を求める演算を実行する。ここでは、「APPLEPIE」が仮に「80」という固有値に変換されたものとしよう。ここで用いる数値化アルゴリズム35は、与えられたパスワードPwに基づいて、一義的に何らかの固有値が決定できるようなアルゴリズムであれば、どのようなアルゴリズムを用いてもかまわない。そのような数値化アルゴリズムとして、たとえば、ハッシュ関数などが広く利用されている(固有値「80」は、正しいハッシュ値ではなく、単なる例示である)。
こうして固有値が得られたら、所定の抽出アルゴリズム36に基づいて、用意した任意のデータ列30(この例の場合、コンテンツデータファイルFcを構成するデータ列)の所定基準位置から、当該固有値に応じた後続位置に配置されているデータを先頭とする所定長のデータを抽出する。たとえば、抽出アルゴリズム36として、「データ列30の先頭を基準位置として、当該基準位置から固有値に応じた後続位置に配置されているデータを先頭とする8バイトの長さをもつデータを抽出する」というアルゴリズムを採用した場合、図示のとおり、データ列30の先頭から80バイト目〜87バイト目の合計8バイトのデータ(図にハッチングを施して示す部分)が抽出されることになる。
図示の暗号キーK5は、こうして抽出された8バイトのデータをそのまま暗号キーとして用いたものである。一方、図示の暗号キーK6は、こうして抽出された8バイトのデータを一部として用いたキーであり、抽出されたデータに、ある特定の文字列(この例の場合、&MELONという文字列)を付加するという規則で得られたキーである。
上述した暗号キーK5,K6の作成手法では、数値化アルゴリズム35や抽出アルゴリズム36が一定であっても、パスワードPwおよびデータ列30を、ユーザの選択によって、その都度、任意に変えることが可能である。したがって、極めてセキュリティの高い暗号化処理システムを構築することが可能になる。
<<< §7.パスワード照合と暗号化との双方を行う実施形態 >>>
上述したように、§6の暗号化を行う実施形態では、パスワードが利用される。しかしながら、§6の実施形態の場合、復元処理の際に、パスワードの照合が行われるわけではなく、パスワードはあくまでも暗号キーを作成するための材料として用いられるにすぎない。ここでは、§6で述べた暗号化を行う実施形態に、§5で述べたパスワード照合を行う実施形態を組み合わせた実施形態を述べる。
図17は、パスワード照合と暗号化との双方を行う実施形態に係る偽装処理装置の構成を示すブロック図である。この図17に示す実施形態と、§6で述べた図14に示す実施形態との相違は、暗号化処理部170において、オリジナルデータファイルFoに対する暗号化とともに、パスワードPw(A)についての暗号化も併せて行われ、暗号化パスワードPPwが作成される点、ファイル偽装部130が暗号化パスワードPPwを含んだ偽装データファイルFdを作成する点、復号化処理部280が、暗号化オリジナルデータファイルFFoに対する復号化を行う機能と暗号化パスワードPPwに対する復号化を行う機能とを有している点、復元処理ユニット200側に、パスワード判定部270という新たな構成要素を付加した点、正しい復元データファイルFrが得られるための条件としてパスワードに関する合致判定がなされることを加えた点である。その余の各構成要素については、図14に示す実施形態における各構成要素の機能と変わりがないため、ここでは説明を省略する。なお、新たに付加された構成要素も、実際には、コンピュータ用プログラムによって実現されるものである。
暗号化処理部170は、暗号化対象となるデータに対して、パスワードPw(A)を利用して暗号化処理を施す機能を有する構成要素であるため、与えられた任意のデジタルデータについて暗号化処理を行うことができる。したがって、オリジナルデータファイルFoを与えれば、これを暗号化することにより暗号化オリジナルデータFFoを作成することができるし、パスワードPw(A)を与えれば、これを暗号化することにより暗号化パスワードPPwを作成することができる。こうして作成された暗号化オリジナルデータファイルFFoおよび暗号化パスワードPPwは、ファイル偽装部130へ与えられる。
図17の実施形態の場合、ファイル偽装部130は、コンテンツデータファイルFcに暗号化パスワードPPwを含む管理データMを組み込むことにより、暗号化パスワードPPwを含んだ偽装データファイルFdを作成する。図14に示す実施形態の場合、ファイル偽装部130は、コンテンツデータファイルFcに、位置設定データPsを含む管理データM(Ps)と、暗号化オリジナルデータファイルFFoと、を組み込むことにより、偽装データファイルFdを作成する機能を有しているが、ここで述べる図17の実施形態の場合、管理データMには、位置設定データPsとともに暗号化パスワードPPwが組み込まれることになる。図17において、ファイル偽装部130から出力される偽装データファイルFdの脇に、(Fc+M(Ps+PPw)+FFo)と記載されているのは、偽装データファイルFd内に、コンテンツデータファイルFc、位置設定データと暗号化パスワードとが組み込まれた管理データM(Ps+PPw)、暗号化オリジナルデータファイルFFo、が含まれていることを示している。
したがって、ここに示す実施形態において作成される偽装データファイルFdのデータ構成は、図6の下段に示す偽装データファイルFdの構成例において、オリジナルデータファイルFoを暗号化オリジナルデータファイルFFoに置き換え、管理データM内に、暗号化パスワードPPwを付加したものになる。ここで、万一、偽装データファイルFdが不正者の手に渡って解析され、暗号化オリジナルデータファイルFFoの部分や暗号化パスワードPPwの部分が分離抽出されたとしても、復号化を行うことができない限り、オリジナルデータファイルやパスワードを復元することはできない。
一方、復号化処理部280は、復号化対象となるデータに対して、復元段階パスワード入力部260によって入力されたパスワードPw(B)を利用して復号化処理を施す機能を有する構成要素であり、与えられた任意のデジタルデータについて復号化処理を行うことができる。したがって、暗号化オリジナルデータファイルFFoを与えれば、これを復号化することにより復元データファイルFr(正しい復号化が行われていれば、これはオリジナルデータFoと同一になる)を作成することができるし、暗号化パスワードPPwを与えれば、これを復号化することによりパスワードPw(C)(正しい復号化が行われていれば、これはパスワードPw(A)と同一になる)を作成することができる。こうして作成された復元データファイルFrはファイル復元部220へ与えられ、パスワードPw(C)はパスワード判定部270へ与えられる。
パスワード判定部270は、復元段階パスワード入力部260から与えられたパスワードPw(B)と、復号化処理部280から与えられたパスワードPw(C)(偽装データファイルFdに含まれている暗号化パスワードPPwを復号化して得られるパスワード)と、を照合して合致するか否かを判定する。両者が合致すれば、ファイル復元部220に対して、合致判定信号J2を与える(両者が合致しなければ、非合致判定信号が与えられる)。
なお、この図17に示す実施形態では、位置判定部250からファイル復元部220に与えられる合致判定信号に「J1」という符号を付し、上記合致判定信号J2と区別している。合致判定信号J1は、位置判定部250による判定の結果、指定位置Pdが設定位置Psに合致したことを示す「位置に関する合致判定信号」であるのに対して、合致判定信号J2は、パスワード判定部270による判定の結果、パスワードPw(B)がパスワードPw(C)に合致したことを示す「パスワードに関する合致判定信号」である。
ファイル復元部220は、位置判定部250とパスワード判定部270との双方において合致判定がなされることを条件として、復号化処理部280が作成した復元データファイルFrを出力する処理を行う。すなわち、図示の例の場合、合致判定信号J1と合致判定信号J2との双方が与えられた場合にのみ、復元データファイルFrを出力する。
§5で述べた実施形態と同様に、実用上は、位置判定部250による合致判定がなされなかった場合、もしくは、パスワード判定部270による合致判定がなされなかった場合には、ファイル復元部220が、復元データファイルFrの出力を行う代わりに、ユーザに対して「このファイルは復元できません。」などのエラーメッセージを提示するようにしておくのが好ましい。
具体的には、位置判定部250による合致判定がなされなかった場合には、ファイル復元部220に対して「位置に関する非合致判定信号」が与えられるようにし、パスワード判定部270による合致判定がなされなかった場合には、ファイル復元部220に対して「パスワードに関する非合致判定信号」が与えられるようにし、ファイル復元部220が、いずれかの非合致判定信号が与えられた場合に、復元データファイルFrを出力せずに、エラーメッセージを提示するようにすればよい。
あるいは、でたらめな内容をもったダミー復元データファイルを予め用意しておくか、その都度作成するようにし、いずれかの非合致判定信号が与えられた場合には、このダミー復元データファイルを出力するようにしてもよい。
図18は、図17に示す実施形態における暗号化および復号化の手順を示す図である。図15に示した手順と同様に、ユーザがパスワードPw(A)を指定したら、所定のキー作成アルゴリズム15を用いて、当該パスワードPw(A)もしくはその一部を利用して暗号キーK(A)を作成する。そして、この暗号キーK(A)を用いた暗号化アルゴリズム10により、オリジナルデータファイルFoに対する暗号化を行って暗号化オリジナルデータファイルFFoを作成するとともに、パスワードPw(A)に対する暗号化を行って暗号化パスワードPPwを作成する。
一方、復号化を行う際には、ユーザにパスワードPw(B)を指定させ、暗号化のときと同じキー作成アルゴリズム15を用いて、当該パスワードPw(B)もしくはその一部を利用して暗号キーK(B)を作成する。そして、この暗号キーK(B)を用いた復号化アルゴリズム20により、暗号化オリジナルデータファイルFFoに対する復号化を行って復元データファイルFrを作成するとともに、暗号化パスワードPPwに対する復号化を行ってパスワードPw(C)を作成する。
ユーザが復号化の際に入力したパスワードPw(B)が、暗号化の際に入力したパスワードPw(A)と同一であれば、暗号化アルゴリズム10が用いる暗号キーK(A)と復号化アルゴリズム20が用いる暗号キーK(B)は等しくなるため、正しい復号化が行われ、得られる復元データファイルFrは、オリジナルデータファイルFoと同一のファイルになり、得られるパスワードPw(C)は元のパスワードPw(A)と同一になる。すなわち、ユーザが復元処理時に正しいパスワードを入力することを前提に、Pw(A)=Pw(B)とすれば、K(A)=K(B)なので、Fo=Fr、Pw(A)=Pw(B)=Pw(C)になる。よって、パスワード判定部270において、Pw(B)=Pw(C)であることを判定し、合致したら、復元処理ユニット200から復元データファイルFrが出力されるようにすればよい。
もし、パスワードPw(B)がパスワードPw(A)と異なっていた場合、正しい復号化は行われず、得られる復元データファイルFrは、オリジナルデータファイルFoとは異なるファイルになり、また、得られるパスワードPw(C)は元のパスワードPw(A)とは異なる。よって、パスワード判定部270において、合致しない旨の判定が得られ、ファイル復元部220に対して非合致判定信号が与えられ、正しい復元データファイルFr(すなわち、オリジナルデータファイルFo)の出力は行われない。
なお、図17のブロック図では、位置判定部250からの合致判定信号J1およびパスワード判定部270からの合致判定信号J2が、ファイル復元部220の制御に用いられているが、合致判定信号J1,J2を復号化処理部280の制御に用いてもよい。
図示の例のように、合致判定信号J1,J2をファイル復元部220の制御に用いた場合、位置判定部250やパスワード判定部270の判定結果にかかわらず、復号化処理部280は、復号化処理を実行し、復元データファイルFrおよびパスワードPw(C)を作成する処理を実行することになる。ただ、最終的には、位置判定部250とパスワード判定部270とのいずれか一方、もしくは双方において、非合致の判定がなされた場合は、ファイル復元部220には、少なくとも一方についての非合致判定信号が与えられることになるので、復元データファイルFrの出力処理は行われないことになる。
これに対して、合致判定信号J1,J2を復号化処理部280の制御に用いることも可能である。すなわち、合致判定信号J1,J2を復号化処理部280に与えるようにし、復号化処理部280は、合致判定信号J1,J2の双方が与えられた場合に限って、暗号化オリジナルデータファイルFFoについての復号化処理を実行するようにする。この場合、位置判定部250とパスワード判定部270の双方によって合致を示す判定がなされない限り、ファイルFFoに対する復号化処理は実行されず、復元データファイルFrが作成されることはない。
これは、復元処理ユニット200の内部で復元データファイルFrの作成処理を行うための条件として、「位置判定部250とパスワード判定部270の双方によって合致判定がなされること」という条件を課すことに他ならない。このような条件を課すことにより、不正な方法で、復元処理ユニット200の内部に復元データファイルFrが作成される可能性を低減することができ、セキュリティの向上を図ることができる。
なお、暗号化パスワードPPwに対する復号化処理については、必要に応じて、「位置判定部250によって合致判定がなされること(すなわち、合致判定信号J1が得られること)」という条件を課すことはできるが、「パスワード判定部270によって合致判定がなされること(すなわち、合致判定信号J2が得られること)」という条件を課すことはできない。なぜなら、パスワード判定部270による合致判定には、暗号化パスワードPPwに対する復号化処理を実行することによって得られるパスワードPw(C)が必要になるためである。
要するに、図17に示す実施形態の場合、位置判定部250とパスワード判定部270との双方において合致判定がなされることを条件として(双方において合致判定がなされた場合に限って)、復号化処理部280による暗号化オリジナルデータファイルFFoについての復号化処理およびファイル復元部220による復元データファイルFrの出力処理の双方の処理がともに行われるようにしておけばよい。別言すれば、位置判定部250による合致判定がなされなかった場合、もしくはパスワード判定部270による合致判定がなされなかった場合には、上記双方の処理のうちの少なくとも一方の処理が阻止されるようにしておけばよい。復元処理ユニット200から復元データファイルFrを出力させるためには、復号化処理部280による暗号化オリジナルデータファイルFFoに対する復号化処理と、ファイル復元部220による復元データファイルFrの出力処理と、の双方の処理がともに行われる必要がある。したがって、位置判定部250による合致判定がなされなかった場合、もしくはパスワード判定部270による合致判定がなされなかった場合には、少なくともその一方の処理を阻止すれば、復元データファイルFrの出力を阻止することができる。
<<< §8.複数のファイルを用いる実施形態 >>>
これまで述べた実施形態では、偽装対象となる1つのオリジナルデータファイルFoと1つのコンテンツデータファイルFcとを組み合わせて、偽装データファイルFdを作成する例を示した。しかしながら、本発明を実施する上で、偽装データファイルFdに組み込まれるオリジナルデータファイルFoやコンテンツデータファイルFcは複数であってもかまわない。
図19は、複数のファイルを用いる実施形態における偽装データファイルFdの構成例を示す図である。図示の例では、複数n個のオリジナルデータファイルFo(1),Fo(2),... ,Fo(n)と、複数m個のコンテンツデータファイルFc(1),Fc(2),... ,Fc(m)と、を組み合わせて、1つの偽装データファイルFdを作成した例が示されている。これまで述べてきた実施形態は、n=1,m=1に設定した例に対応する。もちろん、n=1として、mのみを複数にする実施形態や、m=1として、nのみを複数にする実施形態も可能である。
このように、複数のファイルにまで適用可能な実施形態の場合、これまで述べてきた各実施形態に係る装置において、オリジナルデータファイル入力部110に、ユーザのファイル指定操作に基づき、n個のオリジナルデータファイルを入力する機能をもたせ、コンテンツデータファイル入力部120が、ユーザのファイル指定操作に基づき、m個のコンテンツデータファイルをそれぞれ入力する機能をもたせておけばよい。この場合、ファイル偽装部130は、n個のオリジナルデータファイルもしくは暗号化オリジナルデータファイルと、m個のコンテンツデータファイルとを含む偽装データファイルFdを作成することになる。
図19の下段には、このような偽装データファイルFdの構成例が示されている。このようなデータ構造をもった偽装データファイルFdを作成するには、ファイル偽装部130は、管理データMと、これに後続する第1〜n番目のオリジナルデータファイルFo(1),Fo(2),... ,Fo(n)(暗号化を行う場合には、暗号化オリジナルデータファイル)を構成するデータおよび第2〜m番目のコンテンツデータファイルFc(2),... ,Fc(m)を構成するデータと、を含む付加データ列D2を作成すればよい。
このとき、付加データ列D2の上記構成を示す構成情報(たとえば、個々のファイルのファイル名、データ長、配置順、オリジナルデータファイルかコンテンツデータファイルかの別、などを示す情報)が管理データMに含まれるようにする。そして、第1番目のコンテンツデータファイルFc(1)を構成するデータ列D1の末尾に、上記付加データ列D2を付加することにより、偽装データファイルFdを作成すればよい。
なお、偽装データファイルFdの拡張子は、第1番目のコンテンツデータファイルFc(1)と同一のファイルフォーマットを示す拡張子にするのが好ましい。たとえば、第1番目のコンテンツデータファイルFc(1)が「JPEG形式」のファイルであった場合、偽装データファイルFdのファイル名には、「.jpg」なる拡張子が付されることになる。これにより、一見したところ、この偽装データファイルFdは、全体が1つの「JPEG形式」のファイルのように見えることになる。もちろん、n個のオリジナルデータファイルや、m個のコンテンツデータファイルは、必ずしも同じ形式のファイルである必要はなく、画像ファイル、音声ファイル、動画ファイルなどが混在していても支障はない。
一方、復元処理ユニット200側では、図19の下段に示すようなデータ構造をもった偽装データファイルFdを入力した場合、この偽装データファイルFdの先頭部分に含まれている第1番目のコンテンツデータファイルFc(1)のヘッダ部の情報に基づいて、第1番目のコンテンツデータファイルFc(1)を構成するデータ列D1の末尾を認識することができる。
具体的には、既に§3で述べたように、たとえば、第1番目のコンテンツデータファイルFc(1)のヘッダ部の情報に含まれているファイル長を示すデータに基づいて、データ列D1の末尾を認識することができる。あるいは、第1番目のコンテンツデータファイルFc(1)のヘッダ部の情報に含まれているファイルの種類を示すデータに基づいて、ファイル末尾を示す識別子コード(たとえば、ファイルの種類が「JPEG形式」のファイルの場合、「FF D9」なる2バイトのコード)を認識し、この識別子コードを検索することにより、データ列D1の末尾を認識することもできる。
こうして、データ列D1の末尾を認識することができれば、これに後続する管理データMを認識することができ、管理データMに含まれている構成情報を利用して、管理データMに後続するオリジナルデータファイルFo(1),Fo(2),... ,Fo(n)(暗号化を行う場合には、暗号化オリジナルデータファイル)と、第2〜m番目のコンテンツデータファイルFc(2),... ,Fc(m)を認識することができる。別言すれば、図19の下段に示す偽装データファイルFdに含まれている各ファイルを、図19の上段に示すような別個独立したファイルとして認識することができる。
続いて、複数m個のコンテンツデータファイルを用いる場合に、偽装処理ユニット100側および復元処理ユニット200側で行われる特有の処理を説明する。ここでは、まず、パスワード照合や暗号化を行わない§2〜§4で述べた実施形態(図1の実施形態)の場合について説明する。
複数m個のコンテンツデータファイルを用いる場合、偽装処理ユニット100側では、個々のファイルごとに位置設定操作を行うことが可能である。したがって、偽装段階コンテンツ再生部140は、m個のコンテンツデータファイルをそれぞれ再生してユーザに提示する機能を有し、位置設定部150は、ユーザの位置設定操作に基づき、再生中の個々のコンテンツについて、それぞれ位置設定データを作成する機能を有するようにしておく。また、ファイル偽装部130は、個々のファイルについて作成された位置設定データを含む管理データMを組み込むことにより、偽装データファイルFdを作成することになる。
図20は、複数m個のコンテンツデータファイルを用いる実施形態において、偽装処理ユニット100側で行われる位置設定手順を示す図である。たとえば、偽装段階コンテンツ再生部140によって、第1番目のコンテンツデータファイルFc(1)を再生中に、位置設定部150は、第1番目のコンテンツC1上の所定位置を設定するユーザの位置設定操作に基づき、位置設定データPs1を作成する。同様に、第2番目のコンテンツC2について位置設定データPs2を作成し、... 、第m番目のコンテンツCmについて位置設定データPsmを作成する。ファイル偽装部130は、これらm個の位置設定データPs1,Ps2,... ,Psmを含む管理データMを組み込むことにより、偽装データファイルFdを作成することになる。
一方、復元処理ユニット200側では、復元段階コンテンツ再生部230が、このm個のコンテンツデータファイルのコンテンツを順次再生してユーザに提示する機能を有し、位置指定部240が、ユーザの位置指定操作に基づき、再生中の個々のコンテンツについて、それぞれ位置指定を行う機能を有するようにしておく。また、位置判定部250は、個々のコンテンツについて、それぞれ指定位置が設定位置に合致するか否かを判定する機能を有するようにしておく。
そして、復元段階コンテンツ再生部230が、第1番目のコンテンツデータファイルFc(1)の再生を行った後、第i番目(1≦i<m)のコンテンツデータファイルFc(i)のコンテンツについて、位置判定部250による合致判定がなされることを条件として、第(i+1)番目のコンテンツデータファイルのコンテンツの再生を行い、ファイル復元部220が、第m番目のコンテンツデータファイルのコンテンツについて位置判定部による合致判定がなされることを条件として、復元データファイルFrの出力を行うようにしておく。
図21は、複数のコンテンツデータファイルを用いる実施形態において、復元処理ユニット200側で行われる合致判定の手順を示す図である。まず、復元段階コンテンツ再生部230は、第1番目のコンテンツデータファイルFc(1)を再生し、ユーザに第1番目のコンテンツC1を提示する。ユーザが、この第1番目のコンテンツC1について位置指定操作を行ったら、位置判定部250は、当該操作で得られる位置指定データPd1と、管理データMに含まれていた第1番目の位置設定データPs1との位置合致判定を行う。
ここで、Pd1とPs1とが合致したら、復元段階コンテンツ再生部230は、第2番目のコンテンツデータファイルFc(2)を再生し、ユーザに第2番目のコンテンツC2を提示する。ユーザが、この第2番目のコンテンツC2について位置指定操作を行ったら、位置判定部250は、当該操作で得られる位置指定データPd2と、管理データMに含まれていた第2番目の位置設定データPs2との位置合致判定を行う。
以下、同様に、第i番目のコンテンツCiについての位置合致判定がなされることを条件に、第(i+1)番目のコンテンツの提示が行われる。そして最後に、復元段階コンテンツ再生部230は、第m番目のコンテンツデータファイルFc(m)を再生し、ユーザに第m番目のコンテンツCmを提示する。ユーザが、この第m番目のコンテンツCmについて位置指定操作を行ったら、位置判定部250は、当該操作で得られる位置指定データPdmと、管理データMに含まれていた第m番目の位置設定データPsmとの位置合致判定を行う。
ここで、PdmとPsmとが合致したら、位置判定部250は、ファイル復元部220に対して合致判定信号Jを与え、復元データファイルFrの出力が行われるようにする。偽装データファイルFd内に、複数n個のオリジナルデータファイルFo(1),Fo(2),... ,Fo(n)が組み込まれていた場合は、これらのファイルがそれぞれ別個独立した復元データファイルFrとして出力されることになる。
なお、第i番目のコンテンツCiについての位置合致判定がなされなかった場合には、第(i+1)番目のコンテンツの提示は行われず、復号処理はそこで中断することになる。この場合、必要なら、ユーザに何らかのエラーメッセージが提示されるようにすればよい。
あるいは、第i番目のコンテンツCiについての位置合致判定がなされなかった場合には、本来の第(i+1)番目のコンテンツとは全く別なダミーコンテンツの提示を行うようにしてもよい。
次に、パスワード照合を行う§5で述べた実施形態(図13の実施形態)の場合について、偽装処理ユニット100側および復元処理ユニット200側で行われる特有の処理を説明する。
この場合、偽装処理ユニット100側では、m個のコンテンツデータファイルごとに、必要に応じて、それぞれ位置設定操作およびパスワード入力操作を行うことが可能である。したがって、偽装段階コンテンツ再生部140には、m個のコンテンツデータファイルをそれぞれ再生してユーザに提示する機能をもたせておく。
また、位置設定部150には、ユーザの位置設定操作に基づいて、m個のコンテンツデータファイルの一部もしくは全部について、再生中に、時間上もしくは空間上の所定位置を設定し、設定位置を特定する位置設定データをそれぞれ作成する機能をもたせておき、偽装段階パスワード入力部160には、ユーザの入力操作に基づいて、m個のコンテンツデータファイルの一部もしくは全部について、それぞれ個々のパスワードを入力して設定する機能をもたせておく。
なお、m個のコンテンツデータファイルには、位置設定データかパスワードか、の少なくとも一方が設定されていれば足りる。したがって、位置設定部150による位置設定データの設定処理は、必ずしもm個のコンテンツデータファイルの全部について行う必要はなく、その一部について行われれば十分である。また、偽装段階パスワード入力部160によるパスワードの設定処理は、必ずしもm個のコンテンツデータファイルの全部について行う必要はなく、その一部について行われれば十分である。
ファイル偽装部130は、第1番目のコンテンツデータファイルPc(1)に、位置設定データおよびパスワードを含む管理データMと、1つもしくは複数n個のオリジナルデータファイルと、第2〜m番目のコンテンツデータファイルと、を組み込むことにより、偽装データファイルFdを作成することになる。
図22は、偽装処理ユニット100側で行われる位置設定およびパスワード設定の手順を示す図である。たとえば、偽装段階コンテンツ再生部140によって、第1番目のコンテンツデータファイルFc(1)を再生中には、「位置設定部150が、第1番目のコンテンツC1上の所定位置を設定するユーザの位置設定操作に基づき、位置設定データPs1を作成する処理」と、「偽装段階パスワード入力部160が、第1番目のコンテンツC1についてユーザのパスワード入力操作に基づき、パスワードPw1を設定する処理」と、のいずれか一方、もしくは両方が行われる。図において、「Ps1」AND/OR「Pw1」と記載されているのは、「Ps1かPw1のいずれか一方もしくは両方」の意味である。いずれか一方のみを行うか、両方を行うかは、ユーザが自由に選択できる事項である。
同様の処理が、第2番目のコンテンツC2〜第m番目のコンテンツCmについても実行される。したがって、m個のコンテンツデータファイルのそれぞれに対して、位置設定データか、パスワードか、その両方が設定されることになる。ファイル偽装部130は、ここで設定された位置設定データとパスワードとを含む管理データMを組み込むことにより、偽装データファイルFdを作成する。
一方、復元処理ユニット200側では、復元段階コンテンツ再生部230に、m個のコンテンツデータファイルのコンテンツを順次再生してユーザに提示する機能をもたせ、位置指定部240に、ユーザの位置指定操作に基づき、再生中の個々のコンテンツについて、それぞれ位置指定を行う機能をもたせておく。また、位置判定部250には、個々のコンテンツについて、それぞれ指定位置が設定位置に合致するか否かを判定する機能をもたせておく。
更に、復元段階パスワード入力部260には、ユーザの入力操作に基づいて、偽装段階パスワード入力部160によるパスワード設定が行われたパスワード設定済コンテンツについて、再生中に、パスワードを入力する機能をもたせ、パスワード判定部270には、「復元段階パスワード入力部260によって入力された、個々のパスワード設定済コンテンツについてのパスワード」と、「偽装データファイルFdに含まれている個々のパスワード設定済コンテンツについてのパスワード」と、を照合して合致するか否かを判定する機能をもたせておく。
そして、復元段階コンテンツ再生部230が、第1番目のコンテンツデータファイルFc(1)の再生を行った後、第i番目(1≦i<m)のコンテンツデータファイルFc(i)のコンテンツについて、位置設定およびパスワード設定のうちの設定済のものすべてについて合致判定がなされることを条件として、第(i+1)番目のコンテンツデータファイルのコンテンツの再生を行い、ファイル復元部220が、第m番目のコンテンツデータファイルのコンテンツについて、位置設定およびパスワード設定のうちの設定済のものすべてについて合致判定がなされることを条件として、復元データファイルFrの出力を行うようにしておく。
図23は、パスワード照合を行う§5で述べた実施形態(図13の実施形態)の場合について、復元処理ユニット200側で行われる合致判定の手順を示す図である。まず、復元段階コンテンツ再生部230は、第1番目のコンテンツデータファイルFc(1)を再生し、ユーザに第1番目のコンテンツC1を提示する。ユーザは、このコンテンツC1について位置設定がなされていた場合には位置指定操作を行い、パスワード設定がなされていた場合にはパスワード入力操作を行う。もちろん、両方の設定がなされていた場合には、位置指定操作とパスワード入力操作との双方を行うことになる。
位置指定操作が行われた場合、位置判定部250は、当該操作で得られる位置指定データPd1と、管理データMに含まれていた第1番目の位置設定データPs1との位置合致判定を行う。パスワード入力操作が行われた場合、パスワード判定部270は、当該操作で得られるパスワードPw1と、管理データMに含まれていた第1番目のパスワードPw1とのパスワード合致判定を行う。
ここで、合致判定が行われたすべての事項について、合致を示す判定がなされた場合、復元段階コンテンツ再生部230は、第2番目のコンテンツデータファイルFc(2)を再生し、ユーザに第2番目のコンテンツC2を提示する。ユーザは、このコンテンツC2について位置設定がなされていた場合には位置指定操作を行い、パスワード設定がなされていた場合にはパスワード入力操作を行う。もちろん、両方の設定がなされていた場合には、位置指定操作とパスワード入力操作との双方を行うことになる。
ここでも、位置指定操作が行われた場合、位置判定部250は、当該操作で得られる位置指定データPd2と、管理データMに含まれていた第2番目の位置設定データPs2との位置合致判定を行う。パスワード入力操作が行われた場合、パスワード判定部270は、当該操作で得られるパスワードPw2と、管理データMに含まれていた第2番目のパスワードPw2とのパスワード合致判定を行う。そして、合致判定が行われたすべての事項について、合致を示す判定がなされた場合、復元段階コンテンツ再生部230は、第3番目のコンテンツデータファイルFc(3)を再生し、ユーザに第3番目のコンテンツC3を提示する。
以下、同様に、第i番目のコンテンツCiについて、位置設定およびパスワード設定のうちの設定済のものすべてについて合致判定がなされることを条件として、第(i+1)番目のコンテンツデータファイルのコンテンツの再生が行われる。そして最後に、第m番目のコンテンツデータファイルFc(m)について、位置設定およびパスワード設定のうちの設定済のものすべてについて合致判定がなされた場合に、合致判定信号J1もしくはJ2、またはその双方が出力され、復元データファイルFrの出力が行われる。偽装データファイルFd内に、複数n個のオリジナルデータファイルFo(1),Fo(2),... ,Fo(n)が組み込まれていた場合は、これらのファイルがそれぞれ別個独立した復元データファイルFrとして出力されることになる。
ここで、第i番目のコンテンツCiについて、必要な合致判定(位置設定およびパスワード設定のうちの設定済のものすべてについての合致判定)がなされなされなかった場合には、第(i+1)番目のコンテンツの提示は行われず、復号処理はそこで中断することになる。この場合、必要なら、ユーザに何らかのエラーメッセージが提示されるようにすればよい。
あるいは、第i番目のコンテンツCiについて、必要な合致判定がなされなかった場合には、本来の第(i+1)番目のコンテンツとは全く別なダミーコンテンツの提示を行うようにしてもよい。
なお、暗号化を行う§6で述べた実施形態(図14の実施形態)や、パスワード照合と暗号化との双方を行う§7で述べた実施形態(図17の実施形態)についても、同様に、複数m個のコンテンツデータファイルを用いることが可能である。
このとき、偽装処理段階で、偽装段階パスワード入力部160によって複数のコンテンツについてそれぞれパスワードが入力された場合、暗号化処理部170は、予め定められた所定の規則に基づいて、入力されたパスワードの一部もしくは全部を利用して暗号化処理を実行するようにすればよい。また、パスワード照合を行う実施形態の場合、ファイル偽装部130は、第1番目のコンテンツデータファイルPc(1)に、位置設定データおよびパスワードを暗号化することにより得られる暗号化パスワードを含む管理データMと、暗号化オリジナルデータファイルと、第2〜m番目のコンテンツデータファイルと、を組み込むことにより、偽装データファイルFdを作成すればよい。
一方、復元処理段階では、復号化処理部280が、予め定められた上記規則に基づいて、復元段階パスワード入力部260によって入力されたパスワードの一部もしくは全部を利用して復号化処理を実行すればよい。
また、§6および§7で述べた暗号化を伴う実施形態の場合、暗号化の対象となるファイルはオリジナルデータファイルFoであったが、複数m個のコンテンツデータファイルを用いる実施形態では、第2番目以降のコンテンツデータファイルについては、必要に応じて、暗号化を施すことも可能である。
すなわち、暗号化処理部170に、偽装段階パスワード入力部160によって入力されたパスワードを利用した所定の暗号化アルゴリズムを適用して、第2〜m番目のコンテンツデータファイルの一部もしくは全部について暗号化処理を施し、暗号化コンテンツデータファイルを作成する機能をもたせておけば、ファイル偽装部130は、第2〜m番目のコンテンツデータファイルのうち、暗号化が行われたファイルについては、暗号化コンテンツデータファイルを組み込むことにより偽装データファイルFdを作成することができる。
一方、復号化処理部280に、偽装データファイルFdから抽出した暗号化コンテンツデータファイルに対して、復元段階パスワード入力部260によって入力されたパスワードを用いて、上記所定の暗号化アルゴリズムに対応する復号化アルゴリズムを実行して復号化処理を行う機能をもたせておけば、復元段階コンテンツ再生部230は、暗号化処理が施されているコンテンツデータファイルについては、復号化処理部280によって復号化が行われたコンテンツデータファイルに基づいてコンテンツを再生することができるようになる。
一般に、ユーザが設定するパスワードを、コンテンツに基づいて連想しやすい言葉にしておけば、復元処理時には、コンテンツを再生することにより、パスワードを思い出しやすくなる。したがって、パスワードを用いる実施形態では、ユーザは、コンテンツに基づいて連想しやすい言葉をパスワードとして設定することになろう。このような観点からは、万一、偽装データファイルFdが不正者の手に渡った場合でも、できるだけコンテンツの解析は行われないようにするのが好ましい。したがって、上述した実施例のように、複数m個のコンテンツデータファイルを用いる場合に、第2番目以降のコンテンツデータファイルについて暗号化を施すようにすれば、不正者による解析によって、コンテンツの内容を知られる可能性を低減させることができ、パスワードが類推される危険性を減らすことができる。
なお、第1番目のコンテンツデータファイルFc(1)は、図19の下段に示すように、偽装データファイルFdの先頭に位置するファイルであり、偽装データファイルFdが、あたかも当該第1番目のコンテンツデータファイルFc(1)のみから構成されているように偽装する役割を果たすものである。したがって、第1番目のコンテンツデータファイルFc(1)については、暗号化を施さないのが好ましい。
<<< §9.その他の変形例 >>>
最後に、本発明を実施する上で、いくつかのより実用的な変形例を述べておく。
<§9−1:パスワード入力用窓の表示>
これまで述べた実施形態のうちのいくつかでは、偽装処理段階において、1つのコンテンツに対して位置設定とパスワード設定との両方が行われるケースがある。このようなケースでは、復元処理段階において、1つのコンテンツに対して位置指定とパスワード入力との両方を行わなくてはならない。たとえば、図23において、第1のコンテンツC1について、位置設定とパスワード設定との両方が行われていた場合、ユーザは、当該コンテンツC1に対して、位置指定とパスワード入力との両方を行わなくてはならず、位置合致判定とパスワード合致判定との双方の結果が合致を示すものであった場合に限り、第2のコンテンツC2の提示が行われることになる。
このような場合、復元段階パスワード入力部260に、当該コンテンツC1について、ユーザによる位置指定操作が行われ、その結果、位置判定部250による合致判定が行われた場合に、ユーザに対してパスワード入力用窓を表示する機能をもたせ、このパスワード入力用窓へのユーザの入力操作によって、当該コンテンツC1についてのパスワードの入力を行うようにするとよい。
たとえば、図8に示す例のように、復元処理段階において、操作ウインドウ400のコンテンツ表示欄450に、図示のような画像コンテンツ(ここでは、コンテンツC1であったとしよう)が表示されていた場合、ユーザは、図9に示すように、この画像コンテンツC1上で指定点Pを指定する入力を行う。すると、位置判定部250によって、この指定点Pに関する位置合致判定がなされる。ここで、当該画像コンテンツC1について、パスワードの設定も行われていた場合には、位置判定部250によって合致の判定結果が得られたときに、復元段階パスワード入力部260によって図24に示すようなパスワード入力用窓451を表示させるのである。
図24に示す例は、指定点Pに端を発する「吹き出し型のパスワード入力用窓451」を表示させた例である。ユーザから見れば、図8に示す状態において、「おばあちゃんの顔の部分」をクリックすると、図24に示すように、この「おばあちゃんの顔の部分」から吹き出すように、「吹き出し型のパスワード入力用窓451」が出現したように見える。この「吹き出し型のパスワード入力用窓451」は、ユーザに対して、正しい位置指定が行われたことを示すとともに、当該コンテンツに対するパスワードの入力を促す役割を果たす。図24に示す例では、パスワード入力用窓451内に文字入力用のカーソルが表示されており、ユーザは、キーボードなどを用いて、所定のパスワードを構成する文字列(たとえば「金婚式」なる文字列)を入力すれば、このパスワード入力用窓451内に入力した文字が表示されることになる。
ユーザが、パスワードの入力操作を完了した後、たとえば、処理開始ボタン470をクリックすると、パスワード判定部270によるパスワード合致判定が行われる(あるいは、改行キーなどを打鍵することにより、パスワード合致判定が行われるようにしてもかまわない)。パスワードについても合致する旨の判定がなされれば、コンテンツC1に関して、位置合致判定とパスワード合致判定との双方について、合致を示す判定が得られたことになるので、ファイル復元部220による復元データファイルFrの出力がなされたり、あるいは、続いて提示すべきコンテンツがある場合(図23に示す例のように、複数のコンテンツを順次提示する場合)には、後続するコンテンツの提示が行われる。
たとえば、図23に示す例において、コンテンツC1〜Cmがすべて画像コンテンツであり、いずれのコンテンツについても、位置設定とパスワード設定との両方が行われていた場合、画像コンテンツの提示→位置指定クリック→パスワード入力用窓の表示→当該コンテンツについてのパスワード入力→次の画像コンテンツの提示→位置指定クリック→... というような処理が繰り返し行われることになる。ユーザは、個々のコンテンツごとに、位置指定とパスワード入力を順次行うことができ、しかも、位置指定操作とパスワード入力操作が、特定のコンテンツに対する操作であることを直感的に把握することができる。
なお、位置判定部250による合致判定が行われた場合にのみ、パスワード入力用窓の表示が行われるようにすると、正規のユーザでない者が、パスワード入力用窓の表示が行われるまで、試行錯誤にランダムな位置指定を行う可能性がある。実際、図8に示す状態において、コンテンツ表示欄450に表示されている画像上を、ランダムにクリックしてゆけば、偶然に「おばあちゃんの顔の部分」をクリックしたときに、図24に示すようなパスワード入力用窓451が表示されてしまうことになる。このため、正しい設定位置を知らないユーザに、正しい設定位置を知られてしまう可能性がある。
このような弊害を避けるためには、復元段階パスワード入力部260に、ユーザによる位置指定操作が行われ、その結果、位置判定部250による合致判定が行われなかった場合には、ユーザに対して偽のパスワード入力用窓を表示する機能をもたせておけばよい。すなわち、図8に示す状態において、ユーザがコンテンツ表示欄450に表示されている画像上のどこをクリックしても、復元段階パスワード入力部260によって、入力用窓が表示されるようにする。但し、クリックされた位置が、合致を示す判定結果が得られる正しい位置であった場合には、本来のパスワード入力用窓が表示されるようにし、合致を示す判定結果が得られない誤った位置であった場合には、偽のパスワード入力用窓が表示されるようにするのである。
図25は、指定点P′のクリックにより、偽のパスワード入力用窓452が表示された例を示す平面図である。この偽のパスワード入力用窓452は、クリックされた猫から吹き出すような「吹き出し型のパスワード入力用窓」であり、ユーザから見る限りにおいて、図24に示すパスワード入力用窓451と同じ窓のように見える。すなわち、ユーザから見た場合、入力用窓451と入力用窓452との相違は、吹き出しの先端部の位置(指定点PとP′)のみであり、いずれが真のパスワード入力用窓であるか区別することはできない。
しかしながら、復元段階パスワード入力部260は、位置判定部250による合致判定の結果に基づいて両者を区別することが可能である。そこで、復元段階パスワード入力部260は、偽のパスワード入力用窓452へのユーザの入力操作によって入力された情報については、パスワードとしては取り扱わない運用を行う。したがって、復元段階パスワード入力部260は、ユーザが図24に示すパスワード入力用窓451に対して「金婚式」なる文字列を入力した場合には、当該文字列をユーザが入力したパスワードPw(B)としてパスワード判定部270へ与える処理を行うが、ユーザが図25に示す偽のパスワード入力用窓452に対して「金婚式」なる文字列を入力した場合には、当該文字列をパスワード判定部270へ与える処理を行わない。具体的には、パスワード入力が行われなかった場合と同等の処理を行ってもよいし、任意のでたらめなパスワードを与えるようにしてもよい。
このように、偽のパスワード入力用窓を表示する方法を採れば、あるコンテンツに関する合致判定に失敗した場合でも、位置合致判定に失敗したのか、パスワード合致判定に失敗したのか、を特定することができないため、不正者による攻撃リスクを低減させることができる。
以上、画像のコンテンツ上で指定点Pを指定する入力が行われた場合に、当該指定点Pに端を発する「吹き出し型のパスワード入力用窓」もしくは「吹き出し型の偽のパスワード入力用窓」を、当該コンテンツ画像上に表示させる例を述べたが、動画のコンテンツの場合は、当該動画を表示するフレーム上にパスワード入力用窓を表示させればよい。もちろん、入力用窓は必ずしも吹き出し型にする必要はなく、指定点の近傍位置に配置された任意形状の窓でかまわない。
要するに、コンテンツデータファイルが画像データファイルもしくは動画データファイルであった場合には、位置指定部240が、ユーザによる位置指定操作に基づき、画像上もしくは動画を表示するフレーム上の所定位置を指定したときに、復元段階パスワード入力部260によって、当該画像上もしくは当該動画を表示するフレーム上の指定位置の近傍に、パスワード入力用窓もしくは偽のパスワード入力用窓を表示するようにすればよい。コンテンツデータファイルが音声データファイルであり、コンテンツ表示欄450に音声波形等の画像表示を行う場合も同様である。
一方、コンテンツデータファイルが音声データファイルであり、コンテンツ表示欄450への画像の表示を行わない場合は、どこの位置に、どのような形状のパスワード入力用窓を表示してもかまわない。図26は、音声データファイルによる音楽コンテンツの再生中に、ユーザが再生位置表示欄455上の指定点Pをマウスクリックする操作を行い、再生を中止させたときに、復元段階パスワード入力部260の機能によってパスワード入力用窓480を表示させた例を示す平面図である。パスワード入力用窓480は、操作ウインドウ400とは別個の分離型の窓になっている。指定点Pが正しい位置であれば、パスワード入力用窓480に入力した文字列がパスワードとして取り扱われるが、指定点Pが正しい位置でなければ、パスワード入力用窓480は偽の窓であり、入力した文字列はパスワードとしては取り扱われない。
<§9−2:パスワード入力方法のバリエーション>
これまで述べたパスワードを用いる実施形態では、キーボードから打鍵された文字列をパスワードとして用いる例を述べた。しかしながら、偽装段階パスワード入力部160もしくは復元段階パスワード入力部260によるパスワードの入力方法は、必ずしも、ユーザによって行われたパスワードを構成する文字列のキーボードを介した入力操作に限定されるものではない。
たとえば、図27に示す例のように、ユーザによる「パスワードを構成するデータを含むファイル」もしくは「パスワードを構成するデータを派生するファイル」のドラッグアンドドロップ操作によって、パスワードの入力を行うことも可能である。図27には、ファイルリスト表示欄440内の「FILE01.txt」なるテキストファイルを、吹き出し型のパスワード入力用窓451へドラッグアンドドロップ操作する例が示されている。この場合、「FILE01.txt」なるテキストデータファイルに保存されているテキスト文字列が、パスワードとして入力されることになる
パスワード入力用窓451へのドラッグアンドドロップ操作の対象となるファイルは、必ずしもテキストデータファイルである必要はなく、「パスワードを構成するデータを含むファイル」であれば、任意のデータファイルでかまわない。たとえば、図27のファイルリスト表示欄440内の「FILE02.mp3」なる音楽データファイルや「FILE06.bmp」なる画像データファイルを、入力用窓451へドラッグアンドドロップ操作して、パスワード入力を行ってもかまわない。この場合、各ファイルを構成するデジタルデータ列が、パスワードとして利用されることになる。
もっとも、あまり長いデジタルデータ列は、パスワードとして扱いにくいので、実用上は、各ファイルを構成するデータ列の所定部分(たとえば、先頭から100バイト分など)をパスワードとして用いるようにすればよい。あるいは、各ファイルを構成するデータ列に対して、ハッシュ関数などを作用させて得られるハッシュ値を、パスワードとして用いるようにしてもよい。この場合は、「パスワードを構成するデータを派生するファイル」のドラッグアンドドロップ操作によって、パスワードの入力が行われたことになる。
また、上述したようなファイル名のドラッグアンドドロップ操作を行う代わりに、外部記憶装置からの「パスワードを構成するデータ」もしくは「パスワードを構成するデータを派生するデータ」の読込指示操作によって、パスワード入力を行うことも可能である。たとえば、ICカードやUSBメモリチップなどの外部記憶装置に、「パスワードを構成するデータ」もしくは「パスワードを構成するデータを派生するデータ」を記憶させておき、本発明に係るデータファイルの偽装処理装置を構成するコンピュータに、これら外部記憶装置を接続し、ユーザに、必要なデータを読み込む指示操作を行わせることにより、パスワード入力を行うことができる。
なお、このような外部記憶装置にパスワードを格納する方法を採る場合は、偽装処理段階において、必要に応じて、オリジナルデータファイルFoの一部を部分データとして切り出し、この切り出した部分データをパスワードとともに外部記憶装置に格納するようにし、偽装データファイルFd内には、部分データを切り出した後の不完全なオリジナルデータファイルFoもしくはその暗号化ファイルを組み込むようなことも可能である。復元時には、外部記憶装置に格納されている部分データを利用することにより、はじめて完全なオリジナルデータファイルFoの復元が可能になる。
あるいは、別法として、ユーザ身体の生物学的特徴を示すバイオデータによって構成されるパスワードを、当該ユーザ身体から採取するための採取指示操作によって、パスワードの入力を行うことも可能である。たとえば、指紋や掌の静脈パターンなどのバイオデータを、パスワードとして利用するようにすれば、これらのバイオデータを所定のツールを介して採取する操作を行い、採取したバイオデータをパスワードとして利用することができる。
<§9−3:インターネットを利用した実施形態>
既に述べたとおり、本発明に係る偽装処理装置を構成する偽装処理ユニット100もしくは復元処理ユニット200は、いずれもパソコンなどの汎用コンピュータに、専用アプリケーションプログラムを組み込むことによって構成することができ、各ユニット100,200を構成する個々の要素は、コンピュータのハードウエアとソフトウエアとの組み合わせによって実現される。
ここで、偽装処理のみの用途に用いるコンピュータについては、偽装処理ユニット100として機能するプログラムのみを組み込めば足り、復元処理のみの用途に用いるコンピュータについては、復元処理ユニット200として機能するプログラムのみを組み込めば足りる。
偽装処理ユニット100の目的は、偽装対象となるオリジナルデータファイルに対して偽装処理を施して偽装データファイルを作成することにある。したがって、コンピュータにそのような目的を達成させるには、偽装対象となるオリジナルデータファイルを入力する段階と、偽装に用いるコンテンツデータファイルを入力する段階と、コンテンツデータファイルを構成するデータ列の末尾に、予めフォーマットが定められ、復元処理に必要な情報を含んだ管理データを付加する段階と、この管理データの末尾にオリジナルデータファイルを構成するデータ列を付加することにより、偽装データファイルを作成する段階と、この偽装データファイルを出力する段階と、を行うようにすればよい。
現在、多くのパソコンは、インターネットに接続可能な環境におかれている。したがって、本発明に係る偽装処理装置を、そのようなパソコンを利用して構成した場合、当該偽装処理装置は、インターネットに接続可能な環境におかれる。図28は、インターネット500に接続された4台のパソコン510,520,530,540によって、本発明に係る偽装処理装置を構築した例を示すブロック図である。各パソコン510,520,530,540には、それぞれ偽装処理ユニット100および復元処理ユニット200として機能するために必要なプログラムが組み込まれており、それぞれが独立した偽装処理装置として機能する。
図示の例では、インターネット500に、コンテンツサーバユニット550と、汎用ファイルサーバユニット560とが接続された状態が示されている。ここで、汎用ファイルサーバユニット560は、任意のデータファイルを保管する機能を有している。したがって、各偽装処理装置内の偽装処理ユニット100は、偽装処理によって作成した偽装データファイルFdを、汎用ファイルサーバユニット560に預け入れることができ、復元処理ユニット200は、必要に応じて、汎用ファイルサーバユニット560から所望の偽装データファイルFdを取り出し、これに対して復元処理を行うことができる。偽装データファイルFdは、あたかも何らかのコンテンツデータファイルであるかのように偽装されているため、汎用ファイルサーバユニット560が、広く公開されたファイル保管用サイト内のユニットであったとしても、保管されている偽装データファイルFdは目立ちにくく、不正者の攻撃の的にされるリスクは少ない。このように、本発明で作成された偽装データファイルは、ファイル保管時のセキュリティが向上するため、インターネット上で公開されたファイル保管用サイトを仲介させた場合でも、比較的安全なファイルの受け渡しが可能になる。近年、企業や学校内において、電子メールに添付するファイルの容量に制限を課したり、ウイルス対策ソフトウエアによって許可されていないファイルを自動削除したりする運用がとられることも少なくない。このような場合、本発明を利用すれば、電子メールの代わりにファイル保管用サイトを介したファイルの受け渡しが可能になるため、利便性の向上を図ることができるようになる。
一方、コンテンツサーバユニット550は、個々のパソコンに対して、ネットワークを介して様々なコンテンツデータファイルを提供する機能を有している。したがって、各偽装処理装置内の偽装処理ユニット100および復元処理ユニット200は、必要に応じて、このコンテンツサーバユニット550からコンテンツデータファイルの提供を受けることができる。ここでは、このコンテンツサーバユニット550によるコンテンツデータファイルの提供機能を利用することにより、§8で述べた複数のコンテンツデータファイルを用いる実施形態の有用な変形例を述べることにする。
この変形例に係る偽装処理装置では、コンテンツデータファイル入力部120に、コンテンツサーバユニット550からファイルをダウンロードすることにより所望のコンテンツデータファイルを入力する機能を設けておく。そして、ファイル偽装部130には、第2〜m番目のコンテンツデータファイルのうちの一部もしくは全部を外部導入ファイルに選定し、この外部導入ファイルとして選定されたコンテンツデータファイルについては、当該ファイル自身を偽装データファイルFdに組み込む代わりに、当該ファイルをコンテンツサーバユニット550からダウンロードするために必要な外部導入情報を偽装データファイルFdに組み込む機能を設けておく。
たとえば、第2〜m番目のコンテンツデータファイルの全部を外部導入ファイルに選定した場合、図19の下段に示す偽装データファイルFdにおいて、付加ファイル部には、第2〜m番目のコンテンツデータファイル自身が組み込まれる代わりに、これらのファイルをコンテンツサーバユニット550からダウンロードするために必要な外部導入情報(たとえば、URL情報)が組み込まれることになる。こうすることにより、付加ファイル部のデータ容量を大幅に削減することができ、偽装データファイルFdの全データ容量を低減させるメリットが得られる。また、コンテンツサーバユニット550に用意されているコンテンツデータファイルを共通のファイルとして、複数の偽装データファイルFdからダウンロードする形態をとれば、位置設定やパスワード設定を、この共通ファイルについて行っておけば足りるので、個々の偽装データファイルFdについて個別設定を行う必要がなくなるというメリットも得られる。
一方、復元段階コンテンツ再生部230には、外部導入ファイルの再生を行う際に、外部導入情報に基づいて、コンテンツサーバユニット550から当該外部導入ファイルのダウンロードを行った上で、これを再生する機能をもたせておく。具体的には、付加ファイル部に、URL情報が組み込まれていた場合には、当該URL情報に基づいて、対応する外部導入ファイルをダウンロードし、これを再生することになる。そうすれば、実際のコンテンツデータファイルが偽装データファイルFdに組み込まれていなくても、復元段階コンテンツ再生部230は、外部導入ファイルに選定されているコンテンツの再生を支障なく行うことができる。
このように、一部のコンテンツデータファイルを外部導入ファイルに選定しておき、復元段階コンテンツ再生部230が、コンテンツサーバユニット550からのダウンロードによって当該外部導入ファイルを入手して再生を行うような運用を採ると、偽装処理を行うユーザの思惑に応じて、さまざまな付加的セキュリティ対策を講じることが可能になる。
たとえば、コンテンツサーバユニット550に、特定のコンテンツデータファイルについては、予め定められた特定のネットワークアドレス宛へのダウンロードのみを許可もしくは禁止する処理を行う機能をもたせておけば、特定のコンテンツデータが、特定のパソコンにダウンロードされることを防止することができ、当該特定のパソコンにおいて、特定の偽装データファイルの復元が行われることを防止することができる。
具体的には、図28に示すように、各パソコン510,520,530,540に対して、それぞれIPアドレスとして、IP(510),IP(520),IP(530),IP(540)が付されていたとしよう。そして、パソコン510を操作するユーザが、図19の下段に示すような偽装データファイルFdを作成し、これを汎用ファイルサーバユニット560に保管した場合を考える。このとき、第2〜m番目のコンテンツデータファイルが、すべて外部導入ファイルに選定されていたものとしよう。
ここで、このユーザが、自己が操作するパソコン510と、友人が操作するパソコン520では、偽装データファイルFdの復元が行われるようにし、他のパソコン530,540では、偽装データファイルFdの復元が行われないように欲したとする。その場合、当該ユーザは、コンテンツサーバユニット550に対して、第2〜m番目のコンテンツデータファイルについては、IP(510),IP(520)なるネットワークアドレス宛へのダウンロードのみを許可するような設定を行っておけばよい(あるいは、IP(530),IP(540)なるネットワークアドレス宛へのダウンロードを禁止するような設定を行ってもよい)。
そうすれば、パソコン510もしくは520によって、汎用ファイルサーバユニット560から当該偽装データファイルFdがダウンロードされ、復元処理が開始された場合、復元段階コンテンツ再生部230からのダウンロード要求に応じて、コンテンツサーバユニット550は、第2〜m番目のコンテンツデータファイルの提供を行うので、復元処理は支障なく実行されることになる。ところが、パソコン530もしくは540によって復元処理が開始された場合、復元段階コンテンツ再生部230からのダウンロード要求に応じて、コンテンツサーバユニット550は、第2〜m番目のコンテンツデータファイルの提供を拒否するので、復元処理はそこで中断することになる。結局、当初のユーザの思惑どおり、偽装データファイルFdの復元は、パソコン510,520によってのみ可能になる。
また、コンテンツサーバユニット550に、特定のコンテンツデータファイルについては、予め定められた特定の時間帯のみ、ダウンロードを許可もしくは禁止する処理を行う機能をもたせておくこともできる。このような機能を利用すれば、ユーザは、特定の偽装データファイルFdの復元が可能になる時間帯を設定することが可能になる。
具体的には、復元処理時にダウンロードすることが必要となる特定のコンテンツデータファイルについて、たとえば、午前10:00〜正午の時間帯にのみダウンロードを許可する設定をコンテンツサーバユニット550に対して行っておけば、復元処理が可能になる時間帯を午前10:00〜正午に制限することが可能になる。
また、コンテンツサーバユニット550に、同一の外部導入情報に基づくダウンロード要求があった場合に、要求元のネットワークアドレスもしくは要求があった時間帯に応じて、ダウンロード対象となるコンテンツデータファイルを変えるような機能をもたせておくことも可能である。
このような機能を利用すれば、友人Aと友人Bに対して、全く同一の偽装データファイルFdを渡した場合でも、復元処理時に提示されるコンテンツの内容を変えることができる。たとえば、あるコンテンツデータファイルを外部導入ファイルに選定し、外部導入情報として所定のURL情報を組み込んだ偽装データファイルFdを友人A,Bに渡したとしよう。この場合、友人A,Bがそれぞれ復元処理を開始すると、それぞれのパソコンからコンテンツサーバユニット550に、当該URL情報を指定したダウンロード要求が出されることになる。このとき、同じURL情報を指定したダウンロード要求であっても、要求元のネットワークアドレスに基づいて、ダウンロード対象となるコンテンツデータファイルを変えるような設定がコンテンツサーバユニット550に対して行われていれば、友人A,Bのパソコンには、異なるコンテンツデータファイルがダウンロードされることになる。
あるいは、友人Aは朝型人間、友人Bは夜型人間であることがわかっていれば、ダウンロード要求があった時間帯に応じて、ダウンロード対象となるコンテンツデータファイルを変える設定を行っておくことにより、友人A,Bのパソコンに、異なるコンテンツデータファイルをダウンロードさせることができる。
このように、同一の偽装データファイルFdであっても、復元処理時にユーザごとに異なるコンテンツが提示されるようにしておけば、他のユーザに復元処理を実行させる際に、より柔軟な運用が可能になる。たとえば、友人Aは「おばあちゃん」と面識があるが、友人Bは面識がない場合、友人Aが復元処理を行う際には、「おばあちゃん」が写っている写真をコンテンツとして提示し、「おばあちゃんの顔の部分」をクリックしてもらうようにし、友人Bが復元処理を行う際には、同じ位置をクリックしてもらえるような別な写真をコンテンツとして提示する、というようなコンテンツの使い分けが可能になる。
<§9−4:位置設定に関するその他の変形例>
これまで述べた実施形態では、位置設定部150が、1つのコンテンツについて、1つの位置設定を行っているが、1つのコンテンツについて、複数の異なる位置を設定することも可能である。1つのコンテンツについて、複数の異なる位置を設定した場合、位置判定部250は、位置指定部240によって指定された位置が、複数の設定位置のいずれかに合致していた場合に合致判定を行うようにすればよい。あるいは、複数の設定位置のそれぞれを指定させ、すべてが合致していた場合に合致判定を行うようにしてもよい。
たとえば、図29は、図4に示す操作ウインドウにおける、ユーザによる複数箇所についての位置設定操作を示す平面図である。この例では、2点Q1,Q2を指定することにより第1の設定領域A(おばあちゃんの顔の部分)を設定し、2点Q3,Q4を指定することにより第2の設定領域B(猫の部分)を設定している。偽装処理段階において、このように2箇所の位置設定がなされている場合、復元処理段階では、第1の設定領域A内の1点か、第2の設定領域B内の1点か、のいずれかが、もしくはそのすべてが、指定点として指定されれば、位置に関する合致の判定がなされることになる。
また、これまで述べた実施形態で例示した偽装処理段階における操作ウインドウ300や、復元処理段階における操作ウインドウ400は、操作ウインドウの一例を示すものであり、本発明を実施する上では、どのような操作ウインドウを用いてもかまわない。図30は、復元処理段階において操作ウインドウ400の表示を省略し、復元段階コンテンツ再生部230によって、コンテンツ画像が独立したウインドウ610に表示された状態を示す平面図である。
たとえば、復元処理ユニット200を構成する復元用アプリケーションソフトウエアを起動し、当該復元用アプリケーションソフトウエアのメニューから、「ファイルを開く」コマンドを実行して、復元対象となる偽装データファイルFdを開く操作を行うことにより、図30に示すようなコンテンツ再生ウインドウ610が表示されるようにしておけば、このウインドウ610上での操作で復元処理が可能である。具体的には、ユーザが、このウインドウ610上で、「おばあちゃんの顔の部分」にある指定点Pをクリックする操作を行うと、位置に関する合致判定が行われ、図31に示すように、吹き出し型のパスワード入力用窓611が出現するようにしておき、この入力用窓611内に、たとえば「金婚式」のようなパスワードを入力し、改行キーを打鍵すると、パスワードに関する合致判定が行われるようにしておけばよい。
複数の画像コンテンツを用いる場合には、第1番目のコンテンツ画像について、位置およびパスワードに関する合致判定がなされた後、第2番目のコンテンツ画像が、たとえば、図32に示すように、別なコンテンツ再生ウインドウ620上に表示されるようにすればよい。もちろん、別なウインドウ620を表示する代わりに、第2番目のコンテンツ画像を、第1番目のコンテンツ画像が表示されていたウインドウ610上に表示させてもかまわない。また、コンテンツ画像が切り替わったことをユーザに明確に示すために、第1のウインドウ610が、裏返しになるような三次元映像を表示し、「図31に示すウインドウを裏返しにすると、そこには図32に示すような第2番目のコンテンツ画像が表示されていた」というような視覚的演出を行うことも可能である。
既に述べたとおり、コンテンツによっては、位置設定のみを行ったり、パスワード設定のみを行ったりすることができる。したがって、たとえば、図30に示す第1番目のコンテンツ画像について、位置設定のみが行われていた場合には、パスワード入力を行う必要はないので、図30に示す状態において、「おばあちゃんの顔の部分」がクリックされると、図32に示すように、直ちに第2番目のコンテンツ画像が表示されるようになる。また、この図32に示す第2番目のコンテンツ画像について、パスワード設定のみが行われていた場合には、位置指定操作を行う必要はないので、図32に示す表示の代わりに、図33に示すように、パスワード入力用窓621が重ねられた表示を行うようにすればよい。あるいは、数秒間だけ図32に示す画像表示を行った後に、図33に示すように、パスワード入力用窓621を重ねて表示するようにしてもよい。この第2番目のコンテンツ画像には、位置設定がなされていないので、パスワード入力用窓621は、吹き出し型ではなく、単なる矩形型の窓になっている。
なお、実用上は、ここに示す例のように、少なくとも2つのコンテンツを用い(すなわち、図19に示す例において、m≧2に設定し)、これらを順次提示するようにするのが好ましい。これは、第1番目のコンテンツは、偽装データファイルFdを入手したユーザであれば、誰でも容易に内容を知ることができる(たとえば、第1番目のコンテンツが「JPEG形式」の画像データであった場合、一般的な画像の閲覧ソフトウエアで開けば、第1番目のコンテンツ画像が表示される)のに対して、第2番目以降のコンテンツは、これに先行して提示されたコンテンツに対して、位置もしくはパスワードに関する合致判定がなされる正しい入力操作を行った後でなければ、内容を知ることができないためである。
したがって、実用上は、パスワードを連想するためのコンテンツは、第2番目以降のコンテンツとし、第1番目のコンテンツは、パスワードの連想には用いないようにするのが好ましい。
また、2つ以上のコンテンツを用いれば、偽装データファイルFdの階層的な分類に役立てることもできる。たとえば、第1番目のコンテンツとして、家族の写真、食べ物の写真、職場の写真のいずれかを用いるようにしておけば、第1番目のコンテンツとして家族の写真が用いられている偽装データファイルFdは、家庭で用いる個人的データファイルであり、第1番目のコンテンツとして食べ物の写真が用いられている偽装データファイルFdは、グルメ情報に関するデータファイルであり、第1番目のコンテンツとして職場の写真が用いられている偽装データファイルFdは、仕事に関するデータファイルであり、というような分類が可能である。
一般的な画像データファイルは、多くのアプリケーションソフトウエアにおいて、サムネイル形式の表示が可能である。したがって、上述のような方針で分類した多数の偽装データファイルFdを作成しておけば、これらをサムネイル形式で一覧表示させることが可能であり、どの分類に属するファイルであるかを一目で確認することができる。
また、位置設定部150に、ユーザの操作に基づき、画像上の所定位置にヒント表示を行うためのヒント情報を作成する機能をもたせておき、ファイル偽装部130に、このヒント情報を含む管理データMを組み込むことにより偽装データファイルFdを作成する機能をもたせておき、復元段階コンテンツ再生部230に、管理データMに組み込まれたヒント情報に基づいて、画像上にヒント表示を行う機能をもたせておけば、ユーザにパスワードを思い出すためのヒントを与えることができる。
たとえば、ユーザが偽装処理段階において、図32に示すような画像コンテンツについて、右手に保持している鞄のブランド名をパスワードに設定したとしよう。この場合、復元処理段階では、図示のとおり、ウインドウ620内に当該画像コンテンツの表示が行われることになり、当該コンテンツについてパスワードを入力する操作を行う必要がある(たとえば、図33に示すパスワード入力用窓621にパスワードを入力することになる)。
この場合、パスワードとして、どの品物のブランド名を設定したか、思い出せない状況に陥ることもあろう。特に、この同じ画像コンテンツを、多数の偽装データファイルに利用しており、個々の偽装データファイルごとに、鞄のブランド名、洋服のブランド名、靴のブランド名、というようにパスワードを使い分けているような場合、図32に示すような画像コンテンツが提示されただけでは、パスワードを混同してしまう可能性がある。
このような事態が生じることを避けるために、ユーザは、偽装処理段階でパスワードを設定する際に、画像上の所定位置にヒント表示を行うための操作を行うようにする。たとえば、図32に示されている画像上において、鞄の位置を指定して、ヒント表示を行うための操作を行えば、位置設定部150によって、当該位置にヒント表示を行うためのヒント情報が作成される。ここで設定されたヒント情報は、これまで述べてきた実施形態における位置設定データPsとは全く別のものであり、復元処理時における位置判定の対象になるものではない。ヒント情報は、単に、画像コンテンツを再生する際に「所定位置にヒント表示を行う」ための情報である。
ユーザが、偽装処理段階で、このようなヒント表示を行うための操作を行っておけば、ヒント情報が管理データMを組み込まれ、復元処理ユニット200へと伝達されることになる。したがって、復元段階コンテンツ再生部230は、この画像コンテンツを再生する際に、管理データMに組み込まれたヒント情報に基づいて、画像上にヒント表示を行うことができる。図34は、ヒント表示として「!」マーク622を表示させた例である。この例は、ユーザが鞄の位置にヒント表示を行うための操作を行ったため、「!」マーク622が鞄の位置に表示されている。ユーザは、このヒント表示を見て、パスワードが鞄のブランド名であったことを思い出すことができる。
もちろん、ヒント表示は、どのようなものであってもかまわない。たとえば、「このブランドは?」というような文字列をヒント表示として用いるようにすれば、図34に示す「!」マーク622の代わりに、「このブランドは?」という文字列が表示されることになる。
また、図34に示す例では、常にヒント表示が提示されている状態を示すが、復元段階コンテンツ再生部230が、ユーザの位置指定操作があったときに、指定された位置に関連したヒント表示を行うようにしてもよい。たとえば、通常は、図32に示すように、ヒント表示が全くない状態で画像コンテンツの提示が行われ、ユーザがマウスカーソルを鞄の位置へ移動させたときに限って、「このブランドは?」という文字列が表示されるようにしてもよい。あるいは、ヒント情報が設定されている正しい位置にマウスカーソルを移動させた場合には、正しいヒント表示が提示されるが、ヒント情報が設定されていない位置にマウスカーソルを移動させた場合には、でたらめなダミーヒント表示が提示されるようにしてもよい。
<§9−5: 管理データに所在情報を組み込む変形例>
これまで述べた実施形態では、管理データM内に、位置設定データPsを組み込み、偽装データファイルFdを受け渡すことにより、位置設定データPsも併せて受け渡される構成をとっていた。たとえば、図6に示す偽装データファイルFdの場合、管理データM内に、「Q1(x1,y1),Q2(x2,y2)」という位置設定データPsが組み込まれており、復元処理ユニット200は、この管理データM内の位置設定データPsを用いて、指定位置が設定位置に合致するか否かの判定を行っている。
しかしながら、本発明を実施する上で、偽装処理ユニット100から復元処理ユニット200へ受け渡すべき位置設定データPsは、必ずしも管理データM内に組み込んでおく必要はない。すなわち、管理データM内には、必ずしも位置設定データPsそれ自身を組み込む必要はなく、その代わりに位置設定データPsの所在を示す情報を組み込むようにしてもかまわない。具体的には、図6に示す例の場合、偽装処理ユニット100が、「Q1(x1,y1),Q2(x2,y2)」という位置設定データPsを、管理データM内に組み込む代わりに、外部のサーバ装置(インターネットを介して接続された遠隔のサーバでもよい)などに格納するようにし、当該格納場所の所在を示す情報(たとえば、URL情報など)を管理データMに組み込むようにすればよい。
このような所在を示す情報が管理データMに組み込まれていれば、位置設定データPsそれ自身は、直接的には復元処理ユニット200へ受け渡されることはないが、復元処理ユニット200は、当該所在を示す情報(たとえば、URL情報)を用いて、「Q1(x1,y1),Q2(x2,y2)」という位置設定データPsを入手することができるので、これまで述べてきた実施形態と同様に、指定位置が設定位置に合致するか否かの判定を行うことができる。
これは、パスワードPwや暗号化パスワードPPwの場合も同様である。すなわち、これまで述べたパスワードを用いる実施形態では、パスワードPwや暗号化パスワードPPwを管理データM内に組み込むことにより、復元処理ユニット200へ受け渡す方法をとっているが、その代わりに、偽装処理ユニット100が、これらのパスワードをインターネットを介して接続された外部のサーバ装置などに格納するようにし、当該格納場所の所在を示す情報(たとえば、URL情報など)を管理データMに組み込むようにすればよい。
そうすれば、パスワードPw,PPwそれ自身は、直接的には復元処理ユニット200へ受け渡されることはないが、復元処理ユニット200は、当該所在を示す情報(たとえば、URL情報)を用いて、パスワードPw,PPwを入手することができるので、これまで述べてきた実施形態と同様に、パスワードの照合を行うことができる。
要するに、これまでの実施形態において、管理データM内(すなわち、偽装データファイルFd内)に組み込んで、偽装処理ユニット100から復元処理ユニット200へ受け渡すものとされていた位置設定データPs,パスワードPw,暗号化パスワードPPwを、偽装データファイルFdの外の別な格納場所に格納しておき、管理データM内には、当該格納場所との「ひもづけ」を示す情報(URL情報など、所在を示す情報)を格納しておけばよい。そうすれば、復元処理ユニット200は、偽装データファイルFd内に組み込まれた当該「所在を示す情報」に基づいて、位置設定データPs,パスワードPw,暗号化パスワードPPwを得ることができるので、これまでの実施形態と同様に、位置の合致判定やパスワード照合を行うことができる。
<§9−6: 偽装データファイルの構成に関する変形例>
本発明に係る偽装処理ユニット100で作成される偽装データファイルFdは、偽装に用いるコンテンツデータファイルに、管理データとオリジナルデータファイルとを含む付加データを付加することによって構成されるファイルであり、その具体的な構成は、たとえば、図6の下段に例示されている。すなわち、図6の下段に例示した偽装データファイルFdは、コンテンツデータファイルFcを構成するデータ列D1の末尾に、付加データ列D2を付加したものであり、付加データ列D2は、図示のとおり、管理データMとオリジナルデータファイルFoとを含んでいる。
また、図19の下段に例示した偽装データファイルFdは、第1番目のコンテンツデータファイルFc(1)を構成するデータ列D1の末尾に、付加データ列D2を付加したものであり、付加データ列D2は、図示のとおり、管理データMと付加ファイル部とを含んでいる。この付加ファイル部は、第1〜n番目のオリジナルデータファイルFo(1),Fo(2),... ,Fo(n)と、第2〜m番目のコンテンツデータファイルFc(2),... ,Fc(m)とによって構成されている。
もっとも、偽装データファイルの構成は、図6や図19に示す例に限定されるものではない。すなわち、これまで述べてきた実施形態では、偽装データファイルの基本形態として、まず、先頭にコンテンツデータファイルを配置し、続いて、その末尾に付加する付加データ列として、管理データMおよび様々なファイル(1つもしくは複数のオリジナルデータファイルや、第2番目以降のコンテンツデータファイル)を配置する構成を例示したが、付加データ列内の各データや各ファイルの配置は、復元処理ユニット200がそれぞれを個別に認識することができれば、任意の配置にしてかまわない。
たとえば、図19の下段に示す例において、オリジナルデータファイルFo(1),Fo(2),... ,Fo(n)とコンテンツデータファイルFc(2),... ,Fc(m)の配置順序は任意であり、コンテンツデータファイルFc(2),... ,Fc(m)を先に配置し、その後ろにオリジナルデータファイルFo(1),Fo(2),... ,Fo(n)を配置してもかまわない。また、管理データMも、必ずしもひとまとまりのデータ列にする必要はなく、複数の管理データM(1),M(2),... ,M(n)に分け、それぞれを分離配置してもかまわない。具体的には、たとえば、m=nに設定し、偽装データファイルFdを、Fc(1),M(1),Fo(1),Fc(2),M(2),Fo(2),Fc(3),M(3),Fo(3),... ,Fc(n),M(n),Fo(n)のような構成にしてもよい。この場合、先頭のFc(1)の末尾に、M(1)以下の付加データ列が付加されていることになる。
もちろん、前掲の「§9−5」で述べたように、管理データには、位置設定データPs,パスワードPw,暗号化パスワードPPwの代わりに、その所在を示す情報を組み込むことも可能であるから、上例の場合、各管理データM(1),M(2),... ,M(n)には、位置設定データPs,パスワードPw,暗号化パスワードPPwの代わりにその所在を示す情報(たとえば、URL情報など)を組む込むこともできる。