説明

暗号化値判定方法および判定システム

【課題】暗号化対象値の条件に関する情報を他者に漏洩しない。
【解決手段】サービス提供者サーバ2は、暗号化対象値に対しては、暗号化していない値と、2重暗号を行い、非暗号化対象値に対しては、乱数を生成し、これらの値を対応付けたしきい値判定用データをユーザ端末1へ送信する。ユーザ端末1は、任意の値に対し、前記2重暗号の第1段階の暗号化処理を行うと、しきい値判定用データから、任意の値に対応する値を取得し、暗号化処理の結果およびしきい値判定用データから取得した値をしきい値判定サーバ3へ送信する。しきい値判定サーバ3は、送信された値を、復号化し、当該復号化の結果と、ユーザ端末1における暗号化処理の結果と、を比較し、比較結果をサーバへ送信する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、暗号化された値が所定の条件を満たす値か否かを判定する暗号化値判定方法および判定システムの技術に関する。
【背景技術】
【0002】
情報システムの開発の効率化、運用管理費の低減などを目的に、近年、情報システムを自分で保持せず、外部業者に委託するクラウドと呼ばれる運用管理形態を用いることが脚光を浴びている。このようなクラウドによる運用は、効率化やコスト低減というメリットを有する反面、情報システムを管理する業者が情報システムを利用する者とは異なるため、機密情報を外部業者に預託することに不安が生じる。そのため、事前にデータの不正流出の予防策として暗号技術を活用し、データの機密性を確保する必要がある。
【0003】
しかし、単純な暗号化ではデータに対する検索や値の大小判定、統計処理などは復号可能な者(預託業者)しか実行できず、クラウド業者などの外部の情報システム管理者では処理できなくなる。このことは当初の目的であるコスト低減などに反することになり、対策技術が求められる。
【0004】
このような対策技術のうち、サーバ/クライアントモデルにおいて、クライアントが、サーバに秘匿化したデータを預託しながら、サーバに対し、情報の検索処理を依頼できる暗号化方式が知られている。例えば、非特許文献1や非特許文献2には、このような秘匿検索処理を実現する方式が記載されている。非特許文献1や非特許文献2に記載の技術では、平文と暗号値が一対一の単純な対応関係を有する決定的暗号化方式よりも安全な、平文と暗号値が一対mの複雑な対応関係を有する確率的暗号化方式を採用している。非特許文献1および非特許文献2に記載の技術では、このような確率的暗号化方式を用いることにより、クラウド業者などへの情報漏洩を防ぎながら、かつサーバに預託したデータを安全に検索するための技術が開示されている。
【0005】
また、非特許文献3には、二者間で互いに値を隠したまま大小を比較するプロトコルが記載されている。非特許文献3に記載の技術を、具体値を秘匿したままのしきい値判定に応用する場合、ユーザが入力した値と、しきい値判定するサーバが保持するしきい値の大小比較を行う。その際、ユーザが取り得るすべての値について暗号処理や、通信を行う必要がある。
【先行技術文献】
【非特許文献】
【0006】
【非特許文献1】Dawn Xiaodong Song, David Wagner, Arian Perrig.“Practical Techniques for Searches on Encrypted Data”、[online]、[2011年1月11日検索]、インターネット<URL:http://www.cs.berkeley.edu/~dawnsong/publication.html>
【非特許文献2】Zhiqiang Yang, Sheng Zhong, Rebecca N. Wright.“Privacy-Preserving Queries on Encrypted Data”、[online]、[2011年1月11日検索]、インターネット<URL:http://www.cs.rutgers.edu/~rwright1/Publications/>
【非特許文献3】Yao,A.C.“Protocols for Secure Computation”、[online]、[2011年1月11日検索]、インターネット<URL:http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.103.7844&rep=rep1&type=pdf>
【発明の概要】
【発明が解決しようとする課題】
【0007】
ところで、例えば、会社がある値に関する統計をとるために、ユーザから値に関する情報を取得したい場合がある。例えば、自動車会社が、ある車に関する値を、ユーザから取得して統計するために、まず、自動車整備会社にその値を集めさせ、その値があるしきい値を超えているか否かを自動車整備会社に判定させ、その結果を自動車会社で取得・統計したい場合がある。このような場合、自動車会社は、自動者整備会社にしきい値に関する情報を知られたくないことがある。
【0008】
このような場合、非特許文献1および非特許文献2に記載された技術では、サービス提供者(前記した例では自動車会社)などはサーバに預託する暗号化したデータの完全一致検索しかできず、値の大小比較はできない。つまり、サービス提供者が、ユーザによって送信された値に対し、あるしきい値に対する大小で、その後の処理を決定したい場合、非特許文献1、非特許文献2の検索技術ではユーザから送信される値が取りうるすべての値に対する一致検索を実行することでしかしきい値に対する大小情報を決めることができず、非効率的である。
また、このような処理は判定者(前記した例では自動車整備会社)にユーザの値の情報の多く、またはすべてを開示してしまうことにつながり、安全性の観点から不適である。また、ユーザが送信しうる値の個数が少ない場合、決定性の暗号では通信データの頻度解析により、ユーザの傾向が露呈するおそれがある。
【0009】
また、非特許文献3に記載された技術を、前記したしきい値判定に用いる場合、ユーザの値の情報が多く漏れてしまう。実際、しきい値判定サーバ(前記した例では自動車整備会社に設置されているサーバ)がしきい値を種々に変えながらユーザに比較プロトコルの要求をした場合、ユーザの値の特定まで可能になり、秘匿性が十分保てない。さらに、ユーザが取りうる値が大きくなり、その値の個数が比較的大きい場合、計算量や通信量が膨大になる(個数(または値の最大値)が232の場合、232回の暗号処理と、数ギガバイトのデータ送信が必要となる)。
【0010】
このような背景に鑑みて本発明がなされたのであり、本発明は、暗号化対象値の条件に関する情報を他者に漏洩しないことを課題とする。
【課題を解決するための手段】
【0011】
前記課題を解決するため、本発明は、サーバ、ユーザ端末および判定サーバを有する判定システムにおける暗号化値判定方法であって、
前記サーバは、
(a0)暗号化すべき値が所定のグループに属する値である第1の値か、前記グループには属さない値である第2の値かを判定し、
(a1)前記第1の値に対しては、第1の暗号鍵による暗号化処理を行って、第1の暗号化値を算出し、
(a2)前記第1の暗号化値に対し、第2の暗号鍵による第2の暗号化処理を行って、第2の暗号化値を算出し、前記第1の値と、前記第1の暗号化値と、を判定用データに対応付けて格納し、
(a3)前記第2の値に対しては、ランダムな値を第2の暗号化値として算出し、当該第2の値と、当該第2の暗号化値と、を判定用データに対応付けて格納し、
(a4)前記判定用データと、前記第1の暗号鍵を前記ユーザ端末へ送信し、
(a5)前記第2の暗号鍵を、前記判定サーバへ送信し、
前記ユーザ端末は、
(a6)入力部を介して任意の値が入力されると、前記任意の値が前記第1の値に該当する場合、前記第1の値に対応する前記第2の暗号化値を取得し、前記任意の値が前記第2の値に該当する場合、前記第2の値に対応する前記第2の暗号化値を取得し、
(a7)前記任意の値に対し、前記第1の暗号鍵による前記第1の暗号化処理を行って、第3の暗号化値を算出し、
(a8)前記判定用データから前記任意の値に対応する前記第2の暗号化値を取得し、
(a9)前記第3の暗号化値と、当該取得した第2の暗号化値と、を対とした通信データを前記判定サーバへ送信し、
前記判定サーバは、
(a10)前記ユーザ端末から送信された第2の暗号化値を、前記第2の暗号鍵を用いて、復号化した復号値を算出し、
(a11)前記復号値と、前記第3の暗号化値と、が一致するか否かを判定し、該判定結果を前記第1のサーバへ送信することを特徴とする。
【発明の効果】
【0012】
本発明によれば、暗号化対象値の条件に関する情報を他者に漏洩しないことが可能となる。
【図面の簡単な説明】
【0013】
【図1】本実施形態に係る秘匿しきい値判定システムの構成例を示す図である。
【図2】第1実施形態に係るユーザ端末の構成例を示す図である。
【図3】第1実施形態に係るサービス提供者サーバの構成例を示す図である。
【図4】第1実施形態に係るしきい値判定サーバの構成例を示す図である。
【図5】ユーザ端末、サービス提供者サーバ、しきい値判定サーバのハードウェア構成を示す図である。
【図6】第1実施形態に係るしきい値判定用データ生成処理の手順を示すフローチャートである。
【図7】第1実施形態に係る通信データ生成処理の手順を示すフローチャートである。
【図8】第1実施形態に係るしきい値判定処理の手順を示すフローチャートである。
【図9】第2実施形態に係るユーザ端末の構成例を示す図である。
【図10】第2実施形態に係るサービス提供者サーバの構成例を示す図である。
【図11】第2実施形態に係るしきい値判定用データ生成処理の手順を示すフローチャートである。
【図12】第2実施形態に係る通信データ生成処理の手順を示すフローチャートである。
【図13】第2実施形態に係るしきい値判定処理の手順を示すフローチャートである。
【図14】第3実施形態に係るしきい値判定用データ生成処理の手順を示すきフローチャートである。
【図15】第3実施形態に係る通信データ生成処理の手順を示すフローチャートである。
【図16】第3実施形態に係るしきい値判定処理の手順を示すフローチャートである。
【図17】第4実施形態に係るしきい値判定用データ生成処理の手順を示すきフローチャートである。
【図18】第4実施形態に係る通信データ生成処理の手順を示すフローチャートである。
【図19】第4実施形態に係るしきい値判定処理の手順を示すフローチャートである。
【発明を実施するための形態】
【0014】
次に、本発明を実施するための形態(「実施形態」という)について、適宜図面を参照しながら詳細に説明する。
【0015】
《システム構成》
図1は、本実施形態に係る秘匿しきい値判定システムの構成例を示す図である。図1の構成は、後記する第1〜第4実施形態に共通の構成である。
秘匿しきい値判定システムAは、ユーザ端末1と、サービス提供者サーバ(サーバ)2と、しきい値判定サーバ(判定サーバ)3とがネットワーク4を介して互いに接続された構成となっている。ここで、前記した例を用いると、サービス提供者サーバ2は自動車会社に設置され、しきい値判定サーバ3は自動車整備会社に設置され、ユーザ端末1は自動車のユーザが所有している端末である。
【0016】
ユーザ端末1は、秘匿化した値をしきい値判定サーバ3へ送信する暗号データの生成および送信を行う。サービス提供者サーバ2は、後記する秘匿しきい値判定用の暗号化鍵、復号化鍵およびしきい値判定用データ(判定用データ)の生成、さらにしきい値判定サーバ3によるしきい値判定結果を受信する。しきい値判定サーバ3は、ユーザ端末1が送信した暗号化された通信データを受信し、しきい値判定を実行し、その結果をサービス提供者サーバ2へ送信する。
【0017】
《第1実施形態》
次に、図2〜図8を参照して、本発明に係る第1実施形態を説明する。
(ユーザ端末)
図2は、第1実施形態に係るユーザ端末の構成例を示す図である。
ユーザ端末1は、制御部11と、記憶部12と、情報を入力する入力部13と、情報を出力する出力部14と、外部装置との情報の送受信を行う通信部15とを有する。
【0018】
制御部11は、全体処理部111と、暗号化部112と、基本演算部113とを有する。
全体処理部111は、ユーザ端末1における処理を統括制御したり、入力部13を介して、受け付けた情報を記憶部12に格納したり、サービス提供者サーバ2や、しきい値判定サーバ3との情報を送受信を制御する。
また、全体処理部111は、平文データを、出力部14に表示する処理を行ったり、記憶部12に格納されている平文データを読み込み、それぞれ、暗号化部112や、基本演算部113に平文データの暗号化処理を行わせたり、暗号化された通信データや、ユーザ端末1の属性データや、一時情報を、通信部15を介して、しきい値判定サーバ3(図1)へ送信する。
【0019】
暗号化部112は、平文データと、秘密鍵が入力されると、秘密鍵を用いて暗号化を行い、出力された暗号化データを一時情報として記憶部12に格納する。
なお、暗号化部112は、標準的な共通鍵暗号アルゴリズムの実装により実現可能である。
【0020】
基本演算部113は、加算、減算、比較演算などの基本的な算術演算に関する処理を行う。
【0021】
記憶部12には、通信データと、秘密鍵と、しきい値判定用データと、一時情報が格納されている。
通信データは、平文データと、ユーザ端末1の属性データとを有している。
秘密鍵は、平文データを暗号化する際に用いられる。
しきい値判定用データは、しきい値判定サーバ3にしきい値判定を依頼する際に用いるデータを特定する情報であり、その詳細は後記する。なお、安全性の観点から、しきい値判定用データは、ユーザ端末1において秘密に管理されるべき情報である。
一時情報は、制御部11での処理で一時的に必要となる情報が格納される。
【0022】
(サービス提供者サーバ)
図3は、第1実施形態に係るサービス提供者サーバの構成例を示す図である。
サービス提供者サーバ2は、制御部21と、記憶部22と、情報を入力する入力部23と、情報を出力する出力部24と、外部装置との情報の送受信を行う通信部25とを有する。
【0023】
制御部21は、全体処理部211と、暗号化部212と、復号化部213と、乱数生成部214と、基本演算部215とを有する。
全体処理部211は、サービス提供者サーバ2における処理を統括制御したり、入力部201を介して、入力を受け付けた情報を記憶部22に格納したり、しきい値判定サーバ3や、ユーザ端末1との情報の送受信を制御する。
暗号化部212は、入力されたデータを暗号化する。
例えば、暗号化部212は、平文データと、秘密鍵が入力されたとき、秘密鍵を用いた暗号化処理を行い、暗号化されたデータを一時情報として記憶部22に格納する。
また、例えば、暗号化部212は、暗号化された情報に対し、秘密鍵を用いて、さらに暗号化処理を行い、暗号化されたデータを一時情報として記憶部22に格納する。
なお、暗号化部212は、例えば、標準的な共通鍵暗号アルゴリズムの実装により実現可能である。
【0024】
復号化部213は、暗号化されたデータを復号化する。
例えば、復号化部213は、暗号化された情報と、秘密鍵が入力されたとき、対応する復号化を行い、出力されたデータを一時情報として記憶部22に格納する。
乱数生成部214は、秘密鍵などを用いて擬似乱数を生成する。このとき、秘密鍵のデータ値は、乱数生成部214によって、新しいデータ値に更新され、再び、全体処理部211により記憶部22に格納される。なお、乱数生成部214は、温度、時間、電力量などの物理現象や、乱数生成アルゴリズムを用いて乱数を生成・出力してもよい。
基本演算部215は、加算、減算、比較演算などの基本的な算術演算を行う。
【0025】
記憶部22には、通信データと、秘密鍵と、しきい値判定用データと、一時情報とが格納されている。
通信データは、平文データと、ユーザ端末1の属性データ(図2)を特定する情報であるユーザ属性データとを有している。
秘密鍵は、情報を暗号化する際に用いられる鍵であり、ユーザ端末1や、しきい値判定サーバ3へ送信されるものである。
しきい値判定用データは、しきい値判定サーバ3にしきい値判定を依頼する際に用いるデータを特定する情報であり、その詳細は後記する。なお、安全性の観点から、しきい値判定用データは、ユーザ端末1において秘密に管理されるべき情報である。
一時情報は、制御部21での処理で一時的に必要となる情報が格納される。
【0026】
(しきい値判定サーバ)
図4は、第1実施形態に係るしきい値判定サーバの構成例を示す図である。
しきい値判定サーバ3は、制御部31と、記憶部32と、情報を入力する入力部33と、情報を出力する出力部34と、外部装置との情報の送受信を行う通信部35とを有する。
【0027】
制御部31は、全体処理部311と、暗号化部312と、復号化部313と、基本演算部314と、判定部315とを有する。
全体処理部311は、しきい値判定サーバ3における処理を統括制御したり、ユーザ端末1や、サービス提供者サーバ2との情報の送受信を制御する。
例えば、全体処理部311は、通信部35を介して、ユーザ端末1からデータを受信する処理を行ったり、通信部35を介して、判定部315の出力結果を、サービス提供者サーバ2へ送信する。
復号化部313は、暗号化されたデータを復号化する。
例えば、復号化部313は、暗号化された情報と、秘密鍵が入力されると、対応する復号化を行い、出力されたデータを一時情報として記憶部32に格納する。
暗号化部312は、暗号化処理を行う。なお、しきい値判定サーバ3において、暗号化部312は省略可能である。
基本演算部314は、加算、減算、比較演算などの基本的な算術演算に関する処理を行う。
判定部315は、2つのデータ(値)の一致・不一致を判定し、この判定結果をデータとして出力する。
【0028】
記憶部32には、秘密鍵と、一時情報とが格納されている。
秘密鍵は、ユーザ端末1から送信された暗号化された情報を復号する際に用いられる。
一時情報は、制御部31での処理で必要となる情報である。
【0029】
(ハードウェア構成)
図5は、ユーザ端末、サービス提供者サーバ、しきい値判定サーバであるコンピュータのハードウェア構成を示す図である。
コンピュータ5(つまり、ユーザ端末1、サービス提供者サーバ2、しきい値判定サーバ3)は、CPU(Central Processing Unit)51、メモリ52、HDD(Hard Disk Drive)などの外部記憶装置53、CD(Compact Disk)などのデータを読み取るCDD(Compact Disk Drive)などの読書装置54、キーボードなどの入力装置55、ディスプレイなどの出力装置56、NIC(Network Interface Card)などの通信装置57を有する一般的なPC(Personal Computer)で実現される。
図2〜図4の各部11,111〜113,21,211〜215,31,311〜315は、外部記憶装置53などに格納されているプログラムが、メモリ52に展開され、CPU51によって実行されることにより具現化する。
【0030】
《フローチャート》
(しきい値判定用データ生成処理)
図6は、第1実施形態に係るしきい値判定用データ生成処理の手順を示すフローチャートである。この処理は、サービス提供者サーバ2によって行われる処理である。
【0031】
まず、サービス提供者サーバ2の基本演算部215が、インデックスiを1にセットする(S101)。
次に、基本演算部215は、iが暗号化対象値であるか否かを判定する(S102)。ここで、暗号化対象値とは、サービス提供者が「Yes」と判定してほしい値である(つまり、サービス提供者が情報として取得したい値である)。例えば、nをしきい値としてn以下の値をサービス提供者が「Yes」の判定としてほしい場合は、ステップS102において、基本演算部215がi≦nの判定を行う。また、逆にnをしきい値としてn以上の値をサービス提供者が「Yes」の判定としてほしい場合は、ステップS102において、基本演算部215がi≧nの判定を行う。あるいは、pからq(p<q)の間の値をサービス提供者が「Yes」の判定としてほしい場合は、ステップS102において、基本演算部215がp≦i≦qの判定を行う。または、偶数をサービス提供者が「Yes」の判定としてほしい場合は、ステップS102において、基本演算部215がi=偶数であるか否かの判定を行う。
以下、第1実施形態および第2実施形態において、しきい値とは、暗号化対象値の条件とする。
【0032】
ステップS102の結果、iが暗号化対象値(第1の値)である場合(ステップS102→Yes)、暗号化部212が記憶部22から秘密鍵k1(第1の暗号鍵)を読み出し、iを平文、k1を秘密鍵とした暗号化処理E(k1,i)(第1の暗号化処理)を行って、暗号値e(第1の暗号化値)を算出し(S103)、算出した暗号値eを一時情報として記憶部22に格納する。なお、各装置1〜3において、算出された値は、一時情報として各記憶部12,22,32に格納されるが、以降、この処理に関する記述を省略する。
次に、暗号化部212は、記憶部22から秘密鍵k2(第2の暗号鍵)を読み出すとともに、ステップS103で算出した暗号値eを読み出し、eを平文、k2を秘密鍵とした暗号化処理E(k2,e)(第2の暗号化処理)を行って、暗号値R(第2の暗号化値)を算出する(S104)。つまり、暗号化部212は2重暗号を行う。
【0033】
次に、暗号化部212は、iと、ステップS104で算出した暗号値Rの対(i,R)を記憶部22のしきい値判定用データに加える(S105)。
そして、基本演算部215はiの値に1を加算したものをiとして置き換え(S106)、ステップS102へ処理を戻す。
【0034】
ステップS102の結果、iが暗号化対象値ではない(第2の値)場合(ステップS102→No)、基本演算部215が、i<mであるか否かを判定する(S107)。ここで、mはiがとり得る最大値であり、予めサービス提供者サーバ2に登録されているものである。
ステップS107の結果、i<mである場合(S107→Yes)、乱数生成部214は乱数R(第2の暗号化値)を生成し(S108)、iとステップS108で生成した乱数Riの対(i,R)をしきい値判定用データに加える(S109)。
そして、基本演算部215はiの値に1を加算したものをiとして置き換え(S110)、ステップS102へ処理を戻す。
【0035】
ステップS107の結果、i≧mである場合(S107→No)、全体処理部211はしきい値判定用データと、記憶部22の秘密鍵k1を、他者に情報が漏洩しない方法を用いて、ユーザ端末1へ送付する(S111)。しきい値判定用データおよび秘密鍵k1の送付は、暗号化による送信でもよいし、しきい値判定用データおよび秘密鍵k1を格納した媒体を物理的に送付してもよい。
【0036】
サービス提供者サーバ2から送付されたしきい値判定用データおよび秘密鍵k1を受け取ったユーザ端末1は、しきい値判定用データと秘密鍵k1を記憶部22に格納する。
【0037】
次に、全体処理部211は秘密鍵k2を、他者に情報が漏洩しない方法を用いて、しきい値判定サーバ3へ送付する(S112)。秘密鍵k2の送付は、暗号化による送信でもよいし、秘密鍵k2を格納した媒体を、物理的に送付してもよい。
サービス提供者サーバ2から送付された秘密鍵k2を受け取ったしきい値判定サーバ3は、秘密鍵k2を記憶部22に格納する。
【0038】
(通信データ生成処理)
図7は、第1実施形態に係る通信データ生成処理の手順を示すフローチャートである。この処理は、ユーザ端末1によって行われる処理である。
まず、入力部13を介して、しきい値判定サーバ3で判定してもらう値(判定対象値)jがユーザ端末1に入力される(S201)。
そして、ユーザ端末1の暗号化部112は、記憶部12から、図6のステップS111でサービス提供者サーバ2から送付された秘密鍵k1を読み出し、jを平文、k1を秘密鍵(第1の暗号鍵)とした暗号化処理E(k1,j)(第1の暗号化処理)を行って、暗号値e(第3の暗号化値)を算出する(S202)。
次に、基本演算部113は、図6のステップS111でサービス提供者サーバ2から送付されたしきい値判定用データを参照して、jに対応する暗号値R(第2の暗号化値)を読み出す(S203)。このときの暗号値Rは、ステップS103,S104で算出されたものと、ステップS108で算出されたものの2種類のうち、どちらかの暗号値Rとなる。
そして、全体処理部111は、データの対(e,R)と、記憶部12の属性情報とを通信データとしてしきい値判定サーバ3へ送信する(S204)。
属性情報には、ユーザの識別情報(ID(Identification))や、判定対象値jの識別情報などが含まれる。なお、通信データに属性情報が含まれていなくてもよい。
【0039】
(しきい値判定処理)
図8は、第1実施形態に係るしきい値判定処理の手順を示すフローチャートである。この処理は、しきい値判定サーバ3によって行われる処理である。
まず、しきい値判定サーバ3が、図7のステップS204で送信された通信データ(e,R)を受信する(S301)。
次に、復号化部313は、記憶部32から、図6のステップS112で送付された秘密鍵k2を読み出し、Rを暗号値(第2の暗号化値)、k2を復号鍵(第2の暗号鍵)として復号化処理D(k2,R)を行い、復号値dを算出する(S302)。
そして、判定部315は、e(第3の暗号化値)=dであるか否かを判定する(S303)。
ステップS303の結果、e=dである場合(S303→Yes)、全体処理部311は、判定対象値が暗号化対象値であることを示す「Yes」をサービス提供者サーバ2へ送信する(S304)。
ステップS303の結果、e≠dである場合(S303→No)、全体処理部311は、判定対象値が暗号化対象値でないことを示す「No」をサービス提供者サーバ2へ送信する(S305)。
【0040】
以上の処理を説明すると、図6のしきい値判定用データ生成処理において、暗号化対象値は、暗号化規則に基づいて暗号化している。従って、判定対象値が暗号化対象値であれば、ステップS302で復号された値は、図6のステップS103で算出された値と一致するはずである。
一方、図6のしきい値判定用データ生成処理において、暗号化対象値でない値はランダムな値が割り当てられる。従って、判定対象値が暗号化対象値でなければ、ステップS302で復号された値は、ランダムな値と比較されることになるので、ステップS303で不一致となる。
このようにして、しきい値判定サーバ3は、判定対象値が暗号化対象値であるか否かを判定する。
なお、ステップS304あるいはステップS305の処理において、ユーザ端末1などの属性情報を付加して送信してもよい。
【0041】
(第1実施形態のまとめ)
第1実施形態によれば、ユーザ端末1は、しきい値判定処理のための秘密鍵k2を知らないため、しきい値判定用データを用いても、ユーザ端末1はしきい値判定処理を行うことはできない。そのため、ユーザ端末1のユーザはしきい値(つまり、暗号化対象値となるための条件)を知ることはできない。
一方、しきい値判定サーバ3にはしきい値判定用データを送信されないため、しきい値判定サーバ3のユーザは、しきい値を知ることができない。また、ユーザ端末1が送信するデータの対(e,R)のうち、eは判定対象値jを、しきい値判定サーバ3に送信されていない秘密鍵k1で暗号化した値であるので、しきい値判定サーバ3のユーザは判定対象値jを知ることができない。
従って、サービス提供者(サービス提供者サーバ2のユーザ)は第3者にしきい値を知られることなく、ある値がしきい値以上なのか、以下なのかを知ることができる。
このようにすることで、暗号化対象値に関する情報漏洩のおそれなく外部委託できるため、ユーザ、またはサービス提供者の処理コスト軽減が可能となる。
【0042】
《第2実施形態》
次に、図9〜図13を参照して、本発明の第2実施形態を説明する。
第1実施形態に記載した方法は、しきい値判定が複数回発生する場合、判定対象値jが同じであれば、送信されるデータ対(e,R)も同じとなる。このことが原因となって傾向情報が漏洩するおそれがある。そこで、第2実施形態では送信されるデータ対(e,R)をランダム化した上で、公開鍵準同型暗号(準同型暗号)によって暗号化する。ここで、公開鍵準同型暗号とは、平文m1と、m2に対する暗号値が、それぞれc1、c2である場合、c1・c2がm1*m2に対する暗号値となっている公開鍵暗号方式である。すなわち、暗号化処理Encに対し、Enc(m1*m2)=Enc(m1)・Enc(m2)となる暗号方式である。ここで、「・」と「*」はそれぞれ暗号値空間、平文空間に定義されている、加法や乗法などの演算であり、各公開鍵準同型暗号に依存して決まる。
また、Enc(・)は公開鍵準同型暗号による暗号化処理を示す。公開鍵準同型暗号として、例えば、ElGamal暗号や、楕円ElGamal暗号などを利用することができる。
【0043】
(ユーザ端末)
図9は、第2実施形態に係るユーザ端末の構成例を示す図である。
図9のユーザ端末1aが、図2に示すユーザ端末1と異なる点は、制御部11aが公開鍵準同型暗号方式による暗号化処理を行う公開鍵準同型暗号化部114と、乱数を生成する乱数生成部115を有し、記憶部12aの通信データに、公開鍵準同型暗号化処理に用いる公開準同型暗号鍵を含んでいることである。
その他は、図2に示すユーザ端末1と同様の構成を有するため、図3と同一の符号を付して説明を省略する。
【0044】
(サービス提供者サーバ)
図10は、第2実施形態に係るサービス提供者サーバの構成例を示す図である。
図10に示すサービス提供者サーバ2aが、図3に示すサービス提供者サーバ2と異なる点は、制御部21aが公開鍵準同型暗号方式による暗号化処理を行う公開鍵準同型暗号化部216を有し、記憶部22aの通信データに、公開鍵準同型暗号化処理に用いる公開準同型暗号鍵を含んでいることである。
その他は、図3に示すサービス提供者サーバ2と同様の構成を有するため、図2と同一の符号を付して説明を省略する。
なお、しきい値判定サーバ3は、図4と同様の構成を有するので、同一の符号を付し、図示および説明を省略する。
【0045】
なお、図9および図10の各部11a,111〜115,21a,211〜216も図5における外部記憶装置53などに格納されているプログラムが、メモリ52に展開され、CPU51によって実行されることにより具現化する。
【0046】
《フローチャート》
(しきい値判定用データ生成処理)
図11は、第2実施形態に係るしきい値判定用データ生成処理の手順を示すフローチャートである。この処理は、サービス提供者サーバ2aによって行われる処理である。
この処理が図6の処理と異なっている点は、図6のステップS104に相当する処理において、公開鍵準同型暗号化部216がeを平文、pkを公開準同型暗号鍵とした暗号化処理Enc(pk,e)を行って、暗号値Rを算出している点である(S404)。
また、図6のステップS111に相当する処理において、全体処理部311が、秘密鍵k1とともに、公開準同型暗号鍵pk(第2の暗号鍵)をユーザ端末1へ送付している(S411)点も、図6の処理と異なっている。
また、図6のステップS112の処理において、全体処理部311が、秘密鍵k2の代わりに準同型暗号秘密鍵sk(復号鍵)を、他者に情報が漏洩しない方法を用いて、しきい値判定サーバ3へ送付する(S412)。
その他は、図6の処理と同様であるため、説明を省略する。
【0047】
(通信データ生成処理)
図12は、第2実施形態に係る通信データ生成処理の手順を示すフローチャートである。この処理は、ユーザ端末1aによって行われる処理である。
図12において、ステップS501〜S503の処理は、図7のステップS201〜S203と同様であるため、説明を省略する。
ステップS503の後、乱数生成部115は、乱数rを生成する(S504)。
公開鍵準同型暗号化部114は、図11のステップS411でサービス提供者サーバ2から送付された公開準同型暗号鍵pkを読み出し、乱数rを平文、pkを公開準同型暗号鍵とした暗号化処理Enc(pk,r)を行って、暗号値R(乱数暗号値)を算出しする(S505)。
次に、基本演算部113は、er(第4の暗号化値)=e*rと、Rr(第5の暗号化値)=R・Rを計算する(S506)。ここで、「*」は四則演算における乗算を示し、「・」は暗号空間で定義される乗法を示す。
そして、全体処理部111は、ステップS506で生成したデータの対(er,Rr)と、記憶部12aの属性情報とを通信データとしてしきい値判定サーバ3へ送信する(S507)。
属性情報には、ユーザの識別情報(ID)や、判定対象値jの識別情報などが含まれる。なお、通信データに属性情報が含まれていなくてもよい。
【0048】
(しきい値判定処理)
図13は、第2実施形態に係るしきい値判定処理の手順を示すフローチャートである。この処理は、しきい値判定サーバ3によって行われる処理である。
まず、しきい値判定サーバ3が、図11のステップS507で送信された通信データ(er,Rr)を受信する(S601)。
次に、復号化部313は、記憶部32から図11のステップS412でサービス提供者サーバ2から送信された準同型暗号秘密鍵skを読み出し、Rrを暗号値(第5の暗号化値)、skを復号鍵とした復号化処理Dec(sk、Rr)を行って、復号値dr(実際にはjを暗号化した値)を算出する(S602)。ここで、Dec(・)は公開鍵準同型暗号による復号化処理を示す。
そして、判定部315は、er(第4の暗号化値)=drであるか否かを判定する(S603)。
ステップS603の結果、er=drである場合(S603→Yes)、全体処理部311は、判定対象値が暗号化対象値であることを示す「Yes」をサービス提供者サーバ2へ送信する(S604)。
ステップS603の結果、er≠drである場合(S603→No)、全体処理部311は、判定対象値が暗号化対象値でないことを示す「No」をサービス提供者サーバ2へ送信する(S605)。
なお、ステップS304あるいはステップS305の処理において、ユーザ端末1などの属性情報も付加して送信してもよい。
【0049】
本実施形態では、しきい値判定を複数回行う場合であって、ユーザ端末1から送信される判定対象値jに、頻度などの統計的偏りがあったとしても、ユーザ端末1から送信されるデータ対(er,Rr)は毎回、乱数によるマスクがかけられているため、しきい値判定サーバ3のユーザは、しきい値との比較結果以外の情報を得ることができないので、第1実施形態より、暗号化のレベルを向上することができる。
【0050】
《第3実施形態》
第1実施形態および第2実施形態による方法では、ユーザ端末1による判定対象値jが取りうる値の個数に比例して、しきい値判定用データも大きくなってしまう。
これに対し、第3実施形態および第4実施形態では、判定対象値を適当な桁で分割して、桁ごとでしきい値判定を行い、その結果を基に判定対象値がしきい値より大きいか否か(あるいは、小さいか否か)を判定する方法である。
なお、第1実施形態および第2実施形態では、判定対象値があるグループ(しきい値より大きいや、しきい値より小さいや、ある範囲の値であるかや、偶数であるかなど)に属しているか否かを判定可能であったが、第3実施形態および第4実施形態では、しきい値より大きい、あるいは、しきい値より小さいといった判定のみ可能となる。
【0051】
以下、第3実施形態および第4実施形態における処理手順をフローチャートで説明する。なお、第3実施形態および第4実施形態におけるユーザ端末1、サービス提供者サーバ2およびしきい値判定サーバ3の構成は、第1実施形態で示した構成と同様であるため、図示および説明を省略する。
【0052】
<フローチャート>
(しきい値判定用データ生成処理)
図14は、第3実施形態に係るしきい値判定用データ生成処理の手順を示すきフローチャートである。この処理は、サービス提供者サーバ2によって行われる処理である。
桁数の値としてzが入力部23を介して入力されている。
そして、基本演算部215は、桁のインデックスbを0にセットする(S701)。ここで、桁数とは、判定対象値を2進展開して所定のビット毎に区切ったときの数である。ここで、2進数表現を「・」と表記し、10進数表現を「・」と表記することとする。例えば、判定対象値が「1780」だとすると、この値を2進展開したものは「011011110100」となる。秘匿しきい値判定システムAが4ビット毎に値の判定を行うとすると、前記した値は「0110 1111 0100」と区切られることとなる。本実施形態では、先頭の桁から0桁目(b=0)、1桁目(b=1)、・・・と数えることを定義する。従って、この例において0桁目は「0100」となり、1桁目は「1111」となり、2桁目は「0110」となる。
【0053】
次に、基本演算部215は、b=zである否かを判定する(S702)。
ステップS702の結果、b≠zである場合(S702→No)、基本演算部215が、インデックスiを1にセットする(S703)。
そして、基本演算部215はiを2進展開する。
基本演算部215は、iが、処理対象となっている桁におけるしきい値na以下であるか否かを判定する(S704)。
ここで、naは、各桁におけるしきい値である。しきい値が「1000」であったとすると、このしきい値を2進展開した値は「0011 1110 1000」となる。よって、0桁目(b=0)のna=「1000」=「8」、1桁目(b=1)のna=「1110」=「14」、2桁目(b=2)のna=「0011」=「3」となる。
その後、基本演算部215および暗号化部212がステップS705〜S712の処理を行う。
ステップS705〜S712の処理において、しきい値判定用データに現在処理している桁bが追加されること以外は、図6のステップS103〜S110と同様であるため説明を省略する。
なお、4ビット毎に桁を区切っている場合、ステップS709におけるmは、m=「1111」=「15」である。
【0054】
ステップS709の結果、i>mである場合(S709→No)、基本演算部215は、na<nbであるか否かを判定する(S713)。ここで、nbは各桁におけるしきい値から2を減算した値である。例えば、0桁目におけるしきい値がna=「8」であれば、nb=「6」となる。
ステップS713の結果、na≧nbである場合(S713→No)、基本演算部215はnaの値から1を減算したものをnaとして置き換え(S714)、ステップS704へ処理を戻す。
ステップS713の結果、na<nbである場合(S709→Yes)、基本演算部215はbの値に1を加算したものをbとして置き換え(S715)、ステップS702へ処理を戻す。
ステップS702の結果、b=zである場合(S702→Yes)、全体処理部211は、各桁bのしきい値判定用データと、秘密鍵k1と、桁数zを、他者に情報が漏洩しない方法を用いて、ユーザ端末1へ送付する(S716)。しきい値判定用データおよび秘密鍵k1の送付は、暗号化による送信でもよいし、しきい値判定用データおよび秘密鍵k1を格納した媒体を物理的に送付してもよい。
次に、全体処理部211は秘密鍵k2と、桁数zを、他者に情報が漏洩しない方法を用いて、しきい値判定サーバ3へ送付する(S717)。秘密鍵k2、桁数zの送付は、暗号化による送信でもよいし、秘密鍵k2、桁数zを格納した媒体を、物理的に送付してもよい。
【0055】
ここで、送付されるしきい値判定用データは、各桁毎に2つ送付されることになる。つまり、各桁におけるしきい値の初期値(つまり、naの初期値)をnとすると、nに対応したしきい値判定用データと、n−1に対応したしきい値判定用データである。なお、しきい値判定用データには、どのしきい値に対応する情報が格納されている。例えば、しきい値nに対応するしきい値判定用データには「1」が対応付けられ、しきい値n−1に対応するしきい値判定用データには「2」が対応付けられる。しきい値に対応する情報は、しきい値そのものでなければ、どのような情報でもよい。
【0056】
(通信データ生成処理)
図15は、第3実施形態に係る通信データ生成処理の手順を示すフローチャートである。この処理は、ユーザ端末1によって行われる処理である。
まず、入力部13を介して、判定対象値hがユーザ端末1に入力される(S801)。
次に、基本演算部113がhを2進展開し、aビット毎に分割する(S802)。aはサービス提供者サーバ2から送付されるデータなどに含まれる。
そして、基本演算部113は、桁数を示すインデックスbを0にセットする(S803)。
【0057】
次に、基本演算部113は、nc<ndであるか否かを判定する(S804)。ここで、ncは現在処理している桁のしきい値に関する情報である。図14で説明したように、しきい値判定用データには、桁毎のしきい値(図14におけるnaの初期値をnとしたとき、nであるか、n−1であるか)に関する情報が対応付けられているが、対応付けられている情報はしきい値そのものではない。例えば、しきい値nに対応する情報として「1」、しきい値n−1に対応付けられている情報として「2」がしきい値判定用データに対応付けられているとすると、ncのとり得る値は1,2であり、nd=3となる。
ステップS804の結果、nc<ndである場合(S804→Yes)、基本演算部113は、b=zであるか否かを判定する(S805)。zは、図14のステップS716でサービス提供者サーバ2から送られた桁数zである。
ステップS805の結果、b=zである場合(S805→Yes)、基本演算部113はncの値から1を減算したものをncとして置き換え(S806)、ステップS804へ処理を戻す。ここでは、送付されたしきい値判定用データに対応付けられている桁毎のしきい値の情報が「1」、「2」であることを前提として処理の説明を行っているが、その他の情報を対応付けている場合、ステップS806の処理はそれぞれの処理に対応した処理となる。
【0058】
ステップS805の結果、b≠zである場合(S805→No)、暗号化部112は、hのb桁目の値をjとして、ステップS807、S808の処理を行う。例えば、判定対象値hが「1780」だとすると、この値を2進展開した値は、前記したように「0110 1111 0100」となる。4ビットごとで桁分けして処理している場合、b=1であれば、j=「1111」=「15」となる。
ステップS807、S808の処理は、図7のステップS202、S203と同様であるため説明を省略する。
ステップS808の処理の後、基本演算部113は、bの値に1を加算したものをbとして置き換え(S809)、ステップS804へ処理を戻す。
【0059】
ステップS804の結果、nc≧nbである場合(S804→No)、全体処理部111は、データの対(b,e,R)と、記憶部12の属性情報とを通信データとしてしきい値判定サーバ3へ送信する(S810)。
また、b=0,1,・・・,z−1である。
【0060】
なお、しきい値判定用データには、桁毎のしきい値に関する情報が付与される。ここで付与される情報は、しきい値そのものでなければ、どのような情報でもよいが、ここではしきい値nに対応する情報として「1」、しきい値n−1に対応する情報として「2」を使用することとする。
属性情報には、ユーザの識別情報(ID)や、判定対象値hの識別情報などが含まれる。なお、通信データに属性情報が含まれていなくてもよい。
【0061】
(しきい値判定処理)
図16は、第3実施形態に係るしきい値判定処理の手順を示すフローチャートである。この処理は、しきい値判定サーバ3によって行われる処理である。
まず、しきい値判定サーバ3が、図15のステップS810で送信された通信データ(b,e,R)を受信する(S901)。ここで、b=0,1,・・・,z−1である。
まず、基本演算部314は、桁数を示すインデックスfを0にセットする(S902)。zは、図14のステップS714でサービス提供者サーバ2から送られた桁数zである。
続いて、基本演算部314は、f=zであるか否かを判定する(S903)。
ステップS804の結果、f≠zである場合(S903→No)、復号化部313は、ステップS901で受信した通信データのうち、しきい値nに対応する通信データから現在の桁数のインデックスfに対応している(b=f)Rを抽出し、これをR(1)とし、図8のステップS302と同様の手順で平文d(1)を算出する(S904)。
次に、復号化部313は、しきい値n−1に対応する通信データから現在の桁数のインデックスfに対応している(b=f)Rを抽出し、これをR(2)とし、図8のステップS302と同様の手順で平文d(2)を算出する(S905)。
【0062】
そして、判定部315が、R(1)の抽出元の通信データからeを抽出し、これをe(1)とするとともに、R(2)の抽出元の通信データからeを抽出し、これをe(2)とする。
そして、判定部315は、e(1)=d(1)の判定と、e(2)=d(2)の判定とを行う(S906)。
(1)=d(1)かつe(2)=d(2)であった場合を(OK,OK)と記載し、e(1)≠d(1)かつe(2)≠d(2)であった場合を(NG,NG)と記載する。また、e(1)=d(1)かつe(2)≠d(2)であった場合を(OK,NG)と記載する。なお、後記して説明するように(NG,OK)となることはない。
【0063】
ステップS906の結果、(OK,OK)であった場合(S906→(OK,OK))、全体処理部311は、判定対象値が暗号化対象値であることを示す「Yes」をサービス提供者サーバ2へ送信して(S907)、処理を終了する。
ステップS906の結果、(NG,NG)であった場合(S906→(NG,NG))、全体処理部311は、判定対象値がが暗号化対象値でないことを示す「No」をサービス提供者サーバ2へ送信して(S908)、処理を終了する。
【0064】
ステップS906の結果、(OK,NG)であった場合(S906→(OK,NG))、基本演算部314はfの値に1を加算したものをfとして置き換え(S909)、ステップS903へ処理を戻す。
ステップS903の結果、f=zである場合(S903→Yes)、すべての桁において、e=dであることになるため、全体処理部311は、判定対象値が暗号化対象値であることを示す「Yes」をサービス提供者サーバ2へ送信して(S910)、処理を終了する。
なお、ステップS909あるいはステップS910の処理において、ユーザ端末1などの属性情報も付加して送信してもよい。
【0065】
以上の内容を具体例を使用して説明する。
例として、「1791」(「0110 1111 1111」)が全体のしきい値であるものとする。
なお、ここでは、理解を容易にするため、平文で説明するが、実際には暗号化された値で比較が行われる。
、判定対象値がhを2進展開したときの最初の桁の各値jについて、ステップS906の判定結果のパターンを示すと、以下のようになる。ここで、しきい値nは、「1791」(「0110 1111 1111」)における最初の桁の値(この例では「0110」=「6」)であるものとする。
【0066】
【表1】

【0067】
ここで、最初の桁が「0000〜0101」である場合(つまり、ステップS906の判定結果が(OK,OK)である場合)、判定対象値がhは明らかにしきい値より小さい。従って、これ以降の処理を行うことなく、しきい値判定サーバ3は「Yes」を送信して、処理を終了する(図16のS907に相当)。
また、最初の桁が「0111〜1111」である場合(つまり、ステップS906の判定結果が(NG,NG)である場合)、、判定対象値がhは明らかにしきい値より大きい。従って、これ以降の処理を行うことなく、しきい値判定サーバ3は「No」を送信して、処理を終了する(図16のS908に相当)。
最初の桁が「0110」の場合(つまり、ステップS906の判定結果が(OK,NG)である場合)は、しきい値判定サーバ3は、この桁だけでは、、判定対象値がhが全体のしきい値より大きいか、小さいかを判定することができないので、次の桁について同様の判定を行う(図16のS909に相当)。
なお、この表に示すように、しきい値nによる判定が「NG」となり、しきい値n−1による判定が「OK」となることはない。
【0068】
ここでは、しきい値より小さい値を「Yes」と判定する場合を示したが、しきい値より大きい値を「Yes」と判定したい場合、サービス提供者サーバ2は図14のステップS704の不等号を反転させればよい。また、ある範囲内の値を「Yes」と判定したい場合は、サービス提供者サーバ2はステップS704で、その範囲内にiが入っている場合に図14のステップS704→Yesとし、それ以外はステップS704→Noとすればよい。
【0069】
<第3実施形態のまとめ>
第3実施形態によれば、各桁ごとにしきい値判定用データを用意する必要があるが、各桁での取りうる値の個数を低く抑えられるため(各桁におけるしきい値判定用データが小さいため)、大きな範囲の値を扱う場合でも、しきい値判定用データのデータサイズを小さくすることができる。
【0070】
《第4実施形態》
《フローチャート》
(しきい値判定用データ生成処理)
図17は、第4実施形態に係るしきい値判定用データ生成処理の手順を示すきフローチャートである。この処理は、サービス提供者サーバ2によって行われる処理である。
桁数の値としてzが入力部23を介して入力されている。
そして、基本演算部215は、桁のインデックスbを0にセットする(S1001)。ここで、桁および桁数に関する定義は第3実施形態と同様のものである。
【0071】
次に、基本演算部215は、b=zである否かを判定する(S1002)。
ステップS1002の結果、b=zである場合(S1002→Yes)、基本演算部215が、インデックスiを1にセットする(S1003)。
そして、基本演算部215はiを2進展開する。
基本演算部215は、iが、処理対象となっている桁におけるしきい値na以上であるか否かを判定する(S1004)。ここで、nbは、各桁におけるしきい値である。しきい値が「1000」であったとすると、このしきい値を2進展開した値は「0011 1110 1000」となる。よって、0桁目(b=0)のna=「1000」=「8」、1桁目(b=1)のna=「1110」=「14」、2桁目(b=2)のna=「0011」=「3」となる。
その後、基本演算部215および暗号化部212がステップS1005〜S1012の処理を行う。
ステップS1005〜S1012の処理において、しきい値判定用データに現在処理している桁bが追加されること以外は、図6のステップS113〜S120と同様であるため説明を省略する。
なお、4ビット毎に桁を区切っている場合、ステップS1009におけるmは、m=「1111」=「15」である。
【0072】
ステップS1009の結果、i>mである場合(S1009→No)、基本演算部215はbの値に1を加算したものをbとして置き換え(S1013)、ステップS1002へ処理を戻す。
ステップS1002の結果、b=zである場合(S1002→Yes)、全体処理部211は、各桁bのしきい値判定用データと、秘密鍵k1と、桁数zを、他者に情報が漏洩しない方法を用いて、ユーザ端末1へ送付する(S1014)。しきい値判定用データおよび秘密鍵k1の送付は、暗号化による送信でもよいし、しきい値判定用データおよび秘密鍵k1を格納した媒体を物理的に送付してもよい。
次に、全体処理部211は秘密鍵k2と、桁数zを、他者に情報が漏洩しない方法を用いて、しきい値判定サーバ3へ送付する(S1015)。秘密鍵k2、桁数zの送付は、暗号化による送信でもよいし、秘密鍵k2、桁数zを格納した媒体を、物理的に送付してもよい。
【0073】
(通信データ生成処理)
図18は、第4実施形態に係る通信データ生成処理の手順を示すフローチャートである。この処理は、ユーザ端末1において行われる処理である。
図18のステップS1101〜S1106は、図15のステップS801〜S803,S805〜S808と同様であるので説明を省略する。
ステップS1106の後、暗号化部212は、j+1の場合についても、図15のステップS807,S808と同様の処理を行って、しきい値判定用データからRj+1を読み出す(S1107,S1108)。ここで、jは、第3実施形態と同様、判定対象値におけるb桁目の値である。
【0074】
次に、基本演算部113は、bの値に1を加算したものをbとして置き換え(S1109)、ステップS1104へ処理を戻す。
ステップS1104の結果、b=zである場合(S1104→Yes)、全体処理部211は、(b,e,R)と、(b,ej+1,Rj+1)と、記憶部12の属性情報とを通信データとしてしきい値判定サーバ3へ送信する(S1110)。ここで、b=0,1,・・・,z−1である。
【0075】
(しきい値判定処理)
図19は、第4実施形態に係るしきい値判定処理の手順を示すフローチャートである。この処理は、しきい値判定サーバ3によって行われる処理である。
まず、しきい値判定サーバ3が、図18のステップS1110で送信された通信データ(b,e,R)および(b,ej+1,Rj+1)を受信する(S1201)。ここで、b=0,1,・・・,z−1である。
図19のステップS1202,S1203は、図16のステップS902,S903と同様の処理であるため、説明を省略する。
そして、復号化は、Rを暗号値、図17のステップS1015で送付された秘密鍵k2を復号鍵とした復号化処理D(k2,R)を行い、平文dを算出する(S1204)。
さらに、復号化部313は、Rj+1を暗号値、図17のステップS1015で送付された秘密鍵k2を復号鍵とした復号化処理D(k2,Rj+1)を行い、平文dj+1を算出する(S1205)。
そして、判定部315は、e=dの判定と、ej+1=dj+1の判定とを行う(S1206)。
【0076】
ステップS1206の結果、e=dかつej+1=dj+1であった場合を(OK,OK)と記載し、e≠dかつej+1≠dj+1であった場合を(NG,NG)と記載する。また、e=dかつej+1≠dj+1であった場合を(OK,NG)と記載する
【0077】
ステップS1206の結果、(OK,OK)であった場合(S1206→(OK,OK))、全体処理部311は、判定対象値が暗号化対象値であることを示す「Yes」をサービス提供者サーバ2へ送信して(S1207)、処理を終了する。
ステップS1206の結果、(NG,NG)であった場合(S1206→(NG,NG))、全体処理部311は、判定対象値が暗号化対象値でないことを示す「No」をサービス提供者サーバ2へ送信して(S1208)、処理を終了する。
【0078】
ステップS1206の結果、(OK,NG)であった場合(S1206→(OK,NG))、基本演算部214は、桁数を示すインデックスfの値に1を加算したものをfとして置き換え(S1209)、ステップS1203へ処理を戻す。
ステップS1203の結果、f=zである場合(S1203→Yes)、すべての桁において、e=dであることになるため、全体処理部311は、判定対象値が暗号化対象値であることを示す「Yes」をサービス提供者サーバ2へ送信して(S1210)、処理を終了する。
なお、ステップS1207,S1208あるいはステップS1210の処理において、ユーザ端末1などの属性情報も付加して送信してもよい。
【0079】
以上の内容を具体例を使用して説明する。
そして、「1791」D(「0110 1111 1111」Bが全体のしきい値であるものとする。
なお、ここでは、理解を容易にするため、平文で説明するが、実際には暗号化された値で比較が行われる。
判定対象値hを2進展開したときの最初の桁の各値jについて、ステップS1206の判定結果のパターンを示すと、以下のようになる。ここで、しきい値nは、「1791」(「0110 1111 1111」)における最初の桁の値(この例では「0110」=「6」)である。
【0080】
【表2】

【0081】
ここで、最初の桁の値jが「0000〜0101」である場合(つまり、ステップS1206の判定結果が(OK,OK)である場合)、判定対象値hは明らかにしきい値より小さい。従って、これ以降の処理を行うことなく、しきい値判定サーバ3は「Yes」を送信して、処理を終了する(図19のS1207に相当)。
また、最初の桁の値jが「0111〜1111」である場合(つまり、ステップS1206の判定結果が(NG,NG)である場合)、判定対象値hは明らかにしきい値より大きい。従って、これ以降の処理を行うことなく、しきい値判定サーバ3は「No」を送信して、処理を終了する(図19のS1208に相当)。
最初の桁が「0110」の場合(つまり、ステップS1206の判定結果が(OK,NG)である場合)は、しきい値判定サーバ3は、この桁だけでは、判定対象値hが全体のしきい値より大きいか、小さいかを判定することができないので、次の桁について同様の判定を行う(図19のS1209)に相当。
なお、前記した表示示すように、jについての判定が「NG」で、j+1についての判定が「OK」となることはない。
【0082】
ここでは、しきい値より小さい値を「Yes」と判定する場合を示したが、しきい値より大きい値を「Yes」と判定したい場合、サービス提供者サーバ2は図17のステップS1004の不等号を反転させればよい。また、ある範囲内の値を「Yes」と判定したい場合は、サービス提供者サーバ2はステップS1004で、その範囲内にiが入っている場合に図14のステップS1004→Yesとし、それ以外はステップS1004→Noとすればよい。
【0083】
<第4実施形態についてのまとめ>
第3実施形態では、各桁のしきい値判定用データが、しきい値nに対応したものと、しきい値n−1に対応したものとの2つが必要であるが、第4実施形態によれば、しきい値nに対応したしきい値判定用データ1つを各桁に関して用意すればよいので、第3実施形態の場合と比較して、しきい値判定用データを半分にすることができる。
【0084】
なお、第3実施形態、第4実施形態では、第1実施形態に基づいた処理を説明したが、第2実施形態のように公開鍵準同型暗号(準同型暗号)を用いてもよい。
この場合、サービス提供者サーバ2は、図10に示すサービス提供者サーバ2aと同様の構成となり、ユーザ端末1は、図9に示すユーザ端末1aと同様の処理となる。また、各処理は、以下に記載するような処理となる。
【0085】
(第3実施形態に第2実施形態の公開鍵準同型暗号を用いた場合)
・図14のステップS705〜S708の処理が、図11のステップS403〜S406と同様の処理となり、ステップS711の処理がステップS409と同様の処理となり、、ステップS716,S717の処理がステップS411,S412と同様の処理となる。なお、しきい値判定用サーバに桁数bに関する情報と、しきい値n,n−1に関する情報が加えられるのは当然である。
・図15のステップS807,S808の処理が、図12のステップS502〜S506と同様の処理となり、ステップS810の処理がステップS507において桁数bの情報が加わった処理となる。
・図16のステップS901が、図13のステップS601と同様の処理となり、ステップS904,S905の処理が、それぞれステップS602と同様の処理となる。
【0086】
(第4実施形態に第2実施形態の公開鍵準同型暗号を用いた場合)
・図17のステップS1005〜S1008の処理が、図11のステップS403〜S406と同様の処理となり、ステップS1011の処理がステップS409と同様の処理となり、、ステップS1014,S1015の処理がステップS411,S412と同様の処理となる。なお、しきい値判定用サーバに桁数bに関する情報が加えられるのは当然である。
・図18のステップS1107,S1108の処理が、図12のステップS502〜S506と同様の処理となり、ステップS1110の処理がステップS507において桁数bの情報が加わった処理となる。
・図19のステップS1201が、図13のステップS601と同様の処理となり、ステップS1204,S1205の処理が、それぞれステップS602と同様の処理となる。
【0087】
なお、それぞれの処理は、暗号化対象数値が、しきい値より大きい(以上)場合、あるいはしきい値より小さい(以下)場合のそれぞれに適用可能である。
【0088】
《適用例1》
例えば、第1〜第4実施形態に記載の技術を自動車メーカが、自動車購入者の保持する車両の状態把握のために車両の内部に蓄積している種々の制御データを定期的に収集し、各データについてしきい値判定を行うことに適用することができる。
自動車メーカは、整備や修理について、自動車整備会社に委託し、整備マニュアルなどの情報は提供しているとする。しかし、状態把握のために必要な制御データは自動車メーカにとっては、重要なノウハウであり、そのデータが漏洩することはノウハウを蓄積するために行った投資を無駄にすることになるため、秘匿化して守る必要がある。そのため、車両のデータとしきい値をともに秘匿化しつつ、自動車整備会社において、あるしきい値を超えているか否か判定可能であるような方式が必要となる。
【0089】
この適用例1では、ユーザ端末1は自動車購入者の保持する車両に設置され、サービス提供者サーバ2は自動車メーカに設置され、しきい値判定サーバ3が自動車整備会社に設置されることになる。
自動車メーカに設置されたサービス提供者サーバ2は、第1〜第4実施形態に記載されたいずれかの方法によるしきい値判定用データ生成方法で、制御データに対するしきい値判定用データや、暗号用の各鍵を生成する。
【0090】
車両に設置されているユーザ端末1には販売時にしきい値判定用データや、暗号化のための各鍵などを格納しておき、自動車整備会社に対しては、要請に従って必要なデータ(復号化のための各鍵など)を安全に送信する。このとき、同一の車種について同一の鍵で実施してもよいし、自動車購入者ごとに鍵を変えてもよい。
整備の際には、自動車整備会社のしきい値判定サーバ3は車両のユーザ端末1に対して、しきい値判定に必要な制御データ(通信データ)の生成を要求し、車両のユーザ端末1は第1〜第4実施形態におけるいずれかの通信データ生成処理の手順に従い、制御データ(通信データ)を生成して、自動車整備会社のしきい値判定サーバ3へ通信データを送信する。
【0091】
通信データ送信の方法は、有線/無線による専用回線を介してもよいし、インターネットなどのネットワーク4を介してもよい。
自動車整備会社のしきい値判定サーバ3は第1〜第4実施形態のいずれかのしきい値判定処理を実行し、その結果が「NO」の場合(例えば、しきい値を超えている場合)は、整備マニュアルに従い整備、修理を行うようにする。また、制御データの種類によっては、自動車メーカに連絡してもよい。
【0092】
《適用例2》
また、例えば、第1〜第4実施形態に記載の技術を電力会社が、各家庭における消費電力や、太陽電池パネルなどの発電量に関するデータを収集するために適用してもよい。
この場合、ユーザ端末1は各家庭に設置され、サービス提供者サーバ2は電力会社に設置され、しきい値判定サーバ3は変電所などに設置される。
【符号の説明】
【0093】
1,1a ユーザ端末
2,2a サービス提供者サーバ(サーバ)
3 しきい値判定サーバ(判定サーバ)
12 記憶部(ユーザ端末)
13 入力部(ユーザ端末)
22 記憶部(サービス提供者サーバ)
32 記憶部(しきい値判定サーバ)
111 全体処理部(ユーザ端末)
112 暗号化部(ユーザ端末)
113 基本演算部(ユーザ端末)
114 公開鍵準同型暗号化部(ユーザ端末)
115 乱数生成部(ユーザ端末)
211 全体処理部(サービス提供者サーバ)
212 暗号化部(サービス提供者サーバ)
214 乱数生成部(サービス提供者サーバ)
215 基本演算部(サービス提供者サーバ)
216 公開鍵準同型暗号化部(サービス提供者サーバ)
311 全体処理部(しきい値判定サーバ)
313 復号化部(しきい値判定サーバ)
314 基本演算部(しきい値判定サーバ)
315 判定部(しきい値判定サーバ)
A しきい値判定システム(判定システム)

【特許請求の範囲】
【請求項1】
サーバ、ユーザ端末および判定サーバを有する判定システムにおける暗号化値判定方法であって、
前記サーバは、
(a0)暗号化すべき値が所定のグループに属する値である第1の値か、前記グループには属さない値である第2の値かを判定し、
(a1)前記第1の値に対しては、第1の暗号鍵による暗号化処理を行って、第1の暗号化値を算出し、
(a2)前記第1の暗号化値に対し、第2の暗号鍵による第2の暗号化処理を行って、第2の暗号化値を算出し、前記第1の値と、前記第1の暗号化値と、を判定用データに対応付けて格納し、
(a3)前記第2の値に対しては、ランダムな値を第2の暗号化値として算出し、当該第2の値と、当該第2の暗号化値と、を判定用データに対応付けて格納し、
(a4)前記判定用データと、前記第1の暗号鍵を前記ユーザ端末へ送信し、
(a5)前記第2の暗号鍵を、前記判定サーバへ送信し、
前記ユーザ端末は、
(a6)入力部を介して任意の値が入力されると、前記任意の値が前記第1の値に該当する場合、前記第1の値に対応する前記第2の暗号化値を取得し、前記任意の値が前記第2の値に該当する場合、前記第2の値に対応する前記第2の暗号化値を取得し、
(a7)前記任意の値に対し、前記第1の暗号鍵による前記第1の暗号化処理を行って、第3の暗号化値を算出し、
(a8)前記判定用データから前記任意の値に対応する前記第2の暗号化値を取得し、
(a9)前記第3の暗号化値と、当該取得した第2の暗号化値と、を対とした通信データを前記判定サーバへ送信し、
前記判定サーバは、
(a10)前記ユーザ端末から送信された第2の暗号化値を、前記第2の暗号鍵を用いて、復号化した復号値を算出し、
(a11)前記復号値と、前記第3の暗号化値と、が一致するか否かを判定し、該判定結果を前記第1のサーバへ送信する
ことを特徴とする暗号化値判定方法。
【請求項2】
前記第1の値は、所定のしきい値を超えていない値であり、前記第2の値は、所定のしきい値を超えている値であり、
前記サーバは、
前記しきい値および前記しきい値から1減算した減算しきい値のそれぞれについて、
前記第1の値および前記第2の値を2進数展開し、所定のビット毎に区切った桁毎に、前記(a0)〜(a5)の処理を行い、
前記ユーザ端末は、
前記しきい値および前記しきい値から1減算した減算しきい値のそれぞれについて、
前記任意の値を2進数展開し、所定のビット毎に区切った桁毎に、
前記(a6)〜(a9)の処理を行い、
前記判定サーバは、
前記しきい値から1減算した値である減算しきい値のそれぞれについて、
前記桁毎に、
処理対象となっている桁に関する前記判定用データと、前記通信データと、を基に、前記(a10)および(a11)の処理を行う
ことを特徴とする請求項1に記載の暗号化値判定方法。
【請求項3】
前記第1の値は、所定のしきい値を超えている値であり、前記第2の値は、所定のしきい値を超えていない値であり、
前記サーバは、
前記しきい値および前記しきい値から1減算した減算しきい値のそれぞれについて、
前記第1の値および前記第2の値を2進数展開し、所定のビット毎に区切った桁毎に、前記(a0)〜(a5)の処理を行い、
前記ユーザ端末は、
前記しきい値および前記しきい値から1減算した減算しきい値のそれぞれについて、
前記任意の値を2進数展開し、所定のビット毎に区切った桁毎に、
前記(a6)〜(a9)の処理を行い、
前記判定サーバは、
前記しきい値から1減算した値である減算しきい値のそれぞれについて、
前記桁毎に、
処理対象となっている桁に関する前記判定用データと、前記通信データと、を基に、前記(a10)および(a11)の処理を行う
ことを特徴とする請求項1に記載の暗号化値判定方法。
【請求項4】
前記第1の値は、所定のしきい値を超えていない値であり、前記第2の値は、所定のしきい値を超えている値であり、
前記サーバは、
前記第1の値および前記第2の値を2進数展開し、所定のビット毎に区切った桁毎に、前記(a0)〜(a5)の処理を行い、
前記ユーザ端末は、
前記任意の値を2進数展開し、所定のビット毎に区切った桁毎に、
前記(a6)〜(a9)の処理を行い、
前記桁の値を1加算した値について、
前記桁毎に、
前記(a6)〜(a9)の処理を行い、
前記判定サーバは、
前記桁毎に、
処理対象となっている桁に関し、前記加算を行っていない桁および前記加算した桁のそれぞれについての前記判定用データと、前記通信データと、を基に、前記(a10)の処理を行った後、前記(a11)の処理を行う
ことを特徴とする請求項1に記載の暗号化値判定方法。
【請求項5】
前記第1の値は、所定のしきい値を超えている値であり、前記第2の値は、所定のしきい値を超えていない値であり、
前記サーバは、
前記第1の値および前記第2の値を2進数展開し、所定のビット毎に区切った桁毎に、前記(a0)〜(a5)の処理を行い、
前記ユーザ端末は、
前記任意の値を2進数展開し、所定のビット毎に区切った桁毎に、
前記(a6)〜(a9)の処理を行い、
前記桁の値を1加算した値について、
前記桁毎に、
前記(a6)〜(a9)の処理を行い、
前記判定サーバは、
前記桁毎に、
処理対象となっている桁に関し、前記加算を行っていない桁および前記加算した桁のそれぞれについての前記判定用データと、前記通信データと、を基に、前記(a10)の処理を行った後、前記(a11)の処理を行う
ことを特徴とする請求項1に記載の暗号化値判定方法。
【請求項6】
サーバ、ユーザ端末および判定サーバを有する判定システムにおける暗号化値判定方法であって、
前記サーバは、
(b0)暗号化すべき値が所定のグループに属する値である第1の値か、前記グループには属さない値である第2の値かを判定し、
(b1)前記第1の値に対しては、第1の暗号鍵による暗号化処理を行って、第1の暗号化値を算出し、前記第1の値と、前記第1の暗号化値と、を判定用データに対応付けて格納し、
(b2)前記第1の暗号化値に対し、準同型暗号である第2の暗号鍵による第2の暗号化処理を行って、第2の暗号化値を算出し、当該第2の値と、当該第2の暗号化値と、を判定用データに対応付けて格納し、
(b3)前記第2の値に対しては、ランダムな値を第2の暗号化値として算出し、
(b4)前記判定用データと、前記第1の暗号鍵と、前記第2の暗号鍵を前記ユーザ端末へ送信し、
(b5)前記第2の暗号鍵に対応する復号鍵を、前記判定サーバへ送信し、
前記ユーザ端末は、
(b6)入力部を介して任意の値が入力されると、前記任意の値が前記第1の値に該当する場合、前記第1の値に対応する前記第2の暗号化値を取得し、前記任意の値が前記第2の値に該当する場合、前記第2の値に対応する前記第2の暗号化値を取得し、
(b7)前記任意の値に対し、前記第1の暗号鍵による前記第1の暗号化処理を行って、第3の暗号化値を算出し、
(b8)前記判定用データから前記任意の値に対応する前記第2の暗号化値を取得し、
(b9)乱数を生成し、
(b10)前記乱数を、前記第2の暗号鍵による前記第2の暗号化処理を行って乱数暗号値を算出し、
(b11)前記乱数を、前記第3の暗号化値に乗算した第4の暗号化値を算出し、
(b12)前記乱数暗号化値を、前記取得した第2の暗号化値に乗算した第5の暗号化値を算出し、
(b13)前記第4の暗号化値と、前記第5の暗号化値と、を対とした通信データを前記判定サーバへ送信し、
前記判定サーバは、
(b14)前記ユーザ端末から送信された第5の暗号化値を、前記復号鍵を用いて、復号化した復号値を算出し、
(b15)前記復号値と、前記第4の暗号化値と、が一致するか否かを判定し、該判定結果を前記第1のサーバへ送信する
ことを特徴とする暗号化値判定方法。
【請求項7】
前記第1の値は、所定のしきい値を超えていない値であり、前記第2の値は、所定のしきい値を超えている値であり、
前記サーバは、
前記しきい値および前記しきい値から1減算した減算しきい値のそれぞれについて、
前記第1の値および前記第2の値を2進数展開し、所定のビット毎に区切った桁毎に、前記(b0)〜(b5)の処理を行い、
前記ユーザ端末は、
前記しきい値および前記しきい値から1減算した減算しきい値のそれぞれについて、
前記任意の値を2進数展開し、所定のビット毎に区切った桁毎に、
前記(b6)〜(b13)の処理を行い、
前記判定サーバは、
前記しきい値から1減算した値である減算しきい値のそれぞれについて、
前記桁毎に、
処理対象となっている桁に関する前記判定用データと、前記通信データと、を基に、前記(b14)および(b15)の処理を行う
ことを特徴とする請求項6に記載の暗号化値判定方法。
【請求項8】
前記第1の値は、所定のしきい値を超えている値であり、前記第2の値は、所定のしきい値を超えていない値であり、
前記サーバは、
前記しきい値および前記しきい値から1減算した減算しきい値のそれぞれについて、
前記第1の値および前記第2の値を2進数展開し、所定のビット毎に区切った桁毎に、前記(b0)〜(b5)の処理を行い、
前記ユーザ端末は、
前記しきい値および前記しきい値から1減算した減算しきい値のそれぞれについて、
前記任意の値を2進数展開し、所定のビット毎に区切った桁毎に、
前記(b6)〜(b13)の処理を行い、
前記判定サーバは、
前記しきい値から1減算した値である減算しきい値のそれぞれについて、
前記桁毎に、
処理対象となっている桁に関する前記判定用データと、前記通信データと、を基に、前記(b14)および(b15)の処理を行う
ことを特徴とする請求項6に記載の暗号化値判定方法。
【請求項9】
前記第1の値は、所定のしきい値を超えていない値であり、前記第2の値は、所定のしきい値を超えている値であり、
前記サーバは、
前記第1の値および前記第2の値を2進数展開し、所定のビット毎に区切った桁毎に、前記(b0)〜(b5)の処理を行い、
前記ユーザ端末は、
前記任意の値を2進数展開し、所定のビット毎に区切った桁毎に、
前記(b6)〜(b13)の処理を行い、
前記桁の値を1加算した値について、
前記桁毎に、
前記(b6)〜(b13)の処理を行い、
前記判定サーバは、
前記桁毎に、
処理対象となっている桁に関し、前記加算を行っていない桁および前記加算した桁のそれぞれについての前記判定用データと、前記通信データと、を基に、前記(b14)の処理を行った後、前記(b15)の処理を行う
ことを特徴とする請求項6に記載の暗号化値判定方法。
【請求項10】
前記第1の値は、所定のしきい値を超えている値であり、前記第2の値は、所定のしきい値を超えていない値であり、
前記サーバは、
前記第1の値および前記第2の値を2進数展開し、所定のビット毎に区切った桁毎に、前記(b0)〜(b5)の処理を行い、
前記ユーザ端末は、
前記任意の値を2進数展開し、所定のビット毎に区切った桁毎に、
前記(b6)〜(b13)の処理を行い、
前記桁の値を1加算した値について、
前記桁毎に、
前記(b6)〜(b13)の処理を行い、
前記判定サーバは、
前記桁毎に、
処理対象となっている桁に関し、前記加算を行っていない桁および前記加算した桁のそれぞれについての前記判定用データと、前記通信データと、を基に、前記(b14)の処理を行った後、前記(b15)の処理を行う
ことを特徴とする請求項6に記載の暗号化値判定方法。
【請求項11】
サーバ、ユーザ端末および判定サーバを有する判定システムであって、
前記サーバは、
(a0)暗号化すべき値が所定のグループに属する値である第1の値か、前記グループには属さない値である第2の値かを判定し、
(a1)前記第1の値に対しては、第1の暗号鍵による暗号化処理を行って、第1の暗号化値を算出し、
(a2)前記第1の暗号化値に対し、第2の暗号鍵による第2の暗号化処理を行って、第2の暗号化値を算出し、前記第1の値と、前記第1の暗号化値と、を判定用データに対応付けて格納し、
(a3)前記第2の値に対しては、ランダムな値を第2の暗号化値として算出し、当該第2の値と、当該第2の暗号化値と、を判定用データに対応付けて格納し、
(a4)前記判定用データと、前記第1の暗号鍵を前記ユーザ端末へ送信し、
(a5)前記第2の暗号鍵を、前記判定サーバへ送信し、
前記ユーザ端末は、
(a6)入力部を介して任意の値が入力されると、前記任意の値が前記第1の値に該当する場合、前記第1の値に対応する前記第2の暗号化値を取得し、前記任意の値が前記第2の値に該当する場合、前記第2の値に対応する前記第2の暗号化値を取得し、
(a7)前記任意の値に対し、前記第1の暗号鍵による前記第1の暗号化処理を行って、第3の暗号化値を算出し、
(a8)前記判定用データから前記任意の値に対応する前記第2の暗号化値を取得し、
(a9)前記第3の暗号化値と、当該取得した第2の暗号化値と、を対とした通信データを前記判定サーバへ送信し、
前記判定サーバは、
(a10)前記ユーザ端末から送信された第2の暗号化値を、前記第2の暗号鍵を用いて、復号化した復号値を算出し、
(a11)前記復号値と、前記第3の暗号化値と、が一致するか否かを判定し、該判定結果を前記第1のサーバへ送信する
ことを特徴とする判定システム。
【請求項12】
サーバ、ユーザ端末および判定サーバを有する判定システムであって、
前記サーバは、
(b0)暗号化すべき値が所定のグループに属する値である第1の値か、前記グループには属さない値である第2の値かを判定し、
(b1)前記第1の値に対しては、第1の暗号鍵による暗号化処理を行って、第1の暗号化値を算出し、前記第1の値と、前記第1の暗号化値と、を判定用データに対応付けて格納し、
(b2)前記第1の暗号化値に対し、準同型暗号である第2の暗号鍵による第2の暗号化処理を行って、第2の暗号化値を算出し、当該第2の値と、当該第2の暗号化値と、を判定用データに対応付けて格納し、
(b3)前記第2の値に対しては、ランダムな値を第2の暗号化値として算出し、
(b4)前記判定用データと、前記第1の暗号鍵と、前記第2の暗号鍵を前記ユーザ端末へ送信し、
(b5)前記第2の暗号鍵に対応する復号鍵を、前記判定サーバへ送信し、
前記ユーザ端末は、
(b6)入力部を介して任意の値が入力されると、前記任意の値が前記第1の値に該当する場合、前記第1の値に対応する前記第2の暗号化値を取得し、前記任意の値が前記第2の値に該当する場合、前記第2の値に対応する前記第2の暗号化値を取得し、
(b7)前記任意の値に対し、前記第1の暗号鍵による前記第1の暗号化処理を行って、第3の暗号化値を算出し、
(b8)前記判定用データから前記任意の値に対応する前記第2の暗号化値を取得し、
(b9)乱数を生成し、
(b10)前記乱数を、前記第2の暗号鍵による前記第2の暗号化処理を行って乱数暗号値を算出し、
(b11)前記乱数を、前記第3の暗号化値に乗算した第4の暗号化値を算出し、
(b12)前記乱数暗号化値を、前記取得した第2の暗号化値に乗算した第5の暗号化値を算出し、
(b13)前記第4の暗号化値と、前記第5の暗号化値と、を対とした通信データを前記判定サーバへ送信し、
前記判定サーバは、
(b14)前記ユーザ端末から送信された第5の暗号化値を、前記復号鍵を用いて、復号化した復号値を算出し、
(b15)前記復号値と、前記第4の暗号化値と、が一致するか否かを判定し、該判定結果を前記第1のサーバへ送信する
ことを特徴とする判定システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate