JP2018061170A - 符号化プログラム、符号化方法、符号化装置、復号化プログラム、復号化方法および復号化装置 - Google Patents

符号化プログラム、符号化方法、符号化装置、復号化プログラム、復号化方法および復号化装置 Download PDF

Info

Publication number
JP2018061170A
JP2018061170A JP2016198442A JP2016198442A JP2018061170A JP 2018061170 A JP2018061170 A JP 2018061170A JP 2016198442 A JP2016198442 A JP 2016198442A JP 2016198442 A JP2016198442 A JP 2016198442A JP 2018061170 A JP2018061170 A JP 2018061170A
Authority
JP
Japan
Prior art keywords
encoding
dictionary
file
encoded
item
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016198442A
Other languages
English (en)
Other versions
JP6780428B2 (ja
Inventor
隼毅 袴田
Hayaki Hakamada
隼毅 袴田
ゆかり 袴田
Yukari Hakamada
ゆかり 袴田
片岡 正弘
Masahiro Kataoka
正弘 片岡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2016198442A priority Critical patent/JP6780428B2/ja
Priority to US15/714,631 priority patent/US10552635B2/en
Publication of JP2018061170A publication Critical patent/JP2018061170A/ja
Application granted granted Critical
Publication of JP6780428B2 publication Critical patent/JP6780428B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Document Processing Apparatus (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】特定の項目の情報を柔軟に保護できる符号化プログラム、符号化方法、符号化装置、復号化プログラム、復号化方法および復号化装置を提供する。
【解決手段】符号化プログラムは、コンピュータに、デリミタにより区切られた複数の項目からなる複数のレコードを有する、CSVファイル19を入力する処理を実行させる。符号化プログラムは、コンピュータに、入力されたCSVファイル19の複数のレコードに含まれる特定の項目を単語または数値単位で符号化した、符号化データ20および符号化辞書21を有する符号化ファイル22を生成する処理を実行させる。符号化プログラムは、コンピュータに、生成された符号化ファイル22より、符号化辞書21を暗号化した暗号化辞書を含む、暗号化ファイル23を生成する処理を実行させる。
【選択図】図1

Description

本発明は、符号化プログラム、符号化方法、符号化装置、復号化プログラム、復号化方法および復号化装置に関する。
近年、例えば、マイナンバー(個人番号)をはじめとする、機密性の高い情報が増え、今後も増加すると考えられる。マイナンバーは、日本において、社会保障・税番号制度(所謂マイナンバー制度)に基づき、個々の人にそれぞれ定められた公的な番号である。マイナンバーには、個人に関する様々な情報が関連付けられる。このため、マイナンバーは、漏洩を避けるべき機密情報である。したがって、今後は、機密情報を、従来よりさらに高いセキュリティ強度で秘匿する技術が求められることが予測される。通常、機密情報を含むファイルを秘匿する場合、ファイル全体を暗号化することが考えられる。
特開2002−055608号公報
しかしながら、機密情報を含むファイルを利用する場合、機密情報の表示や記載が不要である場合がある。例えば、源泉徴収票は、収入証明のために利用する際、マイナンバーを記載しないことが定められている。このような場合、マイナンバーの情報は、復号する必要はなく、復号されることによって情報漏洩のリスクが高まる。
例えば、項目として、マイナンバー等の機密情報を含んだCSV(comma-separated values)ファイルなどのテキストファイルについて考える。CSVファイルは、複数の項目の情報を列挙する際に、各項目の情報の区切る区切り文字(デリミタ)にカンマ“,”を用いたテキストファイルである。CSVファイルは、テーブル構造を表現するテキストファイルとして、表計算やデータベース、帳票などの多様なアプリケーションの入出力形式として、幅広く利用されており、ファイル内に機密情報が含まれることが考えられる。しかし、CSVファイルを暗号化する場合、従来は、CSVファイル全体を暗号化されるため、機密情報の項目のみを柔軟に保護できない。
一つの側面では、特定の項目の情報を柔軟に保護できる符号化プログラム、符号化方法、符号化装置、復号化プログラム、復号化方法および復号化装置を提供することを目的とする。
第1の案では、符号化プログラムは、コンピュータに、デリミタにより区切られた複数の項目からなる複数のレコードを有する、テキストファイルを入力する処理を実行させる。符号化プログラムは、コンピュータに、入力されたテキストファイルの複数のレコードに含まれる特定の項目を単語または数値単位で符号化した、符号化データおよび符号化辞書を有する符号化ファイルを生成する処理を実行させる。符号化プログラムは、コンピュータに、生成された符号化ファイルより、符号化辞書を暗号化した暗号化辞書を含む、暗号化ファイルを生成する処理を実行させる。
本発明の1実施態様によれば、特定の項目の情報を柔軟に保護できるという効果を奏する。
図1は、帳票を印刷する流れを概略的に示した図である。 図2は、符号化装置の構成の一例を示す図である。 図3は、暗号化ファイルのデータ構成の一例を示す図である。 図4は、符号化の一例を示す図である。 図5は、復号化装置の構成の一例を示す図である。 図6は、復号化の一例を示す図である。 図7は、符号化処理の手順の一例を示すフローチャートである。 図8は、符号化ファイル生成処理の手順の一例を示すフローチャートである。 図9は、暗号化処理の手順の一例を示すフローチャートである。 図10は、復号化処理の手順の一例を示すフローチャートである。 図11は、暗号化辞書復号化処理の手順の一例を示すフローチャートである。 図12は、符号化データ復号化処理の手順の一例を示すフローチャートである。 図13は、符号化プログラムを実行するコンピュータの一例を示す図である。 図14は、復号化プログラムを実行するコンピュータの一例を示す図である。
以下に、本願の開示する符号化プログラム、符号化方法、符号化装置、復号化プログラム、復号化方法および復号化装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの権利範囲が限定されるものではない。各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
[処理概要]
最初に、図1を用いて、機密情報を含んだテキストファイルの符号化および復号化の概要について説明する。以下では、帳票を印刷するシステムに適用した場合を例に説明する。図1は、帳票を印刷する流れを概略的に示した図である。図1には、基幹システム11と、印刷拠点12が示されている。基幹システム11には、機密情報が格納されたDB(database)13と、機密情報以外の情報が格納されたDB14とを有する。DB13には、IDに対応づけて、機密情報として、マイナンバーが格納されている。DB14には、IDに対応づけて氏名、性別などが格納されている。
基幹システム11は、帳票処理部15と、符号化処理部16とを有する。帳票処理部15は、印刷する帳票に応じて帳票用データ17を生成する。例えば、帳票処理部15は、帳票の様式や各項目の配置位置などを定めた定義体データ18と、各項目のデータを記憶したCSVファイル19などを含んだ帳票用データ17を作成する。CSVファイル19には、カンマにより区切られた複数の項目のデータからなる複数のレコードが記憶されている。
ここで、多数のユーザについて帳票を印刷する場合、CSVファイル19は、数百MB〜数GBのデータ量になる場合がある。大容量のCSVファイル19を保管・転送等する場合、圧縮などの符号化を行うことにより、リソースや転送時間の効率化が行われる。
そこで、符号化処理部16は、帳票用データ17の符号化を行う。符号化処理部16には、符号化の対象となる帳票用データ17が入力する。符号化処理部16は、入力された帳票用データ17を符号化して符号化ファイル22を生成する。例えば、符号化処理部16は、帳票用データ17に含まれるCSVファイル19の複数のレコードに含まれる各項目を単語または数値単位で符号化した、符号化データ20および符号化辞書21を有する符号化ファイル22を生成する。例えば、符号化処理部16は、マイナンバーの項目を数値単位で符号化してマイナンバーの項目に対応した符号化辞書21Aを生成する。また、符号化処理部16は、マイナンバーの項目以外の項目を単語または数値単位で符号化してマイナンバーの項目以外の項目に対応した符号化辞書21Bを生成する。そして、符号化処理部16は、符号化辞書21Aによりマイナンバーの項目のデータを符号化し、符号化辞書21Bによりマイナンバーの項目以外の項目のデータを符号化した符号化データ20を生成する。なお、マイナンバーの項目以外の項目も、項目ごとに符号化辞書21を生成してデータを符号化してもよい。
符号化処理部16は、マイナンバーの項目に対応した符号化辞書21Aを暗号化キーにより個別に暗号化する。また、符号化処理部16は、データ全体を、符号化辞書21Aの暗号化キーとは異なる暗号化キーにより暗号化する。例えば、符号化処理部16は、定義体データ18、符号化データ20、符号化辞書21Aを暗号化した暗号化辞書、符号化辞書21Bなどデータ全体を、暗号化キーにより暗号化して暗号化ファイル23を生成する。なお、符号化処理部16は、マイナンバーの項目以外の項目に対応した符号化辞書21Bを個別に暗号化することで、間接的にデータ全体を暗号化してもよい。暗号化ファイル23、全体を暗号化した暗号化キーに対応する全体の復号化キー、符号化辞書21Aを個別に暗号化した暗号化キーに対応する個別の復号化キーは、印刷拠点12へ送信される。なお、印刷拠点12が全体の復号化キーおよび個別の復号化キーを記憶している場合や、別途取得可能である場合、全体の復号化キーおよび個別の復号化キーは、印刷拠点12へ送信しなくてもよい。
印刷拠点12は、復号化処理部25と、印刷処理部26とを有する。復号化処理部25は、全体の復号化キーを用いて暗号化ファイル23を復号化して定義体データ18、符号化データ20、符号化辞書21Aを暗号化した暗号化辞書、符号化辞書21Bに復元する。この状態では、符号化辞書21Bは、暗号化されておらず、元のデータに戻っている。このため、マイナンバーの項目以外の項目は、符号化辞書21Bを用いることにより、CSVファイル19のデータに復号化できる。一方、符号化辞書21Aは、まだ暗号化キーにより暗号化されている。このため、マイナンバーは、復号化できない。復号化処理部25は、マイナンバーが出力する項目である場合、個別の復号化キーを用いて符号化辞書21Aを復号化する。一方、復号化処理部25は、マイナンバーが出力する必要のない項目である場合、符号化辞書21Aを復号化しない。例えば、源泉徴収票は、収入証明のために利用する際、マイナンバーを記載しないことが定められている。このような場合、復号化処理部25は、符号化辞書21Aを復号化しない。図1の例は、マイナンバーが出力する必要のない項目であるため、印刷拠点12側ではCSVファイル19のマイナンバーの項目の符号が正しくマイナンバーに復号化できず、暗号化された状態となることを表している。
印刷処理部26は、復号化されたCSVファイル19や定義体データ18を用いて印刷用データを生成し、源泉徴収票をプリントする。なお、印刷処理部26は、復号化されたCSVファイル19や定義体データ18を用いてPDF(Portable Document Format)などの印刷イメージのデータを生成して出力してもよい。プリントされた源泉徴収票では、マイナンバーの項目は、暗号化された状態であるため、正しくマイナンバーが印刷されない。一方、マイナンバーが出力する項目である場合は、復号化処理部25により、CSVファイル19にマイナンバーのデータが復号化されるため、正しくマイナンバーを印刷される。このように、同じ暗号化ファイル23を用いて、マイナンバーのデータを柔軟に保護できる。ここで、単純に印刷の際にマイナンバーのデータの表示、非表示を切り替えているわけではない。マイナンバーを印刷しない場合は、符号化辞書21Aが暗号化された状態である。このため、マイナンバーのデータは、復元できない。これにより、例えば、符号化データ20および符号化辞書21Aがハッキングされた場合であっても、マイナンバーのデータを保護できる。
[装置構成]
次に、各装置の構成について説明する。最初に、符号化装置30の構成について説明する。図2は、符号化装置の構成の一例を示す図である。符号化装置30は、圧縮や暗号化などの符号化を行う装置である。符号化装置30は、例えば、パーソナルコンピュータ、サーバコンピュータなどのコンピュータや、タブレット端末、スマートフォンなどの情報処理装置である。例えば、図1の例では、符号化装置30は、基幹システム11として動作するコンピュータである。符号化装置30は、1台のコンピュータとして実装してもよく、また、複数台のコンピュータによるクラウドとして実装することもできる。なお、本実施例では、符号化装置30を1台のコンピュータとした場合を例として説明する。図2に示すように、符号化装置30は、外部I/F(interface)部31と、記憶部32と、制御部33とを有する。なお、符号化装置30は、コンピュータや情報処理装置が有する上記の機器以外の他の機器を有してもよい。
外部I/F部31は、例えば、他の装置と各種の情報を送受信するインタフェースである。外部I/F部31は、フラッシュメモリなどの記憶媒体に対してデータを入出力するポート、ケーブルなどにより有線通信を行う通信ポート、又は、無線通信を行う通信インタフェースである。
記憶部32は、ハードディスク、SSD(Solid State Drive)、光ディスクなどの記憶装置である。なお、記憶部32は、RAM(Random Access Memory)、フラッシュメモリ、NVSRAM(Non Volatile Static Random Access Memory)などのデータを書き換え可能な半導体メモリであってもよい。
記憶部32は、制御部33で実行されるOS(Operating System)や各種プログラムを記憶する。例えば、記憶部32は、後述する符号化処理、符号化ファイル生成処理および暗号化処理を行うプログラムを記憶する。さらに、記憶部32は、制御部33で実行されるプログラムで用いられる各種データを記憶する。例えば、記憶部32は、テキストファイル40と、符号化辞書41と、符号化データ42と、符号化ファイル43と、暗号化辞書44と、暗号化ファイル45とを記憶する。
テキストファイル40は、符号化対象の各種の情報が記憶されたデータである。例えば、テキストファイル40は、図1に示したCSVファイル19など、デリミタにより区切られた複数の項目からなる複数のレコードを有する。
符号化辞書41は、データの符号化および復号化に用いる辞書のデータである。例えば、符号化辞書41は、図1の例の符号化辞書21が対応する。ここで、本実施例では、テキストファイル40のデリミタにより区切られた複数の項目のデータを符号化する際に、1つまたは複数の項目ごとに、符号化辞書41を切り替えて符号化を行う。符号化辞書41は、符号化する項目ごとに、項目のデータに対応する符号を記憶する。例えば、符号化辞書41は、符号化する項目ごとに、項目に出現する単語または数値単位に、単語または数値単位の特性に対応して、動的に割り当てられた符号を記憶する。例えば、出現頻度の高い単語または数値に対して短い符号を割り当てており、符号化辞書41は、動的に割り当てられた符号が記憶される。なお、符号化する項目ごとに、出現する文字列や数字などのパターンが特定のパターンに定まる場合は、符号化辞書41には、特定のパターンと符号を対応付けて予め記憶させてもよい。また、符号化辞書41には、符号化した項目を示す項目情報を含めてもよい。
符号化データ42は、テキストファイル40の各項目のデータを符号化辞書41により符号化したデータである。
符号化ファイル43は、符号化データ42と、当該符号化データ42の符号化された各項目の符号化辞書41を1つのファイルにまとめたデータである。
暗号化辞書44は、符号化辞書41を暗号化したデータである。暗号化ファイル45は、符号化ファイル43を暗号化したデータである。
制御部33は、符号化装置30を制御するデバイスである。制御部33としては、CPU(Central Processing Unit)、MPU(Micro Processing Unit)等の電子回路や、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)等の集積回路を採用できる。制御部33は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部33は、各種のプログラムが動作することにより各種の処理部として機能する。例えば、制御部33は、データ生成部50と、符号化処理部51を有する。
データ生成部50は、複数の項目のデータをデリミタにより区切った複数のレコードを有するテキストファイル40を生成する。データ生成部50は、図1の例の帳票処理部15が対応する。なお、テキストファイル40は、他の装置で生成されたものであってもよい。
符号化処理部51は、テキストファイル40の各項目のデータを、項目に応じた符号化方式により符号化する。符号化処理部51は、図1の例の符号化処理部16が対応する。符号化処理部51は、入力部52と、第1生成部53と、第2生成部54とを有する。
入力部52は、符号化対象のテキストデータの入力を受け付ける。例えば、入力部52は、テキストファイル40が入力される。
第1生成部53は、テキストファイル40からデータを符号化した符号化データ42および符号化辞書41を生成し、符号化データ42および符号化辞書41を有する符号化ファイルを生成する。例えば、第1生成部53は、テキストファイル40の各項目のデータに符号を割り当て、当該項目に対応した符号化辞書41に、符号と当該符号を割り当てたデータを対応付けて登録する。符号は、各項目のデータに含まれる単語または数値に対して出現頻度を求め、出現頻度の高い単語または数値に対して短い符号を割り当てる。なお、出現する文字列や数字などのパターンが特定のパターンに定まる場合は、符号化辞書41には、特定のパターンと符号を対応付けて予め記憶させてもよい。また、第1生成部53は、異なるデータが出現するごとに、短い符号から順に割り当ててもよい。
そして、第1生成部53は、テキストファイル40の項目ごとに、当該項目に対応した符号化辞書41を用いて、データを符号に変換し、データを符号に変換した符号化データ42を生成する。例えば、第1生成部53は、テキストファイル40の項目のデータに単語または数値が含まれる場合、符号化辞書41に記憶された単語または数値に対応した符号に変換する。第1生成部53は、生成した符号化データ42および当該符号化データ42の符号化に用いた符号化辞書41を有する符号化ファイル43を生成する。例えば、第1生成部53は、データ部として、符号化データ42を含み、トレーラ部として各符号化辞書41を含んだ符号化ファイル43を生成する。
なお、第1生成部53は、符号化辞書41に、符号化した項目を示す項目情報を含めてもよい。この場合、第1生成部53は、符号化する項目ごとに、一意となるように符号を割り当てて、当該項目に対応した符号化辞書41に登録してもよい。すなわち、符号化する項目ごとに、符号が重複してもよい。例えば、第1生成部53は、テキストファイル40の項目ごとに、当該項目のデータに対して一意となるように符号を割り当て、当該項目に対応した符号化辞書41に登録する。符号は、項目ごとに、データに含まれる単語または数値に対して出現頻度を求め、出現頻度の高い単語または数値に対して短い符号を割り当てる。このように、符号化する項目ごとに、一意となるように符号を割り当てることにより、符号化する項目ごとに、短い符号を重複させて割り当てることができるため、符号化する項目ごとに、データを高い圧縮率で符号化できる。なお、符号化する項目ごとに、出現する文字列や数字などのパターンが特定のパターンに定まる場合は、符号化する項目に対応する符号化辞書41には、特定のパターンと符号を対応付けて予め記憶させてもよい。また、第1生成部53は、符号化する項目ごとに、異なるデータが出現するごとに、短い符号から順に割り当ててもよい。
第2生成部54は、生成された符号化ファイル43より、符号化辞書41を暗号化した暗号化辞書44を含む、暗号化ファイル45を生成する。例えば、第2生成部54は、機密情報が格納された項目に対応する符号化辞書41をそれぞれ個別に暗号化する。また、第2生成部54は、機密情報が格納された項目以外の他の項目に対応する符号化辞書41をそれぞれ個別に暗号化することにより、符号化ファイル43全体を暗号化する。暗号化キーは、それぞれ暗号化の際に所定の規則に沿って生成してもよく、予め定められていてもよい。そして、第2生成部54は、データ部として、符号化データ42を含み、トレーラ部として、項目ごとに符号化辞書41または暗号化辞書44を含んだ暗号化ファイル45を生成する。なお、第2生成部54は、機密情報が格納された項目以外の他の項目については、符号化ファイル43全体を暗号化することにより、まとめて暗号化してもよい。また、第2生成部54は、機密情報が格納された項目以外の他の項目については一部の項目のみ、符号化辞書41を暗号化してもよい。
図3は、暗号化ファイルのデータ構成の一例を示す図である。図3の例では、暗号化ファイル45は、データ部に符号化データ42が含まれ、トレーラ部に各項目の符号化辞書41が含まれている。図3の例では、住所の項目と、マイナンバーの項目の符号化辞書41がそれぞれ異なる暗号化キーで暗号化されている。
暗号化ファイル45は、外部I/F31を介して印刷拠点12の後述する復号化装置へ送られる。
ここで、符号化の一例を説明する。図4は、符号化の一例を示す図である。図4には、符号化ファイル43が模式的に示されており、符号化データ42と、符号化データ42の各項目に対応した符号化辞書41A〜41Cが示されている。符号化データ42の氏名の項目は、符号化辞書41Aにより、データが符号に変換されている。例えば、氏名の項目には、符号「1A」が格納されている。符号化辞書41Aには、符号「1A」に対応して氏名「田中 太郎」が登録されている。また、符号化データ42の部署の項目は、符号化辞書41Bにより、データが符号に変換されている。例えば、部署の項目には、符号「5C」が格納されている。符号化辞書41Bには、符号「5C」に対応して部署「第一営業部」が登録されている。また、符号化データ42のマイナンバーの項目は、符号化辞書41Cにより、データが符号に変換されている。例えば、部署の項目には、符号「44C」が格納されている。符号化辞書41Cには、符号「44C」に対応して部署「123456789012」が登録されている。
符号化データ42は、それぞれ項目のデータが符号化されており、符号化辞書41A〜41Cから符号に対応するデータを読み出すことにより、元のデータに復元できる。ここで、例えば、符号化辞書41A〜41Cをそれぞれ暗号化した場合、それぞれ項目は、符号を元のデータに復元できなくなる。すなわち、符号化データ42は、符号化辞書41A〜41Cをそれぞれ暗号化した場合、間接的にデータが暗号化できる。また、符号化データ42は、符号化辞書41A〜41Cを異なる鍵で暗号化した場合、項目ごとに、個別に暗号化できる。図4の例では、符号化辞書41Aを鍵1により暗号化し、符号化辞書41Bを鍵2により暗号化し、符号化辞書41Cを鍵3により暗号化した場合を示している。このように符号化辞書41A〜41Cを個別に暗号化することにより、符号化データ42は、項目ごとに、データのセキュリティを柔軟に制御でき、情報漏洩のリスクを低下させることができる。例えば、復号化の鍵1〜3を保持する部長は、符号化データ42の氏名、部署、マイナンバーの項目を全て元のデータに復号化できる。一方、復号化の鍵1、2を保持する担当者は、符号化データ42の氏名、部署の項目を元のデータに復号化できるものの、マイナンバーの項目を元のデータに正しく復号化できない。
ここで、例えば、従来、機密情報を含むファイルを秘匿する場合、ファイル全体を暗号化することが考えられる。例えば、CSVファイルを、Zip形式などの圧縮形式を用いてZIPファイルなどに圧縮し、圧縮ファイルを暗号化する方法が考えられる。しかし、ファイル全体を暗号化した場合、復号化時に全ての情報が復号されてしまい、情報漏洩のリスクがある。
また、例えば、CSVファイルをレコードごとに暗号化することが考えられる。しかし、CSVファイルをレコードごとに暗号化を行う場合、暗号化された暗号化ファイルを利用する際に、使用する全ての行を復号化しなければならず、処理速度が遅くなる。また、CSVファイルをレコードごとに暗号化を行う場合、全ての行に対して、別の鍵を用意しなければならず、レコード数が多いデータに対しては現実的でない。さらに、暗号化を行った上で圧縮する形となり、圧縮率が低くなる。
また、例えば、CSVファイルにおいて、機密情報の項目のみを暗号化する方法が考えられる。しかし、CSVファイルは、可変長データであり、「,」などの区切り文字によって、列として認識される。一方で、機密情報の項目を暗号化した結果、偶然、例えば、「,」などの区切り文字を示す文字コードが生成される可能性がある。このため、機密情報の項目のみを暗号化する方法は、CSVファイルのデータ構造を正しく読み込めなくなるという問題がある。そこで、項目のデータの長さ(文字数)を別途定義して、機密情報の項目を固定長で暗号化する方法も考えられる。しかし、機密情報の項目を固定長で暗号化する方法は、項目のデータに無駄が発生する。例えば、データ長の比較的短いカラム(マイナンバー・氏名・性別など)に対し、128ビットのAES(Advanced Encryption Standard)ブロック暗号などの所定サイズごとの暗号化を行う場合を考える。この場合、暗号化する項目のデータを所定サイズとするため、パディングビットが付加され、CSVファイルのデータサイズが増大する。例えば、12桁のマイナンバーは、BCD数値の場合、48ビットである。この12桁のマイナンバーを128ビットのAESブロック暗号を行う場合、パディングビットを付加して128ビットされるため、データのサイズが、2.5倍以上に肥大化する。
また、例えば、CSVファイルには機密情報を含めず、機密情報を閲覧する権限がある場合には、機密情報のみを別途取得する方法が考えられる。しかし、機密情報のみを別途取得することになるため、同一のデータであることが保証できない。例えば、文書には、原本を保存することが求められているものがある。例えば、マイナンバーを含む帳票や、病院のカルテ、法令上保存義務のある文書は、文書の原本を保存することが求められている。原本の保存は、電子データで保存することも認められている。これに対し、機密情報とCSVファイルを別々に持ち、機密情報のみを別途取得する方法は、原本保存に従わない結果となり、問題となる可能性がある。
これに対し、本実施例の符号化の方法は、CSVファイルなどのテキストファイル40を項目ごとに、符号化辞書41を用いて符号化データ42に符号化するので、テキストファイル40を高い圧縮率で圧縮できる。また、本実施例の符号化の方法は、各項目の符号化辞書41を暗号化するので、項目ごとに情報を柔軟に保護できる。また、本実施例の符号化の方法は、暗号化で項目のデータに、データサイズの増大をまねくパディングビットなどを付加しない。また、本実施例の符号化の方法は、暗号化ファイル45を保存することで、原本保存に対応することができる。
次に、復号化装置60の構成について説明する。図5は、復号化装置の構成の一例を示す図である。復号化装置60は、圧縮や暗号化されたデータの復号化を行う装置である。復号化装置60は、例えば、パーソナルコンピュータ、サーバコンピュータなどのコンピュータや、タブレット端末、スマートフォンなどの情報処理装置である。例えば、図1の例では、復号化装置60は、印刷拠点12で暗号化ファイル23を復号化するコンピュータである。復号化装置60は、1台のコンピュータとして実装してもよく、また、複数台のコンピュータによるクラウドとして実装することもできる。なお、本実施例では、復号化装置60を1台のコンピュータとした場合を例として説明する。図5に示すように、復号化装置60は、外部I/F部61と、記憶部62と、制御部63とを有する。なお、復号化装置60は、コンピュータや情報処理装置が有する上記の機器以外の他の機器を有してもよい。
外部I/F部61は、例えば、他の装置と各種の情報を送受信するインタフェースである。外部I/F部61は、フラッシュメモリなどの記憶媒体に対してデータを入出力するポート、ケーブルなどにより有線通信を行う通信ポート、又は、無線通信を行う通信インタフェースである。
記憶部62は、ハードディスク、SSD、光ディスクなどの記憶装置である。なお、記憶部62は、RAM、フラッシュメモリ、NVSRAMなどのデータを書き換え可能な半導体メモリであってもよい。
記憶部62は、制御部63で実行されるOSや各種プログラムを記憶する。例えば、記憶部62は、後述する復号化処理、暗号化辞書復号化処理および符号化データ復号化処理を行うプログラムを記憶する。さらに、記憶部62は、制御部63で実行されるプログラムで用いられる各種データを記憶する。例えば、記憶部62は、暗号化ファイル70と、暗号化辞書71と、符号化辞書72と、符号化データ73と、テキストファイル74とを記憶する。
暗号化ファイル70は、符号化装置30により暗号化されて送信された暗号化ファイル45を記憶したものである。符号化装置30から暗号化されて送信された暗号化ファイル45は、暗号化ファイル70として記憶部62に記憶される。暗号化ファイル70は、符号化データ42と、暗号化辞書44とを含んでいる。
暗号化辞書71は、暗号化ファイル70に含まれる暗号化辞書44を記憶したものである。符号化辞書72は、暗号化辞書71を復号化したデータを記憶したものである。暗号化辞書71が正当な復号化キーで復号化された場合、符号化辞書72は、符号化辞書41と同一に復元される。
符号化データ73は、暗号化ファイル70に含まれる符号化データ42を記憶したものである。テキストファイル74は、符号化データ73を符号化辞書72により復号化したデータを記憶したものである。符号化辞書72が符号化辞書41と同一に復元される場合、テキストファイル74は、テキストファイル40と同一に復元される。
制御部63は、復号化装置60を制御するデバイスである。制御部63としては、CPU、MPU等の電子回路や、ASIC、FPGA等の集積回路を採用できる。制御部63は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部63は、各種のプログラムが動作することにより各種の処理部として機能する。例えば、制御部63は、復号化処理部80を有する。
復号化処理部80は、暗号化ファイル70を復号化する。復号化処理部80は、図1の例の復号化処理部25が対応する。復号化処理部80は、入力部81と、復号化部82と、出力部83とを有する。
入力部81は、復号化対象の暗号化ファイル70の入力を受け付ける。例えば、入力部81は、記憶部62に記憶された暗号化ファイル70が入力する。
復号化部82は、暗号化ファイル70が復号化する。例えば、復号化部82は、暗号化ファイル70に含まれる暗号化辞書44を暗号化辞書71として記憶部62に格納する。そして、復号化部82は、暗号化辞書71をそれぞれ所定の復号化キーにより復号化し、復号化された符号化辞書72を記憶部62に格納する。復号化キーは、ユーザに入力させてもよく、ユーザごとにユーザの権限に応じて各項目の復号化キーを記憶した装置から取得してもよい。ここで、暗号化辞書71は、正当な復号化キーで復号化されていない場合、符号化辞書41に復元されない。なお、暗号化ファイル70全体が暗号化されている場合、復号化部82は、全体を暗号化した暗号化キーに対応する復号化キーにより復号化する。
出力部83は、暗号化ファイル70に含まれる符号化データ42を符号化データ73として記憶部62に格納する。出力部83は、復号化部82により復号化された符号化辞書72を用いて、符号化データ73の各項目の符号をデータに変換し、符号をデータに変換したテキストファイル74を生成する。例えば、出力部83は、機密情報が格納された項目に対応する符号化辞書72を用いて、符号化データ73の機密情報が格納された項目の符号をデータに変換する。また、出力部83は、機密情報が格納された項目以外の他の項目については、他の項目に対応する符号化辞書72を用いて、他の項目の符号をデータに変換する。例えば、符号化辞書72に符号化した項目を示す項目情報が含まれる場合、出力部83は、符号化辞書72を用いて、項目情報が示す項目の符号をデータに変換する。一方、符号化辞書72に符号化した項目を示す項目情報が含まれない場合、出力部83は、各符号化辞書72を用いて、項目情報が示す項目の符号をデータに変換する。ここで、暗号化辞書71が符号化辞書41に復元されていない場合、各符号化辞書72には、符号に対応するデータがない。これにより、機密情報が格納された項目に対応する符号化辞書72が復元されていない場合、機密情報が格納された項目のデータは、復元されない。例えば、マイナンバーの項目に対応した符号化辞書72が復元されていない場合、マイナンバーは、復元されない。出力部83は、符号に対応するデータが無い場合、符号をそのまま項目のデータとしてもよく、符号を特定の文字に変換してもよく、または、データを空白として符号を出力しないものとしてもよい。
出力部83は、生成したテキストファイル74を記憶部62へ出力して格納する。なお、出力部83は、生成したテキストファイル74を他のプログラムや他の装置へ出力してもよい。
ここで、復号化の一例を説明する。図6は、復号化の一例を示す図である。図6には、氏名、部署、マイナンバーの各項目を有する符号化データ73と、符号化データ73の各項目に対応した符号化辞書72A〜72Cが示されている。符号化辞書72Aは、正しく復号化されており、氏名の項目についての符号とデータが対応付けて記憶されている。符号化辞書72Bも、正しく復号化されており、部署の項目についての符号とデータが対応付けて記憶されている。符号化辞書72Cは、正しく復号化されておらず、マイナンバーの項目について暗号化された状態である。
出力部83は、符号化辞書72A〜72Cを用いて、符号化データ73の各項目の符号をデータに変換する。図6の例では、符号化データ73の1レコード目の符号を変換した結果が示されている。例えば、氏名の項目の符号「1A」は、「田中 太郎」と変換されている。部署の項目の符号「5C」は、「第一営業部」と変換されている。一方、マイナンバーの項目の符号「44C」は、符号化辞書72Cに無いため、そのまま出力されている。なお、出力部83は、符号に対応するデータが無い場合、符号を特定の文字(図6の例では「*」)に変換して出力してもよく、空白を出力してもよい。これにより、マイナンバーの項目の情報を保護できる。
[処理の流れ]
次に、本実施例に係る符号化装置30および復号化装置60が実行する各種の処理の流れについて説明する。最初に、符号化装置30がテキストファイル40を符号化する符号化処理の流れについて説明する。図7は、符号化処理の手順の一例を示すフローチャートである。この符号化処理は、所定のタイミング、例えば、データ生成部50の処理が実行されたタイミングで実行される。
図7に示すように、データ生成部50は、テキストファイル40に格納する各項目のデータを取得する(S10)。例えば、図1の例で源泉徴収票を印刷する場合、データ生成部50は、DB13、DB14から氏名、性別、マイナンバーの各項目のデータを取得する。データ生成部50は、取得した複数の項目のデータをデリミタにより区切った複数のレコードを有するテキストファイル40を生成する(S11)。
入力部52は、符号化対象のテキストデータの入力を受け付ける(S12)。第1生成部53は、符号化ファイル生成処理を実行する(S13)。
図8は、符号化ファイル生成処理の手順の一例を示すフローチャートである。この符号化ファイル生成処理は、所定のタイミング、例えば、符号化処理のS13から実行される。
図8に示すように、第1生成部53は、パラメータiおよびパラメータjにそれぞれ1を格納する(S20)。第1生成部53は、テキストファイル40の項目数Iとレコード数Jを特定する(S21)。
第1生成部53は、テキストファイル40のi番目の項目が符号化対象の項目であるか判定する(S22)。項目が符号化対象であるかは、予め定めておく。例えば、機密情報が格納された項目は、符号化対象の項目とする。符号化対象の項目ではない場合(S22否定)、第1生成部53は、パラメータiの値に1を加算する(S23)。第1生成部53は、パラメータiの値が項目数Iより大きいか否かを判定する(S24)。パラメータiの値が項目数Iより大きくはない場合(S24否定)、S22へ移行する。
一方、パラメータiの値が項目数Iより大きい場合(S24肯定)、符号化ファイル生成処理を終了し、図7に示す符号化処理のS14へ移行する。
一方、符号化対象の項目である場合(S22肯定)、第1生成部53は、テキストファイル40のj番目のレコードのi番目の項目のデータが、i番目の項目に対応した符号化辞書41に登録されているか判定する(S25)。符号化辞書41に登録されている場合(S25肯定)、第1生成部53は、j番目のレコードのi番目の項目のデータを、i番目の項目に対応した符号化辞書41に登録されている、当該データに対応する符号に置き換える(S26)。
符号化辞書41に登録されていない場合(S25否定)、第1生成部53は、テキストファイル40のj番目のレコードのi番目の項目のデータに符号を割り当てる。そして、第1生成部53は、i番目の項目に対応した符号化辞書41に割り当てた符号とデータとを対応付けて登録し、割り当てた符号にデータを置き換える(S27)。
第1生成部53は、パラメータjの値に1を加算する(S28)。第1生成部53は、パラメータjの値がレコード数Jより大きいか否かを判定する(S29)。パラメータjの値がレコード数Jより大きくはない場合(S29否定)、S25へ移行する。
一方、パラメータjの値がレコード数Jより大きい場合(S29肯定)、第1生成部53は、パラメータjに1を格納し(S30)、S23へ移行する。
図7に戻り、第2生成部54は、符号化辞書41に、符号化した項目を示す項目情報を格納する(S14)。第2生成部54は、暗号化処理を実行する(S15)。
図9は、暗号化処理の手順の一例を示すフローチャートである。この暗号化処理は、所定のタイミング、例えば、符号化処理のS15から実行される。
図9に示すように、第2生成部54は、パラメータiに1を格納する(S40)。第2生成部54は、テキストファイル40の項目数Iを特定する(S41)。
第2生成部54は、テキストファイル40のi番目の項目が暗号化対象の項目であるか判定する(S42)。項目が暗号化対象であるかは、予め定めておく。例えば、機密情報が格納された項目は、暗号化対象の項目とする。暗号化対象の項目である場合(S42肯定)、第2生成部54は、テキストファイル40のi番目の項目に対応する符号化辞書41を暗号化する(S43)。なお、i番目の項目に対応する符号化辞書41が暗号化済みの場合は、再度、暗号化を行わなくてもよい。第2生成部54は、パラメータiの値に1を加算する(S44)。一方、暗号化対象の項目ではない場合(S42否定)、S44へ移行する。
第2生成部54は、パラメータiの値が項目数Iより大きいか否かを判定する(S45)。パラメータiの値が項目数Iより大きくはない場合(S45否定)、S42へ移行する。
一方、パラメータiの値が項目数Iより大きい場合(S45肯定)、暗号化処理を終了し、図7に示す符号化処理のS15に移行する。
図7に戻り、第2生成部54は、データ部として、符号化データ42を含み、トレーラ部として、項目ごとに符号化辞書41または暗号化辞書44を含んだ暗号化ファイル45を生成し(S16)、符号化処理を終了する。
次に、復号化装置60が暗号化ファイル45を復号化する復号化処理の流れについて説明する。図10は、復号化処理の手順の一例を示すフローチャートである。この復号化処理は、所定のタイミング、例えば、復号化対象の暗号化ファイル70を指定されて復号化処理開始が指示されたタイミングで実行される。
図10に示すように、入力部81は、復号化対象の暗号化ファイル70の入力を受け付ける(S50)。復号化部82は、復号化キーを取得する(S51)。例えば、復号化部82は、ユーザごとにユーザの権限に応じて各項目の復号化キーを記憶した装置から、暗号化ファイル70を利用するユーザの権限に応じた各項目の復号化キーを取得する。
復号化部82は、暗号化辞書復号化処理を実行する(S52)。
図11は、暗号化辞書復号化処理の手順の一例を示すフローチャートである。この暗号化辞書復号化処理は、所定のタイミング、例えば、復号化処理のS52から実行される。
図11に示すように、復号化部82は、パラメータiに1を格納する(S60)。復号化部82は、暗号化ファイル70に含まれる符号化データ42の項目数Iを特定する(S61)。
復号化部82は、符号化データ42のi番目の項目が暗号化対象の項目であるか判定する(S62)。項目が暗号化対象であるかは、例えば、暗号化ファイル70に、項目が暗号化対象であるかの情報を格納させておき、当該情報から判定してもよい。また、復号化キーを取得された項目は、項目が暗号化対象であると判定してもよい。暗号化対象の項目である場合(S62肯定)、復号化部82は、i番目の項目に対応する符号化辞書72を復号化する(S63)。なお、i番目の項目に対応する符号化辞書72が復号化済みの場合は、再度、復号化を行わなくてもよい。復号化部82は、パラメータiの値に1を加算する(S64)。一方、暗号化対象の項目ではない場合(S62否定)、S64へ移行する。
復号化部82は、パラメータiの値が項目数Iより大きいか否かを判定する(S65)。パラメータiの値が項目数Iより大きくはない場合(S65否定)、S62へ移行する。
一方、パラメータiの値が項目数Iより大きい場合(S65肯定)、暗号化辞書復号化処理を終了し、図10に示す復号化処理のS53に移行する。
図10に戻り、復号化部82は、符号化データ復号化処理を実行する(S53)。
図12は、符号化データ復号化処理の手順の一例を示すフローチャートである。この符号化データ復号化処理は、所定のタイミング、例えば、復号化処理のS53から実行される。
図12に示すように、復号化部82は、パラメータiおよびパラメータjにそれぞれ1を格納する(S70)。復号化部82は、符号化データ73の項目数Iとレコード数Jを特定する(S71)。
復号化部82は、テキストファイル40のj番目のレコードのi番目の項目の符号を、i番目の項目に対応した符号化辞書72から検索する(S72)。復号化部82は、検索の結果、i番目の項目に対応した符号化辞書72に符号が存在するか否かを判定する(S73)。符号が存在する場合(S73肯定)、復号化部82は、テキストファイル40のj番目のレコードのi番目の項目の符号を、i番目の項目に対応した符号化辞書72に記憶された当該符号に対応するデータに置き換える(S74)。
一方、符号が存在しない場合(S73否定)、復号化部82は、符号をそのままj番目のレコードのi番目の項目のデータとする(S75)。
復号化部82は、パラメータjの値に1を加算する(S76)。第1生成部53は、パラメータjの値がレコード数Jより大きいか否かを判定する(S77)。パラメータjの値がレコード数Jより大きくはない場合(S77否定)、S72へ移行する。
一方、パラメータjの値がレコード数Jより大きい場合(S77肯定)、復号化部82は、パラメータjに1を格納し、パラメータiの値に1を加算する(S78)。第1生成部53は、パラメータiの値が項目数Iより大きいか否かを判定する(S79)。パラメータiの値が項目数Iより大きくはない場合(S79否定)、S72へ移行する。
一方、パラメータiの値が項目数Iより大きい場合(S79肯定)、符号化データ復号化処理を終了し、図10に示す復号化処理のS54に移行する。
図10に戻り、出力部83は、生成したテキストファイル74を記憶部62へ出力して格納し(S54)、復号化処理を終了する。
[効果]
上述してきたように、本実施例に係る符号化装置30は、デリミタにより区切られた複数の項目からなる複数のレコードを有する、テキストファイル40が入力する。符号化装置30は、入力されたテキストファイル40の複数のレコードに含まれる特定の項目を単語または数値単位で符号化した、符号化データ42および符号化辞書41を有する符号化ファイル43を生成する。符号化装置30は、生成された符号化ファイル43より、符号化辞書41を暗号化した暗号化辞書44を含む、暗号化ファイル45を生成する。これにより、符号化装置30は、特定の項目の情報を柔軟に保護できる。
また、本実施例に係る符号化装置30は、テキストファイル40の複数のレコードに含まれる特定の項目以外の項目を単語または数値単位で符号化した符号化データ42および項目ごとの符号化辞書41を生成する。これにより、符号化装置30は、テキストファイル40を高い圧縮率で符号化できる。
また、本実施例に係る符号化装置30は、符号化した項目を示す項目情報を含めて符号化辞書41を生成する。これにより、符号化装置30は、符号化辞書41ごとに符号を重複させることが可能となるため、より高い圧縮率で圧縮することが可能となる。また、復元する際に、符号化した項目に対応する符号化辞書41を速やかに特定できる。
また、本実施例に係る符号化装置30は、符号化ファイル43全体または特定の項目以外の項目の符号化辞書41を、特定の項目の符号化辞書41の暗号化とは異なる暗号化キーにより暗号化した暗号化ファイル45を生成する。これにより、符号化装置30は、符号化ファイル43全体を秘匿化できる。
また、本実施例に係る復号化装置60は、暗号化ファイル70が入力する。復号化装置60は、入力された暗号化ファイル70の暗号化辞書71を所定の復号化キーにより復号化する。復号化装置60は、復号化された符号化辞書72を用いて特定の項目を復号化したテキストファイル74を出力する。これにより、復号化装置60は、暗号化ファイル70の利用目的に合わせて特定の項目の情報を柔軟に保護できる。
また、本実施例に係る復号化装置60は、符号化辞書72に特定の項目の符号が存在しない場合、当該符号をそのまま出力する。ここで、一般的に、符号化辞書72に特定の項目の符号が存在しない場合、復号化がエラーになる。一方、本実施例に係る復号化装置60は、符号化辞書72に特定の項目の符号が存在しない場合、例えば、符号に対応するデータが参照する権限が無いものとして、符号をそのまま出力する。これにより、復号化装置60は、特定の項目の符号に対応するデータを秘匿化できる。
また、本実施例に係る復号化装置60は、符号化辞書72に特定の項目の符号が存在しない場合、当該符号を特定の文字に変換して出力、または、当該符号を出力しない。これにより、復号化装置60は、例えば、符号に対応するデータが参照する権限が無い場合、特定の項目の符号に対応するデータを秘匿化できる。
さて、これまで開示の装置に関する実施例について説明したが、開示の技術は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
例えば、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的状態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、符号化処理部51の入力部52、第1生成部53、第2生成部54、復号化処理部80の入力部81、復号化部82、出力部83の各処理部が適宜統合されてもよい。上記各処理部の処理が適宜複数の処理部の処理に分離されてもよい。また、上記各処理部は、1つの装置が備えてもよい。例えば、符号化装置30が復号化処理部80の入力部81、復号化部82、出力部83をさらに備えてもよい。さらに、各処理部にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
[符号化プログラム]
また、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することもできる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータシステムの一例を説明する。最初に、符号化処理を行う符号化プログラムについて説明する。図13は、符号化プログラムを実行するコンピュータの一例を示す図である。
図13に示すように、コンピュータ400は、CPU(Central Processing Unit)410、HDD(Hard Disk Drive)420、RAM(Random Access Memory)440を有する。これら400〜440の各部は、バス500を介して接続される。
HDD420には上記の符号化装置30の符号化処理部51(入力部52、第1生成部53、第2生成部54)と同様の機能を発揮する符号化プログラム420aが予め記憶される。なお、符号化プログラム420aについては、適宜分離してもよい。
また、HDD420は、各種情報を記憶する。例えば、HDD420は、OSや符号化に用いる各種データを記憶する。
そして、CPU410が、符号化プログラム420aをHDD420から読み出して実行することで、実施例の各処理部と同様の動作を実行する。すなわち、符号化プログラム420aは、符号化処理部51と同様の動作を実行する。
なお、上記した符号化プログラム420aについては、必ずしも最初からHDD420に記憶させることを要しない。
[復号化プログラム]
次に、復号化処理を行う復号化プログラムについて説明する。図14は、復号化プログラムを実行するコンピュータの一例を示す図である。なお、図13と同一の部分については同一の符号を付して、説明を省略する。
図14に示すように、HDD420には上記の復号化装置60の復号化処理部80(入力部81、復号化部82、出力部83)と同様の機能を発揮する復号化プログラム420bが予め記憶される。なお、復号化プログラム420bについては、適宜分離してもよい。
また、HDD420は、各種情報を記憶する。例えば、HDD420は、OSや検索に用いる各種データを記憶する。
そして、CPU410が、復号化プログラム420bをHDD420から読み出して実行することで、実施例の各処理部と同様の動作を実行する。すなわち、復号化プログラム420bは、復号化処理部80と同様の動作を実行する。
なお、上記した復号化プログラム420bについても、必ずしも最初からHDD420に記憶させることを要しない。
また、例えば、符号化プログラム420aおよび復号化プログラム420bは、コンピュータ400に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に記憶させてもよい。そして、コンピュータ400がこれらからプログラムを読み出して実行するようにしてもよい。
さらには、公衆回線、インターネット、LAN、WANなどを介してコンピュータ400に接続される「他のコンピュータ(又はサーバ)」などにプログラムを記憶させておく。そして、コンピュータ400がこれらからプログラムを読み出して実行するようにしてもよい。
11 基幹システム
12 印刷拠点
15 帳票処理部
16 符号化処理部
17 帳票用データ
18 定義体データ
19 CSVファイル
20 符号化データ
21 符号化辞書
22 符号化ファイル
23 暗号化ファイル
25 復号化処理部
26 印刷処理部
30 符号化装置
32 記憶部
33 制御部
40 テキストファイル
41 符号化辞書
42 符号化データ
43 符号化ファイル
44 暗号化辞書
45 暗号化ファイル
50 データ生成部
51 符号化処理部
52 入力部
53 第1生成部
54 第2生成部
60 復号化装置
62 記憶部
63 制御部
70 暗号化ファイル
71 暗号化辞書
72 符号化辞書
73 符号化データ
74 テキストファイル
80 復号化処理部
81 入力部
82 復号化部
83 出力部

Claims (11)

  1. コンピュータに、
    デリミタにより区切られた複数の項目からなる複数のレコードを有する、テキストファイルを入力し、
    入力された前記テキストファイルの前記複数のレコードに含まれる特定の項目を単語または数値単位で符号化した、符号化データおよび符号化辞書を有する符号化ファイルを生成し、
    生成された前記符号化ファイルより、前記符号化辞書を暗号化した暗号化辞書を含む、暗号化ファイルを生成する、
    処理を実行させることを特徴とする符号化プログラム。
  2. 前記符号化ファイルを生成する処理は、前記テキストファイルの前記複数のレコードに含まれる特定の項目以外の項目を単語または数値単位で符号化した符号化データおよび項目ごとの符号化辞書を生成する
    ことを特徴とする請求項1に記載の符号化プログラム。
  3. 前記符号化ファイルを生成する処理は、符号化した項目を示す項目情報を含めて前記符号化辞書を生成する
    ことを特徴とする請求項1または2に記載の符号化プログラム。
  4. 前記暗号化ファイルを生成する処理は、前記符号化ファイル全体または前記特定の項目以外の項目の符号化辞書を、前記特定の項目の符号化辞書の暗号化とは異なる暗号化キーにより暗号化した暗号化ファイルを生成する
    ことを特徴とする請求項1〜3の何れか1つに記載の符号化プログラム。
  5. コンピュータが、
    デリミタにより区切られた複数の項目からなる複数のレコードを有する、テキストファイルを入力し、
    入力された前記テキストファイルの前記複数のレコードに含まれる特定の項目を単語または数値単位で符号化した、符号化データおよび符号化辞書を有する符号化ファイルを生成し、
    生成された前記符号化ファイルより、前記符号化辞書を暗号化した暗号化辞書を含む、暗号化ファイルを生成する、
    処理が実行することを特徴とする符号化方法。
  6. デリミタにより区切られた複数の項目からなる複数のレコードを有する、テキストファイルを入力する入力部と、
    前記入力部に入力された前記テキストファイルの前記複数のレコードに含まれる特定の項目を単語または数値単位で符号化した、符号化データおよび符号化辞書を有する符号化ファイルを生成する第1生成部と、
    前記第1生成部により生成された前記符号化ファイルより、前記符号化辞書を暗号化した暗号化辞書を含む、暗号化ファイルを生成する第2生成部と、
    を有することを特徴とする符号化装置。
  7. コンピュータに、
    複数の項目のうち、少なくとも特定の項目が符号化された複数のレコードを有する符号化ファイル、および、前記特定の項目の符号化辞書が暗号化された暗号化辞書を含んだ暗号化ファイルを入力し、
    入力された暗号化ファイルの前記暗号化辞書を所定の復号化キーにより復号化し、
    復号化された符号化辞書を用いて前記特定の項目を復号化したテキストファイルを出力する
    処理を実行させることを特徴とする復号化プログラム。
  8. 前記出力する処理は、前記符号化辞書に前記特定の項目の符号が存在しない場合、当該符号をそのまま出力する
    ことを特徴とする請求項7に記載の復号化プログラム。
  9. 前記出力する処理は、前記符号化辞書に前記特定の項目の符号が存在しない場合、当該符号を特定の文字に変換して出力、または、当該符号を出力しない
    ことを特徴とする請求項7に記載の復号化プログラム。
  10. コンピュータが、
    複数の項目のうち、少なくとも特定の項目が符号化された複数のレコードを有する符号化ファイル、および、前記特定の項目の符号化辞書が暗号化された暗号化辞書を含んだ暗号化ファイルを入力し、
    入力された暗号化ファイルの前記暗号化辞書を所定の復号化キーにより復号化し、
    復号化された符号化辞書を用いて前記特定の項目を復号化したテキストファイルを出力する
    処理を実行することを特徴とする復号化方法。
  11. 複数の項目のうち、少なくとも特定の項目が符号化された複数のレコードを有する符号化ファイル、および、前記特定の項目の符号化辞書が暗号化された暗号化辞書を含んだ暗号化ファイルを入力する入力部と、
    前記入力部に入力された暗号化ファイルの前記暗号化辞書を所定の復号化キーにより復号化する復号化部と、
    前記復号化部により復号化された符号化辞書を用いて前記特定の項目を復号化したテキストファイルを出力する出力部と、
    を有することを特徴とする復号化装置。
JP2016198442A 2016-10-06 2016-10-06 符号化プログラム、符号化方法、符号化装置、復号化プログラム、復号化方法および復号化装置 Active JP6780428B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016198442A JP6780428B2 (ja) 2016-10-06 2016-10-06 符号化プログラム、符号化方法、符号化装置、復号化プログラム、復号化方法および復号化装置
US15/714,631 US10552635B2 (en) 2016-10-06 2017-09-25 Encoding method, encoding device, decoding method and decoding device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016198442A JP6780428B2 (ja) 2016-10-06 2016-10-06 符号化プログラム、符号化方法、符号化装置、復号化プログラム、復号化方法および復号化装置

Publications (2)

Publication Number Publication Date
JP2018061170A true JP2018061170A (ja) 2018-04-12
JP6780428B2 JP6780428B2 (ja) 2020-11-04

Family

ID=61829005

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016198442A Active JP6780428B2 (ja) 2016-10-06 2016-10-06 符号化プログラム、符号化方法、符号化装置、復号化プログラム、復号化方法および復号化装置

Country Status (2)

Country Link
US (1) US10552635B2 (ja)
JP (1) JP6780428B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108763175A (zh) * 2018-06-26 2018-11-06 中国银行股份有限公司 一种csv文件处理方法及系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001526857A (ja) * 1997-05-09 2001-12-18 ネオメディア テクノロジーズ,インク. インテリジェント・ドキュメント上のマシン可読のデータを経由して電子的リソースにアクセスするための方法およびシステム
JP2007140869A (ja) * 2005-11-17 2007-06-07 Nippon Rad Inc 電子情報管理方法、電子情報管理システム、コンピュータプログラム
JP2011044874A (ja) * 2009-08-20 2011-03-03 Hitachi Ltd 図形データの暗号化・復号装置、および、図形データ閲覧システム
JP2012256144A (ja) * 2011-06-08 2012-12-27 Jfe Systems Inc データ管理保存システム
JP2013250937A (ja) * 2012-06-04 2013-12-12 Nihon Medical Business Co Ltd 通信装置、通信システム及び通信方法
JP2015041319A (ja) * 2013-08-23 2015-03-02 株式会社リコー データ管理装置、データ管理方法、及びプログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4003203B2 (ja) 2000-08-10 2007-11-07 サイファーゲート株式会社 暗号化プログラムを記録した記録媒体及び復号化プログラムを記録した記録媒体
US7512814B2 (en) * 2004-11-09 2009-03-31 Fortiva Inc. Secure and searchable storage system and method
GB2485783A (en) * 2010-11-23 2012-05-30 Kube Partners Ltd Method for anonymising personal information
US9129117B2 (en) * 2012-12-27 2015-09-08 Industrial Technology Research Institute Generation method and device for generating anonymous dataset, and method and device for risk evaluation

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001526857A (ja) * 1997-05-09 2001-12-18 ネオメディア テクノロジーズ,インク. インテリジェント・ドキュメント上のマシン可読のデータを経由して電子的リソースにアクセスするための方法およびシステム
JP2007140869A (ja) * 2005-11-17 2007-06-07 Nippon Rad Inc 電子情報管理方法、電子情報管理システム、コンピュータプログラム
JP2011044874A (ja) * 2009-08-20 2011-03-03 Hitachi Ltd 図形データの暗号化・復号装置、および、図形データ閲覧システム
JP2012256144A (ja) * 2011-06-08 2012-12-27 Jfe Systems Inc データ管理保存システム
JP2013250937A (ja) * 2012-06-04 2013-12-12 Nihon Medical Business Co Ltd 通信装置、通信システム及び通信方法
JP2015041319A (ja) * 2013-08-23 2015-03-02 株式会社リコー データ管理装置、データ管理方法、及びプログラム

Also Published As

Publication number Publication date
US10552635B2 (en) 2020-02-04
US20180101698A1 (en) 2018-04-12
JP6780428B2 (ja) 2020-11-04

Similar Documents

Publication Publication Date Title
JP4893750B2 (ja) データ圧縮装置およびデータ復元装置
CN106161006B (zh) 一种数字加密算法
JP2021513141A (ja) 2次元バーコードの生成及び識別
CN103119594A (zh) 可检索密码处理系统
CN111984987B (zh) 一种用于电子病历脱敏及还原的方法、装置、系统和介质
JP6867583B2 (ja) データ生成プログラム、データ生成方法、およびデータ生成装置
CN105359155B (zh) 使用压缩破坏口令攻击
US20150172044A1 (en) Order-preserving encryption system, encryption device, decryption device, encryption method, decryption method, and programs thereof
JP6950162B2 (ja) 暗号化システム、暗号化方法、暗号化装置および暗号化プログラム
KR101220254B1 (ko) 검색가능한 컬러 부호화 파일 형성 방법 및 검색가능한 컬러 부호화 파일 시스템
JP6780428B2 (ja) 符号化プログラム、符号化方法、符号化装置、復号化プログラム、復号化方法および復号化装置
CN110140161B (zh) 加密标签生成装置、检索查询生成装置和隐匿检索系统
Choche et al. A methodology to conceal QR codes for security applications
CN107533617B (zh) 服务器装置、信息管理系统、信息管理方法以及计算机程序
CN105893860A (zh) 关键代码保护方法以及代码生成装置和代码运行装置
US20100250602A1 (en) Computer storage apparatus for multi-tiered data security
JP6202969B2 (ja) 情報処理装置、暗号化方法
JP2015069192A (ja) 情報処理装置、暗号化方法
US11816242B2 (en) Log compression and obfuscation using embeddings
JPWO2019073912A1 (ja) 擬似データ生成装置、その方法、およびプログラム
CN106570410B (zh) 一种数据的加密方法、解密方法、装置和系统
JP5865565B2 (ja) 文章認識装置、文章認識方法、及びプログラム
Shoukat et al. An Improved Method of Vigenere Cipher to Securely Compress the Text by using Relative Frequency
US11971998B2 (en) Data comparison device, data comparison system, and data comparison method
WO2023167266A1 (ja) データ管理システム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170310

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190709

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200608

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200915

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200928

R150 Certificate of patent or registration of utility model

Ref document number: 6780428

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150