(57)【要約】【課題】各ＩＣローダに固有の全てのパスワードを管理する必要の無いパスワード管理システムおよびパスワード認証方法を提供すること。【解決手段】相互に通信可能なＩＣローダとリーダライタにおいて、ＩＣローダは固有の識別情報とパスワードを記憶し、リーダライタは複数のＩＣローダに共通の秘密情報を記憶しておく。リーダライタは、ＩＣローダに固有の識別情報をＩＣローダから受信して、この識別情報と前記秘密情報をパスワード生成関数の入力としてパスワードを生成し、このパスワードをＩＣローダに送信する。ＩＣローダは、リーダライタから受信したパスワードと自己が記憶するパスワードとの一致を判定して認証を行う。なお、ＩＣローダの記憶するパスワードは、ＩＣローダの識別情報および前記秘密情報をパスワード生成関数に入力して得られた演算結果としておく。【選択図】図４
2007140778.tif 000002
【特許請求の範囲】
【請求項１】
ＩＣローダとリーダライタとは相互に通信可能であり、
ＩＣローダは、
ＩＣローダに固有の識別情報およびパスワードを記憶する記憶手段と、
リーダライタに識別情報を送信する送信手段と、
リーダライタからパスワードを受信する受信手段と、
ＩＣローダの記憶手段に記憶されるパスワードと、ＩＣローダの受信手段によって受信したパスワードとが一致するか否かを判定する判定手段とを備え、
リーダライタは、
複数のＩＣローダに共通の秘密情報を記憶する記憶手段と、
ＩＣローダから当該ＩＣローダの識別情報を受信する受信手段と、
リーダライタの受信手段によって受信した識別情報およびリーダライタの記憶手段に記憶される秘密情報をパスワード生成関数の入力としてパスワードを生成するパスワード生成手段と、
パスワード生成手段によって生成されたパスワードをＩＣローダに送信する送信手段とを備え、
ＩＣローダの記憶手段に記憶されるパスワードは、このＩＣローダの識別情報および上記秘密情報を上記パスワード生成関数に入力して得られた演算結果である
ことを特徴とするパスワード管理システム。
【請求項２】
ＩＣローダとリーダライタとは相互に通信可能であって、ＩＣローダはリーダライタから要求された処理を実行可能なものであり、
ＩＣローダは、
ＩＣローダに固有の識別情報およびリーダライタから要求された処理の種類ごとに定まる情報（要求処理識別情報）に対応したパスワードを記憶する記憶手段と、
リーダライタに識別情報を送信する送信手段と、
リーダライタからパスワードあるいは要求処理識別情報を受信する受信手段と、
ＩＣローダの記憶手段に記憶されるパスワードと、ＩＣローダの受信手段によって受信したパスワードとが一致するか否かを判定する判定手段とを備え、
リーダライタは、
複数のＩＣローダに共通の秘密情報および要求処理識別情報を記憶する記憶手段と、
ＩＣローダから当該ＩＣローダの識別情報を受信する受信手段と、
リーダライタの受信手段によって受信した識別情報、リーダライタの記憶手段に記憶される秘密情報、ＩＣローダに送信した要求処理識別情報をパスワード生成関数の入力としてパスワードを生成するパスワード生成手段と、
パスワード生成手段によって生成されたパスワードあるいは要求処理識別情報をＩＣローダに送信する送信手段とを備え、
ＩＣローダの記憶手段に記憶される要求処理識別情報に対応した上記パスワードは、このＩＣローダの識別情報、上記秘密情報、要求処理識別情報を上記パスワード生成関数に入力して得られた演算結果である
ことを特徴とするパスワード管理システム。
【請求項３】
サーバとＩＣローダとが、リーダライタを介して相互に通信可能であり、
ＩＣローダは、
ＩＣローダに固有の識別情報およびパスワードを記憶する記憶手段と、
リーダライタに識別情報を送信する送信手段と、
リーダライタからパスワードを受信する受信手段と、
ＩＣローダの記憶手段に記憶されるパスワードと、ＩＣローダの受信手段によって受信したパスワードとが一致するか否かを判定する判定手段とを備え、
リーダライタは、
ＩＣローダから識別情報を受信する第１受信手段と、
リーダライタの第１受信手段によって受信した識別情報をサーバに送信する第１送信手段と、
サーバからパスワードを受信する第２受信手段と、
ＩＣローダにパスワードを送信する第２送信手段とを備え、
サーバは、
複数のＩＣローダに共通の秘密情報を記憶する記憶手段と、
リーダライタからＩＣローダの識別情報を受信する受信手段と、
サーバの受信手段によって受信した識別情報およびサーバの記憶手段に記憶される秘密情報をパスワード生成関数の入力としてパスワードを生成するパスワード生成手段と、
パスワード生成手段によって生成されたパスワードをリーダライタに送信する送信手段とを備え、
ＩＣローダの記憶手段に記憶されるパスワードは、このＩＣローダの識別情報および上記秘密情報を上記パスワード生成関数に入力して得られた演算結果である
ことを特徴とするパスワード管理システム。
【請求項４】
サーバとＩＣローダとが、リーダライタを介して相互に通信可能であり、
ＩＣローダは、
ＩＣローダに固有の識別情報およびパスワードを記憶する記憶手段と、
乱数を生成する乱数生成手段と、
リーダライタに記憶手段に記憶される識別情報および乱数生成手段によって生成された乱数を送信する送信手段と、
リーダライタからマスキングパスワードを受信する受信手段と、
ＩＣローダの受信手段によって受信したマスキングパスワードおよび乱数生成手段によって生成された乱数をマスキング逆関数の入力としてパスワードを出力するマスキング逆関数演算手段と、
ＩＣローダの記憶手段に記憶されるパスワードと、ＩＣローダのマスキング逆関数演算手段によって出力されたパスワードとが一致するか否かを判定する判定手段とを備え、
リーダライタは、
ＩＣローダから識別情報および乱数を受信する第１受信手段と、
リーダライタの第１受信手段によって受信した識別情報および乱数をサーバに送信する第１送信手段と、
サーバからマスキングパスワードを受信する第２受信手段と、
ＩＣローダにマスキングパスワードを送信する第２送信手段とを備え、
サーバは、
複数のＩＣローダに共通の秘密情報を記憶する記憶手段と、
リーダライタからＩＣローダの識別情報および乱数を受信する受信手段と、
サーバの受信手段によって受信した識別情報およびサーバの記憶手段に記憶される秘密情報をパスワード生成関数の入力としてパスワードを生成するパスワード生成手段と、
サーバのパスワード生成手段によって生成されたパスワードおよびサーバの受信手段によって受信した乱数をマスキング関数の入力としてマスキングパスワードを生成するマスキング関数演算手段と、
サーバのマスキング関数演算手段によって生成されたマスキングパスワードをリーダライタに送信する送信手段とを備え、
ＩＣローダの記憶手段に記憶されるパスワードは、このＩＣローダの識別情報および上記秘密情報を上記パスワード生成関数に入力して得られた演算結果である
ことを特徴とするパスワード管理システム。
【請求項５】
ＩＣローダとリーダライタとは相互に通信可能であり、
ＩＣローダの記憶手段には、当該ＩＣローダに固有の識別情報およびパスワードが記憶され、
リーダライタの記憶手段には、複数のＩＣローダに共通の秘密情報が記憶され、
ＩＣローダの送信手段が、リーダライタに当該ＩＣローダに固有の識別情報を送信する識別情報送信ステップと、
リーダライタの受信手段が、識別情報送信ステップにおいて送信されたＩＣローダの識別情報を受信する識別情報受信ステップと、
リーダライタのパスワード生成手段が、識別情報受信ステップにおいて受信した識別情報およびリーダライタの記憶手段に記憶される秘密情報をパスワード生成関数の入力としてパスワードを生成するパスワード生成ステップと、
リーダライタの送信手段が、パスワード生成ステップにおいて生成されたパスワードをＩＣローダに送信するパスワード送信ステップと、
ＩＣローダの受信手段が、パスワード送信ステップにおいて送信されたパスワードを受信するパスワード受信ステップと、
ＩＣローダの判定手段が、パスワード受信ステップにおいて受信したパスワードと、ＩＣローダの記憶手段に記憶されるパスワードとが一致するか否かを判定する判定ステップと
を有することを特徴とするパスワード認証方法。
【請求項６】
ＩＣローダとリーダライタとは相互に通信可能であって、ＩＣローダはリーダライタから要求された処理を実行可能なものであり、
ＩＣローダの記憶手段には、当該ＩＣローダに固有の識別情報およびリーダライタから要求された処理の種類ごとに定まる情報（要求処理識別情報）に対応したパスワードが記憶され、
リーダライタの記憶手段には、複数のＩＣローダに共通の秘密情報および要求処理識別情報が記憶され、
リーダライタの送信手段が、ＩＣローダに要求処理識別情報を送信する要求処理識別情報送信ステップと、
ＩＣローダの受信手段が、要求処理識別情報送信ステップにおいて送信された要求処理識別情報を受信する要求処理識別情報受信ステップと、
ＩＣローダの送信手段が、リーダライタに当該ＩＣローダに固有の識別情報を送信する識別情報送信ステップと、
リーダライタの受信手段が、識別情報送信ステップにおいて送信されたＩＣローダの識別情報を受信する識別情報受信ステップと、
リーダライタのパスワード生成手段が、識別情報受信ステップにおいて受信した識別情報、リーダライタの記憶手段に記憶される秘密情報、要求処理識別情報送信ステップにおいてＩＣローダに送信した要求処理識別情報をパスワード生成関数の入力としてパスワードを生成するパスワード生成ステップと、
リーダライタの送信手段が、パスワード生成ステップにおいて生成されたパスワードをＩＣローダに送信するパスワード送信ステップと、
ＩＣローダの受信手段が、パスワード送信ステップにおいて送信されたパスワードを受信するパスワード受信ステップと、
ＩＣローダの判定手段が、パスワード受信ステップにおいて受信したパスワードと、要求処理識別情報受信ステップにおいて受信した要求処理識別情報に対応した記憶手段に記憶されるパスワードとが一致するか否かを判定する判定ステップと
を有することを特徴とするパスワード認証方法。
【請求項７】
サーバとＩＣローダとが、リーダライタを介して相互に通信可能であり、
ＩＣローダの記憶手段には、当該ＩＣローダに固有の識別情報およびパスワードが記憶され、
サーバの記憶手段には、複数のＩＣローダに共通の秘密情報が記憶され、
ＩＣローダの送信手段が、リーダライタに当該ＩＣローダに固有の識別情報を送信する第１識別情報送信ステップと、
リーダライタの第１受信手段が、第１識別情報送信ステップにおいて送信されたＩＣローダの識別情報を受信する第１識別情報受信ステップと、
リーダライタの第１送信手段が、第１識別情報受信ステップにおいて受信したＩＣローダの識別情報をサーバに送信する第２識別情報送信ステップと、
サーバの受信手段が、第２識別情報送信ステップにおいて送信されたＩＣローダの識別情報を受信する第２識別情報受信ステップと、
サーバのパスワード生成手段が、第２識別情報受信ステップにおいて受信したＩＣローダの識別情報およびサーバの記憶手段に記憶される秘密情報をパスワード生成関数の入力としてパスワードを生成するパスワード生成ステップと、
サーバの送信手段が、パスワード生成ステップにおいて生成されたパスワードをリーダライタに送信する第１パスワード送信ステップと、
リーダライタの第２受信手段が、第１パスワード送信ステップにおいて送信されたパスワードを受信する第１パスワード受信ステップと、
リーダライタの第２送信手段が、第１パスワード受信ステップにおいて受信したパスワードをＩＣローダに送信する第２パスワード送信ステップと、
ＩＣローダの受信手段が、第２パスワード送信ステップにおいて送信されたパスワードを受信する第２パスワード受信ステップと、
ＩＣローダの判定手段が、第２パスワード受信ステップにおいて受信したパスワードと、ＩＣローダの記憶手段に記憶されるパスワードとが一致するか否かを判定する判定ステップと
を有することを特徴とするパスワード認証方法。
【請求項８】
サーバとＩＣローダとが、リーダライタを介して相互に通信可能であり、
ＩＣローダの記憶手段には、当該ＩＣローダに固有の識別情報およびパスワードが記憶され、
サーバの記憶手段には、複数のＩＣローダに共通の秘密情報が記憶され、
ＩＣローダの乱数生成手段が、乱数を生成する乱数生成ステップと、
ＩＣローダの送信手段が、リーダライタに当該ＩＣローダに固有の識別情報および乱数生成ステップにおいて生成された乱数を送信する第１識別情報送信ステップと、
リーダライタの第１受信手段が、第１識別情報送信ステップにおいて送信されたＩＣローダの識別情報および乱数を受信する第１識別情報受信ステップと、
リーダライタの第１送信手段が、第１識別情報受信ステップにおいて受信したＩＣローダの識別情報および乱数をサーバに送信する第２識別情報送信ステップと、
サーバの受信手段が、第２識別情報送信ステップにおいて送信されたＩＣローダの識別情報および乱数を受信する第２識別情報受信ステップと、
サーバのパスワード生成手段が、第２識別情報受信ステップにおいて受信したＩＣローダの識別情報およびサーバの記憶手段に記憶される秘密情報をパスワード生成関数の入力としてパスワードを生成するパスワード生成ステップと、
サーバのマスキング関数演算手段が、パスワード生成ステップにおいて生成されたパスワードおよび第２識別情報受信ステップにおいて受信した乱数をマスキング関数の入力としてマスキングパスワードを生成するマスキング関数演算ステップと、
サーバの送信手段が、マスキング関数演算ステップにおいて生成されたマスキングパスワードをリーダライタに送信する第１パスワード送信ステップと、
リーダライタの第２受信手段が、第１パスワード送信ステップにおいて送信されたマスキングパスワードを受信する第１パスワード受信ステップと、
リーダライタの第２送信手段が、第１パスワード受信ステップにおいて受信したマスキングパスワードをＩＣローダに送信する第２パスワード送信ステップと、
ＩＣローダの受信手段が、第２パスワード送信ステップにおいて送信されたマスキングパスワードを受信する第２パスワード受信ステップと、
ＩＣローダのマスキング逆関数演算手段が、第２パスワード受信ステップにおいて受信したマスキングパスワードおよび乱数生成ステップにおいて生成した乱数をマスキング逆関数の入力としてパスワードを出力するマスキング逆関数演算ステップと、
ＩＣローダの判定手段が、マスキング逆関数演算ステップにおいて出力されたパスワードと、ＩＣローダの記憶手段に記憶されるパスワードとが一致するか否かを判定する判定ステップと
を有することを特徴とするパスワード認証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報セキュリティ技術に関するものであり、より詳しくは、パスワード管理技術に関する。
【背景技術】
【０００２】
公知の相手認証方法の一つに、パスワードによる方法がある。この方法では、認証したい相手の全てに同じパスワードを割り当てる方法と、認証したい相手ごとに固有のパスワードを割り当てる方法がある。
【０００３】
具体例として、ＩＳＯ（International Organization for Standardization）-１５６９３やＩＳＯ-１８０００などにおいて定められているＲＦＩＤ（Radio Frequency Identification）タグで説明する。このＲＦＩＤタグでは、アクセス制御手段としてパスワード認証が行われている。このパスワード認証方法では、ＲＦＩＤタグとリーダライタ側の双方に共通のパスワードが管理（記憶）されている。機能実行要求時には、リーダライタ側がＲＦＩＤタグに対してパスワードを提示し、ＲＦＩＤタグは、提示されたパスワードとＲＦＩＤタグに記憶されているパスワードとが一致した場合のみ、要求機能の実行を許可する。また、例えばEPCglobal Inc.が定める方式（非特許文献１、非特許文献２参照。）では、ＲＦＩＤタグに搭載されたメモリ領域の読み書き制御とプライバシ保護を目的としてＲＦＩＤタグを無効化する機能の２つに関するパスワードが設定されている。
【０００４】
このようなＲＦＩＤタグでは、複数のＲＦＩＤタグで同じパスワードを設定する方法と、個々のＲＦＩＤタグごとに固有のパスワードを設定する方法がある。後者の場合、（許可された）リーダライタは全てのＲＦＩＤタグについて、個々のパスワードとの対応表をメモリに記憶しておく。
上記説明したことは、ＲＦＩＤタグに限らずＩＣ（Integrated Circuit）カードなどでも同様である。以上のパスワード認証機能などを担う実体はＩＣチップであるから、このようなＩＣチップを搭載したタグやカードなどを総称して、ＩＣローダ（loader）と云うことにする。
【非特許文献１】「ＮＴＴ技術ジャーナル」、社団法人電気通信協会、２００５年１１月号
【非特許文献２】EPCglobal Inc.,"EPC Radio-Frequency Identity Protocols Class-1 Generation-2 UHF RFID Protocol for Communications at 860MHz-960MHz", Version 1.0.8, EPCglobal Inc., 2005年1月，[平成１７年１１月７日検索]，〈http://www.epcglobalinc.org/standards_technology/specifications.html〉
【発明の開示】
【発明が解決しようとする課題】
【０００５】
各ＩＣローダに固有のパスワードを設定して管理（記憶）する場合、リーダライタ側で個別のＩＣローダとそのパスワードの対応表等を用意しなければならない。そして、ＩＣローダを例えば荷札（タグ）として用いる物流の現場などを考えると、リーダライタが扱うＩＣローダの数は膨大な量であり、また、上記対応表を管理（記憶）するリーダライタの数も多く、それらリーダライタ間でデータ量が膨大な対応表を共有しなければならない。このような場合の単純な解決策は、全てのＩＣローダに対して同じパスワードを設定することである。しかし、パスワードが漏洩した際の安全性の問題やパスワードを更新する作業に非常に手間がかかることを考慮すれば、有効な解決策ではない。
【０００６】
そこで、本発明は、各ＩＣローダに固有の全てのパスワードを管理する必要の無いパスワード管理システムおよびパスワード認証方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、相互に通信可能なＩＣローダとリーダライタにおいて、ＩＣローダは固有の識別情報とパスワードを記憶し、リーダライタは複数のＩＣローダに共通の秘密情報を記憶しておく。リーダライタは、ＩＣローダに固有の識別情報をＩＣローダから受信して、この識別情報と前記秘密情報をパスワード生成関数の入力としてパスワードを生成し、このパスワードをＩＣローダに送信する。ＩＣローダは、リーダライタから受信したパスワードと自己が記憶するパスワードとの一致を判定して認証を行う。なお、ＩＣローダの記憶するパスワードは、ＩＣローダの識別情報および前記秘密情報をパスワード生成関数に入力して得られた演算結果としておく。
このようにリーダライタは、各ＩＣローダに固有のパスワードを全て記憶保存しておくのではなく、複数のＩＣローダに共通の秘密情報だけを記憶しておく。そして、リーダライタは、必要となったときにＩＣローダに固有の識別情報を取得して、ＩＣローダに固有のパスワードを生成してパスワード認証を行う。
【０００８】
また、リーダライタは複数のＩＣローダに共通の秘密情報、ＩＣローダに対して要求する処理の種類ごとに定まる情報（要求処理識別情報）を記憶し、ＩＣローダは固有の識別情報、要求処理識別情報ごとにこれに対応したパスワードを記憶しておくとしてもよい。この場合、ＩＣローダは、リーダライタから要求処理識別情報を受信し、この要求処理識別情報に対応した処理の実行を要求される。そこで、ＩＣローダは、リーダライタにＩＣローダに固有の識別情報を送信する。リーダライタは、ＩＣローダに固有の識別情報をＩＣローダから受信して、この識別情報、前記秘密情報、ＩＣローダに送信した要求処理識別情報をパスワード生成関数の入力としてパスワードを生成し、このパスワードをＩＣローダに送信する。ＩＣローダは、リーダライタから受信したパスワードと自己が記憶するパスワードとの一致を判定して認証を行う。なお、ＩＣローダの記憶するパスワードは、ＩＣローダの識別情報、前記秘密情報、要求処理識別情報をパスワード生成関数に入力して得られた演算結果としておく。
このように、要求処理識別情報に対応した処理の種類ごとにパスワードを定めているので、特定の処理についてパスワード認証が行われることとなるが、このような場合でも、リーダライタが記憶する情報は、複数のＩＣローダに共通の秘密情報と要求処理識別情報だけですむ。
【０００９】
また、リーダライタを介して相互に通信可能なＩＣローダとサーバにおいて、ＩＣローダは固有の識別情報とパスワードを記憶し、サーバは複数のＩＣローダに共通の秘密情報を記憶しておく。リーダライタは、ＩＣローダに固有の識別情報をＩＣローダから受信すると、これをサーバに送信する。サーバは、リーダライタから識別情報を受信すると、この識別情報と前記秘密情報をパスワード生成関数の入力としてパスワードを生成し、このパスワードをリーダライタに送信する。リーダライタは、受信したパスワードをＩＣローダに送信する。ＩＣローダは、リーダライタから受信したパスワードと自己が記憶するパスワードとの一致を判定して認証を行う。なお、ＩＣローダの記憶するパスワードは、ＩＣローダの識別情報および前記秘密情報をパスワード生成関数に入力して得られた演算結果としておく。
このようにサーバが秘密情報を記憶しているので、複数のリーダライタは独自に秘密情報を記憶する必要がない。つまり、サーバに秘密情報を記憶させておくことで、複数のリーダライタが秘密情報を記憶していることに伴う秘密情報漏洩のリスク（一般的に、秘密情報を記憶しているものが多いほど、故障などに伴う当該秘密情報の漏洩の可能性が高くなる。）を低減することができる。
【００１０】
また、リーダライタを介して相互に通信可能なＩＣローダとサーバにおいて、ＩＣローダは固有の識別情報とパスワードを記憶し、サーバは複数のＩＣローダに共通の秘密情報を記憶しておく。ＩＣローダは、リーダライタからアクセスを受けると、乱数を生成して、この乱数およびＩＣローダに固有の識別情報をリーダライタに送信する。リーダライタは、ＩＣローダに固有の識別情報および乱数をＩＣローダから受信すると、これをサーバに送信する。サーバは、リーダライタから識別情報および乱数を受信すると、この識別情報と前記秘密情報をパスワード生成関数の入力としてパスワードを生成し、このパスワードと乱数をマスキング関数の入力としてマスキングパスワードを生成する。そして、サーバは、このマスキングパスワードをリーダライタに送信する。リーダライタは、受信したマスキングパスワードをＩＣローダに送信する。ＩＣローダは、リーダライタから受信したマスキングパスワードと上記乱数をマスキング逆関数の入力としてパスワードを取り出す。そして、ＩＣローダは、この取り出したパスワードと自己が記憶するパスワードとの一致を判定して認証を行う。なお、ＩＣローダの記憶するパスワードは、ＩＣローダの識別情報および前記秘密情報をパスワード生成関数に入力して得られた演算結果としておく。
このようにサーバは、リーダライタのアクセスごとにＩＣローダが生成した乱数を用いてパスワードをマスキングして、このマスキングされたパスワードをリーダライタに送信する。そのため、従前にサーバから受信したパスワードを用いたリーダライタによるＩＣローダへの不正アクセス（リプレイアタック）が阻止される。
【発明の効果】
【００１１】
本発明によれば、リーダライタあるいはサーバは秘密情報だけを記憶しておき、ＩＣローダに固有の識別情報および秘密情報からＩＣローダに固有のパスワードを生成するので、各ＩＣローダに固有の全てのパスワードを管理する必要が無く、また、リーダライタあるいはサーバが生成したパスワードとＩＣローダが記憶する自己に固有のパスワードとの照合によってパスワード認証が行える。
【発明を実施するための最良の形態】
【００１２】
＜ＩＣローダ＞
本発明におけるＩＣローダは、各実施形態ではＲＦＩＤタグ（２）とする。もちろん、ＲＦＩＤタグ（２）に限定する趣旨ではなく、ＩＣカードや演算機能を豊富に搭載しえないモバイル端末（例えば携帯電話、ＰＤＡなど）でもよいし、さらには、演算機能を豊富に有する高性能コンピュータなどであってもよい。
以下、ＲＦＩＤタグ（２）をタグ（２）と略記する。
【００１３】
図１、図３に例示するように、タグ（２）は、電源回路（２１）、変復調回路（２２）、ＣＰＵ（Central Processing Unit）（２３）、メモリであるＲＡＭ（２４）、ＲＯＭ（２５）、不揮発性メモリ（２７）、リーダライタ（３）と通信可能なアンテナ（２８）を備えている。
【００１４】
アンテナ（２８）は、後述のリーダライタ（３）のアンテナ（３８）から与えられた電磁波を受けると誘導起電力を生じ、電源回路（２１）に電力が供給される。また、リーダライタ（３）から与えられた電磁波には、所定のデータなどが変調されて載せられており、変復調回路（２２）は、この所定のデータをリーダライタ（３）から与えられた電磁波から復調して取り出す。ＣＰＵ（２３）は、取り出されたデータに対して適宜の情報処理（演算）を実行する。逆に、ＣＰＵ（２３）の演算によって得られたデータなどは、変復調回路（２２）で変調されて電磁波としてアンテナ（２８）からリーダライタ（３）に送られる。
以下、変復調回路（２２）およびアンテナ（２８）をまとめて通信部（２９）と称する。
【００１５】
タグ（２）のＲＯＭ（２５）には、パスワード認証やリーダライタ（３）から要求された処理を実行するためのプログラムおよびこのプログラムの処理において必要となるデータなどが記憶保存されている。また、これらのプログラムの処理によって得られるデータなどは、ＲＡＭ（２４）や不揮発性メモリ（２７）に適宜に記憶保存される。
【００１６】
タグ（２）では、ＲＯＭ（２５）に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてＲＡＭ（２４）に読み込まれて、ＣＰＵ（２３）で解釈実行・処理される。その結果、ＣＰＵ（２３）が所定の機能（判定部、乱数生成部、ＸＯＲ演算部、制御部）を実現することで、タグ（２）におけるパスワード認証などが実現される。
【００１７】
＜リーダライタ＞
リーダライタ（３）のハードウェア構成は、図２、図３に例示するように、変復調回路（３２）、ＣＰＵ（３３）、メモリであるＲＡＭ（３４）、ＲＯＭ（３５）や一方向性関数を高速に演算可能なコプロセッサ（３６）、不揮発性メモリ（３７）、タグ（２）と通信可能なアンテナ（３８）、後述するサーバ（１）と相互にデータの送受信が可能な通信手段（３１）を備えている。なお、タグ（２）ではアンテナ（２８）の誘導起電力を電力源としていたが、リーダライタ（３）では、図示しない電源装置から電力の供給を受ける。
【００１８】
ＣＰＵ（３３）やコプロセッサ（３６）の演算によって得られたデータなどは、変復調回路（３２）で変調されて電磁波としてアンテナ（３８）からタグ（２）に送られる。逆に、タグ（２）から与えられた電磁波には、所定のデータなどが変調されて載せられており、これをアンテナ（３８）で受信すると、変復調回路（３２）は、この所定のデータをタグ（２）から与えられた電磁波から復調して取り出す。ＣＰＵ（３３）やコプロセッサ（３６）は、取り出されたデータに対して適宜の演算を実行する。
以下、変復調回路（３２）およびアンテナ（３８）をまとめて通信部（３９）と称する。
【００１９】
リーダライタ（３）のＲＯＭ（３５）には、パスワード認証などの処理を実行するためのプログラムおよびこのプログラムの処理において必要となるデータなどが記憶保存されている。また、これらのプログラムの処理によって得られるデータなどは、ＲＡＭ（３４）や不揮発性メモリ（３７）に適宜に記憶保存される。
【００２０】
リーダライタ（３）では、ＲＯＭ（３５）に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてＲＡＭ（３４）に読み込まれて、ＣＰＵ（３４）およびコプロセッサ（３６）で解釈実行・処理される。その結果、ＣＰＵ（３４）およびコプロセッサ（３６）が所定の機能（一方向性関数演算部、制御部）を実現することで、リーダライタ（３）におけるパスワード認証などが実現される。
【００２１】
（（第１実施形態））
まず、本発明の第１実施形態について図４、図５を参照して説明する。
《パスワード管理システム》
図４を参照して、第１実施形態のパスワード管理システムを説明する。
リーダライタ（３）のＲＯＭ（３５）には、従来のように、各タグ（２）と各タグ（２）に固有のパスワードとを対応付けたタグ−パスワード対応テーブルを記憶しているのではなく、全てのタグ（２）に共通の秘密情報ｓのみを記憶保存している。なお、本明細書では、秘密情報ｓを全てのタグ（２）に共通とするが、例えば、タグ（２）を複数のグループに分割し、このグループごとに異なる秘密情報を割り当てるようにしてもよい。
【００２２】
一方、タグ（２）のＲＯＭ（２５）には、予め、それぞれのタグ（２）に固有の識別情報であるＩＤ（identification）および固有のパスワードが記憶されている。便宜上、ｎ番目のタグＴｎ（２）のＩＤをＩＤｎと表すことにする。全てのＩＤｎは異なるとするが、一部同じである場合があってもよい。ここでパスワードとは、識別情報ＩＤｎおよび秘密情報ｓを入力とした一方向性関数（パスワード生成関数）の演算結果である。パスワードを与えるパスワード生成関数は、一方向性関数に限定されないものの、逆演算で得た識別情報や秘密情報の不正使用を防止する観点から、少なくともパスワード生成関数の逆演算は困難なものであることが望ましい。
【００２３】
リーダライタ（３）は、各タグ（２）に固有のパスワードを全て記憶保存しておくのではなく、必要となったときに、タグ（２）に固有のパスワードを生成してパスワード認証を行う。このため、リーダライタ（３）のコプロセッサ（３６）は、パスワードである演算結果を与える一方向性関数（パスワード生成関数）を高速演算可能なプロセッサであるとする。リーダライタ（３）のＲＯＭ（３５）には全てのタグ（２）に共通する秘密情報ｓが記憶保存されているから、リーダライタ（３）は、タグＴｎ（２）に固有の識別情報ＩＤｎを入手することで、タグＴｎ（２）に固有のパスワードを生成することができる。
【００２４】
第１実施形態では、一方向性関数をハッシュ関数Ｈとする。
パスワードの具体例としては、識別情報ＩＤｎおよび秘密情報ｓをバイナリ系列で結合した値ＩＤｎ‖ｓ〔記号‖は、ＩＤｎのバイナリ系列とｓのバイナリ系列との結合を表す。〕を入力としたハッシュ関数Ｈの演算結果Ｈ（ＩＤｎ‖ｓ）である。勿論、ｓ‖ＩＤｎをハッシュ関数Ｈの入力としてもよいし、例えば２つの秘密情報ｓおよびｔのバイナリ系列を識別情報ＩＤｎに結合したｔ‖ＩＤｎ‖ｓを入力とすることでもよい。このような趣旨を込めて、以後、パスワードを単にＨ（ＩＤｎ，ｓ）と表記する。
【００２５】
《パスワード認証方法》
次に、図５を参照して、第１実施形態のパスワード管理システムにおけるパスワード認証の処理の流れを順次説明する。
【００２６】
まず、リーダライタ（３）の制御部（３４０）は、その通信部（３９）を制御して、ｎ番目のタグＴｎ（２）に対して、タグＴｎ（２）のアクセスを開始する情報（アクセス開始情報）を送信する（ステップＳ１００）。この際、例えば不揮発性メモリ（２７）への書き込み処理などタグＴｎ（２）に実行させたい処理（要求処理）のコマンド識別子を同時に送信するとしてもよい。
なお、この明細書において、アクセス開始情報の種類などには格別の限定はなく、以下に述べるトランザクションを開始することを表す情報であればよい。
【００２７】
次に、タグＴｎ（２）の通信部（２９）が、ステップＳ１００で送信されたアクセス開始情報を受信する（ステップＳ１０１）。そして、タグＴｎ（２）の制御部（２４０）は、受信したアクセス開始情報を契機として、ＲＯＭ（２５）から識別情報ＩＤｎを読み込み、さらに通信部（２９）を制御して、識別情報ＩＤｎをリーダライタ（３）に対して送信する（ステップＳ１０２）。
【００２８】
次に、リーダライタ（３）の通信部（３９）がステップＳ１０２で送信された識別情報ＩＤｎを受信する（ステップＳ１０３）。そして、リーダライタ（３）の制御部（３４０）は、ＲＯＭ（３５）から読み込んだ秘密情報ｓおよび受信した識別情報ＩＤｎをＲＡＭ（３４）に格納する（中間処理；ステップＳ１０４）。
【００２９】
次に、リーダライタ（３）の一方向性関数演算部（３４１）は、ＲＡＭ（３４）に格納された識別情報ＩＤｎおよび秘密情報ｓを読み込み、これらを入力としたハッシュ関数Ｈを演算して、その演算結果をＲＡＭ（３４）に格納する（ステップＳ１０５）。便宜上、この演算結果をＨＲＷ（ＩＤｎ，ｓ）と表記する。
【００３０】
次に、リーダライタ（３）の制御部（３４０）は、その通信部（３９）を制御して、ＲＡＭ（３４）に格納された演算結果ＨＲＷ（ＩＤｎ，ｓ）を、タグＴｎ（２）に対して送信する（ステップＳ１０６）。
【００３１】
次に、タグＴｎ（２）の通信部（２９）がステップＳ１０６で送信された演算結果ＨＲＷ（ＩＤｎ，ｓ）を受信する（ステップＳ１０７）。そして、タグＴｎ（２）の制御部（２４０）は、ＲＯＭ（２５）から読み込んだパスワードＨ（ＩＤｎ，ｓ）および受信した演算結果ＨＲＷ（ＩＤｎ，ｓ）をＲＡＭ（２４）に格納する（中間処理；ステップＳ１０８）。
【００３２】
次に、タグＴｎ（２）の判定部（２４１）は、ＲＡＭ（２４）に格納されたパスワードＨ（ＩＤｎ，ｓ）および演算結果ＨＲＷ（ＩＤｎ，ｓ）を読み込み、これらが一致するか否かを判定する（ステップＳ１０９）。一致すれば、リーダライタ（３）のタグＴｎ（２）に対するアクセスが許可される（ステップＳ１１０）。なお、タグＴｎ（２）のＣＰＵ（２３）は、ステップＳ１０１で要求処理のコマンド識別子も受信していれば、このコマンド識別子に対応したコマンド（例えばＲＯＭ（２５）に記憶保存されたコマンド識別子−コマンド対応テーブルを参照して特定する。）を実行する。一致しなければ、リーダライタ（３）のタグＴｎ（２）に対するアクセスが許可されない（ステップＳ１１１）。一致しない場合としては、例えば、リーダライタ（３）が正規のものでないため、秘密情報ｓを記憶保有していなかった場合や、所定のハッシュ関数Ｈの演算を行わなかった場合などが考えられる。
【００３３】
以上のように、リーダライタ（３）は秘密情報ｓを記憶保存しておくだけでありながら、タグＴｎ（２）から固有の識別情報ＩＤｎを入手した場合に、タグＴｎ（２）に固有のパスワードＨ（ＩＤｎ，ｓ）を生成し、パスワード認証を行うことができる。
【００３４】
（（第２実施形態））
次に、本発明の第２実施形態について図６〜図９を参照して説明する。
第２実施形態は、第１実施形態の拡張的形態であり、リーダライタ（３）からの要求処理の種類ごとにパスワードが定められている場合である。
第１実施形態と同様のハードウェア構成、機能、処理などには同じ符号を当てるなどして、重複説明を省略する。
【００３５】
《パスワード管理システム》
図６を参照して、第１実施形態のパスワード管理システムを説明する。
リーダライタ（３）のＲＯＭ（３５）には、全てのタグ（２）に共通の秘密情報ｓ、要求処理の種類ごとに定まる要求処理識別情報とこの要求処理識別情報に対応したコマンド識別子とを対応付けた対応テーブル（３５０）も記憶保存している（図７参照。）。例えば、要求処理がタグＴｎ（２）の機能を無効化する処理の場合には要求処理識別情報をａｋ、要求処理が不揮発性メモリ（２７）からの読み込み処理の場合には要求処理識別情報をａｒ、要求処理が不揮発性メモリ（２７）への書き込み処理の場合には要求処理識別情報をａｗとする。そして、要求処理識別情報ａｋに対応するコマンド識別子をｃｋ、要求処理識別情報ａｒに対応するコマンド識別子をｃｒ、要求処理識別情報ａｗに対応するコマンド識別子をｃｗとする。勿論、要求処理の種類はこれらに限定されない。
要求処理識別情報およびコマンド識別子は、全てのタグ（２）に共通とする。
また、リーダライタ（３）のコプロセッサ（３６）は、第１実施形態と同様、一方向性関数であるハッシュ関数Ｈを高速演算可能なプロセッサであるとする。
【００３６】
一方、タグＴｎ（２）のＲＯＭ（２５）には、予め、それぞれのタグＴｎ（２）に固有の識別情報ＩＤｎ、要求処理の種類ごとに固有のパスワード、コマンド識別子とコマンドとパスワードとを対応付けた対応テーブル（２５０）が記憶されている（図８参照。）。
要求処理の種類ごとに固有のパスワードの具体例としては、タグＴｎ（２）の機能を無効化する処理のパスワードはＨ（ＩＤｎ‖ａｋ‖ｓ）、不揮発性メモリ（２７）からの読み込み処理のパスワードはＨ（ＩＤｎ‖ａｒ‖ｓ）、不揮発性メモリ（２７）への書き込み処理のパスワードはＨ（ＩＤｎ‖ａｗ‖ｓ）である。なお、このようなパスワードに限定されないことは第１実施形態と同様であり、この趣旨を込めて、以後、要求処理の種類ごとに固有のパスワードをＨ（ＩＤｎ，ａｉ，ｓ）[ｉ＝ｋ，ｒ，ｗ]と表記する。
【００３７】
《パスワード認証方法》
次に、図９を参照して、第２実施形態のパスワード管理システムにおけるパスワード認証の処理の流れを順次説明する。
【００３８】
まず、リーダライタ（３）の制御部（３４０）は、その通信部（３９）を制御して、タグＴｎ（２）に対して、タグＴｎ（２）のアクセスを開始する情報（アクセス開始情報）および要求処理のコマンド識別子を送信する（ステップＳ１００ａ）。例えば要求処理をタグＴｎ（２）の機能を無効化する処理とした場合、このコマンド識別子ｃｋを送信する。以下では一般的な場合を考慮して、要求処理のコマンド識別子をｃｉ[ｉ＝ｋ，ｒ，ｗ]として表記する。
【００３９】
次に、タグＴｎ（２）の通信部（２９）が、ステップＳ１００ａで送信されたアクセス開始情報およびコマンド識別子ｃｉを受信する（ステップＳ１０１ａ）。そして、タグＴｎ（２）の制御部（２４０）は、受信したアクセス開始情報を契機として、ＲＯＭ（２５）から識別情報ＩＤｎを読み込み、さらに通信部（２９）を制御して、識別情報ＩＤｎをリーダライタ（３）に対して送信する（ステップＳ１０２）。なお、タグＴｎ（２）の制御部（２４０）は、受信したコマンド識別子ｃｉをＲＡＭ（２４）に格納する。
【００４０】
次に、リーダライタ（３）の通信部（３９）がステップＳ１０２で送信された識別情報ＩＤｎを受信する（ステップＳ１０３）。そして、リーダライタ（３）の制御部（３４０）は、ＲＯＭ（３５）から読み込んだ秘密情報ｓ、対応テーブル（３５０）を参照して得たコマンド識別子ｃｉに対応する要求処理識別情報ａｉおよび受信した識別情報ＩＤｎをＲＡＭ（３４）に格納する（中間処理；ステップＳ１０４ａ）。
【００４１】
次に、リーダライタ（３）の一方向性関数演算部（３４１）は、ＲＡＭ（３４）に格納された識別情報ＩＤｎおよび秘密情報ｓ、要求処理識別情報ａｉを読み込み、これらを入力としたハッシュ関数Ｈを演算して、その演算結果をＲＡＭ（３４）に格納する（ステップＳ１０５ａ）。この演算結果をＨＲＷ（ＩＤｎ，ａｉ，ｓ）と表記する。
【００４２】
次に、リーダライタ（３）の制御部（３４０）は、その通信部（３９）を制御して、ＲＡＭ（３４）に格納された演算結果ＨＲＷ（ＩＤｎ，ａｉ，ｓ）を、タグＴｎ（２）に対して送信する（ステップＳ１０６ａ）。
【００４３】
次に、タグＴｎ（２）の通信部（２９）がステップＳ１０６ａで送信された演算結果ＨＲＷ（ＩＤｎ，ａｉ，ｓ）を受信する（ステップＳ１０７ａ）。そして、タグＴｎ（２）の制御部（２４０）は、受信した演算結果ＨＲＷ（ＩＤｎ，ａｉ，ｓ）をＲＡＭ（２４）に格納する。また、タグＴｎ（２）の制御部（２４０）は、ＲＯＭ（２５）に格納された対応テーブル（２５０）を参照して、ＲＡＭ（２４）に格納されるコマンド識別子ｃｉに対応したパスワードＨ（ＩＤｎ，ａｉ，ｓ）をＲＡＭ（２４）に格納する（中間処理；ステップＳ１０８ａ）。
【００４４】
次に、タグＴｎ（２）の判定部（２４１）は、ＲＡＭ（２４）に格納されたパスワードＨ（ＩＤｎ，ａｉ，ｓ）および演算結果ＨＲＷ（ＩＤｎ，ａｉ，ｓ）を読み込み、これらが一致するか否かを判定する（ステップＳ１０９ａ）。一致すれば、リーダライタ（３）のタグＴｎ（２）に対するアクセスが許可され、タグＴｎ（２）のＣＰＵ（２３）は、対応テーブル（２５０）を参照して特定されたコマンド識別子ｃｉに対応するコマンドを実行して要求処理を実現する（ステップＳ１１０ａ）。一致しなければ、リーダライタ（３）のタグＴｎ（２）に対するアクセスが許可されない（ステップＳ１１１）。
【００４５】
第２実施形態では、アンテナ（２８）およびアンテナ（３８）の通信区間がセキュア通信区間でない場合を想定して、安全性を高める観点でリーダライタ（３）からタグ（２）に対してコマンド識別子を送信するとしたが、要求処理識別情報そのものを送信するようにしてもよい。この場合、リーダライタ（３）は、図７に示す対応テーブル（３５０）ではなく、要求処理識別情報そのものを記憶保存する。また、タグ（２）は、図８に示す対応テーブル（２５０）のコマンド識別子欄が要求処理識別情報に置き換えられた対応テーブルを記憶保存する。
【００４６】
要求処理の種類ごとにパスワードを定めることで、例えば不揮発性メモリ（２７）からの読み込み処理の権限しかないリーダライタ（３）が、読み込み処理を要求処理としてタグ（２）にアクセスした際に、権限外の例えばタグ機能の無効化処理を実行するなどの不正行為を防止することができる。
【００４７】
（（第３実施形態））
次に、本発明の第３実施形態について図１０〜図１２を参照して説明する。
第３実施形態は、第１実施形態および第２実施形態の類型的形態であり、一方向性関数として共通鍵暗号系における暗号化関数Ｅｄ（ｄは共通鍵）や公開鍵暗号系における暗号化関数Ｅｐ、Ｅｑ（ｐ：公開鍵、ｑ：秘密鍵）を用いる。
ここでは、第２実施形態の類型的形態として説明する。第２実施形態と同様のハードウェア構成、機能、処理などには同じ符号を当てるなどして、重複説明を省略する。なお、第１実施形態は、第２実施形態において要求処理識別情報ａｉ＝０[ｉ＝ｋ，ｒ，ｗ]とした場合に実質的に相当することに留意すること。
【００４８】
まず、一方向性関数として共通鍵暗号系における暗号化関数Ｅｄを用いた場合を説明する。
リーダライタ（３）は、秘密情報ｓ、要求処理識別情報に加え、暗号化に使用する共通鍵ｄもＲＯＭ（３５）に記憶保存している。また、リーダライタ（３）のコプロセッサ（３６）は、暗号化関数Ｅｄを高速演算可能なプロセッサであるとする。
【００４９】
タグＴｎ（２）のＲＯＭ（２５）に予め記憶保存される要求処理の種類ごとに定まった固有のパスワードは、タグＴｎ（２）の機能を無効化する処理のパスワードはＥｄ（ＩＤｎ‖ａｋ‖ｓ）、不揮発性メモリ（２７）からの読み込み処理のパスワードはＥｄ（ＩＤｎ‖ａｒ‖ｓ）、不揮発性メモリ（２７）への書き込み処理のパスワードはＥｄ（ＩＤｎ‖ａｗ‖ｓ）である。なお、このようなパスワードに限定されないことは第２実施形態と同様であり、この趣旨を込めて、以後、要求処理の種類ごとに固有のパスワードをＥｄ（ＩＤｎ，ａｉ，ｓ）[ｉ＝ｋ，ｒ，ｗ]と表記する。
【００５０】
この場合、上記ステップＳ１０５ａの処理は、リーダライタ（３）の一方向性関数演算部（３４１）が、ＲＡＭ（３４）に格納された識別情報ＩＤｎおよび秘密情報ｓ、要求処理識別情報ａｉを読み込み、これらを入力とした暗号化関数Ｅｄを演算して、その演算結果Ｅｄ，ＲＷ（ＩＤｎ，ａｉ，ｓ）をＲＡＭ（３４）に格納するものとなる（ステップＳ１０５ｂ）。
その他の処理は、パスワードがＥｄ（ＩＤｎ，ａｉ，ｓ）、演算結果がＥｄ，ＲＷ（ＩＤｎ，ａｉ，ｓ）になることを除いて第２実施形態と同様であるから、説明を省略する（図１０中、符号の添え字がｂの部分を参照。）。
【００５１】
また、秘密情報ｓを不要として、共通鍵ｄを秘密情報とすることもできる。この場合、パスワードはＥｄ（ＩＤｎ，ａｉ）[ｉ＝ｋ，ｒ，ｗ]となる。
【００５２】
次に、一方向性関数として公開鍵暗号系における暗号化関数Ｅｐ、Ｅｑを用いた場合を説明する。公開鍵暗号を用いた場合、２通りのパターンがある。
[パターン１]
リーダライタ（３）は、秘密情報ｓ、要求処理識別情報に加え、暗号化に使用する公開鍵ｐもＲＯＭ（３５）に記憶保存している。また、リーダライタ（３）のコプロセッサ（３６）は、暗号化関数Ｅｐを高速演算可能なプロセッサであるとする。
【００５３】
タグＴｎ（２）のＲＯＭ（２５）に予め記憶保存される要求処理の種類ごとに定まった固有のパスワードは、タグＴｎ（２）の機能を無効化する処理のパスワードはＥｐ（ＩＤｎ‖ａｋ‖ｓ）、不揮発性メモリ（２７）からの読み込み処理のパスワードはＥｐ（ＩＤｎ‖ａｒ‖ｓ）、不揮発性メモリ（２７）への書き込み処理のパスワードはＥｐ（ＩＤｎ‖ａｗ‖ｓ）である。なお、このようなパスワードに限定されないことは第２実施形態と同様であり、この趣旨を込めて、以後、要求処理の種類ごとに固有のパスワードをＥｐ（ＩＤｎ，ａｉ，ｓ）[ｉ＝ｋ，ｒ，ｗ]と表記する。
【００５４】
この場合、上記ステップＳ１０５ａの処理は、リーダライタ（３）の一方向性関数演算部（３４１）が、ＲＡＭ（３４）に格納された識別情報ＩＤｎおよび秘密情報ｓ、要求処理識別情報ａｉを読み込み、これらを入力とした暗号化関数Ｅｐを演算して、その演算結果Ｅｐ，ＲＷ（ＩＤｎ，ａｉ，ｓ）をＲＡＭ（３４）に格納するものとなる（ステップＳ１０５ｃ）。
その他の処理は、パスワードがＥｐ（ＩＤｎ，ａｉ，ｓ）、演算結果がＥｐ，ＲＷ（ＩＤｎ，ａｉ，ｓ）になることを除いて第２実施形態と同様であるから、説明を省略する（図１１中、符号の添え字がｃの部分を参照。）。
【００５５】
秘密鍵ｑは、原則秘密とする（もし外部に漏洩すると、演算結果Ｅｐ，ＲＷ（ＩＤｎ，ａｉ，ｓ）の平文−例えばＩＤｎ‖ａｉ‖ｓ−が判明するから、これを不正に利用される可能性がある。）。本実施形態では、暗号文の復号化は行わないので、公開鍵ｐと秘密鍵ｑを生成した後、秘密鍵ｑのみを消去してもよい。
しかしながら、このような秘密鍵ｑであっても、例外的に（正規の）リーダライタ（３）には知られていてもよい。この場合、秘密情報ｓに替え、秘密鍵ｑを秘密情報とすることができ、パスワードはＥｐ（ＩＤｎ，ａｉ，ｑ）[ｉ＝ｋ，ｒ，ｗ]となる。
【００５６】
さらに、秘密情報ｓを不要として、公開鍵ｐを公開せず秘密情報とすることもできる。この場合、パスワードはＥｐ（ＩＤｎ，ａｉ）[ｉ＝ｋ，ｒ，ｗ]となる。
【００５７】
[パターン２]
リーダライタ（３）は、秘密情報ｓ、要求処理識別情報に加え、暗号化に使用する秘密鍵ｑもＲＯＭ（３５）に記憶保存している。また、リーダライタ（３）のコプロセッサ（３６）は、暗号化関数Ｅｑを高速演算可能なプロセッサであるとする。
【００５８】
タグＴｎ（２）のＲＯＭ（２５）に予め記憶保存される要求処理の種類ごとに定まった固有のパスワードは、タグＴｎ（２）の機能を無効化する処理のパスワードはＥｑ（ＩＤｎ‖ａｋ‖ｓ）、不揮発性メモリ（２７）からの読み込み処理のパスワードはＥｑ（ＩＤｎ‖ａｒ‖ｓ）、不揮発性メモリ（２７）への書き込み処理のパスワードはＥｑ（ＩＤｎ‖ａｗ‖ｓ）である。なお、このようなパスワードに限定されないことは第２実施形態と同様であり、この趣旨を込めて、以後、要求処理の種類ごとに固有のパスワードをＥｑ（ＩＤｎ，ａｉ，ｓ）[ｉ＝ｋ，ｒ，ｗ]と表記する。
【００５９】
この場合、上記ステップＳ１０５ａの処理は、リーダライタ（３）の一方向性関数演算部（３４１）が、ＲＡＭ（３４）に格納された識別情報ＩＤｎおよび秘密情報ｓ、要求処理識別情報ａｉを読み込み、これらを入力とした暗号化関数Ｅｑを演算して、その演算結果Ｅｑ，ＲＷ（ＩＤｎ，ａｉ，ｓ）をＲＡＭ（３４）に格納するものとなる（ステップＳ１０５ｄ）。
その他の処理は、パスワードがＥｑ（ＩＤｎ，ａｉ，ｓ）、演算結果がＥｑ，ＲＷ（ＩＤｎ，ａｉ，ｓ）になることを除いて第２実施形態と同様であるから、説明を省略する（図１２中、符号の添え字がｄの部分を参照。）。
【００６０】
また、秘密情報ｓを不要として、秘密鍵ｑを秘密情報とすることもできる。この場合、パスワードはＥｑ（ＩＤｎ，ａｉ）[ｉ＝ｋ，ｒ，ｗ]となる。この場合、演算結果Ｅｑ，ＲＷ（ＩＤｎ，ａｉ）から平文が判明することを防止するため、秘密鍵ｐに対応する公開鍵ｐを公開しないようにする。
【００６１】
（（第４実施形態））
次に、本発明の第４実施形態について図１３〜図１７を参照して説明する。
第４実施形態は、上記各実施形態で説明したリーダライタ（３）の機能を後述するサーバ（１）に担当させたパスワード管理およびパスワード認証を実現する形態であり、上記各実施形態の変形形態に相当するが、ここでは第１実施形態の変形形態として説明する。この第４実施形態は、リーダライタ（３）を信頼できない場合などに相当し、リーダライタ（３）は一方向性関数の演算を行わない。また、タグ（２）には、非特許文献２に示される方式と同様に、ＸＯＲ演算機能が搭載されているとする。なお、ＸＯＲは排他的論理和を表す。このＸＯＲ演算が、上記マスキング関数およびマスキング逆関数に相当する。
また、第１実施形態と同じハードウェア構成、機能、処理などについては同一符号を当てるなどして重複説明を省略する。
【００６２】
＜サーバ＞
図１３に例示するように、サーバ（１）は、リーダライタ（３）と通信可能な通信装置（例えば通信ケーブル）が接続可能な通信部（１３）、ＣＰＵ（１４）〔キャッシュメモリなどを備えていてもよい。〕、メモリであるＲＡＭ（１５）、ＲＯＭ（１６）やハードディスクである外部記憶装置（１７）並びにこれらの通信部（１３）、ＣＰＵ（１４）、ＲＡＭ（１５）、ＲＯＭ（１６）、外部記憶装置（１７）間のデータのやり取りが可能なように接続するバス（１８）を有している。また必要に応じて、サーバ（１）には、ＣＤ−ＲＯＭなどの記憶媒体を読み書きできる装置（ドライブ）などを設けるとしてもよい。
【００６３】
サーバ（１）の外部記憶装置（１７）には、パスワード認証などの処理を実行するためのプログラムおよびこのプログラムの処理において必要となるデータなどが記憶保存されている。また、これらのプログラムの処理によって得られるデータなどは、ＲＡＭ（１５）に適宜に記憶保存される。
【００６４】
サーバ（１）では、外部記憶装置（１７）に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてＲＡＭ（１５）に読み込まれて、ＣＰＵ（１４）で解釈実行・処理される。その結果、ＣＰＵ（１４）が所定の機能（一方向性関数演算部、ＸＯＲ演算部、制御部）を実現する。
【００６５】
《パスワード管理システム》
図１４、図１５を参照して、第４実施形態のパスワード管理システムを説明する。
サーバ（１）の外部記憶装置（１７）には、従来のように、各タグ（２）と各タグ（２）に固有のパスワードとを対応付けたタグ−パスワード対応テーブルを記憶しているのではなく、全てのタグ（２）に共通の秘密情報ｓのみを記憶保存している。
【００６６】
タグＴｎ（２）のＲＯＭ（２５）には、予め、それぞれのタグ（２）に固有の識別情報であるＩＤｎおよび固有のパスワードが記憶されている。パスワードは、識別情報ＩＤｎおよび秘密情報ｓを入力とした一方向性関数（第１実施形態と同様にハッシュ関数Ｈとする。）の演算結果である。即ち、第１実施形態と同様、パスワードはＨ（ＩＤｎ，ｓ）とする。
【００６７】
サーバ（１）は、各タグ（２）に固有のパスワードを全て記憶保存しておくのではなく、必要となったときに、タグ（２）に固有のパスワードを生成してパスワード認証を行う。サーバ（１）の外部記憶装置（１７）には全てのタグ（２）に共通する秘密情報ｓが記憶保存されているから、サーバ（１）は、タグＴｎ（２）に固有の識別情報ＩＤｎを入手することで、タグＴｎ（２）に固有のパスワードを生成することができる。
【００６８】
《パスワード認証方法》
次に、図１６、図１７を参照して、第４実施形態のパスワード管理システムにおけるパスワード認証の処理の流れを順次説明する。
【００６９】
まず、リーダライタ（３）の制御部（３４０）は、その通信部（３９）を制御して、ｎ番目のタグＴｎ（２）に対して、タグＴｎ（２）のアクセスを開始する情報（アクセス開始情報）を送信する（ステップＳ４００）。この際、例えば不揮発性メモリ（２７）への書き込み処理などタグＴｎ（２）に実行させたい処理（要求処理）のコマンド識別子を同時に送信するとしてもよい。
【００７０】
次に、タグＴｎ（２）の通信部（２９）が、ステップＳ４００で送信されたアクセス開始情報を受信する（ステップＳ４０１）。そして、タグＴｎ（２）の制御部（２４０）は、受信したアクセス開始情報を契機として、ＲＯＭ（２５）から識別情報ＩＤｎを読み込み、これをＲＡＭ（２４）に格納する。また、タグＴｎ（２）の制御部（２４０）の制御によって、擬似乱数生成手段であるタグＴｎ（２）の乱数生成部（２４２）は、乱数ｒｎを生成してこれをＲＡＭ（２４）に格納する（ステップＳ４０２）。次いで、タグＴｎ（２）の制御部（２４０）は、通信部（２９）を制御して、ＲＡＭ（２４）から読み込んだ乱数ｒｎおよび識別情報ＩＤｎをリーダライタ（３）に対して送信する（ステップＳ４０３）。
【００７１】
次に、リーダライタ（３）の通信部（３９）がステップＳ４０３で送信された乱数ｒｎおよび識別情報ＩＤｎを受信する（ステップＳ４０４）。そして、リーダライタ（３）の制御部（３４０）は、その通信手段（３１）を制御して、受信した乱数ｒｎおよび識別情報ＩＤｎをサーバ（１）に対して送信する（ステップＳ４０５）。
【００７２】
次に、サーバ（１）の通信部（１３）がステップＳ４０５で送信された乱数ｒｎおよび識別情報ＩＤｎを受信する（ステップＳ４０６）。そして、サーバ（１）の制御部（１４０）は、外部記憶装置（１７）から読み込んだ秘密情報ｓと受信した乱数ｒｎおよび識別情報ＩＤｎとをＲＡＭ（１５）に格納する（中間処理；ステップＳ４０７）。
【００７３】
次に、サーバ（１）の一方向性関数演算部（１４１）は、ＲＡＭ（１５）に格納された秘密情報ｓおよび識別情報ＩＤｎを読み込み、これらを入力としたハッシュ関数Ｈを演算して、その演算結果をＲＡＭ（１５）に格納する（ステップＳ４０８）。この演算結果をＨＲＷ（ＩＤｎ，ｓ）と表記する。
【００７４】
次に、サーバ（１）のＸＯＲ演算部（１４２）は、ＲＡＭ（１５）に格納されたＨＲＷ（ＩＤｎ，ｓ）および乱数ｒｎを読み込み、これらの排他的論理和ＸＯＲを演算して、その演算結果〔ＨＲＷ（ＩＤｎ，ｓ）〕ＸＯＲ〔ｒｎ〕をＲＡＭ（１５）に格納する（ステップＳ４０９）。この演算結果〔ＨＲＷ（ＩＤｎ，ｓ）〕ＸＯＲ〔ｒｎ〕がマスキングパスワードである。つまり、乱数ｒｎとのＸＯＲ演算によってＨＲＷ（ＩＤｎ，ｓ）をマスキングした。ここでのＸＯＲ演算がマスキング関数に相当する。
【００７５】
次に、サーバ（１）の制御部（１４０）は、その通信部（１３）を制御して、ＲＡＭ（１５）に格納された排他的論理和ＸＯＲの演算結果〔ＨＲＷ（ＩＤｎ，ｓ）〕ＸＯＲ〔ｒｎ〕を、リーダライタ（３）に対して送信する（ステップＳ４１０）。
【００７６】
次に、リーダライタ（３）の通信手段（３１）がステップＳ４１０で送信された演算結果〔ＨＲＷ（ＩＤｎ，ｓ）〕ＸＯＲ〔ｒｎ〕を受信する（ステップＳ４１１）。そして、リーダライタ（３）の制御部（３４０）は、その通信部（３９）を制御して、ステップＳ４１１において受信した演算結果〔ＨＲＷ（ＩＤｎ，ｓ）〕ＸＯＲ〔ｒｎ〕をタグＴｎ（２）に送信する（ステップＳ４１２）。
【００７７】
次に、タグＴｎ（２）の通信部（２９）がステップＳ４１２で送信された演算結果〔ＨＲＷ（ＩＤｎ，ｓ）〕ＸＯＲ〔ｒｎ〕を受信する（ステップＳ４１３）。そして、タグＴｎ（２）の制御部（２４０）は、ＲＯＭ（２５）から読み込んだパスワードＨ（ＩＤｎ，ｓ）および受信した演算結果〔ＨＲＷ（ＩＤｎ，ｓ）〕ＸＯＲ〔ｒｎ〕をＲＡＭ（２４）に格納する（中間処理；ステップＳ４１４）。
【００７８】
次に、タグＴｎ（２）のＸＯＲ演算部（２４３）は、ＲＡＭ（２４）に格納された乱数ｒｎおよび演算結果〔ＨＲＷ（ＩＤｎ，ｓ）〕ＸＯＲ〔ｒｎ〕を読み込み、これらの排他的論理和ＸＯＲを演算して、その演算結果〔ＨＲＷ（ＩＤｎ，ｓ）〕ＸＯＲ〔ｒｎ〕ＸＯＲ〔ｒｎ〕＝ＨＲＷ（ＩＤｎ，ｓ）をＲＡＭ（２４）に格納する（ステップＳ４１５）。なお、この処理では排他的論理和ＸＯＲの性質を用いた。つまり、乱数ｒｎとのＸＯＲ演算によって演算結果〔ＨＲＷ（ＩＤｎ，ｓ）〕ＸＯＲ〔ｒｎ〕からＨＲＷ（ＩＤｎ，ｓ）を取り出した。ここでのＸＯＲ演算がマスキング逆関数に相当する。
マスキング関数およびマスキング逆関数は、このようにＨＲＷ（ＩＤｎ，ｓ）をマスキングし、再度ＨＲＷ（ＩＤｎ，ｓ）を取り出せる関係にあれば、ＸＯＲ演算に限定されない。仮に、タグ（２）の演算能力が高度であれば、暗号化関数および復号化関数をマスキング関数およびマスキング逆関数として用いることも可能である。
【００７９】
次に、タグＴｎ（２）の判定部（２４１）は、ＲＡＭ（２４）に格納されたパスワードＨ（ＩＤｎ，ｓ）および演算結果ＨＲＷ（ＩＤｎ，ｓ）を読み込み、これらが一致するか否かを判定する（ステップＳ４１６）。一致すれば、リーダライタ（３）のタグＴｎ（２）に対するアクセスが許可される（ステップＳ４１７）。なお、タグＴｎ（２）のＣＰＵ（２３）は、ステップＳ４０１で要求処理のコマンド識別子も受信していれば、このコマンド識別子に対応したコマンド（例えばＲＯＭ（２５）に記憶保存されたコマンド識別子−コマンド対応テーブルを参照して特定する。）を実行する。一致しなければ、リーダライタ（３）のタグＴｎ（２）に対するアクセスが許可されない（ステップＳ４１８）。
【００８０】
なお、乱数の生成（ステップＳ４０２参照）は、リーダライタ（３）からのアクセス開始情報を受信するごとに行う。このようにすることで、リーダライタ（３）が以前と同じ演算結果〔ＨＲＷ（ＩＤｎ，ｓ）〕ＸＯＲ〔ｒｎ〕を用いて（サーバ（１）を介入しない不正な）アクセスを行おうとしても、乱数値が異なるため、ステップＳ４１５の処理を経たステップＳ４１６における判定処理によって、タグＴｎ（２）に対するアクセスが許可されない。つまり、従前の演算結果〔ＨＲＷ（ＩＤｎ，ｓ）〕ＸＯＲ〔ｒｎ〕を用いたリプレイアタックに対して耐タンパ性を有するものとなる。
【００８１】
具体的には、タグ（２）の機能を有効にしたまま、メモリの読み取りや書き込みの処理を他者に一時的に委託する場合−例えば流通分野において、タグ（２）を操作する全面的な権限はメーカにあるが、流通過程での情報を読み書きするために卸業者や小売店舗のリーダライタ（３）に一時的にアクセスを許可するといった場合−に、パスワード算出のためタグ共通の秘密情報を開示してしまうと、リーダライタ（３）は、対象となるタグに対して爾後の不正アクセス（リプレイアタック）ができるようになる。そこで、第４実施形態のように、リーダライタからのアクセスのたびに乱数を発生させて、この乱数で演算結果ＨＲＷ（ＩＤｎ，ｓ）をマスキングすることで、上記不正アクセス（リプレイアタック）を阻止することができる。
【００８２】
第４実施形態では、第１実施形態の変形実施形態として説明した。勿論、要求処理の種類ごとにパスワードを定める第２実施形態の変形形態としての第４実施形態も考えられる。この場合には、リーダライタ（３）がコマンド識別子を記憶しておき、上記ステップＳ４００でタグ（２）にコマンド識別子も送信し、さらに上記ステップＳ４０５でもステップＳ４００で送信したコマンド識別子をサーバに送信し、上記ステップＳ４０８では、サーバの一方向性関数演算部（１４１）が、コマンド識別子に対応した要求処理識別子ａｉも用いてＨＲＷ（ＩＤｎ，ａｉ，ｓ）を求めるとする。あるいは、リーダライタ（３）が要求処理識別情報ａｉを記憶しておき、上記ステップＳ４００でタグ（２）に要求処理識別情報ａｉも送信し、さらに上記ステップＳ４０５でもステップＳ４００で送信した要求処理識別情報ａｉをサーバに送信し、上記ステップＳ４０８では、サーバの一方向性関数演算部（１４１）が、リーダライタ（３）から受信した要求処理識別子ａｉも用いてＨＲＷ（ＩＤｎ，ａｉ，ｓ）を求めるとしてもよい。
【００８３】
本発明であるパスワード管理システムおよびパスワード認証方法は、上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。例えば、ＲＦＩＤは接触方式でも非接触方式でもよいし、ＩＣローダとリーダライタ間の通信は無線通信ではなく有線通信としてもよい。また、上記各実施形態において説明した処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されるとしてもよい。また、上記形態では、所定のプログラムを実行させることにより、所定の機能（例えば、ＸＯＲ演算部など）を実現することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【産業上の利用可能性】
【００８４】
本発明は、例えば、物流市場に出回るＩＣタグや人的管理に用いられるＩＣカードなどのパスワード管理およびパスワード認証に有用である。
【図面の簡単な説明】
【００８５】
【図１】タグ（２）のハードウェア構成例。
【図２】リーダライタ（３）のハードウェア構成例。
【図３】タグ（２）とリーダライタ（３）との通信の模式図。
【図４】第１実施形態に係わるタグ（２）およびリーダライタ（３）の機能ブロック図。
【図５】第１実施形態に係わるパスワード認証の処理フロー。
【図６】第２実施形態に係わるタグ（２）およびリーダライタ（３）の機能ブロック図。
【図７】コマンド識別子と要求処理情報とを対応付けた対応テーブルの一例。
【図８】コマンド識別子、コマンドおよびパスワードを対応付けた対応テーブルの一例。
【図９】第２実施形態に係わるパスワード認証の処理フロー。
【図１０】第３実施形態に係わるパスワード認証の処理フロー（共通鍵暗号化関数の場合）。
【図１１】第３実施形態に係わるパスワード認証の処理フロー（公開鍵暗号化関数の場合パターン１）。
【図１２】第３実施形態に係わるパスワード認証の処理フロー（公開鍵暗号化関数の場合パターン２）。
【図１３】サーバ（１）のハードウェア構成例。
【図１４】第４実施形態に係わるサーバ（１）、タグ（２）およびリーダライタ（３）の機能ブロック図。
【図１５】サーバ（１）、タグ（２）、リーダライタ（３）間の通信の模式図。
【図１６】第４実施形態に係わるパスワード認証の処理フロー（その１）。
【図１７】第４実施形態に係わるパスワード認証の処理フロー（その２）。
【符号の説明】
【００８６】
１      サーバ
１３    通信部
１４０  制御部
１４１  一方向性関数演算部
１４２  ＸＯＲ演算部
１７    外部記憶装置
２      ＲＦＩＤタグ
２４０  制御部
２４１  判定部
２４２  乱数生成部
２４３  ＸＯＲ演算部
２５    ＲＯＭ
２９    通信部
３      リーダライタ
３１    通信手段
３４０  制御部
３４１  一方向性関数演算部
３５    ＲＯＭ
３９    通信部
【図１】
2007140778.tif 000003
【図２】
2007140778.tif 000004
【図３】
2007140778.tif 000005
【図４】
2007140778.tif 000006
【図５】
2007140778.tif 000007
【図６】
2007140778.tif 000008
【図７】
2007140778.tif 000009
【図８】
2007140778.tif 000010
【図９】
2007140778.tif 000011
【図１０】
2007140778.tif 000012
【図１１】
2007140778.tif 000013
【図１２】
2007140778.tif 000014
【図１３】
2007140778.tif 000015
【図１４】
2007140778.tif 000016
【図１５】
2007140778.tif 000017
【図１６】
2007140778.tif 000018
【図１７】
2007140778.tif 000019