(57)【要約】  サーバ装置１０６は、ユーザのパスワードを１つ以上記憶しており、ユーザ認証に用いる認証用乱数を生成し、認証用乱数を端末装置１０１に送信し、端末装置１０１は、認証用乱数を受信し、認証用乱数とユーザからの入力値とに基づき、パスワード候補文字の背景色を設定し、背景色とともにパスワード候補文字を表示し、ユーザは記憶しているパスワードの各文字の背景色が同じになるようにキー操作し、端末装置１０１は、ユーザ操作に基づきパスワード文字列ごとに認証用乱数に対する応答値を計算し、応答値をサーバ装置１０６に送信し、サーバ装置１０６では、応答値を受信し、記憶している各パスワード文字列と認証用乱数と応答値とを用いて、ユーザ認証の成否判断を行う。
2009028060.tif 000002
【特許請求の範囲】
【請求項１】
ユーザが利用する端末装置と、前記端末装置と通信を行ってユーザに対する認証を行う認証装置とを有する認証システムであって、
前記端末装置は、
前記認証装置より認証用乱数を受信し、認証用乱数に対する応答値を前記認証装置に送信する端末通信部と、
入力値を受け付ける入力部と、
前記端末通信部により受信された認証用乱数と前記入力部により受け付けられた入力値とに基づき、パスワード候補文字の外観を設定する外観設定部と、
前記外観設定部により設定された外観のパスワード候補文字を表示する表示部と、
前記入力部により受け付けられた入力値に基づいて前記応答値を計算する応答値計算部とを有し、
前記認証装置は、
ユーザのパスワード文字列を２つ以上記憶する管理部と、
認証用乱数を生成する認証乱数生成部と、
前記認証乱数生成部より生成された認証用乱数を前記端末装置に送信し、前記端末装置より前記認証用乱数に対する応答値を受信する認証通信部と、
前記管理部に記憶された各パスワード文字列と前記認証乱数生成部により生成された認証用乱数と前記認証通信部により受信された応答値とを用いて前記端末装置により選択された各パスワード文字列の最初のパスワード文字の外観を求め、求めた各パスワード文字列の最初のパスワード文字の外観と前記管理部に記憶されている各パスワード文字列と前記認証乱数生成部により生成された認証用乱数と前記認証通信部により受信された応答値とを用いて所定の演算を行い、ユーザ認証の成否判断を行う認証判断部を有することを特徴とする認証システム。
【請求項２】
前記管理部は、
前記認証判断部による認証順序が指定されている２以上のパスワード文字列を記憶し、
前記認証判断部は、
前記認証順序に従って、前記認証通信部により受信された応答値の中から各パスワード文字列に対応する応答値を抽出し、各パスワード文字列に対応する応答値と各パスワード文字列とを用いて前記端末装置により選択された各パスワード文字列の最初のパスワード文字の外観を求め、パスワード文字列ごとに、求めた最初のパスワード文字の外観と当該パスワード文字列と前記認証用乱数と当該パスワード文字列に対応する応答値とを用いて所定の演算を行い、ユーザ認証の成否判断を行うことを特徴とする請求項１に記載の認証システム。
【請求項３】
前記管理部は、
パスワード長が相互に一定でない２以上のパスワード文字列を記憶し、
前記認証判断部は、
前記認証順序に従って、前記認証通信部により受信された応答値の中から各パスワード文字列に対応する応答値を各パスワード文字列のパスワード長に応じて抽出することを特徴とする請求項１又は２に記載の認証システム。
【請求項４】
前記認証判断部は、
パスワード文字列ごとに、前記端末装置により選択された２番目以降のパスワード文字の各々の外観を求め、求めた２番目以降のパスワード文字の各々の外観が最初のパスワード文字の外観に一致するか否かを判定する演算を行うことを特徴とする請求項１又は２に記載の認証システム。
【請求項５】
前記外観設定部は、
パスワード候補文字の外観として各文字の背景色を設定することを特徴とする請求項１又は２に記載の認証システム。
【請求項６】
前記外観設定部は、
パスワード候補文字の外観として各文字の背景に図柄を設定することを特徴とする請求項１又は２に記載の認証システム。
【請求項７】
ユーザが利用する端末装置と通信を行ってユーザに対する認証を行う認証装置であって、
ユーザのパスワード文字列を２つ以上記憶する管理部と、
認証用乱数を生成する認証乱数生成部と、
前記認証乱数生成部により生成された認証用乱数を前記端末装置に送信し、前記端末装置より前記端末装置が入力値を受け付けて当該入力値に基づいて計算した前記認証用乱数に対する応答値を受信する認証通信部と、
前記管理部に記憶された各パスワード文字列と前記認証乱数生成部により生成された認証用乱数と前記認証通信部により受信された応答値とを用いて前記端末装置により選択された各パスワード文字列の最初のパスワード文字の外観を求め、求めた各パスワード文字列の最初のパスワード文字の外観と前記管理部に記憶されている各パスワード文字列と前記認証乱数生成部により生成された認証用乱数と前記認証通信部により受信された応答値とを用いて所定の演算を行い、ユーザ認証の成否判断を行う認証判断部を有することを特徴とする認証装置。
【請求項８】
前記管理部は、
前記認証判断部による認証順序が指定されている２以上のパスワード文字列を記憶し、
前記認証判断部は、
前記認証順序に従って、前記認証通信部により受信された応答値の中から各パスワード文字列に対応する応答値を抽出し、各パスワード文字列に対応する応答値と各パスワード文字列とを用いて前記端末装置により選択された各パスワード文字列の最初のパスワード文字の外観を求め、パスワード文字列ごとに、求めた最初のパスワード文字の外観と当該パスワード文字列と前記認証用乱数と当該パスワード文字列に対応する応答値とを用いて所定の演算を行い、ユーザ認証の成否判断を行うことを特徴とする請求項７に記載の認証装置。
【請求項９】
前記管理部は、
パスワード長が相互に一定でない２以上のパスワード文字列を記憶し、
前記認証判断部は、
前記認証判断部は、
前記認証順序に従って、前記認証通信部により受信された応答値の中から各パスワード文字列に対応する応答値を各パスワード文字列のパスワード長に応じて抽出することを特徴とする請求項７又は８に記載の認証装置。
【請求項１０】
前記認証判断部は、
パスワード文字列ごとに、前記端末装置により選択された２番目以降のパスワード文字の各々の外観を求め、求めた２番目以降のパスワード文字の各々の外観が最初のパスワード文字の外観に一致するか否かを判定する演算を行うことを特徴とする請求項７又は８に記載の認証装置。
【請求項１１】
ユーザに対する認証を行う認証装置と通信を行う、ユーザが利用する端末装置であって、
ユーザの変換前パスワード文字列を受け付ける変換前パスワード入力部と、
パスワード変換用乱数を生成する端末乱数生成部と、
前記認証装置による認証に用いられる複数のパスワード候補文字が配列されているパスワード配列を記憶するパスワード配列記憶部と、
前記端末乱数生成部により生成されたパスワード変換用乱数と、前記パスワード配列記憶部に記憶されているパスワード配列とに基づき、前記変換前パスワード入力部により受け付けられた変換前パスワード文字列の変換を行うパスワード変換部とを有することを特徴とする端末装置。
【請求項１２】
前記パスワード配列記憶部は、
それぞれに指定された位置に複数のパスワード候補文字の各文字が配置されているパスワード配列を記憶し、
前記パスワード変換部は、
前記変換前パスワード文字列を構成するパスワード文字ごとに一致するパスワード候補文字が配置されている前記パスワード配列での位置を判断し、判断した各パスワード候補文字の位置と前記パスワード変換用乱数とに基づき、前記変換前パスワード文字列の変換を行うことを特徴とする請求項１１に記載の端末装置。
【請求項１３】
前記パスワード変換部は、
前記変換前パスワード文字列を構成するパスワード文字ごとに一致するパスワード候補文字が配置されている前記パスワード配列での位置を判断し、判断した各パスワード候補文字の位置と前記パスワード変換用乱数とを用いて所定の演算を行い、前記変換前パスワード文字列のパスワード文字を演算結果の値に相当する位置に配置されているパスワード候補文字に置き換えて、前記変換前パスワード文字列の変換を行うことを特徴とする請求項１１又は１２に記載の端末装置。
【請求項１４】
前記端末装置は、更に、
前記パスワード変換部により変換された変換後パスワード文字列を前記認証装置に送信する端末通信部を有することを特徴とする請求項１１又は１２に記載の端末装置。
【請求項１５】
前記変換前パスワード入力部は、
パスワード変換用乱数の生成用の乱数生成用パスワード文字列を受け付け、
前記端末乱数生成部は、
前記パスワード入力部により受け付けられた乱数生成用パスワード文字列に対して一方向性演算を行って、パスワード変換用乱数を生成することを特徴とする請求項１１又は１２に記載の端末装置。
【請求項１６】
前記端末装置は、更に、
入力値を受け付ける入力部と、
パスワード候補文字の外観を変更する規則を示す外観変化パターンと前記パスワード変換用乱数を記憶する端末記憶部と、
前記認証装置より認証用乱数を受信し、認証用乱数に対応する応答値を前記認証装置に送信する端末通信部と、
前記端末通信部により受信された認証用乱数と、前記入力部により受け付けられた入力値と前記端末記憶部により記憶されている外観変化パターンと、前記パスワード配列記憶部に記憶されているパスワード配列とに基づき、パスワード候補文字の外観を設定する外観設定部と、
前記外観設定部により設定された外観のパスワード候補文字を表示する表示部と、
前記入力部により受け付けられた入力値と、前記端末記憶部に記憶されているパスワード変換用乱数とに基づき、前記応答値を計算する応答値計算部とを有することを特徴とする請求項１１又は１２に記載の端末装置。
【請求項１７】
前記表示部は、
ｍ行ｎ列（ｍ、ｎはともに任意の自然数）のマトリックスでパスワード候補文字を表示し、
前記応答値計算部は、
前記入力部により受け付けられた入力値と、前記端末記憶部に記憶されているパスワード変換用乱数と、前記表示部により表示されるマトリックスの行数及び列数とに基づき、前記応答値を計算することを特徴とする請求項１６に記載の端末装置。
【請求項１８】
ユーザに対する認証を行う端末装置に挿入して使用され、前記端末装置とのデータの授受を行う集積回路（ＩＣ）カードであって、
ユーザの２つ以上のパスワード文字列とパスワード候補文字の外観を記憶する記憶部と、
乱数を生成し、当該乱数を前記端末装置に提供する乱数生成部と、
前記記憶部に記憶された各パスワード文字列とパスワード候補文字の外観と前記乱数部により生成された乱数と前記端末装置から取得した前記端末装置が入力値を受け付けて当該入力値に基づいて計算した前記乱数に対する応答値とを用いて所定の演算を行い、ユーザ認証の成否判断を行う認証判断部とを有することを特徴とするＩＣカード。
【請求項１９】
ユーザが利用する端末装置と通信を行ってユーザに対する認証を行うコンピュータである認証装置に、
認証用乱数を生成する認証乱数生成処理と、
前記認証乱数生成処理により生成された認証用乱数を前記端末装置に送信し、前記端末装置より前記端末装置が入力値を受け付けて当該入力値に基づいて計算した前記認証用乱数に対する応答値を受信する認証通信処理と、
前記認証装置の記憶領域に記憶されているユーザの２以上のパスワード文字列の各々と前記認証生成処理により生成された認証用乱数と前記認証通信処理により受信された応答値とを用いて前記端末装置により選択された各パスワード文字列の最初のパスワード文字の外観を求め、求めた各パスワード文字列の最初のパスワード文字の外観と前記記憶領域に記憶されている各パスワード文字列と前記認証乱数生成処理により生成された認証用乱数と前記認証通信処理により受信された応答値とを用いて所定の演算を行い、ユーザ認証の成否判断を行う認証判断処理を実行させることを特徴とするプログラム。
【請求項２０】
ユーザに対する認証を行う認証装置と通信を行う、ユーザが利用するコンピュータである端末装置に、
ユーザの変換前パスワード文字列を受け付ける変換前パスワード入力処理と、
パスワード変換用乱数を生成する端末乱数生成処理と、
前記端末乱数生成処理により生成されたパスワード変換用乱数と、前記端末装置の記憶領域に記憶されている、前記認証装置による認証に用いられる複数のパスワード候補文字が配列されているパスワード配列とに基づき、前記変換前パスワード入力処理により受け付けられた変換前パスワード文字列の変換を行うパスワード変換処理とを実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザ認証を行う認証システム及び認証装置及び端末装置及びＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）カード及びプログラムに関する。
【背景技術】
【０００２】
広く普及しているユーザ認証方式としては、ユーザ認証を行う際に、ユーザに自分のＩＤ（Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）とパスワードを入力させ、入力されたパスワードと、ユーザＩＤに対して登録されているパスワードが一致するか否かにより、正規のユーザであるか否かを判断する方法がある。しかしながら、このように固定のパスワードそのものを入力する方法では、ユーザがパスワードを入力する際に、第三者にその入力を見られてしまうと、正規のユーザに代わって認証される危険性がある。【０００３】
この問題の解決を図るために、特許文献１では、認証の際にユーザに自身が記憶するパスワードなどの認証情報そのものを入力させることに代えて、画面に表示される提示用パターン（乱数の表）に対して、ユーザに記憶するパスワード導出ルール（乱数表上の所定の場所）に従ってパスワード（所定の場所に位置する数字）を入力させる方法が開示されている。
【特許文献１】再公表ＷＯ２００３／０６９４９０号公報  第１頁−６５頁、第１７図
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来の方式では、ユーザは記憶するパスワード導出ルールに従って画面上に提示される乱数表上の所定の場所に位置する数字を選択し、正規ユーザであることを示す認証データとしてその数字を入力する。
パスワードそのもの（ここでは、パスワード導出ルールそのもの）は入力しないが、画面上の乱数表から数字を選択して入力するため、認証操作を一度でも第三者に盗み見られてしまうと、本人に成りすまされる危険性が高くなり、認証の強度が落ちてしまうという問題点があった。【０００５】
図２５は、特許文献１の図１７を簡略化したものである。
例えば、図２５に示してあるように乱数表に対してユーザが入力した値が“９８９３”である場合には、最初と三番目の‘９’についてのパスワード導出ルールの候補は各７つ、二番目の‘８’についてのパスワード導出ルールの候補は９つ、四番目の‘３’についてのパスワード導出ルールの候補は５つで、パスワード導出ルールの候補は、７×７×９×５＝２２０５個の候補が残るが、同じ乱数表に対して、ユーザが入力した値が“５６０７”であった場合には、２×１×４×２＝１６個しか候補が残らず、悪意の第三者に成りすまされる確率が高くなり、認証の強度が低下する。【０００６】
特許文献１には、認証強度の低下を防ぐために、パスワード導出ルールに何を入力してもよいダミーや、入力する値を＋１するなど変換法則を登録して第三者に対し導出ルールの推測を難しくする方法が開示されている。
しかしながら、ダミーについては第三者は何を入力しても良いため強度の低下は防ぐことはできない。
また、変換法則についても、同じ入力桁には同じ変換法則が毎回適用されるため、認証を２回以上覗き見た場合には、入力桁毎に乱数表の各値から入力値を引いた値（負になる場合には１０を足した値）からなる乱数表を各認証回毎に求めることで変換法則の値が何であってもこの値の影響が結果として得られる乱数表から取り除かれ、結果として得られる乱数表の中で毎回同じ数字が同じ位置にあるものに導出ルールの候補を絞り込めるため、ユーザにおいてはパスワード導出ルールとは別に変換法則も暗記する負担とさらに認証時に変換法則に従った計算の負担とが生じるにも関わらず、導出ルールが悪意の第三者に分かってしまう確率は依然として高い。【０００７】
また、上記の方法では、認証を行うにあたってユーザが記憶すべき認証のための情報は、一般に広く普及している文字や数字などからなるパスワードとは異なる、「１行２列、２行４列、３行５列、４行８列」といった、提示される乱数表上の位置を示す導出ルールである。
ユーザにとって、このような複雑な情報を記憶するのは、大きな負担となる。
さらに、認証の強度を維持するために、１ヶ月などの一定期間毎にパスワードなどの認証情報の更新を行うシステムにおいては、ユーザは認証情報を更新する度に新しい位置を示す導出ルールを暗記する必要があり、更新前の導出ルールと新たに記憶した導出ルールを区別することは難しく、ユーザにとっての負担はさらに大きくなる。【０００８】
この発明は上記のような問題点を解決することを主な目的の一つとしており、広く普及している文字や数字などによるパスワードを用いて、認証時のユーザの負担が小さく、かつ、認証の操作を第三者に見られてもパスワードを推測される危険性が低く、高いセキュリティを保持したユーザの認証システム、認証装置、端末装置、ＩＣカードおよび認証方法の提供を目的の一つとする。
【課題を解決するための手段】
【０００９】
本発明に係る認証システムは、ユーザが利用する端末装置と、前記端末装置と通信を行ってユーザに対する認証を行う認証装置とを有する認証システムであって、
前記端末装置は、
前記認証装置より認証用乱数を受信し、認証用乱数に対する応答値を前記認証装置に送信する端末通信部と、
入力値を受け付ける入力部と、
前記端末通信部により受信された認証用乱数と前記入力部により受け付けられた入力値とに基づき、パスワード候補文字の外観を設定する外観設定部と、
前記外観設定部により設定された外観のパスワード候補文字を表示する表示部と、
前記入力部により受け付けられた入力値に基づいて前記応答値を計算する応答値計算部とを有し、
前記認証装置は、
ユーザのパスワード文字列を２つ以上記憶する管理部と、
認証用乱数を生成する認証乱数生成部と、
前記認証乱数生成部より生成された認証用乱数を前記端末装置に送信し、前記端末装置より前記認証用乱数に対する応答値を受信する認証通信部と、
前記管理部に記憶された各パスワード文字列と前記認証乱数生成部により生成された認証用乱数と前記認証通信部により受信された応答値とを用いて前記端末装置により選択された各パスワード文字列の最初のパスワード文字の外観を求め、求めた各パスワード文字列の最初のパスワード文字の外観と前記管理部に記憶されている各パスワード文字列と前記認証乱数生成部により生成された認証用乱数と前記認証通信部により受信された応答値とを用いて所定の演算を行い、ユーザ認証の成否判断を行う認証判断部を有することを特徴とする。【００１０】
前記管理部は、
前記認証判断部による認証順序が指定されている２以上のパスワード文字列を記憶し、
前記認証判断部は、
前記認証順序に従って、前記認証通信部により受信された応答値の中から各パスワード文字列に対応する応答値を抽出し、各パスワード文字列に対応する応答値と各パスワード文字列とを用いて前記端末装置により選択された各パスワード文字列の最初のパスワード文字の外観を求め、パスワード文字列ごとに、求めた最初のパスワード文字の外観と当該パスワード文字列と前記認証用乱数と当該パスワード文字列に対応する応答値とを用いて所定の演算を行い、ユーザ認証の成否判断を行うことを特徴とする。【００１１】
前記管理部は、
パスワード長が相互に一定でない２以上のパスワード文字列を記憶し、
前記認証判断部は、
前記認証順序に従って、前記認証通信部により受信された応答値の中から各パスワード文字列に対応する応答値を各パスワード文字列のパスワード長に応じて抽出することを特徴とする。【００１２】
前記認証判断部は、
パスワード文字列ごとに、前記端末装置により選択された２番目以降のパスワード文字の各々の外観を求め、求めた２番目以降のパスワード文字の各々の外観が最初のパスワード文字の外観に一致するか否かを判定する演算を行うことを特徴とする。【００１３】
前記外観設定部は、
パスワード候補文字の外観として各文字の背景色を設定することを特徴とする。【００１４】
前記外観設定部は、
パスワード候補文字の外観として各文字の背景に図柄を設定することを特徴とする。【００１５】
本発明に係る認証装置は、ユーザが利用する端末装置と通信を行ってユーザに対する認証を行う認証装置であって、
ユーザのパスワード文字列を２つ以上記憶する管理部と、
認証用乱数を生成する認証乱数生成部と、
前記認証乱数生成部により生成された認証用乱数を前記端末装置に送信し、前記端末装置より前記端末装置が入力値を受け付けて当該入力値に基づいて計算した前記認証用乱数に対する応答値を受信する認証通信部と、
前記管理部に記憶された各パスワード文字列と前記認証乱数生成部により生成された認証用乱数と前記認証通信部により受信された応答値とを用いて前記端末装置により選択された各パスワード文字列の最初のパスワード文字の外観を求め、求めた各パスワード文字列の最初のパスワード文字の外観と前記管理部に記憶されている各パスワード文字列と前記認証乱数生成部により生成された認証用乱数と前記認証通信部により受信された応答値とを用いて所定の演算を行い、ユーザ認証の成否判断を行う認証判断部を有することを特徴とする。【００１６】
前記管理部は、
前記認証判断部による認証順序が指定されている２以上のパスワード文字列を記憶し、
前記認証判断部は、
前記認証順序に従って、前記認証通信部により受信された応答値の中から各パスワード文字列に対応する応答値を抽出し、各パスワード文字列に対応する応答値と各パスワード文字列とを用いて前記端末装置により選択された各パスワード文字列の最初のパスワード文字の外観を求め、パスワード文字列ごとに、求めた最初のパスワード文字の外観と当該パスワード文字列と前記認証用乱数と当該パスワード文字列に対応する応答値とを用いて所定の演算を行い、ユーザ認証の成否判断を行うことを特徴とする。【００１７】
前記管理部は、
パスワード長が相互に一定でない２以上のパスワード文字列を記憶し、
前記認証判断部は、
前記認証判断部は、
前記認証順序に従って、前記認証通信部により受信された応答値の中から各パスワード文字列に対応する応答値を各パスワード文字列のパスワード長に応じて抽出することを特徴とする。【００１８】
前記認証判断部は、
パスワード文字列ごとに、前記端末装置により選択された２番目以降のパスワード文字の各々の外観を求め、求めた２番目以降のパスワード文字の各々の外観が最初のパスワード文字の外観に一致するか否かを判定する演算を行うことを特徴とする。【００１９】
本発明に係る端末装置は、ユーザに対する認証を行う認証装置と通信を行う、ユーザが利用する端末装置であって、
ユーザの変換前パスワード文字列を受け付ける変換前パスワード入力部と、
パスワード変換用乱数を生成する端末乱数生成部と、
前記認証装置による認証に用いられる複数のパスワード候補文字が配列されているパスワード配列を記憶するパスワード配列記憶部と、
前記端末乱数生成部により生成されたパスワード変換用乱数と、前記パスワード配列記憶部に記憶されているパスワード配列とに基づき、前記変換前パスワード入力部により受け付けられた変換前パスワード文字列の変換を行うパスワード変換部とを有することを特徴とする。【００２０】
前記パスワード配列記憶部は、
それぞれに指定された位置に複数のパスワード候補文字の各文字が配置されているパスワード配列を記憶し、
前記パスワード変換部は、
前記変換前パスワード文字列を構成するパスワード文字ごとに一致するパスワード候補文字が配置されている前記パスワード配列での位置を判断し、判断した各パスワード候補文字の位置と前記パスワード変換用乱数とに基づき、前記変換前パスワード文字列の変換を行うことを特徴とする。【００２１】
前記パスワード変換部は、
前記変換前パスワード文字列を構成するパスワード文字ごとに一致するパスワード候補文字が配置されている前記パスワード配列での位置を判断し、判断した各パスワード候補文字の位置と前記パスワード変換用乱数とを用いて所定の演算を行い、前記変換前パスワード文字列のパスワード文字を演算結果の値に相当する位置に配置されているパスワード候補文字に置き換えて、前記変換前パスワード文字列の変換を行うことを特徴とする。【００２２】
前記端末装置は、更に、
前記パスワード変換部により変換された変換後パスワード文字列を前記認証装置に送信する端末通信部を有することを特徴とする。【００２３】
前記変換前パスワード入力部は、
パスワード変換用乱数の生成用の乱数生成用パスワード文字列を受け付け、
前記端末乱数生成部は、
前記パスワード入力部により受け付けられた乱数生成用パスワード文字列に対して一方向性演算を行って、パスワード変換用乱数を生成することを特徴とする。【００２４】
前記端末装置は、更に、
入力値を受け付ける入力部と、
パスワード候補文字の外観を変更する規則を示す外観変化パターンと前記パスワード変換用乱数を記憶する端末記憶部と、
前記認証装置より認証用乱数を受信し、認証用乱数に対応する応答値を前記認証装置に送信する端末通信部と、
前記端末通信部により受信された認証用乱数と、前記入力部により受け付けられた入力値と前記端末記憶部により記憶されている外観変化パターンと、前記パスワード配列記憶部に記憶されているパスワード配列とに基づき、パスワード候補文字の外観を設定する外観設定部と、
前記外観設定部により設定された外観のパスワード候補文字を表示する表示部と、
前記入力部により受け付けられた入力値と、前記端末記憶部に記憶されているパスワード変換用乱数とに基づき、前記応答値を計算する応答値計算部とを有することを特徴とする。【００２５】
前記表示部は、
ｍ行ｎ列（ｍ、ｎはともに任意の自然数）のマトリックスでパスワード候補文字を表示し、
前記応答値計算部は、
前記入力部により受け付けられた入力値と、前記端末記憶部に記憶されているパスワード変換用乱数と、前記表示部により表示されるマトリックスの行数及び列数とに基づき、前記応答値を計算することを特徴とする。【００２６】
本発明に係るＩＣカードは、ユーザに対する認証を行う端末装置に挿入して使用され、前記端末装置とのデータの授受を行う集積回路（ＩＣ）カードであって、
ユーザの２つ以上のパスワード文字列とパスワード候補文字の外観を記憶する記憶部と、
乱数を生成し、当該乱数を前記端末装置に提供する乱数生成部と、
前記記憶部に記憶された各パスワード文字列とパスワード候補文字の外観と前記乱数部により生成された乱数と前記端末装置から取得した前記端末装置が入力値を受け付けて当該入力値に基づいて計算した前記乱数に対する応答値とを用いて所定の演算を行い、ユーザ認証の成否判断を行う認証判断部とを有することを特徴とする。【００２７】
本発明に係るプログラムは、ユーザが利用する端末装置と通信を行ってユーザに対する認証を行うコンピュータである認証装置に、
認証用乱数を生成する認証乱数生成処理と、
前記認証乱数生成処理により生成された認証用乱数を前記端末装置に送信し、前記端末装置より前記端末装置が入力値を受け付けて当該入力値に基づいて計算した前記認証用乱数に対する応答値を受信する認証通信処理と、
前記認証装置の記憶領域に記憶されているユーザの２以上のパスワード文字列の各々と前記認証生成処理により生成された認証用乱数と前記認証通信処理により受信された応答値とを用いて前記端末装置により選択された各パスワード文字列の最初のパスワード文字の外観を求め、求めた各パスワード文字列の最初のパスワード文字の外観と前記記憶領域に記憶されている各パスワード文字列と前記認証乱数生成処理により生成された認証用乱数と前記認証通信処理により受信された応答値とを用いて所定の演算を行い、ユーザ認証の成否判断を行う認証判断処理を実行させることを特徴とする。【００２８】
本発明に係るプログラムは、ユーザに対する認証を行う認証装置と通信を行う、ユーザが利用するコンピュータである端末装置に、
ユーザの変換前パスワード文字列を受け付ける変換前パスワード入力処理と、
パスワード変換用乱数を生成する端末乱数生成処理と、
前記端末乱数生成処理により生成されたパスワード変換用乱数と、前記端末装置の記憶領域に記憶されている、前記認証装置による認証に用いられる複数のパスワード候補文字が配列されているパスワード配列とに基づき、前記変換前パスワード入力処理により受け付けられた変換前パスワード文字列の変換を行うパスワード変換処理とを実行させることを特徴とする。
【発明の効果】
【００２９】
本発明によれば、広く普及している文字や数字などによるパスワードを用いて、認証時のユーザの負担が小さく、かつ、認証時の操作を第三者に見られてもパスワードを推測される危険性が低く、高いセキュリティを保持した認証システム等が提供できる。
特に、二以上のパスワード文字列を連続させて認証を行うため、第三者にとっては、認証に一体いくつのパスワード文字列が使われているのか、さらに、個々のパスワード文字列の長さも分らないため、認証時の操作を第三者に見られてもパスワードを推測される危険性が低く、高いセキュリティを保持した認証システム等が提供できる。
【発明を実施するための最良の形態】
【００３０】
以下、本発明の実施の形態を図に基づいて説明する。
なお、下記実施の形態１から実施の形態４において、ユーザ認証処理に用いるパスワード文字、パスワード候補文字の外観は、パスワード色（文字の背景色）とする。
パスワード文字、パスワード候補文字の外観とは、各文字及びその周辺部分の視覚的な特徴のことであり、文字の背景色を利用する以外にも、例えば、フォントの種類や大きさ、文字の描画色、文字の背景の模様、文字を囲う図形の種類などを用いることが可能である。
また、複数の文字から構成されるパスワードの文字列をパスワード文字列といい、パスワード文字列を構成する各文字をパスワード文字という。
また、パスワード候補文字とは、パスワード文字の候補であり、ユーザ認証の際にユーザが複数のパスワード候補文字の中からパスワード文字に一致する文字を選択する。パスワード候補文字については、例を図示して後述する。【００３１】
実施の形態１．
図１は、この発明の実施の形態１に係る認証システムの構成を示すブロック図である。【００３２】
図１において、端末装置１０１の端末通信部１０５とサーバ装置１０６の認証通信部１１０は、無線通信や有線通信やインターネットなどのネットワークを介して接続される。
サーバ装置１０６は、認証装置の例である。【００３３】
サーバ装置１０６の認証乱数生成部１０７は、例えば、１０桁の乱数を生成する。
認証判断部１０８は、端末装置１０１からの応答値に基づきユーザ認証の成否判断を行う。
少なくとも認証乱数生成部１０７及び認証判断部１０８は、本実施の形態では具体的にはプログラムで実現されるものであり、このプログラムは、ハードディスク装置や不揮発性メモリやフレキシブルディスクなどに格納され、これらからサーバ装置（認証装置）１０６上にロードされＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）上で実行される。【００３４】
端末装置１０１の外観設定部１０４は、パスワードの候補となるパスワード候補文字から構成されるパスワード配列と色変換テーブルとをあらかじめ保持し、表示部１０２に表示するパスワードの背景色を設定する。
また、端末装置１０１の応答値計算部１１１は、ユーザからの入力値に基づいて、サーバ装置１０６に応答する応答値を計算する。
少なくとも外観設定部１０４における外観設定機能及び応答値計算部１１１は、本実施の形態では具体的にはプログラムで実現されるものであり、このプログラムは、ハードディスク装置や不揮発性メモリやフレキシブルディスクなどに格納され、これらから端末装置１０１上にロードされＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）上で実行される。【００３５】
サーバ装置１０６の管理部１０９は、本実施の形態ではハードディスク装置からなり、２つ以上のユーザのパスワードをユーザＩＤと関連付けて記憶する。
また、パスワード配列と色変換テーブルを格納する。【００３６】
パスワード配列Ｐは、パスワードに使用できるパスワード候補文字を端末装置１０１の表示部１０２に表示する際の文字の並びを示しており、以下に示すようにｉ行ｊ列に表示する文字のＡＳＣＩＩコードを格納したものである。【００３７】
【数１】
2009028060.tif 000003
【００３８】
つまり、パスワード候補文字は、例えば、図９に示すマトリックスにおける１、２、３・・・＝、？、＠の各文字のことであり、ユーザ認証の際にユーザが複数のパスワード候補文字の中からパスワード文字に一致する文字を選択する。
そして、パスワード配列Ｐは、このようなパスワード候補文字の配列である。【００３９】
色変換テーブルＣは、パスワード配列Ｐを端末装置１０１の表示部１０２に表示する際の背景色を示しており、以下に示すように、０から９までの数値に対応する背景色の色指定コードを６桁の１６進数（各２桁がＲＧＢの各数値に対応する）で格納するものである。【００４０】
【数２】
2009028060.tif 000004
【００４１】
つまり、色変換テーブルＣは、パスワード候補文字の外観を変更する規則を示す外観変化パターンであり、例えば、図９に示すパスワード候補文字の背景色を決定するための規則が示される。
なお、図９の詳細については、後述する。【００４２】
なお、本実施の形態では、パスワード文字列の合計の長さを最大６４として説明するが、長さはこれに限定するものではない。また、パスワード候補文字としては、７行１０列のパスワード配列を用いるが、同様に配列の大きさはこれに限定するものではない。【００４３】
ここで、本実施の形態に係る認証システムの動作の概要を説明する。【００４４】
サーバ装置１０６の管理部１０９は、前述のように、ユーザのパスワード文字列を１つ以上記憶している。以下の説明では、管理部１０９は、ユーザのパスワード文字列を２つ以上記憶しているものとする。
また、認証乱数生成部１０７は、端末装置１０１から認証要求があった場合には、ユーザ認証に用いる１０桁の認証用乱数を生成する。
そして、認証通信部１１０は、認証乱数生成部１０７より生成された認証用乱数を端末装置１０１に送信する。【００４５】
端末装置１０１では、端末通信部１０５が、サーバ装置１０６からの認証用乱数を受信する。
そして、外観設定部１０４が、端末通信部１０５により受信された認証用乱数と入力部１０３により受け付けられたユーザからの入力値とに基づき、パスワード候補文字の外観を設定し、表示部１０２が、外観設定部１０４により設定された外観のパスワード候補文字を表示する。
ユーザは、パスワード文字列に含まれる全ての文字について、各文字に対応するパスワード候補文字の外観（背景色）が同じとなるように入力部１０３のカーソル等を操作し、外観設定部１０４は、ユーザのカーソル等の操作（ユーザからの入力値）に基づき、パスワード候補文字の外観（背景色）を変化させる。
そして、応答値計算部１１１は、ユーザからの入力値に基づき、パスワード文字列ごとに、認証用乱数に対する応答値を計算する。
端末通信部１０５は、応答値計算部１１１により計算された認証用乱数に対する応答値をサーバ装置１０６に送信する。【００４６】
サーバ装置１０６では、認証通信部１１０が、端末装置１０１より認証用乱数に対する応答値を受信する。
そして、認証判断部１０８が、管理部１０９に記憶されている各パスワード文字列とパスワード配列と認証乱数生成部１０７により生成された認証用乱数とを用いて適正なユーザ操作と同様の演算を行って、認証通信部１１０により受信された応答値と比較してユーザ認証の成否判断を行う。
認証判断部１０８は、端末装置１０１により選択された各パスワード文字列の最初のパスワード文字の外観を求め、求めた各パスワード文字列の最初のパスワード文字の外観と管理部１０９に記憶されている各パスワード文字列と認証乱数生成部１０７により生成された認証用乱数と認証通信部１１０により受信された応答値とを用いて演算を行って、ユーザ認証の成否判断を行う。
管理部１０９に記憶されている２以上のパスワード文字列には、認証判断部１０８による認証順序が指定されており、認証判断部１０８は認証通信部１１０により受信された応答値の中から各パスワード文字列に対応する応答値を抽出する。なお、管理部１０９に記憶されている２以上のパスワード文字列のパスワード長が相互に一定でない場合がある。このような場合は、認証判断部１０８は、認証順序に従って、各パスワード文字列のパスワード長に応じて各パスワード文字列に対応する応答値を抽出する。
そして、認証判断部１０８は、各パスワード文字列に対する応答値と各パスワード文字列とを用いて端末装置１０１により選択された各パスワード文字列の最初のパスワード文字の外観を求め、パスワード文字列ごとに、求めた最初のパスワード文字の外観と当該パスワード文字列と認証用乱数と当該パスワード文字列に対する応答値とを用いて、所定の演算を行い、ユーザ認証の成否判断を行う。
より具体的には、認証判断部１０８は、パスワード文字列ごとに、端末装置１０１により選択された２番目以降のパスワード文字の各々の外観を求め、求めた２番目以降のパスワード文字の各々の外観が最初のパスワード文字の外観に一致するか否かを判定する演算を行う。【００４７】
次に、本実施の形態に係るユーザ認証システムにおける端末装置１０１及びサーバ装置１０６の動作の詳細を図面を参照して説明する。【００４８】
まず、ユーザ認証を行う際の端末装置１０１の動作について説明する。
図２及び図３は、端末装置１０１においてユーザ認証を行う際に実行される処理を示すフローチャートである。【００４９】
まず、ユーザが端末装置１０１を使って認証を行う場合に、表示部１０２にユーザＩＤ入力画面を表示し、入力部１０３よりユーザＩＤを受け付ける（Ｓ１０１）。
このとき、応答値計算部１１１が、応答値としてサーバ装置１０６に返すデータを格納する認証データ配列ｖ［６４］とｈ［６４］の要素を０に初期化し、水平移動量ｍと垂直移動量ｎと入力カウンタｋをそれぞれ０に初期化する（Ｓ１０２）。
ここで、水平移動量ｍは、図９に例示するパスワード候補文字の背景色を変更させるためにユーザが背景色を水平方向に移動させた量（図９のマス目の数）を示す。
垂直移動量ｎは、図９に例示するパスワード候補文字の背景色を変更させるためにユーザが背景色を垂直方向に移動させた量（図９のマス目の数）を示す。
入力カウンタｋは、ユーザにより背景色を指定するための入力が行われたパスワード長さ（パスワード文字数）をカウントするためのカウンタである。本実施の形態では、パスワード長さを最大６４としているので、入力カウンタｋの最大値は６４である。【００５０】
なお、本実施の形態及び実施の形態２以降で説明する変数値（水平移動量ｍ、垂直移動量ｎ、入力カウンタｋ、水平乱数配列ＲＨ、垂直乱数配列ＲＶ等）は、端末装置又はサーバ装置に含まれている不図示のメインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。【００５１】
次に、サーバ装置１０６に対して端末通信部１０５を介してユーザＩＤを含む認証要求を送信する（Ｓ１０３）。
この後、端末装置１０１は端末通信部１０５を介して送信した認証要求に対する７個の１０桁の乱数からなる乱数のセットをサーバ装置１０６より受信し、これを外観設定部１０４が乱数配列Ｒ［ｉ｜（０≦ｉ≦６）］として記憶する（Ｓ１０４）。【００５２】
次に、外観設定部１０４は、パスワード配列Ｐの各行各列について、記憶した乱数セットの値と、２つの移動量ｍとｎの値と、色変換テーブルＣから所定の演算により色指定コードを求める。
表示部１０２は、求められた色指定コードにより指定される背景色の上にパスワード文字を描画したユーザ認証画面を表示する（Ｓ１０５）。
背景色の色指定コードを求める演算の詳細は、後で説明する。【００５３】
表示部１０２に文字として表示した背景色付のパスワード配列に対して、ユーザの入力キー値（入力値）を入力部１０３より受け付ける（Ｓ１０６）。
応答値計算部１１１は、入力キーを受け付けると、入力されたキーの種別を判定する（Ｓ１０７）。【００５４】
入力されたキーの種別が選択キーの場合には、応答値計算部１１１は、入力カウンタｋの値が６４より小さいかをチェックする（Ｓ１０８）。ｋの値が６４より小さい場合には、移動量ｍとｎの値を、それぞれ認証データ配列ｈ［ｋ］とｖ［ｋ］の値として記憶した後、入力カウンタｋの値に１を加算し（Ｓ１０９）、ステップＳ１０５からの処理を繰り返す。
一方、ステップＳ１０８において、入力カウンタｋの値が６４以上の場合には、既に確定数がパスワードの最大長に達したことを示す警告を表示し（ステップＳ１１０）、ステップＳ１０５からの処理を繰り返す。【００５５】
入力されたキーの種別が左への移動キーであった場合には、応答値計算部１１１は、水平移動量ｍから１を減算する（Ｓ１１１）。次に、応答値計算部１１１は、水平移動量ｍの値が０より小さくないかをチェックし（Ｓ１１２）、０より小さな値の場合にはｍに１０を加算し（Ｓ１１３）、ステップＳ１０５からの処理を繰り返す。【００５６】
入力されたキーの種別が右への移動キーであった場合には、応答値計算部１１１は、水平移動量ｍに１を加算する（Ｓ１１４）。次に、水平移動量ｍの値が９より大きくないかをチェックし（Ｓ１１５）、９より大きな値の場合にはｍから１０を減算し（Ｓ１１６）、ステップＳ１０５からの処理を繰り返す。【００５７】
入力されたキーの種別が上への移動キーであった場合には、応答値計算部１１１は、垂直移動量ｎから１を減算する（Ｓ１１７）。次に、垂直移動量ｎの値が０より小さくないかをチェックし（Ｓ１１８）、０より小さな値の場合にはｎに７を加算し（Ｓ１１９）、ステップＳ１０５からの処理を繰り返す。【００５８】
入力されたキーの種別が下への移動キーであった場合には、応答値計算部１１１は、垂直移動量ｎに１を加算する（Ｓ１２０）。次に、垂直移動量ｎの値が６より大きくないかをチェックし（Ｓ１２１）、６より大きな値の場合にはｎから７を減算し（Ｓ１２２）、ステップＳ１０５からの処理を繰り返す。【００５９】
入力されたキーの種別がクリアキーであった場合には、応答値計算部１１１は、認証データ配列ｈ［ｋ］とｖ［ｋ］の値に０を記憶し（Ｓ１２３）、入力カウンタｋの値が０より大きいかをチェックし（Ｓ１２４）、０より大きな値の場合にはｋから１を減算し（Ｓ１２５）、ステップＳ１０５からの処理を繰り返す。【００６０】
入力されたキーの種別が認証キーであった場合には、応答値計算部１１１は、入力カウンタｋと認証データ配列ｈ［ｋ］とｖ［ｋ］の値を認証データとして端末通信部１０５を介してサーバ装置１０６へ送信する（Ｓ１２６）。【００６１】
次に、サーバ装置１０６から送られてくる認証結果を受信し（Ｓ１２７）、表示部１０２に対してサーバ装置１０６から受信した認証結果を表示し（Ｓ１２８）、認証処理を終了する。【００６２】
次に、図４を参照して、図２のステップＳ１０５の詳細動作を説明する。
まず、外観設定部１０４は、変数ｘとｙをそれぞれ１に初期化する（Ｓ２０１）。次に、変数ｙの値が７より大きな値でないかチェックする（Ｓ２０２）。
ここで、変数ｙの値が７以下の場合には、変数ｘの値が１０より大きな値でないかチェックする（Ｓ２０３）。
変数ｘの値が１０以下の場合には、外観設定部１０４は、次の式（１）を使って画面の上からｙ行、左からｘ列の位置のパスワード候補文字に設定する背景色の色指定コードＤ（ｘ，ｙ）を求める（Ｓ２０４）。
式（１）において、ｍとｎはそれぞれ図２における水平移動量と垂直移動量を示す。
また、式（１）において、％は除余を求める演算を示す（式（２）においても同様）。【００６３】
【数３】
2009028060.tif 000005
【００６４】
次に、外観設定部１０４は、画面の左上からｙ行目ｘ列目に、パスワード配列Ｐ［ｙ−１，ｘ−１］の文字コードで指定される文字を色指定コードＤ（ｘ，ｙ）の背景色で表示する（Ｓ２０５）。
次に、変数ｘを１加算し（Ｓ２０６）、ステップＳ２０３からの処理を繰り返す。
一方、ステップＳ２０３で、変数ｘの値が１０より大きい場合には、外観設定部１０４は、変数ｘに１をセットし、変数ｙを１加算し（Ｓ２０７）、ステップＳ２０２からの処理を繰り返す。
ステップＳ２０２において、変数ｙの値が７より大きな値の場合には処理を終了する。【００６５】
次に、サーバ装置１０６において端末装置１０１からの認証要求を受信した際に実行される処理について説明する。
図５は、サーバ装置１０６において端末装置１０１から認証要求を受信した際に実行される処理を示す。【００６６】
まず、端末装置１０１からユーザＩＤを含む認証要求を受信する（Ｓ３０１）と、認証判断部１０８が、受信した認証要求に含まれているユーザＩＤが管理部１０９に登録されているかをチェックする（Ｓ３０２）。
管理部１０９にユーザＩＤが登録されている場合には、認証判断部１０８は、ユーザＩＤに関連付けて登録されている２つ以上のパスワードを順に取り出し登録パスワード文字列ＰＷ［ｉ｜（０≦ｉ≦Ｓ−１）］（Ｓは登録されているパスワードの個数）の要素として格納する（Ｓ３０３）。
登録パスワード文字列ＰＷの番号であるｉ（０≦ｉ≦Ｓ−１）は、認証判断部１０８における認証処理の順序となる。
一方、管理部１０９上にユーザＩＤが登録されていない場合には、認証の失敗を認証判断部１０８が記憶する（Ｓ３０４）。【００６７】
次に、認証乱数生成部１０７においてユーザの認証に必要な乱数を生成する（Ｓ３０５）。
本実施の形態では、７行１０列のパスワード配列を端末の画面上に表示するため、７個の１０桁の乱数からなる乱数のセットを生成し、生成した乱数のセットを端末装置１０１に認証通信部１１０を介して送信する（Ｓ３０６）。【００６８】
この後、端末装置１０１から認証データを受信し（Ｓ３０７）、認証判断部１０８に認証の失敗が記憶されていないかをチェックする（Ｓ３０８）。
認証判断部１０８に認証の失敗が記憶されていない場合には、認証判断部１０８は、認証通信部１１０を介して送信した乱数のセットと受信した認証データの入力カウンタｋと認証データ配列ｈ［ｋ］とｖ［ｋ］と管理部１０９より取り出した登録パスワード文字列ＰＷから認証の成否を判定し（Ｓ３０９）、認証データが正しい場合には、認証通信部１１０を介して端末装置１０１に認証の成功を通知する認証成功メッセージを返信する（Ｓ３１０）。
一方、認証データが間違っている場合には、認証判断部１０８は、認証通信部１１０を介して端末装置１０１に認証の失敗を通知する認証失敗メッセージを送信する（Ｓ３１１）。
認証の成否の判定を行う演算の詳細は、後で説明する。
また、ステップＳ３０８で、認証判断部１０８に認証の失敗が記録されている場合には、ステップＳ３１１で認証失敗メッセージを送信する。【００６９】
次に、図６を参照して、図５のステップＳ３０９の認証判定処理の詳細動作を説明する。【００７０】
まず、認証判断部１０８は、変数ｓを１に、変数ｋを０に初期化する（Ｓ４０１）。
ここで、変数ｓは、パスワード文字列の個数をカウントするための変数である。
また、変数ｋは、パスワード長（パスワード文字の数）をカウントするための変数である。
次に、変数ｌｎに管理部１０９に登録されている登録パスワード文字列ＰＷ［ｓ−１］のパスワード長さを格納し、変数ｒを１に、変数ｍとｎを０にそれぞれ設定する（Ｓ４０２）。
変数ｌｎは、登録パスワード文字列のパスワード長さ（パスワード文字数）を記録するための変数であり、各登録パスワード文字列のパスワード長が一定でないことに対応させている。また、変数ｒは、対象としている文字が登録パスワード文字列中の何番目の文字であるかを判別するための変数である。変数ｍ、変数ｎは、水平移動量ｍ、垂直移動量ｎに対応する。【００７１】
次に、認証判断部１０８は、ｓ番目の登録パスワード文字列ＰＷ［ｓ−１］内のパスワードのｒ番目の文字について、パスワード配列Ｐ内の位置を求める（Ｓ４０３）。
パスワード配列Ｐ内の位置は、図７に示す変換テーブルを使って求めることができる。
具体的には、図７の変換テーブルに対し、あるパスワード文字のＡＳＣＩＩコードの上位４ビットと下位４ビットより一意に求まる数値ｔを用いて、パスワード配列Ｐ内の位置ｉとｊが求められる。このとき、ｉはｔを１０で割った場合の商、ｊはｔを１０で割った場合の余りとなる。
次に、認証判断部１０８は、ｉとｊと認証データ配列の要素ｈ［ｋ］とｖ［ｋ］とから、次の式（２）を使ってｓ番目の登録パスワードのｒ文字目のパスワード文字の背景色として選択された色指定コードＥ（ｓ，ｋ）を求める（Ｓ４０３）。【００７２】
【数４】
2009028060.tif 000006
【００７３】
ここで、ｋは、ｓ−１番目までの登録パスワード文字列の長さの総和にｒ−１を加算した値に等しい。【００７４】
次に、認証判断部１０８は、変数ｒが１に等しいかをチェックし（Ｓ４０５）、等しい場合には色コードＥ（ｓ，ｒ）を認証判断部１０８内に一時的に記憶する（Ｓ４０６）。
ステップＳ４０５で、変数ｒが１に等しくない場合には、認証判断部１０８は、ステップＳ４０４で求めた色コードＥ（ｓ，ｒ）が、認証判断部１０８内に一時的に記憶している色コードと一致するかをチェックする（Ｓ４０７）。
つまり、認証判断部１０８は、認証順序に従い、認証通信部１１０により受信された応答値の中から各パスワード文字列に対応する応答値をパスワード長ｌｎに応じて抽出する。そして、上記の式（２）に示す演算を行って、パスワード文字列ごとに、端末装置１０１により選択された最初のパスワード文字の外観を求めるとともに、２番目以降のパスワード文字の各々の外観を求め、求めた２番目以降のパスワード文字の各々の外観が最初のパスワード文字の外観に一致するか否かを判定する。【００７５】
ステップＳ４０７において、色コードが一致しない場合には、認証判断部１０８は、認証を失敗とし（Ｓ４０８）、認証判定処理を終了する。
一方、ステップＳ４０７において、色コードと一致する場合には、認証判断部１０８は、変数ｒが変数ｌｎと等しいかをチェックする（Ｓ４０９）。
ステップＳ４０９において、変数ｒが変数ｌｎと等しくない場合には、ｓ番目の登録パスワード文字列の全ての文字について色コードが一致するかのチェックが終わっていないため、変数ｒと変数ｋをそれぞれ１加算し（Ｓ４０１）、ステップＳ４０３からの処理を繰り返す。
一方、ステップＳ４０９において、変数ｒが変数ｌｎに等しい場合には、ｓ番目の登録パスワード文字列の全ての文字について色コードが一致するかのチェックが終わったため、変数ｓがＳに等しいかをチェックする（Ｓ４１１）。
ステップＳ４１１で、変数ｓがＳに等しくない場合には、まだすべての登録パスワード文字列について応答値のチェックが終わっていないため、変数ｓを１加算し（Ｓ４１２）、ステップＳ４０２からの処理を繰り返す。
一方、ステップＳ４１１で、変数ｓがＳに等しい場合には、全ての登録パスワード文字列について応答値のチェックが終わったため、認証を成功とし（Ｓ４１３）、認証判断部１０８は認証判定処理を終了する。【００７６】
図８は、端末装置１０１でＳ１０１においてユーザからの認証要求を受け付ける際に、表示部１０２に表示されるユーザＩＤ入力画面である。【００７７】
ユーザは認証を開始する際に、入力部１０３よりユーザＩＤ入力画面２０１のユーザＩＤ入力フィールド２０２にユーザＩＤを入力し、実行ボタン２０３を押下することで、Ｓ１０３においてサーバ装置１０６に対するユーザＩＤを含む認証要求が送信される。【００７８】
図９は、端末装置１０１でＳ１０５においてユーザからの応答を受け付ける際に、表示部１０２に表示されるユーザ認証画面である。【００７９】
ユーザは認証を行う際に、ユーザ認証画面３０１上で、自身の記憶する最初の登録パスワード文字列の最初の文字から順にパスワード配列３０２の中の文字を見つけ出し、各登録パスワード文字列についてパスワード文字の背景が登録パスワード文字毎に全て同じになるように背景を移動キーで操作して背景が同じになったときに選択キーを押下する操作を繰り返すことで、認証操作を行う。
例えば、登録パスワード文字列が「１Ｆ」である場合、「１」の背景色と同じ背景色は「Ｃ」の位置にあるため、ユーザは、背景全体を右方向に３つ移動させて、「Ｆ」に対しても「１」と同じ背景色となるようにする。
また、選択キーを押下し背景を確定した際に、確定表示フィールド３０３に‘＊’が１つ追加表示される。
全ての登録パスワード文字列についての認証操作を実行した後に、ユーザは認証ボタン３０４を押下することで、ステップＳ１２５においてサーバ装置１０６に対する認証データが送信される。
また、ユーザは認証ボタン３０４を押下する前であれば、認証操作の誤りを、クリアボタン３０５を１回押下することで１文字分だけクリアすることができ、この際に確定表示フィールド３０３に表示されている‘＊’は１つ削除される。【００８０】
このように、各パスワードの背景色を合わせるだけでパスワードそのものを入力せずに認証を行うので、たとえ第三者が認証操作を盗み見ることができても、ユーザがどの文字のどの背景色を合わせているかが分らないため、本人になりすまして認証されることを防ぐことができる。
更に、ユーザは認証の都度、パスワード文字列毎に各文字共通に合わせる背景色を自由に変えることができる。また、認証時には、一以上のパスワード文字列を連続させて認証を行っている。このため、第三者にとっては、認証に一体いくつのパスワード文字列が使われているのか、さらに、個々のパスワード文字列の長さも分らないため、高いセキュリティを保持したユーザ認証が行える。【００８１】
さらに、従来の方式において複数のパスワードを登録して個々のパスワードについて認証を繰り返した場合には、なりすましを防ぐのに単にパスワードの桁数が長くなった分だけの効果しか得られない。これに対して、本実施の形態に係る端末装置側では複数のパスワードを１回の認証で続けて使用して一連の認証操作を行うようにし、認証装置側では、パスワード最初の文字の背景と残りの文字の背景とが一致した場合にのみ認証が成功するようにしている。これにより、第三者にとっては、一体どこが２つ目以降のパスワードの最初の文字に相当するのかが分からず、このことによりパスワードとして推測される候補の数が増加し、なりすましが難しくなる効果が得られる。【００８２】
また、ユーザが記憶する認証のためのデータとしては広く普及している従来の文字と数字からなるパスワードを用いることができる。ユーザにとっては、本認証方式に合わせて新たに特殊な形式のデータを憶える負担がなく、セキュリティを維持するためのパスワードの更新時の負荷も小さい。
パスワードには、既に記憶しているものをそのまま使うこともできるし、記憶しているパスワードを途中で２つに分けて登録することもできる。【００８３】
本実施の形態では、パスワード配列と色変換テーブルは、端末装置１０１の外観設定部１０４にあらかじめ保持する構成しているが、サーバ装置１０６の管理部１０９に、パスワード配列と色変換テーブルとを格納し、認証の際にこれらを管理部１０９から取り出してサーバ装置１０６から端末装置１０１に送信する構成としても良い。
さらに、ユーザ毎に異なるパスワード配列および色変換テーブルをユーザＩＤに関連付けて管理部１０９に記憶するようにすることで、ユーザ認証画面においてユーザ毎に異なるパスワード候補文字や背景色を使用することも可能である。
また、本実施の形態では、パスワードの外観として背景色を使用したが、図柄を含むファイル名を要素とする図柄変換テーブルを色変換テーブルに代えて使用することで、図１０に示すようにユーザ認証画面にパスワード候補文字を異なる図柄と一緒に表示するようにすることも可能である。【００８４】
以上、本実施の形態では、ユーザが利用する端末装置と、前記端末装置と通信を行ってユーザに対する認証を行う認証装置とを有する認証システムについて説明した。
より具体的には、前記端末装置は、前記認証装置より認証用乱数を受信し、認証用乱数に対する応答値を前記認証装置に送信する端末通信部と、キーからの入力値を受け付ける入力部と、前記端末通信部により受信された認証用乱数と前記入力部からの入力値とを基にパスワード候補文字の外観を設定する外観設定部と、前記外観設定部により設定された外観のパスワード候補文字を表示する表示部とを有し、前記端末装置は、前記入力部が受け付けた入力値に基づいて前記応答値を計算することを説明した。
また、前記認証装置は、ユーザのパスワード文字列を２つ以上記憶する管理部と、認証用乱数を生成する認証乱数生成部と、前記認証乱数生成部より生成された認証用乱数を前記端末装置に送信し、前記端末装置より前記認証用乱数に対する応答値を受信する認証通信部と、前記管理部に記憶された２つ以上のパスワード文字列と前記認証乱数生成部により生成された認証用乱数と前記認証通信部により受信された応答値とを用いて前記端末装置により選択された各パスワード文字列の最初の外観を求め、求めた各パスワード文字の外観と前記管理部に記憶された各パスワード文字列と前記認証乱数生成部により生成された認証用乱数と前記認証通信部により受信された応答値とを用いて所定の演算を行い、ユーザ認証の成否判断を行う認証判断部を有することを説明した。【００８５】
また、本実施の形態では、前記外観設定部は、パスワード候補文字の外観として各文字の背景色を設定することを説明した。【００８６】
更に、本実施の形態では、前記外観設定部は、パスワード候補文字の外観として各文字の背景に図柄を設定することを説明した。【００８７】
実施の形態２．
以上の実施形態１では、登録パスワード文字列はあらかじめサーバ装置の管理部に登録済みのパスワード文字列を使用するようにしたものであるが、次に端末装置から直接ユーザが自身のパスワード文字列を変更登録する場合の実施の形態を示す。【００８８】
図１１は、この発明の実施の形態２に係る認証システムの構成を示すブロック図である。
図１１において、端末装置４０１の端末通信部４０５とサーバ装置４０８の認証通信部４１２は、無線通信や有線通信やインターネットなどのネットワークを介して接続される。【００８９】
端末装置４０１の外観設定部４０４は、パスワードの候補となるパスワード候補文字から構成されるパスワード配列と色変換テーブルとをあらかじめ保持し、表示部４０２に表示するパスワードの背景色を設定する。本実施の形態では、外観設定部４０４は、パスワード配列記憶部の例である。
なお、外観設定部４０４が記憶しているパスワード配列と色変換テーブルは、実施の形態１で説明したものと同様である。
端末乱数生成部４０６は、パスワード変換用乱数を生成する。
端末記憶部４０７は、乱数の配列を記憶し、具体的には、ハードディスク装置や不揮発性メモリやフレキシブルディスクなどからなる。
入力部４０３は、変換前のパスワードである変換前パスワードをユーザから入力する。入力部４０３は、変換前パスワード入力部の例である。
応答値計算部４１３は、実施の形態１と同様に、サーバ装置４０８からの認証用乱数に対する応答値を計算する。
パスワード変換部４１４は、端末乱数生成部４０６により生成されたパスワード変換用乱数と、外観設定部４０４に記憶されているパスワード配列とに基づき、入力部４０３により受け付けられた変換前パスワード文字列の変換を行う。【００９０】
サーバ装置４０８の管理部４１１は、本実施の形態ではハードディスク装置からなり、１つ以上のユーザのパスワードをユーザＩＤと関連付けて記憶する。また、パスワード配列と色変換テーブルを格納する。
認証乱数生成部４０９は、１０桁の乱数を生成する。
認証乱数生成部４０９及び認証判断部４１０は、本実施の形態では具体的にはプログラムで実現されるものであり、このプログラムは、ハードディスク装置や不揮発性メモリやフレキシブルディスクなどに格納され、これらからサーバ装置（認証装置）４０８上にロードされＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）上で実行される。【００９１】
次に、本実施の形態に係る認証システムの動作の概要を説明する。【００９２】
端末装置４０１において、入力部４０３が、ユーザの変換前パスワード文字列を受け付ける。この変換前パスワードとは、ユーザが記憶しているパスワードである。
また、端末乱数生成部４０６が、パスワード変換用乱数を生成する。
外観設定部４０４が記憶しているパスワード配列は、実施の形態１と同様に、それぞれに指定された位置に複数のパスワード候補文字の各文字が配置されている。
パスワード変換部４１４は、変換前パスワード文字列を構成するパスワード文字ごとに一致するパスワード候補文字が配置されているパスワード配列での位置を判断し、判断した各パスワード候補文字の位置とパスワード変換用乱数とに基づき、変換前パスワード文字列の変換を行う。
具体的には、パスワード変換部４１４は、変換前パスワード文字列を構成するパスワード文字ごとに一致するパスワード候補文字が配置されているパスワード配列での位置を判断し、判断した各パスワード候補文字の位置とパスワード変換用乱数とを用いて所定の演算を行い、変換前パスワード文字列のパスワード文字を演算結果の値に相当する位置に配置されているパスワード候補文字に置き換えて、変換前パスワード文字列の変換を行う。
そして、端末通信部４０５は、パスワード変換部４１４により変換された変換後パスワード文字列をサーバ装置４０８に送信する。【００９３】
サーバ装置４０８では、認証通信部４１２が、端末装置４０１から送信された変換後パスワード文字列を受信し、管理部４１１がこの変換後パスワード文字列を端末装置４０１のユーザのパスワード文字列として記憶する。【００９４】
このように、本実施の形態では、サーバ装置４０８に登録されるパスワード文字列（変換後パスワード文字列）は、ユーザが記憶しているパスワード文字列（変換前パスワード文字列）とは異なるものとすることができる。【００９５】
そして、本実施の形態でも、ユーザ認証処理は実施の形態１と同様な手順で行われ、ユーザは記憶しているパスワード文字列（変換前パスワード文字列）の各文字に対してパスワード候補文字の背景を共通にするように入力を行う。
ここで、応答値計算部４１３の応答値の計算手順が実施の形態１と異なる。本実施の形態では、応答値計算部４１３は、ユーザの入力値とパスワード変換用乱数とを用いて応答値を計算する。
応答値の計算においてパスワード変換用乱数を用いることで、応答値計算部４１３は、ユーザが変換前パスワード文字列に対して入力した入力値を、サーバ装置４０８に登録されている変換後パスワード文字列に対応させて変換して、応答値を計算している。【００９６】
なお、以下にて本実施の形態に係る認証システムを詳細に説明するにあたり、本実施の形態では、管理部４１１に新規ユーザの登録後の状態として、ユーザのＩＤと関連付けて仮パスワードが登録されており、端末装置４０１の端末記憶部４０７には、要素が０に値が初期化された長さ６４の２つの乱数配列、水平乱数配列ＲＨ［６４］と垂直乱数配列ＲＶ［６４］を記憶しているものとする。水平乱数配列ＲＨ［６４］と垂直乱数配列ＲＶ［６４］は、パスワード変換用乱数の配列である。
パスワード配列Ｐと色変換テーブルＣには、実施の形態１で使用したものと同じものを用いる。
なお、本実施の形態では、パスワードの合計の長さを最大６４として説明するが、長さはこれに限定するものではない。
また、パスワード候補文字としては、７行１０列のパスワード配列を用いるが、同様に配列の大きさはこれに限定するものではない。【００９７】
次に、本実施の形態に係るユーザ認証システムにおける端末装置１０１及びサーバ装置１０６の動作の詳細を図面を参照して説明する。【００９８】
まず、サーバ装置４０８への新規利用者登録が終了した後に、ユーザは、端末装置４０１に対して仮パスワードを使ってサーバ装置４０８との認証操作を行い、認証が成功した後にパスワードの変更登録を行う。
まず、ユーザ認証を行う際の端末装置４０１の動作について説明する。
図１２及び図１３は、端末装置４０１においてユーザ認証を行う際に実行される処理を示すフローチャートである。【００９９】
まず、ユーザが端末装置４０１を使って認証を行う場合に、表示部４０２にユーザＩＤ入力画面を表示し、入力部４０３よりユーザＩＤを受け付ける（Ｓ５０１）。
このとき、応答値計算部４１３は、応答値としてサーバ装置４０８に返すデータを格納する認証データ配列ｖ［６４］とｈ［６４］の要素を０に初期化し、水平移動量ｍと垂直移動量ｎと入力カウンタｋをそれぞれ０に初期化する（Ｓ５０２）。【０１００】
次に、サーバ装置４０８に対して端末通信部４０５を介してユーザＩＤを含む認証要求を送信する（Ｓ５０３）。
この後、端末装置４０１は端末通信部４０５を介して送信した認証要求に対する７個の１０桁の乱数からなる乱数のセットをサーバ装置４０８より受信し、これを外観設定部４０４が乱数配列Ｒ［ｉ｜（０≦ｉ≦６）］として記憶する（Ｓ５０４）。【０１０１】
次に、外観設定部４０４は、パスワード配列の各行各列について、記憶した乱数セットの値と、２つの移動量ｍとｎの値と、色変換テーブルＣから所定の演算により色指定コードを求める。
表示部４０２は、求められた色指定コードにより指定される背景色の上にパスワード候補文字を描画したユーザ認証画面を表示する（Ｓ５０５）。
背景色の色指定コードを求める演算の詳細は、後で説明する。【０１０２】
表示部４０２に文字として表示した背景色付のパスワード配列に対して、ユーザの入力キー値（入力値）を入力部４０３より受け付ける（Ｓ５０６）。
入力キーを受け付けると、応答値計算部４１３は、入力されたキーの種別を判定する（Ｓ５０７）。【０１０３】
入力されたキーの種別が選択キーの場合には、応答値計算部４１３が、入力カウンタｋの値が６４より小さいかをチェックする（Ｓ５０８）。
ｋの値が６４より小さい場合には、応答値計算部４１３が、水平移動量ｍに水平乱数配列ＲＨ［ｋ］を加算した値を認証データ配列ｈ［ｋ］の値として記憶し、垂直移動量ｎに垂直乱数配列ＲＶ［ｋ］を加算した値を認証データ配列ｖ［ｋ］の値として記憶する（Ｓ５０９）。
次に、応答値計算部４１３は、ｋの値が０に等しいかをチェックする（Ｓ５１０）。
ｋの値が０に等しくない場合には、応答値計算部４１３は、認証データ配列ｈ［ｋ］の値に１０加算した値から水平乱数配列ＲＨ［ｋ−１］の値を引いた値を認証データ配列ｈ［ｋ］の値として記憶し、認証データ配列ｖ［ｋ］の値に７加算した値から垂直乱数配列ＲＶ［ｋ−１］の値を引いた値を認証データ配列ｖ［ｋ］の値として記憶する（Ｓ５１１）。
次に、応答値計算部４１３は、認証データ配列ｈ［ｋ］の値を１０で割った余りを認証データ配列ｈ［ｋ］の値として記憶し、認証データ配列ｖ［ｋ］の値を７で割った余りを認証データ配列ｖ［ｋ］の値として記憶した後、入力カウンタｋの値に１を加算し（Ｓ５１２）、ステップＳ５０５からの処理を繰り返す。
ステップＳ５１０において、ｋの値が０に等しい場合には、ステップＳ５１２からの処理を行う。
ステップＳ５０８において、入力カウンタｋの値が６４以上の場合には、既に確定数がパスワードの最大長に達したことを示す警告を表示し（Ｓ５１３）、ステップＳ５０５からの処理を繰り返す。【０１０４】
入力されたキーの種別が左への移動キーであった場合には、応答値計算部４１３は、水平移動量ｍから１を減算する（Ｓ５１４）。次に、水平移動量ｍの値が０より小さくないかをチェックし（Ｓ５１５）、０より小さな値の場合にはｍに１０を加算し（Ｓ５１６）、ステップＳ５０５からの処理を繰り返す。【０１０５】
入力されたキーの種別が右への移動キーであった場合には、応答値計算部４１３は、水平移動量ｍに１を加算する（Ｓ５１７）。次に、水平移動量ｍの値が９より大きくないかをチェックし（Ｓ５１８）、９より大きな値の場合にはｍから１０を減算し（Ｓ５１９）、ステップＳ５０５からの処理を繰り返す。【０１０６】
入力されたキーの種別が上への移動キーであった場合には、応答値計算部４１３は、垂直移動量ｎから１を減算する（Ｓ５２０）。次に、垂直移動量ｎの値が０より小さくないかをチェックし（Ｓ５２１）、０より小さな値の場合にはｎに７を加算し（Ｓ５２２）、ステップＳ５０５からの処理を繰り返す。【０１０７】
入力されたキーの種別が下への移動キーであった場合には、応答値計算部４１３は、垂直移動量ｎに１を加算する（Ｓ５２３）。次に、垂直移動量ｎの値が６より大きくないかをチェックし（Ｓ５２４）、６より大きな値の場合にはｎから７を減算し（Ｓ５２５）、ステップＳ５０５からの処理を繰り返す。【０１０８】
入力されたキーの種別がクリアキーであった場合には、応答値計算部４１３は、認証データ配列ｈ［ｋ］とｖ［ｋ］の値に０を記憶し（Ｓ５２６）、入力カウンタｋの値が０より大きいかをチェックし（Ｓ５２７）、０より大きな値の場合にはｋから１を減算し（Ｓ５２８）、ステップＳ５０５からの処理を繰り返す。【０１０９】
入力されたキーの種別が認証キーであった場合には、応答値計算部４１３は、入力カウンタｋと認証データ配列ｈ［ｋ］とｖ［ｋ］の値を認証データとして端末通信部４０５を介してサーバ装置４０８へ送信する（Ｓ５２９）。【０１１０】
次に、サーバ装置４０８から送られてくる認証結果を受信し（Ｓ５３０）、表示部５０２に対してサーバ装置４０８から受信した認証結果を表示し（Ｓ５３１）、認証処理を終了する。
なおステップＳ５３０で、受信した認証結果が認証成功の場合には認証結果にはセッションＩＤ（乱数）が含まれるため、端末装置４０１ではセッションＩＤを端末記憶部４０７に記憶する。【０１１１】
なお、ステップＳ５０５の詳細動作は、実施の形態１のステップＳ１０５の処理と同様である。
また、サーバ装置４０８において端末装置４０１からの認証要求を受信した際に実行される処理は、実施の形態１のサーバ装置１０６において端末装置１０１から認証要求を受信した際に実行される処理と同様である。
なお、ステップＳ３１０で認証成功メッセージを送信する際には、認証乱数生成部４０９でセッションＩＤ用の乱数を生成し、ユーザＩＤと関連付けて管理部４１１に記憶するとともに、認証成功メッセージに含めて送信する。【０１１２】
次に、認証が成功した後にパスワード文字列の変更登録を行う。
図１４は、端末装置４０１で認証が成功した後に、ユーザがパスワード文字列の変更登録を使用する際に表示部１０２に表示されるパスワード変更登録画面であり、図１４（ａ）はパスワード変更登録画面を起動した直後の画面である。
パスワードの変更登録画面５０１には、上向きスクロールボタン５０２、１番目のパスワード文字列の入力フィールド５０３、１番目のパスワード文字列（確認）の入力フィールド５０４、下向きスクロールボタン５０５、追加ボタン５０６、登録ボタン５０７が表示される。
ユーザはパスワード文字列の変更登録を行う際に、パスワード変更登録画面の１番目のパスワード文字列の入力フィールド５０２に１番目のパスワード文字列（変換前パスワード文字列）を入力し、さらに１番目のパスワード文字列（確認）の入力フィールド５０２に同じく１番目のパスワード文字列（変換前パスワード文字列）を入力する。パスワード文字列を１つしか登録しない場合には、登録ボタン５０４を押下することでパスワード変更登録が端末装置４０１からサーバ装置４０８に対して送信される。【０１１３】
一方、ユーザが２番目のパスワード文字列を登録する際には、追加ボタン５０６を押下することで、図１４（ｂ）に示すように、パスワード文字列の変更登録画面に、２番目のパスワード文字列の入力フィールド５０８と２番目のパスワード文字列（確認）の入力フィールド５０９が追加表示される。
ユーザは、パスワード変更登録画面の２番目のパスワード文字列の入力フィールド５０８に２番目のパスワード文字列（変換前パスワード文字列）を入力し、さらに２番目のパスワード文字列（確認）の入力フィールド５０９に同じく２番目のパスワード文字列（変換前パスワード文字列）を入力する。【０１１４】
さらに、ユーザが３番目のパスワード文字列（変換前パスワード文字列）を登録する際には、再び追加ボタン５０６を押下することで、図１４（ｃ）に示すように、パスワードの変更登録画面に、３番目のパスワード文字列の入力フィールド５１０と３番目のパスワード文字列（確認）の入力フィールド５１１が追加表示される。
ユーザは上向きスクロールボタン５０２と下向きスクロールボタン５０５を押下することでパスワード入力フィールドの表示を上下に移動する。【０１１５】
ユーザが全てのパスワード文字列の入力フィールドとパスワード文字列（確認）の入力フィールドにパスワード文字列を入力後に登録ボタン５０７を押下するとパスワード変更登録が端末装置４０１からサーバ装置４０８に対して送信される。【０１１６】
次に、パスワード文字列の変更登録を行う際の端末装置４０１の動作について説明する。
図１５及び図１６は、端末装置４０１においてパスワード文字列の登録変更を行う際に実行される処理を示すフローチャートである。【０１１７】
まず、ユーザが端末装置４０１を使って登録変更を行う際には、表示部４０２に表示したメニューから入力部４０３でパスワード登録変更を選択することによって（画面は省略）パスワード登録変更を受け付ける（Ｓ６０１）。
まず、パスワード変換部４１４が、パスワード文字列の数をカウントするための変数ｋを１に初期化する（Ｓ６０２）。
次に、パスワード変換部４１４は、１番目のパスワードを記憶するための領域ｐｓ＿１とｐｃ＿１を割り当てる（Ｓ６０３）。
次に、図１４に示すパスワードの登録変更画面を表示部４０２に表示し、パスワードの入力フィールドおよびパスワード（確認）の入力フィールドへのキー入力とボタン操作を受け付ける（Ｓ６０４）。ユーザからの入力を受け付けると、パスワード変換部４１４が、入力の種別を判定する（Ｓ６０５）。【０１１８】
入力が上向きスクロールボタン５０２または下向きスクロールボタン５０５の押下の場合には、表示するパスワードの入力フィールドを向きに応じて変更する（Ｓ６０６）。
入力が追加ボタン５０６の押下の場合には、ｋを１加算し（Ｓ６０７）、ｋ番目のパスワードを記憶するための領域ｐｓ＿ｋとｐｃ＿ｋを割り当て（Ｓ６０８）、ステップＳ６０４の処理を繰り返す。【０１１９】
入力が登録ボタン５０７の押下の場合には、パスワード変換部４１４は、内部変数ｉを１に、パスワードの合計の長さを求めるための変数ｓｕｍを０に初期化する（Ｓ６０９）。
次に、内部変数ｉがパスワード数のカウンタｋ以下かをチェックする（Ｓ６１０）。
内部変数ｉがｋ以下の場合には、パスワード変換部４１４は、ｉ番目のパスワードのとパスワード（確認）が一致しているかを確認するためにｐｓ＿ｉの値とｐｃ＿ｉの値が等しいかをチェックする（Ｓ６１１）。
ｐｓ＿ｉの値とｐｃ＿ｉの値が等しい場合には、パスワード変換部４１４は、ｐｓ＿ｉの長さを変数ｓｕｍに加算し（Ｓ６１２）、変数ｓｕｍが６４以下かをチェックする（Ｓ６１３）。
変数ｓｕｍが６４以下の場合には、パスワード変換部４１４は、ｉを１加算して（Ｓ６１４）、ステップＳ６１０からの処理を繰り返す。
一方、ステップＳ６１３で変数ｓｕｍが６４より大きい場合には、パスワード変換部４１４は、表示部４０２に、入力されたパスワードの合計長が最大値を超えている警告を表示し（Ｓ６１５）、ステップＳ６０４からの処理を繰り返す。
また、ステップＳ６１０でｐｓ＿ｉの値とｐｃ＿ｉの値が等しくない場合には、パスワード変換部４１４は、表示部４０２に、ｉ番目のパスワードとパスワード（確認）の入力内容が一致していない警告を表示し（Ｓ６１６）、ステップＳ６０４からの処理を繰り返す。
ステップＳ６１０において、パスワード変換部４１４は、内部変数ｉの値がパスワード数のカウンタｋより大きい場合には、入力されたパスワードの変換処理を行う（Ｓ６１７）。変換処理の詳細は、後で説明する。【０１２０】
次に、変換処理ステップＳ６１７において使用したパスワード変換用乱数の配列である乱数配列ＲＨ［ｋ］とＲＶ［ｋ］を端末記憶部４０７に記憶し（Ｓ６１８）、パスワード数ｋと変換後のパスワードｐｓ＿１からｐｓ＿ｋを含むパスワード登録変更を端末装置４０１の端末通信部４０５を介してサーバ装置４０８へ送信し（Ｓ６１９）、パスワードの登録変更処理を終了する。【０１２１】
次に、図１７を参照して、図１６のステップＳ６１７のパスワードの変換処理の詳細動作を説明する。【０１２２】
まず、パスワード変換部４１４は、水平乱数配列ＲＨ［６４］と垂直乱数配列ＲＶ［６４］とを割り当て、要素をすべて０に初期化する（Ｓ７０１）。
次に、パスワード変換部４１４は、内部変数ｉを１に、内部変数ｊを０にそれぞれ初期化し（Ｓ７０２）、ｉが入力されたパスワードの個数ｋ以下かをチェックする（Ｓ７０３）。ｉがｋ以下の場合には、内部変数ｍを１に初期化し、内部変数ｌｎにｉ番目のパスワードの長さを記憶する（Ｓ７０４）。内部変数ｍは、処理の対象となっている文字のパスワード文字列内での位置を示す変数である。内部変数ｌｎは、処理の対象となっているパスワード文字列のパスワード長（パスワード文字数）を示す変数である。
次に、端末乱数生成部４０６において２つの乱数ｒ１とｒ２を生成する（Ｓ７０５）。これら２つの乱数ｒ１とｒ２は、パスワード変換用乱数である。
次に、パスワード変換部４１４は、ｒ１を１０で割った余りをｒ１とし、さらに水平乱数配列ＲＨ［ｊ］に記憶し、ｒ２を７で割った余りをｒ２とし、さらに垂直乱数配列ＲＶ［ｊ］に記憶する（Ｓ７０６）。
次に、パスワード変換部４１４は、内部変数ｃｈにｉ番目のパスワードのｍ番目の文字を一時的に記憶し（Ｓ７０７）、図９に示したパスワード配列を用いて内部変数ｃｈに記憶している文字がパスワード配列の何番目の文字かを求めて内部変数ｎに記憶する（Ｓ７０８）。
次に、パスワード変換部４１４は、パスワード配列Ｐから、Ｐ［（ｎ％１０＋ｒ２）％７］［（ｎ／１０＋ｒ１）％１０］の要素を取得して内部変数ｃｈに一時的に記憶し（Ｓ７０９）、ｉ番目のパスワードのｍ番目の文字を内部変数ｃｈに記憶している文字で置き換える（Ｓ７１０）。
次に、パスワード変換部４１４は、ｍがｌｎ以下かをチェックし（Ｓ７１１）、ｍがｌｎ以下の場合には、ｍとｊをそれぞれ１ずつ加算し（Ｓ７１２）、ステップＳ７０５からの処理を繰り返す。
ステップＳ７１１において、ｍがｌｎより大きい場合には、ｉを１加算し（Ｓ７１３）、ステップ７０３からの処理を繰り返す。
ステップＳ７０３において、ｉがｋより大きい場合には、パスワード文字列の変換処理を終了する。【０１２３】
このように、パスワード変換部４１４は、変換前パスワード文字列を構成するパスワード文字ごとに、各パスワード文字に一致するパスワード候補文字が配置されているパスワード配列での位置を判断し、判断した各パスワード候補文字の位置とパスワード変換用乱数とを用いて所定の演算を行い、変換前パスワード文字列のパスワード文字を演算結果の値に相当する位置に配置されているパスワード候補文字に置き換えて、変換前パスワード文字列の変換を行う。【０１２４】
次に、サーバ装置４０８側でパスワード登録変更を受信した際の処理について図１８を参照して説明する。
端末装置４０１からセッションＩＤと１つ以上の新しいパスワード文字列を含む登録変更を受信する（Ｓ８０１）と、認証判断部４１０は、受信したセッションＩＤがユーザＩＤと関連付けて管理部４１１に記憶されているかをチェックする（Ｓ８０２）。
受信したセッションＩＤがユーザＩＤと関連付けて管理部４１１に記憶されていない場合には、認証判断部４１０は、不正なパスワード登録変更として処理を終了する。
一方、ステップＳ８０２で、受信したセッションＩＤがユーザＩＤと関連付けて管理部４１１に記憶されている場合には、認証判断部４１０は、管理部４１１よりセッションＩＤに関連付けて記憶されているユーザＩＤを取得し（Ｓ８０３）、ユーザＩＤに関連付けて管理部４１１に記憶されているパスワードとして受信した１つ以上のパスワード文字列を登録し（Ｓ８０４）、処理を終了する。【０１２５】
なお、図１８に示すパスワード登録変更が行われた後のユーザ認証処理は、図１２及び図１３に示すフローに従って行われる。
上記では、サーバ装置４０８への新規利用者登録が終了した直後に、仮パスワードを用いてユーザ認証を行う例を図１２及び図１３のフローに基づいて説明したが、新規利用者登録直後ではない通常の運用時のユーザ認証処理も、図１２及び図１３のフローに従って行われる。【０１２６】
つまり、実施の形態１と同様に、ユーザは、記憶しているパスワード文字列の各文字に対して共通の背景色となるように移動キーを操作して、選択キーを入力する。選択キーが入力された後は、図１３のＳ５０８−Ｓ５１２の処理が応答値計算部４１３により行われ、応答値が計算される。この応答値の計算に用いられる水平乱数配列ＲＨ［ｋ］と垂直乱数配列ＲＶ［ｋ］は、図１６のＳ６１８で記憶されたパスワード変換用の乱数配列である。
従って、応答値計算部４１３は、パスワード変換部４１４によるパスワード変換処理において利用されたパスワード変換用乱数を用いて応答値の計算を行う。
このように応答値計算部４１３は、パスワード変換部４１４によるパスワード変換処理において利用されたパスワード変換用乱数を用いて、パスワード変換処理に対応させた応答値の計算を行うため、サーバ装置４０８の認証判断部４１０による認証判断に用いられるパスワード文字列が変換後のパスワード文字列であっても、応答値計算部４１３による応答値により正しくユーザ認証を行うことができる。【０１２７】
このように、端末装置４０１からパスワードの登録更新を行う際に、端末側で生成した乱数に基づいてユーザのパスワードを変換し、変換後のパスワードをサーバ装置４０８に登録するため、例え、サーバ装置４０８において、変換後のパスワードが管理部４１１から漏れたとしても、ユーザが実際にどんなパスワードを使用しているかを推測することはできないため、これによって認証システムのセキュリティを強固にすることが可能である。【０１２８】
以上、本実施の形態では、ユーザのパスワードの変更登録とユーザに対する認証を行う認証装置と通信を行ってユーザが利用する端末装置について説明した。
より具体的には、前記端末装置は、認証装置より認証用乱数を受信し、認証用乱数に対応する応答値を前記認証装置に送信し、認証が成功した後に更新用パスワードを前記認証装置に送信する端末通信部と、キーから入力値を受け付ける入力部と、パスワード変換用乱数を生成する端末乱数生成部と、パスワード候補の外観を変更する規則を示す外観変化パターンとパスワード変換用乱数を記憶する端末記憶部と、前記端末通信部により受信された認証用乱数と前記入力部より入力された入力値と前記端末記憶部により記憶されている外観パターンとを基にパスワード候補文字の外観を設定する外観設定部と、前記外観設定部により設定された外観のパスワード候補文字を表示する表示部とを有するとともに、前記入力部が受け付けた入力値と前記端末記憶部が記憶するパスワード変換用乱数に基づいて前記応答値を計算し、認証が成功した後に入力部から入力されたパスワードを端末乱数生成部で生成したパスワード変換用乱数に基づいて前記更新用パスワードに変換することを説明した。【０１２９】
また、本実施の形態では、ユーザの認証に成功した後に、認証通信部で、端末装置からのパスワード変更登録を受信し、管理部に記憶されたパスワード文字列を更新する認証装置について説明した。【０１３０】
実施の形態３．
以上の実施の形態２では、端末装置において乱数を生成し、これを使ってユーザのパスワードを変換することで、ユーザのパスワードの漏えいを防止したものであるが、次に、ユーザが端末装置に入力する変換用パスワードを用いてサーバ装置との認証用のパスワードを変換する場合の実施の形態を示す。【０１３１】
図１９は、この発明の実施の形態３に係る認証システムの構成を示すブロック図である。
図１９において、端末装置６０１の端末通信部６０５とサーバ装置６０７の認証通信部６１１は、無線通信や有線通信やインターネットなどのネットワークを介して接続される。【０１３２】
端末装置６０１の外観設定部６０４は、パスワードの候補となる文字から構成されるパスワード配列と色変換テーブルとをあらかじめ保持し、表示部６０２に表示するパスワードの背景色を設定する。外観設定部６０４は、パスワード配列記憶部の例である。
また、入力部６０３は、ユーザからの変換前パスワード文字列を受け付けるとともに、起動パスワード文字列を受け付ける。起動パスワード文字列は、パスワード変換用乱数の生成に用いられる乱数生成用パスワード文字列である。また、入力部６０３は、変換前パスワード入力部の例である。
端末装置のハッシュ値生成部６０６は、起動パスワード文字列（乱数生成用パスワード文字列）に対してのハッシュ値を生成して、パスワード変換用乱数を生成する。ハッシュ値生成部６０６は、ハッシュ演算以外の他の種類の一方向性演算を起動パスワード文字列（乱数生成用パスワード文字列）に対して行ってパスワード変換用乱数を生成してもよい。ハッシュ値生成部６０６は、端末乱数生成部の例である。
パスワード変換部６１４は、ハッシュ値生成部６０６により生成されたパスワード変換用乱数を用いて、変換前パスワード文字列の変換を行う。
応答値計算部６１３は、実施の形態２と同様に、パスワード変換用乱数を用いて、サーバ装置６０７への応答値を計算する。【０１３３】
サーバ装置６０７の管理部６１０は、本実施の形態では、例えばハードディスク装置からなり、１つ以上のユーザのパスワードをユーザＩＤと関連付けて記憶する。また、パスワード配列と色変換テーブルを格納する。
認証乱数生成部６０８は、１０桁の乱数を生成する。
認証乱数生成部４０９及び認証判断部４１０は、本実施の形態では具体的にはプログラムで実現されるものであり、このプログラムは、ハードディスク装置や不揮発性メモリやフレキシブルディスクなどに格納され、これらからサーバ装置（認証装置）４０８上にロードされＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）上で実行される。
サーバ装置６０７の各要素は、実施の形態２に示したものと同様である。【０１３４】
本実施の形態では、管理部６１０に新規ユーザの登録後の状態として、ユーザのＩＤと関連付けて仮パスワードが登録されており、端末装置４０１は、要素が０に値が初期化された長さ６４の２つの乱数配列、水平乱数配列ＲＨ［６４］と垂直乱数配列ＲＶ［６４］を記憶している。【０１３５】
実施の形態３では、サーバ装置６０７との認証を開始する際に、端末装置６０１の表示部６０２にユーザＩＤ入力画面を表示する前に、図２０に示す起動パスワード入力画面７０１が表示される。
ユーザは、起動パスワード入力画面７０１上で、自身の記憶する起動パスワード文字列の最初の文字から順にパスワード配列７０２の中の文字を見つけ出し、各登録パスワード文字列についてカーソルがパスワード文字の背景になるように移動キーで操作して選択キーを押下する操作を繰り返すことで、起動パスワード文字列の入力操作を行う。
選択キーを押下すると、入力表示フィールド７０３に‘＊’が１つ追加表示される。全ての起動パスワード文字列についての入力操作を実行した後に、ユーザは確定ボタン７０４を押下することで、起動パスワード文字列から乱数配列を生成する処理が開始される。
また、ユーザは確定ボタン７０４を押下する前であれば、入力操作の誤りを、クリアボタン７０５を１回押下することで１文字分だけクリアすることができ、この際に入力表示フィールド７０３に表示されている‘＊’は１つ削除される。【０１３６】
次に、図２１に確定ボタン７０４が押下された際に開始される乱数配列生成処理を示す。
まず、ハッシュ値生成部６０６が、２つの乱数配列ＲＨ［６４］とＲＶ［６４］を割り当て、要素を０に初期化する（Ｓ９０１）。
次に、ハッシュ値生成部６０６は、起動パスワード入力画面でユーザより入力された起動パスワード文字列をＳＨＡ−２５６ハッシュ関数Ｈ（）でハッシュした値を、変数ｖａｌ１に記憶し、この同じ値を変数ｖａｌ２にも記憶する（Ｓ９０２）。
次に、ハッシュ値生成部６０６は、内部カウンタｉを０に初期化する（Ｓ９０３）。
次に、ハッシュ値生成部６０６は、ｖａｌ１を１０で割った余りを乱数配列ＲＨ［ｉ］に、変数ｖａｌ２を７で割った余りを乱数配列ＲＶ［ｉ］にそれぞれ記憶し、さらに、変数ｖａｌ１を１０で割った商でｖａｌ１を、変数ｖａｌ２を７で割った商でｖａｌ２をそれぞれ更新する（Ｓ９０４）。
次に、ハッシュ値生成部６０６は、カウンタｉの値が６３以上かをチェックし（Ｓ９０５）、６３以上の場合には、処理を終了する。
一方、ステップＳ９０５で、カウンタｉの値が６３より小さい場合にはｉを１加算し（Ｓ９０６）、ステップＳ９０４からの処理を繰り返す。【０１３７】
このようにして、ハッシュ値生成部６０６は、ユーザから入力された起動パスワード文字列（乱数生成用パスワード文字列）に対してハッシュ演算を含む所定の演算を行ってパスワード変換用乱数を生成する。
その後の動作は、実施の形態２と同様であり、端末装置６０１では、パスワード変換部６１４がパスワード変換用乱数を用いてユーザのパスワード文字列（変換前パスワード文字列）を変換し、変換後のパスワード文字列をサーバ装置６０７に送信し、サーバ装置６０７では変換後のパスワード文字列を登録する。
また、端末装置６０１では、ユーザ認証の際には、上記の手順にてハッシュ値生成部６０６が起動パスワード文字列（乱数生成用パスワード文字列）を用いてパスワード変換用乱数を生成し、ハッシュ値生成部６０６が生成したパスワード変換用乱数を用いて応答値計算部６１３が実施の形態２と同様の応答値の計算を行って、応答値をサーバ装置６０７に送信する。【０１３８】
このように、本実施の形態では、端末装置６０１からパスワードの登録更新を行う際に、起動パスワード文字列を基に端末装置６０１のハッシュ値生成部６０６で生成したハッシュ値に基づいてユーザのパスワードを変換し、変換後のパスワード文字列をサーバ装置６０７に登録し、認証の際には起動パスワード文字列を基に端末装置６０１のハッシュ値生成部６０６で生成したハッシュ値に基づいて変換後のパスワードに対する応答値に変換するため、例え、サーバ装置６０７において、変換後のパスワード文字列が管理部６１０から漏れたとしても、ユーザが実際にどんなパスワードを使用しているかを推測することはできないため、これによって認証システムのセキュリティを強固にすることが可能である。
また、ハッシュ値は起動パスワード文字列から動的に生成されるため、ユーザが端末装置６０１を紛失したりなくしたりしても別の端末装置を使って認証を行うことができる。【０１３９】
なお、本実施の形態では、起動パスワード文字列を起動パスワード入力画面上でカーソルを移動キーで移動させて入力する方法を示したが、ユーザＩＤの入力と同様に起動パスワード文字列を直接キーから入力するようにすることも可能である。【０１４０】
以上、本実施の形態では、ユーザのパスワードの変更登録とユーザに対する認証を行う認証装置と通信を行ってユーザが利用する端末装置について説明した。
より具体的には、前記認証装置より認証用乱数を受信し、認証用乱数に対応する応答値を前記認証装置に送信し、認証が成功した後に更新用パスワードを前記認証装置に送信する端末通信部と、キーから入力値を受け付ける入力部と、ハッシュ値を生成するハッシュ値生成部と、パスワード候補の外観を変更する規則を示す外観変化パターンとパスワード変換用乱数を記憶する端末記憶部と、前記端末通信部により受信された認証用乱数と前記入力部より入力された入力値と入力値をハッシュ値生成部でハッシュしたハッシュ値と前記端末記憶部により記憶されている外観パターンとを基にパスワード候補文字の外観を設定する外観設定部と、前記外観設定部により設定された外観のパスワード候補文字を表示する表示部とを有するとともに、前記入力部が受け付けた入力値と入力値をハッシュ値生成部でハッシュしたハッシュ値とに基づいて前記応答値を計算し、認証が成功した後に入力部から入力されたパスワードを前記ハッシュ値に基づいて前記更新用パスワードに変換する端末装置について説明した。【０１４１】
実施の形態４．
本実施の形態では、ユーザが方向キーを操作して１つ以上のパスワード文字列の各文字の背景色を特定の色に合わせることで認証を行うようにした認証方式を用い、端末装置が単体でユーザ認証を行う実施の形態を示す。
なお、本実施の形態では、パスワード文字列には数字とアルファベットおよびと特殊文字を含む記号列のパスワードを用い、パスワード文字列の合計の長さを最大６４として説明するが、長さはこれに限定するものではない。また、パスワード候補文字としては、７行１０列のパスワード配列を用いるが、同様に配列の大きさはこれに限定するものではない。【０１４２】
図２２は、本発明の実施の形態４に係る認証システムの構成を示すブロック図である。
記憶部８０５と乱数生成部８０６と認証判断部８０７は、本実施の形態ではＩＣ（集積回路）カード８０８内に実装されており、具体的にプログラムで実現されるものであり、
このプログラムはＩＣカード８０８内のフラッシュメモリ内に格納され、ＩＣカード８０８内のＣＰＵで実行される。なお、ＩＣカード８０８は端末装置８０１から着脱することができる。
表示部８０２、入力部８０３及び外観設定部８０４は、実施の形態１で説明した表示部１０２、入力部１０３及び外観設定部１０４と同様である。【０１４３】
記憶部８０５は、本実施の形態では不揮発性のメモリからなり、端末装置８０１により認証を行うユーザの１つ以上のパスワード文字列とパスワード色とユーザの公開鍵と対をなすユーザの秘密鍵と、パスワードの候補からなるパスワード候補文字から構成されるパスワード配列と色変換テーブルをあらかじめ格納する。【０１４４】
パスワード配列Ｐは、パスワードに使用できる文字を端末装置８０１の表示部８０２に表示する際の文字の並びを示しており、以下に示すようにｉ行ｊ列に表示する文字のＡＳＣＩＩコードを格納したものである。【０１４５】
【数５】
2009028060.tif 000007
【０１４６】
色変換テーブルＣは、パスワード配列Ｐを端末装置８０１の表示部８０２に表示する際の背景色を示しており、以下に示すように、０から９までの数値に対応する背景色の色指定コードを６桁の１６進数（各２桁がＲＧＢの各数値に対応する）で格納するものである。【０１４７】
【数６】
2009028060.tif 000008
【０１４８】
なお、本実施の形態では、パスワードの合計の長さを最大６４として説明するが、長さはこれに限定するものではない。
また、パスワードの候補文字としては、７行１０列のパスワード配列を用いるが、同様に配列の大きさはこれに限定するものではない。【０１４９】
次に動作について説明する。
図２３及び図２４は、端末装置８０１においてユーザ認証処理を行う際に実行される処理を示すフローチャートである。まず、ユーザが端末装置８０１を使って認証を行う場合に、入力部８０３より認証要求を受け付ける（Ｓ１００１）。
このとき、外観設定部８０４は、応答値を格納する認証データ配列ｈ［６４］とｖ［６４］の要素を０に初期化し、水平移動量ｍと垂直移動量ｎと入力カウンタｋをそれぞれ０に初期化する（Ｓ１００２）。
次に、ＩＣカード８０８の乱数生成部８０６においてユーザの認証に必要な数の乱数のセットを生成する（Ｓ１００３）。本実施の形態では、７行１０列のパスワード配列を端末装置の画面上に表示するため、７個の１０桁からなる乱数のセットを生成する。
次に、外観設定部８０４は、パスワード配列の各行各列について、生成した乱数のセットの値と２つの移動量ｍとｎの値と色変換テーブルＣから所定の演算により色指定コードを求める。
表示部８０２は、求められた色指定コードにより指定される背景色の上にパスワード文字を描画したユーザ認証画面を表示する（Ｓ１００４）。ステップＳ１００４で背景色の色コードを求める演算は、実施の形態１で示した式（１）の処理と同一である。【０１５０】
表示部８０２に文字として表示した背景色付のパスワード配列に対して、ユーザの入力キー値（入力値）を入力部８０３より受け付ける（Ｓ１００５）。入力キーを受け付けると、認証判断部８０７が、入力されたキーの種別を判定する（Ｓ１００６）。【０１５１】
入力されたキーの種別が選択キーの場合には、認証判断部８０７は、入力カウンタｋの値が６４より小さいかをチェックする（Ｓ１００７）。ｋの値が６４より小さい場合には、移動量ｍとｎの値を、それぞれ認証データ配列ｈ［ｋ］とｖ［ｋ］の値として記憶した後、入力カウンタｋの値に１を加算し（Ｓ１００８）、ステップＳ１００４からの処理を繰り返す。
一方、ステップＳ１００７において、入力カウンタｋの値が６４以上の場合には、既に確定数がパスワードの最大長に達したことを示す警告を表示し（ステップＳ１００９）、ステップＳ１００４からの処理を繰り返す。【０１５２】
入力されたキーの種別が左への移動キーであった場合には、認証判断部８０７は、水平移動量ｍから１を減算する（Ｓ１０１０）。次に、水平移動量ｍの値が０より小さくないかをチェックし（Ｓ１０１１）、０より小さな値の場合にはｍに１０を加算し（Ｓ１０１２）、ステップＳ１００４からの処理を繰り返す。【０１５３】
入力されたキーの種別が右への移動キーであった場合には、認証判断部８０７は、水平移動量ｍに１を加算する（Ｓ１０１３）。次に、水平移動量ｍの値が９より大きくないかをチェックし（Ｓ１０１４）、９より大きな値の場合にはｍから１０を減算し（Ｓ１０１５）、ステップＳ１００４からの処理を繰り返す。【０１５４】
入力されたキーの種別が上への移動キーであった場合には、認証判断部８０７は、垂直移動量ｎから１を減算する（Ｓ１０１６）。次に、垂直移動量ｎの値が０より小さくないかをチェックし（Ｓ１０１７）、０より小さな値の場合にはｎに７を加算し（Ｓ１０１８）、ステップＳ１００４からの処理を繰り返す。【０１５５】
入力されたキーの種別が下への移動キーであった場合には、認証判断部８０７は、垂直移動量ｎに１を加算する（Ｓ１０１９）。次に、垂直移動量ｎの値が６より大きくないかをチェックし（Ｓ１０２０）、６より大きな値の場合にはｎから７を減算し（Ｓ１０２１）、ステップＳ１００４からの処理を繰り返す。【０１５６】
入力されたキーの種別がクリアキーであった場合には、認証判断部８０７は、認証データ配列ｈ［ｋ］とｖ［ｋ］の値に０を記憶し（Ｓ１０２２）、入力カウンタｋの値が０より大きいかをチェックし（Ｓ１０２３）、０より大きな値の場合にはｋから１を減算し（Ｓ１０２４）、ステップＳ１００４からの処理を繰り返す。【０１５７】
入力されたキーの種別が認証キーであった場合には、認証判断部８０７は、乱数のセットと認証データ配列ｈ［ｋ］とｖ［ｋ］と記憶部８０５に記憶されている１つ以上のパスワード文字列とパスワード色から認証の成否を判定し（Ｓ１０２５）、認証データが正しい場合には、端末装置８０１及びＩＣカード８０８へのユーザのアクセスを許可し（Ｓ１０２６）、表示部８０２に認証の成功を表示する（Ｓ１０２６）。
一方、ステップＳ１０２５で認証データが正しくない場合には、表示部８０２に認証の失敗を表示する（Ｓ１０２７）。
ステップＳ１０２５で認証判断を行う演算は、実施の形態１で示した式（２）の処理と同一である。【０１５８】
端末装置８０１でステップＳ１００５においてユーザからの応答を受け付ける際には、表示部８０２に実施の形態１と同じく図９に示すユーザ認証画面が表示される。
ユーザ認証画面の操作方法は実施の形態１と同様である。
全ての登録パスワード文字列についての認証操作を実行した後に、ユーザは認証ボタン３０４を押下することで、ステップＳ１０２５において認証データが正しいかがチェックされる。【０１５９】
このように、実施の形態４では、登録済みの各パスワード文字列の背景色を合わせるだけでパスワード文字列そのものを入力せずに認証を行うので、たとえ第三者が認証操作を盗み見ることができても、利用者がどの文字のどの背景色を合わせているかが分らないため、端末装置やＩＣカードを利用する際に本人になりすまして認証されることを防ぐことができる。
また、ユーザは認証の都度、パスワード文字列毎に各文字共通に合わせる背景色を自由に変えることができる。また、認証時には、一以上のパスワード文字列を連続させて認証を行っている。
このため、第三者にとっては、認証に一体いくつのパスワードが使われているのか、さらに、個々のパスワードの長さも分らないため、高いセキュリティを保持したユーザ認証が行える。
また、ユーザが記憶する認証のためのデータとしては広く普及している従来の文字と数字からなるパスワードを用いることができる。ユーザにとっては、本認証方式に合わせて新たに特殊な形式のデータを憶える負担がなく、セキュリティを維持するためのパスワードの更新時の負荷も小さい。パスワードには、既に記憶しているものをそのまま使うこともできるし、記憶しているパスワードを途中で２つに分けて登録することもできる。【０１６０】
本実施の形態では、パスワードの外観として背景色を使用したが、図柄を含むファイル名を要素とする図柄変換テーブルを色変換テーブルに代えて使用することで、図１０に示すようにユーザ認証画面にパスワード候補文字を異なる図柄と一緒に表示するようにすることも可能である。【０１６１】
以上、本実施の形態では、ユーザに対する認証を行う端末装置に挿入して使用され、前記端末装置とのデータの授受を行う集積回路（ＩＣ）カードについて説明した。
より具体的には、ユーザの１つ以上のパスワード文字列とパスワード文字列の外観を記憶する記憶部と、乱数を生成し、当該乱数を前記端末装置に提供する乱数生成部と、前記記憶部に記憶された各パスワード文字列とパスワード文字の外観と前記乱数部により生成された乱数と前記端末装置から取得した前記端末装置がキーからの入力値を受け付けて当該入力値に基づいて計算した前記乱数に対する応答値とを用いて所定の演算を行い、ユーザ認証の成否判断を行う認証判断部とを有するＩＣカードについて説明した。【０１６２】
最後に、実施の形態１−４に示した端末装置１０１、４０１、６０１、８０１及びサーバ装置１０６、４０８、６０７のハードウェア構成例について説明する。
図２６は、実施の形態１−４に示す端末装置１０１、４０１、６０１、８０１及びサーバ装置１０６、４０８、６０７のハードウェア資源の一例を示す図である。
なお、図２６の構成は、あくまでも端末装置１０１、４０１、６０１、８０１及びサーバ装置１０６、４０８、６０７のハードウェア構成の一例を示すものであり、端末装置１０１、４０１、６０１、８０１及びサーバ装置１０６、４０８、６０７のハードウェア構成は図２６に記載の構成に限らず、他の構成であってもよい。【０１６３】
図２６において、端末装置１０１、４０１、６０１、８０１及びサーバ装置１０６、４０８、６０７は、プログラムを実行するＣＰＵ９１１（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう）を備えている。ＣＰＵ９１１は、バス９１２を介して、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）９１３、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）９１４、通信ボード９１５、表示装置９０１、キーボード９０２、マウス９０３、磁気ディスク装置９２０と接続され、これらのハードウェアデバイスを制御する。更に、ＣＰＵ９１１は、ＦＤＤ９０４（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ  Ｄｒｉｖｅ）、コンパクトディスク装置９０５（ＣＤＤ）、プリンタ装置９０６、スキャナ装置９０７と接続していてもよい。また、磁気ディスク装置９２０の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。
ＲＡＭ９１４は、揮発性メモリの一例である。ＲＯＭ９１３、ＦＤＤ９０４、ＣＤＤ９０５、磁気ディスク装置９２０の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置の一例である。
通信ボード９１５、キーボード９０２、マウス９０３、スキャナ装置９０７、ＦＤＤ９０４などは、入力装置の一例である。
また、通信ボード９１５、表示装置９０１、プリンタ装置９０６などは、出力装置の一例である。【０１６４】
通信ボード９１５は、図１に示すように、ネットワークに接続されている。例えば、通信ボード９１５は、ＬＡＮ（ローカルエリアネットワーク）、インターネット、ＷＡＮ（ワイドエリアネットワーク）などに接続されていても構わない。
磁気ディスク装置９２０には、オペレーティングシステム９２１（ＯＳ）、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。プログラム群９２３のプログラムは、ＣＰＵ９１１、オペレーティングシステム９２１、ウィンドウシステム９２２により実行される。【０１６５】
上記プログラム群９２３には、実施の形態１−４の説明において「・・・部」として説明している機能を実行するプログラムが記憶されている。プログラムは、ＣＰＵ９１１により読み出され実行される。【０１６６】
ファイル群９２４には、実施の形態１−４の説明において、「・・・の判断」、「・・・の計算」、「・・・の比較」、「・・・の生成」、「・・・の更新」、「・・・の設定」、「・・・の登録」等として説明している処理の結果を示す情報やデータや信号値や変数値やパラメータが、「・・・ファイル」や「・・・データベース」の各項目として記憶されている。
「・・・ファイル」や「・・・データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ９１１によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示などのＣＰＵの動作に用いられる。
抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示のＣＰＵの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、実施の形態１−４で説明しているフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、ＲＡＭ９１４のメモリ、ＦＤＤ９０４のフレキシブルディスク、ＣＤＤ９０５のコンパクトディスク、磁気ディスク装置９２０の磁気ディスク、その他光ディスク、ミニディスク、ＤＶＤ等の記録媒体に記録される。また、データや信号は、バス９１２や信号線やケーブルその他の伝送媒体によりオンライン伝送される。【０１６７】
また、実施の形態１−４の説明において「・・・部」として説明しているものは、「・・・回路」、「・・・装置」、「・・・機器」であってもよく、また、「・・・ステップ」、「・・・手順」、「・・・処理」であってもよい。すなわち、「・・・部」として説明しているものは、ＲＯＭ９１３に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ等の記録媒体に記憶される。プログラムはＣＰＵ９１１により読み出され、ＣＰＵ９１１により実行される。すなわち、プログラムは、実施の形態１−４の「・・・部」としてコンピュータを機能させるものである。あるいは、実施の形態１−４の「・・・部」の手順や方法をコンピュータに実行させるものである。【０１６８】
このように、実施の形態１−４に示す端末装置１０１、４０１、６０１、８０１及びサーバ装置１０６、４０８、６０７は、処理装置たるＣＰＵ、記憶装置たるメモリ、磁気ディスク等、入力装置たるキーボード、マウス、通信ボード等、出力装置たる表示装置、通信ボード等を備えるコンピュータであり、上記したように「・・・部」として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。
【図面の簡単な説明】
【０１６９】
【図１】実施の形態１に係る認証システムの構成例を示す図。
【図２】実施の形態１に係る端末装置における動作例を示すフローチャート図。
【図３】実施の形態１に係る端末装置における動作例を示すフローチャート図。
【図４】実施の形態１に係る端末装置のパスワード配列の外観設定動作の例を示すフローチャート図。
【図５】実施の形態１に係るサーバ装置における動作例を示すフローチャート図。
【図６】実施の形態１に係るサーバ装置の認証判定動作の例を示す図。
【図７】実施の形態１に係るパスワード配列の変換テーブルの例を示す図。
【図８】実施の形態１に係るユーザＩＤ入力画面の例を示す図。
【図９】実施の形態１に係るユーザ認証画面の例を示す図。
【図１０】実施の形態１に係るユーザ認証画面の例を示す図。
【図１１】実施の形態２に係る認証システムの構成例を示す図。
【図１２】実施の形態２に係る端末装置における動作例を示すフローチャート図。
【図１３】実施の形態２に係る端末装置における動作例を示すフローチャート図。
【図１４】実施の形態２に係るパスワードの変更登録画面の例を示す図。
【図１５】実施の形態２に係る端末装置における動作例を示すフローチャート図。
【図１６】実施の形態２に係る端末装置における動作例を示すフローチャート図。
【図１７】実施の形態２に係る端末装置における動作例を示すフローチャート図。
【図１８】実施の形態２に係るサーバ装置における動作例を示すフローチャート図。
【図１９】実施の形態３に係る認証システムの構成例を示す図。
【図２０】実施の形態３に係る起動パスワード入力画面の例を示す図。
【図２１】実施の形態３に係る端末装置における動作例を示すフローチャート図。
【図２２】実施の形態４に係る認証システムの構成例を示す図。
【図２３】実施の形態４に係る端末装置における動作例を示すフローチャート図。
【図２４】実施の形態４に係る端末装置における動作例を示すフローチャート図。
【図２５】従来技術を説明する図。
【図２６】実施の形態１−４に係る端末装置及びサーバ装置のハードウェア構成例を示す図。
【符号の説明】
【０１７０】
１０１  端末装置、１０２  表示部、１０３  入力部、１０４  外観設定部、１０５  端末通信部、１０６  サーバ装置、１０７  認証乱数生成部、１０８  認証判断部、１０９  管理部、１１０  認証通信部、１１１  応答値計算部、４０１  端末装置、４０２  表示部、４０３  入力部、４０４  外観設定部、４０５  端末通信部、４０６  端末乱数生成部、４０７  端末記憶部、４０８  サーバ装置、４０９  認証乱数生成部、４１０  認証判断部、４１１  管理部、４１２  認証通信部、４１３  応答値計算部、４１４  パスワード変換部、６０１  端末装置、６０２  表示部、６０３  入力部、６０４  外観設定部、６０５  端末通信部、６０６  ハッシュ値生成部、６０７  サーバ装置、６０８  認証乱数生成部、６０９  認証判断部、６１０  管理部、６１１  認証通信部、６１３  応答値計算部、６１４  パスワード変換部、８０１  端末装置、８０２  表示部、８０３  入力部、８０４  外観設定部、８０５  記憶部、８０６  乱数生成部、８０７  認証判断部、８０８  ＩＣカード。
【図１】
2009028060.tif 000009
【図２】
2009028060.tif 000010
【図３】
2009028060.tif 000011
【図４】
2009028060.tif 000012
【図５】
2009028060.tif 000013
【図６】
2009028060.tif 000014
【図７】
2009028060.tif 000015
【図８】
2009028060.tif 000016
【図９】
2009028060.tif 000017
【図１０】
2009028060.tif 000018
【図１１】
2009028060.tif 000019
【図１２】
2009028060.tif 000020
【図１３】
2009028060.tif 000021
【図１４】
2009028060.tif 000022
【図１５】
2009028060.tif 000023
【図１６】
2009028060.tif 000024
【図１７】
2009028060.tif 000025
【図１８】
2009028060.tif 000026
【図１９】
2009028060.tif 000027
【図２０】
2009028060.tif 000028
【図２１】
2009028060.tif 000029
【図２２】
2009028060.tif 000030
【図２３】
2009028060.tif 000031
【図２４】
2009028060.tif 000032
【図２５】
2009028060.tif 000033
【図２６】
2009028060.tif 000034
【国際調査報告】
2009028060.tif 000035
2009028060.tif 000036
2009028060.tif 000037
2009028060.tif 000038
2009028060.tif 000039
2009028060.tif 000040