説明

暗号化/復号化システムおよび方法

【課題】暗号化においては暗号化ファイルの生成後においても境界情報を更新でき、復号化においては使用した暗号アルゴリズムの特定を困難とし、暗号化ファイル解析への耐性を高めて安全性を確保できる暗号化/復号化システムおよび方法を提供する。
【解決手段】平文データを暗号化部1の暗号化機能部3において領域分割方針に従い複数に分割する。分割された平文データのそれぞれについて、異なった暗号アルゴリズムでもって暗号化をし、分割位置と使用した暗号アルゴリズムを互いに関連付けして境界情報として保持する。復号プログラムと境界区域および暗号データとは互いに疎結合される。復号化部2の自己復号機能部5では、境界区域33から境界情報を最初に取り出して、この境界情報を用いて自己復号型暗号ファイル34の検査を実行し、検査にパスした場合に、暗号データ31を復号化する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、暗号化/復号化システムおよび方法に関する。
【背景技術】
【0002】
従来より平文などの電子データを暗号化して自己復号型の暗号化ファイルを生成し、改ざんの防止や、第三者への情報漏洩を防止することが行われている。こうした暗号化ファイルは、他の用途の実行プログラムと同じ形式で作られている。さらに意図しない復号化や改ざんに対しても不正検出機能を備えており、たとえば復号化の際に必要なパスワード入力の回数制限などを設定することができる。また暗号化時に暗号アルゴリズムを選択することで、復号化時に使用アルゴリズムを特定されにくい(特許文献1参照)。
【特許文献1】特開平11−258985号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかしながら従来の自己復号型暗号ファイルにおいては、他の用途の実行プログラムと同じ形式であるため、たとえば意図しない改ざん等があった場合に自身の正当性を検出することができなかった。
【0004】
また、復号化する際に複数の暗号アルゴリズムを試行することで、暗号化に使用した暗号アルゴリズムが特定されてしまう可能性があった。
【0005】
また、暗号化ファイルを復号化する前では改ざん等の不正を検出できるものの、復号化された後の電子ファイルについては不正を検出することはできなかった。
【0006】
本発明はこのような課題を解決するためになされたもので、その目的は、暗号化においては暗号化ファイルの生成後においても境界情報を更新でき、復号化においては使用した暗号アルゴリズムの特定を困難とし、暗号化ファイル解析への耐性を高めて安全性を確保できる暗号化/復号化システムおよび方法を提供することにある。
【課題を解決するための手段】
【0007】
上記課題を解決するために請求項1に記載の本発明においては、自己による復号化が可能に平文データを暗号化するための暗号化/復号化システムであって、所定数に分割した前記平文データのそれぞれに所定の暗号アルゴリズムを適用して暗号化し暗号データを生成するための暗号化機能部と、前記暗号データと、前記復号化に必要な境界情報を格納した境界区域と、それぞれの前記暗号データを前記復号化するための復号プログラムと、を疎結合させて自己復号型暗号ファイルを生成するための自己復号型暗号ファイル生成機能部と、を備える暗号化部と、前記自己復号型暗号ファイルから前記暗号データと前記境界区域を抽出し、前記境界区域に格納された前記境界情報を用いて前記暗号データを前記復号化するための自己復号機能部を備える復号化部と、を備える。
【0008】
また、請求項2に記載の本発明は、請求項1において、前記境界情報は、前記暗号データの生成時のハッシュ値と、前記暗号データの前記復号プログラムに対するファイル属性と、前記暗号データの前記復号化が可能な期限を示す復号有効期限情報と、前記暗号データの前記復号化に失敗した場合の許容回数を示す復号回数情報と、前記暗号化機能部による前記分割位置と、を含み、前記境界情報を用いた前記自己復号型暗号ファイルの評価結果に基づいて復号化の実行/抑止を判断するための復号化抑止手段を備える。
【0009】
また、請求項3に記載の本発明は、請求項1または2において、前記自己復号型暗号ファイルの前記境界情報の内容を更新するための境界情報更新機能部を備える。
【0010】
また、請求項4に記載の本発明は、請求項1〜3のいずれかにおいて、前記暗号アルゴリズムは、前記平文データの分割数と所定数のアルゴリズムの中から同数以下の種類を選択されて用いられる。
【0011】
また、請求項5に記載の本発明は、請求項1〜4のいずれかにおいて、前記暗号化機能部は、前記暗号化データにさらに暗号アルゴリズムを用いて多段の暗号化を実行する。
【0012】
また、請求項6に記載の本発明は、自己による復号化が可能に平文データを暗号化するための暗号化/復号化方法であって、暗号化機能部において、所定数に分割した前記平文データのそれぞれ毎に異なる暗号アルゴリズムでもって暗号化し暗号データを生成するステップと、自己復号型暗号ファイル生成機能部において、前記暗号データと、前記復号化に必要な境界情報を格納した境界区域と、それぞれの前記暗号データを前記復号化するための復号プログラムと、を疎結合させて自己復号型暗号ファイルを生成するステップと、を暗号化部において実行し、自己復号機能部において、前記自己復号型暗号ファイルから前記暗号データと前記境界区域を抽出し、前記境界区域に格納された前記境界情報を用いて前記暗号データを前記復号化するステップを復号化部において実行する。
【発明の効果】
【0013】
本発明によれば、暗号化においては暗号化ファイルの生成後においても境界情報を更新でき、復号化においては使用した暗号アルゴリズムの特定を困難とし、暗号化ファイル解析への耐性を高めて安全性を確保できる暗号化/復号化システムおよび方法を提供することができる。
【発明を実施するための最良の形態】
【0014】
図1には本発明の暗号化/復号化システムおよび方法の実施の形態に係る構成図を示す。この図1には、暗号化/復号化方法を実現するための暗号化/復号化システムを構成するために、暗号化部1と復号化部2が示されている。暗号化部1には暗号化前平文データ記憶部10に予め記憶されている平文データが入力される。この平文データは暗号化の対象となる電子データであって、一時保存のために暗号化前平文データ記憶部10に記憶されているが、この暗号化前平文データ記憶部10はたとえば不揮発性のメモリ素子や光磁気ディスクなどの記録媒体、コンピュータが一般に備えるメモリやHDDなどにより実現可能であって、記憶手段に何等かの制限が設けられるものではない。
【0015】
また、暗号化部1で暗号化された平文データは自己復号型暗号ファイル記憶部11に記憶される。この自己復号型暗号ファイル記憶部11は暗号化前平文データ記憶部10と同様に暗号化された平文データを暗号化データとして一時保存するための手段である。この自己復号型暗号ファイル記憶部11はたとえば不揮発性のメモリ素子や光磁気ディスクなどの記録媒体、コンピュータが一般に備えるメモリやHDDなどにより実現可能であって、記憶手段に何等かの制限が設けられるものではない。
【0016】
さらに、復号化部2にて復号化された暗号データは平文データとなって復号化平文データ記憶部12に記憶される。この復号化平文データ記憶部12も、たとえば不揮発性のメモリ素子や光磁気ディスクなどの記録媒体、コンピュータが一般に備えるメモリやHDDなどにより実現可能であって、記憶手段に何等かの制限が設けられるものではない。
【0017】
暗号化部1は暗号化機能部3と自己復号型暗号ファイル生成機能部4の2種類の機能部から構成されている。また、自己復号型暗号ファイル生成機能部4は、動作設定ファイル7と、復号プログラム8と、境界区域9と、をそれぞれ取得するための図示しない取得手段を備えている。動作設定ファイル7と復号プログラム8および境界区域9は、それぞれがコンピュータプログラムを含む電子データであり、こうした電子データを記憶/保存するための記憶手段や記憶媒体に書き込み/読み出し可能に記憶されている。
【0018】
また、復号化部2は自己復号機能部5と境界情報更新機能部6により構成されている。
【0019】
次の図2には、本発明の暗号化/復号化システムによる暗号化を説明するための説明図を示している。図1に示した暗号化前平文データ記憶部10に記憶されている平文データ30は暗号化部1に入力された後に、複数に分割された暗号データ31とされる。この暗号データ31は平文データ30を複数箇所で分割して、分割して生成されたそれぞれの部分データ毎に暗号化処理が実行されて生成されたものである。この暗号データ31に用いられる暗号化のための暗号アルゴリズムは、分割されたそれぞれの分割データ毎に異なった種類の暗号アルゴリズムを用いることができる。
【0020】
また、分割データの暗号化に用いる暗号アルゴリズムの種類は分割データの数と必ずしも同数である必要は無く、分割データの数以下であってもよい。また、暗号アルゴリズムが適用された分割データに対して、さらに別の種類の暗号アルゴリズムを適用して暗号化し、暗号の多段化を行ってもよい。
【0021】
また、それぞれの暗号アルゴリズムで用いるパスワードは、平文データ入力と同時に与えられる。設定するパスワードは、コンピュータによる自動生成、画面からの任意入力、あるいは、パラメータとして与えられてもよい。パスワードの種類は、暗号化に用いたすべての暗号アルゴリズムに共通の一種類のパスワードを設定してもよいが、必要に応じて用いた暗号アルゴリズムの種類毎に異なったパスワードの設定をしてもよく、あるいは数種類の暗号アルゴリズム毎に共通したパスワードを設定してもよい。このように復号化の際に求められるパスワードを一種類のみとすれば、一度のパスワード入力ですべての暗号データを一度に復号化することができ、作業効率がよく操作性もよい。また復号化において複数種類のパスワードを求めることにより、セキュリティの強化が実現でき、さらにパスワードを選択的に使用させることにより、全体の暗号化データのうちから復号化される暗号データを意図的に選択することもできる。
【0022】
なお、パスワードは鍵情報の一種であり、本実施の形態を説明するために用いたが、鍵情報はこのパスワードに限定されるものではない。鍵情報の他の形態としては、たとえば網膜や掌の血管走向を用いた生体認証、指紋認証、ドングル、ICカード、非接接触式カードなども含まれる。
【0023】
暗号データ31のそれぞれには復号プログラム32が組み合わされている。復号プログラム32は暗号データ31を暗号化して生成する際に適用された暗号アルゴリズムに対応しており、復号化をするために用いられる。そして暗号化部1で生成される自己復号型暗号ファイル34は、暗号データ31と復号プログラム32および境界区域33により構成される。
【0024】
なお、自己復号型暗号ファイル34の構成は、それぞれ一つずつの暗号データ31、復号プログラム32、境界区域33としてこれらの組み合わせが集合したものになる。あるいは暗号データ31を複数種類でまとめ、これに一つの境界区域33と復号プログラム32が連結した構成として自己復号型暗号ファイル34を構成してもよい。
【0025】
次の図3と図4には、本発明の暗号化/復号化システムによる暗号化のフロー図を示している。図3は暗号化の処理フローを示し、図4は自己復号型暗号ファイルの生成フローを示す。
【0026】
この図3を参照して、暗号化機能部3において平文で書かれた平文データの暗号化が開始されると、暗号対象の平文データ(電子データ)の領域分割方針の決定がなされる。この方針とは、分割する領域数や分割量、処理順序、暗号アルゴリズムの適応順序などである(S1)。
【0027】
次に、決定された分割方針に従って、暗号化の対象となる平文データ(電子データ)を複数領域に分割する(S2)。
【0028】
次に、暗号化の対象となる平文データの全ての領域を暗号化したか否かが判断される(S3)。この処理ステップS3において、全ての領域が暗号化されたと判断されると(YES)、分割位置および暗号化に使用した暗号アルゴリズムを境界情報として保持する(S6)。その後、一連の暗号化処理が終了する。
【0029】
また処理ステップS3において、暗号化処理が終了していない領域がある(NO)と判断されると、処理順序に従って分割した領域の取出しが行われる(S4)。次に、アルゴリズム適応順序に従って、暗号アルゴリズムを用いて取り出した領域を暗号化する(S5)。その後、再び処理ステップS3に戻り、全ての領域が暗号化されたか否かの判断を実行する。
【0030】
次に、自己復号型暗号ファイル生成機能部4において暗号化機能部3により生成された暗号データに基づいて自己復号型暗号ファイルの生成処理が開始される。まず、境界区域に格納する境界情報を取得する(S7)。この境界情報の内容としては以下の(1)〜(4)の内容の情報である。
【0031】
(1)暗号化データのハッシュ値を計算して求めた値。
【0032】
(2)暗号化データから取得した属性情報。
【0033】
(3)暗号化データの復号期限と復号失敗回数の許容回数についての決定した値(画面操作やパラメータとして指示される)。
【0034】
(4)暗号化機能部3において保持していた分割位置に関し取得して得た情報。
【0035】
これらの(1)〜(4)の情報は自己復号型暗号ファイル生成機能部4に取得される。なお、同じく図1に示す復号プログラム8と境界区域9も共に自己復号型暗号ファイル生成機能部4に取得される情報である。なお、ハッシュ計算以外の関数式による演算を適用してもよい。
【0036】
次に、復号プログラム32と境界区域33が疎結合される(S8)。なお、疎結合とは互いに動作や構造の独立性を保ち、関係が疎となる結合である。
【0037】
次に、復号プログラム32と境界区域33を疎結合したものに暗号データ31をさらに疎結合させる(S9)。
【0038】
次に、境界区域33にステップS7で生成した境界情報(1)〜(4)を格納する(S10)。ここまでの処理ステップにより自己復号型暗号ファイル生成機能部4の処理が終了する。
【0039】
以上のように、暗号化前平文データ記憶部10に記憶されていた平文データは、暗号化部1において、まず暗号化機能部3により、そのデータ領域が領域分割方針に従って複数に分割される。分割された平文データのそれぞれについて、異なった暗号アルゴリズムでもって暗号化がされ、また、分割位置と使用した暗号アルゴリズムが互いに関連付けされて境界情報として保持される。
【0040】
自己復号型暗号ファイル生成機能部4では、境界情報を取得して境界区域にこの境界情報を格納する。また、復号プログラムと境界区域および暗号データとは互いに疎結合される。このようにして生成された自己復号型暗号ファイルは自己復号型暗号ファイル記憶部11へ記憶される。また、記憶する必要が無い場合は復号化部2へ直接送信してもよい。
【0041】
次の図5には、本発明の暗号化/復号化システムによる復号化を説明するための説明図を示している。この復号化は復号化部2に備わる自己復号機能部5によって実行される。
【0042】
自己復号型暗号ファイル34は、境界区域33と暗号データ31に分解される。境界区域33に格納された境界情報に基づき、この境界情報を用いた暗号データの真正性評価(ハッシュ値比較など)を実行する。次に、暗号データの真正性が確認された後に、複数の暗号アルゴリズムを複数箇所に分散使用した復号化が実行され、平文データ30を得る。
【0043】
次に、図6を参照して自己復号機能部5の処理をフロー図により説明する。まず、自己復号機能部5において復号化が開始されると、復号対象となる自己復号型暗号ファイルが自身が持つ復号プログラム32により起動する。この復号プログラム32の起動と同時に、パスワードの入力操作を求められる(S20)。このパスワードは、暗号化を行う際に設定したパスワードである。
【0044】
次に、S20においてパスワード入力が完了した後に自身の境界区域33を検索する(S21)。
【0045】
次に、検索により発見した自身の境界区域33に格納されている境界情報を取り出す(S22)。ここで取り出した境界情報について、現在の日付と境界情報に含まれる復号期限の日付とを比較する(S23、S24)。この比較において、現在の日付が境界情報の復号期限よりも大きい場合、すなわち復号期限の日付を現在の日付が超過してしまっている場合は(YES)、自己復号型暗号ファイルの実行を中止し、復号処理が行われないようにして、動作が終了する(S36)。なお、復号処理が行われないようにする方法としては、そのまま凍結してもよく、あるいは自己消去などの方法をとってもよい。
【0046】
また、ステップS24において現在の日付が復号期限の日付よりも以前である場合(NO)は、ステップS20において入力されたパスワードが正しいパスワードか否かが判断される(S25)。この判断において誤ったパスワードであると判断されると(NO)、次ステップにおいて復号のためのパスワード失敗回数と境界情報に含まれる復号失敗回数とを比較する(S26、S27)。また、パスワードが正しいと判断されると(YES)後述のステップS28へ処理が進む。なお、復号のためのパスワード失敗回数とは誤ったパスワードが復号において入力され認証失敗した回数である。復号失敗回数とは誤ったパスワードの入力による認証失敗の許容回数である。
【0047】
次に、復号のためのパスワード失敗回数と境界情報に含まれる復号失敗回数とが比較され、復号のためのパスワード失敗回数が復号失敗回数の許容回数を上回っている(YES)の場合には、自己復号型暗号ファイルの実行を中止し、復号処理が行われないようにして終了する(S36)。なお、このステップS36における復号処理が行われないようにする方法としては、そのまま凍結してもよく、あるいは自己消去などの方法をとってもよい。
【0048】
また、復号失敗回数の許容回数をパスワード失敗回数が下回っている場合(NO)は、再び処理はステップS20へ戻りパスワード入力が要求される。
【0049】
次に、ステップS25においてパスワードが正しいと判断された場合は、境界区域33の中から境界情報を取り出す(S28)。このステップで取り出される境界情報は暗号データ31のハッシュ値、ファイル属性情報である。なお、境界情報自身を暗号化しておいてもよい。
【0050】
次に、境界区域以降のデータとして暗号データを取り出し、一時領域にこの暗号データを暗号化ファイルとして生成する(S29)。ここで生成した一時領域上の暗号化ファイルのファイル属性情報と境界情報に格納されたファイル属性情報とを比較する(S30)。この比較において一致/不一致が判断される(S31)。
【0051】
ステップS31の判断において、不一致(NO)と判断されると、自己復号型暗号ファイルの実行を中止し、復号処理が行われないようにして終了する(S36)。
【0052】
また一致(YES)と判断されると、生成した暗号化ファイルをハッシュ計算して、暗号化ファイルのハッシュ計算値を求める(S32)。ここで求めたハッシュ計算値を境界情報に含まれるハッシュ計算値と比較する(S33)。この比較において両者のハッシュ値の一致/不一致が判断される(S34)。
【0053】
ステップS34の判断において、不一致(NO)と判断されると、自己復号型暗号ファイルの実行を中止し、復号処理が行われないようにして終了する(S36)。また一致(YES)と判断されると、それぞれの分割領域に適応する暗号アルゴリズムを用いて復号を行い(S35)終了する。
【0054】
次の図7には、境界情報を必要に応じて更新する場合の処理をフロー図に示している。境界情報更新機能部6において、まず自己復号型暗号ファイルの境界区域33から境界情報を収集する(S50)。次に、収集した境界情報について内容を更新する。更新が終了した後に正当なパスワードを用いて更新した境界情報を暗号化する(S51)。次に、暗号化した境界情報を境界区域33へ再格納して(S52)更新が終了する。
【0055】
以上のように、復号化部2に備わる自己復号機能部5では、境界区域33から境界情報を最初に取り出して、この境界情報を用いて自己復号型暗号ファイル34の検査を実行し、検査にパスした場合に、暗号データ31を復号化する。この一連の処理は複数に分割されて生成された自己復号型暗号ファイル34のそれぞれについて実行されるので、改ざんに対する耐性を高めることができる。また、自己復号型暗号ファイル34を生成した後に、これに対して境界情報を更新可能である。
【0056】
なお、以上説明した本発明の暗号化/復号化システムの構成および方法をコンピュータプログラムにより同等の動作をさせてもよい。このコンピュータプログラムの処理ステップは、暗号化/復号化システムの各構成部に該当し、暗号化/復号化方法を実現するための手段となる。
【0057】
以上説明した本発明の実施の形態によれば、暗号化においては暗号化ファイルの生成後においても境界情報を更新でき、復号化においては使用した暗号アルゴリズムの特定を困難とし、暗号化ファイル解析への耐性を高めて安全性を確保できる暗号化/復号化システムおよび方法を提供することができる。
【図面の簡単な説明】
【0058】
【図1】本発明の暗号化/復号化システムの構成図を示す。
【図2】本発明の実施の形態による暗号化を説明するための説明図を示す。
【図3】本発明の実施の形態による暗号化のフロー図を示す。
【図4】本発明の実施の形態による暗号化のフロー図を示す。
【図5】本発明の実施の形態による復号化を説明するための説明図を示す。
【図6】本発明の実施の形態による復号化のフロー図を示す。
【図7】本発明の実施の形態による境界情報の更新のフロー図を示す。
【符号の説明】
【0059】
1…暗号化処理部
2…復号化処理部
3…暗号化機能部
4…自己復号型暗号ファイル生成機能部
5…自己復号機能部
6…境界情報更新機能部
7…動作設定ファイル
8…復号プログラム
9…境界区域
10…暗号化前平文データ記憶部
11…自己復号型暗号ファイル記憶部
12…復号化平文データ記憶部

【特許請求の範囲】
【請求項1】
自己による復号化が可能に平文データを暗号化するための暗号化/復号化システムであって、
所定数に分割した前記平文データのそれぞれに所定の暗号アルゴリズムを適用して暗号化し暗号データを生成するための暗号化機能部と、
前記暗号データと、前記復号化に必要な境界情報を格納した境界区域と、それぞれの前記暗号データを前記復号化するための復号プログラムと、を疎結合させて自己復号型暗号ファイルを生成するための自己復号型暗号ファイル生成機能部と、
を備える暗号化部と、
前記自己復号型暗号ファイルから前記暗号データと前記境界区域を抽出し、前記境界区域に格納された前記境界情報を用いて前記暗号データを前記復号化するための自己復号機能部を備える復号化部と、
を備えることを特徴とする暗号化/復号化システム。
【請求項2】
前記境界情報は、
前記暗号データの生成時のハッシュ値と、
前記暗号データの前記復号プログラムに対するファイル属性と、
前記暗号データの前記復号化が可能な期限を示す復号有効期限情報と、
前記暗号データの前記復号化に失敗した場合の許容回数を示す復号回数情報と、
前記暗号化機能部による前記分割位置と、
を含み、
前記境界情報を用いた前記自己復号型暗号ファイルの評価結果に基づいて復号化の実行/抑止を判断するための復号化抑止手段
を備えることを特徴とする請求項1に記載の暗号化/復号化システム。
【請求項3】
前記自己復号型暗号ファイルの前記境界情報の内容を更新するための境界情報更新機能部を備えることを特徴とする請求項1または2に記載の暗号化/復号化システム。
【請求項4】
前記暗号アルゴリズムは、前記平文データの分割数と所定数のアルゴリズムの中から同数以下の種類を選択されて用いられることを特徴とする請求項1〜3のいずれかに記載の暗号化/復号化システム。
【請求項5】
前記暗号化機能部は、前記暗号化データにさらに暗号アルゴリズムを用いて多段の暗号化を実行することを特徴とする請求項1〜4のいずれかに記載の暗号化/復号化システム。
【請求項6】
自己による復号化が可能に平文データを暗号化するための暗号化/復号化方法であって、
暗号化機能部において、所定数に分割した前記平文データのそれぞれ毎に異なる暗号アルゴリズムでもって暗号化し暗号データを生成するステップと、
自己復号型暗号ファイル生成機能部において、前記暗号データと、前記復号化に必要な境界情報を格納した境界区域と、それぞれの前記暗号データを前記復号化するための復号プログラムと、を疎結合させて自己復号型暗号ファイルを生成するステップと、
を暗号化部において実行し、
自己復号機能部において、前記自己復号型暗号ファイルから前記暗号データと前記境界区域を抽出し、前記境界区域に格納された前記境界情報を用いて前記暗号データを前記復号化するステップを復号化部において実行することを特徴とする暗号化/復号化方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate