(57)【要約】  第１のデータ圧縮処理において、入力記号の直前Ｐ個の記号に基づいて選択された圧縮辞書に従って、その入力記号の圧縮符号が生成され、（Ｐ＋１）Ｋ＋１番目の圧縮符号を暗号化して、圧縮暗号符号が生成される。そして、圧縮暗号符号と他の圧縮符号からなる圧縮暗号データが出力される。第２のデータ圧縮処理において、圧縮対象データの先頭にビット列が付加され、入力記号の直前のビット列または記号に基づいて選択された圧縮辞書に従って、その入力記号の圧縮符号が生成される。そして、複数の圧縮符号が交互に別々の出力先へ出力される。
2008078390.tif 000002
【特許請求の範囲】
【請求項１】
複数の記号からなる圧縮対象データを入力する入力部と、
複数の圧縮辞書を保持する圧縮辞書保持部と、
１以上の整数をＰとして、入力記号の直前Ｐ個の記号に基づいて、前記複数の圧縮辞書の中から圧縮辞書を選択し、選択された圧縮辞書に従って該入力記号を符号化して、圧縮符号を生成する圧縮部と、
生成される圧縮符号を格納する格納部と、
０以上の整数をＫとして、前記複数の記号から生成される複数の圧縮符号のうち、（Ｐ＋１）Ｋ＋１番目の圧縮符号を暗号化して、圧縮暗号符号を生成する暗号化部と、
前記圧縮暗号符号と、前記複数の圧縮符号のうち暗号化されていない他の圧縮符号とを出力する出力部として、
コンピュータを機能させるためのプログラム。
【請求項２】
前記圧縮部は、前記入力記号の直前の１つの記号に基づいて、前記複数の圧縮辞書の中から圧縮辞書を選択し、選択された圧縮辞書に従って該入力記号を符号化し、前記暗号化部は、前記複数の圧縮符号のうち奇数番目の圧縮符号を暗号化し、前記出力部は、前記圧縮暗号符号を奇数番目に配置し、前記他の圧縮符号を偶数番目に配置した圧縮暗号データを出力することを特徴とする請求項１記載のプログラム。
【請求項３】
前記圧縮部は、前記入力記号の直前の２つの記号に基づいて、前記複数の圧縮辞書の中から圧縮辞書を選択し、選択された圧縮辞書に従って該入力記号を符号化し、前記暗号化部は、前記複数の圧縮符号のうち３Ｋ＋１番目の圧縮符号を暗号化し、前記出力部は、前記圧縮暗号符号を３Ｋ＋１番目に配置し、前記他の圧縮符号を元の位置に配置した圧縮暗号データを出力することを特徴とする請求項１記載のプログラム。
【請求項４】
前記圧縮部は、前記選択された圧縮辞書に従って前記入力記号を含む記号列を符号化して、前記圧縮符号を生成することを特徴とする請求項１、２、または３記載のプログラム。
【請求項５】
前記出力部は、複数の圧縮暗号符号を１箇所にまとめて配置した圧縮暗号データを出力することを特徴とする請求項１記載のプログラム。
【請求項６】
複数の記号からなる圧縮対象データを入力する入力部と、
前記圧縮対象データの先頭に任意のビット列を付加するビット付加部と、
複数の圧縮辞書を保持する圧縮辞書保持部と、
入力記号の直前の前記ビット列または記号に基づいて、前記複数の圧縮辞書の中から圧縮辞書を選択し、選択された圧縮辞書に従って該入力記号を符号化して、圧縮符号を生成する圧縮部と、
生成される圧縮符号を格納する格納部と、
前記ビット列から生成される圧縮符号と、前記圧縮対象データにおいて偶数番目の記号から生成される圧縮符号とを、第１の出力先へ出力する第１の出力部と、
前記圧縮対象データにおいて奇数番目の記号から生成される圧縮符号を、前記第１の出力先とは異なる第２の出力先へ出力する第２の出力部として、
コンピュータを機能させるためのプログラム。
【請求項７】
複数の圧縮暗号符号および複数の圧縮符号からなる復元対象データを入力する入力部と、
入力される復元対象データを格納する格納部と、
前記複数の圧縮暗号符号を暗号解読して、複数の圧縮符号を生成する暗号解読部と、
複数の圧縮辞書を保持する圧縮辞書保持部と、
１以上の整数をＰとし、０以上の整数をＫとして、前記暗号解読部により生成される複数の圧縮符号を（Ｐ＋１）Ｋ＋１番目に配置し、前記復元対象データに含まれる複数の圧縮符号を他の位置に配置した圧縮符号列を復号するとき、注目する圧縮符号の直前１つ以上の圧縮符号を復号して得られる直前Ｐ個の記号に基づいて、前記複数の圧縮辞書の中から圧縮辞書を選択し、選択された圧縮辞書に従って該注目する圧縮符号を復号して、記号を生成する復元部と、
前記圧縮符号列から生成される複数の記号を出力する出力部として、
コンピュータを機能させるためのプログラム。
【請求項８】
前記入力部は、前記複数の圧縮暗号符号を奇数番目に配置し、前記複数の圧縮符号を偶数番目に配置した圧縮暗号データを、前記復元対象データとして入力し、前記暗号解読部は、前記復元対象データのうち奇数番目の圧縮暗号符号を暗号解読し、前記復元部は、前記注目する圧縮符号の直前の１つの圧縮符号を復号して得られる１つの記号に基づいて、前記複数の圧縮辞書の中から圧縮辞書を選択し、選択された圧縮辞書に従って該注目する圧縮符号を復号することを特徴とする請求項７記載のプログラム。
【請求項９】
前記入力部は、前記複数の圧縮暗号符号を３Ｋ＋１番目に配置し、前記複数の圧縮符号を他の位置に配置した圧縮暗号データを、前記復元対象データとして入力し、前記暗号解読部は、前記復元対象データのうち３Ｋ＋１番目の圧縮暗号符号を暗号解読し、前記復元部は、前記注目する圧縮符号の直前の２つの圧縮符号を復号して得られる２つの記号に基づいて、前記複数の圧縮辞書の中から圧縮辞書を選択し、選択された圧縮辞書に従って該注目する圧縮符号を復号することを特徴とする請求項７記載のプログラム。
【請求項１０】
前記復元部は、前記選択された圧縮辞書に従って前記注目する圧縮符号を復号して、１つ以上の記号からなる記号列を生成することを特徴とする請求項７、８、または９記載のプログラム。
【請求項１１】
前記入力部は、前記複数の圧縮暗号符号を１箇所にまとめて配置した圧縮暗号データを、前記復元対象データとして入力することを特徴とする請求項７記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの格納または通信のためにデータを電子的に圧縮（compress）する装置およびプログラムと、圧縮されたデータを電子的に復元（decompress）する装置およびプログラムに関する。
【背景技術】
【０００２】
近年、文字コード、画像データ等の様々な種類のデータがコンピュータで扱われるようになるのに伴い、取り扱われるデータ量も増大している。また、インターネットおよび携帯端末の普及に伴い、データを格納したり、データ通信を行ったりするときの安全性に対する意識が高くなってきている。このため、データ量削減機能だけでなく、データ秘匿機能が必要とされるケースが増えてきた。【０００３】
従来のデータ圧縮方法では、図１に示すように、圧縮処理と暗号処理が独立に行われる。まず、原本データ１０１のデータ量を削減するために、原本データ１０１を圧縮して圧縮データ１０２を生成し、次に、安全性確保のために、圧縮データ１０２を暗号化（encrypt ）して圧縮暗号データ１０３を生成する。しかし、この方法では、圧縮処理と暗号処理の両方がデータ全体を対象として行われるため、コンピュータの処理負荷が高くなるという問題がある。【０００４】
そこで、処理負荷を低減するため、図２に示すように、暗号化対象データを削減する方法が提案されている（例えば、下記の特許文献１を参照）。まず、原本データ２０１を圧縮して圧縮データ２０２を生成し、次に、圧縮データ２０２の途中からは原本データ２０１を復元しにくいという性質を利用して、圧縮データ２０２の先頭のみを暗号化して圧縮暗号データ２０３を生成する。しかし、この方法では、頻度分布解析等により、圧縮暗号データ２０３の途中から原本データ２０１を復元される可能性が否定できない。【０００５】
従来のデータ圧縮方法としては、文脈モデル圧縮方法が知られている（例えば、下記の非特許文献１を参照）。この方法は、文脈を用いて次の文字の予測精度を上げることで、圧縮率を高める方法である。【０００６】
下記の特許文献２は、データ列の先頭にスクランブル値を付与して圧縮する方法に関し、非特許文献２は、固定長−可変長符号（ＦＶ符号）および可変長−固定長符号（ＶＦ符号）に関する。
【特許文献１】国際公開第９７／１０６５９号パンフレット
【特許文献２】特開２００５−２１７８４２号公報
【非特許文献１】John G. Cleary et al., “Unbounded Length Contexts for PPM ”, 1995 IEEE Data Compression Conference, p.52-61
【非特許文献２】植松友彦著，“文書データ圧縮アルゴリズム入門”，ＣＱ出版社，ｐ．２６−２８，１３１，１９９４年
【発明の開示】
【０００７】
本発明の課題は、データ圧縮処理において、安全性を確保しながら処理負荷を削減することである。
本発明の第１のデータ圧縮装置は、入力部、圧縮辞書保持部、圧縮部、格納部、暗号化部、および出力部を備える。入力部は、複数の記号からなる圧縮対象データを入力し、圧縮辞書保持部は、複数の圧縮辞書を保持する。圧縮部は、１以上の整数をＰとして、入力記号の直前Ｐ個の記号に基づいて、複数の圧縮辞書の中から圧縮辞書を選択し、選択された圧縮辞書に従って入力記号を符号化して、圧縮符号を生成する。
【０００８】
格納部は、生成される圧縮符号を格納し、暗号化部は、０以上の整数をＫとして、複数の記号から生成される複数の圧縮符号のうち、（Ｐ＋１）Ｋ＋１番目の圧縮符号を暗号化して、圧縮暗号符号を生成する。出力部は、圧縮暗号符号と、複数の圧縮符号のうち暗号化されていない他の圧縮符号とを出力する。
【０００９】
第１のデータ圧縮装置によれば、各入力記号の直前Ｐ個の記号に応じて異なる圧縮辞書が使用されるため、Ｐ個の記号によって次の記号の圧縮符号が変更される。したがって、第三者による頻度分布解析が困難になり、圧縮暗号データの途中から原本データを復元される可能性が低下する。
【００１０】
さらに、（Ｐ＋１）Ｋ＋１番目の圧縮符号を暗号化しておくことで、その他の圧縮符号の復元処理において、使用する圧縮辞書を特定できなくなる。したがって、圧縮データ全体を暗号化することなく、安全性を向上させることができる。
【００１１】
本発明の第２のデータ圧縮装置は、入力部、ビット付加部、圧縮辞書保持部、圧縮部、格納部、第１の出力部、および第２の出力部を備える。入力部は、複数の記号からなる圧縮対象データを入力し、ビット付加部は、圧縮対象データの先頭に任意のビット列を付加し、圧縮辞書保持部は、複数の圧縮辞書を保持する。圧縮部は、入力記号の直前のビット列または記号に基づいて、複数の圧縮辞書の中から圧縮辞書を選択し、選択された圧縮辞書に従って入力記号を符号化して、圧縮符号を生成する。
【００１２】
格納部は、生成される圧縮符号を格納する。第１の出力部は、ビット列から生成される圧縮符号と、圧縮対象データにおいて偶数番目の記号から生成される圧縮符号とを、第１の出力先へ出力する。第２の出力部は、圧縮対象データにおいて奇数番目の記号から生成される圧縮符号を、第１の出力先とは異なる第２の出力先へ出力する。
【００１３】
第２のデータ圧縮装置によれば、各入力記号の直前の記号に応じて異なる圧縮辞書が使用されるため、その記号によって次の記号の圧縮符号が変更される。したがって、第三者による頻度分布解析が困難になり、圧縮暗号データの途中から原本データを復元される可能性が低下する。
【００１４】
さらに、生成される圧縮符号を交互に別々の出力先に出力することで、各出力先の圧縮符号の復元処理において圧縮辞書を特定できなくなる。それに加えて、圧縮対象データの先頭に任意のビット列を付加しておくことで、元の圧縮対象データにおいて１番目の記号から生成された圧縮符号の復元処理においても、圧縮辞書を特定できなくなる。したがって、圧縮データをまったく暗号化することなく、安全性を向上させることができる。
【００１５】
本発明の第１のデータ復元装置は、入力部、格納部、暗号解読部、圧縮辞書保持部、復元部、および出力部を備える。入力部は、複数の圧縮暗号符号および複数の圧縮符号からなる復元対象データを入力し、格納部は、入力される復元対象データを格納する。暗号解読部は、複数の圧縮暗号符号を暗号解読（decrypt ）して、複数の圧縮符号を生成し、圧縮辞書保持部は、複数の圧縮辞書を保持する。
【００１６】
復元部は、１以上の整数をＰとし、０以上の整数をＫとして、暗号解読部により生成される複数の圧縮符号を（Ｐ＋１）Ｋ＋１番目に配置し、復元対象データに含まれる複数の圧縮符号を他の位置に配置した圧縮符号列を復号するとき、注目する圧縮符号の直前１つ以上の圧縮符号を復号して得られる直前Ｐ個の記号に基づいて、複数の圧縮辞書の中から圧縮辞書を選択し、選択された圧縮辞書に従って注目する圧縮符号を復号して、記号を生成する。出力部は、圧縮符号列から生成される複数の記号を出力する。
【００１７】
第１のデータ復元装置によれば、第１のデータ圧縮装置により生成される圧縮暗号データの暗号解読および復元を行うことができる。
本発明の第２のデータ復元装置は、第１の入力部、第２の入力部、格納部、圧縮辞書保持部、復元部、ビット除去部、および出力部を備える。第１の入力部は、第１の入力元から複数の圧縮符号を入力し、第２の入力部は、第１の入力元とは異なる第２の入力元から複数の圧縮符号を入力する。格納部は、入力される圧縮符号を格納する。圧縮辞書保持部は、複数の圧縮辞書を保持する。
【００１８】
復元部は、第１の入力部により入力される複数の圧縮符号を奇数番目に配置し、第２の入力部により入力される複数の圧縮符号を偶数番目に配置した圧縮符号列を復号するとき、１番目の圧縮符号を復号して得られるビット列、または、注目する圧縮符号の直前の圧縮符号を復号して得られる記号に基づいて、複数の圧縮辞書の中から圧縮辞書を選択し、選択された圧縮辞書に従って注目する圧縮符号を復号して、記号を生成する。ビット除去部は、圧縮符号列から生成されるビット列および複数の記号のうち、ビット列を除去し、出力部は、複数の記号を出力する。
【００１９】
第２のデータ復元装置によれば、第２のデータ圧縮装置により生成される圧縮データの復元を行うことができる。
【図面の簡単な説明】
【００２０】
【図１】従来の第１のデータ圧縮方法を示す図である。
【図２】従来の第２のデータ圧縮方法を示す図である。
【図３】本発明の第１のデータ圧縮装置の構成図である。
【図４】１次文脈モデル圧縮方法によるデータ圧縮処理を示す図である。
【図５】２次文脈モデル圧縮方法によるデータ圧縮処理を示す図である。
【図６】Ｐ次文脈モデル圧縮方法によるデータ圧縮処理を示す図である。
【図７】ＶＦ符号によるデータ圧縮処理を示す図である。
【図８】暗号化部分を１箇所にまとめるデータ圧縮処理を示す図である。
【図９】本発明の第２のデータ圧縮装置の構成図である。
【図１０】圧縮データを２つの出力先に出力するデータ圧縮処理を示す図である。
【図１１】本発明の第１のデータ復元装置の構成図である。
【図１２】１次文脈モデル復元方法によるデータ復元処理を示す図である。
【図１３】２次文脈モデル復元方法によるデータ復元処理を示す図である。
【図１４】Ｐ次文脈モデル復元方法によるデータ復元処理を示す図である。
【図１５】ＶＦ符号を用いた圧縮暗号データのデータ復元処理を示す図である。
【図１６】暗号化部分を１箇所にまとめた圧縮暗号データのデータ復元処理を示す図である。
【図１７】本発明の第２のデータ復元装置の構成図である。
【図１８】２つの入力元から圧縮データを入力するデータ復元処理を示す図である。
【図１９】情報処理装置の構成図である。
【図２０】プログラムおよびデータの提供方法を示す図である。
【発明を実施するための最良の形態】
【００２１】
以下、図面を参照しながら、本発明を実施するための最良の形態を詳細に説明する。
本実施形態のデータ圧縮装置では、非特許文献１に記載された文脈モデル圧縮方法を採用して、データを圧縮する。一般に、圧縮対象データ（原本データ）は複数の記号から構成されるが、以下では、複数の文字からなる文字列を圧縮対象データとして説明を行う。【００２２】
図３は、このようなデータ圧縮装置の構成例を示している。このデータ圧縮装置は、データ入力部３０１、文脈モデル圧縮部３０２、符号出力制御部３０３、暗号化部３０４、およびデータ出力部３０５を備える。文脈モデル圧縮部３０２は、圧縮部３１１と、辞書３２１−１および３２１−２を含む複数の圧縮辞書（符号表）を保持する圧縮辞書保持部３１２を含む。【００２３】
データ入力部３０１は、圧縮部３１１および圧縮辞書保持部３１２に符号化対象文字列を１文字ずつ入力する。圧縮辞書保持部３１２は、圧縮部３１１に入力される文字の直前の１つ以上の文字（直前文字列）を文脈として用いて、この文脈に基づいて圧縮に使用する辞書ｘを選択し、圧縮部３１１に出力する。圧縮部３１１は、辞書ｘに従って入力文字を符号化して、圧縮符号を生成し、符号出力制御部３０３に出力する。【００２４】
なお、符号化対象文字列の１番目の文字を符号化するときは、例えば、ヌル（null）を文脈として用いて辞書ｘが選択される。
符号出力制御部３０３は、圧縮部３１１から出力される圧縮符号列から、一定間隔で圧縮符号を抜き出して暗号化部３０４に出力し、その他の圧縮符号をデータ出力部３０５に出力する。暗号化部３０４は、符号出力制御部３０３から受け取った圧縮符号を暗号化して、圧縮暗号符号を生成し、データ出力部３０５に出力する。【００２５】
そして、データ出力部３０５は、暗号化部３０４から受け取った圧縮暗号符号を、符号出力制御部３０３から出力される圧縮符号列の元の位置に挿入して、圧縮暗号データを生成し出力する。【００２６】
文脈モデル圧縮方法によれば、文脈に応じて異なる圧縮辞書が使用されるため、文脈によって次の文字の圧縮符号が変更される。したがって、第三者による頻度分布解析が困難になり、圧縮暗号データの途中から原本データを復元される可能性が低下する。【００２７】
さらに、文脈となる文字の圧縮符号を暗号化しておくことで、その他の圧縮符号の復元処理において文脈が分からなくなり、使用する圧縮辞書を特定できなくなる。したがって、一定間隔毎に圧縮符号を暗号化するだけで、圧縮データ全体を暗号化することなく、安全性を向上させることができる。【００２８】
図４は、１次文脈モデル圧縮方法を採用した場合のデータ圧縮処理を示している。この場合、ｎ個の文字Ｘ1 〜Ｘn からなる文字列が圧縮対象データ４０１として入力され、各文字の直前の１文字を文脈として用いて辞書が選択される。そして、その辞書を用いて、ＦＶ符号による符号化が行われ、ｎ個の圧縮符号Ｘ’1 〜Ｘ’n からなる圧縮データ４０２が生成される。【００２９】
ＦＶ符号は、固定長のデータに対して出現確率に従った可変長の符号を割り当てる符号化方法であり、例えば、ハフマン符号やスプレイ（Ｓｐｌａｙ）符号がこれに該当する。
次に、圧縮データ４０２のうち奇数番目の圧縮符号のみが暗号化されて、圧縮暗号符号Ｘ”1 、Ｘ”3 等が生成され、圧縮データ４０２の元の位置に挿入される。これにより、偶数番目の圧縮符号をそのまま含んだ圧縮暗号データ４０３が生成される。【００３０】
図５は、２次文脈モデル圧縮方法を採用した場合のデータ圧縮処理を示している。この場合、圧縮対象データ４０１において、各文字の直前の２文字を文脈として用いて辞書が選択される。そして、その辞書を用いて、ＦＶ符号による符号化が行われ、ｎ個の圧縮符号Ｘ’1 〜Ｘ ’n からなる圧縮データ５０１が生成される。【００３１】
次に、０以上の整数をＫとして、圧縮データ５０１のうち３Ｋ＋１番目の圧縮符号のみが暗号化されて、圧縮暗号符号Ｘ”1 、Ｘ”4 等が生成され、圧縮データ５０１の元の位置に挿入される。これにより、その他の位置の圧縮符号をそのまま含んだ圧縮暗号データ５０２が生成される。【００３２】
図６は、１以上の整数をＰとするＰ次文脈モデル圧縮方法を採用した場合のデータ圧縮処理を示している。この場合、圧縮対象データ４０１において、各文字の直前のＰ文字を文脈として用いて辞書が選択される。そして、その辞書を用いて、ＦＶ符号による符号化が行われ、ｎ個の圧縮符号Ｘ’1 〜Ｘ ’n からなる圧縮データ６０１が生成される。【００３３】
次に、圧縮データ６０１のうち（Ｐ＋１）Ｋ＋１番目の圧縮符号のみが暗号化されて、圧縮暗号符号Ｘ”1 、Ｘ”P+2 等が生成され、圧縮データ６０１の元の位置に挿入される。これにより、その他の位置の圧縮符号をそのまま含んだ圧縮暗号データ６０２が生成される。Ｐ＝１の場合は、図４に示したデータ圧縮処理になり、Ｐ＝２の場合は、図５に示したデータ圧縮処理になる。【００３４】
なお、圧縮データ６０１の（Ｐ＋１）Ｋ＋１番目の圧縮符号に加えて、その他の位置の圧縮符号の一部をさらに暗号化するようにしてもよい。
図７は、図４のデータ圧縮処理において、ＦＶ符号の代わりにＶＦ符号を用いた例を示している。ＶＦ符号は、データ圧縮に繰り返しよく出現する文字列を一まとまりで符号化する符号化方法であり、例えば、ＬＺ７８符号がこれに該当する。【００３５】
この場合、圧縮対象データ４０１において、各文字列の直前の１文字を文脈として用いて辞書が選択される。そして、その辞書を用いて、ＶＦ符号による各文字列の符号化が行われ、例えば、文字列Ｘ1 Ｘ2 Ｘ3 、Ｘ4 Ｘ5 、およびＸ6 ．．．Ｘ12から、それぞれ圧縮符号（Ｘ1 Ｘ2 Ｘ3 ）’、（Ｘ4 Ｘ5 ）’、および（Ｘ6 ．．．Ｘ12）’が生成される。【００３６】
次に、これらの圧縮符号を含む圧縮データ７０１のうち、奇数番目の圧縮符号のみが暗号化されて、圧縮暗号符号（Ｘ1 Ｘ2 Ｘ3 ）”、（Ｘ6 ．．．Ｘ12）”等が生成され、圧縮データ７０１の元の位置に挿入される。これにより、偶数番目の圧縮符号をそのまま含んだ圧縮暗号データ７０２が生成される。【００３７】
同様にして、図５および図６のデータ圧縮処理においても、ＦＶ符号の代わりにＶＦ符号を用いることが可能である。
ところで、図４〜図７のデータ圧縮処理では、圧縮暗号データの並べ替えを行わずに出力しているため、暗号化部分と非暗号化部分が交互に配置されている。そこで、暗号化部分が１箇所にまとまるように、圧縮暗号データを並べ替えて出力するようにしてもよい。【００３８】
図８は、図４のデータ圧縮処理において、このような並べ替えを行う例を示している。ｎが偶数の場合、符号出力制御部３０３は、奇数番目の圧縮符号Ｘ’1 、Ｘ’3 、・・・、Ｘ’n-1 を一まとまりにして暗号化部３０４に出力し、偶数番目の圧縮符号Ｘ’2 、Ｘ’4 、・・・、Ｘ’n を一まとまりにしてデータ出力部３０５に出力する。暗号化部３０４は、符号出力制御部３０３から受け取った一まとまりの圧縮符号を暗号化して、データ出力部３０５に出力する。【００３９】
そして、データ出力部３０５は、暗号化部３０４から受け取った圧縮暗号符号列を、符号出力制御部３０３から出力される圧縮符号列の先頭に付加して、圧縮暗号データ８０２を生成し出力する。【００４０】
同様にして、図５および図６のデータ圧縮処理においても、暗号化部分が１箇所にまとまるように、圧縮暗号データを並べ替えることが可能である。
以上説明したデータ圧縮処理では、圧縮符号の一部を暗号化することで安全性を向上させているが、暗号化を行う代わりに、圧縮符号の一部を別の記憶装置または通信ネットワークに出力することで、安全性を確保することも可能である。【００４１】
図９は、このようなデータ圧縮装置の構成例を示している。このデータ圧縮装置は、データ入力部９０１、ビット付加部９０２、文脈モデル圧縮部９０３、符号出力制御部９０４、およびデータ出力部９０５、９０６を備える。文脈モデル圧縮部９０３は、圧縮部９１１と、辞書９２１−１および９２１−２を含む複数の圧縮辞書を保持する圧縮辞書保持部９１２を含む。【００４２】
ビット付加部９０２は、符号化対象文字列の先頭に、任意のビット列を乱数として付加する。この乱数のビット長としては、あらかじめ決められた長さ、または、オペレータにより指定された長さが用いられる。データ入力部９０１は、付加された乱数を１番目の文字として、圧縮部９１１および圧縮辞書保持部９１２に符号化対象文字列を１文字ずつ入力する。文脈モデル圧縮部９０３の動作は、図３の文脈モデル圧縮部３０２において１次文脈モデル圧縮方法を採用した場合と同様である。【００４３】
符号出力制御部９０４は、圧縮部９１１から出力される圧縮符号列のうち、奇数番目の圧縮符号をデータ出力部９０５に出力し、偶数番目の圧縮符号をデータ出力部９０６に出力する。これにより、乱数から生成される圧縮符号と、元の符号化対象文字列において偶数番目の文字から生成される圧縮符号が、データ出力部９０５に出力される。一方、元の符号化対象文字列において奇数番目の文字から生成される圧縮符号は、データ出力部９０６に出力される。【００４４】
データ出力部９０５は、受け取った圧縮符号を第１の出力先に出力し、データ出力部９０６は、受け取った圧縮符号を第２の出力先に出力する。第１および第２の出力先としては、それぞれ異なる記憶装置／通信ネットワークが割り当てられる。【００４５】
上述したように、文脈モデル圧縮方法によれば、文脈に応じて異なる圧縮辞書が使用されるため、圧縮暗号データの途中から原本データを復元される可能性が低下する。
さらに、文脈となる文字の圧縮符号を別の出力先に保存／転送することで、その他の圧縮符号の復元処理において圧縮辞書を特定できなくなる。それに加えて、符号化対象文字列の先頭に乱数を付加しておくことで、元の符号化対象文字列において１番目の文字から生成された圧縮符号の復元処理においても、乱数の値が分からなければ圧縮辞書を特定できなくなる。したがって、圧縮データをまったく暗号化することなく、安全性を向上させることができる。【００４６】
図１０は、１次文脈モデル圧縮方法を採用した場合のデータ圧縮処理を示している。この場合、ｎ個の文字Ｘ1 〜Ｘn からなる文字列が圧縮対象データとして入力され、その先頭に乱数Ｒが付加されて、１文字多い圧縮対象データ１００１が生成される。そして、圧縮対象データ１００１の各文字の直前の１文字を文脈として用いて辞書が選択され、その辞書を用いた符号化により、ｎ＋１個の圧縮符号Ｒ’およびＸ’1 〜Ｘ’n が生成される。【００４７】
ｎが偶数の場合、圧縮符号Ｒ’と、元の圧縮対象データにおいて偶数番目の文字から生成された圧縮符号Ｘ’2 、Ｘ’4 、・・・、Ｘ’n からなる圧縮データ１００２は、ハードディスクドライブ（ＨＤＤ）１００４に保存される。一方、元の圧縮対象データにおいて奇数番目の文字から生成された圧縮符号Ｘ’1 、Ｘ’3 、・・・、Ｘ’n-1 からなる圧縮データ１００３は、ＵＳＢ（Universal Serial Bus）メモリ１００５に保存される。圧縮データ１００２のみ、または、圧縮データ１００３のみからは、元の圧縮対象データを復元することができないため、データの秘匿性が確保される。【００４８】
次に、図１１から図１８までを参照しながら、データ復元装置の構成と動作について説明する。データ復元装置には、図３または図９のデータ圧縮装置により生成された圧縮暗号データまたは圧縮データが、復元対象データとして入力される。【００４９】
図１１は、図３のデータ圧縮装置により生成された圧縮暗号データを復元するデータ復元装置の構成例を示している。このデータ復元装置は、データ入力部１１０１、符号入力制御部１１０２、暗号解読部１１０３、文脈モデル復元部１１０４、およびデータ出力部１１０５を備える。文脈モデル復元部１１０４は、復元部１１１１と、辞書１１２１−１および１１２１−２を含む複数の圧縮辞書を保持する圧縮辞書保持部１１１２を含む。【００５０】
データ入力部１１０１は、圧縮暗号符号および圧縮符号からなる復号対象データを符号入力制御部１１０２に入力し、符号入力制御部１１０２は、入力された復号対象符号列から、一定間隔で圧縮暗号符号を抜き出して暗号解読部１１０３に出力し、その他の圧縮符号を復元部１１１１に出力する。暗号解読部１１０３は、符号入力制御部１１０２から受け取った圧縮暗号符号を暗号解読して、圧縮符号を生成し、復元部１１１１に出力する。【００５１】
復元部１１１１は、暗号解読部１１０３から受け取った圧縮符号を、符号入力制御部１１０２から出力される圧縮符号列の元の位置に挿入して、圧縮符号列を生成する。そして、圧縮辞書保持部１１１２から出力される辞書ｘに従って、その圧縮符号列を１符号ずつ復号し、得られた文字を出力する。圧縮辞書保持部１１１２は、復元部１１１１から出力される１つ以上の文字（直前文字列）を文脈として用いて、この文脈に基づいて復元に使用する辞書ｘを選択し、復元部１１１１に出力する。【００５２】
なお、圧縮符号列の１番目の圧縮符号を復号するときは、例えば、ヌルを文脈として用いて辞書ｘが選択される。
データ出力部１１０５は、復元部１１１１から出力される文字列を、原本データとして出力する。【００５３】
図１２は、１次文脈モデル復元方法を採用した場合のデータ復元処理を示している。この場合、図４に示した圧縮暗号データ４０３が復元対象データとして入力され、そのうち奇数番目の圧縮暗号符号のみが暗号解読されて、圧縮符号Ｘ’1 、Ｘ’3 等が生成され、圧縮暗号データ４０３の元の位置に挿入される。これにより、偶数番目の圧縮符号をそのまま含んだ圧縮データ４０２が生成される。【００５４】
次に、圧縮データ４０２において、各圧縮符号の直前の１つの圧縮符号を復号して得られる文字を文脈として用いて、辞書が選択される。そして、その辞書を用いて各圧縮符号が復号され、原本データ４０１が生成される。【００５５】
図１３は、２次文脈モデル復元方法を採用した場合のデータ復元処理を示している。この場合、図５に示した圧縮暗号データ５０２が復元対象データとして入力され、そのうち３Ｋ＋１番目の圧縮暗号符号のみが暗号解読されて、圧縮符号Ｘ’1 、Ｘ’4 等が生成され、圧縮暗号データ５０２の元の位置に挿入される。これにより、その他の位置の圧縮符号をそのまま含んだ圧縮データ５０１が生成される。【００５６】
次に、圧縮データ５０１において、各圧縮符号の直前の２つの圧縮符号を復号して得られる２文字を文脈として用いて、辞書が選択される。そして、その辞書を用いて各圧縮符号が復号され、原本データ４０１が生成される。【００５７】
図１４は、Ｐ次文脈モデル復元方法を採用した場合のデータ復元処理を示している。この場合、図６に示した圧縮暗号データ６０２が復元対象データとして入力され、そのうち奇数番目の圧縮暗号符号のみが暗号解読されて、圧縮符号Ｘ’1 、Ｘ’P+2 等が生成され、圧縮暗号データ６０２の元の位置に挿入される。これにより、その他の位置の圧縮符号をそのまま含んだ圧縮データ６０１が生成される。【００５８】
次に、圧縮データ６０１において、各圧縮符号の直前のＰ個の圧縮符号を復号して得られるＰ個の文字を文脈として用いて、辞書が選択される。そして、その辞書を用いて各圧縮符号が復号され、原本データ４０１が生成される。Ｐ＝１の場合は、図１２に示したデータ復元処理になり、Ｐ＝２の場合は、図１３に示したデータ復元処理になる。【００５９】
図１５は、図７に示した圧縮暗号データ７０２のデータ復元処理を示している。この場合、圧縮暗号データ７０２が復元対象データとして入力され、そのうち奇数番目の圧縮暗号符号のみが暗号解読されて、圧縮符号（Ｘ1 Ｘ2 Ｘ3 ）’、（Ｘ6 ．．．Ｘ12）’等が生成され、圧縮暗号データ７０２の元の位置に挿入される。これにより、その他の位置の圧縮符号をそのまま含んだ圧縮データ７０１が生成される。【００６０】
次に、圧縮データ７０１において、各圧縮符号の直前の１つの圧縮符号を復号して得られる文字列のうち、直前の１文字を文脈として用いて、辞書が選択される。そして、その辞書を用いて各圧縮符号が復号され、原本データ４０１が生成される。【００６１】
なお、図５および図６のデータ圧縮処理において、ＦＶ符号の代わりにＶＦ符号を用いて生成された圧縮暗号データも、同様にして復元することが可能である。
図１６は、図８に示した圧縮暗号データ８０２のデータ復元処理を示している。この場合、圧縮暗号データ８０２が復元対象データとして入力され、符号入力制御部１１０２は、圧縮暗号データ８０２の先頭の圧縮暗号符号列を暗号解読部１１０３に出力し、その後に続く圧縮符号列を復元部１１１１に出力する。暗号解読部１１０３は、符号入力制御部１１０２から受け取った圧縮暗号符号列を一まとまりとして暗号解読して、圧縮データ８０１を生成し、復元部１１１１に出力する。【００６２】
復元部１１１１は、圧縮データ８０１に含まれる圧縮符号を、奇数番目の圧縮符号Ｘ’1 、Ｘ’3 、・・・、Ｘ’n-1 として用い、符号入力制御部１１０２から出力される圧縮符号を、偶数番目の圧縮符号Ｘ’2 、Ｘ’4 、・・・、Ｘ’n として用いて、１次文脈モデル復元方法により圧縮符号列を復号して、原本データ４０１を生成する。【００６３】
なお、図５および図６のデータ圧縮処理において、暗号化部分が１箇所にまとまるように並べ替えられた圧縮暗号データも、同様にして復元することが可能である。
図１７は、図９のデータ圧縮装置により生成された圧縮データを復元するデータ復元装置の構成例を示している。このデータ復元装置は、データ入力部１７０１、１７０２、符号入力制御部１７０３、文脈モデル復元部１７０４、データ出力部１７０５、およびビット除去部１７０６を備える。文脈モデル復元部１７０４は、復元部１７１１と、辞書１７２１−１および１７２１−２を含む複数の圧縮辞書を保持する圧縮辞書保持部１７１２を含む。【００６４】
データ入力部１７０１は、第１の入力元から圧縮符号を符号入力制御部１１０２に入力し、データ入力部１７０２は、第２の入力元から圧縮符号を符号入力制御部１１０２に入力する。第１および第２の入力元としては、それぞれ異なる記憶装置／通信ネットワークが用いられる。【００６５】
符号入力制御部１１０２は、データ入力部１７０１により入力される圧縮符号を奇数番目に配置し、データ入力部１７０２により入力される圧縮符号を偶数番目に配置した圧縮符号列を、復元部１７１１に出力する。その後の文脈モデル復元部１７０４の動作は、図１１の文脈モデル復元部１１０４において１次文脈モデル復元方法を採用した場合と同様である。【００６６】
復元部１１１１は、１番目の文字として乱数が配置された文字列をデータ出力部１７０５に出力し、ビット除去部１７０６は、その文字列の先頭から乱数に相当するビット列を除去する。そして、データ出力部１７０５は、ビット列が除去された文字列を、原本データとして出力する。【００６７】
図１８は、図１０に示した圧縮データ１００２および１００３のデータ復元処理を示している。この場合、ＨＤＤ１００４から圧縮データ１００２が入力され、ＵＳＢメモリ１００５から圧縮データ１００３が入力される。【００６８】
次に、圧縮データ１００２に含まれる圧縮符号Ｒ’、Ｘ’2 、Ｘ’4 、・・・、Ｘ’n を、奇数番目の圧縮符号として用い、圧縮データ１００３に含まれる圧縮符号Ｘ’1 、Ｘ’3 、・・・、Ｘ’n-1 を、偶数番目の圧縮符号として用いて、１次文脈モデル復元方法により圧縮符号列が復号され、文字列１００１が生成される。そして、文字列１００１の先頭の乱数Ｒが除去されて、原本データが生成される。【００６９】
図３および図９のデータ圧縮装置と、図１１および図１７のデータ復元装置は、例えば、図１９に示すような情報処理装置（コンピュータ）を用いて構成される。図１９の情報処理装置は、ＣＰＵ（中央処理装置）１９０１、メモリ１９０２、入力装置１９０３、出力装置１９０４、外部記憶装置１９０５、媒体駆動装置１９０６、およびネットワーク接続装置１９０７を備え、それらはバス１９０８により互いに接続されている。【００７０】
メモリ１９０２は、例えば、ＲＯＭ（read only memory）、ＲＡＭ（random access memory）等を含み、処理に用いられるプログラムおよびデータを格納する。ＣＰＵ１９０１は、メモリ１９０２を利用してプログラムを実行することにより、上述したデータ圧縮処理およびデータ復元処理を行う。【００７１】
図３のデータ圧縮装置において、圧縮辞書保持部３１２は、メモリ１９０２に対応し、圧縮部３１１、符号出力制御部３０３、および暗号化部３０４は、メモリ１９０２に格納されたプログラムに対応する。【００７２】
図９のデータ圧縮装置において、圧縮辞書保持部９１２は、メモリ１９０２に対応し、ビット付加部９０２、圧縮部９１１、および符号出力制御部９０４は、メモリ１９０２に格納されたプログラムに対応する。【００７３】
図１１のデータ復元装置において、圧縮辞書保持部１１１２は、メモリ１９０２に対応し、符号入力制御部１１０２、暗号解読部１１０３、および復元部１１１１は、メモリ１９０２に格納されたプログラムに対応する。【００７４】
図１７のデータ復元装置において、圧縮辞書保持部１７１２は、メモリ１９０２に対応し、符号入力制御部１７０３、復元部１７１１、およびビット除去部１７０６は、メモリ１９０２に格納されたプログラムに対応する。【００７５】
入力装置１９０３は、例えば、キーボード、ポインティングデバイス等であり、オペレータからの指示や情報の入力に用いられる。出力装置１９０４は、例えば、ディスプレイ、プリンタ、スピーカ等であり、オペレータへの問い合わせや処理結果の出力に用いられる。【００７６】
外部記憶装置１９０５は、例えば、磁気ディスク装置、光ディスク装置、光磁気ディスク装置、テープ装置等である。情報処理装置は、この外部記憶装置１９０５に、プログラムおよびデータを格納しておき、必要に応じて、それらをメモリ１９０２にロードして使用する。【００７７】
媒体駆動装置１９０６は、可搬記録媒体１９０９を駆動し、その記録内容にアクセスする。可搬記録媒体１９０９は、メモリカード、フレキシブルディスク、光ディスク、光磁気ディスク等の任意のコンピュータ読み取り可能な記録媒体である。オペレータは、この可搬記録媒体１９０９にプログラムおよびデータを格納しておき、必要に応じて、それらをメモリ１９０２にロードして使用する。【００７８】
ネットワーク接続装置１９０７は、ＬＡＮ（local area network）等の通信ネットワークに接続され、通信に伴うデータ変換を行う。また、情報処理装置は、必要に応じて、プログラムおよびデータを外部の装置からネットワーク接続装置１９０７を介して受け取り、それらをメモリ１９０２にロードして使用する。【００７９】
図２０は、図１９の情報処理装置にプログラムおよびデータを提供する方法を示している。可搬記録媒体１９０９やサーバ２００１のデータベース２０１１に格納されたプログラムおよびデータは、情報処理装置２００２のメモリ１９０２にロードされる。サーバ２００１は、そのプログラムおよびデータを搬送する搬送信号を生成し、通信ネットワーク上の任意の伝送媒体を介して情報処理装置２００２に送信する。ＣＰＵ１９０１は、そのデータを用いてそのプログラムを実行し、上述した処理を行う。
【図１】
2008078390.tif 000003
【図２】
2008078390.tif 000004
【図３】
2008078390.tif 000005
【図４】
2008078390.tif 000006
【図５】
2008078390.tif 000007
【図６】
2008078390.tif 000008
【図７】
2008078390.tif 000009
【図８】
2008078390.tif 000010
【図９】
2008078390.tif 000011
【図１０】
2008078390.tif 000012
【図１１】
2008078390.tif 000013
【図１２】
2008078390.tif 000014
【図１３】
2008078390.tif 000015
【図１４】
2008078390.tif 000016
【図１５】
2008078390.tif 000017
【図１６】
2008078390.tif 000018
【図１７】
2008078390.tif 000019
【図１８】
2008078390.tif 000020
【図１９】
2008078390.tif 000021
【図２０】
2008078390.tif 000022
【国際調査報告】
2008078390.tif 000023
2008078390.tif 000024
2008078390.tif 000025
2008078390.tif 000026