JP2010060861A - リング型のハッシュサークル、認証システム、鍵配布システム、メンバー確認システムおよび認証方法、鍵配布方法、メンバー確認方法 - Google Patents

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

Info

Publication number
JP2010060861A
JP2010060861A JP2008226675A JP2008226675A JP2010060861A JP 2010060861 A JP2010060861 A JP 2010060861A JP 2008226675 A JP2008226675 A JP 2008226675A JP 2008226675 A JP2008226675 A JP 2008226675A JP 2010060861 A JP2010060861 A JP 2010060861A
Authority
JP
Japan
Prior art keywords
hash
hash value
circle
key
value
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.)
Granted
Application number
JP2008226675A
Other languages
English (en)
Other versions
JP5390814B2 (ja
Inventor
Shinsaku Kiyomoto
晋作 清本
Toshiaki Tanaka
俊昭 田中
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

Abstract

【課題】リング型のハッシュサークルを形成し、どれか1つのハッシュ値を知っていれば、すべてのハッシュ値が検証可能なリング型のハッシュサークルを提供する。
【解決手段】入力長l、出力長mの複数の一方向性関数器が連結して、リング型をなすハッシュサークルであって、一方向性関数器が、出力長mの範囲で初期入力を選択し、複数回、一方向性関数を計算した出力値が初期入力と一致するようにする。
【選択図】図1

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)の一方向性関数とからなるハッシュサークルを備え、ユーザ端末にハッシュ値を配布するとともに、未配布のハッシュ値を保管する。そして、認証時に、ユーザ端末からそれぞれに配布されたハッシュ値の提供を要求し、送付されたハッシュ値がハッシュサークルの一部であるかどうかを検証する。したがって、ハッシュサークルを構成するハッシュ値を予めユーザ端末に配布しておき、認証時に、この配布したハッシュ値がハッシュサークルの一部であるかどうかを検証することにより、的確にユーザの認証を実行することができる。
(6)本発明は、ユーザ端末と鍵配布サーバとからなる鍵配布システムであって、前記鍵配布サーバが、k個のハッシュ値とk個の前記請求項1に記載の一方向性関数とからなるハッシュサークルを備えるとともに、前記鍵配布サーバが、コンテンツを格納するコンテンツ格納手段と、k個のハッシュ値に対して、他のハッシュ関数器で計算した出力値から鍵を生成する鍵生成手段と、該格納しているコンテンツを前記生成した鍵で暗号化する暗号化手段と、該暗号化したコンテンツを前記ユーザ端末に送信する送信するコンテンツ提供手段と、所定時間の経過毎に、異なる前記ハッシュ値を前記ユーザ端末に送信する送信手段と、を備えたことを特徴とする鍵配布システムを提案している。
この発明によれば、鍵配布サーバが、k個のハッシュ値とk個の(1)に記載の一方向性関数とからなるハッシュサークルを備え、k個のハッシュ値に対して、他のハッシュ関数器で計算した出力値から鍵を生成し、格納しているコンテンツを生成した鍵で暗号化する。そして、その暗号化したコンテンツをユーザ端末に送信する送信するとともに、所定時間の経過毎に、異なるハッシュ値をユーザ端末に送信する。したがって、ハッシュチェーンがリング状になっているため、どれか1つのハッシュ値を受け取ることが出来れば、残りのハッシュ値は計算できる。そのため、正規ユーザは、その時間に参加したとしてもすべての鍵を入手できる。
(7)本発明は、複数のユーザ端末からなるメンバー確認システムであって、各ユーザ端末が、ハッシュサークルを作成可能な前記請求項1に記載の一方向性関数に鍵を設けたものを備え、任意のユーザAが、初期値に対して、自身の鍵を用いて、自身が保有する一方向性関数によりハッシュ値を計算して、他のユーザBに該計算したハッシュ値を送信し、前記他のユーザBが受信したハッシュ値に対して、自身の鍵を用いて、自身が保有する一方向性関数によりハッシュ値を計算し、他のユーザCに該計算したハッシュ値を送信する処理を最後のメンバーまで行い、該最後のメンバーが計算した出力値と前記初期値が一致するか否かにより、メンバーの確認を行うことを特徴とするメンバー確認システムを提案している。
この発明によれば、各ユーザ端末が、ハッシュサークルを作成可能な(1)に記載の一方向性関数に鍵を設けたものを備え、任意のユーザAが、初期値に対して、自身の鍵を用いて、自身が保有する一方向性関数によりハッシュ値を計算して、他のユーザBに該計算したハッシュ値を送信し、他のユーザBが受信したハッシュ値に対して、自身の鍵を用いて、自身が保有する一方向性関数によりハッシュ値を計算し、他のユーザCに計算したハッシュ値を送信する処理を最後のメンバーまで行い、最後のメンバーが計算した出力値と初期値が一致するか否かにより、メンバーの確認を行う。したがって、メンバーの確認を的確かつ速やかに実行することができる。なお、第三者に対しては、初期値と鍵を埋め込んだハッシュ関数を公開することで、グループのメンバーであることを検証できる。
(8)本発明は、ユーザ端末と認証サーバとからなる認証システムにおける認証方法であって、前記認証サーバが、k個のハッシュ値とk個の前記請求項1に記載の一方向性関数とからなるハッシュサークルを備えるとともに、前記認証サーバが、前記ユーザ端末にハッシュ値を配布する第1のステップと、前記認証サーバが、未配布のハッシュ値を保管する第2のステップと、前記認証サーバが、認証時に、前記ユーザ端末からそれぞれに配布されたハッシュ値の提供を要求し、送付されたハッシュ値が前記ハッシュサークルの一部であるかどうかを検証する第3のステップと、を備えたことを特徴とする認証方法を提案している。
この発明によれば、認証サーバが、k個のハッシュ値とk個の(1)の一方向性関数とからなるハッシュサークルを備え、ユーザ端末にハッシュ値を配布するとともに、未配布のハッシュ値を保管する。そして、認証時に、ユーザ端末からそれぞれに配布されたハッシュ値の提供を要求し、送付されたハッシュ値がハッシュサークルの一部であるかどうかを検証する。したがって、ハッシュサークルを構成するハッシュ値を予めユーザ端末に配布しておき、認証時に、この配布したハッシュ値がハッシュサークルの一部であるかどうかを検証することにより、的確にユーザの認証を実行することができる。
(9)本発明は、ユーザ端末と鍵配布サーバとからなる鍵配布システムにおける鍵配布方法であって、前記鍵配布サーバが、k個のハッシュ値とk個の前記請求項1に記載の一方向性関数とからなるハッシュサークルを備えるとともに、前記鍵配布サーバが、k個のハッシュ値に対して、他のハッシュ関数器で計算した出力値から鍵を生成する第1のステップと、前記鍵配布サーバが、格納しているコンテンツを前記生成した鍵で暗号化する第2のステップと、前記鍵配布サーバが、該暗号化したコンテンツを前記ユーザ端末に送信する第3のステップと、前記鍵配布サーバが、所定時間の経過毎に、異なる前記ハッシュ値を前記ユーザ端末に送信する第4のステップと、を備えたことを特徴とする鍵配布方法を提案している。
この発明によれば、鍵配布サーバが、k個のハッシュ値とk個の(1)に記載の一方向性関数とからなるハッシュサークルを備え、k個のハッシュ値に対して、他のハッシュ関数器で計算した出力値から鍵を生成し、格納しているコンテンツを生成した鍵で暗号化する。そして、その暗号化したコンテンツをユーザ端末に送信する送信するとともに、所定時間の経過毎に、異なるハッシュ値をユーザ端末に送信する。したがって、ハッシュチェーンがリング状になっているため、どれか1つのハッシュ値を受け取ることが出来れば、残りのハッシュ値は計算できる。そのため、正規ユーザは、その時間に参加したとしてもすべての鍵を入手できる。
(10)本発明は、複数のユーザ端末からなるメンバー確認システムにおけるメンバー確認方法であって、各ユーザ端末が、ハッシュサークルを作成可能な前記請求項1に記載の一方向性関数に鍵を設けたものを備え、任意のユーザAが、初期値に対して、自身の鍵を用いて、自身が保有する一方向性関数によりハッシュ値を計算して、他のユーザBに該計算したハッシュ値を送信する第1のステップと、前記他のユーザBが受信したハッシュ値に対して、自身の鍵を用いて、自身が保有する一方向性関数によりハッシュ値を計算し、他のユーザCに該計算したハッシュ値を送信する第2のステップと、前記第2のステップの処理を最後のメンバーまで行う第3のステップと、該最後のメンバーが計算した出力値と前記初期値が一致するか否かにより、メンバーの確認を行う第4のステップと、を備えたことを特徴とするメンバー確認方法を提案している。
この発明によれば、各ユーザ端末が、ハッシュサークルを作成可能な(1)に記載の一方向性関数に鍵を設けたものを備え、任意のユーザAが、初期値に対して、自身の鍵を用いて、自身が保有する一方向性関数によりハッシュ値を計算して、他のユーザBに該計算したハッシュ値を送信し、他のユーザBが受信したハッシュ値に対して、自身の鍵を用いて、自身が保有する一方向性関数によりハッシュ値を計算し、他のユーザCに計算したハッシュ値を送信する処理を最後のメンバーまで行い、最後のメンバーが計算した出力値と初期値が一致するか否かにより、メンバーの確認を行う。したがって、メンバーの確認を的確かつ速やかに実行することができる。なお、第三者に対しては、初期値と鍵を埋め込んだハッシュ関数を公開することで、グループのメンバーであることを検証できる。
本発明によれば、リング状にハッシュ値を連接したハッシュサークルを構成することができるため、どれか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 (10)

  1. 入力長l、出力長mの複数の一方向性関数器が連結して、リング型をなすハッシュサークルであって、
    前記一方向性関数器が、出力長mの範囲で初期入力を選択し、複数回、一方向性関数を計算した出力値が初期入力と一致するようにすることを特徴とするハッシュサークル。
  2. 前記一方向性関数器が、連結する他の一方向性関数器の出力値の上位(m−n)ビットを初期入力とすることを特徴とする請求項1に記載のハッシュサークル。
  3. 前記一方向性関数器が、mの衝突確率をパラメータにより制御することを特徴とする請求項1または請求項2に記載のハッシュサークル。
  4. 前記一方向性関数器が、鍵kを入力とすることを特徴とする請求項1から請求項3に記載のハッシュサークル。
  5. ユーザ端末と認証サーバとからなる認証システムであって、
    前記認証サーバが、
    k個のハッシュ値とk個の前記請求項1に記載の一方向性関数とからなるハッシュサークルを備えるとともに、
    前記ユーザ端末にハッシュ値を配布する配布手段と、
    未配布のハッシュ値を保管する保管手段と、
    認証時に、前記ユーザ端末からそれぞれに配布されたハッシュ値の提供を要求し、送付されたハッシュ値が前記ハッシュサークルの一部であるかどうかを検証する検証手段と、
    を備えたことを特徴とする認証システム。
  6. ユーザ端末と鍵配布サーバとからなる鍵配布システムであって、
    前記鍵配布サーバが、
    k個のハッシュ値とk個の前記請求項1に記載の一方向性関数とからなるハッシュサークルを備えるとともに、
    コンテンツを格納するコンテンツ格納手段と、
    k個のハッシュ値に対して、他のハッシュ関数器で計算した出力値から鍵を生成する鍵生成手段と、
    該格納しているコンテンツを前記生成した鍵で暗号化する暗号化手段と、
    該暗号化したコンテンツを前記ユーザ端末に送信する送信するコンテンツ提供手段と、
    所定時間の経過毎に、異なる前記ハッシュ値を前記ユーザ端末に送信する送信手段と、
    を備えたことを特徴とする鍵配布システム。
  7. 複数のユーザ端末からなるメンバー確認システムであって、
    各ユーザ端末が、ハッシュサークルを作成可能な前記請求項1に記載の一方向性関数に鍵を設けたものを備え、
    任意のユーザAが、初期値に対して、自身の鍵を用いて、自身が保有する一方向性関数によりハッシュ値を計算して、他のユーザBに該計算したハッシュ値を送信し、前記他のユーザBが受信したハッシュ値に対して、自身の鍵を用いて、自身が保有する一方向性関数によりハッシュ値を計算し、他のユーザCに該計算したハッシュ値を送信する処理を最後のメンバーまで行い、該最後のメンバーが計算した出力値と前記初期値が一致するか否かにより、メンバーの確認を行うことを特徴とするメンバー確認システム。
  8. ユーザ端末と認証サーバとからなる認証システムにおける認証方法であって、
    前記認証サーバが、k個のハッシュ値とk個の前記請求項1に記載の一方向性関数とからなるハッシュサークルを備え、
    前記認証サーバが、前記ユーザ端末にハッシュ値を配布する第1のステップと、
    前記認証サーバが、未配布のハッシュ値を保管する第2のステップと、
    前記認証サーバが、認証時に、前記ユーザ端末からそれぞれに配布されたハッシュ値の提供を要求し、送付されたハッシュ値が前記ハッシュサークルの一部であるかどうかを検証する第3のステップと、
    を備えたことを特徴とする認証方法。
  9. ユーザ端末と鍵配布サーバとからなる鍵配布システムにおける鍵配布方法であって、
    前記鍵配布サーバが、k個のハッシュ値とk個の前記請求項1に記載の一方向性関数とからなるハッシュサークルを備え、
    前記鍵配布サーバが、k個のハッシュ値に対して、他のハッシュ関数器で計算した出力値から鍵を生成する第1のステップと、
    前記鍵配布サーバが、格納しているコンテンツを前記生成した鍵で暗号化する第2のステップと、
    前記鍵配布サーバが、該暗号化したコンテンツを前記ユーザ端末に送信する第3のステップと、
    前記鍵配布サーバが、所定時間の経過毎に、異なる前記ハッシュ値を前記ユーザ端末に送信する第4のステップと、
    を備えたことを特徴とする鍵配布方法。
  10. 複数のユーザ端末からなるメンバー確認システムにおけるメンバー確認方法であって、
    各ユーザ端末が、ハッシュサークルを作成可能な前記請求項1に記載の一方向性関数に鍵を設けたものを備え、
    任意のユーザAが、初期値に対して、自身の鍵を用いて、自身が保有する一方向性関数によりハッシュ値を計算して、他のユーザBに該計算したハッシュ値を送信する第1のステップと、
    前記他のユーザBが受信したハッシュ値に対して、自身の鍵を用いて、自身が保有する一方向性関数によりハッシュ値を計算し、他のユーザCに該計算したハッシュ値を送信する第2のステップと、
    前記第2のステップの処理を最後のメンバーまで行う第3のステップと、
    該最後のメンバーが計算した出力値と前記初期値が一致するか否かにより、メンバーの確認を行う第4のステップと、
    を備えたことを特徴とするメンバー確認方法。
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 true JP2010060861A (ja) 2010-03-18
JP5390814B2 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)

Citations (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 暗号化方法、暗号化装置、記録方法、復号化方法、復号化装置及び記録媒体
JPH11296076A (ja) * 1998-03-23 1999-10-29 Internatl Business Mach Corp <Ibm> 小時間鍵生成の方法及びシステム
JP2000122538A (ja) * 1998-10-20 2000-04-28 Lucent Technol Inc ビットの集まりの短縮表現を生成する方法
JP2004266796A (ja) * 2002-09-11 2004-09-24 Microsoft Corp 効率的な分散データ構造を備えた改良されたオーバレイネットワークを生成するシステムおよび方法
JP2006352806A (ja) * 2005-06-20 2006-12-28 Ntt Docomo Inc 無線ネットワークシステム、呼出制御装置、および端末装置
JP2007089147A (ja) * 2005-09-20 2007-04-05 Nec Corp 認証方法

Patent Citations (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 暗号化方法、暗号化装置、記録方法、復号化方法、復号化装置及び記録媒体
JPH11296076A (ja) * 1998-03-23 1999-10-29 Internatl Business Mach Corp <Ibm> 小時間鍵生成の方法及びシステム
JP2000122538A (ja) * 1998-10-20 2000-04-28 Lucent Technol Inc ビットの集まりの短縮表現を生成する方法
JP2004266796A (ja) * 2002-09-11 2004-09-24 Microsoft Corp 効率的な分散データ構造を備えた改良されたオーバレイネットワークを生成するシステムおよび方法
JP2006352806A (ja) * 2005-06-20 2006-12-28 Ntt Docomo Inc 無線ネットワークシステム、呼出制御装置、および端末装置
JP2007089147A (ja) * 2005-09-20 2007-04-05 Nec Corp 認証方法

Non-Patent Citations (7)

* Cited by examiner, † Cited by third party
Title
CSNB199700220001; 岡本栄司: "暗号理論入門" 初版3刷, 19961001, p.78,138, 共立出版株式会社 *
CSNG200800619009; 武田 敦志,チャクラボルティ デバシシュ,北形 元,白鳥 則郎: '"P2Pネットワークのための分散型認証システムの設計"' 情報処理学会研究報告 Vol.2008,No.54, 20080612, p.63-68, 社団法人情報処理学会 *
CSNJ200910017121; 武田 敦志,北形 元,松島 悠,木下 哲男,白鳥 則郎: '"P2Pネットワークのための分散ハッシュ型認証手法"' FIT2007 第6回情報科学技術フォーラム 情報科学技術レターズ 第6巻,LM-009, 20070822, p.433-436, 社団法人情報処理学会,社団法人電子情報通信学会 *
JPN6013000344; 岡本栄司: "暗号理論入門" 初版3刷, 19961001, p.78,138, 共立出版株式会社 *
JPN6013035736; 武田 敦志,北形 元,松島 悠,木下 哲男,白鳥 則郎: '"P2Pネットワークのための分散ハッシュ型認証手法"' FIT2007 第6回情報科学技術フォーラム 情報科学技術レターズ 第6巻,LM-009, 20070822, p.433-436, 社団法人情報処理学会,社団法人電子情報通信学会 *
JPN6013035738; 武田 敦志,チャクラボルティ デバシシュ,北形 元,白鳥 則郎: '"P2Pネットワークのための分散型認証システムの設計"' 情報処理学会研究報告 Vol.2008,No.54, 20080612, p.63-68, 社団法人情報処理学会 *
JPN6013035740; David Karger, Eric Lehman, Tom Leighton, Matthew Levine, Daniel Lewin, Rina Panigrahy: '"Consistent Hashing and Random Trees: Distributed Caching Protocols for Relieving Hot Spots on the' Proceedings of the twenty-ninth annual ACM symposium on Theory of c&# *

Also Published As

Publication number Publication date
JP5390814B2 (ja) 2014-01-15

Similar Documents

Publication Publication Date Title
US10367796B2 (en) Methods and apparatus for recording a change of authorization state of one or more authorization agents
US20190123895A1 (en) Methods and apparatus for verifying a user transaction
KR102222612B1 (ko) 스마트 계약 화이트리스트
US8527769B2 (en) Secure messaging with read-undeniability and deletion-verifiability
AU2015334534B2 (en) Encrypted collaboration system and method
JP2020518880A (ja) スマートコントラクトホワイトリストに基づくブロックチェーンネットワークにおけるトランザクションの並列実行
CN111047324B (zh) 用于更新区块链节点处的公钥集合的方法及装置
WO2020219178A1 (en) Method, system and computer readable storage medium for accessibility controls in distributed data systems
JP6026385B2 (ja) 属性情報提供方法および属性情報提供システム
JP5749236B2 (ja) 鍵付け替え管理装置および鍵付け替え管理方法
CN106664308B (zh) 注册之前的设备验证
JP2009089044A (ja) 暗号管理装置、暗号管理方法、暗号管理プログラム
KR20200085095A (ko) 블록체인 기반으로 데이터를 관리하는 전자 장치 및 데이터 관리 방법
Ma et al. CP‐ABE‐Based Secure and Verifiable Data Deletion in Cloud
WO2015079004A1 (en) Method and apparatus for supporting verification of a contract
JPWO2019163040A1 (ja) アクセス管理システム、及びそのプログラム
US8276187B2 (en) Information processing system
JP5390814B2 (ja) リング型の出力値サークル、認証システム、鍵配布システム、メンバー確認システムおよび認証方法、鍵配布方法、メンバー確認方法
Piechotta et al. A secure dynamic collaboration environment in a cloud context
KR102526114B1 (ko) 암호화 및 복호화를 위한 장치 및 방법
Haddad et al. E2EE enhanced patient-centric blockchain-based system for EHR management
EP4171075A1 (en) Method for synchronization of contact information
JP2019176264A (ja) 登録装置、管理システム、登録方法及び登録プログラム
JP7119071B2 (ja) 認証システム、認証装置、認証方法、およびプログラム
Patwary et al. A Prototype of a Secured File Storing and Sharing System for Cloud Storage Infrastructure

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