(57)【特許請求の範囲】
【請求項１】
乱数データを用いた所定のマスク処理が施された暗号化済みのデータを復号化する復号化装置であって、
復号化の対象となる復号対象データを取得するデータ取得部と、
前記所定のマスク処理に用いられた乱数データおよび該乱数データと排他的論理和を演算したデータ領域を示す情報を取得するマスク情報取得部と、
前記マスク情報取得部にて取得される情報に基づいて、前記データ取得部にて取得される復号対象データについての、所定のマスク処理によるデータ保護を解除するマスク解除部と、
前記マスク解除部にて生成される暗号化済みデータを復号化するための復号鍵を取得する復号鍵取得部と、
前記復号鍵取得部にて取得される復号鍵に基づいて、前記マスク解除部にて生成される暗号化済みデータを復号化する復号化部と
を備えてなる復号化装置。
【請求項２】
請求項１に記載の復号化装置において、
前記データ取得部と前記マスク情報取得部は、互いに異なる通信経路を介してデータの取得を行う復号化装置。
【請求項３】
請求項１または請求項２に記載の復号化装置とデータベースのそれぞれとネットワークにより接続された暗号化装置であって、
暗号化すべき対象データに対して暗号化処理を施した暗号化済みデータを前記復号化装置のデータ取得部に送信する暗号化処理部と、
前記所定のマスク処理に用いられた乱数データおよび該乱数データと排他的論理和を演算したデータ領域を示す情報を、前記復号化装置のマスク情報取得部により取得可能に前記データベースに格納する格納部と
を備えてなる暗号化装置。
【請求項４】
暗号化すべき対象データに所定の暗号化処理を施す暗号化処理部と、
前記暗号化処理部での暗号化処理により生成される暗号化データの一部のデータ列と、該データ列と同じデータ長である乱数データとの排他的論理和を算出する所定のマスク処理を行うマスク処理部と
を有する暗号化装置と、
前記マスク処理部にてマスク処理が施されたデータを取得するデータ取得部と、
前記所定のマスク処理に用いられた乱数データおよび該乱数データと排他的論理和を演算したデータ領域を示す情報を取得するマスク情報取得部と、
前記マスク情報取得部にて取得される情報に基づいて、前記データ取得部にて取得される復号対象データについての、所定のマスク処理によるデータ保護を解除するマスク解除部と、
前記マスク解除部にて生成される暗号化済みデータを復号化するための復号鍵を取得する復号鍵取得部と、
前記復号鍵取得部にて取得される復号鍵に基づいて、前記マスク解除部にて生成される暗号化済みデータを復号化する復号化部と
を有する復号化装置と
を備えてなるデータ保護システム。
【請求項５】
請求項４に記載のデータ保護システムにおいて、
前記データ取得部と前記マスク情報取得部は、互いに異なる通信経路を介してデータの取得を行うデータ保護システム。
【請求項６】
請求項４または請求項５に記載のデータ保護システムにおいて、
前記暗号化装置と前記復号化装置は、それぞれ、データベースとネットワークにより接続され、
前記暗号化装置は、前記所定のマスク処理に用いられた乱数データおよび該乱数データと排他的論理和を演算したデータ領域を示す情報を前記データベースに格納する格納部をさらに有し、
前記暗号化処理部は、暗号化すべき対象データに対して暗号化処理を施した暗号化済みデータを前記復号化装置のデータ取得部に送信し、
前記マスク情報取得部は、前記所定のマスク処理に用いられた乱数データおよび該乱数データと排他的論理和を演算したデータ領域を示す情報を、 前記データベースより取得することを特徴とするデータ保護システム。
【請求項７】
暗号化処理部と、マスク処理部と、データ取得部と、マスク情報取得部と、マスク解除部と、復号鍵取得部と、復号化部とを備えるコンピュータが実行するデータ保護方法であって、
前記暗号化処理部が、暗号化すべき対象データに所定の暗号化処理を施し、
前記マスク処理部が、前記暗号化処理により生成される暗号化データの一部のデータ列と、該データ列と同じデータ長である乱数データとの排他的論理和を算出する所定のマスク処理を行い、
前記データ取得部が、前記マスク処理が施されたデータを取得し、
前記マスク情報取得部が、前記所定のマスク処理に用いられた乱数データおよび該乱数データと排他的論理和を演算したデータ領域を示す情報を取得し、
前記マスク解除部が、前記マスク情報取得部により取得される情報に基づいて、前記データ取得部により取得される復号対象データについての、所定のマスク処理によるデータ保護を解除し、
前記復号鍵取得部が、前記マスク解除部により生成される暗号化済みデータを復号化するための復号鍵を取得し、
前記復号化部が、前記復号鍵取得部により取得される復号鍵に基づいて、前記マスク解除部により生成される暗号化済みデータを復号化するデータ保護方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ暗号化復号化システムにおけるデータ保護レベルの向上に寄与する技術に関するものである。
【背景技術】
【０００２】
従来、暗号鍵とそれと対になる復号鍵を用いたデータ暗号化復号化技術が知られる。
【０００３】
上記従来のデータ暗号化復号化システムにおいては、所定の暗号鍵を用いた暗号化処理により生成された暗号化データを復号化するためには、対応する復号鍵が必要となる（例えば、非特許文献１および２参照。）。
【０００４】
悪意のある第三者は、この暗号化データを入手した際に、データの不正入手のために、復号鍵を総当たりすることにより復号化を試みる「Brute Force Attack」もしくは「Brute Force Password Cracking」と呼ばれる復号化手法を利用可能である。
【０００５】
この手法に対しては、復号鍵の長さを長くしたり、復号化処理のための演算負荷が大きい暗号化アルゴリズムを採用したりすることにより、総当たりに要するコストを増加させるといった対策が考えられる。しかしながら、上記対策では、計算機の性能向上などにより、暗号化時に想定していたレベルでのデータ保護機能を長期間維持できなくなるおそれがある。
【０００６】
また、上述のような、計算機の性能向上に起因する問題を解決する手法として、暗号化対象である平文のデータと同じデータ長の乱数を用いた暗号化手法「ワンタイムパッド暗号」が知られる（例えば、非特許文献３参照。）。
【非特許文献１】R.L.Rivest, “All-Or-Nothing Encryption and The Package Transform”,Fast Software Encryption FSE’97 Lecture Notes in Computer Science,vol.1267,pp.210-218,1997
【非特許文献２】NIST:FIPS PUB 81 “DES MODES OF OPERATION”（http://www.itl.nist.gov/fipspubs/fip81.htm）
【非特許文献３】２００２年１２月１３日講演会「暗号理論と乱数」筑波大学  岡本  栄司教授（http://www.21coe.chuo-u.ac.jp/security/okamoto2002-12-13/okamoto.pdf）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかし、上記「ワンタイムパッド暗号」では、暗号化データの復号化を行う装置にて、暗号化対象である平文のデータと同じデータ長の乱数を、暗号化データと同様に受信する必要があり、当該復号化を行う装置における通信量が多いという問題がある。
【０００８】
本発明は上述した問題点を解決するためになされたものであり、データの暗号化および復号化を行うデータ保護システムにおいて、データの復号化に要するデータ容量の低減を図るとともに、悪意の第三者による不正な復号化の困難性を高めることのできる技術を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決するため、本発明の一態様に係る暗号化装置は、暗号化すべき対象データに所定の暗号化処理を施す暗号化処理部と、前記暗号化処理部での暗号化処理により生成される暗号化データの一部のデータ列と、該データ列と同じデータ長である乱数との排他的論理和を算出するマスク処理部と、を備えてなることを特徴とするものである。
【００１０】
また、本発明の一態様に係る復号化装置は、乱数データを用いた所定のマスク処理が施された暗号化済みのデータを復号化する復号化装置であって、復号化の対象となる復号対象データを取得するデータ取得部と、前記所定のマスク処理に用いられた乱数データおよび該乱数データと排他的論理和を演算したデータ領域を示す情報を取得するマスク情報取得部と、前記マスク情報取得部にて取得される情報に基づいて、前記データ取得部にて取得される復号対象データについての、所定のマスク処理によるデータ保護を解除するマスク解除部と、前記マスク解除部にて生成される暗号化済みデータを復号化するための復号鍵を取得する復号鍵取得部と、前記復号鍵取得部にて取得される復号鍵に基づいて、前記マスク解除部にて生成される暗号化済みデータを復号化する復号化部と備えてなることを特徴とするものである。
【００１１】
また、本発明の一態様に係るデータ保護システムは、暗号化すべき対象データに所定の暗号化処理を施す暗号化処理部と、前記暗号化処理部での暗号化処理により生成される暗号化データの一部のデータ列と、該データ列と同じデータ長である乱数データとの排他的論理和を算出する所定のマスク処理を行うマスク処理部とを有する暗号化装置と、前記マスク処理部にてマスク処理が施されたデータを取得するデータ取得部と、前記所定のマスク処理に用いられた乱数データおよび該乱数データと排他的論理和を演算したデータ領域を示す情報を取得するマスク情報取得部と、前記マスク情報取得部にて取得される情報に基づいて、前記データ取得部にて取得される復号対象データについての、所定のマスク処理によるデータ保護を解除するマスク解除部と、前記マスク解除部にて生成される暗号化済みデータを復号化するための復号鍵を取得する復号鍵取得部と、前記復号鍵取得部にて取得される復号鍵に基づいて、前記マスク解除部にて生成される暗号化済みデータを復号化する復号化部とを有する復号化装置とを備えてなることを特徴とするものである。
【００１２】
また、本発明の一態様に係るデータ保護方法は、暗号化すべき対象データに所定の暗号化処理を施す暗号化処理ステップと、前記暗号化処理ステップでの暗号化処理により生成される暗号化データの一部のデータ列と、該データ列と同じデータ長である乱数データとの排他的論理和を算出する所定のマスク処理を行うマスク処理ステップと、前記マスク処理ステップにてマスク処理が施されたデータを取得するデータ取得ステップと、前記所定のマスク処理に用いられた乱数データおよび該乱数データと排他的論理和を演算したデータ領域を示す情報を取得するマスク情報取得ステップと、前記マスク情報取得ステップにて取得される情報に基づいて、前記データ取得部にて取得される復号対象データについての、所定のマスク処理によるデータ保護を解除するマスク解除ステップと、前記マスク解除ステップにて生成される暗号化済みデータを復号化するための復号鍵を取得する復号鍵取得ステップと、前記復号鍵取得ステップにて取得される復号鍵に基づいて、前記マスク解除ステップにて生成される暗号化済みデータを復号化する復号化ステップと、を備えてなることを特徴とするものである。
【００１３】
また、本発明の一態様に係る暗号化プログラムは、暗号化すべき対象データに所定の暗号化処理を施す暗号化処理ステップと、前記暗号化処理ステップでの暗号化処理により生成される暗号化データの一部のデータ列と、該データ列と同じデータ長である乱数との排他的論理和を算出するマスク処理ステップと、をコンピュータに実行させることを特徴とするものである。
【００１４】
また、本発明の一態様に係る復号化プログラムは、乱数データを用いた所定のマスク処理が施された暗号化済みデータを復号化する復号化プログラムであって、復号化の対象となる復号対象データを取得するデータ取得ステップと、前記所定のマスク処理に用いられた乱数データおよび該乱数データと排他的論理和を演算したデータ領域を示す情報を取得するマスク情報取得ステップと、前記マスク情報取得ステップにて取得される情報に基づいて、前記データ取得部にて取得される復号対象データについての、所定のマスク処理によるデータ保護を解除するマスク解除ステップと、前記マスク解除ステップにて生成される暗号化済みデータを復号化するための復号鍵を取得する復号鍵取得ステップと、前記復号鍵取得ステップにて取得される復号鍵に基づいて、前記マスク解除ステップにて生成される暗号化済みデータを復号化する復号化ステップとをコンピュータに実行させることを特徴とするものである。
【発明の効果】
【００１５】
以上に詳述したように本発明によれば、データの暗号化および復号化を行うデータ保護システムにおいて、データの復号化に要するデータ容量の低減を図るとともに、悪意の第三者による不正な復号化の困難性を高めることのできる技術を提供することができる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施の形態について図面を参照しつつ説明する。
【００１７】
図１は、本発明の実施の形態によるデータ保護システムの概略的なシステム構成を示す図である。図１に示すように、本実施の形態によるデータ保護システムは、暗号化装置１、復号化装置２およびデータベース３を備えている。
【００１８】
本実施の形態によるデータ保護システムでは、暗号化装置１、復号化装置２およびデータベース３は、それぞれが互いに例えばインターネット９等の電気通信回線を介して相互に通信可能となっている。なお、本実施の形態では、一例として、暗号化装置１、復号化装置２およびデータベース３が、インターネット回線を介して通信可能に接続されている例を挙げているが、これに限られるものではなく、例えば、ＬＡＮ（Local Area Network）やＷＡＮ（Wide Area Network）などの電気通信回線を介して接続する構成としてもよい。
【００１９】
本実施の形態によるデータ保護システムでは、暗号化装置１にて暗号化等のデータ保護処理が施されたデータが、インターネット９を介して復号化装置２へと送信される。復号化装置２は、データベース３から取得される各種情報に基づいて、暗号化装置１から受信したデータの復号化を行う。
【００２０】
以下、暗号化装置１、復号化装置２およびデータベース３の機能の詳細について説明する。図２は、本実施の形態によるデータ保護システムを構成する各構成要素の機能について説明するための機能ブロック図である。
【００２１】
まず、暗号化装置１について説明する。本実施の形態による暗号化装置１は、暗号化処理部１０１、マスク処理部１０２、マスクデータ設定部１０３、マスクデータ生成部１０４、操作入力部１０５、ＣＰＵ１０８およびＭＥＭＯＲＹ１０９を備えてなる構成となっている。
【００２２】
暗号化処理部１０１は、暗号化装置１にて暗号化すべき対象データに所定の暗号化処理を施す役割を有している。
【００２３】
暗号化処理部１０１にて実行する暗号化処理は、例えば、共通鍵を用いるブロック暗号方式（例えば、ＣＢＣ（Cipher Block Chaining）方式）を採用するものとする。具体的に、暗号化処理部１０１におけるブロック暗号処理では、上記暗号化の対象となる「対象データ」を、それぞれが所定のデータ長を有する複数ブロックに分割し、該複数ブロックそれぞれに暗号処理を施すブロック暗号処理を実行する。
【００２４】
もちろん、暗号化処理部１０１における暗号化は、ＣＢＣ方式に限定されるものではなく、鍵方式についても、共通鍵方式に限らず、例えば公開鍵方式を採用することもできる。本実施の形態における暗号化処理部１０１は、暗号化処理部１０１にて暗号化されたデータを復号化するための復号鍵を、例えばインターネット９等の電気通信回線を介して復号化装置２に送信する。
【００２５】
マスク処理部１０２は、暗号化処理部１０１での暗号化処理により生成される暗号化済データの一部のデータ列と、該データ列と同じデータ長である乱数との排他的論理和を算出する。
【００２６】
マスクデータ設定部１０３は、操作入力部１０５へのユーザの操作入力に基づいて、マスク処理部１０２にて暗号化処理部１０１での暗号化処理により生成される暗号化データの一部のデータ列と排他的論理和を算出するのに用いる乱数データのデータ長を設定する。
【００２７】
マスクデータ生成部１０４は、マスクデータ設定部１０３における設定処理に基づいて、（１）所定のマスク処理に用いる所望の疑似乱数データ、および（２）暗号化済データにおける該乱数データと排他的論理和が演算されるデータ領域（マスク位置）を示す情報（もしくは、マスク位置に関する情報）を生成する。マスクデータ生成部１０４にて生成される乱数データは、マスク処理部１０２に送信されるとともに、データベース３へも送信され、データベース３にて登録される。
【００２８】
操作入力部１０５は、例えば、キーボード、マウス、タッチパネルディスプレイ等から構成されており、ユーザによる操作入力を受け付ける役割を有している。
【００２９】
ＣＰＵ１０８は、暗号化装置１における各種処理を行う役割を有しており、またＭＥＭＯＲＹ１０９に格納されているプログラムを実行することにより種々の機能を実現する役割も有している。ＭＥＭＯＲＹ１０９は、例えばＲＯＭやＲＡＭ等から構成されており、暗号化装置１において利用される種々の情報やプログラムを格納する役割を有している。
【００３０】
続いて、本実施の形態による復号化装置２の機能の詳細について説明する。本実施の形態による復号化装置２は、暗号化装置１にて所定のマスク処理が施された暗号化済みのデータを復号化する役割を有している。復号化装置２は、データ取得部２０１、マスク情報取得部２０２、マスク解除部２０３、復号鍵取得部２０４、復号化部２０５、ＣＰＵ２０８、ＭＥＭＯＲＹ２０９および操作入力部２１０を備えている。
【００３１】
データ取得部２０１は、インターネット９を介して暗号化装置１から送信される復号化の対象となる復号対象データ（暗号化装置１にて暗号化処理およびマスク処理が施されたデータ）を取得する。ここでの復号対象データは、例えば、Ｅメールに添付ファイルとして添付することによるメール送信処理や、ＦＴＰ等のデータ転送技術によるデータ送信処理により、例えばインターネット９を介して復号化装置２に送信される。
【００３２】
マスク情報取得部２０２は、所定のマスク処理に用いられた乱数データ、および該乱数データと排他的論理和を演算した暗号化済データのデータ領域を示す情報を、データベース３から取得する。
【００３３】
マスク解除部２０３は、マスク情報取得部２０２にて取得される情報に基づいて、データ取得部２０１にて取得される「復号対象データ」についての、所定のマスク処理によるデータ保護を解除する。
【００３４】
復号鍵取得部２０４は、マスク解除部２０３にて生成される暗号化済みデータを復号化するための復号鍵を、暗号化装置１における暗号化処理部１０１からインターネット９経由で取得する。
【００３５】
このように、本実施の形態では、マスク処理部１０２にてマスク処理が施されたデータと、暗号化処理部１０１から送信される復号鍵情報とが、インターネット９を介して復号化装置２に送信される構成となっている。もちろん、これに限られるものではなく、更なるセキュリティレベルの向上のために、マスク処理が施されたデータと復号鍵情報とを、互いに異なる通信手段を介して復号化装置２に送信する構成とすることもできる。
【００３６】
復号化部２０５は、復号鍵取得部２０４にて取得される復号鍵に基づいて、マスク解除部２０３にて生成される暗号化済みデータを復号化する。具体的に、ＣＢＣ方式を採用した暗号化処理部１０１における暗号化処理が施されたデータの復号化処理は、暗号化データの各ブロックをＣi（ｉ＝１，２，…，ｎ）とした場合に、図３の式で表される。同図の式において、ｍiは復号化後のデータを示し、Ｋは復号鍵を示し、Ｄ（）は復号処理を示している。
【００３７】
ＣＰＵ２０８は、復号化装置２における各種処理を行う役割を有しており、またＭＥＭＯＲＹ２０９に格納されているプログラムを実行することにより種々の機能を実現する役割も有している。ＭＥＭＯＲＹ２０９は、例えばＲＯＭやＲＡＭ等から構成されており、復号化装置２において利用される種々の情報やプログラムを格納する役割を有している。操作入力部２１０は、例えば、キーボード、マウス、タッチパネルディスプレイ等から構成されており、ユーザによる操作入力を受け付ける役割を有している。
【００３８】
次に、本実施の形態におけるデータベース３の機能の詳細について説明する。本実施の形態によるデータベース３は、本実施の形態によるデータ保護システムにおいて用いられる各種情報の管理を行うデータデータベースとしての役割を有している。具体的に、データベース３は、暗号化装置１および復号化装置２にて利用される乱数データやマスク処理におけるマスク位置に関する情報などを管理するマスクデータ管理部３０１を備えている。なお、データベース３は、暗号化装置１とは異なる通信経路（例えば、図２におけるルートＢなど）を用いて復号化装置２に対してデータを送信することのできる機器によって実現されている。
【００３９】
このように、本実施の形態では、悪意の第三者によるデータ復号化のリスクを低減させるため、マスクデータ生成部１０４にて生成される乱数データ等をルートＢ（図２に示す、データベース３を経由するルート）経由で復号化装置２に送信し、マスク処理部１０２にてマスク処理を施したデータをルートＡ（図２に示す、マスク処理部１０２から復号化装置２に対して直接送信するルート）経由で復号化装置２に送信している。また、暗号化装置１、復号化装置２およびデータベース３との間の通信については、通信内容が第三者に漏洩を防止するため、通信の暗号化をおこなうことが望ましい。
【００４０】
また、マスクデータ生成部１０４における乱数データの生成処理は、マスク処理を行う必要が生じた場合における乱数生成要求の発生から乱数生成完了までの処理時間を短縮するために、予め乱数を生成してＭＥＭＯＲＹ１０９等に格納させておき、これら予め格納されている乱数データ中から適宜選択して利用するようにしてもよい。
【００４１】
続いて、本実施の形態におけるデータ保護システムでの処理の詳細について説明する。
【００４２】
暗号化装置１における暗号化処理部１０１により暗号化された暗号化済データは、マスク処理部１０２にて、マスクデータ生成部１０４にて生成されるマスクデータ（暗号化データと同じサイズのデータ）とＢＩＴ単位でのＸＯＲ（排他的論理和）処理を施される。図４は、マスク処理部１０２における暗号化済データとマスクデータとのＸＯＲ処理の概要を示すイメージ図である。
【００４３】
図４において各々の横長の長方形は、ブロック暗号のＣＢＣ方式における各ブロックを示しており、図４における「マスクデータ」は奇数番目のブロックを乱数データで埋め、残りを「０」で埋めたものとなっている。
【００４４】
図５は、マスクデータ生成部１０４内部にて実行される処理の詳細について説明するための図である。マスクデータ生成部１０４は、乱数分布パターン生成器１０４ａ、乱数生成器１０４ｂおよび乱数データ位置生成器１０４ｃを備えている。
【００４５】
マスクデータ生成部１０４は、例えば操作入力部１０５へのユーザの操作入力に基づいてマスクデータ設定部１０３にて設定される「対象データの保護についての保護強度の要求レベル」、「復号化装置２にて用いられる通信回線の容量」、「マスクデータを保持する保存エリア（例えば、データベース３やＭＥＭＯＲＹ２０９）の容量」などからマスクデータパターンを選定して生成する。具体的に、マスクデータ設定部１０３からマスクデータ生成部１０４に対してマスクデータパターンとして与えるパラメータは、「乱数データ比率（「乱数データのデータ長」の「マスク処理の対象である暗号化済データのデータ長」に対する比率）」、「細分化数」および「ブロック選択則」等である。
【００４６】
マスクデータ生成部１０４は、まず対象となる暗号化済データのサイズＺと乱数データ比率Ｐから、乱数分布パターン生成器１０４ａにおいて全乱数データ長Ｚ＊Ｐを求める。次に、乱数生成器１０４ｂにおいて、長さＺ＊Ｐの乱数データを生成する。乱数分布パターン生成器１０４ａは、生成された乱数データを細分化数Ｍにより分割し、予め長さＺの０で埋められたデータ内に、分割された乱数データを埋め込んでいく。この埋め込み位置は、所定のブロック選択則に則り、次のように決定される。
【００４７】
（１）ブロック選択則が「０」であるなら奇数ブロックを選択し、
分割された乱数データの長さ  ≧  ブロック長
であるなら、各奇数ブロックの開始位置から乱数データを埋め込んでいく。
【００４８】
一方、
分割された乱数データの長さ  ＜  ブロック長
の場合は、乱数データ位置生成器１０４ｃにて、０からブロック長の範囲の一様乱数を生成し、その乱数値をブロック内開始位置として分割された乱数データを埋め込んでいく。
【００４９】
（２）ブロック選択則が「１」であるなら偶数ブロックを選択し、上記奇数ブロックと同じく処理し、分割された乱数データを埋め込んでいく。
【００５０】
（３）ブロック選択則が「２」である場合に、
分割された乱数データの長さ  ≧  ブロック長
であるならば、乱数データ位置生成器において、０から全ブロック数の範囲の一様乱数を生成し、その乱数値のブロックの開始位置から分割された乱数データを埋め込んでいく。
【００５１】
一方、
分割された乱数データの長さ  ＜  ブロック長
であるならば、乱数データ位置生成器において、０から全ブロック数の範囲の一様乱数と、０からブロック長の範囲の一様乱数を生成し、その乱数値に基づいて、埋め込み対象となるブロックとブロック内開始位置を選択し、分割された乱数データを埋め込んでいく。
【００５２】
なお、選択されたブロック内におけるマスクデータの開始位置によっては、マスクデータである乱数データが、隣接するブロックにまたがってしまう場合もあり得る。このような場合、隣接する複数のブロックにおいて、ブロック内における同じ領域においてマスク処理が施されないという事態が生ずるおそれがある。そこで、上述のような事態の発生を防ぐため、マスク対象となるブロックの後端を超えるマスクデータがある場合には、当該マスクデータをマスク対象であるブロックにおける未だマスクされていない領域に割り当てることにより、乱数データの埋め込みを行うことが好ましい。図６は、マスク対象であるブロックに対するマスクデータの配置方法の一例を示す図である。
【００５３】
なお、図６に示す例では、マスク対象であるブロックの後端を超えるマスクデータについては、ブロック先端から配列（図６における記号Ｑを参照）しているが、これに限られるものではなく、例えば、ブロック内開始位置からブロックの先端方向へ向けて残りのマスクデータを配列するようにしてもよい（図６における破線で囲まれた領域Ｚを参照）。
【００５４】
上述のようにして生成されたマスクデータと暗号化済データは、マスク処理部１０２によりマスク処理を施され（図４を参照）、マスク処理済みの暗号化データ（以下、マスク暗号化データと呼ぶ）として復号化装置２へ向けて出力される。マスク処理部１０２から送信されたマスク暗号化データは、復号化装置２におけるデータ取得部２０１にて取得され、例えばＭＥＭＯＲＹ２０９に保存される。
【００５５】
このようにして、マスク処理部１０２は、例えば、暗号化処理部１０１による暗号化処理において複数ブロックに分割された対象データの内の先頭ブロックから偶数番目もしくは奇数番目のブロックのデータ列と、該データ列と同じデータ長である乱数との排他的論理和を算出することができる。もちろん、必ずしも上記偶数番目もしくは奇数番目のブロックのデータ列をマスク対象とする必要はなく、マスク処理部１０２は、暗号化処理部１０１による暗号処理において複数ブロックに分割された対象データの内の少なくとも１つのブロックに含まれるデータ列と、該データ列と同じデータ長である乱数との排他的論理和を算出する構成としてもよい。
【００５６】
なお、マスク処理部１０２におけるマスク処理で用いられるマスクデータは、データベース３内に保存される。マスクデータ管理部３０１は、データベース３に保持される各マスクデータと、当該マスクデータとマスク暗号化データとの対応づけを保持しながらデータ管理を行う。
【００５７】
次に、復号化装置２においてマスク暗号化データを受信した後、当該マスク暗号化データに対して行われる処理の流れについて詳述する。
【００５８】
復号化装置２におけるマスク情報取得部２０２は、データ取得部２０１にて取得したマスク暗号化データに対応するマスクデータ（乱数データおよびマスク位置を示す情報など）をデータベース３から取得する。この際、データベース３におけるマスクデータ管理部３０１は必要に応じて、利用者又は復号化装置２が正当な目的により利用されていることを認証処理等によって確認し、不正利用であると判断する場合にはマスクデータの提供を拒否しても良い。
【００５９】
マスク情報取得部２０２は、取得したマスクデータと、データ取得部２０１にて取得したマスク暗号化データ（もしくは、ＭＥＭＯＲＹ２０９に保持しているマスク暗号化データ）をマスク解除部２０３に入力する。
【００６０】
図７は、マスク解除部２０３におけるマスク解除処理の詳細を示す図である。マスク解除部２０３は、図７に示すように排他的論理和を算出することで、同じマスクデータを適用したときの排他的論理和の性質から、暗号化済データを得る。
【００６１】
復号鍵取得部２０４は、暗号化処理部１０１から上記暗号化済データの復号化に必要な復号鍵を取得する。
【００６２】
復号化部２０５は、復号鍵取得部２０４にて取得される復号鍵を用いて、マスク解除部２０３において得られる暗号化済データの復号処理を行う。なお、本実施の形態では、一例として、復号鍵が暗号化処理部１０１からインターネット９を介して復号化装置２に直接送信される構成を示したが、これに限られるものではない。例えば、復号化装置２のユーザによる操作入力部２１０への操作入力による入力や、ＵＳＢキー等のメディア経由での入力といった入力方法により、復号化装置２にて復号鍵を取得するようにしてもよいし、復号化装置２の内部に外部からは情報を容易に取り出せないセキュアなデータ格納領域（耐タンパ性の高いメモリ領域等）を設け、当該データ格納領域に復号鍵をあらかじめ格納しておいてもよい。
【００６３】
一般に、「ＣＢＣブロック方式」による暗号化処理は、暗号化時に複数ブロックに分割した内の連続する二つのブロックがあれば、復号鍵に対する総当たり攻撃により復号化データを不正入手することができる。
【００６４】
しかし、本実施の形態のように暗号化済データに対して更にマスク処理を行うことにより（図４参照）、Ｃi又はＣi+1のどちらか一方は乱数データによりＸＯＲ処理されたものとなり、正しい結果ｍiを得るために、不正利用者は復号鍵Ｋ以外に、乱数データを総当たり攻撃により推定する必要が生じ、不正に結果を得ることはより困難となる。また、ブロック単位に着目すれば、ワンタイムパッド暗号と同様な効果が得られる。
【００６５】
また、本実施の形態に示す処理により生成されるマスクデータは、通信時に、各乱数データのブロックと、乱数データ適用位置（奇数番目）を示す情報を復号化装置２に送るだけで良いため、ワンタイムパッド暗号により暗号化する場合に比べ、大幅なデータ通信量の低減を図ることができる。また、マスクデータの保存についても、ワンタイムパッド暗号に比して、保存エリア容量の大幅な削減を実現することができる。また、復号化部２０５における復号化処理時の乱数データとマスク暗号化データとのＸＯＲ（排他的論理和）処理についても、ワンタイムパッド暗号のように全データ長に適用する場合に比べて大幅処理の削減を実現することができる。
【００６６】
また、更なる通信容量、保存エリア容量および演算処理量の削減を目指す場合には、図８に示すように、マスクデータの乱数データで埋める領域を小さくし、代わりに図８の「α」で示す様に「０」で埋めるようにしてもよい。この場合は、マスクデータを持たない不正利用者は、マスク暗号化データの乱数データにより攪乱された部位のサイズ及び情報を推定しながら復号鍵の総当たり攻撃を行いつつ復号鍵を推定することが必要となり、単なる復号鍵Ｋの推定よりも困難な作業となる。
【００６７】
また、ワンタイムパッド暗号の効果から容易に類推できるように、マスクデータ中の乱数データにより攪乱された領域のデータは、例え正しい復号鍵Ｋをもってしても、マスクデータ無しでは正常に復号化することはできない。また、乱数データによるマスクする位置についても、様々なパターンを採用可能であり、このパターンを必要に応じて変更することにより、保護対象データの不正入手を更に困難なものとすることができる。なお、マスクデータによるマスク位置のパターンについては、予めテンプレートとして暗号化装置１のＭＥＭＯＲＹ１０９等に保持させておき、適宜利用可能なようにしてもよい。図９〜図１２は、マスクデータによるマスク位置のいくつかのパターン例を示す図である。
【００６８】
また、上述の実施の形態では、マスク処理において乱数データによってマスクするデータ列として、暗号化処理部１０１による暗号化処理において複数ブロックに分割された対象データの内の先頭ブロックから偶数番目もしくは奇数番目のブロックのデータ列を採用しているが、必ずしもこのように規則的なマスク処理を行う必要はない。例えば、保護対象データが圧縮データである場合、当該圧縮データにおける辞書データが格納されているデータ領域は、保護対象となるデータを解読する上で特に重要なデータ部分となる。このような場合、当該データ部分（所定のデータ領域に位置するデータ列）を重点的にマスクすることで、データ保護のレベルを更に高めることが可能となる。
【００６９】
また、マスク処理部１０２によるマスク処理では、暗号化済データの全データ列に対して常に均一にマスク処理を施す必要はなく、上述のような重要なデータ部分周辺だけ、マスク処理されるエリアの密度や被覆率を高めるようにしてもよい。例えば、マスク処理部１０２は、暗号化処理部１０１による暗号処理において生成された暗号化データの内の所定のデータ領域に位置するデータ列が、該所定のデータ領域以外のデータ領域のデータ列よりも上記乱数との排他的論理和を算出するデータ量の割合が多くなるようにマスク処理を行うこともできる。
【００７０】
図１３は、本実施の形態によるデータ保護システムにおける処理（データ保護方法）の流れについて説明するためのフローチャートである。
【００７１】
マスクデータ設定部１０３は、操作入力部１０５へのユーザの操作入力に基づいて、マスク処理部１０２にて暗号化処理部１０１での暗号化処理により生成される暗号化データの一部のデータ列と排他的論理和を算出するのに用いる乱数データのデータ長を設定する（マスクデータ設定ステップ）（Ｓ１０１）。このように、暗号化すべき対象データの重要度（要求されるセキュリティレベル）に応じて、マスク処理に用いる乱数データのデータ長(データ容量)を調整することで、復号化時の通信量の制御及び追加処理量の制御を行うことができる。
【００７２】
なお、マスクデータ設定部１０３による各種設定処理は、必ずしもユーザの操作入力に基づく必要はなく、例えば、対象データのデータ長、暗号化装置１と復号化装置２との間での通信に用いる通信回線の種別、トラフィック負荷、暗号化装置１および復号化装置２における演算負荷等に基づいて、自動的に設定するようにしてもよい。
【００７３】
マスクデータ生成部１０４は、マスクデータ設定部１０３における設定処理に基づいて、所望の疑似乱数データを生成する（マスクデータ生成ステップ）（Ｓ１０２）。
【００７４】
暗号化処理部１０１は、暗号化すべき対象データに所定の暗号化処理を施す（暗号化処理ステップ）（Ｓ１０３）。
【００７５】
マスク処理部１０２は、暗号化処理ステップでの暗号化処理により生成される暗号化データの一部のデータ列と、該データ列と同じデータ長である乱数データ（マスクデータ生成ステップにて生成）との排他的論理和を算出する所定のマスク処理を行う（マスク処理ステップ）（Ｓ１０４）。
【００７６】
データ取得部２０１は、マスク処理ステップにてマスク処理が施されたデータを取得する（データ取得ステップ）（Ｓ１０５）。
【００７７】
マスク情報取得部２０２は、所定のマスク処理に用いられた乱数データおよび該乱数データと排他的論理和を演算したデータ領域を示す情報を取得する（マスク情報取得ステップ）（Ｓ１０６）。
【００７８】
マスク解除部２０３は、マスク情報取得ステップにて取得される情報に基づいて、データ取得部にて取得される復号対象データについての、所定のマスク処理によるデータ保護を解除する（マスク解除ステップ）（Ｓ１０７）。
【００７９】
復号鍵取得部２０４は、マスク解除ステップにて生成される暗号化済みデータを復号化するための復号鍵を取得する（復号鍵取得ステップ）（Ｓ１０８）。
【００８０】
復号化部２０５は、復号鍵取得ステップにて取得される復号鍵に基づいて、マスク解除ステップにて生成される暗号化済みデータを復号化する（復号化ステップ）（Ｓ１０９）。
【００８１】
上述の暗号化装置での処理における各ステップは、ＭＥＭＯＲＹ１０９に格納されている暗号化プログラムをＣＰＵ１０８に実行させることにより実現されるものである。また、復号化装置での処理における各ステップは、ＭＥＭＯＲＹ２０９に格納されている暗号化プログラムをＣＰＵ２０８に実行させることにより実現されるものである。
【００８２】
本実施の形態では装置内部に発明を実施する機能が予め記録されている場合で説明をしたが、これに限らず同様の機能をネットワークから装置にダウンロードしても良いし、同様の機能を記録媒体に記憶させたものを装置にインストールしてもよい。記録媒体としては、ＣＤ−ＲＯＭ等プログラムを記憶でき、かつ装置が読み取り可能な記録媒体であれば、その形態は何れの形態であっても良い。またこのように予めインストールやダウンロードにより得る機能は装置内部のＯＳ（オペレーティング・システム）等と共働してその機能を実現させるものであってもよい。
【００８３】
このように、本実施の形態では、データの暗号化に一般的に利用されるブロック暗号処理の性質と、ワンタイムパッド暗号方式の性質を応用し、通常の方法により暗号化された暗号データに対して、後処理を施す構成となっている。これにより、復号鍵に対する総当たり攻撃による不正なデータ復号化を、より困難にすることができる。また、復号化を行う装置が、処理能力の低い小型の端末装置などである場合においても、復号化に必要となる情報のデータ量を極力削減することにより、復号化における演算負荷および通信量をワンタイムパッド暗号方式に比べて低く抑えることができる。
【００８４】
本発明を特定の態様により詳細に説明したが、本発明の精神および範囲を逸脱しないかぎり、様々な変更および改質がなされ得ることは、当業者には自明であろう。
【図面の簡単な説明】
【００８５】
【図１】本発明の実施の形態によるデータ保護システムの概略的なシステム構成を示す図である。
【図２】本実施の形態によるデータ保護システムを構成する各構成要素の機能について説明するための機能ブロック図である。
【図３】復号化処理における演算式を示す図である。
【図４】マスク処理部１０２における暗号化済データとマスクデータとのＸＯＲ処理の概要を示すイメージ図である。
【図５】マスクデータ生成部１０４内部にて実行される処理の詳細について説明するための図である。
【図６】マスク対象であるブロックに対するマスクデータの配置方法の一例を示す図である。
【図７】マスク解除部２０３におけるマスク解除処理の詳細を示す図である。
【図８】マスクデータの乱数データで埋める領域を小さくした場合について説明するための図である。
【図９】マスクデータによるマスク位置のパターン例を示す図である。
【図１０】マスクデータによるマスク位置のパターン例を示す図である。
【図１１】マスクデータによるマスク位置のパターン例を示す図である。
【図１２】マスクデータによるマスク位置のパターン例を示す図である。
【図１３】本実施の形態によるデータ保護システムにおける処理（データ保護方法）の流れについて説明するためのフローチャートである。
【符号の説明】
【００８６】
１  暗号化装置、１０１  暗号化処理部、１０２  マスク処理部、１０３  マスクデータ設定部、１０４  マスクデータ生成部、１０５  操作入力部、１０８  ＣＰＵ、１０９  ＭＥＭＯＲＹ、２  復号化装置、２０１  データ取得部、２０２  マスク情報取得部、２０３  マスク解除部、２０４  復号鍵取得部、２０５  復号化部、２０８  ＣＰＵ、２０９  ＭＥＭＯＲＹ、２１０  操作入力部、３  データベース、マスクデータ管理部３０１。
【図１】
0005179921.tif 000002
【図２】
0005179921.tif 000003
【図３】
0005179921.tif 000004
【図４】
0005179921.tif 000005
【図５】
0005179921.tif 000006
【図６】
0005179921.tif 000007
【図７】
0005179921.tif 000008
【図８】
0005179921.tif 000009
【図９】
0005179921.tif 000010
【図１０】
0005179921.tif 000011
【図１１】
0005179921.tif 000012
【図１２】
0005179921.tif 000013
【図１３】
0005179921.tif 000014