(57)【要約】【課題】テキスト情報を圧縮符号化し、特定の種別の単語を一括してブロック暗号化する。【解決手段】生成プログラムは、テキスト情報を受け付ける処理をコンピュータに実行させる。生成プログラムは、受け付けたテキスト情報に含まれる特定の種別の語句を検出すると、特定の種別の語句を符号化した符号化情報、及び符号化情報と符号化前の特定の種別の語句とを対応付ける第１の辞書を生成する処理をコンピュータに実行させる。さらに、生成プログラムは、生成した符号化情報を第１の領域に含み、生成した第１の辞書を暗号化した暗号化辞書情報を特定の種別に応じた第２の領域に含むファイルを生成する処理をコンピュータに実行させる。【選択図】図４
2019120780.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
テキスト情報を受け付け、
受け付けた前記テキスト情報に含まれる特定の種別の語句を検出すると、前記特定の種別の語句を符号化した符号化情報、及び前記符号化情報と符号化前の前記特定の種別の語句とを対応付ける第１の辞書を生成し、
生成した前記符号化情報を第１の領域に含み、生成した前記第１の辞書を暗号化した暗号化辞書情報を前記特定の種別に応じた第２の領域に含むファイルを生成する
処理を実行させることを特徴とするファイル生成プログラム。
【請求項２】
前記テキスト情報に含まれる語句が、第２の辞書に予め記憶されているか否かを判定する処理をさらに前記コンピュータに実行させ、
前記符号化情報及び前記第１の辞書を生成する処理は、前記特定の種別の語句として、前記第２の辞書に予め記憶されていないと判定された語句を抽出して、前記符号化情報及び前記第１の辞書を生成することを特徴とする請求項１に記載のファイル生成プログラム。
【請求項３】
前記ファイルを生成する処理は、前記特定の種別の語句以外の語句と当該語句を符号化した情報とを対応付ける第３の辞書をさらに含む前記ファイルを生成することを特徴とする請求項１又は２に記載のファイル生成プログラム。
【請求項４】
前記符号化情報及び前記第１の辞書を生成する処理は、前記特定の種別の語句の項目ごとにそれぞれ異なる記憶領域に、それぞれ異なる前記第１の辞書を生成し、
前記ファイルを生成する処理は、前記項目ごとに対応する各第１の辞書を、それぞれ異なる暗号化キーを用いて暗号化することにより、前記暗号化辞書情報を生成することを特徴とする請求項１乃至３のいずれか１つに記載のファイル生成プログラム。
【請求項５】
前記ファイルの出力要求を受け付けた場合に、出力を要求する者のアクセス権限に応じて、前記特定の種別の語句に対応する前記符号化情報を復号するか否かを判定し、
復号すると判定された前記符号化情報を復号した前記特定の種別の語句を含むテキスト情報を出力する処理をさらに前記コンピュータに実行させることを特徴とする請求項１乃至４のいずれか１つに記載のファイル生成プログラム。
【請求項６】
前記出力する処理は、復号しないと判定された前記符号化情報に対応する前記特定の種別の語句を、当該特定の種別の語句の項目に応じた種別又は文字数でマスキングした文字列を含むテキスト情報を出力する処理をさらに前記コンピュータに実行させることを特徴とする請求項５に記載のファイル生成プログラム。
【請求項７】
前記符号化情報を記憶する記憶領域のサイズ及び前記符号化情報のサイズのうち少なくともいずれかを、前記特定の種別の語句の出現頻度に基づいて決定する処理をさらに前記コンピュータに実行させることを特徴とする請求項１乃至６のいずれか１つに記載のファイル生成プログラム。
【請求項８】
コンピュータが、
テキスト情報を受け付け、
受け付けた前記テキスト情報に含まれる特定の種別の語句を検出すると、前記特定の種別の語句を符号化した符号化情報、及び前記符号化情報と符号化前の前記特定の種別の語句とを対応付ける第１の辞書を生成し、
生成した前記符号化情報を第１の領域に含み、生成した前記第１の辞書を暗号化した暗号化辞書情報を前記特定の種別に応じた第２の領域に含むファイルを生成する
処理を行うことを特徴とするファイル生成方法。
【請求項９】
テキスト情報を受け付ける受付部と、
受け付けた前記テキスト情報に含まれる特定の種別の語句を検出すると、前記特定の種別の語句を符号化した符号化情報、及び前記符号化情報と符号化前の前記特定の種別の語句とを対応付ける第１の辞書を生成する第１生成部と、
生成した前記符号化情報を第１の領域に含み、生成した前記第１の辞書を暗号化した暗号化辞書情報を前記特定の種別に応じた第２の領域に含むファイルを生成する第２生成部と
を有することを特徴とするファイル生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイル生成プログラム、ファイル生成方法及びファイル生成装置に関する。
【背景技術】
【０００２】
テキストデータを文字列単位、例えば単語単位で圧縮符号化する技術が知られている。例えば、圧縮対象ファイルのうち、静的辞書に登録されている文字列は符号に置換し、静的辞書に登録されていない文字列に新たな圧縮符号を割り当てて、当該文字列と新たな圧縮符号と予備符号用の領域とを対応付けて動的辞書に格納する技術が知られている。
【０００３】
また、符号化されたテキストデータのうち、項目ごとにセキュリティレベルを設定する技術も知られている。例えば、ユーザが希望する支払方法、及びユーザの認証レベルに応じて、ユーザに供給する情報の項目を選択する技術が知られている。また、ユーザが入力した一区切りの文字列について、暗号化するか否かの選択肢を表示する技術も知られている。当該技術において、ユーザが暗号化することを選択した場合は文字列を暗号化して確定文字列に変換し、ユーザが暗号化しないことを選択した場合は文字列を暗号化せず確定文字列に変換して文書データを作成する。さらに、複数のマスキングオブジェクトを画像内の任意の位置に配置し、例えば出力するデバイス、文書のプロパティ又はアクセス権限に応じて項目をマスキングするか否かを決定するような技術も知られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１７−２２６６６号公報
【特許文献２】特表２０１６−５１０４５９号公報
【特許文献３】特開２０１２−４３２４２号公報
【特許文献４】特開２００４−２２７１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、上記技術においては、複数のテキストデータを圧縮符号化し、特定の種別の情報を一括してブロック暗号化することは難しい。上記技術においては、各テキストデータに含まれる特定の種別の情報をそれぞれ個別に暗号化しようとすると、データサイズが大きくなり、又は単語がブロック暗号化の境界で分断されることがある。
【０００６】
一つの側面では、テキスト情報を圧縮符号化し、特定の種別の単語を一括してブロック暗号化できるファイル生成プログラム、ファイル生成方法及びファイル生成装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
一つの態様において、生成プログラムは、テキスト情報を受け付ける処理をコンピュータに実行させる。生成プログラムは、受け付けたテキスト情報に含まれる特定の種別の語句を検出すると、特定の種別の語句を符号化した符号化情報、及び符号化情報と符号化前の特定の種別の語句とを対応付ける第１の辞書を生成する処理をコンピュータに実行させる。さらに、生成プログラムは、生成した符号化情報を第１の領域に含み、生成した第１の辞書を暗号化した暗号化辞書情報を特定の種別に応じた第２の領域に含むファイルを生成する処理をコンピュータに実行させる。
【発明の効果】
【０００８】
一つの態様によれば、テキスト情報を圧縮符号化し、特定の種別の単語を一括してブロック暗号化できる。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施例１の単語の符号化処理を説明するための図である。
【図２】図２は、実施例１における生成処理の一例を示す図である。
【図３】図３は、実施例１におけるテキストファイルの一例の図である。
【図４】図４は、実施例１における生成装置の一例を示す図である。
【図５】図５は、実施例１における静的ビットフィルタの一例を示す図である。
【図６】図６は、実施例１における動的辞書に関連するデータ構造の一例を示す図である。
【図７】図７は、実施例１における種別テーブルの一例を示す図である。
【図８】図８は、実施例１における生成処理の一例を示すフローチャートである。
【図９】図９は、実施例１における伸長処理の一例を示すフローチャートである。
【図１０】図１０は、動的辞書と暗号化領域との対応関係の一例を示す図（１）である。
【図１１】図１１は、動的辞書と暗号化領域との対応関係の一例を示す図（２）である。
【図１２】図１２は、実施例２における符号のシフトの一例を示す図である。
【図１３】図１３は、生成プログラムを実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【００１０】
以下に、本願の開示するファイル生成プログラム、ファイル生成方法及びファイル生成装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、以下に示す各実施例は、矛盾を起こさない範囲で適宜組み合わせても良い。
【実施例１】
【００１１】
まず、後に説明する実施例１の生成装置１００による符号化処理について、図１を用いて説明する。図１は、実施例１の単語の符号化処理を説明するための図である。図１に示すように、生成装置１００は、符号化処理の対象である対象文章データＦ１に含まれる「This△is△a△pen・・・Mickey△・・・」を「This△」、「is△」、「ａ△」、「pen△」のように単語ごとに区切り、符号化対象データである各単語を取得する。なお、対象文章データＦ１は、テキスト情報の一例である。また、以下において、「△」は空白を意味するものとする。
【００１２】
生成装置１００は、符号化対象データとして、例えば「Mickey△」を抽出してビットフィルタ１２１に出力し、抽出された符号化対象データに対応する静的符号が登録されているか否かを判定する。ビットフィルタ１２１は、各単語と、静的符号又は動的符号とを対応付ける辞書である。例えば、ビットフィルタ１２１には、「This△」、「is△」、「ａ△」、「pen△」などの超高頻度単語と、各単語に対応する静的符号とがあらかじめ登録されている。ビットフィルタ１２１のデータ構造に関する詳細は後述する。なお、静的符号及び動的符号は、符号化情報の一例である。
【００１３】
次いで、生成装置１００は、抽出された符号化対象データ「Mickey△」に対応する静的符号がビットフィルタ１２１に登録されていない場合、「Mickey△」の属性情報が低頻度単語、氏名、数値及びタグのうちどれに該当するかを判定する。次いで、生成装置１００は、「Mickey△」が「氏名」であると判定した場合、動的符号（ここでは「Ａ１００ｈ」）と、氏名であることを示す種別（ここでは「２」）とを対応づけて動的辞書１２２に登録する。なお、動的符号「Ａ１００ｈ」の末尾に示す「h」は、１６進数で表記されていることを示す符号である。また、単語の属性情報については後に詳しく説明する。なお、動的辞書１２２は、第１の辞書の一例である。
【００１４】
次いで、生成装置１００は、動的辞書１２２において動的に付された動的符号「Ａ１００ｈ」を、「Mickey△」と対応づけてビットフィルタ１２１に登録する。そして、生成装置１００は、ビットフィルタ１２１および動的辞書１２２を基にして単語「Mickey△」に対応する動的符号「Ａ１００ｈ」を取得し、符号化データＦ２に出力する。
【００１５】
また、生成装置１００は、次回、対象文章データＦ１に単語「Mickey△」が出現した場合、既にビットフィルタ１２１に登録されている動的符号「Ａ１００ｈ」を取得し、符号化データＦ２に出力する。
【００１６】
なお、生成装置１００は、抽出された符号化対象データに対応する静的符号が登録されていると判定した場合、当該静的符号を取得し、符号化データＦ２に出力する。例えば、生成装置１００は、符号化対象データ「pen△」に対応する静的符号として「４０２Ｆｈ」が登録されている場合、静的符号「４０２Ｆｈ」を取得し、符号化データＦ２に出力する。
【００１７】
図１に示す符号化データＦ２の詳細について、図２を用いて説明する。図２は、実施例１における生成処理の一例を示す図である。図２に示すように、符号化データＦ２は、ヘッダ部分と、本文部分と、トレーラ部分とを含む。ヘッダ部分は、符号化データＦ２のＩＤ及び静的ビットフィルタに登録された超高頻度単語の頻度表を含む。本文部分は、対象文章データＦ１が符号化されたデータを含む。トレーラ部分は、対象文章データＦ１のインデックスに加えて、動的辞書を含む。
【００１８】
図２に示すように、符号化データＦ２に含まれる動的辞書は、動的辞書に含まれる単語の属性情報を定めた種別テーブル１２４と、動的辞書１２２に含まれる特定の属性情報に対応する複数の部分のうち一部を暗号化したデータとを含む。種別テーブル１２４のデータ構造に関する詳細は後述する。
【００１９】
また、本実施例におけるテキストファイルの符号化処理と、符号化されたテキストの伸長処理について図３を用いて説明する。図３は、実施例１におけるテキストファイルの一例の図である。図３に示すように、生成装置１００は、超高頻度単語を含む部分１１１１と、氏名を含む部分１１１２と、数値を含む部分１１１３とを有するテキストファイル１１００の入力を受けて符号化処理を行う。符号化されたテキスト１２００は、超高頻度単語に対応する符号１２１１と、氏名に対応する符号１２１２と、数値に対応する符号１２１３とを含む。なお、本実施例において、氏名を含む部分１１１２及び数値を含む部分１１１３に含まれる情報は、例えば氏名や電話番号などの個人情報である。また、氏名を含む部分１１１２に対応する動的辞書１２２の部分は、例えば図２に示す暗号化動的辞書２に該当する。同様に、数値を含む部分１１１３に対応する動的辞書１２２の部分は、例えば暗号化動的辞書３（不図示）に該当する。
【００２０】
生成装置１００は、ユーザ（不図示）から符号化されたテキスト１２００の伸長要求を受け付けると、伸長要求をしたユーザのアクセス権限を判定する。生成装置１００は、ユーザが個人情報に対するアクセス権限を有する者であると判定した場合、図３に示すように、氏名を含む部分１１１２及び数値を含む部分１１１３に含まれる情報も伸長したテキストファイル１１００を出力する。
【００２１】
一方、生成装置１００は、ユーザが個人情報に対するアクセス権限を有しない者であると判定した場合、氏名を含む部分１１１２及び数値を含む部分１１１３に含まれる情報をマスキングしたテキスト１３００を出力する。図３に示すように、テキスト１３００は、氏名を含む部分１１１２をマスキングした部分１３１２と、数値を含む部分１１１３をマスキングした部分１３１３とを含む。なお、生成装置１００は、図３に示すように、氏名に対応する部分１３１２と、数値に対応する部分１３１３とで、マスキングの種別及び文字数のうち、少なくともいずれかを変更してもよい。また、ユーザは、出力を要求する者の一例である。
【００２２】
このように、本実施例における生成装置１００は、文章に含まれる、静的辞書に記憶されない特定の種別の単語を符号化し、符号と単語とを対応付ける辞書を暗号化した情報を含むファイルを生成するので、符号化時に特定の種別の単語を一括してブロック暗号化できる。
【００２３】
［機能ブロック］
【００２４】
次に、本実施例における生成装置の一例について、図４を用いて説明する。図４は、実施例１における生成装置の一例を示す図である。図４に示すように、本実施例における生成装置１００は、外部Ｉ／Ｆ１１０と、記憶部１２０と、制御部１３０とを有する。なお、以下において、インタフェースを「Ｉ／Ｆ」と表記する場合がある。
【００２５】
外部Ｉ／Ｆ１１０は、有線又は無線を問わず、生成装置１００のユーザの端末（不図示）など、その他のコンピュータ等との通信を制御する。外部Ｉ／Ｆ１１０は、例えばＮＩＣ（Network  Interface  Card）等の通信インタフェース等であるが、これに限られず、表示装置（不図示）や操作デバイス（不図示）とのインタフェースであってもよい。
【００２６】
記憶部１２０は、プログラムやデータを記憶する記憶装置の一例であり、例えばメモリやプロセッサなどである。記憶部１２０は、ビットフィルタ１２１、動的辞書１２２、符号化データ１２３、種別テーブル１２４及びバッファ１２５を有する。
【００２７】
ビットフィルタ１２１は、文字列と、対応する静的符号又は動的符号とを対応付けて記憶する。以下において、ビットフィルタ１２１は、超高頻度単語と静的符号とを対応付ける静的ビットフィルタ１２１ａと、その他の単語と動的符号とを対応付ける動的ビットフィルタ１２１ｂとを含むものとする。図５は、実施例１における静的ビットフィルタの一例を示す図である。
【００２８】
図５に示すように、静的ビットフィルタ１２１ａは、例えば、「２グラム」と、「ビットマップ」と、「第１ポインタ」と、「単語」と、「静的符号」とを対応付けて記憶する。なお、静的ビットフィルタ１２１ａに記憶される情報は、例えば外部のデータベースから予め入力される。また、静的ビットフィルタ１２１ａは、第３の辞書の一例である。
【００２９】
静的ビットフィルタ１２１ａにおいて、「２グラム」は、２文字の文字列（あるいは２つの単語）を示す情報である。「ビットマップ」は、２グラムの文字列に対応するビットマップを示す。例えば、「ａｂ」に対応するビットマップは「１＿０＿０＿０＿０」となる。これは、文字列「ａｂ」を１文字目と２文字目に含む単語を示す。
【００３０】
第１ポインタは、ビットマップに対応する静的符号の位置を示すポインタである。第１ポインタは、２グラムに記憶された文字列を先頭部分に含む単語が記憶された場所を示すポインタが、単語の文字数ごとに記憶される。例えば、単語「Able」のポインタは、２グラムが「ab」であり、ビットマップが「１＿０＿０＿０＿０」であるレコードにおける。第１ポインタの（４）に記憶される。
【００３１】
静的符号は、当該単語に対応する静的符号を記憶する。図５に示すように、静的ビットフィルタ１２１ａは、例えば単語「able」の静的符号は「６００５ｈ」であることを記憶する。
【００３２】
動的ビットフィルタ１２１ｂは、図６に示すように、動的辞書１２２に記憶される情報との間でポインタにより対応付けられる。図６は、実施例１における動的辞書に関連するデータ構造の一例を示す図である。なお、動的ビットフィルタ１２１ｂに記憶される情報は、例えば後に説明する判定部１３２により入力される。
【００３３】
図６に示すように、動的ビットフィルタ１２１ｂは、例えば、「２グラム」と、「ビットマップ」と、「第１ポインタ」とを対応付けて記憶する。動的ビットフィルタ１２１ｂにおいて、「２グラム」及び「ビットマップ」は、静的ビットフィルタ１２１ａと同様であるため、説明を省略する。動的ビットフィルタ１２１ｂにおいて、「第１ポインタ」は、ビットマップに対応する動的符号の位置を示すポインタである。なお、図６に示すように、実施例１における動的符号は、例えば動的辞書１２２に記憶されるので、動的ビットフィルタ１２１ｂの第１ポインタは、図６に示す動的符号のアドレスを示す。
【００３４】
また、動的ビットフィルタ１２１ｂにおいて、単語「Mickey」のポインタは、２グラムが「mi」であり、文字数が６文字であるので、ビットマップが「１＿０＿０＿０＿０」であるレコードにおける。第１ポインタの（６）に記憶される。なお、例えば「Minnie」も、先頭の文字列及び単語の文字数が「Mickey」と同一であるので、「Mickey」と同じ位置にポインタが記憶される。
【００３５】
動的辞書１２２は、バッファ１２５に記憶される単語のアドレスと、動的符号とを対応付けて記憶する。図６に示すように、動的辞書１２２は、「動的符号」と、「第２ポインタ」と、「連鎖領域」とを対応付けて記憶する。動的辞書１２２に記憶された各動的符号は、図６に示す動的ビットフィルタ１２１ｂの第１ポインタにより特定される。なお、動的辞書１２２に記憶される情報は、例えば後に説明する判定部１３２により入力される。
【００３６】
図６において、「動的符号」は、バッファ１２５に格納された単語に割り当てられた符号である。「第２ポインタ」は、動的符号に対応する単語が格納されたバッファ１２５の位置を示す情報である。例えば、動的符号「Ａ１００ｈ」に対応する第２ポインタは、バッファ１２５に格納された「Mickey」の先頭位置を示す。すなわち、単語「Mickey」は、動的符号「Ａ１００ｈ」に動的符号化されていることを意味する。
【００３７】
動的辞書１２２において、連鎖領域は、動的ビットフィルタ１２１ｂからのポインタの重複により、該当する文字列が連鎖しているか否かを示す情報である。連鎖領域は、当該動的符号に対応する文字列と、２グラム及び文字数が一致する文字列がある場合に、当該文字列に対応する動的符号を記憶する。例えば、動的符号「Ａ１００ｈ」の連鎖領域には「Ａ１０１ｈ」が登録されている。これは、上で述べたように、動的符号「Ａ１００ｈ」に対応する「Ｍｉｃｋｅｙ」と、動的符号「Ａ１０１ｈ」に対応する「Ｍｉｎｎｉｅ」とは、先頭２グラムが「Ｍｉ」であり、かつ、６文字のため、連鎖関係にあることを意味する。なお、該当する文字列等が連鎖していない場合、すなわち先頭の文字列及び単語の文字数が共通する単語が他にない場合には、連鎖領域に「ＮＵＬＬ」が設定される。
【００３８】
また、動的辞書１２２は、単語の属性情報の種別に応じて、複数の部分を含んでもよい。単語の属性情報は、例えば氏名ではないがテキスト中での出現頻度が低い単語である「低頻度単語」、人名などの固有名詞を含む「氏名」、マイナンバーや電話番号などを含む「数値」などを含む。図６に示す例においては、動的辞書１２２は、低頻度単語に対応する部分１２２ａ、氏名に対応する部分１２２ｂ、数値に対応する部分１２２ｃ及びタグに対応する部分１２２ｄを含む。なお、図６に示す部分１２２ａ乃至１２２ｄは一例であり、このほかに「時刻」や「ＵＲＬ」など、その他の種別の単語に対応する部分をさらに含んでもよい。
【００３９】
符号化データ１２３は、入力された対象文章データＦ１を符号化したデータを記憶する。符号化データ１２３は、例えば図２に示すような、ヘッダ部分と本文部分とトレーラ部分とを含む符号化データＦ２を記憶する。なお、符号化データ１２３に記憶される情報は、例えば後に説明する符号化部１３３により入力される。
【００４０】
種別テーブル１２４は、動的符号と単語の属性情報との対応関係を記憶する。図７は、実施例１における種別テーブルの一例を示す図である。図７に示すように、種別テーブル１２４は、「種別」と、「アドレス」と、「属性情報」と、「暗号化」とを対応付けて記憶する。なお、種別テーブル１２４に記憶される情報は、例えば生成装置１００の管理者により予め入力される。
【００４１】
種別テーブル１２４において、「種別」は、単語の属性情報の種別を一意に識別する識別子（Identifier）を示す。「アドレス」は、当該種別の単語の動的符号が記憶されるアドレスを示す。「属性情報」は、「氏名」、「低頻度単語」などの当該種別の属性情報を示す。「暗号化」は、当該種別に対応する動的辞書１２２の部分を暗号化するか否かを示す。
【００４２】
図７に示すように、種別テーブル１２４は、例えば種別「１」の単語は「低頻度単語」であり、対応する動的符号は「Ａ０００ｈ」乃至「Ａ０ＦＦｈ」に記憶されること、及び動的辞書１２２のうち当該アドレスに該当する部分は暗号化されないことを記憶する。一方、種別テーブル１２４は、例えば種別「２」の単語は「氏名」であり、対応する動的符号は「Ａ１００ｈ」乃至「Ａ１ＦＦｈ」に記憶されること、及び動的辞書１２２のうち当該アドレスに該当する部分は暗号化されることを記憶する。また、種別テーブル１２４は、「氏名」、「数値」に加え、「タグ」、「時刻」などの種別も、動的符号と対応付けて記憶する。
【００４３】
バッファ１２５は、動的符号により符号化される前の単語を格納する。図６に示すように、バッファ１２５は、動的辞書１２２に登録された動的符号に対応する単語を記憶する。バッファ１２５に記憶された各単語は、図６に示す動的辞書１２２の第２ポインタにより特定される。なお、バッファ１２５に記憶される情報は、例えば後に説明する判定部１３２により入力される。また、バッファ１２５は、第２の辞書の一例である。
【００４４】
図４に戻って、制御部１３０は、生成装置１００の全体を司る処理部であり、例えばプロセッサなどである。制御部１３０は、受付部１３１、判定部１３２、符号化部１３３、生成部１３４、出力部１３５及び復号処理部１３６を有する。なお、受付部１３１、判定部１３２、符号化部１３３、生成部１３４、出力部１３５及び復号処理部１３６は、プロセッサが有する電子回路の一例やプロセッサが実行するプロセスの一例である。
【００４５】
受付部１３１は、外部Ｉ／Ｆ１１０を通じて、ユーザの端末から対象文章データＦ１の入力を受け付ける。受付部１３１は、受け付けた対象文章データＦ１を、判定部１３２に出力する。
【００４６】
また、受付部１３１は、外部Ｉ／Ｆ１１０を通じて、ユーザの端末からテキストの出力要求を受け付けて、復号処理部１３６に出力する。
【００４７】
判定部１３２は、対象文章データＦ１に含まれる単語が、ビットフィルタ１２１に登録されているか否か、すなわち単語に対応する静的符号又は動的符号が登録されているか否かを判定する。
【００４８】
判定部１３２は、受付部１３１から対象文章データＦ１の入力を受けると、公知の形態素解析技術等により、対象文章データＦ１から単語を抽出する。判定部１３２は、抽出した単語に含まれる２グラムに対応するビットマップと、ビットフィルタ１２１のポインタとを比較して、ビットマップに対応するポインタが示す位置の単語を特定する。判定部１３２は、特定した単語から順に、単語に対応する単語を検索する。
【００４９】
判定部１３２は、静的ビットフィルタ１２１ａにおいて、抽出した単語と同一の単語が存在する場合には、単語が静的ビットフィルタ１２１ａにヒットしたと判定し、判定結果を符号化部１３３に出力する。
【００５０】
判定部１３２は、静的ビットフィルタ１２１ａにおいて、抽出した単語と同一の単語が存在しない場合、単語が動的ビットフィルタ１２１ｂの第１ポインタを通じて、バッファ１２５に抽出した単語と同一の単語が存在するか否かを判定する。判定部１３２は、同一の単語が存在すると判定した場合、単語が動的辞書１２２にヒットしたと判定し、判定結果を符号化部１３３に出力する。
【００５１】
判定部１３２は、同一の単語が存在しないと判定した場合、当該単語の種別を特定し、当該単語に対応する動的符号を、新たに動的辞書１２２の当該種別に対応する部分に登録する。まず、判定部１３２は、公知のパターンマッチング等の技術を用いて、当該単語が低頻度単語、氏名、数値、タグ、時刻等のいずれの種別に対応するかを判定する。判定部１３２は、当該単語を、バッファ１２５に追加するとともに、当該単語のアドレスを示すポインタを動的辞書１２２の第２ポインタに追加する。そして、判定部１３２は、当該単語に対応する動的符号を、動的辞書１２２の当該種別に対応する部分に登録する。
【００５２】
例えば、判定部１３２は、単語「1234567890」に対応する動的符号が動的辞書１２２に登録されていないと判定した場合、当該単語の種別を特定する。判定部１３２は、例えば当該単語の種別が「数値」であると判定した場合、単語「1234567890」をバッファ１２５に追加し、当該単語のアドレスを示すポインタを動的辞書１２２の第２ポインタに追加する。また、判定部１３２は、動的辞書１２２のうち、当該単語の種別「数値」に対応する部分１２２ｃに、当該単語に対応する動的符号を登録する。そして、判定部１３２は、登録した動的符号を、符号化部１３３に出力する。
【００５３】
符号化部１３３は、対象文章データＦ１から抽出された単語を符号化し、符号化したデータを符号化データ１２３に記憶する。符号化部１３３は、単語が静的ビットフィルタ１２１ａにヒットしたという判定結果の出力を受けた場合、当該単語に対応する静的符号を静的ビットフィルタ１２１ａから抽出して、単語を符号化する。
【００５４】
また、符号化部１３３は、単語が動的辞書１２２にヒットしたという判定結果の出力を受けた場合、当該単語に対応する動的符号を動的辞書１２２から抽出して、単語を符号化する。さらに、符号化部１３３は、新たに登録された動的符号の出力を受けた場合、当該動的符号を用いて単語を符号化する。
【００５５】
生成部１３４は、符号化されたデータに、一部又は全部が暗号化された動的辞書１２２を添付して、符号化データ１２３に記憶されるデータを生成する。生成部１３４は、対象文章データＦ１に含まれる全ての単語について符号化が完了した場合、動的辞書１２２に含まれる各部分１２２ａ乃至１２２ｄのうち、例えば種別テーブル１２４に暗号化することが記憶されている部分を、公知のＡＥＳ等のブロック暗号化により暗号化する。本実施例において、生成部１３４は、氏名に対応する部分１２２ｂ及び数値に対応する部分１２２ｃを暗号化する。そして、生成部１３４は、暗号化された部分１２２ｂ及び１２２ｃと、暗号化されていない部分１２２ａ及び１２２ｄとを有する動的辞書をトレーラ部分に含む符号化データＦ２を、符号化データ１２３に記憶する。
【００５６】
復号処理部１３６は、ユーザによる出力要求に応じて、符号化データ１２３に記憶されたテキストを伸長して出力する。復号処理部１３６は、受付部１３１から、対象データのＩＤを含むテキストの出力要求の出力を受けると、符号化データ１２３から、出力要求に対応する符号化データを取得する。復号処理部１３６は、例えば符号化データ１２３に含まれるデータのヘッダ部分を参照し、テキストの出力要求に含まれるＩＤと一致する符号化データを抽出する。
【００５７】
復号処理部１３６は、出力要求を送信したユーザの個人情報に対するアクセス権限を特定する。復号処理部１３６は、ユーザがアクセス権限を有すると判定した場合、抽出した符号化データに含まれる、動的辞書の暗号化された部分１２２ｂ及び１２２ｃを復号する。そして、復号された部分を含む動的辞書１２２を用いて、符号化データから抽出したデータの本文を伸長し、外部Ｉ／Ｆ１１０を通じてユーザの端末に出力する。
【００５８】
一方、復号処理部１３６は、ユーザがアクセス権限を有しないと判定した場合、例えば動的辞書１２２の暗号化された部分１２２ｂ及び１２２ｃを復号せずに、動的辞書１２２を用いて、符号化データから抽出したデータの本文を伸長する。すなわち、復号処理部１３６は、アクセス権限を有しないユーザに対しては、個人情報を含む情報が復号されない形で、符号化データから抽出したデータを伸長し、外部Ｉ／Ｆ１１０を通じてユーザの端末に出力する。この場合において、復号処理部１３６は、図３のテキスト１３００に示すように、個人情報を含む情報をマスキングして出力してもよい。
【００５９】
［処理の流れ］
次に、本実施例における処理について、図８及び図９を用いて説明する。図８は、実施例１における生成処理の一例を示すフローチャートである。図８に示すように、生成装置１００の受付部１３１は、例えば外部Ｉ／Ｆ１１０を通じてユーザの端末からテキストを受け付けるまで待機する（Ｓ１００：Ｎｏ）。受付部１３１は、テキストを受け付けたと判定した場合（Ｓ１００：Ｙｅｓ）、受け付けたテキストを判定部１３２に出力する。
【００６０】
判定部１３２は、受け付けたテキストに含まれる単語を検出する（Ｓ１０１）。次に、判定部１３２は、ビットフィルタ１２１を参照し、検出した単語に対応する静的符号が登録されているか否かを判定する（Ｓ１１０）。
【００６１】
符号化部１３３は、静的符号が登録されていると判定した場合（Ｓ１１０：Ｙｅｓ）、検出した単語を当該静的符号に符号化する（Ｓ１１４）。その後、符号化部１３３は、Ｓ１２０に移行する。
【００６２】
一方、静的符号が登録されていないと判定した場合（Ｓ１１０：Ｎｏ）、判定部１３２は、動的辞書１２２を参照し、検出した単語に対応する動的符号が登録されているか否かを判定する（Ｓ１１１）。
【００６３】
符号化部１３３は、動的符号が登録されていると判定した場合（Ｓ１１１：Ｙｅｓ）、検出した単語を当該動的符号に符号化する（Ｓ１１４）。その後、符号化部１３３は、Ｓ１２０に移行する。
【００６４】
一方、判定部１３２は、動的符号も登録されていないと判定した場合（Ｓ１１１：Ｎｏ）、検出した単語の種別を特定し、符号化部１３３に出力する（Ｓ１１２）。そして、符号化部１３３は、動的辞書１２２に含まれる部分１２２ａ乃至１２２ｄのうち、特定された属性情報に対応する部分に、検出した単語に対応する動的符号を登録し（Ｓ１１３）、Ｓ１１４に進む。
【００６５】
そして、生成部１３４は、全ての単語が検出されたか否かを判定する（Ｓ１２０）。生成部１３４は、全ての単語が検出されていないと判定した場合（Ｓ１２０：Ｎｏ）、Ｓ１０１に戻って処理を繰り返す。
【００６６】
生成部１３４は、全ての単語が検出されたと判定した場合（Ｓ１２０：Ｙｅｓ）、動的辞書１２２のうち、個人情報に対応する部分１２２ｂ及び１２２ｃを暗号化する（Ｓ１２１）。そして、生成部１３４は、符号化されたデータに、動的辞書１２２のうち暗号化された部分のデータ及び暗号化されていない部分のデータを連結したデータを生成し、符号化データ１２３に記憶して（Ｓ１２２）、処理を終了する。
【００６７】
次に、生成された二次元コードの読取処理について説明する。図９は、実施例１における伸長処理の一例を示すフローチャートである。図９に示すように、生成装置１００の受付部１３１は、外部Ｉ／Ｆ１１０を通じて、ユーザの端末からテキストの出力要求を受け付けるまで待機する（Ｓ２００：Ｎｏ）。受付部１３１は、出力要求を受け付けたと判定された場合（Ｓ２００：Ｙｅｓ）、受け付けた出力要求を復号処理部１３６に出力する。
【００６８】
復号処理部１３６は、符号化データ１２３から、出力要求に対応するテキストを取得する（Ｓ２０１）。そして、復号処理部１３６は、出力要求を送信したユーザが、個人情報に対するアクセス権限を有するか否かを判定する（Ｓ２１０）。
【００６９】
復号処理部１３６は、ユーザがアクセス権限を有すると判定した場合（Ｓ２１０：Ｙｅｓ）、動的辞書１２２の暗号化された部分１２２ｂ及び１２２ｃを復号する（Ｓ２１１）。そして、復号処理部１３６は、ビットフィルタ１２１、並びに復号された部分１２２ｂ及び１２２ｃを含む動的辞書１２２を用いて、符号化テキストを伸長し（Ｓ２１３）、Ｓ２１４に移行する。
【００７０】
復号処理部１３６は、ユーザがアクセス権限を有しないと判定した場合（Ｓ２１０：Ｎｏ）、動的辞書１２２の暗号化された部分１２２ｂ及び１２２ｃに対応する符号化データを復号せずにマスキングする（Ｓ２１２）。そして、復号処理部１３６は、ビットフィルタ１２１、並びに暗号化された部分１２２ｂ及び１２２ｃを除く動的辞書１２２を用いて、符号化テキストを伸長する（Ｓ２１３）。
【００７１】
そして、出力部１３５は、伸長されたテキストを外部Ｉ／Ｆ１１０を通じてユーザの端末に出力し（Ｓ２１４）、処理を終了する。
【００７２】
［効果］
以上説明したように、本実施例における生成装置１００は、テキスト情報を受け付け、テキスト情報に含まれる特定の種別の語句を検出する。生成装置１００は、特定の種別の語句を符号化した符号化情報、及び符号化情報と符号化前の特定の種別の語句とを対応付ける第１の辞書を生成する。そして、生成装置１００は、生成した符号化情報を第１の領域に含み、生成した第１の辞書を暗号化した暗号化辞書情報を特定の種別に応じた第２の領域に含むファイルを生成する。これにより、生成装置１００は、テキスト情報に含まれる特定の種別の単語を一括してブロック暗号化できる。
【００７３】
また、生成装置１００は、テキスト情報に含まれる語句が、第２の辞書に予め記憶されているか否かを判定し、特定の種別の語句として、第２の辞書に予め記憶されていないと判定された語句を抽出して、符号化情報及び第１の辞書を生成してもよい。これにより、暗号化する対象の単語に対して、動的に符号を付与できる。
【００７４】
また、生成装置１００は、特定の種別の語句の項目ごとにそれぞれ異なる記憶領域に、特定の種別の語句に対応する符号化情報を記憶してもよい。これにより、種別ごとに暗号化するか否かを区別することができる。
【００７５】
また、生成装置１００は、ファイルを生成する処理は、特定の種別の語句以外の語句と当該語句を符号化した情報とを対応付ける第３の辞書をさらに含むファイルを生成してもよい。これにより、頻出する単語に対して付与される静的符号と、動的符号とを共存させることができる。
【００７６】
また、生成装置１００は、ファイルの出力要求を受け付けた場合に、出力を要求する者のアクセス権限に応じて、特定の種別の語句に対応する符号化情報を復号するか否かを判定してもよい。生成装置１００は、復号すると判定された符号化情報を復号した特定の種別の語句を含むテキスト情報を出力してもよい。これにより、ユーザのアクセス権限に応じて出力する情報を変更するので、情報の漏洩を抑制することができる。
【実施例２】
【００７７】
ところで、実施例１においては、図７に示すような種別テーブル１２４に、動的辞書１２２の各部分のアドレスが予め登録されているが、実施の形態はこれに限られない。例えば、動的符号のデータ長やアドレス領域のサイズが小さい場合、登場する単語の数によっては、動的符号の数が不足することがある。逆に、動的符号のデータ長やアドレス領域のサイズが大きい場合、データ容量が膨大になることがある。
【００７８】
そこで、生成装置１００が、テキストのデータ容量や、登場する特定の種別の単語の数に応じて、例えば、種別テーブル１２４に登録される各部分に対応するアドレスを変更することにより、各部分のアドレス領域のサイズを変更してもよい。また、生成装置１００が、動的符号のデータ長を変更できるような構成であってもよい。
【００７９】
図１０は、動的辞書と暗号化領域との対応関係の一例を示す図（１）である。図１０に示す動的辞書の種別テーブルは、各種別の単語に割り当てられる動的符号が記憶されるアドレスを記憶する。また、動的辞書のバッファ領域に氏名などの文字列が格納され、一括してブロック暗号化が行われる。なお、図１０に示す種別テーブルは、例えば動的符号のデータ長が「２バイト」である例について示す。
【００８０】
図１０において、例えば「低頻度単語」に対応する動的符号は、「Ａ０００ｈ」乃至「Ａ０ＦＦｈ」の領域に記憶される。同様に、例えば「時刻」に対応する動的符号は、「Ａ４００ｈ」乃至「Ａ４ＦＦｈ」の領域に記憶される。この場合において、各領域は、それぞれ「２５６個」の動的符号を記憶することができる。また、図１０における部分３１００は、「Ａ０００ｈ」乃至「Ａ７ＦＦｈ」の領域を、８つの単語の種別それぞれに割り当てていることを示す。
【００８１】
また、動的符号の数が不足する可能性がある場合、生成装置１００は、例えば「ファイルパス」に対応するアドレスを「Ａ５００ｈ」から「Ａ６００ｈ」に変更してもよい。この場合、「時刻」に対応する動的符号が記憶される領域は、「Ａ４００ｈ」乃至「Ａ５ＦＦｈ」まで拡張される。これにより、動的辞書１２２は、「時刻」に対応する動的符号を「５１２個」記憶することができるようになる。
【００８２】
さらに、動的符号に割り当てられる領域に加えて、動的符号のデータ長を変更する構成について、図１１を用いて説明する。図１１は、動的辞書と暗号化領域との対応関係の一例を示す図（２）である。図１１に示す種別テーブルは、例えば動的符号のデータ長が「３バイト」である例について示す。また、図１１における部分３２００は、「Ｆ０００００ｈ」乃至「Ｆ７ＦＦＦＦｈ」の領域を、８つの単語の種別それぞれに割り当てていることを示す。すなわち、部分３２００が示す領域には、部分３１００が示す領域に記憶される動的符号の「２５６倍」の動的符号を記憶することができる。
【００８３】
図１０及び図１１に示すようなアドレスの割当の変更について、図１２を用いて説明する。図１２は、実施例２における符号のシフトの一例を示す図である。図１２において、部分３１００及び３２００は、それぞれ図１０及び図１１における部分３１００及び３２００と同様の領域を示す。例えば、部分３１００に示す領域に記憶された動的符号の記憶先を部分３２００に変更した場合、「２５６倍」の動的符号を記憶することができる。
【００８４】
［効果］
以上説明したように、生成装置１００は、符号化情報を記憶する記憶領域のサイズ及び符号化情報のサイズのうち少なくともいずれかを、特定の種別の語句の出現頻度に基づいて決定してもよい。これにより、動的辞書のデータサイズを最適化できる。
【実施例３】
【００８５】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。例えば、実施例１において、生成装置１００が、動的辞書１２２に含まれる部分１２２ａ乃至１２２ｄについて、それぞれ個別に暗号化するか否かを区別する構成について説明したが、実施の形態はこれに限られない。例えば、生成装置１００の生成部１３４は、動的辞書１２２に含まれる複数の部分を暗号化する際に、部分ごとに異なる暗号化キーを用いてもよい。また、復号処理部１３６は、テキストの出力要求を送信したユーザのアクセス権限を細分化してもよい。そして、復号処理部１３６は、暗号化された動的辞書１２２の部分のうち、ユーザのアクセス権限の段階に応じて、一部だけを復号してもよい。
【００８６】
以上説明したように、生成装置１００は、特定の種別の語句の項目ごとにそれぞれ異なる第１の辞書を生成し、項目ごとに対応する各第１の辞書を、それぞれ異なる暗号化キーを用いて暗号化することにより、暗号化辞書情報を生成する。これにより、語句の種別ごとに復号するか否かを区別することができる。
【００８７】
また、実施例１における生成装置１００は、図３に示すように、単語の種別に応じて、例えばマスキングの種別を変更してもよく、またマスキングの文字数を変更させてもよい。
【００８８】
例えば、出力部１３５は、図３に示すように、氏名に対応する符号１３１２に対応する部分は記号「●」でマスキングし、数値に対応する符号１３１３に対応する部分は記号「×」でマスキングしてもよい。さらに、出力部１３５は、図３において、数値に対応する符号１３１３に対応する部分に記号「×」を４つ出力させているが、実施の形態はこれに限られない。例えば、出力部１３５は、数値を含む部分１１１３に示すように６桁の数値をマスキングする際、数値に対応する符号１３１３に対応する部分に、記号「×」を６つ出力してもよい。
【００８９】
このように、生成装置１００は、復号しないと判定された符号化情報に対応する特定の種別の語句を、当該特定の種別の語句の項目に応じた種別又は文字数でマスキングした文字列を含むテキスト情報を出力してもよい。これにより、語句の項目や長さ等に応じて表示方法を変更できる。
【００９０】
［システム］
また、各実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の一部を手動的におこなうこともできる。あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００９１】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、図４に示す符号化部１３３と生成部１３４とを統合してもよい。また、図４に示す受付部１３１、判定部１３２、符号化部１３３及び生成部１３４と、出力部１３５及び復号処理部１３６とをそれぞれ別々のコンピュータに分散してもよい。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００９２】
また、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することもできる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータシステムの一例を説明する。また、他の実施例における対応する各装置についても同様である。
【００９３】
図１３は、生成プログラムを実行するコンピュータの一例を示す図である。図１３に示すように、コンピュータ４００は、プロセッサ４１０、ＨＤＤ（Hard  Disk  Drive）４２０、Ｉ／Ｆ４３０、メモリ４４０を有する。これら４００〜４４０の各部は、バス５００を介して接続される。
【００９４】
プロセッサ４１０の一例としては、ＣＰＵ（Central  Processing  Unit）、ＤＳＰ（Digital  Signal  Processor）、ＦＰＧＡ（Field  Programmable  Gate  Array）、ＰＬＤ（Programmable  Logic  Device）等が挙げられる。メモリ４４０の一例としては、ＳＤＲＡＭ（Synchronous  Dynamic  Random  Access  Memory）等のＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ等が挙げられる。
【００９５】
ＨＤＤ４２０には上記の生成装置１００の受付部１３１、判定部１３２、符号化部１３３、生成部１３４、出力部１３５及び復号処理部１３６と同様の機能を発揮する生成プログラム４２０ａが予め記憶される。なお、生成プログラム４２０ａについては、適宜分離してもよい。
【００９６】
また、ＨＤＤ４２０は、各種情報を記憶する。例えば、ＨＤＤ４２０は、ＯＳや検索に用いる各種データを記憶する。
【００９７】
Ｉ／Ｆ４３０は、各機能部の説明時に示した外部Ｉ／Ｆ１１０に該当し、例えばネットワークインタフェースカードなどである。
【００９８】
そして、プロセッサ４１０が、生成プログラム４２０ａをＨＤＤ４２０から読み出して実行することで、実施例の各処理部と同様の動作を実行する。すなわち、生成プログラム４２０ａは、受付部１３１、判定部１３２、符号化部１３３、生成部１３４、出力部１３５及び復号処理部１３６と同様の動作を実行する。
【００９９】
なお、上記した生成プログラム４２０ａについては、必ずしも最初からＨＤＤ４２０に記憶させることを要しない。
【０１００】
また、例えば、生成プログラム４２０ａは、コンピュータ４００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に記憶させてもよい。そして、コンピュータ４００がこれらからプログラムを読み出して実行するようにしてもよい。
【０１０１】
さらには、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ４００に接続される「他のコンピュータ（又はサーバ）」などにプログラムを記憶させておく。そして、コンピュータ４００がこれらからプログラムを読み出して実行するようにしてもよい。
【符号の説明】
【０１０２】
１００  生成装置
１１０  外部Ｉ／Ｆ
１２０  記憶部
１２１  ビットフィルタ
１２２  動的辞書
１２３  符号化データ
１２４  種別テーブル
１２５  バッファ
１３０  制御部
１３１  受付部
１３２  判定部
１３３  符号化部
１３４  生成部
１３５  出力部
１３６  復号処理部
【図１】
2019120780.tif 000003
【図２】
2019120780.tif 000004
【図３】
2019120780.tif 000005
【図４】
2019120780.tif 000006
【図５】
2019120780.tif 000007
【図６】
2019120780.tif 000008
【図７】
2019120780.tif 000009
【図８】
2019120780.tif 000010
【図９】
2019120780.tif 000011
【図１０】
2019120780.tif 000012
【図１１】
2019120780.tif 000013
【図１２】
2019120780.tif 000014
【図１３】
2019120780.tif 000015