(57)【要約】【課題】特定の項目の情報を柔軟に保護できる符号化プログラム、符号化方法、符号化装置、復号化プログラム、復号化方法および復号化装置を提供する。【解決手段】符号化プログラムは、コンピュータに、デリミタにより区切られた複数の項目からなる複数のレコードを有する、ＣＳＶファイル１９を入力する処理を実行させる。符号化プログラムは、コンピュータに、入力されたＣＳＶファイル１９の複数のレコードに含まれる特定の項目を単語または数値単位で符号化した、符号化データ２０および符号化辞書２１を有する符号化ファイル２２を生成する処理を実行させる。符号化プログラムは、コンピュータに、生成された符号化ファイル２２より、符号化辞書２１を暗号化した暗号化辞書を含む、暗号化ファイル２３を生成する処理を実行させる。【選択図】図１
2018061170.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
デリミタにより区切られた複数の項目からなる複数のレコードを有する、テキストファイルを入力し、
入力された前記テキストファイルの前記複数のレコードに含まれる特定の項目を単語または数値単位で符号化した、符号化データおよび符号化辞書を有する符号化ファイルを生成し、
生成された前記符号化ファイルより、前記符号化辞書を暗号化した暗号化辞書を含む、暗号化ファイルを生成する、
処理を実行させることを特徴とする符号化プログラム。
【請求項２】
前記符号化ファイルを生成する処理は、前記テキストファイルの前記複数のレコードに含まれる特定の項目以外の項目を単語または数値単位で符号化した符号化データおよび項目ごとの符号化辞書を生成する
ことを特徴とする請求項１に記載の符号化プログラム。
【請求項３】
前記符号化ファイルを生成する処理は、符号化した項目を示す項目情報を含めて前記符号化辞書を生成する
ことを特徴とする請求項１または２に記載の符号化プログラム。
【請求項４】
前記暗号化ファイルを生成する処理は、前記符号化ファイル全体または前記特定の項目以外の項目の符号化辞書を、前記特定の項目の符号化辞書の暗号化とは異なる暗号化キーにより暗号化した暗号化ファイルを生成する
ことを特徴とする請求項１〜３の何れか１つに記載の符号化プログラム。
【請求項５】
コンピュータが、
デリミタにより区切られた複数の項目からなる複数のレコードを有する、テキストファイルを入力し、
入力された前記テキストファイルの前記複数のレコードに含まれる特定の項目を単語または数値単位で符号化した、符号化データおよび符号化辞書を有する符号化ファイルを生成し、
生成された前記符号化ファイルより、前記符号化辞書を暗号化した暗号化辞書を含む、暗号化ファイルを生成する、
処理が実行することを特徴とする符号化方法。
【請求項６】
デリミタにより区切られた複数の項目からなる複数のレコードを有する、テキストファイルを入力する入力部と、
前記入力部に入力された前記テキストファイルの前記複数のレコードに含まれる特定の項目を単語または数値単位で符号化した、符号化データおよび符号化辞書を有する符号化ファイルを生成する第１生成部と、
前記第１生成部により生成された前記符号化ファイルより、前記符号化辞書を暗号化した暗号化辞書を含む、暗号化ファイルを生成する第２生成部と、
を有することを特徴とする符号化装置。
【請求項７】
コンピュータに、
複数の項目のうち、少なくとも特定の項目が符号化された複数のレコードを有する符号化ファイル、および、前記特定の項目の符号化辞書が暗号化された暗号化辞書を含んだ暗号化ファイルを入力し、
入力された暗号化ファイルの前記暗号化辞書を所定の復号化キーにより復号化し、
復号化された符号化辞書を用いて前記特定の項目を復号化したテキストファイルを出力する
処理を実行させることを特徴とする復号化プログラム。
【請求項８】
前記出力する処理は、前記符号化辞書に前記特定の項目の符号が存在しない場合、当該符号をそのまま出力する
ことを特徴とする請求項７に記載の復号化プログラム。
【請求項９】
前記出力する処理は、前記符号化辞書に前記特定の項目の符号が存在しない場合、当該符号を特定の文字に変換して出力、または、当該符号を出力しない
ことを特徴とする請求項７に記載の復号化プログラム。
【請求項１０】
コンピュータが、
複数の項目のうち、少なくとも特定の項目が符号化された複数のレコードを有する符号化ファイル、および、前記特定の項目の符号化辞書が暗号化された暗号化辞書を含んだ暗号化ファイルを入力し、
入力された暗号化ファイルの前記暗号化辞書を所定の復号化キーにより復号化し、
復号化された符号化辞書を用いて前記特定の項目を復号化したテキストファイルを出力する
処理を実行することを特徴とする復号化方法。
【請求項１１】
複数の項目のうち、少なくとも特定の項目が符号化された複数のレコードを有する符号化ファイル、および、前記特定の項目の符号化辞書が暗号化された暗号化辞書を含んだ暗号化ファイルを入力する入力部と、
前記入力部に入力された暗号化ファイルの前記暗号化辞書を所定の復号化キーにより復号化する復号化部と、
前記復号化部により復号化された符号化辞書を用いて前記特定の項目を復号化したテキストファイルを出力する出力部と、
を有することを特徴とする復号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化プログラム、符号化方法、符号化装置、復号化プログラム、復号化方法および復号化装置に関する。
【背景技術】
【０００２】
近年、例えば、マイナンバー（個人番号）をはじめとする、機密性の高い情報が増え、今後も増加すると考えられる。マイナンバーは、日本において、社会保障・税番号制度（所謂マイナンバー制度）に基づき、個々の人にそれぞれ定められた公的な番号である。マイナンバーには、個人に関する様々な情報が関連付けられる。このため、マイナンバーは、漏洩を避けるべき機密情報である。したがって、今後は、機密情報を、従来よりさらに高いセキュリティ強度で秘匿する技術が求められることが予測される。通常、機密情報を含むファイルを秘匿する場合、ファイル全体を暗号化することが考えられる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−０５５６０８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、機密情報を含むファイルを利用する場合、機密情報の表示や記載が不要である場合がある。例えば、源泉徴収票は、収入証明のために利用する際、マイナンバーを記載しないことが定められている。このような場合、マイナンバーの情報は、復号する必要はなく、復号されることによって情報漏洩のリスクが高まる。
【０００５】
例えば、項目として、マイナンバー等の機密情報を含んだＣＳＶ（comma-separated  values）ファイルなどのテキストファイルについて考える。ＣＳＶファイルは、複数の項目の情報を列挙する際に、各項目の情報の区切る区切り文字（デリミタ）にカンマ“,”を用いたテキストファイルである。ＣＳＶファイルは、テーブル構造を表現するテキストファイルとして、表計算やデータベース、帳票などの多様なアプリケーションの入出力形式として、幅広く利用されており、ファイル内に機密情報が含まれることが考えられる。しかし、ＣＳＶファイルを暗号化する場合、従来は、ＣＳＶファイル全体を暗号化されるため、機密情報の項目のみを柔軟に保護できない。
【０００６】
一つの側面では、特定の項目の情報を柔軟に保護できる符号化プログラム、符号化方法、符号化装置、復号化プログラム、復号化方法および復号化装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
第１の案では、符号化プログラムは、コンピュータに、デリミタにより区切られた複数の項目からなる複数のレコードを有する、テキストファイルを入力する処理を実行させる。符号化プログラムは、コンピュータに、入力されたテキストファイルの複数のレコードに含まれる特定の項目を単語または数値単位で符号化した、符号化データおよび符号化辞書を有する符号化ファイルを生成する処理を実行させる。符号化プログラムは、コンピュータに、生成された符号化ファイルより、符号化辞書を暗号化した暗号化辞書を含む、暗号化ファイルを生成する処理を実行させる。
【発明の効果】
【０００８】
本発明の１実施態様によれば、特定の項目の情報を柔軟に保護できるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】図１は、帳票を印刷する流れを概略的に示した図である。
【図２】図２は、符号化装置の構成の一例を示す図である。
【図３】図３は、暗号化ファイルのデータ構成の一例を示す図である。
【図４】図４は、符号化の一例を示す図である。
【図５】図５は、復号化装置の構成の一例を示す図である。
【図６】図６は、復号化の一例を示す図である。
【図７】図７は、符号化処理の手順の一例を示すフローチャートである。
【図８】図８は、符号化ファイル生成処理の手順の一例を示すフローチャートである。
【図９】図９は、暗号化処理の手順の一例を示すフローチャートである。
【図１０】図１０は、復号化処理の手順の一例を示すフローチャートである。
【図１１】図１１は、暗号化辞書復号化処理の手順の一例を示すフローチャートである。
【図１２】図１２は、符号化データ復号化処理の手順の一例を示すフローチャートである。
【図１３】図１３は、符号化プログラムを実行するコンピュータの一例を示す図である。
【図１４】図１４は、復号化プログラムを実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【００１０】
以下に、本願の開示する符号化プログラム、符号化方法、符号化装置、復号化プログラム、復号化方法および復号化装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの権利範囲が限定されるものではない。各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例１】
【００１１】
［処理概要］
最初に、図１を用いて、機密情報を含んだテキストファイルの符号化および復号化の概要について説明する。以下では、帳票を印刷するシステムに適用した場合を例に説明する。図１は、帳票を印刷する流れを概略的に示した図である。図１には、基幹システム１１と、印刷拠点１２が示されている。基幹システム１１には、機密情報が格納されたＤＢ（database）１３と、機密情報以外の情報が格納されたＤＢ１４とを有する。ＤＢ１３には、ＩＤに対応づけて、機密情報として、マイナンバーが格納されている。ＤＢ１４には、ＩＤに対応づけて氏名、性別などが格納されている。
【００１２】
基幹システム１１は、帳票処理部１５と、符号化処理部１６とを有する。帳票処理部１５は、印刷する帳票に応じて帳票用データ１７を生成する。例えば、帳票処理部１５は、帳票の様式や各項目の配置位置などを定めた定義体データ１８と、各項目のデータを記憶したＣＳＶファイル１９などを含んだ帳票用データ１７を作成する。ＣＳＶファイル１９には、カンマにより区切られた複数の項目のデータからなる複数のレコードが記憶されている。
【００１３】
ここで、多数のユーザについて帳票を印刷する場合、ＣＳＶファイル１９は、数百ＭＢ〜数ＧＢのデータ量になる場合がある。大容量のＣＳＶファイル１９を保管・転送等する場合、圧縮などの符号化を行うことにより、リソースや転送時間の効率化が行われる。
【００１４】
そこで、符号化処理部１６は、帳票用データ１７の符号化を行う。符号化処理部１６には、符号化の対象となる帳票用データ１７が入力する。符号化処理部１６は、入力された帳票用データ１７を符号化して符号化ファイル２２を生成する。例えば、符号化処理部１６は、帳票用データ１７に含まれるＣＳＶファイル１９の複数のレコードに含まれる各項目を単語または数値単位で符号化した、符号化データ２０および符号化辞書２１を有する符号化ファイル２２を生成する。例えば、符号化処理部１６は、マイナンバーの項目を数値単位で符号化してマイナンバーの項目に対応した符号化辞書２１Ａを生成する。また、符号化処理部１６は、マイナンバーの項目以外の項目を単語または数値単位で符号化してマイナンバーの項目以外の項目に対応した符号化辞書２１Ｂを生成する。そして、符号化処理部１６は、符号化辞書２１Ａによりマイナンバーの項目のデータを符号化し、符号化辞書２１Ｂによりマイナンバーの項目以外の項目のデータを符号化した符号化データ２０を生成する。なお、マイナンバーの項目以外の項目も、項目ごとに符号化辞書２１を生成してデータを符号化してもよい。
【００１５】
符号化処理部１６は、マイナンバーの項目に対応した符号化辞書２１Ａを暗号化キーにより個別に暗号化する。また、符号化処理部１６は、データ全体を、符号化辞書２１Ａの暗号化キーとは異なる暗号化キーにより暗号化する。例えば、符号化処理部１６は、定義体データ１８、符号化データ２０、符号化辞書２１Ａを暗号化した暗号化辞書、符号化辞書２１Ｂなどデータ全体を、暗号化キーにより暗号化して暗号化ファイル２３を生成する。なお、符号化処理部１６は、マイナンバーの項目以外の項目に対応した符号化辞書２１Ｂを個別に暗号化することで、間接的にデータ全体を暗号化してもよい。暗号化ファイル２３、全体を暗号化した暗号化キーに対応する全体の復号化キー、符号化辞書２１Ａを個別に暗号化した暗号化キーに対応する個別の復号化キーは、印刷拠点１２へ送信される。なお、印刷拠点１２が全体の復号化キーおよび個別の復号化キーを記憶している場合や、別途取得可能である場合、全体の復号化キーおよび個別の復号化キーは、印刷拠点１２へ送信しなくてもよい。
【００１６】
印刷拠点１２は、復号化処理部２５と、印刷処理部２６とを有する。復号化処理部２５は、全体の復号化キーを用いて暗号化ファイル２３を復号化して定義体データ１８、符号化データ２０、符号化辞書２１Ａを暗号化した暗号化辞書、符号化辞書２１Ｂに復元する。この状態では、符号化辞書２１Ｂは、暗号化されておらず、元のデータに戻っている。このため、マイナンバーの項目以外の項目は、符号化辞書２１Ｂを用いることにより、ＣＳＶファイル１９のデータに復号化できる。一方、符号化辞書２１Ａは、まだ暗号化キーにより暗号化されている。このため、マイナンバーは、復号化できない。復号化処理部２５は、マイナンバーが出力する項目である場合、個別の復号化キーを用いて符号化辞書２１Ａを復号化する。一方、復号化処理部２５は、マイナンバーが出力する必要のない項目である場合、符号化辞書２１Ａを復号化しない。例えば、源泉徴収票は、収入証明のために利用する際、マイナンバーを記載しないことが定められている。このような場合、復号化処理部２５は、符号化辞書２１Ａを復号化しない。図１の例は、マイナンバーが出力する必要のない項目であるため、印刷拠点１２側ではＣＳＶファイル１９のマイナンバーの項目の符号が正しくマイナンバーに復号化できず、暗号化された状態となることを表している。
【００１７】
印刷処理部２６は、復号化されたＣＳＶファイル１９や定義体データ１８を用いて印刷用データを生成し、源泉徴収票をプリントする。なお、印刷処理部２６は、復号化されたＣＳＶファイル１９や定義体データ１８を用いてＰＤＦ（Portable  Document  Format）などの印刷イメージのデータを生成して出力してもよい。プリントされた源泉徴収票では、マイナンバーの項目は、暗号化された状態であるため、正しくマイナンバーが印刷されない。一方、マイナンバーが出力する項目である場合は、復号化処理部２５により、ＣＳＶファイル１９にマイナンバーのデータが復号化されるため、正しくマイナンバーを印刷される。このように、同じ暗号化ファイル２３を用いて、マイナンバーのデータを柔軟に保護できる。ここで、単純に印刷の際にマイナンバーのデータの表示、非表示を切り替えているわけではない。マイナンバーを印刷しない場合は、符号化辞書２１Ａが暗号化された状態である。このため、マイナンバーのデータは、復元できない。これにより、例えば、符号化データ２０および符号化辞書２１Ａがハッキングされた場合であっても、マイナンバーのデータを保護できる。
【００１８】
［装置構成］
次に、各装置の構成について説明する。最初に、符号化装置３０の構成について説明する。図２は、符号化装置の構成の一例を示す図である。符号化装置３０は、圧縮や暗号化などの符号化を行う装置である。符号化装置３０は、例えば、パーソナルコンピュータ、サーバコンピュータなどのコンピュータや、タブレット端末、スマートフォンなどの情報処理装置である。例えば、図１の例では、符号化装置３０は、基幹システム１１として動作するコンピュータである。符号化装置３０は、１台のコンピュータとして実装してもよく、また、複数台のコンピュータによるクラウドとして実装することもできる。なお、本実施例では、符号化装置３０を１台のコンピュータとした場合を例として説明する。図２に示すように、符号化装置３０は、外部Ｉ／Ｆ（interface）部３１と、記憶部３２と、制御部３３とを有する。なお、符号化装置３０は、コンピュータや情報処理装置が有する上記の機器以外の他の機器を有してもよい。
【００１９】
外部Ｉ／Ｆ部３１は、例えば、他の装置と各種の情報を送受信するインタフェースである。外部Ｉ／Ｆ部３１は、フラッシュメモリなどの記憶媒体に対してデータを入出力するポート、ケーブルなどにより有線通信を行う通信ポート、又は、無線通信を行う通信インタフェースである。
【００２０】
記憶部３２は、ハードディスク、ＳＳＤ（Solid  State  Drive）、光ディスクなどの記憶装置である。なお、記憶部３２は、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ、ＮＶＳＲＡＭ（Non  Volatile  Static  Random  Access  Memory）などのデータを書き換え可能な半導体メモリであってもよい。
【００２１】
記憶部３２は、制御部３３で実行されるＯＳ（Operating  System）や各種プログラムを記憶する。例えば、記憶部３２は、後述する符号化処理、符号化ファイル生成処理および暗号化処理を行うプログラムを記憶する。さらに、記憶部３２は、制御部３３で実行されるプログラムで用いられる各種データを記憶する。例えば、記憶部３２は、テキストファイル４０と、符号化辞書４１と、符号化データ４２と、符号化ファイル４３と、暗号化辞書４４と、暗号化ファイル４５とを記憶する。
【００２２】
テキストファイル４０は、符号化対象の各種の情報が記憶されたデータである。例えば、テキストファイル４０は、図１に示したＣＳＶファイル１９など、デリミタにより区切られた複数の項目からなる複数のレコードを有する。
【００２３】
符号化辞書４１は、データの符号化および復号化に用いる辞書のデータである。例えば、符号化辞書４１は、図１の例の符号化辞書２１が対応する。ここで、本実施例では、テキストファイル４０のデリミタにより区切られた複数の項目のデータを符号化する際に、１つまたは複数の項目ごとに、符号化辞書４１を切り替えて符号化を行う。符号化辞書４１は、符号化する項目ごとに、項目のデータに対応する符号を記憶する。例えば、符号化辞書４１は、符号化する項目ごとに、項目に出現する単語または数値単位に、単語または数値単位の特性に対応して、動的に割り当てられた符号を記憶する。例えば、出現頻度の高い単語または数値に対して短い符号を割り当てており、符号化辞書４１は、動的に割り当てられた符号が記憶される。なお、符号化する項目ごとに、出現する文字列や数字などのパターンが特定のパターンに定まる場合は、符号化辞書４１には、特定のパターンと符号を対応付けて予め記憶させてもよい。また、符号化辞書４１には、符号化した項目を示す項目情報を含めてもよい。
【００２４】
符号化データ４２は、テキストファイル４０の各項目のデータを符号化辞書４１により符号化したデータである。
【００２５】
符号化ファイル４３は、符号化データ４２と、当該符号化データ４２の符号化された各項目の符号化辞書４１を１つのファイルにまとめたデータである。
【００２６】
暗号化辞書４４は、符号化辞書４１を暗号化したデータである。暗号化ファイル４５は、符号化ファイル４３を暗号化したデータである。
【００２７】
制御部３３は、符号化装置３０を制御するデバイスである。制御部３３としては、ＣＰＵ（Central  Processing  Unit）、ＭＰＵ（Micro  Processing  Unit）等の電子回路や、ＡＳＩＣ（Application  Specific  Integrated  Circuit）、ＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路を採用できる。制御部３３は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部３３は、各種のプログラムが動作することにより各種の処理部として機能する。例えば、制御部３３は、データ生成部５０と、符号化処理部５１を有する。
【００２８】
データ生成部５０は、複数の項目のデータをデリミタにより区切った複数のレコードを有するテキストファイル４０を生成する。データ生成部５０は、図１の例の帳票処理部１５が対応する。なお、テキストファイル４０は、他の装置で生成されたものであってもよい。
【００２９】
符号化処理部５１は、テキストファイル４０の各項目のデータを、項目に応じた符号化方式により符号化する。符号化処理部５１は、図１の例の符号化処理部１６が対応する。符号化処理部５１は、入力部５２と、第１生成部５３と、第２生成部５４とを有する。
【００３０】
入力部５２は、符号化対象のテキストデータの入力を受け付ける。例えば、入力部５２は、テキストファイル４０が入力される。
【００３１】
第１生成部５３は、テキストファイル４０からデータを符号化した符号化データ４２および符号化辞書４１を生成し、符号化データ４２および符号化辞書４１を有する符号化ファイルを生成する。例えば、第１生成部５３は、テキストファイル４０の各項目のデータに符号を割り当て、当該項目に対応した符号化辞書４１に、符号と当該符号を割り当てたデータを対応付けて登録する。符号は、各項目のデータに含まれる単語または数値に対して出現頻度を求め、出現頻度の高い単語または数値に対して短い符号を割り当てる。なお、出現する文字列や数字などのパターンが特定のパターンに定まる場合は、符号化辞書４１には、特定のパターンと符号を対応付けて予め記憶させてもよい。また、第１生成部５３は、異なるデータが出現するごとに、短い符号から順に割り当ててもよい。
【００３２】
そして、第１生成部５３は、テキストファイル４０の項目ごとに、当該項目に対応した符号化辞書４１を用いて、データを符号に変換し、データを符号に変換した符号化データ４２を生成する。例えば、第１生成部５３は、テキストファイル４０の項目のデータに単語または数値が含まれる場合、符号化辞書４１に記憶された単語または数値に対応した符号に変換する。第１生成部５３は、生成した符号化データ４２および当該符号化データ４２の符号化に用いた符号化辞書４１を有する符号化ファイル４３を生成する。例えば、第１生成部５３は、データ部として、符号化データ４２を含み、トレーラ部として各符号化辞書４１を含んだ符号化ファイル４３を生成する。
【００３３】
なお、第１生成部５３は、符号化辞書４１に、符号化した項目を示す項目情報を含めてもよい。この場合、第１生成部５３は、符号化する項目ごとに、一意となるように符号を割り当てて、当該項目に対応した符号化辞書４１に登録してもよい。すなわち、符号化する項目ごとに、符号が重複してもよい。例えば、第１生成部５３は、テキストファイル４０の項目ごとに、当該項目のデータに対して一意となるように符号を割り当て、当該項目に対応した符号化辞書４１に登録する。符号は、項目ごとに、データに含まれる単語または数値に対して出現頻度を求め、出現頻度の高い単語または数値に対して短い符号を割り当てる。このように、符号化する項目ごとに、一意となるように符号を割り当てることにより、符号化する項目ごとに、短い符号を重複させて割り当てることができるため、符号化する項目ごとに、データを高い圧縮率で符号化できる。なお、符号化する項目ごとに、出現する文字列や数字などのパターンが特定のパターンに定まる場合は、符号化する項目に対応する符号化辞書４１には、特定のパターンと符号を対応付けて予め記憶させてもよい。また、第１生成部５３は、符号化する項目ごとに、異なるデータが出現するごとに、短い符号から順に割り当ててもよい。
【００３４】
第２生成部５４は、生成された符号化ファイル４３より、符号化辞書４１を暗号化した暗号化辞書４４を含む、暗号化ファイル４５を生成する。例えば、第２生成部５４は、機密情報が格納された項目に対応する符号化辞書４１をそれぞれ個別に暗号化する。また、第２生成部５４は、機密情報が格納された項目以外の他の項目に対応する符号化辞書４１をそれぞれ個別に暗号化することにより、符号化ファイル４３全体を暗号化する。暗号化キーは、それぞれ暗号化の際に所定の規則に沿って生成してもよく、予め定められていてもよい。そして、第２生成部５４は、データ部として、符号化データ４２を含み、トレーラ部として、項目ごとに符号化辞書４１または暗号化辞書４４を含んだ暗号化ファイル４５を生成する。なお、第２生成部５４は、機密情報が格納された項目以外の他の項目については、符号化ファイル４３全体を暗号化することにより、まとめて暗号化してもよい。また、第２生成部５４は、機密情報が格納された項目以外の他の項目については一部の項目のみ、符号化辞書４１を暗号化してもよい。
【００３５】
図３は、暗号化ファイルのデータ構成の一例を示す図である。図３の例では、暗号化ファイル４５は、データ部に符号化データ４２が含まれ、トレーラ部に各項目の符号化辞書４１が含まれている。図３の例では、住所の項目と、マイナンバーの項目の符号化辞書４１がそれぞれ異なる暗号化キーで暗号化されている。
【００３６】
暗号化ファイル４５は、外部Ｉ／Ｆ３１を介して印刷拠点１２の後述する復号化装置へ送られる。
【００３７】
ここで、符号化の一例を説明する。図４は、符号化の一例を示す図である。図４には、符号化ファイル４３が模式的に示されており、符号化データ４２と、符号化データ４２の各項目に対応した符号化辞書４１Ａ〜４１Ｃが示されている。符号化データ４２の氏名の項目は、符号化辞書４１Ａにより、データが符号に変換されている。例えば、氏名の項目には、符号「１Ａ」が格納されている。符号化辞書４１Ａには、符号「１Ａ」に対応して氏名「田中  太郎」が登録されている。また、符号化データ４２の部署の項目は、符号化辞書４１Ｂにより、データが符号に変換されている。例えば、部署の項目には、符号「５Ｃ」が格納されている。符号化辞書４１Ｂには、符号「５Ｃ」に対応して部署「第一営業部」が登録されている。また、符号化データ４２のマイナンバーの項目は、符号化辞書４１Ｃにより、データが符号に変換されている。例えば、部署の項目には、符号「４４Ｃ」が格納されている。符号化辞書４１Ｃには、符号「４４Ｃ」に対応して部署「１２３４５６７８９０１２」が登録されている。
【００３８】
符号化データ４２は、それぞれ項目のデータが符号化されており、符号化辞書４１Ａ〜４１Ｃから符号に対応するデータを読み出すことにより、元のデータに復元できる。ここで、例えば、符号化辞書４１Ａ〜４１Ｃをそれぞれ暗号化した場合、それぞれ項目は、符号を元のデータに復元できなくなる。すなわち、符号化データ４２は、符号化辞書４１Ａ〜４１Ｃをそれぞれ暗号化した場合、間接的にデータが暗号化できる。また、符号化データ４２は、符号化辞書４１Ａ〜４１Ｃを異なる鍵で暗号化した場合、項目ごとに、個別に暗号化できる。図４の例では、符号化辞書４１Ａを鍵１により暗号化し、符号化辞書４１Ｂを鍵２により暗号化し、符号化辞書４１Ｃを鍵３により暗号化した場合を示している。このように符号化辞書４１Ａ〜４１Ｃを個別に暗号化することにより、符号化データ４２は、項目ごとに、データのセキュリティを柔軟に制御でき、情報漏洩のリスクを低下させることができる。例えば、復号化の鍵１〜３を保持する部長は、符号化データ４２の氏名、部署、マイナンバーの項目を全て元のデータに復号化できる。一方、復号化の鍵１、２を保持する担当者は、符号化データ４２の氏名、部署の項目を元のデータに復号化できるものの、マイナンバーの項目を元のデータに正しく復号化できない。
【００３９】
ここで、例えば、従来、機密情報を含むファイルを秘匿する場合、ファイル全体を暗号化することが考えられる。例えば、ＣＳＶファイルを、Ｚｉｐ形式などの圧縮形式を用いてＺＩＰファイルなどに圧縮し、圧縮ファイルを暗号化する方法が考えられる。しかし、ファイル全体を暗号化した場合、復号化時に全ての情報が復号されてしまい、情報漏洩のリスクがある。
【００４０】
また、例えば、ＣＳＶファイルをレコードごとに暗号化することが考えられる。しかし、ＣＳＶファイルをレコードごとに暗号化を行う場合、暗号化された暗号化ファイルを利用する際に、使用する全ての行を復号化しなければならず、処理速度が遅くなる。また、ＣＳＶファイルをレコードごとに暗号化を行う場合、全ての行に対して、別の鍵を用意しなければならず、レコード数が多いデータに対しては現実的でない。さらに、暗号化を行った上で圧縮する形となり、圧縮率が低くなる。
【００４１】
また、例えば、ＣＳＶファイルにおいて、機密情報の項目のみを暗号化する方法が考えられる。しかし、ＣＳＶファイルは、可変長データであり、「,」などの区切り文字によって、列として認識される。一方で、機密情報の項目を暗号化した結果、偶然、例えば、「,」などの区切り文字を示す文字コードが生成される可能性がある。このため、機密情報の項目のみを暗号化する方法は、ＣＳＶファイルのデータ構造を正しく読み込めなくなるという問題がある。そこで、項目のデータの長さ（文字数）を別途定義して、機密情報の項目を固定長で暗号化する方法も考えられる。しかし、機密情報の項目を固定長で暗号化する方法は、項目のデータに無駄が発生する。例えば、データ長の比較的短いカラム（マイナンバー・氏名・性別など）に対し、１２８ビットのＡＥＳ（Advanced  Encryption  Standard）ブロック暗号などの所定サイズごとの暗号化を行う場合を考える。この場合、暗号化する項目のデータを所定サイズとするため、パディングビットが付加され、ＣＳＶファイルのデータサイズが増大する。例えば、１２桁のマイナンバーは、ＢＣＤ数値の場合、４８ビットである。この１２桁のマイナンバーを１２８ビットのＡＥＳブロック暗号を行う場合、パディングビットを付加して１２８ビットされるため、データのサイズが、２．５倍以上に肥大化する。
【００４２】
また、例えば、ＣＳＶファイルには機密情報を含めず、機密情報を閲覧する権限がある場合には、機密情報のみを別途取得する方法が考えられる。しかし、機密情報のみを別途取得することになるため、同一のデータであることが保証できない。例えば、文書には、原本を保存することが求められているものがある。例えば、マイナンバーを含む帳票や、病院のカルテ、法令上保存義務のある文書は、文書の原本を保存することが求められている。原本の保存は、電子データで保存することも認められている。これに対し、機密情報とＣＳＶファイルを別々に持ち、機密情報のみを別途取得する方法は、原本保存に従わない結果となり、問題となる可能性がある。
【００４３】
これに対し、本実施例の符号化の方法は、ＣＳＶファイルなどのテキストファイル４０を項目ごとに、符号化辞書４１を用いて符号化データ４２に符号化するので、テキストファイル４０を高い圧縮率で圧縮できる。また、本実施例の符号化の方法は、各項目の符号化辞書４１を暗号化するので、項目ごとに情報を柔軟に保護できる。また、本実施例の符号化の方法は、暗号化で項目のデータに、データサイズの増大をまねくパディングビットなどを付加しない。また、本実施例の符号化の方法は、暗号化ファイル４５を保存することで、原本保存に対応することができる。
【００４４】
次に、復号化装置６０の構成について説明する。図５は、復号化装置の構成の一例を示す図である。復号化装置６０は、圧縮や暗号化されたデータの復号化を行う装置である。復号化装置６０は、例えば、パーソナルコンピュータ、サーバコンピュータなどのコンピュータや、タブレット端末、スマートフォンなどの情報処理装置である。例えば、図１の例では、復号化装置６０は、印刷拠点１２で暗号化ファイル２３を復号化するコンピュータである。復号化装置６０は、１台のコンピュータとして実装してもよく、また、複数台のコンピュータによるクラウドとして実装することもできる。なお、本実施例では、復号化装置６０を１台のコンピュータとした場合を例として説明する。図５に示すように、復号化装置６０は、外部Ｉ／Ｆ部６１と、記憶部６２と、制御部６３とを有する。なお、復号化装置６０は、コンピュータや情報処理装置が有する上記の機器以外の他の機器を有してもよい。
【００４５】
外部Ｉ／Ｆ部６１は、例えば、他の装置と各種の情報を送受信するインタフェースである。外部Ｉ／Ｆ部６１は、フラッシュメモリなどの記憶媒体に対してデータを入出力するポート、ケーブルなどにより有線通信を行う通信ポート、又は、無線通信を行う通信インタフェースである。
【００４６】
記憶部６２は、ハードディスク、ＳＳＤ、光ディスクなどの記憶装置である。なお、記憶部６２は、ＲＡＭ、フラッシュメモリ、ＮＶＳＲＡＭなどのデータを書き換え可能な半導体メモリであってもよい。
【００４７】
記憶部６２は、制御部６３で実行されるＯＳや各種プログラムを記憶する。例えば、記憶部６２は、後述する復号化処理、暗号化辞書復号化処理および符号化データ復号化処理を行うプログラムを記憶する。さらに、記憶部６２は、制御部６３で実行されるプログラムで用いられる各種データを記憶する。例えば、記憶部６２は、暗号化ファイル７０と、暗号化辞書７１と、符号化辞書７２と、符号化データ７３と、テキストファイル７４とを記憶する。
【００４８】
暗号化ファイル７０は、符号化装置３０により暗号化されて送信された暗号化ファイル４５を記憶したものである。符号化装置３０から暗号化されて送信された暗号化ファイル４５は、暗号化ファイル７０として記憶部６２に記憶される。暗号化ファイル７０は、符号化データ４２と、暗号化辞書４４とを含んでいる。
【００４９】
暗号化辞書７１は、暗号化ファイル７０に含まれる暗号化辞書４４を記憶したものである。符号化辞書７２は、暗号化辞書７１を復号化したデータを記憶したものである。暗号化辞書７１が正当な復号化キーで復号化された場合、符号化辞書７２は、符号化辞書４１と同一に復元される。
【００５０】
符号化データ７３は、暗号化ファイル７０に含まれる符号化データ４２を記憶したものである。テキストファイル７４は、符号化データ７３を符号化辞書７２により復号化したデータを記憶したものである。符号化辞書７２が符号化辞書４１と同一に復元される場合、テキストファイル７４は、テキストファイル４０と同一に復元される。
【００５１】
制御部６３は、復号化装置６０を制御するデバイスである。制御部６３としては、ＣＰＵ、ＭＰＵ等の電子回路や、ＡＳＩＣ、ＦＰＧＡ等の集積回路を採用できる。制御部６３は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部６３は、各種のプログラムが動作することにより各種の処理部として機能する。例えば、制御部６３は、復号化処理部８０を有する。
【００５２】
復号化処理部８０は、暗号化ファイル７０を復号化する。復号化処理部８０は、図１の例の復号化処理部２５が対応する。復号化処理部８０は、入力部８１と、復号化部８２と、出力部８３とを有する。
【００５３】
入力部８１は、復号化対象の暗号化ファイル７０の入力を受け付ける。例えば、入力部８１は、記憶部６２に記憶された暗号化ファイル７０が入力する。
【００５４】
復号化部８２は、暗号化ファイル７０が復号化する。例えば、復号化部８２は、暗号化ファイル７０に含まれる暗号化辞書４４を暗号化辞書７１として記憶部６２に格納する。そして、復号化部８２は、暗号化辞書７１をそれぞれ所定の復号化キーにより復号化し、復号化された符号化辞書７２を記憶部６２に格納する。復号化キーは、ユーザに入力させてもよく、ユーザごとにユーザの権限に応じて各項目の復号化キーを記憶した装置から取得してもよい。ここで、暗号化辞書７１は、正当な復号化キーで復号化されていない場合、符号化辞書４１に復元されない。なお、暗号化ファイル７０全体が暗号化されている場合、復号化部８２は、全体を暗号化した暗号化キーに対応する復号化キーにより復号化する。
【００５５】
出力部８３は、暗号化ファイル７０に含まれる符号化データ４２を符号化データ７３として記憶部６２に格納する。出力部８３は、復号化部８２により復号化された符号化辞書７２を用いて、符号化データ７３の各項目の符号をデータに変換し、符号をデータに変換したテキストファイル７４を生成する。例えば、出力部８３は、機密情報が格納された項目に対応する符号化辞書７２を用いて、符号化データ７３の機密情報が格納された項目の符号をデータに変換する。また、出力部８３は、機密情報が格納された項目以外の他の項目については、他の項目に対応する符号化辞書７２を用いて、他の項目の符号をデータに変換する。例えば、符号化辞書７２に符号化した項目を示す項目情報が含まれる場合、出力部８３は、符号化辞書７２を用いて、項目情報が示す項目の符号をデータに変換する。一方、符号化辞書７２に符号化した項目を示す項目情報が含まれない場合、出力部８３は、各符号化辞書７２を用いて、項目情報が示す項目の符号をデータに変換する。ここで、暗号化辞書７１が符号化辞書４１に復元されていない場合、各符号化辞書７２には、符号に対応するデータがない。これにより、機密情報が格納された項目に対応する符号化辞書７２が復元されていない場合、機密情報が格納された項目のデータは、復元されない。例えば、マイナンバーの項目に対応した符号化辞書７２が復元されていない場合、マイナンバーは、復元されない。出力部８３は、符号に対応するデータが無い場合、符号をそのまま項目のデータとしてもよく、符号を特定の文字に変換してもよく、または、データを空白として符号を出力しないものとしてもよい。
【００５６】
出力部８３は、生成したテキストファイル７４を記憶部６２へ出力して格納する。なお、出力部８３は、生成したテキストファイル７４を他のプログラムや他の装置へ出力してもよい。
【００５７】
ここで、復号化の一例を説明する。図６は、復号化の一例を示す図である。図６には、氏名、部署、マイナンバーの各項目を有する符号化データ７３と、符号化データ７３の各項目に対応した符号化辞書７２Ａ〜７２Ｃが示されている。符号化辞書７２Ａは、正しく復号化されており、氏名の項目についての符号とデータが対応付けて記憶されている。符号化辞書７２Ｂも、正しく復号化されており、部署の項目についての符号とデータが対応付けて記憶されている。符号化辞書７２Ｃは、正しく復号化されておらず、マイナンバーの項目について暗号化された状態である。
【００５８】
出力部８３は、符号化辞書７２Ａ〜７２Ｃを用いて、符号化データ７３の各項目の符号をデータに変換する。図６の例では、符号化データ７３の１レコード目の符号を変換した結果が示されている。例えば、氏名の項目の符号「１Ａ」は、「田中  太郎」と変換されている。部署の項目の符号「５Ｃ」は、「第一営業部」と変換されている。一方、マイナンバーの項目の符号「４４Ｃ」は、符号化辞書７２Ｃに無いため、そのまま出力されている。なお、出力部８３は、符号に対応するデータが無い場合、符号を特定の文字（図６の例では「*」）に変換して出力してもよく、空白を出力してもよい。これにより、マイナンバーの項目の情報を保護できる。
【００５９】
［処理の流れ］
次に、本実施例に係る符号化装置３０および復号化装置６０が実行する各種の処理の流れについて説明する。最初に、符号化装置３０がテキストファイル４０を符号化する符号化処理の流れについて説明する。図７は、符号化処理の手順の一例を示すフローチャートである。この符号化処理は、所定のタイミング、例えば、データ生成部５０の処理が実行されたタイミングで実行される。
【００６０】
図７に示すように、データ生成部５０は、テキストファイル４０に格納する各項目のデータを取得する（Ｓ１０）。例えば、図１の例で源泉徴収票を印刷する場合、データ生成部５０は、ＤＢ１３、ＤＢ１４から氏名、性別、マイナンバーの各項目のデータを取得する。データ生成部５０は、取得した複数の項目のデータをデリミタにより区切った複数のレコードを有するテキストファイル４０を生成する（Ｓ１１）。
【００６１】
入力部５２は、符号化対象のテキストデータの入力を受け付ける（Ｓ１２）。第１生成部５３は、符号化ファイル生成処理を実行する（Ｓ１３）。
【００６２】
図８は、符号化ファイル生成処理の手順の一例を示すフローチャートである。この符号化ファイル生成処理は、所定のタイミング、例えば、符号化処理のＳ１３から実行される。
【００６３】
図８に示すように、第１生成部５３は、パラメータｉおよびパラメータｊにそれぞれ１を格納する（Ｓ２０）。第１生成部５３は、テキストファイル４０の項目数Ｉとレコード数Ｊを特定する（Ｓ２１）。
【００６４】
第１生成部５３は、テキストファイル４０のｉ番目の項目が符号化対象の項目であるか判定する（Ｓ２２）。項目が符号化対象であるかは、予め定めておく。例えば、機密情報が格納された項目は、符号化対象の項目とする。符号化対象の項目ではない場合（Ｓ２２否定）、第１生成部５３は、パラメータｉの値に１を加算する（Ｓ２３）。第１生成部５３は、パラメータｉの値が項目数Ｉより大きいか否かを判定する（Ｓ２４）。パラメータｉの値が項目数Ｉより大きくはない場合（Ｓ２４否定）、Ｓ２２へ移行する。
【００６５】
一方、パラメータｉの値が項目数Ｉより大きい場合（Ｓ２４肯定）、符号化ファイル生成処理を終了し、図７に示す符号化処理のＳ１４へ移行する。
【００６６】
一方、符号化対象の項目である場合（Ｓ２２肯定）、第１生成部５３は、テキストファイル４０のｊ番目のレコードのｉ番目の項目のデータが、ｉ番目の項目に対応した符号化辞書４１に登録されているか判定する（Ｓ２５）。符号化辞書４１に登録されている場合（Ｓ２５肯定）、第１生成部５３は、ｊ番目のレコードのｉ番目の項目のデータを、ｉ番目の項目に対応した符号化辞書４１に登録されている、当該データに対応する符号に置き換える（Ｓ２６）。
【００６７】
符号化辞書４１に登録されていない場合（Ｓ２５否定）、第１生成部５３は、テキストファイル４０のｊ番目のレコードのｉ番目の項目のデータに符号を割り当てる。そして、第１生成部５３は、ｉ番目の項目に対応した符号化辞書４１に割り当てた符号とデータとを対応付けて登録し、割り当てた符号にデータを置き換える（Ｓ２７）。
【００６８】
第１生成部５３は、パラメータｊの値に１を加算する（Ｓ２８）。第１生成部５３は、パラメータｊの値がレコード数Ｊより大きいか否かを判定する（Ｓ２９）。パラメータｊの値がレコード数Ｊより大きくはない場合（Ｓ２９否定）、Ｓ２５へ移行する。
【００６９】
一方、パラメータｊの値がレコード数Ｊより大きい場合（Ｓ２９肯定）、第１生成部５３は、パラメータｊに１を格納し（Ｓ３０）、Ｓ２３へ移行する。
【００７０】
図７に戻り、第２生成部５４は、符号化辞書４１に、符号化した項目を示す項目情報を格納する（Ｓ１４）。第２生成部５４は、暗号化処理を実行する（Ｓ１５）。
【００７１】
図９は、暗号化処理の手順の一例を示すフローチャートである。この暗号化処理は、所定のタイミング、例えば、符号化処理のＳ１５から実行される。
【００７２】
図９に示すように、第２生成部５４は、パラメータｉに１を格納する（Ｓ４０）。第２生成部５４は、テキストファイル４０の項目数Ｉを特定する（Ｓ４１）。
【００７３】
第２生成部５４は、テキストファイル４０のｉ番目の項目が暗号化対象の項目であるか判定する（Ｓ４２）。項目が暗号化対象であるかは、予め定めておく。例えば、機密情報が格納された項目は、暗号化対象の項目とする。暗号化対象の項目である場合（Ｓ４２肯定）、第２生成部５４は、テキストファイル４０のｉ番目の項目に対応する符号化辞書４１を暗号化する（Ｓ４３）。なお、ｉ番目の項目に対応する符号化辞書４１が暗号化済みの場合は、再度、暗号化を行わなくてもよい。第２生成部５４は、パラメータｉの値に１を加算する（Ｓ４４）。一方、暗号化対象の項目ではない場合（Ｓ４２否定）、Ｓ４４へ移行する。
【００７４】
第２生成部５４は、パラメータｉの値が項目数Ｉより大きいか否かを判定する（Ｓ４５）。パラメータｉの値が項目数Ｉより大きくはない場合（Ｓ４５否定）、Ｓ４２へ移行する。
【００７５】
一方、パラメータｉの値が項目数Ｉより大きい場合（Ｓ４５肯定）、暗号化処理を終了し、図７に示す符号化処理のＳ１５に移行する。
【００７６】
図７に戻り、第２生成部５４は、データ部として、符号化データ４２を含み、トレーラ部として、項目ごとに符号化辞書４１または暗号化辞書４４を含んだ暗号化ファイル４５を生成し（Ｓ１６）、符号化処理を終了する。
【００７７】
次に、復号化装置６０が暗号化ファイル４５を復号化する復号化処理の流れについて説明する。図１０は、復号化処理の手順の一例を示すフローチャートである。この復号化処理は、所定のタイミング、例えば、復号化対象の暗号化ファイル７０を指定されて復号化処理開始が指示されたタイミングで実行される。
【００７８】
図１０に示すように、入力部８１は、復号化対象の暗号化ファイル７０の入力を受け付ける（Ｓ５０）。復号化部８２は、復号化キーを取得する（Ｓ５１）。例えば、復号化部８２は、ユーザごとにユーザの権限に応じて各項目の復号化キーを記憶した装置から、暗号化ファイル７０を利用するユーザの権限に応じた各項目の復号化キーを取得する。
【００７９】
復号化部８２は、暗号化辞書復号化処理を実行する（Ｓ５２）。
【００８０】
図１１は、暗号化辞書復号化処理の手順の一例を示すフローチャートである。この暗号化辞書復号化処理は、所定のタイミング、例えば、復号化処理のＳ５２から実行される。
【００８１】
図１１に示すように、復号化部８２は、パラメータｉに１を格納する（Ｓ６０）。復号化部８２は、暗号化ファイル７０に含まれる符号化データ４２の項目数Ｉを特定する（Ｓ６１）。
【００８２】
復号化部８２は、符号化データ４２のｉ番目の項目が暗号化対象の項目であるか判定する（Ｓ６２）。項目が暗号化対象であるかは、例えば、暗号化ファイル７０に、項目が暗号化対象であるかの情報を格納させておき、当該情報から判定してもよい。また、復号化キーを取得された項目は、項目が暗号化対象であると判定してもよい。暗号化対象の項目である場合（Ｓ６２肯定）、復号化部８２は、ｉ番目の項目に対応する符号化辞書７２を復号化する（Ｓ６３）。なお、ｉ番目の項目に対応する符号化辞書７２が復号化済みの場合は、再度、復号化を行わなくてもよい。復号化部８２は、パラメータｉの値に１を加算する（Ｓ６４）。一方、暗号化対象の項目ではない場合（Ｓ６２否定）、Ｓ６４へ移行する。
【００８３】
復号化部８２は、パラメータｉの値が項目数Ｉより大きいか否かを判定する（Ｓ６５）。パラメータｉの値が項目数Ｉより大きくはない場合（Ｓ６５否定）、Ｓ６２へ移行する。
【００８４】
一方、パラメータｉの値が項目数Ｉより大きい場合（Ｓ６５肯定）、暗号化辞書復号化処理を終了し、図１０に示す復号化処理のＳ５３に移行する。
【００８５】
図１０に戻り、復号化部８２は、符号化データ復号化処理を実行する（Ｓ５３）。
【００８６】
図１２は、符号化データ復号化処理の手順の一例を示すフローチャートである。この符号化データ復号化処理は、所定のタイミング、例えば、復号化処理のＳ５３から実行される。
【００８７】
図１２に示すように、復号化部８２は、パラメータｉおよびパラメータｊにそれぞれ１を格納する（Ｓ７０）。復号化部８２は、符号化データ７３の項目数Ｉとレコード数Ｊを特定する（Ｓ７１）。
【００８８】
復号化部８２は、テキストファイル４０のｊ番目のレコードのｉ番目の項目の符号を、ｉ番目の項目に対応した符号化辞書７２から検索する（Ｓ７２）。復号化部８２は、検索の結果、ｉ番目の項目に対応した符号化辞書７２に符号が存在するか否かを判定する（Ｓ７３）。符号が存在する場合（Ｓ７３肯定）、復号化部８２は、テキストファイル４０のｊ番目のレコードのｉ番目の項目の符号を、ｉ番目の項目に対応した符号化辞書７２に記憶された当該符号に対応するデータに置き換える（Ｓ７４）。
【００８９】
一方、符号が存在しない場合（Ｓ７３否定）、復号化部８２は、符号をそのままｊ番目のレコードのｉ番目の項目のデータとする（Ｓ７５）。
【００９０】
復号化部８２は、パラメータｊの値に１を加算する（Ｓ７６）。第１生成部５３は、パラメータｊの値がレコード数Ｊより大きいか否かを判定する（Ｓ７７）。パラメータｊの値がレコード数Ｊより大きくはない場合（Ｓ７７否定）、Ｓ７２へ移行する。
【００９１】
一方、パラメータｊの値がレコード数Ｊより大きい場合（Ｓ７７肯定）、復号化部８２は、パラメータｊに１を格納し、パラメータｉの値に１を加算する（Ｓ７８）。第１生成部５３は、パラメータｉの値が項目数Ｉより大きいか否かを判定する（Ｓ７９）。パラメータｉの値が項目数Ｉより大きくはない場合（Ｓ７９否定）、Ｓ７２へ移行する。
【００９２】
一方、パラメータｉの値が項目数Ｉより大きい場合（Ｓ７９肯定）、符号化データ復号化処理を終了し、図１０に示す復号化処理のＳ５４に移行する。
【００９３】
図１０に戻り、出力部８３は、生成したテキストファイル７４を記憶部６２へ出力して格納し（Ｓ５４）、復号化処理を終了する。
【００９４】
［効果］
上述してきたように、本実施例に係る符号化装置３０は、デリミタにより区切られた複数の項目からなる複数のレコードを有する、テキストファイル４０が入力する。符号化装置３０は、入力されたテキストファイル４０の複数のレコードに含まれる特定の項目を単語または数値単位で符号化した、符号化データ４２および符号化辞書４１を有する符号化ファイル４３を生成する。符号化装置３０は、生成された符号化ファイル４３より、符号化辞書４１を暗号化した暗号化辞書４４を含む、暗号化ファイル４５を生成する。これにより、符号化装置３０は、特定の項目の情報を柔軟に保護できる。
【００９５】
また、本実施例に係る符号化装置３０は、テキストファイル４０の複数のレコードに含まれる特定の項目以外の項目を単語または数値単位で符号化した符号化データ４２および項目ごとの符号化辞書４１を生成する。これにより、符号化装置３０は、テキストファイル４０を高い圧縮率で符号化できる。
【００９６】
また、本実施例に係る符号化装置３０は、符号化した項目を示す項目情報を含めて符号化辞書４１を生成する。これにより、符号化装置３０は、符号化辞書４１ごとに符号を重複させることが可能となるため、より高い圧縮率で圧縮することが可能となる。また、復元する際に、符号化した項目に対応する符号化辞書４１を速やかに特定できる。
【００９７】
また、本実施例に係る符号化装置３０は、符号化ファイル４３全体または特定の項目以外の項目の符号化辞書４１を、特定の項目の符号化辞書４１の暗号化とは異なる暗号化キーにより暗号化した暗号化ファイル４５を生成する。これにより、符号化装置３０は、符号化ファイル４３全体を秘匿化できる。
【００９８】
また、本実施例に係る復号化装置６０は、暗号化ファイル７０が入力する。復号化装置６０は、入力された暗号化ファイル７０の暗号化辞書７１を所定の復号化キーにより復号化する。復号化装置６０は、復号化された符号化辞書７２を用いて特定の項目を復号化したテキストファイル７４を出力する。これにより、復号化装置６０は、暗号化ファイル７０の利用目的に合わせて特定の項目の情報を柔軟に保護できる。
【００９９】
また、本実施例に係る復号化装置６０は、符号化辞書７２に特定の項目の符号が存在しない場合、当該符号をそのまま出力する。ここで、一般的に、符号化辞書７２に特定の項目の符号が存在しない場合、復号化がエラーになる。一方、本実施例に係る復号化装置６０は、符号化辞書７２に特定の項目の符号が存在しない場合、例えば、符号に対応するデータが参照する権限が無いものとして、符号をそのまま出力する。これにより、復号化装置６０は、特定の項目の符号に対応するデータを秘匿化できる。
【０１００】
また、本実施例に係る復号化装置６０は、符号化辞書７２に特定の項目の符号が存在しない場合、当該符号を特定の文字に変換して出力、または、当該符号を出力しない。これにより、復号化装置６０は、例えば、符号に対応するデータが参照する権限が無い場合、特定の項目の符号に対応するデータを秘匿化できる。
【実施例２】
【０１０１】
さて、これまで開示の装置に関する実施例について説明したが、開示の技術は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
【０１０２】
例えば、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的状態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、符号化処理部５１の入力部５２、第１生成部５３、第２生成部５４、復号化処理部８０の入力部８１、復号化部８２、出力部８３の各処理部が適宜統合されてもよい。上記各処理部の処理が適宜複数の処理部の処理に分離されてもよい。また、上記各処理部は、１つの装置が備えてもよい。例えば、符号化装置３０が復号化処理部８０の入力部８１、復号化部８２、出力部８３をさらに備えてもよい。さらに、各処理部にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【０１０３】
［符号化プログラム］
また、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することもできる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータシステムの一例を説明する。最初に、符号化処理を行う符号化プログラムについて説明する。図１３は、符号化プログラムを実行するコンピュータの一例を示す図である。
【０１０４】
図１３に示すように、コンピュータ４００は、ＣＰＵ（Central  Processing  Unit）４１０、ＨＤＤ（Hard  Disk  Drive）４２０、ＲＡＭ（Random  Access  Memory）４４０を有する。これら４００〜４４０の各部は、バス５００を介して接続される。
【０１０５】
ＨＤＤ４２０には上記の符号化装置３０の符号化処理部５１（入力部５２、第１生成部５３、第２生成部５４）と同様の機能を発揮する符号化プログラム４２０ａが予め記憶される。なお、符号化プログラム４２０ａについては、適宜分離してもよい。
【０１０６】
また、ＨＤＤ４２０は、各種情報を記憶する。例えば、ＨＤＤ４２０は、ＯＳや符号化に用いる各種データを記憶する。
【０１０７】
そして、ＣＰＵ４１０が、符号化プログラム４２０ａをＨＤＤ４２０から読み出して実行することで、実施例の各処理部と同様の動作を実行する。すなわち、符号化プログラム４２０ａは、符号化処理部５１と同様の動作を実行する。
【０１０８】
なお、上記した符号化プログラム４２０ａについては、必ずしも最初からＨＤＤ４２０に記憶させることを要しない。
【０１０９】
［復号化プログラム］
次に、復号化処理を行う復号化プログラムについて説明する。図１４は、復号化プログラムを実行するコンピュータの一例を示す図である。なお、図１３と同一の部分については同一の符号を付して、説明を省略する。
【０１１０】
図１４に示すように、ＨＤＤ４２０には上記の復号化装置６０の復号化処理部８０（入力部８１、復号化部８２、出力部８３）と同様の機能を発揮する復号化プログラム４２０ｂが予め記憶される。なお、復号化プログラム４２０ｂについては、適宜分離してもよい。
【０１１１】
また、ＨＤＤ４２０は、各種情報を記憶する。例えば、ＨＤＤ４２０は、ＯＳや検索に用いる各種データを記憶する。
【０１１２】
そして、ＣＰＵ４１０が、復号化プログラム４２０ｂをＨＤＤ４２０から読み出して実行することで、実施例の各処理部と同様の動作を実行する。すなわち、復号化プログラム４２０ｂは、復号化処理部８０と同様の動作を実行する。
【０１１３】
なお、上記した復号化プログラム４２０ｂについても、必ずしも最初からＨＤＤ４２０に記憶させることを要しない。
【０１１４】
また、例えば、符号化プログラム４２０ａおよび復号化プログラム４２０ｂは、コンピュータ４００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に記憶させてもよい。そして、コンピュータ４００がこれらからプログラムを読み出して実行するようにしてもよい。
【０１１５】
さらには、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ４００に接続される「他のコンピュータ（又はサーバ）」などにプログラムを記憶させておく。そして、コンピュータ４００がこれらからプログラムを読み出して実行するようにしてもよい。
【符号の説明】
【０１１６】
１１  基幹システム
１２  印刷拠点
１５  帳票処理部
１６  符号化処理部
１７  帳票用データ
１８  定義体データ
１９  ＣＳＶファイル
２０  符号化データ
２１  符号化辞書
２２  符号化ファイル
２３  暗号化ファイル
２５  復号化処理部
２６  印刷処理部
３０  符号化装置
３２  記憶部
３３  制御部
４０  テキストファイル
４１  符号化辞書
４２  符号化データ
４３  符号化ファイル
４４  暗号化辞書
４５  暗号化ファイル
５０  データ生成部
５１  符号化処理部
５２  入力部
５３  第１生成部
５４  第２生成部
６０  復号化装置
６２  記憶部
６３  制御部
７０  暗号化ファイル
７１  暗号化辞書
７２  符号化辞書
７３  符号化データ
７４  テキストファイル
８０  復号化処理部
８１  入力部
８２  復号化部
８３  出力部
【図１】
2018061170.tif 000003
【図２】
2018061170.tif 000004
【図３】
2018061170.tif 000005
【図４】
2018061170.tif 000006
【図５】
2018061170.tif 000007
【図６】
2018061170.tif 000008
【図７】
2018061170.tif 000009
【図８】
2018061170.tif 000010
【図９】
2018061170.tif 000011
【図１０】
2018061170.tif 000012
【図１１】
2018061170.tif 000013
【図１２】
2018061170.tif 000014
【図１３】
2018061170.tif 000015
【図１４】
2018061170.tif 000016