(57)【要約】【課題】従来、被認証装置での一方向性変換関数の適用回数が３回、認証装置での一方向性変換関数の適用回数が１回である、従来最高速と言われてきたＳＡＳ−２認証方式が存在するが、かかる認証方式では、ワンタイムパスワード認証処理が十分に高速ではなく、処理負荷も十分に小さいとは言えず、ＩｏＴ等の一層幅広い技術領域へのセキュリティ機能の付加を実現することが困難であった。【解決手段】認証される装置である被認証装置と被認証装置を認証する装置である認証装置とを具備する認証システムであって、一方向性変換関数の実行回数を減らすアルゴリズムにより、処理速度を高速化する安全なワンタイムパスワード認証方式を実現することによって、センサやＩＣタグ等、ＩｏＴの一層幅広い技術領域へのセキュリティ機能の付加を実現することができる。【選択図】図５
2019188251.tif 000002
【特許請求の範囲】
【請求項１】
認証される装置である被認証装置と当該被認証装置を認証する装置である認証装置とを具備する認証システムであって、
前記認証装置は、
第ｎの認証情報（Ａｎ）と第ｎ＋１の認証情報（Ａｎ＋１）との排他的論理和の演算（Ａｎ  ＸＯＲ  Ａｎ＋１）を用いて取得された第一データ（α）が格納される第一データ格納部と、
前記第一データ（α）を前記被認証装置に送信する第一送信部と、
前記第一送信部が送信した第一データ（α）と前記第ｎの認証情報（Ａｎ）との排他的論理和の演算（α  ＸＯＲ  Ａｎ）を用いて取得された第ｎ＋１の認証情報（Ａｎ＋１）と、前記第ｎの認証情報（Ａｎ）とを用いて第一演算が行われ、取得された、第二データ（β）を前記被認証装置から受信する第一受信部と、
前記第一送信部が送信した第一データ（α）が取得される元になった、第ｎの認証情報（Ａｎ）と第ｎ＋１の認証情報（Ａｎ＋１）とを用いた第一演算の結果と、前記第一受信部が受信した第二データ（β）とが予め決められた関係を有するか否かを判断する第一認証部と、
前記第一認証部の判断結果を用いた処理を行う第一認証結果処理部とを具備し、
前記被認証装置は、
第ｎの認証情報（Ａｎ）が格納される第二認証情報格納部と、
前記第一データ（α）を前記認証装置から受信する第二受信部と、
前記第一データ（α）と前記第ｎの認証情報（Ａｎ）との排他的論理和の演算（α  ＸＯＲ  Ａｎ）を行い、第ｎ＋１の認証情報（Ａｎ＋１）を取得する第二排他的論理和部と、
前記第二排他的論理和部が取得した前記第ｎ＋１の認証情報（Ａｎ＋１）と、前記第ｎの認証情報（Ａｎ）とを用いて、前記第一演算を行い、第二データ（β）を取得する第二演算部と、
前記第二データ（β）を前記認証装置に送信する第二送信部とを具備する認証システム。
【請求項２】
前記認証装置において、
記号ｎが格納される第一記号格納部をさらに具備し、
前記第一送信部は、
前記ｎと前記第一データ（α）とを前記被認証装置に送信し、
前記第二受信部は、
前記ｎと前記第一データ（α）とを前記認証装置から受信し、
前記第二排他的論理和部は、
前記第一データ（α）と、前記第二受信部が受信したｎに対応する第ｎの認証情報（Ａｎ）との排他的論理和の演算（α  ＸＯＲ  Ａｎ）を行い、第ｎ＋１の認証情報（Ａｎ＋１）を取得する請求項１記載の認証システム。
【請求項３】
前記認証装置は、
パスワード（Ｓ）が格納される第一パスワード格納部と、
第ｎ＋１の乱数（Ｎｎ＋１）を生成する第一乱数生成部と、
前記パスワード（Ｓ）と前記第ｎ＋１の乱数（Ｎｎ＋１）との排他的論理和の演算（Ｓ  ＸＯＲ  Ｎｎ＋１）を行い、演算結果を取得する第一排他的論理和部と、
前記第一排他的論理和部が取得した演算結果に対して一方向性変換関数Ｈを施し、第ｎ＋１の認証情報（Ａｎ＋１）を取得する第一変換部とをさらに具備し、
前記第一排他的論理和部は、
前記第ｎの認証情報（Ａｎ）と、前記第一変換部が取得した第ｎ＋１の認証情報（Ａｎ＋１）との排他的論理和の演算（Ａｎ  ＸＯＲ  Ａｎ＋１）を行い、第一データ（α）を取得し、
前記第一送信部が送信する前記第一データ（α）は、前記第一排他的論理和部が取得した第一データ（α）であり、
前記第ｎの認証情報（Ａｎ）と前記第ｎ＋１の認証情報（Ａｎ＋１）とを用いて、前記第一演算を行い、第一演算結果を取得する第一演算部をさらに具備し、
前記第一認証部は、
前記第一演算部が取得した第一演算結果と、前記第一受信部が受信した第二データ（β）とが予め決められた関係を有するか否かを判断する請求項１または請求項２記載の認証装置。
【請求項４】
前記第一乱数生成部は、
第一の乱数（Ｎ１）を生成し、
前記第一排他的論理和部は、
前記パスワード（Ｓ）と前記第一の乱数（Ｎ１）との排他的論理和の演算（Ｓ  ＸＯＲ  Ｎ１）を行い、第一演算結果を取得し、
前記第一変換部は、
前記第一排他的論理和部が取得した第一演算結果に対して一方向性変換関数Ｈを施し、第一の認証情報（Ａ１）を取得し、
前記第一送信部は、
前記第一の認証情報（Ａ１）を前記被認証装置に送信し、
前記第二受信部は、
前記第一の認証情報（Ａ１）を受信する、認証システムを構成する請求項３記載の認証装置。
【請求項５】
前記認証装置において、
前記第一データ格納部に格納されている第一データ（α）は、前記第ｎ＋１の認証情報（Ａｎ＋１）と前記第ｎの認証情報（Ａｎ）と第ｎの秘匿情報（Ｍｎ）とを用いて、排他的論理和の演算（Ａｎ＋１  ＸＯＲ  Ａｎ  ＸＯＲ  Ｍｎ）を行い、取得されたデータであり、
前記第二排他的論理和部は、
前記第一データ（α）と前記第ｎの認証情報（Ａｎ）と前記第ｎの秘匿情報（Ｍｎ）とを用いて、排他的論理和の演算（α  ＸＯＲ  Ａｎ  ＸＯＲ  Ｍｎ）を行い、第ｎ＋１の認証情報（Ａｎ＋１）を取得し、
前記第二演算部は、
前記第ｎ＋１の認証情報（Ａｎ＋１）と前記第ｎの秘匿情報（Ｍｎ）とを用いて、第二演算を行い、第ｎ＋１の秘匿情報（Ｍｎ＋１）を取得する請求項１から請求項４いずれか一項に記載の認証システム。
【請求項６】
前記第一演算部は、
前記第ｎの認証情報（Ａｎ）と、前記第ｎ＋１の認証情報（Ａｎ＋１）と、前記第ｎの秘匿情報（Ｍｎ）とを用いて、前記第一演算を行い、第一演算結果を取得し、
前記第二演算部は、
前記第二排他的論理和部が取得した前記第ｎ＋１の認証情報（Ａｎ＋１）と、前記第ｎの認証情報（Ａｎ）と、前記第ｎの秘匿情報（Ｍｎ）とを用いて、前記第一演算を行い、第二データ（β）を取得する請求項１から請求項５いずれか一項に記載の認証システム。
【請求項７】
前記認証装置において、
認証に使用する秘密の情報である第一の秘匿情報（Ｍ１）を生成する第一秘匿情報生成部をさらに具備し、
前記第一送信部は、
第一の認証情報（Ａ１）と前記第一の秘匿情報（Ｍ１）とを前記被認証装置に送信し、
前記第二受信部は、
前記第一の認証情報（Ａ１）と前記第一の秘匿情報（Ｍ１）とを受信する請求項５または請求項６記載の認証システム。
【請求項８】
前記認証装置において、
前記第ｎ＋１の認証情報（Ａｎ＋１）と前記第ｎの認証情報（Ａｎ）と前記第ｎの秘匿情報（Ｍｎ）との排他的論理和の演算（Ａｎ＋１  ＸＯＲ  Ａｎ  ＸＯＲ  Ｍｎ）を行い、第一データ（α）を取得する第一排他的論理和部をさらに具備し、
前記第一送信部は、
前記第一排他的論理和部が取得した第一データ（α）を前記被認証装置に送信し、
前記第ｎの認証情報（Ａｎ）と前記第ｎの秘匿情報（Ｍｎ）とを用いて、第二演算を行い、第ｎ＋１の秘匿情報（Ｍｎ＋１）を取得する第一演算部をさらに具備する請求項５から請求項７いずれか一項に記載の認証システム。
【請求項９】
第ｎの認証情報（Ａｎ）と第ｎ＋１の認証情報（Ａｎ＋１）との排他的論理和の演算（Ａｎ  ＸＯＲ  Ａｎ＋１）を用いて取得された第一データ（α）が格納される第一データ格納部と、
前記第一データ（α）を被認証装置に送信する第一送信部と、
前記第一送信部が送信した第一データ（α）と前記第ｎの認証情報（Ａｎ）との排他的論理和の演算（α  ＸＯＲ  Ａｎ）を用いて取得された第ｎ＋１の認証情報（Ａｎ＋１）と、前記第ｎの認証情報（Ａｎ）とを用いて第一演算が行われ、取得された、第二データ（β）を前記被認証装置から受信する第一受信部と、
前記第一送信部が送信した第一データ（α）が取得される元になった、第ｎの認証情報（Ａｎ）と第ｎ＋１の認証情報（Ａｎ＋１）とを用いた第一演算の結果と、前記第一受信部が受信した第二データ（β）とが予め決められた関係を有するか否かを判断する第一認証部と、
前記第一認証部の判断結果を用いた処理を行う第一認証結果処理部とを具備する認証装置。
【請求項１０】
第ｎの認証情報（Ａｎ）が格納される第二認証情報格納部と、
第一データ（α）を認証装置から受信する第二受信部と、
前記第一データ（α）と前記第ｎの認証情報（Ａｎ）との排他的論理和の演算（α  ＸＯＲ  Ａｎ）を行い、第ｎ＋１の認証情報（Ａｎ＋１）を取得する第二排他的論理和部と、
前記第二排他的論理和部が取得した前記第ｎ＋１の認証情報（Ａｎ＋１）と、前記第ｎの認証情報（Ａｎ）とを用いて、第一演算を行い、第二データ（β）を取得する第二演算部と、
前記第二データ（β）を前記認証装置に送信する第二送信部とを具備する被認証装置。
【請求項１１】
被認証装置を認証する認証装置における、第ｎの認証情報（Ａｎ）と第ｎ＋１の認証情報（Ａｎ＋１）との排他的論理和の演算（Ａｎ  ＸＯＲ  Ａｎ＋１）を用いて取得された第一データ（α）が格納される第一データ格納部と、第一送信部と、第一受信部と、第一認証部と、第一認証結果処理部と、および前記被認証装置における、第ｎの認証情報（Ａｎ）が格納される第二認証情報格納部と、第二受信部と、第二排他的論理和部と、第二演算部と、第二送信部とにより実現される認証方法であって、
前記第一送信部が、前記第一データ（α）を前記被認証装置に送信する第一送信ステップと、
前記第二受信部が、第一データ（α）を前記認証装置から受信する第二受信ステップと、
前記第二排他的論理和部が、前記第一データ（α）と前記第ｎの認証情報（Ａｎ）との排他的論理和の演算（α  ＸＯＲ  Ａｎ）を行い、第ｎ＋１の認証情報（Ａｎ＋１）を取得する第二排他的論理和ステップと、
前記第二演算部が、前記第二排他的論理和ステップで取得された前記第ｎ＋１の認証情報（Ａｎ＋１）と、前記第ｎの認証情報（Ａｎ）とを用いて、第一演算を行い、第二データ（β）を取得する第二演算ステップと、
前記第二送信部が、前記第二データ（β）を前記認証装置に送信する第二送信ステップと、
前記第一受信部が、前記第一送信ステップで送信された第一データ（α）と前記第ｎの認証情報（Ａｎ）との排他的論理和の演算（α  ＸＯＲ  Ａｎ）を用いて取得された第ｎ＋１の認証情報（Ａｎ＋１）と、前記第ｎの認証情報（Ａｎ）とを用いて第一演算が行われ、取得された、第二データ（β）を前記被認証装置から受信する第一受信ステップと、
前記第一認証部が、前記第一送信ステップで送信された第一データ（α）が取得される元になった、第ｎの認証情報（Ａｎ）と第ｎ＋１の認証情報（Ａｎ＋１）とを用いた第一演算の結果と、前記第一受信部が受信した第二データ（β）とが予め決められた関係を有するか否かを判断する第一認証ステップと、
前記第一認証結果処理部が、前記第一認証ステップにおける判断結果を用いた処理を行う第一認証結果処理ステップとを具備する認証方法。
【請求項１２】
第ｎの認証情報（Ａｎ）と第ｎ＋１の認証情報（Ａｎ＋１）との排他的論理和の演算（Ａｎ  ＸＯＲ  Ａｎ＋１）を用いて取得された第一データ（α）が格納される第一データ格納部と、第一送信部と、第一受信部と、第一認証部と、第一認証結果処理部とにより実現される認証方法であって、
前記第一送信部が、前記第一データ（α）を被認証装置に送信する第一送信ステップと、
前記第一受信部が、前記第一送信ステップで送信された第一データ（α）と前記第ｎの認証情報（Ａｎ）との排他的論理和の演算（α  ＸＯＲ  Ａｎ）を用いて取得された第ｎ＋１の認証情報（Ａｎ＋１）と、前記第ｎの認証情報（Ａｎ）とを用いて第一演算が行われ、取得された、第二データ（β）を前記被認証装置から受信する第一受信ステップと、
前記第一認証部が、前記第一送信ステップで送信された第一データ（α）が取得される元になった、第ｎの認証情報（Ａｎ）と第ｎ＋１の認証情報（Ａｎ＋１）との第一演算の結果と、前記第一受信部が受信した第二データ（β）とが予め決められた関係を有するか否かを判断する第一認証ステップと、
前記第一認証結果処理部が、前記第一認証ステップにおける判断結果を用いた処理を行う第一認証結果処理ステップとを具備する認証方法。
【請求項１３】
第ｎの認証情報（Ａｎ）が格納される第二認証情報格納部と、第二受信部と、第二排他的論理和部と、第二演算部と、第二送信部とにより実現される被認証方法であって、
前記第二受信部が、第一データ（α）を認証装置から受信する第二受信ステップと、
前記第二排他的論理和部が、前記第一データ（α）と前記第ｎの認証情報（Ａｎ）との排他的論理和の演算（α  ＸＯＲ  Ａｎ）を行い、第ｎ＋１の認証情報（Ａｎ＋１）を取得する第二排他的論理和ステップと、
前記第二演算部が、前記第二排他的論理和ステップで取得された前記第ｎ＋１の認証情報（Ａｎ＋１）と、前記第ｎの認証情報（Ａｎ）とを用いて、第一演算を行い、第二データ（β）を取得する第二演算ステップと、
前記第二送信部が、前記第二データ（β）を前記認証装置に送信する第二送信ステップとを具備する被認証方法。
【請求項１４】
第ｎの認証情報（Ａｎ）と第ｎ＋１の認証情報（Ａｎ＋１）との排他的論理和の演算（Ａｎ  ＸＯＲ  Ａｎ＋１）を用いて取得された第一データ（α）が格納される第一データ格納部にアクセス可能なコンピュータを、
前記第一データ（α）を被認証装置に送信する第一送信部と、
前記第一送信部が送信した第一データ（α）と前記第ｎの認証情報（Ａｎ）との排他的論理和の演算（α  ＸＯＲ  Ａｎ）を用いて取得された第ｎ＋１の認証情報（Ａｎ＋１）と、前記第ｎの認証情報（Ａｎ）とを用いて第一演算が行われ、取得された、第二データ（β）を前記被認証装置から受信する第一受信部と、
前記第一送信部が送信した第一データ（α）が取得される元になった、第ｎの認証情報（Ａｎ）と第ｎ＋１の認証情報（Ａｎ＋１）とを用いた第一演算の結果と、前記第一受信部が受信した第二データ（β）とが予め決められた関係を有するか否かを判断する第一認証部と、
前記第一認証部の判断結果を用いた処理を行う第一認証結果処理部として機能させるためのプログラム。
【請求項１５】
第ｎの認証情報（Ａｎ）が格納される第二認証情報格納部にアクセス可能なコンピュータを、
第一データ（α）を認証装置から受信する第二受信部と、
前記第一データ（α）と前記第ｎの認証情報（Ａｎ）との排他的論理和の演算（α  ＸＯＲ  Ａｎ）を行い、第ｎ＋１の認証情報（Ａｎ＋１）を取得する第二排他的論理和部と、
前記第二排他的論理和部が取得した前記第ｎ＋１の認証情報（Ａｎ＋１）と、前記第ｎの認証情報（Ａｎ）とを用いて、第一演算を行い、第二データ（β）を取得する第二演算部と、
前記第二データ（β）を前記認証装置に送信する第二送信部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、被認証装置を認証する認証装置等に関するものである。
【背景技術】
【０００２】
従来、認証装置が、被認証装置またはユーザを認証する際に、ユーザにパスワードの入力を要求し、入力されたパスワードの正当性をもってユーザを認証するパスワード認証方式が広く用いられている。【０００３】
また、パスワード認証方式において、パスワードによる認証の安全性を担保するため、認証ごとに使い捨てのパスワードを用いるワンタイムパスワード方式や、パスワードそのものではなくパスワードから生成した認証情報を用いて認証を行う方式が知られている。【０００４】
例えば、ＳＡＳ−２（Simple And Secure password authentication protocol ver.2）という認証方式は、ワンタイムパスワード認証方式の一例であり、認証装置は以下のような手順によって被認証装置を認証する（例えば、非特許文献１参照）。以下において、ＳＡＳ−２の本質を理解しやすくするため、非特許文献１に記載のアルゴリズムからユーザ識別子を省略し、一方向性変換関数も一種類に簡略化して説明する。【０００５】
図１４および図１５は、ＳＡＳ−２認証方式におけるユーザ認証の処理工程を示すフローチャートである。【０００６】
なお、以下の説明において用いる記号「←」は右辺の左辺への代入、記号「Ｓ」はユーザが秘密に保持しているパスワード、記号「ＸＯＲ」は排他的論理和演算、記号「ｎ」は認証回数、記号「Ｎｎ」は乱数（ｎは１以上の自然数で、乱数を識別するために用いる）、をそれぞれ示している。また、記号「Ｈ」は一方向性変換関数を示す。一方向性変換関数とは、一方向性関数と言っても良い。一方向性変換関数は、簡単に計算できるが逆関数の計算は非常に困難である関数である。一方向性変換関数は、例えば、暗号学的ハッシュ関数であるが、その種類は問わない。【０００７】
まず、ユーザは、認証を受けたい認証装置にあらかじめ登録を行っておく（以下、この登録作業を「初期登録」という。）。以下、ユーザの被認証装置における初期登録処理の手順を、図１４を参照して説明する。図１４は、従来技術による被認証装置の初期登録処理の手順を示すフローチャートである。なお、被認証装置は、あらかじめ秘密のパスワードＳを保持している、とする。【０００８】
まず、被認証装置は、乱数Ｎ１を生成し、記録媒体に蓄積する（ステップＳ１１０１）。そして，被認証装置は、乱数Ｎ１と秘密に保持しているパスワードＳを用いて，下記の数式１に示す初回認証情報Ａ１を算出して保存し（ステップＳ１１０２）。【０００９】
【数１】
2019188251.tif 000003
【００１０】
次に、被認証装置は、Ａ１を被認証装置に送付する（ステップＳ１１０３）。なお、被認証装置は、できれば、安全な手段で、Ａ１を被認証装置に送付する。安全な手段とは、例えば、専用線による当該情報の送信、または当該情報を記憶した記憶媒体の郵送による送付、または工場出荷時等にあらかじめ認証者となる装置等に当該情報を書き込んでおく等である。初回認証情報Ａ１は，初回（認証回数ｎ＝１）の認証に用いる認証情報である。【００１１】
そして、認証装置は、ステップＳ１１０３で被認証装置から送付された初回認証情報Ａ１を記録媒体に保存しておく（ステップＳ１１０４）。以上が被認証装置の初期登録作業の手順である。【００１２】
次に、初回（ｎ＝１）以降、ｎ回目の認証時の認証処理について、図１５を参照して説明する。図１５は、初回（ｎ＝１）以降、ｎ回目の認証時の認証処理の手順を示すフローチャートである。この時、被認証装置は、パスワードＳ、乱数Ｎｎを記録媒体に保存している。また、認証装置はＡｎ（初回認証時はｎ＝１）を記録媒体に保存している。まず、被認証装置は保存している乱数Ｎｎから，下記の数式２に示すＡｎを算出する（ステップＳ１２０１）。【００１３】
【数２】
2019188251.tif 000004
【００１４】
次に、被認証装置は、新しい乱数Ｎｎ＋１を生成し、保存する（ステップＳ１２０２）。そして、被認証装置は、当該Ｎｎ＋１を用いて、下記の数式３によりＡｎ＋１を生成する。次に、被認証装置は、当該Ａｎ＋１とＡｎとを用いて、下記の数式４によってデータαを算出する。また、被認証装置は、当該Ａｎ＋１とＡｎとを用いて、下記の数式５によってデータβを算出する（ステップＳ１２０３）。【００１５】
【数３】
2019188251.tif 000005
【００１６】
【数４】
2019188251.tif 000006
【００１７】
【数５】
2019188251.tif 000007
【００１８】
次に、被認証装置は、算出したαとβとを認証装置に送付する（ステップＳ１２０４）。このとき、Ａｎは今回の認証処理に用いる今回認証情報、Ａｎ＋１は次回の認証処理に用いる次回認証情報である。【００１９】
認証装置は、被認証装置からαおよびβを受信する。そして、認証装置は、受信したαとβとを用いて、演算「Ｈ（β  ＸＯＲ  Ａｎ）  ＸＯＲ  α」を実行し、当該演算結果が今回認証情報Ａｎと一致するかどうかを検証する（ステップＳ１２０５）。【００２０】
そして、認証装置は、両者が一致する場合、被認証装置またはユーザの資格の認証が成立したと判断し、次回（ｎ＋１回目）の認証に用いる認証情報としてＡｎ＋１を記録媒体に保存する（ステップＳ１２０６）。一方、認証装置は、両者が一致しない場合、認証は不成立であると判断し、エラーメッセージを送付する等の処理を行う（ステップＳ１２０７）。そして、本フローチャートによる処理が終了する。以上のような処理によって、認証装置は，認証を求めてきた被認証装置またはユーザに対して認証を行う。
【先行技術文献】
【非特許文献】
【００２１】
【非特許文献１】辻貴介（Takasuke Tsuji），他2名，「シンプル アンド セキュア パスワード オーセンティケイション プロトコル バージョン2（Simple And Secure password authentication protocol, ver. 2 (ＳＡＳ−２)）」，電子情報通信学会技術研究報告書，2002年，OIS2002-30, Vol. 102, No. 314, p7-11
【発明の概要】
【発明が解決しようとする課題】
【００２２】
ワンタイムパスワード認証方式が上位レイヤで用いられる場合、認証はプロセスの最初に一回だけ行えば良いため、それほど速度性能を必要としない。なお、ワンタイムパスワード認証方式が上位レイヤで用いられる場合は、例えば、クラウドサービスシステムやアプリケーション提供サービスシステムへのログイン時の認証に、ワンタイムパスワード認証方式が用いられる場合である。【００２３】
また、下位レイヤにおいて、暗号通信のため、認証情報をシーズに暗号鍵を生成するといった鍵配送の手段に用いる場合、設定した鍵を使って比較的大量の暗号文を生成するのであれば鍵配送に用いられる認証方式にはそれほどの速度性能が求められない。なお、認証方式における「速度性能が高い」ことは、「処理負荷が小さい」ことと概ね等価の特徴である。【００２４】
しかしながら、ＩｏＴ技術の発展等に伴い、低いレイアにおいて、処理性能がそれほど高くない機器とのセキュアな通信の実現においては、認証あるいは鍵配送に用いるワンタイムパスワード認証方式の速度性能は高いほど、すなわち処理負荷が小さいほど、その応用範囲が広がる。【００２５】
なお、上記の背景技術で示したＳＡＳ−２認証方式は、ワンタイムパスワード認証方式において、現在の公知技術における最高速の速度性能を有する方式である。【００２６】
ワンタイムパスワード認証方式の速度性能は、使用されている演算によって決まるが、通常、一方向性変換関数は、排他的論理和や加算等の演算を数多く組み合わせて実現されることから、一方向性変換関数の処理の負荷は大きい。そのため、排他的論理和および加算の各演算の負荷は、一方向性変換関数による演算の負荷に比較してほとんど無視できる。したがって、ワンタイムパスワード認証方式の速度性能は、一方向性変換関数の適用回数によって評価することができる。【００２７】
従来、極めて高速と言われるＳＡＳ−２認証方式は、被認証装置における一方向性変換関数「Ｈ」の適用回数は３回である（ステップＳ１２０１、Ｓ１２０３参照）。ステップＳ１２０１で生成されるＡｎを記憶しておいて再利用すれば、被認証装置は、一方向性変換関数の適用回数を２回にすることができる。認証装置における一方向性変換関数の適用回数は１回である（ステップＳ１２０５参照）。すなわち、ＳＡＳ−２認証方式の一方向性変換関数の適用回数は、被認証装置で３回、認証装置で１回である。なお、前回計算済の今回認証情報を記憶しておけば、この一方向性変換関数の適用回数は、被認証装置で２回、認証装置で１回となる。【００２８】
つまり、従来技術においては、認証装置と被認証装置の双方において、最低でも一方向性変換関数１回の適用が必要であり、ＩｏＴ技術等の進展に対応して、処理能力の低い端末を用いる場合等においては、ワンタイムパスワードの認証処理の速度が十分でなく、わ処理負荷が大きすぎる場合がある。【００２９】
かかることに鑑み、本発明は、極めて高速と言われてきた従来のＳＡＳ−２認証方式と比較して、処理速度を高速化でき、処理負荷を小さくできる安全なワンタイムパスワード認証方式を実現することによって、ＩｏＴ等の一層幅広い技術領域へのセキュリティ機能の付加を実現することを目的とする。
【課題を解決するための手段】
【００３０】
本第一の発明の認証システムは、認証される装置である被認証装置と当該被認証装置を認証する装置である認証装置とを具備する認証システムであって、前記認証装置は、第ｎの認証情報（Ａｎ）と第ｎ＋１の認証情報（Ａｎ＋１）との排他的論理和の演算（Ａｎ  ＸＯＲ  Ａｎ＋１）を用いて取得された第一データ（α）が格納される第一データ格納部と、前記第一データ（α）を前記被認証装置に送信する第一送信部と、前記第一送信部が送信した第一データ（α）と前記第ｎの認証情報（Ａｎ）との排他的論理和の演算（α  ＸＯＲ  Ａｎ）を用いて取得された第ｎ＋１の認証情報（Ａｎ＋１）と、前記第ｎの認証情報（Ａｎ）とを用いて第一演算が行われ、取得された、第二データ（β）を前記被認証装置から受信する第一受信部と、前記第一送信部が送信した第一データ（α）が取得される元になった、第ｎの認証情報（Ａｎ）と第ｎ＋１の認証情報（Ａｎ＋１）とを用いた第一演算の結果と、前記第一受信部が受信した第二データ（β）とが予め決められた関係を有するか否かを判断する第一認証部と、前記第一認証部の判断結果を用いた処理を行う第一認証結果処理部とを具備し、前記被認証装置は、第ｎの認証情報（Ａｎ）が格納される第二認証情報格納部と、前記第一データ（α）を前記認証装置から受信する第二受信部と、前記第一データ（α）と前記第ｎの認証情報（Ａｎ）との排他的論理和の演算（α  ＸＯＲ  Ａｎ）を行い、第ｎ＋１の認証情報（Ａｎ＋１）を取得する第二排他的論理和部と、前記第二排他的論理和部が取得した前記第ｎ＋１の認証情報（Ａｎ＋１）と、前記第ｎの認証情報（Ａｎ）とを用いて、前記第一演算を行い、第二データ（β）を取得する第二演算部と、前記第二データ（β）を前記認証装置に送信する第二送信部とを具備する認証システムである。【００３１】
かかる構成により、ワンタイムパスワードの認証処理が高速にできる。【００３２】
また、本第二の発明の認証システムは、第一の発明に対して、前記認証装置において、記号ｎが格納される第一記号格納部をさらに具備し、前記第一送信部は、前記ｎと前記第一データ（α）とを前記被認証装置に送信し、前記第二受信部は、前記ｎと前記第一データ（α）とを前記認証装置から受信し、前記第二排他的論理和部は、前記第一データ（α）と、前記第二受信部が受信したｎに対応する第ｎの認証情報（Ａｎ）との排他的論理和の演算（α  ＸＯＲ  Ａｎ）を行い、第ｎ＋１の認証情報（Ａｎ＋１）を取得する認証システムである。【００３３】
かかる構成により、ワンタイムパスワードの認証処理が高速にできる。【００３４】
また、本第三の発明の認証システムは、第一または第二の発明に対して、前記認証装置は、パスワード（Ｓ）が格納される第一パスワード格納部と、第ｎ＋１の乱数（Ｎｎ＋１）を生成する第一乱数生成部と、前記パスワード（Ｓ）と前記第ｎ＋１の乱数（Ｎｎ＋１）との排他的論理和の演算（Ｓ  ＸＯＲ  Ｎｎ＋１）を行い、演算結果を取得する第一排他的論理和部と、前記第一排他的論理和部が取得した演算結果に対して一方向性変換関数Ｈを施し、第ｎ＋１の認証情報（Ａｎ＋１）を取得する第一変換部とをさらに具備し、前記第一排他的論理和部は、前記第ｎの認証情報（Ａｎ）と、前記第一変換部が取得した第ｎ＋１の認証情報（Ａｎ＋１）との排他的論理和の演算（Ａｎ  ＸＯＲ  Ａｎ＋１）を行い、第一データ（α）を取得し、前記第一送信部が送信する前記第一データ（α）は、前記第一排他的論理和部が取得した第一データ（α）であり、前記第ｎの認証情報（Ａｎ）と前記第ｎ＋１の認証情報（Ａｎ＋１）とを用いて、前記第一演算を行い、第一演算結果を取得する第一演算部をさらに具備し、前記第一認証部は、前記第一演算部が取得した第一演算結果と、前記第一受信部が受信した第二データ（β）とが予め決められた関係を有するか否かを判断する認証システムである。【００３５】
かかる構成により、ワンタイムパスワードの認証処理が高速にできる。【００３６】
また、本第四の発明の認証装置は、第三の発明に対して、前記第一乱数生成部は、第一の乱数（Ｎ１）を生成し、前記第一排他的論理和部は、前記パスワード（Ｓ）と前記第一の乱数（Ｎ１）との排他的論理和の演算（Ｓ  ＸＯＲ  Ｎ１）を行い、第一演算結果を取得し、前記第一変換部は、前記第一排他的論理和部が取得した第一演算結果に対して一方向性変換関数Ｈを施し、第一の認証情報（Ａ１）を取得し、前記第一送信部は、前記第一の認証情報（Ａ１）を前記被認証装置に送信し、前記第二受信部は、前記第一の認証情報（Ａ１）を受信する、認証システムを構成する認証システムである。【００３７】
かかる構成により、ワンタイムパスワードの認証処理が高速にできる。【００３８】
また、本第五の発明の認証システムは、第一から第四いずれか１つの発明に対して、前記認証装置において、前記第一データ格納部に格納されている第一データ（α）は、前記第ｎ＋１の認証情報（Ａｎ＋１）と前記第ｎの認証情報（Ａｎ）と第ｎの秘匿情報（Ｍｎ）とを用いて、排他的論理和の演算（Ａｎ＋１  ＸＯＲ  Ａｎ  ＸＯＲ  Ｍｎ）を行い、取得されたデータであり、前記第二排他的論理和部は、前記第一データ（α）と前記第ｎの認証情報（Ａｎ）と前記第ｎの秘匿情報（Ｍｎ）とを用いて、排他的論理和の演算（α  ＸＯＲ  Ａｎ  ＸＯＲ  Ｍｎ）を行い、第ｎ＋１の認証情報（Ａｎ＋１）を取得し、前記第二演算部は、前記第ｎ＋１の認証情報（Ａｎ＋１）と前記第ｎの秘匿情報（Ｍｎ）とを用いて、第二演算を行い、第ｎ＋１の秘匿情報（Ｍｎ＋１）を取得する認証システムである。【００３９】
かかる構成により、ワンタイムパスワードの認証処理が高速かつ頑強にできる。【００４０】
また、本第六の発明の認証システムは、第一から第五のいずれかの発明に対して、第一演算部は、第ｎの認証情報（Ａｎ）と、第ｎ＋１の認証情報（Ａｎ＋１）と、第ｎの秘匿情報（Ｍｎ）とを用いて、第一演算を行い、第一演算結果を取得し、第二演算部は、第二排他的論理和部が取得した第ｎ＋１の認証情報（Ａｎ＋１）と、第ｎの認証情報（Ａｎ）と、第ｎの秘匿情報（Ｍｎ）とを用いて、第一演算を行い、第二データ（β）を取得する【００４１】
また、本第七の発明の認証システムは、第五または第六の発明に対して、前記認証装置において、認証に使用する秘密の情報である第一の秘匿情報（Ｍ１）を生成する第一秘匿情報生成部をさらに具備し、前記第一送信部は、第一の認証情報（Ａ１）と前記第一の秘匿情報（Ｍ１）とを前記被認証装置に送信し、前記第二受信部は、前記第一の認証情報（Ａ１）と前記第一の秘匿情報（Ｍ１）とを受信する認証システムである。【００４２】
かかる構成により、ワンタイムパスワードの認証処理が高速かつ頑強にできる。【００４３】
また、本第八の発明の認証システムは、第五から第七いずれかの発明に対して、前記認証装置において、前記第ｎ＋１の認証情報（Ａｎ＋１）と前記第ｎの認証情報（Ａｎ）と前記第ｎの秘匿情報（Ｍｎ）との排他的論理和の演算（Ａｎ＋１  ＸＯＲ  Ａｎ  ＸＯＲ  Ｍｎ）を行い、第一データ（α）を取得する第一排他的論理和部をさらに具備し、前記第一送信部は、前記第一排他的論理和部が取得した第一データ（α）を前記被認証装置に送信し、前記第ｎの認証情報（Ａｎ）と前記第ｎの秘匿情報（Ｍｎ）とを用いて、第二演算を行い、第ｎ＋１の秘匿情報（Ｍｎ＋１）を取得する第一演算部をさらに具備する認証システムである。【００４４】
かかる構成により、ワンタイムパスワードの認証処理が高速にできる。
【発明の効果】
【００４５】
本発明による認証装置によれば、ワンタイムパスワードの認証処理が高速にできる。
【図面の簡単な説明】
【００４６】
【図１】実施の形態１における認証システムＡの概念図を示す図
【図２】同認証システムＡのブロック図
【図３】同認証システムＡを構成する被認証装置２のブロック図
【図４】同認証システムＡにおける初期登録処理の例を示すフローチャート
【図５】同認証システムＡにおけるｎ回目の認証時の認証処理の例を示すフローチャート
【図６】実施の形態２における認証システムＢのブロック図
【図７】同認証システムＢの初期登録処理の例を示すフローチャート
【図８】同認証システムＢにおけるｎ回目の認証時の認証処理の例を示すフローチャート
【図９】実施の形態３における認証システＣのブロック図
【図１０】同認証システムＣを構成する被認証装置６のブロック図
【図１１】同認証システムＣにおけるｎ回目の認証時の認証処理の例を示すフローチャート
【図１２】上記実施の形態におけるコンピュータシステムの概観図
【図１３】同コンピュータシステムのブロック図
【図１４】従来技術における初期登録処理の例を示すフローチャート
【図１５】従来技術におけるｎ回目の認証時の認証処理の例を示すフローチャート
【発明を実施するための形態】
【００４７】
以下、認証装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
【００４８】
（実施の形態１）
本実施の形態において、一方向性変換関数の実行回数を少なくできるために、認証処理を高速に行う認証システムについて説明する。特に、認証処理の際の被認証装置における一方向性変換関数の実行回数が０となるため、被認証装置の負荷が極めて小さくて良い認証システムについて説明する。
【００４９】
図１は、本実施の形態における認証システムＡの概念図である。認証システムＡは、認証装置１、および１または２以上の被認証装置２を備える。認証装置１と１以上の各被認証装置２とは、インターネット等のネットワークを介して、通信可能である。認証装置１は、被認証装置２を認証する装置である。認証装置１は、被認証装置２と通信可能な情報処理装置であり、例えば、いわゆるクラウドサーバ、ＡＳＰサーバ等であるが、その種類は問わない。被認証装置２は、認証される装置である。被認証装置２は、例えば、いわゆるパーソナルコンピュータ、タブレット端末、スマートフォン、携帯電話、テレビ、自動車等のあらゆる機器が考えられ、その種類は問わない。また、認証装置１と１以上の各被認証装置２との通信手段やネットワークの種類は問わないことは言うまでもない。
【００５０】
図２は、本実施の形態における認証システムＡのブロック図である。図３は、本実施の形態における認証システムＡを構成する被認証装置２のブロック図である。
【００５１】
認証システムＡは、認証装置１、１または２以上の被認証装置２を備える。なお、認証システムＡは、２以上の認証装置１を備えても良い。
【００５２】
認証装置１は、第一格納部１１、第一処理部１２、第一送信部１３、および第一受信部１４を備える。第一格納部１１は、第一パスワード格納部１１１、第一乱数格納部１１２、第一認証情報格納部１１３、第一秘匿情報納部１１４、第一記号格納部１１５、および第一データ格納部１１６を備える。第一処理部１２は、第一乱数生成部１２１、第一排他的論理和部１２２、第一変換部１２３、第一秘匿情報生成部１２４、第一演算部１２５、第一認証部１２６、および第一認証結果処理部１２７を備える。
【００５３】
被認証装置２は、第二格納部２１、第二受信部２２、第二処理部２３、および第二送信部２４を備える。第二格納部２１は、第二認証情報格納部２１１、および第二秘匿情報納部２１２を備える。第二処理部２３は、第二排他的論理和部２３１、および第二演算部２３２を備える。
【００５４】
認証装置１を構成する第一格納部１１には、各種の情報が格納される。各種の情報とは、例えば、後述するパスワード、後述する乱数、後述する認証情報、後述する秘匿情報、後述する記号、後述する第一データ等である。
【００５５】
第一パスワード格納部１１１には、パスワード（Ｓ）が格納される。なお、パスワード（Ｓ）は、任意の情報であり、何でも良い。Ｓは、例えば、「ＡＢＣ」「１２５ＸＹＺ」「あいうえおＱ！」等である。なお、パスワード（Ｓ）は、例えば、被認証装置２の識別子として利用されても良い。
【００５６】
第一乱数格納部１１２には、第ｎの乱数（Ｎｎ）が格納される。なお、ｎは１以上の自然数である。第一乱数格納部１１２には、第１の乱数（Ｎ１）、第２の乱数（Ｎ２）、・・・第ｎの乱数（Ｎｎ）等の多数の乱数が格納されても良いし、最新の乱数である第ｎの乱数（Ｎｎ）のみ格納されても良い。第一乱数格納部１１２の第ｎの乱数（Ｎｎ）は、通常、認証装置１が生成するが、予め１または２以上の乱数が第一乱数格納部１１２に格納されていても良い。
【００５７】
第一認証情報格納部１１３には、第ｎの認証情報（Ａｎ）が格納される。認証情報とは、認証に利用される情報であり、後述する一方向性変換関数が適用された結果の情報である。第一認証情報格納部１１３には、第１の認証情報（Ａ１）、第２の認証情報（Ａ２）、・・・第ｎの認証情報（Ａｎ）等の多数の認証情報が格納されても良いし、第ｎ回目の認証で使用する第ｎの認証情報（Ａｎ）と第ｎ＋１の認証情報（Ａｎ＋１）の認証情報のみが格納されても良い。第一認証情報格納部１１３の第ｎの認証情報（Ａｎ）は、通常、認証装置１が生成するが、第一認証情報格納部１１３に１または２以上の認証情報（Ａ１，Ａ２，・・・，Ａｎ）が予め格納されていても良い。
【００５８】
第一秘匿情報納部１１４には、第ｎの秘匿情報（Ｍｎ）が格納される。秘匿情報は、認証に使用する秘密の情報である。秘匿情報の内容や種類等は問わない。第一秘匿情報納部１１４には、第１の秘匿情報（Ｍ１）、第２の秘匿情報（Ｍ２）、・・・第ｎの秘匿情報（Ｍｎ）等の多数の秘匿情報が格納されても良いし、第ｎ回目の認証で使用する第ｎの秘匿情報（Ｍｎ）と第ｎ＋１の秘匿情報（Ｍｎ＋１）の秘匿情報のみが格納されても良い。第一秘匿情報納部１１４の第ｎの秘匿情報（Ｍｎ）は、通常、認証装置１が生成するが、第一秘匿情報納部１１４に１または２以上の秘匿情報（Ｍ１，Ｍ２，・・・，Ｍｎ）が予め格納されていても良い。
【００５９】
第一記号格納部１１５には、第ｎの記号が格納される。一の記号は、他の記号と識別可能であれば良い。記号は、順序性を有する情報であることは好適である。記号は、例えば、１以上の自然数（１，２，・・・，ｎ）である。記号は、例えば、１以上のアルファベットから構成する文字列である。第ｎの乱数（Ｎｎ）、第ｎの認証情報（Ａｎ）、第ｎの秘匿情報（Ｍｎ）のｎは、記号である。第一記号格納部１１５の第ｎの記号は、通常、認証装置１が生成するが、第一記号格納部１１５に１または２以上の記号が予め格納されていても良い。なお、認証装置１における記号の生成とは、例えば、数値のインクリメントである。
【００６０】
第一データ格納部１１６には、第一データ（α）が格納される。第一データ（α）は、第ｎの認証情報（Ａｎ）と第ｎ＋１の認証情報（Ａｎ＋１）との排他的論理和の演算（Ａｎ  ＸＯＲ  Ａｎ＋１）を行い、取得されたデータである。また、第一データ（α）は、第ｎの認証情報（Ａｎ）と第ｎ＋１の認証情報（Ａｎ＋１）と第ｎの秘匿情報（Ｍｎ）との排他的論理和の演算（Ａｎ  ＸＯＲ  Ａｎ＋１  ＸＯＲ  Ｍｎ）を行い、取得されたデータであることは好適である。ＡｎとＡｎ＋１とＭｎとの排他的論理和の演算は、ＡｎとＡｎ＋１とを用いた排他的論理和の演算である。なお、かかる演算は、通常、認証装置１が行うが、他の装置で行われても良い。第一データ格納部１１６の第一データ（α）は、通常、認証装置１が生成するが、予め格納されていても良い。第一データ格納部１１６には、１または２以上の第一データ（α）が、予め格納されていても良い。２以上の各第一データ（α）は、排他的論理和の演算「（Ａｎ  ＸＯＲ  Ａｎ＋１）または（Ａｎ  ＸＯＲ  Ａｎ＋１  ＸＯＲ  Ｍｎ）」のｎが異なるデータである。また、ｎ個の第一データ（α）は、例えば、添字のｎを、１からｎまで１ずつずらしながら排他的論理和の演算を行った結果のデータである。
【００６１】
第一処理部１２は、各種の処理を行う。各種の処理とは、例えば、第一乱数生成部１２１、第一排他的論理和部１２２、第一変換部１２３、第一秘匿情報生成部１２４、第一演算部１２５、第一認証部１２６、第一認証結果処理部１２７が行う処理である。
【００６２】
第一乱数生成部１２１は、第ｎ＋１の乱数（Ｎｎ＋１）を生成し、第一乱数格納部１１２に、少なくとも一時蓄積する。
【００６３】
第一乱数生成部１２１は、第一の乱数（Ｎ１）を生成し、第一乱数格納部１１２に、少なくとも一時蓄積する。また、第一乱数生成部１２１は、第ｎ＋１の乱数（Ｎｎ＋１）を生成し、第一乱数格納部１１２に、少なくとも一時蓄積する。
【００６４】
なお、乱数を発生するアルゴリズムは問わない。また、乱数を発生する処理は公知技術であるので、詳細な説明は省略する。
【００６５】
また、第一乱数生成部１２１が乱数を生成するタイミングは問わない。例えば、第一乱数生成部１２１は、ユーザからの指示に応じて、乱数を生成する。例えば、第一乱数生成部１２１は、外部の装置から命令が受信されたことにより、乱数を生成する。例えば、第一乱数生成部１２１は、予め決められた時刻になった場合に、乱数を生成する。
【００６６】
第一排他的論理和部１２２は、２以上の情報に対して排他的論理和の演算を行い、演算結果を取得する。
【００６７】
第一排他的論理和部１２２は、例えば、パスワード（Ｓ）と第一の乱数（Ｎ１）との排他的論理和の演算（Ｓ  ＸＯＲ  Ｎ１）を行い、演算結果を取得する。また、第一排他的論理和部１２２は、例えば、パスワード（Ｓ）と第ｎ＋１の乱数（Ｎｎ＋１）との排他的論理和の演算（Ｓ  ＸＯＲ  Ｎｎ＋１）を行い、演算結果を取得する。
【００６８】
また、第一排他的論理和部１２２は、例えば、第ｎ＋１の認証情報（Ａｎ＋１）と第ｎの認証情報（Ａｎ）とを用いて、排他的論理和の演算（Ａｎ＋１  ＸＯＲ  Ａｎ）を行い、第一データ（α）を取得する。
【００６９】
また、第一排他的論理和部１２２は、例えば、第ｎ＋１の認証情報（Ａｎ＋１）と第ｎの認証情報（Ａｎ）と第ｎの秘匿情報（Ｍｎ）とを用いて、排他的論理和の演算（Ａｎ＋１  ＸＯＲ  Ａｎ  ＸＯＲ  Ｍｎ）を行い、第一データ（α）を取得する。
【００７０】
また、第一排他的論理和部１２２は、例えば、第ｎ＋１の認証情報（Ａｎ＋１）と第ｎの認証情報（Ａｎ）と第ｎの秘匿情報（Ｍｎ）とを用いて、演算（（Ａｎ＋１  ＸＯＲ  Ａｎ）  ＋  Ｍｎ））を行い、第一データ（α）を取得する。なお、ここでの「＋」は他の演算（例えば、「−」「×」等）でも良い。つまり、第一排他的論理和部１２２は、排他的論理和以外の演算を含めて、演算を実行しても良い。
【００７１】
第一変換部１２３は、第一排他的論理和部１２２が取得した演算結果に対して一方向性変換関数Ｈを施し、第一の認証情報（Ａ１）を取得し、第一認証情報格納部１１３に蓄積する。上述したように、一方向性変換関数Ｈは、例えば、ハッシュ関数であるが、その種類は問わない。なお、ここでの演算結果は、パスワード（Ｓ）と第一の乱数（Ｎ１）との排他的論理和の演算（Ｓ  ＸＯＲ  Ｎ１）の結果である。
【００７２】
第一変換部１２３は、演算結果に対して一方向性変換関数Ｈを施し、第ｎ＋１の認証情報（Ａｎ＋１）を取得し、当該第ｎ＋１の認証情報（Ａｎ＋１）を第一認証情報格納部１１３に蓄積する。なお、一方向性変換関数Ｈを施すことは、一方向性変換関数を実行することと言っても良い。ここで、蓄積とは、第ｎ＋１の認証情報（Ａｎ＋１）を第ｎの認証情報（Ａｎ）に上書きすることでも良いし、追記することでも良い。
【００７３】
なお、第一変換部１２３が使用する演算結果は、例えば、第一排他的論理和部１２２が取得した情報である。
【００７４】
第一秘匿情報生成部１２４は、認証に使用する秘密の情報である第一の秘匿情報（Ｍ１）を生成し、当該第一の秘匿情報（Ｍ１）を第一秘匿情報納部１１４に、少なくとも一時蓄積する。ここで、第一の秘匿情報（Ｍ１）は、任意の情報であり、何でも良い。なお、パスワード（Ｓ）、乱数（Ｎ）、認証情報（Ａ）のビット数と、秘匿情報（Ｍ）のビット数とは同じであることは好適である。
【００７５】
また、第一秘匿情報生成部１２４が第一の秘匿情報（Ｍ１）を生成する方法は問わない。第一秘匿情報生成部１２４は、第一の秘匿情報（Ｍ１）が取得できれば良い。第一秘匿情報生成部１２４は、例えば、第一格納部１１に格納されている秘匿情報の候補の中から情報を選択する。第一秘匿情報生成部１２４は、例えば、予め格納されている元情報（秘匿情報を生成するための元になる情報）に対して予め決められた処理を行い、新しい秘匿情報を取得する。なお、予め決められた処理とは、例えば、予め格納されている関数に元情報をパラメータとして与えて、当該関数の実行することである。
【００７６】
第一演算部１２５は、第ｎの認証情報（Ａｎ）と第ｎ＋１の認証情報（Ａｎ＋１）とを用いて、第一演算を行い、第一演算結果を取得する。ここで、第一演算は、例えば、和、差、乗算、除算、平均値算出等であり、演算の種類は問わない。第一演算部１２５は、例えば、和演算「β＝Ａｎ＋Ａｎ＋１」により、βを取得する。
【００７７】
第一演算部１２５は、例えば、第ｎの認証情報（Ａｎ）と第ｎ＋１の認証情報（Ａｎ＋１）と第ｎの秘匿情報（Ｍｎ）とを用いて、第一演算を行い、第一演算結果を取得する。第一演算部１２５は、例えば、「β＝Ａｎ＋Ａｎ＋１＋Ｍｎ」、「β＝Ａｎ＋Ａｎ＋１−Ｍｎ」、「β＝（Ａｎ−Ａｎ＋１）×Ｍｎ」により、第一演算結果を取得する。
【００７８】
また、第一演算部１２５は、例えば、第ｎの秘匿情報（Ｍｎ）、第ｎ＋１の認証情報（Ａｎ＋１）と、第ｎの認証情報（Ａｎ）のうちの１以上の情報を用いて演算を行い、第ｎ＋１の秘匿情報（Ｍｎ＋１）を取得し、当該第ｎ＋１の秘匿情報（Ｍｎ＋１）を第一秘匿情報納部１１４に、少なくとも一時蓄積する。なお、かかる演算の種類は問わない。また、かかる演算は、例えば、「Ｍｎ＋１＝Ｍｎ＋Ａｎ」、「Ｍｎ＋１＝Ａｎ＋１＋Ａｎ＋Ｍｎ」、「Ｍｎ＋１＝Ｍｎ＋Ａｎ＋１」、「Ｍｎ＋１＝Ｍｎ＋ｘ（ｘは定数）」である。なお、「＋」は他の演算でも良いことは言うまでもない。
【００７９】
また、第一演算部１２５は、例えば、第ｎの認証情報（Ａｎ）と第ｎの秘匿情報（Ｍｎ）とを用いて、第二演算を行い、第ｎ＋１の秘匿情報（Ｍｎ＋１）を取得し、当該第ｎ＋１の秘匿情報（Ｍｎ＋１）を第一秘匿情報納部１１４に、少なくとも一時蓄積する。
【００８０】
なお、第一排他的論理和部１２２が第一データ（α）を算出する際、または第一演算部１２５が第一演算結果を算出する際の、少なくともどちらか一方では、秘匿情報（Ｍ）が使用されることは好適である。なお、第一排他的論理和部１２２が第一データ（α）を算出する際と第一演算部１２５が第一演算結果を算出する際の両方、秘匿情報（Ｍ）が使用されても良い。
【００８１】
第一認証部１２６は、第一演算結果と第二データ（β）とが予め決められた関係を有するか否かを判断する。予め決められた関係とは、通常、一致である。ただし、予め決められた関係は、第一演算結果と、第二データ（β）から導出されるデータとが一致する関係でも良い。かかる場合、被認証装置２は、第ｎ＋１の認証情報（Ａｎ＋１）と第ｎの認証情報（Ａｎ）とを用いて第一演算が行われた結果を送信するのではなく、第ｎ＋１の認証情報（Ａｎ＋１）と第ｎの認証情報（Ａｎ）とを用いて第一演算が行われた結果から導出した第二データ（β）を認証装置１に送信する。
【００８２】
また、（Ａｎ＋１）と（Ａｎ）とを用いて第一演算が行われた演算結果から導出した第二データ（β）は、例えば、関数ｆ（演算結果）により取得されるデータである。かかる場合、予め決められた関係は、「関数ｆ（第一演算結果）＝第二データ（β）」である。
【００８３】
第一認証部１２６は、例えば、第一演算結果と第二データ（β）とが一致するか否かを判断する。
【００８４】
ここで、第一演算結果は、第ｎの認証情報（Ａｎ）と第ｎ＋１の認証情報（Ａｎ＋１）とを用いて、第一演算（例えば、和演算）を行い、取得された情報である。第ｎの認証情報（Ａｎ）と第ｎ＋１の認証情報（Ａｎ＋１）とは、第一データ（α）が取得される元になった情報である。第二データ（β）は、後述する第一受信部１４が受信した情報である。
【００８５】
第一認証部１２６は、例えば、第一演算部１２５が取得した第一演算結果と、第一受信部１４が受信した第二データ（β）とが一致するか否かを判断する。なお、第一演算結果は、第一格納部１１に予め格納されていても良い。
【００８６】
第一認証結果処理部１２７は、第一認証部１２６の判断結果を用いた処理を行う。第一認証結果処理部１２７は、例えば、第一認証部１２６の判断結果を被認証装置２に送信する。また、第一認証結果処理部１２７は、例えば、判断結果が認証許可である場合、被認証装置２またはユーザのログインを許可する。また、第一認証結果処理部１２７は、例えば、判断結果が認証許可である場合、被認証装置２を動作可能にする。また、第一認証結果処理部１２７は、例えば、判断結果が認証不許可である場合、被認証装置２にエラーメッセージを送信する。
【００８７】
第一送信部１３は、第一データ（α）を被認証装置２に送信する。第一送信部１３は、例えば、記号ｎと第一データ（α）とを被認証装置２に送信する。なお、記号ｎは、例えば、認証の毎にインクリメントされる自然数である。
【００８８】
第一送信部１３は、第一の認証情報（Ａ１）を被認証装置２に送信する。第一送信部１３は、第一の認証情報（Ａ１）と第一の秘匿情報（Ｍ１）とを被認証装置２に送信しても良い。
【００８９】
第一受信部１４は、第二データ（β）を被認証装置２から受信する。第二データ（β）は、例えば、第ｎ＋１の認証情報（Ａｎ＋１）と、第ｎの認証情報（Ａｎ）とを用いて第一演算が行われた結果である。第ｎ＋１の認証情報（Ａｎ＋１）は、例えば、第一送信部１３が送信した第一データ（α）と第ｎの認証情報（Ａｎ）との排他的論理和の演算（α  ＸＯＲ  Ａｎ）により取得された情報である。第二データ（β）は、例えば、第一データ（α）と第ｎの認証情報（Ａｎ）と第ｎの秘匿情報（Ｍｎ）とを用いて、演算が行われた結果である。第二データ（β）は、例えば、第ｎ＋１の認証情報（Ａｎ＋１）と、第ｎの認証情報（Ａｎ）とを用いて第一演算を行い、その演算結果に対して予め決められた演算を行った結果でも良い。
【００９０】
第一受信部１４は、通常、第一送信部１３における第一データ（α）の送信に応じて、第二データ（β）を被認証装置２から受信する。
【００９１】
認証装置１の認証処理の開始のトリガーは問わない。例えば、被認証装置２からの指示を受信したことにより、認証装置１は認証処理を開始する。また、例えば、図示しない受付部がユーザからの指示を受け付けたことに応じて、認証装置１は認証処理を開始する。例えば、図示しない受付部が外部の装置からの命令を受信したことにより、認証装置１は認証処理を開始する。例えば、第一処理部１２が予め決められた時刻になったことを検知した場合に、認証装置１は認証処理を開始する。
【００９２】
被認証装置２を構成する第二格納部２１には、各種の情報が格納される。各種の情報とは、例えば、認証情報、秘匿情報である。
【００９３】
第二認証情報格納部２１１には、第ｎの認証情報（Ａｎ）が格納される。なお、第１の認証情報（Ａ１）は、通常、認証装置１から受信された情報である。第二以降の認証情報（Ａ２,Ａ３，・・・，Ａｎ）は、通常、被認証装置２で生成された情報である。第二認証情報格納部２１１には、第１の認証情報（Ａ１）、第２の認証情報（Ａ２）、・・・第ｎの認証情報（Ａｎ）等の多数の認証情報が格納されても良い。
【００９４】
第二秘匿情報納部２１２には、第ｎの秘匿情報（Ｍｎ）が格納される。なお、第１の秘匿情報（Ｍ１）は、通常、認証装置１から受信された情報である。第二以降の秘匿情報（Ｍ２, Ｍ３，・・・，Ｍｎ）は、通常、被認証装置２で生成された情報である。第二秘匿情報納部２１２には、第１の秘匿情報（Ｍ１）、第２の秘匿情報（Ｍ２）、・・・第ｎの秘匿情報（Ｍｎ）等の多数の秘匿情報が格納されても良いし、第ｎ回目の認証で使用する第ｎの秘匿情報（Ｍｎ）と第ｎ＋１の秘匿情報（Ｍｎ＋１）の秘匿情報のみが格納されても良い。
【００９５】
第二受信部２２は、第一データ（α）を認証装置１から受信する。第二受信部２２は、例えば、記号ｎと第一データ（α）とを認証装置１から受信する。
【００９６】
第二受信部２２は、例えば、第一の認証情報（Ａ１）を受信し、当該第一の認証情報（Ａ１）を第二認証情報格納部２１１に、少なくとも一時蓄積する。また、第二受信部２２は、例えば、第一の秘匿情報（Ｍ１）を受信し、当該第一の秘匿情報（Ｍ１）を第二秘匿情報納部２１２に、少なくとも一時蓄積する。
【００９７】
第二処理部２３は、各種の処理を行う。各種の処理とは、例えば、第二排他的論理和部２３１、第二演算部２３２が行う処理である。
【００９８】
第二排他的論理和部２３１は、例えば、第一データ（α）と第ｎの認証情報（Ａｎ）とを用いて、排他的論理和の演算（α  ＸＯＲ  Ａｎ）を行い、第ｎ＋１の認証情報（Ａｎ＋１）を取得する。
【００９９】
第二排他的論理和部２３１は、例えば、第一データ（α）と第ｎの認証情報（Ａｎ）と第ｎの秘匿情報（Ｍｎ）とを用いて、排他的論理和の演算（α  ＸＯＲ  Ａｎ  ＸＯＲ  Ｍｎ）を行い、第ｎ＋１の認証情報（Ａｎ＋１）を取得する。
【０１００】
第二演算部２３２は、第二排他的論理和部２３１が取得した第ｎ＋１の認証情報（Ａｎ＋１）と、第ｎの認証情報（Ａｎ）とを用いて、第一演算を行い、第二データ（β）を取得する。なお、第一演算は、上述したように、例えば、「＋」であるが、「−」「＊」等、問わない。
【０１０１】
第二演算部２３２は、例えば、第ｎの秘匿情報（Ｍｎ）、第ｎ＋１の認証情報（Ａｎ＋１）、第ｎの認証情報（Ａｎ）のうちの１以上の情報を用いて演算を行い、第ｎ＋１の秘匿情報（Ｍｎ＋１）を取得し、当該第ｎ＋１の秘匿情報（Ｍｎ＋１）を第二秘匿情報納部２１２に、少なくとも一時蓄積する。なお、かかる演算の種類は問わない。また、かかる演算は、例えば、「Ｍｎ＋１＝Ｍｎ＋Ａｎ」、「Ｍｎ＋１＝Ａｎ＋１＋Ａｎ＋Ｍｎ」、「Ｍｎ＋１＝Ｍｎ＋Ａｎ＋１」、「Ｍｎ＋１＝Ｍｎ＋ｘ（ｘは定数）」である。なお、「＋」は他の演算でも良いことは言うまでもない。
【０１０２】
第二演算部２３２は、例えば、第ｎの認証情報（Ａｎ）と第ｎの秘匿情報（Ｍｎ）とを用いて、第二演算を行い、第ｎ＋１の秘匿情報（Ｍｎ＋１）を取得し、第二秘匿情報納部２１２に蓄積する。ここで、第二演算は、例えば、和、差、乗算、除算、平均値算出等である。ただし、第二演算の種類は問わない。第二演算部２３２は、例えば、和演算「Ｍｎ＋１＝Ａｎ＋Ｍｎ」により、βを取得する。また、第一演算と第二演算とは、同じ種類の演算でも（例えば、両方とも＋）良いし、異なる種類の演算（例えば、一方が＋、他方が−）でも良い。なお、第二演算部２３２は、例えば、第ｎ＋１の認証情報（Ａｎ＋１）と第ｎの秘匿情報（Ｍｎ）とを用いて、第二演算を行い、第ｎ＋１の秘匿情報（Ｍｎ＋１）を取得し、第二秘匿情報納部２１２に蓄積しても良い。かかる場合の第二演算の種類も問わない。
【０１０３】
第二送信部２４は、第二データ（β）を認証装置１に送信する。なお、第二データ（β）は、通常、第二演算部２３２が取得した情報である。
【０１０４】
第一格納部１１、第一パスワード格納部１１１、第一乱数格納部１１２、第一認証情報格納部１１３、第一秘匿情報納部１１４、第一記号格納部１１５、第一データ格納部１１６、第二格納部２１、第二認証情報格納部２１１、および第二秘匿情報納部２１２は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
【０１０５】
第一格納部１１等に情報が記憶される過程は問わない。例えば、記録媒体を介して情報が第一格納部１１等で記憶されるようになってもよく、通信回線等を介して送信された情報が第一格納部１１等で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された情報が第一格納部１１等で記憶されるようになってもよい。
【０１０６】
第一処理部１２、第一乱数生成部１２１、第一排他的論理和部１２２、第一変換部１２３、第一秘匿情報生成部１２４、第一演算部１２５、第一認証部１２６、第一認証結果処理部１２７、第二処理部２３、第二排他的論理和部２３１、および第二演算部２３２は、通常、ＭＰＵやメモリ等から実現され得る。第一処理部１２等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【０１０７】
第一送信部１３、および第二送信部２４は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。
【０１０８】
第一受信部１４、および第二受信部２２は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。
【０１０９】
次に、認証システムＡの動作について説明する。まず、認証システムＡにおける初期登録処理の例を、図４のフローチャートを用いて説明する。なお、動作開始時に、認証装置１は、第一パスワード格納部１１１にパスワード（Ｓ）を保持している、とする。
【０１１０】
（ステップＳ４０１）認証装置１の第一乱数生成部１２１は、第一の乱数（Ｎ１）を生成し、第一乱数格納部１１２に蓄積する。
【０１１１】
（ステップＳ４０２）第一排他的論理和部１２２は、格納されているパスワード（Ｓ）とステップＳ４０１で取得された第一の乱数（Ｎ１）との排他的論理和の演算（Ｓ  ＸＯＲ  Ｎ１）を行い、第一演算結果を取得する。また、第一変換部１２３は、第一排他的論理和部１２２が取得した第一演算結果に対して一方向性変換関数Ｈを施し、第一の認証情報（Ａ１）を取得する。また、第一秘匿情報生成部１２４は、認証に使用する秘密の情報である第一の秘匿情報（Ｍ１）を生成する。
【０１１２】
（ステップＳ４０３）第一変換部１２３は、取得した第一の認証情報（Ａ１）を第一認証情報格納部１１３に保存する。また、第一秘匿情報生成部１２４は、生成した第一の秘匿情報（Ｍ１）を第一秘匿情報納部１１４に保存する。
【０１１３】
（ステップＳ４０４）第一送信部１３は、取得された第一の認証情報（Ａ１）と第一の秘匿情報（Ｍ１）とを認証装置２に安全な手段で送信する。ここで、認証装置１の初期登録処理は完了する。
【０１１４】
（ステップＳ４０５）被認証装置２の第二受信部２２は、第一の認証情報（Ａ１）を受信し、当該第一の認証情報（Ａ１）を第二認証情報格納部２１１に蓄積する。また、第二受信部２２は、第一の秘匿情報（Ｍ１）を受信し、当該第一の秘匿情報（Ｍ１）を第二秘匿情報納部２１２に蓄積する。ここで、被認証装置２の初期登録処理は完了する。なお、第二受信部２２は、通常、第一の認証情報（Ａ１）と第一の秘匿情報（Ｍ１）とを一緒に受信するが、別々に受信しても良い。
【０１１５】
なお、図４のフローチャートにおいて、認証装置１は、第一の認証情報（Ａ１）と第一の秘匿情報（Ｍ１）とを予め格納しており、かかる第一の認証情報（Ａ１）と第一の秘匿情報（Ｍ１）とを被認証装置２に送信しても良い。かかる場合、ステップＳ４０１からステップＳ４０３の処理は不要である。
【０１１６】
また、認証システムＡが秘匿情報（Ｍｎ）を用いない場合、認証装置１は、第一の認証情報（Ａ１）のみを被認証装置２に送信しても良い。
【０１１７】
次に、認証システムＡにおけるｎ回目の認証時の認証処理の例を、図５のフローチャートを用いて説明する。なお、ｎ回目の認証処理の開始時に、認証装置１は、パスワード（Ｓ）を第一パスワード格納部１１１に保持しており、かつ乱数（Ｎｎ）を第一乱数格納部１１２に保持している、とする。また、ｎ回目の認証処理の開始時に、被認証装置２は、第ｎの認証情報（Ａｎ）を第二認証情報格納部２１１に保持しており、第ｎの秘匿情報（Ｍｎ）を第二秘匿情報納部２１２に保持している、とする。
【０１１８】
（ステップＳ５０１）第一排他的論理和部１２２は、格納されているパスワード（Ｓ）と格納されている第ｎの乱数（Ｎｎ）との排他的論理和の演算（Ｓ  ＸＯＲ  Ｎｎ）を行い、演算結果を取得する。次に、第一変換部１２３は、第一排他的論理和部１２２が取得した演算結果に対して一方向性変換関数Ｈを施し、第ｎの認証情報（Ａｎ）を取得する。
【０１１９】
（ステップＳ５０２）第一乱数生成部１２１は、第ｎ＋１の乱数（Ｎｎ＋１）を生成し、第一乱数格納部１１２に保存する。
【０１２０】
（ステップＳ５０３）第一排他的論理和部１２２は、パスワード（Ｓ）と第ｎ＋１の乱数（Ｎｎ＋１）との排他的論理和の演算（Ｓ  ＸＯＲ  Ｎｎ＋１）を行い、演算結果を取得する。次に、第一変換部１２３は、当該演算結果に対して一方向性変換関数Ｈを施し、第ｎ＋１の認証情報（Ａｎ＋１）を取得する。次に、第一排他的論理和部１２２は、当該第ｎ＋１の認証情報（Ａｎ＋１）と第ｎの認証情報（Ａｎ）と第ｎの秘匿情報（Ｍｎ）とを用いて、排他的論理和の演算（Ａｎ＋１  ＸＯＲ  Ａｎ  ＸＯＲ  Ｍｎ）を行い、第一データ（α）を取得する。
【０１２１】
（ステップＳ５０４）第一送信部１３は、ステップＳ５０３で取得された第一データ（α）を安全な手段で被認証装置２に送信する。なお、ここで、第一送信部１３は、ｎをも被認証装置２に送信することは好適である。第一送信部１３がｎをも被認証装置２に送信する場合、例えば、過去の処理においてエラーが発生した場合にも対応でき、好適である。
【０１２２】
（ステップＳ５０５）被認証装置２の第二受信部２２は、第一データ（α）を認証装置１から受信する。そして、第二排他的論理和部２３１は、第一データ（α）と第ｎの認証情報（Ａｎ）と第ｎの秘匿情報（Ｍｎ）とを用いて、排他的論理和の演算（α  ＸＯＲ  Ａｎ  ＸＯＲ  Ｍｎ）を行い、演算結果（通常、第ｎ＋１の認証情報（Ａｎ＋１）に相当する情報）を取得する。次に、第二演算部２３２は、第二排他的論理和部２３１が取得した演算結果と、第ｎの認証情報（Ａｎ）とを用いて、第一演算を行い、第二データ（β）を取得する。なお、ここでの第一演算は、例えば、「和」である。
【０１２３】
（ステップＳ５０６）被認証装置２の第二送信部２４は、ステップＳ５０５で取得された第二データ（β）を認証装置１に送信する。
【０１２４】
（ステップＳ５０７）被認証装置２の第二演算部２３２は、第ｎの認証情報（Ａｎ）と第ｎの秘匿情報（Ｍｎ）とを用いて、第二演算を行い、第ｎ＋１の秘匿情報（Ｍｎ＋１）を取得し、当該第ｎ＋１の秘匿情報（Ｍｎ＋１）を第二秘匿情報納部２１２に蓄積する。ここで、被認証装置２のｎ回目の認証のための処理は完了する。
【０１２５】
（ステップＳ５０８）認証装置１の第一受信部１４は、被認証装置２から第二データ（β）を受信する。そして、第一演算部１２５は、第ｎの認証情報（Ａｎ）と第ｎ＋１の認証情報（Ａｎ＋１）とを用いて、第一演算を行い、第一演算結果を取得する。次に、第一認証部１２６は、取得した第一演算結果が受信された第二データ（β）と一致するか否かを判断する。第一認証部１２６が一致すると判断した場合はステップＳ５０９に行き、一致しないと判断した場合はステップＳ５１０に行く。なお、第一演算は、ここでは、例えば、和演算である。
【０１２６】
（ステップＳ５０９）ステップＳ５０９に制御が移る場合は、認証が成立した場合である。そして、第一変換部１２３は、ステップＳ５０３で取得した第ｎ＋１の認証情報（Ａｎ＋１）を第一認証情報格納部１１３に蓄積する。また、第一演算部１２５は、第ｎの認証情報（Ａｎ）と第ｎの秘匿情報（Ｍｎ）とを用いて、第二演算を行い、第ｎ＋１の秘匿情報（Ｍｎ＋１）を取得し、当該第ｎ＋１の秘匿情報（Ｍｎ＋１）を第一秘匿情報納部１１４に蓄積する。また、第一演算部１２５は、記号ｎをインクリメントする。なお、第一認証結果処理部１２７は、認証許可に対応する処理を行っても良い。また、第二演算は、ここでは、例えば、和演算である。
【０１２７】
（ステップＳ５１０）ステップＳ５１０に制御が移る場合は、認証が不成立である場合である。そして、第一認証結果処理部１２７は、認証不許可に対応する処理を行う。かかる処理は、例えば、エラーメッセージ等の認証装置１への送付である。
【０１２８】
ここで、認証装置１のｎ回目の認証処理は完了する。
【０１２９】
なお、図５のフローチャートにおいて、ｎ＋１回以降の認証処理時にも、同様に動作が行われる。
【０１３０】
また、図５のフローチャートにおいて、認証装置１は、第一の認証情報（Ａ１）に対応する第一データ（α）（第一の認証情報（Ａ１）と第二の認証情報（Ａ２）とを用いて取得されたα）、第二の認証情報（Ａ２）に対応する第一データ（α）（第二の認証情報（Ａ２）と第三の認証情報（Ａ３）とを用いて取得されたα）、・・・、第ｎの認証情報（Ａｎ）に対応する第一データ（α）（第ｎの認証情報（Ａｎ）と第ｎ＋１の認証情報（Ａｎ＋１）とを用いて取得されたα）等を予め格納していても良い。かかる場合、ステップＳ５０１からステップＳ５０３の処理は省略可能である。また、かかる場合、ステップＳ５０８の第一演算結果を取得する処理は省略可能である。
【０１３１】
また、図５のフローチャートにおいて、認証装置１は、第一の第ｎの秘匿情報（Ｍ１）、・・・、第ｎの秘匿情報（Ｍｎ）を予め格納していても良い。かかる場合、ステップＳ５０９における第ｎ＋１の秘匿情報（Ｍｎ＋１）を取得し、蓄積する処理は省略可能である。
【０１３２】
また、認証システムＡが秘匿情報（Ｍｎ）を用いない場合、第一データ（α）は秘匿情報（Ｍｎ）を用いずに算出された情報である。認証システムＡが秘匿情報（Ｍｎ）を用いない場合、ステップＳ５０９で第ｎ＋１の秘匿情報（Ｍｎ＋１）を算出する処理は必要ない。
【０１３３】
以上、本実施の形態によれば、ワンタイムパスワードの認証処理において、一方向性変換関数の実行回数を少なくできるために、認証処理が高速に行える。なお、認証処理が高速に行えることは、認証処理の負荷を小さくできることである。
【０１３４】
さらに具体的には、上記の図４、図５のフローチャートで示した通り、本認証方式では、認証時、認証装置１では認証情報の生成に、一方向性変換関数２回、第一演算（例えば、加算）１回、排他的論理和４回、第二演算（例えば、加算）１回を必要とする。そして、第一演算（例えば、加算）と排他的論理和と第二演算の各演算の処理負荷は、一方向性変換関数に比較して無視できるため、認証処理における処理負荷は、実質、一方向性変換関数の２回分の適用による負荷である、と言える。また、認証情報Ａｎを保存しておけば、認証処理において、一方向性変換関数の適用は１回であり、極めて高速に認証処理が行える。
【０１３５】
また、被認証装置２での処理負荷は、排他的論理和２回、第一演算（例えば、加算）１回、第二演算（例えば、加算）１回の処理の負荷であり、実質、それらの処理負荷は無視できる。
【０１３６】
なお、上述した通り、本実施の形態において、次回認証情報と今回認証情報の融合演算（上記の第一演算）を、主として、加算としたが、次回認証情報と今回認証情報の融合演算を排他的論理和とする以外はあらゆる演算の使用が可能である。今回秘匿情報や任意の定数を付加する等も認められる。融合演算の組み合わせ情報を、今回認証情報によって秘匿化して認証装置１から被認証装置２へ送付し共有するなどのバリエーションも考えられる。
【０１３７】
また、本実施の形態において、主として、次回秘匿情報を、今回認証情報と今回秘匿情報を加算することで算出したが、次回認証情報と今回秘匿情報の加算、あるいは今回認証情報と次回認証情報と今回秘匿情報の加算で算出しても良い。また、加算以外の演算、あるいは複数の演算の組み合わせにより次回秘匿情報を算出するようにしても良い。
【０１３８】
また、上記の実施の形態において、認証終了後、認証装置１において、今回認証情報ＡｎからＨ（Ａｎ）を生成し、これを被認証装置２へ送付し、被認証装置２において被認証装置２で保持するＡｎから同様に生成したＨ（Ａｎ）と比較し、同じであれば相互認証が成立するといった付加機能も実現でき得る。
【０１３９】
さらに、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをＣＤ−ＲＯＭなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における認証装置１を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、第ｎの認証情報（Ａｎ）と第ｎ＋１の認証情報（Ａｎ＋１）との排他的論理和の演算（Ａｎ  ＸＯＲ  Ａｎ＋１）により取得された第一データ（α）が格納される第一データ格納部にアクセス可能なコンピュータを、前記第一データ（α）を被認証装置に送信する第一送信部と、前記第一送信部が送信した第一データ（α）と前記第ｎの認証情報（Ａｎ）との排他的論理和の演算（α  ＸＯＲ  Ａｎ）により取得された第ｎ＋１の認証情報（Ａｎ＋１）と、前記第ｎの認証情報（Ａｎ）とを用いて第一演算が行われ、取得された、第二データ（β）を前記被認証装置から受信する第一受信部と、前記第一送信部が送信した第一データ（α）が取得される元になった、第ｎの認証情報（Ａｎ）と第ｎ＋１の認証情報（Ａｎ＋１）との第一演算の結果と、前記第一受信部が受信した第二データ（β）とが予め決められた関係を有するか否かを判断する第一認証部と、前記第一認証部の判断結果を用いた処理を行う第一認証結果処理部として機能させるためのプログラムである。
【０１４０】
また、上記プログラムにおいて、前記第一データ格納部に格納されている第一データ（α）は、前記第ｎ＋１の認証情報（Ａｎ＋１）と前記第ｎの認証情報（Ａｎ）と第ｎの秘匿情報（Ｍｎ）とを用いて、排他的論理和の演算（Ａｎ＋１  ＸＯＲ  Ａｎ  ＸＯＲ  Ｍｎ）を行い、取得されたデータであることは好適である。
【０１４１】
また、本実施の形態における被認証装置２を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、第ｎの認証情報（Ａｎ）が格納される第二認証情報格納部にアクセス可能なコンピュータを、第一データ（α）を認証装置から受信する第二受信部と、前記第一データ（α）と前記第ｎの認証情報（Ａｎ）との排他的論理和の演算（α  ＸＯＲ  Ａｎ）を行い、第ｎ＋１の認証情報（Ａｎ＋１）を取得する第二排他的論理和部と、前記第二排他的論理和部が取得した前記第ｎ＋１の認証情報（Ａｎ＋１）と、前記第ｎの認証情報（Ａｎ）とを用いて、第一演算を行い、第二データ（β）を取得する第二演算部と、前記第二データ（β）を前記認証装置に送信する第二送信部として機能させるためのプログラムである。
【０１４２】
また、上記プログラムにおいて、前記第二排他的論理和部は、前記第一データ（α）と前記第ｎの認証情報（Ａｎ）と前記第ｎの秘匿情報（Ｍｎ）とを用いて、排他的論理和の演算（α  ＸＯＲ  Ａｎ  ＸＯＲ  Ｍｎ）を行い、第ｎ＋１の認証情報（Ａｎ＋１）を取得し、前記第二演算部は、前記第ｎの認証情報（Ａｎ）と前記第ｎの秘匿情報（Ｍｎ）とを用いて、第二演算を行い、第ｎ＋１の秘匿情報（Ｍｎ＋１）を取得するものとして、コンピュータを機能させるプログラムであることは好適である。
【０１４３】
（実施の形態２）
本実施の形態において、実施の形態１と比較して秘匿情報を用いずに認証処理を行う点が異なる認証システムについて説明する。
【０１４４】
本実施の形態における認証システムＢの概念図は、符号の違いを除いて、認証システムＡの概念図と同様である。認証システムＢは、認証装置３、および１または２以上の被認証装置４を備える。認証装置３は、被認証装置４を認証する装置である。認証装置３は、被認証装置４と通信可能であれば何でも良い。認証装置３は、被認証装置４と通信可能な情報処理装置であり、例えば、いわゆるクラウドサーバ、ＡＳＰサーバ等であるが、その種類は問わない。被認証装置４は、認証される装置である。被認証装置４は、例えば、いわゆるパーソナルコンピュータ、タブレット端末、スマートフォン、携帯電話、テレビ、自動車等のあらゆる機器が考えられ、その種類は問わない。また、認証装置３と１以上の各被認証装置４との通信手段やネットワークの種類は問わないことは言うまでもない。
【０１４５】
図６は、本実施の形態における認証システムＢのブロック図である。
【０１４６】
認証システムＢは、認証装置３、および１または２以上の被認証装置４を備える。なお、認証システムＢは、２以上の認証装置３を備えても良い。
【０１４７】
認証装置３は、第一格納部３１、第一処理部３２、第一送信部１３、および第一受信部１４を備える。第一格納部３１は、第一パスワード格納部１１１、第一乱数格納部１１２、第一認証情報格納部１１３、第一記号格納部１１５、および第一データ格納部１１６を備える。第一処理部３２は、第一乱数生成部１２１、第一排他的論理和部１２２、第一変換部１２３、第一演算部１２５、第一認証部１２６、および第一認証結果処理部１２７を備える。
【０１４８】
被認証装置４は、第二格納部４１、第二受信部２２、第二処理部４３、および第二送信部２４を備える。第二格納部４１は、第二認証情報格納部２１１を備える。
【０１４９】
認証装置３を構成する第一格納部３１には、各種の情報が格納される。各種の情報とは、例えば、パスワード、乱数、認証情報等である。
【０１５０】
被認証装置４を構成する第二格納部４１には、各種の情報が格納される。各種の情報とは、例えば、認証情報等である。
【０１５１】
次に、認証システムＢの動作について説明する。まず、認証システムＢの初期登録処理の例を図７のフローチャートを用いて説明する。なお、動作開始時に、認証装置３は、第一パスワード格納部１１１にパスワード（Ｓ）を保持している、とする。
【０１５２】
（ステップＳ７０１）認証装置３の第一乱数生成部１２１は、第一の乱数（Ｎ１）を生成し、当該第一の乱数（Ｎ１）を第一乱数格納部１１２に蓄積する。
【０１５３】
（ステップＳ７０２）第一排他的論理和部１２２は、格納されているパスワード（Ｓ）とステップＳ７０１で取得された第一の乱数（Ｎ１）との排他的論理和の演算（Ｓ  ＸＯＲ  Ｎ１）を行い、演算結果を取得する。また、第一変換部１２３は、第一排他的論理和部１２２が取得した演算結果に対して一方向性変換関数Ｈを施し、第一の認証情報（Ａ１）を取得する。
【０１５４】
（ステップＳ７０３）第一変換部１２３は、ステップＳ７０２で取得した第一の認証情報（Ａ１）を第一認証情報格納部１１３に保存する。
【０１５５】
（ステップＳ７０４）第一送信部１３は、取得された第一の認証情報（Ａ１）を被認証装置４に送信する。ここで、認証装置３の初期登録処理は完了する。
【０１５６】
（ステップＳ７０５）被認証装置４の第二受信部２２は、第一の認証情報（Ａ１）を受信し、当該第一の認証情報（Ａ１）を第二認証情報格納部２１１に蓄積する。ここで、被認証装置４の初期登録処理は完了する。
【０１５７】
なお、図７のフローチャートにおいて、認証装置１は、第一の認証情報（Ａ１）を予め格納しており、かかる第一の認証情報（Ａ１）を被認証装置２に送信しても良い。かかる場合、ステップＳ７０１からステップＳ７０３の処理は不要である。
【０１５８】
次に、認証システムＢにおけるｎ回目の認証時の認証処理の例を、図８のフローチャートを用いて説明する。なお、ｎ回目の認証処理の開始時に、認証装置３は、パスワード（Ｓ）を第一パスワード格納部１１１に保持しており、かつ乱数（Ｎｎ）を第一乱数格納部１１２に保持している、とする。また、ｎ回目の認証処理の開始時に、被認証装置４は、第ｎの認証情報（Ａｎ）を第二認証情報格納部２１１に保持している、とする。
【０１５９】
（ステップＳ８０１）第一排他的論理和部１２２は、格納されているパスワード（Ｓ）と格納されている第ｎの乱数（Ｎｎ）との排他的論理和の演算（Ｓ  ＸＯＲ  Ｎｎ）を行い、演算結果を取得する。次に、第一変換部１２３は、第一排他的論理和部１２２が取得した演算結果に対して一方向性変換関数Ｈを施し、第ｎの認証情報（Ａｎ）を取得する。
【０１６０】
（ステップＳ８０２）第一乱数生成部１２１は、第ｎ＋１の乱数（Ｎｎ＋１）を生成し、第一乱数格納部１１２に保存する。
【０１６１】
（ステップＳ８０３）第一排他的論理和部１２２は、パスワード（Ｓ）と第ｎ＋１の乱数（Ｎｎ＋１）との排他的論理和の演算（Ｓ  ＸＯＲ  Ｎｎ＋１）を行い、演算結果を取得する。次に、第一変換部１２３は、演算結果に対して一方向性変換関数Ｈを施し、第ｎ＋１の認証情報（Ａｎ＋１）を取得する。次に、第一排他的論理和部１２２は、第ｎ＋１の認証情報（Ａｎ＋１）と第ｎの認証情報（Ａｎ）とを用いて、排他的論理和の演算（Ａｎ＋１  ＸＯＲ  Ａｎ）を行い、第一データ（α）を取得する。
【０１６２】
（ステップＳ８０４）第一送信部１３は、ステップＳ８０３で取得された第一データ（α）を安全な手段で被認証装置２に送信する。なお、ここで、第一送信部１３は、ｎをも被認証装置２に送信することは好適である。
【０１６３】
（ステップＳ８０５）被認証装置２の第二受信部２２は、第一データ（α）を認証装置３から受信する。そして、第二排他的論理和部２３１は、第一データ（α）と第ｎの認証情報（Ａｎ）とを用いて、排他的論理和の演算（α  ＸＯＲ  Ａｎ）を行い、第ｎ＋１の認証情報（Ａｎ＋１）を取得する。次に、第二演算部２３２は、第二排他的論理和部２３１が取得した第ｎ＋１の認証情報（Ａｎ＋１）と、第ｎの認証情報（Ａｎ）とを用いて、第一演算を行い、第二データ（β）を取得する。なお、ここでの第一演算は、例えば、「和」である。
【０１６４】
（ステップＳ８０６）被認証装置２の第二送信部２４は、ステップＳ８０５で取得された第二データ（β）を認証装置３に送信する。
【０１６５】
（ステップＳ８０７）認証装置１の第一受信部１４は、被認証装置２から第二データ（β）を受信する。そして、第一演算部１２５は、第一データ（α）の取得の元になった、第ｎの認証情報（Ａｎ）と第ｎ＋１の認証情報（Ａｎ＋１）とを用いて、第一演算を行い、第一演算結果を取得する。次に、第一認証部１２６は、取得した第一演算結果が、受信された第二データ（β）と一致するか否かを判断する。第一認証部１２６が一致すると判断した場合はステップＳ８０８に行き、一致しないと判断した場合はステップＳ８０９に行く。なお、第一演算は、ここでは、例えば、和演算である。
【０１６６】
（ステップＳ８０８）ステップＳ８０８に制御が移る場合は、認証が成立した場合である。そして、第一変換部１２３は、ステップＳ８０３で取得した第ｎ＋１の認証情報（Ａｎ＋１）を第一認証情報格納部１１３に蓄積する。また、第一演算部１２５は、記号ｎをインクリメントする。なお、第一認証結果処理部１２７は、認証許可に対応する処理を行っても良い。また、第二演算は、ここでは、例えば、和演算である。
【０１６７】
（ステップＳ８０９）ステップＳ８０９に制御が移る場合は、認証が不成立である場合である。そして、第一認証結果処理部１２７は、認証不許可に対応する処理を行う。かかる処理は、例えば、エラーメッセージ等の認証装置１への送付である。
【０１６８】
ここで、認証装置３のｎ回目の認証処理は完了する。
【０１６９】
なお、図８のフローチャートにおいて、ｎ＋１回以降の認証処理時にも、同様に動作が行われる。
【０１７０】
また、図８のフローチャートにおいて、認証装置１は、第一の認証情報（Ａ１）に対応する第一データ（α）（第一の認証情報（Ａ１）と第二の認証情報（Ａ２）とを用いて取得されたα）、第二の認証情報（Ａ２）に対応する第一データ（α）（第二の認証情報（Ａ２）と第三の認証情報（Ａ３）とを用いて取得されたα）、・・・、第ｎの認証情報（Ａｎ）に対応する第一データ（α）（第ｎの認証情報（Ａｎ）と第ｎ＋１の認証情報（Ａｎ＋１）とを用いて取得されたα）等を予め格納していても良い。かかる場合、ステップＳ８０１からステップＳ８０３の処理は省略可能である。
【０１７１】
以上、本実施の形態によれば、ワンタイムパスワードの認証処理において、一方向性変換関数の実行回数を少なくできるために、認証処理が高速に行える。
【０１７２】
さらに、本実施の形態における認証装置３を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、第ｎの認証情報（Ａｎ）と第ｎ＋１の認証情報（Ａｎ＋１）との排他的論理和の演算（Ａｎ  ＸＯＲ  Ａｎ＋１）により取得された第一データ（α）が格納される第一データ格納部にアクセス可能なコンピュータを、前記第一データ（α）を被認証装置に送信する第一送信部と、前記第一送信部が送信した第一データ（α）と前記第ｎの認証情報（Ａｎ）との排他的論理和の演算（α  ＸＯＲ  Ａｎ）により取得された第ｎ＋１の認証情報（Ａｎ＋１）と、前記第ｎの認証情報（Ａｎ）とを用いて第一演算が行われ、取得された、第二データ（β）を前記被認証装置から受信する第一受信部と、前記第一送信部が送信した第一データ（α）が取得される元になった、第ｎの認証情報（Ａｎ）と第ｎ＋１の認証情報（Ａｎ＋１）との第一演算の結果と、前記第一受信部が受信した第二データ（β）とが予め決められた関係を有するか否かを判断する第一認証部と、前記第一認証部の判断結果を用いた処理を行う第一認証結果処理部として機能させるためのプログラムである。
【０１７３】
また、本実施の形態における被認証装置４を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、第ｎの認証情報（Ａｎ）が格納される第二認証情報格納部にアクセス可能なコンピュータを、第一データ（α）を認証装置から受信する第二受信部と、前記第一データ（α）と前記第ｎの認証情報（Ａｎ）との排他的論理和の演算（α  ＸＯＲ  Ａｎ）を行い、第ｎ＋１の認証情報（Ａｎ＋１）を取得する第二排他的論理和部と、前記第二排他的論理和部が取得した前記第ｎ＋１の認証情報（Ａｎ＋１）と、前記第ｎの認証情報（Ａｎ）とを用いて、第一演算を行い、第二データ（β）を取得する第二演算部と、前記第二データ（β）を前記認証装置に送信する第二送信部として機能させるためのプログラムである。
【０１７４】
（実施の形態３）
本実施の形態において、一方向性変換関数の実行回数を少なくできるために、認証処理を高速に行う認証システムについて説明する。特に、認証処理の際の被認証装置における一方向性変換関数の実行回数が０となるため、被認証装置の負荷が極めて小さくて良い認証システムについて説明する。
【０１７５】
本実施の形態における認証システムＣの概念図は、符号の違いを除いて、認証システムＡの概念図と同様である。認証システムＣは、認証装置５、および１または２以上の被認証装置６を備える。認証装置５と１以上の各被認証装置６は、インターネット等のネットワークを介して、通信可能である。認証装置５は、被認証装置６を認証する装置である。認証装置５は、被認証装置６と通信可能な情報処理装置であり、例えば、いわゆるクラウドサーバ、ＡＳＰサーバ等であるが、その種類は問わない。被認証装置６は、認証される装置である。被認証装置６は、例えば、いわゆるパーソナルコンピュータ、タブレット端末、スマートフォン、携帯電話、テレビ、自動車等のあらゆる機器が考えられ、その種類は問わない。また、認証装置５と１以上の各被認証装置６との通信手段やネットワークの種類は問わないことは言うまでもない。
【０１７６】
図９は、本実施の形態における認証システムＣのブロック図である。図１０は、本実施の形態における認証システムＣを構成する被認証装置６のブロック図である。
【０１７７】
認証装置５は、第一格納部１１、第一処理部５２、第一送信部１３、および第一受信部１４を備える。第一処理部５２は、第一乱数生成部１２１、第一排他的論理和部１２２、第一変換部１２３、第一秘匿情報生成部１２４、第一演算部５２５、第一認証部１２６、および第一認証結果処理部１２７を備える。
【０１７８】
被認証装置６は、第二格納部２１、第二受信部２２、第二処理部６３、および第二送信部２４を備える。第二処理部６３は、第二排他的論理和部２３１、および第二演算部６３２を備える。
【０１７９】
第一演算部５２５は、第ｎの認証情報（Ａｎ）と第ｎ＋１の認証情報（Ａｎ＋１）とを用いて、第一演算を行い、第一演算結果を取得する。ここで、第一演算は、例えば、和、差、乗算、除算、平均値算出等であり、演算の種類は問わない。第一演算部５２５は、例えば、和演算「第一演算結果＝Ａｎ＋Ａｎ＋１」により、第一演算結果を取得する。
【０１８０】
第一演算部５２５は、例えば、第ｎの認証情報（Ａｎ）と第ｎ＋１の認証情報（Ａｎ＋１）と第ｎの秘匿情報（Ｍｎ）とを用いて、第一演算を行い、第一演算結果を取得する。第一演算部１２５は、例えば、「第一演算結果＝Ａｎ＋Ａｎ＋１＋Ｍｎ」により、第一演算結果を取得する。第一演算部１２５は、例えば、「第一演算結果＝Ａｎ＋Ａｎ＋１−Ｍｎ」、「第一演算結果＝（Ａｎ−Ａｎ＋１）×Ｍｎ」により、第一演算結果を取得する。
【０１８１】
また、第一演算部５２５は、例えば、第ｎの秘匿情報（Ｍｎ）、第ｎ＋１の認証情報（Ａｎ＋１）と、第ｎの認証情報（Ａｎ）のうちの１以上の情報を用いて演算を行い、第ｎ＋１の秘匿情報（Ｍｎ＋１）を取得し、当該第ｎ＋１の秘匿情報（Ｍｎ＋１）を第一秘匿情報納部１１４に、少なくとも一時蓄積する。なお、かかる演算の種類は問わない。また、かかる演算は、例えば、「Ｍｎ＋１＝Ｍｎ＋Ａｎ」、「Ｍｎ＋１＝Ａｎ＋１＋Ａｎ＋Ｍｎ」、「Ｍｎ＋１＝Ｍｎ＋Ａｎ＋１」、「Ｍｎ＋１＝Ｍｎ＋ｘ（ｘは定数）」である。なお、「＋」は他の演算でも良いことは言うまでもない。
【０１８２】
また、第一演算部５２５は、例えば、第ｎ＋１の認証情報（Ａｎ＋１）と第ｎの秘匿情報（Ｍｎ）とを用いて、第二演算を行い、第ｎ＋１の秘匿情報（Ｍｎ＋１）を取得し、当該第ｎ＋１の秘匿情報（Ｍｎ＋１）を第一秘匿情報納部１１４に、少なくとも一時蓄積する。
【０１８３】
なお、第一排他的論理和部１２２が第一データ（α）を算出する際、または第一演算部５２５が第一演算結果を算出する際の、少なくともどちらか一方では、秘匿情報（Ｍ）が使用されることは好適である。なお、第一排他的論理和部１２２が第一データ（α）を算出する際と第一演算部５２５が第一演算結果を算出する際の両方、秘匿情報（Ｍ）が使用されても良い。
【０１８４】
第二演算部６３２は、例えば、第二排他的論理和部２３１が取得した第ｎ＋１の認証情報（Ａｎ＋１）と、第ｎの認証情報（Ａｎ）と、第ｎの秘匿情報（Ｍｎ）とを用いて、第一演算を行い、第二データ（β）を取得する。なお、第一演算は、上述したように、例えば、「＋」であるが、「−」「＊」等、問わない。第二演算部６３２は、例えば、演算式「β＝Ａｎ＋１＋Ａｎ＋Ｍｎ」により、第二データ（β）を取得する。
【０１８５】
第二演算部６３２は、第二排他的論理和部２３１が取得した第ｎ＋１の認証情報（Ａｎ＋１）と、第ｎの認証情報（Ａｎ）とを用いて、第一演算を行い、第二データ（β）を取得する。なお、第一演算は、上述したように、例えば、「＋」であるが、「−」「＊」等、問わない。
【０１８６】
第二演算部６３２は、例えば、第ｎの秘匿情報（Ｍｎ）、第ｎ＋１の認証情報（Ａｎ＋１）、第ｎの認証情報（Ａｎ）のうちの１以上の情報を用いて演算を行い、第ｎ＋１の秘匿情報（Ｍｎ＋１）を取得し、当該第ｎ＋１の秘匿情報（Ｍｎ＋１）を第二秘匿情報納部２１２に、少なくとも一時蓄積する。なお、かかる演算の種類は問わない。また、かかる演算は、例えば、「Ｍｎ＋１＝Ｍｎ＋Ａｎ」、「Ｍｎ＋１＝Ａｎ＋１＋Ａｎ＋Ｍｎ」、「Ｍｎ＋１＝Ｍｎ＋Ａｎ＋１」、「Ｍｎ＋１＝Ｍｎ＋ｘ（ｘは定数）」である。なお、「＋」は他の演算でも良いことは言うまでもない。  第二演算部６３２は、例えば、第ｎ＋１の認証情報（Ａｎ＋１）と第ｎの秘匿情報（Ｍｎ）とを用いて、第二演算を行い、第ｎ＋１の秘匿情報（Ｍｎ＋１）を取得し、第二秘匿情報納部２１２に蓄積する。ここで、第二演算は、例えば、和、差、乗算、除算、平均値算出等である。ただし、第二演算の種類は問わない。第二演算部６３２は、例えば、和演算「Ｍｎ＋１＝Ａｎ＋１＋Ｍｎ」により、βを取得する。また、第一演算と第二演算とは、同じ種類の演算でも（例えば、両方とも＋）良いし、異なる種類の演算（例えば、一方が＋、他方が−）でも良い。
【０１８７】
第一処理部５２、第一演算部５２５、第二処理部６３、および第二演算部６３２は、通常、ＭＰＵやメモリ等から実現され得る。第一処理部５２等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【０１８８】
次に、認証システムＣの動作について説明する。まず、認証システムＣにおける認証装置５、被認証装置６の初期登録処理は、各々認証装置１、被認証装置２の初期登録処理と同様であるので、説明を省略する。
【０１８９】
次に、認証システムＣにおけるｎ回目の認証時の認証処理の例を、図１１のフローチャートを用いて説明する。なお、ｎ回目の認証処理の開始時に、認証装置５は、パスワード（Ｓ）を第一パスワード格納部１１１に保持しており、かつ乱数（Ｎｎ）を第一乱数格納部１１２に保持している、とする。また、ｎ回目の認証処理の開始時に、被認証装置６は、第ｎの認証情報（Ａｎ）を第二認証情報格納部２１１に保持しており、第ｎの秘匿情報（Ｍｎ）を第二秘匿情報納部２１２に保持している、とする。
【０１９０】
（ステップＳ１１０１）第一排他的論理和部１２２は、格納されているパスワード（Ｓ）と格納されている第ｎの乱数（Ｎｎ）との排他的論理和の演算（Ｓ  ＸＯＲ  Ｎｎ）を行い、演算結果を取得する。次に、第一変換部１２３は、第一排他的論理和部１２２が取得した演算結果に対して一方向性変換関数Ｈを施し、第ｎの認証情報（Ａｎ）を取得する。
【０１９１】
（ステップＳ１１０２）第一乱数生成部１２１は、第ｎ＋１の乱数（Ｎｎ＋１）を生成し、第一乱数格納部１１２に保存する。
【０１９２】
（ステップＳ１１０３）第一排他的論理和部１２２は、パスワード（Ｓ）と第ｎ＋１の乱数（Ｎｎ＋１）との排他的論理和の演算（Ｓ  ＸＯＲ  Ｎｎ＋１）を行い、演算結果を取得する。次に、第一変換部５２３は、当該演算結果に対して一方向性変換関数Ｈを施し、第ｎ＋１の認証情報（Ａｎ＋１）を取得する。次に、第一排他的論理和部１２２は、当該第ｎ＋１の認証情報（Ａｎ＋１）と第ｎの認証情報（Ａｎ）と第ｎの秘匿情報（Ｍｎ）とを用いて、排他的論理和の演算（Ａｎ＋１  ＸＯＲ  Ａｎ  ＸＯＲ  Ｍｎ）を行い、第一データ（α）を取得する。
【０１９３】
（ステップＳ１１０４）第一送信部１３は、ステップＳ１１０３で取得された第一データ（α）を安全な手段で被認証装置２に送信する。なお、ここで、第一送信部１３は、ｎをも被認証装置２に送信することは好適である。第一送信部１３がｎをも被認証装置２に送信する場合、例えば、過去の処理においてエラーが発生した場合にも対応でき、好適である。
【０１９４】
（ステップＳ１１０５）被認証装置６の第二受信部２２は、第一データ（α）を認証装置１から受信する。なお、第二受信部２２は、第一データ（α）とｎとを認証装置１から受信することは好適である。
【０１９５】
そして、第二排他的論理和部２３１は、第一データ（α）と第ｎの認証情報（Ａｎ）と第ｎの秘匿情報（Ｍｎ）とを用いて、排他的論理和の演算（α  ＸＯＲ  Ａｎ  ＸＯＲ  Ｍｎ）を行い、演算結果（通常、第ｎ＋１の認証情報（Ａｎ＋１）に相当する情報）を取得する。次に、第二演算部６３２は、第二排他的論理和部２３１が取得した演算結果と、第ｎの認証情報（Ａｎ）と第ｎの秘匿情報（Ｍｎ）とを用いて、第一演算を行い、第二データ（β）を取得する。なお、ここでの第一演算は、例えば、「和」である。つまり、例えば、演算式「β＝（α  ＸＯＲ  Ａｎ  ＸＯＲ  Ｍｎ）＋Ａｎ＋Ｍｎ」により第二データ（β）が得られる。
【０１９６】
（ステップＳ１１０６）被認証装置６の第二送信部２４は、ステップＳ１１０５で取得された第二データ（β）を認証装置１に送信する。
【０１９７】
（ステップＳ１１０７）被認証装置６の第二演算部６３２は、第ｎ＋１の認証情報（Ａｎ＋１）と第ｎの秘匿情報（Ｍｎ）とを用いて、第二演算を行い、第ｎ＋１の秘匿情報（Ｍｎ＋１）を取得し、当該第ｎ＋１の秘匿情報（Ｍｎ＋１）を第二秘匿情報納部２１２に蓄積する。また、第二演算部６３２は、記号ｎをインクリメントする。ここで、被認証装置２のｎ回目の認証のための処理は完了する。
【０１９８】
（ステップＳ１１０８）認証装置５の第一受信部１４は、被認証装置６から第二データ（β）を受信する。そして、第一演算部５２５は、第ｎの認証情報（Ａｎ）と第ｎ＋１の認証情報（Ａｎ＋１）と第ｎの秘匿情報（Ｍｎ）とを用いて、第一演算を行い、第一演算結果を取得する。つまり、第一演算部５２５は、演算式「第一演算結果＝Ａｎ＋Ａｎ＋１＋Ｍｎ」により、第一演算結果を取得する。
【０１９９】
次に、第一認証部１２６は、取得した第一演算結果が受信された第二データ（β）と一致するか否かを判断する。第一認証部１２６が一致すると判断した場合はステップＳ１１０９に行き、一致しないと判断した場合はステップＳ１１１０に行く。なお、第一演算は、ここでは、例えば、和演算である。
【０２００】
（ステップＳ１１０９）ステップＳ１１０９に制御が移る場合は、認証が成立した場合である。そして、第一変換部１２３は、ステップＳ１１０３で取得した第ｎ＋１の認証情報（Ａｎ＋１）を第一認証情報格納部１１３に蓄積する。また、第一演算部５２５は、第ｎ＋１の認証情報（Ａｎ＋１）と第ｎの秘匿情報（Ｍｎ）とを用いて、第二演算を行い、第ｎ＋１の秘匿情報（Ｍｎ＋１）を取得し、当該第ｎ＋１の秘匿情報（Ｍｎ＋１）を第一秘匿情報納部１１４に蓄積する。また、第一演算部５２５は、記号ｎをインクリメントする。なお、第一認証結果処理部１２７は、認証許可に対応する処理を行っても良い。また、第二演算は、ここでは、例えば、和演算である。
【０２０１】
（ステップＳ１１１０）ステップＳ１１１０に制御が移る場合は、認証が不成立である場合である。そして、第一認証結果処理部１２７は、認証不許可に対応する処理を行う。かかる処理は、例えば、エラーメッセージ等の認証装置１への送付である。
【０２０２】
ここで、認証装置１のｎ回目の認証処理は完了する。
【０２０３】
なお、図１１のフローチャートにおいて、ｎ＋１回以降の認証処理時にも、同様に動作が行われる。
【０２０４】
また、図１１のフローチャートにおいて、認証装置５は、第一の認証情報（Ａ１）に対応する第一データ（α）（第一の認証情報（Ａ１）と第二の認証情報（Ａ２）とを用いて取得されたα）、第二の認証情報（Ａ２）に対応する第一データ（α）（第二の認証情報（Ａ２）と第三の認証情報（Ａ３）とを用いて取得されたα）、・・・、第ｎの認証情報（Ａｎ）に対応する第一データ（α）（第ｎの認証情報（Ａｎ）と第ｎ＋１の認証情報（Ａｎ＋１）とを用いて取得されたα）等を予め格納していても良い。かかる場合、ステップＳ１１０１からステップＳ１１０３の処理は省略可能である。また、かかる場合、ステップＳ１１０８の第一演算結果を取得する処理は省略可能である。
【０２０５】
また、図１１のフローチャートにおいて、認証装置５は、第一の第ｎの秘匿情報（Ｍ１）、・・・、第ｎの秘匿情報（Ｍｎ）を予め格納していても良い。かかる場合、ステップＳ１１０９における第ｎ＋１の秘匿情報（Ｍｎ＋１）を取得し、蓄積する処理は省略可能である。
【０２０６】
また、認証システムＣが秘匿情報（Ｍｎ）を用いない場合、第一データ（α）は秘匿情報（Ｍｎ）を用いずに算出された情報である。認証システムＡが秘匿情報（Ｍｎ）を用いない場合、ステップＳ１１０９で第ｎ＋１の秘匿情報（Ｍｎ＋１）を算出する処理は必要ない。
【０２０７】
以上、本実施の形態によれば、ワンタイムパスワードの認証処理において、一方向性変換関数の実行回数を少なくできるために、認証処理が高速に行える。なお、認証処理が高速に行えることは、認証処理の負荷を小さくできることである。
【０２０８】
さらに具体的には、上記の図４、図１１のフローチャートで示した通り、本認証方式では、認証時、認証装置５では認証情報の生成に、一方向性変換関数２回、第一演算（例えば、加算）１回、排他的論理和４回、第二演算（例えば、加算）１回を必要とする。そして、第一演算（例えば、加算）と排他的論理和と第二演算の各演算の処理負荷は、一方向性変換関数に比較して無視できるため、認証処理における処理負荷は、実質、一方向性変換関数の２回分の適用による負荷である、と言える。また、認証情報Ａｎを保存しておけば、認証処理において、一方向性変換関数の適用は１回であり、極めて高速に認証処理が行える。
【０２０９】
また、被認証装置６での処理負荷は、排他的論理和２回、第一演算（例えば、加算）１回、第二演算（例えば、加算）１回の処理の負荷であり、実質、それらの処理負荷は無視できる。
【０２１０】
なお、上述した通り、本実施の形態において、次回認証情報と今回認証情報の融合演算（上記の第一演算）を、主として、加算としたが、次回認証情報と今回認証情報の融合演算を排他的論理和とする以外はあらゆる演算の使用が可能である。今回秘匿情報や任意の定数を付加する等も認められる。融合演算の組み合わせ情報を、今回認証情報によって秘匿化して認証装置１から被認証装置２へ送付し共有するなどのバリエーションも考えられる。
【０２１１】
また、本実施の形態において、主として、次回秘匿情報を、次回認証情報と今回秘匿情報を加算することで算出したが、今回認証情報と今回秘匿情報の加算、あるいは今回認証情報と次回認証情報と今回秘匿情報の加算で算出しても良い。また、加算以外の演算、あるいは複数の演算の組み合わせにより次回秘匿情報を算出するようにしても良い。
【０２１２】
また、上記の実施の形態において、認証終了後、認証装置５において、今回認証情報ＡｎからＨ（Ａｎ）を生成し、これを被認証装置６へ送付し、被認証装置６において被認証装置２で保持するＡｎから同様に生成したＨ（Ａｎ）と比較し、同じであれば相互認証が成立するといった付加機能も実現でき得る。
【０２１３】
上記の実施の形態で説明した認証システムは、情報通信システム等において，例えば、利用者や通信相手の資格認証、あるいは認証毎に変わる認証情報を用いて暗号鍵を生成し、当該暗号鍵を用いた暗号通信を実現するワンタイムパスワード認証処理方式に関するものである。
【０２１４】
そして、上記の実施の形態で説明した認証システムにおける認証処理方法は、一般的なワンタイムパスワード認証方法として、クラウドシステムやアプリケーション提供サービスシステム等のログイン時の認証に適用できることはもちろんのこと、高速に認証情報を更新できる利点から、その認証情報をシーズにして暗号鍵を生成し、情報送信単位毎に異なる鍵で暗号通信を実現することができる。これは、低レイヤの通信においても実現可能で、レイヤ３においてパケット毎に違う鍵での暗号通信を実現する等の応用が可能となる。
【０２１５】
また、本認証処理方法は、極めて高速であるため、例えば、認証情報が６４ビットの場合、６４ビットの平文に対して当該認証情報を排他的論理和で加え合わせるバーナム暗号を用いれば、６４ビットの情報送信単位毎に異なる鍵で暗号通信を実現することも可能となる。
【０２１６】
例えば、ＩｏＴにおいて端末側を被認証部、端末収容装置を認証部とすれば、被認証部の処理負荷はほぼ０であるので、前記バーナム暗号を用いれば暗号化・復号の処理なしに暗号通信を実現することができる。これは、センサネットワークやＩＣタグ・ＲＦＩＤのネットワーク等の処理能力が限られた装置のネットワークに対して、暗号通信の機能を付加できるということを意味している。
【０２１７】
今後、ＩｏＴのインフラが普及してくることに伴い、家電、コネクティッドカー、スマートグリッドのみならず、センサネットワークやＩＣタグ等、処理能力の低い装置も含んだ処理系においてセキュリティ通信の実現が求められる場合が増加してくると予想される。本認証処理方法により、このような環境においても、簡易に高速な認証と鍵配送、および高速な暗号通信を実現できるため、適当な暗号方法を組み合わせれば様々な局面でＩｏＴのセキュリティ対策を実現することができる。
【０２１８】
また、図１２は、本明細書で述べたプログラムを実行して、上述した種々の実施の形態の認証装置１，３，５、被認証装置２，４，６を実現するコンピュータの外観の例を示す。上述の実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムで実現され得る。図１２は、このコンピュータシステム３００の概観図であり、図１３は、システム３００のブロック図である。
【０２１９】
図１２において、コンピュータシステム３００は、ＣＤ−ＲＯＭドライブを含むコンピュータ３０１と、キーボード３０２と、マウス３０３と、モニタ３０４とを含む。
【０２２０】
図１３において、コンピュータ３０１は、ＣＤ−ＲＯＭドライブ３０１２に加えて、ＭＰＵ３０１３と、ＣＤ−ＲＯＭドライブ３０１２等に接続されたバス３０１４と、ブートアッププログラム等のプログラムを記憶するためのＲＯＭ３０１５と、ＭＰＵ３０１３に接続され、アプリケーションプログラムの命令を一時的に記憶するとともに一時記憶空間を提供するためのＲＡＭ３０１６と、アプリケーションプログラム、システムプログラム、及びデータを記憶するためのハードディスク３０１７とを含む。ここでは、図示しないが、コンピュータ３０１は、さらに、ＬＡＮへの接続を提供するネットワークカードを含んでも良い。
【０２２１】
コンピュータシステム３００に、上述した実施の形態の認証装置１等の機能を実行させるプログラムは、ＣＤ−ＲＯＭ３１０１に記憶されて、ＣＤ−ＲＯＭドライブ３０１２に挿入され、さらにハードディスク３０１７に転送されても良い。これに代えて、プログラムは、図示しないネットワークを介してコンピュータ３０１に送信され、ハードディスク３０１７に記憶されても良い。プログラムは実行の際にＲＡＭ３０１６にロードされる。プログラムは、ＣＤ−ＲＯＭ３１０１またはネットワークから直接、ロードされても良い。
【０２２２】
プログラムは、コンピュータ３０１に、上述した実施の形態の認証装置１等の機能を実行させるオペレーティングシステム（ＯＳ）、またはサードパーティープログラム等は、必ずしも含まなくても良い。プログラムは、制御された態様で適切な機能（モジュール）を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいれば良い。コンピュータシステム３００がどのように動作するかは周知であり、詳細な説明は省略する。
【０２２３】
なお、上記プログラムにおいて、情報を送信するステップや、情報を受信するステップなどでは、ハードウェアによって行われる処理、例えば、送信ステップにおけるモデムやインターフェースカードなどで行われる処理（ハードウェアでしか行われない処理）は含まれない。
【０２２４】
また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
【０２２５】
また、上記各実施の形態において、各処理は、単一の装置によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
【０２２６】
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【産業上の利用可能性】
【０２２７】
以上のように、本発明にかかる認証システムは、ワンタイムパスワードの認証処理が高速にできるという効果を有し、認証システム等として有用である。
【図１】
2019188251.tif 000008
【図２】
2019188251.tif 000009
【図３】
2019188251.tif 000010
【図４】
2019188251.tif 000011
【図５】
2019188251.tif 000012
【図６】
2019188251.tif 000013
【図７】
2019188251.tif 000014
【図８】
2019188251.tif 000015
【図９】
2019188251.tif 000016
【図１０】
2019188251.tif 000017
【図１１】
2019188251.tif 000018
【図１２】
2019188251.tif 000019
【図１３】
2019188251.tif 000020
【図１４】
2019188251.tif 000021
【図１５】
2019188251.tif 000022
【国際調査報告】
2019188251.tif 000023
2019188251.tif 000024
2019188251.tif 000025
2019188251.tif 000026