(57)【要約】【課題】情報漏洩のリスクを抑えて情報を提供できる暗号化システム、暗号化方法、暗号化装置および暗号化プログラムを提供する。【解決手段】符号化部２１は、複数の項目を有するレコードを複数備えたＣＳＶファイル３０の少なくとも一部の項目を、各レコードの項目単位で符号化する。生成部２２は、符号化において用いられた符号化辞書３２を、辞書単位で暗号化した暗号化辞書３３を生成する。送信部２３は、データに含まれる一部のレコードの要求に応じて、要求元に、符号化された一部のレコードを含んだ符号化データ３４と暗号化辞書３３とを送付する。要求部４０は、ＣＳＶファイル３０に含まれる一部のレコードを要求する。復号化部４１は、要求に応じて受信した符号化データ３４を暗号化辞書３３を用いて復号化する。【選択図】図１
2018061171.tif 000002
【特許請求の範囲】
【請求項１】
複数の項目を有するレコードを複数備えたデータの少なくとも一部の項目を、各レコードの項目単位で符号化する符号化部と、前記符号化部による符号化において用いられた辞書を、辞書単位で暗号化した暗号化辞書を生成する生成部と、前記データに含まれる一部のレコードの要求に応じて、要求元に、符号化された前記一部のレコードと前記暗号化辞書とを送付する送信部と、を有する暗号化装置と、
前記暗号化装置に対して前記データに含まれる一部のレコードを要求する要求部と、前記要求部からの要求に応じて前記暗号化装置から受信した前記一部のレコードを前記暗号化辞書を用いて復号化する復号化部とを有する復号化装置と、
を備えた暗号化システム。
【請求項２】
前記符号化部は、前記少なくとも一部の項目のデータに、項目単位で一意となるように符号を割り当てて符号化すると共に、項目単位で割り当てた符号とデータを対応付けた辞書を生成し、
前記生成部は、前記符号化部による符号化において項目単位で生成された辞書を、異なる暗号化キーにより暗号化した暗号化辞書を生成する請求項１に記載の暗号化システム。
【請求項３】
前記符号化部は、前記少なくとも一部の項目のデータに含まれる単語または数値に対して出現頻度を求め、出現頻度の高い単語または数値に対して短い符号を割り当てる請求項１または２に記載の暗号化システム。
【請求項４】
暗号化装置と復号化装置による暗号化方法であって、
前記暗号化装置が、
複数の項目を有するレコードを複数備えたデータの少なくとも一部の項目を、各レコードの項目単位で符号化し、
前記符号化において用いられた辞書を、辞書単位で暗号化した暗号化辞書を生成し、
前記データに含まれる一部のレコードの要求に応じて、要求元に、符号化された前記一部のレコードと前記暗号化辞書とを送付し、
前記復号化装置が、
前記暗号化装置に対して前記データに含まれる一部のレコードを要求し、
前記要求に応じて前記暗号化装置から受信した前記一部のレコードを前記暗号化辞書を用いて復号化する
処理を実行する暗号化方法。
【請求項５】
複数の項目を有するレコードを複数備えたデータの少なくとも一部の項目を、各レコードの項目単位で符号化する符号化部と、
前記符号化部による符号化において用いられた辞書を、辞書単位で暗号化した暗号化辞書を生成する生成部と、
前記データに含まれる一部のレコードの要求に応じて、要求元に、符号化された前記一部のレコードと前記暗号化辞書とを送付する送信部と、
を有する暗号化装置。
【請求項６】
コンピュータに、
複数の項目を有するレコードを複数備えたデータの少なくとも一部の項目を、各レコードの項目単位で符号化し、
前記符号化において用いられた辞書を、辞書単位で暗号化した暗号化辞書を生成し、
前記データに含まれる一部のレコードの要求に応じて、要求元に、符号化された前記一部のレコードと前記暗号化辞書とを送付する、
処理を実行させる暗号化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号化システム、暗号化方法、暗号化装置および暗号化プログラムに関する。
【背景技術】
【０００２】
近年、例えば、マイナンバー（個人番号）をはじめとする、機密性の高い情報が増え、今後も増加すると考えられる。マイナンバーは、日本において、社会保障・税番号制度（所謂マイナンバー制度）に基づき、個々の人にそれぞれ定められた公的な番号である。マイナンバーには、個人に関する様々な情報が関連付けられる。このため、マイナンバーは、漏洩を避けるべき機密情報である。したがって、今後は、機密情報を、従来よりさらに高いセキュリティ強度で秘匿する技術が求められることが予測される。通常、機密情報を含むファイルを秘匿する場合、ファイル全体を暗号化することが考えられる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１５−４１３１９号公報
【特許文献２】国際公開第２０１４／０９２１８０号
【特許文献３】特開２００９−８７１６０号公報
【特許文献４】米国特許出願公開第２０１５／０３１７４８３号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、機密情報を含むファイルを利用する場合、機密情報の表示や記載が不要である場合がある。例えば、源泉徴収票は、収入証明に利用する際、マイナンバーを記載しないことが定められている。このような場合、マイナンバーの情報は、復号する必要はなく、復号されることによって情報漏洩のリスクが高まる。
【０００５】
また、複数のユーザの機密情報を含むファイル全体を暗号化した場合、何れかのユーザの機密情報を使用する際に全体を復号化しなければならず、情報漏洩のリスクが高まる。例えば、１００人分の機密情報を含むファイル全体を暗号化した場合、特定の１人のユーザの機密情報だけを利用する際に、復号する必要のない９９人の機密情報も復号され、情報漏洩のリスクが高まる。
【０００６】
一つの側面では、情報漏洩のリスクを抑えて情報を提供できる暗号化システム、暗号化方法、暗号化装置および暗号化プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
第１の案では、暗号化システムは、暗号化装置と、復号化装置とを備える。暗号化装置は、符号化部と、生成部と、送信部とを有する。符号化部は、複数の項目を有するレコードを複数備えたデータの少なくとも一部の項目を、各レコードの項目単位で符号化する。生成部は、符号化部による符号化において用いられた辞書を、辞書単位で暗号化した暗号化辞書を生成する。送信部は、データに含まれる一部のレコードの要求に応じて、要求元に、符号化された一部のレコードと暗号化辞書とを送付する。復号化装置は、要求部と、復号化部とを有する。要求部は、暗号化装置に対してデータに含まれる一部のレコードを要求する。復号化部は、要求部からの要求に応じて暗号化装置から受信した一部のレコードを暗号化辞書を用いて復号化する。
【発明の効果】
【０００８】
本発明の１実施態様によれば、情報漏洩のリスクを抑えて情報を提供できるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】図１は、帳票を印刷する流れを概略的に示した図である。
【図２】図２は、暗号化装置の構成の一例を示す図である。
【図３】図３は、テキストファイルの一例を示す図である。
【図４】図４は、符号化データの一例を示す図である。
【図５】図５は、符号化辞書の一例を示す図である。
【図６】図６は、復号化装置の構成の一例を示す図である。
【図７】図７は、暗号化処理の手順の一例を示すフローチャートである。
【図８】図８は、復号化処理の手順の一例を示すフローチャートである。
【図９】図９は、暗号化プログラムを実行するコンピュータの一例を示す図である。
【図１０】図１０は、復号化プログラムを実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【００１０】
以下に、本願の開示する暗号化システム、暗号化方法、暗号化装置および暗号化プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの権利範囲が限定されるものではない。各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例１】
【００１１】
［処理概要］
最初に、図１を用いて、機密情報を含んだテキストファイルの符号化および復号化の概要について説明する。以下では、帳票を印刷するシステムに適用した場合を例に説明する。図１は、帳票を印刷する流れを概略的に示した図である。図１には、基幹システム１１と、２つ印刷拠点１２（１２Ａ、１２Ｂ）が示されている。基幹システム１１には、機密情報が格納されたＤＢ（database）１３と、機密情報以外の情報が格納されたＤＢ１４とを有する。ＤＢ１３には、社員番号に対応づけて、機密情報として、社員のマイナンバーが格納されている。ＤＢ１４には、社員番号に対応づけて社員の氏名、性別などが格納されている。
【００１２】
基幹システム１１は、帳票処理部２０と、符号化部２１と、生成部２２と、送信部２３とを有する。帳票処理部２０は、帳票の印刷に使用する帳票用データを生成する。例えば、帳票処理部２０は、帳票用データとして、帳票に印刷する複数の項目のデータを有するレコードを複数備えたＣＳＶ（comma-separated  values）ファイルなどのテキストデータを生成する。ＣＳＶファイルは、複数の項目の情報を列挙する際に、各項目の情報の区切る区切り文字（デリミタ）にカンマ“,”を用いたテキストファイルである。ＣＳＶファイルは、テーブル構造を表現するテキストデータとして、表計算やデータベース、帳票などの多様なアプリケーションの入出力形式として、幅広く利用されている。例えば、帳票処理部２０は、社員に関する帳票用データとして、社員番号、氏名、性別、マイナンバーなどの各項目のデータを記憶したＣＳＶファイル３０を作成する。
【００１３】
ここで、ＣＳＶファイル３０には、マイナンバーのデータが含まれている。マイナンバーは、漏洩を避けるべき機密情報である。ＣＳＶファイル３０をそのまま帳票用データとして印刷拠点１２に送信した場合、各社員のマイナンバーのデータが漏洩するリスクが高まる。
【００１４】
そこで、符号化部２１は、ＣＳＶファイル３０の少なくとも一部の項目を、各レコードの項目単位で符号化する。例えば、符号化部２１は、ＣＳＶファイル３０のマイナンバーの項目を、各レコードの項目単位で符号化する。例えば、符号化部２１は、ＣＳＶファイル３０のマイナンバーの項目を単語または数値単位で符号化した、符号化データ３１および符号化辞書３２を生成する。例えば、符号化部２１は、マイナンバーの項目を数値単位で符号化してマイナンバーの項目に対応した符号化辞書３２を生成する。そして、符号化部２１は、符号化辞書３２に基づいて、マイナンバーの項目のデータを符号化した符号化データ３１を生成する。なお、マイナンバーの項目以外の項目も、項目ごとに符号化辞書３２を生成してデータを符号化してもよい。例えば、符号化部２１は、一部の項目のデータに、項目単位で一意となるように符号を割り当てて符号化すると共に、項目単位で割り当てた符号とデータを対応付けた符号化辞書３２を生成してもよい。
【００１５】
生成部２２は、マイナンバーの項目に対応した符号化辞書３２を暗号化キーにより暗号化する。なお、符号化部２１が複数の項目をそれぞれ項目単位で符号化した場合、項目単位で生成された符号化辞書３２を、異なる暗号化キーにより暗号化した暗号化辞書３３を生成してもよい。
【００１６】
送信部２３は、印刷拠点１２からの要求に応じて、データを要求元の印刷拠点１２に送信する。例えば、送信部２３は、帳票への出力対象の社員の識別情報を含んだ、データの送信要求を印刷拠点１２から受け付ける。出力対象の社員の識別情報は、社員番号や氏名など、社員を識別できれば何れの情報を用いて指定してもよい。送信部２３は、要求に応じて、符号化データ３１から出力対象の社員のレコードを抽出し、抽出したレコードを記憶した符号化データ３４と暗号化辞書３３とを要求元に送付する。また、送信部２３は、暗号化辞書３３を暗号化した暗号化キーに対応する復号化キーを印刷拠点１２へ送信する。なお、印刷拠点１２が復号化キーを記憶している場合や、別途取得可能である場合、復号化キーは、印刷拠点１２へ送信しなくてもよい。
【００１７】
印刷拠点１２は、帳票の印刷を行う。例えば、印刷拠点１２は、各社員がそれぞれ勤務する事業所であり、事業所に所属する社員の帳票を印刷する。印刷拠点１２は、要求部４０と、復号化部４１と、印刷処理部４２とを有する。
【００１８】
要求部４０は、基幹システム１１に対して、帳票の出力対象とする社員のデータの送信を要求する。例えば、要求部４０は、帳票への出力対象の社員の識別情報を含んだ、データの送信要求を基幹システム１１に送信する。図１の例では、印刷拠点１２Ａの要求部４０は、「田中  太郎」、「鈴木  次郎」を帳票の出力対象の社員として、データの送信要求を基幹システム１１に送信する。印刷拠点１２Ｂの要求部４０は、「山田  三郎」を帳票の出力対象の社員として、データの送信要求を基幹システム１１に送信する。これにより、印刷拠点１２Ａには、基幹システム１１から、「田中  太郎」、「鈴木  次郎」のレコードを含んだ符号化データ３４Ａと暗号化辞書３３とを印刷拠点１２Ａに送付される。印刷拠点１２Ｂには、基幹システム１１から、「山田  三郎」のレコードを含んだ符号化データ３４Ｂと暗号化辞書３３とを印刷拠点１２Ｂに送付される。暗号化辞書３３は、まだ暗号化キーにより暗号化されている。このため、マイナンバーは、復号化できない。
【００１９】
復号化部４１は、暗号化辞書３３を用いて、基幹システム１１から受信した符号化データ３４に含まれるレコードを復号化する。例えば、復号化部４１は、マイナンバーが出力する項目である場合、復号化キーを用いて、暗号化辞書３３を符号化辞書３２に復元する。図１の例では、印刷拠点１２Ａ、１２Ｂの復号化部４１は、共に暗号化辞書３３を符号化辞書３２に復元する。そして、復号化部４１は、復元した符号化辞書３２を用いて、符号化データ３４をＣＳＶファイル３５に復号化する。例えば、復号化部４１は、復元した符号化辞書３２を用いて、基幹システム１１から受信した符号化データ３４に含まれるレコードのマイナンバーの項目の符号を、当該符号に対応するマイナンバーに復号化する。図１の例では、印刷拠点１２Ａの復号化部４１は、「田中  太郎」、「鈴木  次郎」のレコードを含んだ符号化データ３４ＡをＣＳＶファイル３５Ａに復号化する。印刷拠点１２Ｂの復号化部４１は、「山田  三郎」のレコードを含んだ符号化データ３４ＢをＣＳＶファイル３５Ｂに復号化する。一方、復号化部４１は、マイナンバーが出力する必要のない項目である場合、暗号化辞書３３を復号化しない。例えば、源泉徴収票は、収入証明に利用する際、マイナンバーを記載しないことが定められている。このような場合、復号化部４１は、暗号化辞書３３を復号化しない。そして、例えば、復号化部４１は、符号化データ３４をそのままＣＳＶファイル３５とする。これにより、印刷拠点１２では、マイナンバーが出力する必要のない項目である場合、符号化辞書３２が復元されないため、マイナンバーのデータを保護できる。
【００２０】
印刷処理部４２は、復号化されたＣＳＶファイル３５を用いて印刷用データを生成し、帳票を印刷する。なお、印刷処理部４２は、復号化されたＣＳＶファイル３５を用いてＰＤＦ（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）４４０を有する。これら４００〜４４０の各部は、バス５００を介して接続される。
【００７６】
ＨＤＤ４２０には上記の暗号化装置５０の第１生成部７０（帳票処理部２０）、符号化部７１（符号化部２１）、第２生成部７２（生成部２２）、送信部７３（送信部２３）と同様の機能を発揮する暗号化プログラム４２０ａが予め記憶される。なお、暗号化プログラム４２０ａについては、適宜分離してもよい。
【００７７】
また、ＨＤＤ４２０は、各種情報を記憶する。例えば、ＨＤＤ４２０は、ＯＳや符号化に用いる各種データを記憶する。
【００７８】
そして、ＣＰＵ４１０が、暗号化プログラム４２０ａをＨＤＤ４２０から読み出して実行することで、実施例の各処理部と同様の動作を実行する。すなわち、暗号化プログラム４２０ａは、第１生成部７０、符号化部７１、第２生成部７２、送信部７３と同様の動作を実行する。
【００７９】
なお、上記した暗号化プログラム４２０ａについては、必ずしも最初からＨＤＤ４２０に記憶させることを要しない。
【００８０】
［復号化プログラム］
次に、復号化処理を行う復号化プログラムについて説明する。図１０は、復号化プログラムを実行するコンピュータの一例を示す図である。なお、図９と同一の部分については同一の符号を付して、説明を省略する。
【００８１】
図１０に示すように、ＨＤＤ４２０には上記の要求部１００（要求部４０）、復号化部１０１（復号化部４１）、出力部１０２（印刷処理部４２）と同様の機能を発揮する復号化プログラム４２０ｂが予め記憶される。なお、復号化プログラム４２０ｂについては、適宜分離してもよい。
【００８２】
また、ＨＤＤ４２０は、各種情報を記憶する。例えば、ＨＤＤ４２０は、ＯＳや検索に用いる各種データを記憶する。
【００８３】
そして、ＣＰＵ４１０が、復号化プログラム４２０ｂをＨＤＤ４２０から読み出して実行することで、実施例の各処理部と同様の動作を実行する。すなわち、復号化プログラム４２０ｂは、要求部１００、復号化部１０１、出力部１０２と同様の動作を実行する。
【００８４】
なお、上記した復号化プログラム４２０ｂについても、必ずしも最初からＨＤＤ４２０に記憶させることを要しない。
【００８５】
また、例えば、暗号化プログラム４２０ａおよび復号化プログラム４２０ｂは、コンピュータ４００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に記憶させてもよい。そして、コンピュータ４００がこれらからプログラムを読み出して実行するようにしてもよい。
【００８６】
さらには、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ４００に接続される「他のコンピュータ（又はサーバ）」などにプログラムを記憶させておく。そして、コンピュータ４００がこれらからプログラムを読み出して実行するようにしてもよい。
【符号の説明】
【００８７】
１１  基幹システム
１２  印刷拠点
２０  帳票処理部
２１  符号化部
２２  生成部
２３  送信部
３０  ＣＳＶファイル
３１  符号化データ
３２  符号化辞書
３３  暗号化辞書
３４  符号化データ
３５  ＣＳＶファイル
４０  要求部
４１  復号化部
４２  印刷処理部
５０  暗号化装置
５２  記憶部
５３  制御部
６０  テキストファイル
６１  符号化データ
６２  符号化辞書
６３  暗号化辞書
６４  符号化データ
７０  第１生成部
７１  符号化部
７２  第２生成部
７３  送信部
８０  復号化装置
８２  記憶部
８３  制御部
９０  符号化データ
９１  暗号化辞書
９２  符号化辞書
９３  テキストファイル
１００  要求部
１０１  復号化部
１０２  出力部
【図１】
2018061171.tif 000003
【図２】
2018061171.tif 000004
【図３】
2018061171.tif 000005
【図４】
2018061171.tif 000006
【図５】
2018061171.tif 000007
【図６】
2018061171.tif 000008
【図７】
2018061171.tif 000009
【図８】
2018061171.tif 000010
【図９】
2018061171.tif 000011
【図１０】
2018061171.tif 000012