(57)【要約】【課題】送信ファイルを暗号化せずに圧縮した場合と略同一の圧縮率で、送信ファイルを圧縮および暗号化する送信装置を提供する。【解決手段】送信装置は、送信ファイルを固定長のビット列に分け、出現頻度がより高い固定長のビット列の値に、ビット長がより短く、かつエントロピーがより小さい可変長のビット列の値を対応づける圧縮テーブルを準備する圧縮テーブル準備部と、圧縮テーブル準備部が準備した圧縮テーブルにおいて、同じビット長の可変長のビット列の値どうしを入れ替えることによって圧縮テーブルを暗号化した暗号化圧縮テーブルを生成する暗号化圧縮テーブル生成部と、暗号化圧縮テーブル生成部が生成した暗号化圧縮テーブルに基づいて送信ファイルにおける固定長のビット列の値を可変長のビット列の値に置き換えることにより、送信ファイルを圧縮および暗号化した暗号化圧縮ファイルを生成して送信する暗号化圧縮部とを備える。【選択図】図１
2005275141.tif 000002
【特許請求の範囲】
【請求項１】
送信すべき送信ファイルを圧縮および暗号化して送信する送信装置であって、
前記送信ファイルを固定長のビット列に分け、出現頻度がより高い固定長のビット列の値に、ビット長がより短く、かつエントロピーがより小さい可変長のビット列の値を対応づける圧縮テーブルを準備する圧縮テーブル準備部と、
前記圧縮テーブル準備部が準備した前記圧縮テーブルにおいて、同じビット長の前記可変長のビット列の値どうしを入れ替えることによって前記圧縮テーブルを暗号化した暗号化圧縮テーブルを生成する暗号化圧縮テーブル生成部と、
前記暗号化圧縮テーブル生成部が生成した前記暗号化圧縮テーブルに基づいて、前記送信ファイルにおける前記固定長のビット列の値を前記可変長のビット列の値に置き換えることにより、前記送信ファイルを圧縮および暗号化した暗号化圧縮ファイルを生成して送信する暗号化圧縮部と
を備える送信装置。
【請求項２】
前記可変長のビット列は、２進数であり、
前記暗号化圧縮テーブル生成部は、
前記圧縮テーブルにおける前記可変長のビット列のうち、同じビット長であり、かつ１の値を示すビットの数が等しい前記可変長のビット列の値どうしを入れ替えることによって前記暗号化圧縮テーブルを生成する請求項１に記載の送信装置。
【請求項３】
前記暗号化圧縮テーブル生成部は、
設定値に基づいて、予め定められた関数計算を繰り返し施すことによって、順次乱数を生成する乱数生成部と、
前記圧縮テーブルにおける前記可変長のビット列のうち、同じビット長であり、かつ値の異なる前記可変長のビット列の個数を、ビット長毎に計数する同一長ビット列計数部と、
前記圧縮テーブルを暗号化するための異なる暗号化テーブルを複数格納する暗号化テーブル格納部と、
前記同一長ビット列計数部が計数した前記個数および前記乱数生成部が生成した前記乱数に基づいて、前記暗号化テーブル格納部に格納された複数の前記暗号化テーブルのいずれかを抽出する暗号化テーブル抽出部と、
前記暗号化テーブル抽出部が抽出した前記暗号化テーブルに基づいて、前記圧縮テーブルを前記暗号化圧縮テーブルに変換する圧縮テーブル変換部と
を有する請求項１に記載の送信装置。
【請求項４】
送信すべき送信ファイルを送受信する送受信システムであって、
前記送信ファイルを圧縮および暗号化した暗号化圧縮ファイルを送信する送信装置と、
前記送信装置から受け取る前記暗号化圧縮ファイルから前記送信ファイルを復元する受信装置と
を備え、
前記送信装置は、
前記送信ファイルを固定長のビット列に分け、出現頻度がより高い固定長のビット列の値に、ビット長がより短く、かつエントロピーがより小さい可変長のビット列の値を対応づける送信側圧縮テーブルを準備する送信側テーブル準備部と、
設定値に基づいて、予め定められた関数計算を繰り返し施すことによって、順次乱数を生成する乱数生成部と、
前記送信側テーブル準備部が準備した前記送信側圧縮テーブルにおける前記可変長のビット列のうち、同じビット長であり、かつ値の異なる前記可変長のビット列の個数を、ビット長毎に計数する送信側同一長ビット列計数部と、
前記送信側圧縮テーブルを暗号化するための異なる送信側暗号化テーブルを複数格納する送信側暗号化テーブル格納部と、
前記送信側同一長ビット列計数部が計数した前記個数および前記乱数生成部が生成した前記乱数に基づいて、前記送信側暗号化テーブル格納部に格納された複数の前記送信側暗号化テーブルのいずれかを抽出する送信側暗号化テーブル抽出部と、
前記送信側暗号化テーブル抽出部が抽出した前記送信側暗号化テーブルに基づいて、前記送信側圧縮テーブルを暗号化した送信側暗号化圧縮テーブルに変換する送信側圧縮テーブル変換部と、
前記送信側圧縮テーブル変換部が変換した前記送信側暗号化圧縮テーブルに基づいて、前記送信ファイルにおける前記固定長のビット列の値を前記可変長のビット列の値に置き換えることにより、前記暗号化圧縮ファイルを生成して送信する暗号化圧縮部と
を有し、
前記受信装置は、
前記設定値を、前記暗号化圧縮ファイルとは独立に取得する設定値取得部と、
前記設定値取得部が取得した前記設定値に基づき、前記乱数生成部が生成した前記乱数と同一の乱数を再生する乱数再生部と、
前記送信側圧縮テーブルと同一の受信側圧縮テーブルを準備する受信側テーブル準備部と、
前記受信側テーブル準備部が準備した前記受信側圧縮テーブルにおける前記可変長のビット列のうち、同じビット長であり、かつ値の異なる前記可変長のビット列の個数を、ビット長毎に計数する受信側同一長ビット列計数部と、
前記受信側圧縮テーブルを暗号化するための異なる受信側暗号化テーブルを複数格納する受信側暗号化テーブル格納部と、
前記受信側同一長ビット列計数部が計数した前記個数および前記乱数再生部が再生した前記乱数に基づいて、前記受信側暗号化テーブル格納部に格納された複数の前記受信側暗号化テーブルのいずれかを抽出する受信側暗号化テーブル抽出部と、
前記受信側暗号化テーブル抽出部が抽出した前記受信側暗号化テーブルに基づいて、前記受信側圧縮テーブルを暗号化することにより、受信側暗号化圧縮テーブルに変換する受信側圧縮テーブル変換部と、
前記受信側圧縮テーブル変換部が変換した前記受信側暗号化圧縮テーブルに基づいて、前記暗号化圧縮ファイルにおける前記可変長のビット列の値を前記固定長のビット列の値に置き換えることにより、前記暗号化圧縮ファイルから前記送信ファイルを復元する復元部と
を有する送受信システム。
【請求項５】
送信すべき送信ファイルを圧縮および暗号化して送信する送信装置を制御するプログラムであって、コンピュータに、
前記送信ファイルを固定長のビット列に分け、出現頻度がより高い固定長のビット列の値に、ビット長がより短く、かつエントロピーがより小さい可変長のビット列の値を対応づける圧縮テーブルを準備する段階、
前記圧縮テーブルにおいて、同じビット長の前記可変長のビット列の値どうしを入れ替えることによって前記圧縮テーブルを暗号化した暗号化圧縮テーブルを生成する段階、および
前記暗号化圧縮テーブルに基づいて、前記送信ファイルにおける前記固定長のビット列の値を前記可変長のビット列の値に置き換えることにより、前記送信ファイルを圧縮および暗号化した暗号化圧縮ファイルを生成して送信する段階
を実行させるプログラム。
【請求項６】
送信すべき送信ファイルを圧縮および暗号化した暗号化圧縮ファイルを送信する送信装置と、前記送信装置から受け取る前記暗号化圧縮ファイルから前記送信ファイルを復元する受信装置とを備える送受信システムにおいて、前記送信ファイルを送受信する送受信方法であって、
送信側は、
前記送信ファイルを固定長のビット列に分け、出現頻度がより高い固定長のビット列の値に、ビット長がより短く、かつエントロピーがより小さい可変長のビット列の値を対応づける送信側圧縮テーブルを準備し、
設定値に基づいて、予め定められた関数計算を繰り返し施すことによって、順次乱数を生成し、
前記送信側圧縮テーブルにおける前記可変長のビット列のうち、同じビット長であり、かつ値の異なる前記可変長のビット列の個数を、ビット長毎に計数し、
前記送信側圧縮テーブルを暗号化するための異なる送信側暗号化テーブルを複数格納し、
計数された前記個数および生成された前記乱数に基づいて、格納された複数の前記送信側暗号化テーブルのいずれかを抽出し、
抽出された前記送信側暗号化テーブルに基づいて、前記送信側圧縮テーブルを暗号化した送信側暗号化圧縮テーブルに変換し、
変換された前記送信側暗号化圧縮テーブルに基づいて、前記送信ファイルにおける前記固定長のビット列の値を前記可変長のビット列の値に置き換えることにより、前記暗号化圧縮ファイルを生成して送信し、
受信側は、
前記設定値を、前記暗号化圧縮ファイルとは独立に取得し、
取得した前記設定値に基づき、送信側で生成された前記乱数と同一の乱数を再生し、
前記送信側圧縮テーブルと同一の受信側圧縮テーブルを準備し、
前記受信側圧縮テーブルにおける前記可変長のビット列のうち、同じビット長であり、かつ値の異なる前記可変長のビット列の個数を、ビット長毎に計数し、
前記受信側圧縮テーブルを暗号化するための異なる受信側暗号化テーブルを複数格納し、
計数された前記個数および再生された前記乱数に基づいて、格納された複数の前記受信側暗号化テーブルのいずれかを抽出し、
抽出された前記受信側暗号化テーブルに基づいて、前記受信側圧縮テーブルを暗号化した受信側暗号化圧縮テーブルに変換し、
変換された前記受信側暗号化圧縮テーブルに基づいて、前記暗号化圧縮ファイルにおける前記可変長のビット列の値を前記固定長のビット列の値に置き換えることにより、前記暗号化圧縮ファイルから前記送信ファイルを復元する
送受信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、送信装置、送受信システム、送受信方法、およびプログラムに関する。特に本発明は、送信すべき送信ファイルを圧縮および暗号化して送受信する送受信システムに関する。
【背景技術】
【０００２】
ファイルを固定長のビット列に分け、出現頻度のより高い固定長のビット列の値に、より短い可変長のビット列の値を割り当てることにより、ファイルを圧縮するハフマン符号化技術が知られている（例えば、非特許文献１参照。）。また、近年の通信技術の発達に伴い、通信回線を介して様々な情報を容易に取得することができるようになっている。そのため、秘密性の高い情報を含むファイルを送受信する場合には、第三者に知られることがないように、ファイルを暗号化する必要がある。この場合、固定長のビット列の値と可変長のビット列の値との対応関係を、送信するファイルに応じて変更することにより暗号化する方法がある。
【非特許文献１】「フォローアップ−基本をおさらい  ネットワーク教養講座  第−ファイル・サイズを縮めるのは一苦労−データ圧縮の基本を知る」、日経ＮＥＴＷＯＲＫ、日経ＢＰ社、２００２年１１月２２日、ｐ．１９４。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、出現確率の高い固定長のビット列に長い可変長のビット列を割り当ててしまうと、ファイルの圧縮率が低下する場合があった。そのため、従来、ファイルの圧縮と暗号化とを両立するのは困難な場合があった。
【０００４】
そこで本発明は、上記の課題を解決することのできる送信装置、送受信システム、送受信方法、およびプログラムを提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
【課題を解決するための手段】
【０００５】
本発明の第１の形態は、送信すべき送信ファイルを圧縮および暗号化して送信する送信装置であって、送信ファイルを固定長のビット列に分け、出現頻度がより高い固定長のビット列の値に、ビット長がより短く、かつエントロピーがより小さい可変長のビット列の値を対応づける圧縮テーブルを準備する圧縮テーブル準備部と、圧縮テーブル準備部が準備した圧縮テーブルにおいて、同じビット長の可変長のビット列の値どうしを入れ替えることによって圧縮テーブルを暗号化した暗号化圧縮テーブルを生成する暗号化圧縮テーブル生成部と、暗号化圧縮テーブル生成部が生成した暗号化圧縮テーブルに基づいて、送信ファイルにおける固定長のビット列の値を可変長のビット列の値に置き換えることにより、送信ファイルを圧縮および暗号化した暗号化圧縮ファイルを生成して送信する暗号化圧縮部とを備える。これにより、送信装置は、圧縮後の送信ファイルの圧縮率を変えることなく、送信ファイルを暗号化することができる。
【０００６】
可変長のビット列は、２進数であり、暗号化圧縮テーブル生成部は、圧縮テーブルにおける可変長のビット列のうち、同じビット長であり、かつ１の値を示すビットの数が等しい可変長のビット列の値どうしを入れ替えることによって暗号化圧縮テーブルを生成することが好ましい。
【０００７】
暗号化圧縮テーブル生成部は、設定値に基づいて、予め定められた関数計算を繰り返し施すことによって、順次乱数を生成する乱数生成部と、圧縮テーブルにおける可変長のビット列のうち、同じビット長であり、かつ値の異なる可変長のビット列の個数を、ビット長毎に計数する同一長ビット列計数部と、圧縮テーブルを暗号化するための異なる暗号化テーブルを複数格納する暗号化テーブル格納部と、同一長ビット列計数部が計数した個数および乱数生成部が生成した乱数に基づいて、暗号化テーブル格納部に格納された複数の暗号化テーブルのいずれかを抽出する暗号化テーブル抽出部と、暗号化テーブル抽出部が抽出した暗号化テーブルに基づいて、圧縮テーブルを暗号化圧縮テーブルに変換する圧縮テーブル変換部とを有してもよい。
【０００８】
本発明の第２の形態は、送信すべき送信ファイルを送受信する送受信システムであって、送信ファイルを圧縮および暗号化した暗号化圧縮ファイルを送信する送信装置と、送信装置から受け取る暗号化圧縮ファイルから送信ファイルを復元する受信装置とを備え、送信装置は、送信ファイルを固定長のビット列に分け、出現頻度がより高い固定長のビット列の値に、ビット長がより短く、かつエントロピーがより小さい可変長のビット列の値を対応づける送信側圧縮テーブルを準備する送信側テーブル準備部と、設定値に基づいて、予め定められた関数計算を繰り返し施すことによって、順次乱数を生成する乱数生成部と、送信側テーブル準備部が準備した送信側圧縮テーブルにおける可変長のビット列のうち、同じビット長であり、かつ値の異なる可変長のビット列の個数を、ビット長毎に計数する送信側同一長ビット列計数部と、送信側圧縮テーブルを暗号化するための異なる送信側暗号化テーブルを複数格納する送信側暗号化テーブル格納部と、送信側同一長ビット列計数部が計数した個数および乱数生成部が生成した乱数に基づいて、送信側暗号化テーブル格納部に格納された複数の送信側暗号化テーブルのいずれかを抽出する送信側暗号化テーブル抽出部と、送信側暗号化テーブル抽出部が抽出した送信側暗号化テーブルに基づいて、送信側圧縮テーブルを暗号化した送信側暗号化圧縮テーブルに変換する送信側圧縮テーブル変換部と、送信側圧縮テーブル変換部が変換した送信側暗号化圧縮テーブルに基づいて、送信ファイルにおける固定長のビット列の値を可変長のビット列の値に置き換えることにより、送信ファイルを圧縮および暗号化した暗号化圧縮ファイルを生成して送信する暗号化圧縮部とを有し、受信装置は、設定値を、暗号化圧縮ファイルとは独立に取得する設定値取得部と、設定値取得部が取得した設定値に基づき、乱数生成部が生成した乱数と同一の乱数を再生する乱数再生部と、送信側圧縮テーブルと同一の受信側圧縮テーブルを準備する受信側テーブル準備部と、受信側テーブル準備部が準備した受信側圧縮テーブルにおける可変長のビット列のうち、同じビット長であり、かつ値の異なる可変長のビット列の個数を、ビット長毎に計数する受信側同一長ビット列計数部と、受信側圧縮テーブルを暗号化するための異なる受信側暗号化テーブルを複数格納する受信側暗号化テーブル格納部と、受信側同一長ビット列計数部が計数した個数および乱数再生部が再生した乱数に基づいて、受信側暗号化テーブル格納部に格納された複数の受信側暗号化テーブルのいずれかを抽出する受信側暗号化テーブル抽出部と、受信側暗号化テーブル抽出部が抽出した受信側暗号化テーブルに基づいて、受信側圧縮テーブルを暗号化することにより、受信側暗号化圧縮テーブルに変換する受信側圧縮テーブル変換部と、受信側圧縮テーブル変換部が変換した受信側暗号化圧縮テーブルに基づいて、暗号化圧縮ファイルにおける可変長のビット列の値を固定長のビット列の値に置き換えることにより、暗号化圧縮ファイルから送信ファイルを復元する復元部とを有する。
【０００９】
本発明の第３の形態は、送信すべき送信ファイルを圧縮および暗号化して送信する送信装置を制御するプログラムであって、コンピュータに、送信ファイルを固定長のビット列に分け、出現頻度がより高い固定長のビット列の値に、ビット長がより短く、かつエントロピーがより小さい可変長のビット列の値を対応づける圧縮テーブルを準備する段階、圧縮テーブルにおいて、同じビット長の可変長のビット列の値どうしを入れ替えることによって圧縮テーブルを暗号化する段階、および暗号化された圧縮テーブルに基づいて、送信ファイルにおける固定長のビット列の値を可変長のビット列の値に置き換えることにより、送信ファイルを圧縮および暗号化した暗号化圧縮ファイルを生成して送信する段階を実行させる。
【００１０】
本発明の第４の形態は、送信すべき送信ファイルを圧縮および暗号化した暗号化圧縮ファイルを送信する送信装置と、送信装置から受け取る暗号化圧縮ファイルから送信ファイルを復元する受信装置とを備える送受信システムにおいて、送信ファイルを送受信する送受信方法であって、送信側は、送信ファイルを固定長のビット列に分け、出現頻度がより高い固定長のビット列の値に、ビット長がより短く、かつエントロピーがより小さい可変長のビット列の値を対応づける送信側圧縮テーブルを準備し、設定値に基づいて、予め定められた関数計算を繰り返し施すことによって、順次乱数を生成し、送信側圧縮テーブルにおける可変長のビット列のうち、同じビット長であり、かつ値の異なる可変長のビット列の個数を、ビット長毎に計数し、送信側圧縮テーブルを暗号化するための異なる送信側暗号化テーブルを複数格納し、計数された個数および生成された乱数に基づいて、格納された複数の送信側暗号化テーブルのいずれかを抽出し、抽出された送信側暗号化テーブルに基づいて、送信側圧縮テーブルを暗号化した送信側暗号化圧縮テーブルに変換し、変換された送信側暗号化圧縮テーブルに基づいて、送信ファイルにおける固定長のビット列の値を可変長のビット列の値に置き換えることにより、暗号化圧縮ファイルを生成して送信し、受信側は、設定値を、暗号化圧縮ファイルとは独立に取得し、取得した設定値に基づき、送信側で生成された乱数と同一の乱数を再生し、送信側圧縮テーブルと同一の受信側圧縮テーブルを準備し、受信側圧縮テーブルにおける可変長のビット列のうち、同じビット長であり、かつ値の異なる可変長のビット列の個数を、ビット長毎に計数し、受信側圧縮テーブルを暗号化するための異なる受信側暗号化テーブルを複数格納し、計数された個数および再生された乱数に基づいて、格納された複数の受信側暗号化テーブルのいずれかを抽出し、抽出された受信側暗号化テーブルに基づいて、受信側圧縮テーブルを暗号化した受信側暗号化圧縮テーブルに変換し、変換された受信側暗号化圧縮テーブルに基づいて、暗号化圧縮ファイルにおける可変長のビット列の値を固定長のビット列の値に置き換えることにより、暗号化圧縮ファイルから送信ファイルを復元する。
【００１１】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【発明を実施するための最良の形態】
【００１２】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１３】
図１は、本発明の一実施形態に係る送受信システム１０の構成を示す。本実施形態は、圧縮率を変えることなく送信ファイルを暗号化することを目的とする。送受信システム１０は、送信装置１００、通信網２００、受信装置３００、記録媒体４００、および記録媒体４０２を備える。送信装置１００は、通信網２００を介して受信装置３００と接続され、受信装置３００と通信することができる。送信装置１００は、送信すべき送信ファイルを圧縮および暗号化して、暗号化圧縮ファイルを生成し、通信網２００を介して受信装置３００へ送信する。受信装置３００は、送信装置１００から暗号化圧縮ファイルを受信し、受信した暗号化圧縮ファイルからから送信ファイルを復元する。
【００１４】
送信装置１００は、暗号化圧縮部１０２、暗号化圧縮テーブル生成部１０４、圧縮テーブル準備部１０６、および設定値格納部１０８を有する。本発明における送信側テーブル準備部の一例である圧縮テーブル準備部１０６は、送信ファイルを固定長のビット列に分け、出現頻度がより高い固定長のビット列の値に、ビット長がより短く、かつエントロピーがより小さい可変長のビット列の値を対応づける送信側圧縮テーブルを準備する。ここで、送信ファイルは、２進数で表現されており、固定長のビット列および可変長のビット列は、１または０を示すビット列である。
【００１５】
設定値格納部１０８は、圧縮テーブル準備部１０６が準備した送信側圧縮テーブルを暗号化するための設定値を格納する。暗号化圧縮テーブル生成部１０４は、圧縮テーブル準備部１０６が準備した送信側圧縮テーブルにおいて、同じビット長の可変長のビット列の値どうしを入れ替えることによって送信側圧縮テーブルを暗号化した送信側暗号化圧縮テーブルを、設定値格納部１０８に格納された設定値に基づいて生成する。この場合、暗号化圧縮テーブル生成部１０４は、送信側圧縮テーブルにおける可変長のビット列のうち、同じビット長であり、かつ１の値を示すビットの数が等しい可変長のビット列の値どうしを入れ替えることによって送信側暗号化圧縮テーブルを生成する。
【００１６】
暗号化圧縮部１０２は、暗号化圧縮テーブル生成部１０４が生成した送信側暗号化圧縮テーブルに基づいて、送信ファイルにおける固定長のビット列の値を可変長のビット列の値に置き換えることにより、送信ファイルを圧縮および暗号化した暗号化圧縮ファイルを生成して受信装置３００へ送信する。このように、暗号化圧縮テーブル生成部１０４が、送信側圧縮テーブルにおいて、同じビット長の可変長のビット列の値どうしを入れ替えることによって送信側圧縮テーブルを暗号化するので、暗号化圧縮部１０２は、送信ファイルを暗号化せずに圧縮された場合と略同一の圧縮率で、送信ファイルを圧縮および暗号化することができる。
【００１７】
また、暗号化圧縮テーブル生成部１０４が、送信側圧縮テーブルにおける可変長のビット列のうち、同じビット長であり、かつ１の値を示すビットの数が等しい可変長のビット列の値どうしを入れ替えることによって送信側暗号化圧縮テーブルを生成するので、送信ファイルのエントロピーを上げることなく暗号化することができる。そのため、送信装置１００は、暗号化圧縮ファイルを再び圧縮する場合、暗号化せずに圧縮のみを行った場合と略同一の圧縮率で圧縮することができる。
【００１８】
なお、本例の圧縮テーブル準備部１０６が行う準備とは、予め送信装置１００が有するＨＤ（Ｈａｒｄ  Ｄｉｓｋ）等の不揮発性メモリに送信側圧縮テーブルを格納しておき、送信ファイルを圧縮および暗号化する場合に、当該不揮発性メモリから送信側圧縮テーブルを読み出して、利用可能な状態に準備することである。また、他の例として、圧縮テーブル準備部１０６は、送信ファイルを圧縮および暗号化する場合に、当該送信ファイルに含まれる固定長のビット列の値に応じて、送信側圧縮テーブルを生成してもよい。この場合、暗号化圧縮部１０２は、生成した暗号化圧縮ファイルと共に、送信ファイルに基づいて生成した送信側圧縮ファイルを受信装置３００へ送信する。
【００１９】
受信装置３００は、復元部３０２、暗号化圧縮テーブル生成部３０４、圧縮テーブル準備部３０６、および３０８を有する。設定値取得部３０８は、設定値格納部１０８が格納する設定値を、暗号化圧縮ファイルとは独立に取得する。本例において、設定値取得部３０８は、暗号化圧縮ファイルを受信する通信経路とは異なる通信経路を介して設定値を受信する。他の例として、設定値取得部３０８は、電話回線等を介して音声やＦＡＸ等により設定値を取得してもよい。本発明における受信側テーブル準備部の一例である圧縮テーブル準備部３０６は、送信側圧縮テーブルと同一の受信側圧縮テーブルを準備する。本例において、準備するとは、予め受信装置３００が有するＨＤ等の不揮発性メモリに送信側圧縮テーブルと同一の受信側圧縮テーブルを格納しておき、暗号化圧縮ファイルを復元する場合に、当該不揮発性メモリから受信側圧縮テーブルを読み出して、利用可能な状態に準備することである。また、他の例として、送信ファイルに基づいて生成された送信側圧縮ファイルを、暗号化圧縮ファイルと共に受信して、受信側圧縮テーブルとして利用可能な状態に準備してもよい。
【００２０】
暗号化圧縮テーブル生成部３０４は、圧縮テーブル準備部３０６が準備した受信側圧縮テーブルにおいて、同じビット長の可変長のビット列の値どうしを入れ替えることによって受信側圧縮テーブルを暗号化した受信側暗号化圧縮テーブルを、設定値取得部３０８が取得した設定値に基づいて生成する。復元部３０２は、暗号化圧縮テーブル生成部３０４が生成した受信側暗号化圧縮テーブルに基づいて、受信した暗号化圧縮ファイルにおける可変長のビット列の値を固定長のビット列の値に置き換えることにより、暗号化圧縮ファイルから送信ファイルを復元する。
【００２１】
記録媒体４００は、送信装置１００に、暗号化圧縮部１０２、暗号化圧縮テーブル生成部１０４、圧縮テーブル準備部１０６、および設定値格納部１０８として機能させるプログラムを格納する。送信装置１００は、これらのプログラムを、記録媒体４００から読み取って実行する。記録媒体４０２は、受信装置３００に、復元部３０２、暗号化圧縮テーブル生成部３０４、圧縮テーブル準備部３０６、および設定値取得部３０８として機能させるプログラムを格納する。受信装置３００は、これらのプログラムを、記録媒体４０２から読み取って実行する。記録媒体４００および記録媒体４０２は、例えばＲＯＭ等の半導体記録媒体やＨＤ等の磁気記録媒体等であってもよい。また、送信装置１００および受信装置３００は、通信網２００を介してこれらのプログラムを取得してもよい。
【００２２】
図２は、暗号化圧縮テーブル生成部１０４の詳細な構成の一例を示す。暗号化圧縮テーブル生成部１０４は、圧縮テーブル変換部１１０、暗号化テーブル格納部１１２、暗号化テーブル抽出部１１４、乱数生成部１１６、および同一長ビット列計数部１１８を備える。乱数生成部１１６は、設定値に基づいて、予め定められた関数計算を繰り返し施すことによって、順次乱数を生成する。例えば、予め定められた関数計算としてロジスティック写像を利用する乱数生成装置を用いることにより、精度の高い乱数によって、秘匿性の高い通信を行うことができる。この場合、設定値とは、例えば初期値および写像の回数等である。
【００２３】
本発明における送信側同一長ビット列計数部の一例である同一長ビット列計数部１１８は、送信側圧縮テーブルにおける可変長のビット列のうち、同じビット長であり、かつ値の異なる可変長のビット列の個数を、ビット長毎に計数する。本発明における送信側暗号化テーブル格納部の一例である暗号化テーブル格納部１１２は、送信側圧縮テーブルを暗号化するため複数の送信側暗号化テーブルを格納する。暗号化テーブル格納部１１２が格納する複数の送信側暗号化テーブルは、それぞれ互いに異なる。本発明における送信側暗号化テーブル抽出部の一例である暗号化テーブル抽出部１１４は、同一長ビット列計数部１１８が計数した個数および乱数生成部１１６が生成した乱数に基づいて、暗号化テーブル格納部１１２に格納された複数の送信側暗号化テーブルのいずれかを抽出する。本発明における送信側圧縮テーブル変換部の一例である圧縮テーブル変換部１１０は、暗号化テーブル抽出部１１４が抽出した送信側暗号化テーブルに基づいて、送信側圧縮テーブルを送信側暗号化圧縮テーブルに変換する。
【００２４】
図３は、暗号化テーブル格納部１１２に格納された暗号化テーブルの一例を示す。暗号化テーブル格納部１１２は、１からｎまでのｎ行、および０からｎ！−１までのｎ！列を有する、ｎ行×ｎ！列のテーブルである。本テーブルの最上段の行は、それぞれの送信側暗号化テーブルの番号を示す。本テーブルの最も左の列は、同一長のビット列のそれぞれ値に割り当てた番号を示す。本テーブルは、１からｎ番目までの値の組み合わせが、０からｎ！−１番目までの列の中に全て含まれるように構成されている。本テーブルの最も左の列とそれぞれの列とによって、それぞれの送信側暗号化テーブルが形成される。
【００２５】
例えば、送信側圧縮テーブルに、５ビット長の可変長ビット列「０１０１０」、「００１１０」、および「１００１０」がある場合、同一長ビット列計数部１１８は、５ビット長の可変長のビット列の個数を「３」と計数する。乱数生成部１１６が、例えば「５００」という乱数の値を生成した場合、暗号化テーブル抽出部１１４は、乱数の値「５００」を、可変長のビット列の個数の階乗である「３！＝６」で割り、余りを算出する。そして暗号化テーブル抽出部１１４は、余りで指定される送信側暗号化テーブルを、暗号化テーブル格納部１１２から抽出する。本例では余りが「２」なので、暗号化テーブル抽出部１１４は、図３の点線で囲まれる送信側暗号化テーブルを抽出する。
【００２６】
圧縮テーブル変換部１１０は、例えば、「０１０１０」、「００１１０」、および「１００１０」に、１、２、および３の番号をそれぞれ割り当てる。そして、圧縮テーブル変換部１１０は、暗号化テーブル抽出部１１４が抽出した送信側暗号化テーブルに基づいて、送信側圧縮テーブルの可変長ビット列の値を入れ替える。本例において、圧縮テーブル変換部１１０は、２番目と３番目の可変長のビット列の値を入れ替え、１番目の可変長のビット列の値を入れ替えない。また、他の例として、暗号化テーブル格納部１１２は、同じビット長の可変長のビット列の値の個数毎に、暗号化テーブルをそれぞれ有してもよい。
【００２７】
図４は、送信装置１００の動作の一例を示すフローチャートである。例えば、送信ファイルを入力されることにより、本フローチャートに示す送信装置１００の動作は開始する。まず、圧縮テーブル準備部１０６は、送信側圧縮テーブルを準備する（Ｓ１００）。そして、同一長ビット列計数部１１８は、送信側圧縮テーブルにおける可変長のビット列のうち、同じビット長であり、かつ値の異なる可変長のビット列の個数を、ビット長毎に計数する（Ｓ１０２）。そして、乱数生成部１１６は、設定値に基づいて乱数を生成する（Ｓ１０４）。そして、暗号化テーブル抽出部１１４は、同一長ビット列計数部１１８が計数した個数および乱数生成部１１６が生成した乱数に基づいて、暗号化テーブル格納部１１２に格納された複数の送信側暗号化テーブルのいずれかを抽出する（Ｓ１０６）。
【００２８】
次に、圧縮テーブル変換部１１０は、暗号化テーブル抽出部１１４が抽出した送信側暗号化テーブルに基づいて、送信側圧縮テーブルを送信側暗号化圧縮テーブルに変換する（Ｓ１０８）。そして、暗号化圧縮部１０２は、圧縮テーブル変換部１１０が変換した送信側暗号化圧縮テーブルに基づいて、送信ファイルにおける固定長のビット列の値を可変長のビット列の値に置き換えることにより、送信ファイルを圧縮および暗号化した暗号化圧縮ファイルを生成して受信装置３００へ送信し（Ｓ１１０）、本フローチャートに示す送信装置１００の動作は終了する。
【００２９】
図５は、暗号化圧縮テーブル生成部３０４の詳細な構成の一例を示す。暗号化圧縮テーブル生成部３０４は、圧縮テーブル変換部３１０、暗号化テーブル格納部３１２、暗号化テーブル抽出部３１４、乱数再生部３１６、および同一長ビット列計数部３１８を備える。乱数再生部３１６は、設定値取得部３０８が取得した設定値に基づき、乱数生成部１１６が生成した乱数と同一の乱数を再生する。本発明における受信側同一長ビット列計数部の一例である同一長ビット列計数部３１８は、圧縮テーブル準備部３０６が準備した受信側圧縮テーブルにおける可変長のビット列のうち、同じビット長であり、かつ値の異なる可変長のビット列の個数を、ビット長毎に計数する。
【００３０】
本発明における受信側暗号化テーブル格納部の一例である暗号化テーブル格納部３１２は、受信側圧縮テーブルを暗号化するための複数の受信側暗号化テーブルを格納する。暗号化テーブル格納部３１２が格納する複数の受信側暗号化テーブルは、それぞれ互いに異なる。本例において、暗号化テーブル格納部３１２は、図３において説明したテーブルと同一のテーブルを有する。本発明における受信側暗号化テーブル抽出部の一例である暗号化テーブル抽出部３１４は、同一長ビット列計数部３１８が計数した個数および乱数再生部３１６が再生した乱数に基づいて、暗号化テーブル格納部３１２に格納された複数の受信側暗号化テーブルのいずれかを抽出する。本発明における受信側圧縮テーブル変換部の一例である圧縮テーブル変換部３１０は、暗号化テーブル抽出部３１４が抽出した受信側暗号化テーブルに基づいて、受信側圧縮テーブルを暗号化することにより、受信側暗号化圧縮テーブルに変換する。
【００３１】
図６は、受信装置３００の動作の一例を示すフローチャートである。例えば、復元部３０２が暗号化圧縮ファイルを受信することにより、本フローチャートに示す受信装置３００の動作は開始する。まず、圧縮テーブル準備部３０６は、受信側圧縮テーブルを準備する（Ｓ２００）。そして、同一長ビット列計数部３１８は、受信側圧縮テーブルにおける可変長のビット列のうち、同じビット長であり、かつ値の異なる可変長のビット列の個数を、ビット長毎に計数する（Ｓ２０２）。そして、設定値取得部３０８が予め取得した設定値に基づいて、乱数再生部３１６は、乱数生成部１１６が生成した乱数と同一の乱数を再生する（Ｓ２０４）。そして、暗号化テーブル抽出部３１４は、同一長ビット列計数部３１８が計数した個数および乱数再生部３１６が再生した乱数に基づいて、暗号化テーブル格納部３１２に格納された複数の受信側暗号化テーブルのいずれかを抽出する（Ｓ２０６）。
【００３２】
次に、圧縮テーブル変換部３１０は、暗号化テーブル抽出部３１４が抽出した受信側暗号化テーブルに基づいて、受信側圧縮テーブルを受信側暗号化圧縮テーブルに変換する（Ｓ２０８）。そして、復元部３０２は、圧縮テーブル変換部３１０が変換した受信側暗号化圧縮テーブルに基づいて、受信した暗号化圧縮ファイルにおける可変長のビット列の値を固定長のビット列の値に置き換えることにより、暗号化圧縮ファイルから送信ファイルを復元し（Ｓ２１０）、本フローチャートに示す受信装置３００の動作は終了する。
【００３３】
上記説明から明らかなように、本実施形態の送受信システム１０によれば、送信ファイルを暗号化せずに圧縮した場合と略同一の圧縮率で、送信ファイルを圧縮および暗号化して送受信することができる。
【００３４】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【図面の簡単な説明】
【００３５】
【図１】本発明の一実施形態に係る送受信システム１０の構成を示す図である。
【図２】暗号化圧縮テーブル生成部１０４の詳細な構成の一例を示す図である。
【図３】暗号化テーブル格納部１１２に格納された複数の送信側暗号化テーブルの一例を示す図である。
【図４】送信装置１００の動作の一例を示すフローチャートである。
【図５】暗号化圧縮テーブル生成部３０４の詳細な構成の一例を示す図である。
【図６】受信装置３００の動作の一例を示すフローチャートである。
【符号の説明】
【００３６】
１０  送受信システム
１００  送信装置
１０２  暗号化圧縮部
１０４  暗号化圧縮テーブル生成部
１０６  圧縮テーブル準備部
１０８  設定値格納部
１１０  圧縮テーブル変換部
１１２  暗号化テーブル格納部
１１４  暗号化テーブル抽出部
１１６  乱数生成部
１１８  同一長ビット列計数部
２００  通信網
３００  受信装置
３０２  復元部
３０４  暗号化圧縮テーブル生成部
３０６  圧縮テーブル準備部
３０８  設定値取得部
３１０  圧縮テーブル変換部
３１２  暗号化テーブル格納部
３１４  暗号化テーブル抽出部
３１６  乱数再生部
３１８  同一長ビット列計数部
４００  記録媒体
４０２  記録媒体
【図１】
2005275141.tif 000003
【図２】
2005275141.tif 000004
【図３】
2005275141.tif 000005
【図４】
2005275141.tif 000006
【図５】
2005275141.tif 000007
【図６】
2005275141.tif 000008