(57)【要約】【課題】暗号化においては暗号化ファイルの生成後においても境界情報を更新でき、復号化においては使用した暗号アルゴリズムの特定を困難とし、暗号化ファイル解析への耐性を高めて安全性を確保できる暗号化／復号化システムおよび方法を提供する。【解決手段】平文データを暗号化部１の暗号化機能部３において領域分割方針に従い複数に分割する。分割された平文データのそれぞれについて、異なった暗号アルゴリズムでもって暗号化をし、分割位置と使用した暗号アルゴリズムを互いに関連付けして境界情報として保持する。復号プログラムと境界区域および暗号データとは互いに疎結合される。復号化部２の自己復号機能部５では、境界区域３３から境界情報を最初に取り出して、この境界情報を用いて自己復号型暗号ファイル３４の検査を実行し、検査にパスした場合に、暗号データ３１を復号化する。【選択図】図１
2009071362.tif 000002
【特許請求の範囲】
【請求項１】
自己による復号化が可能に平文データを暗号化するための暗号化／復号化システムであって、
所定数に分割した前記平文データのそれぞれに所定の暗号アルゴリズムを適用して暗号化し暗号データを生成するための暗号化機能部と、
前記暗号データと、前記復号化に必要な境界情報を格納した境界区域と、それぞれの前記暗号データを前記復号化するための復号プログラムと、を疎結合させて自己復号型暗号ファイルを生成するための自己復号型暗号ファイル生成機能部と、
を備える暗号化部と、
前記自己復号型暗号ファイルから前記暗号データと前記境界区域を抽出し、前記境界区域に格納された前記境界情報を用いて前記暗号データを前記復号化するための自己復号機能部を備える復号化部と、
を備えることを特徴とする暗号化／復号化システム。
【請求項２】
前記境界情報は、
前記暗号データの生成時のハッシュ値と、
前記暗号データの前記復号プログラムに対するファイル属性と、
前記暗号データの前記復号化が可能な期限を示す復号有効期限情報と、
前記暗号データの前記復号化に失敗した場合の許容回数を示す復号回数情報と、
前記暗号化機能部による前記分割位置と、
を含み、
前記境界情報を用いた前記自己復号型暗号ファイルの評価結果に基づいて復号化の実行／抑止を判断するための復号化抑止手段
を備えることを特徴とする請求項１に記載の暗号化／復号化システム。
【請求項３】
前記自己復号型暗号ファイルの前記境界情報の内容を更新するための境界情報更新機能部を備えることを特徴とする請求項１または２に記載の暗号化／復号化システム。
【請求項４】
前記暗号アルゴリズムは、前記平文データの分割数と所定数のアルゴリズムの中から同数以下の種類を選択されて用いられることを特徴とする請求項１〜３のいずれかに記載の暗号化／復号化システム。
【請求項５】
前記暗号化機能部は、前記暗号化データにさらに暗号アルゴリズムを用いて多段の暗号化を実行することを特徴とする請求項１〜４のいずれかに記載の暗号化／復号化システム。
【請求項６】
自己による復号化が可能に平文データを暗号化するための暗号化／復号化方法であって、
暗号化機能部において、所定数に分割した前記平文データのそれぞれ毎に異なる暗号アルゴリズムでもって暗号化し暗号データを生成するステップと、
自己復号型暗号ファイル生成機能部において、前記暗号データと、前記復号化に必要な境界情報を格納した境界区域と、それぞれの前記暗号データを前記復号化するための復号プログラムと、を疎結合させて自己復号型暗号ファイルを生成するステップと、
を暗号化部において実行し、
自己復号機能部において、前記自己復号型暗号ファイルから前記暗号データと前記境界区域を抽出し、前記境界区域に格納された前記境界情報を用いて前記暗号データを前記復号化するステップを復号化部において実行することを特徴とする暗号化／復号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号化／復号化システムおよび方法に関する。
【背景技術】
【０００２】
従来より平文などの電子データを暗号化して自己復号型の暗号化ファイルを生成し、改ざんの防止や、第三者への情報漏洩を防止することが行われている。こうした暗号化ファイルは、他の用途の実行プログラムと同じ形式で作られている。さらに意図しない復号化や改ざんに対しても不正検出機能を備えており、たとえば復号化の際に必要なパスワード入力の回数制限などを設定することができる。また暗号化時に暗号アルゴリズムを選択することで、復号化時に使用アルゴリズムを特定されにくい（特許文献１参照）。
【特許文献１】特開平１１−２５８９８５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら従来の自己復号型暗号ファイルにおいては、他の用途の実行プログラムと同じ形式であるため、たとえば意図しない改ざん等があった場合に自身の正当性を検出することができなかった。
【０００４】
また、復号化する際に複数の暗号アルゴリズムを試行することで、暗号化に使用した暗号アルゴリズムが特定されてしまう可能性があった。
【０００５】
また、暗号化ファイルを復号化する前では改ざん等の不正を検出できるものの、復号化された後の電子ファイルについては不正を検出することはできなかった。
【０００６】
本発明はこのような課題を解決するためになされたもので、その目的は、暗号化においては暗号化ファイルの生成後においても境界情報を更新でき、復号化においては使用した暗号アルゴリズムの特定を困難とし、暗号化ファイル解析への耐性を高めて安全性を確保できる暗号化／復号化システムおよび方法を提供することにある。
【課題を解決するための手段】
【０００７】
上記課題を解決するために請求項１に記載の本発明においては、自己による復号化が可能に平文データを暗号化するための暗号化／復号化システムであって、所定数に分割した前記平文データのそれぞれに所定の暗号アルゴリズムを適用して暗号化し暗号データを生成するための暗号化機能部と、前記暗号データと、前記復号化に必要な境界情報を格納した境界区域と、それぞれの前記暗号データを前記復号化するための復号プログラムと、を疎結合させて自己復号型暗号ファイルを生成するための自己復号型暗号ファイル生成機能部と、を備える暗号化部と、前記自己復号型暗号ファイルから前記暗号データと前記境界区域を抽出し、前記境界区域に格納された前記境界情報を用いて前記暗号データを前記復号化するための自己復号機能部を備える復号化部と、を備える。
【０００８】
また、請求項２に記載の本発明は、請求項１において、前記境界情報は、前記暗号データの生成時のハッシュ値と、前記暗号データの前記復号プログラムに対するファイル属性と、前記暗号データの前記復号化が可能な期限を示す復号有効期限情報と、前記暗号データの前記復号化に失敗した場合の許容回数を示す復号回数情報と、前記暗号化機能部による前記分割位置と、を含み、前記境界情報を用いた前記自己復号型暗号ファイルの評価結果に基づいて復号化の実行／抑止を判断するための復号化抑止手段を備える。
【０００９】
また、請求項３に記載の本発明は、請求項１または２において、前記自己復号型暗号ファイルの前記境界情報の内容を更新するための境界情報更新機能部を備える。
【００１０】
また、請求項４に記載の本発明は、請求項１〜３のいずれかにおいて、前記暗号アルゴリズムは、前記平文データの分割数と所定数のアルゴリズムの中から同数以下の種類を選択されて用いられる。
【００１１】
また、請求項５に記載の本発明は、請求項１〜４のいずれかにおいて、前記暗号化機能部は、前記暗号化データにさらに暗号アルゴリズムを用いて多段の暗号化を実行する。
【００１２】
また、請求項６に記載の本発明は、自己による復号化が可能に平文データを暗号化するための暗号化／復号化方法であって、暗号化機能部において、所定数に分割した前記平文データのそれぞれ毎に異なる暗号アルゴリズムでもって暗号化し暗号データを生成するステップと、自己復号型暗号ファイル生成機能部において、前記暗号データと、前記復号化に必要な境界情報を格納した境界区域と、それぞれの前記暗号データを前記復号化するための復号プログラムと、を疎結合させて自己復号型暗号ファイルを生成するステップと、を暗号化部において実行し、自己復号機能部において、前記自己復号型暗号ファイルから前記暗号データと前記境界区域を抽出し、前記境界区域に格納された前記境界情報を用いて前記暗号データを前記復号化するステップを復号化部において実行する。
【発明の効果】
【００１３】
本発明によれば、暗号化においては暗号化ファイルの生成後においても境界情報を更新でき、復号化においては使用した暗号アルゴリズムの特定を困難とし、暗号化ファイル解析への耐性を高めて安全性を確保できる暗号化／復号化システムおよび方法を提供することができる。
【発明を実施するための最良の形態】
【００１４】
図１には本発明の暗号化／復号化システムおよび方法の実施の形態に係る構成図を示す。この図１には、暗号化／復号化方法を実現するための暗号化／復号化システムを構成するために、暗号化部１と復号化部２が示されている。暗号化部１には暗号化前平文データ記憶部１０に予め記憶されている平文データが入力される。この平文データは暗号化の対象となる電子データであって、一時保存のために暗号化前平文データ記憶部１０に記憶されているが、この暗号化前平文データ記憶部１０はたとえば不揮発性のメモリ素子や光磁気ディスクなどの記録媒体、コンピュータが一般に備えるメモリやＨＤＤなどにより実現可能であって、記憶手段に何等かの制限が設けられるものではない。
【００１５】
また、暗号化部１で暗号化された平文データは自己復号型暗号ファイル記憶部１１に記憶される。この自己復号型暗号ファイル記憶部１１は暗号化前平文データ記憶部１０と同様に暗号化された平文データを暗号化データとして一時保存するための手段である。この自己復号型暗号ファイル記憶部１１はたとえば不揮発性のメモリ素子や光磁気ディスクなどの記録媒体、コンピュータが一般に備えるメモリやＨＤＤなどにより実現可能であって、記憶手段に何等かの制限が設けられるものではない。
【００１６】
さらに、復号化部２にて復号化された暗号データは平文データとなって復号化平文データ記憶部１２に記憶される。この復号化平文データ記憶部１２も、たとえば不揮発性のメモリ素子や光磁気ディスクなどの記録媒体、コンピュータが一般に備えるメモリやＨＤＤなどにより実現可能であって、記憶手段に何等かの制限が設けられるものではない。
【００１７】
暗号化部１は暗号化機能部３と自己復号型暗号ファイル生成機能部４の２種類の機能部から構成されている。また、自己復号型暗号ファイル生成機能部４は、動作設定ファイル７と、復号プログラム８と、境界区域９と、をそれぞれ取得するための図示しない取得手段を備えている。動作設定ファイル７と復号プログラム８および境界区域９は、それぞれがコンピュータプログラムを含む電子データであり、こうした電子データを記憶／保存するための記憶手段や記憶媒体に書き込み／読み出し可能に記憶されている。
【００１８】
また、復号化部２は自己復号機能部５と境界情報更新機能部６により構成されている。
【００１９】
次の図２には、本発明の暗号化／復号化システムによる暗号化を説明するための説明図を示している。図１に示した暗号化前平文データ記憶部１０に記憶されている平文データ３０は暗号化部１に入力された後に、複数に分割された暗号データ３１とされる。この暗号データ３１は平文データ３０を複数箇所で分割して、分割して生成されたそれぞれの部分データ毎に暗号化処理が実行されて生成されたものである。この暗号データ３１に用いられる暗号化のための暗号アルゴリズムは、分割されたそれぞれの分割データ毎に異なった種類の暗号アルゴリズムを用いることができる。
【００２０】
また、分割データの暗号化に用いる暗号アルゴリズムの種類は分割データの数と必ずしも同数である必要は無く、分割データの数以下であってもよい。また、暗号アルゴリズムが適用された分割データに対して、さらに別の種類の暗号アルゴリズムを適用して暗号化し、暗号の多段化を行ってもよい。
【００２１】
また、それぞれの暗号アルゴリズムで用いるパスワードは、平文データ入力と同時に与えられる。設定するパスワードは、コンピュータによる自動生成、画面からの任意入力、あるいは、パラメータとして与えられてもよい。パスワードの種類は、暗号化に用いたすべての暗号アルゴリズムに共通の一種類のパスワードを設定してもよいが、必要に応じて用いた暗号アルゴリズムの種類毎に異なったパスワードの設定をしてもよく、あるいは数種類の暗号アルゴリズム毎に共通したパスワードを設定してもよい。このように復号化の際に求められるパスワードを一種類のみとすれば、一度のパスワード入力ですべての暗号データを一度に復号化することができ、作業効率がよく操作性もよい。また復号化において複数種類のパスワードを求めることにより、セキュリティの強化が実現でき、さらにパスワードを選択的に使用させることにより、全体の暗号化データのうちから復号化される暗号データを意図的に選択することもできる。
【００２２】
なお、パスワードは鍵情報の一種であり、本実施の形態を説明するために用いたが、鍵情報はこのパスワードに限定されるものではない。鍵情報の他の形態としては、たとえば網膜や掌の血管走向を用いた生体認証、指紋認証、ドングル、ＩＣカード、非接接触式カードなども含まれる。
【００２３】
暗号データ３１のそれぞれには復号プログラム３２が組み合わされている。復号プログラム３２は暗号データ３１を暗号化して生成する際に適用された暗号アルゴリズムに対応しており、復号化をするために用いられる。そして暗号化部１で生成される自己復号型暗号ファイル３４は、暗号データ３１と復号プログラム３２および境界区域３３により構成される。
【００２４】
なお、自己復号型暗号ファイル３４の構成は、それぞれ一つずつの暗号データ３１、復号プログラム３２、境界区域３３としてこれらの組み合わせが集合したものになる。あるいは暗号データ３１を複数種類でまとめ、これに一つの境界区域３３と復号プログラム３２が連結した構成として自己復号型暗号ファイル３４を構成してもよい。
【００２５】
次の図３と図４には、本発明の暗号化／復号化システムによる暗号化のフロー図を示している。図３は暗号化の処理フローを示し、図４は自己復号型暗号ファイルの生成フローを示す。
【００２６】
この図３を参照して、暗号化機能部３において平文で書かれた平文データの暗号化が開始されると、暗号対象の平文データ（電子データ）の領域分割方針の決定がなされる。この方針とは、分割する領域数や分割量、処理順序、暗号アルゴリズムの適応順序などである（Ｓ１）。
【００２７】
次に、決定された分割方針に従って、暗号化の対象となる平文データ（電子データ）を複数領域に分割する（Ｓ２）。
【００２８】
次に、暗号化の対象となる平文データの全ての領域を暗号化したか否かが判断される（Ｓ３）。この処理ステップＳ３において、全ての領域が暗号化されたと判断されると（ＹＥＳ）、分割位置および暗号化に使用した暗号アルゴリズムを境界情報として保持する（Ｓ６）。その後、一連の暗号化処理が終了する。
【００２９】
また処理ステップＳ３において、暗号化処理が終了していない領域がある（ＮＯ）と判断されると、処理順序に従って分割した領域の取出しが行われる（Ｓ４）。次に、アルゴリズム適応順序に従って、暗号アルゴリズムを用いて取り出した領域を暗号化する（Ｓ５）。その後、再び処理ステップＳ３に戻り、全ての領域が暗号化されたか否かの判断を実行する。
【００３０】
次に、自己復号型暗号ファイル生成機能部４において暗号化機能部３により生成された暗号データに基づいて自己復号型暗号ファイルの生成処理が開始される。まず、境界区域に格納する境界情報を取得する（Ｓ７）。この境界情報の内容としては以下の（１）〜（４）の内容の情報である。
【００３１】
（１）暗号化データのハッシュ値を計算して求めた値。
【００３２】
（２）暗号化データから取得した属性情報。
【００３３】
（３）暗号化データの復号期限と復号失敗回数の許容回数についての決定した値（画面操作やパラメータとして指示される）。
【００３４】
（４）暗号化機能部３において保持していた分割位置に関し取得して得た情報。
【００３５】
これらの（１）〜（４）の情報は自己復号型暗号ファイル生成機能部４に取得される。なお、同じく図１に示す復号プログラム８と境界区域９も共に自己復号型暗号ファイル生成機能部４に取得される情報である。なお、ハッシュ計算以外の関数式による演算を適用してもよい。
【００３６】
次に、復号プログラム３２と境界区域３３が疎結合される（Ｓ８）。なお、疎結合とは互いに動作や構造の独立性を保ち、関係が疎となる結合である。
【００３７】
次に、復号プログラム３２と境界区域３３を疎結合したものに暗号データ３１をさらに疎結合させる（Ｓ９）。
【００３８】
次に、境界区域３３にステップＳ７で生成した境界情報（１）〜（４）を格納する（Ｓ１０）。ここまでの処理ステップにより自己復号型暗号ファイル生成機能部４の処理が終了する。
【００３９】
以上のように、暗号化前平文データ記憶部１０に記憶されていた平文データは、暗号化部１において、まず暗号化機能部３により、そのデータ領域が領域分割方針に従って複数に分割される。分割された平文データのそれぞれについて、異なった暗号アルゴリズムでもって暗号化がされ、また、分割位置と使用した暗号アルゴリズムが互いに関連付けされて境界情報として保持される。
【００４０】
自己復号型暗号ファイル生成機能部４では、境界情報を取得して境界区域にこの境界情報を格納する。また、復号プログラムと境界区域および暗号データとは互いに疎結合される。このようにして生成された自己復号型暗号ファイルは自己復号型暗号ファイル記憶部１１へ記憶される。また、記憶する必要が無い場合は復号化部２へ直接送信してもよい。
【００４１】
次の図５には、本発明の暗号化／復号化システムによる復号化を説明するための説明図を示している。この復号化は復号化部２に備わる自己復号機能部５によって実行される。
【００４２】
自己復号型暗号ファイル３４は、境界区域３３と暗号データ３１に分解される。境界区域３３に格納された境界情報に基づき、この境界情報を用いた暗号データの真正性評価（ハッシュ値比較など）を実行する。次に、暗号データの真正性が確認された後に、複数の暗号アルゴリズムを複数箇所に分散使用した復号化が実行され、平文データ３０を得る。
【００４３】
次に、図６を参照して自己復号機能部５の処理をフロー図により説明する。まず、自己復号機能部５において復号化が開始されると、復号対象となる自己復号型暗号ファイルが自身が持つ復号プログラム３２により起動する。この復号プログラム３２の起動と同時に、パスワードの入力操作を求められる（Ｓ２０）。このパスワードは、暗号化を行う際に設定したパスワードである。
【００４４】
次に、Ｓ２０においてパスワード入力が完了した後に自身の境界区域３３を検索する（Ｓ２１）。
【００４５】
次に、検索により発見した自身の境界区域３３に格納されている境界情報を取り出す（Ｓ２２）。ここで取り出した境界情報について、現在の日付と境界情報に含まれる復号期限の日付とを比較する（Ｓ２３、Ｓ２４）。この比較において、現在の日付が境界情報の復号期限よりも大きい場合、すなわち復号期限の日付を現在の日付が超過してしまっている場合は（ＹＥＳ）、自己復号型暗号ファイルの実行を中止し、復号処理が行われないようにして、動作が終了する（Ｓ３６）。なお、復号処理が行われないようにする方法としては、そのまま凍結してもよく、あるいは自己消去などの方法をとってもよい。
【００４６】
また、ステップＳ２４において現在の日付が復号期限の日付よりも以前である場合（ＮＯ）は、ステップＳ２０において入力されたパスワードが正しいパスワードか否かが判断される（Ｓ２５）。この判断において誤ったパスワードであると判断されると（ＮＯ）、次ステップにおいて復号のためのパスワード失敗回数と境界情報に含まれる復号失敗回数とを比較する（Ｓ２６、Ｓ２７）。また、パスワードが正しいと判断されると（ＹＥＳ）後述のステップＳ２８へ処理が進む。なお、復号のためのパスワード失敗回数とは誤ったパスワードが復号において入力され認証失敗した回数である。復号失敗回数とは誤ったパスワードの入力による認証失敗の許容回数である。
【００４７】
次に、復号のためのパスワード失敗回数と境界情報に含まれる復号失敗回数とが比較され、復号のためのパスワード失敗回数が復号失敗回数の許容回数を上回っている（ＹＥＳ）の場合には、自己復号型暗号ファイルの実行を中止し、復号処理が行われないようにして終了する（Ｓ３６）。なお、このステップＳ３６における復号処理が行われないようにする方法としては、そのまま凍結してもよく、あるいは自己消去などの方法をとってもよい。
【００４８】
また、復号失敗回数の許容回数をパスワード失敗回数が下回っている場合（ＮＯ）は、再び処理はステップＳ２０へ戻りパスワード入力が要求される。
【００４９】
次に、ステップＳ２５においてパスワードが正しいと判断された場合は、境界区域３３の中から境界情報を取り出す（Ｓ２８）。このステップで取り出される境界情報は暗号データ３１のハッシュ値、ファイル属性情報である。なお、境界情報自身を暗号化しておいてもよい。
【００５０】
次に、境界区域以降のデータとして暗号データを取り出し、一時領域にこの暗号データを暗号化ファイルとして生成する（Ｓ２９）。ここで生成した一時領域上の暗号化ファイルのファイル属性情報と境界情報に格納されたファイル属性情報とを比較する（Ｓ３０）。この比較において一致／不一致が判断される（Ｓ３１）。
【００５１】
ステップＳ３１の判断において、不一致（ＮＯ）と判断されると、自己復号型暗号ファイルの実行を中止し、復号処理が行われないようにして終了する（Ｓ３６）。
【００５２】
また一致（ＹＥＳ）と判断されると、生成した暗号化ファイルをハッシュ計算して、暗号化ファイルのハッシュ計算値を求める（Ｓ３２）。ここで求めたハッシュ計算値を境界情報に含まれるハッシュ計算値と比較する（Ｓ３３）。この比較において両者のハッシュ値の一致／不一致が判断される（Ｓ３４）。
【００５３】
ステップＳ３４の判断において、不一致（ＮＯ）と判断されると、自己復号型暗号ファイルの実行を中止し、復号処理が行われないようにして終了する（Ｓ３６）。また一致（ＹＥＳ）と判断されると、それぞれの分割領域に適応する暗号アルゴリズムを用いて復号を行い（Ｓ３５）終了する。
【００５４】
次の図７には、境界情報を必要に応じて更新する場合の処理をフロー図に示している。境界情報更新機能部６において、まず自己復号型暗号ファイルの境界区域３３から境界情報を収集する（Ｓ５０）。次に、収集した境界情報について内容を更新する。更新が終了した後に正当なパスワードを用いて更新した境界情報を暗号化する（Ｓ５１）。次に、暗号化した境界情報を境界区域３３へ再格納して（Ｓ５２）更新が終了する。
【００５５】
以上のように、復号化部２に備わる自己復号機能部５では、境界区域３３から境界情報を最初に取り出して、この境界情報を用いて自己復号型暗号ファイル３４の検査を実行し、検査にパスした場合に、暗号データ３１を復号化する。この一連の処理は複数に分割されて生成された自己復号型暗号ファイル３４のそれぞれについて実行されるので、改ざんに対する耐性を高めることができる。また、自己復号型暗号ファイル３４を生成した後に、これに対して境界情報を更新可能である。
【００５６】
なお、以上説明した本発明の暗号化／復号化システムの構成および方法をコンピュータプログラムにより同等の動作をさせてもよい。このコンピュータプログラムの処理ステップは、暗号化／復号化システムの各構成部に該当し、暗号化／復号化方法を実現するための手段となる。
【００５７】
以上説明した本発明の実施の形態によれば、暗号化においては暗号化ファイルの生成後においても境界情報を更新でき、復号化においては使用した暗号アルゴリズムの特定を困難とし、暗号化ファイル解析への耐性を高めて安全性を確保できる暗号化／復号化システムおよび方法を提供することができる。
【図面の簡単な説明】
【００５８】
【図１】本発明の暗号化／復号化システムの構成図を示す。
【図２】本発明の実施の形態による暗号化を説明するための説明図を示す。
【図３】本発明の実施の形態による暗号化のフロー図を示す。
【図４】本発明の実施の形態による暗号化のフロー図を示す。
【図５】本発明の実施の形態による復号化を説明するための説明図を示す。
【図６】本発明の実施の形態による復号化のフロー図を示す。
【図７】本発明の実施の形態による境界情報の更新のフロー図を示す。
【符号の説明】
【００５９】
１…暗号化処理部
２…復号化処理部
３…暗号化機能部
４…自己復号型暗号ファイル生成機能部
５…自己復号機能部
６…境界情報更新機能部
７…動作設定ファイル
８…復号プログラム
９…境界区域
１０…暗号化前平文データ記憶部
１１…自己復号型暗号ファイル記憶部
１２…復号化平文データ記憶部
【図１】
2009071362.tif 000003
【図２】
2009071362.tif 000004
【図３】
2009071362.tif 000005
【図４】
2009071362.tif 000006
【図５】
2009071362.tif 000007
【図６】
2009071362.tif 000008
【図７】
2009071362.tif 000009