JP5390814B2 - リング型の出力値サークル、認証システム、鍵配布システム、メンバー確認システムおよび認証方法、鍵配布方法、メンバー確認方法 - Google Patents

リング型の出力値サークル、認証システム、鍵配布システム、メンバー確認システムおよび認証方法、鍵配布方法、メンバー確認方法 Download PDF

Info

Publication number
JP5390814B2
JP5390814B2 JP2008226675A JP2008226675A JP5390814B2 JP 5390814 B2 JP5390814 B2 JP 5390814B2 JP 2008226675 A JP2008226675 A JP 2008226675A JP 2008226675 A JP2008226675 A JP 2008226675A JP 5390814 B2 JP5390814 B2 JP 5390814B2
Authority
JP
Japan
Prior art keywords
output value
output
user terminal
way function
group
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.)
Expired - Fee Related
Application number
JP2008226675A
Other languages
English (en)
Other versions
JP2010060861A (ja
Inventor
晋作 清本
俊昭 田中
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.)
KDDI Corp
Original Assignee
KDDI Corp
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 KDDI Corp filed Critical KDDI Corp
Priority to JP2008226675A priority Critical patent/JP5390814B2/ja
Publication of JP2010060861A publication Critical patent/JP2010060861A/ja
Application granted granted Critical
Publication of JP5390814B2 publication Critical patent/JP5390814B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、リング型の出力値サークル、これを適用した認証システム、鍵配布システム、メンバー確認システムおよび認証方法、鍵配布方法、メンバー確認方法に関する。
従来より、コンピュータ等においてデータの格納、検索等のデータ管理を行う一つの手法としてハッシュ法がある。ハッシュ法は、登録するレコードデータ(以下、単に「データ」ともいう)又はその一部の値を直接入力とするハッシュ関数を用いて、その出力(ハッシュ値)をデータの格納場所とすることを原理としている。
このハッシュ関数の入力値を一般に探索キーと称している。例えば、人名とその人の年齢とのデータの組を格納する際に人名をハッシュ関数の入力値としてその格納場所を決定しようとする場合、人名及び年齢がレコードデータであり、レコードデータの一部を構成する人名が探索キーに相当する。ハッシュ法は、登録するデータそのものを用いるためデータの検索処理の高速化を図ることができる。
ハッシュ関数は、出力するハッシュ値が重複しないように作成された演算式などから構成されるが、扱う探索キーの種別やデータ量によっては、同じハッシュ値となる探索キーが存在する場合がある。この場合、後から登録しようとするデータは、ハッシュ関数から返されたハッシュ値をデータの格納場所とすることができない。このいわゆる衝突が発生した場合の代表的な対処方法としてオープンアドレス法とチェーン法とがある。
図9を用いて、オープンアドレス法について説明すると、オープンアドレス法は、クローズドハッシュ法、再ハッシュ法とも呼ばれ、データ格納場所を予め固定的に持つものである。なお、データを格納する場所は、一般に「ハッシュ表」といわれている。また、これ以降、各データの登録場所を「インデックス」と称することにする。各インデックスにはインデックス番号が設定されている。なお、この登録場所を「バケット」という場合もある。
データを登録する際、図9において最初に処理されるデータaのハッシュ値は3なので、データaはインデックス番号が3のインデックスに登録される。このように、ハッシュ法では、返されたハッシュ値と同じインデックス番号の領域にデータを登録することを基本としている。次に処理されるデータbのハッシュ値は1なので、データbはインデックス番号が1のインデックスに登録される。次に処理されるデータcのハッシュ値は1なので、本来的にはインデックス番号が1のインデックスに登録されるべきであるが、そこには既にデータbが登録されているので、他の空のインデックスを探さなくてはならない。
衝突が発生した場合に他のインデックスを取得する手法としては、複数のハッシュ関数を用意しておく手法がある。衝突が発生した場合には登録されるべきインデックスの後に続く最初の空きインデックスに登録するというルールの場合のハッシュ関数は、「元のハッシュ値+1」、「元のハッシュ値+2」・・・という内容になる。従って、このルールに従えば、データcは、インデックス番号1に続くインデックス番号2のインデックスに登録されることになる。続いて、データdのハッシュ値は2なので、本来的にはインデックス番号が2のインデックスに登録されるべきであるが、そこには既にデータcが登録されているので、上述したルールに従うことによりデータdは、インデックス番号が3のインデックスに登録される。このように、オープンアドレス法では、衝突が発生したときには再ハッシュを行うことで有限のデータ格納領域に各データを登録していく。
また、データ検索処理は、前述したデータ登録処理と同様の手順で処理を実行すれば、所望のデータを検索することができる。
また、データを削除する場合には、多少の工夫が必要となる。なぜなら、データ検索をする際の検索処理の終了条件が空のインデックスに出会ったときなので、登録されたデータを無条件に削除してしまったらその削除したデータのところでデータ検索が中断してしまい、それ以降のインデックスに登録されたデータは検索できなくなってしまうからである。そこで、物理的なデータ削除を行わずに削除データが登録されていたインデックスにフラグやマークを書き込むことで論理的な削除を行い、データ検索の際にはこの論理的に削除したインデックス以降に対する検索を可能にしている。また、検索途中に空のインデックスができないようにデータの移動を行う場合もある。
次に、チェーン法について、図10を用いて説明すると、チェーン法は、直接チェーン法、オープンハッシュ法とも呼ばれ、ハッシュ表以外にオーバーフロー領域を持っている。
図10において、最初に処理されるデータaのハッシュ値は1なので、データaはインデックス番号が1のインデックスに登録される。次に処理されるデータbのハッシュ値は2なので、データbはインデックス番号が2のインデックスに登録される。次に処理されるデータcのハッシュ値は2なので、本来的にはインデックス番号が2のインデックスに登録されるべきであるが、そこには既にデータbが登録されているので、他の格納場所を探さなくてはならない。
そこで、チェーン法では、オーバーフロー領域に新たにインデックスを作成し、本来登録されるべきインデックス番号2のインデックスにあるポインタからそのインデックスを連結する。次に、データcのハッシュ値は2なので、本来的にはインデックス番号が2のインデックスに登録されるべきであるが、そこには既にデータbが登録されているので、オーバーフロー領域にインデックスを作成し、インデックス番号2のインデックスから始めるチェーンの最後尾にそのインデックスを連結する。
同様にしてハッシュ値2のデータeをそのチェーンの最後尾に接続する。この同じハッシュ値を持つデータのチェーンを「クラスタ」又は「リスト」という。クラスタの最後尾のインデックスのポインタには、終端を意味する値が書き込まれる。図10では、これを「×」で表す。このように、チェーン法では、衝突が発生したときにはオーバーフロー領域にインデックスを作成していくので、図9におけるデータdのように本来登録されるべきインデックス以外に再ハッシュされることはない。
なお、チェーン法には、図10に示したダイナミックな領域にインデックスを作成してクラスタを形成する手法以外に、図11に示したようにスタティックな領域すなわちハッシュ表内にクラスタを形成するというややオープンアドレス法に近い手法もある。この手法では、また、本来登録されるべきインデックスに他のハッシュ値を持つデータが衝突回避により既に格納されていると、登録済みのデータを移動させるようにする場合もある。
また、データ検索処理は、前述したデータ登録処理と同様の手順で処理を実行すれば、所望のデータを検索することができる。
また、データを削除する場合には、オープンアドレス法とほぼ同様でクラスタ内のチェーンを切らさないようにするために空きのインデックスをそのまま残すなど対処する必要がある(例えば、特許文献1参照)。
特開平11−66095号公報
ところで、上記のように、ハッシュ法(関数)の応用例としては、1次元的にハッシュ関数を連結するハッシュチェーン法等があるが、上記のような、一般的なハッシュチェーン法等では、両端を接続してリングを構成することができない。
そのために、特定のハッシュ値を検証する場合には、先頭から順番にハッシュ関数を計算してハッシュ値を順次、算出する必要があり、計算負荷が大きく、検証に大きな手間を要するという問題があった。
そこで、本発明は、上記事情に鑑みてなされたものであり、リング型の出力値サークルを形成し、どれか1つの出力値を知っていれば、すべての出力値が検証可能なリング型の出力値サークル、これを適用した認証システム、鍵配布システム、メンバー確認システムおよび認証方法、鍵配布方法、メンバー確認方法を提供することを目的とする。
本発明は、上記した課題を解決するために以下の事項を提案している。
(1)本発明は、入力長l、出力長mの複数の一方向性関数器が連結され、リング状に閉じた出力値サークルであって、前記一方向性関数器が、出力長mの範囲で初期入力を選択し、複数回、一方向性関数を計算した出力値が初期入力と一致するようにしたことを特徴とする出力値サークルを提案している。
この発明によれば、入力長l、出力長mの複数の一方向性関数器が連結されてリング状に閉じた出力値サークルを構成し、一方向性関数器が、出力長mの範囲で初期入力を選択し、複数回、一方向性関数を計算した出力値が初期入力と一致するようにしている。したがって、この出力値サークルを構成するどれか1つの出力値を知っていれば、すべての出力値を計算することが出来、また、サークルとして閉じることを確認することで、その出力値が出力値サークルの一部であることを確認できる。
(2)本発明は、(1)に記載の出力値サークルにおいて、前記一方向性関数器が、連結する他の一方向性関数器の出力値の上位(m−n)ビットを初期入力とすることを特徴とする出力値サークルを提案している。
この発明によれば、一方向性関数器が、連結する他の一方向性関数器の出力値の上位(m−n)ビットを初期入力とする。したがって、出力値は2^(m−n)の確率で、初期入力に一致する。ただし、このときサークルの長さxに対して、x<=2^(m−n)である必要がある。なお、出力値サークルがxにおいても形成できないときは、出力値サークルが繋がるまで出力値を計算し、その回数を公開する。
(3)本発明は、(1)または(2)に記載の出力値サークルにおいて、前記一方向性関数器が、mの衝突確率をパラメータにより制御することを特徴とする出力値サークルを提案している。
この発明によれば、一方向性関数器が、mの衝突確率をパラメータにより制御する。したがって、パラメータにより、mの衝突確率を制御することによって、チェーンの長さを自在に制御することができる。
(4)本発明は、(1)から(3)に記載の出力値サークルにおいて、前記一方向性関数器が、鍵kを入力とすることを特徴とする出力値サークルを提案している。
この発明によれば、一方向性関数器が、鍵kを入力とすることもできる。したがって、メッセージ認証子(MAC)を入力とすることもできる。
(5)本発明は、ユーザ端末と認証サーバとからなる認証システムであって、前記認証サーバが、k個の出力値とk個の前記請求項1に記載の一方向性関数とからなる出力値サークルを備えるとともに、前記ユーザ端末に出力値を配布する配布手段と、未配布の出力値を保管する保管手段と、認証時に、前記ユーザ端末からそれぞれに配布された出力値の提供を要求し、送付された出力値が前記出力値サークルを形成する複数の一方向性関数の出力値のうちの一部であるかどうかを検証する検証手段と、を備えたことを特徴とする認証システムを提案している。
この発明によれば、認証サーバが、k個の出力値とk個の(1)の一方向性関数とからなる出力値サークルを備え、ユーザ端末に出力値を配布するとともに、未配布の出力値を保管する。そして、認証時に、ユーザ端末からそれぞれに配布された出力値の提供を要求し、送付された出力値が出力値サークルの一部を形成する複数の一方向性関数の出力値のうちであるかどうかを検証する。したがって、出力値サークルを構成する出力値を予めユーザ端末に配布しておき、認証時に、この配布した出力値が出力値サークルを形成する複数の一方向性関数の出力値のうちの一部であるかどうかを検証することにより、的確にユーザの認証を実行することができる。
)本発明は、複数のユーザ端末からなるグループのメンバーを確認するためのメンバー確認システムであって、各ユーザ端末が、複数連結されて、リング状に閉じた出力値サークルを形成し、入力長がl、出力長がmであり、出力長mの範囲で初期入力を選択し、複数回、一方向性関数を計算した出力値が初期入力と一致するようにする一方向性関数に鍵を設けたものを備え、前記グループのメンバーである任意のユーザ端末Aが、初期値に対して、自身の鍵を用いて、自身が保有する一方向性関数により出力値を計算する第1の出力値算出手段と、前記グループのメンバーである他のユーザ端末Bに該計算した出力値を送信する第1の出力手段とを備え、前記グループのメンバーである他のユーザ端末Bが受信した出力値に対して、自身の鍵を用いて、自身が保有する一方向性関数により出力値を計算する第2の出力値算出手段と、前記グループのメンバーである他のユーザ端末Cに該計算した出力値を送信する第2の出力手段とを備え、上記一連の処理を最後の前記グループのメンバーまで行い、前記グループのメンバーである最後のユーザ端末が受信した出力値に対して、自身の鍵を用いて、自身が保有する一方向性関数により出力値を計算する第3の出力値算出手段と、初期値を格納する初期値格納手段と、前記計算した出力値と前記初期値が一致するか否かにより、メンバーであることの確認を行う判定手段と、を備えたことを特徴とするメンバー確認システムを提案している。
この発明によれば、各ユーザ端末が、複数連結されて、リング状に閉じた出力値サークルを形成し、入力長がl、出力長がmであり、出力長mの範囲で初期入力を選択し、複数回、一方向性関数を計算した出力値が初期入力と一致するようにする一方向性関数に鍵を設けたものを備え、グループのメンバーである任意のユーザ端末Aの第1の出力値算出手段は、初期値に対して、自身の鍵を用いて、自身が保有する一方向性関数により出力値を計算する。第1の出力手段はグループのメンバーである他のユーザ端末Bに計算した出力値を送信する。グループのメンバーである他のユーザ端末Bの第2の出力値算出手段は、受信した出力値に対して、自身の鍵を用いて、自身が保有する一方向性関数により出力値を計算する、第2の出力手段はグループのメンバーである他のユーザ端末Cに計算した出力値を送信する。上記一連の処理を最後のグループのメンバーまで行い、グループのメンバーである最後のユーザ端末の第3の出力値算出手段は、受信した出力値に対して、自身の鍵を用いて、自身が保有する一方向性関数により出力値を計算する。初期値格納手段は、初期値を格納する。判定手段は、計算した出力値と初期値が一致するか否かにより、メンバーであることの確認を行う。したがって、メンバーの確認を的確かつ速やかに実行することができる。なお、第三者に対しては、初期値と鍵を埋め込んだ一方向性関数を公開することで、グループのメンバーであることを検証できる。
)本発明は、ユーザ端末と認証サーバとからなる認証システムにおける認証方法であって、前記認証サーバが、k個の出力値とk個の前記請求項1に記載の一方向性関数とからなる出力値サークルを備え、前記認証サーバが、前記ユーザ端末に出力値を配布する第1のステップと、前記認証サーバが、未配布の出力値を保管する第2のステップと、前記認証サーバが、認証時に、前記ユーザ端末からそれぞれに配布された出力値の提供を要求し、送付された出力値が前記出力値サークルを形成する複数の一方向性関数の出力値のうちの一部であるかどうかを検証する第3のステップと、を備えたことを特徴とする認証方法を提案している。
この発明によれば、認証サーバが、k個の出力値とk個の(1)に記載の一方向性関数とからなる出力値サークルを備え、ユーザ端末に出力値を配布、未配布の出力値を保管する。そして、認証時に、ユーザ端末からそれぞれに配布された出力値の提供を要求し、送付された出力値が出力値サークルを形成する複数の一方向性関数の出力値のうちの一部であるかどうかを検証する。したがって、出力値サークルを構成する出力値を予めユーザ端末に配布しておき、認証時に、この配布した出力値が出力値サークルの一部であるかどうかを検証することにより、的確にユーザの認証を実行することができる。
)本発明は、複数のユーザ端末からなるグループのメンバーを確認するためのメンバー確認システムにおけるメンバー確認方法であって、各ユーザ端末が、複数連結されて、リング状に閉じた出力値サークルを形成することが可能であって、入力長がl、出力長がmであり、出力長mの範囲で初期入力を選択し、複数回、一方向性関数を計算した出力値が初期入力と一致するようにする一方向性関数に鍵を設けたものを備えるとともに、前記グループのメンバーである任意のユーザ端末Aが、第1の出力値算出手段により、初期値に対して、自身の鍵を用いて、自身が保有する一方向性関数により出力値を計算する第1のステップと、前記グループのメンバーである任意のユーザ端末Aが、前記グループのメンバーである他のユーザ端末Bに該計算した出力値を第1の出力手段により送信する第2のステップと、前記グループのメンバーである他のユーザ端末Bが、第2の出力値算出手段により、受信した出力値に対して、自身の鍵を用いて、自身が保有する一方向性関数により出力値を計算する第3のステップと、前記グループのメンバーである他のユーザ端末Bが、前記グループのメンバーである他のユーザ端末Cに該計算した出力値を第2の出力手段により送信する第4のステップと上記一連の処理を最後の前記グループのメンバーまで行う第のステップと、前記グループのメンバーである最後のユーザ端末が、第3の出力値算出手段により、受信した出力値に対して、自身の鍵を用いて、自身が保有する一方向性関数により出力値を計算する第6のステップと、前記グループのメンバーである最後のユーザ端末が、判定手段により、前記計算した出力値と初期値格納手段に格納された初期値が一致するか否かにより、メンバーであることの確認を行う第7のステップと、を備えたことを特徴とするメンバー確認方法を提案している。
この発明によれば、各ユーザ端末が、複数連結して、リング型の出力値サークルを形成することが可能であって、入力長がl、出力長がmであり、出力長mの範囲で初期入力を選択し、複数回、一方向性関数を計算した出力値が初期入力と一致するようにする一方向性関数に鍵を設けたものを備えるとともに、グループのメンバーである任意のユーザ端末Aが、第1の出力値算出手段により、初期値に対して、自身の鍵を用いて、自身が保有する一方向性関数により出力値を計算し、グループのメンバーである他のユーザ端末Bに計算した出力値を第1の出力手段により送信する。次にグループのメンバーである他のユーザ端末Bが、第2の出力値算出手段により、受信した出力値に対して、自身の鍵を用いて、自身が保有する一方向性関数により出力値を計算し、グループのメンバーである他のユーザ端末Cに計算した出力値を送信する。そして、上記一連の処理を最後のグループのメンバーまで行い、グループのメンバーである最後のユーザ端末が、第3の出力値算出手段により、受信した出力値に対して、自身の鍵を用いて、自身が保有する一方向性関数により出力値を計算し、判定手段により、計算した出力値と初期値格納手段に格納された初期値が一致するか否かにより、メンバーであることの確認を行う。したがって、メンバーの確認を的確かつ速やかに実行することができる。なお、第三者に対しては、初期値と鍵を埋め込んだ一方向性関数を公開することで、グループのメンバーであることを検証できる。
本発明によれば、リング状に出力値を連接した出力値サークルを構成することができるため、どれか1つの出力値を知っていれば、すべての出力値が検証可能であり、サークルとして閉じていることを確認することにより、その出力値出力値サークルの一部であることを確認できるという効果がある。
また、本発明によれば、一方向性関数のみを用いた新たな暗号プリミティブが構成でき、同プリミティブを用いたアプリケーションが作成できるという効果がある。
以下、本発明の実施形態について、図面を用いて、詳細に説明する。
なお、本実施形態における構成要素は適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組合せを含む様々なバリエーションが可能である。したがって、本実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
出力値サークルの構成>
本実施形態に係る出力値サークルの構成を図1に示す。図1によれば、本実施形態に係る出力値サークルは、一方向性関数器1、一方向性関数器2、一方向性関数器3の3つの一方向性関数器から構成され、一方向性関数器1の出力である出力値H1が一方向性関数器2の入力となり、一方向性関数器2の出力である出力値H2が一方向性関数器3の入力となり、一方向性関数器3の出力である出力値H3が一方向性関数器1の入力となることで、リング状の出力値サークルを形成している。
このような出力値サークルを形成することにより、この出力値サークルを構成するどれか1つの出力値を知っていれば、すべての出力値を計算することが出来、また、サークルとして閉じることを確認することで、その出力値出力値サークルの一部であることを確認できる。
一方向性関数器の構成>
本実施形態に係る一方向性関数器は、図2に示すように、入力部11と、初期入力生成部12と、一方向性関数演算部13と、衝突確率設定部14と、出力部15とから構成されている。
入力部11は、入力長lのデータ列を入力し、これを初期入力生成部12に供給する。初期入力生成部12は、出力長mの範囲で初期入力を選択する。具体的には、衝突確率を制御するパラメータをnとしたときに、前段の一方向性関数器の出力値の上位(m−n)ビットを初期入力とする。これにより、出力値は2^(m−n)の確率で、初期入力に一致する。なお、このときサークルの長さxに対して、x<=2^(m−n)である必要がある。
一方向性関数演算部13は、初期入力生成部12から入力した初期入力と、衝突確率設定部14により設定された衝突確率に応じて、複数回、演算を行って初期入力と一致するような出力値を演算する。なお、一方向性関数演算部13は、鍵kを入力とすることもできる。これにより、メッセージ認証子(MAC)を入力とすることもできる。
衝突確率設定部14は、パラメータnによりmの衝突確率を制御する。このように、パラメータにより、mの衝突確率を制御することによって、チェーンの長さを自在に制御することができる。出力部15は、一方向性関数演算部13が演算した出力値を次段の一方向性関数器の入力部に出力する。
<実施例1>
本実施例は、上記の出力値サークルを応用した認証システムであり、図3に示すように、ユーザ端末20と認証サーバ30とがネットワーク40を介して、構成されている。
さらに、ユーザ端末20は、送受信部21と、出力値保管部22とから構成され、認証サーバ30は、送受信部31と、出力値サークル格納部32と、出力値保管部33と、検証部34とから構成されている。
ここで、ユーザ端末20の送受信部21は、1つの出力値を認証サーバ30から受信するとともに、認証サーバ30からの出力値の提供要求に対して、受信した出力値を送信する。出力値保管部22は、認証サーバ30から受信した出力値を保管する記憶装置である。
また、認証サーバ30の送受信部31は、ユーザ端末20に対して、1つの出力値および出力値の提供要求を送信するとともに、ユーザ端末20から出力値を受信する。
出力値サークル格納部32は、上記において説明した出力値サークルを格納する記憶装置であり、出力値保管部33は、ユーザ端末20に送信した残りの出力値を格納する記憶装置である。
検証部34は、ユーザ端末20から送付された出力値出力値サークルの一部であるかどうかを検証する。検証の結果、ユーザ端末20から送付された出力値出力値サークルの一部である場合には、出力値を送付したユーザを正規のユーザとみなすことで、ユーザ認証を行う。
次に、図4を用いて、本実施例に係る認証システムの処理について説明する。
まず、認証サーバ30において、k個の出力値出力値サークルを形成する。そして、そのうち、1つの出力値をユーザ端末20に送信し(ステップS101)、残りの出力値を認証サーバ30で保管する(ステップS102)。
認証サーバ30が、ユーザを認証する際に、出力値の提供をユーザ端末20に対して要求し、ユーザ端末20は、出力値を送付する。そして、認証サーバ30の検証部34が、ユーザ端末20から送付された出力値出力値サークルの一部であるかどうかを検証し、正しければ正規にユーザとみなす(ステップS103)。
したがって、本実施例によれば、出力値サークルを構成する出力値を予めユーザ端末に配布しておき、認証時に、この配布した出力値出力値サークルの一部であるかどうかを検証することにより、的確にユーザの認証を実行することができる。
<実施例2>
本実施例は、上記の出力値サークルを応用した鍵配布システムであり、図5に示すように、ユーザ端末50と鍵配布サーバ60とがネットワーク40を介して、構成されている。
さらに、ユーザ端末50は、受信部51と、コンテンツ保管部52と、出力値保管部53とから構成され、鍵配布サーバ60は、出力値サークル格納部61と、暗号鍵生成部62と、暗号化部63と、コンテンツ格納部64と、送信部65とから構成されている。
ここで、ユーザ端末50の受信部51は、暗号化されたコンテンツを受信し、このコンテンツをコンテンツ保管部52に格納する。また、所定時間間隔ごとに、出力値を受信し、この出力値出力値保管部52に格納する。なお、コンテンツ保管部52は、鍵配布サーバ60から受信したコンテンツを保管する記憶装置であり、出力値保管部53は、鍵配布サーバ60から受信した出力値を保管する記憶装置である。
また、鍵配布サーバ60の出力値サークル格納部61は、上記において説明した出力値サークルを格納する記憶装置である。暗号鍵生成部62は、出力値サークルの各出力値に対して、別の一般的な一方向性関数器で計算を行い、暗号鍵を生成する。
暗号化部63は、コンテンツ格納部64に格納されたコンテンツを暗号鍵生成部62において生成した個々の暗号鍵で順に暗号化する。コンテンツ格納部64は、コンテンツを保管する記憶装置である。送信部65は、ユーザ端末50に暗号化されたコンテンツを送信するとともに、所定時間間隔ごとに、出力値を送信する。
次に、図6を用いて、本実施例に係る認証システムの処理について説明する。
まず、鍵配布サーバ60において、k個の出力値出力値サークルを形成する。そして、出力値サークルの各出力値に対し、別の一般的な一方向性関数で計算した出力値を暗号鍵とする(ステップS201)。
次に、鍵配布サーバ60のコンテンツ格納部64に格納されたコンテンツを暗号鍵生成部62において生成された個々の暗号鍵で順に暗号化して(ステップS202)、ユーザ端末50に提供する(ステップS203)。さらに、鍵配布サーバ60が正規のユーザ端末50に対して、時刻ごとに異なる出力値を送信する(ステップS204)。
したがって、本実施例によれば、チェーンがリング状になっているため、どれか1つの出力値を受け取ることが出来れば、残りの出力値は計算できる。そのため、正規ユーザは、その時間に参加したとしてもすべての鍵を入手できる。
<実施例3>
本実施例は、上記の出力値サークルを応用したグループメンバー確認システムであり、図7に示すように、例えば、複数のユーザ端末、ユーザ端末Aと、ユーザ端末Bと、ユーザ端末Cと、ユーザ端末Dとから構成されている。
さらに、ユーザ端末Aは、初期値入力部71と、出力値算出部72と、出力部73とから構成され、ユーザ端末BおよびCは、出力値入力部74と、出力値算出部72と、出力部73とから構成され、ユーザ端末Dは、出力値入力部74と、初期値格納部75と、判定部76とから構成されている。
ここで、ユーザ端末Aの初期値入力部71は、初期値を入力し、出力値算出部72に出力する。出力値算出部72は、入力した初期値と自身の鍵とを用いて、出力値を算出する。出力部73は、出力値算出部72が算出した出力値をユーザ端末Bに出力する。
ユーザ端末Bの出力値入力部74は、ユーザ端末Aの出力部73が出力した出力値を入力する。出力値算出部72は、入力した出力値と自身の鍵を用いて、出力値を算出する。出力部73は、算出した出力値をユーザ端末Cに出力する。なお、ユーザ端末Cも同様の処理を行う。
ユーザ端末Dの出力値入力部74は、ユーザ端末Cの出力部73が出力した出力値を入力する。判定部76は、出力値入力部74において入力した出力値と初期値格納部75に格納された初期値が一致するか否かを判定し、一致する場合には、ユーザ端末Aの所有者がグループのメンバーであると判断する。
次に、図8を用いて、本実施例に係る認証システムの処理について説明する。
まず、グループのメンバーは、それぞれ鍵つきの一方向性関数出力値サークルが作成可能な一方向性関数)を用意する。次に、初期値から、ユーザ端末Aが、自分の一方向性関数出力値を計算する。その際には、自分の鍵を使用する。そして、その出力値をユーザ端末Bに送信する(ステップS301)。
次に、ユーザ端末Bが受信した出力値に対して、自身の鍵を用いて、自身が保有する一方向性関数器により出力値を計算してユーザ端末Cに送信する(ステップS302)。
上記S301からS302までの処理を最後のユーザまで実行する(ステップS303)。そして、最後のユーザが計算した出力値と初期値とが一致するか否かにより、メンバーの確認を実行する(ステップS304)。
したがって、本実施例によれば、メンバーの確認を的確かつ速やかに実行することができる。なお、第三者に対しては、初期値と鍵を埋め込んだ一方向性関数を公開することで、グループのメンバーであることを検証できる。
なお、上記した出力値サークルを応用した技術により、新しい認証方式などのサービスを実現することが期待できる。特に、今後、主要なサービスとして考えられているユビキタス事業等に適用することで、新たなサービスの創生を期待できる。
なお、上記で示した処理をコンピュータ読み取り可能な記録媒体にプログラムとして記録し、これをシステムを構成するユーザ端末や認証サーバ、鍵配布サーバに読み込ませ、実行することによって実施例に示した各種システムを実現することができる。ここでいうコンピュータシステムとは、OSや周辺装置等のハードウェアを含む。
また、「コンピュータシステム」は、WWW(World Wide Web)システムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
以上、この発明の実施形態につき、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
本発明の実施形態に係る出力値サークルの構成の一例を示す図である。 本発明の実施形態に係る一方向性関数器の構成図である。 本発明の実施例1に係るシステム構成図である。 本発明の実施例1に係るシステムの処理フローである。 本発明の実施例2に係るシステム構成図である。 本発明の実施例2に係るシステムの処理フローである。 本発明の実施例3に係るシステム構成図である。 本発明の実施例3に係るシステムの処理フローである。 従来技術を説明するための図である。 従来技術を説明するための図である。 従来技術を説明するための図である。
1・・・一方向性関数
2・・・一方向性関数
3・・・一方向性関数
11・・・入力部
12・・・初期入力生成部
13・・・一方向性関数演算部
14・・・衝突確率設定部
15・・・出力部
20・・・ユーザ端末
21・・・送受信部
22・・・出力値保管部
30・・・認証サーバ
31・・・送受信部
32・・・出力値サークル格納部
33・・・出力値保管部
34・・・検証部
40・・・ネットワーク
50・・・ユーザ端末
51・・・受信部
52・・・コンテンツ保管部
53・・・出力値保管部
60・・・鍵配布サーバ
61・・・出力値サークル格納部
62・・・暗号鍵生成部
63・・・暗号化部
64・・・コンテンツ格納部
65・・・送信部
71・・・初期値入力部
72・・・出力値算出部
73・・・出力部
74・・・出力値入力部
75・・・初期値格納部
76・・・判定部

Claims (8)

  1. 入力長l、出力長mの複数の一方向性関数器が連結され、リング状に閉じた出力値サークルであって、
    前記一方向性関数器が、出力長mの範囲で初期入力を選択し、複数回、一方向性関数を計算した出力値が初期入力と一致するようにしたことを特徴とする出力値サークル。
  2. 前記一方向性関数器が、連結する他の一方向性関数器の出力値の上位(m−n)ビットを初期入力とすることを特徴とする請求項1に記載の出力値サークル。
  3. 前記一方向性関数器が、mの衝突確率をパラメータにより制御することを特徴とする請求項1または請求項2に記載の出力値サークル。
  4. 前記一方向性関数器が、鍵kを入力とすることを特徴とする請求項1から請求項3に記載の出力値サークル。
  5. ユーザ端末と認証サーバとからなる認証システムであって、
    前記認証サーバが、
    k個の出力値とk個の前記請求項1に記載の一方向性関数とからなる出力値サークルを備えるとともに、
    前記ユーザ端末に出力値を配布する配布手段と、
    未配布の出力値を保管する保管手段と、
    認証時に、前記ユーザ端末からそれぞれに配布された出力値の提供を要求し、送付された出力値が前記出力値サークルを形成する複数の一方向性関数の出力値のうちの一部であるかどうかを検証する検証手段と、
    を備えたことを特徴とする認証システム。
  6. 複数のユーザ端末からなるグループのメンバーを確認するためのメンバー確認システムであって、
    各ユーザ端末が、複数連結されて、リング状に閉じた出力値サークルを形成することが可能であって、入力長がl、出力長がmであり、出力長mの範囲で初期入力を選択し、複数回、一方向性関数を計算した出力値が初期入力と一致するようにする一方向性関数に鍵を設けたものを備え、
    前記グループのメンバーである任意のユーザ端末Aが、初期値に対して、自身の鍵を用いて、自身が保有する一方向性関数により出力値を計算する第1の出力値算出手段と、
    前記グループのメンバーである他のユーザ端末Bに該計算した出力値を送信する第1の出力手段と
    を備え、
    前記グループのメンバーである他のユーザ端末Bが受信した出力値に対して、自身の鍵を用いて、自身が保有する一方向性関数により出力値を計算する第2の出力値算出手段と、
    前記グループのメンバーである他のユーザ端末Cに該計算した出力値を送信する第2の出力手段と
    を備え、
    上記一連の処理を最後の前記グループのメンバーまで行い、
    前記グループのメンバーである最後のユーザ端末が受信した出力値に対して、自身の鍵を用いて、自身が保有する一方向性関数により出力値を計算する第3の出力値算出手段と、
    初期値を格納する初期値格納手段と、
    前記計算した出力値と前記初期値が一致するか否かにより、メンバーであることの確認を行う判定手段と、
    を備えたことを特徴とするメンバー確認システム。
  7. ユーザ端末と認証サーバとからなる認証システムにおける認証方法であって、
    前記認証サーバが、k個の出力値とk個の前記請求項1に記載の一方向性関数とからなる出力値サークルを備え、
    前記認証サーバが、前記ユーザ端末に出力値を配布する第1のステップと、
    前記認証サーバが、未配布の出力値を保管する第2のステップと、
    前記認証サーバが、認証時に、前記ユーザ端末からそれぞれに配布された出力値の提供を要求し、送付された出力値が前記出力値サークルを形成する複数の一方向性関数の出力値のうちの一部であるかどうかを検証する第3のステップと、
    を備えたことを特徴とする認証方法。
  8. 複数のユーザ端末からなるグループのメンバーを確認するためのメンバー確認システムにおけるメンバー確認方法であって、
    各ユーザ端末が、複数連結されて、リング状に閉じた出力値サークルを形成することが可能であって、入力長がl、出力長がmであり、出力長mの範囲で初期入力を選択し、複数回、一方向性関数を計算した出力値が初期入力と一致するようにする一方向性関数に鍵を設けたものを備えるとともに、
    前記グループのメンバーである任意のユーザ端末Aが、第1の出力値算出手段により、初期値に対して、自身の鍵を用いて、自身が保有する一方向性関数により出力値を計算する第1のステップと、
    前記グループのメンバーである任意のユーザ端末Aが、前記グループのメンバーである他のユーザ端末Bに該計算した出力値を第1の出力手段により送信する第2のステップと
    前記グループのメンバーである他のユーザ端末Bが、第2の出力値算出手段により、受信した出力値に対して、自身の鍵を用いて、自身が保有する一方向性関数により出力値を計算する第3のステップと、
    前記グループのメンバーである他のユーザ端末Bが、前記グループのメンバーである他のユーザ端末Cに該計算した出力値を第2の出力手段により送信する第4のステップと
    上記一連の処理を最後の前記グループのメンバーまで行う第のステップと、
    前記グループのメンバーである最後のユーザ端末が、第3の出力値算出手段により、受信した出力値に対して、自身の鍵を用いて、自身が保有する一方向性関数により出力値を計算する第6のステップと、
    前記グループのメンバーである最後のユーザ端末が、判定手段により、前記計算した出力値と初期値格納手段に格納された初期値が一致するか否かにより、メンバーであることの確認を行う第7のステップと、
    を備えたことを特徴とするメンバー確認方法。
JP2008226675A 2008-09-04 2008-09-04 リング型の出力値サークル、認証システム、鍵配布システム、メンバー確認システムおよび認証方法、鍵配布方法、メンバー確認方法 Expired - Fee Related JP5390814B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008226675A JP5390814B2 (ja) 2008-09-04 2008-09-04 リング型の出力値サークル、認証システム、鍵配布システム、メンバー確認システムおよび認証方法、鍵配布方法、メンバー確認方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008226675A JP5390814B2 (ja) 2008-09-04 2008-09-04 リング型の出力値サークル、認証システム、鍵配布システム、メンバー確認システムおよび認証方法、鍵配布方法、メンバー確認方法

Publications (2)

Publication Number Publication Date
JP2010060861A JP2010060861A (ja) 2010-03-18
JP5390814B2 true JP5390814B2 (ja) 2014-01-15

Family

ID=42187730

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008226675A Expired - Fee Related JP5390814B2 (ja) 2008-09-04 2008-09-04 リング型の出力値サークル、認証システム、鍵配布システム、メンバー確認システムおよび認証方法、鍵配布方法、メンバー確認方法

Country Status (1)

Country Link
JP (1) JP5390814B2 (ja)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH103256A (ja) * 1995-10-16 1998-01-06 Sony Corp 暗号化方法、暗号化装置、記録方法、復号化方法、復号化装置及び記録媒体
JP3659791B2 (ja) * 1998-03-23 2005-06-15 インターナショナル・ビジネス・マシーンズ・コーポレーション 小時間鍵生成の方法及びシステム
US7174013B1 (en) * 1998-10-20 2007-02-06 Lucent Technologies Inc. Efficient universal hashing method
US7613796B2 (en) * 2002-09-11 2009-11-03 Microsoft Corporation System and method for creating improved overlay network with an efficient distributed data structure
JP4610421B2 (ja) * 2005-06-20 2011-01-12 株式会社エヌ・ティ・ティ・ドコモ 無線ネットワークシステム、呼出制御装置、端末装置、および呼出信号生成方法
DE102005044949A1 (de) * 2005-09-20 2007-03-29 Nec Europe Ltd. Verfahren zur Authentifizierung

Also Published As

Publication number Publication date
JP2010060861A (ja) 2010-03-18

Similar Documents

Publication Publication Date Title
US10367796B2 (en) Methods and apparatus for recording a change of authorization state of one or more authorization agents
US11509462B2 (en) Secure data distribution protocol using blockchains
US20190123895A1 (en) Methods and apparatus for verifying a user transaction
US10461939B2 (en) Secure device registration for multi-factor authentication
JP5429912B2 (ja) 認証システム、認証サーバ、サービス提供サーバ、認証方法、及びプログラム
CN111047324B (zh) 用于更新区块链节点处的公钥集合的方法及装置
US8527769B2 (en) Secure messaging with read-undeniability and deletion-verifiability
JP7204070B2 (ja) ブロックチェーンを用いた電子文書署名
CN108959911A (zh) 一种密钥链生成、验证方法及其装置
KR102222612B1 (ko) 스마트 계약 화이트리스트
WO2020219178A1 (en) Method, system and computer readable storage medium for accessibility controls in distributed data systems
US20130185806A1 (en) Personal-information transmission/reception system, personal-information transmission/reception method, personal-information provision apparatus, preference management apparatus and computer program
US20180248685A1 (en) Systems, Devices, and Methods for In-Field Authenticating of Autonomous Robots
CN103379098A (zh) 一种内容分享的方法、装置及其网络系统
CN106664308B (zh) 注册之前的设备验证
US20200035339A1 (en) Blockchain security system for secure record access across multiple computer systems
KR20200085095A (ko) 블록체인 기반으로 데이터를 관리하는 전자 장치 및 데이터 관리 방법
JPWO2017115427A1 (ja) ユーザ認証方法及びかかる方法を実現するためのシステム
Ma et al. CP‐ABE‐Based Secure and Verifiable Data Deletion in Cloud
US20150026799A1 (en) Information processing system, information processing method, and non-transitory computer readable medium
JP5678893B2 (ja) 属性情報連携提供システム、アクセス情報管理装置、アクセス情報代理管理装置、方法、およびプログラム
WO2015079004A1 (en) Method and apparatus for supporting verification of a contract
JPWO2019163040A1 (ja) アクセス管理システム、及びそのプログラム
JP2022548583A (ja) ブロックチェーンのトランザクションを介するデータの共有
JP5390814B2 (ja) リング型の出力値サークル、認証システム、鍵配布システム、メンバー確認システムおよび認証方法、鍵配布方法、メンバー確認方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130115

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130312

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130723

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130919

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131008

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131011

R150 Certificate of patent or registration of utility model

Ref document number: 5390814

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees