(57)【特許請求の範囲】
【請求項１】
登録ユーザが操作したキーボードの操作情報から取得した任意の３連続の押下キーの組合せからなるトリプレットと、このトリプレットの操作情報のうち第１キーが押下されてから第２キーが押下されるまでの第１待ち時間（Ｔ１）と第２キーが押下されてから第３キーが押下されるまでの第２待ち時間（Ｔ２）の比率として求めた第１比率値（Ｒ１）とを少なくとも有するユーザ判定用データを前記登録ユーザに対応付けて予め記憶するユーザ判定用データ記憶部と、
キーボードが操作されたときのキー操作情報を継続的に取得するキー操作情報取得部と、
前記キー操作情報から所定のトリプレットを抽出するトリプレット抽出部と、
前記トリプレット抽出部が抽出した各トリプレットについて前記第１待ち時間（Ｔ１）および前記第２待ち時間（Ｔ２）を取得する時間データ取得部と、
前記各トリプレットについて前記第１比率値（Ｒ１）を算出する比率値算出部と、
前記各トリプレットに前記第１比率値（Ｒ１）を対応付けたトリプレットデータとしてトリプレットデータ記憶部に登録するトリプレットデータ登録部と、
前記トリプレットデータ記憶部に登録された前記トリプレットデータのうち１回判定分のトリプレットデータを判定対象データとして取得する判定対象データ取得部と、
前記ユーザ判定用データ記憶部に記憶されたユーザ判定用データに基づいて、前記判定対象データ内の各第１比率値（Ｒ１）の評価値（Ｖ）を算出する評価値算出部と、
前記判定対象データに含まれる全てのトリプレットにつき、前記評価値算出部が算出した各評価値（Ｖ）に基づいて、前記判定対象データに関する特徴値（Ｃ）を算出する特徴値算出部と、
前記特徴値（Ｃ）と所定のカットオフ値との大小関係に基づいて、前記判定対象データが前記登録ユーザによって入力されたものか否かを判定するユーザ判定部として
コンピュータを機能させることを特徴とするユーザ認証プログラム。
【請求項２】
請求項１において、前記ユーザ判定用データ記憶部には、トリプレットを構成する３連続の押下キーのうちいずれか２つの押下キーの押下時間の比率として求めた第２比率値（Ｒ２）がユーザ判定用データとしてさらに記憶されており、
前記時間データ取得部は、前記トリプレット抽出部が抽出した各トリプレットにつき、各キーの押下時間（Ｄ１，Ｄ２，Ｄ３）を取得し、
前記比率値算出部は、各トリプレットについて前記第２比率値（Ｒ２）を算出し、
前記トリプレットデータ登録部が、各トリプレットに前記第２比率値（Ｒ２）を対応付けてトリプレットデータとしてトリプレットデータ記憶部に登録し、
前記評価値算出部は、前記ユーザ判定用データ記憶部に記憶されたユーザ判定用データに基づいて、前記判定対象データ内の前記第２比率値（Ｒ２）に対する評価値（Ｖ）を算出し、
前記特徴値算出部は、前記第１比率値（Ｒ１）および第２比率値（Ｒ２）に対する評価値（Ｖ）に基づいて、前記判定対象データに関する特徴値（Ｃ）を算出するようにコンピュータを機能させることを特徴とするユーザ認証プログラム。
【請求項３】
請求項１または請求項２において、前記時間データ取得部によって取得された各トリプレットにおける前記第１待ち時間（Ｔ１）および前記第２待ち時間（Ｔ２）ないし各キーの押下時間（Ｄ１，Ｄ２，Ｄ３）が、所定の制限時間内にあるトリプレットを選別するトリプレット選別部を有しており、
このトリプレット選別部により選別された各トリプレットについて、前記比率値算出部が前記第１比率値（Ｒ１）と、各キーの押下時間のうちいずれか２つの比率である第２比率値（Ｒ２）を算出し、前記トリプレットデータ登録部が両者を対応付けてトリプレットデータとしてトリプレットデータ記憶部に登録するようにコンピュータを機能させることを特徴とするユーザ認証プログラム。
【請求項４】
請求項１から請求項３のいずれかにおいて、前記評価値算出部が、前記判定対象データに含まれるトリプレットの比率値と、前記ユーザ判定用データ内に記憶されている同一トリプレット群の比率値とを比較して当該トリプレットの比率値に関する順位を求め、当該順位が中央値に近いほど高い評価値（Ｖ）を算出し、当該順位が最高値または最低値に近いほど低い評価値（Ｖ）を算出するようにコンピュータを機能させることを特徴とするユーザ認証プログラム。
【請求項５】
請求項４において、前記評価値算出部が、下記式（１）により前記評価値（Ｖ）を算出するようにコンピュータを機能させることを特徴とするユーザ認証プログラム。
Ｖ（Ｒ）＝ａ−ｂ×｜（Ｌ−Ｓ）｜×（Ｌ＋Ｓ）  ・・・式（１）
ただし、
ａ，ｂ：係数
Ｒ：第１比率値または第２比率値（トリプレットを構成する３連続の押下キーのうちいずれか２つの押下キーの押下時間の比率）
Ｌ：ユーザ判定用データ内のトリプレットのうち、判定対象データのトリプレットと同一文字列であって、当該トリプレットの比率値より大きい比率値を有するトリプレットの数
Ｓ：ユーザ判定用データ内のトリプレットのうち、判定対象データのトリプレットと同一文字列であって、当該トリプレットの比率値以下の比率値を有するトリプレットの数
【請求項６】
請求項５において、前記特徴値算出部が、下記式（２）により前記特徴値（Ｃ）を算出するようにコンピュータを機能させることを特徴とするユーザ認証プログラム。
Ｃ＝｛Σ［Ｗ×Ｖ（Ｒ）］｝／Ｎ  ・・・式（２）
ただし、
Ｗ：ユーザ判定用データ内のトリプレットのうち、判定対象データのトリプレットと同一文字列のトリプレット数に基づいて定められる重み値
Ｎ：被評価単位のトリプレット数
【請求項７】
請求項３から請求項６のいずれかにおいて、
前記時間データ取得部が、さらに前記トリプレット抽出部により抽出された各トリプレットにつき、第１キーが押下されてから第３キーが解放されるまでの総トリプレット時間を取得するとともに、
前記トリプレット選別部が、取得した前記総トリプレット時間のうち所定の制限時間内にあるトリプレットだけを選別するようにコンピュータを機能させることを特徴とするユーザ認証プログラム。
【請求項８】
請求項１から請求項７のいずれかにおいて、
前記トリプレット抽出部によって抽出されたトリプレットのトリプレットデータをトリプレットデータ記憶部に登録する前に、その抽出順序に従って、順次、ＲＡＭに一時的に蓄積し、所定数のトリプレット群が蓄積されたとき、前記ＲＡＭ内に蓄積された各トリプレットの順序をランダムに並べ替える抽出順序ランダマイズ部としてコンピュータを機能させることを特徴とするユーザ認証プログラム。
【請求項９】
請求項１から請求項８のいずれかにおいて、
前記トリプレットデータ記憶部に記憶された前記トリプレットデータから所定の登録ユーザに関するユーザ判定用データを作成するための基本データを取得する基本データ取得部と、
前記基本データに含まれる同一文字列のトリプレットの数を算出するトリプレット数算出部と、
前記トリプレット数算出部が算出したトリプレットの数に応じて重み値を各トリプレットに対して設定する重み値設定部と、
前記各トリプレットごとに、少なくとも前記第１比率値（Ｒ１）の変動係数（標準偏差／平均値）を算出する変動係数算出部と、
前記重み値設定部が設定した重み値が所定値以上であって、前記変動係数算出部が算出した変動係数が所定値以下のトリプレットデータだけを前記ユーザ判定用データとして再選別するトリプレット再選別部として
コンピュータを機能させることを特徴とするユーザ認証プログラム。
【請求項１０】
登録ユーザが操作したキーボードの操作情報から取得した任意の３連続の押下キーの組合せからなるトリプレットと、このトリプレットの操作情報のうち第１キーが押下されてから第２キーが押下されるまでの第１待ち時間（Ｔ１）と第２キーが押下されてから第３キーが押下されるまでの第２待ち時間（Ｔ２）の比率として求めた第１比率値（Ｒ１）とを少なくとも有するユーザ判定用データを前記登録ユーザに対応付けて予め記憶するユーザ判定用データ記憶部と、
キーボードが操作されたときのキー操作情報を継続的に取得するキー操作情報取得部と、
前記キー操作情報から所定のトリプレットを抽出するトリプレット抽出部と、
前記トリプレット抽出部が抽出した各トリプレットについて前記第１待ち時間（Ｔ１）および前記第２待ち時間（Ｔ２）を取得する時間データ取得部と、
前記各トリプレットについて前記第１比率値（Ｒ１）を算出する比率値算出部と、
前記各トリプレットに前記第１比率値（Ｒ１）を対応付けたトリプレットデータとしてトリプレットデータ記憶部に登録するトリプレットデータ登録部と、
前記トリプレットデータ記憶部に登録された前記トリプレットデータのうち１回判定分のトリプレットデータを判定対象データとして取得する判定対象データ取得部と、
前記ユーザ判定用データ記憶部に記憶されたユーザ判定用データに基づいて、前記判定対象データ内の各第１比率値（Ｒ１）の評価値（Ｖ）を算出する評価値算出部と、
前記判定対象データに含まれる全てのトリプレットにつき、前記評価値算出部が算出した各評価値（Ｖ）に基づいて、前記判定対象データに関する特徴値（Ｃ）を算出する特徴値算出部と、
前記特徴値（Ｃ）と所定のカットオフ値との大小関係に基づいて、前記判定対象データが前記登録ユーザによって入力されたものか否かを判定するユーザ判定部と
を有することを特徴とするユーザ認証システム。
【請求項１１】
請求項１０において、前記ユーザ判定用データ記憶部には、トリプレットを構成する３連続の押下キーのうちいずれか２つの押下キーの押下時間の比率として求めた第２比率値（Ｒ２）がユーザ判定用データとしてさらに記憶されており、
前記時間データ取得部は、前記トリプレット抽出部が抽出した各トリプレットにつき、各キーの押下時間（Ｄ１，Ｄ２，Ｄ３）を取得し、
前記比率値算出部は、各トリプレットについて前記第２比率値（Ｒ２）を算出し、
前記トリプレットデータ登録部が、各トリプレットに前記第２比率値（Ｒ２）を対応付けてトリプレットデータとしてトリプレットデータ記憶部に登録し、
前記評価値算出部は、前記ユーザ判定用データ記憶部に記憶されたユーザ判定用データに基づいて、前記判定対象データ内の前記第２比率値（Ｒ２）に対する評価値（Ｖ）を算出し、
前記特徴値算出部は、前記第１比率値（Ｒ１）および第２比率値（Ｒ２）に対する評価値（Ｖ）に基づいて、前記判定対象データに関する特徴値（Ｃ）を算出することを特徴とするユーザ認証システム。
【請求項１２】
請求項１０または請求項１１において、前記時間データ取得部によって取得された各トリプレットにおける前記第１待ち時間（Ｔ１）および前記第２待ち時間（Ｔ２）ないし各キーの押下時間（Ｄ１，Ｄ２，Ｄ３）が、所定の制限時間内にあるトリプレットを選別するトリプレット選別部を有しており、
このトリプレット選別部により選別された各トリプレットについて、前記比率値算出部が前記第１比率値（Ｒ１）と、各キーの押下時間のうちいずれか２つの比率である第２比率値（Ｒ２）第２比率値（Ｒ２）を算出し、前記トリプレットデータ登録部が両者を対応付けてトリプレットデータとしてトリプレットデータ記憶部に登録することを特徴とするユーザ認証システム。
【請求項１３】
請求項１０から請求項１２のいずれかにおいて、前記評価値算出部が、前記判定対象データに含まれるトリプレットの比率値と、前記ユーザ判定用データ内に記憶されている同一トリプレット群の比率値とを比較して当該トリプレットの比率値に関する順位を求め、当該順位が中央値に近いほど高い評価値（Ｖ）を算出し、当該順位が最高値または最低値に近いほど低い評価値（Ｖ）を算出することを特徴とするユーザ認証システム。
【請求項１４】
請求項１３において、前記評価値算出部が、下記式（１）により前記評価値（Ｖ）を算出することを特徴とするユーザ認証システム。
Ｖ（Ｒ）＝ａ−ｂ×｜（Ｌ−Ｓ）｜×（Ｌ＋Ｓ）  ・・・式（１）
ただし、
ａ，ｂ：係数
Ｒ：第１比率値または第２比率値（トリプレットを構成する３連続の押下キーのうちいずれか２つの押下キーの押下時間の比率）
Ｌ：ユーザ判定用データ内のトリプレットのうち、判定対象データのトリプレットと同一文字列であって、当該トリプレットの比率値より大きい比率値を有するトリプレットの数
Ｓ：ユーザ判定用データ内のトリプレットのうち、判定対象データのトリプレットと同一文字列であって、当該トリプレットの比率値以下の比率値を有するトリプレットの数
【請求項１５】
請求項１４において、前記特徴値算出部が、下記式（２）により前記特徴値（Ｃ）を算出することを特徴とするユーザ認証システム。
Ｃ＝｛Σ［Ｗ×Ｖ（Ｒ）］｝／Ｎ  ・・・式（２）
ただし、
Ｗ：ユーザ判定用データ内のトリプレットのうち、判定対象データのトリプレットと同一文字列のトリプレット数に基づいて定められる重み値
Ｎ：被評価単位のトリプレット数
【請求項１６】
請求項１２から請求項１５のいずれかにおいて、
前記時間データ取得部が、さらに前記トリプレット抽出部により抽出された各トリプレットにつき、第１キーが押下されてから第３キーが解放されるまでの総トリプレット時間を取得するとともに、
前記トリプレット選別部が、取得した前記総トリプレット時間のうち所定の制限時間内にあるトリプレットだけを選別することを特徴とするユーザ認証システム。
【請求項１７】
請求項１０から請求項１６のいずれかにおいて、
前記トリプレット抽出部によって抽出されたトリプレットのトリプレットデータをトリプレットデータ記憶部に登録する前に、その抽出順序に従って、順次、ＲＡＭに一時的に蓄積し、所定数のトリプレット群が蓄積されたとき、前記ＲＡＭ内に蓄積された各トリプレットの順序をランダムに並べ替える抽出順序ランダマイズ部を有していることを特徴とするユーザ認証システム。
【請求項１８】
請求項１０から請求項１７のいずれかにおいて、
前記トリプレットデータ記憶部に記憶された前記トリプレットデータから所定の登録ユーザに関するユーザ判定用データを作成するための基本データを取得する基本データ取得部と、
前記基本データに含まれる同一文字列のトリプレットの数を算出するトリプレット数算出部と、
前記トリプレット数算出部が算出したトリプレットの数に応じて重み値を各トリプレットに対して設定する重み値設定部と、
前記各トリプレットごとに、少なくとも前記第１比率値（Ｒ１）の変動係数（標準偏差／平均値）を算出する変動係数算出部と、
前記重み値設定部が設定した重み値が所定値以上であって、前記変動係数算出部が算出した変動係数が所定値以下のトリプレットデータだけを前記ユーザ判定用データとして再選別するトリプレット再選別部と
を有していることを特徴とするユーザ認証システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータを使用するユーザの認証技術に関し、特に、キーボードからの操作情報を監視して継続的にユーザの認証処理を実行するユーザ認証プログラムおよびユーザ認証システムに関するものである。
【背景技術】
【０００２】
従来、ユーザの認証技術としては、ユーザＩＤとパスワードとの組合せによりログイン認証する技術が知られている。しかしながら、このログイン認証技術においては、パスワードが漏洩したり、他人に予測されてしまうと、簡単に突破されてしまうという問題がある。また、コンピュータの使用開始時にのみ認証するだけなので、一旦、ユーザ認証されたシステムが放置されると、誰でも簡単に操作することができてしまうという問題もある。
【０００３】
特に、近年、注目されている電子カルテのように、他人による「なりすまし入力」や改ざんが許されない書類データを取り扱うシステムにおいては、上記のログイン認証だけでは不十分である旨が指摘されている。なぜなら、病院内のシステムにおいて、患者からの緊急呼出を受けた医師や看護婦にログアウト処理を徹底させることは現実的ではなく、ログイン状態のままのシステムが多数放置されているのが現状だからである。
【０００４】
このようなログイン認証技術の問題を解決するものとして、キーボードからの入力操作情報に含まれる癖や特徴に基づき、ユーザを逐次認証する技術（キーストロークダイナミクス技術）が提案されている。例えば、特開２００３−５８５０４号公報には、情報処理装置に対する入力手段におけるユーザの操作情報を取得し、該操作情報から個人の操作特徴情報を抽出し、抽出した個人の操作特徴情報と、記憶手段に格納した登録ユーザの操作特徴情報との照合処理を実行し、前記照合処理の結果に基づいて、前記入力手段に対するユーザ操作に対応する前記情報処理装置における処理の実行可否を決定する許可情報を生成し、生成した許可情報を前記情報処理装置に対して出力する構成を有する個人認証処理装置が開示されている（特許文献１）。
【０００５】
【特許文献１】特開２００３−５８５０４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記特許文献１に記載された発明を含め、従来のキーストロークダイナミクス技術においては、登録ユーザを誤って認証拒否してしまう確率が高く、使い勝手が悪いという問題がある。具体的には、入力された操作情報を何ら選別することなく照合処理に使用するため、シフトキーやスペースキー（変換キー）等の押下によって入力リズムが遅延したり、偶発的に入力操作が中断した場合、あるいは自分の名前等のように頻繁な入力作業によって高速で入力可能となった文字列の場合には、登録ユーザであるにも関わらず認証が拒否されてしまう。
【０００７】
また、上記特許文献１では、ユーザ照合用の操作情報として、ｎ−１番目のキー押下からｎ番目のキー押下までの時間（ＤＤｎ）、ｎ番目のキー押下から開放までの時間（ＵＤｎ）、あるいはｎ−１番目のキー開放からｎ番目のキー押下までの時間（ＤＵｎ）の平均値を単純に利用している。このため、照合結果がタイプスピードの変動による影響を極めて受けやすく、少しでも入力速度が違うと登録ユーザでも拒否される可能性が高くなるという問題がある。
【０００８】
さらに、上記特許文献１では、入力された操作情報がそのまま認証情報データベースに登録されている。このため、操作情報が連続して入力されると、コンピュータやネットワークに高い負荷がかかってしまうおそれがある。また、入力された文字列がそのままの順序で登録されるため、当該データが盗まれたりすると、簡単に入力内容が解析されるおそれがありセキュリティ面にも不安がある。
【０００９】
本発明は、このような問題点を解決するためになされたものであって、キーボードからの操作情報を監視して継続的にユーザの認証処理を実行できることはもとより、登録ユーザが誤って認証を拒否される確率を低減することができるユーザ認証プログラムおよびユーザ認証システムを提供することを目的としている。
【課題を解決するための手段】
【００１０】
本発明に係るユーザ認証プログラムの特徴は、登録ユーザが操作したキーボードの操作情報から取得した３連続の押下キーの組合せからなるトリプレットと、このトリプレットの操作情報のうち第１キーが押下されてから第２キーが押下されるまでの第１待ち時間（Ｔ１）と第２キーが押下されてから第３キーが押下されるまでの第２待ち時間（Ｔ２）の比率として求めた第１比率値（Ｒ１）とを少なくとも有するユーザ判定用データを前記登録ユーザに対応付けて予め記憶するユーザ判定用データ記憶部と、キーボードが操作されたときのキー操作情報を取得するキー操作情報取得部と、前記キー操作情報から所定のトリプレットを抽出するトリプレット抽出部と、前記トリプレット抽出部が抽出した各トリプレットについて前記第１待ち時間（Ｔ１）および前記第２待ち時間（Ｔ２）を取得する時間データ取得部と、前記各トリプレットについて前記第１比率値（Ｒ１）を算出する比率値算出部と、前記各トリプレットに前記第１比率値（Ｒ１）を対応付けたトリプレットデータとしてトリプレットデータ記憶部に登録するトリプレットデータ登録部と、前記トリプレットデータ記憶部に登録された前記トリプレットデータを判定対象データとして取得する判定対象データ取得部と、前記ユーザ判定用データ記憶部に記憶されたユーザ判定用データに基づいて、前記判定対象データ内の各第１比率値（Ｒ１）の評価値（Ｖ）を算出する評価値算出部と、前記判定対象データに含まれる全てのトリプレットにつき、前記評価値算出部が算出した各評価値（Ｖ）に基づいて、前記判定対象データに関する特徴値（Ｃ）を算出する特徴値算出部と、前記特徴値（Ｃ）と所定のカットオフ値との大小関係に基づいて、前記判定対象データが前記登録ユーザによって入力されたものか否かを判定するユーザ判定部としてコンピュータを機能させる点にある。
【００１１】
また、本発明において、前記ユーザ判定用データ記憶部には、トリプレットを構成する３連続の押下キーのうちいずれか２つの押下キーの押下時間の比率として求めた第２比率値（Ｒ２）がユーザ判定用データとしてさらに記憶されており、前記時間データ取得部は、前記トリプレット抽出部が抽出した各トリプレットにつき、各キーの押下時間（Ｄ１，Ｄ２，Ｄ３）を取得し、前記比率値算出部は、各トリプレットについて前記第２比率値（Ｒ２）を算出し、前記トリプレットデータ登録部が、各トリプレットに前記第２比率値（Ｒ２）を対応付けてトリプレットデータとしてトリプレットデータ記憶部に登録し、前記評価算出部は、前記ユーザ判定用データ記憶部に記憶されたユーザ判定用データに基づいて、前記判定対象データ内の前記第２比率値（Ｒ２）に対する評価値（Ｖ）を算出し、特徴値算出部は、前記第１比率値（Ｒ１）および第２比率値（Ｒ２）に対する評価値（Ｖ）に基づいて、前記判定対象データに関する特徴値（Ｃ）を算出するようにコンピュータを機能させることが好ましい。
【００１２】
さらに、本発明において、前記時間データ取得部によって取得された各トリプレットにおける前記第１待ち時間（Ｔ１）および前記第２待ち時間（Ｔ２）ないし各キーの押下時間（Ｄ１，Ｄ２，Ｄ３）が、所定の制限時間内にあるトリプレットを選別するトリプレット選別部を有しており、このトリプレット選別部により選別された各トリプレットについて、前記比率値算出部が前記第１比率値（Ｒ１）および前記第２比率値（Ｒ２）を算出し、前記トリプレットデータ登録部が両者を対応付けてトリプレットデータとしてトリプレットデータ記憶部に登録するようにコンピュータを機能させることが好ましい。
【００１３】
また、本発明において、前記評価値算出部が、前記判定対象データに含まれるトリプレットの比率値と、前記ユーザ判定用データ内に記憶されている同一トリプレット群の比率値とを比較して当該トリプレットの比率値に関する順位を求め、当該順位が中央値に近いほど高い評価値（Ｖ）を算出し、当該順位が最高値または最低値に近いほど低い評価値（Ｖ）を算出するようにコンピュータを機能させることが好ましい。
【００１４】
さらに、本発明において、前記評価値算出部が、下記式（１）により前記評価値（Ｖ）を算出するようにコンピュータを機能させることが好ましい。
Ｖ（Ｒ）＝ａ−ｂ×｜（Ｌ−Ｓ）｜×（Ｌ＋Ｓ）  ・・・式（１）
ただし、
ａ，ｂ：係数
Ｒ：第１比率値または第２比率値
Ｌ：ユーザ判定用データ内のトリプレットのうち、判定対象データのトリプレットと同一文字列であって、当該トリプレットの比率値より大きい比率値を有するトリプレットの数
Ｓ：ユーザ判定用データ内のトリプレットのうち、判定対象データのトリプレットと同一文字列であって、当該トリプレットの比率値以下の比率値を有するトリプレットの数
【００１５】
また、本発明において、前記特徴値算出部が、下記式（２）により前記特徴値（Ｃ）を算出するようにコンピュータを機能させることが好ましい。
Ｃ＝｛Σ［Ｗ×Ｖ（Ｒ）］｝／Ｎ  ・・・式（２）
ただし、
Ｗ：ユーザ判定用データ内のトリプレットのうち、判定対象データのトリプレットと同一文字列のトリプレット数に基づいて定められる重み値
Ｎ：被評価単位のトリプレット数
【００１６】
さらに、本発明において、前記時間データ取得部が、さらに前記トリプレット抽出部により抽出された各トリプレットにつき、第１キーが押下されてから第３キーが解放されるまでの総トリプレット時間を取得するとともに、前記トリプレット選別部が、取得した前記総トリプレット時間のうち所定の制限時間内にあるトリプレットだけを選別するようにコンピュータを機能させることが好ましい。
【００１７】
また、本発明において、前記トリプレット抽出部によって抽出されたトリプレットのトリプレットデータをトリプレットデータ記憶部に登録する前に、所定数のトリプレット群ごとに抽出順序をランダムに並べ替える抽出順序ランダマイズ部としてコンピュータを機能させることが好ましい。
【００１８】
さらに、本発明において、前記トリプレットデータ記憶部に記憶された前記トリプレットデータから所定の登録ユーザに関するユーザ判定用データを作成するための基本データを取得する基本データ取得部と、前記基本データに含まれる同一文字列のトリプレットの数を算出するトリプレット数算出部と、前記トリプレット数算出部が算出したトリプレットの数に応じて重み値を各トリプレットに対して設定する重み値設定部と、前記各トリプレットごとに、前記第１比率値（Ｒ１）乃至前記第２比率値（Ｒ２）の変動係数（標準偏差／平均値）を算出する変動係数算出部と、前記重み値設定部が設定した重み値が所定値以上であって、前記変動係数算出部が算出した変動係数が所定値以下のトリプレットデータだけを前記ユーザ判定用データとして再選別するトリプレット再選別部としてコンピュータを機能させることが好ましい。
【００１９】
また、本発明に係るユーザ認証システムは、登録ユーザが操作したキーボードの操作情報から取得した３連続の押下キーの組合せからなるトリプレットと、このトリプレットの操作情報のうち第１キーが押下されてから第２キーが押下されるまでの第１待ち時間（Ｔ１）と第２キーが押下されてから第３キーが押下されるまでの第２待ち時間（Ｔ２）の比率として求めた第１比率値（Ｒ１）とを少なくとも有するユーザ判定用データを前記登録ユーザに対応付けて予め記憶するユーザ判定用データ記憶部と、キーボードが操作されたときのキー操作情報を取得するキー操作情報取得部と、前記キー操作情報から所定のトリプレットを抽出するトリプレット抽出部と、前記トリプレット抽出部が抽出した各トリプレットについて前記第１待ち時間（Ｔ１）および前記第２待ち時間（Ｔ２）を取得する時間データ取得部と、前記各トリプレットについて前記第１比率値（Ｒ１）を算出する比率値算出部と、前記各トリプレットに前記第１比率値（Ｒ１）を対応付けたトリプレットデータとしてトリプレットデータ記憶部に登録するトリプレットデータ登録部と、前記トリプレットデータ記憶部に登録された前記トリプレットデータを判定対象データとして取得する判定対象データ取得部と、前記ユーザ判定用データ記憶部に記憶されたユーザ判定用データに基づいて、前記判定対象データ内の各第１比率値（Ｒ１）の評価値（Ｖ）を算出する評価値算出部と、前記判定対象データに含まれる全てのトリプレットにつき、前記評価値算出部が算出した各評価値（Ｖ）に基づいて、前記判定対象データに関する特徴値（Ｃ）を算出する特徴値算出部と、前記特徴値（Ｃ）と所定のカットオフ値との大小関係に基づいて、前記判定対象データが前記登録ユーザによって入力されたものか否かを判定するユーザ判定部とを有する点にある。
【発明の効果】
【００２０】
本発明によれば、キーボードからの操作情報を監視して継続的にユーザの認証処理を実行できることはもとより、登録ユーザが誤って認証を拒否される確率を低減することができる。
【発明を実施するための最良の形態】
【００２１】
以下、本発明に係るユーザ認証プログラムおよびユーザ認証システムの実施形態について図面を用いて説明する。
【００２２】
図１は、本発明に係るユーザ認証プログラム１ａを搭載したユーザ認証システム１の全体構成を示すブロック図である。図１に示すように、本実施形態のユーザ認証システム１は、主として、キーボードやマウス等からなる入力手段２と、液晶ディスプレイ等からなる表示手段３と、本実施形態のユーザ認証プログラム１ａや各種のデータ等を記憶する記憶手段４と、これら各構成手段を制御するとともに各種のデータを取得して演算処理を実行する演算処理手段５とから構成されている。
【００２３】
記憶手段４は、ハードディスクやＲＡＭ（Random Access Memory）等から構成されており、図１に示すように、プログラム記憶部４１と、ユーザ判定用データ記憶部４２と、トリプレットデータ記憶部４３とを有している。
【００２４】
以下、記憶手段４の各構成部についてより詳細に説明する。プログラム記憶部４１には、本実施形態のユーザ認証プログラム１ａがインストールされている。そして、演算処理手段５によって実行されることにより、コンピュータを本実施形態のユーザ認証システム１として機能させるようになっている。なお、本実施形態では、ユーザ認証プログラム１ａによって、後述する全ての機能を実現しているが、これに限られるものではなく、各機能ごとに別個のプログラムとして独立させるようにしてもよい。
【００２５】
ユーザ判定用データ記憶部４２は、キーボードからのキー操作が登録ユーザに由来するものであるか否かを判定するためのユーザ判定用データを予め記憶するものである。このユーザ判定用データは、登録ユーザのタイピングの癖や特徴を示すものであり、後述するように、登録ユーザのキー操作情報からサンプリングされたトリプレットデータに基づいて作成される。
【００２６】
また、ユーザ判定用データを構成するデータ単位としては、３連続の押下キーの組合せ（本発明において「トリプレット」という）を採用した。なぜなら、本願発明者による多数のサンプリング調査の結果、２連続の押下キーの組合せを用いた場合、パラメータが安定せず、登録ユーザを誤って拒否する確率が高かったからである。一方、４連続の押下キーの組合せを用いた場合、データが膨大になり、データの作成処理および判定処理に時間がかかり過ぎることがわかったからである。よって３連続の押下キーの組合せを使って認証判定するのが好ましいとの知見に至った。
【００２７】
また、本実施形態において、トリプレットとしては、２６種類の小文字アルファベットキー（ａ〜ｚ）のみからなる３連続の押下キーの組合せを対象とした。アルファベットキー以外のキー、例えばシフトキー、スペースキー、リターンキー、数字キー、記号キー等を含むトリプレットについては、タッチタイピングにおけるホームポジションから逸脱していたり、かな漢字変換システムを操作している可能性があり、登録ユーザに固有のタイピングの癖や特徴を示すデータとしては不適切と考えられるからである。
【００２８】
図２は、本実施形態におけるユーザ判定用データの一例を示す図である。本実施形態において、ユーザ判定用データは、認証しようとする登録ユーザに対応付けて、３連続の押下キーの組合せ（第１キー，第２キーおよび第３キー）からなるトリプレットと、当該トリプレットの操作情報のうち、第１キーが押下されてから第２キーが押下されるまでの第１待ち時間（Ｔ１）と第２キーが押下されてから第３キーが押下されるまでの第２待ち時間（Ｔ２）の比率として求めた第１比率値（Ｒ１）と、第２キーの押下時間（Ｄ２）と第３キーの押下時間（Ｄ３）の比率として求めた第２比率値（Ｒ２）とから構成されている。
【００２９】
なお、本実施形態において、ユーザ判定用データは、第１比率値（Ｒ１）と第２比率値（Ｒ２）との両方を有しているが、これに限られるものではなく、少なくとも第１比率値（Ｒ１）を有していれば所定の作用効果が得られる。また、第２比率値（Ｒ２）としては、第２キーの押下時間（Ｄ２）と第３キーの押下時間（Ｄ３）の比率を使用しているが、第１キーの押下時間（Ｄ１）と第２キーの押下時間（Ｄ２）の比率、あるいは第１キーの押下時間（Ｄ１）と第３キーの押下時間（Ｄ３）の比率を使用してもよい。さらに、本実施形態では、後述するように、入力された回数が１０回以下のトリプレットはサンプルの信頼性を確保する観点から除外されている。
【００３０】
トリプレットデータ記憶部４３は、登録ユーザのキー操作情報からサンプリングしたトリプレットデータを記憶するものである。このトリプレットデータは、ユーザ判定用データを作成するための基本データとして用いられる。また、本実施形態において、トリプレットデータは、後述するように、登録ユーザか否かを判定するための判定対象データとしても用いられる。したがって、トリプレットデータは、前述したユーザ判定用データと同様、トリプレットと、第１比率値（Ｒ１）と、第２比率値（Ｒ２）とから構成されている。
【００３１】
つぎに、演算処理手段５は、ＣＰＵ（Central Processing Unit）等から構成されており、プログラム記憶部４１にインストールされたユーザ認証プログラム１ａを実行させることにより、主として、キー操作情報からトリプレットデータを採取するためのトリプレットデータ採取機能と、ユーザ判定用データを作成するためのユーザ判定用データ作成機能と、キー操作しているユーザを判定するためのユーザ判定機能とを実現するようになっている。
【００３２】
以下、各機能を実現するための各構成部についてより詳細に説明する。まず、トリプレットデータ採取機能は、図１に示すように、主として、キー操作情報取得部５１と、トリプレット抽出部５２と、時間データ取得部５３と、トリプレット選別部５４と、比率値算出部５５と、抽出順序ランダマイズ部５６と、トリプレットデータ登録部５７としてコンピュータを機能させることにより実現されるものである。
【００３３】
以下、トリプレットデータ採取機能を実現させる各構成部についてより詳細に説明する。
【００３４】
キー操作情報取得部５１は、キーボードが操作されたときのキー操作情報を取得するものである。本実施形態において、ユーザ認証システム１は、キーボードの各キーが押下されたり、解放される度に内部的なメッセージデータを作成するように構成されている。したがって、キー操作情報取得部５１は、これらのメッセージデータを横取り（hooking）し、キー操作情報として取得するようになっている。
【００３５】
トリプレット抽出部５２は、キー操作情報から所定のトリプレットを抽出するものである。具体的には、トリプレット抽出部５２は、キー操作情報取得部５１が取得したキー操作情報の中から、３連続の押下キーのうち全てが有効キー群からなるトリプレットを抽出するようになっている。本実施形態では、２６種類の小文字アルファベットキー（ａ〜ｚ）のみが有効キー群に設定され、これ以外のキーは無効キー群に設定されている。
【００３６】
例えば、「Keystroke dynamics」というキー操作情報からは、図３に示すように、「eys」「yst」「str」「tro」「rok」「oke」「dyn」「yna」「nam」「ami」「mic」「ics」という１２個のトリプレットが抽出される。この場合、最初の「K」は大文字であるため、キー操作情報「Key」はトリプレットとして抽出されない。また、この例では、スペースキー（空白部）を含むキー操作情報「ke_」「e_d」「_dy」はトリプレットとして抽出されない。
【００３７】
時間データ取得部５３は、トリプレットを構成する各押下キーに関し、所定の時間データを取得するものである。具体的には、時間データ取得部５３は、トリプレット抽出部５２が抽出した各トリプレットにつき、図４に示すように、第１キーの押下時間（Ｄ１）と、第２キーの押下時間（Ｄ２）と、第３キーの押下時間（Ｄ３）と、第１キーが押下されてから第２キーが押下されるまでの第１待ち時間（Ｔ１）と、第２キーが押下されてから第３キーが押下されるまでの第２待ち時間（Ｔ２）とを取得する。
【００３８】
また、本実施形態において、時間データ取得部５３は、トリプレット抽出部５２が抽出した各トリプレットにつき、図４に示すように、第１キーが押下されてから第３キーが解放されるまでの総トリプレット時間（ＴＡ）をも取得するようになっている。
【００３９】
トリプレット選別部５４は、例外的なトリプレットを除外し有効なトリプレットだけを選別するものである。具体的には、トリプレット選別部５４は、時間データ取得部５３が取得した各時間データ（Ｄ１，Ｄ２，Ｄ３，Ｔ１，Ｔ２，ＴＡ）を取得し、各時間データが所定の制限時間内に含まれているか否かを判定する。そして、全ての時間データが制限時間内にあるトリプレットだけを適切なトリプレットとして選別するようになっている。一方、いずれかの時間データが制限時間を逸脱している場合、当該トリプレットは例外的なデータであるとして採用しない。
【００４０】
なお、本実施形態において、制限時間としては、各キーの押下時間（Ｄ１，Ｄ２，Ｄ３）に対する上限値および下限値、各待ち時間（Ｔ１，Ｔ２）に対する上限値および下限値、および第１キーが押下されてから第３キーが解放されるまでの総トリプレット時間（ＴＡ）に対する上限値を設定しているがこれに限られるものではなく、少なくとも、第１待ち時間（Ｔ１）および第２待ち時間（Ｔ２）ないし各キーの押下時間（Ｄ１，Ｄ２，Ｄ３）に制限時間を設定し、トリプレットを選別するようにしてもよい。
【００４１】
比率値算出部５５は、各トリプレットについて、上述した第１比率値（Ｒ１）および第２比率値（Ｒ２）を算出するものである。具体的には、比率値算出部５５は、トリプレット選別部５４により選別された各トリプレットについて、時間データ取得部５３が取得した第１待ち時間（Ｔ１）および第２待ち時間（Ｔ２）を取得し、第１比率値（Ｒ１＝Ｔ１／Ｔ２）を算出する。同様に、比率値算出部５５は、時間データ取得部５３が取得した各キー押下時間（Ｄ１，Ｄ２，Ｄ３）の押下時間のうちいずれか２つを取得し、第２比率値（Ｒ２＝Ｄ２／Ｄ３，Ｄ１／Ｄ２，Ｄ１／Ｄ３）を算出する。
【００４２】
なお、本実施形態において、比率値算出部５５は、内部的処理として、一方を２５６倍してから他方で除算し、小数点以下を切り捨てて得られる整数を比率値として算出するようになっている。これにより、計算の高速化が図られている。
【００４３】
抽出順序ランダマイズ部５６は、キー押下された文字列を再現し難くするため、トリプレットの抽出順序をランダムに並べ替えるものである。本実施形態において、抽出順序ランダマイズ部５６は、トリプレット選別部５４が選別した各トリプレットのトリプレットデータをトリプレットデータ記憶部４３に登録する前に、各トリプレットにタイムスタンプ（秒単位）を含むヘッダを付し、順次、記憶手段４のＲＡＭに一時的に蓄積させる。そして、所定数のトリプレット群が蓄積したところで、トリプレット抽出部５２による抽出順序をランダムに並べ替えるようになっている。
【００４４】
なお、本実施形態では、再現の困難性と処理速度とのバランスを考慮して、ランダマイズする際のトリプレット蓄積数を５０〜３００個に設定しているが、適宜増減してもよい。また、抽出順序ランダマイズ部５６は、オプション的に備えられるものであり、別途、暗号化処理プログラム等によってセキュリティ性を向上させてもよい。
【００４５】
トリプレットデータ登録部５７は、トリプレットデータをトリプレットデータ記憶部４３に登録するものである。具体的には、トリプレット選別部５４が選別した各トリプレットについて、比率値算出部５５が算出した第１比率値（Ｒ１）および第２比率値（Ｒ２）を取得し、これら両者を対応付けたトリプレットデータとしてトリプレットデータ記憶部４３に登録するようになっている。
【００４６】
本実施形態において、トリプレットデータ登録部５７は、ユーザ判定用データを作成するための基本データとしてトリプレットデータを登録する場合、ユーザの特徴を示すものとしての信頼性を担保しうる充分なトリプレット数（7000〜10000程度）を確保し、当該ユーザに対応付けて登録する。また、本実施形態において、トリプレットデータ登録部５７は、ユーザ判定時の判定対象データとしてトリプレットデータを登録する場合、一回判定分に好適なトリプレット数（50〜400程度）を確保する。
【００４７】
つぎに、ユーザ判定用データ作成機能を実現する各構成部について説明する。このユーザ判定用データ作成機能は、図１に示すように、主として、基本データ取得部５８と、トリプレット数算出部５９と、重み値設定部６０と、変動係数算出部６１と、トリプレット再選別部６２と、ユーザ判定用データ登録部６３としてコンピュータを機能させることにより実現されるものである。
【００４８】
以下、ユーザ判定用データ作成機能を実現させる各構成部についてより詳細に説明する。
【００４９】
基本データ取得部５８は、ユーザ判定用データを作成するための基本データを取得するものである。具体的には、基本データ取得部５８は、トリプレットデータ記憶部４３に登録されたトリプレットデータのうち、ユーザ判定用データを作成しようとする所定の登録ユーザについて採取されたトリプレットデータを基本データとして取得する。なお、基本データとして蓄積されたトリプレットの数が多いほど、ユーザ判定用データの精度が高くなるため、本実施形態では、少なくとも７０００個以上のトリプレットを有するトリプレットデータを基本データとして使用する。
【００５０】
トリプレット数算出部５９は、同一文字列からなるトリプレットの数を算出するものである。具体的には、トリプレット数算出部５９は、基本データ取得部５８が取得した基本データに含まれる全トリプレットを読み込み、異なる文字列のトリプレットごとに、当該トリプレットと同一文字列のトリプレットの出現回数をカウントし、トリプレット数として算出するようになっている。
【００５１】
重み値設定部６０は、各トリプレットに対する重み値を設定するものである。本実施形態において、重み値設定部６０は、各トリプレットについてトリプレット数算出部５９が算出したトリプレット数を取得し、当該トリプレット数に応じて重み値を設定する。具体的には、トリプレット数の多いトリプレットは、登録ユーザの特徴をより正確かつ安定的に示す可能性が高いためより高い重み値を付与し、トリプレット数の少ないトリプレットは、パラメータとして安定しないためより低い重み値を付与する。
【００５２】
なお、本実施形態では、トリプレット数が１１個以上のトリプレットには重み値として「１」を付与し、トリプレット数が１０個以下のトリプレットには重み値として「０」を付与しているが、これに限られるものではなく、トリプレット数に比例した重み値を付与するようにしてもよい。
【００５３】
トリプレット再選別部６２は、ユーザ判定用データとして好適なトリプレットデータを再選別するものである。本実施形態において、トリプレット再選別部６２は、重み値設定部６０によって設定された重み値が所定の閾値以上であるか否かを判定する。そして、当該重み値が所定値以上となるトリプレットデータをユーザ判定用データに好適な情報として選択する。一方、当該重み値が所定値よりも小さいトリプレットデータは、ユーザ判定用データとしては不適な情報として除外する。
【００５４】
変動係数算出部６１は、各トリプレットについて、第１比率値（Ｒ１）および第２比率値（Ｒ２）の変動係数（標準偏差／平均値）を算出するものである。具体的には、変動係数算出部６１は、トリプレット再選別部６２によって再選別された各トリプレットについて、第１比率値（Ｒ１）および第２比率値（Ｒ２）を取得し、各比率値の平均値および標準偏差を算出する。そして、当該標準偏差を平均値で除した値を変動係数（標準偏差／平均値）として算出するようになっている。
【００５５】
また、本実施形態において、トリプレット再選別部６２は、上述した重み値による再選別に加えて、変動係数による再選別をも実行するようになっている。具体的には、トリプレット再選別部６２は、変動係数算出部６１によって算出された変動係数が所定の閾値以下であるか否かを判定する。そして、当該変動係数が所定値以下のトリプレットデータをユーザ判定用データとして再選別するようになっている。一方、当該変動係数が所定値よりも大きいトリプレットデータは、ユーザ判定用データとしては不適であると判定して除外する。これは、変動係数が大きいほど各比率値のばらつきが大きく、ユーザ判定用データとしての信頼性が低いからである。
【００５６】
ユーザ判定用データ登録部６３は、ユーザ判定用データをユーザ判定用データ記憶部４２に登録するものである。具体的には、ユーザ判定用データ登録部６３は、基本データの中からトリプレット再選別部６２によって再選別されたトリプレットデータだけをユーザ判定用データとしてユーザ判定用データ記憶部４２に登録するようになっている。
【００５７】
つぎに、ユーザ判定機能を実現する各構成部について説明する。このユーザ判定機能は、図１に示すように、主として、判定対象データ取得部６４と、評価値算出部６５と、特徴値算出部６６と、ユーザ判定部６７と、後処理実行部６８としてコンピュータを機能させることにより実現されるものである。
【００５８】
以下、ユーザ判定機能を実現させる各構成部についてより詳細に説明する。
【００５９】
判定対象データ取得部６４は、キー操作しているユーザが登録ユーザであるか否か判定するための判定対象データを取得するものである。本実施形態において、判定対象データ取得部６４は、判定しようとする登録ユーザについてサンプリングされたトリプレットデータのうち、一回判定分のトリプレットデータを逐次、判定対象データとしてトリプレットデータ記憶部４３から取得する。なお、本実施形態において、判定対象データ取得部６４は、リアルタイムでの常時監視性と処理速度とのバランスを考慮して、５０〜４００個のトリプレットからなるトリプレットデータを一回判定分の判定対象データとして取得するようになっている。
【００６０】
評価値算出部６５は、各トリプレットについての評価値（Ｖ）を算出するものである。この評価値算出部６５は、判定対象データ取得部６４が取得した判定対象データに含まれる各トリプレットにつき、ユーザ判定用データ記憶部４２に記憶されたユーザ判定用データに基づいて、第１比率値（Ｒ１）および第２比率値（Ｒ２）の評価値（Ｖ）を算出するようになっている。
【００６１】
具体的には、評価値算出部６５は、ユーザ判定用データ記憶部４２内のユーザ判定用データのうち、判定対象データに含まれるトリプレットと同一文字列の全トリプレット（同一トリプレット群）を参照する。そして、判定対象データに含まれるトリプレットの比率値と、当該同一トリプレット群の各比率値とを比較し、当該トリプレットの比率値に関する順位を求める。そして、当該順位が中央値に近いほど高い評価値（Ｖ）を算出し、当該順位が最高値または最低値に近いほど低い評価値（Ｖ）を算出するようになっている。
【００６２】
図５は、この評価値算出部６５による評価方法を示すグラフである。横軸に比率値をとり、縦軸にトリプレット数を取った場合、比率値が実線で表示するような分布を示したとする。この場合、比率値の大小に関する順位に換算すると、当該順位における中央値が求められる。したがって、図中の点線で示すように、当該中央値となる比率値を有するトリプレットには、最も高い評価値を付与し、当該中央値から順位が離れるに従って評価値を減少するように設定されている。
【００６３】
また、本実施形態において、評価値算出部６５は、下記式（１）を用いることにより、上述した順位に応じた評価値（Ｖ）を算出するようになっている。
Ｖ（Ｒ）＝ａ−ｂ×｜（Ｌ−Ｓ）｜×（Ｌ＋Ｓ）  ・・・式（１）
ただし、
ａ，ｂ：係数
Ｒ：第１比率値または第２比率値
Ｌ：ユーザ判定用データ内のトリプレットのうち、判定対象データのトリプレットと同一文字列であって、当該トリプレットの比率値より大きい比率値を有するトリプレットの数
Ｓ：ユーザ判定用データ内のトリプレットのうち、判定対象データのトリプレットと同一文字列であって、当該トリプレットの比率値以下の比率値を有するトリプレットの数
【００６４】
なお、本実施形態では、トリプレットの比率値分布の歪みを考慮して、上述した順位に応じた評価値（Ｖ）を採用しているが、これに限られるものではない。例えば、後述するように、前記比率値分布が正規分布に近い場合には、標準偏差を基準とし、平均値からの距離を評価値（Ｖ）として採用するようにしてもよい。
【００６５】
特徴値算出部６６は、判定対象データに関する特徴値（Ｃ）を算出するものである。この特徴値（Ｃ）は、判定対象データが登録ユーザに由来するものか否かを判定するための指標となるものである。本実施形態において、特徴値算出部６６は、判定対象データに含まれる全てのトリプレットにつき、評価値算出部６５が算出した各評価値（Ｖ）を取得する。そして、これらの評価値（Ｖ）に基づいて、判定対象データの特徴値（Ｃ）を算出するようになっている。
【００６６】
具体的には、特徴値算出部６６は、下記式（２）により特徴値（Ｃ）を算出するようになっている。
Ｃ＝｛Σ［Ｗ×Ｖ（Ｒ）］｝／Ｎ  ・・・式（２）
ただし、
Ｗ：ユーザ判定用データ内のトリプレットのうち、判定対象データのトリプレットと同一文字列のトリプレット数に基づいて定められる重み値
Ｎ：被評価単位のトリプレット数
【００６７】
なお、本実施形態において、上記式（２）における重み値（Ｗ）は、上述した重み値設定部６０により算出される重み値と同様に設定されている。具体的には、ユーザ判定用データ内に同一トリプレットが多いトリプレットについては、判定対象データの特徴をより正確かつ安定的に示す可能性が高いため高い重み値が設定され、同一トリプレットが少ないトリプレットについては、パラメータとして安定しないため低い重み値が設定される。
【００６８】
また、上記式（２）における被評価単位のトリプレット数（Ｎ）は、１つのトリプレットであっても、第１比率値（Ｒ１）に対する評価値と、第２比率値（Ｒ２）に対する評価値を用いた場合、Ｎ＝２とする。
【００６９】
ユーザ判定部６７は、判定対象データが登録ユーザに由来するものであるか否かを判定するものである。本実施形態において、ユーザ判定部６７は、特徴値算出部６６により算出された特徴値（Ｃ）を取得し、この特徴値（Ｃ）と所定のカットオフ値との大小関係を比較する。そして、当該特徴値（Ｃ）がカットオフ値よりも大きい場合、当該判定対象データは登録ユーザに由来するものであると判定する。一方、当該特徴値（Ｃ）がカットオフ値以下の場合、当該判定対象データは登録ユーザによって入力されたものではないと判定する。
【００７０】
なお、カットオフ値は、登録ユーザを正しく登録ユーザとして判定する確率（特異度：specificity）と、登録ユーザとは異なる他人を正しく他人として判定する確率（感度：sensitivity）とのバランスに基づいて設定される。本実施形態では、常時監視による継続的なユーザ認証を前提としているため、特異度が高くなるように、つまり登録ユーザを誤って他人として判定する確率が低くなるようにカットオフ値を設定する。
【００７１】
後処理実行部６８は、ユーザ判定部６７の判定結果に応じて、所定の後処理を実行するものである。本実施形態において、後処理実行部６８は、ユーザ判定部６７によって登録ユーザであると判定された場合、そのまま当該ユーザによるキー操作を許可する。一方、ユーザ判定部６７によって登録ユーザでないと判定された場合、所定の後処理を実行する。
【００７２】
具体的な後処理としては、本システム１の管理者等に対し、その旨の警告レポートを発行するようにしてもよいし、入力されたデータに疑義が生じるまで何もしないようにしてもよい。以上の場合、当該ユーザによるキー操作自体は続行される。これに対し、後処理実行部６８は、キー操作中のユーザに別途、パスワードの入力や指紋認証を要求するようにしてもよく、キー操作を禁止するようにしてもよい。ただし、判定精度を１００％にすることは困難であるため、医療現場における事情を考慮すればキー操作を禁止するには充分な根拠が必要である。
【００７３】
つぎに、本実施形態のユーザ認証プログラム１ａによって実行されるユーザ認証システム１の作用につき、トリプレットデータ採取機能、ユーザ判定用データ作成機能、およびユーザ判定機能のそれぞれについて図面を参照しつつ説明する。
【００７４】
『トリプレットデータ採取機能』による作用
図６は、トリプレットデータ採取機能によって実行される処理を示すフローチャート図である。まず、本実施形態のユーザ認証システム１によって、基本データあるいは判定対象データとしてのトリプレットデータを採取する場合、ユーザが入力手段２であるキーボードを操作するのを待機する。そして、キーボードが操作されたとき、キー操作情報取得部５１が、そのキー操作情報を取得する（ステップＳ１）。なお、本実施形態において、基本データ用のトリプレットデータを採取する場合、キー操作開始時に、ユーザＩＤの入力を促し、キー操作情報の採取について同意を確認するように構成されている。
【００７５】
つづいて、トリプレット抽出部５２が、キー操作情報の中から、小文字アルファベットキー（ａ〜ｚ）のみからなるトリプレットを抽出する（ステップＳ２）。これにより、大文字を入力しようとしてシフトキーを押下した場合や、漢字変換しようとしてスペースキーを押下した場合等のように、ユーザ本来の入力リズムとは異なるリズムで入力された可能性の高いトリプレットを排除できるため、認証精度が向上する。
【００７６】
つぎに、抽出された各トリプレットにつき、時間データ取得部５３が、図４に示す各種の時間データ（Ｄ１，Ｄ２，Ｄ３，Ｔ１，Ｔ２，ＴＡ）を取得すると（ステップＳ３）、トリプレット選別部５４が、これらの時間データに基づき、有効なトリプレットを選別する（ステップＳ４）。
【００７７】
具体的には、図７に示すように、各キー（第１キー、第２キー、第３キー）の押下時間（Ｄ１，Ｄ２，Ｄ３）、各待ち時間（Ｔ１，Ｔ２）および総トリプレット時間（ＴＡ）のそれぞれが、所定の制限時間内に含まれるているか否かを判定する（ステップＳ４１〜Ｓ４３）。そして、各時間データの全てが制限時間内に含まれるトリプレットだけを選別する（ステップＳ４１〜Ｓ４３：全てＹＥＳ）。一方、いずれかの時間データが制限時間を逸脱している場合（ステップＳ４１〜Ｓ４３：いずれかＮＯ）、当該トリプレットを除外する（ステップＳ４４）。
【００７８】
これにより、偶発的にキー操作が遅くなったり中断した場合、いずれかの時間データが制限時間の上限値を超えるため、当該トリプレットは除外される。また、自分の名前等のように、頻繁に入力している文字列であるためにユーザ本来の入力速度よりも高速で入力されるトリプレットについては、いずれかの時間データが制限時間の下限値を下回るため、同様に除外される。また、コンピュータのＯＳ（Operating System）に起因して不自然な時間データが取得されたとしても、制限時間を逸脱するため当該トリプレットは除外される。
【００７９】
以上のように、登録ユーザのタイピングの癖や特徴を示す確率の高いトリプレットだけが選別されるため、認証精度が向上する。なお、本実施形態では、選別精度を高めるため、各キーの押下時間（Ｄ１，Ｄ２，Ｄ３）、各待ち時間（Ｔ１，Ｔ２）および総トリプレット時間（ＴＡ）のそれぞれについて判定しているが、これに限られるものではなく、各キーの押下時間（Ｄ１，Ｄ２，Ｄ３）または各待ち時間（Ｔ１，Ｔ２）のいずれかだけを判定して選別するようにしてもよい。
【００８０】
つづいて、比率値算出部５５が、選別された各トリプレットについて第１比率値（Ｒ１＝Ｔ１／Ｔ２）および第２比率値（Ｒ２＝Ｄ２／Ｄ３）を算出する（ステップＳ５）。なお、第２比率値として、第１キーの押下時間（Ｄ１）と第２キーの押下時間（Ｄ２）の比率（Ｄ１／Ｄ２）、あるいは第１キーの押下時間（Ｄ１）と第３キーの押下時間（Ｄ３）の比率（Ｄ１／Ｄ３）を算出するようにしてもよい。
【００８１】
つづいて、比率値が算出された各トリプレットは、抽出順序ランダマイズ部５６によって、順次、記憶手段４のＲＡＭに一時的に蓄積される。そして、所定数のトリプレット群が蓄積されたとき、トリプレット抽出部５２による抽出順序をランダムに並べ替える（ステップＳ６）。これにより、キーストロークごとにコンピュータやネットワークに大きな負荷をかけることが防止される。また、抽出順序をランダマイズすることで、キー操作情報の文字列が再現され難くなるため、機密性の高い情報が漏洩するのを防止し、セキュリティ性が向上する。
【００８２】
そして、トリプレットデータ登録部５７が、各トリプレットに対応付けて第１比率値（Ｒ１）および第２比率値（Ｒ２）をトリプレットデータとしてトリプレットデータ記憶部４３に登録する（ステップＳ７）。
【００８３】
以上のようにして得られたトリプレットデータは、ユーザ判定用データを作成するための基本データ、あるいは、キー操作するユーザを判定するための判定対象データとして使用される。したがって、トリプレットデータとして比率値を採用することで、タイプスピードの変動が判定結果に及ぼす影響を低減している。さらに、上述したランダマイズ処理と合わせて、キー操作情報の文字列を再現するための手がかりを無くして、セキュリティ面を強化している。
【００８４】
なお、本実施形態では、抽出順序のランダマイズ処理（ステップＳ６）を比率値算出ステップ（ステップＳ５）の後に実行しているが、これに限られるものではなく、トリプレットデータ登録ステップ（ステップＳ７）の前であれば、比率値算出ステップ（ステップＳ５）の前に実行してもよい。
【００８５】
『ユーザ判定用データ作成機能』による作用
図８は、ユーザ判定用データ作成機能によって実行される処理を示すフローチャート図である。まず、本実施形態のユーザ認証システム１によって、ユーザ判定用データを作成する場合、基本データ取得部５８が、ユーザ判定用データを作成しようとする登録ユーザについて採取されたトリプレットデータを基本データとしてトリプレットデータ記憶部４３から取得する（ステップＳ１１）。
【００８６】
つぎに、トリプレット数算出部５９が、基本データに含まれる全トリプレットを読み込み、同一文字列のトリプレットごとに、そのトリプレットの数を算出する（ステップＳ１２）。そして、重み値設定部６０が、当該トリプレット数に応じた重み値を設定する（ステップＳ１３）。
【００８７】
つづいて、トリプレット再選別部６２が、各トリプレットに付与された重み値を取得し、当該重み値が所定の閾値以上であるか否かを判定する（ステップＳ１４）。そして、当該重み値が所定値以上のトリプレットデータをユーザ判定用データとして再選別する（ステップＳ１４：ＹＥＳ）。一方、当該重み値が所定値よりも小さい場合（ステップＳ１４：ＮＯ）、当該トリプレットデータは、ユーザ判定用データとして不適であるとして除外する（ステップＳ１５）。これにより、トリプレット数の多いトリプレットは、登録ユーザの特徴をより正確かつ安定的に示す可能性が高いため採用される。一方、トリプレット数の少ないトリプレットは、パラメータとして安定しないため除外される。
【００８８】
つぎに、重み値によって再選別された各トリプレットデータにつき、変動係数算出部６１が、第１比率値（Ｒ１）および第２比率値（Ｒ２）の平均値および標準偏差を求め、その変動係数（標準偏差／平均値）を算出する（ステップＳ１６）。そして、トリプレット再選別部６２は、当該変動係数が所定の閾値以下であるか否かを判定する（ステップＳ１７）。
【００８９】
この判定の結果、当該変動係数が所定値以下の場合（ステップＳ１７：ＹＥＳ）、ユーザ判定用データ登録部６３が、当該トリプレットデータをユーザ判定用データとしてユーザ判定用データ記憶部４２に登録する（ステップＳ１８）。一方、当該変動係数が所定値よりも大きい場合（ステップＳ１７：ＮＯ）、当該トリプレットデータは、ユーザ判定用データとして不適であるとして除外される（ステップＳ１５）。これにより、ユーザ判定用データには、各比率値のばらつきが小さく、登録ユーザの本来的な特徴を示すトリプレットデータが採用される。
【００９０】
そして、全てのトリプレットデータについて、上記ステップＳ１２からステップＳ１８までの選別処理が繰り返される（ステップＳ１９）。以上のようなユーザ判定用データ作成機能を実行することにより、登録ユーザか否かを判定するための基準として使用するのに相応しいユーザ判定用データが作成される。
【００９１】
『ユーザ判定機能』による作用
図９は、ユーザ判定機能によって実行される処理を示すフローチャート図である。まず、本実施形態のユーザ認証システム１によって、キー操作しているユーザが登録ユーザ本人であるか否かを判定する場合、判定対象データ取得部６４が、判定しようとするユーザについて採取された一回判定分のトリプレットデータを判定対象データとしてトリプレットデータ記憶部４３から取得する（ステップＳ２１）。
【００９２】
つぎに、評価値算出部６５が、判定対象データに含まれる各トリプレットにつき、ユーザ判定用データ記憶部４２に記憶されたユーザ判定用データに基づいて、第１比率値（Ｒ１）および第２比率値（Ｒ２）に対する評価値（Ｖ）を算出する（ステップＳ２２）。本実施形態において、評価値算出部６５は、ユーザ判定用データのうち、判定対象トリプレットと同一文字列のトリプレットを全て参照し、当該判定対象トリプレットの比率値に関する順位を求める。そして、当該順位が中央値に近いほど高い評価値（Ｖ）を付与し、当該順位が最高値または最低値に近いほど低い評価値（Ｖ）を付与する。
【００９３】
これにより、各トリプレットの比率値分布が極端に歪んでいるような場合であっても、正確な評価値が付与される。この点につき、より具体的に説明すると、まず、図１０に示すように、比率値分布が正規分布に近い場合には、従来のように、標準偏差を基準とし平均値からの距離に応じて設定される評価関数ｆ（ｘ）を用いても問題はない。
【００９４】
この場合、平均値の近傍は、当該ユーザにより入力されたトリプレットの比率値としてよく出現するため高い評価値が付与され、平均値から離れるにつれて、あまり出現しない比率値であるため低い評価値が付与される。これにより、図１１に示すように、登録ユーザの確率分布Ｐ（ｘ）と、他人の確率分布Ｑ（ｘ）には大きなずれが生じるため、１つのトリプレットに対する登録ユーザの評価値の期待値∫（ｆ（ｘ）・Ｐ（ｘ））は、他人の評価値の期待値∫（ｆ（ｘ）・Ｑ（ｘ））よりも大きくなり、正しい評価を下すことができる。
【００９５】
一方、図１２に示すように、比率値分布が極端に歪んでいる場合、上述の評価関数ｆ（ｘ）を用いると問題が生じる。具体的には、図中の黒丸で示すデータについては、本来であれば、分布の端部なので低い評価を与えたいところである。しかしながら、図１２の比率値分布は左よりのピークで、かつ右に長く延びる分布であるから、標準偏差および平均値は図１１の比率値分布と同じになる。このため、上記評価関数ｆ（ｘ）を用いると、黒丸データは平均値近傍に近いため、高い評価値が付与されてしまうことになる。
【００９６】
これに対し、本実施形態の評価値算出部６５によれば、図５でも説明したように、比率値の大小に関する順位の中央値となる比率値を有するトリプレットには、最も高い評価値が付与されるとともに、当該中央値から順位が離れたトリプレットには、低い評価値が付与される。したがって、黒丸データについても、平均値には近くても、順位としては最後尾付近であるため、正しく低い評価値が付与されることとなる。
【００９７】
図９に戻り、評価値算出部６５によって各トリプレットの評価値（Ｖ）が算出されると（ステップＳ２２）、特徴値算出部６６が、判定対象データに含まれる全てのトリプレットの評価値（Ｖ）を取得し、当該判定対象データの特徴値（Ｃ）を算出する（ステップＳ２３）。そして、ユーザ判定部６７が、当該特徴値（Ｃ）を所定のカットオフ値と比較する（ステップＳ２４）。
【００９８】
この比較の結果、ユーザ判定部６７によって、当該特徴値（Ｃ）がカットオフ値以下であると判定された場合（ステップＳ２４：ＮＯ）、当該判定対象データは登録ユーザとは異なる他人によってキー操作されたものであると判定される（ステップＳ２５）。これにより、後処理実行部６８が、本システム１の管理者等に対し、その旨の警告レポートを発行する等の後処理を実行する（ステップＳ２６）。そして、処理はステップＳ２１へ戻り、キー操作されている限り、キー操作情報を常時監視し、継続的にユーザの認証処理を実行するようになっている。なお、キー操作を禁止する場合には、本フローを終了させる。
【００９９】
一方、ユーザ判定部６７によって、当該特徴値（Ｃ）がカットオフ値よりも大きいと判定された場合（ステップＳ２４：ＹＥＳ）、当該判定対象データは登録ユーザに由来するものであると判定される（ステップＳ２７）。この場合も、処理はステップＳ２１へ戻り、判定対象データ取得部６４が、新たな判定対象データを取得する。そして、登録ユーザがキー操作している限り、キー操作情報を常時監視し、継続的にユーザの認証処理を実行するようになっている。
【０１００】
以上のような本実施形態によれば、
１．キーボードからのキー操作情報を常時監視して、継続的にユーザの認証処理を逐次実行することができる。
２．キー操作情報からユーザ判定用データや判定対象データに適したデータだけを選別することができ、認証精度を向上することができる。
３．キー操作情報が解析されるのを防止してセキュリティ性を向上することができる。
４．比率値分布が極端に歪んでいるような場合であっても、各トリプレットに正確な評価値を付与することができる等の効果を奏する。
【実施例１】
【０１０１】
つぎに、本発明に係るユーザ認証プログラム１ａおよびユーザ認証システム１の具体的な実施例について説明する。本実施例１では、本発明に係るユーザ認証システム１を病院内の情報システムに適用することを想定し、研究者および病院の従業員からなる８名（２８歳〜６１歳）の被験者について、ユーザ判定用データを作成し、このユーザ判定用データに基づいて、他人の判定対象データを判定する実験を行った。
【０１０２】
まず、本実施例１では、各被検者のパーソナルコンピュータＰＣ（Personal Computer）に本発明に係るユーザ認証プログラム１ａをインストールし、上述したトリプレットデータ採取機能を用いて、日常作業の中でトリプレットデータを収集した。本実施例１において、充分な基本データ（１万トリプレット）を採取するのに４日から４０日を要した。
【０１０３】
なお、本実施例１のユーザ認証プログラム１ａは、プログラミング言語C++(VisualStudio2005：登録商標)を用いて記述され、Windows PC(Windows98, Windows2000 and WindowsXP：いずれも登録商標)のバックグランドで動作するものである。また、本実施例１において、ユーザ認証プログラム１ａは、グローバルフックをダイナミックリンクライブラリにセットすることによって、全てのキー操作情報を採取可能に構成されている。また、採取されたトリプレットデータは、ローカルハードディスクや、病院内のネットワークに接続されたＮＡＳ（Network Attached Storage：ネットワーク接続ストレージ）に蓄積した。
【０１０４】
また、本実施例１において、トリプレットデータ採取機能を実行するにあたっては、各キーの押下時間（Ｄ１，Ｄ２，Ｄ３）および各待ち時間（Ｔ１，Ｔ２）の制限時間について、下限値を５ｍｓ、上限値を２５０ｍｓに設定した。また、総トリプレット時間（ＴＡ）については、上限値のみを６００ｍｓに設定し、トリプレット選別部５４による選別を実施した。また、抽出順序ランダマイズ部による１回分のトリプレット処理数は、１００〜３００トリプレットに設定した。
【０１０５】
また、ユーザ判定用データ作成機能を実行するにあたっては、７０００トリプレット分の基本データを読み込んだ。そして、重み値設定部６０では、トリプレット数が１１個以上のトリプレットに重み値として「１」を付与し、１０個以下のトリプレットには重み値として「０」を付与した。そして、トリプレット再選別部６２では、重み値が正の値であって、かつ、比率値の変動係数が０．３５７以下となるトリプレットだけを再選別した。なお、変動係数の制限値は、本願発明者による試行錯誤で決定された。
【０１０６】
さらに、ユーザ判定機能を実行するにあたっては、評価値算出部６５が、上記式（１）を用いて評価値を算出した。なお、上記式（１）における係数としては、ａ＝７，ｂ＝１１を使用した。また、特徴値算出部６６では、上記式（２）を用いて特徴値を算出した。なお、上記式（２）における重み値としては、トリプレット数が１１個以上のトリプレットに「１」を付与し、１０個以下のトリプレットには「０」を付与した。
【０１０７】
以上において、本実施例１では、まず、ある被検者の基本データ（７０００トリプレット）から、当該被検者に関するユーザ判定用データを作成した。一方、当該被検者とは異なる被検者の基本データを判定対象データとして細分化し（テスト長：１５０トリプレット）、各判定対象データを判定することで、いわゆる仮想上の「他人挑戦（imposters' challenge）」を実施した。そして、この「他人挑戦」を他の被検者全員について繰り返し、その結果を統合して図１３の「他人」のヒストグラムとした。
【０１０８】
また、仮想的な本人認証は、当該被検者の基本データでユーザ判定用データを作成した後に判定した。この場合、判定対象データと同一部分が基本データに含まれないように、かつ、公平な学習条件を満たすために基本データのトリプレット数は両方のシリーズで同一となるように調整された。そして、この結果を統合して図１３の「本人」のヒストグラムとした。なお、図１３においては、各ヒストグラムのピークで正規化している。
【０１０９】
図１３に示すように、本人認証では、他人よりも高い特徴値が出る傾向が確認できる。ただし、「本人」および「他人」のヒストグラムは、いずれも右端近傍まで伸びているので、感度（他人を正しく他人として判定する確率）を極めて高くするのは困難である。一方、グラフの左側では、各ヒストグラムの終端が離れており、特異度（登録ユーザを正しく登録ユーザとして判定する確率）を極めて高くすることが可能であることが示されている。
【０１１０】
以上のように、本実施例１によれば、本発明に係るユーザ認証プログラム１ａおよびユーザ認証システム１において、カットオフ値を適切に設定することで、特異度を高くすること、すなわち、登録ユーザが誤って他人と判定されてしまう確率を低減できることが示された。
【実施例２】
【０１１１】
つぎに、本実施例２では、本発明に係るユーザ認証プログラム１ａおよびユーザ認証システム１の性能を分析するため、上述した実施例１において、１回に判定する判定対象データのトリプレット数を変えながらＲＯＣ（Receiver Operating Characteristics：受信者操作特性）曲線を作成した。
【０１１２】
ここで、ＲＯＣ曲線とは、「他人」と判定することを「陽性」としたとき、図１４に示すように、横軸に「偽陽性率（１−特異度）：本人を誤って他人と判定してしまう確率」をとり、縦軸に「感度（他人を正しく他人として判定する確率）」をとった場合にプロットされるグラフである。このＲＯＣ曲線には、選択しうる全てのカットオフ値での感度および偽陽性率が示され、任意のカットオフ値におけるユーザ判定性能を知ることができるようになっている。
【０１１３】
また、ＲＯＣ曲線は、図１３に示したような「本人」と「他人」のヒストグラムが、どのように重なるかによって変化する。具体的には、両方のヒストグラムが完全に一致する場合、偽陽性率と感度は常に等しくなる。このため、図１４に示すように、ＲＯＣ曲線は、左下（偽陽性率：０％，感度０％）から右上（偽陽性率：１００％，感度１００％）への対角線に一致し、ユーザ判定能力のないことが示される。
【０１１４】
一方、各ヒストグラムの重なり具合が少ないほど、感度が高くなるとともに、偽陽性率が低くなるため、図１４に示すように、ＲＯＣ曲線は左上の隅（偽陽性率：０％，感度１００％）に近く描かれる。したがって、ＲＯＣ曲線が左上に近いほどユーザ判定性能が高いことが示されることとなる。
【０１１５】
本実施例２において、判定対象データのトリプレット数を５０，１００，１５０，２００に設定した場合の、各ＲＯＣ曲線を図１５に示す。図１５に示すように、判定対象データのトリプレット数が多いほど、ＲＯＣ曲線は左上に移行し、より高いユーザ判定性能を発揮することが示された。
【０１１６】
また、ここで、本発明に係るユーザ認証システム１に要求されるユーザ判定性能を検討する。まず、従来の使用開始時におけるログイン認証では、極めて低い「偽陰性率（他人を誤って本人として判定する確率）」が要求される一方、比較的高い「偽陽性率（本人を誤って他人として判定する確率）」が許容されている。なぜなら、本人が誤って拒否されたとしても、すぐに再トライすれば済む一方、他人が一旦、誤って認証されてしまうと、その後に認証する機会がないからである。したがって、従来、ユーザを認証するシステムを評価する際には、ＲＯＣ曲線において感度が高く、特異度の低い部分が注目されている。
【０１１７】
しかしながら、本発明のように、常時監視による継続的なユーザ認証処理を目的とする場合、偽陽性率（本人を誤って他人として判定する確率）が低いことが重要となる。なぜなら、例えば、偽陽性率が０．０１％という極めて優秀な認証システムであっても、５００人の組織において、全員が１日に平均１００回のユーザ認証を受けると、平均して毎日５回の誤警報が出てしまうこととなり、使い勝手が悪いからである。一方、本発明では、従来のログイン認証とは異なり、偽陰性率（他人を誤って本人として判定する確率）が、多少高くても問題ない。なぜなら、キー操作している限り、ユーザ認証処理が繰り返し実行されるため、いずれかの判定処理で他人と判定できればよいからである。
【０１１８】
以上のように、常時監視型のユーザ認証システム１においては、偽陽性率（本人を誤って他人と判定してしまう確率）の低い部分が特に重要である。このため、図１５における横軸のスケールだけを２０倍に拡大したものを図１６に示す。図１６に示すように、本実施例２では、例えば、判定対象データのトリプレット数が１５０の場合、３９％という許容できる偽陰性率において、０．５％という極めて低い偽陽性率が達成されている。
【０１１９】
以上のように、本実施例２によれば、本発明に係るユーザ認証プログラム１ａおよびユーザ認証システム１は、判定対象データのトリプレット数が多いほど、より高いユーザ判定性能を発揮すること、および許容できる偽陰性率において、高い特異度が得られることが示された。したがって、本発明に係るユーザ認証プログラム１ａおよびユーザ認証システム１は、電子カルテのように、他人による「なりすまし入力」や改ざんが許されない書類データを取り扱う病院等の情報システムへ適用するユーザ認証技術として好適であることが示された。
【０１２０】
なお、本発明に係るユーザ認証プログラム１ａおよびユーザ認証システム１は、前述した実施形態に限定されるものではなく、適宜変更することができる。
【０１２１】
例えば、上述した本実施形態では、ユーザ認証プログラム１ａによって、トリプレットデータ採取機能、ユーザ判定用データ作成機能およびユーザ判定機能の全機能が実行されているが、これに限られるものではない。例えば、各機能ごとに、トリプレットデータ採取プログラム、ユーザ判定用データ作成プログラム、およびユーザ判定プログラムとして独立したプログラムにしてもよい。
【０１２２】
また、上述した本実施形態では、キー操作情報から得られたトリプレットデータをリアルタイムで逐次判定しているが、これに限られるものではない。例えば、入力されたキー操作情報にトリプレットデータを対応付けて記憶させておき、当該キー操作情報の信頼性に疑義が生じた場合に、当該トリプレットデータを判定するようにしてもよい。
【図面の簡単な説明】
【０１２３】
【図１】本発明に係るユーザ認証プログラムおよびユーザ認証システムの実施形態を示すブロック図である。
【図２】本実施形態のユーザ判定用データの一例を示す図である。
【図３】本実施形態において、キー操作情報から抽出されるトリプレットを説明する図である。
【図４】本実施形態において、トリプレットについて取得される時間データを説明する図である。
【図５】本実施形態において、評価値算出部６５による評価方法を示すグラフである。
【図６】本実施形態において、トリプレットデータ採取機能により実行される処理を示すフローチャート図である。
【図７】本実施形態において、トリプレット選別部による選別処理を示すフローチャート図である。
【図８】本実施形態において、ユーザ判定用データ作成機能により実行される処理を示すフローチャート図である。
【図９】本実施形態において、ユーザ判定機能により実行される処理を示すフローチャート図である。
【図１０】本実施形態において、正規分布に近い比率値分布と、標準偏差を基準とする評価関数を示すグラフである。
【図１１】図１０において、登録ユーザの確率分布Ｐ（ｘ）と、他人の確率分布Ｑ（ｘ）とを比較するグラフである。
【図１２】本実施形態において、比率値分布が極端に歪んでいる場合を示すグラフである。
【図１３】本実施例１において、「本人」および「他人」の特徴値を示すヒストグラムである。
【図１４】ＲＯＣ曲線を説明するためのグラフである。
【図１５】本実施例２において、判定対象データのトリプレット数を変更したときのＲＯＣ曲線を示すグラフである。
【図１６】図１５において、横軸のスケールだけを２０倍に拡大したグラフである。
【符号の説明】
【０１２４】
１  ユーザ認証システム
１ａ  ユーザ認証プログラム
２  入力手段
３  表示手段
４  記憶手段
５  演算処理手段
４１  プログラム記憶部
４２  ユーザ判定用データ記憶部
４３  トリプレットデータ記憶部
５１  キー操作情報取得部
５２  トリプレット抽出部
５３  時間データ取得部
５４  トリプレット選別部
５５  比率値算出部
５６  抽出順序ランダマイズ部
５７  トリプレットデータ登録部
５８  基本データ取得部
５９  トリプレット数算出部
６０  重み値設定部
６１  変動係数算出部
６２  トリプレット再選別部
６３  ユーザ判定用データ登録部
６４  判定対象データ取得部
６５  評価値算出部
６６  特徴値算出部
６７  ユーザ判定部
６８  後処理実行部
【要約】
【課題】  キー操作情報を監視して継続的にユーザ認証処理を実行でき、登録ユーザが誤って認証を拒否される確率を低減することができるユーザ認証プログラムおよびユーザ認証システムを提供する。
【解決手段】  トリプレットと第１比率値とを有するユーザ判定用データを記憶するユーザ判定用データ記憶部４２と、キー操作情報を取得するキー操作情報取得部５１と、トリプレットを抽出するトリプレット抽出部５２と、時間データを取得する時間データ取得部５３と、第１比率値を算出する比率値算出部５５と、トリプレットデータをトリプレットデータ記憶部４３に登録するトリプレットデータ登録部５７と、判定対象データを取得する判定対象データ取得部６４と、評価値を算出する評価値算出部６５と、判定対象データの特徴値を算出する特徴値算出部６６と、判定対象データを判定するユーザ判定部６７としてコンピュータを機能させる。
【選択図】  図１【図１】
0004283864.tif 000002
【図２】
0004283864.tif 000003
【図３】
0004283864.tif 000004
【図４】
0004283864.tif 000005
【図５】
0004283864.tif 000006
【図６】
0004283864.tif 000007
【図７】
0004283864.tif 000008
【図８】
0004283864.tif 000009
【図９】
0004283864.tif 000010
【図１０】
0004283864.tif 000011
【図１１】
0004283864.tif 000012
【図１２】
0004283864.tif 000013
【図１３】
0004283864.tif 000014
【図１４】
0004283864.tif 000015
【図１５】
0004283864.tif 000016
【図１６】
0004283864.tif 000017