(57)【要約】【課題】秘匿性が高い暗号文を生成可能な圧縮・暗号化技術を提供する。【解決手段】入力されたデータを、秘匿化が必要な秘匿データと秘匿化が不要な非秘匿データとに区分する。非秘匿データは圧縮されて非秘匿ブロックが生成される。一方、秘匿データは、圧縮されることなく、当該秘匿データを示す秘匿ブロックとされる。生成された非秘匿ブロックと秘匿ブロックとは連結され、連結データが生成される。その後、当該連結データを暗号化した暗号文を生成する。【選択図】図１
2011041102.tif 000002
【特許請求の範囲】
【請求項１】
入力されたデータを、秘匿化が必要な秘匿データと秘匿化が不要な非秘匿データとに区分する区分部と、
前記非秘匿データが入力され、当該非秘匿データを圧縮した非秘匿ブロックを生成し、当該非秘匿ブロックを出力する非秘匿データ処理部と、
前記秘匿データが入力され、当該秘匿データを圧縮することなく、当該秘匿データを示す秘匿ブロックを生成し、当該秘匿ブロックを出力する秘匿データ処理部と、
前記非秘匿ブロックと前記秘匿ブロックとが入力され、前記非秘匿ブロックと前記秘匿ブロックとを連結した連結データを生成し、当該連結データを出力するブロック連結部と、
前記連結データが入力され、当該連結データを暗号化した暗号文を生成し、当該暗号文を出力する暗号化部と、
を有する圧縮暗号化装置。
【請求項２】
請求項１の圧縮暗号化装置であって、
前記非秘匿データ処理部は、前記秘匿データから特定される情報を用いることなく前記非秘匿データを圧縮して前記非秘匿ブロックを生成する、
ことを特徴とする圧縮暗号化装置。
【請求項３】
暗号文が入力され、当該暗号文を復号して連結データを生成し、当該連結データを出力する復号部と、
前記連結データが入力され、当該連結データを非秘匿ブロックと秘匿ブロックとに区分する区分する区分部と、
前記非秘匿ブロックが入力され、当該非秘匿ブロックを伸長して非秘匿データを生成し、当該非秘匿データを出力する非秘匿データ処理部と、
前記秘匿ブロックが入力され、伸長処理を行うことなく、当該秘匿ブロックを示す秘匿データを生成し、当該秘匿データを出力する秘匿データ処理部と、
を有する復号伸長装置。
【請求項４】
請求項３の復号伸長装置であって、
前記非秘匿データ処理部は、前記秘匿データから特定される情報を用いることなく前記非秘匿ブロックを伸長して前記非秘匿データを生成する、
ことを特徴とする復号伸長装置。
【請求項５】
入力されたデータを、秘匿化が必要な秘匿データと秘匿化が不要な非秘匿データとに区分するステップと、
前記非秘匿データが入力され、当該非秘匿データを圧縮した非秘匿ブロックを生成し、当該非秘匿ブロックを出力するステップと、
前記秘匿データが入力され、当該秘匿データを圧縮することなく、当該秘匿データを示す秘匿ブロックを生成し、当該秘匿ブロックを出力するステップと、
前記非秘匿ブロックと前記秘匿ブロックとが入力され、前記非秘匿ブロックと前記秘匿ブロックとを連結した連結データを生成し、当該連結データを出力するステップと、
前記連結データが入力され、当該連結データを暗号化した暗号文を生成し、当該暗号文を出力するステップと、
を有する圧縮暗号化方法。
【請求項６】
暗号文が入力され、当該暗号文を復号して連結データを生成し、当該連結データを出力するステップと、
前記連結データが入力され、当該連結データを非秘匿ブロックと秘匿ブロックとに区分する区分するステップと、
前記非秘匿ブロックが入力され、当該非秘匿ブロックを伸長して非秘匿データを生成し、当該非秘匿データを出力するステップと、
前記秘匿ブロックが入力され、伸長処理を行うことなく、当該秘匿ブロックを示す秘匿データを生成し、当該秘匿データを出力するステップと、
を有する復号伸長方法。
【請求項７】
請求項１又は２の圧縮暗号化装置としてコンピュータを機能させるためのプログラム。
【請求項８】
請求項３又は４の復号伸長装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの圧縮・暗号化技術及びそれによって得られた暗号文の復号・伸長技術に関する。
【背景技術】
【０００２】
データの意味を保ったまま、データ量を削減するデータ圧縮処理が知られている（例えば、特許文献１〜３、非特許文献１等参照）。データ圧縮方式は可逆圧縮処理と不可逆圧縮処理とに大別され、それぞれ様々な方式が存在する。多くのデータ圧縮方式では、データの繰り返し回数、出現頻度、データ間の相関などのデータ内容に依存する情報（すなわち、データ内容から特定される情報）を用いてデータ量を削減する手法がとられる。この場合、データ圧縮処理による圧縮率はデータ内容に応じて相違し、圧縮されたデータ（圧縮データ）の長さ（データ長）からデータ内容の情報が得られる場合がある。
【０００３】
また、データ（平文）を暗号化し、データを秘匿した暗号文を生成する暗号化処理が知られている（例えば、非特許文献２等参照）。暗号化方式には様々な方式が存在し、暗号化方式によっては、暗号文の長さからデータ（平文）の長さの情報が得られる場合がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許第４４６４６５０号明細書
【特許文献２】米国特許第４８１４７４６号明細書
【特許文献３】米国特許第４５５８３０２号明細書
【非特許文献】
【０００５】
【非特許文献１】P. Deusch, "RFC1951: DEFLATE Compressed Data Format Specification version 1.3"
【非特許文献２】"ISO/IEC 10116: Information technology - Security techniques - Modes of operation for an n-nit block cipher"
【発明の概要】
【発明が解決しようとする課題】
【０００６】
データ量を削減しつつデータを秘匿する方法として、データ（平文）に対するデータ圧縮処理を行って得られた圧縮データに対し、さらに、暗号化処理を行う圧縮・暗号化方法がある。しかし、従来の圧縮・暗号化方法では、暗号化処理によって得られた暗号文の長さからデータ（平文）の内容に関する情報が知られてしまう場合がある。なぜなら、暗号文の長さから圧縮データの長さの情報が得られる場合があり、圧縮データの長さからデータ内容の情報が得られる場合があるからである。
【０００７】
本発明はこのような点に鑑みてなされたものであり、秘匿性が高い暗号文を生成可能な圧縮・暗号化技術を提供することを目的とする。
【０００８】
また、本発明の他の目的は、本発明の圧縮・暗号化技術によって生成された暗号文を復号及び伸長する復号・伸長技術を提供することである。
【課題を解決するための手段】
【０００９】
本発明の圧縮・暗号化処理では、入力されたデータを、秘匿化が必要な秘匿データと秘匿化が不要な非秘匿データとに区分し、非秘匿データを圧縮した非秘匿ブロックを生成し、秘匿データを圧縮することなく、当該秘匿データを示す秘匿ブロックを生成し、非秘匿ブロックと秘匿ブロックとを連結した連結データを生成し、当該連結データを暗号化した暗号文を生成する。
【００１０】
また、本発明の復号・伸長処理では、入力された暗号文を復号して連結データを生成し、当該連結データを非秘匿ブロックと秘匿ブロックとに区分し、非秘匿ブロックを伸長して非秘匿データを生成し、伸長処理を行うことなく、秘匿ブロックを示す秘匿データを生成する。
【発明の効果】
【００１１】
本発明の圧縮・暗号化処理では、秘匿データの圧縮処理を行わないため、暗号文の長さから圧縮データの長さの情報が得られても、圧縮データの長さから秘匿データの内容の情報が得られることを抑制できる。これにより、本発明の圧縮・暗号化処理では、秘匿性が高い暗号文を生成できる。
【００１２】
また、本発明の復号・伸長処理により、本発明の圧縮・暗号化処理で得られた暗号文からデータを復元できる。
【図面の簡単な説明】
【００１３】
【図１】第１実施形態の圧縮暗号化装置の機能構成を説明するためのブロック図。
【図２】第１実施形態の復号伸長装置の機能構成を説明するためのブロック図。
【図３】第１実施形態の圧縮暗号化処理を説明するためのフローチャート。
【図４】第１実施形態の復号伸長処理を説明するためのフローチャート。
【図５】第１実施形態の各処理過程におけるデータ構成を例示するための図。
【発明を実施するための形態】
【００１４】
以下、図面を参照して本発明の実施形態を説明する。
【００１５】
〔原理〕
まず、本形態の原理を説明する。
【００１６】
前述のように、本形態の圧縮・暗号化処理では、入力されたデータを、秘匿化が必要な秘匿データと秘匿化が不要な非秘匿データとに区分し、非秘匿データを圧縮した非秘匿ブロックを生成し、秘匿データを圧縮することなく、当該秘匿データを示す秘匿ブロックを生成し、非秘匿ブロックと秘匿ブロックとを連結した連結データを生成し、当該連結データを暗号化した暗号文を生成する。本形態では、秘匿データの圧縮処理を行わないため、暗号文の長さから圧縮データの長さの情報が得られても、圧縮データの長さから秘匿データの内容の情報が得られることを抑制できる。これにより、秘匿性が高い暗号文を生成できる。
【００１７】
また、この圧縮・暗号化処理において好ましくは、秘匿データから特定される情報を用いることなく非秘匿データを圧縮して非秘匿ブロックを生成する。このように、秘匿データから特定される情報を用いずに非秘匿データを圧縮した場合、圧縮データの長さは、秘匿データの長さや非秘匿データの内容に依存し、秘匿データの内容に依存しない。その結果、暗号文の長さから圧縮データの長さの情報が得られても、圧縮データの長さから秘匿データの内容の情報が得られることを完全に防止でき、より秘匿性の高い暗号文を生成できる。
【００１８】
本形態の復号・伸長処理では、入力された暗号文を復号して連結データを生成し、当該連結データを非秘匿ブロックと秘匿ブロックとに区分し、非秘匿ブロックを伸長して非秘匿データを生成し、伸長処理を行うことなく、秘匿ブロックを示す秘匿データを生成する。これにより、上述のように生成された暗号文を復号できる。
【００１９】
〔第１実施形態〕
次に、本発明の第１実施形態を説明する。
【００２０】
＜構成＞
図１は、第１実施形態の圧縮暗号化装置の機能構成を説明するためのブロック図である。また、図２は、第１実施形態の復号伸長装置の機能構成を説明するためのブロック図である。
【００２１】
図１に例示するように、第１実施形態の圧縮暗号化装置１１０は、データ入力部１１１と、秘匿性識別情報入力部１１２と、区分部１１３と、非秘匿データ処理部１１４と、秘匿データ処理部１１５と、ブロック連結部１１６と、鍵メモリ１１７ａと、暗号化部１１７ｂと、制御部１１８と、メモリ１１９とを有する。
【００２２】
また、図２に例示するように、第１実施形態の復号伸長装置１２０は、鍵メモリ１２１ａと、復号部１２１ｂと、区分部１２２と、非秘匿データ処理部１２４と、秘匿データ処理部１２５と、連結部１２６と、制御部１２８と、メモリ１２９とを有する。
【００２３】
なお、圧縮暗号化装置１１０や復号伸長装置１２０は、例えば、ＣＰＵ（central processing unit）、ＲＡＭ（random-access memory）、ＲＯＭ（read-only memory）等からなる公知のコンピュータに所定のプログラムが読み込まれて実行されることで構成される装置である。例えば、データ入力部１１１、秘匿性識別情報入力部１１２、区分部１１３、非秘匿データ処理部１１４、秘匿データ処理部１１５、ブロック連結部１１６、暗号化部１１７ｂ、制御部１１８、復号部１２１ｂ、区分部１２２、非秘匿データ処理部１２４、秘匿データ処理部１２５、連結部１２６、及び制御部１２８などの処理部は、所定のプログラムを実行するＣＰＵであり、鍵メモリ１１７ａ，１２１ａ及びメモリ１１９，１２９は、補助記憶装置、ＲＡＭ、キャッシュメモリ、レジスタ若しくは集積回路の一部又はそれらの少なくとも一部を結合した記憶領域である。
【００２４】
また、以下では説明を省略するが、圧縮暗号化装置１１０は、制御部１１８の制御のもと各処理を実行し、復号伸長装置１２０は、制御部１２８の制御のもと各処理を実行する。また、各処理部から出力されたデータは、逐一、メモリ１１９，１２９に格納され、必要に応じて他の処理部から読み出されて使用される。
【００２５】
＜事前処理＞
本形態の圧縮暗号化処理や復号伸長処理の前処理として、圧縮暗号化装置１１０の鍵メモリ１１７ａに暗号化のための鍵が格納され、復号伸長装置１２０の鍵メモリ１２１ａに復号のための鍵が格納される。例えば、暗号化方式が公開鍵方式である場合には、圧縮暗号化装置１１０の鍵メモリ１１７ａには公開鍵が格納され、復号伸長装置１２０の鍵メモリ１２１ａには当該公開鍵に対応する秘密鍵が格納される。また、例えば、暗号化方式が共通鍵方式である場合には、圧縮暗号化装置１１０の鍵メモリ１１７ａと復号伸長装置１２０の鍵メモリ１２１ａには同一の共通鍵が格納される。
【００２６】
＜圧縮暗号化処理＞
次に、本形態の圧縮暗号化処理を説明する。
【００２７】
図３は、第１実施形態の圧縮暗号化処理を説明するためのフローチャートである。また、図５（Ａ）〜（Ｆ）は、第１実施形態の各処理過程におけるデータ構成を例示するための図である。
【００２８】
まず、圧縮暗号化装置１１０（図１）のデータ入力部１１１に、圧縮暗号化対象のデータＭが入力される（ステップＳ１１１）。図５（Ａ）に例示するように、データＭは複数のバイトからなるシリアルデータである。図５（Ａ）では、データＭの先頭位置がＳと表現され、末尾位置がＥと表現されている。データＭは、秘匿化が必要な秘匿データと秘匿化が不要な非秘匿データとを含む。秘匿データの例は、氏名、電話番号、パスワード等の個人情報である。
【００２９】
また、秘匿性識別情報入力部１１２には、データＭが含む秘匿データの位置を特定するための秘匿性識別情報ＳＩＤが入力される（ステップＳ１１２）。秘匿性識別情報ＳＩＤの例は、データＭの先頭位置Ｓから数えた各秘匿データの先頭位置を示す情報と末尾位置を示す情報との組である。図５（Ｂ）の例では、データＭの先頭位置Ｓから数えた各秘匿データの先頭位置を示す情報Ｓ１〜Ｓ３と末尾位置を示す情報Ｅ１〜Ｅ３との組（Ｓ１，Ｅ１），（Ｓ２，Ｅ２），（Ｓ３，Ｅ３）が秘匿性識別情報ＳＩＤとされる。なお、データＭの先頭位置Ｓから数えた各秘匿データの先頭位置や末尾位置の具体例は、データＭの先頭位置Ｓから数えたバイト数である。また、秘匿性識別情報ＳＩＤは、データＭと独立した情報であってもよいし、データＭのヘッダ情報としてデータＭと一体化されていてもよい。
【００３０】
データＭと秘匿性識別情報ＳＩＤとは区分部１１３に入力される。区分部１１３は、秘匿性識別情報ＳＩＤを用い、入力されたデータＭを、非秘匿データＡと秘匿データＢとに区分する。図５（Ｂ）の例では、秘匿性識別情報ＳＩＤである組（Ｓ１，Ｅ１），（Ｓ２，Ｅ２），（Ｓ３，Ｅ３）を用い、先頭位置Ｓ１から末尾位置Ｅ１までの領域、先頭位置Ｓ２から末尾位置Ｅ２までの領域、及び先頭位置Ｓ３から末尾位置Ｅ３までの領域を、それぞれ、秘匿データＢとし、それ以外の領域をそれぞれ非秘匿データＡとする。さらに、本形態の区分部１１３は、データＭを、非秘匿データＡのみからなるデータ区分と、秘匿データＢのみからなるデータ区分とに区分する。例えば、区分部１１３は、データＭの先頭位置Ｓから順番に固定長ごとのデータ区分ごとに区分していき、その区分が非秘匿データＡと秘匿データＢとの境界を跨ぐ場合には、その境界でそのデータ区分を終端させ、その境界から新たにデータ区分を開始させる。図５（Ｃ）の例では、区分部１１３は、ＳからＳ１までを固定長のデータ区分Ａ１とし、Ｓ１からＥ１までを固定長のデータ区分Ｂ１とし、Ｅ１からＥ１１までを固定長のデータ区分Ａ２とする。次を固定長で区分した場合には非秘匿データＡと秘匿データＢとの境界Ｓ２を跨ぐため、区分部１１３は、Ｅ１１からＳ２までをデータ区分Ａ３とし、Ｓ２１からＥ２までを固定長のデータ区分Ｂ３とする。同様に、図５（Ｃ）の例では、Ｅ２からＥ２１、Ｅ２１からＳ３、Ｓ３からＥ３、Ｅ３からＥまでを、それぞれデータ区分Ａ４，Ａ５，Ｂ４，Ａ６に区分する。なお、データ区分Ａ１〜Ａ６は非秘匿データＡのみからなり、データ区分Ｂ１〜Ｂ４は秘匿データＢのみからなる。
【００３１】
そして、区分部１１３は、既にステップＳ１１４又はＳ１１５の処理を行ったデータ区分以外のデータ区分のうち、データＭの先頭位置Ｓに最も近いデータ区分を処理対象とし、当該データ区分が秘匿データか否かを判定する（ステップＳ１１３）。なお、データＭに対してステップＳ１１４又はＳ１１５の処理が一度も行われていない場合には、データＭの先頭のデータ区分（図５（Ｃ）の例ではデータ区分Ａ１）が処理対象とされる。また、ステップＳ１１３の処理は、データＭをすべてのデータ区分に区分してから処理対象のデータ区分が秘匿データか否かを判定することとしてもよいし、処理対象のデータ区分のみを特定してから当該処理対象のデータ区分が秘匿データか否かを判定することとしてもよい。
【００３２】
ここで、処理対象のデータ区分が非秘匿データＡであると判定された場合、非秘匿データ処理部１１４に処理対象のデータ区分の非秘匿データが入力される。非秘匿データ処理部１１４は、当該データ区分の非秘匿データを圧縮した非秘匿ブロックを生成し、当該非秘匿ブロックを出力する（ステップＳ１１４）。なお、非秘匿データ処理部１１４は、秘匿データＢから特定される情報を用いることなく非秘匿データＡを圧縮して非秘匿ブロックを生成する。また、非秘匿ブロックは、圧縮方式を特定する情報を含むヘッダ領域を含む。
【００３３】
ステップＳ１１４で使用される圧縮形式に特に限定はないが、非秘匿データ処理部１１４は、例えば、非特許文献１に記載されたdeflate圧縮形式を用いて非秘匿ブロックを生成することができる。deflate圧縮形式を用いる場合、非秘匿データ処理部１１４は、処理対象のデータ区分の非秘匿データをバイト単位で処理し、以下のように圧縮処理（処理１〜３）を行う。
【００３４】
(処理１)：処理対象のバイト又はそれを含むそれ以降の連続したバイト列が、既にステップＳ１１４の処理を行ったデータ区分（非秘匿データ）に含まれていたバイト又はバイト列と一致した場合、一致したバイト又はバイト列の長さと、当該一致したバイト又はバイト列と当該処理対象のバイトとの距離を特定する情報とを、処理対象のバイト又はそれを含むそれ以降の連続したバイト列に対応する符号として処理ブロックの要素に追加する。なお、この例の場合、「処理ブロック」をハフマン符号化したものが「非秘匿ブロック」となる。当該処理対象のバイト又はそれを含むそれ以降の連続したバイト列に続く他のバイトが、次の処理対象のバイトとされる。なお、処理対象のバイト又はそれを含むそれ以降の連続したバイト列が、既にステップＳ１１５の処理を行ったデータ区分（秘匿データ）に含まれていたバイト又はバイト列と一致した場合であっても、非秘匿データ処理部１１４は、当該一致したバイト又はバイト列の長さと、処理対象のバイトに一致したバイト又はバイト列と当該処理対象のバイトとの距離を特定する情報とを、処理ブロックの要素に追加することはしない。すなわち、非秘匿データ処理部１１４は、秘匿データから特定される情報を用いることなく処理ブロックを生成する。
【００３５】
(処理２)：一方、処理対象のバイトが、既にステップＳ１１４の処理を行ったデータ区分（非秘匿データ）に含まれていたバイトと一致しない場合、当該処理対象のバイトを、処理ブロックの要素に追加する。当該処理対象のバイトに続く他のバイトが、次の処理対象のバイトとされる。
【００３６】
(処理３)：上記の(処理１)(処理２)の処理が、処理対象のデータ区分の先頭位置から終端位置まで実行され、当該非秘匿データに対応する処理ブロックが生成される。生成された処理ブロックをハフマン符号化して生成されたハフマン符号を非秘匿ブロックとする。なお、非秘匿データ処理部１１４は、秘匿データから特定される情報を用いることなく処理ブロックを生成するため、非秘匿ブロックは秘匿データに依存しない。
【００３７】
一方、ステップＳ１１３で、処理対象のデータ区分が秘匿データＢであると判定された場合、秘匿データ処理部１１５に処理対象のデータ区分の秘匿データが入力される。秘匿データ処理部１１５は、当該データ区分の秘匿データを圧縮することなく、当該秘匿データを示す秘匿ブロックを生成し、当該秘匿ブロックを出力する（ステップＳ１１５）。例えば、秘匿データ処理部１１５は、当該データ区分の秘匿データをそのまま秘匿ブロックの要素とする。なお、秘匿ブロックは、圧縮方式（非圧縮）を特定する情報を含むヘッダ領域を含む。
【００３８】
次に、区分部１１３は、データＭのすべてのデータ区分に対し、ステップＳ１１４又は１１５の処理が済んだか否かを判定する（ステップＳ１１６）。ここで、データＭのすべてのデータ区分に対し、ステップＳ１１４又は１１５の処理が済んでいないと判定された場合、制御部１１８は、現在の処理対象のデータ区分に続く他のデータ区分を、新たな処理対象のデータ区分とし（ステップＳ１１７）、処理をステップＳ１１３に戻す。
【００３９】
一方、データＭのすべてのデータ区分に対し、ステップＳ１１４又は１１５の処理が済んだと判定された場合には、データＭのすべてのデータ区分に対してそれぞれ生成された各非秘匿ブロックと秘匿ブロックとがブロック連結部１１６に入力される。ブロック連結部１１６は、これらの非秘匿ブロックと秘匿ブロックとを連結した連結データを生成し、当該連結データを出力する（ステップＳ１１８）。
【００４０】
図５（Ｄ）（Ｅ）の例では、データ区分Ａ１〜Ａ６にそれぞれ対応する非秘匿ブロックＣＡ１〜ＣＡ６と、データ区分Ｂ１〜Ｂ４に対応する秘匿ブロックＵＢ１〜ＵＢ４とがブロック連結部１１６に入力され、ブロック連結部１１６が、これらを対応するデータ区分のもともとの配列順で連結した連結データ（図５（Ｅ））を生成する。
【００４１】
暗号化部１１７ｂは、ブロック連結部１１６から出力された連結データと、鍵メモリから読み出された暗号化のための鍵とを入力とし、当該鍵を用いて連結データの暗号化を行って暗号文Ｃ（図５（Ｆ））を生成し、当該暗号文Ｃを出力する（ステップＳ１１９）。なお、暗号化方式の一例は、非特許文献２に記載された方式である。
【００４２】
＜復号伸長処理＞
次に、本形態の復号伸長処理を説明する。
【００４３】
まず、復号伸長装置（図２）の復号部１２１ｂに暗号文Ｃ（図５（Ｆ））が入力される（ステップＳ１２１）。復号部１２１ｂは、鍵メモリ１２１ａから復号のための鍵を読み出し、この鍵を用いて暗号文Ｃを復号して連結データを生成し、当該連結データ（図５（Ｅ））を出力する（ステップＳ１２２）。
【００４４】
次に、区分部１２２に連結データが入力される。区分部１２２は、入力された連結データを非秘匿ブロックと秘匿ブロックとに区分する。区分部１２２は、例えば、前述した非秘匿ブロック及び秘匿ブロックが含むヘッダ領域を参照して、連結データを非秘匿ブロックと秘匿ブロックとに区分する。そして、区分部１２２は、既にステップＳ１２３又はＳ１２４の処理を行ったブロック以外のブロック（ブロックとは非秘匿ブロックや秘匿ブロックを意味する）のうち、先頭に最も近いブロックを処理対象とし、当該ブロックが秘匿ブロックか否かを判定する（ステップＳ１２３）。なお、連結データに対してステップＳ１２３又はＳ１２４の処理が一度も行われていない場合には、連結データの先頭のブロック（図５（Ｅ）の例ではデータ区分ＣＡ１）が処理対象とされる。また、ステップＳ１２３の処理は、連結データをすべてのブロック（非秘匿ブロックと秘匿ブロック）に区分してから処理対象のブロックが秘匿データか否かを判定することとしてもよいし、処理対象のブロックのみを特定してから当該処理対象のブロックが秘匿ブロックか否かを判定することとしてもよい。
【００４５】
ここで、処理対象のブロックが非秘匿ブロックであると判定された場合、非秘匿データ処理部１２４に処理対象の非秘匿ブロックが入力される。非秘匿データ処理部１２４は、当該非秘匿ブロックを伸長して非秘匿データからなるデータ区分を生成し、当該非秘匿データからなるデータ区分を出力する（ステップＳ１２４）。この処理は、前述したステップＳ１１４の処理の逆処理となる。すなわち、非秘匿データ処理部１２４は、秘匿データから特定される情報を用いることなく非秘匿ブロックを伸長して非秘匿データからなるデータ区分を生成する。例えば、図５（Ｃ）〜（Ｅ）の例では、非秘匿データ処理部１２４は、非秘匿データからなるデータ区分Ａ１〜Ａ６を生成する。
【００４６】
一方、処理対象のブロックが秘匿ブロックであると判定された場合、秘匿データ処理部１２５に処理対象の秘匿ブロックが入力される。秘匿データ処理部１２５は、伸長処理を行うことなく、当該秘匿ブロックを示す秘匿データからなるデータ区分を生成し、当該秘匿データからなるデータ区分を出力する（ステップＳ１２５）。この処理は、前述したステップＳ１１５の処理の逆処理となる。例えば、図５（Ｃ）〜（Ｅ）の例では、秘匿データ処理部１２５は、秘匿データからなるデータ区分Ｂ１〜Ｂ４を生成する。
【００４７】
次に、区分部１２２は、連結データのすべてのブロックに対し、ステップＳ１２４又は１２５の処理が済んだか否かを判定する（ステップＳ１２６）。ここで、連結データのすべてのブロックに対し、ステップＳ１２４又は１２５の処理が済んでいないと判定された場合、制御部１２８は、現在の処理対象のブロックに続く他のブロックを新たな処理対象のブロックとし（ステップＳ１２７）、処理をステップＳ１２３に戻す。
【００４８】
一方、連結データのすべてのブロックに対し、ステップＳ１２４又は１２５の処理が済んだと判定された場合、連結データのすべてのブロックに対してそれぞれ生成された非秘匿データと秘匿データとが連結部１２６に入力される。連結部１２６は、これらの非秘匿データと秘匿データとを連結した復元データＭ’を生成し、当該復元データＭ’を出力する（ステップＳ１２８）。
【００４９】
図５（Ｃ）（Ｄ）の例では、非秘匿データからなるデータ区分Ａ１〜Ａ６と、秘匿データからなるデータ区分Ｂ１〜Ｂ４とが連結部１２６に入力され、連結部１２６がこれらを対応する非秘匿ブロックＣＡ１〜ＣＡ６と秘匿ブロックＵＢ１〜ＵＢ４の配列順で連結した復元データＭ’（図５（Ｃ））を生成する。
【００５０】
〔第２実施形態〕
次に、本発明の第２実施形態を説明する。
【００５１】
第２実施形態は第１実施形態の変形例であり、圧縮暗号化装置がデータＭを秘匿データと非秘匿データとの区分するための手段が相違する。すなわち、第１実施形態では、秘匿性識別情報ＳＩＤを用いてデータＭの秘匿データの位置と非秘匿データの位置とを特定していた。これに対し、第２実施形態では、秘匿性識別情報ＳＩＤの代わりに、秘匿性が要求される部分を表す正規表現の集合を用い、データＭの秘匿データの位置と非秘匿データの位置とを特定する。すなわち、この場合の圧縮暗号化装置の区分部は、データＭを捜査してこのような正規表現とデータＭの部分とがマッチするかを検証し、正規表現にマッチする部分の先頭位置と末尾位置との組を特定し、これを秘匿性識別情報ＳＩＤとして第１実施形態の処理を行う。例えば、秘匿性が要求されるパスワード部分が"PASS.....111"と正規表現される場合には、圧縮暗号化装置の区分部は、データＭから"PASS.....111"で正規表現される部分（例えば"PASS125475111"）を抽出し、その部分を秘匿データとし、その部分の先頭位置と末尾位置との組を特定する。なお、「.」は任意の一文字を意味する。
【００５２】
その他、正規表現の代わりに、秘匿性が要求される部分を特定するメタ情報を用い、データＭから秘匿データを抽出し、その先頭位置と末尾位置との組を特定してもよい。
【００５３】
〔その他の変形例等〕
なお、本発明は上述の実施形態に限定されるものではない。例えば、上述の各実施形態の圧縮暗号化処理では、データＭ中の非秘匿データ及び秘匿データをさらに区分したデータ区分を処理対象として圧縮や暗号化を行った。しかし、圧縮や暗号化の方式によっては、非秘匿データ及び秘匿データをさらに区分することなく、圧縮や暗号化を行ってもよい。また、図５のＣＡ１〜ＣＡ６をDeflate圧縮形式における圧縮ブロックの形式とし、図５のＵＣＡ１〜ＵＣＡ６をDeflate圧縮形式における非圧縮ブロックの形式としてもよい。
【００５４】
また、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
【００５５】
また、上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
【００５６】
また、このプログラムの流通は、例えば、そのプログラムを記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【００５７】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。
【００５８】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【符号の説明】
【００５９】
１１０  圧縮暗号化装置
１２０  復号伸長装置
【図１】
2011041102.tif 000003
【図２】
2011041102.tif 000004
【図３】
2011041102.tif 000005
【図４】
2011041102.tif 000006
【図５】
2011041102.tif 000007