(57)【要約】【課題】  少ない演算量で安全にノード間の秘密情報更新方法を提供すること。【解決手段】  まず、端末装置は、サーバで生成された乱数と端末装置の秘密情報とを用いてハッシュ関数Ｈ（１）を演算して、この演算結果をサーバに送り、サーバは、サーバで生成された乱数とサーバにおいて記憶される端末装置の秘密情報とを用いてハッシュ関数Ｈ（２）を演算し、サーバは、ハッシュ関数Ｈ（１）の演算結果とハッシュ関数Ｈ（２）の演算結果が等しいことを確認する。次いで、サーバは、新しい秘密情報と、新しい秘密情報および現在の秘密情報を用いて生成したブラインド情報とを端末装置に送る。また、サーバは、現在の秘密情報を新しい秘密情報に置換する。ブラインド情報を受け取った端末装置は、ブラインド情報と端末装置の現在の秘密情報を用いて、サーバで生成された新しい秘密情報を取得し、この新しい秘密情報で端末装置の現在の秘密情報を置換する。【選択図】  図４
2006352800.tif 000002
【特許請求の範囲】
【請求項１】
サーバと端末装置とが、読取装置を介して相互に通信可能に接続された通信ネットワークにおいて、
サーバは、
乱数を出力する乱数生成手段と、
端末装置に固有の秘密情報を記憶する記憶手段と、
読取装置から送信されたデータを受信する受信手段と、
サーバの記憶手段に記憶される秘密情報と乱数生成手段によって出力された乱数とから構成される値を一方向性関数Ｈの入力として、この演算結果を出力する一方向性関数Ｈ演算手段と、
サーバの一方向性関数Ｈ演算手段によって出力された演算結果と、サーバの受信手段によって受信されたデータとが等しいか否かを判定する判定手段と、
乱数を、端末装置に固有の新たな秘密情報として出力する秘密情報生成手段と、
サーバの記憶手段に記憶される秘密情報を入力とする一方向性関数Ｊの演算結果と、秘密情報生成手段によって出力された秘密情報との排他的論理和をブラインド情報として出力するブラインド情報生成手段と、
乱数生成手段によって出力された乱数、あるいは、サーバのブラインド情報生成手段によって出力されたブラインド情報を読取装置に送信する送信手段と、
サーバの秘密情報生成手段によって出力された秘密情報を、サーバの記憶手段に記憶する更新手段と
を備え、
読取装置は、
サーバの送信手段によって送信された、サーバの乱数生成手段によって出力された乱数、あるいは、サーバのブラインド情報生成手段によって出力されたブラインド情報を受信する対サーバ受信手段と、
読取装置の対サーバ受信手段によって受信した、サーバの乱数生成手段によって出力された乱数、あるいは、サーバのブラインド情報生成手段によって出力されたブラインド情報を端末装置に送信する対端末装置送信手段と、
端末装置から送信されたデータを受信する対端末装置受信手段と、
読取装置の対端末装置受信手段によって受信した端末装置から送信されたデータ、あるいは、端末装置に対する読取開始を表す情報をサーバに送信する対サーバ送信手段と
を備え、
端末装置は、
端末装置に固有の秘密情報を記憶する記憶手段と、
読取装置の対端末装置送信手段によって送信された、サーバの乱数生成手段によって出力された乱数、あるいは、サーバのブラインド情報生成手段によって出力されたブラインド情報を受信する受信手段と、
端末装置の受信手段によって受信したサーバの乱数生成手段によって出力された乱数と、端末装置の記憶手段に記憶される秘密情報とから構成される値を一方向性関数Ｈの入力として、この演算結果を出力する一方向性関数Ｈ演算手段と、
端末装置の一方向性関数Ｈ演算手段によって出力された演算結果を読取装置に送信する送信手段と、
端末装置の受信手段によって受信した、サーバのブラインド情報生成手段によって出力されたブラインド情報と、端末装置の記憶手段に記憶される秘密情報を入力とする一方向性関数Ｊの演算結果との排他的論理和によって、サーバの秘密情報生成手段によって出力された秘密情報を得る秘密情報取得手段と、
端末装置の秘密情報取得手段によって得られた秘密情報を、端末装置の記憶手段に記憶する更新手段と
を備え、
読取装置の対サーバ送信手段が、端末装置を読み取る際に、端末装置に対する読取開始を表す情報をサーバに対して送信する第１対サーバ送信ステップと、
サーバの受信手段が、第１対サーバ送信ステップにおいて送信された端末装置に対する読取開始を表す情報を受信する第１サーバ受信ステップと、
サーバの乱数生成手段が、乱数を出力する乱数生成ステップと、
サーバの送信手段が、乱数生成ステップにおいて出力された乱数を読取装置に対して送信する第１サーバ送信ステップと、
読取装置の対サーバ受信手段が、第１サーバ送信ステップにおいて送信された、乱数生成ステップにおいて出力された乱数を受信する第１対サーバ受信ステップと、
読取装置の対端末装置送信手段が、第１対サーバ受信ステップにおいて受信した、乱数生成ステップにおいて出力された乱数を、端末装置に送信する第１対端末装置送信ステップと、
端末装置の受信手段が、第１対端末装置送信ステップにおいて送信された、乱数生成ステップにおいて出力された乱数を受信する第１端末装置受信ステップと、
端末装置の一方向性関数Ｈ演算手段が、第１端末装置受信ステップにおいて受信した乱数生成ステップにおいて出力された乱数と、端末装置の記憶手段に記憶される秘密情報とから構成される値を一方向性関数Ｈの入力として、この演算結果を出力する端末装置一方向性関数Ｈ演算ステップと、
端末装置の送信手段が、端末装置一方向性関数Ｈ演算ステップにおいて出力された演算結果を読取装置に送信する対読取装置送信ステップと、
読取装置の対端末装置受信手段が、対読取装置送信ステップにおいて送信された、端末装置一方向性関数Ｈ演算ステップにおいて出力された演算結果を受信する対端末装置受信ステップと、
読取装置の対サーバ送信手段が、対端末装置受信ステップにおいて受信した、端末装置一方向性関数Ｈ演算ステップにおいて出力された演算結果をサーバに送信する第２対サーバ送信ステップと、
サーバの受信手段が、第２対サーバ送信ステップにおいて送信された、端末装置一方向性関数Ｈ演算ステップにおいて出力された演算結果を受信する第２サーバ受信ステップと、
サーバの一方向性関数Ｈ演算手段が、サーバの記憶手段に記憶される秘密情報と乱数生成ステップにおいて出力された乱数とから構成される値を一方向性関数Ｈの入力として、この演算結果を出力するサーバ一方向性関数Ｈ演算ステップと、
サーバの判定手段が、第２サーバ受信ステップにおいて受信した端末装置一方向性関数Ｈ演算ステップにおいて出力された演算結果と、サーバ一方向性関数Ｈ演算ステップにおいて出力された演算結果とが等しいか否かを判定する判定ステップと、
判定ステップにおいて、第２サーバ受信ステップにおいて受信した端末装置一方向性関数Ｈ演算ステップにおいて出力された演算結果と、サーバ一方向性関数Ｈ演算ステップにおいて出力された演算結果とが等しいと判定された（認証合格判定）場合に、サーバの秘密情報生成手段が、乱数を端末装置に固有の新たな秘密情報として出力する秘密情報生成ステップと、
認証合格判定の場合に、サーバのブラインド情報生成手段が、サーバの記憶手段に記憶される秘密情報を入力とする一方向性関数Ｊの演算結果と、秘密情報生成ステップにおいて出力された秘密情報との排他的論理和をブラインド情報として出力するブラインド情報生成ステップと、
認証合格判定の場合に、サーバの送信手段が、ブラインド情報生成ステップにおいて出力されたブラインド情報を読取装置に送信する第２サーバ送信ステップと、
認証合格判定の場合に、サーバの更新手段が、秘密情報生成ステップにおいて出力された秘密情報を、サーバの記憶手段に記憶する更新ステップと、
読取装置の対サーバ受信手段が、第２サーバ送信ステップにおいて送信された、ブラインド情報生成ステップにおいて出力されたブラインド情報を受信する第２対サーバ受信ステップと、
読取装置の対端末装置送信手段が、第２対サーバ受信ステップにおいて受信した、ブラインド情報生成ステップにおいて出力されたブラインド情報を、端末装置に送信する第２対端末装置送信ステップと、
端末装置の受信手段が、第２対端末装置送信ステップにおいて送信された、ブラインド情報生成ステップにおいて出力されたブラインド情報を受信する第２端末装置受信ステップと、
端末装置の秘密情報取得手段が、第２端末装置受信ステップにおいて受信した、ブラインド情報生成ステップにおいて出力されたブラインド情報と、端末装置の記憶手段に記憶される秘密情報を入力とする一方向性関数Ｊの演算結果との排他的論理和によって、秘密情報生成ステップにおいて出力された秘密情報を得る秘密情報取得ステップと、
端末装置の更新手段が、秘密情報取得ステップにおいて得られた秘密情報を、端末装置の記憶手段に記憶する更新ステップと
を有することを特徴とする秘密情報更新方法。
【請求項２】
サーバは、サーバの記憶手段に記憶される秘密情報とブラインド情報生成手段によって出力されたブラインド情報とから構成される値を一方向性関数Ｄの入力として、この演算結果を出力する一方向性関数Ｄ演算手段も備え、
サーバの送信手段は、サーバの一方向性関数Ｄ演算手段によって出力された演算結果も読取装置に送信することが可能であり、
読取装置の対サーバ受信手段は、サーバの一方向性関数Ｄ演算手段によって出力された演算結果も受信可能であり、
読取装置の対端末装置送信手段は、サーバの一方向性関数Ｄ演算手段によって出力された演算結果も端末装置に送信可能であり、
端末装置の受信手段は、サーバの一方向性関数Ｄ演算手段によって出力された演算結果も受信可能であり、
端末装置は、
端末装置の記憶手段に記憶される秘密情報と、端末装置の受信手段によって受信したサーバのブラインド情報生成手段によって出力されたブラインド情報とから構成される値を一方向性関数Ｄの入力として、この演算結果を出力する一方向性関数Ｄ演算手段と、
端末装置の一方向性関数Ｄ演算手段によって出力された演算結果と、端末装置の受信手段によって受信したサーバの一方向性関数Ｄ演算手段によって出力された演算結果とが等しいか否かを判定する判定手段と
を備え、
認証合格判定の場合に、サーバの一方向性関数Ｄ演算手段が、サーバの記憶手段に記憶される秘密情報とブラインド情報生成ステップにおいて出力されたブラインド情報とから構成される値を一方向性関数Ｄの入力として、この演算結果を出力するサーバ一方向性関数Ｄ演算ステップも有し、
認証合格判定の場合における第２サーバ送信ステップは、サーバ一方向性関数Ｄ演算ステップにおいて出力された演算結果も送信し、
第２対サーバ受信ステップは、サーバ一方向性関数Ｄ演算ステップにおいて出力された演算結果も受信し、
第２対端末装置送信ステップは、サーバ一方向性関数Ｄ演算ステップにおいて出力された演算結果も送信し、
第２端末装置受信ステップは、サーバ一方向性関数Ｄ演算ステップにおいて出力された演算結果も受信し、
端末装置の一方向性関数Ｄ演算手段が、端末装置の記憶手段に記憶される秘密情報と、第２端末装置受信ステップにおいて受信したブラインド情報生成ステップにおいて出力されたブラインド情報とから構成される値を一方向性関数Ｄの入力として、この演算結果を出力する端末装置一方向性関数Ｄ演算ステップと、
端末装置の判定手段が、端末装置一方向性関数Ｄ演算ステップにおいて出力された演算結果と、第２端末装置受信ステップにおいて受信したサーバ一方向性関数Ｄ演算ステップにおいて出力された演算結果とが等しいか否かを判定する端末装置判定ステップとを有し、
秘密情報取得ステップは、端末装置判定ステップにおいて、端末装置一方向性関数Ｄ演算ステップにおいて出力された演算結果と、第２端末装置受信ステップにおいて受信したサーバ一方向性関数Ｄ演算ステップにおいて出力された演算結果とが等しいと判定された場合に実行される
ことを特徴とする請求項１に記載の秘密情報更新方法。
【請求項３】
サーバと端末装置とが、読取装置を介して相互に通信可能に接続された通信ネットワークにおいて、
サーバは、
端末装置に固有の秘密情報を記憶する記憶手段と、
読取装置から送信されたデータを受信する受信手段と、
サーバの記憶手段に記憶される秘密情報に対して、１回以上の一方向性関数Ｈの演算を施し、この演算結果を出力する一方向性関数Ｈ演算手段と、
サーバの一方向性関数Ｈ演算手段によって出力された演算結果に対して、一方向性関数Ｇの演算を施し、この演算結果を出力する一方向性関数Ｇ演算手段と、
サーバの一方向性関数Ｇ演算手段によって出力された演算結果と、サーバの受信手段によって受信されたデータとが等しいか否かを判定する第１判定手段と、
サーバの第１判定手段によって、サーバの一方向性関数Ｇ演算手段によって出力された演算結果と、サーバの受信手段によって受信されたデータとが等しいと判定された場合における、サーバの一方向性関数Ｈ演算手段によって出力された演算結果を得るに施した一方向性関数Ｈの演算回数を出力する演算回数出力手段と、
サーバの演算回数出力手段によって出力された演算回数と、所定の閾値とが等しいか否かを判定する第２判定手段と、
乱数を、端末装置に固有の新たな秘密情報として出力する秘密情報生成手段と、
サーバの記憶手段に記憶される秘密情報を入力として一方向性関数Ｈの演算を行い、この演算結果を、新たな秘密情報として記憶手段に記憶する更改手段と、
サーバの記憶手段に記憶される秘密情報を入力とする一方向性関数Ｊの演算結果と、秘密情報生成手段によって出力された秘密情報との排他的論理和をブラインド情報として出力するブラインド情報生成手段と、
サーバのブラインド情報生成手段によって出力されたブラインド情報を読取装置に送信する送信手段と、
サーバの秘密情報生成手段によって出力された秘密情報を、サーバの記憶手段に記憶する更新手段と
を備え、
読取装置は、
サーバの送信手段によって送信された、サーバのブラインド情報生成手段によって出力されたブラインド情報を受信する対サーバ受信手段と、
読取装置の対サーバ受信手段によって受信した、サーバのブラインド情報生成手段によって出力されたブラインド情報、あるいは、端末装置に対する読取開始を表す情報を端末装置に送信する対端末装置送信手段と、
端末装置から送信されたデータを受信する対端末装置受信手段と、
読取装置の対端末装置受信手段によって受信した端末装置から送信されたデータをサーバに送信する対サーバ送信手段と
を備え、
端末装置は、
端末装置に固有の秘密情報を記憶する記憶手段と、
読取装置の対端末装置送信手段によって送信された、サーバのブラインド情報生成手段によって出力されたブラインド情報、あるいは、端末装置に対する読取開始を表す情報を受信する受信手段と、
端末装置の記憶手段に記憶される秘密情報を一方向性関数Ｈの入力として、この演算結果を出力する一方向性関数Ｈ演算手段と、
端末装置の一方向性関数Ｈ演算手段によって出力された演算結果を、新たな秘密情報として記憶手段に記憶する更改手段と、
端末装置の一方向性関数Ｈ演算手段によって出力された演算結果を一方向性関数Ｇの入力として、この演算結果を出力する一方向性関数Ｇ演算手段と、
端末装置の一方向性関数Ｇ演算手段によって出力された演算結果を読取装置に送信する送信手段と、
端末装置の受信手段によって受信した、サーバのブラインド情報生成手段によって出力されたブラインド情報と、端末装置の記憶手段に記憶される秘密情報を入力とする一方向性関数Ｊの演算結果との排他的論理和によって、サーバの秘密情報生成手段によって出力された秘密情報を得る秘密情報取得手段と、
端末装置の秘密情報取得手段によって得られた秘密情報を、端末装置の記憶手段に記憶する更新手段と
を備え、
読取装置の対端末装置送信手段が、端末装置を読み取る際に、端末装置に対する読取開始を表す情報を端末装置に対して送信する第１対端末装置送信ステップと、
端末装置の受信手段が、第１対端末装置送信ステップにおいて送信された端末装置に対する読取開始を表す情報を受信する第１端末装置受信ステップと、
端末装置の一方向性関数Ｈ演算手段が、端末装置の記憶手段に記憶される秘密情報を一方向性関数Ｈの入力として、この演算結果を出力する端末装置一方向性関数Ｈ演算ステップと、
端末装置の更改手段が、端末装置一方向性関数Ｈ演算ステップにおいて出力された演算結果を、新たな秘密情報として記憶手段に記憶する端末装置更改ステップと、
端末装置の一方向性関数Ｇ演算手段が、端末装置一方向性関数Ｈ演算ステップにおいて出力された演算結果を一方向性関数Ｇの入力として、この演算結果を出力する端末装置一方向性関数Ｇ演算ステップと、
端末装置の送信手段が、端末装置一方向性関数Ｇ演算ステップにおいて出力された演算結果を読取装置に送信する端末装置送信ステップと、
読取装置の対端末装置受信手段が、端末装置送信ステップにおいて送信された、端末装置一方向性関数Ｇ演算ステップにおいて出力された演算結果を受信する対端末装置受信ステップと、
読取装置の対サーバ送信手段が、対端末装置受信ステップにおいて受信した、端末装置一方向性関数Ｇ演算ステップにおいて出力された演算結果をサーバに送信する対サーバ送信ステップと、
サーバの受信手段が、対サーバ送信ステップにおいて送信された、端末装置一方向性関数Ｇ演算ステップにおいて出力された演算結果を受信するサーバ受信ステップと、
サーバの一方向性関数Ｈ演算手段が、サーバの記憶手段に記憶される秘密情報に対して、１回以上の一方向性関数Ｈの演算を施し、この演算結果を出力するサーバ一方向性関数Ｈ演算ステップと、
サーバの一方向性関数Ｇ演算手段が、サーバ一方向性関数Ｈ演算ステップにおいて出力された演算結果に対して、一方向性関数Ｇの演算を施し、この演算結果を出力するサーバ一方向性関数Ｇ演算ステップと、
サーバの第１判定手段が、サーバ一方向性関数Ｇ演算ステップにおいて出力された演算結果と、サーバ受信ステップにおいて受信された端末装置一方向性関数Ｇ演算ステップにおいて出力された演算結果とが等しいか否かを判定する第１判定ステップと、
サーバの演算回数出力手段が、第１判定ステップにおいて、サーバ一方向性関数Ｇ演算ステップにおいて出力された演算結果と、サーバ受信ステップにおいて受信された端末装置一方向性関数Ｇ演算ステップにおいて出力された演算結果とが等しいと判定された場合における、サーバ一方向性関数Ｈ演算ステップにおいて出力された演算結果を得るに施した一方向性関数Ｈの演算回数を出力する演算回数出力ステップと、
サーバの第２判定手段が、演算回数出力ステップにおいて出力された演算回数と、所定の閾値とが等しいか否かを判定する第２判定ステップと、
第２判定ステップにおいて、演算回数出力ステップにおいて出力された演算回数と、所定の閾値とが等しいと判定されなかった（閾値不合格判定）場合に、サーバの更改手段が、サーバの記憶手段に記憶される秘密情報を入力として一方向性関数Ｈの演算を行い、この演算結果を、新たな秘密情報として記憶手段に記憶する更改ステップと、
第２判定ステップにおいて、演算回数出力ステップにおいて出力された演算回数と、所定の閾値とが等しいと判定された（閾値合格判定）場合に、サーバの秘密情報生成手段が、乱数を、端末装置に固有の新たな秘密情報として出力する秘密情報生成ステップと、
閾値合格判定の場合に、サーバのブラインド情報生成手段が、サーバの記憶手段に記憶される秘密情報を入力とする一方向性関数Ｊの演算結果と、秘密情報生成ステップにおいて出力された秘密情報との排他的論理和をブラインド情報として出力するブラインド情報生成ステップと、
閾値合格判定の場合に、サーバの更新手段が、秘密情報生成ステップにおいて出力された秘密情報を、サーバの記憶手段に記憶する更新ステップと
閾値合格判定の場合に、サーバの送信手段が、ブラインド情報生成ステップにおいて出力されたブラインド情報を読取装置に送信する対読取装置送信ステップと、
閾値合格判定の場合において、読取装置の対サーバ受信手段が、対読取装置送信ステップにおいて送信された、ブラインド情報生成ステップにおいて出力されたブラインド情報を受信する対サーバ受信ステップと、
読取装置の対端末装置送信手段が、対サーバ受信ステップにおいて受信したブラインド情報生成ステップにおいて出力されたブラインド情報を端末装置に送信する第２対端末装置送信ステップと、
端末装置の受信手段が、第２対端末装置送信ステップにおいて送信されたブラインド情報生成ステップにおいて出力されたブラインド情報を受信する第２端末装置受信ステップと、
端末装置の秘密情報取得手段が、第２端末装置受信ステップにおいて受信した、ブラインド情報生成ステップにおいて出力されたブラインド情報と、端末装置の記憶手段に記憶される秘密情報を入力とする一方向性関数Ｊの演算結果との排他的論理和によって、秘密情報生成ステップにおいて出力された秘密情報を得る秘密情報取得ステップと、
端末装置の更新手段が、秘密情報取得ステップにおいて得られた秘密情報を、端末装置の記憶手段に記憶する更新ステップと
を有することを特徴とする秘密情報更新方法。
【請求項４】
サーバは、サーバの記憶手段に記憶される秘密情報とブラインド情報生成手段によって出力されたブラインド情報とから構成される値を一方向性関数Ｄの入力として、この演算結果を出力する一方向性関数Ｄ演算手段も備え、
サーバの送信手段は、サーバの一方向性関数Ｄ演算手段によって出力された演算結果も読取装置に送信することが可能であり、
読取装置の対サーバ受信手段は、サーバの一方向性関数Ｄ演算手段によって出力された演算結果も受信可能であり、
読取装置の対端末装置送信手段は、サーバの一方向性関数Ｄ演算手段によって出力された演算結果も端末装置に送信可能であり、
端末装置の受信手段は、サーバの一方向性関数Ｄ演算手段によって出力された演算結果も受信可能であり、
端末装置は、
端末装置の記憶手段に記憶される秘密情報と、端末装置の受信手段によって受信したサーバのブラインド情報生成手段によって出力されたブラインド情報とから構成される値を一方向性関数Ｄの入力として、この演算結果を出力する一方向性関数Ｄ演算手段と、
端末装置の一方向性関数Ｄ演算手段によって出力された演算結果と、端末装置の受信手段によって受信したサーバの一方向性関数Ｄ演算手段によって出力された演算結果とが等しいか否かを判定する判定手段と
を備え、
閾値合格判定の場合に、サーバの一方向性関数Ｄ演算手段が、サーバの記憶手段に記憶される秘密情報とブラインド情報生成ステップにおいて出力されたブラインド情報とから構成される値を一方向性関数Ｄの入力として、この演算結果を出力するサーバ一方向性関数Ｄ演算ステップも有し、
閾値合格判定の場合における第２送信ステップは、サーバ一方向性関数Ｄ演算ステップにおいて出力された演算結果も送信し、
第２対サーバ受信ステップは、サーバ一方向性関数Ｄ演算ステップにおいて出力された演算結果も受信し、
第２対端末装置送信ステップは、サーバ一方向性関数Ｄ演算ステップにおいて出力された演算結果も送信し、
第２端末装置受信ステップは、サーバ一方向性関数Ｄ演算ステップにおいて出力された演算結果も受信し、
端末装置の一方向性関数Ｄ演算手段が、端末装置の記憶手段に記憶される秘密情報と、第２端末装置受信ステップにおいて受信したブラインド情報生成ステップにおいて出力されたブラインド情報とから構成される値を一方向性関数Ｄの入力として、この演算結果を出力する端末装置一方向性関数Ｄ演算ステップと、
端末装置の判定手段が、端末装置一方向性関数Ｄ演算ステップにおいて出力された演算結果と、第２端末装置受信ステップにおいて受信したサーバ一方向性関数Ｄ演算ステップにおいて出力された演算結果とが等しいか否かを判定する端末装置判定ステップとを有し、
秘密情報取得ステップは、端末装置判定ステップにおいて、端末装置一方向性関数Ｄ演算ステップにおいて出力された演算結果と、第２端末装置受信ステップにおいて受信したサーバ一方向性関数Ｄ演算ステップにおいて出力された演算結果とが等しいと判定された場合に実行される
ことを特徴とする請求項３に記載の秘密情報更新方法。
【請求項５】
端末装置は他の端末装置に対して通信する通信手段を備え、端末装置同士が相互に通信可能であり、
請求項１ないし請求項４のいずれかに記載の秘密情報更新方法の秘密情報取得ステップにおいて、サーバの秘密情報生成手段によって出力された秘密情報を得た一方の端末装置（端末装置Ａ）が、端末装置Ａの通信手段によって、
未だ、請求項１ないし請求項４のいずれかに記載の秘密情報更新方法によって、サーバの秘密情報生成手段によって出力された秘密情報を得ていない他方の端末装置（端末装置Ｂ）に対して、
第２端末装置受信ステップにおいて受信した、ブラインド情報生成ステップにおいて出力されたブラインド情報を送信する端末間送信ステップと、
端末装置Ｂの秘密情報取得手段が、端末間送信ステップにおいて受信した、ブラインド情報生成ステップにおいて出力されたブラインド情報と、端末装置Ｂの記憶手段に記憶される秘密情報を入力とする一方向性関数Ｊの演算結果との排他的論理和によって、秘密情報生成ステップにおいて出力された秘密情報を得る端末間秘密情報取得ステップと
を有する請求項１ないし請求項４のいずれかに記載の秘密情報更新方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報セキュリティ技術に関するものであり、より詳しくは、ノード間で共有される情報の更新技術に関する。
【背景技術】
【０００２】
個別端末が、あるサーバが自己にアクセス可能な送信元であるか否かを検証する、あるいは逆に、サーバが、ある個別端末が自己にアクセス可能な送信元であるか否かを検証する方法は、個別端末とサーバとが共有する情報を送信元から受信したか否かで検証を行う方法（従来方法）がある。
【０００３】
なお、出願人は、先行技術文献に該当する文献（特許文献を含む。）を本発明出願時において知りえていない。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、従来方法では、アクセスの度に送受信される値（個別端末とサーバとが共有する情報）が固定されているため、複数回のアクセスを想定した場合のリプレイアタック等の攻撃を防ぐ事が出来ない。
【０００５】
そこで、リプレイアタックなどの不正攻撃に対する対タンパ性を有するためには、アクセスの度に送受信される値を異なるものとし、この値を基に送信元の検証を可能とする必要がある。そのためには、アクセスの度にサーバと個別端末とが、個別端末とサーバとが共有する情報を更新する必要がある。この個別端末とサーバとが共有する情報は、外部に露見してはならない秘密のものであることを要する。以後、個別端末とサーバとが共有する情報を秘密情報と呼ぶことにする。
【０００６】
なお、このような秘密情報の更新には、次のような性質も付加的に要求される場合がある。
例えば個別端末が、その外部から更新情報を受け取り、個別端末のメモリ内の秘密情報を更新する場合、信頼あるセキュリティサーバなどから送られた秘密情報であるか否かを識別するために、個別端末が受取った秘密情報に対して検証を行える必要がある。
【０００７】
また、外部の不正攻撃から送信者の匿名性を守りたい場合は、送信者の識別情報であるＩＤ（identification）を提示しなくても、受信者のみが送信者を識別できることが必要となる。
【０００８】
さらに、秘密情報を更新したか否かを送信元（サーバあるいは個別端末）が判断するためには、送信元が、送信先（個別端末あるいはサーバ）において秘密情報が更新されたことを検証可能とする必要がある。
【０００９】
認証機能を付加させて秘密情報の更新を行う手段としては、公開鍵を利用したディジタル署名が有用であるが、一般的にディジタル署名による認証には多くの演算量を必要とし、そのような演算を可能とする演算機能を搭載することはコストの面から好ましくない場合もある。例えば、個別端末が、低コスト化が望まれるＲＦＩＤ（Radio Frequency Identification）や、演算機能を豊富に搭載しえないモバイル端末（例えば携帯電話、ＰＤＡ（Personal Digital Assistance）など）においては、最良の手段とはなりえない。
【００１０】
また、サーバと個別端末間の秘密情報更新だけではなく、必要に応じて、例えば個別端末間での秘密情報更新が要求される場合もある。
【００１１】
そこで、本発明は、少ない演算量で安全にノード間の秘密情報更新方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記課題を解決するために、本発明の秘密情報更新方法は、まず、端末装置は、サーバで生成された乱数と端末装置の秘密情報とを用いてハッシュ関数Ｈ（１）を演算して、この演算結果をサーバに送り、サーバは、サーバで生成された乱数とサーバにおいて記憶される端末装置の秘密情報とを用いてハッシュ関数Ｈ（２）を演算し、サーバは、ハッシュ関数Ｈ（１）の演算結果とハッシュ関数Ｈ（２）の演算結果が等しいことを確認する。次いで、サーバは、新しい秘密情報と、新しい秘密情報および現在の秘密情報を用いて生成したブラインド情報とを端末装置に送る。また、サーバは、現在の秘密情報を新しい秘密情報に置換する。ブラインド情報を受け取った端末装置は、ブラインド情報と端末装置の現在の秘密情報を用いて、サーバで生成された新しい秘密情報を取得し、この新しい秘密情報で端末装置の現在の秘密情報を置換する。
【００１３】
あるいは、本発明の秘密情報更新方法は、まず、端末装置が、端末装置の秘密情報にハッシュ関数Ｈを演算した結果にハッシュ関数Ｇを演算した演算結果Ｇ（１）をサーバに送り、サーバは、サーバに記憶される端末装置の秘密情報にハッシュ関数Ｈをｈ回演算した結果にハッシュ関数Ｇを演算した演算結果Ｇ（２）を求め、さらに、演算結果Ｇ（１）と演算結果Ｇ（２）とが一致したときのハッシュ関数Ｈの演算回数ｈを求める。次いで、この演算回数ｈが所定の閾値に一致した場合に、サーバは、新しい秘密情報と、新しい秘密情報および現在の秘密情報を用いて生成したブラインド情報とを端末装置に送る。また、サーバは、現在の秘密情報を新しい秘密情報に置換する。ブラインド情報を受け取った端末装置は、ブラインド情報と端末装置の現在の秘密情報を用いて、サーバで生成された新しい秘密情報を取得し、この新しい秘密情報で端末装置の現在の秘密情報を置換する。
【発明の効果】
【００１４】
本発明によれば、一方向性関数演算に基づくことで、少ない演算量で安全にノード間の秘密情報を更新することができる。
【発明を実施するための最良の形態】
【００１５】
＜第１実施形態＞
まず、本発明の第１実施形態について各図を参照して説明する。
図１は、読取装置（３）を介したサーバ（１）とＲＦＩＤ（２）との通信ネットワークの態様を示した図である。
図２は、第１実施形態に係わるサーバ（１）のハードウェア構成を例示した構成ブロック図である。
図３は、第１実施形態に係わるＲＦＩＤ（２）のハードウェア構成を例示した構成ブロック図である。
図４は、第１実施形態に係わるサーバ（１）の機能ブロック図である。
図５は、第１実施形態に係わるＲＦＩＤ（２）の機能ブロック図である。
図６は、第１実施形態に係わる秘密情報更新方法の処理の流れを示すフローチャート（その１）である。
図７は、第１実施形態に係わる秘密情報更新方法の処理の流れを示すフローチャート（その２）である。
図８は、第１実施形態に係わる秘密情報更新方法の処理の流れを示すフローチャート（その３）である。
図９は、サーバ（１）の外部記憶装置（１７）に記憶されるデータベースのデータ構成を示す図である。
図１０は、Ｂデータベースにおける秘密情報を用いた判定処理示す部分フローチャートである。
【００１６】
＜通信ネットワーク＞
後述するサーバ（１）、ＲＦＩＤ（２）、読取装置（３）によって構成される通信ネットワークの態様を図１に示す。サーバ（１）、ＲＦＩＤ（２）、読取装置（３）は、通信ネットワークの構成単位（ノード）である。
ＲＦＩＤ（２）と読取装置（３）との通信は、ＲＦＩＤ（２）のアンテナ（２８）と読取装置（３）のアンテナ（３１）とによる無線通信で行われ、サーバ（１）と読取装置（３）との通信は、サーバ（１）の通信部（１３）と読取装置（３）の通信手段とを通信可能に接続するケーブルを介して行われるとする。また、サーバ（１）と読取装置（３）との通信区間は、通信における安全（通信傍受などに対して耐性を有している）が保証されたものであるとする。
【００１７】
＜サーバ＞
図２に例示するように、サーバ（１）は、キーボードなどが接続可能な入力部（１１）、液晶ディスプレイなどが接続可能な出力部（１２）、サーバ（１）外部に通信可能な通信装置（例えば通信ケーブル）が接続可能な通信部（１３）、ＣＰＵ（Central Processing Unit）（１４）〔キャッシュメモリなどを備えていてもよい。〕、メモリであるＲＡＭ（１５）、ＲＯＭ（１６）やハードディスクである外部記憶装置（１７）並びにこれらの入力部（１１）、出力部（１２）、通信部（１３）、ＣＰＵ（１４）、ＲＡＭ（１５）、ＲＯＭ（１６）、外部記憶装置（１７）間のデータのやり取りが可能なように接続するバス（１８）を有している。また必要に応じて、サーバ（１）には、ＣＤ−ＲＯＭなどの記憶媒体を読み書きできる装置（ドライブ）などを設けるとしてもよい。
【００１８】
サーバ（１）の外部記憶装置（１７）には、サーバ（１）の秘密情報更新のためのプログラムおよびこのプログラムの処理において必要となるデータなどが保存記憶されている〔外部記憶装置が無い場合には、例えば読み出し専用記憶装置であるＲＯＭにプログラムを保存記憶させておけばよい。〕。また、これらのプログラムの処理によって得られるデータなどは、ＲＡＭや外部記憶装置などに適宜に保存記憶される。また、サーバ（１）の外部記憶装置（１７）には、後述の各ＲＦＩＤに固有の固有情報および各ＲＦＩＤに送信するメッセージも記憶されている。
【００１９】
第１実施形態に係るサーバ（１）では、外部記憶装置（１７）〔あるいはＲＯＭなど〕に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてＲＡＭ（１５）に読み込まれて、ＣＰＵ（１４）で解釈実行・処理される。その結果、ＣＰＵ（１４）が所定の機能（乱数生成部、ハッシュ関数Ｈ演算部、ハッシュ関数Ｄ演算部、判定部、ブラインド情報生成部、メッセージ暗号化部、秘密情報生成部、更新部、制御部）を実現することで、サーバ（１）の秘密情報更新が実現される。
【００２０】
そこで次に、図４〜図１０を参照して、第１実施形態に係わる秘密情報更新方法の処理の流れを順次説明する。
【００２１】
＜端末装置＞
本発明における端末装置は、第１実施形態ではＲＦＩＤ（２）とする。もちろん、ＲＦＩＤ（２）に限定する趣旨ではなく、演算機能を豊富に搭載しえないモバイル端末（例えば携帯電話、ＰＤＡなど）でもよいし、さらには、演算機能を豊富に有する高性能コンピュータなどであってもよい。
【００２２】
図３に例示するように、ＲＦＩＤ（２）は、電源回路（２１）、変復調回路（２２）、ＣＰＵ（Central Processing Unit）（２３）、メモリであるＲＡＭ（２４）、ＲＯＭ（２５）やハッシュ関数を高速に演算可能なコプロセッサ（２６）、不揮発性メモリ（２７）、ＲＦＩＤ（１）外部と通信可能なアンテナ（２８）を有している。
【００２３】
アンテナ（２８）は、後述の読取装置（３）のアンテナ（３１）から与えられた電磁波を受けると誘導起電力を生じ、電源回路（２１）に電力が供給される。また、読取装置（３）から与えられた電磁波には、所定のデータなどが変調されて載せられており、変復調回路（２２）は、この所定のデータを読取装置（３）から与えられた電磁波から復調して取り出す。逆に、ＣＰＵ（２３）の演算によって得られたデータなどは、変復調回路（２２）で変調されて電磁波としてアンテナ（２８）から読取装置（３）に送られる。
【００２４】
ＲＦＩＤ（２）のＲＯＭ（２５）には、ＲＦＩＤ（２）の秘密情報更新のためのプログラムおよびこのプログラムの処理において必要となるデータなどが保存記憶されている。また、これらのプログラムの処理によって得られるデータなどは、ＲＡＭや不揮発性メモリ（２７）に適宜に保存記憶される。
【００２５】
第１実施形態に係るＲＦＩＤ（２）では、ＲＯＭ（２５）に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてＲＡＭ（２４）に読み込まれて、ＣＰＵ（１４）およびコプロセッサ（２６）で解釈実行・処理される。その結果、ＣＰＵ（１４）およびコプロセッサ（２６）が所定の機能（ハッシュ関数Ｈ演算部、ハッシュ関数Ｄ演算部、判定部、メッセージ復号化部、秘密情報取得部、更新部、制御部）を実現することで、ＲＦＩＤ（２）の秘密情報更新が実現される。
【００２６】
＜読取装置＞
読取装置（３）は、サーバ（１）およびＲＦＩＤ（２）それぞれと相互にデータの送受信が可能な通信手段を備えている。読取装置（３）のその他のハードウェア構成は周知の読取装置と同様の構成でよいので、その詳細は省略する。
【００２７】
＜条件＞
ハッシュ関数Ｈ、Ｊ、Ｄ、Ｆ：｛０，１｝＊→｛０，１｝Ｌ*は、各々異なる出力分布を持つとする。なお、｛０，１｝は０と１を要素とするバイナリ値の所定ビット長の系列を表し、＊は各ハッシュ関数の入力となる値のビット長、Ｌ＊は各ハッシュ関数の出力となる値のビット長を表す（ハッシュ関数ごとに異なるビット長の出力であってよい。）。
サーバ（１）およびＲＦＩＤ（２）のそれぞれにおける同じ記号で表されるハッシュ関数は、同じ出力分布のハッシュ関数である。
ＲＦＩＤ（２）は複数（Ｎ個）とし、各ＲＦＩＤ（２）は識別記号であるＩＤによって特定されるとし、この識別記号ＩＤに１対１の対応で識別情報ｉｄが割り当てられているとする。ここでは、ｋを、ｋ番目のＲＦＩＤを示すＩＤとする。
予め、ＲＦＩＤ（２）のそれぞれについて、ＲＦＩＤ（２）の不揮発性メモリ（２７）に初期秘密情報ｓ０，ｋ（乱数ｓ０，ｋ∈｛０，１｝Ｌとする。Ｌはビット長を表す。但し、｜Ｌ＊｜≦｜Ｌ｜とする。）が記憶されており、サーバ（１）の外部記憶装置（１７）には、初期秘密情報ｓ０，ｋが識別情報ｉｄに対応付けられたデータベース形式で記憶されているとする（図９参照）。なお、ｓ０，ｋの０は更新回数を表し、初期状態では更新回数は０回であるから、初期秘密情報をｓ０，ｋと表している。ｉ回の秘密更新後の秘密情報はｓｉ，ｋと表す。また、サーバ（１）の外部記憶装置（１７）には、バックアップ用のデータベース（Ｂデータベース；データベースと同様の構成であるから図９参照のこと。）も記憶されている。このＢデータベースは、前回（便宜的にｉ回目とする。）のトランザクションにおける秘密情報ｓｉ，ｋが識別情報ｉｄに対応付けられたものとなっている。初期状態のＢデータベースは、秘密情報ｓ０，ｋが識別情報ｉｄに対応付けられたものである。なお、データベースおよびＢデータベースはそれぞれ、サーバ（１）の外部記憶装置（１７）の所定の記憶領域に記憶される。
【００２８】
＜初期状態から１回目の秘密情報更新＞
まず、初期状態から１回目の秘密情報更新のトランザクションについて説明する。
読取装置（３）の通信手段は、ｋ番目のＲＦＩＤ（２）を読み取る際に、サーバ（１）にＲＦＩＤ（２）の読み取りを開始する情報（読取開始情報）を送信する（ステップＳ１００）。この明細書において、読取開始情報の種類などには格別の限定はなく、以下に述べるトランザクションを開始することを表す情報であればよい。
【００２９】
サーバ（１）の通信部（１３）が読取開始情報を受信すると（ステップＳ１００ｃ）、サーバ（１）の制御部の制御の下、サーバ（１）の乱数生成部（１４０）は任意の乱数ｒを出力し、ＲＡＭ（１５）の乱数格納領域（１５０）に格納する（ステップＳ１０１）。
【００３０】
サーバ（１）の通信部（１３）が、サーバ（１）の制御部の制御の下、ステップＳ１０１において出力されてＲＡＭ（１５）の乱数格納領域（１５０）に格納された乱数ｒを読取装置（３）に送信する（ステップＳ１０２）。
【００３１】
読取装置（３）の通信手段は、ステップＳ１０２において送信された乱数ｒを受信し（ステップＳ１０３）、さらに読取装置（３）は、読取装置（３）のアンテナ（３１）によって、この受信した乱数ｒをＲＦＩＤ（２）に無線送信する（ステップＳ１０４）。
【００３２】
ＲＦＩＤ（２）のアンテナ（２８）は、ステップＳ１０４において無線送信された乱数ｒを受信し（ステップＳ１０５）、ＲＡＭ（２４）の乱数格納領域（２４０）に格納する。
【００３３】
続いて、ＲＦＩＤ（２）のハッシュ関数Ｈ演算部（２３０）が、ステップＳ１０５において受信した乱数ｒをＲＡＭ（２４）の乱数格納領域（２４０）から読み込み、また、ＲＦＩＤ（２）の不揮発性メモリ（２７）から予め読み込まれてＲＡＭ（２４）の秘密情報格納領域（２４１）に格納される秘密情報ｓ０，ｋを読み込み、これらをバイナリ系列で結合した値ｓ０，ｋ‖ｒ〔記号‖は、ｓ０，ｋのバイナリ系列とｒのバイナリ系列との結合を表す。〕を入力として、ハッシュ関数Ｈを演算し、この演算結果Ｈ（ｓ０，ｋ‖ｒ）を、ＲＡＭ（２４）のハッシュ関数Ｈ演算結果格納領域（２４２）に格納する（ステップＳ１０６）。
【００３４】
ＲＦＩＤ（２）のアンテナ（２８）は、ＲＦＩＤ（２）の制御部の制御の下、ＲＡＭ（２４）のハッシュ関数Ｈ演算結果格納領域（２４２）に格納された演算結果Ｈ（ｓ０，ｋ‖ｒ）およびＲＯＭ（２５）に記憶されるＲＦＩＤ（２）の識別情報ｉｄを読取装置（３）に送信する（ステップＳ１０７）。
【００３５】
なお、ステップＳ１０７においては、ＲＦＩＤ（２）のアンテナ（２８）は、ＲＡＭ（２４）のハッシュ関数Ｈ演算結果格納領域（２４２）に格納された演算結果Ｈ（ｓ０，ｋ‖ｒ）のみならず、ＲＡＭ（２４）の乱数格納領域（２４０）に格納される乱数ｒも読取装置（３）に送信するとしてもよい。
【００３６】
読取装置（３）の通信手段は、ステップＳ１０７において送信された演算結果Ｈ（ｓ０，ｋ‖ｒ）および識別情報ｉｄを受信し（ステップＳ１０８）、さらに読取装置（３）は、読取装置（３）のアンテナ（３１）によって、この受信した演算結果Ｈ（ｓ０，ｋ‖ｒ）および識別情報ｉｄをサーバ（１）に送信する（ステップＳ１０９）。
なお、読取装置（３）の通信手段は、ステップＳ１０７において、ＲＦＩＤ（２）から、乱数ｒも送信された場合には、これらもサーバ（１）に送信する。
【００３７】
サーバ（１）の通信部（１３）は、ステップＳ１０９において送信された演算結果Ｈ（ｓ０，ｋ‖ｒ）および識別情報ｉｄを受信し、演算結果Ｈ（ｓ０，ｋ‖ｒ）をＲＡＭ（１５）の第１ハッシュ関数Ｈ演算結果格納領域（１５１）に格納し、識別情報ｉｄをＲＡＭ（１５）の識別情報格納領域（図示しない。）に格納する（ステップＳ１１０）。
【００３８】
サーバ（１）のハッシュ関数Ｈ演算部（１４１）は、ＲＡＭ（１５）の識別情報格納領域に格納される識別情報ｉｄを読み込み、この識別情報ｉｄに対応付けられた秘密情報ｓ０，ｋを外部記憶装置（１７）に記憶されるデータベースを参照して読み込んで、ＲＡＭ（１５）の秘密情報格納領域（１５２）に格納し、さらにＲＡＭ（１５）の秘密情報格納領域（１５２）に格納された秘密情報ｓ０，ｋを読み込み、また、ＲＡＭ（１５）の乱数格納領域（１５０）に格納された乱数ｒを読み込み（ステップＳ１１０で乱数ｒを受信した場合には、この乱数ｒを用いればよい。）、これらをバイナリ系列で結合した値ｓ０，ｋ‖ｒを入力として、ハッシュ関数Ｈを演算し、この演算結果Ｈ（ｓ０，ｋ‖ｒ）を、ＲＡＭ（１５）の第２ハッシュ関数Ｈ演算結果格納領域（１５３）に格納する（ステップＳ１１１）。
【００３９】
サーバ（１）の判定部（１４２）は、ＲＡＭ（１５）の第１ハッシュ関数Ｈ演算結果格納領域（１５１）に格納された演算結果Ｈ（ｓ０，ｋ‖ｒ）と、ＲＡＭ（１５）の第２ハッシュ関数Ｈ演算結果格納領域（１５３）に格納された演算結果Ｈ（ｓ０，ｋ‖ｒ）とが等しいか否かを判定する（ステップＳ１１２）。
【００４０】
ステップＳ１１２において、ＲＡＭ（１５）の第１ハッシュ関数Ｈ演算結果格納領域（１５１）に格納された演算結果Ｈ（ｓ０，ｋ‖ｒ）と、ＲＡＭ（１５）の第２ハッシュ関数Ｈ演算結果格納領域（１５３）に格納された演算結果Ｈ（ｓ０，ｋ‖ｒ）とが等しいと判定されなかった場合（認証不合格判定の場合）、サーバ（１）の制御部の制御の下、サーバ（１）は、ＲＦＩＤ（２）を、サーバ（１）に対する正当なアクセス権を有しないＲＦＩＤであるとして、爾後の処理を実行せずトランザクションを終了する（ステップＳ１１３）。
【００４１】
ステップＳ１１２において、ＲＡＭ（１５）の第１ハッシュ関数Ｈ演算結果格納領域（１５１）に格納された演算結果Ｈ（ｓ０，ｋ‖ｒ）と、ＲＡＭ（１５）の第２ハッシュ関数Ｈ演算結果格納領域（１５３）に格納された演算結果Ｈ（ｓ０，ｋ‖ｒ）とが等しいと判定された場合（認証合格判定の場合）、サーバ（１）の制御部の制御の下、サーバ（１）の秘密情報生成部（１４３）が、乱数を新たな秘密情報ｓ１，ｋとして出力し、ＲＡＭ（１５）の新秘密情報格納領域（１５４）に格納する（ステップＳ１１４）。
【００４２】
認証合格判定の場合は、さらに、サーバ（１）のブラインド情報生成部（１４４）が、サーバ（１）のＲＡＭ（１５）の秘密情報格納領域（１５２）に格納された秘密情報ｓ０，ｋを読み込み、この秘密情報ｓ０，ｋを入力とするハッシュ関数Ｊの演算結果Ｊ（ｓ０，ｋ）と、ＲＡＭ（１５）の新秘密情報格納領域（１５４）から読み込んだ新たな秘密情報ｓ１，ｋとの排他的論理和ｓ１，ｋ＾Ｊ（ｓ０，ｋ）〔＾は排他的論理和を表す。〕をブラインド情報として出力し、ＲＡＭ（１５）のブラインド情報格納領域（１５５）に格納する（ステップＳ１１５）。
【００４３】
認証合格判定の場合は、さらに、サーバ（１）のハッシュ関数Ｄ演算部（１４５）が、ＲＡＭ（１５）の秘密情報格納領域（１５２）に格納された秘密情報ｓ０，ｋを読み込み、また、ＲＡＭ（１５）のブラインド情報格納領域（１５５）に格納されたブラインド情報ｓ１，ｋ＾Ｊ（ｓ０，ｋ）を読み込み、これらをバイナリ系列で結合した値ｓ０，ｋ‖ｓ１，ｋ＾Ｊ（ｓ０，ｋ）を入力として、ハッシュ関数Ｄを演算し、この演算結果Ｄ（ｓ０，ｋ‖ｓ１，ｋ＾Ｊ（ｓ０，ｋ））を、ＲＡＭ（１５）のハッシュ関数Ｄ演算結果格納領域（１５６）に格納する（ステップＳ１１６）。
【００４４】
認証合格判定の場合は、さらに、サーバ（１）のメッセージ暗号化部（図示しない。）が、サーバ（１）のＲＡＭ（１５）の秘密情報格納領域（１５２）に格納された秘密情報ｓ０，ｋを読み込み、また、サーバ（１）の外部記憶装置から読み込まれてＲＡＭ（１５）の所定領域に格納されているメッセージｍを読み込んで、この秘密情報ｓ０，ｋを入力とするハッシュ関数Ｆの演算結果Ｆ（ｓ０，ｋ）とメッセージｍとの排他的論理和ｍ＾Ｆ（ｓ０，ｋ）を暗号化メッセージとして出力し、ＲＡＭ（１５）の暗号化メッセージ格納領域（図示しない。）に格納する（ステップＳ１１７）。
【００４５】
認証合格判定の場合には、サーバ（１）の通信部（１３）が、サーバ（１）の制御部の制御の下、ＲＡＭ（１５）のブラインド情報格納領域（１５５）に格納されたブラインド情報ｓ１，ｋ＾Ｊ（ｓ０，ｋ）、ＲＡＭ（１５）のハッシュ関数Ｄ演算結果格納領域（１５６）に格納された演算結果Ｄ（ｓ０，ｋ‖ｓ１，ｋ＾Ｊ（ｓ０，ｋ））、サーバ（１）の外部記憶装置（１７）から読み込まれてＲＡＭ（１５）の所定領域に格納されたｋ番目のＲＦＩＤ（２）に固有の固有情報、およびＲＡＭ（１５）の暗号化メッセージ格納領域に格納された暗号化メッセージを読取装置（３）に送信する（ステップＳ１１８）。なお、固有情報の送信は必要に応じて行うようにしてもよい。
【００４６】
また、認証合格判定の場合には、以上のステップの処理の終了後、サーバ（１）の更新部（１４６）が、ＲＡＭ（１５）の新秘密情報格納領域（１５４）に格納された新たな秘密情報ｓ１，ｋを、外部記憶装置（１７）のデータベースにおいて、ｋ番目のＲＦＩＤ（２）の識別情報ｉｄに対応付けられた秘密情報として上書きする（ステップＳ１１９）。ここで上書きとは、先に記憶されていた情報を消除して、新たに情報を記憶することをいう。この場合では、先にｋ番目のＲＦＩＤ（２）の識別情報ｉｄに対応付けられていた秘密情報ｓ０，ｋを消除し、新しい秘密情報ｓ１，ｋを、ｋ番目のＲＦＩＤ（２）の識別情報ｉｄに対応付けて記憶することをいう。
【００４７】
この段階では、データベースにおいて、ｋ番目のＲＦＩＤ（２）の識別情報ｉｄに秘密情報ｓ１，ｋが対応付けられており、Ｂデータベースでは、ｋ番目のＲＦＩＤ（２）の識別情報ｉｄに秘密情報ｓ０，ｋが対応付けられていることに留意する。
【００４８】
読取装置（３）の通信手段は、ステップＳ１１８において送信されたブラインド情報ｓ１，ｋ＾Ｊ（ｓ０，ｋ）、演算結果Ｄ（ｓ０，ｋ‖ｓ１，ｋ＾Ｊ（ｓ０，ｋ））、固有情報、および暗号化メッセージを受信し（ステップＳ１２０）、さらに読取装置（３）は、そのアンテナ（３１）によって、ステップＳ１２０において受信した、ブラインド情報ｓ１，ｋ＾Ｊ（ｓ０，ｋ）、演算結果Ｄ（ｓ０，ｋ‖ｓ１，ｋ＾Ｊ（ｓ０，ｋ））および暗号化メッセージをＲＦＩＤ（２）に無線送信する（ステップＳ１２１）。
【００４９】
ＲＦＩＤ（２）のアンテナ（２８）は、ステップＳ１２１において無線送信された、ブラインド情報ｓ１，ｋ＾Ｊ（ｓ０，ｋ）、演算結果Ｄ（ｓ０，ｋ‖ｓ１，ｋ＾Ｊ（ｓ０，ｋ））および暗号化メッセージを受信し、ブラインド情報ｓ１，ｋ＾Ｊ（ｓ０，ｋ）をＲＡＭ（２４）のブラインド情報格納領域（２４３）に格納し、演算結果Ｄ（ｓ０，ｋ‖ｓ１，ｋ＾Ｊ（ｓ０，ｋ））をＲＡＭ（２４）の第１ハッシュ関数Ｄ演算結果格納領域（２４４）に格納し、暗号化メッセージをＲＡＭ（２４）の暗号化メッセージ格納領域（図示しない。）に格納する（ステップＳ１２２）。
【００５０】
ＲＦＩＤ（２）のハッシュ関数Ｄ演算部（２３１）は、ＲＡＭ（２４）の秘密情報格納領域（２４１）に格納される秘密情報ｓ０，ｋを読み込み、また、ＲＡＭ（２４）のブラインド情報格納領域（２４３）に格納されたブラインド情報ｓ１，ｋ＾Ｊ（ｓ０，ｋ）を読み込み、これらをバイナリ系列で結合した値ｓ０，ｋ‖ｓ１，ｋ＾Ｊ（ｓ０，ｋ）を入力として、ハッシュ関数Ｄを演算し、この演算結果Ｄ（ｓ０，ｋ‖ｓ１，ｋ＾Ｊ（ｓ０，ｋ））を、ＲＡＭ（２４）の第２ハッシュ関数Ｄ演算結果格納領域（２４５）に格納する（ステップＳ１２３）。
【００５１】
ＲＦＩＤ（２）の判定部（２３２）は、ＲＡＭ（２４）の第１ハッシュ関数Ｄ演算結果格納領域（２４４）に格納される演算結果Ｄ（ｓ０，ｋ‖ｓ１，ｋ＾Ｊ（ｓ０，ｋ））と、ＲＡＭ（２４）の第２ハッシュ関数Ｄ演算結果格納領域（２４５）に格納される演算結果Ｄ（ｓ０，ｋ‖ｓ１，ｋ＾Ｊ（ｓ０，ｋ））とが等しいか否かを判定する（ステップＳ１２４）。
【００５２】
ステップＳ１２４における判定結果が、ＲＡＭ（２４）の第１ハッシュ関数Ｄ演算結果格納領域（２４４）に格納される演算結果Ｄ（ｓ０，ｋ‖ｓ１，ｋ＾Ｊ（ｓ０，ｋ））と、ＲＡＭ（２４）の第２ハッシュ関数Ｄ演算結果格納領域（２４５）に格納される演算結果Ｄ（ｓ０，ｋ‖ｓ１，ｋ＾Ｊ（ｓ０，ｋ））とが等しいという場合には、ＲＦＩＤ（２）の制御部の制御の下、ＲＦＩＤ（２）の秘密情報取得部（２３３）が、ＲＡＭ（２４）の秘密情報格納領域（２４１）に格納される秘密情報ｓ０，ｋを読み込み、この秘密情報ｓ０，ｋを入力とするハッシュ関数Ｊの演算結果Ｊ（ｓ０，ｋ）と、ＲＡＭ（２４）のブラインド情報格納領域（２４３）から読み込んだブラインド情報ｓ１，ｋ＾Ｊ（ｓ０，ｋ）との排他的論理和（ｓ１，ｋ＾Ｊ（ｓ０，ｋ））＾Ｊ（ｓ０，ｋ）＝ｓ１，ｋを出力し、ＲＡＭ（２４）の新秘密情報格納領域（２４６）に格納する（ステップＳ１２５）。
【００５３】
ステップＳ１２４における判定結果が、ＲＡＭ（２４）の第１ハッシュ関数Ｄ演算結果格納領域（２４４）に格納される演算結果Ｄ（ｓ０，ｋ‖ｓ１，ｋ＾Ｊ（ｓ０，ｋ））と、ＲＡＭ（２４）の第２ハッシュ関数Ｄ演算結果格納領域（２４５）に格納される演算結果Ｄ（ｓ０，ｋ‖ｓ１，ｋ＾Ｊ（ｓ０，ｋ））とが等しくないという場合には、受信したブラインド情報などが信頼あるサーバから送られたものではないとして、爾後の処理を実行せずにトランザクションを終了する（ステップＳ１２４ｃ）。
【００５４】
また、ステップＳ１２４における判定結果が、ＲＡＭ（２４）の第１ハッシュ関数Ｄ演算結果格納領域（２４４）に格納される演算結果Ｄ（ｓ０，ｋ‖ｓ１，ｋ＾Ｊ（ｓ０，ｋ））と、ＲＡＭ（２４）の第２ハッシュ関数Ｄ演算結果格納領域（２４５）に格納される演算結果Ｄ（ｓ０，ｋ‖ｓ１，ｋ＾Ｊ（ｓ０，ｋ））とが等しいという場合には、ＲＦＩＤ（２）の制御部の制御の下、ＲＦＩＤ（２）のメッセージ復号化部（図示しない。）が、ＲＡＭ（２４）の秘密情報格納領域（２４１）に格納される秘密情報ｓ０，ｋを読み込み、この秘密情報ｓ０，ｋを入力とするハッシュ関数Ｆの演算結果Ｆ（ｓ０，ｋ）と、ＲＡＭ（２４）の暗号化メッセージ格納領域から読み込んだ暗号化メッセージとの排他的論理和（ｍ＾Ｆ（ｓ０，ｋ））＾Ｆ（ｓ０，ｋ）＝ｍを出力し、ＲＡＭ（２４）のメッセージ格納領域（図示しない。）に格納する（ステップＳ１２６）。
【００５５】
ＲＦＩＤ（２）の更新部（２３４）は、ＲＡＭ（２４）の新秘密情報格納領域（２４６）に格納された新たな秘密情報ｓ１，ｋを、先に不揮発性メモリ（２７）に記憶されていた秘密情報ｓ０，ｋに上書きする（ステップＳ１２７）。つまり、この段階で、不揮発性メモリ（２７）には新しい秘密情報ｓ１，ｋが記憶されたことになる。
【００５６】
サーバ（１）およびＲＦＩＤ（２）は、以上のようにして、秘密情報ｓ０，ｋを秘密情報ｓ１，ｋに更新して共有することになる。
【００５７】
＜ｉ回目の秘密情報更新からｉ＋１回目の秘密情報更新＞
次に、ｉ回目（ｉは１以上）の秘密情報更新からｉ＋１回目の秘密情報更新のトランザクションについて説明する。この場合の処理は、初期状態から１回目の秘密情報更新と共通する処理があるので、初期状態から１回目の秘密情報更新で説明した点と異なる部分について説明する。
【００５８】
まず、初期状態から１回目の秘密情報更新で説明した秘密情報ｓ０，ｋは、秘密情報ｓｉ，ｋであり、初期状態から１回目の秘密情報更新で説明した新しい秘密情報ｓ１，ｋは、秘密情報ｓｉ＋１，ｋになることに留意する。また、Ｂデータベースでは、ｋ番目のＲＦＩＤ（２）の識別情報ｉｄに秘密情報ｓｉ−１，ｋ（ここでのｉ−１は、前回のトランザクションを表す。）が対応付けられていることに留意する。
【００５９】
ステップＳ１１３において、認証不合格判定の場合、サーバ（１）は、ＲＦＩＤ（２）を、サーバ（１）に対する正当なアクセス権を有しないＲＦＩＤであるとして、爾後の処理を実行せずトランザクションを終了するとしたが、この場合（ｉ回目の秘密情報更新からｉ＋１回目の秘密情報更新）には、トランザクションを終了しないで、次に説明する処理を行う。
【００６０】
即ち、認証不合格判定の場合、サーバ（１）の制御部の制御の下、サーバ（１）のハッシュ関数Ｈ演算部（１４１）は、ＲＡＭ（１５）の識別情報格納領域に格納される識別情報ｉｄを読み込み、この識別情報ｉｄに対応付けられた秘密情報ｓｉ−１，ｋを、外部記憶装置（１７）に記憶されるＢデータベースを参照して読み込み、また、ＲＡＭ（１５）の乱数格納領域（１５０）に格納された乱数ｒを読み込み（ステップＳ１１０で乱数ｒを受信した場合には、この乱数ｒを用いればよい。）、これらをバイナリ系列で結合した値ｓｉ−１，ｋ‖ｒを入力として、ハッシュ関数Ｈを演算し、この演算結果Ｈ（ｓｉ−１，ｋ‖ｒ）を、ＲＡＭ（１５）の第２ハッシュ関数Ｈ演算結果格納領域（１５３）に格納する（ステップＳ１１３ａ）。
【００６１】
サーバ（１）の判定部（１４２）は、ＲＡＭ（１５）の第１ハッシュ関数Ｈ演算結果格納領域（１５１）に格納された演算結果Ｈ（ｓｉ，ｋ‖ｒ）と、ＲＡＭ（１５）の第２ハッシュ関数Ｈ演算結果格納領域（１５３）に格納された演算結果Ｈ（ｓｉ−１，ｋ‖ｒ）とが等しいか否かを判定する（ステップＳ１１３ｂ）。
【００６２】
ステップＳ１１３ｂで認証不合格判定がされた場合には、爾後の処理を実行せずトランザクションを終了する（ステップＳ１１３）。
このようなＢデータベースにおける前回トランザクションの秘密情報を用いた処理は、前回のトランザクションにおいて更新が失敗した場合に備えて実行するものであるため、このような失敗に備える必要がない場合は、Ｂデータベースを用意しておく必要はない。
【００６３】
ステップＳ１１３で認証合格判定がされた場合には、ステップＳ１１４以降の処理を行うが、ステップＳ１１９では以下に説明する処理（Ｂデータベースにおける秘密情報の更新）を行う。
即ち、認証合格判定の場合には、ステップＳ１１９において、サーバ（１）の更新部（１４６）が、ＲＡＭ（１５）の新秘密情報格納領域（１５４）に格納された新たな秘密情報ｓｉ＋１，ｋを、外部記憶装置（１７）のデータベースにおいて、ｋ番目のＲＦＩＤ（２）の識別情報ｉｄに対応付けられた秘密情報として上書し、さらに、ＲＡＭ（１５）の秘密情報格納領域（１５２）に格納された秘密情報ｓｉ，ｋを、外部記憶装置（１７）のＢデータベースにおいて、ｋ番目のＲＦＩＤ（２）の識別情報ｉｄに対応付けられた秘密情報として上書きする。
【００６４】
この段階を経ると、データベースにおいては、ｋ番目のＲＦＩＤ（２）の識別情報ｉｄに秘密情報ｓｉ＋１，ｋが対応付けられており、Ｂデータベースでは、ｋ番目のＲＦＩＤ（２）の識別情報ｉｄに秘密情報ｓｉ，ｋが対応付けられていることになる。
【００６５】
＜第１実施形態の変形例１＞
ステップＳ１０７では、ＲＦＩＤ（２）のアンテナ（２８）は、ＲＦＩＤ（２）の制御部の制御の下、ＲＡＭ（２４）のハッシュ関数Ｈ演算結果格納領域（２４２）に格納された演算結果Ｈ（ｓｉ，ｋ‖ｒ）およびＲＯＭ（２５）に記憶されるＲＦＩＤ（２）の識別情報ｉｄを読取装置（３）に送信するとした。
【００６６】
しかし、無線通信区間で通信傍受されるなどの虞がある場合には、ステップＳ１０７では、ＲＯＭ（２５）に記憶されるＲＦＩＤ（２）の識別情報ｉｄを読取装置（３）に送信しないようにする。
【００６７】
この場合、ステップＳ１１１、ステップＳ１１２は、次のような処理を行う。
図１１は、第１実施形態の変形例１における秘密情報更新方法の処理の流れのうち、第１実施形態と異なる処理部分の部分フローチャートである。
サーバ（１）のハッシュ関数Ｈ演算部（１４１）は、ｇ＝１として（ステップＳ１１０ａ、ステップＳ１１０ｂ）、外部記憶装置（１７）に記憶されるデータベースを参照して秘密情報ｓｉ，ｇを読み込み（ｇはＲＦＩＤのＩＤを表し、ｇ＝１，２，・・・，Ｎである。）、また、ＲＡＭ（１５）の乱数格納領域（１５０）に格納された乱数ｒを読み込み（ステップＳ１１０で乱数ｒを受信した場合には、この乱数ｒを用いればよい。）、これらをバイナリ系列で結合した値ｓｉ，ｇ‖ｒを入力として、ハッシュ関数Ｈを演算し、この演算結果Ｈ（ｓｉ，ｇ‖ｒ）を、ＲＡＭ（１５）の第２ハッシュ関数Ｈ演算結果格納領域（１５３）に格納する（ステップＳ１１１ａ）。
【００６８】
サーバ（１）の判定部（１４２）は、ＲＡＭ（１５）の第１ハッシュ関数Ｈ演算結果格納領域（１５１）に格納された演算結果Ｈ（ｓｉ，ｇ‖ｒ）と、ＲＡＭ（１５）の第２ハッシュ関数Ｈ演算結果格納領域（１５３）に格納された演算結果Ｈ（ｓｉ，ｇ‖ｒ）とが等しいか否かを判定する（ステップＳ１１２ａ）。
【００６９】
ステップＳ１１２ａにおいて、ＲＡＭ（１５）の第１ハッシュ関数Ｈ演算結果格納領域（１５１）に格納された演算結果Ｈ（ｓｉ，ｋ‖ｒ）と、ＲＡＭ（１５）の第２ハッシュ関数Ｈ演算結果格納領域（１５３）に格納された演算結果Ｈ（ｓｉ，ｇ‖ｒ）とが等しいと判定されなかった場合は、サーバ（１）の制御部の制御の下、ｇに１を加えてｇ＝２として（ステップＳ１１０ｃ）、ステップＳ１１０ｂステップＳ１１１ａ、ステップＳ１１２ａの処理を実行する。このような処理を、ステップＳ１１２ａにおいて、ＲＡＭ（１５）の第１ハッシュ関数Ｈ演算結果格納領域（１５１）に格納された演算結果Ｈ（ｓｉ，ｋ‖ｒ）と、ＲＡＭ（１５）の第２ハッシュ関数Ｈ演算結果格納領域（１５３）に格納された演算結果Ｈ（ｓｉ，ｇ‖ｒ）とが等しいと判定されるまで繰り返す。
【００７０】
もし、全てのｇについて認証合格判定がされなかったら（ステップＳ１１０ｂ参照）、１回目の秘密情報更新ではトランザクションを終了し（図１１では図示していない。）、２回目以降の秘密情報更新ではＢデータベースの秘密情報を用いた上記と同様の判定も行い（図１１における、ステップＳ１１０ａ’、ステップＳ１１０ｂ’、ステップＳ１１０ｃ’、ステップＳ１１３ａ、ステップＳ１１３ｂ参照）、それでも、認証合格判定がされなかったらトランザクションを終了する（ステップＳ１１３）。
【００７１】
ステップＳ１１２ａにおいて、ＲＡＭ（１５）の第１ハッシュ関数Ｈ演算結果格納領域（１５１）に格納された演算結果Ｈ（ｓｉ，ｋ‖ｒ）と、ＲＡＭ（１５）の第２ハッシュ関数Ｈ演算結果格納領域（１５３）に格納された演算結果Ｈ（ｓｉ，ｇ‖ｒ）とが等しいと判定されたときのｇによって、あるいは、ステップＳ１１３ｂにおいて、ＲＡＭ（１５）の第１ハッシュ関数Ｈ演算結果格納領域（１５１）に格納された演算結果Ｈ（ｓｉ，ｋ‖ｒ）と、ＲＡＭ（１５）の第２ハッシュ関数Ｈ演算結果格納領域（１５３）に格納された演算結果Ｈ（ｓｉ，ｇ‖ｒ）とが等しいと判定されたときのｇによって、ＲＡＭ（１５）の第１ハッシュ関数Ｈ演算結果格納領域（１５１）に格納された演算結果Ｈ（ｓｉ，ｋ‖ｒ）を送信してきたＲＦＩＤ（２）が特定される。
この後は、ステップＳ１１４以降の処理を実行する。
【００７２】
＜第１実施形態の変形例２＞
通信ネットワークが安全に通信を行えると保証されたものである場合には、ステップＳ１１６、ステップＳ１２３、ステップＳ１２４の処理は不要である。なお、例えば、ステップＳ１１８では、演算結果Ｄ（ｓｉ，ｋ‖ｓi＋１，ｋ＾Ｊ（ｓｉ，ｋ））を送信しないことは云うまでもない。
【００７３】
＜第１実施形態の変形例３＞
ステップＳ１１５において、ブラインド情報をＮｕｌｌ値とすることもできる。この場合は情報更新ではなく、相手認証として機能することになる。
【００７４】
＜第１実施形態の変形例４＞
サーバ（１）からＲＦＩＤ（２）にメッセージを送信することが不要の場合は、ステップＳ１１７、ステップＳ１２６の処理は不要である。なお、例えば、ステップＳ１１８では、暗号化メッセージを送信しないことは云うまでもない。
【００７５】
＜第２実施形態＞
サーバ（１）、ＲＦＩＤ（２）、読取装置（３）の各ハードウェア構成、さらには通信ネットワークの態様は、第１実施形態と同様であるから説明を省略する。
図１２は、第２実施形態に係わるサーバ（１）の機能ブロック図である。
図１３は、第２実施形態に係わるＲＦＩＤ（２）の機能ブロック図である。
図１４は、第２実施形態に係わる秘密情報更新方法の処理の流れを示すフローチャート（その１）である。
図１５は、第２実施形態に係わる秘密情報更新方法の処理の流れを示すフローチャート（その２）である。
図１６は、第２実施形態に係わる秘密情報更新方法の処理の流れを示すフローチャート（その３）である。
【００７６】
＜条件＞
ハッシュ関数Ｈ、Ｊ、Ｄ、Ｆ、Ｇ：｛０，１｝＊→｛０，１｝Ｌ*は、各々異なる出力分布を持つとする。なお、｛０，１｝は０と１を要素とするバイナリ値の所定ビット長の系列を表し、＊は各ハッシュ関数の入力となる値のビット長、Ｌ＊は各ハッシュ関数の出力となる値のビット長（ハッシュ関数ごとに異なるビット長の出力であってよい。）を表す。
サーバ（１）およびＲＦＩＤ（２）のそれぞれにおける同じ記号で表されるハッシュ関数は、同じ出力分布のハッシュ関数である。
ＲＦＩＤ（２）は複数（Ｎ個）とし、各ＲＦＩＤ（２）は識別記号であるＩＤによって特定されるとし、この識別記号ＩＤに１対１の対応で識別情報ｉｄが割り当てられているとする。
予め、ＲＦＩＤ（２）のそれぞれについて、ＲＦＩＤ（２）の不揮発性メモリ（２７）に初期秘密情報ｓ０，０（乱数ｓ０，０∈｛０，１｝Ｌとする。Ｌはビット長を表す。但し、｜Ｌ＊｜≦｜Ｌ｜とする。）が記憶されており、サーバ（１）の外部記憶装置（１７）には、初期秘密情報ｓ０，０が識別情報ｉｄに対応付けられたデータベース形式で記憶されているとする（図９参照）。また、サーバ（１）の外部記憶装置（１７）には、バックアップ用のデータベース（Ｂデータベース）も記憶されている。このＢデータベースは、前回（ｉ回目とする。）のトランザクションにおける秘密情報が識別情報ｉｄに対応付けられたものとなっている。初期状態のＢデータベースは、秘密情報ｓ０，０が識別情報ｉｄに対応付けられたものである。なお、データベースおよびＢデータベースは、サーバ（１）の外部記憶装置（１７）の所定の記憶領域に記憶される。
【００７７】
＜ｉ回目の秘密情報更新からｉ＋１回目の秘密情報更新＞
ｉ回目（ｉは０以上。但し、ｉ＝０の場合は、初期状態を表している。）の秘密情報更新からｉ＋１回目の秘密情報更新のトランザクションについて説明する。
この秘密情報更新の間には秘密情報の更改がなされ、その更改の回数をｊで表すとする。以下において秘密情報ｓｉ，ｊは、ｉ回の秘密情報の更新を受け、さらに、ｊ回の秘密情報の更改がなされた秘密情報を表している。
読取装置（３）の通信手段が、ＲＦＩＤ（２）を読み取る際に、ＲＦＩＤ（２）に対する読取開始を表す情報をＲＦＩＤ（２）に対して送信する（ステップＳ３００）。
【００７８】
ＲＦＩＤ（２）のアンテナ（２８）が、ステップＳ３００において送信された読取開始を表す情報を受信する（ステップＳ３０１）。
【００７９】
ＲＦＩＤ（２）のハッシュ関数Ｈ演算部（４３０）が、ＲＦＩＤ（２）の不揮発性メモリ（２７）から読み込まれてＲＡＭ（２４）の秘密情報格納領域（４４０）に格納される秘密情報ｓｉ，ｊを読み込み、秘密情報ｓｉ，ｊをハッシュ関数Ｈの入力として、この演算結果Ｈ（ｓｉ，ｊ）を出力し、ＲＡＭ（２４）のハッシュ関数Ｈ演算結果格納領域（４４１）に格納する（ステップＳ３０２）。
【００８０】
次いで、ＲＦＩＤ（２）の更改部（４３１）は、ＲＡＭ（２４）のハッシュ関数Ｈ演算結果格納領域（４４１）に格納された演算結果Ｈ（ｓｉ，ｊ）を、新たな秘密情報ｓｉ，ｊ＋１としてＲＡＭ（２４）の秘密情報格納領域（４４０）に上書きする（ステップＳ３０３）。なお、ｓｉ，ｊ＋１＝Ｈ（ｓｉ，ｊ）＝Ｈ（Ｈ（ｓｉ，ｊ−１））＝Ｈ（Ｈ（Ｈ（ｓｉ，ｊ−２）））＝・・・＝Ｈｊ＋１（ｓｉ，０）の関係が成立することにも留意すること（Ｈｊ＋１は、ｊ＋１回のハッシュ関数Ｈの演算を行うことを表す。）。
【００８１】
ＲＦＩＤ（２）のハッシュ関数Ｇ演算部（４３２）が、ＲＡＭ（２４）のハッシュ関数Ｈ演算結果格納領域（４４１）に格納された演算結果Ｈ（ｓｉ，ｊ）をハッシュ関数Ｇの入力として、この演算結果Ｇ（Ｈ（ｓｉ，ｊ））を出力し、ＲＡＭ（２４）のハッシュ関数Ｇ演算結果格納領域（４４２）に格納する（ステップＳ３０４）。
【００８２】
ＲＦＩＤ（２）のアンテナ（２８）が、ＲＡＭ（２４）のハッシュ関数Ｇ演算結果格納領域（４４２）に格納された演算結果Ｇ（Ｈ（ｓｉ，ｊ））を読取装置（３）に送信する（ステップＳ３０５）。
【００８３】
読取装置（３）のアンテナ（３１）が、ステップＳ３０５において送信された演算結果Ｇ（Ｈ（ｓｉ，ｊ））を受信し（ステップＳ３０６）、さらに、読取装置（３）は、その通信手段によって、ステップＳ３０６において受信した演算結果Ｇ（Ｈ（ｓｉ，ｊ））をサーバ（１）に送信する（ステップＳ３０７）。
【００８４】
サーバ（１）の通信部（１３）が、ステップＳ３０７において送信された演算結果Ｇ（Ｈ（ｓｉ，ｊ））を受信し、これをＲＡＭ（１５）の第１ハッシュ関数Ｇ演算結果格納領域（３５０）に格納する（ステップＳ３０８）。
【００８５】
サーバ（１）のハッシュ関数Ｈ演算部（３４０）は、ｈ＝１として、外部記憶装置（１７）に記憶されるデータベースを参照して各ＩＤ（ＩＤとｉｄは１対１対応にあるのでｉｄでもよい。）に対応した秘密情報（ｓｉ，ｊ）ｇ＝１、（ｓｉ，ｊ）ｇ＝２、・・・、（ｓｉ，ｊ）ｇ＝Ｎを順次読み込み、ＲＡＭ（１５）の秘密情報格納領域（３５１）に格納し、さらにＲＡＭ（１５）の秘密情報格納領域（３５１）に格納された各ＩＤに対応した秘密情報（ｓｉ，ｊ）ｇ＝１、（ｓｉ，ｊ）ｇ＝２、・・・、（ｓｉ，ｊ）ｇ＝Ｎを順次読み込み、これらに対してハッシュ関数Ｈをｈ回演算し、この演算結果Ｈｈ（ｓｉ，ｊ）ｇ＝１、Ｈｈ（ｓｉ，ｊ）ｇ＝２、・・・、Ｈｈ（ｓｉ，ｊ）ｇ＝Ｎを、ＲＡＭ（１５）のハッシュ関数Ｈ演算結果格納領域（３５２）に格納する（ステップＳ３０９）。
【００８６】
サーバ（１）のハッシュ関数Ｇ演算部（３４１）は、ＲＡＭ（１５）のハッシュ関数Ｈ演算結果格納領域（３５２）に格納された各ＩＤに対応した演算結果Ｈｈ（ｓｉ，ｊ）ｇ＝１、Ｈｈ（ｓｉ，ｊ）ｇ＝２、・・・、Ｈｈ（ｓｉ，ｊ）ｇ＝Ｎをハッシュ関数Ｇの入力として、この演算結果Ｇ（Ｈｈ（ｓｉ，ｊ））ｇ＝１、Ｇ（Ｈｈ（ｓｉ，ｊ））ｇ＝２、・・・、Ｇ（Ｈｈ（ｓｉ，ｊ））ｇ＝Ｎを出力し、ＲＡＭ（１５）の第２ハッシュ関数Ｇ演算結果格納領域（３５３）に格納する（ステップＳ３１０）。
【００８７】
サーバ（１）の第１判定部（３４２）が、ＲＡＭ（１５）の第２ハッシュ関数Ｇ演算結果格納領域（３５３）に格納された各ＩＤに対応した演算結果Ｇ（Ｈｈ（ｓｉ，ｊ））ｇ＝１、Ｇ（Ｈｈ（ｓｉ，ｊ））ｇ＝２、・・・、Ｇ（Ｈｈ（ｓｉ，ｊ））ｇ＝Ｎに、ＲＡＭ（１５）の第１ハッシュ関数Ｇ演算結果格納領域（３５０）に格納された演算結果Ｇ（Ｈ（ｓｉ，ｊ））と等しいものがあるか否かを判定する（ステップＳ３１１）。
【００８８】
ステップＳ３１１において、ＲＡＭ（１５）の第２ハッシュ関数Ｇ演算結果格納領域（３５３）に格納された各ＩＤに対応した演算結果Ｇ（Ｈｈ（ｓｉ，ｊ））ｇ＝１、Ｇ（Ｈｈ（ｓｉ，ｊ））ｇ＝２、・・・、Ｇ（Ｈｈ（ｓｉ，ｊ））ｇ＝Ｎに、ＲＡＭ（１５）の第１ハッシュ関数Ｇ演算結果格納領域（３５０）に格納された演算結果Ｇ（Ｈ（ｓｉ，ｊ））と等しいものがあると判定されなかった場合は、サーバ（１）の制御部の制御の下、ｈに１を加えてｈ＝２として、ステップＳ３０９〜ステップＳ３１１の処理を実行する。このような処理を、ステップＳ３１１において、ＲＡＭ（１５）の第２ハッシュ関数Ｇ演算結果格納領域（３５３）に格納された各ＩＤに対応した演算結果Ｇ（Ｈｈ（ｓｉ，ｊ））ｇ＝１、Ｇ（Ｈｈ（ｓｉ，ｊ））ｇ＝２、・・・、Ｇ（Ｈｈ（ｓｉ，ｊ））ｇ＝Ｎに、ＲＡＭ（１５）の第１ハッシュ関数Ｇ演算結果格納領域（３５０）に格納された演算結果Ｇ（Ｈ（ｓｉ，ｊ））と等しいものがあると判定される（認証合格判定）まで繰り返す（図１４、図１５ではこの繰り返し処理は示さない。）。なお、この段階の場合では、認証合格判定はｈ＝１でしかありえない。また、ハッシュ演算回数ｈと更改回数ｊは一致することにも留意する。
【００８９】
もし、ｈの上限値ｈｍａｘまでステップＳ３１１の処理を実行しても認証合格判定がされなかったら、Ｂデータベースにおける前回のトランザクションの秘密情報を用いてステップＳ３０９〜ステップＳ３１１と同様の処理を実行する。それでも認証合格判定がされなかったら、サーバ（１）の制御部の制御の下、サーバ（１）は、ＲＦＩＤ（２）を、サーバ（１）に対する正当なアクセス権を有しないＲＦＩＤであるとして、爾後の処理を実行せずトランザクションを終了する（ステップＳ３１１ｃ）。
【００９０】
ステップＳ３１１において、ＲＡＭ（１５）の第２ハッシュ関数Ｇ演算結果格納領域（３５３）に格納された各ＩＤに対応した演算結果Ｇ（Ｈｈ（ｓｉ，ｊ））ｇ＝１、Ｇ（Ｈｈ（ｓｉ，ｊ））ｇ＝２、・・・、Ｇ（Ｈｈ（ｓｉ，ｊ））ｇ＝Ｎに、ＲＡＭ（１５）の第１ハッシュ関数Ｇ演算結果格納領域（３５０）に格納された演算結果Ｇ（Ｈ（ｓｉ，ｊ））と等しいものがあると判定されたときの秘密情報に対応する識別情報ＩＤによって、ＲＡＭ（１５）の第１ハッシュ関数Ｇ演算結果格納領域（３５０）に格納された演算結果を送信してきたＲＦＩＤ（２）が特定される。
【００９１】
サーバ（１）の演算回数出力部（３４９）は、ステップＳ３１１において、ＲＡＭ（１５）の第２ハッシュ関数Ｇ演算結果格納領域（３５３）に格納された各ＩＤに対応した演算結果Ｇ（Ｈｈ（ｓｉ，ｊ））ｇ＝１、Ｇ（Ｈｈ（ｓｉ，ｊ））ｇ＝２、・・・、Ｇ（Ｈｈ（ｓｉ，ｊ））ｇ＝Ｎに、ＲＡＭ（１５）の第１ハッシュ関数Ｇ演算結果格納領域（３５０）に格納された演算結果Ｇ（Ｈ（ｓｉ，ｊ））と等しいものがあると判定されたときのｈを出力して、ＲＡＭ（１５）のハッシュ演算回数格納領域（３５４）に格納する（ステップＳ３１２）。
【００９２】
サーバ（１）の第２判定手段（３４３）が、ＲＡＭ（１５）のハッシュ演算回数格納領域（３５４）に格納された演算回数ｈと、ｈの上限値ｈｍａｘとが等しいか否かを判定する（ステップＳ３１３）。
【００９３】
ステップＳ３１３において、演算回数ｈと、上限値ｈｍａｘとが等しいと判定されなかった（閾値不合格判定）場合、サーバの更改部（３４４）は、ＲＡＭ（１５）の秘密情報格納領域（３５１）に格納される、上記ステップＳ３１１において特定されたＩＤに対応する秘密情報ｓｉ，ｊを入力としてハッシュ関数Ｈの演算を行い、この演算結果Ｈ（ｓｉ，ｊ）を、上記ステップＳ３１１において特定されたＩＤに対応する新たな秘密情報としてＲＡＭ（１５）の秘密情報格納領域（３５１）に上書きする（ステップＳ３１４）。ここで、上記ステップＳ３１１において特定されたＩＤのＲＦＩＤ（２）の秘密情報格納領域（４４０）に格納される秘密情報と同じ秘密情報が格納されたことになる（ステップＳ３０３参照）。
【００９４】
また、この場合（閾値不合格判定）、サーバ（１）の通信部（１３）は読取装置（３）に対して、サーバ（１）の外部記憶装置（１７）から読み込まれてＲＡＭ（１５）の所定領域に格納された（ステップＳ３１１で特定された）ｋ番目のＲＦＩＤ（２）に固有の固有情報を送信する（図示しない。）。
【００９５】
ステップＳ３１３において、演算回数ｈと、上限値ｈｍａｘとが等しいと判定された（閾値合格判定）場合、サーバ（１）の秘密情報生成部（３４５）が、乱数を、上記ステップＳ３１１において特定されたＩＤのＲＦＩＤ（２）に固有の新たな秘密情報ｓｉ＋１，０として出力し、ＲＡＭ（１５）の新秘密情報格納領域（３５５）に格納する（ステップＳ３１５）。
【００９６】
閾値合格判定の場合は、さらに、サーバ（１）のブラインド情報生成部（３４６）が、サーバ（１）のＲＡＭ（１５）の秘密情報格納領域（３５１）に格納された（上記ステップＳ３１１において特定されたＩＤに対応する）秘密情報ｓｉ，ｈｍａｘを読み込み、この秘密情報ｓｉ，ｈｍａｘを入力とするハッシュ関数Ｊの演算結果Ｊ（ｓｉ，ｈｍａｘ）と、ＲＡＭ（１５）の新秘密情報格納領域（３５５）から読み込んだ新たな秘密情報ｓｉ＋１，０との排他的論理和ｓｉ＋１，０＾Ｊ（ｓｉ，ｈｍａｘ）をブラインド情報として出力し、ＲＡＭ（１５）のブラインド情報格納領域（３５６）に格納する（ステップＳ３１６）。
【００９７】
認証合格判定の場合は、さらに、サーバ（１）のハッシュ関数Ｄ演算部（３４７）が、ＲＡＭ（１５）の秘密情報格納領域（３５１）に格納された（上記ステップＳ３１１において特定されたＩＤに対応する）秘密情報ｓｉ，ｈｍａｘを読み込み、また、ＲＡＭ（１５）のブラインド情報格納領域（３５６）に格納されたブラインド情報ｓｉ＋１，０＾Ｊ（ｓｉ，ｈｍａｘ）を読み込み、これらをバイナリ系列で結合した値ｓｉ，ｈｍａｘ‖ｓｉ＋１，０＾Ｊ（ｓｉ，ｈｍａｘ）を入力として、ハッシュ関数Ｄを演算し、この演算結果Ｄ（ｓｉ，ｈｍａｘ‖ｓｉ＋１，０＾Ｊ（ｓｉ，ｈｍａｘ））を、ＲＡＭ（１５）のハッシュ関数Ｄ演算結果格納領域（３５７）に格納する（ステップＳ３１７）。
【００９８】
認証合格判定の場合は、さらに、サーバ（１）のメッセージ暗号化部（図示しない。）が、サーバ（１）のＲＡＭ（１５）の秘密情報格納領域（３５１）に格納された（上記ステップＳ３１１において特定されたＩＤに対応する）秘密情報ｓｉ，ｈｍａｘを読み込み、また、サーバ（１）の外部記憶装置から読み込まれてＲＡＭ（１５）の所定領域に格納されているメッセージｍを読み込んで、この秘密情報ｓｉ，ｈｍａｘを入力とするハッシュ関数Ｆの演算結果Ｆ（ｓｉ，ｈｍａｘ）とメッセージｍとの排他的論理和ｍ＾Ｆ（ｓｉ，ｈｍａｘ）を暗号化メッセージとして出力し、ＲＡＭ（１５）の暗号化メッセージ格納領域（図示しない。）に格納する（ステップＳ３１８）。
【００９９】
認証合格判定の場合には、サーバ（１）の通信部（１３）が、サーバ（１）の制御部の制御の下、ＲＡＭ（１５）のブラインド情報格納領域（３５６）に格納されたブラインド情報ｓｉ＋１，０＾Ｊ（ｓｉ，ｈｍａｘ）、ＲＡＭ（１５）のハッシュ関数Ｄ演算結果格納領域（３５７）に格納された演算結果Ｄ（ｓｉ，ｈｍａｘ‖ｓｉ＋１，０＾Ｊ（ｓｉ，ｈｍａｘ））、サーバ（１）の外部記憶装置（１７）から読み込まれてＲＡＭ（１５）の所定領域に格納されたｋ番目（これはステップＳ３１１で特定されている。）のＲＦＩＤ（２）に固有の固有情報、およびＲＡＭ（１５）の暗号化メッセージ格納領域（図示しない。）に格納された暗号化メッセージを読取装置（３）に送信する（ステップＳ３１９）。なお、固有情報の送信は必要に応じて行うようにしてもよい。
【０１００】
また、認証合格判定の場合には、以上のステップの処理の終了後、サーバ（１）の更新部（３４８）が、ＲＡＭ（１５）の新秘密情報格納領域（３５５）に格納された新たな秘密情報ｓｉ＋１，０を、外部記憶装置（１７）のデータベースにおいて、ｋ番目のＲＦＩＤ（２）の識別情報ｉｄに対応付けられた秘密情報として上書きする（ステップＳ３２０）。この場合では、先にｋ番目のＲＦＩＤ（２）の識別情報ｉｄに対応付けられていた秘密情報ｓｉ，ｈｍａｘを消除し、新しい秘密情報ｓｉ＋１，０を、ｋ番目のＲＦＩＤ（２）の識別情報ｉｄに対応付けて記憶する。
【０１０１】
読取装置（３）の通信手段は、ステップＳ３１９において送信されたブラインド情報ｓｉ＋１，０＾Ｊ（ｓｉ，ｈｍａｘ）、演算結果Ｄ（ｓｉ，ｈｍａｘ‖ｓｉ＋１，０＾Ｊ（ｓｉ，ｈｍａｘ））、固有情報、および暗号化メッセージを受信し（ステップＳ３２１）、さらに読取装置（３）は、そのアンテナ（３１）によって、ステップＳ３２１において受信した、ブラインド情報ｓｉ＋１，０＾Ｊ（ｓｉ，ｈｍａｘ）、演算結果Ｄ（ｓｉ，ｈｍａｘ‖ｓｉ＋１，０＾Ｊ（ｓｉ，ｈｍａｘ））および暗号化メッセージをｋ番目のＲＦＩＤ（２）に無線送信する（ステップＳ３２２）。
【０１０２】
ｋ番目のＲＦＩＤ（２）のアンテナ（２８）は、ステップＳ３２２において無線送信された、ブラインド情報ｓｉ＋１，０＾Ｊ（ｓｉ，ｈｍａｘ）、演算結果Ｄ（ｓｉ，ｈｍａｘ‖ｓｉ＋１，０＾Ｊ（ｓｉ，ｈｍａｘ））および暗号化メッセージを受信し、ブラインド情報をＲＡＭ（２４）のブラインド情報格納領域（４４３）に格納し、演算結果ＤをＲＡＭ（２４）の第１ハッシュ関数Ｄ演算結果格納領域（４４４）に格納し、暗号化メッセージをＲＡＭ（２４）の暗号化メッセージ格納領域（図示しない。）に格納する（ステップＳ３２３）。
【０１０３】
ＲＦＩＤ（２）のハッシュ関数Ｄ演算部（４３３）は、ＲＡＭ（２４）の秘密情報格納領域（４４０）に格納された秘密情報ｓｉ，ｈｍａｘを読み込み（サーバ（１）から更新情報が送られてくるときは、ＲＦＩＤ（２）の秘密情報はｓｉ，ｈｍａｘに更改されていることに留意すること。）、また、ＲＡＭ（２４）のブラインド情報格納領域（４４３）に格納されたブラインド情報ｓｉ＋１，０＾Ｊ（ｓｉ，ｈｍａｘ）を読み込み、これらをバイナリ系列で結合した値ｓｉ，ｈｍａｘ‖ｓｉ＋１，０＾Ｊ（ｓｉ，ｈｍａｘ）を入力として、ハッシュ関数Ｄを演算し、この演算結果Ｄ（ｓｉ，ｈｍａｘ‖ｓｉ＋１，０＾Ｊ（ｓｉ，ｈｍａｘ））を、ＲＡＭ（２４）の第２ハッシュ関数Ｄ演算結果格納領域（４４５）に格納する（ステップＳ３２４）。
【０１０４】
ＲＦＩＤ（２）の判定部（４３４）は、ＲＡＭ（２４）の第１ハッシュ関数Ｄ演算結果格納領域（４４４）に格納される演算結果Ｄ（ｓｉ，ｈｍａｘ‖ｓｉ＋１，０＾Ｊ（ｓｉ，ｈｍａｘ））と、ＲＡＭ（２４）の第２ハッシュ関数Ｄ演算結果格納領域（４４５）に格納される演算結果Ｄ（ｓｉ，ｈｍａｘ‖ｓｉ＋１，０＾Ｊ（ｓｉ，ｈｍａｘ））とが等しいか否かを判定する（ステップＳ３２５）。
【０１０５】
ステップＳ３２５における判定結果が、ＲＡＭ（２４）の第１ハッシュ関数Ｄ演算結果格納領域（４４４）に格納される演算結果Ｄ（ｓｉ，ｈｍａｘ‖ｓｉ＋１，０＾Ｊ（ｓｉ，ｈｍａｘ））と、ＲＡＭ（２４）の第２ハッシュ関数Ｄ演算結果格納領域（４４５）に格納される演算結果Ｄ（ｓｉ，ｈｍａｘ‖ｓｉ＋１，０＾Ｊ（ｓｉ，ｈｍａｘ））とが等しくないという場合には、受信したブラインド情報などが信頼あるサーバから送られたものではないとして、爾後の処理を実行せずにトランザクションは終了する（ステップＳ３２５ｃ）。
【０１０６】
ステップＳ３２５における判定結果が、ＲＡＭ（２４）の第１ハッシュ関数Ｄ演算結果格納領域（４４４）に格納される演算結果Ｄ（ｓｉ，ｈｍａｘ‖ｓｉ＋１，０＾Ｊ（ｓｉ，ｈｍａｘ））と、ＲＡＭ（２４）の第２ハッシュ関数Ｄ演算結果格納領域（４４５）に格納される演算結果Ｄ（ｓｉ，ｈｍａｘ‖ｓｉ＋１，０＾Ｊ（ｓｉ，ｈｍａｘ））とが等しいという場合には、ＲＦＩＤ（２）の秘密情報取得部（４３５）が、ＲＡＭ（２４）の秘密情報格納領域（４４０）に格納される秘密情報ｓｉ，ｈｍａｘを読み込み、この秘密情報ｓｉ，ｈｍａｘを入力とするハッシュ関数Ｊの演算結果Ｊ（ｓｉ，ｈｍａｘ）と、ＲＡＭ（２４）のブラインド情報格納領域（４４３）から読み込んだブラインド情報ｓｉ＋１，０＾Ｊ（ｓｉ，ｈｍａｘ）との排他的論理和（ｓｉ＋１，０＾Ｊ（ｓｉ，ｈｍａｘ））＾Ｊ（ｓｉ，ｈｍａｘ）＝ｓｉ＋１，０を出力し、ＲＡＭ（２４）の新秘密情報格納領域（４４６）に格納する（ステップＳ３２６）。
【０１０７】
また、ステップＳ３２５における判定結果が、ＲＡＭ（２４）の第１ハッシュ関数Ｄ演算結果格納領域（４４４）に格納される演算結果Ｄ（ｓｉ，ｈｍａｘ‖ｓｉ＋１，０＾Ｊ（ｓｉ，ｈｍａｘ））と、ＲＡＭ（２４）の第２ハッシュ関数Ｄ演算結果格納領域（４４５）に格納される演算結果Ｄ（ｓｉ，ｈｍａｘ‖ｓｉ＋１，０＾Ｊ（ｓｉ，ｈｍａｘ））とが等しいという場合には、ＲＦＩＤ（２）のメッセージ復号化部（図示しない。）が、不揮発性メモリ（２７）に記憶される秘密情報ｓｉ，ｈｍａｘを読み込み、この秘密情報ｓｉ，ｈｍａｘを入力とするハッシュ関数Ｆの演算結果Ｆ（ｓｉ，ｈｍａｘ）と、ＲＡＭ（２４）の暗号化メッセージ格納領域から読み込んだ暗号化メッセージとの排他的論理和（ｍ＾Ｆ（ｓｉ，ｈｍａｘ））＾Ｆ（ｓｉ，ｈｍａｘ）＝ｍを出力し、ＲＡＭ（２４）のメッセージ格納領域（図示しない。）に格納する（ステップＳ３２７）。
【０１０８】
ＲＦＩＤ（２）の更新部（４３６）は、ＲＡＭ（２４）の新秘密情報格納領域（４４６）に格納された新たな秘密情報ｓｉ＋１，０を、先に不揮発性メモリ（２７）に記憶されていた秘密情報ｓｉ，ｈｍａｘを上書きする（ステップＳ３２８）。つまり、この段階で、不揮発性メモリ（２７）には新しい秘密情報ｓｉ＋１，０が記憶されたことになる。
【０１０９】
サーバ（１）およびＲＦＩＤ（２）は、以上のようにして、秘密情報ｓｉ，ｈｍａｘを秘密情報ｓｉ＋１，０に更新して共有することになる。
【０１１０】
なお、以上の説明のとおり、第２実施形態では、サーバ（１）およびＲＦＩＤ（２）の秘密情報の更新は、読取装置（３）のＲＦＩＤ（２）に対するｈｍａｘ回の読取ごとに実行されることに留意する。
【０１１１】
なお、第１実施形態の変形例２・３・４は、この第２実施形態にも同様にして適用される。
【０１１２】
＜第３実施形態＞
以上の各実施形態・変形例では、サーバとＲＤＩＦ（端末装置）との間での秘密情報更新であったが、サーバへのアクセスによる負荷・トラフィック軽減の観点からも、端末装置間で秘密情報を更新できることが好ましい。このことを以下に説明する。なお、サーバと端末装置との間での秘密情報更新が前提となっているが、このことは上記各実施形態で説明済みである。ここでは、説明の便宜から第１実施形態を前提として（第１実施形態の変形例や第２実施形態を排除する趣旨ではない。）、端末装置間で秘密情報更新について説明を加える。なお、説明の便宜から、端末装置は２つとし、それぞれを端末装置Ａ、端末装置Ｂとし、端末装置Ａはサーバからの秘密情報を更新済みであって、端末装置Ｂは端末装置Ａとの交信で秘密情報を更新するものとする。また、端末装置Ａ、端末装置Ｂはそれぞれ、相互に無線送受信可能な通信手段を有するとする。
図１７は、端末装置Ａ（２Ａ）と端末装置（２Ｂ）との通信ネットワークの態様を示した図である。
図１８は、第３実施形態に係わるサーバ（１）の機能ブロック図である。
図１９は、第３実施形態に係わるＲＦＩＤ（２）の機能ブロック図である。
図２０は、第３実施形態に係わる秘密情報更新方法の処理の流れを示すフローチャートである。
【０１１３】
端末装置Ａは、その通信手段であるアンテナ２８Ａによって、ＲＡＭ（２４Ａ）のブラインド情報格納領域（２４３Ａ）に格納されたブラインド情報Ｅｂ、ＲＡＭ（２４Ａ）の第１ハッシュ関数Ｄ演算結果格納領域（２４４Ａ）に格納された演算結果Ｄ、ＲＡＭ（２４Ａ）の暗号化メッセージ格納領域（図示しない。）に格納された暗号化メッセージＥｍを端末装置Ｂに送信する（ステップＳ５００）。
【０１１４】
また、端末装置Ａのハッシュ関数Ｔ演算部（２３５Ａ）は、サーバ（１）から受信して得たブラインド情報Ｅｂ、演算結果Ｄ、新たな秘密情報ｓｉ＋１と、上書きされる前の秘密情報ｓｉとをバイナリ系列で結合した値Ｅｂ‖Ｄ‖ｓｉ＋１‖ｓｉを入力としたハッシュ関数Ｔを演算して、この演算結果Ｔ（Ｅｂ‖Ｄ‖ｓｉ＋１‖ｓｉ）をＲＡＭ（２４Ａ）の第１ハッシュ関数Ｔ演算結果格納領域（２４７Ａ）に格納しておく（ステップＳ５０１）。
【０１１５】
端末装置Ｂは、その通信手段であるアンテナ２８Ｂによって、ステップＳ５０１において送信された、ブラインド情報Ｅｂ、演算結果Ｄ、暗号化メッセージＥｍを受信し、ブラインド情報をＲＡＭ（２４Ｂ）のブラインド情報格納領域（２４３Ｂ）に格納し、演算結果ＤをＲＡＭ（２４Ｂ）の第１ハッシュ関数Ｄ演算結果格納領域（２４４Ｂ）に格納し、暗号化メッセージをＲＡＭ（２４Ｂ）の暗号化メッセージ格納領域（図示しない。）に格納する（ステップＳ５０２）。
【０１１６】
端末装置Ｂにおいても、端末装置ＡにおけるステップＳ１２２〜Ｓ１２７と同様の処理を実行することで、新しい秘密情報を得てこれに更新し、また、メッセージを取得する（Ｓ５０３）。
【０１１７】
また、端末装置Ｂの確認情報生成部（２３６Ｂ）は、更新される前の秘密情報ｓｉと、ステップＳ５０３の処理で取得した新しい秘密情報ｓｉ＋１と、端末装置Ａから送信されたブラインド情報Ｅｂと演算結果Ｄとをバイナリ系列で結合した値Ｅｂ‖Ｄ‖ｓｉ＋１‖ｓｉを入力としたハッシュ関数Ｔを演算し、この演算結果Ｔ（Ｅｂ‖Ｄ‖ｓｉ＋１‖ｓｉ）をＲＡＭ（２４Ｂ）の確認情報格納領域（２４７Ｂ）に格納する（ステップＳ５０４）。
【０１１８】
次いで、端末装置Ｂのアンテナ２８Ｂは、ＲＡＭ（２４Ｂ）の確認情報格納領域（２４７Ｂ）に格納された演算結果Ｔ（Ｅｂ‖Ｄ‖ｓｉ＋１‖ｓｉ）を端末装置Ａに送信する（ステップＳ５０５）。この際、ステップＳ１１７と同様にしてメッセージｍ’を暗号化した暗号メッセージｍ’＾Ｆ（ｓｉ）を送信するとしてもよい。
【０１１９】
端末装置Ａのアンテナ２８Ａは、ステップＳ５０５において端末装置Ｂから送信された演算結果Ｔ（Ｅｂ‖Ｄ‖ｓｉ＋１‖ｓｉ）を受信し、この演算結果Ｔ（Ｅｂ‖Ｄ‖ｓｉ＋１‖ｓｉ）をＲＡＭ（２４Ａ）の第２ハッシュ関数Ｔ演算結果格納領域（２４８Ａ）に格納する（ステップＳ５０６）。
【０１２０】
端末装置Ａの検証部（２３７Ａ）は、ＲＡＭ（２４）の第１ハッシュ関数Ｔ演算結果格納領域（２４７Ａ）に格納しておいた演算結果Ｔ（Ｅｂ‖Ｄ‖ｓｉ＋１‖ｓｉ）と、ＲＡＭ（２４）の第２ハッシュ関数Ｔ演算結果格納領域（２４８Ａ）に格納された演算結果Ｔ（Ｅｂ‖Ｄ‖ｓｉ＋１‖ｓｉ）とが一致するかを検証する（ステップＳ５０７）。これによって、端末装置Ａは、端末装置Ｂにおいて秘密情報更新が成功したことを確認することができる。
【０１２１】
また、端末装置Ａが、端末装置Ｂから暗号メッセージｍ’＾Ｆ（ｓｉ）を受信した場合には、端末装置Ａのメッセージ復号化部（図示しない。）は、この暗号メッセージｍ’＾Ｆ（ｓｉ）と、端末装置ＡのＲＡＭ（２４）に記憶される上書き前の秘密情報ｓｉを入力とするハッシュ関数Ｆの演算結果Ｆ（ｓｉ）との排他的論理和（ｍ’＾Ｆ（ｓｉ））＾Ｆ（ｓｉ）＝ｍ’を演算してメッセージｍ’を得ることができる。
【０１２２】
なお、端末装置Ｂが、メッセージｍ’をハッシュ関数Ｆの演算結果Ｆ（ｓｉ＋１）で暗号化した暗号メッセージｍ’＾Ｆ（ｓｉ＋１）を送信し、端末装置Ａが、この暗号化メッセージを受信した場合には、端末装置Ａのメッセージ復号化部（図示しない。）は、この暗号メッセージｍ’＾Ｆ（ｓｉ＋１）と、端末装置Ａの不揮発性メモリ（２７）に記憶される新たな秘密情報ｓｉ＋１を入力とするハッシュ関数Ｆの演算結果Ｆ（ｓｉ＋１）との排他的論理和（ｍ’＾Ｆ（ｓｉ＋１））＾Ｆ（ｓｉ＋１）＝ｍ’を演算してメッセージｍ’を得ることができる。
【０１２３】
本発明である秘密情報更新方法は上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。また、上記各実施形態において説明した処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されるとしてもよい。
【産業上の利用可能性】
【０１２４】
本発明の秘密情報更新方法は、例えば、演算機能の豊富ではないＲＦＩＤのよなＩＣタグとの間での秘密情報の更新に用いることができる。
【図面の簡単な説明】
【０１２５】
【図１】読取装置（３）を介したサーバ（１）とＲＦＩＤ（２）との通信ネットワークの態様を示した図。
【図２】第１実施形態に係わるサーバ（１）のハードウェア構成を例示した構成ブロック図。
【図３】第１実施形態に係わるＲＦＩＤ（２）のハードウェア構成を例示した構成ブロック図。
【図４】第１実施形態に係わるサーバ（１）の機能ブロック図。
【図５】第１実施形態に係わるＲＦＩＤ（２）の機能ブロック図。
【図６】第１実施形態に係わる秘密情報更新方法の処理の流れを示すフローチャート（その１）。
【図７】第１実施形態に係わる秘密情報更新方法の処理の流れを示すフローチャート（その２）。
【図８】第１実施形態に係わる秘密情報更新方法の処理の流れを示すフローチャート（その３）。
【図９】サーバ（１）の外部記憶装置（１７）に記憶されるデータベースのデータ構成を示す図。
【図１０】Ｂデータベースにおける秘密情報を用いた判定処理示す部分フローチャート。
【図１１】第１実施形態の変形例１における秘密情報更新方法の処理の流れのうち、第１実施形態と異なる処理部分の部分フローチャート。
【図１２】第２実施形態に係わるサーバ（１）の機能ブロック図。
【図１３】第２実施形態に係わるＲＦＩＤ（２）の機能ブロック図。
【図１４】第２実施形態に係わる秘密情報更新方法の処理の流れを示すフローチャート（その１）。
【図１５】第２実施形態に係わる秘密情報更新方法の処理の流れを示すフローチャート（その２）。
【図１６】第２実施形態に係わる秘密情報更新方法の処理の流れを示すフローチャート（その３）。
【図１７】端末装置Ａ（２Ａ）と端末装置（２Ｂ）との通信ネットワークの態様を示した図。
【図１８】第３実施形態に係わるサーバ（１）の機能ブロック図。
【図１９】第３実施形態に係わるＲＦＩＤ（２）の機能ブロック図。
【図２０】第３実施形態に係わる秘密情報更新方法の処理の流れを示すフローチャート。
【符号の説明】
【０１２６】
１    サーバ
２    ＲＦＩＤ
３    読取装置
２Ａ  端末装置Ａ
２Ｂ  端末装置Ｂ
【図１】
2006352800.tif 000003
【図２】
2006352800.tif 000004
【図３】
2006352800.tif 000005
【図４】
2006352800.tif 000006
【図５】
2006352800.tif 000007
【図６】
2006352800.tif 000008
【図７】
2006352800.tif 000009
【図８】
2006352800.tif 000010
【図９】
2006352800.tif 000011
【図１０】
2006352800.tif 000012
【図１１】
2006352800.tif 000013
【図１２】
2006352800.tif 000014
【図１３】
2006352800.tif 000015
【図１４】
2006352800.tif 000016
【図１５】
2006352800.tif 000017
【図１６】
2006352800.tif 000018
【図１７】
2006352800.tif 000019
【図１８】
2006352800.tif 000020
【図１９】
2006352800.tif 000021
【図２０】
2006352800.tif 000022