(57)【要約】【課題】ユーザ操作の煩雑化を抑えつつ、秘匿情報の特定を困難化する。【解決手段】入力装置１のスキャンコード出力部１２１は、入力部１１を介してユーザからコンピュータに対するキー操作による入力を受け付け、当該キー操作に対応するスキャンコードをコンピュータ５に対して出力し、擬似スキャンコード出力部１２３は、スキャンコード出力部１２１がスキャンコードを出力していないときに、ユーザによるキー操作と無関係なスキャンコードをコンピュータ５に対して出力する。【選択図】図１
2011090454.tif 000002
【特許請求の範囲】
【請求項１】
ユーザによるキー操作のログの傍受による入力情報の読み取りを防ぐ入力装置であって、
ユーザからコンピュータに対するキー操作による入力を受け付け、当該キー操作に対応するスキャンコードを自装置に接続されたコンピュータに対して出力するスキャンコード出力部と、
前記スキャンコード出力部が前記スキャンコードを出力していないときに、ユーザによるキー操作と無関係なスキャンコードを前記コンピュータに対して出力する擬似スキャンコード出力部と
を備えることを特徴とする入力装置。
【請求項２】
前記擬似スキャンコード出力部は、前記スキャンコードの出力間隔を示すインターバル時間毎に前記スキャンコードの出力を行うことを特徴とする請求項１に記載の入力装置。
【請求項３】
前記インターバル時間は、前記擬似スキャンコード出力部が乱数を発生させ、所定の時間間隔に当該乱数を乗算して算出したものであることを特徴とする請求項２に記載の入力装置。
【請求項４】
キー操作による入力が秘匿情報の入力であるか否かを判定する入力内容判定部と、
前記入力内容判定部が、キー操作による入力が秘匿情報でないと判定した場合、当該入力に対応するスキャンコードを記憶部に記録する入力コード記録部と
を備え、
前記擬似スキャンコード出力部は、前記記憶部が記憶する連続するスキャンコード並びの少なくとも一部と同じ順番でスキャンコードを出力する
ことを特徴とする請求項１から３に記載の入力装置。
【請求項５】
前記入力コード記録部は、
前記入力に対応するスキャンコードと制御コードに変換されるスキャンコードのリストとを比較し、前記入力に対応するスキャンコードが制御符号に該当する場合、当該スキャンコードを前記記憶部に記録しない
ことを特徴とする請求項４に記載の入力装置。
【請求項６】
ユーザによるキー操作のログの傍受による入力情報の読み取りを防ぐ入力装置を用いた入力方法であって、
スキャンコード出力部は、ユーザからコンピュータに対するキー操作による入力を受け付け、当該キー操作に対応するスキャンコードを自装置に接続されたコンピュータに対して出力し、
擬似スキャンコード出力部は、前記スキャンコード出力部が前記スキャンコードを出力していないときに、ユーザによるキー操作と無関係なスキャンコードを前記コンピュータに対して出力する
ことを特徴とする入力方法。
【請求項７】
入力装置を、
ユーザからコンピュータに対するキー操作による入力を受け付け、当該キー操作に対応するスキャンコードを自装置に接続されたコンピュータに対して出力するスキャンコード出力部、
前記スキャンコード出力部が前記スキャンコードを出力していないときに、ユーザによるキー操作と無関係なスキャンコードを前記コンピュータに対して出力する擬似スキャンコード出力部
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザによるキー操作のログの傍受による入力情報の読み取りを防ぐ入力装置、入力方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、個人及び企業にて用いられるコンピュータは、ＧＵＩ（Graphic User Interface）機能を有するコンピュータが普及しており、当該コンピュータで用いられるソフトウェアについてもＧＵＩを用いたものが大半を占めている。このようなＧＵＩを用いたコンピュータでは、ユーザによる多くの操作がポインティングデバイスによってなされるため、ＣＵＩ（Character User Interface）を用いたシステムと比較して、必然的にキー操作による入力符号の数が少なくなっている。他方、アカウント情報やパスワードなどの秘匿情報は、キーボードを用いて入力されることが多い。
【０００３】
なお、特許文献１には、パスワードの入力操作を覗き見られてもパスワードが推測される危険性を低くする技術が開示されている。特許文献１によれば、ユーザがパスワードを入力する際に、指定された位置にダミーの符号を入力させることで、パスワードの入力操作を覗き見られてもパスワードが推測される危険性を低くすることができる。また、特許文献１は、符号列の出力時にダミーの符号部分を除去するため、出力される符号列はパスワードと同じ符号列となる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−２９６０９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、ＧＵＩ機能を有するコンピュータは、上述したようにキー操作による入力符号の数が少ないため、キーボードの操作ログを蓄積するキー操作情報蓄積装置またはキー操作情報蓄積プログラムによって秘匿情報の特定を行うことが容易となってしまうという問題があった。
また、特許文献１に記載の技術は、ユーザがダミーの符号部分の入力を行う必要があるため、従来のパスワード入力と比較してユーザによる操作が煩雑化してしまうという問題がある。
本発明は上記の点に鑑みてなされたものであり、その目的は、ユーザ操作の煩雑化を抑えつつ、秘匿情報の特定を困難化する入力装置、入力方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【０００６】
本発明は上記の課題を解決するためになされたものであり、ユーザによるキー操作のログの傍受による入力情報の読み取りを防ぐ入力装置であって、ユーザからコンピュータに対するキー操作による入力を受け付け、当該キー操作に対応するスキャンコードを自装置に接続されたコンピュータに対して出力するスキャンコード出力部と、前記スキャンコード出力部が前記スキャンコードを出力していないときに、ユーザによるキー操作と無関係なスキャンコードを前記コンピュータに対して出力する擬似スキャンコード出力部とを備えることを特徴とする。
【０００７】
また、本発明は、ユーザによるキー操作のログの傍受による入力情報の読み取りを防ぐ入力装置を用いた入力方法であって、スキャンコード出力部は、ユーザからコンピュータに対するキー操作による入力を受け付け、当該キー操作に対応するスキャンコードを自装置に接続されたコンピュータに対して出力し、擬似スキャンコード出力部は、前記スキャンコード出力部が前記スキャンコードを出力していないときに、ユーザによるキー操作と無関係なスキャンコードを前記コンピュータに対して出力することを特徴とする。
【０００８】
また、本発明は、入力装置を、ユーザからコンピュータに対するキー操作による入力を受け付け、当該キー操作に対応するスキャンコードを自装置に接続されたコンピュータに対して出力するスキャンコード出力部、前記スキャンコード出力部が前記スキャンコードを出力していないときに、ユーザによるキー操作と無関係なスキャンコードを前記コンピュータに対して出力する擬似スキャンコード出力部として機能させるためのプログラムである。
【発明の効果】
【０００９】
本発明によれば、入力装置は、ユーザの入力操作に基づくスキャンコードとユーザの入力操作とは無関係なスキャンコードとが混ざったデータを出力する。そのため、キー操作情報蓄積装置またはキー操作情報蓄積プログラムによる傍受が行われている場合、当該装置またはプログラムが読み出すデータには、ユーザの入力操作に基づくスキャンコードとユーザの入力操作とは無関係なスキャンコードとが入り混じることとなる。これにより、傍受者による秘匿情報の特定を困難にすることができる。また、入力装置は、ユーザがキー操作をしていないときにユーザの入力操作と無関係なスキャンコードを出力するため、秘匿情報の特定の困難化に伴うユーザ操作の煩雑化を抑えることができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の第１の実施形態による入力装置の構成を示す概略ブロック図である。
【図２】本発明の第１の実施形態による入力装置の動作を示すフローチャートである。
【図３】本発明の第２の実施形態による入力装置の構成を示す概略ブロック図である。
【図４】本発明の第２の実施形態による入力装置の動作を示すフローチャートである。
【図５】本発明の第３の実施形態による入力装置の構成を示す概略ブロック図である。
【図６】本発明の第３の実施形態による入力装置の動作を示すフローチャートである。
【図７】出力停止時処理の動作を示すフローチャートである。
【発明を実施するための形態】
【００１１】
（第１の実施形態）
以下、図面を参照しながら本発明の第１の実施形態について詳しく説明する。
図１は、本発明の第１の実施形態による入力装置の構成を示す概略ブロック図である。
入力装置１は、入力部１１、制御部１２、動作選択スイッチ１３、第１動作表示部１４、第２動作表示部１５、擬似スキャンコード表示部１６を備え、コンピュータ５に接続される。
入力部１１は、複数の符号に対応するキーを有し、当該キーの押下・解放を検知して、当該キー操作に対応するスキャンコードを出力する。ここで、スキャンコードとは、押下または解放されたキーをコンピュータ５に通知する情報であり、押下・解放の何れを検知したかを示すプレフィックスと、押下・解放を検知したキーの識別番号とから構成される。例えば、解放を検出した際のプレフィックスが「０ｘＦ０」であり、「１」を示すキーの識別番号が「０ｘ１６」であった場合、「１」を示すキーを押下したとき、出力されるスキャンコードは「０ｘ１６」となり、当該キーを解放したとき、出力されるスキャンコードは「０ｘＦ０  ０ｘ１６」となる。なお、「０ｘ」とは後続の値が１６進法表記であることを示す接頭辞である。
【００１２】
制御部１２は、入力部が出力したスキャンコード、及びランダムに生成したスキャンコードをコンピュータ５に出力する。
動作選択スイッチ１３は、ユーザの操作に基づいて、制御部１２がランダムに生成したスキャンコードを出力する状態である「擬似スキャンコード出力状態」と、制御部１２がランダムに生成したスキャンコードを出力しない状態である「擬似スキャンコード停止状態」とを切り替える。
第１動作表示部１４は、ランプを有し、「擬似スキャンコード出力状態」のときに当該ランプを点灯させ、他の状態のときに当該ランプを消灯させる。
第２動作表示部１５は、ランプを有し、「擬似スキャンコード出力状態」のときに当該ランプを消灯させ、他の状態のときに当該ランプを点灯させる。
擬似スキャンコード表示部１６は、制御部１２が生成したランダムに生成したスキャンコードを表示する。
【００１３】
制御部１２は、スキャンコード出力部１２１、擬似スキャンコード出力部１２２、状態記憶部１２３を備える。
スキャンコード出力部１２１は、入力部１１が出力したスキャンコードをコンピュータ５に出力する。
状態記憶部１２２は、現在の状態（「擬似スキャンコード出力状態」または「擬似スキャンコード停止状態」）を示す状態情報を記憶する。なお、状態情報は、初期状態では「擬似スキャンコード停止状態」を示すものとする。
擬似スキャンコード出力部１２３は、状態記憶部１２２が記憶する状態が「擬似スキャンコード出力状態」である場合に、ランダムにスキャンコードを生成し、当該スキャンコードをコンピュータ５に出力する。
タイマ部１２４は、一定時間（例えば１秒）を計時する。
【００１４】
そして、入力装置１のスキャンコード出力部１２１は、入力部１１を介してユーザからコンピュータに対するキー操作による入力を受け付け、当該キー操作に対応するスキャンコードをコンピュータ５に対して出力し、擬似スキャンコード出力部１２３は、スキャンコード出力部１２１がスキャンコードを出力していないときに、ランダムなスキャンコードをコンピュータ５に対して出力する。これにより、ユーザ操作の煩雑化を抑えつつ、秘匿情報の特定を困難化する。
【００１５】
次に、本発明の第１の実施形態による入力装置１の動作を説明する。
図２は、本発明の第１の実施形態による入力装置の動作を示すフローチャートである。
まず、ユーザによってコンピュータ５の電源が投入されると、制御部１２の状態記憶部１２２が記憶する状態情報は、初期状態として記憶されている「擬似スキャンコード停止状態」を示す。これにより、第１動作表示部１４は、状態記憶部１２２の状態情報が「擬似スキャンコード停止状態」であることを読み取り、ランプを消灯させる。他方、第２動作表示部１５は、状態記憶部１２２の状態情報が「擬似スキャンコード停止状態」であることを読み取り、ランプを点灯させる（ステップＳ１）。これにより、ユーザは第２動作表示部１５が点灯していることを目視することで、入力装置１がランダムなスキャンコードを出力していない状態であることを確認することができる。次に、入力部１１は、ユーザからのキー操作による入力を待機し、入力部１１がキー操作を検出すると、スキャンコード出力部１２１は、当該キー操作による入力に対応するスキャンコードをコンピュータ５に出力する（ステップＳ２）。つまり、「擬似スキャンコード停止状態」において入力装置１は、従来のキーボードと同様に、押下されたキーに対応するスキャンコードを出力する。
【００１６】
次に、制御部１２の擬似スキャンコード出力部１２３は、状態記憶部１２２が記憶する状態情報が「擬似スキャンコード出力状態」を示すか否かを判定する（ステップＳ３）。状態情報は、ユーザが動作選択スイッチ１３を操作することで切り替わる。したがって、ユーザが動作選択スイッチ１３を操作していない場合は、状態記憶部１２２が記憶する状態情報が「擬似スキャンコード停止状態」を示すため（ステップＳ３：ＮＯ）、ステップＳ１に戻り、再度キー操作の待機処理を繰り返す。
【００１７】
他方、ユーザが秘匿情報の入力を完了し、キー操作情報蓄積装置またはキー操作情報蓄積プログラムにユーザによるキー操作と無関係の情報を蓄積させるために動作選択スイッチ１３の「ＳＴＡＲＴ」ボタンを押下すると、動作選択スイッチ１３は、状態記憶部１２２が記憶する状態情報を「擬似スキャンコード出力状態」に書き換える。これにより、ステップＳ３において、擬似スキャンコード出力部１２４は、状態記憶部１２２が記憶する状態情報が「擬似スキャンコード出力状態」を示すと判定する（ステップＳ３：ＹＥＳ）。このとき、第１動作表示部１４は、状態記憶部１２２の状態情報が「擬似スキャンコード出力状態」であることを読み取り、ランプを点灯させる。他方、第２動作表示部１５は、状態記憶部１２２の状態情報が「擬似スキャンコード出力状態」であることを読み取り、ランプを消灯させる（ステップＳ４）。これにより、ユーザは第１動作表示部１４が点灯していることを目視することで、入力装置１がランダムなスキャンコードを出力している状態であることを確認することができる。
そして、「擬似スキャンコード出力状態」である場合、擬似スキャンコード出力部１２３は、ランダムにスキャンコードを選択し、当該スキャンコードをコンピュータ５に出力する（ステップＳ５）。これにより、入力装置１とコンピュータ５との間にキー操作情報蓄積装置またはキー操作情報蓄積プログラムが備えられている場合に、当該装置またはプログラムに、ユーザのキー操作と無関係なスキャンコードを蓄積させることができる。
なお、スキャンコードの選択及び出力は、例えば以下のように行う。
【００１８】
予め擬似スキャンコード出力部１２３は、インデックス番号と出力するスキャンコードとを関連付けたテーブルを内部メモリに記憶しておく。ここで、出力するスキャンコードとは、入力部１１のキーに対応する全てのスキャンコードの集合から、「Ｅｎｔｅｒ」キーや「ＢａｃｋＳｐａｃｅ」キーなどの制御符号となりうる符号に対応するスキャンコードを除外したものを示す。出力するスキャンコードに制御符号となりうる符号に対応するスキャンコードを含めない理由は、ランダムに出力されたスキャンコードによってコンピュータ５の誤動作が生じることを防止するためである。また、各スキャンコードに関連付けられるインデックス番号は、初項０、等差１の数列となる。
【００１９】
まず、擬似スキャンコード出力部１２３は、０以上、かつ、内部メモリに記憶するテーブルに格納されたスキャンコードの個数未満の乱数を発生させる。次に、擬似スキャンコード出力部１２３は、発生させた乱数と等しいインデックス番号に関連付けられたスキャンコードを選択して内部メモリから読み出し、当該スキャンコードを出力する。
上述した方法により、擬似スキャンコード出力部１２３は、ランダムにスキャンコードを選択することができる。なお、ここで説明したスキャンコードの選択方法は一例であり、これに限られない。
また、ステップＳ５の処理で出力したスキャンコードがキーの押下を示す場合、次回のステップＳ５の処理では、当該キーを解放することを示すスキャンコードを出力すると良い。
【００２０】
ステップＳ５で、擬似スキャンコード出力部１２３がランダムにスキャンコードを選択・出力すると、擬似スキャンコード表示部１６は、擬似スキャンコード出力部１２３が選択したスキャンコードを画面に表示させる（ステップＳ６）。このとき、表示させる情報は、「０ｘＦ０  ０ｘ１６」のようにスキャンコードそのものであっても良いし、「１・解放」のように、スキャンコードに対応するキー及び操作を示す情報を表示させても良い。
次に、タイマ部１２４は、一定時間（例えば１秒）を計時し、制御部１２は、その間待機処理を実行する（ステップＳ７）。
【００２１】
ここで、ステップＳ７による待機処理を行う理由を説明する。ステップＳ７による待機処理を行わなかった場合において、入力装置１とコンピュータ５との間にキー操作情報蓄積装置またはキー操作情報蓄積プログラムが備えられている場合、当該装置またはプログラムには、間を置かずに連続してスキャンコードが出力されることとなる。しかしながら、人間は間を置かずにキーを押下・解放することができないため、傍受者は、装置またはプログラムに蓄積されたスキャンコードから間を置かずに入力されたものを除外することで、ユーザによるキー操作に対応するスキャンコードだけを取得することができてしまう。これを防止するために、ステップＳ７で待機処理を行っている。
【００２２】
制御部１２は、ステップＳ７で一定時間の待機を終了すると、コンピュータ５の電源が切断されているか否かを判定する（ステップＳ８）。
制御部１２が、コンピュータ５の電源が切断されていないと判定した場合（ステップＳ８：ＮＯ）、ステップＳ３に戻り、状態記憶部１２２が記憶する状態情報に基づく処理を繰り返す。つまり、ユーザが動作選択スイッチ１３を操作していない場合は、状態記憶部１２２が記憶する状態情報が「擬似スキャンコード出力状態」を示すためステップＳ４〜Ｓ８の処理を実行し、ユーザが情報の入力を開始するために動作選択スイッチ１３の「ＳＴＯＰ」ボタンを押下すると、ステップＳ１、Ｓ２の処理を実行する。
他方、ステップＳ８で制御部１２が、コンピュータ５の電源が切断されていると判定した場合（ステップＳ８：ＹＥＳ）、入力装置１は、処理を終了する。
【００２３】
このように、第１の実施形態によれば、入力装置１は、ユーザのキー操作に対応するスキャンコードを出力していないときに、ユーザのキー操作と無関係なスキャンコードを出力する。そのため、入力装置１とコンピュータ５との間にキー操作情報蓄積装置またはキー操作情報蓄積プログラムが備えられている場合、当該装置またはプログラムが読み出すデータには、ユーザのキー操作に対応するスキャンコードとユーザのキー操作と無関係なスキャンコードとが入り混じることとなる。これにより、傍受者による秘匿情報の特定を困難にすることができる。また、入力装置１は、ユーザがキー操作をしていないときに、ユーザのキー操作と無関係なスキャンコードを出力するため、秘匿情報の特定の困難化に伴うユーザ操作の煩雑化を抑えることができる。
【００２４】
さらに、キー操作情報蓄積プログラムが所定のサーバ装置に読み取ったキー入力情報を送信するものであった場合、第１の実施形態によれば、キー操作情報蓄積プログラムによるキー入力情報の送信先のサーバ装置に対し、一定のトラフィックが連続発生することとなる。特に、複数のコンピュータ５にキー操作情報蓄積プログラムが設けられていた場合、当該サーバ装置に送信される情報量が多くなり、サーバ装置に対する負荷を増加させることとなり、ＩＳＰ等のネットワーク業者において傍受者の特定を容易とすることができる。
【００２５】
（第２の実施形態）
以下、図面を参照しながら本発明の第２の実施形態について詳しく説明する。
図３は、本発明の第２の実施形態による入力装置の構成を示す概略ブロック図である。
第２の実施形態による入力装置２は、第１の実施形態による入力装置１に、さらに速度選択スイッチ２７、速度表示部２８を備えたものである。また、第２の実施形態による入力装置２は、第１の実施形態による制御部１２に代えて制御部２２を備える。制御部２２は、第１の実施形態による制御部１２に、さらに速度記憶部２２５を備え、タイマ部２２４の動作が第１の実施形態による制御部１２のタイマ部１２４と異なるものである。その他の処理部の機能・構成は第１の実施形態と同じである。
速度選択スイッチ２７は、ユーザの操作に基づいて、速度記憶部２２５が記憶する速度情報を書き換える。本実施形態では、ユーザは、入力速度を「毎分３６０回」、「毎分２４０回」、「毎分１２０回」、「毎分６０回」、「毎分３０回」、「毎分１５回」、「毎分１０回」のパターンの中から選択する。
速度表示部２８は、速度記憶部２２５が記憶する速度情報に基づいて該当する速度を示すランプを点灯させる。
速度記憶部２２５は、ランダムなスキャンコードの出力タイミングを示す速度情報を記憶する。なお、速度記憶部２２５は、速度情報の初期値として、速度選択スイッチによって書き換えられる速度の何れか１つを記憶しておく。本実施形態では、初期値として「６０」が記憶される。
タイマ部２２４は、速度記憶部２２５が記憶する速度情報にランダムな値を乗じた時間を計時する。
【００２６】
次に、本発明の第２の実施形態による入力装置の動作を説明する。
図４は、本発明の第２の実施形態による入力装置の動作を示すフローチャートである。なお、第１の実施形態と同じ動作をする処理は、同じステップ番号を用いて説明する。
まず、コンピュータ５の電源を投入すると、速度表示部２８は、速度記憶部２２５から速度情報を読み出し、読み出した速度情報に該当するランプを点灯させる（ステップＳ２１）。本実施形態では、速度表示部２８は、速度情報の初期値が「６０」であるため、速度選択スイッチ２１のうち「６０回／分」の速度を選択するボタンの下方にあるランプを点灯させる。これにより、ユーザは、速度表示部２８の何れのボタンが点灯しているかを目視することで、入力と無関係に出力されるスキャンコードの出力間隔を確認することができる。
【００２７】
また、制御部１２の状態記憶部１２２が記憶する状態情報は、初期状態として記憶されている「擬似スキャンコード停止状態」を示すため、第１動作表示部１４は、状態記憶部１２２の状態情報が「擬似スキャンコード停止状態」であることを読み取り、ランプを消灯させる。他方、第２動作表示部１５は、状態記憶部１２２の状態情報が「擬似スキャンコード停止状態」であることを読み取り、ランプを点灯させる（ステップＳ１）。これにより、ユーザは第２動作表示部１５が点灯していることを目視することで、入力装置１がランダムなスキャンコードを出力していない状態であることを確認することができる。次に、入力部１１は、ユーザからのキー操作による入力を待機し、入力部１１がキー操作を検出すると、スキャンコード出力部１２１は、当該キー操作による入力に対応するスキャンコードをコンピュータ５に出力する（ステップＳ２）。つまり、「擬似スキャンコード停止状態」において入力装置１は、従来のキーボードと同様に、押下されたキーに対応するスキャンコードを出力する。
【００２８】
次に、制御部１２の擬似スキャンコード出力部１２３は、状態記憶部１２２が記憶する状態情報が「擬似スキャンコード出力状態」を示すか否かを判定する（ステップＳ３）。状態情報は、ユーザが動作選択スイッチ１３を操作することで切り替わる。したがって、ユーザが動作選択スイッチ１３を操作していない場合は、状態記憶部１２２が記憶する状態情報が「擬似スキャンコード停止状態」を示すため（ステップＳ３：ＮＯ）、ステップＳ１に戻り、再度キー操作の待機処理を繰り返す。
【００２９】
他方、ユーザが秘匿情報の入力を完了し、キー操作情報蓄積装置またはキー操作情報蓄積プログラムにユーザによる入力と無関係の情報を蓄積させるために動作選択スイッチ１３の「ＳＴＡＲＴ」ボタンを押下すると、動作選択スイッチ１３は、状態記憶部１２２が記憶する状態情報を「擬似スキャンコード出力状態」に書き換える。これにより、ステップＳ３において、擬似スキャンコード出力部１２３は、状態記憶部１２２が記憶する状態情報は「擬似スキャンコード出力状態」を示すと判定する（ステップＳ３：ＹＥＳ）。このとき、第１動作表示部１４は、状態記憶部１２２の状態情報が「擬似スキャンコード出力状態」であることを読み取り、ランプを点灯させる。他方、第２動作表示部１５は、状態記憶部１２２の状態情報が「擬似スキャンコード出力状態」であることを読み取り、ランプを消灯させる（ステップＳ４）。これにより、ユーザは第１動作表示部１４が点灯していることを目視することで、入力装置１がランダムなスキャンコードを出力している状態であることを確認することができる。
そして、「擬似スキャンコード出力状態」である場合、擬似スキャンコード出力部１２３は、ランダムにスキャンコードを選択し、当該スキャンコードをコンピュータ５に出力する（ステップＳ５）。擬似スキャンコード出力部１２３がランダムなスキャンコードを出力すると、擬似スキャンコード表示部１６は、擬似スキャンコード出力部１２３が生成したスキャンコードを画面に表示させる（ステップＳ６）。
【００３０】
次に、タイマ部２２４は、速度記憶部２２５から速度情報を読み出す（ステップＳ２２）。そして、タイマ部２２４は、内部メモリに記憶する計時時間情報を０に初期化する（ステップＳ２３）。次に、タイマ部２２４は、ランダムなスキャンコードの出力間隔に揺らぎを付与する値である時間揺らぎ乱数（例えば０．５以上１．５未満の値）を発生させる（ステップＳ２４）。
次に、タイマ部２２４は、次回のスキャンコード出力までの待ち時間を算出する（ステップＳ２５）。待ち時間は、６００００（ミリ秒）を速度情報が示す値で除算し、得られた値に時間揺らぎ乱数を乗算することで算出される。つまり、速度情報が毎分６０回の入力速度を示している場合、まず、タイマ部２２４は、６００００（ミリ秒）を６０（回／分）で除算する。次に、得られた１０００（ミリ秒）に０．５以上１．５未満の時間揺らぎ乱数を乗算する。これにより、タイマ部２２４は、５００〜１５００ミリ秒を計時することとなる。すなわち、入力装置１は、毎分４０〜１２０回の速度でスキャンコードを出力することとなる。そして、タイマ部２２４は、算出した待ち時間の計時を開始し、制御部２２は、その間待機処理を実行する（ステップＳ２６）。第１の実施形態のステップＳ７では、一定時間の待機処理を行ったが、本実施形態のステップＳ２６では、一定時間に時間揺らぎ乱数を乗じた時間の待機処理を行っている。これにより、スキャンコードが出力される間隔がランダムになり、より人間による操作に類似させることができる。そのため、キー操作情報蓄積装置またはキー操作情報蓄積プログラムを用いた秘匿情報の特定をさらに困難化することができる。
【００３１】
制御部２２が待ち時間の間の待機を終了すると、速度選択スイッチ２７は、当該待ち時間の間に何れかのボタンが押下されたか否かを判定する（ステップＳ２７）。速度選択スイッチ２７は、ボタンが押下されたと判定した場合（ステップＳ２７：ＹＥＳ）、速度記憶部２２５が記憶する速度情報を書き換える（ステップＳ２８）。具体的には、図３に示す速度選択スイッチ２７のうち、「３６０回／分」の速度を選択するボタンをユーザが押下すると、速度選択スイッチ２７は、速度記憶部２２５が記憶する速度情報を「３６０」に書き換える。次に、速度表示部２８は、速度記憶部２２５から速度情報を読み出し、速度情報に該当するランプを点灯させる（ステップＳ２９）。
【００３２】
ステップＳ２７で速度選択スイッチ２７が、ボタンが押下されていないと判定した場合（ステップＳ２７：ＮＯ）、または、ステップＳ２９で速度表示部２８がランプを点灯させた場合、制御部２２は、コンピュータ５の電源が切断されているか否かを判定する（ステップＳ８）。
制御部２２が、コンピュータ５の電源が切断されていないと判定した場合（ステップＳ８：ＮＯ）、ステップＳ３に戻り、状態記憶部１２２が記憶する状態情報に基づく処理を繰り返す。他方、制御部２２が、コンピュータ５の電源が切断されていると判定した場合（ステップＳ８：ＹＥＳ）、入力装置２は、処理を終了する。
【００３３】
このように、第２の実施形態によれば、入力装置２は、ユーザが設定した入力速度に乱数を乗じた間隔でスキャンコードを出力する。これにより、キー操作情報蓄積装置またはキー操作情報蓄積プログラムが一定時間毎に出力されるスキャンコードを無視するようなプログラムを搭載している場合にも、ランダムなタイミングでスキャンコードが出力されるために当該スキャンコードが無視されず、傍受者による秘匿情報の特定をさらに困難にすることができる。
【００３４】
（第３の実施形態）
以下、図面を参照しながら本発明の第３の実施形態について詳しく説明する。
図５は、本発明の第３の実施形態による入力装置の構成を示す概略ブロック図である。
第３の実施形態による入力装置３は、第１の実施形態による入力装置１に、さらに第３動作表示部３７を備えたものである。
また、第３の実施形態による入力装置３は、第１の実施形態による制御部１２に代えて制御部３２を備える。制御部３２は、第１の実施形態による制御部１２の各処理部に加えて、スキャンコード記録部３２５、スキャンコード記憶部３２６、第２のタイマ部３２７、速度記憶部３２８をさらに備え、制御部１２の擬似スキャンコード出力部１２３及びタイマ部１２４に代えて擬似スキャンコード出力部３２３及び第１のタイマ部３２４を備えるものである。
また、第３の実施形態による入力装置３は、第１の実施形態による動作選択スイッチ１３に代えて動作選択スイッチ３３を備える。
その他の処理部の機能・構成は第１の実施形態と同じである。
【００３５】
動作選択スイッチ３３は、ユーザの操作に基づいて、制御部３２がランダムなスキャンコードを出力する状態である「擬似スキャンコード出力状態」と、制御部３２がランダムなスキャンコードを出力しない状態である「擬似スキャンコード停止状態」と、スキャンコード記録部３２５が入力部１１から出力されるスキャンコードを記録する状態である「スキャンコード記録状態」とを切り替える。
第３動作表示部３７は、ランプを有し、「スキャンコード記録状態」のときに当該ランプを点灯させ、他の状態のときに当該ランプを消灯させる。
擬似スキャンコード出力部３２３は、スキャンコード記憶部３２６が記憶するスキャンコードを出力する。
第１のタイマ部３２４は、第２の実施形態のタイマ部２２４と同様に、速度記憶部３２８が記憶する速度情報に基づいてランダムな時間を計時する。
スキャンコード記録部３２５は、入力部１１が出力するスキャンコードをスキャンコード記憶部３２６に記録する。また、スキャンコード記憶部３２６の先頭には、記憶しているスキャンコードの個数を示す変数Ｂｕｆｆｅｒと、スキャンコードの記憶領域の先頭アドレスを示す定数Ｏｆｆｓｅｔとが記憶されている。つまり、定数Ｏｆｆｓｅｔは、変数Ｂｕｆｆｅｒの型サイズと定数Ｏｆｆｓｅｔの型サイズとを加算した値となる。
第２のタイマ部３２７は、第１のタイマ部３２４が計時する時間より長い時間（例えば３秒）を計時する。
速度記憶部３２８は、予め擬似スキャンコード出力部３２３が出力するスキャンコードの出力速度を記憶する。ここでは、速度記憶部３２８は、予め毎分６０回という速度を記憶しているものとする。
【００３６】
次に、本発明の第３の実施形態による入力装置の動作を説明する。
図６は、本発明の第３の実施形態による入力装置の動作を示すフローチャートである。
まず、ユーザによってコンピュータ５の電源が投入されると、入力装置３の制御部３２は、状態記憶部１２２が記憶する状態情報が「擬似スキャンコード出力状態」を示すか否かを判定する（ステップＳ３１）。初回起動時、状態記憶部１２２は、擬似スキャンコード停止状態を示すものとする。
制御部３２は、状態情報が「擬似スキャンコード出力状態」を示していないと判定した場合（ステップＳ３１：ＮＯ）、出力停止時処理を実行する（ステップＳ３２）。以下に、出力停止時処理の詳細な動作について説明する。
【００３７】
図７は、出力停止時処理の動作を示すフローチャートである。
制御部３２が出力停止時処理を開始すると、入力部１１は、ユーザからのキー操作の入力を待機し、入力部１１がキー操作を検出すると、スキャンコード出力部１２１は、当該キー操作に対応するスキャンコードをコンピュータ５に出力する（ステップＳ３２１）。次に、制御部３２は、状態記憶部１２２が記憶する状態情報が「スキャンコード出力状態」を示すか否かを判定する（ステップＳ３２２）。
【００３８】
制御部３２が、状態情報が「スキャンコード出力状態」を示していないと判定した場合（ステップＳ３２２：ＮＯ）、即ち状態情報が「擬似スキャンコード停止状態」を示す場合、第２動作表示部１５は、状態記憶部１２２の状態情報が「擬似スキャンコード停止状態」であることを読み取り、ランプを点灯させる。他方、第１動作表示部１４及び第３動作表示部３７は、状態記憶部１２２の状態情報が「擬似スキャンコード停止状態」であることを読み取り、ランプを消灯させる（ステップＳ３２３）。第２動作表示部１５がランプを点灯させると、制御部３２は、出力停止時処理を終了する。これにより、ユーザは第２動作表示部１５が点灯していることを目視することで、入力装置１がランダムなスキャンコードを出力していない状態であることを確認することができる。
【００３９】
他方、制御部３２が、状態情報が「スキャンコード記録状態」を示すと判定した場合（ステップＳ３２２：ＹＥＳ）、第３動作表示部３７は、状態記憶部１２２の状態情報が「スキャンコード記録状態」であることを読み取り、ランプを点灯させる。他方、状態記憶部１２２の状態情報が「スキャンコード記録状態」であることを読み取り、第１動作表示部１４及び第２動作表示部１５は、ランプを消灯させる（ステップＳ３２４）。次に、スキャンコード記録部３２５は、入力部１１が出力したスキャンコードが、「Ｅｎｔｅｒ」キーや「ＢａｃｋＳｐａｃｅ」キーなどの制御符号となりうる符号に対応するスキャンコードであるか否かを判定する（ステップＳ３２５）。制御符号であるか否かの判定は、例えば、スキャンコード記録部３２５の内部メモリに、制御符号に対応するキー操作のスキャンコードの一覧情報を格納したテーブルを予め格納しておき、当該テーブルを参照して、入力部１１が出力したスキャンコードと合致するものが存在するか否かを判定することで行うことができる。
【００４０】
スキャンコード記録部３２５が、入力部１１が出力したスキャンコードが制御符号となりうるスキャンコードであると判定した場合（ステップＳ３２５：ＹＥＳ）、制御部３２は、当該スキャンコードをスキャンコード記録部３２５に記録せずに、出力停止時処理を終了する。
他方、スキャンコード記録部３２５は、入力部１１が出力したスキャンコードが制御符号となりうるスキャンコードでないと判定した場合（ステップＳ３２５：ＮＯ）、当該スキャンコードをスキャンコード記憶部３２５の末尾に追加記録する（ステップＳ３２６）。具体的には、スキャンコード記録部３２５は、スキャンコード記憶部３２６の定数Ｏｆｆｓｅｔ＋変数Ｂｕｆｆｅｒで表されるアドレスにスキャンコードを記録する。次に、スキャンコード記録部３２５は、スキャンコード記憶部３２６が記憶する変数Ｂｕｆｆｅｒを、変数Ｂｕｆｆｅｒにスキャンコードのサイズを加算した値を加算した値に書き換える（ステップＳ３２７）。スキャンコード記録部３２５が変数Ｂｕｆｆｅｒを書き換えると、制御部３２は、出力停止時処理を終了する。これにより、スキャンコード記録部３２５には、ユーザによるキー操作の情報が蓄積される。
以上が出力停止時処理の詳細な動作である。
【００４１】
他方、ステップＳ３１（図６）で制御部３２が、状態情報が「擬似スキャンコード出力状態」を示すと判定した場合（ステップＳ３１：ＮＯ）、第１動作表示部１４は、状態記憶部１２２の状態情報が「擬似スキャンコード出力状態」であることを読み取り、ランプを点灯させる。他方、第２動作表示部１５及び第３動作表示部３７は、状態記憶部１２２の状態情報が「擬似スキャンコード出力状態」であることを読み取り、ランプを消灯させる（ステップＳ３３）。これにより、ユーザは第１動作表示部１４が点灯していることを目視することで、入力装置１がランダムなスキャンコードを出力している状態であることを確認することができる。次に、擬似スキャンコード出力部３２３は、スキャンコード記憶部３２６が記憶する変数Ｂｕｆｆｅｒが３０を超えているか否かを判定する（ステップＳ３４）。
【００４２】
擬似スキャンコード出力部３２３は、変数Ｂｕｆｆｅｒが３０を超えていると判定した場合（ステップＳ３４：ＹＥＳ）、スキャンコード記憶部３２６が記憶するスキャンコード列のうち連続して出力するスキャンコードの個数を示す変数Ｌｅｎｇｔｈと、スキャンコード列の読み出し位置を示す変数Ｐｏｉｎｔｅｒとを算出する（ステップＳ３５）。
まず、変数Ｌｅｎｇｔｈの算出方法を説明する。
擬似スキャンコード出力部３２３は、０以上１未満の乱数ＲＮＤを発生させる。次に、擬似スキャンコード出力部３２３は、乱数ＲＮＤに１０を乗じ、得られた値に５を加算した値を変数Ｌｅｎｇｔｈとする。つまり、変数Ｌｅｎｇｔｈは、５以上１５未満の値となる。
次に、変数Ｐｏｉｎｔｅｒの算出方法を説明する。
擬似スキャンコード出力部３２３は、０以上１未満の乱数ＲＮＤを発生させる。次に、擬似スキャンコード出力部３２３は、スキャンコード記憶部３２６が記憶する変数Ｂｕｆｆｅｒが示す値から１５を減じ、得られた値と乱数ＲＮＤとを乗算した値を変数Ｐｏｉｎｔｅｒとする。つまり、変数Ｐｏｉｎｔｅｒは、０以上Ｂｕｆｆｅｒ−１５未満の値となる。
【００４３】
擬似スキャンコード出力部３２３は、変数Ｌｅｎｇｔｈと変数Ｐｏｉｎｔｅｒを算出すると、スキャンコード記憶部３２６からスキャンコードを読み出し、読み出したスキャンコードをコンピュータ５に出力する（ステップＳ３６）。具体的には、擬似スキャンコード出力部３２３は、スキャンコード記憶部３２６から、変数Ｏｆｆｓｅｔ＋変数Ｐｏｉｎｔｅｒ＋変数Ｌｏｃ（読み出したスキャンコードの個数を示す変数であり、初期値は０）で表されるアドレスに格納されたスキャンコードを１つ読み出し、当該スキャンコードを出力する。
擬似スキャンコード出力部３２３がスキャンコードを出力すると、擬似スキャンコード表示部１６は、擬似スキャンコード出力部３２３が出力したスキャンコードを画面に表示させる（ステップＳ３７）。
【００４４】
次に、擬似スキャンコード出力部３２３は、変数Ｌｏｃに１を加算する（ステップＳ３８）。これにより、次回はステップＳ３６で読み出したスキャンコードの次に入力されたスキャンコードを読み出すことができる。擬似スキャンコード出力部３２３が変数Ｌｏｃに１を加算すると、第１のタイマ部３２４は、第２の実施形態のステップＳ２２〜Ｓ２６と同様の処理により待ち時間の算出及び計時を実行し、制御部３２は、その間待機処理を実行する（ステップＳ３９）。
【００４５】
制御部３２が待ち時間の間の待機を終了すると、擬似スキャンコード出力部３２３は、変数Ｌｅｎｇｔｈと変数Ｌｏｃとが等しいか否かを判定する（ステップＳ４０）。擬似スキャンコード出力部３２３は、変数Ｌｅｎｇｔｈと変数Ｌｏｃとが等しくないと判定した場合（ステップＳ４０：ＮＯ）、ステップＳ３６に戻り、次のスキャンコードの出力を実行する。
他方、擬似スキャンコード出力部３２３が、変数Ｌｅｎｇｔｈと変数Ｌｏｃとが等しいと判定した場合（ステップＳ４０：ＹＥＳ）、すなわち擬似スキャンコード出力部３２３が、変数Ｌｅｎｇｔｈが示す値と同じ個数のスキャンコードを出力した場合、第２のタイマ部３２７は、第２の実施形態のステップＳ２２〜Ｓ２６と同様の処理により待ち時間の算出及び計時を実行し、制御部３２は、その間待機処理を実行する（ステップＳ４１）。なお、ここで実行される待機処理は、ステップＳ３９による待機処理よりも長く行うと良い。これにより、ユーザが１単語を入力し終えてから次の単語を入力するまでの時間間隔を再現することができ、傍受者による秘匿情報の特定をさらに困難にすることができる。
【００４６】
ステップＳ３２で、制御部３２が出力停止時処理を実行した場合、ステップＳ３４で変数Ｂｕｆｆｅｒが３０以下であると判定された場合（ステップＳ３４：ＮＯ）、またはステップＳ４１で待機処理を終了した場合、制御部３２は、コンピュータ５の電源が切断されているか否かを判定する（ステップＳ４２）。
制御部３２が、コンピュータ５の電源が切断されていないと判定した場合（ステップＳ４２：ＮＯ）、ステップＳ３１に戻り、状態記憶部１２２が記憶する状態情報に基づく処理を繰り返す。他方、制御部３２が、コンピュータ５の電源が切断されていると判定した場合（ステップＳ４２：ＹＥＳ）、入力装置３は、処理を終了する。
【００４７】
このように、第３の実施形態によれば、入力装置３は、ユーザのキー操作と無関係なスキャンコードとして、ユーザが過去に入力したキー操作と同様の操作を示すスキャンコードを出力する。これにより、キー操作情報蓄積装置またはキー操作情報蓄積プログラムが辞書ファイルを参照して、当該辞書ファイルに登録されている文字列を抜き出すことで秘匿情報を特定するプログラムを搭載している場合にも、ユーザのキー操作と無関係なスキャンコードがランダムでない文字列となるため、当該スキャンコードが無視されず、傍受者による秘匿情報の特定をさらに困難にすることができる。
【００４８】
以上、図面を参照してこの発明の一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。
例えば、上述した各実施形態では、状態記憶部１２２が記憶する状態情報の変更を、動作選択スイッチ１３（３３）の操作によって行う場合を説明したが、これに限られない。例えば、コンピュータ５が実行するプログラムがフォーカスを付与しているコンポーネントを示す情報を読み出せる場合、以下に示すような処理によって状態情報を変更しても良い。
【００４９】
コンピュータ５が実行するプログラムがフォーカスを付与するコンポーネントが入力フォームでない場合、またはプログラムがコンポーネントにフォーカスを付与していない場合、制御部２２は状態情報を「擬似スキャンコード出力状態」に変更する。また、プログラムが入力フォームにフォーカスを付与していて、かつ当該入力フォームがパスワード形式（例えば、入力された文字列が「＊」等の伏せ字で表示される入力フォーム）である場合、制御部２２は状態情報を「擬似スキャンコード停止状態」に変更する。また、プログラムが入力フォームにフォーカスを付与していて、かつ当該入力フォームがパスワード形式でない場合、制御部２２は状態情報を「スキャンコード記録状態」に変更する。
上述した状態情報の変更方法を用いることで、ユーザは動作選択スイッチ１３による操作を行う必要がなくなるため、秘匿情報の特定の困難化に伴うユーザ操作の煩雑化をさらに抑えることができる。
【００５０】
なお、上述した第２、第３の実施形態では、制御部の中に複数の記憶部（状態記憶部、速度記憶部、スキャンコード記憶部）を備える場合を説明したが、これに限られず、例えば、同一の不揮発性メモリに各記憶部に相当する記憶領域を割り当てることでも同様の処理を行うことができる。
【００５１】
また、上述した第３の実施形態では、変数Ｂｕｆｆｅｒが３０以下である場合にユーザの入力操作と無関係なスキャンコードを出力しない場合を説明したが、これに限られず、例えば変数Ｂｕｆｆｅｒが３０以下である場合にランダムなスキャンコードを出力するようにしても良い。
【００５２】
また、上述した第１〜第３の実施形態では、入力装置１〜３にスキャンコード出力の制御プログラムを組み込んだものを例に説明したが、これに限られず、例えば、複数のコンピュータで共用するＫＶＭ（Keyboard Video Mouse）スイッチなど、入出力切替え装置の内部制御として当該制御プログラムを組み込んで用いても良い。具体的には、従来のＫＶＭスイッチがキーボード未接続エラーの発生を防止するために出力するキーボード擬似接続信号の代わりに、ユーザの入力操作と無関係なスキャンコードを出力することで、第１〜第３の実施形態に記載の入力装置１〜３と同様の効果を得ることができる。
【００５３】
上述の入力装置１〜３は内部に、コンピュータシステムを有している。そして、上述した各処理部の動作は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。
【００５４】
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【符号の説明】
【００５５】
１…入力装置  ５…コンピュータ  １１…入力部  １２…制御部  １３…動作選択スイッチ  １４…第１動作表示部  １５…第２動作表示部  １２１…スキャンコード出力部  １２２…状態記憶部  １２３…擬似スキャンコード出力部  １２４…タイマ部
【図１】
2011090454.tif 000003
【図２】
2011090454.tif 000004
【図３】
2011090454.tif 000005
【図４】
2011090454.tif 000006
【図５】
2011090454.tif 000007
【図６】
2011090454.tif 000008
【図７】
2011090454.tif 000009