JP2016042663A - プログラム、情報処理方法、コンピュータ及び情報処理システム - Google Patents

プログラム、情報処理方法、コンピュータ及び情報処理システム Download PDF

Info

Publication number
JP2016042663A
JP2016042663A JP2014166086A JP2014166086A JP2016042663A JP 2016042663 A JP2016042663 A JP 2016042663A JP 2014166086 A JP2014166086 A JP 2014166086A JP 2014166086 A JP2014166086 A JP 2014166086A JP 2016042663 A JP2016042663 A JP 2016042663A
Authority
JP
Japan
Prior art keywords
keyword
encrypted
information processing
computer
encryption
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.)
Pending
Application number
JP2014166086A
Other languages
English (en)
Inventor
芽生恵 牛田
Mebae Ushida
芽生恵 牛田
裕司 山岡
Yuji Yamaoka
裕司 山岡
孝徳 及川
Takanori Oikawa
孝徳 及川
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 JP2014166086A priority Critical patent/JP2016042663A/ja
Publication of JP2016042663A publication Critical patent/JP2016042663A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】キーワードの推定を適切に防止することが可能なプログラム等を提供する。【解決手段】コンピュータ2に、暗号化キーワードをサーバコンピュータ1へ送信し、サーバコンピュータ1が、暗号化キーワード及び該暗号化キーワードに対応する暗号化データの複数の組み合わせを複数のグループにグループ化して記憶した記憶部を参照して、受信した暗号化キーワードに対応するグループを抽出し、該グループに属する複数の暗号化データを送信した場合に、該複数の暗号化データを受信し、受信した暗号化データを復号して、送信した暗号化キーワードに対応するデータを取得する処理を実行させる。【選択図】図1

Description

本発明は、プログラム、情報処理方法、コンピュータ及び情報処理システムに関する。
従来、キーワードを秘匿することによりキーワードの推定を防止する技術が知られている(例えば、非特許文献1及び特許文献1参照)。
Deterministic and Efficiently Searchable Encryption, Mihir Bellare, Alexandra Boldyreva, Adam O’Neill, Advances in Cryptology - CRYPTO 2007, Lecture Notes in Computer Science Volume 4622, 2007, pp 535-552
特開2010−267227号公報
しかしながら、従来の方法ではキーワードの推定を適切に防止することができなかった。
一つの側面では、キーワードの推定を適切に防止することが可能なプログラム等を提供することを目的とする。
本願に開示するプログラムは、コンピュータに、暗号化キーワードを情報処理装置へ送信し、前記情報処理装置が、複数の暗号化キーワードのそれぞれに対応する暗号化データの組み合わせを複数のグループにグループ化して記憶した記憶部から抽出した、受信した前記暗号化キーワードに対応するグループに属する複数の暗号化データを受信し、受信した暗号化データを復号して、送信した暗号化キーワードに対応するデータを取得する処理を実行させる。
一つの側面では、キーワードの推定を適切に防止することが可能となる。
情報処理システムのハードウェア群を示す説明図である。 コンピュータのハードウェア群を示すブロック図である。 サーバコンピュータのハードウェア群を示すブロック図である。 グループファイルのレコードレイアウトを示す説明図である。 暗号化ファイルのレコードレイアウトを示す説明図である。 検索処理の手順を示すフローチャートである。 実施の形態2に係るサーバコンピュータのハードウェア群を示すブロック図である。 管理ファイルのレコードレイアウトを示す説明図である。 暗号化ファイルのレコードレイアウトを示す説明図である。 検索処理の手順を示すフローチャートである。 検索処理の手順を示すフローチャートである。 コンピュータのハードウェア群を示すブロック図である。 バリエーションファイルのレコードレイアウトを示す説明図である。 グループファイルのレコードレイアウトを示す説明図である。 履歴ファイルのレコードレイアウトを示す説明図である。 重みファイルのレコードレイアウトを示す説明図である。 バリエーション数の決定処理手順を示すフローチャートである。 バリエーション数の決定処理手順を示すフローチャートである。 検索処理の手順を示すフローチャートである。 検索処理の手順を示すフローチャートである。 バリエーション数の決定処理手順を示すフローチャートである。 バリエーション数の決定処理手順を示すフローチャートである。 グループファイルのレコードレイアウトを示す説明図である。 生成処理の手順を示すフローチャートである。 上述した形態のサーバコンピュータ及びコンピュータの動作を示す機能ブロック図である。 実施の形態6に係るサーバコンピュータのハードウェア群を示すブロック図である。 実施の形態6に係るコンピュータのハードウェア群を示すブロック図である。
実施の形態1
以下実施の形態を、図面を参照して説明する。図1は情報処理システムのハードウェア群を示す説明図である。情報処理システムは情報処理装置1及びコンピュータ2を含む。情報処置装置1及びコンピュータ2は、インターネット、公衆回線網、またはLAN(Local Area Network)等の通信網Nを介して接続されている。情報処理装置1はサーバコンピュータまたはパーソナルコンピュータ等である。以下では情報処理装置1をサーバコンピュータ1と読み替えて説明する。
コンピュータ2は、例えばサーバコンピュータ、パーソナルコンピュータ、携帯電話、スマートフォン、またはPDA(Personal Digital Assistant)等である。コンピュータ2から検索用のキーワードを入力する。例えば「ねこ」のキーワードを入力する。コンピュータ2は「ねこ」を暗号化し、暗号化したキーワード「ねこ」をサーバコンピュータ1へ送信する。サーバコンピュータ1は暗号化キーワードと当該暗号化キーワードが属するグループを記憶している。
サーバコンピュータ1は暗号化キーワード「ねこ」に対応するグループ1を抽出する。サーバコンピュータ1はグループ1に属する暗号化データを読み出してコンピュータ2へ送信する。この場合、キーワード「きじ」及び「いね」に関する暗号化データもグループ1に属するため送信される。コンピュータ2は受信した暗号化データを復号し、キーワード「ねこ」に対応するデータを抽出する。以下詳細を説明する。
図2はコンピュータ2のハードウェア群を示すブロック図である。コンピュータ2は、サーバコンピュータ、パーソナルコンピュータ、携帯電話、スマートフォン、または、PDA(Personal Digital Assistant)等である。以下ではコンピュータ2をパーソナルコンピュータであるものとして説明する。コンピュータ2は制御部としてのCPU(Central Processing Unit)21、RAM(Random Access Memory)22、入力部23、表示部24、記憶部25、通信部26、及び時計部28等を含む。CPU21は、バス27を介してハードウェア各部と接続されている。CPU21は記憶部25に記憶された制御プログラム25Pに従いハードウェア各部を制御する。RAM22は例えばSRAM(Static RAM)、DRAM(Dynamic RAM)、フラッシュメモリ等である。RAM22は、記憶部としても機能し、CPU21による各種プログラムの実行時に発生する種々のデータを一時的に記憶する。
入力部23はマウスまたはキーボード、マウスまたはタッチパネル等の入力デバイスであり、受け付けた操作情報をCPU21へ出力する。表示部24は液晶ディスプレイまたは有機EL(electroluminescence)ディスプレイ等であり、CPU21の指示に従い各種情報を表示する。通信部26は通信モジュールであり、通信網Nを介してサーバコンピュータ1等との間で情報の送受信を行う。時計部28は日時をCPU21へ出力する。記憶部25はハードディスクまたは大容量メモリであり、制御プログラム25Pを格納している。
図3はサーバコンピュータ1のハードウェア群を示すブロック図である。サーバコンピュータ1は制御部としてのCPU11、RAM12、入力部13、表示部14、記憶部15、通信部16、及び時計部18等を含む。CPU11は、バス17を介してハードウェア各部と接続されている。CPU11は記憶部15に記憶された制御プログラム15Pに従いハードウェア各部を制御する。RAM12は例えばSRAM、DRAM、フラッシュメモリ等である。RAM12は、記憶部としても機能し、CPU11による各種プログラムの実行時に発生する種々のデータを一時的に記憶する。
入力部13はマウスまたはキーボード、マウスまたはタッチパネル等の入力デバイスであり、受け付けた操作情報をCPU11へ出力する。表示部14は液晶ディスプレイまたは有機ELディスプレイ等であり、CPU11の指示に従い各種情報を表示する。通信部16は通信モジュールであり、通信網Nを介してコンピュータ2等との間で情報の送受信を行う。
時計部18は日時をCPU11へ出力する。記憶部15はハードディスクまたは大容量メモリであり、制御プログラム15P、グループファイル151及び暗号化ファイル152等を格納している。なお、実施形態では各ファイルを記憶部15に記憶する例を挙げて説明するが、これに限るものではない。通信網Nを介して接続される他のDBサーバ(図示せず)に記憶しても良い。この場合、サーバコンピュータ1は必要に応じて各DBへアクセスし、情報の読み書きを行う。
図4はグループファイル151のレコードレイアウトを示す説明図である。グループファイル151は確定的暗号化キーワードフィールド及びグループIDフィールド等を含む。実施形態では、平文が同じである場合、暗号文も等しくなる暗号化を確定的暗号化という。また、平文が同じであっても異なる暗号文が生成される暗号化を確率的暗号化という。確定的暗号化キーワードフィールドには、確定的暗号化されたキーワードが記憶されている。
グループIDフィールドには確定的暗号化キーワードに対応付けてグループを特定するための識別情報(以下、グループIDという)が記憶されている。図4の例では、ねこ、きじ、いぬがグループID「g1」に属し、さる、とりがグループID「g2」に属している。グループ数は複数とし、グループ内に属するキーワードも複数とする。なお、キーワードの出現頻度が多い場合は特定のグループについてはキーワードが一つであっても良い。このようにグループファイル151には、異なる複数の確定的暗号化キーワードが同一グループとなるようデータが記憶されている。
図5は暗号化ファイル152のレコードレイアウトを示す説明図である。暗号化ファイル152はグループIDフィールド及び確率的暗号化データフィールド等を含む。確率的暗号化データフィールドには、グループIDに対応付けて、確率的暗号化方式により暗号化された確率的暗号化データが記憶されている。なお、実施形態で示す各ファイルのデータの記憶方式はあくまで一例であり、各データ間の関係が維持されていれば、異なる形態にてデータを記憶するようにしても良い。
コンピュータ2のCPU21は、入力されたキーワードを確定的暗号化する。CPU21は、通信部26を介してサーバコンピュータ1に確定的暗号化したキーワードを送信する。サーバコンピュータ1のCPU11は、通信部16を介して確定的暗号化されたキーワードを受信する。CPU11は、グループファイル151を参照し、受信した確定的暗号化されたキーワードと、確定的暗号化キーワードフィールドに記憶された確定的暗号化キーワードを抽出する。具体的には確定的暗号化により算出されたハッシュ値を比較することにより行う。CPU11は、抽出した確定的暗号化キーワードに対応するグループIDをグループファイル151から抽出する。
CPU11は、暗号化ファイル152を参照し、抽出したグループIDに対応する確率的暗号化データを読み出す。CPU11は、コンピュータ2へ読み出した確率的暗号化データを送信する。コンピュータ2のCPU21は、受信した確率的暗号化データを復号する。CPU21は、復号した複数のデータについて、キーワードを用いた検索を行い、対応するデータを最終的に抽出する。CPU21は、抽出したデータを表示部24に出力する。
以上のハードウェア群において、各ソフトウェア処理を、フローチャートを用いて説明する。図6は検索処理の手順を示すフローチャートである。CPU21は、入力部23からキーワードの入力を受け付ける(ステップS61)。CPU21は、キーワードを確定的暗号化する(ステップS62)。CPU21は、確定的暗号化キーワードをサーバコンピュータ1へ送信する(ステップS63)。CPU11は、確定的暗号化キーワードを受信する(ステップS64)。
CPU11は、グループファイル151を参照し、受信した確定的暗号化キーワードに一致する確定的暗号化キーワードを抽出する(ステップS65)。CPU11は、抽出した確定的暗号化キーワードに対応するグループIDを抽出する(ステップS66)。CPU11は、暗号化ファイル152を参照し、グループIDに属する複数の確率的暗号化データを読み出す(ステップS67)。
CPU11は、読み出した複数の確率的暗号化データをコンピュータ2へ送信する(ステップS68)。CPU21は、複数の確率的暗号化データを受信する(ステップS69)。CPU21は、確率的暗号化データを復号する(ステップS610)。CPU21は、復号した複数のデータに対し、ステップS61で受け付けたキーワードを用いて検索を行う(ステップS611)。CPU21は、検索されたデータを表示部14へ出力する(ステップS612)。これにより、検索キーワードの推定を防止することが可能となる。
実施の形態2
実施の形態2はコンピュータ2側での検索を容易にする形態に関する。図7は実施の形態2に係るサーバコンピュータ1のハードウェア群を示すブロック図である。実施の形態1に加えて管理ファイル153が設けられている。図8は管理ファイル153のレコードレイアウトを示す説明図である。管理ファイル153はグループIDフィールド及びファイルIDフィールド等を含む。ファイルIDフィールドには、ファイル名等、検索対象となるデータを特定するための識別情報(以下、ファイルIDという)が、グループIDに対応付けて記憶されている。
図9は暗号化ファイル152のレコードレイアウトを示す説明図である。暗号化ファイル152はファイルIDフィールド、確率的暗号化データフィールド及び確率的暗号化キーワードフィールド等を含む。確率的暗号化データフィールドには、ファイルIDに対応するデータを確率的暗号化した確率的暗号化データが記憶されている。確率的暗号化キーワードフィールドには、確率的暗号化データ及びファイルIDに対応付けて確率的暗号化キーワードが記憶されている。検索対象となるデータ及び当該データのファイルIDを受け付けた場合、CPU11は、暗号化ファイル152に確率的暗号化した確率的暗号化データ及びファイルIDを記憶する。またCPU11は、当該データの検索に用いられるキーワードについて確率的暗号化を行い、確率的暗号化された確率的暗号化キーワードを対応付けて記憶する。
図10及び11は検索処理の手順を示すフローチャートである。CPU21は、入力部23からキーワードの入力を受け付ける(ステップS91)。CPU21は、キーワードを確定的暗号化する(ステップS92)。CPU21は、確定的暗号化キーワードをサーバコンピュータ1へ送信する(ステップS93)。CPU11は、確定的暗号化キーワードを受信する(ステップS94)。
CPU11は、グループファイル151を参照し、受信した確定的暗号化キーワードに一致する確定的暗号化キーワードを抽出する(ステップS95)。CPU11は、抽出した確定的暗号化キーワードに対応するグループIDを抽出する(ステップS96)。CPU11は、管理ファイル153を参照し、抽出したグループIDに属する複数のファイルIDを読み出す(ステップS97)。CPU11は、暗号化ファイル152を参照し、各ファイルIDに対応する確率的暗号化データ及び確率的暗号化キーワードを読み出す(ステップS98)。
CPU11は、各確率的暗号化データ及び確率的暗号化キーワードをコンピュータ2へ送信する(ステップS99)。コンピュータ2のCPU21は、各確率的暗号化データ及び確率的暗号化キーワードを受信する(ステップS101)。CPU21は、各確率的暗号化キーワードを復号する(ステップS102)。CPU21は、複数の復号されたキーワードの中から、入力されたキーワードに一致する復号されたキーワードを抽出する(ステップS103)。
CPU21は、抽出したキーワード、当該キーワードに対応する確率的暗号化キーワード及び確率的暗号化データとの関係から、抽出したキーワードに対応する確率的暗号化データを復号する(ステップS104)。CPU21は、復号したデータを表示部24に出力する(ステップS105)。これにより、受信した確率的暗号化データの一部を復号すれば良いため、コンピュータ2の処理負担を軽減することが可能となる。
本実施の形態2は以上の如きであり、その他は実施の形態1と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
実施の形態3
実施の形態3はバリエーションキーワードを用いる形態に関する。図12はコンピュータ2のハードウェア群を示すブロック図である。記憶部25に新たにバリエーションファイル251、重みファイル252及び履歴ファイル253が設けられている。図13はバリエーションファイル251のレコードレイアウトを示す説明図である。バリエーションファイル251はキーワードフィールド及びバリエーション数フィールドを含む。バリエーション数フィールドには、キーワードに対応付けて、キーワードに対するバリエーション数が記憶されている。
バリエーション数はキーワードの検索頻度に応じて決定される値である。実施形態では検索頻度が多くなるにつれて生成されるバリエーション数が増加する。図13の例ではキーワード「ねこ」のバリエーション数は2、「うさぎ」のバリエーション数は3である。バリエーションとは、一定の規則によりキーワードを変更したものである。キーワードの前、後ろ、または所定の文字間に、数字若しくは文字を追加する。例えば、バリエーション数が2の場合、CPU11は、キーワード「ねこ」に対して1つめのバリエーション「ねこ1」、2つめのバリエーション「ねこ2」を生成する。以下では、文字または数字の追加を表現する||を用いて、「ねこ||1」、「ねこ||2」と表現する。
文字を追加する場合、「ねこ||A」、「ねこ||B」とアルファベット順に増加させればよい。実施形態では数字をキーワードの後ろに追加する例を挙げて説明する。
図14はグループファイル151のレコードレイアウトを示す説明図である。グループファイル151の確定的暗号化キーワードフィールドには、確定的暗号化されたバリエーションキーワードが記憶されている。図14の例では、確定的暗号化バリエーションキーワードとして、「ねこ||1」及び「ねこ||2」が記憶されている。なお、バリエーション数が1の場合、バリエーションキーワードを用いなくても良い。図14の例では、バリエーション数が1の「いぬ」はバリエーションキーワードが生成されていない。なお、バリエーションキーワード「いぬ||1」を利用しても良い。また、実施の形態1及び2にて説明したキーワードと、本実施形態で述べるバリエーションキーワードとを併用しても良い。
図15は履歴ファイル253のレコードレイアウトを示す説明図である。履歴ファイル253は日時フィールド、キーワードフィールド及び累積回数フィールド等を含む。日時フィールドは検索キーワードを入力部23から受け付けた際の日時を記憶している。キーワードフィールドには日時に対応付けて入力されたキーワードを記憶している。累積回数フィールドにはキーワードに対応付けて、当該キーワードが過去に入力された累積回数を記憶している。なお、累積回数は、所定期間、例えば最近1ヵ月間等に区切った期間での累積回数を計数するようにしても良い。
CPU21は、入力部23からキーワードの入力を受け付ける。CPU21は、時計部28の出力を参照し日時を履歴ファイル253に記憶する。CPU21は、日時に対応付けて入力されたキーワードをキーワードフィールドに記憶する。CPU21は、当該キーワードの検索回数を所定期間分計数し、計数した結果を累積回数フィールドに記憶する。
図16は重みファイル252のレコードレイアウトを示す説明図である。重みファイル252は、検索頻度フィールド及びバリエーション数フィールド等を含む。重みファイル252は検索頻度の多いキーワードほど重み、すなわちバリエーション数が大きくなるよう設定される。CPU21は、キーワードの累積回数に基づき、正規化を行う。重みファイル252には、検索頻度が上位20%以上のキーワードに対してバリエーション数「5」が記憶されている。
重みファイル252には、検索頻度が上位20%未満〜50%以上のキーワードに対してバリエーション数「3」が記憶されており、検索頻度が上位50%未満〜80%以上のキーワードに対してバリエーション数「2」が記憶されている。これら以外についてはバリエーション数が「1」と記憶されている。なお、バリエーション数の決定方法はあくまで一例であり、検索頻度に応じてバリエーション数が増加するのであれば、これに限るものではない。ユーザが入力部13から適宜の値を入力して決定しても良い。また数値例はあくまで一例でありこれに限るものではない。
図17及び図18はバリエーション数の決定処理手順を示すフローチャートである。コンピュータ2のCPU21は、キーワードを受け付ける(ステップS161)。CPU21は、履歴ファイル253に入力された時点の日時、入力されたキーワード及び計数した累積回数を記憶する(ステップS162)。CPU21は、一定時間(例えば1週間)を経過したか否かを判断する(ステップS163)。CPU21は、一定時間を経過していないと判断した場合(ステップS163でNO)、処理をステップS161へ戻す。
CPU21は、一定時間を経過したと判断した場合(ステップS163でYES)、処理をステップS164へ移行させる。なお、一定時間は記憶部25に予め記憶されている。この一定時間は入力部23から適宜の値を入力することが可能である。なお、本実施形態では、一定時間が経過する度に、以下のバリエーション数算出処理を行う例を示すが、これに限るものではない。ステップS163を実行せずに直接ステップS164へ移行しても良い。
CPU21は、履歴ファイル253に記憶されたキーワードの累積回数に基づきソートを行い、各キーワードの順位を決定する(ステップS164)。CPU21は、重みファイル252を参照し、キーワードの順位に基づき、キーワードのバリエーション数を決定する(ステップS165)。CPU21は、キーワードに対応付けてバリエーション数を、バリエーションファイル251に記憶する(ステップS166)。
CPU21は、バリエーション数が2以上のキーワードについてバリエーションキーワードを生成する(ステップS167)。具体的には、CPU21は、キーワードにバリエーション数に応じた数字を順次追加し、バリエーション数分、バリエーションキーワードを生成する。CPU21は、生成した各バリエーションキーワードに対し、確定的暗号化を行い、確定的暗号化バリエーションキーワードを生成する(ステップS168)。
CPU21は、生成した確定的暗号化バリエーションキーワードをサーバコンピュータ1へ送信する(ステップS169)。CPU11は、グループファイル151に、受信した確定的暗号化バリエーションキーワードを、確定的暗号化キーワードに代えて、グループIDに対応付けて記憶する(ステップS171)。なお、新たなキーワードであってバリエーション数が1のキーワードについては、確定的暗号化を行い、確定的暗号化キーワードをグループファイル151に記憶する。またグループIDについてはユーザが入力部13から指定するほか、既に存在するいずれかのグループIDをランダムで付与するようにすればよい。
図19及び図20は検索処理の手順を示すフローチャートである。CPU21は、入力部23からキーワードの入力を受け付ける(ステップS181)。CPU21は、バリエーションファイル251を参照し、入力されたキーワードのバリエーション数を読み出す(ステップS182)。CPU21は、読み出したバリエーション数の中から、ランダムで一のバリエーション値を選択する(ステップS183)。CPU21は、選択したバリエーション値に基づき、バリエーションキーワードを生成する(ステップS184)。なお、CPU21は、予め複数のバリエーションキーワードを生成しておき、その後、一のバリエーションキーワードを選択するようにしても良い。
CPU21は、バリエーションキーワードを確定的暗号化する(ステップS185)。CPU21は、確定的暗号化バリエーションキーワードをサーバコンピュータ1へ送信する(ステップS186)。CPU11は、確定的暗号化バリエーションキーワードを受信する(ステップS187)。
CPU11は、グループファイル151を参照し、受信した確定的暗号化バリエーションキーワードに一致する確定的暗号化バリエーションキーワードを抽出する(ステップS188)。CPU11は、抽出した確定的暗号化バリエーションキーワードに対応するグループIDを抽出する(ステップS189)。CPU11は、管理ファイル153を参照し、抽出したグループIDに属する複数のファイルIDを読み出す(ステップS191)。CPU11は、暗号化ファイル152を参照し、各ファイルIDに対応する確率的暗号化データを読み出す(ステップS192)。CPU11は、各ファイルIDに対応する確率的暗号化キーワードを読み出す(ステップS193)。
CPU11は、各確率的暗号化データ及び確率的暗号化キーワードをコンピュータ2へ送信する(ステップS194)。コンピュータ2のCPU21は、各確率的暗号化データ及び確率的暗号化キーワードを受信する(ステップS195)。CPU21は、各確率的暗号化キーワードを復号する(ステップS196)。CPU21は、入力されたキーワードに一致する復号されたキーワードを抽出する(ステップS197)。
CPU21は、抽出したキーワードに対応する確率的暗号化データを復号する(ステップS198)。CPU21は、復号したデータを表示部24に出力する(ステップS199)。これにより、データまたはキーワードの検索頻度に基づき検索キーワードの推定を防止することが可能となる。
本実施の形態3は以上の如きであり、その他は実施の形態1及び実施の形態2と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
実施の形態4
実施の形態4はキーワードの検索頻度及び検索頻度の平均値に基づき、生成するバリエーションキーワードの数を決定する形態に関する。図21及び図22はバリエーション数の決定処理手順を示すフローチャートである。コンピュータ2のCPU21は、履歴ファイル253からキーワード種類数を読み出す(ステップS211)。CPU21は、係数を設定する(ステップS212)。この係数は0から1の値であり、例えば0.5とする。CPU21は、バリエーション数の最大数を設定する(ステップS213)。この最大数は例えば10とすれば良い。係数及び最大数は入力部23から適宜の値を入力すればよい。
CPU21は、履歴ファイル253を参照し、各キーワードの累積回数を読み出す(ステップS214)。CPU21は、キーワードの累積回数の合計値をキーワードの種類数で除して、平均値を算出する(ステップS215)。CPU21は、履歴ファイル253を参照し、各キーワードの累積回数を小さい順に読み出す(ステップS216)。CPU21は、累積回数が平均値以上であるか否かを判断する(ステップS217)。
CPU21は、累積回数が平均値以上でないと判断した場合(ステップS217でNO)、バリエーション数を1に決定する(ステップS218)。CPU21は、累積回数が平均値以上であると判断した場合(ステップS217でYES)、ステップS219へ移行する。CPU21は、累積回数を候補値で除した値が平均値となる条件を満たす最小の候補値を算出する(ステップS219)。例えば累積回数が10回、平均値が5.3回の場合、候補値は2となる。CPU21は、候補値がバリエーション最大数より大きいか否かを判断する(ステップS221)。
CPU21は、候補値がバリエーション最大数より大きくない場合(ステップS221でNO)、処理をステップS222へ移行させる。CPU21は、バリエーション数を候補値に決定する(ステップS222)。上述した例ではバリエーション数は2となる。CPU21は、候補値がバリエーション最大数より大きいと判断した場合(ステップS221でYES)、処理をステップS223へ移行させる。CPU21は、キーワード種類数に係数を乗じ、乗じた値の整数部分をキーワード種類数に変更する(ステップS223)。
CPU21は、累積回数の多いキーワードからキーワード種類数分の累積回数を抽出する(ステップS224)。上述した例ではキーワード種類数100に係数0.5が乗じられ、キーワード種類数は50に変更される。CPU21は、抽出した累積回数に基づき、平均値を算出し、平均値を更新する(ステップS225)。上述した例では、累積回数の多いキーワード種類数を有するキーワードのキーワード種類数50分の累積回数の平均値を算出する。
ステップS218、ステップS222、及びステップS225の処理後、CPU21は、全てのキーワードについて処理を終了したか否かを判断する(ステップS226)。CPU21は、処理を終了していないと判断した場合(ステップS226でNO)、処理をステップS216へ移行させる。これにより、各キーワードについてのバリエーション数が決定される。CPU21は、全てのキーワードについて処理を終了したと判断した場合(ステップS226でYES)、一連の処理を終了する。これにより、平均値に基づき、バリエーション数を適切な値に設定することが可能となる。また、平均値を算出する母集団を変更することで、検索頻度が多いキーワードについても適切なバリエーション数を決定することが可能となる。
本実施の形態4は以上の如きであり、その他は実施の形態1から実施の形態3と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
実施の形態5
実施の形態5は予め定められた数のバリエーションキーワードとグループとを対応付けておく形態に関する。図23はグループファイル151のレコードレイアウトを示す説明図である。実施の形態5では予め定められたバリエーション最大数分の確定的暗号化バリエーションキーワードを生成しておく。図23の例では、最大数が10であり、10の確定的暗号化バリエーションキーワードがグループファイル151に記憶されている。各確定的暗号化バリエーションキーワードは、グループIDに対応付けられている。
図23の例では、「ねこ||1」、「ねこ||2」・・・「ねこ||10」とする10種類の確定的暗号化バリエーションキーワードが記憶されていることが理解できる。「ねこ||1」、「ねこ||2」・・・「ねこ||10」はグループIDがg1である。同様に、他のキーワードについてもバリエーション最大数分の確定的暗号化バリエーションキーワードが記憶されている。「きじ||1」、「きじ||2」・・・「きじ||10」には、グループIDg2が対応付けられている。実施形態では説明を容易にするために、「ねこ||1」、「ねこ||2」・・・「ねこ||10」、「きじ||1」、「きじ||2」・・・「きじ||10」と順序よく記憶する例を示しているがこれに限るものではない。各レコードをランダムに入れ替えても良い。
図24は生成処理の手順を示すフローチャートである。コンピュータ2のCPU21は、入力部23からバリエーションキーワード最大数を受け付ける(ステップS241)。CPU21は、キーワードを受け付ける(ステップS242)。キーワードは確率的暗号化されたものを受信し、復号するか、または記録媒体で受け取るなど、何らかの方法で受け付けるようにすればよい。CPU21は、バリエーション最大数の分だけ、バリエーションキーワードを生成する(ステップS243)。
CPU21は、生成した各バリエーションキーワードに対し、確定的暗号化し、確定的暗号化バリエーションキーワードを生成する(ステップS244)。CPU21は生成した確定的暗号化バリエーションキーワードをサーバコンピュータ1へ送信する。CPU11は、受信した各確定的暗号化バリエーションキーワードと、グループIDとを対応付けてグループファイル151に記憶する。
これにより、サーバコンピュータ1側で検索頻度に応じたグループファイル151を生成する必要がなくなる。
本実施の形態5は以上の如きであり、その他は実施の形態1から実施の形態4と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
実施の形態6
図25は上述した形態のサーバコンピュータ1及びコンピュータ2の動作を示す機能ブロック図である。CPU11が制御プログラム15Pを実行することにより、サーバコンピュータ1は以下のように動作する。抽出部101は、暗号化キーワード及び該暗号化キーワードに対応する暗号化データの複数の組み合わせを複数のグループにグループ化して記憶した記憶部15を参照して、コンピュータ2から送信された暗号化キーワードに対応するグループを抽出する。データ送信部102は、該グループに属する複数の暗号化データをコンピュータ2へ送信する。
CPU21が制御プログラム25Pを実行することにより、コンピュータ2は以下のように動作する。送信部201は、暗号化キーワードをサーバコンピュータ1へ送信する。
受信部202は、サーバコンピュータ1が、暗号化キーワード及び該暗号化キーワードに対応する暗号化データの複数の組み合わせを複数のグループにグループ化して記憶した記憶部25を参照して、受信した暗号化キーワードに対応するグループを抽出し、該グループに属する複数の暗号化データを送信した場合に、該複数の暗号化データを受信する。取得部203は、受信した暗号化データを復号して、送信した暗号化キーワードに対応するデータを取得する。
図26は実施の形態6に係るサーバコンピュータ1のハードウェア群を示すブロック図である。サーバコンピュータ1を動作させるためのプログラムは、ディスクドライブ等の読み取り部10にCD-ROM、DVD(Digital Versatile Disc)ディスク、メモリーカード、またはUSB(Universal Serial Bus)メモリ等の可搬型記録媒体10Aを読み取らせて記憶部15に記憶しても良い。また当該プログラムを記憶したフラッシュメモリ等の半導体メモリ10Bをサーバコンピュータ1内に実装しても良い。さらに、当該プログラムは、インターネット等の通信網Nを介して接続される他のサーバコンピュータ(図示せず)からダウンロードすることも可能である。以下に、その内容を説明する。
図26に示すサーバコンピュータ1は、上述した各種ソフトウェア処理を実行するプログラムを、可搬型記録媒体10Aまたは半導体メモリ10Bから読み取り、或いは、通信網Nを介して他のコンピュータ(図示せず)からダウンロードする。当該プログラムは、制御プログラム15Pとしてインストールされ、RAM12にロードして実行される。これにより、上述したサーバコンピュータ1として機能する。
図27は実施の形態6に係るコンピュータ2のハードウェア群を示すブロック図である。コンピュータ2を動作させるためのプログラムは、ディスクドライブ等の読み取り部20にCD-ROM、DVDディスク、メモリーカード、またはUSBメモリ等の可搬型記録媒体20Aを読み取らせて記憶部25に記憶しても良い。また当該プログラムを記憶したフラッシュメモリ等の半導体メモリ20Bをコンピュータ2内に実装しても良い。さらに、当該プログラムは、インターネット等の通信網Nを介して接続される他のサーバコンピュータ(図示せず)からダウンロードすることも可能である。以下に、その内容を説明する。
図27に示すコンピュータ2は、上述した各種ソフトウェア処理を実行するプログラムを、可搬型記録媒体20Aまたは半導体メモリ20Bから読み取り、或いは、通信網Nを介して他のコンピュータ(図示せず)からダウンロードする。当該プログラムは、制御プログラム25Pとしてインストールされ、RAM22にロードして実行される。これにより、上述したコンピュータ2として機能する。
本実施の形態6は以上の如きであり、その他は実施の形態1から5と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
以上の実施の形態1乃至6を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
コンピュータに、
暗号化キーワードを情報処理装置へ送信し、
前記情報処理装置が、複数の暗号化キーワードのそれぞれに対応する暗号化データの組み合わせを複数のグループにグループ化して記憶した記憶部から抽出した、受信した前記暗号化キーワードに対応するグループに属する複数の暗号化データを受信し、
受信した暗号化データを復号して、送信した暗号化キーワードに対応するデータを取得する
処理を実行させるプログラム。
(付記2)
キーワード、及び、該キーワードに対応するデータを暗号化し、
暗号化した暗号化キーワード及び暗号化データを前記情報処理装置へ送信し、
前記情報処理装置が暗号化キーワードの受信に対応して、該暗号化キーワードが属するグループ内の複数の暗号化キーワード及び暗号化データを送信した場合に、複数の暗号化キーワード及び暗号化データを受信し、
受信した複数の暗号化キーワードの内、送信した暗号化キーワードに対応する暗号化キーワードを抽出し、
抽出した暗号化キーワードに対応する暗号化データを復号する
処理を実行させる付記1に記載のプログラム。
(付記3)
キーワードの検索頻度に基づき決定される数のバリエーションキーワードを生成し、
キーワードを送信する場合、生成された複数のバリエーションキーワードから選択された一のバリエーションキーワードを暗号化した暗号化バリエーションキーワードを前記情報処理装置へ送信する
処理を実行する付記1または2に記載のプログラム。
(付記4)
前記情報処理装置には、暗号化バリエーションキーワードとグループとが対応付けられており、
前記情報処理装置が暗号化バリエーションキーワードの受信に対応して、該暗号化バリエーションキーワードが属するグループ内の複数の暗号化データを送信した場合に、複数の暗号化データを受信する
付記1から3のいずれか一つに記載のプログラム。
(付記5)
前記情報処理装置には、予め定められた数の暗号化バリエーションキーワードとグループとが対応付けられている
付記4に記載のプログラム。
(付記6)
キーワードの検索頻度が多くなるにつれて生成するバリエーションキーワードの数が増加する
付記3から5のいずれか一つに記載のプログラム。
(付記7)
キーワードの検索頻度及び検索頻度の平均値に基づき、生成するバリエーションキーワードの数を決定する
付記3から5のいずれか一つに記載のプログラム。
(付記8)
コンピュータを用いた情報処理方法において、
暗号化キーワードを情報処理装置へ送信し、
前記情報処理装置が、暗号化キーワード及び該暗号化キーワードに対応する暗号化データの複数の組み合わせを複数のグループにグループ化して記憶した記憶部を参照して、受信した暗号化キーワードに対応するグループを抽出し、該グループに属する複数の暗号化データを送信した場合に、該複数の暗号化データを受信し、
受信した暗号化データを復号して、送信した暗号化キーワードに対応するデータを取得する
情報処理方法。
(付記9)
暗号化キーワードを情報処理装置へ送信する送信部と、
前記情報処理装置が、複数の暗号化キーワードのそれぞれに対応する暗号化データの組み合わせを複数のグループにグループ化して記憶した記憶部から抽出した、受信した前記暗号化キーワードに対応するグループに属する複数の暗号化データを受信する受信部と、
受信した暗号化データを復号して、送信した暗号化キーワードに対応するデータを取得する取得部と
を備えるコンピュータ。
(付記10)
コンピュータ及び情報処理装置を有する情報処理システムにおいて、
前記コンピュータは、
暗号化キーワードを前記情報処理装置へ送信する送信部を備え、
前記情報処理装置は、
複数の暗号化キーワードのそれぞれに対応する暗号化データの組み合わせを複数のグループにグループ化して記憶した記憶部を参照して、コンピュータから送信された暗号化キーワードに対応するグループを抽出する抽出部と、
該グループに属する複数の暗号化データを前記コンピュータへ送信するデータ送信部とを備え、
前記コンピュータは、
受信した暗号化データを復号して、送信した暗号化キーワードに対応するデータを取得する取得部と
を備える情報処理システム。
(付記11)
情報処理装置に、
コンピュータから送信された暗号化キーワードを受信し、
複数の暗号化キーワードのそれぞれに対応する暗号化データの組み合わせを複数のグループにグループ化して記憶した記憶部を参照して、コンピュータから送信された暗号化キーワードに対応するグループを抽出し、
該グループに属する複数の暗号化データを前記コンピュータへ送信する
処理を実行させるプログラム。
(付記12)
暗号化された暗号化キーワード及び暗号化データを前記コンピュータから受信し、
暗号化キーワードの受信に対応して、該暗号化キーワードが属するグループ内の複数の暗号化キーワード及び暗号化データを送信する
処理を実行させる付記11に記載のプログラム。
(付記13)
前記コンピュータにより生成され、検索頻度に基づく数のバリエーションキーワードから選択された一のバリエーションキーワードを暗号化した暗号化バリエーションキーワードを受信する
処理を実行させる付記11または12に記載のプログラム。
(付記14)
前記記憶部には、暗号化バリエーションキーワードとグループとが対応付けられており、
前記コンピュータから送信された暗号化バリエーションキーワードの受信に対応して、該暗号化バリエーションキーワードが属するグループ内の複数の暗号化データを送信する
処理を実行させる付記11から13のいずれか一つに記載のプログラム。
(付記15)
前記記憶部には、予め定められた数の暗号化バリエーションキーワードとグループとが対応付けられている
付記14に記載のプログラム。
(付記16)
コンピュータに、
暗号化キーワードを情報処理装置へ送信し、
前記情報処理装置が、暗号化キーワード及び該暗号化キーワードに対応する暗号化データの複数の組み合わせを複数のグループにグループ化して記憶した記憶部を参照して、受信した暗号化キーワードに対応するグループを抽出し、該グループに属する複数の暗号化データを送信した場合に、該複数の暗号化データを受信し、
受信した暗号化データを復号して、送信した暗号化キーワードに対応するデータを取得する
処理を実行させるプログラム。
(付記17)
暗号化キーワードを情報処理装置へ送信する送信部と、
前記情報処理装置が、暗号化キーワード及び該暗号化キーワードに対応する暗号化データの複数の組み合わせを複数のグループにグループ化して記憶した記憶部を参照して、受信した暗号化キーワードに対応するグループを抽出し、該グループに属する複数の暗号化データを送信した場合に、該複数の暗号化データを受信する受信部と、
受信した暗号化データを復号して、送信した暗号化キーワードに対応するデータを取得する取得部と
を備えるコンピュータ。
(付記18)
コンピュータ及び情報処理装置を有する情報処理システムにおいて、
前記コンピュータは、
暗号化キーワードを前記情報処理装置へ送信する送信部を備え、
前記情報処理装置は、
暗号化キーワード及び該暗号化キーワードに対応する暗号化データの複数の組み合わせを複数のグループにグループ化して記憶した記憶部を参照して、コンピュータから送信された暗号化キーワードに対応するグループを抽出する抽出部と、
該グループに属する複数の暗号化データを前記コンピュータへ送信するデータ送信部とを備え、
前記コンピュータは、
受信した暗号化データを復号して、送信した暗号化キーワードに対応するデータを取得する取得部と
を備える情報処理システム。
(付記19)
情報処理装置に、
コンピュータから送信された暗号化キーワードを受信し、
暗号化キーワード及び該暗号化キーワードに対応する暗号化データの複数の組み合わせを複数のグループにグループ化して記憶した記憶部を参照して、コンピュータから送信された暗号化キーワードに対応するグループを抽出し、
該グループに属する複数の暗号化データを前記コンピュータへ送信する
処理を実行させるプログラム。
1 サーバコンピュータ
10 読み取り部
10A 可搬型記録媒体
10B 半導体メモリ
11 CPU
12 RAM
13 入力部
14 表示部
15 記憶部
15P 制御プログラム
16 通信部
18 時計部
2 コンピュータ
20 読み取り部
20A 可搬型記録媒体
20B 半導体メモリ
21 CPU
22 RAM
23 入力部
24 表示部
25 記憶部
25P 制御プログラム
26 通信部
28 時計部
101 抽出部
102 データ送信部
151 グループファイル
152 暗号化ファイル
153 管理ファイル
201 送信部
202 受信部
203 取得部
251 バリエーションファイル
252 重みファイル
253 履歴ファイル
N 通信網

Claims (7)

  1. コンピュータに、
    暗号化キーワードを情報処理装置へ送信し、
    前記情報処理装置が、複数の暗号化キーワードのそれぞれに対応する暗号化データの組み合わせを複数のグループにグループ化して記憶した記憶部から抽出した、受信した前記暗号化キーワードに対応するグループに属する複数の暗号化データを受信し、
    受信した暗号化データを復号して、送信した暗号化キーワードに対応するデータを取得する
    処理を実行させるプログラム。
  2. キーワード、及び、該キーワードに対応するデータを暗号化し、
    暗号化した暗号化キーワード及び暗号化データを前記情報処理装置へ送信し、
    前記情報処理装置が暗号化キーワードの受信に対応して、該暗号化キーワードが属するグループ内の複数の暗号化キーワード及び暗号化データを送信した場合に、複数の暗号化キーワード及び暗号化データを受信し、
    受信した複数の暗号化キーワードの内、送信した暗号化キーワードに対応する暗号化キーワードを抽出し、
    抽出した暗号化キーワードに対応する暗号化データを復号する
    処理を実行させる請求項1に記載のプログラム。
  3. キーワードの検索頻度に基づき決定される数のバリエーションキーワードを生成し、
    キーワードを送信する場合、生成された複数のバリエーションキーワードから選択された一のバリエーションキーワードを暗号化した暗号化バリエーションキーワードを前記情報処理装置へ送信する
    処理を実行する請求項1または2に記載のプログラム。
  4. コンピュータを用いた情報処理方法において、
    暗号化キーワードを情報処理装置へ送信し、
    前記情報処理装置が、暗号化キーワード及び該暗号化キーワードに対応する暗号化データの複数の組み合わせを複数のグループにグループ化して記憶した記憶部を参照して、受信した暗号化キーワードに対応するグループを抽出し、該グループに属する複数の暗号化データを送信した場合に、該複数の暗号化データを受信し、
    受信した暗号化データを復号して、送信した暗号化キーワードに対応するデータを取得する
    情報処理方法。
  5. 暗号化キーワードを情報処理装置へ送信する送信部と、
    前記情報処理装置が、複数の暗号化キーワードのそれぞれに対応する暗号化データの組み合わせを複数のグループにグループ化して記憶した記憶部から抽出した、受信した前記暗号化キーワードに対応するグループに属する複数の暗号化データを受信する受信部と、
    受信した暗号化データを復号して、送信した暗号化キーワードに対応するデータを取得する取得部と
    を備えるコンピュータ。
  6. コンピュータ及び情報処理装置を有する情報処理システムにおいて、
    前記コンピュータは、
    暗号化キーワードを前記情報処理装置へ送信する送信部を備え、
    前記情報処理装置は、
    複数の暗号化キーワードのそれぞれに対応する暗号化データの組み合わせを複数のグループにグループ化して記憶した記憶部を参照して、コンピュータから送信された暗号化キーワードに対応するグループを抽出する抽出部と、
    該グループに属する複数の暗号化データを前記コンピュータへ送信するデータ送信部とを備え、
    前記コンピュータは、
    受信した暗号化データを復号して、送信した暗号化キーワードに対応するデータを取得する取得部と
    を備える情報処理システム。
  7. 情報処理装置に、
    コンピュータから送信された暗号化キーワードを受信し、
    複数の暗号化キーワードのそれぞれに対応する暗号化データの組み合わせを複数のグループにグループ化して記憶した記憶部を参照して、コンピュータから送信された暗号化キーワードに対応するグループを抽出し、
    該グループに属する複数の暗号化データを前記コンピュータへ送信する
    処理を実行させるプログラム。
JP2014166086A 2014-08-18 2014-08-18 プログラム、情報処理方法、コンピュータ及び情報処理システム Pending JP2016042663A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014166086A JP2016042663A (ja) 2014-08-18 2014-08-18 プログラム、情報処理方法、コンピュータ及び情報処理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014166086A JP2016042663A (ja) 2014-08-18 2014-08-18 プログラム、情報処理方法、コンピュータ及び情報処理システム

Publications (1)

Publication Number Publication Date
JP2016042663A true JP2016042663A (ja) 2016-03-31

Family

ID=55592226

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014166086A Pending JP2016042663A (ja) 2014-08-18 2014-08-18 プログラム、情報処理方法、コンピュータ及び情報処理システム

Country Status (1)

Country Link
JP (1) JP2016042663A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021110861A (ja) * 2020-01-14 2021-08-02 富士通株式会社 制御方法、制御プログラム、および情報処理装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021110861A (ja) * 2020-01-14 2021-08-02 富士通株式会社 制御方法、制御プログラム、および情報処理装置

Similar Documents

Publication Publication Date Title
Wang et al. Searchable encryption over feature-rich data
Muzammal et al. Mining sequential patterns from probabilistic databases
JP5442161B2 (ja) 検索システム、検索システムの検索方法、情報処理装置、検索プログラム、対応キーワード管理装置および対応キーワード管理プログラム
US9633311B2 (en) Decision tree learning
Lin et al. Efficient updating of discovered high-utility itemsets for transaction deletion in dynamic databases
Awad et al. Chaotic searchable encryption for mobile cloud storage
CN102483731A (zh) 具有根据搜索负荷被均衡的指纹数据库的媒体识别系统
van Leeuwen et al. Subjective interestingness of subgraph patterns
CN106649401A (zh) 分布式文件系统中的数据写入方法和装置
EP3511845B1 (en) Encrypted message search method, message transmission/reception system, server, terminal and programme
JP6507657B2 (ja) 類似性判定装置、類似性判定方法および類似性判定プログラム
Handa et al. A cluster based multi-keyword search on outsourced encrypted cloud data
JPWO2011013463A1 (ja) 範囲検索システム、範囲検索方法、及び範囲検索用プログラム
JP2019184852A (ja) データ分析サーバ、データ分析システム、及びデータ分析方法
Hegde et al. Semantic tagging of places based on user interest profiles from online social networks
JP2005050197A (ja) コンピュータ実行可能な次元削減方法、該次元削減方法を実行させるためのプログラム、次元削減装置および該次元削減装置を使用した検索エンジン
CN101635001B (zh) 从数据库提取信息的方法和设备
US20200175022A1 (en) Data retrieval
JP2016042663A (ja) プログラム、情報処理方法、コンピュータ及び情報処理システム
Zhao et al. Secure and efficient product information retrieval in cloud computing
CN107665247B (zh) 一种物品召回方法、装置及电子设备
JP2013069042A (ja) 情報処理装置及び情報処理プログラム
Xue et al. Cuckoo-filter based privacy-aware search over encrypted cloud data
Zhu et al. Customized organization of social media contents using focused topic hierarchy
US11281688B2 (en) Ranking and de-ranking data strings