JP7161416B2 - 認証システム、被認証装置、認証装置、認証方法、およびプログラム - Google Patents

認証システム、被認証装置、認証装置、認証方法、およびプログラム Download PDF

Info

Publication number
JP7161416B2
JP7161416B2 JP2019007838A JP2019007838A JP7161416B2 JP 7161416 B2 JP7161416 B2 JP 7161416B2 JP 2019007838 A JP2019007838 A JP 2019007838A JP 2019007838 A JP2019007838 A JP 2019007838A JP 7161416 B2 JP7161416 B2 JP 7161416B2
Authority
JP
Japan
Prior art keywords
authentication
information
unit
exclusive
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019007838A
Other languages
English (en)
Other versions
JP2019180081A (ja
Inventor
明宏 清水
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Publication of JP2019180081A publication Critical patent/JP2019180081A/ja
Application granted granted Critical
Publication of JP7161416B2 publication Critical patent/JP7161416B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、被認証装置を認証する認証装置等に関するものである。
従来、認証装置(例えば、「サーバ」と言っても良い。)が被認証装置(例えば、「ユーザ」または「端末」と言っても良い。)を認証する際に、ユーザにパスワードの入力を要求し、入力されたパスワードの正当性をもってユーザを認証するパスワード認証方式が広く用いられている。
また、パスワード認証方式において、パスワードによる認証の安全性を担保するため、認証ごとに使い捨てのパスワードを用いるワンタイムパスワード方式や、パスワードそのものではなくパスワードから生成した認証情報を用いて認証を行う方式が知られている。
例えば、SAS-2(Simple And Secure password authentication protocol ver. 2)という認証方式は、ワンタイムパスワード認証方式の一例であり、認証装置は以下のような手順によって被認証装置を認証する(例えば、非特許文献1参照)。以下において、SAS-2の本質を理解しやすくするため、非特許文献1に記載のアルゴリズムからユーザ識別子を省略し、一方向性変換関数も一種類に簡略化して説明する。
図14および図15は、SAS-2認証方式におけるユーザ認証の処理工程を示すフローチャートである。
なお、以下の説明において用いる記号および演算は,「←」は右辺の左辺への代入、「S」はユーザが秘密に保持しているパスワード、「XOR」は排他的論理和演算、「n」は認証回数、「N」は乱数(nは1以上の自然数で、乱数を識別するために用いる)、をそれぞれ示している。また、「H」は一方向性変換関数とする。一方向性変換関数とは、一方向性関数と言っても良い。一方向性変換関数は、例えば、暗号学的ハッシュ関数である。
まず、ユーザは、認証を受けたい認証装置にあらかじめ登録を行っておく(以下、この登録作業を「初期登録」という。)。以下、ユーザの被認証装置における初期登録処理の手順を、図14を参照して説明する。図14は、従来技術による被認証装置の初期登録処理の手順を示すフローチャートである。なお、被認証装置は、あらかじめ秘密のパスワードSを保持している、とする。
まず、被認証装置は、乱数Nを生成し、記録媒体に蓄積する(ステップS1401)。そして,被認証装置は、乱数Nと秘密に保持しているパスワードSを用いて,下記の数式1に示す初回認証情報Aを算出して保存し(ステップS1402)。
Figure 0007161416000001
次に、被認証装置は、Aを被認証装置に送付する(ステップS1403)。なお、被認証装置は、できれば、安全な手段で、Aを被認証装置に送付する。安全な手段とは、例えば、当該情報の専用線による送信、または当該情報を記憶した記憶媒体の郵送による送付、または工場出荷時等にあらかじめ認証者となる装置等に当該情報を書き込んでおく等である。初回認証情報Aは,初回(認証回数n=1)の認証に用いる認証情報である。
そして、認証装置は、ステップS1403で被認証装置から送付された初回認証情報Aを記録媒体に保存しておく(ステップS1404)。以上が被認証装置の初期登録作業の手順である。
次に、初回(n=1)以降、n回目の認証時の認証処理について、図15を参照して説明する。図15は、初回(n=1)以降、n回目の認証時の認証処理の手順を示すフローチャートである。この時、被認証装置は、パスワードS、乱数Nを記録媒体に保存している。また、認証装置はA(初回認証時はn=1)を記録媒体に保存している。まず、被認証装置は保存している乱数Nから,下記の数式2に示すAを算出する(ステップS1501)。
Figure 0007161416000002
次に、被認証装置は、新しい乱数Nn+1を生成し、保存し(ステップS1502)、当該Nn+1を用いて、下記の数式3によりAn+1を生成し,当該An+1とAとを用いて,下記の数式4、5によってデータαおよびβを算出する(ステップS1503)。
Figure 0007161416000003
Figure 0007161416000004
Figure 0007161416000005
次に、被認証装置は、算出したα、βを認証装置に送付する(ステップS1504)。このとき、Aは今回の認証処理に用いる今回認証情報、An+1は次回の認証処理に用いる次回認証情報である。
認証装置は、被認証装置からαおよびβの送付を受けると、送付されたαとβに対して、今回認証情報Aを用いて、「H(β XOR A) XOR α」が今回認証情報Aと一致するかどうかを検証する(ステップS1505)。
そして、両者が一致する場合、ユーザ(被認証装置と言っても良い)の資格を認証し(認証成立)、次回(n+1回目)の認証に用いる認証情報としてAn+1を記録媒体に保存する(ステップS1506)。一方、両者が一致しない場合、認証は不成立としてエラーメッセージを送付する等して(ステップS1507)、本フローチャートによる処理を終了する。以上のような処理によって、認証装置は,認証を求めてきたユーザ(被認証装置)に対して認証を行う。
辻貴介(Takasuke Tsuji),他2名,「シンプル アンド セキュア パスワード オーセンティケイション プロトコル バージョン2(Simple And Secure password authentication protocol, ver. 2 (SAS-2))」,電子情報通信学会技術研究報告書,2002年,OIS2002-30, Vol. 102, No. 314, p7-11
ワンタイムパスワード認証方式が上位レイヤで用いられる場合、認証はプロセスの最初に一回だけ行えばいいため、それほど速度性能を必要としない。なお、ワンタイムパスワード認証方式が上位レイヤで用いられる場合は、例えば、クラウドサービスシステムやアプリケーション提供サービスシステムへのログイン時の認証に、ワンタイムパスワード認証方式が用いられる場合である。
また、下位レイヤにおいて、暗号通信のため、認証情報をシーズに暗号鍵を生成するといった鍵配送の手段に用いる場合、設定した鍵を使って比較的大量の暗号文を生成するのであれば鍵配送に用いられる認証方式にはそれほどの速度性能が求められない。なお、認証方式における「速度性能が高い」ことは、「処理負荷が小さい」ことと概ね等価の特徴である。
しかしながら、IoT技術の発展等に伴い、低いレイヤにおいて、処理性能がそれほど高くない機器とのセキュアな通信の実現においては、認証あるいは鍵配送に用いるワンタイムパスワード認証方式の速度性能は高いほど、すなわち処理負荷が小さいほど、その応用範囲が広がる。
上記の背景技術で示したSAS-2認証方式は、ワンタイムパスワード認証方式において、従来における最高速の速度性能を有する方式である。
ワンタイムパスワード認証方式の速度性能は、使用されている演算によって決まるが、通常、一方向性変換関数は、排他的論理和や加算等の演算を数多く組み合わせて実現しており、排他的論理和、加算の各演算数回の速度負荷は、一方向性変換関数による演算の負荷に比較してほとんど無視できる。したがって、ワンタイムパスワード認証方式の速度性能は、一方向性変換関数の適用回数によって評価することができる。
従来、最高速と言われるSAS-2認証方式は、被認証者であるユーザ側においてステップS1501、S1503から分かるように、一方向性変換関数「H」の適用回数は3回である。ステップS1501で生成されるAを記憶しておいて再利用すれば、一方向性変換関数の適用回数を2回にすることができる。認証装置側においては、ステップS1505から分かる通り、一方向性変換関数の適用回数は1回である。すなわち、SAS-2認証方式の一方向性変換関数の適用回数は、被認証者側で3回、認証装置側で1回である。なお、前回計算済の今回認証情報を記憶しておけば、この一方向性変換関数の適用回数は、被認証者側で2回、認証装置側で1回となる。
つまり、従来技術においては、認証者と被認証者双方において、最低でも一方向性変換関数1回の適用が必要であり、IoT技術等の進展に対応して、処理能力の低い端末を用いる場合等においては、ワンタイムパスワードの認証処理の速度が十分でない、あるいは処理負荷が大きすぎる場合がある、と考えられる。
かかることに鑑み、本発明は、従来最高速と言われてきたSAS-2認証方式の実行速度と比較しても、処理速度を高速化する、すなわち処理負荷をさらに小さくする安全なワンタイムパスワード認証方式を実現することによって、IoT等の一層幅広い技術領域へのセキュリティ機能の付加を実現することを目的とする。
本第一の発明の認証システムは、認証される装置である被認証装置と当該被認証装置を認証する装置である認証装置とを具備する認証システムであって、前記被認証装置は、第一データ(α)と第二データ(β)とを前記認証装置に送信する送信部を具備し、前記第一データ(α)は、パスワード(S)と第n(nは1以上の自然数)の乱数(N)との排他的論理和の演算(S XOR N)を行い取得された第一演算結果に対して一方向性変換関数Hが施され、取得された第n+1の認証情報(An+1)と、第nの認証情報(A)との排他的論理和の演算(A XOR An+1)が行われ、取得された情報であり、前記第二データ(β)は、前記第nの認証情報(A)と前記第n+1の認証情報(An+1)とを用いて、第一演算が行われ、取得された情報であり、前記認証装置は、前記第一データ(α)と前記第二データ(β)とを前記被認証装置から受信する受信部と、前記第一データ(α)と前記第nの認証情報(A)との排他的論理和の演算(α XOR A)を行い、第n+1の認証情報(An+1)を取得する第二排他的論理和部と、前記第二排他的論理和部が取得した前記第n+1の認証情報(An+1)と、第nの認証情報(A)とを用いて、前記第一演算を行い、第二演算結果を取得する第二演算部と、前記第二演算結果が前記第二データ(β)と一致するか否かを判断する認証部と、前記認証部の判断結果を用いた処理を行う認証結果処理部とを具備する認証システムである。
かかる構成により、ワンタイムパスワードの認証処理が高速にできる。
また、本第二の発明の認証システムは、第一の発明に対して、前記被認証装置は、パスワード(S)が格納される第一パスワード格納部と、第n+1の乱数(Nn+1)を生成する第一乱数生成部と、前記パスワード(S)と前記第n+1の乱数(Nn+1)との排他的論理和の演算(S XOR Nn+1)を行い、第一演算結果を取得する第一排他的論理和部と、前記第一演算結果に対して一方向性変換関数Hを施し、第n+1の認証情報(An+1)を取得する変換部とをさらに具備し、前記第一排他的論理和部は、前記第nの認証情報(A)と前記第n+1の認証情報(An+1)との排他的論理和の演算(A XOR An+1)を行い、第一データ(α)を取得し、前記認証装置は、前記第nの認証情報(A)と前記第n+1の認証情報(An+1)とを用いて、第一演算を行い、第二データ(β)を取得する第一演算部をさらに具備する認証システムある。
かかる構成により、ワンタイムパスワードの認証処理が高速にできる。
また、本第三の発明の認証システムは、第二の発明に対して、前記被認証装置において、前記第一乱数生成部は、第一の乱数(N)を生成し、前記第一排他的論理和部は、前記パスワード(S)と前記第一の乱数(N)との排他的論理和の演算(S XOR N)を行い、第一演算結果を取得し、前記変換部は、前記第一排他的論理和部が取得した第一演算結果に対して一方向性変換関数Hを施し、第一の認証情報(A)を取得し、前記送信部は、前記第一の認証情報(A)を前記認証装置に送信し、前記認証装置において、前記受信部は、前記第一の認証情報(A)を受信する、認証システムを構成する認証システム認証システムである。
かかる構成により、ワンタイムパスワードの認証処理が高速かつ頑強にできる。
また、本第四の発明の認証システムは、第一から第三のいずれかの発明に対して、前記被認証装置において、認証に使用する秘密の情報である第nの秘匿情報(M)が格納される第一秘匿情報納部をさらに具備し、前記第一排他的論理和部は、前記第n+1の認証情報(An+1)と前記第nの認証情報(A)と前記第nの秘匿情報(M)とを用いて、排他的論理和の演算(An+1 XOR A XOR M)を行い、第一データ(α)を取得し、前記認証装置において、第n(nは1以上の自然数)の秘匿情報(M)が格納される第二秘匿情報納部をさらに具備し、前記第二排他的論理和部は、前記第一データ(α)と前記第nの認証情報(A)と前記第nの秘匿情報(M)とを用いて、排他的論理和の演算(α XOR A XOR M)を行い、第n+1の認証情報(An+1)を取得し、前記第n+1の認証情報(An+1)と前記第nの秘匿情報(M)とを用いて、第二演算を行い、第n+1の秘匿情報(Mn+1)を取得し、前記第二秘匿情報納部に蓄積する第二演算部をさらに具備する、認証システムである。
かかる構成により、ワンタイムパスワードの認証処理が高速かつ頑強にできる。
また、本第五の発明の認証システムは、第四の発明に対して、前記被認証装置において、認証に使用する秘密の情報である第一の秘匿情報(M)を生成する秘匿情報生成部をさらに具備し、前記第一排他的論理和部は、前記第n+1の認証情報(An+1)と前記第nの認証情報(A)と前記第nの秘匿情報(M)との排他的論理和の演算(An+1 XOR A XOR M)を行い、第一データ(α)を取得し、前記送信部は、前記第一の認証情報(A)と前記第一の秘匿情報(M)とを前記認証装置に送信し、前記認証装置において、前記受信部は、前記第一の認証情報(A)を受信し、前記第一の秘匿情報(M)を受信し、前記第二排他的論理和部は、前記第一データ(α)と前記第nの認証情報(A)と前記第nの秘匿情報(M)とを用いて、排他的論理和の演算(α XOR A XOR M)を行い、第n+1の認証情報(An+1)を取得し、前記第n+1の認証情報(An+1)と前記第nの秘匿情報(M)とを用いて、第二演算を行い、第n+1の秘匿情報(Mn+1)を取得する第二演算部をさらに具備する、認証システムである。
かかる構成により、ワンタイムパスワードの認証処理が高速かつ頑強にできる。
また、本第六の発明の認証システムは、第一から第三のいずれかの発明に対して、前記被認証装置において、認証に使用する秘密の情報である第nの秘匿情報(M)が格納される第一秘匿情報納部をさらに具備し、前記第一排他的論理和部は、前記第n+1の認証情報(An+1)と前記第nの認証情報(A)と前記第nの秘匿情報(M)とを用いて、排他的論理和の演算(An+1 XOR A XOR M)を行い、第一データ(α)を取得し、前記認証装置において、第n(nは1以上の自然数)の秘匿情報(M)が格納される第二秘匿情報納部をさらに具備し、前記第二排他的論理和部は、前記第一データ(α)と前記第nの認証情報(A)と前記第nの秘匿情報(M)とを用いて、排他的論理和の演算(α XOR A XOR M)を行い、第n+1の認証情報(An+1)を取得し、前記第nの認証情報(A)と前記第nの秘匿情報(M)とを用いて、第二演算を行い、第n+1の秘匿情報(Mn+1)を取得し、前記第二秘匿情報納部に蓄積する第二演算部をさらに具備する、認証システムを構成する認証システム取得し、当該第n+1の秘匿情報(Mn+1)を第二秘匿情報納部に蓄積する、認証システムである。
かかる構成により、ワンタイムパスワードの認証処理が高速かつ頑強にできる。
また、本第七の発明の認証システムは、第六の発明に対して、前記被認証装置において、認証に使用する秘密の情報である第一の秘匿情報(M)を生成する秘匿情報生成部をさらに具備し、前記第一排他的論理和部は、前記第n+1の認証情報(An+1)と前記第nの認証情報(A)と前記第nの秘匿情報(M)との排他的論理和の演算(An+1 XOR A XOR M)を行い、第一データ(α)を取得し、前記送信部は、前記第一の認証情報(A)と前記第一の秘匿情報(M)とを前記認証装置に送信し、前記認証装置において、前記受信部は、前記第一の認証情報(A)を受信し、前記第一の秘匿情報(M)を受信し、前記第二排他的論理和部は、前記第一データ(α)と前記第nの認証情報(A)と前記第nの秘匿情報(M)とを用いて、排他的論理和の演算(α XOR A XOR M)を行い、第n+1の認証情報(An+1)を取得し、前記第nの認証情報(A)と前記第nの秘匿情報(M)とを用いて、第二演算を行い、第n+1の秘匿情報(Mn+1)を取得する第二演算部をさらに具備する認証システム認証システムである。
かかる構成により、ワンタイムパスワードの認証処理が高速かつ頑強にできる。
また、本第八の発明の認証システムは、第一から第七いずれか1つの発明に対して、第一演算、または第二演算は和演算である認証装置である。
かかる構成により、ワンタイムパスワードの認証処理が高速にできる。
本発明による認証システムによれば、ワンタイムパスワードの認証処理が高速にできる。
実施の形態1における認証システムAの概念図 同認証システムAのブロック図 同認証装置2のブロック図 同初期登録処理例の動作について説明するフローチャート 同認証時の認証処理例の動作について説明するフローチャート 実施の形態2における認証システムBのブロック図 同初期登録処理例の動作について説明するフローチャート 同認証時の認証処理例の動作について説明するフローチャート 実施の形態2における認証システムCのブロック図 同認証装置6のブロック図 同認証時の認証処理例の動作について説明するフローチャート 同コンピュータシステムの概観図 同コンピュータシステムのブロック図 従来技術のSAS-2認証方式における初期登録処理例の動作について説明するフローチャート
同SAS-2認証方式における認証時の認証処理例の動作について説明するフローチャート
以下、認証システム等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
(実施の形態1)
本実施の形態において、一方向性変換関数の実行回数を少なくできるために、認証処理を高速に行う認証システムについて説明する。
図1は、本実施の形態における認証システムAの概念図である。認証システムAは、1または2以上の被認証装置1、および認証装置2を備える。被認証装置1は、認証対象であり、認証装置2と通信可能であれば何でも良い。被認証装置1として、例えば、いわゆるパーソナルコンピュータ、タブレット端末、スマートフォン、携帯電話、テレビ、自動車等のあらゆる機器が考えられ、その種類は問わない。認証装置2は、例えば、いわゆるクラウドサーバ、ASPサーバ等であるが、その種類は問わない。
図2は、本実施の形態における認証システムAのブロック図である。図3は、本実施の形態における認証システムAを構成する認証装置2のブロック図である。
認証システムAを構成する被認証装置1は、第一格納部11、第一処理部12、および送信部13を備える。第一格納部11は、第一パスワード格納部111、第一乱数格納部112、第一認証情報格納部113、および第一秘匿情報納部114を備える。第一処理部12は、第一乱数生成部121、第一排他的論理和部122、変換部123、秘匿情報生成部124、および第一演算部125を備える。
認証装置2は、第二格納部21、受信部22、および第二処理部23を備える。第二格納部21は、第二認証情報格納部211、および第二秘匿情報納部212を備える。第二処理部23は、第二排他的論理和部231、第二演算部232、認証部233、第二蓄積部234、および認証結果処理部235を備える。
被認証装置1を構成する第一格納部11には、各種の情報が格納される。各種の情報とは、例えば、後述するパスワード、後述する乱数、後述する認証情報、後述する秘匿情報等である。
第一パスワード格納部111は、パスワード(S)が格納される。なお、パスワード(S)は、任意の情報であり、何でも良い。Sは、例えば、「ABC」「125XYZ」「あいうえおQ!」等である。
第一乱数格納部112は、第nの乱数(N)が格納される。なお、nは1以上の自然数である。第一乱数格納部112には、第1の乱数(N)、第2の乱数(N)、・・・第nの乱数(N)等の多数の乱数が格納されても良いし、最新の乱数である第nの乱数(N)のみ格納されても良い。第一乱数格納部112の第nの乱数(N)は、通常、被認証装置1が生成するが、1または2以上の乱数が、予め第一乱数格納部112に格納されていても良い。
第一認証情報格納部113は、第nの認証情報(A)が格納される。認証情報とは、認証に利用される情報であり、後述する一方向性変換関数が適用された結果の情報である。第一認証情報格納部113には、第1の認証情報(A)、第2の認証情報(A)、・・・第nの認証情報(A)等の多数の認証情報が格納されても良い。第一認証情報格納部113の第nの認証情報(A)は、通常、被認証装置1が生成するが、第一認証情報格納部113に1または2以上の認証情報(A,A,・・・,A)が予め格納されていても良い。
第一秘匿情報納部114は、第nの秘匿情報(M)が格納される。秘匿情報は、認証に使用する秘密の情報である。秘匿情報は、マスクデータと言っても良い。秘匿情報の内容や種類等は問わない。第一秘匿情報納部114には、第1の秘匿情報(M)、第2の秘匿情報(M)、・・・第nの秘匿情報(M)等の多数の秘匿情報が格納されても良い。第一秘匿情報納部114の第nの秘匿情報(M)は、通常、被認証装置1が生成するが、第一秘匿情報納部114に1または2以上の秘匿情報(M,M,・・・,M)が予め格納されていても良い。
また、第一格納部11に、1または2以上の第一データ(α)、1または2以上の第二データ(β)が予め格納されていても良い。第一データ(α)は、パスワード(S)と第n(nは1以上の自然数)の乱数(N)との排他的論理和の演算(S XOR N)を行い取得された第一演算結果に対して一方向性変換関数Hが施され、取得された第n+1の認証情報(An+1)と、第nの認証情報(A)と、第nの秘匿情報(M)との排他的論理和の演算(A XOR An+1 XOR M)が行われ、取得された情報である。また、第二データ(β)は、第nの認証情報(A)と第n+1の認証情報(An+1)とを用いて、第一演算が行われ、取得された情報である。
2以上の各第一データ(α)は、排他的論理和の演算「(A XOR An+1)または(A XOR An+1 XOR M)」のnが異なるデータである。また、n個の第一データ(α)は、例えば、添字のnを、1からnまで1ずつずらしながら排他的論理和の演算を行った結果のデータである。
2以上の各第二データ(β)は、排他的論理和の演算「(A + An+1)のnが異なるデータである。また、n個の第二データ(β)は、例えば、添字のnを、1からnまで1ずつずらしながら第一演算を行った結果のデータである。 第一処理部12は、各種の処理を行う。各種の処理とは、例えば、第一乱数生成部121、第一排他的論理和部122、変換部123、秘匿情報生成部124、第一演算部125が行う処理である。
第一乱数生成部121は、第一の乱数(N)を生成し、第一乱数格納部112に蓄積する。また、第一乱数生成部121は、第n+1の乱数(Nn+1)を生成し、第一乱数格納部112に蓄積する。なお、乱数を発生するアルゴリズムは問わない。また、乱数を発生する処理は公知技術であるので、詳細な説明は省略する。
第一乱数生成部121が乱数を生成するタイミングは問わない。例えば、第一乱数生成部121は、ユーザからの指示に応じて、乱数を生成する。例えば、第一乱数生成部121は、外部の装置から命令が受信されたことにより、乱数を生成する。例えば、第一乱数生成部121は、予め決められた時刻になった場合に、乱数を生成する。
第一排他的論理和部122は、例えば、パスワード(S)と第一の乱数(N)との排他的論理和の演算(S XOR N)を行い、第一演算結果を取得する。また、第一排他的論理和部122は、例えば、パスワード(S)と第n+1の乱数(Nn+1)との排他的論理和の演算(S XOR Nn+1)を行い、第一演算結果を取得する。
また、第一排他的論理和部122は、例えば、第n+1の認証情報(An+1)と第nの認証情報(A)とを用いて、排他的論理和の演算(An+1 XOR A)を行い、第一データ(α)を取得する。
また、第一排他的論理和部122は、例えば、第n+1の認証情報(An+1)と第nの認証情報(A)と第nの秘匿情報(M)とを用いて、排他的論理和の演算(An+1 XOR A XOR M)を行い、第一データ(α)を取得する。
また、第一排他的論理和部122は、例えば、第n+1の認証情報(An+1)と第nの認証情報(A)と第nの秘匿情報(M)とを用いて、演算((An+1 XOR A) + M))を行い、第一データ(α)を取得する。なお、ここでの「+」は他の演算(例えば、「-」「×」等)でも良い。つまり、第一排他的論理和部122は、排他的論理和以外の演算を含めて、演算を実行しても良い。
変換部123は、第一排他的論理和部122が取得した第一演算結果に対して一方向性変換関数Hを施し、第一の認証情報(A)を取得し、第一認証情報格納部113に蓄積する。上述したように、一方向性変換関数Hは、例えば、ハッシュ関数であるが、その種類は問わない。
変換部123は、第一演算結果に対して一方向性変換関数Hを施し、第n+1の認証情報(An+1)を取得し、当該第n+1の認証情報(An+1)を第一認証情報格納部113に蓄積する。なお、一方向性変換関数Hを施すことは、一方向性変換関数を適用することと言っても良い。ここで、蓄積とは、第n+1の認証情報(An+1)を第nの認証情報(A)に上書きすることでも良いし、追記することでも良い。
秘匿情報生成部124は、認証に使用する秘密の情報である第一の秘匿情報(M)を生成し、当該第一の秘匿情報(M)を第一秘匿情報納部114に蓄積する。ここで、第一の秘匿情報(M)は、任意の情報であり、何でも良い。なお、パスワード(S)、乱数(N)、認証情報(A)のビット数と、秘匿情報(M)のビット数は同じであることは好適である。
また、秘匿情報生成部124が第一の秘匿情報(M)を生成する方法は問わない。秘匿情報生成部124は、第一の秘匿情報(M)が取得できれば良い。秘匿情報生成部124は、例えば、第一格納部11に格納されている秘匿情報の候補の中から情報を選択する。秘匿情報生成部124は、例えば、予め格納されている元情報(秘匿情報を生成するための元になる情報)に対して予め決められた処理を行い、新しい秘匿情報を取得する。なお、予め決められた処理とは、例えば、予め格納されている関数に元情報をパラメータとして与えて、当該関数の実行することである。
秘匿情報生成部124は、例えば、第nの認証情報(A)と第nの秘匿情報(M)に対して第一演算を施し、第n+1の秘匿情報(Mn+1)を取得する。つまり、第一演算が、例えば、和の場合、秘匿情報生成部124は、例えば、「第n+1の秘匿情報(Mn+1)=第nの認証情報(A)+第nの秘匿情報(M)」により、第n+1の秘匿情報(Mn+1)を取得する。
第一演算部125は、第nの認証情報(A)と第n+1の認証情報(An+1)とを用いて、第一演算を行い、第二データ(β)を取得する。ここで、第一演算は、例えば、和、差、乗算、除算、平均値算出等であり、演算の種類は問わない。第一演算部125は、例えば、和演算「β=A+An+1」により、βを取得する。
第一演算部125は、例えば、第nの認証情報(A)と第n+1の認証情報(An+1)と第nの秘匿情報(M)とを用いて、第一演算を行い、第二データ(β)を取得する。第一演算部125は、例えば、「β=A+An+1+M」、「β=A+An+1-M」、「β=(A-An+1)×M」により、βを取得する。
また、第一演算部125は、例えば、第nの秘匿情報(M)、第n+1の認証情報(An+1)と、第nの認証情報(A)のうちの1以上の情報を用いて演算を行い、第n+1の秘匿情報(Mn+1)を取得し、当該第n+1の秘匿情報(Mn+1)を第一秘匿情報納部114に蓄積する。なお、かかる演算の種類は問わない。また、かかる演算は、例えば、「Mn+1=M+A」、「Mn+1=An+1+A+M」、「Mn+1=M+An+1」、「Mn+1=M+x(xは定数)」である。なお、「+」は他の演算でも良いことは言うまでもない。 また、第一演算部125は、例えば、第nの認証情報(A)と第nの秘匿情報(M)とを用いて、第二演算を行い、第n+1の秘匿情報(Mn+1)を取得し、当該第n+1の秘匿情報(Mn+1)を第一秘匿情報納部114に蓄積する。
なお、第一排他的論理和部122が第一データ(α)を算出する際、または第一演算部125が第二データ(β)を算出する際の、少なくともどちらか一方では、秘匿情報(M)が使用されることは好適である。なお、第一排他的論理和部122が第一データ(α)を算出する際と第一演算部125が第二データ(β)を算出する際の両方、秘匿情報(M)が使用されても良い。
送信部13は、第一の認証情報(A)と第一の秘匿情報(M)とを認証装置2に送信する。また、送信部13は、第一データ(α)と第二データ(β)とを認証装置2に送信する。
被認証装置1の認証処理の開始のトリガーは問わない。例えば、図示しない受付部がユーザからの指示を受け付けたことに応じて、被認証装置1は認証処理を開始する。例えば、図示しない受付部が外部の装置からの命令を受信したことにより、被認証装置1は認証処理を開始する。例えば、第一処理部12が予め決められた時刻になったことを検知した場合に、被認証装置1は認証処理を開始する。
認証装置2を構成する第二格納部21には、各種の情報が格納される。各種の情報とは、例えば、認証情報、秘匿情報である。
第二認証情報格納部211は、第nの認証情報(A)が格納される。なお、第1の認証情報(A)は、被認証装置1から受信された情報である。第二以降の認証情報(A,A,・・・,A)は、認証装置2で生成された情報である。第二認証情報格納部211には、第1の認証情報(A)、第2の認証情報(A)、・・・第nの認証情報(A)等の多数の認証情報が格納されても良い。
第二秘匿情報納部212は、第nの秘匿情報(M)が格納される。なお、第1の秘匿情報(M)は、被認証装置1から受信された情報である。第二以降の秘匿情報(M, M,・・・,M)は、認証装置2で生成された情報である。第二秘匿情報納部212には、第1の秘匿情報(M)、第2の秘匿情報(M)、・・・第nの秘匿情報(M)等の多数の秘匿情報が格納されても良い。
受信部22は、第一の認証情報(A)を受信し、当該第一の認証情報(A)を第二認証情報格納部211に蓄積する。また、受信部22は、第一の秘匿情報(M)を受信し、当該第一の秘匿情報(M)を第二秘匿情報納部212に蓄積する。また、受信部22は、第一データ(α)と第二データ(β)とを被認証装置1から受信する。
第二処理部23は、各種の処理を行う。各種の処理とは、例えば、第二排他的論理和部231、第二演算部232、認証部233、第二蓄積部234、認証結果処理部235が行う処理である。
第二排他的論理和部231は、例えば、第一データ(α)と第nの認証情報(A)とを用いて、排他的論理和の演算(α XOR A)を行い、第n+1の認証情報(An+1)を取得する。
第二排他的論理和部231は、例えば、第一データ(α)と第nの認証情報(A)と第nの秘匿情報(M)とを用いて、排他的論理和の演算(α XOR A XOR M)を行い、第n+1の認証情報(An+1)を取得する。
第二演算部232は、例えば、第nの秘匿情報(M)、第n+1の認証情報(An+1)、第nの認証情報(A)のうちの1以上の情報を用いて演算を行い、第n+1の秘匿情報(Mn+1)を取得し、当該第n+1の秘匿情報(Mn+1)を第二秘匿情報納部212に蓄積する。なお、かかる演算の種類は問わない。また、かかる演算は、例えば、「Mn+1=M+A」、「Mn+1=An+1+A+M」、「Mn+1=M+An+1」、「Mn+1=M+x(xは定数)」である。なお、「+」は他の演算でも良いことは言うまでもない。
第二演算部232は、例えば、第二排他的論理和部231が取得した第n+1の認証情報(An+1)と、第nの認証情報(A)とを用いて、第一演算を行い、第二演算結果を取得する。
第二演算部232は、例えば、受信部22が受信した第一データ(α)と、第n+1の認証情報(An+1)と、第nの認証情報(A)、第nの秘匿情報(M)とを用いて、第一演算を行い、第二演算結果を取得する。第二演算部232は、例えば、演算式「(α XOR A XOR M)+A」により、第二演算結果を取得する。
また、第二演算部232は、例えば、第nの認証情報(A)と第nの秘匿情報(M)とを用いて、第二演算を行い、第n+1の秘匿情報(Mn+1)を取得し、当該第n+1の秘匿情報(Mn+1)を第二秘匿情報納部212に蓄積する。ここで、第二演算は、例えば、和、差、乗算、除算、平均値算出等である。ただし、第二演算の演算の種類は問わない。第二演算部232は、例えば、和演算「Mn+1=A+M」により、βを取得する。また、第一演算と第二演算とは、同じ種類の演算でも良いし、異なる種類の演算でも良い。
認証部233は、第二演算部232が取得した第二演算結果が第二データ(β)と一致するか否かを判断する。
第二蓄積部234は、第二演算結果と第二データ(β)とが一致すると認証部233が判断した場合、第二排他的論理和部231が取得した第n+1の認証情報(An+1)を第二認証情報格納部211に蓄積する。ここで、蓄積とは、第n+1の認証情報(An+1)を第nの認証情報(A)に上書きしても良いし、追記しても良い。
認証結果処理部235は、認証部233の判断結果を用いた処理を行う。認証結果処理部235は、例えば、認証部233の判断結果を被認証装置1に送信する。また、認証結果処理部235は、例えば、判断結果が認証許可である場合、ユーザ(被認証装置1)のログインを許可する。また、認証結果処理部235は、例えば、判断結果が認証許可である場合、被認証装置1を動作可能にする。また、認証結果処理部235は、例えば、判断結果が認証不許可である場合、被認証装置1にエラーメッセージを送信する。
第一格納部11、第一パスワード格納部111、第一乱数格納部112、第一認証情報格納部113、第一秘匿情報納部114、第二格納部21、第二認証情報格納部211、および第二秘匿情報納部212は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
第一格納部11等に情報が記憶される過程は問わない。例えば、記録媒体を介して情報が第一格納部11等で記憶されるようになってもよく、通信回線等を介して送信された情報が第一格納部11等で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された情報が第一格納部11等で記憶されるようになってもよい。
第一処理部12、第一乱数生成部121、第一排他的論理和部122、変換部123、秘匿情報生成部124、第一演算部125、第二処理部23、第二排他的論理和部231、第二演算部232、認証部233、第二蓄積部234、および認証結果処理部235は、通常、MPUやメモリ等から実現され得る。第一処理部12等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
送信部13は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。
受信部22は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。
次に、認証システムAの動作について説明する。まず、認証システムAにおける被認証装置1の初期登録処理の例を図4のフローチャートを用いて説明する。なお、動作開始時に、被認証装置1は、第一パスワード格納部111にパスワード(S)を保持している、とする。
(ステップS401)被認証装置1の第一乱数生成部121は、第一の乱数(N)を生成し、第一乱数格納部112に蓄積する。
(ステップS402)第一排他的論理和部122は、格納されているパスワード(S)とステップS401で取得された第一の乱数(N)との排他的論理和の演算(S XOR N)を行い、第一演算結果を取得する。また、変換部123は、第一排他的論理和部122が取得した第一演算結果に対して一方向性変換関数Hを施し、第一の認証情報(A)を取得する。また、秘匿情報生成部124は、認証に使用する秘密の情報である第一の秘匿情報(M)を生成する。
(ステップS403)変換部123は、取得した第一の認証情報(A)を第一認証情報格納部113に保存する。また、秘匿情報生成部124は、生成した第一の秘匿情報(M)を第一秘匿情報納部114に保存する。
(ステップS404)送信部13は、取得された第一の認証情報(A)と第一の秘匿情報(M)とを認証装置2に安全な手段で送信する。ここで、被認証装置1の初期登録処理は完了する。
(ステップS405)認証装置2の受信部22は、第一の認証情報(A)を受信し、当該第一の認証情報(A)を第二認証情報格納部211に蓄積する。また、受信部22は、第一の秘匿情報(M)を受信し、当該第一の秘匿情報(M)を第二秘匿情報納部212に蓄積する。ここで、認証装置2の初期登録処理は完了する。
なお、図4のフローチャートにおいて、被認証装置1は、第一の認証情報(A)と第一の秘匿情報(M)とを予め格納しており、かかる第一の認証情報(A)と第一の秘匿情報(M)とを認証装置2に送信しても良い。かかる場合、ステップS401からステップS403の処理は不要である。
次に、認証システムAにおけるn回目の認証時の認証処理の例を、図5のフローチャートを用いて説明する。なお、n回目の認証処理の開始時に、被認証装置1は、パスワード(S)を第一パスワード格納部111に保持しており、かつ乱数(N)を第一乱数格納部112に保持している。また、n回目の認証処理の開始時に、認証装置2は、第nの認証情報(A)を第二認証情報格納部211に保持しており、第nの秘匿情報(M)を第二秘匿情報納部212に保持している。
(ステップS501)第一排他的論理和部122は、格納されているパスワード(S)と格納されている第nの乱数(N)との排他的論理和の演算(S XOR N)を行い、第一演算結果を取得する。次に、変換部123は、第一排他的論理和部122が取得した第一演算結果に対して一方向性変換関数Hを施し、第nの認証情報(A)を取得する。
(ステップS502)第一乱数生成部121は、第n+1の乱数(Nn+1)を生成し、第一乱数格納部112に保存する。
(ステップS503)第一排他的論理和部122は、パスワード(S)と第n+1の乱数(Nn+1)との排他的論理和の演算(S XOR Nn+1)を行い、第一演算結果を取得する。次に、変換部123は、第一演算結果に対して一方向性変換関数Hを施し、第n+1の認証情報(An+1)を取得し、第一認証情報格納部113に蓄積する。次に、第一排他的論理和部122は、第n+1の認証情報(An+1)と第nの認証情報(A)と第nの秘匿情報(M)とを用いて、排他的論理和の演算(An+1 XOR A XOR M)を行い、第一データ(α)を取得する。また、第一演算部125は、第nの認証情報(A)と第n+1の認証情報(An+1)とを用いて、第一演算を行い、第二データ(β)を取得する。なお、第一演算は、ここでは和演算である。また、第一演算部125は、第nの秘匿情報(M)、第nの認証情報(A)を用いて演算を行い、第n+1の秘匿情報(Mn+1)を取得し、当該第n+1の秘匿情報(Mn+1)を第一秘匿情報納部114に蓄積する。なお、かかる場合の演算は、例えば、「和」である。
(ステップS504)送信部13は、ステップS503で取得された第一データ(α)と第二データ(β)とを安全な手段で認証装置2に送信する。ここで、被認証装置1のn回目の認証処理は完了する。
(ステップS505)認証装置2の受信部22は、第一データ(α)と第二データ(β)とを被認証装置1から受信する。そして、第二排他的論理和部231は、第一データ(α)と第nの認証情報(A)と第nの秘匿情報(M)とを用いて、排他的論理和の演算(α XOR A XOR M)を行い、第n+1の認証情報(An+1)を取得する。次に、第二演算部232は、第二排他的論理和部231が取得した第n+1の認証情報(An+1)と、第nの認証情報(A)とを用いて、第一演算を行い、第二演算結果を取得する。次に、認証部233は、第二演算結果が第二データ(β)と一致するか否かを判断する。認証部233が一致すると判断した場合はステップS506に行き、一致しないと判断した場合はステップS507に行く。なお、第一演算は、ここでは、例えば、和演算である。
(ステップS506)ステップS506に制御が移る場合は、認証が成立した場合(認証許可)である。そして、第二蓄積部234は、第二排他的論理和部231が取得した第n+1の認証情報(An+1)を第二認証情報格納部211に蓄積する。また、第二演算部232は、第nの認証情報(A)と第nの秘匿情報(M)とを用いて、第二演算を行い、第n+1の秘匿情報(Mn+1)を取得し、当該第n+1の秘匿情報(Mn+1)を第二秘匿情報納部212に蓄積する。なお、認証結果処理部235は、認証許可に対応する処理を行っても良い。また、第二演算は、ここでは、例えば、和演算である。
(ステップS507)ステップS507に制御が移る場合は、認証が不成立である場合(認証不許可)である。そして、認証結果処理部235は、認証不許可に対応する処理を行う。かかる処理は、例えば、エラーメッセージ等の被認証装置1への送付である。
なお、図5のフローチャートにおいて、次回以降(n+1回以降)の認証処理時にも、同様に動作が行われる。
また、図5のフローチャートにおいて、被認証装置1は、第一の認証情報(A)に対応する第一データ(α)(第一の認証情報(A)と第二の認証情報(A)とを用いて取得されたα)、第二の認証情報(A)に対応する第一データ(α)(第二の認証情報(A)と第三の認証情報(A)とを用いて取得されたα)、・・・、第nの認証情報(A)に対応する第一データ(α)(第nの認証情報(A)と第n+1の認証情報(An+1)とを用いて取得されたα)等を予め格納していても良い。また、第一の認証情報(A)に対応する第二データ(β)(第一の認証情報(A)と第二の認証情報(A)とを用いて取得されたβ)、第二の認証情報(A)に対応する第二データ(β)(第二の認証情報(A)と第三の認証情報(A)とを用いて取得されたβ)、・・・、第nの認証情報(A)に対応する第二データ(β)(第nの認証情報(A)と第n+1の認証情報(An+1)とを用いて取得されたβ)等を予め格納していても良い。かかる場合、ステップS501からステップS503の処理は省略可能である。
また、図5のフローチャートにおいて、第nの認証情報(A)が予め格納されている場合、ステップS501の処理は不要である。
以上、本実施の形態によれば、ワンタイムパスワードの認証処理において、一方向性変換関数の実行回数を少なくできるために、認証処理が高速に行える。なお、認証処理が高速に行えることは、認証処理の負荷を小さくできることである。
さらに具体的には、上記の図4、図5のフローチャートで示した通り、本認証方式では、認証時、被認証装置1では認証情報の生成に、一方向性変換関数2回、第一演算(例えば、加算)1回、排他的論理和4回を必要とする。そして、第一演算(例えば、加算)と排他的論理和の各演算の処理負荷は、一方向性変換関数に比較して無視できるため、認証処理における処理負荷は、実質、一方向性変換関数の2回分の適用による負荷である、と言える。また、今回認証情報Aを保存しておけば、認証処理において、一方向性変換関数の適用は1回であり、極めて高速に認証処理が行える。なお、認証装置2での処理負荷は、排他的論理和2回、第一演算(例えば、加算)1回の処理の負荷であり、実質、それらの処理負荷は無視できる。
なお、上述した通り、本実施の形態において、次回認証情報と今回認証情報の融合演算(上記の第二演算)を、主として、加算としたが、次回認証情報と今回認証情報の融合演算を排他的論理和とする以外はあらゆる演算の使用が可能である。今回秘匿情報や任意の定数を付加する等も認められる。融合演算の組み合わせ情報を、今回認証情報によって秘匿化して認証装置2から被認証装置1へ送付し共有するなどのバリエーションも考えられる。
また、本実施の形態において、主として、次回秘匿情報を、今回認証情報と今回秘匿情報を加算することで算出したが、次回認証情報と今回秘匿情報の加算、あるいは今回認証情報と次回認証情報と今回秘匿情報の加算で算出しても良い。また、加算以外の演算、あるいは複数の演算の組み合わせにより次回秘匿情報を算出するようにしても良い。
また、上記の実施の形態において、認証終了後、認証装置2において、今回認証情報AからH(A)を生成し、これを被認証装置1へ送付し、被認証装置1において被認証装置1で保持するAから同様に生成したH(A)と比較し、同じであれば相互認証が成立するといった付加機能も実現でき得る。
さらに、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをCD-ROMなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における被認証装置1を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、パスワード(S)が格納される第一パスワード格納部と、第n(nは1以上の自然数)の乱数(N)が格納される第一乱数格納部と、第nの認証情報(A)が格納される第一認証情報格納部と、認証に使用する秘密の情報である第nの秘匿情報(M)が格納される第一秘匿情報納部とにアクセス可能なコンピュータを、第n+1の乱数(Nn+1)を生成し、前記第一乱数格納部に蓄積する第一乱数生成部と、前記パスワード(S)と前記第n+1の乱数(Nn+1)との排他的論理和の演算(S XOR Nn+1)を行い、第一演算結果を取得する第一排他的論理和部と、前記第一演算結果に対して一方向性変換関数Hを施し、第n+1の認証情報(An+1)を取得し、前記第一認証情報格納部に蓄積する変換部として機能させ、前記第一排他的論理和部は、前記第n+1の認証情報(An+1)と前記第nの認証情報(A)と前記第nの秘匿情報(M)とを用いて、排他的論理和の演算(An+1 XOR A XOR M)を行い、第一データ(α)を取得するように、コンピュータを機能させ、前記第nの認証情報(A)と前記第n+1の認証情報(An+1)とを用いて、第一演算を行い、第二データ(β)を取得する第一演算部と、前記第一データ(α)と前記第二データ(β)とを前記認証装置に送信する送信部として、コンピュータをさらに機能させるためのプログラムである。
また、上記プログラムにおいて、コンピュータを、認証に使用する秘密の情報である第一の秘匿情報(M)を生成し前記第一秘匿情報納部に蓄積する秘匿情報生成部としてさらに機能させ、前記送信部を、前記第一の認証情報(A)と前記第一の秘匿情報(M)とを前記認証装置に送信するものとして、コンピュータを機能させるプログラムであることは好適である。
(実施の形態2)
本実施の形態において、実施の形態1と比較して秘匿情報を用いずに認証処理を行う認証システムについて説明する。
本実施の形態における認証システムBの概念図は、符号の違いを除いて、認証システムAの概念図と同様である。認証システムBは、1または2以上の被認証装置3、および認証装置4を備える。被認証装置3は、認証対象であり、認証装置4と通信可能であれば何でも良い。被認証装置3として、例えば、いわゆるパーソナルコンピュータ、タブレット端末、スマートフォン、携帯電話、テレビ、自動車等のあらゆる機器が考えられ、その種類は問わない。認証装置4は、例えば、いわゆるクラウドサーバ、ASPサーバ等であるが、その種類は問わない。
図6は、本実施の形態における認証システムBのブロック図である。
被認証装置3は、第一格納部31、第一処理部32、および送信部33を備える。第一格納部31は、第一パスワード格納部111、第一乱数格納部112、および第一認証情報格納部113を備える。第一処理部32は、第一乱数生成部121、第一排他的論理和部322、変換部123、および第一演算部125を備える。
認証装置4は、第二格納部41、受信部42、および第二処理部43を備える。第二格納部41は、第二認証情報格納部211を備える。第二処理部43は、第二排他的論理和部431、第二演算部432、認証部433、第二蓄積部234、および認証結果処理部235を備える。
被認証装置3を構成する第一格納部31には、各種の情報が格納される。各種の情報とは、例えば、パスワード、乱数、認証情報等である。
第一処理部32は、各種の処理を行う。各種の処理とは、例えば、第一乱数生成部121、第一排他的論理和部322、変換部123、第一演算部125が行う処理である。
第一排他的論理和部322は、パスワード(S)と第n+1の乱数(Nn+1)との排他的論理和の演算(S XOR Nn+1)を行い、第一演算結果を取得する。また、第一排他的論理和部322は、第nの認証情報(A)と第n+1の認証情報(An+1)との排他的論理和の演算(A XOR An+1)を行い、第一データ(α)を取得する。また、第一排他的論理和部322は、パスワード(S)と第一の乱数(N)との排他的論理和の演算(S XOR N)を行い、第一演算結果を取得する。
送信部33は、第一データ(α)と第二データ(β)とを認証装置4に送信する。また、送信部33は、第一の認証情報(A)を認証装置4に送信する。
認証装置4を構成する第二格納部41には、各種の情報が格納される。各種の情報とは、例えば、認証情報である。
受信部42は、第一データ(α)と第二データ(β)とを被認証装置3から受信する。
第二処理部43は、各種の処理を行う。各種の処理とは、例えば、第二排他的論理和部431、第二演算部432、認証部433、第二蓄積部234、認証結果処理部235が行う処理である。
第二排他的論理和部431は、第一データ(α)と第nの認証情報(A)との排他的論理和の演算(α XOR A)を行い、第n+1の認証情報(An+1)を取得する。
第二演算部432は、第二排他的論理和部431が取得した第n+1の認証情報(An+1)と、第nの認証情報(A)とを用いて、第一演算を行い、第二演算結果を取得する。
認証部433は、第二演算結果が第二データ(β)と一致するか否かを判断する。
第一格納部31、第一パスワード格納部111、第一乱数格納部112、第一認証情報格納部113、第二格納部41、および第二認証情報格納部211に情報が記憶される過程は問わない。例えば、記録媒体を介して情報が第一格納部31で記憶されるようになってもよく、通信回線等を介して送信された情報が第一格納部31で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された情報が第一格納部31で記憶されるようになってもよい。
第一処理部32、第一排他的論理和部322、第二処理部43、第二排他的論理和部431、第二演算部432、および認証部433は、通常、MPUやメモリ等から実現され得る。第一処理部32等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
送信部33は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。
受信部42は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。
次に、認証システムAの動作について説明する。まず、認証システムBにおける被認証装置3の初期登録処理の例を図7のフローチャートを用いて説明する。なお、動作開始時に、被認証装置3は、パスワード(S)を保持している、とする。
(ステップS701)被認証装置3の第一乱数生成部121は、第一の乱数(N)を生成し、第一乱数格納部112に蓄積する。
(ステップS702)第一排他的論理和部322は、格納されているパスワード(S)とステップS701で取得された第一の乱数(N)との排他的論理和の演算(S XOR N)を行い、第一演算結果を取得する。また、変換部123は、第一排他的論理和部122が取得した第一演算結果に対して一方向性変換関数Hを施し、第一の認証情報(A)を取得する。
(ステップS703)変換部123は、取得した第一の認証情報(A)を第一認証情報格納部113に保存する。
(ステップS704)送信部33は、取得された第一の認証情報(A)を認証装置2に送信する。ここで、被認証装置3の初期登録処理は完了する。
(ステップS705)認証装置4の受信部42は、第一の認証情報(A)を受信し、当該第一の認証情報(A)を第二認証情報格納部211に蓄積する。ここで、認証装置4の初期登録処理は完了する。
次に、認証システムBにおけるn回目の認証時の認証処理の例を、図8のフローチャートを用いて説明する。なお、n回目の認証処理の開始時に、被認証装置3は、パスワード(S)を第一パスワード格納部111に保持しており、かつ乱数(N)を第一乱数格納部112に保持している。また、n回目の認証処理の開始時に、認証装置4は、第nの認証情報(A)を第二認証情報格納部211に保持している。
(ステップS801)第一排他的論理和部322は、格納されているパスワード(S)と格納されている第nの乱数(N)との排他的論理和の演算(S XOR N)を行い、第一演算結果を取得する。次に、変換部123は、第一排他的論理和部322が取得した第一演算結果に対して一方向性変換関数Hを施し、第nの認証情報(A)を取得する。
(ステップS802)第一乱数生成部121は、第n+1の乱数(Nn+1)を生成し、第一乱数格納部112に保存する。
(ステップS803)第一排他的論理和部322は、パスワード(S)と第n+1の乱数(Nn+1)との排他的論理和の演算(S XOR Nn+1)を行い、第一演算結果を取得する。次に、変換部123は、第一演算結果に対して一方向性変換関数Hを施し、第n+1の認証情報(An+1)を取得し、第一認証情報格納部113に蓄積する。次に、第一排他的論理和部322は、第n+1の認証情報(An+1)と第nの認証情報(A)とを用いて、排他的論理和の演算(An+1 XOR A)を行い、第一データ(α)を取得する。また、第一演算部125は、第nの認証情報(A)と第n+1の認証情報(An+1)とを用いて、第一演算を行い、第二データ(β)を取得する。
(ステップS804)送信部13は、ステップS803で取得された第一データ(α)と第二データ(β)とを認証装置4に送信する。ここで、被認証装置3のn回目の認証処理は完了する。
(ステップS805)認証装置4の受信部42は、第一データ(α)と第二データ(β)とを被認証装置3から受信する。次に、第二排他的論理和部431は、第一データ(α)と第nの認証情報(A)とを用いて、排他的論理和の演算(α XOR A)を行い、第n+1の認証情報(An+1)を取得する。次に、第二演算部432は、第二排他的論理和部431が取得した第n+1の認証情報(An+1)と、第nの認証情報(A)とを用いて、第一演算を行い、第二演算結果を取得する。次に、認証部233は、第二演算結果が第二データ(β)と一致するか否かを判断する。認証部233が一致すると判断した場合はステップS806に行き、一致しないと判断した場合はステップS807に行く。
(ステップS806)ステップS806に制御が移る場合は、認証が成立した場合(認証許可)である。そして、第二蓄積部234は、第二排他的論理和部431が取得した第n+1の認証情報(An+1)を第二認証情報格納部211に蓄積する。なお、認証結果処理部235は、認証許可に対応する処理を行っても良い。
(ステップS807)ステップS807に制御が移る場合は、認証が不成立である場合(認証不許可)である。そして、認証結果処理部235は、認証許可に対応する処理を行う。かかる処理は、例えば、エラーメッセージ等の被認証装置3への送付である。
なお、図8のフローチャートにおいて、次回以降(n+1回以降)の認証処理時にも、同様に動作が行われる。
また、図8のフローチャートにおいて、第nの認証情報(A)が格納されている場合、ステップS801の処理は不要である。
以上、本実施の形態によれば、ワンタイムパスワードの認証処理において、一方向性変換関数の実行回数を少なくできるために、認証処理が高速に行える。
さらに、本実施の形態における被認証装置3を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、パスワード(S)が格納される第一パスワード格納部と、第n(nは1以上の自然数)の乱数(N)が格納される第一乱数格納部と、第nの認証情報(A)が格納される第一認証情報格納部とにアクセス可能なコンピュータを、第n+1の乱数(Nn+1)を生成し、前記第一乱数格納部に蓄積する第一乱数生成部と、前記パスワード(S)と前記第n+1の乱数(Nn+1)との排他的論理和の演算(S XOR Nn+1)を行い、第一演算結果を取得する第一排他的論理和部と、前記第一演算結果に対して一方向性変換関数Hを施し、第n+1の認証情報(An+1)を取得し、前記第一認証情報格納部に蓄積する変換部として機能させ、前記第一排他的論理和部は、前記第nの認証情報(A)と前記第n+1の認証情報(An+1)との排他的論理和の演算(A XOR An+1)を行い、第一データ(α)を取得するように、コンピュータを機能させ、前記第nの認証情報(A)と前記第n+1の認証情報(An+1)とを用いて、第一演算を行い、第二データ(β)を取得する第一演算部と、前記第一データ(α)と前記第二データ(β)とを前記認証装置に送信する送信部として、コンピュータをさらに機能させるためのプログラムである。
また、認証装置4を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、第nの認証情報(A)が格納される第二認証情報格納部にアクセス可能なコンピュータを、前記第一データ(α)と前記第二データ(β)とを前記被認証装置から受信する受信部と、前記第一データ(α)と前記第nの認証情報(A)との排他的論理和の演算(α XOR A)を行い、第n+1の認証情報(An+1)を取得する第二排他的論理和部と、前記第二排他的論理和部が取得した前記第n+1の認証情報(An+1)と、第nの認証情報(A)とを用いて、前記第一演算を行い、第二演算結果を取得する第二演算部と、前記第二演算結果が前記第二データ(β)と一致するか否かを判断する認証部と、前記認証部が一致すると判断した場合は、前記第二排他的論理和部が取得した前記第n+1の認証情報(An+1)を前記第二認証情報格納部に蓄積する第二蓄積部と、前記認証部の判断結果を用いた処理を行う認証結果処理部として機能させるためのプログラムである。
(実施の形態3)
本実施の形態において、一方向性変換関数の実行回数を少なくできるために、認証処理を高速に行え、かつ頑強である認証システムについて説明する。
本実施の形態における認証システムCの概念図は、被認証装置と認証装置の符号を除いて、図1と同様である。認証システムCは、1または2以上の被認証装置5、および認証装置6を備える。被認証装置5は、認証対象であり、認証装置6と通信可能であれば何でも良い。被認証装置5として、例えば、いわゆるパーソナルコンピュータ、タブレット端末、スマートフォン、携帯電話、テレビ、自動車等のあらゆる機器が考えられ、その種類は問わない。認証装置6は、例えば、いわゆるクラウドサーバ、ASPサーバ等であるが、その種類は問わない。
図9は、本実施の形態における認証システムCのブロック図である。図10は、本実施の形態における認証システムCを構成する認証装置6のブロック図である。
認証システムCを構成する被認証装置5は、第一格納部51、第一処理部52、および送信部13を備える。第一格納部51は、第一パスワード格納部111、第一乱数格納部112、第一認証情報格納部113、および第一秘匿情報納部514を備える。第一処理部52は、第一乱数生成部121、第一排他的論理和部122、変換部123、秘匿情報生成部524、および第一演算部125を備える。
認証装置6は、第二格納部61、受信部22、および第二処理部63を備える。第二格納部61は、第二認証情報格納部211、および第二秘匿情報納部612を備える。第二処理部63は、第二排他的論理和部231、第二演算部632、認証部233、第二蓄積部234、および認証結果処理部235を備える。
被認証装置5を構成する第一格納部61には、各種の情報が格納される。各種の情報とは、例えば、パスワード、乱数、認証情報、後述する秘匿情報等である。
第一秘匿情報納部514は、第nの秘匿情報(M)が格納される。秘匿情報は、認証に使用する秘密の情報である。秘匿情報の内容や種類等は問わない。第一秘匿情報納部514には、第1の秘匿情報(M)、第2の秘匿情報(M)、・・・第nの秘匿情報(M)等の多数の秘匿情報が格納されても良い。第一秘匿情報納部514の第nの秘匿情報(M)は、通常、被認証装置5が生成するが、第一秘匿情報納部514に1または2以上の秘匿情報(M,M,・・・,M)が予め格納されていても良い。
また、第一格納部51に、1または2以上の第一データ(α)、1または2以上の第二データ(β)が予め格納されていても良い。第一データ(α)は、パスワード(S)と第n(nは1以上の自然数)の乱数(N)との排他的論理和の演算(S XOR N)を行い取得された第一演算結果に対して一方向性変換関数Hが施され、取得された第n+1の認証情報(An+1)と、第nの認証情報(A)と、第nの秘匿情報(M)との排他的論理和の演算(A XOR An+1 XOR M)が行われ、取得された情報である。また、第二データ(β)は、第nの認証情報(A)と第n+1の認証情報(An+1)とを用いて、第一演算が行われ、取得された情報である。
2以上の各第一データ(α)は、排他的論理和の演算「(A XOR An+1)または(A XOR An+1 XOR M)」のnが異なるデータである。また、n個の第一データ(α)は、例えば、添字のnを、1からnまで1ずつずらしながら排他的論理和の演算を行った結果のデータである。
2以上の各第二データ(β)は、排他的論理和の演算「(A + An+1)のnが異なるデータである。また、n個の第二データ(β)は、例えば、添字のnを、1からnまで1ずつずらしながら第一演算を行った結果のデータである。 第一処理部52は、各種の処理を行う。各種の処理とは、例えば、第一乱数生成部121、第一排他的論理和部122、変換部123、秘匿情報生成部524、第一演算部125が行う処理である。
秘匿情報生成部524は、認証に使用する秘密の情報である第一の秘匿情報(M)を生成し、当該第一の秘匿情報(M)を第一秘匿情報納部114に蓄積する。ここで、第一の秘匿情報(M)は、任意の情報であり、何でも良い。なお、パスワード(S)、乱数(N)、認証情報(A)のビット数と、秘匿情報(M)のビット数は同じであることは好適である。
また、秘匿情報生成部524が第一の秘匿情報(M)を生成する方法は問わない。秘匿情報生成部524は、第一の秘匿情報(M)が取得できれば良い。秘匿情報生成部524は、例えば、第一格納部51に格納されている秘匿情報の候補の中から情報を選択する。秘匿情報生成部524は、例えば、予め格納されている元情報(秘匿情報を生成するための元になる情報)に対して予め決められた処理を行い、新しい秘匿情報を取得する。なお、予め決められた処理とは、例えば、予め格納されている関数に元情報をパラメータとして与えて、当該関数の実行することである。
秘匿情報生成部524は、例えば、第n+1の認証情報(An+1)と第nの秘匿情報(M)に対して第一演算を施し、第n+1の秘匿情報(Mn+1)を取得する。つまり、第一演算が、例えば、和の場合、秘匿情報生成部524は、例えば、「第n+1の秘匿情報(Mn+1)=第n+1の認証情報(An+1)+第nの秘匿情報(M)」により、第n+1の秘匿情報(Mn+1)を取得する。
被認証装置5の認証処理の開始のトリガーは問わない。例えば、図示しない受付部がユーザからの指示を受け付けたことに応じて、被認証装置5は認証処理を開始する。例えば、図示しない受付部が外部の装置からの命令を受信したことにより、被認証装置5は認証処理を開始する。例えば、第一処理部52が予め決められた時刻になったことを検知した場合に、被認証装置5は認証処理を開始する。
認証装置6を構成する第二格納部61には、各種の情報が格納される。各種の情報とは、例えば、認証情報、秘匿情報である。
第二秘匿情報納部612は、第nの秘匿情報(M)が格納される。なお、第1の秘匿情報(M)は、被認証装置5から受信された情報である。第二以降の秘匿情報(M, M,・・・,M)は、認証装置6で生成された情報である。第二秘匿情報納部612には、第1の秘匿情報(M)、第2の秘匿情報(M)、・・・第nの秘匿情報(M)等の多数の秘匿情報が格納されても良い。
第二処理部63は、各種の処理を行う。各種の処理とは、例えば、第二排他的論理和部231、第二演算部632、認証部233、第二蓄積部234、認証結果処理部235が行う処理である。
第二演算部632は、例えば、第nの秘匿情報(M)、第n+1の認証情報(An+1)、第nの認証情報(A)のうちの1以上の情報を用いて演算を行い、第n+1の秘匿情報(Mn+1)を取得し、当該第n+1の秘匿情報(Mn+1)を第二秘匿情報納部212に蓄積する。なお、かかる演算の種類は問わない。また、かかる演算は、例えば、「Mn+1=M+An+1」、「Mn+1=An+1+A+M」、「Mn+1=M+A」、「Mn+1=M+x(xは定数)」である。なお、「+」は他の演算でも良いことは言うまでもない。
第二演算部632は、例えば、第二排他的論理和部231が取得した第n+1の認証情報(An+1)と、第nの認証情報(A)と、第nの秘匿情報(M)とを用いて、第一演算を行い、第二演算結果を取得する。
第二演算部632は、例えば、受信部22が受信した第一データ(α)と、第n+1の認証情報(An+1)と、第nの認証情報(A)、第nの秘匿情報(M)とを用いて、第一演算を行い、第二演算結果を取得する。第二演算部632は、例えば、演算式「(α XOR A XOR M)+A」により、第二演算結果を取得する。
また、第二演算部632は、例えば、第n+1の認証情報(An+1)と第nの秘匿情報(M)とを用いて、第二演算を行い、第n+1の秘匿情報(Mn+1)を取得し、当該第n+1の秘匿情報(Mn+1)を第二秘匿情報納部212に蓄積する。ここで、第二演算は、例えば、和、差、乗算、除算、平均値算出等である。ただし、第二演算の演算の種類は問わない。第二演算部632は、例えば、和演算「Mn+1=An+1+M」により、βを取得する。また、第一演算と第二演算とは、同じ種類の演算でも良いし、異なる種類の演算でも良い。
第一格納部51、および第一秘匿情報納部514は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
第一格納部51等に情報が記憶される過程は問わない。例えば、記録媒体を介して情報が第一格納部51等で記憶されるようになってもよく、通信回線等を介して送信された情報が第一格納部51等で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された情報が第一格納部51等で記憶されるようになってもよい。
第一処理部52、秘匿情報生成部524、第二処理部63、および第二演算部632は、通常、MPUやメモリ等から実現され得る。第一処理部52等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
次に、認証システムCの動作について説明する。まず、認証システムCにおける被認証装置5の初期登録処理は、被認証装置1の初期登録処理と同様であるので、説明を省略する。
次に、認証システムCにおけるn回目の認証時の認証処理の例を、図22のフローチャートを用いて説明する。なお、n回目の認証処理の開始時に、被認証装置5は、パスワード(S)を第一パスワード格納部111に保持しており、かつ乱数(N)を第一乱数格納部112に保持している。また、n回目の認証処理の開始時に、認証装置6は、第nの認証情報(A)を第二認証情報格納部211に保持しており、第nの秘匿情報(M)を第二秘匿情報納部612に保持している。
(ステップS1101)第一排他的論理和部122は、格納されているパスワード(S)と格納されている第nの乱数(N)との排他的論理和の演算(S XOR N)を行い、第一演算結果を取得する。次に、変換部123は、第一排他的論理和部122が取得した第一演算結果に対して一方向性変換関数Hを施し、第nの認証情報(A)を取得する。
(ステップS1102)第一乱数生成部121は、第n+1の乱数(Nn+1)を生成し、第一乱数格納部112に保存する。
(ステップS1103)第一排他的論理和部122は、パスワード(S)と第n+1の乱数(Nn+1)との排他的論理和の演算(S XOR Nn+1)を行い、第一演算結果を取得する。次に、変換部123は、第一演算結果に対して一方向性変換関数Hを施し、第n+1の認証情報(An+1)を取得し、第一認証情報格納部113に蓄積する。次に、第一排他的論理和部122は、第n+1の認証情報(An+1)と第nの認証情報(A)と第nの秘匿情報(M)とを用いて、排他的論理和の演算(An+1 XOR A XOR M)を行い、第一データ(α)を取得する。また、第一演算部125は、第nの認証情報(A)と第n+1の認証情報(An+1)とを用いて、第一演算を行い、第二データ(β)を取得する。なお、第一演算は、ここでは和演算である。また、秘匿情報生成部524は、第nの秘匿情報(M)、第n+1の認証情報(An+1)を用いて演算を行い、第n+1の秘匿情報(Mn+1)を取得し、当該第n+1の秘匿情報(Mn+1)を第一秘匿情報納部114に蓄積する。なお、かかる場合の演算は、例えば、「和」である。
(ステップS1104)送信部13は、ステップS1103で取得された第一データ(α)と第二データ(β)とを安全な手段で認証装置6に送信する。ここで、被認証装置1のn回目の認証処理は完了する。
(ステップS1105)認証装置6の受信部22は、第一データ(α)と第二データ(β)とを被認証装置5から受信する。そして、第二排他的論理和部231は、第一データ(α)と第nの認証情報(A)と第nの秘匿情報(M)とを用いて、排他的論理和の演算(α XOR A XOR M)を行い、第n+1の認証情報(An+1)を取得する。次に、第二演算部632は、第二排他的論理和部231が取得した第n+1の認証情報(An+1)と、第nの認証情報(A)とを用いて、第一演算を行い、第二演算結果を取得する。次に、認証部233は、第二演算結果が第二データ(β)と一致するか否かを判断する。認証部233が一致すると判断した場合はステップS1106に行き、一致しないと判断した場合はステップS1107に行く。なお、第一演算は、ここでは、例えば、和演算である。
(ステップS1106)第二蓄積部234は、第二排他的論理和部231が取得した第n+1の認証情報(An+1)を第二認証情報格納部211に蓄積する。また、第二演算部632は、第n+1の認証情報(An+1)と第nの秘匿情報(M)とを用いて、第二演算を行い、第n+1の秘匿情報(Mn+1)を取得し、当該第n+1の秘匿情報(Mn+1)を第二秘匿情報納部212に蓄積する。なお、認証結果処理部235は、認証許可に対応する処理を行っても良い。また、第二演算は、ここでは、例えば、和演算である。
(ステップS1107)認証結果処理部235は、認証不許可に対応する処理を行う。かかる処理は、例えば、エラーメッセージ等の被認証装置5への送付である。
なお、図11のフローチャートにおいて、次回以降(n+1回以降)の認証処理時にも、同様に動作が行われる。
また、図11のフローチャートにおいて、被認証装置5は、第一の認証情報(A)に対応する第一データ(α)(第一の認証情報(A)と第二の認証情報(A)とを用いて取得されたα)、第二の認証情報(A)に対応する第一データ(α)(第二の認証情報(A)と第三の認証情報(A)とを用いて取得されたα)、・・・、第nの認証情報(A)に対応する第一データ(α)(第nの認証情報(A)と第n+1の認証情報(An+1)とを用いて取得されたα)等を予め格納していても良い。また、第一の認証情報(A)に対応する第二データ(β)(第一の認証情報(A)と第二の認証情報(A)とを用いて取得されたβ)、第二の認証情報(A)に対応する第二データ(β)(第二の認証情報(A)と第三の認証情報(A)とを用いて取得されたβ)、・・・、第nの認証情報(A)に対応する第二データ(β)(第nの認証情報(A)と第n+1の認証情報(An+1)とを用いて取得されたβ)等を予め格納していても良い。かかる場合、ステップS1101からステップS1103の処理は省略可能である。
また、図11のフローチャートにおいて、第nの認証情報(A)が予め格納されている場合、ステップS1101の処理は不要である。
以上、本実施の形態によれば、ワンタイムパスワードの認証処理において、一方向性変換関数の実行回数を少なくできるために、認証処理が高速に行える。なお、認証処理が高速に行えることは、認証処理の負荷を小さくできることである。
また、本実施の形態によれば、適切な秘匿情報を用いるため、頑強な認証システムを構成できる。
さらに具体的には、上記の図4、図11のフローチャートで示した通り、本認証方式では、認証時、被認証装置5では認証情報の生成に、一方向性変換関数2回、第一演算(例えば、加算)1回、排他的論理和4回を必要とする。そして、第一演算(例えば、加算)と排他的論理和の各演算の処理負荷は、一方向性変換関数に比較して無視できるため、認証処理における処理負荷は、実質、一方向性変換関数の2回分の適用による負荷である、と言える。また、今回認証情報Aを保存しておけば、認証処理において、一方向性変換関数の適用は1回であり、極めて高速に認証処理が行える。なお、認証装置6での処理負荷は、排他的論理和2回、第一演算(例えば、加算)1回の処理の負荷であり、実質、それらの処理負荷は無視できる。
なお、上述した通り、本実施の形態において、次回認証情報と今回認証情報の融合演算(上記の第二演算)を、主として、加算としたが、次回認証情報と今回認証情報の融合演算を排他的論理和とする以外はあらゆる演算の使用が可能である。今回秘匿情報や任意の定数を付加する等も認められる。融合演算の組み合わせ情報を、今回認証情報によって秘匿化して認証装置6から被認証装置5へ送付し共有するなどのバリエーションも考えられる。
また、本実施の形態において、主として、次回秘匿情報を、次回認証情報と今回秘匿情報を加算することで算出したが、今回認証情報と今回秘匿情報の加算、あるいは今回認証情報と次回認証情報と今回秘匿情報の加算で算出しても良い。また、加算以外の演算、あるいは複数の演算の組み合わせにより次回秘匿情報を算出するようにしても良い。
また、上記の実施の形態において、認証終了後、認証装置6において、今回認証情報AからH(A)を生成し、これを被認証装置5へ送付し、被認証装置5において被認証装置5で保持するAから同様に生成したH(A)と比較し、同じであれば相互認証が成立するといった付加機能も実現でき得る。
さらに、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをCD-ROMなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における被認証装置5を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、第n(nは1以上の自然数)の乱数(N)が格納される第一乱数格納部と、第nの認証情報(A)が格納される第一認証情報格納部と、認証に使用する秘密の情報である第nの秘匿情報(M)が格納される第一秘匿情報納部とにアクセス可能なコンピュータを、第n+1の乱数(Nn+1)を生成し、前記第一乱数格納部に蓄積する第一乱数生成部と、前記パスワード(S)と前記第n+1の乱数(Nn+1)との排他的論理和の演算(S XOR Nn+1)を行い、第一演算結果を取得する第一排他的論理和部と、前記第一演算結果に対して一方向性変換関数Hを施し、第n+1の認証情報(An+1)を取得し、前記第一認証情報格納部に蓄積する変換部として機能させ、前記第一排他的論理和部は、前記第n+1の認証情報(An+1)と前記第nの認証情報(A)と前記第nの秘匿情報(M)とを用いて、排他的論理和の演算(An+1 XOR A XOR M)を行い、第一データ(α)を取得するように、コンピュータを機能させ、前記第nの認証情報(A)と前記第n+1の認証情報(An+1)とを用いて、第一演算を行い、第二データ(β)を取得する第一演算部と、前記第一データ(α)と前記第二データ(β)とを前記認証装置に送信する送信部として、コンピュータをさらに機能させるためのプログラムである。
また、上記プログラムにおいて、コンピュータを、認証に使用する秘密の情報である第一の秘匿情報(M)を生成し前記第一秘匿情報納部に蓄積する秘匿情報生成部としてさらに機能させ、前記送信部を、前記第一の認証情報(A)と前記第一の秘匿情報(M)とを前記認証装置に送信するものとして、コンピュータを機能させるプログラムであることは好適である。
また、上記プログラムにおいて、コンピュータを、前記第一排他的論理和部は、前記第n+1の認証情報(An+1)と前記第nの認証情報(A)と前記第nの秘匿情報(M)とを用いて、排他的論理和の演算(An+1 XOR A XOR M)を行い、第一データ(α)を取得するものとして、コンピュータを機能させるためのプログラムである。
上記の実施の形態で説明した認証システムは、情報通信システム等において,例えば、利用者や通信相手の資格認証、あるいは認証毎に変わる認証情報を用いて暗号鍵を生成し、当該暗号鍵を用いた暗号通信を実現するワンタイムパスワード認証処理方式に関するものである。
そして、上記の実施の形態で説明した認証システムにおける認証処理方法は、一般的なワンタイムパスワード認証方法として、クラウドシステムやアプリケーション提供サービスシステム等のログイン時の認証に適用できることはもちろんのこと、高速に認証情報を更新できる利点から、その認証情報をシーズにして暗号鍵を生成し、情報送信単位毎に異なる鍵で暗号通信を実現することができる。これは、低レイヤの通信においても実現可能で、レイヤ3においてパケット毎に違う鍵での暗号通信を実現する等の応用が可能となる。
また、本認証処理方法は、極めて高速であるため、例えば、認証情報が64ビットの場合、64ビットの平文に対して当該認証情報を排他的論理和で加え合わせるバーナム暗号を用いれば、64ビットの情報送信単位毎に異なる鍵で暗号通信を実現することも可能となる。
例えば、IoTにおいて端末側を認証部、端末収容装置を被認証部とすれば、認証部の処理負荷はほぼ0であるので、前記バーナム暗号を用いれば暗号化・復号の処理なしに暗号通信を実現することができる。これは、センサネットワークやICタグ・RFIDのネットワーク等の処理能力が限られた装置のネットワークに対して、暗号通信の機能を付加できるということを意味している。
今後、IoTのインフラが普及してくることに伴い、家電、コネクティッドカー、スマートグリッドのみならず、センサネットワークやICタグ等、処理能力の低い装置も含んだ処理系においてセキュリティ通信の実現が求められる場合が増加してくると予想される。本認証処理方法により、このような環境においても、簡易に高速な認証と鍵配送、および高速な暗号通信を実現できるため、適当な暗号方法を組み合わせれば様々な局面でIoTのセキュリティ対策を実現することができる。
また、図12は、本明細書で述べたプログラムを実行して、上述した種々の実施の形態の被認証装置1,3,5、認証装置2,4,6を実現するコンピュータの外観の例を示す。上述の実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムで実現され得る。図12は、このコンピュータシステム300の概観図であり、図13は、システム300のブロック図である。
図12において、コンピュータシステム300は、CD-ROMドライブを含むコンピュータ301と、キーボード302と、マウス303と、モニタ304とを含む。
図13において、コンピュータ301は、CD-ROMドライブ3012に加えて、MPU3013と、CD-ROMドライブ3012等に接続されたバス3014と、ブートアッププログラム等のプログラムを記憶するためのROM3015と、MPU3013に接続され、アプリケーションプログラムの命令を一時的に記憶するとともに一時記憶空間を提供するためのRAM3016と、アプリケーションプログラム、システムプログラム、及びデータを記憶するためのハードディスク3017とを含む。ここでは、図示しないが、コンピュータ301は、さらに、LANへの接続を提供するネットワークカードを含んでも良い。
コンピュータシステム300に、上述した実施の形態の被認証装置1等の機能を実行させるプログラムは、CD-ROM3101に記憶されて、CD-ROMドライブ3012に挿入され、さらにハードディスク3017に転送されても良い。これに代えて、プログラムは、図示しないネットワークを介してコンピュータ301に送信され、ハードディスク3017に記憶されても良い。プログラムは実行の際にRAM3016にロードされる。プログラムは、CD-ROM3101またはネットワークから直接、ロードされても良い。
プログラムは、コンピュータ301に、上述した実施の形態の被認証装置1等の機能を実行させるオペレーティングシステム(OS)、またはサードパーティープログラム等は、必ずしも含まなくても良い。プログラムは、制御された態様で適切な機能(モジュール)を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいれば良い。コンピュータシステム300がどのように動作するかは周知であり、詳細な説明は省略する。
なお、上記プログラムにおいて、情報を送信するステップや、情報を受信するステップなどでは、ハードウェアによって行われる処理、例えば、送信ステップにおけるモデムやインターフェースカードなどで行われる処理(ハードウェアでしか行われない処理)は含まれない。
また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
また、上記各実施の形態において、各処理は、単一の装置によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
以上のように、本発明にかかる認証システムは、ワンタイムパスワードの認証処理が高速にできるという効果を有し、認証システム等として有用である。
1、3、5 被認証装置
2、4、6 認証装置
11、31、51 第一格納部
12、32、52 第一処理部
13、33 送信部
21、41、61 第二格納部
22、42 受信部
23、43、63 第二処理部
111 第一パスワード格納部
112 第一乱数格納部
113 第一認証情報格納部
114、514 第一秘匿情報納部
121 第一乱数生成部
122、322 第一排他的論理和部
123 変換部
124、524 秘匿情報生成部
125 第一演算部
211 第二認証情報格納部
212、612 第二秘匿情報納部
231、431 第二排他的論理和部
232、432、632 第二演算部
233、433 認証部
234 第二蓄積部
235 認証結果処理部

Claims (13)

  1. 認証される装置である被認証装置と当該被認証装置を認証する装置である認証装置とを具備する認証システムであって、
    前記被認証装置は、
    第一データ(α)と第二データ(β)とを前記認証装置に送信する送信部を具備し、
    前記第一データ(α)は、
    パスワード(S)と第n(nは1以上の自然数)の乱数(N)との排他的論理和の演算(S XOR N)を行い取得された第一演算結果に対して一方向性変換関数Hが施され、取得された第n+1の認証情報(An+1)と、第nの認証情報(A)との排他的論理和の演算(A XOR An+1)が行われ、取得された情報であり、
    前記第二データ(β)は、
    前記第nの認証情報(A)と前記第n+1の認証情報(An+1)とを用いて、第一演算が行われ、取得された情報であり、
    前記認証装置は、
    前記第一データ(α)と前記第二データ(β)とを前記被認証装置から受信する受信部と、
    前記第一データ(α)と前記第nの認証情報(A)との排他的論理和の演算(α XOR A)を行い、第n+1の認証情報(An+1)を取得する第二排他的論理和部と、
    前記第二排他的論理和部が取得した前記第n+1の認証情報(An+1)と、第nの認証情報(A)とを用いて、前記第一演算を行い、第二演算結果を取得する第二演算部と、
    前記第二演算結果が前記第二データ(β)と一致するか否かを判断する認証部と、
    前記認証部の判断結果を用いた処理を行う認証結果処理部とを具備する認証システム。
  2. 前記被認証装置は、
    パスワード(S)が格納される第一パスワード格納部と、
    第n+1の乱数(Nn+1)を生成する第一乱数生成部と、
    前記パスワード(S)と前記第n+1の乱数(Nn+1)との排他的論理和の演算(S XOR Nn+1)を行い、第一演算結果を取得する第一排他的論理和部と、
    前記第一演算結果に対して一方向性変換関数Hを施し、第n+1の認証情報(An+1)を取得する変換部とをさらに具備し、
    前記第一排他的論理和部は、
    前記第nの認証情報(A)と前記第n+1の認証情報(An+1)との排他的論理和の演算(A XOR An+1)を行い、第一データ(α)を取得し、
    前記認証装置は、
    前記第nの認証情報(A)と前記第n+1の認証情報(An+1)とを用いて、第一演算を行い、第二データ(β)を取得する第一演算部をさらに具備する請求項1記載の認証システム。
  3. 前記被認証装置において、
    前記第一乱数生成部は、
    第一の乱数(N)を生成し、
    前記第一排他的論理和部は、
    前記パスワード(S)と前記第一の乱数(N)との排他的論理和の演算(S XOR N)を行い、第一演算結果を取得し、
    前記変換部は、
    前記第一排他的論理和部が取得した第一演算結果に対して一方向性変換関数Hを施し、第一の認証情報(A)を取得し、
    前記送信部は、
    前記第一の認証情報(A)を前記認証装置に送信し、
    前記認証装置において、
    前記受信部は、
    前記第一の認証情報(A)を受信する、認証システムを構成する請求項2記載の認証システム。
  4. 前記被認証装置において、
    認証に使用する秘密の情報である第nの秘匿情報(M)が格納される第一秘匿情報納部をさらに具備し、
    前記第一排他的論理和部は、
    前記第n+1の認証情報(An+1)と前記第nの認証情報(A)と前記第nの秘匿情報(M)とを用いて、排他的論理和の演算(An+1 XOR A XOR M)を行い、第一データ(α)を取得し、
    前記認証装置において、
    第n(nは1以上の自然数)の秘匿情報(M)が格納される第二秘匿情報納部をさらに具備し、
    前記第二排他的論理和部は、
    前記第一データ(α)と前記第nの認証情報(A)と前記第nの秘匿情報(M)とを用いて、排他的論理和の演算(α XOR A XOR M)を行い、第n+1の認証情報(An+1)を取得し、
    前記第n+1の認証情報(An+1)と前記第nの秘匿情報(M)とを用いて、第二演算を行い、第n+1の秘匿情報(Mn+1)を取得し、前記第二秘匿情報納部に蓄積する第二演算部をさらに具備する、認証システムを構成する請求項2または請求項3記載の認証システム。
  5. 前記被認証装置において、
    認証に使用する秘密の情報である第一の秘匿情報(M)を生成する秘匿情報生成部をさらに具備し、
    前記第一排他的論理和部は、
    前記第n+1の認証情報(An+1)と前記第nの認証情報(A)と前記第nの秘匿情報(M)との排他的論理和の演算(An+1 XOR A XOR M)を行い、第一データ(α)を取得し、
    前記送信部は、
    前記第一の認証情報(A)と前記第一の秘匿情報(M)とを前記認証装置に送信し、
    前記認証装置において、
    前記受信部は、
    前記第一の認証情報(A)を受信し、前記第一の秘匿情報(M)を受信し、
    前記第二排他的論理和部は、
    前記第一データ(α)と前記第nの認証情報(A)と前記第nの秘匿情報(M)とを用いて、排他的論理和の演算(α XOR A XOR M)を行い、第n+1の認証情報(An+1)を取得し、
    前記第n+1の認証情報(An+1)と前記第nの秘匿情報(M)とを用いて、第二演算を行い、第n+1の秘匿情報(Mn+1)を取得する第二演算部をさらに具備する、請求項4記載の認証システム。
  6. 前記被認証装置において、
    認証に使用する秘密の情報である第nの秘匿情報(M)が格納される第一秘匿情報納部をさらに具備し、
    前記第一排他的論理和部は、
    前記第n+1の認証情報(An+1)と前記第nの認証情報(A)と前記第nの秘匿情報(M)とを用いて、排他的論理和の演算(An+1 XOR A XOR M)を行い、第一データ(α)を取得し、
    前記認証装置において、
    第n(nは1以上の自然数)の秘匿情報(M)が格納される第二秘匿情報納部をさらに具備し、
    前記第二排他的論理和部は、
    前記第一データ(α)と前記第nの認証情報(A)と前記第nの秘匿情報(M)とを用いて、排他的論理和の演算(α XOR A XOR M)を行い、第n+1の認証情報(An+1)を取得し、
    前記第nの認証情報(A)と前記第nの秘匿情報(M)とを用いて、第二演算を行い、第n+1の秘匿情報(Mn+1)を取得し、前記第二秘匿情報納部に蓄積する第二演算部をさらに具備する、認証システムを構成する請求項2または請求項3記載の認証システム。
  7. 前記被認証装置において、
    認証に使用する秘密の情報である第一の秘匿情報(M)を生成する秘匿情報生成部をさらに具備し、
    前記第一排他的論理和部は、
    前記第n+1の認証情報(An+1)と前記第nの認証情報(A)と前記第nの秘匿情報(M)との排他的論理和の演算(An+1 XOR A XOR M)を行い、第一データ(α)を取得し、
    前記送信部は、
    前記第一の認証情報(A)と前記第一の秘匿情報(M)とを前記認証装置に送信し、
    前記認証装置において、
    前記受信部は、
    前記第一の認証情報(A)を受信し、前記第一の秘匿情報(M)を受信し、
    前記第二排他的論理和部は、
    前記第一データ(α)と前記第nの認証情報(A)と前記第nの秘匿情報(M)とを用いて、排他的論理和の演算(α XOR A XOR M)を行い、第n+1の認証情報(An+1)を取得し、
    前記第nの認証情報(A)と前記第nの秘匿情報(M)とを用いて、第二演算を行い、第n+1の秘匿情報(Mn+1)を取得する第二演算部をさらに具備する、請求項6記載の認証システム。
  8. 前記第一演算は和演算である請求項1から請求項7いずれか一項に記載の認証システム。
  9. 第一データ(α)と第二データ(β)とを認証装置に送信する送信部を具備し、
    前記第一データ(α)は、
    パスワード(S)と第n(nは1以上の自然数)の乱数(N)との排他的論理和の演算(S XOR N)を行い取得された第一演算結果に対して一方向性変換関数Hが施され、取得された第n+1の認証情報(An+1)と、第nの認証情報(A)との排他的論理和の演算(A XOR An+1)が行われ、取得された情報であり、
    前記第二データ(β)は、
    前記第nの認証情報(A)と前記第n+1の認証情報(An+1)とを用いて、第一演算が行われ、取得された情報である被認証装置。
  10. 第一データ(α)と第二データ(β)とを被認証装置から受信する受信部と、
    前記第一データ(α)と第nの認証情報(A)との排他的論理和の演算(α XOR A)を行い、第n+1の認証情報(An+1)を取得する第二排他的論理和部と、
    前記第二排他的論理和部が取得した前記第n+1の認証情報(An+1)と、第nの認証情報(A)とを用いて、第一演算を行い、第二演算結果を取得する第二演算部と、
    前記第二演算結果が前記第二データ(β)と一致するか否かを判断する認証部と、
    前記認証部の判断結果を用いた処理を行う認証結果処理部とを具備する認証装置。
  11. 送信部を具備する被認証装置、および第n受信部と、第二排他的論理和部と、第二演算部と、認証部と、認証結果処理部とを具備する認証装置により実現される認証方法であって、
    前記被認証装置の前記送信部が、第一データ(α)と第二データ(β)とを前記認証装置に送信する送信ステップと、
    前記認証装置の受信部が、前記第一データ(α)と前記第二データ(β)とを前記被認証装置から受信する受信ステップと、
    前記第二排他的論理和部が、前記第一データ(α)と第nの認証情報(A)との排他的論理和の演算(α XOR A)を行い、第n+1の認証情報(An+1)を取得する第二排他的論理和ステップと、
    前記第二演算部が、前記第二排他的論理和部が取得した前記第n+1の認証情報(An+1)と、第nの認証情報(A)とを用いて、第一演算を行い、第二演算結果を取得する第二演算ステップと、
    前記認証部が、前記第二演算結果が前記第二データ(β)と一致するか否かを判断する認証ステップと、
    前記認証結果処理部が、前記認証部の判断結果を用いた処理を行う認証結果処理ステップとを具備し、
    前記第一データ(α)は、
    パスワード(S)と第n(nは1以上の自然数)の乱数(N)との排他的論理和の演算(S XOR N)を行い取得された第一演算結果に対して一方向性変換関数Hが施され、取得された第n+1の認証情報(An+1)と、第nの認証情報(A)との排他的論理和の演算(A XOR An+1)が行われ、取得された情報であり、
    前記第二データ(β)は、
    前記第nの認証情報(A)と前記第n+1の認証情報(An+1)とを用いて、第一演算がを行われ、取得された情報である、認証方法。
  12. コンピュータを、
    第一データ(α)と第二データ(β)とを認証装置に送信する送信部として機能させるためのプログラムであって、
    前記第一データ(α)は、
    パスワード(S)と第n(nは1以上の自然数)の乱数(N)との排他的論理和の演算(S XOR N)を行い取得された第一演算結果に対して一方向性変換関数Hが施され、取得された第n+1の認証情報(An+1)と、第nの認証情報(A)との排他的論理和の演算(A XOR An+1)が行われ、取得された情報であり、
    前記第二データ(β)は、
    前記第nの認証情報(A)と前記第n+1の認証情報(An+1)とを用いて、第一演算が行われ、取得された情報である、プログラム。
  13. コンピュータを、
    第一データ(α)と第二データ(β)とを被認証装置から受信する受信部と、
    前記第一データ(α)と第nの認証情報(A)との排他的論理和の演算(α XOR A)を行い、第n+1の認証情報(An+1)を取得する第二排他的論理和部と、
    前記第二排他的論理和部が取得した前記第n+1の認証情報(An+1)と、第nの認証情報(A)とを用いて、第一演算を行い、第二演算結果を取得する第二演算部と、
    前記第二演算結果が前記第二データ(β)と一致するか否かを判断する認証部と、
    前記認証部の判断結果を用いた処理を行う認証結果処理部として機能させるためのプログラム。
JP2019007838A 2018-01-26 2019-01-21 認証システム、被認証装置、認証装置、認証方法、およびプログラム Active JP7161416B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2018011335 2018-01-26
JP2018011335 2018-01-26
JP2018073824 2018-04-06
JP2018073824 2018-04-06

Publications (2)

Publication Number Publication Date
JP2019180081A JP2019180081A (ja) 2019-10-17
JP7161416B2 true JP7161416B2 (ja) 2022-10-26

Family

ID=68279071

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019007838A Active JP7161416B2 (ja) 2018-01-26 2019-01-21 認証システム、被認証装置、認証装置、認証方法、およびプログラム

Country Status (1)

Country Link
JP (1) JP7161416B2 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003152716A (ja) 2001-11-16 2003-05-23 Ntt Advanced Technology Corp 可変認証情報を用いる資格認証方法
JP2007060568A (ja) 2005-08-26 2007-03-08 Trinity Security Systems Inc 認証処理方法、認証処理プログラム、記録媒体および認証処理装置
JP2009171253A (ja) 2008-01-16 2009-07-30 Trinity Security Systems Inc 鍵共有方法、認証方法、認証プログラム、記録媒体および通信システム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003152716A (ja) 2001-11-16 2003-05-23 Ntt Advanced Technology Corp 可変認証情報を用いる資格認証方法
JP2007060568A (ja) 2005-08-26 2007-03-08 Trinity Security Systems Inc 認証処理方法、認証処理プログラム、記録媒体および認証処理装置
JP2009171253A (ja) 2008-01-16 2009-07-30 Trinity Security Systems Inc 鍵共有方法、認証方法、認証プログラム、記録媒体および通信システム

Also Published As

Publication number Publication date
JP2019180081A (ja) 2019-10-17

Similar Documents

Publication Publication Date Title
CN108352015B (zh) 用于基于区块链的系统结合钱包管理系统的安全多方防遗失存储和加密密钥转移
Shao et al. Fine-grained data sharing in cloud computing for mobile devices
JP6363032B2 (ja) 鍵付替え方向制御システムおよび鍵付替え方向制御方法
CN111371790B (zh) 基于联盟链的数据加密发送方法、相关方法、装置和系统
CN108632031B (zh) 密钥生成装置及方法、加密装置及方法
US10211986B2 (en) Program collation system, node, collation method, and computer-readable medium
TW202031010A (zh) 資料儲存方法、裝置及設備
EP3306855A1 (en) Authentication device, authentication system, authentication method, and program
Cai et al. BCSolid: a blockchain-based decentralized data storage and authentication scheme for solid
US11290277B2 (en) Data processing system
Ajmal et al. Cloud computing platform: Performance analysis of prominent cryptographic algorithms
JP7193184B2 (ja) マルチキャストグループ内の購読者にキーデータを伝送するデバイス
JP7161416B2 (ja) 認証システム、被認証装置、認証装置、認証方法、およびプログラム
JP7119071B2 (ja) 認証システム、認証装置、認証方法、およびプログラム
JP2012050075A (ja) 暗号化通信システム及び暗号化通信方法
CN111953480B (zh) 密钥生成装置以及方法、运算密钥生成装置以及方法
KR102526114B1 (ko) 암호화 및 복호화를 위한 장치 및 방법
JP5850888B2 (ja) 情報記憶システム、情報記憶装置、その方法、及びプログラム
JP5691549B2 (ja) ポリシ管理サーバ装置、サーバ装置、クライアント装置、及びこれらを有する暗号アルゴリズム切換システム
CN114095192A (zh) 数据云服务方法及通信装置
KR101865703B1 (ko) 키 생성 방법 및 장치, 암호화 장치 및 방법
KR20200088595A (ko) 세션 키를 생성하는 방법 및 그 전자장치
JP6216662B2 (ja) 暗号化通信装置、暗号化通信システム、及び暗号化通信方法
Takemoto et al. Performance evaluation of caesar authenticated encryption on SROS2
Nguyen et al. A three-way energy efficient authentication protocol using bluetooth low energy

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211118

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220815

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220823

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220829

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20221004

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221014

R150 Certificate of patent or registration of utility model

Ref document number: 7161416

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150