(57)【要約】      （修正有）【課題】Pin入力を用いたユーザ認証機能付鍵共有方法であり、短期秘密鍵の漏えいに耐性のある安全な鍵共有方法を提供する。【解決手段】サーバ装置１００は、サーバ短期秘密鍵とサーバ長期秘密鍵とを用いて、通信装置から送信される公開情報に対して、ペアリング演算により共有値を求め、サーバ短期秘密鍵と通信装置から送信される公開情報とから共有値を求め、求めた複数の共有値からサーバ共有鍵を作成するサーバ共有鍵生成部１２０と、通信装置から送信される認証情報を用いて、通信装置に入力されたPin情報が正しいかを認証する認証部１３０と、を含む。ここで認証情報は通信装置長期秘密鍵を用いて通信装置で生成された通信装置共有鍵を用いて生成されるものであり、ユーザが入力したPin情報と通信装置長期秘密鍵補助情報とから通信装置長期秘密鍵が得られるものである。【選択図】図４
2019102959.tif 000002
【特許請求の範囲】
【請求項１】
通信装置と通信するサーバ装置であって、
G'1を楕円曲線上の群E(F'q)における部分群とし、G'2を群E(F'q^k)の部分群とし、xA,xB∈RZ'qとし、ペアリング演算の入力がG'1とG'2の元の線形結合で表現されるものとし、
サーバ短期秘密鍵xBとサーバ長期秘密鍵DB,2∈G'2とを用いて、前記通信装置から送信される公開情報に対して、ペアリング演算により共有値σi(i=1,…,L-2)を求め、前記サーバ短期秘密鍵xB∈RZ'qと前記通信装置から送信される公開情報に含まれるXA,1∈G'1、XA,2∈G'2とから共有値σL-1=xBXA,1、σL=xBXA,2を求め、求めた共有値σi(i=1,…,L)からサーバ共有鍵を作成するサーバ共有鍵生成部と、
ユーザが入力したPin情報と通信装置長期秘密鍵補助情報DA,1'とから通信装置長期秘密鍵DA,1が得られるものとし、認証情報は通信装置長期秘密鍵DA,1を用いて通信装置で生成された通信装置共有鍵を用いて生成されるものとし、前記通信装置から送信される認証情報を用いて、前記通信装置に入力されたPin情報が正しいかを認証する認証部と、を含む、
サーバ装置。
【請求項２】
サーバ装置と通信する通信装置であって、
G'1を楕円曲線上の群E(F'q)における部分群とし、G'2を群E(F'q^k)の部分群とし、xA,xB∈RZ'qとし、ペアリング演算の入力がG'1とG'2の元の線形結合で表現されるものとし、
ユーザが入力したPin情報と通信装置長期秘密鍵補助情報DA,1'とから通信装置長期秘密鍵DA,1が得られるものとし、通信装置長期秘密鍵補助情報DA,1'と前記サーバ装置が公開する情報であるサーバ公開情報を記憶する記憶部と、
当該通信装置の通信装置短期秘密鍵xAと、前記サーバ装置に送信する当該通信装置の公開情報に含まれるXA,1∈G'1、XA,2∈G'2とを作成する生成部と、
ユーザが入力したPin情報と前記通信装置長期秘密鍵補助情報DA,1'とから通信装置長期秘密鍵DA,2を得、前記通信装置短期秘密鍵xAと前記通信装置長期秘密鍵DA,2∈G'1とを用いて、前記サーバ装置から送信される公開情報に対して、ペアリング演算により共有値σi(i=1,…,L-2)を求め、前記通信装置短期秘密鍵xA∈RZ'qと前記サーバ装置から送信される公開情報に含まれるXB,1∈G'1、XB,2∈G'2とから共有値σL-1=xAXB,1、σL=xAXB,2を求め、求めた共有値σi(i=1,…,L)から通信装置共有鍵を作成する通信装置共有鍵生成部と、
前記通信装置共有鍵を用いて認証情報を生成する認証情報生成部とを含む、
通信装置。
【請求項３】
サーバ装置と通信装置とを含む鍵共有システムであって、
G'1を楕円曲線上の群E(F'q)における部分群とし、G'2を群E(F'q^k)の部分群とし、xA,xB∈RZ'qとし、ペアリング演算の入力がG'1とG'2の元の線形結合で表現されるものとし、
前記サーバ装置は、
サーバ短期秘密鍵xBとサーバ長期秘密鍵DB,2∈G'2とを用いて、前記通信装置から送信される公開情報に対して、ペアリング演算により共有値σi(i=1,…,L-2)を求め、前記サーバ短期秘密鍵xB∈RZ'qと前記通信装置から送信される公開情報に含まれるXA,1∈G'1、XA,2∈G'2とから共有値σL-1=xBXA,1、σL=xBXA,2を求め、求めた共有値σi(i=1,…,L)からサーバ共有鍵を作成するサーバ共有鍵生成部を含み、
前記通信装置は、
ユーザが入力したPin情報と通信装置長期秘密鍵補助情報DA,1'とから通信装置長期秘密鍵DA,1が得られるものとし、通信装置長期秘密鍵補助情報DA,1'と前記サーバ装置が公開する情報であるサーバ公開情報を記憶する記憶部と、
当該通信装置の通信装置短期秘密鍵xAと、前記サーバ装置に送信する当該通信装置の公開情報に含まれるXA,1∈G'1、XA,2∈G'2とを作成する生成部と、
ユーザが入力したPin情報と前記通信装置長期秘密鍵補助情報DA,1'とから通信装置長期秘密鍵DA,2を得、前記通信装置短期秘密鍵xAと前記通信装置長期秘密鍵DA,2∈G'1とを用いて、前記サーバ装置から送信される公開情報に対して、ペアリング演算により共有値σi(i=1,…,L-2)を求め、前記通信装置短期秘密鍵xA∈RZ'qと前記サーバ装置から送信される公開情報に含まれるXB,1∈G'1、XB,2∈G'2とから共有値σL-1=xAXB,1、σL=xAXB,2を求め、求めた共有値σi(i=1,…,L)から通信装置共有鍵を作成する通信装置共有鍵生成部と、
前記通信装置共有鍵を用いて認証情報を生成する認証情報生成部とを含み、
前記サーバ装置は、
ユーザが入力したPin情報と通信装置長期秘密鍵補助情報DA,1'とから通信装置長期秘密鍵DA,1が得られるものとし、認証情報は通信装置長期秘密鍵DA,1を用いて通信装置で生成された通信装置共有鍵を用いて生成されるものとし、前記通信装置から送信される認証情報を用いて、前記通信装置に入力されたPin情報が正しいかを認証する認証部をさらに含む、
鍵共有システム。
【請求項４】
通信装置と通信するサーバ装置を用いる鍵共有方法であって、
G'1を楕円曲線上の群E(F'q)における部分群とし、G'2を群E(F'q^k)の部分群とし、xA,xB∈RZ'qとし、ペアリング演算の入力がG'1とG'2の元の線形結合で表現されるものとし、
前記サーバ装置が、サーバ短期秘密鍵xBとサーバ長期秘密鍵DB,2∈G'2とを用いて、前記通信装置から送信される公開情報に対して、ペアリング演算により共有値σi(i=1,…,L-2)を求め、前記サーバ短期秘密鍵xB∈RZ'qと前記通信装置から送信される公開情報に含まれるXA,1∈G'1、XA,2∈G'2とから共有値σL-1=xBXA,1、σL=xBXA,2を求め、求めた共有値σi(i=1,…,L)からサーバ共有鍵を作成するサーバ共有鍵生成ステップと、
ユーザが入力したPin情報と通信装置長期秘密鍵補助情報DA,1'とから通信装置長期秘密鍵DA,1が得られるものとし、認証情報は通信装置長期秘密鍵DA,1を用いて通信装置で生成された通信装置共有鍵を用いて生成されるものとし、前記通信装置から送信される認証情報を用いて、前記通信装置に入力されたPin情報が正しいかを認証する認証ステップと、を含む、
鍵共有方法。
【請求項５】
サーバ装置と通信する通信装置を用いる鍵共有方法であって、
G'1を楕円曲線上の群E(F'q)における部分群とし、G'2を群E(F'q^k)の部分群とし、xA,xB∈RZ'qとし、ペアリング演算の入力がG'1とG'2の元の線形結合で表現されるものとし、
ユーザが入力したPin情報と通信装置長期秘密鍵補助情報DA,1'とから通信装置長期秘密鍵DA,1が得られるものとし、前記通信装置には、通信装置長期秘密鍵補助情報DA,1'と前記サーバ装置が公開する情報であるサーバ公開情報とが記憶されるものとし、
前記通信装置が、当該通信装置の通信装置短期秘密鍵xAと、前記サーバ装置に送信する当該通信装置の公開情報に含まれるXA,1∈G'1、XA,2∈G'2とを作成する生成ステップと、
前記通信装置が、ユーザが入力したPin情報と前記通信装置長期秘密鍵補助情報DA,1'とから通信装置長期秘密鍵DA,2を得、前記通信装置短期秘密鍵xAと前記通信装置長期秘密鍵DA,2∈G'1とを用いて、前記サーバ装置から送信される公開情報に対して、ペアリング演算により共有値σi(i=1,…,L-2)を求め、前記通信装置短期秘密鍵xA∈RZ'qと前記サーバ装置から送信される公開情報に含まれるXB,1∈G'1、XB,2∈G'2とから共有値σL-1=xAXB,1、σL=xAXB,2を求め、求めた共有値σi(i=1,…,L)から通信装置共有鍵を作成する通信装置共有鍵生成ステップと、
前記通信装置が、前記通信装置共有鍵を用いて認証情報を生成する認証情報生成ステップとを含む、
鍵共有方法。
【請求項６】
サーバ装置と通信装置とを用いる鍵共有方法であって、
G'1を楕円曲線上の群E(F'q)における部分群とし、G'2を群E(F'q^k)の部分群とし、xA,xB∈RZ'qとし、ペアリング演算の入力がG'1とG'2の元の線形結合で表現されるものとし、
ユーザが入力したPin情報と通信装置長期秘密鍵補助情報DA,1'とから通信装置長期秘密鍵DA,1が得られるものとし、前記通信装置には、通信装置長期秘密鍵補助情報DA,1'が記憶されるものとし、
前記通信装置が、当該通信装置の通信装置短期秘密鍵xAと、前記サーバ装置に送信する当該通信装置の公開情報に含まれるXA,1∈G'1、XA,2∈G'2とを作成する生成ステップと、
前記サーバ装置が、サーバ短期秘密鍵xBとサーバ長期秘密鍵DB,2∈G'2とを用いて、前記通信装置から送信される公開情報に対して、ペアリング演算により共有値σi(i=1,…,L-2)を求め、前記サーバ短期秘密鍵xB∈RZ'qと前記通信装置から送信される公開情報に含まれるXA,1∈G'1、XA,2∈G'2とから共有値σL-1=xBXA,1、σL=xBXA,2を求め、求めた共有値σi(i=1,…,L)からサーバ共有鍵を作成するサーバ共有鍵生成ステップと、
前記通信装置が、前記サーバ装置が公開する情報であるサーバ公開情報を記憶する記憶ステップと、
前記通信装置が、ユーザが入力したPin情報と前記通信装置長期秘密鍵補助情報DA,1'とから通信装置長期秘密鍵DA,2を得、前記通信装置短期秘密鍵xAと前記通信装置長期秘密鍵DA,2∈G'1とを用いて、前記サーバ装置から送信される公開情報に対して、ペアリング演算により共有値σi(i=1,…,L-2)を求め、前記通信装置短期秘密鍵xA∈RZ'qと前記サーバ装置から送信される公開情報に含まれるXB,1∈G'1、XB,2∈G'2とから共有値σL-1=xAXB,1、σL=xAXB,2を求め、求めた共有値σi(i=1,…,L)から通信装置共有鍵を作成する通信装置共有鍵生成ステップと、
前記通信装置が、前記通信装置共有鍵を用いて認証情報を生成する認証情報生成ステップと、
前記サーバ装置が、ユーザが入力したPin情報と通信装置長期秘密鍵補助情報DA,1'とから通信装置長期秘密鍵DA,1が得られるものとし、認証情報は通信装置長期秘密鍵DA,1を用いて通信装置で生成された通信装置共有鍵を用いて生成されるものとし、前記通信装置から送信される認証情報を用いて、前記通信装置に入力されたPin情報が正しいかを認証する認証ステップとを含む、
鍵共有方法。
【請求項７】
サーバと通信装置とを含む鍵共有システムであって、
前記サーバ装置は、
第一情報mを用いてサーバ共有鍵を生成し、前記第一情報mと、前記通信装置から送信される公開情報と、非公開のマスタ−公開鍵Rとから情報cを得るサーバ共有鍵生成部を含み、
ユーザが入力したPin情報と通信装置長期秘密鍵補助情報D'IDとから通信装置長期秘密鍵DIDが得られるものとし、
前記通信装置は、
前記サーバ装置が公開する情報であるサーバ公開情報に含まれる情報cと、通信装置長期秘密鍵補助情報DID'とを記憶する記憶部と、
ユーザが入力したPin情報と通信装置長期秘密鍵補助情報DID'とから通信装置長期秘密鍵DIDを得、前記通信装置長期秘密鍵DIDと、前記サーバ装置から送信される公開情報に含まれる情報cとを用いて第一情報mを得、前記第一情報mを用いて通信装置共有鍵を生成する通信装置共有鍵生成部と、
前記通信装置共有鍵を用いて認証情報を生成する認証情報生成部とを含み、
前記サーバ装置は、
前記通信装置から送信される認証情報と前記サーバ共有鍵とを用いて、前記通信装置に入力されたPin情報が正しいかを認証する認証部をさらに含む、
鍵共有システム。
【請求項８】
請求項１のサーバ装置、または、請求項２の通信装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
情報通信分野における認証付き鍵共有技術に関し、特に、サーバ装置、サーバ装置と通信する通信装置、通信装置とサーバ装置とを含む鍵共有システム、鍵共有方法、プログラムに関する。
【背景技術】
【０００２】
Pin（Personal identication number)入力を用いたユーザ認証機能付きの鍵共有プロトコルとして、M-Pin Fullが知られている（非特許文献１参照）。このM-Pin Fullは、ユーザとサーバ間で共有する鍵を生成する際に、ユーザにPinコードを入力させ、Pinコードが正しい場合に限り、ユーザとサーバ間で同一の鍵を共有できるものである。このM-Pin Fullは、Password Authenticated Key Agreement(PAKE)とは異なり、ユーザが入力したPinをサーバが保持しないため、サーバからユーザのPinが漏洩することはない。従って、サーバ管理者がユーザのパスワードを管理をする必要がない点において、PAKEよりも優れる。しかし、乱数生成に問題があり、攻撃者によってユーザが利用する乱数が推測された場合には、M-Pin Fullが生成する短期秘密鍵の漏えいが発生しうる。このとき、攻撃者は、M-Pin Fullで共有する鍵を生成することが可能となる。
【０００３】
また、Pinを用いない認証付き鍵共有プロトコルとして、ペアリングベースの認証付き鍵共有プロトコル、例えばFSU（非特許文献２参照）、SK-KEM（非特許文献３参照）が知られている。ただし、正確には、SK-KEMの場合、ユーザは短期秘密鍵をそもそも利用しない。これらのプロトコルは、短期秘密鍵の漏えいが発生した場合でも、攻撃者が共有鍵を生成することが困難なプロトコルである。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】MichaelScott, "M-Pin FullTechnology(Version3.0)", [online], [平成29年11月17日検索],インターネット<URL:https://cdn2.hubspot.net/hubfs/230906/miracl/white_papers/MIRACL_mpin_full_technology.pdf?t=1454680982288>
【非特許文献２】"Specicationof FSU version 1.0", [online], [平成29年11月17日検索], インターネット<URL:https://info.isl.ntt.co.jp/crypt/eng/archive/dl/fsu/FSU.pdf>
【非特許文献３】M.BARBOSA etc., "SK-KEM : ANIDENTITY-BASED KEM", [online], [平成29年11月17日検索],インターネット<URL:http://grouper.ieee.org/groups/1363/IBC/submissions/Barbosa-SK-KEM-2006-06.pdf>
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、非特許文献２，３のいずれの方式もPin等のユーザ入力を用いたプロトコルとなっていない。従って、現状ではPin入力を利用した短期秘密鍵の漏えいに耐性のある安全な鍵共有方式はない。
【０００６】
図１は非特許文献１の技術を説明するための図である。なお、表記については以下の通りである。
s:マスター秘密鍵
Z'q:0以上q未満の整数の集合
α:Pinコード
G'1:楕円曲線上の群E(F'p)における部分群
F'p：位数pの有限体
G'2:群E(F'p^k)の部分群(ただし下付きまたは上付き添え字におけるA^BはABを、A_BはABを意味する)
F'p^k：F'pのk次拡大体
H1:文字列からG1上の元を生成する関数
H2:文字列からG2上の元を生成する関数
Hq:曲線の位数qをモジュロとするハッシュ関数
||:文字列の連結
g1:e((s-α)A,Q)
g2:e(A,Q)
Q:G2の生成元またG1,G2の構成として、BN曲線上のOptimal Ateペアリングを用いる。
【０００７】
M-Pin Fullでは、短期秘密鍵が漏えいした場合に、攻撃者がユーザ共有鍵を生成することが可能となる。具体的に説明する。M-Pin Fullにおける短期秘密鍵は、乱数xとrである。ユーザが、Pinを正しく入力した場合、ユーザ共有鍵として、K=Hg((e((s-α)A,Q)*e(A,Q)α)r||xW)=Hg(e(sA,Q)r||xW)を計算する。ここでユーザが生成したxとrを攻撃者が知っていると仮定すると、攻撃者は、通信装置(クライアント)とサーバ装置間の情報を含めx,A,U,y,V,r,R,Wを入手可能になる。攻撃者はV=-(x+y)sAに対して、x,yを用いて、-(x+y)-1を計算し、-(x+y)-1V=(x+y)-1(x+y)sA=sAを導くことでsAを容易に求めることができる。そして、sA,Q,r,x,Wを用いて、K=Hg(e(sA,Q)r||xW)を計算することが可能となる。このように、M-Pin Fullは短期秘密鍵が安全に運用されない場合、攻撃者が共有鍵を生成することが可能となり、共有鍵で暗号化された内容を盗聴することが可能となる。また、短期秘密鍵x,rの漏えいのみで別のユーザ（IDA）へのなりすましも可能となり、サーバ装置と通信が可能となる。
【０００８】
一方、FSU（非特許文献２参照）は短期秘密鍵が漏えいしても共有鍵が生成されることはない安全な鍵共有プロトコルである。しかし、それぞれのプロトコルにおけるユーザの長期秘密鍵からPinを引くだけでは、安全なプロトコルにはならない。図２はFSUプロトコルを説明するための図である(詳細は非特許文献２参照)。なお、^Xは楕円点から文字列への変換後を意味する。ただし、図２ではzをマスター秘密鍵とする。FSUは、互いのマスター公開鍵Z1(=zG1∈G'1),Z2(=zG2∈G'2)を利用するが、Pinを組み込んだ場合、この公開鍵を公開すると攻撃者はPinの推測ができてしまう。なぜなら、D'A,1=(z-α)QA,1として、Pin(α)をユーザ秘密鍵に組み込んだ際に、仮に、このD'A,1が攻撃者の手に渡ると、攻撃者は、マスター公開鍵Z2を使って、e((z-α+α')QA,1,G2)=e((QA,1,Z2)となるα'を容易に求めることが可能なためである。従って、サーバ側のマスター公開鍵Z2は非公開にする必要がある。
【０００９】
M-Pin FullではsQがこれにあたり、M-Pin FullではsQを非公開にしている。このようにPinを入力に用いた場合、入力を受け付ける側、ここではサーバ側の公開鍵は非公開にする必要がある。結果、クライアント側とサーバ側で同じ公開鍵を用いることができなくなり、クライアントの公開鍵とサーバの公開鍵は別々になっている必要がある。例えば、鍵共有プロトコルChen-Cheng-Smart方式(参考文献１参照)の場合は、共通のマスター公開鍵Z2=zG2とユーザがもつ情報(z-α)QA,1が攻撃者に渡ると、攻撃者はe((z-α)QA,1+α'QA,1,G2)=e(QA,1,Z2)となるαを総当たり攻撃し、簡単に求めることができる。
(参考文献１)L.Chen, Z.Cheng, and N.P.Smart, "Identity-based Key Agreement Protocols From Pairings", [online], [平成29年11月17日検索], インターネット<URL:https://eprint.iacr.org/2006/199.pdf>
逆に、クライアント側とサーバ側で公開鍵が同一鍵のプロトコルであれば、Z1=zG1∈G'1、Z2=zG2∈G'2とし、別々の群を用いればよい。
【００１０】
既存のFSUにPin入力を追加しただけでは不十分であるもう一つの理由として、ユーザが正しいPinを入力したかをサーバ側で確認するための処理が必要となるが、既存のFSUにこの処理がないため、確認するための処理を追加する必要がある。
【００１１】
上記のとおり、既存のFSUにPin入力の処理を追加しただけでは不十分である。
【００１２】
本発明は、Pin入力を用いた2要素認証付鍵共有システム、システムにおいて用いられるサーバ装置、通信装置、鍵共有方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記の課題を解決するために、本発明の一態様によれば、通信装置と通信するサーバ装置は、G'1を楕円曲線上の群E(F'q)における部分群とし、G'2を群E(F'q^k)の部分群とし、xA,xB∈RZ'qとし、ペアリング演算の入力がG'1とG'2の元の線形結合で表現されるものとし、サーバ短期秘密鍵xBとサーバ長期秘密鍵DB,2∈G'2とを用いて、通信装置から送信される公開情報に対して、ペアリング演算により共有値σi(i=1,…,L-2)を求め、サーバ短期秘密鍵xB∈RZ'qと通信装置から送信される公開情報に含まれるXA,1∈G'1、XA,2∈G'2とから共有値σL-1=xBXA,1、σL=xBXA,2を求め、求めた共有値σi(i=1,…,L)からサーバ共有鍵を作成するサーバ共有鍵生成部と、ユーザが入力したPin情報と通信装置長期秘密鍵補助情報DA,1'とから通信装置長期秘密鍵DA,1が得られるものとし、認証情報は通信装置長期秘密鍵DA,1を用いて通信装置で生成された通信装置共有鍵を用いて生成されるものとし、通信装置から送信される認証情報を用いて、通信装置に入力されたPin情報が正しいかを認証する認証部と、を含む。
【００１４】
上記の課題を解決するために、本発明の他の態様によれば、サーバ装置と通信する通信装置は、G'1を楕円曲線上の群E(F'q)における部分群とし、G'2を群E(F'q^k)の部分群とし、xA,xB∈RZ'qとし、ペアリング演算の入力がG'1とG'2の元の線形結合で表現されるものとし、ユーザが入力したPin情報と通信装置長期秘密鍵補助情報DA,1'とから通信装置長期秘密鍵DA,1が得られるものとし、通信装置長期秘密鍵補助情報DA,1'とサーバ装置が公開する情報であるサーバ公開情報を記憶する記憶部と、当該通信装置の通信装置短期秘密鍵xAと、サーバ装置に送信する当該通信装置の公開情報に含まれるXA,1∈G'1、XA,2∈G'2とを作成する生成部と、ユーザが入力したPin情報と通信装置長期秘密鍵補助情報DA,1'とから通信装置長期秘密鍵DA,2を得、通信装置短期秘密鍵xAと通信装置長期秘密鍵DA,2∈G'1とを用いて、サーバ装置から送信される公開情報に対して、ペアリング演算により共有値σi(i=1,…,L-2)を求め、通信装置短期秘密鍵xA∈RZ'qとサーバ装置から送信される公開情報に含まれるXB,1∈G'1、XB,2∈G'2とから共有値σL-1=xAXB,1、σL=xAXB,2を求め、求めた共有値σi(i=1,…,L)から通信装置共有鍵を作成する通信装置共有鍵生成部と、通信装置共有鍵を用いて認証情報を生成する認証情報生成部とを含む。
【００１５】
上記の課題を解決するために、本発明の他の態様によれば、鍵共有システムは、サーバ装置と通信装置とを含む。G'1を楕円曲線上の群E(F'q)における部分群とし、G'2を群E(F'q^k)の部分群とし、xA,xB∈RZ'qとし、ペアリング演算の入力がG'1とG'2の元の線形結合で表現されるものとし、サーバ装置は、サーバ短期秘密鍵xBとサーバ長期秘密鍵DB,2∈G'2とを用いて、通信装置から送信される公開情報に対して、ペアリング演算により共有値σi(i=1,…,L-2)を求め、サーバ短期秘密鍵xB∈RZ'qと通信装置から送信される公開情報に含まれるXA,1∈G'1、XA,2∈G'2とから共有値σL-1=xBXA,1、σL=xBXA,2を求め、求めた共有値σi(i=1,…,L)からサーバ共有鍵を作成するサーバ共有鍵生成部を含む。通信装置は、ユーザが入力したPin情報と通信装置長期秘密鍵補助情報DA,1'とから通信装置長期秘密鍵DA,1が得られるものとし、通信装置長期秘密鍵補助情報DA,1'とサーバ装置が公開する情報であるサーバ公開情報を記憶する記憶部と、当該通信装置の通信装置短期秘密鍵xAと、サーバ装置に送信する当該通信装置の公開情報に含まれるXA,1∈G'1、XA,2∈G'2とを作成する生成部と、ユーザが入力したPin情報と通信装置長期秘密鍵補助情報DA,1'とから通信装置長期秘密鍵DA,2を得、通信装置短期秘密鍵xAと通信装置長期秘密鍵DA,2∈G'1とを用いて、サーバ装置から送信される公開情報に対して、ペアリング演算により共有値σi(i=1,…,L-2)を求め、通信装置短期秘密鍵xA∈RZ'qとサーバ装置から送信される公開情報に含まれるXB,1∈G'1、XB,2∈G'2とから共有値σL-1=xAXB,1、σL=xAXB,2を求め、求めた共有値σi(i=1,…,L)から通信装置共有鍵を作成する通信装置共有鍵生成部と、通信装置共有鍵を用いて認証情報を生成する認証情報生成部とを含む。サーバ装置は、ユーザが入力したPin情報と通信装置長期秘密鍵補助情報DA,1'とから通信装置長期秘密鍵DA,1が得られるものとし、認証情報は通信装置長期秘密鍵DA,1を用いて通信装置で生成された通信装置共有鍵を用いて生成されるものとし、通信装置から送信される認証情報を用いて、通信装置に入力されたPin情報が正しいかを認証する認証部をさらに含む。
【００１６】
上記の課題を解決するために、本発明の他の態様によれば、鍵共有方法は、通信装置と通信するサーバ装置を用いる。鍵共有方法は、G'1を楕円曲線上の群E(F'q)における部分群とし、G'2を群E(F'q^k)の部分群とし、xA,xB∈RZ'qとし、ペアリング演算の入力がG'1とG'2の元の線形結合で表現されるものとし、サーバ装置が、サーバ短期秘密鍵xBとサーバ長期秘密鍵DB,2∈G'2とを用いて、通信装置から送信される公開情報に対して、ペアリング演算により共有値σi(i=1,…,L-2)を求め、サーバ短期秘密鍵xB∈RZ'qと通信装置から送信される公開情報に含まれるXA,1∈G'1、XA,2∈G'2とから共有値σL-1=xBXA,1、σL=xBXA,2を求め、求めた共有値σi(i=1,…,L)からサーバ共有鍵を作成するサーバ共有鍵生成ステップと、ユーザが入力したPin情報と通信装置長期秘密鍵補助情報DA,1'とから通信装置長期秘密鍵DA,1が得られるものとし、認証情報は通信装置長期秘密鍵DA,1を用いて通信装置で生成された通信装置共有鍵を用いて生成されるものとし、通信装置から送信される認証情報を用いて、通信装置に入力されたPin情報が正しいかを認証する認証ステップと、を含む。
【００１７】
上記の課題を解決するために、本発明の他の態様によれば、鍵共有方法は、サーバ装置と通信する通信装置を用いる。鍵共有方法は、G'1を楕円曲線上の群E(F'q)における部分群とし、G'2を群E(F'q^k)の部分群とし、xA,xB∈RZ'qとし、ペアリング演算の入力がG'1とG'2の元の線形結合で表現されるものとし、ユーザが入力したPin情報と通信装置長期秘密鍵補助情報DA,1'とから通信装置長期秘密鍵DA,1が得られるものとし、通信装置には、通信装置長期秘密鍵補助情報DA,1'とサーバ装置が公開する情報であるサーバ公開情報とが記憶されるものとし、通信装置が、当該通信装置の通信装置短期秘密鍵xAと、サーバ装置に送信する当該通信装置の公開情報に含まれるXA,1∈G'1、XA,2∈G'2とを作成する生成ステップと、通信装置が、ユーザが入力したPin情報と通信装置長期秘密鍵補助情報DA,1'とから通信装置長期秘密鍵DA,2を得、通信装置短期秘密鍵xAと通信装置長期秘密鍵DA,2∈G'1とを用いて、サーバ装置から送信される公開情報に対して、ペアリング演算により共有値σi(i=1,…,L-2)を求め、通信装置短期秘密鍵xA∈RZ'qとサーバ装置から送信される公開情報に含まれるXB,1∈G'1、XB,2∈G'2とから共有値σL-1=xAXB,1、σL=xAXB,2を求め、求めた共有値σi(i=1,…,L)から通信装置共有鍵を作成する通信装置共有鍵生成ステップと、通信装置が、通信装置共有鍵を用いて認証情報を生成する認証情報生成ステップとを含む。
【００１８】
上記の課題を解決するために、本発明の他の態様によれば、鍵共有方法は、サーバ装置と通信装置とを用いる。鍵共有方法は、G'1を楕円曲線上の群E(F'q)における部分群とし、G'2を群E(F'q^k)の部分群とし、xA,xB∈RZ'qとし、ペアリング演算の入力がG'1とG'2の元の線形結合で表現されるものとし、ユーザが入力したPin情報と通信装置長期秘密鍵補助情報DA,1'とから通信装置長期秘密鍵DA,1が得られるものとし、通信装置には、通信装置長期秘密鍵補助情報DA,1'が記憶されるものとし、通信装置が、当該通信装置の通信装置短期秘密鍵xAと、サーバ装置に送信する当該通信装置の公開情報に含まれるXA,1∈G'1、XA,2∈G'2とを作成する生成ステップと、サーバ装置が、サーバ短期秘密鍵xBとサーバ長期秘密鍵DB,2∈G'2とを用いて、通信装置から送信される公開情報に対して、ペアリング演算により共有値σi(i=1,…,L-2)を求め、サーバ短期秘密鍵xB∈RZ'qと通信装置から送信される公開情報に含まれるXA,1∈G'1、XA,2∈G'2とから共有値σL-1=xBXA,1、σL=xBXA,2を求め、求めた共有値σi(i=1,…,L)からサーバ共有鍵を作成するサーバ共有鍵生成ステップと、通信装置が、サーバ装置が公開する情報であるサーバ公開情報を記憶する記憶ステップと、通信装置が、ユーザが入力したPin情報と通信装置長期秘密鍵補助情報DA,1'とから通信装置長期秘密鍵DA,2を得、通信装置短期秘密鍵xAと通信装置長期秘密鍵DA,2∈G'1とを用いて、サーバ装置から送信される公開情報に対して、ペアリング演算により共有値σi(i=1,…,L-2)を求め、通信装置短期秘密鍵xA∈RZ'qとサーバ装置から送信される公開情報に含まれるXB,1∈G'1、XB,2∈G'2とから共有値σL-1=xAXB,1、σL=xAXB,2を求め、求めた共有値σi(i=1,…,L)から通信装置共有鍵を作成する通信装置共有鍵生成ステップと、通信装置が、通信装置共有鍵を用いて認証情報を生成する認証情報生成ステップと、サーバ装置が、ユーザが入力したPin情報と通信装置長期秘密鍵補助情報DA,1'とから通信装置長期秘密鍵DA,1が得られるものとし、認証情報は通信装置長期秘密鍵DA,1を用いて通信装置で生成された通信装置共有鍵を用いて生成されるものとし、通信装置から送信される認証情報を用いて、通信装置に入力されたPin情報が正しいかを認証する認証ステップとを含む。
【００１９】
上記の課題を解決するために、本発明の他の態様によれば、鍵共有システムは、サーバと通信装置とを含む。サーバ装置は、第一情報mを用いてサーバ共有鍵を生成し、第一情報mと、通信装置から送信される公開情報と、非公開のマスタ−公開鍵Rとから情報cを得るサーバ共有鍵生成部を含む。ユーザが入力したPin情報と通信装置長期秘密鍵補助情報DID'とから通信装置長期秘密鍵DIDが得られるものとし、通信装置は、サーバ装置が公開する情報であるサーバ公開情報に含まれる情報cと、通信装置長期秘密鍵補助情報DID'とを記憶する記憶部と、ユーザが入力したPin情報と通信装置長期秘密鍵補助情報DID'とから通信装置長期秘密鍵DIDを得、通信装置長期秘密鍵DIDと、サーバ装置から送信される公開情報に含まれる情報cとを用いて第一情報mを得、第一情報mを用いて通信装置共有鍵を生成する通信装置共有鍵生成部と、通信装置共有鍵を用いて認証情報を生成する認証情報生成部とを含む。サーバ装置は、通信装置から送信される認証情報とサーバ共有鍵とを用いて、通信装置に入力されたPin情報が正しいかを認証する認証部をさらに含む。
【発明の効果】
【００２０】
本発明によれば、既存の鍵共有プロトコルにPin入力と認証処理を追加することで、クライアントとサーバ間での鍵共有に対し、Pin入力が可能かつ、短期秘密鍵（乱数）の漏えいにも強いという効果を奏する。
【図面の簡単な説明】
【００２１】
【図１】従来技術のM-Pin Fullを説明するための図。
【図２】従来技術のFSUを説明するための図。
【図３】第一実施形態に係る鍵共有システムの配置図。
【図４】第一実施形態に係るサーバ装置の機能ブロック図
【図５】第一実施形態に係る通信装置の機能ブロック図
【図６】第一実施形態に係る鍵共有システムの処理を説明するための図。
【図７】従来技術のChen-Cheng-Smartを説明するための図。
【図８】第二実施形態に係る鍵共有システムの処理を説明するための図。
【図９】従来技術のSK-KEMを説明するための図。
【図１０】第三実施形態に係る鍵共有システムの処理を説明するための図。
【発明を実施するための形態】
【００２２】
以下、本発明の実施形態について、説明する。なお、以下の説明に用いる図面では、同じ機能を持つ構成部や同じ処理を行うステップには同一の符号を記し、重複説明を省略する。以下の説明において、テキスト中で使用する記号「^」等は、本来直後の文字の真上に記載されるべきものであるが、テキスト記法の制限により、当該文字の直前に記載する。式中においてはこれらの記号は本来の位置に記述している。また、ベクトルや行列の各要素単位で行われる処理は、特に断りが無い限り、そのベクトルやその行列の全ての要素に対して適用されるものとする。
【００２３】
＜第一実施形態のポイント＞
FSU方式を用いて、ユーザの長期秘密鍵からPinを引いた値(DA,1'=(z-α)QA,1)を保存させ、ユーザが利用する際はユーザにPinを入力させる。ユーザが正しいPinを入力したかを確認するため、MAC(Message Authentication Code)を付与し、サーバはMACを確認することで正しいPinが入力されたかを確認する。このとき、サーバ側の公開鍵は非公開とし、攻撃者の手に渡らないようにする。
【００２４】
＜第一実施形態＞
本実施系形態では、本発明をFSUへの適応に適用する。
【００２５】
図３は第一実施形態に係る鍵共有システムの配置図を示す。鍵共有システムは、サーバ装置１００と、N台の通信装置２００−ｎとを含む。ただし、n=1,2,…,Nである。
【００２６】
図４は第一実施形態に係るサーバ装置１００の機能ブロック図を、図５は第一実施形態に係る通信装置２００−ｎの機能ブロック図を示す。
【００２７】
サーバ装置及び通信装置のそれぞれは、例えば、中央演算処理装置（CPU: Central Processing Unit）、主記憶装置（RAM: Random Access Memory）などを有する公知又は専用のコンピュータに特別なプログラムが読み込まれて構成された特別な装置である。サーバ装置及び通信装置のそれぞれは、例えば、中央演算処理装置の制御のもとで各処理を実行する。サーバ装置及び通信装置のそれぞれに入力されたデータや各処理で得られたデータは、例えば、主記憶装置に格納され、主記憶装置に格納されたデータは必要に応じて中央演算処理装置へ読み出されて他の処理に利用される。サーバ装置及び通信装置のそれぞれの各処理部は、少なくとも一部が集積回路等のハードウェアによって構成されていてもよい。サーバ装置及び通信装置のそれぞれが備える各記憶部は、例えば、RAM（Random Access Memory）などの主記憶装置、ハードディスクや光ディスクもしくはフラッシュメモリ（Flash Memory）のような半導体メモリ素子により構成される補助記憶装置、またはリレーショナルデータベースやキーバリューストアなどのミドルウェアにより構成することができる。
【００２８】
本実施形態では、第一実施形態に係るサーバ装置１００とあるユーザが操作する通信装置２００−ｎとの間で行われる鍵共有について説明する。
【００２９】
図６は鍵共有システムの処理を説明するための図である。
【００３０】
＜事前準備＞
まず事前準備として、通信装置２００−ｎは、マスター秘密鍵zとPin情報αを用いて長期秘密鍵補助情報DA,1'(DA,1'=(z-α)QA,1∈G'1)を生成し、記憶部２１０に記憶する（Ｓ１）。なお、長期秘密鍵補助情報DA,1'を生成した後に、通信装置２００−ｎ内からマスター秘密鍵zとPin情報αとを削除する構成としてもよい。このような構成とすることで、通信装置２００−ｎが盗難等にあった際にも、攻撃者はPin情報αが分からないため、サーバ装置１００との間で鍵共有を行うことができない。
【００３１】
なお、Pin情報αは、ユーザが事前に登録してもよいし、通信装置２００−ｎまたはサーバ装置１００が割り当て、割り当てたPin情報αをユーザに報知してもよい。
【００３２】
サーバ装置１００は、マスター秘密鍵zを用いて長期秘密鍵DB,2(DB,2=zQB,2=zH1(IDB)∈G'2)を生成し、記憶部１１０に記憶する（Ｓ２）。なお、マスター公開鍵Z2=zG2∈G'2は非公開とし、記憶部１１０に記憶する。
【００３３】
＜鍵共有処理＞
通信装置２００−ｎは、鍵共有処理が始まると、まず、Pin情報αを受け付ける。例えば、通信装置２００−ｎの図示しない表示部(ディスプレイ等)にPin情報αの入力を促す画面を表示し、通信装置２００−ｎのユーザが図示しない入力部(キーボード等)を介してPin情報αを入力することで、通信装置２００−ｎは、Pin情報αを受け付ける。
【００３４】
通信装置２００−ｎの生成部２４０は、Pin情報αを受け取ると、記憶部２１０から長期秘密鍵補助情報DA,1'を取り出し、長期秘密鍵DA,1(DA,1←DA,1'+αQA,1)を生成する。さらに、生成部２４０は、短期秘密鍵xA(xA∈R Z'q)を生成する。次に、生成部２４０は、短期秘密鍵xAを用いて短期公開鍵XA,1、XB,1(XA,1=xAG1, XA,2=xAG2)を生成する（Ｓ１１）。生成部２４０は、通信装置２００−ｎの識別子IDAとサーバ装置１００の識別子IDBとともに短期公開鍵XA,1、XA,2をサーバ装置１００に送信する(Ｓ１２)。なお、識別子IDA、IDB、短期公開鍵XA,1、XA,2を通信装置２００−ｎの公開情報とも言う。
【００３５】
サーバ装置１００の生成部１４０は、通信装置２００−ｎの公開情報とともに鍵共有要求を受け取ると、通信装置２００−ｎの公開情報を記憶部１１０に記憶し、短期秘密鍵xB(xB∈R Z'q)を生成する。次に、生成部１４０は、短期秘密鍵xBを用いて短期公開鍵XB,1、XB,2(XB,1=xBG1, XB,2=xBG2)を生成する（Ｓ２１）。生成部１４０は、通信装置２００−ｎの識別子IDAとサーバ装置１００の識別子IDBとともに短期公開鍵XB,1、XB,2を通信装置２００−ｎに送信する(Ｓ２２)。なお、識別子IDA、IDB、短期公開鍵XB,1、XB,2をサーバ装置１００の公開情報とも言う。サーバ装置１００の公開情報のうち、識別子IDA、IDB、短期公開鍵XB,1、XB,2の少なくとも何れかを鍵共有要求を受け取る前に予め作成しておき、記憶部１１０に記憶しておいてもよい。
【００３６】
次に、サーバ装置１００は、共有鍵生成部１２０において、短期秘密鍵xBと長期秘密鍵DB,2と非公開のマスター公開鍵Z2を用いて、通信装置２００−ｎから送信される公開情報IDA、XA,1、XA,2に対して、ペアリング演算により共有値σi(i=1,…,L-2)を求める。
σ1=e(QA,1,DB,2)
σ2=e(QA,1+XA,1,DB,2+xBZ2)
さらに、短期秘密鍵xBと通信装置２００−ｎから送信される公開情報XA,1、XA,2とから共有値σL-1=xBXA,1、σL=xBXA,2を求め、求めた共有値σi(i=1,…,L)から共有鍵Kを作成する（Ｓ２３）。
sid=(IDA||IDB||^XA,1||^XA,2||^XB,1||^XB,2)
K=H(σ1||σ2||σ3||σ4||sid)
一方、通信装置２００−ｎの共有鍵生成部２２０は、サーバ装置１００の公開情報IDA、IDB、XB,1、XB,2を受け取り、記憶部２１０に記憶する。さらに、短期秘密鍵xAと長期秘密鍵DA,2とマスター公開鍵Z1とを用いて、サーバ装置１００から送信される公開情報IDB、XB,2に対して、ペアリング演算により共有値σi(i=1,…,L-2)を求める。
σ1=e(DA,1,QB,2)
σ2=e(DA,1+xAZ1,QB,2+XB,2)
さらに、短期秘密鍵xAとサーバ装置から送信される公開情報XB,1∈G'1、XB,2∈G'2とから共有値σL-1=xAXB,1、σL=xAXB,2を求め、求めた共有値σi(i=1,…,L)から共有鍵Kを作成する（Ｓ３１）。
sid=(IDA||IDB||^XA,1||^XA,2||^XB,1||^XB,2)
K=H(σ1||σ2||σ3||σ4||sid)
適切な処理が行われていた場合、通信装置２００−ｎの共有鍵生成部２２０で生成した共有鍵Kと、サーバ装置１００の共有鍵生成部１２０で生成した共有鍵Kとが一致する。
【００３７】
＜認証処理＞
通信装置２００−ｎの認証情報生成部２３０は、共有鍵Kを用いて認証情報t(t=MAC(K,σ1||σ2||σ3||σ4||sid))を生成し（Ｓ３２）、サーバ装置１００に送信する（Ｓ３３）。
【００３８】
サーバ装置１００の認証部１３０は、認証情報tを受け取る。認証部１３０は、共有鍵生成部１２０で生成した共有鍵Kを用いて認証情報t'(t'=MAC(K,σ1||σ2||σ3||σ4||sid))を生成し、認証情報tと認証情報t'とを用いて、通信装置２００−ｎに入力されたPin情報αが正しいかを認証する（Ｓ４１）。
【００３９】
認証情報tと認証情報t'とが一致する場合には、通信装置２００−ｎに入力されたPin情報αが正しいと判断し共有鍵Kを用い、一致しない場合には接続を拒否し、通信装置２００−ｎに対してエラーを返す。
【００４０】
＜効果＞
このような構成により、既存の鍵共有プロトコルにPin入力と認証処理を追加できる。ユーザだけが知っているPin情報と、ユーザだけが所有している通信装置に記憶された長期秘密鍵補助情報とを用いて二要素認証を可能としている。通信装置（クライアント）とサーバ装置間での鍵共有に対し、Pin入力が可能かつ、短期秘密鍵（乱数）の漏えいにも強い鍵共有システムを構築することができる。ユーザは通信装置を介してPin情報を入力し、FSUプロトコルの最後にMACの計算を追加し、サーバ装置では、そのMAC値が一致するか確認することで、正しい入力かを確認する。一致する場合に限り、共有鍵Kを用いる。サーバにてPinの入力誤りをカウントしておく構成としてもよい。このような構成とすることで、一定回数以上の誤りが合った場合には、そのIDを失効させ、Pinの総当たり攻撃を防止することができる。
【００４１】
＜変形例＞
本実施形態において、tとt'=MAC(K,σ1||σ2||σ3||σ4||sid)は、Kとsidのみを入力するMAC(K,sid)でもよい。この場合、共有鍵Kの使用期限が過ぎた後で、共有鍵Kを第三者に渡すことで、第三者は共有鍵KとsidとでMAC値を認証することができる。
【００４２】
本実施形態では、ユーザのみ通信装置２００−ｎを介してPin入力を行っているが、サーバ装置１００側にもPin入力をさせることが可能である。例えば、サーバ装置１００ではなく別ユーザの通信装置２００−ｎ’(n'は1,2,…,Nの何れかであって、n≠n')との間で互いにPin入力をした上で鍵共有を行いたい場合などがこれにあたる。
【００４３】
事前準備において、サーバ装置１００の生成部１４０が、長期秘密鍵補助情報DB,1'を生成し、記憶部１１０に記憶する処理を加える。
DB,2'=DB,2-αQB,2∈G'2
また、鍵共有処理において、サーバ装置１００の生成部２４０が、ユーザ(IDB)のPin情報αを受け取ると、記憶部２１０から長期秘密鍵補助情報DB,1'を取り出し、長期秘密鍵DB,1を生成する処理を加える。
DB,2=D'B,2+αQB,2
このとき、ユーザ(IDA)のマスター公開鍵Z1を非公開とし、記憶部２１０に記憶する。上記によって、M-Pin Fullではできなかった双方向でのPin入力による鍵共有プロトコルにすることが可能になる。
【００４４】
また、本実施形態では、MAC値t,t'を用いて認証処理を行っているが、ハッシュ値等を用いて認証処理を行ってもよい。
【００４５】
本実施形態では、鍵共有処理において、まず通信装置２００−ｎから公開情報を送信しているが、サーバ装置１００から先に公開情報を送信する構成としてもよい。その場合、通信装置２００−ｎが、サーバ装置１００の公開情報を用いて認証情報tを生成することができるため、Ｓ１２(通信装置２００−ｎの公開情報の送信)を省略し、Ｓ３３(通信装置２００−ｎの認証情報の送信)において、通信装置２００−ｎの公開情報とともに認証情報tを送信する構成としてもよい。
【００４６】
＜第二実施形態＞
第一実施形態と異なる部分を中心に説明する。
【００４７】
FSU以外の認証付き鍵共有プロトコルにおいても、Pin入力可能な認証付き鍵共有プロトコルに変換することが可能である。認証付き鍵共有プロトコルの多くは、FSUと同じくペアリングとDH鍵交換の仕組みを用いて、共通値であるσiを生成し、そこから共有鍵Kを計算する。従って、これを一般化すると、L個の共有値σi(i=1,…,L)を用いて共有鍵を生成するプロトコルにおいて、L-2までのσiがペアリング演算で構成され、その入力がG'1とG'2の元の線形結合で表現されている認証付き鍵共有プロトコルは、FSU同様にPin入力可能な認証付き鍵共有プロトコルに変換が可能である。数式的で表現すると、ある整数aj,bl∈Z'qにて、iが1からL-2までのσiに対し、
【００４８】
【数１】
2019102959.tif 000003
【００４９】
と表現される。また、σL-1とσLについては、x,y∈R Z'qを用いてσL-1=xyG1,σL=xyG2となる鍵共有プロトコルである。Pin入力を可能にするには公開鍵が、ユーザごとに定義される必要があるため、共通の公開鍵を用いているプロトコルに適用するには、ユーザごとに別の群を用いる。つまりユーザIDAの公開鍵はG1で定義し、ユーザIDBの公開鍵をG2で定義する。このとき公開鍵を非公開にし、最後にMAC計算の処理を追加することで、Pin入力可能な鍵交換プロトコルに拡張することが可能になる。
【００５０】
例としてFSU以外の認証付き鍵共有プロトコルChen-Cheng-Smart(参考文献１参照)をPin入力可能な鍵共有プロトコルに変換する。図７に既存のChen-Cheng-Smartプロトコルを記載し、図８に変換後のプロトコルを記載する。
【００５１】
基本的な処理内容は第一実施形態と同様である。共有鍵生成部１２０においてσ1、σ2を求める式(σ1=e(xBQA,1,Z2)、σ2=e(XA,1,DB,2))、共有鍵生成部２２０におけるσ1、σ2を求める式(σ1=e(Z1,xAQB,2)、σ2=e(DA,1,XB,2))、認証情報生成部２３０、認証部１３０におけるMAC値を求める式（t=MAC(K,σ1||σ2||σ3||σ4||sid)、t'=MAC(K,σ1||σ2||σ3||σ4||sid)）が第一実施形態とは異なる。
【００５２】
なお、本実施形態においても、第一実施形態の変形例と同様の変形が可能である。
【００５３】
＜第三実施形態＞
第一実施形態と異なる部分を中心に説明する。
【００５４】
本実施形態では、本発明をSK-KEM(非特許文献３参照)に適用する。図９は既存のSK-KEMを示し、図１０は変換後のSK-KEMを示す。
【００５５】
＜事前準備＞
まず事前準備として、通信装置２００−ｎは、Pin情報αを用いて長期秘密鍵補助情報DID'を生成し(DID'←DID・g2-α)、記憶部２１０に記憶する（Ｓ１０１）。なお、長期秘密鍵補助情報DID'を生成した後に、通信装置２００−ｎ内からマスター秘密鍵sとPin情報αと長期秘密鍵DIDを削除する構成としてもよい。このような構成とすることで、通信装置２００−ｎが盗難等にあった際にも、攻撃者はPin情報αが分からないため、サーバ装置１００との間で鍵共有を行うことができない。
【００５６】
なお、Pin情報αは、ユーザが事前に登録してもよいし、通信装置２００−ｎまたはサーバ装置１００が割り当て、割り当てたPin情報αをユーザに報知してもよい。
【００５７】
サーバ装置１００は、予めマスター公開鍵R=g1sを生成し、記憶部１１０に記憶しておく（Ｓ１０２）。なお、本実施形態ではsをマスター秘密鍵とし、マスター公開鍵R=g1sは非公開とする。
【００５８】
＜鍵共有処理＞
通信装置２００−ｎの生成部２４０は、公開情報IDAとともに鍵共有要求をサーバ装置１００に送信する（Ｓ１１１）。
【００５９】
サーバ装置１００の共有鍵生成部１２０は、通信装置２００−ｎの公開情報IDAとともに鍵共有要求を受け取ると、公開情報IDAを記憶部２１０に記憶する。さらに、第一情報mを生成し(m←{0,1}n)、第一情報mを用いて共有鍵kを生成し(k←H4(m))、第一情報mと、通信装置２００−ｎから送信される公開情報IDAと、非公開のマスタ−公開鍵Rとから情報cを得る（Ｓ１２１）。
r←H3(m)
Q←R・g1H_1(ID_A)
U←Qr
V←m xor H2(e(g1,g2)r)
c←(U,V)
共有鍵生成部１２０は、サーバ装置１００の情報c,IDBを通信装置２００−ｎに送信する（Ｓ１２２）。なお、情報c,IDBをサーバ装置１００の公開情報ともいう。
【００６０】
通信装置２００−ｎの生成部２４０は、公開情報c,IDBを受け取ると、記憶部２１０に記憶する。さらに、Pin情報αの入力をユーザに促す。ユーザがPin情報αを入力し、通信装置２００−ｎの生成部２４０が、Pin情報αを受け取ると、記憶部２１０から長期秘密鍵補助情報DID'を取り出し、これらの情報から長期秘密鍵DIDを得る(DID←DID'・g2α)。
【００６１】
通信装置２００−ｎの共有鍵生成部２２０は、長期秘密鍵DIDと、公開情報cとを用いて第一情報mを得、第一情報mを用いて共有鍵kを生成する（Ｓ１２３）。
Parse c as (U,V)
β←e(U,DID)
m←H2(β) xor V
r←H3(m)
k←H4(m)
適切な処理が行われていた場合、通信装置２００−ｎの共有鍵生成部２２０で生成した共有鍵kと、サーバ装置１００の共有鍵生成部１２０で生成した共有鍵kとが一致する。
【００６２】
＜認証処理＞
通信装置２００−ｎの認証情報生成部２３０は、共有鍵kを用いて認証情報t(t=MAC(k,m||r||IDA||IDB||c))を生成し（Ｓ１３２）、サーバ装置１００に送信する（Ｓ１３３）。
【００６３】
サーバ装置１００の認証部１３０は、認証情報tを受け取る。認証部１３０は、共有鍵生成部１２０で生成した共有鍵kを用いて認証情報t'(t'=MAC(k,m||r||IDA||IDB||c))を生成し、認証情報tと認証情報t'とを用いて、通信装置２００−ｎに入力されたPin情報αが正しいかを認証する（Ｓ１４１）。
【００６４】
認証情報tと認証情報t'とが一致する場合には、入力されたPin情報αが正しいと判断し共有鍵Kを用い、一致しない場合には接続を拒否し、通信装置２００−ｎに対してエラーを返す。
【００６５】
＜効果＞
このような構成により、既存の鍵共有プロトコルにPin入力と認証処理を追加できる。ユーザだけが知っているPin情報と、ユーザだけが所有している通信装置に記憶された長期秘密鍵補助情報とを用いて二要素認証を可能としている。通信装置（クライアント）とサーバ装置間での鍵共有に対し、Pin入力が可能な鍵共有システムを構築することができる。なお、本実施形態では、短期秘密鍵を利用していないため、その漏えいが生じない。ユーザは通信装置２００−ｎを介してPinを入力し、SK-KEMプロトコルの最後にMAC計算を追加し、サーバ装置１００では、そのMAC値が一致するか確認することで、正しい入力かを確認する。一致する場合に限り、共有鍵Kを用いる。サーバにてPinの入力誤りをカウントしておき、一定回数以上の誤りが合った場合には、そのIDを失効させることで、Pinの総当たり攻撃を防止することが可能である。
【００６６】
なお、第一実施形態の変形例と同様に本実施形態においても、tとt'=MAC(k,m||r||IDA||IDB||c)は、kとsidのみを入力するMAC(k,sid)でもよい。この場合、共有鍵kの使用期限が過ぎた後で、共有鍵kを第三者に渡すことで、第三者は共有鍵kと公開情報IDA||IDB||cとでMAC値を認証することができる。また、第一実施形態の変形例と同様にハッシュ値等を用いて認証処理を行ってもよい。
【００６７】
＜その他の変形例＞
本発明は上記の実施形態及び変形例に限定されるものではない。例えば、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
【００６８】
＜プログラム及び記録媒体＞
また、上記の実施形態及び変形例で説明した各装置における各種の処理機能をコンピュータによって実現してもよい。その場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
【００６９】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
【００７０】
また、このプログラムの流通は、例えば、そのプログラムを記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させてもよい。
【００７１】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶部に格納する。そして、処理の実行時、このコンピュータは、自己の記憶部に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実施形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよい。さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるＡＳＰ（ApplicationServiceProvider）型のサービスによって、上述の処理を実行する構成としてもよい。なお、プログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの（コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等）を含むものとする。
【００７２】
また、コンピュータ上で所定のプログラムを実行させることにより、各装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【図１】
2019102959.tif 000004
【図２】
2019102959.tif 000005
【図３】
2019102959.tif 000006
【図４】
2019102959.tif 000007
【図５】
2019102959.tif 000008
【図６】
2019102959.tif 000009
【図７】
2019102959.tif 000010
【図８】
2019102959.tif 000011
【図９】
2019102959.tif 000012
【図１０】
2019102959.tif 000013