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