アプリケーション毎に固有の固有情報と、全てのアプリケーションについて共通の鍵情報とを組み合わせてアプリケーション毎の暗号鍵を生成する暗号鍵生成手段と、前記暗号鍵生成手段によって生成されたアプリケーション毎の暗号鍵を用いて、複数のレイヤで構成されるオペレーティングシステムにおいて当該レイヤ間で受け渡される各アプリケーションに関するデータに対して暗号化処理または復号処理を行う暗号処理手段と、を備えることを特徴とする携帯端末用情報漏洩防止システム。前記レイヤ間は、オペレーティングシステムファイルAPIとファイルシステムの間であることを特徴とする請求項1に記載の携帯端末用情報漏洩防止システム。前記レイヤ間は、ファイルシステムとデバイスドライバの間であることを特徴とする請求項1に記載の携帯端末用情報漏洩防止システム。アプリケーション毎に暗号処理を実装し、暗号鍵をアプリケーション側で管理した場合、アプリケーション開発者が誤って他のアプリケーションからも参照可能なパーミッションを設定してしまうと、参照可能なパーミッションの設定されているデータが上述した不正アプリケーションによって取得されてしまう。パーミッションの設定ミスによって情報漏えいした事例が実際に発生しており、対策が急務な状況となっている。また、特許文献1の技術の場合、携帯端末で保持されている暗号化されたデータを復号する前にユーザ認証を行い、正規のユーザでないと判断した場合には携帯端末に保持されている復号用の鍵を消去するが、正規のユーザが携帯端末を利用しており認証されている限りは不正アプリケーションも復号用の鍵を用いて正しく復号できるため、不正アプリケーションよってデータが取得されてしまう。このため、不正アプリケーションによる情報漏洩を防止することはできない。特許文献2の技術の場合、通常は暗号化していない為性能面での優位性はあるものの、不正アプリケーションによってデータが取得されてしまう点は特許文献1の技術と同様である。本発明は、上述した課題を解決するためのものであり、アプリケーションが管理するパーミッションが、誤って他のアプリケーションに対してアクセス許可に設定されているとしても不正アプリケーションによる情報漏洩を防止することができる携帯端末用情報漏洩防止システムを提供することを目的とする。上記目的を達成するため、本発明の携帯端末用情報漏洩防止システムは、アプリケーション毎に固有の固有情報と、全てのアプリケーションについて共通の鍵情報とを組み合わせてアプリケーション毎の暗号鍵を生成する暗号鍵生成手段と、前記暗号鍵生成手段によって生成されたアプリケーション毎の暗号鍵を用いて、複数のレイヤで構成されるオペレーティングシステムにおいて当該レイヤ間で受け渡される各アプリケーションに関するデータに対して暗号化処理または復号処理を行う暗号処理手段と、を備えることを特徴とする。好ましくは、前記レイヤ間は、オペレーティングシステムファイルAPIとファイルシステムの間であることを特徴とする。また、好ましくは、前記レイヤ間は、ファイルシステムとデバイスドライバの間であることを特徴とする。本発明によれば、アプリケーションが管理するパーミッションが、誤って他のアプリケーションに対してアクセス許可に設定されているとしても不正アプリケーションによる情報漏洩を防止することができる。以下、本発明の実施形態に係る携帯端末用情報漏洩防止システムについて図面を参照しながら説明する。なお、明細書と図面全体に渡って同一の構成要素には同一の符号を付す。図1は、携帯端末10のハードウェア構成の一例を示す。携帯端末10は、CPUCentralProcessingUnit11と、メモリ12と、ブロックデバイス13と、無線送受信部14と、入力部15と、表示部16とを有している。携帯端末10は、例えば、携帯電話機、スマートフォン、タブレットコンピュータ等である。ブロックデバイス13は、所定の大きさのブロック単位例えば、512~2048バイトでランダムにデータを読み書きできるデバイスである。ブロックデバイス13は、例えばハードディスク装置やフラッシュメモリで構成される。ブロックデバイス13は、OSオペレーティングシステムと、アプリケーションプログラムと、アプリケーションデータが格納されたファイルと、携帯端末用情報漏洩防止プログラムとを記憶している。メモリ12は、RAMRandomAccessMemory等で構成される。CPU11はブロックデバイス13からOSとアプリケーションプログラムと携帯端末用情報漏洩防止プログラムをメモリ12に読み出し、メモリ12に記憶されているOSとアプリケーションプログラムと携帯端末用情報漏洩防止プログラムを実行する。以下で説明する本発明の第1の実施形態と第2の実施形態に係る携帯端末用情報漏洩防止システムの機能は、CPU11が携帯端末用情報漏洩防止プログラムを実行することによって実現される。無線送受信部14は、携帯端末の基地局や無線LANのアクセスポイント等と無線で通信し、音声やデータを送受信する。入力部15は、キーボードやタッチパネル等で構成される。表示部16は、ディスプレイ等で構成される。図2は、本発明の第1の実施形態に係る携帯端末用情報漏洩防止システム120の構成の一例を示す。CPU11がアプリケーションプログラムを実行することにより、アプリケーション110の機能が実現される。固有情報111は、個々のアプリケーション110に固有の情報である。固有情報111は、個々のアプリケーションを識別できる情報であればよく、例えば、パッケージ名やアプリケーションプログラムの実行コードに含まれるバイナリデータ等である。固有情報111は、アプリケーション110のインストール時に決定されるものであり、アプリケーション110が任意に変更することはできない。OSは、OSファイルAPIApplicationProgramInterface112と、ファイルシステム113と、デバイスドライバ114という3層のレイヤで構成される。CPU11は、必要に応じてブロックデバイス13からメモリ12にOSファイルAPI112とファイルシステム113とデバイスドライバ114とを読み出して実行する。ファイルシステム113は、ディレクトリによる階層構造を有する。携帯端末用情報漏洩防止システム120は、暗号処理部121と、暗号処理対象制御部122と、暗号情報管理部123とから構成される。CPU11が、ブロックデバイス13からメモリ12に携帯端末用情報漏洩防止プログラムを読み出して実行することにより、携帯端末用情報漏洩防止システム120の機能が実現される。すなわち、暗号処理部121と暗号処理対象制御部122と暗号情報管理部123との各機能が実現される。暗号情報管理部123は、暗号処理に必要な情報として暗号情報125を有する。暗号情報125は、鍵情報126と、暗号方式情報127と、暗号処理対象情報128から構成される。暗号情報125は、後述するように固有情報111と組み合わせて暗号化のための暗号鍵を生成するための情報である。暗号方式情報127は、DESDataEncryptionStandardやAESAdvancedEncryptionStandard等の暗号化と復号に用いられる暗号方式を指定する情報である。暗号処理対象情報128は、暗号化の対象をディレクトリ単位で指定する情報である。暗号化の対象として上位階層のディレクトリが指定されている場合には、そのディレクトリの下層のディレクトリも暗号化の対象となる。また、例えば、暗号化の対象としてブロックデバイス13全体を意味するディレクトリパスが指定されている場合には、ブロックデバイス13に記憶される全てのディレクトリが暗号化の対象となる。まず、携帯端末用情報漏洩防止システム120の処理の概略を説明する。暗号情報管理部122は、携帯端末10の起動時に、鍵情報126と暗号方式情報127を暗号処理部121に設定し、暗号処理対象情報128を暗号処理対象制御部122に設定する。アプリケーション110は、OSファイルAPI112をコールし、ブロックデバイス13に記憶されているファイル131の書き込み、読み込みを要求する。暗号処理部121は、OSファイルAPI112とファイルシステム113というレイヤ間で受け渡されるアプリケーション110のデータに対して暗号化処理または復号処理を行う。暗号処理対象制御部122は、暗号情報管理部123によって設定された暗号処理対象情報128によって指定されるディレクトリへのアクセス要求である場合、暗号処理部121に暗号化または復号することを指示する。暗号処理部121は暗号鍵を生成してデータを処理する。一方、暗号処理対象情報128によって指定されるディレクトリ以外へのアクセス要求である場合、暗号処理対象制御部122は、暗号処理部121にデータを処理させず、直接ファイルシステム113とOSファイルAPI112の間でデータが受け渡される。暗号情報管理部123は、携帯端末10の起動時等に、暗号情報125がブロックデバイス13に保存されていない場合には、鍵情報126を生成し、生成された鍵情報126と、入力部15から利用者によって入力された暗号方式情報127と、所定の暗号処理対象情報128とを含む暗号情報125を暗号化してブロックデバイス13に保存する。このとき、暗号情報125を携帯端末10のブロックデバイス13ではなく、外部サーバ等の他の装置に保存しても良い。なお、暗号情報管理部123は、例えば、乱数やユーザによって予め指定されたパスワード情報等に基づいて鍵情報126を生成する。また、暗号処理対象情報128は、アプリケーション110がアクセス可能なディレクトリを全て含むように予め定められる。暗号情報管理部123は、携帯端末10の起動時に、暗号情報125がブロックデバイス13に保存されている場合には、ブロックデバイス13から暗号情報125を取得し復号する。アプリケーション110がファイル書き込みを要求した場合、暗号処理部121はOSファイルAPI112から渡された書き込みデータを暗号化する。このとき、暗号情報管理部123から指定された鍵情報126と固有情報111を元に生成した暗号鍵を利用し、暗号方式情報122で指定される暗号方式で暗号化する。暗号処理部121で暗号化された書き込みデータはファイルシステム113へ渡される。ファイルシステム113はデバイスドライバ114へそのままデータを渡し、デバイスドライバ114によって、ブロックデバイス13へファイル131として保存される。アプリケーション110がファイル読み込みを要求した場合、ブロックデバイス13からファイル131の暗号化されたデータがデバイスドライバ114、ファイルシステム113を通じて、暗号処理部121に渡される。暗号処理部121は、ファイルシステム113から渡されたデータを復号する。この際、暗号情報管理部123から指定された鍵情報121と固有情報111を元に生成した暗号鍵を利用し、暗号方式情報122で指定される暗号方式で復号する。このような構成によりアプリケーション110からは暗号化、復号を意識せずにデータの書き込み、読み込みを行うことができる。次に、より具体的な処理内容について説明する。図3は、端末起動時における処理の一例のフローチャートを示す。まず、暗号情報管理部123は、ブロックデバイス13から暗号情報125を取得することを試みるS101。ブロックデバイス13に暗号情報125が保存されており暗号情報125が取得できた場合S101:Yes、暗号情報管理部123は取得した暗号情報125を復号するS105。ブロックデバイス13に暗号情報125が保存されておらず暗号情報125が取得できなかった場合S101:No、暗号情報管理部123は、鍵情報126を生成する。そして、暗号情報管理部123は、暗号方式情報127を入力するように求めるメッセージを表示部16に表示する。暗号情報管理部123は、入力部15から利用者によって入力された暗号方式情報127を受け付けると、生成した鍵情報126と入力された暗号方式情報127と所定の暗号処理対象情報128とを含む暗号情報125を生成するS102。更に、暗号情報管理部123は暗号情報125を暗号化してS103、ブロックデバイス13に保存するS104。暗号情報管理部123は、暗号処理対象情報128を暗号処理対象制御部122へ設定し、鍵情報126と暗号方式情報127を暗号処理部121へ設定するS106。暗号処理部121はメモリ12内のカーネルメモリ上に鍵情報126と暗号方式情報127を保持する。図4は、ファイル書き込みにおける処理の一例のフローチャートを示す。アプリケーション110がファイル書き込みを要求した時S201、暗号処理対象制御部122は、その書き込み要求が暗号処理対象情報128によって指定される暗号処理対象のディレクトリへのアクセス要求ではなかった場合S202:No、書き込みデータをそのままファイルシステム113へ流すS208。暗号処理対象制御部122は、書き込み要求が暗号処理対象128によって指定される暗号処理対象のディレクトリへのアクセス要求であった場合S202:Yes、書き込みデータを暗号処理部121へ流すS203。暗号処理部121は、ファイル書き込みを要求してきたアプリケーション110の固有情報111を取得しS204、後述するようにカーネルメモリ上に保存していた鍵情報126と結合するS205。暗号処理部121は、ステップS205で生成したデータに対して所定の演算を施して、実際に暗号処理を行う為の暗号鍵を生成するS206。そして、ステップS206で生成した暗号鍵を利用して暗号方式情報127により指定される暗号方式で書き込みデータを暗号化しS207、データをファイルシステム113へ流すS208。図5は、ファイル読み込みにおける処理の一例のフローチャートを示す。アプリケーション110がファイル読み込みを要求した時S301、暗号処理対象制御部122は、その読み込み要求が暗号処理対象情報128によって指定される暗号処理対象のディレクトリへのアクセス要求ではなかった場合S302:No、読み込んだファイルのデータをそのままアプリケーション110へ流すS308。暗号処理対象制御部122は、読み込み要求が暗号処理対象情報128によって指定される暗号処理対象のディレクトリへのアクセス要求であった場合S302:Yes、読み込んだファイルのデータを暗号処理部121へ流すS303。暗号処理部121は、ファイル読み込みを要求してきたアプリケーション110の固有情報111を取得しS304、カーネルメモリ上に保存していた鍵情報126と結合するS305。暗号処理部121は、ステップS305で生成したデータに対して所定の演算を施して、実際に暗号処理を行う為の暗号鍵を生成するS306。そして、S306で生成した暗号鍵を利用して暗号方式情報127により指定される暗号方式で読み込んだファイルのデータを復号しS307、データをアプリケーション110へ流すS308。図6は、アプリケーション110毎に生成される暗号鍵の違いを示す。データを暗号化するための暗号鍵は、鍵情報126とアプリケーション110毎の固有情報111とを結合したデータに対して所定の演算を施して生成される。アクセス要求元のアプリケーション110が異なる場合、固有情報111が変わってくるため、生成される暗号鍵は異なるものとなる。図6Aに示すように、暗号鍵AはアプリケーションAの固有情報111Aと鍵情報126とを元に生成され、図6Bに示すように、暗号鍵BはアプリケーションBの固有情報111Bと鍵情報126とを元に生成される。アプリケーションAの固有情報111AとアプリケーションBの固有情報111Bは必ず異なる値であるため、生成された暗号鍵Aと暗号鍵Bは必ず異なる値となる。図7は、データ書き込み時のデータフローの一例を示す。アプリケーションA110AからOSファイルAPI112へ渡されるデータは、平文データである。同様にOSファイルAPI112から暗号処理部121へ渡されるデータも、平文データである。暗号処理部121は、アプリケーションAの固有情報111Aと鍵情報126を元に作成した暗号鍵Aを利用して暗号化する。そのため、暗号処理部121からファイルシステム113へ渡されるデータは暗号化されたデータである。ファイルシステム113からデバイスドライバ114へ渡されるデータも暗号化されたデータである。同様に、デバイスドライバ114からブロックデバイス13へ渡されるデータも暗号化されたデータである。以上のデータの流れにより、アプリケーション110によって書き込み要求されたデータは、暗号化されてブロックデバイス13へと保存される。図8は、データを書き込んだアプリケーションA110Aがデータを読み込む際のデータフローの一例を示す。ブロックデバイス13からデバイスドライバ114へ渡されるデータは暗号化されたデータである。同様に、デバイスドライバ114からファイルシステム113に渡されるデータも暗号化されたデータである。また、ファイルシステム113から暗号処理部121へ渡されるデータも同様に暗号化されたデータである。暗号処理部121は、アプリケーションA110Aの固有情報111Aと鍵情報126を元に作成した暗号鍵を利用して復号する。暗号処理部の作成した暗号鍵とファイルシステム113から暗号処理部121へ渡されたデータの暗号鍵とは一致するため、正しく復号される。そのため、暗号処理部121からOSファイルAPI112へ渡されるデータは平文データとなる。OSファイルAPI112からアプリケーションA110Aへ渡されるデータは平文データである。以上のデータの流れにより、データを書き込んだアプリケーションA110A自身がデータを読み込む場合は、暗号化してブロックデバイス13に保存していたデータを正しく復号して読み込むことができる。図9は、データを書き込んだアプリケーションA110A以外のアプリケーションB110Bがデータを読み込む際のデータフローの一例を示す。ブロックデバイス13からデバイスドライバ114へ渡されるデータは暗号化されたデータである。同様に、デバイスドライバ114からファイルシステム113に渡されるデータも暗号化されたデータである。また、ファイルシステム113から暗号処理部121へ渡されるデータも同様に暗号化されたデータである。暗号処理部121は、アプリケーションB110Bの固有情報111Bと鍵情報126を元に作成した暗号鍵を利用して復号を試みる。しかし、ファイルシステム113から暗号処理部121へ渡されたデータは、アプリケーションAの固有情報111Aと鍵情報126を元に作成された暗号鍵を利用して暗号化されたものである。このため、正しく復号されず、意味を成さないデータとなる。従って、暗号処理部121からOSファイルAPI112へ渡されるデータは復号に失敗したデータとなる。OSファイルAPI112からアプリケーションB110Bへ渡されるデータも同様に復号に失敗したデータとなる。以上のデータの流れにより、データを書き込んだアプリケーション以外がデータを読み込む場合は、暗号化してブロックデバイスに保存していたデータを復号することができない、すなわちデータを読み込むことができない。図10は、本発明の第2の実施形態に係る携帯端末用情報漏洩防止システム220の構成の一例を示す。携帯端末用情報漏洩防止システム220は、暗号処理部221と、暗号処理対象制御部222と、暗号情報管理部223とから構成される。CPU11が、ブロックデバイス13からメモリ12に携帯端末用情報漏洩防止プログラムを読み出して実行することにより、携帯端末用情報漏洩防止システム220の機能が実現される。すなわち、暗号処理部221と暗号処理対象制御部222と暗号情報管理部223との各機能が実現される。暗号情報管理部223は、暗号処理に必要な情報として暗号情報225を有する。暗号情報225は、鍵情報226と、暗号方式情報227と、暗号処理対象情報228から構成される。暗号情報225は、固有情報111と組み合わせて暗号化のための暗号鍵を生成するための情報である。第2の実施形態に係る携帯端末用情報漏洩防止システム220は、暗号処理部221が、OSファイルAPI112とファイルシステム113というレイヤ間で受け渡されるアプリケーション110のデータに対して暗号化処理または復号処理を行うのではなく、ファイルシステム113とデバイスドライバ114というレイヤ間で受け渡されるアプリケーション110のデータに対して暗号化処理または復号処理を行う点が第1の実施形態に係る携帯端末用情報漏洩防止システム120と異なる。このため、暗号処理対象情報228によって指定される暗号処理対象はディレクトリ単位ではなく、論理デバイス単位となる。この点を除き、携帯端末用情報漏洩防止システム220と携帯端末用情報漏洩防止システム120の機能は同一である。なお、上述した実施形態では、OSは、OSファイルAPIApplicationProgramInterface112と、ファイルシステム113と、デバイスドライバ114という3層のレイヤで構成されるとしたが、3層に限らず、OSは2層または4層以上のレイヤで構成されていてもよい。なお、上述した実施形態では、ブロックデバイス13に暗号情報125が保存されておらず暗号情報125を取得できなかった場合には、暗号情報管理部123は、暗号方式情報127を入力するように求めるメッセージを表示部16に表示し、入力部15から利用者によって入力された暗号方式情報127を受け付けるとしたが、暗号情報管理部123は、メッセージを表示することなく、予め定められた暗号方式情報127を用いて暗号情報125を生成することとしてもよい。また、上述した実施形態では、ブロックデバイス13が、OSと、アプリケーションプログラムと、アプリケーションデータが格納されたファイルと、携帯端末用情報漏洩防止プログラムとを記憶しているとしたが、例えばスタック可能なファイルシステムを通じてアプリケーションプログラムと、アプリケーションデータが格納されたファイルと、携帯端末用情報漏洩防止プログラムとを暗号化し、暗号化されたアプリケーションプログラムと、アプリケーションデータが格納されたファイルと、携帯端末用情報漏洩防止プログラムとをブロックデバイス13に記憶させてもよい。すなわち、2重に暗号化してもよい。以上説明したように、本発明によれば、アプリケーション毎に暗号化を行う暗号鍵が必ず異なったものとなり、また、暗号鍵の生成および暗号化処理をアプリケーションではなくOSを構成するレイヤ間で受け渡されるアプリケーションデータについて行うため、アプリケーションは他のアプリケーションが暗号化して保存したデータを復号することが不可能となる。従って、アプリケーションが管理するパーミッションが、誤って他のアプリケーションに対してアクセス許可に設定されているとしても不正アプリケーションによる情報漏洩を防止することができる。