(57)【要約】【課題】回答者の特定を困難にし、かつ、不正な回答を防止するトークン配布装置、方法及びプログラムを提供すること。【解決手段】トークン配布装置１０は、トークン群を生成し、ユーザ端末５０からリクエストを受信し、受信したリクエストに含まれる暗号化された要求値に基づいて、ユーザ端末５０に割り当てられるトークンに対応するトークン対応値を算出し、算出したトークン対応値をユーザ端末５０に送信し、ユーザ端末５０によって復号された値から得られるトークンを用いた回答を、ユーザ端末５０から受信する。トークン群は、１辺がｒ個の要素でｄ次元で構成され、暗号化された要求値は、ｄ次元に等しい個数のベクトルによって構成され、そのベクトルの要素の個数は、ｒ個に等しい。【選択図】図１
2015095671.tif 000002
【特許請求の範囲】
【請求項１】
認証のためのトークンをユーザ端末に配布するトークン配布装置であって、
複数の前記トークンを含むトークン群を生成するトークン群生成手段と、
前記ユーザ端末が前記トークンの配布を要求するためのリクエストであって暗号化された要求値を含む前記リクエストを前記ユーザ端末から受信するリクエスト受信手段と、
前記リクエスト受信手段によって受信された前記リクエストに含まれる前記暗号化された要求値に基づいて、前記ユーザ端末に割り当てられる前記トークンに対応するトークン対応値を算出する対応値算出手段と、
前記対応値算出手段によって算出された前記トークン対応値をユーザ端末に送信するトークン送信手段と、
前記トークン送信手段によって送信された前記トークン対応値が復号され、復号された値から得られる前記トークンを用いた回答を、前記ユーザ端末から受信する回答受信手段と、
を備えるトークン配布装置。
【請求項２】
前記トークン群は、１辺がｒ個の要素でｄ次元で構成され、
前記暗号化された要求値は、前記ｄ次元に等しい個数のベクトルによって構成され、そのベクトルの要素の個数は、前記ｒ個に等しい、
請求項１に記載のトークン配布装置。
【請求項３】
ユーザの識別情報に対応付けて公開鍵と管理情報とを記憶するユーザ登録記憶手段と、
前記ユーザの登録を受け付けて、前記ユーザの識別情報と前記公開鍵とを前記ユーザ登録記憶手段に記憶させるユーザ登録手段と、
前記ユーザの識別情報と、前記公開鍵に対応する秘密鍵によって暗号化された認証要求とを受信し、前記ユーザ登録記憶手段の前記ユーザの識別情報に対応付けられた前記公開鍵を用いて前記認証要求を復号することによって前記ユーザを認証するユーザ認証手段と、をさらに備え、
前記トークン送信手段は、前記ユーザ登録記憶手段の前記ユーザの識別情報に対応付けられた前記管理情報に、送信したことを記憶させる、請求項１又は２に記載されたトークン配布装置。
【請求項４】
請求項１に記載のトークン配布装置が実行する方法であって、
前記トークン群生成手段が、複数の前記トークンを含むトークン群を生成するトークン群生成ステップと、
前記リクエスト受信手段が、前記ユーザ端末が前記トークンの配布を要求するためのリクエストであって暗号化された要求値を含む前記リクエストを前記ユーザ端末から受信するリクエスト受信ステップと、
前記対応値算出手段が、前記リクエスト受信ステップによって受信された前記リクエストに含まれる前記暗号化された要求値に基づいて、前記ユーザ端末に割り当てられる前記トークンに対応するトークン対応値を算出する対応値算出ステップと、
前記トークン送信手段が、前記対応値算出ステップによって算出された前記トークン対応値をユーザ端末に送信するトークン送信ステップと、
前記トークン送信ステップによって送信された前記トークン対応値が復号され、復号された値から得られる前記トークンを用いた回答を、前記回答受信手段が、前記ユーザ端末から受信する回答受信ステップと、
を備える方法。
【請求項５】
コンピュータに、請求項４に記載の方法の各ステップを実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、トークン配布装置、方法及びプログラムに関する。
【背景技術】
【０００２】
従来より、電子投票や匿名通信路等を実現する際に、ミックスネットの技術が用いられている。ミックスネットの技術を用いると、例えば、電子投票において、不正な投票が防止されながら、投票の秘密が保護される。
【０００３】
また、ソーシャルネットワーキングにおいて、プライバシーを保護する技術を開示する非特許文献１が知られている。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Ｃｌａｕｄｉｏ  Ａ．Ａｒｄａｇｎａ  ｅｔ  ａｌ  （２００９）．  “Ｐｒｉｖａｃｙ  Ｐｒｅｓｅｒｖａｔｉｏｎ  ｏｖｅｒ  Ｕｎｔｒｕｓｔｅｄ  Ｍｏｂｉｌｅ  Ｎｅｔｗｏｒｋｓ”．  Ｉｎ  Ｂｅｔｔｉｎｉ，Ｃｌａｕｄｉｏ  ｅｔ  ａｌ．Ｐｒｉｖａｃｙ  Ｉｎ  Ｌｏｃａｔｉｏｎ−Ｂａｓｅｄ  Ａｐｐｌｉｃａｔｉｏｎｓ：Ｒｅｓｅａｒｃｈ  Ｉｓｓｕｅｓ  ａｎｄ  Ｅｍｅｒｇｉｎｇ  Ｔｒｅｎｄｓ．Ｓｐｒｉｎｇｅｒ．ｐ．８８．ＩＳＢＮ  ９７８３６４２０３５１１１．
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、例えば、ミックスネットの技術を通信経路に応用しようとすると、通信経路において複雑な仕組みを導入する必要があり、コストがかかるという問題点があった。
【０００６】
そこで、通信経路に、複雑な仕組みを導入することなく、回答者の特定を困難にし、かつ、不正な回答を防止するセキュアなオンライン調査手法を実現する装置が求められている。
【０００７】
本発明は、回答者の特定を困難にし、かつ、不正な回答を防止するトークン配布装置、方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
具体的には、以下のような解決手段を提供する。
（１）  認証のためのトークンをユーザ端末に配布するトークン配布装置であって、複数の前記トークンを含むトークン群を生成するトークン群生成手段と、前記ユーザ端末が前記トークンの配布を要求するためのリクエストであって暗号化された要求値を含む前記リクエストを前記ユーザ端末から受信するリクエスト受信手段と、前記リクエスト受信手段によって受信された前記リクエストに含まれる前記暗号化された要求値に基づいて、前記ユーザ端末に割り当てられる前記トークンに対応するトークン対応値を算出する対応値算出手段と、前記対応値算出手段によって算出された前記トークン対応値をユーザ端末に送信するトークン送信手段と、前記トークン送信手段によって送信された前記トークン対応値が復号され、復号された値から得られる前記トークンを用いた回答を、前記ユーザ端末から受信する回答受信手段と、を備えるトークン配布装置。
【０００９】
（１）の構成によれば、トークン配布装置は、トークン群を生成し、ユーザ端末からリクエストを受信し、受信したリクエストに含まれる暗号化された要求値に基づいて、ユーザ端末に割り当てられるトークンに対応するトークン対応値を算出し、算出したトークン対応値をユーザ端末に送信し、送信されたトークン対応値が復号され、復号された値から得られるトークンを用いた回答をユーザ端末から受信する。
【００１０】
すなわち、（１）に係るトークン配布装置は、暗号化された要求値をそのまま用いてトークンに対応する値を算出し、算出した値をユーザ端末に送信するので、トークン配布装置は、ユーザにトークンを割り当てて配布したことを記憶できるが、配布したトークンを記憶することができない。よって、トークン配布装置は、回答の正当性を確認するためのトークンを用いることができるように割り当てて、トークンを用いた回答を受信しても、その回答がどのユーザの回答であるかを特定することができない。
したがって、（１）に係るトークン配布装置は、回答者の特定を困難にし、かつ、不正な回答を防止することができる。
【００１１】
（２）  前記トークン群は、１辺がｒ個の要素でｄ次元で構成され、前記暗号化された要求値は、前記ｄ次元に等しい個数のベクトルによって構成され、そのベクトルの要素の個数は、前記ｒ個に等しい、（１）に記載のトークン配布装置。
【００１２】
したがって、（２）に係るトークン配布装置は、回答者の特定をさらに困難にし、かつ、不正な回答を防止することができる。
【００１３】
（３）  ユーザの識別情報に対応付けて公開鍵と管理情報とを記憶するユーザ登録記憶手段と、前記ユーザの登録を受け付けて、前記ユーザの識別情報と前記公開鍵とを前記ユーザ登録記憶手段に記憶させるユーザ登録手段と、前記ユーザの識別情報と、前記公開鍵に対応する秘密鍵によって暗号化された認証要求とを受信し、前記ユーザ登録記憶手段の前記ユーザの識別情報に対応付けられた前記公開鍵を用いて前記認証要求を復号することによって前記ユーザを認証するユーザ認証手段と、をさらに備え、前記トークン送信手段は、前記ユーザ登録記憶手段の前記ユーザの識別情報に対応付けられた前記管理情報に、送信したことを記憶させる、（１）又は（２）に記載されたトークン配布装置。
【００１４】
したがって、（３）に記載されたトークン配布装置は、回答者の特定を困難にし、かつ、不正な回答を確実に防止することができる。
【００１５】
（４）  （１）に記載のトークン配布装置が実行する方法であって、前記トークン群生成手段が、複数の前記トークンを含むトークン群を生成するトークン群生成ステップと、前記リクエスト受信手段が、前記ユーザ端末が前記トークンの配布を要求するためのリクエストであって暗号化された要求値を含む前記リクエストを前記ユーザ端末から受信するリクエスト受信ステップと、前記対応値算出手段が、前記リクエスト受信ステップによって受信された前記リクエストに含まれる前記暗号化された要求値に基づいて、前記ユーザ端末に割り当てられる前記トークンに対応するトークン対応値を算出する対応値算出ステップと、前記トークン送信手段が、前記対応値算出ステップによって算出された前記トークン対応値をユーザ端末に送信するトークン送信ステップと、前記トークン送信ステップによって送信された前記トークン対応値が復号され、復号された値から得られる前記トークンを用いた回答を、前記回答受信手段が、前記ユーザ端末から受信する回答受信ステップと、を備える方法。
【００１６】
したがって、（４）に記載された方法は、回答者の特定を困難にし、かつ、不正な回答を防止することができる。
【００１７】
（５）  コンピュータに、（４）に記載の方法の各ステップを実行させるプログラム。
【００１８】
したがって、（５）に記載されたプログラムは、コンピュータが、回答者の特定を困難にし、かつ、不正な回答を確実に防止することを可能にする。
【発明の効果】
【００１９】
本発明によれば、回答者の特定を困難にし、かつ、不正な回答を確実に防止することができる。
【図面の簡単な説明】
【００２０】
【図１】本発明の一実施形態に係るトークン配布装置の構成を示す図である。
【図２】本発明の一実施形態におけるトークンの算出を説明するための図である。
【図３】本発明の一実施形態におけるユーザ登録記憶手段の例を示す図である。
【図４】本発明の一実施形態に係るトークン配布装置と、ユーザ端末との処理を示すフローチャートである。
【発明を実施するための形態】
【００２１】
以下、本発明の実施形態について図に従って説明する。
図１は、本発明の一実施形態に係るトークン配布装置１０の構成を示す図である。
トークン配布装置１０は、回答等の正当性を確認する認証のためのトークンをユーザ端末５０に配布し、配布したトークンが用いられた回答等をユーザ端末５０から収集する。
トークン配布装置１０は、トークン群生成手段１１と、リクエスト受信手段１２と、対応値算出手段１３と、トークン送信手段１４と、回答受信手段１５と、ユーザ登録手段１６と、ユーザ認証手段１７と、ユーザ登録記憶手段３０とを備える。以下、各手段ごとに説明する。
【００２２】
トークン群生成手段１１は、複数のトークンを含むトークン群を生成する。
トークン群は、１辺がｒ個の要素でｄ次元で構成される。
例えば、トークン群に含まれるトークンの個数は、基数ｒと指数ｄとを用いて表わすことができる個数（ｒｄ）である。トークンの個数は、トークンを配布する対象のユーザの人数よりも大きい数である。
【００２３】
リクエスト受信手段１２は、ユーザ端末５０がトークンの配布を要求するためのリクエストであって暗号化された要求値を含むリクエストをユーザ端末５０から受信する。
例えば、暗号化された要求値は、上述のｄ次元に等しい個数のベクトルによって構成され、そのベクトルの要素の個数は、上述のｒ個に等しい。
【００２４】
対応値算出手段１３は、リクエスト受信手段１２によって受信されたリクエストに含まれる暗号化された要求値に基づいて、ユーザ端末５０に割り当てられるトークンに対応するトークン対応値を算出する。
【００２５】
トークン送信手段１４は、対応値算出手段１３によって算出されたトークン対応値をユーザ端末５０に送信する。
【００２６】
回答受信手段１５は、トークン送信手段１４によって送信されたトークン対応値が復号され、復号された値から得られるトークンを用いた回答を、ユーザ端末５０から受信する。
【００２７】
ユーザ登録記憶手段３０は、後述する図３に示すように、ユーザの識別情報に対応付けて公開鍵と管理情報とを記憶する。
【００２８】
ユーザ登録手段１６は、ユーザの登録を受け付けて、ユーザの識別情報と公開鍵とをユーザ登録記憶手段３０に記憶させる。
【００２９】
ユーザ認証手段１７は、ユーザの識別情報と、公開鍵に対応する秘密鍵によって暗号化された認証要求とを受信し、ユーザ登録記憶手段３０のユーザの識別情報に対応付けられた公開鍵を用いて認証要求を復号することによってユーザを認証する。
【００３０】
トークン送信手段１４は、後述する図３に示すように、トークン対応値を送信したユーザの識別情報に対応付けられた、ユーザ登録記憶手段３０の管理情報に、送信したことを示す、例えば、配布済、を記憶させる。
次に、具体的に、二次元、すなわち、ｄが２の場合について説明する。
【００３１】
［事前計算］
まず、トークン配布装置１０は、トークン群Ｔを生成する。この場合、ｄ次元の空間を想定すると、トークン群Ｔの空間は、１辺の長さがｒ、次元がｄである。したがって、トークン群Ｔに含まれるトークンｔの個数は、ｒｄ個である。
このトークンｔの個数は、ユーザの数より大きい数である。
例えば、２次元の例ではトークン群Ｔは、数１の様に表わされる。ここで、数１におけるｍは、トークンｔの個数ｒｄを２次元に具体化してｍ２と表わした場合のｍである。
二次元の場合、このように記憶されているトークンｔをｔｍ，ｍと表わす。
【００３２】
【数１】
2015095671.tif 000003
【００３３】
ここで、トークン配布装置１０を、調査を行う組織が運営するサーバ（サーバＳという）とし、ユーザ端末５０を、調査対象の各ユーザの端末（ユーザＲという。）とする。
まず、ユーザＲはユーザ識別情報（例えば、ユーザＩＤ）と、公開鍵とをサーバＳに登録する。次に、サーバＳはトークン群Ｔを生成しておく。
【００３４】
［コミットメント］
サーバＳは、公開鍵に対応する秘密鍵を用いて暗号化されたユーザＲの認証要求を、登録された公開鍵を用いて復号することで、ユーザＲを認証する。
ユーザＲは、暗号化されたｄ個のベクトル（１ベクトルの要素数がｒ個）を生成し、サーバＳに送付する。この暗号化されたベクトルは、例えば、順同型性を有する暗号方式で暗号化されていてよい。
例えば、２次元の例では、数２のような、２個のベクトル値（１ベクトルの要素数がｍ個）である。
【００３５】
【数２】
2015095671.tif 000004
【００３６】
ベクトルＶａは、関数Ｅａによって与えられる数値から構成され、例えば、Ｅａ（ｖａ，ｍ）の値は、乱数に基づく０又は１の値である。さらに、乱数に基づく０又は１の値の場合、ベクトルＶａの要素のうち、１つの要素のみが値１となり、それ以外の要素の値は０となる。
ベクトルＶｂについても同様である。
【００３７】
例えば、Ｅａ（ｖａ，３）の値が１である場合、Ｖａは、次の様に表わすことができる。
Ｖａ＝｛０，０，１，０，・・・・・０｝
【００３８】
サーバＳは、暗号化されているベクトルＶａをそのまま用いて、以下の計算（２次元の場合）を実行する。
【００３９】
【数３】
2015095671.tif 000005
【００４０】
２次元である場合であって、例えば、Ｅａ（ｖａ，３）の値が１である場合、Ｔａは、数４の様に表わすことができる。
【００４１】
【数４】
2015095671.tif 000006
【００４２】
次にもう１つのベクトルＶｂを使って数５の計算を行う。
【００４３】
【数５】
2015095671.tif 000007
【００４４】
サーバＳは、この結果をユーザＲに送信する。
ユーザＲは、受信した結果を復号し、復号した値を割り当てられたトークンとする。
【００４５】
［回答］
ユーザＲは、割り当てられたトークンを使って回答する。すなわち、ユーザＲは、例えば、割り当てられたトークンを回答に添付し、添付した回答をサーバＳに送信する。
このような処理とすることで、サーバＳは、どのトークンを割り当てたかを、知ることができないので、回答者は特定されない。
【００４６】
図２は、本発明の一実施形態におけるトークンの選択を説明するための図である。すなわち、図２は、上述した処理の全体のイメージであって、二次元の場合のイメージを示した図である。
図２（ａ）は、トークンに相当する要素１０１を配置した二次元の行列１００で表わされるトークン群を示している。
図２（ｂ）は、ユーザ端末５０から送信された暗号化された２個のベクトルのうち、ベクトルＶａにより列が算出されることを示している。
図２（ｃ）は、ユーザ端末５０から送信された暗号化された２個のベクトルのうち、ベクトルＶａにより列が算出された後に、ベクトルＶｂにより行が算出され、トークンが１つ選択されて、割り当てられることを示している。
【００４７】
図３は、本発明の一実施形態におけるユーザ登録記憶手段３０の例を示す図である。
ユーザ登録記憶手段３０は、ユーザ識別情報に対応付けて公開鍵と管理情報とを記憶している。図３の例は、トークン配布装置１０が、トークン対応値をユーザに送信し、送信したユーザのユーザ識別情報に対応する管理情報に、送信したことを示す配布済を記憶させた例である。ユーザ登録記憶手段３０により、トークン配布装置１０は、ユーザにトークン対応値を送信したか否かを識別することができる。
【００４８】
図４は、本発明の一実施形態に係るトークン配布装置１０からユーザ端末５０にトークンを配布する処理を示すフローチャートである。トークン配布装置１０及びユーザ端末５０は、コンピュータ及びその周辺装置が備えるハードウェア並びに該ハードウェアを制御するソフトウェアによって構成され、以下の処理は、トークン配布装置１０の制御部（例えば、トークン配布装置１０のＣＰＵ）、及びユーザ端末５０の制御部（例えば、ユーザ端末５０のＣＰＵ）が所定のソフトウェアに従い実行する処理である。
【００４９】
ステップＳ１０１において、ユーザ端末５０のＣＰＵは、ユーザＩＤと公開鍵とを登録する。ステップＳ２０１において、トークン配布装置１０のＣＰＵは、トークン群を生成する。
【００５０】
ステップＳ１０２において、ユーザ端末５０のＣＰＵは、暗号化された要求値を含むリクエストを送信する。ステップＳ２０２において、トークン配布装置１０のＣＰＵは、受信したユーザを認証する。
【００５１】
ステップＳ２０３において、トークン配布装置１０のＣＰＵは、受信した暗号化された要求値に基づいてトークン対応値を算出する。ステップＳ２０４において、トークン配布装置１０のＣＰＵは、算出したトークン対応値を送信する。
【００５２】
ステップＳ１０３において、ユーザ端末５０のＣＰＵは、受信したトークン対応値を復号する。ステップＳ１０４において、ユーザ端末５０のＣＰＵは、復号した値から得られるトークンを用いて回答を送信する。
【００５３】
ステップＳ２０５において、トークン配布装置１０のＣＰＵは、トークンが用いられている回答を受信する。
【００５４】
本実施形態１によれば、トークン配布装置１０は、トークン群を生成し、ユーザ端末５０からリクエストを受信し、受信したリクエストに含まれる暗号化された要求値に基づいて、ユーザ端末５０に割り当てられるトークンに対応するトークン対応値を算出し、算出したトークン対応値をユーザ端末５０に送信し、ユーザ端末５０によって復号された値から得られるトークンを用いた回答を、ユーザ端末５０から受信する。トークン群は、１辺がｒ個の要素でｄ次元で構成され、暗号化された要求値は、ｄ次元に等しい個数のベクトルによって構成され、そのベクトルの要素の個数は、ｒ個に等しい。
さらに、トークン配布装置１０は、受け付けたユーザの登録を記憶するユーザ登録記憶手段３０に基づいて、ユーザを認証し、トークン対応値をユーザへ送信したことを記憶する。
したがって、トークン配布装置１０は、回答者の特定を困難にし、かつ、不正な回答を防止することができる。
【００５５】
以上、本発明の実施形態について説明したが、本発明は上述した実施形態に限るものではない。また、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本発明の実施形態に記載されたものに限定されるものではない。
【符号の説明】
【００５６】
１０    トークン配布装置
１１    トークン群生成手段
１２    リクエスト受信手段
１３    対応値算出手段
１４    トークン送信手段
１５    回答受信手段
１６    ユーザ登録手段
１７    ユーザ認証手段
３０    ユーザ登録記憶手段
５０    ユーザ端末
【図１】
2015095671.tif 000008
【図２】
2015095671.tif 000009
【図３】
2015095671.tif 000010
【図４】
2015095671.tif 000011