(57)【特許請求の範囲】
【請求項１】
ハードキーボード又は表示部に表示された第１のソフトキーボードの各キーに対するユーザ操作により前記各キーに割り当てられた文字が入力されたとき、当該文字と異なる種類の文字又は当該文字と同一種類で当該文字とは異なる文字を出力するプロセッサを備え、
前記プロセッサは、
前記ハードキーボード又は前記第１のソフトキーボードの各キーに割り当てられた文字に対して、当該文字とは異なる種類の文字又は当該文字と同一種類で当該文字とは異なる文字を前記各キーに割り当てた第２のソフトキーボードを生成し、前記第１のソフトキーボードの各キーに対するユーザ操作により当該キーに割り当てた文字が入力されたとき、当該キーに対応する前記第２のソフトキーボードのキーに割り当てた文字を出力し、
ユーザ操作により前記第１のソフトキーボードの各キーに割り当てられた文字が入力される場合において前記情報処理装置がアクセスした認証局における統一位置資源子の一部である固有情報に基づいて、前記第２のソフトキーボードの各キーに対する文字の割り当てを行う
ことを特徴とする情報処理装置。
【請求項２】
前記プロセッサは、前記第１のソフトキーボードの各キーに割り当てられた文字に対して空白文字を前記表示部に表示させることを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記プロセッサは、前記第１のソフトキーボードの各キーに割り当てられた文字に対してボタン又は記号を前記表示部に表示させることを特徴とする請求項１記載の情報処理装置。
【請求項４】
前記プロセッサは、前記ハードキーボード又は前記第１のソフトキーボードの各キーに割り当てられた文字に対し、ユーザによる前記ハードキーボード又は前記第１のソフトキーボードの各キーに対する操作毎に前記第２のソフトキーボードの各キーに割り当てる文字を変更することを特徴とする請求項１記載の情報処理装置。
【請求項５】
前記プロセッサは、前記第１のソフトキーボードの各キーに割り当てられた文字と、当
該文字と異なる種類の文字又は当該文字と同一種類で当該文字とは異なる文字との対応関係を保持したまま、ユーザによる操作毎に、前記第１のソフトキーボードの各キーに割り当てた文字の配置を変更することを特徴とする請求項１記載の情報処理装置。
【請求項６】
情報処理装置におけるコンピュータに実行させる入力制御プログラムであって、
ハードキーボード又は表示部に表示されたソフトキーボードの各キーに対するユーザ操作により前記各キーに割り当てられた文字が入力されたとき、当該文字と異なる種類の文字又は当該文字と同一種類で当該文字とは異なる文字を出力する処理を前記コンピュータに実行させ、
前記出力する処理は、
前記ハードキーボード又は前記第１のソフトキーボードの各キーに割り当てられた文字に対して、当該文字とは異なる種類の文字又は当該文字と同一種類で当該文字とは異なる文字を前記各キーに割り当てた第２のソフトキーボードを生成し、前記第１のソフトキーボードの各キーに対するユーザ操作により当該キーに割り当てた文字が入力されたとき、当該キーに対応する前記第２のソフトキーボードのキーに割り当てた文字を出力する処理と、
ユーザ操作により前記第１のソフトキーボードの各キーに割り当てられた文字が入力される場合において前記情報処理装置がアクセスした認証局における統一位置資源子の一部である固有情報に基づいて、前記第２のソフトキーボードの各キーに対する文字の割り当てを行う処理と、を含む、
入力制御プログラム。
【請求項７】
プロセッサを含む情報処理装置における入力制御方法であって、
ハードキーボード又は表示部に表示されたソフトキーボードの各キーに対するユーザ操作により前記各キーに割り当てられた文字が入力されたとき、当該文字と異なる種類の文字又は当該文字と同一種類で当該文字とは異なる文字を出力する処理を前記プロセッサが実行し、
前記出力する処理は、
前記ハードキーボード又は前記第１のソフトキーボードの各キーに割り当てられた文字に対して、当該文字とは異なる種類の文字又は当該文字と同一種類で当該文字とは異なる文字を前記各キーに割り当てた第２のソフトキーボードを生成し、前記第１のソフトキーボードの各キーに対するユーザ操作により当該キーに割り当てた文字が入力されたとき、当該キーに対応する前記第２のソフトキーボードのキーに割り当てた文字を出力する処理と、
ユーザ操作により前記第１のソフトキーボードの各キーに割り当てられた文字が入力される場合において前記情報処理装置がアクセスした認証局における統一位置資源子の一部である固有情報に基づいて、前記第２のソフトキーボードの各キーに対する文字の割り当てを行う処理と、を含む、
入力制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、入力制御プログラム、及び入力制御方法に関する。
【背景技術】
【０００２】
近年、スマートフォンやタブレット端末などのスマートデバイスによるインターネットの利用が盛んに行われるようになってきている。このようなインターネットを利用したサービスにおいては、ユーザに対してパスワードが求められる場合がある。サービス提供側は、例えば、パスワードによりユーザ本人であることを認証し、認証したユーザに対してサービスを提供するようにしている。
【０００３】
その一方、ユーザは、複数のサービス夫々に対して異なるパスワードを設定することが面倒である等の理由から、複数のサービスで全て同じパスワードを設定する場合がある。また、ユーザは、スマートデバイス上での入力文字種の変更がわからない或いはそのような変更が面倒であるなどの理由から、数字列だけのパスワードを設定する場合もある。その場合、ユーザは誕生日や電話番号、単純な数字列など、推測が容易なパスワードを設定する場合もある。
【０００４】
このように推測が容易なパスワードが複数のサービスで使用されることで、例えば、第３者による不正なアクセスやアカウントの乗っ取りなどが発生し、個人情報の流出や詐欺行為などに発展するケースもある。
【０００５】
このような状況に対して、例えば、以下のような技術がある。すなわち、ユーザ端末が各センタの識別情報を取得し、ユーザパスワードと識別情報とを写像変換によりセンタ毎に一意に識別可能なアクセスパスワードを生成し、生成したアクセスパスワードをセンタ毎に登録するようにした複数サイトアクセス方法の技術がある。
【０００６】
この技術によれば、ユーザ唯一のユーザパスワードを使用して各サイトに対して異なるアクセスパスワードを登録し、異なるアクセスパスワードで安全にアクセスでき、セキュリティの向上を図ることができる、とされる。
【０００７】
また、キーボードのキー配列で形成可能なイメージ・パターン、入力順序を表すイメージ・シーケンスからなるパスワード・イメージ、及び指定順位を記憶したコンピュータ・システムの技術がある。この技術では、ＰＣ（パーソナル・コンピュータ）により生成された特定キーに対して、ユーザは当該特定キーとパスワード・イメージ、及び指定順位に基づいて入力パスワードをキーボードから入力することができる。
【０００８】
この技術によれば、ユーザが記憶しやすく、攻撃者に盗まれにくく、毎回異なるパスワードでユーザを認証することができる、とされる。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００２−７３５６２号公報
【特許文献２】特開２００８−１８１４４０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかし、センタ毎に一意に識別可能なアクセスパスワードを得る技術では、取得したアクセスパスワードをパスワード変換装置の作成済パスワード保持部において保持するようにしている。アクセスパスワードがメモリなどに保持されると、第３者による不正なアクセスによってアクセスパスワードが読み取られる場合もあり、セキュリティの向上を図ることができない。また、この技術では、例えば、ユーザ唯一のユーザパスワードとセンタ毎の識別情報とを写像変換することでアクセスパスワードを生成するようにしている。しかし、この技術では、画面上においてパスワードの入力が促されたとき、ユーザがどのようにユーザパスワードやアクセスパスワードを入力するかについては議論されていない。従って、パスワードの入力が促された場合、この技術ではユーザが簡単に思いつくような簡易なパスワードを入力し、そのため、一定以上に強度の高いパスワードが設定されない場合がある。
【００１１】
また、特定キーとパスワード・イメージ、及び指定順位に基づいて入力パスワードを入力されるようにした技術では、パスワード・イメージと指定順位がパスワード格納部において格納されるようになっている。従って、第３者による不正なアクセスにより、パスワード・イメージと指定順位が読み取られ、入力パスワードが盗み取られてしまう場合もある。また、かかる技術では、パスワード・イメージに従って入力パスワードが設定されるため、自由にパスワードが設定される場合と比較して、パスワードとして設定される文字列などのバリエーションが少なくなる場合がある。しかも、かかる技術では、パスワード・イメージに従ってパスワードが設定されるため、シフトキーによって大文字と小文字の双方の文字を入力パスワードとして設定できない場合もある。従って、かかる技術では一定の場合よりも強度の高いパスワードを設定することができない場合がある。
【００１２】
そこで、一開示は一定の場合よりも強度が高いパスワードの設定が可能な情報処理装置、入力制御プログラム、及び入力制御方法を提供することにある。
【００１３】
また、一開示はパスワードを装置内に保存しなくてもパスワードの設定が可能な情報処理装置、入力制御プログラム、及び入力制御方法を提供することにある。
【課題を解決するための手段】
【００１４】
一開示は、情報処理装置において、ハードキーボード又は表示部に表示された第１のソフトキーボードの各キーに対するユーザ操作により前記各キーに割り当てられた文字が入力されたとき、当該文字と異なる種類の文字又は当該文字と同一種類で当該文字とは異なる文字を出力するプロセッサを備える。
【発明の効果】
【００１５】
一開示によれば、一定の場合よりも強度が高いパスワードの設定が可能な情報処理装置、入力制御プログラム、及び入力制御方法を提供することができる。また、パスワードを装置内に保存しなくてもパスワードの設定が可能な情報処理装置、入力制御プログラム、及び入力制御方法を提供することができる。
【図面の簡単な説明】
【００１６】
【図１】図１は情報処理装置の構成例を表す図である。
【図２】図２はスマートデバイスの構成例を表す図である。
【図３】図３は動作例を表すフローチャートである。
【図４】図４は動作例を表すフローチャートである。
【図５】図５はスマートデバイスの構成例を表す図である。
【図６】図６はスマートデバイスの構成例を表す図である。
【図７】図７はスマートデバイスの構成例を表す図である。
【図８】図８はスマートデバイスの構成例を表す図である。
【図９】図９はスマートデバイスの構成例を表す図である。
【図１０】図１０はスマートデバイスの構成例を表す図である。
【図１１】図１１はスマートデバイスの構成例を表す図である。
【図１２】図１２は異なるスマートデバイスにおいて同一の固有情報が生成される例を表す図である。
【図１３】図１３（Ａ）と図１３（Ｂ）はスマートデバイスのハードウェア構成例を表す図である。
【発明を実施するための形態】
【００１７】
以下、本発明を実施するための形態について説明する。
【００１８】
［第１の実施の形態］
第１の実施の形態について説明する。図１は第１の実施の形態における情報処理装置１０の構成例を表している。
【００１９】
情報処理装置１０は、例えば、スマートフォン、フィーチャーフォン、タブレット、パーソナルコンピュータ、ゲーム装置などである。情報処理装置１０は、例えば、スマートデバイスと称する場合がある。
【００２０】
情報処理装置１０は、ハードキーボード１０１、表示部１０２、プロセッサ１６０を備える。また、表示部１０２は第１のソフトキーボード１０３を表示する。ただし、情報処理装置１０は、ハードキーボード１０１と第１のソフトキーボード１０３のうちいずれか一方を備えるようにしてもよい。
【００２１】
第１のソフトキーボード１０３は、例えば、表示部１０２の画面上をユーザが操作（タップ操作やなぞる操作など）することで、第１のソフトキーボード１０３の各キーに対する操作を行うことができる。
【００２２】
プロセッサ１６０は、ハードキーボード１０１又は表示部１０２に表示された第１のソフトキーボード１０３の各キーに対するユーザ操作により前記各キーに割り当てられた文字が入力されたとき、当該文字と異なる種類の文字を出力する。又は、プロセッサ１６０は、ユーザ操作により前記各キーに割り当てられた文字が入力されたとき、当該文字と同一種類で当該文字とは異なる文字を出力する。
【００２３】
例えば、ユーザ操作によって”１２３４”を入力した場合、情報処理装置１０は当該文字と同一の種類（数字）であって入力した文字と異なる文字からなる文字列”９９３５”を出力する。このように、本情報処理装置１０はユーザが単なる数字の昇順をパスワードとして入力しても、関連性がない文字列がパスワードとして出力することができる。
【００２４】
また、例えば、ユーザ操作によって、”１２３４”を入力した場合、情報処理装置１０は当該文字と異なる種類（大文字のアルファベット、小文字のアルファベット、又は記号）の文字からなる文字列”Ａｘｊ！”を出力することができる。このように、ユーザが単なる数字の昇順をパスワードとして入力しても、関連性がない文字列をパスワードとして出力することができる。
【００２５】
情報処理装置１０から出力される文字がパスワードとして認証局などに送信されることで、例えば、認証局ではパスワードに基づく認証を行うことになる。これにより、例えば、サービスに対するパスワードの設定を行うことが可能となる。
【００２６】
従って、本情報処理装置１０は、ユーザが簡易なパスワードを入力しても一定の場合よりも強度の高いパスワードを設定することできる。
【００２７】
また、図１に示すように本情報処理装置１０では、プロセッサ１６０において文字を出力するようにしているが、出力する文字をメモリなどに保存することはしていない。従って、本情報処理装置１０ではパスワードを装置内に保存しなくてもパスワードの設定が可能となる。
【００２８】
［第２の実施の形態］
次に第２の実施の形態について説明する。
【００２９】
＜情報処理装置（又はスマートデバイス）の構成例＞
情報処理装置の構成例について説明する。図２は情報処理装置１０の構成例を表す図である。情報処理装置１０は、例えば、スマートデバイスなどと称される場合がある。スマートデバイスとは、例えば、フィーチャーフォン、スマートフォン、タブレット、パーソナルコンピュータ、ゲーム装置などの端末装置である。スマートデバイス１０は、無線通信又は有線通信を行うことができ、或いは無線通信も有線通信も双方とも行うことも可能である。以下では、情報処理装置１０としてスマートデバイスを例にして説明する。
【００３０】
スマートデバイス１０は、インターネットなどのネットワークへアクセスし、ネットワークを介して様々なサービスの提供を受けることができる。サービスとしては、例えば、短文投稿サイトへの書き込みや読み出しなどのサービス、テキストチャットサービス、インターネット電話サービス、などがある。例えば、スマートデバイス１０は、ネットワークを介して、サービスを提供するサーバ装置にアクセスし、当該サーバ装置から種々のサービスの提供を受けることができる。
【００３１】
スマートデバイス１０においてこのようなサービスを受ける場合、パスワードが要求される場合がある。ユーザはスマートデバイス１０を介してパスワードを入力する。入力されたパスワードは認証局に送信され、認証局においてパスワードに基づいて認証が行われる。認証局において認証により許可されるとスマートデバイス１０はサービスの提供を受けることが可能となる。
【００３２】
なお、スマートデバイス１０に対してユーザが入力するパスワードは、１文字でも良いし、複数の文字からなる文字列でもよい。また、スマートデバイス１０から出力されるパスワードも、１文字でも良いし、文字列でもよい。例えば、文字列とは連続した複数の文字のことであるが、以下においては、文字列と文字とをとくに区別することなく用いる場合がある。
【００３３】
また、本第２の実施の形態における文字の種別としては、例えば、大文字のアルファベット（以下、「大文字」と称する場合がある）、小文字のアルファベット（以下、「小文字」と称する場合がある）、数字、記号がある。パスワードとして用いられる文字は、例えば、このような文字の種類に含まれる文字が用いられるものとする。
【００３４】
図２に示すようにスマートデバイス１０は、アプリケーション１００、初期シード保存ＤＢ（Data Base）１１０、乱数発生器１２０、設定データ保存ＤＢ１３０、入力メソッド１４０、ソフトキー表示部（又はハードキーボード）１５０を備える。
【００３５】
なお、第１の実施の形態におけるハードキーボード１０１は、例えば、ハードキーボード１５０に対応する。また、第１の実施の形態における表示部１０２は、例えば、ソフトキー表示部１５０に対応する。
【００３６】
なお、アプリケーション１００、乱数発生器１２０、及び入力メソッド１４０は、例えば、プロセッサ１６０により実行（又は実現）される機能である。例えば、プロセッサ１６０が所定のプログラムを実行することで、アプリケーション１００、乱数発生器１２０、及び入力メソッド１４０の各機能を実行することができる。以下では、例えば、プロセッサ１６０により実行される機能として、アプリケーション１００や乱数発生器１２０、及び入力メソッド１４０について説明する。
【００３７】
アプリケーション１００は、例えば、ブラウザ・アプリケーションなどである。アプリケーション１００は、サービスを提供するサーバ装置などにアクセスしてコンテンツを取得（又はダウンロード）し、取得したコンテンツをＷｅｂページとしてソフトキー表示部１５０に表示させる。
【００３８】
また、アプリケーション１００は、例えば、ソフトキー表示部１５０に表示されたＷｅｂページに対するユーザ操作に応じて入力メソッド１４０を起動させる。具体的には、ＨＴＭＬ（Hyper Text Markup Language）言語で記述されたコンテンツの場合、ｔｙｐｅ属性が”ｐａｓｓｗｏｒｄ”のｉｎｐｕｔ要素（又は「入力要求」）をユーザが選択（又は指定）した場合、アプリケーション１００（又はプロセッサ１６０）がメモリから所定のプログラムを読み出して実行することで入力メソッド１４０を起動させる。入力メソッド１４０が起動されることで、スマートデバイス１０において文字の入力が可能となり、ユーザはパスワードの入力が可能となる。
【００３９】
さらに、アプリケーション１００は固有情報を生成し、生成した固有情報を入力メソッド１４０へ出力する。固有情報は、例えば、パスワード入力画面がソフトキー表示部１５０に表示された場合においてアプリケーション１００がアクセスしたＵＲＬ（Uniform Resource Locator：統一資源位置指定子）の一部である。
【００４０】
例えば、パスワード入力画面のＵＲＬが「www.exmaple.co.jp/login.html?uid=1234」の場合、ファイル名やパラメータ名を除いたドメイン部（又はドメイン名）（「www.exmaple.co.jp」）であって、当該ドメイン部のうち最末端部（「www」）を除いた部分（「exmaple.co.jp」）が固有情報となる。
【００４１】
なお、アプリケーション１００が固有情報を生成して入力メソッド１４０へ送信しているが、これは、アプリケーション１００において固有情報を生成するためのプログラムが実行されることでこのような機能を実現している。ブラウザ・アプリケーション１００は、デバイス固有のアプリケーションとなっている場合が多く、アプリケーション１００においてこのようなプログラムを作成しておくことは比較的容易である。従って、デバイスメーカでビルドイン（又はスマートデバイス１０と一体的に作成）された、又は、ダウンロードされた、ブラウザ・アプリケーション１００によって固有情報が取得可能であるとする。なお、固有情報は、アプリケーション１００からＯＳ（Operating System）を経由して入力メソッド１４０へ出力されてもよい。
【００４２】
さらに、アプリケーション１００は入力メソッド１４０からパスワードとして送信された文字列を受信し、受信したパスワードを認証局などへ送信する。認証局などにおいてパスワードに基づく認証が行われる。
【００４３】
初期シード保存ＤＢ１１０は初期シード（又はシード値）を記憶する。初期シードは、例えば、乱数が生成されるときに使用される最初の設定値のことである。初期シードは、例えば、ユーザがソフトキー表示部１５０に表示されたソフトキーボード（以下では、「ソフトキー」と称する場合がある）又はハードキーボード１５０を操作することでスマートデバイス１０に入力される。プロセッサ１６０は、ユーザ操作を検知し、入力された文字又は文字列を初期シードとして初期シード保存ＤＢ１１０に格納する。ユーザにより入力された任意の文字又は文字列そのものを初期シードとすることもできるし、入力された文字又は文字列に対して加工（例えばハッシュ値への変換）した加工物を初期シードとしてもよい。
【００４４】
初期シードは、パスワードとして実際にサービスを受けるときに直接使用されるものではないため、一定の場合よりも強度が高い文字列にしなくてもよい。また、初期シードは乱数の生成に使用されるものであり、ユーザが関知しないデータであってもよい。このようなデータの例としては、スマートデバイス１０の製造番号やＳＩＭ（Subscriber Identity Module）カードのＩＣＣＩＤ（Integrated Circuit Card Identifier）（ＳＩＭカード固有の識別番号）などがある。プロセッサ１６０はＲＡＭやＳＩＭカードのメモリからこのようなデータを読み出して、初期シード保存ＤＢ１１０に格納してもよい。
【００４５】
乱数発生器１２０は、初期シード保存ＤＢ１１０から初期シードを読み出し、入力メソッド１４０から固有情報を受け取り、初期シードと固有情報とに基づいて乱数を発生（又は生成）する。乱数の生成方法は、例えば、特定のハッシュ関数を使用するものや疑似乱数列を使用するもの、疑似乱数列としてｒａｎｄ関数やメルセンヌ・ツイスタを用いるものなど、公知の生成方法でよい。
【００４６】
設定データ保存ＤＢ１３０は設定データ（又は設定値、以下、とくに区別することなく「設定データ」と称する場合がある）を記憶する。設定データとしては、例えば、設定文字数などがある。設定文字数とは、例えば、ソフトキー表示部（又はハードキーボード）１５０における一つ一つのキーに対して割り当て可能な文字数を表す。図２の例では、ソフトキー表示部（又はハードキーボード）１５０の[１]キーに対して、[Ａｑ]の２文字が割り当てられており、この場合の設定文字数は「２」となる。[１]キーに対して[Ａ]が割り当てられる場合は、設定文字数は「１」となる。このような設定データは、例えば、ユーザによるハードキーボード１５０の操作やソフトキー表示部１５０に表示されたソフトキーボードに対する操作により、予め設定データ保存ＤＢ１３０に格納されるものとする。或いは、設定データ保存ＤＢ１３０において予めデフォルトデータが格納されていてもよい。
【００４７】
入力メソッド１４０は、例えば、スマートデバイス１０に文字を入力させるための機能ブロックである。例えば、日本語の場合、平仮名文字や片仮名文字をハードキーボード１５０やソフトキーボードの各キーに一つ一つ割り当てるのは困難であるため、複数のキーを組み合わせて平仮名文字や片仮名文字の入力が可能となっている。このような文字の入力を可能にする機能が、例えば、入力メソッド１４０である。スマートフォンなどの場合でも、ソフトキーボードが表示される領域は他のスマートデバイスと比較して小さく、そのため、アルファベットの入力に対するキーも不足している。このような場合を考慮して、入力メソッド１４０ではアルファベットなどを含む文字の入力を可能としている。
【００４８】
なお、入力メソッド１４０は、例えば、フロントエンドプロセッサ（ＦＥＰ）やインプットメソッドなどと称される場合もある。入力メソッド１４０は、例えば、ＯＳ（Operating System）において標準的に装備される場合がある。
【００４９】
また、入力メソッド１４０は、アプリケーション１００から取得した固有情報を乱数発生器１２０へ出力し、乱数発生器１２０は初期シード保存ＤＢ１１０から取得した初期シード値と、入力メソッド１４０から取得した固有情報によって乱数を生成する。そして、入力メソッド１４０は、取得した乱数と設定データ保存ＤＢ１３０から読み出した設定文字数に基づいて、ハードキーボード又はソフトキー表示部１５０に表示されたソフトキーボードの各キーに対して文字を割り当てる。
【００５０】
この場合、入力メソッド１４０は、ハードキーボード又はソフトキー表示部１５０に表示されたソフトキーボードの各キーに対して、当該文字とは異なる種類の文字、又は当該文字とは同一種類であって当該文字とは異なる文字をランダムに割り当てる。
【００５１】
図２の例では、入力メソッド１４０は、ソフトキー表示部１５０に表示された[１]キーに対して”Ａｑ”を割り当て、[２]キーに対して”ｘ３”を割り当て、[３]キーに対して”ｊ＋”を割り当てている。
【００５２】
入力メソッド１４０は、このようにランダムに割り当てたソフトキーボードを生成し、生成したソフトキーボードに基づいて、パスワードとして文字又は文字列を出力する。従って、ユーザがハードキーボード又はソフトキー表示部１５０に表示されたソフトキーボードに対する操作によりパスワードとして文字列を入力すると、当該文字列とは異なる種類の文字列を出力する。或いは、入力メソッド１４０は、当該文字列とは同一の種類の文字列であって当該文字列とは異なる文字列を出力する。この出力する文字列がアプリケーション１００に対して設定されるパスワードとなっている。図２の例では、ユーザが[１][２][３][４]キーをこの順番で入力すると、入力メソッド１４０は、文字列”Ａｑｘ３ｊ＋！Ｓ”をパスワードとしてアプリケーション１００へ出力する。
【００５３】
ソフトキー表示部（又は表示部）１５０は、例えば、液晶モニタであって、入力メソッド１４０又はアプリケーション１００の指示によりソフトキーボードを表示する。ユーザがソフトキー表示部１５０に表示されたソフトキーボードをタップしたりなぞったりするなどの操作を行うと、ソフトキー表示部１５０はこれを検知し、操作したキーに対応する位置情報とキーコードなどをアプリケーション１００へ送信する。キーコードは、各キーを一意に識別する識別情報である。ソフトキー表示部１５０はユーザによるソフトキーボード上の操作を検知するためにタッチセンサなどを備えるようにしてもよい。なお、ソフトキー表示部１５０は、例えば、Ｗｅｂページの表示など、ソフトキーボード以外の表示を行ってもよい。
【００５４】
ハードキーボード１５０は、例えば、スマートデバイス１０に接続された物質的な装置としてのキーボードである。
【００５５】
＜動作例＞
次にスマートデバイス１０における動作例について説明する。図３及び図４は動作例を表すフローチャートである。このうち、図３はキーに対する文字の割り当てに関する動作例を表しており、図４は割り当て後、パスワードが出力されるまでの動作例を表している。図３及び図４における各処理は、例えば、入力メソッド１４０において行われる。なお、以下においては、ハードキーボード１５０の場合とソフト表示部１５０に表示されるソフトキーボードの場合において、代表してソフトキーボードを例にして説明することにする。
【００５６】
＜１．新規のソフトキーボードの生成処理＞
入力メソッド１４０は処理を開始すると（Ｓ１０）、アプリケーション１００からイベントを受信する（Ｓ１１）。例えば、入力メソッド１４０は、入力要求のイベントや、他のアプリケーションが起動されたことを示すイベントなど、各種イベントをアプリケーション１００から受信する。
【００５７】
次に、入力メソッド１４０はイベントの付加情報を取得する（Ｓ１１）。付加情報としては、例えば、入力要求のイベントの場合、パスワードモードやデキストモードなどのモードの種別、入力文字数などがある。例えば、入力メソッド１４０は、アプリケーション１００からイベントの付加情報を取得する。
【００５８】
なお、イベントや付加情報は、例えば、アプリケーション１００において生成される。例えば、アプリケーション１００はＨＴＭＬ言語によるコンテンツを取得した場合、ユーザによってｔｙｐｅ属性が”ｐａｓｓｗｏｒｄ”であるｉｎｐｕｔ要素が選択されると、イベントとして入力要求、付加情報としてパスワードモードを入力メソッド１４０へ出力する。また、アプリケーション１００は、ユーザによってｔｙｐｅ属性が”ｔｅｘｔ”であるｉｎｐｕｔ属性が選択されると、イベントとして入力要求、付加情報としてテキストモードを入力メソッド１４０へ出力する。
【００５９】
次に、入力メソッド１４０は、イベントが入力要求か否かを判別する（Ｓ１３）。例えば、入力メソッド１４０はアプリケーション１００から受信したイベントが「入力要求」であるか否かにより判別する。
【００６０】
入力メソッド１４０は、イベントが「入力要求」ではないとき（Ｓ１３でＮｏ）、当該イベントに対応した処理を行い、一連の処理を終了する（Ｓ１４）。例えば、入力メソッド１４０は入力要求以外のイベント（例えば、「他のアプリケーションが起動された」）などを受信すると、当該イベントに対応した処理を行い、一連の処理を終了する。
【００６１】
一方、入力メソッド１４０は、イベントが「入力要求」のとき（Ｓ１３でＹｅｓ）、入力要求がパスワードモードか否かを判別する（Ｓ１５）。例えば、入力メソッド１４０は、パスワードモードであることを示す付加情報をアプリケーション１００から受信したか否かにより判別する。
【００６２】
入力メソッド１４０は、入力要求がパスワードモードではないとき（Ｓ１５でＮｏ）、他のモードによる入力要求に関する処理を行う（Ｓ１６）。例えば、入力要求であっても、テキストモードの場合は、入力メソッド１４０は入力したテキストをアプリケーション１００へ出力するなどの処理を行う。
【００６３】
一方、入力メソッド１４０は、入力要求がパスワードモードのとき（Ｓ１５でＹｅｓ）、設定データを設定データ保存ＤＢ１３０から取得する（Ｓ１７）。この場合、入力メソッド１４０は、設定データとして、設定文字数と入力可能な文字種を取得する。入力可能な文字種としては、例えば、大文字、小文字、数字、又は記号がある。
【００６４】
次に、入力メソッド１４０は、ソフトキー表示部１５０に表示されたソフトキーボードの全てのキーのうち、削除キーやカーソル移動キーなどの制御キーを除く、文字入力が可能な１つ１つのキーに対して、Ｓ１８からＳ２３までの処理を繰り返す（ループ１）。
【００６５】
また、入力メソッド１４０は、設定文字数で設定した文字数の１文字１文字について、Ｓ２０からＳ２３までの処理を行う（ループ２）。
【００６６】
ループ１とループ２により、例えば、入力メソッド１４０は表示されたソフトキーボードのキー１つ１つに対して、設定文字数の１文字１文字について、Ｓ２１からＳ２３を行う。
【００６７】
入力メソッド１４０は、Ｓ２１において、固有情報を乱数発生器１２０へ出力し、乱数発生器１２０から乱数を取得する。この場合、入力メソッド１４０は、Ｓ２０からＳ２３までのループ中において毎回、乱数発生器１２０から乱数を取得するのではなく、最初に乱数を取得した後はメモリに記憶しておき、その都度、メモリから乱数を取得するようにしてもよい。
【００６８】
次に、入力メソッド１４０は、入力可能な文字種から乱数に従って文字を選択する（Ｓ２２）。
【００６９】
例えば、入力メソッド１４０は以下のようにして文字を選択する。すなわち、得られた乱数が「ｎ」（ｎは自然数）、入力可能な文字の個数が「ｍ」個あるとする。ｎ≦ｍの場合、入力メソッド１４０は入力可能な文字の中でｎ番目の文字を選択する。他方、ｎ＞ｍの場合、入力メソッド１４０は、ｍｏｄ（ｎ，ｍ）番目の文字を選択する。この場合、ｍｏｄ（ｎ，ｍ）はｎをｍで割った余りを表している。
【００７０】
具体的には、大文字と小文字は全部で５２種類、数字は１０種類、記号が１０種類あるとして、入力可能な文字の個数が「７２」個ある場合を考える。この場合、得られた乱数が「３０」のとき、入力メソッド１４０は３０番目の文字（例えば”ｄ”）を選択する。また、得られた乱数が「１００」の場合、入力メソッド１４０はｍｏｄ（７２，１００）＝２８番目の文字（例えば”ｂ”）を選択する。
【００７１】
次に、入力メソッド１４０は処理対象となるキーに対して文字を割り付ける（Ｓ２３）。例えば、入力メソッド１４０は、処理対象となるキーに対してＳ２２で選択した文字を割り当てる。入力メソッド１４０は、割り当て後、各キーのキーコードと当該キーに対して割り当てた文字とを対応させてメモリなどに記憶する。
【００７２】
例えば、入力メソッド１４０は、[１]キーに”Ａ”を割り当てた場合、[１]キーのキーコード”ＫＥＹＣＯＤＥ＿１”と”Ａ”とを対応させてメモリに記憶する。
【００７３】
入力メソッド１４０は、設定文字数分、Ｓ２０からＳ２３を繰り返すと、Ｓ１８へ移行して、処理対象となるキーを変えて、再び、Ｓ１０からＳ２３までの処理を繰り返す。入力メソッド１４０は、このような処理を、ソフトキー表示部１５０に表示されたソフトキーボードの全てのキーに対して処理を行うと処理はＳ２４へ移行する。入力メソッド１４０は、例えば、全てのキーに対して文字を割り当てると、ソフトキーボードを新規に生成することになり、このようなソフトキーボードがメモリに記憶される。
【００７４】
次に、入力メソッド１４０はソフトキー表示部１５０にソフトキーボードを表示する（Ｓ２４）。入力メソッド１４０は、乱数に従った文字の割り当てを終了し、ユーザが操作する対象となるソフトキーボードをソフトキー表示部１５０へ表示させる。
【００７５】
ユーザが操作する対象となるソフトキーボードの表示は、例えば、以下のようにして行われる。すなわち、入力メソッド１４０は各キーの位置情報（例えば（ｘ１，ｙ１）など）とキーコードをメモリから読み出してソフトキー表示部１５０へ出力する。ソフトキー表示部１５０では、これらの情報に従って各位置にキーを表示することでソフトキーボードを表示する。図２では、ソフトキー表示部１５０に表示されるソフトキーボードはテンキー仕様となっている例を表している。
【００７６】
＜２．パスワード出力処理＞
入力メソッド１４０は、パスワード出力処理を開始すると（Ｓ３０）、イベントとイベントの付加情報をアプリケーション１００から受信する（Ｓ３１，Ｓ３２）。
【００７７】
例えば以下のような処理が行われる。すなわち、ユーザがソフトキー表示部１５０に表示されたソフトキーボードをタップすると、ソフトキー表示部１５０のタッチセンサなどがこれを検知して、タップイベントとともに、操作したソフトキーボードのキーコードをアプリケーション１００へ通知する。
【００７８】
ハードキーボード１５０やソフトキー表示部１５０に表示されたソフトキーボードの各キーに対して、一意のキーコードが割り当てられている。例えば、キーが［１］，［２］，…［０］，［＃］，［＊］に対しては、キーコードとして”ＫＥＹＣＯＤＥ＿１”，”ＫＥＹＣＯＤＥ＿２”，…，”ＫＥＹＣＯＤＥ＿０”，”ＫＥＹＣＯＤＥ＿ＰＯＵＮＤ”，”ＫＥＹＣＯＤＥ＿ＳＴＡＲ”が夫々割り当てられている。例えば、ユーザが[１]キーをタップすると、ソフトキー表示部１５０は[１]キーに対するキーコード”ＫＥＹＣＯＤＥ＿１”をアプリケーション１００へ送信する。
【００７９】
アプリケーション１００は、取得したタップイベントに基づいてキー入力イベントを生成し、取得したキーコードとタップ数（又は入力文字数）を含む付加情報を生成する。アプリケーション１００は、生成したキー入力イベントと付加情報を入力メソッド１４０へ送信する。
【００８０】
次に、入力メソッド１４０は、受信したイベントがキー入力イベントか否かを判別する（Ｓ３３）。例えば、入力メソッド１４０は、アプリケーション１００からキー入力イベントを受信したか否かにより判別する。
【００８１】
入力メソッド１４０は、受信したイベントがキー入力イベントではないとき（Ｓ３３でＮｏ）、受信した他のイベントに対する処理を行い、一連の処理を終了する（Ｓ３４）。
【００８２】
一方、入力メソッド１４０は、受信したイベントがキー入力イベントのとき（Ｓ３３でＹｅｓ）、キーの種別を判別する（Ｓ３５）。例えば、入力メソッド１４０は、アプリケーション１００から付加情報として受信したキーコードに基づいてキーの種別を判別する。
【００８３】
入力メソッド１４０は、キーの種別が「文字入力キー」のとき（Ｓ３５で「文字入力キー」）、キーに割り当てた文字を取得する（Ｓ３６）。
【００８４】
例えば、以下の処理が行われる。すなわち、入力メソッド１４０は、付加情報として受信したキーコードが”ＫＥＹＣＯＤＥ＿１”から”ＫＥＹＣＯＤＥ＿０”、”ＫＥＹＣＯＤＥ＿ＳＴＡＲ”、”ＫＥＹＣＯＤＥ＿ＰＯＵＮＤ”のいずかであればキーの種別が「文字入力キー」と判別する。そして、入力メソッド１４０は、メモリにアクセスして、付加情報として受信したキーコードに対応する割り当て文字を読み出す。図２の例では、入力メソッド１４０は、キー［１］のキーコード”ＫＥＹＣＯＤＥ＿１”に対応する文字”Ａｑ”、キー［２］のキーコード”ＫＥＹＣＯＤＥ＿２”に対応する文字”ｘ３”などをメモリから夫々取得する。
【００８５】
次に、入力メソッド１４０は、取得した文字をアプリケーション１００へ送信する（Ｓ３７）。例えば、入力メソッド１４０は、キー［１］［２］［３］［４］に対応する文字列”Ａｑｘ３ｊ＋！Ｓ”をアプリケーション１００へ送信する。
【００８６】
次に、入力メソッド１４０は、ループ１を繰り返す（Ｓ３８〜Ｓ４０）。ループ１の処理は図３におけるループ１と同様である。この動作例の詳細については第６の実施の形態において説明する。本第２の実施の形態では、入力メソッド１４０はループ１を行うことなく、一連の処理を終了する（Ｓ４１）。
【００８７】
一方、入力メソッド１４０は、キーの種別がその他の制御キーのとき（Ｓ３５で「その他の制御キー」）、その他の制御キーに対する処理を行う（Ｓ４２）。その他の制御キーとしては、例えば、カーソルを左右に移動させるキー、入力した文字を削除するキー、メニューキーなどがある。入力メソッド１４０は、付加情報として受信したキーコードがこのような制御キーである場合、当該制御キーに対応する処理（カーソルを左右に移動させたり、入力した文字を削除したりするなど）を行う。
【００８８】
一方、入力メソッド１４０は、キーの種別が決定キーのとき（Ｓ３５で「決定キー」）、確定イベントをアプリケーション１００へ送信する（Ｓ４３）。例えば、入力メソッド１４０は、取得したキーコードが”ＫＥＹＣＯＤＥ＿ＳＥＬＥＣＴ”や”ＫＥＹＣＯＤＥ＿ＥＮＴＥＲ”のとき、入力した文字を確定したことを表す確定イベントをアプリケーション１００へ送信する。
【００８９】
なお、図４の動作例では、入力メソッド１４０は文字を取得するとアプリケーション１００へ送信しているが（Ｓ３７）、例えば、取得した文字をメモリなどに保持しておき、本処理（Ｓ４３）において、確定イベントとともに取得した文字をアプリケーション１００へ送信してもよい。この場合、決定キーの操作により、入力メソッド１４０は取得した文字をアプリケーション１００へ送信する。
【００９０】
次に、入力メソッド１４０は、ソフトキー表示部１５０に表示されたソフトキーボードを消去する（Ｓ４４）。例えば、入力メソッド１４０は、ソフトキー表示部１５０に対してソフトキーボードの表示の停止を指示し、ソフトキー表示部１５０はこの指示に従って画面上に表示されたソフトキーボードを消去する。
【００９１】
そして、入力メソッド１４０は一連の処理を終了する（Ｓ４１）。
【００９２】
このように本第２の実施の形態においてスマートデバイス１０は、ハードキーボード１５０又はソフトキーボードの各キーに対して、当該キーに割り当てられた文字とは異なる種類の文字、又は当該キーに割り当てられた文字とは同一種類であるが当該文字とは異なる文字を割当てたソフトキーボードを生成している。そして、スマートデバイス１０は、ハードキーボード１５０又はソフトキーボードの各キーに対する操作が行われたとき、生成したソフトキーボードに基づいて、操作により入力された当該キーに割り当てられた文字とは異なる種類の文字、又は当該文字とは同一種類であって当該文字とは異なる文字を出力する。当該文字がパスワードとして、例えば、サービスを提供するサーバ装置などに送信される。
【００９３】
従って、例えば、ユーザが［１］，［２］，［３］，［４］といった昇順の簡易な数字列をパスワードとして入力しても、本スマートデバイス１０では、複雑でわかりにくい文字列（”Ａｑｘ３ｊ＋！Ｓ”）をパスワードとすることができる。或いは、ユーザが誕生日などの数字列をパスワードとして入力しても、本スマートデバイス１０は、誕生日とは何ら関係のない複雑でわかりにくい文字列をパスワードとして出力できる。
【００９４】
また、本スマートデバイス１０では、更に、設定文字数によって各キーに対する割り当て文字数を設定できる。上述したように、例えば、ユーザが［１］，［２］，［３］，［４］の４文字を入力したとしても、スマートデバイス１０では、”Ａｑｘ３ｊ＋！Ｓ”と８文字のパスワードを出力することができる。このように本スマートデバイス１０では、ユーザが入力した文字数よりも多いパスワードを出力することができ、この点からも、より複雑な文字列をパスワードとして出力可能である。
【００９５】
よって、本スマートデバイス１０では、一般の人よりもセキュリティ意識が低く、またリテラシーの低いユーザが簡易なパスワードを入力しても、一定の場合よりも強度が高いパスワードの設定が可能となる。
【００９６】
また、本スマートデバイス１０では、初期シードや設定文字数はメモリなどに保存されるものの、パスワード自体はメモリなどに保存していない。従って、本スマートデバイス１０は、パスワードを装置内に保存しなくてもパスワードの設定が可能である。このため、本スマートデバイス１０ではハッキングなどによるパスワードの流出の可能性を回避できる。初期シードはメモリに保存されるものの、パスワードは初期シードから乱数に基づいて生成されるため、初期シードからパスワードを特定することは困難であり、パスワード流出の可能性は限りなく低い。
【００９７】
さらに、本スマートデバイス１０では、例えば、ＵＲＬに基づいてパスワードを生成して出力するようにしている。従って、本スマートデバイス１０は異なるサービスに対して異なるパスワードを出力することができる。
【００９８】
さらに、乱数発生器１２０では、例えば、固有情報（例えば、「ｅｘａｍｐｌｅ．ｃｏ．ｊｐ」）に基づいて乱数を発生している。そのため、本スマートデバイス１０では、ドメイン名の詐称（例えば、「ｅｘａｍｐｌｅ−ｃｏ．ｊｐ」や「ｅｘａｍｐｌｅ−ｃｏ−ｊｐ．ｃｏｍ」など）に対して異なる乱数を発生できる。従って、本スマートデバイス１０は、ドメイン名を詐称したサイトなどへは異なるパスワードを出力することになり、ユーザのパスワード流出などを回避でき、ユーザの安全性を確保できる。
【００９９】
［第３の実施の形態］
次に第３の実施の形態について説明する。上述した第２の実施の形態においては、入力したパスワードと出力されるパスワードは異なるため、ユーザは、ソフトキー表示部１５０で表示されるソフトキーボードの各キーについてどのような文字が割り当てられているか気にしなくてもよい。そのため、各キーについて、表示されるソフトキーボードの文字と、ソフトキーボードに割り当てられた文字とが一致しなくてもよい。本第３の実施の形態では、表示されるソフトキーボードの各キーの文字を、割り当てられた文字やキーの配置位置とは無関係に表示させる例について説明する。
【０１００】
図５は本第３の実施の形態におけるスマートデバイス１０の構成例などを表している。図５に示す例では、ソフトキー表示部１５０に表示されるソフトキーボードとしては、左上から順番に［ｘ］［０］［ｊ］、次段では左から順番に［−］［ｓ］［ｎ］などとなっている。図５に示すソフトキーボードの各キーの文字は、図２に示すソフトキーボードの各キーの文字に対して異なる文字となっている。
【０１０１】
この場合、ユーザは、第２の実施の形態で説明した［１］，［２］，［３］，［４］の各キーの位置とそのタップ順を記憶しておけばよく、この順番で各キーをタップすればよい。図５の例では、ユーザは［ｘ］，［０］，［ｊ］，［−］の各キーをタップして入力する。入力メソッド１４０は、文字列”Ａｘｊ！”（設定文字数は「１」）をパスワードとして出力する。ソフトキーボードの各キーの表示がどのような表示であっても、ユーザはこの順番で各キーをタップすることで、毎回同じ文字列”Ａｘｊ！”がパスワードとして出力される。
【０１０２】
例えば、入力メソッド１４０は以下のような割り当て処理とパスワード出力処理を行う。すなわち、入力メソッド１４０は、最初に、図２に示すソフトキーボードの各キーに対して文字の割り当てを行う（図３のＳ１８からＳ２３）。このとき、入力メソッド１４０は、各キーのキーコードと、割り当てた文字とを対応させてメモリに記憶するが、更に、キーの位置情報もこれらに対応させて記憶するようにする。例えば、入力メソッド１４０は、キーコード”ＫＥＹＣＯＤＥ＿１”（[１]キーを表す）、割り当てた文字”Ａ”、位置情報（ｘ１，ｙ１）をメモリに記憶する。
【０１０３】
そして、入力メソッド１４０は、ソフトキーボードの表示を行うが（Ｓ２４）、例えば、以下のような処理を行う。
【０１０４】
すなわち、入力メソッド１４０は、位置情報に基づいてランダムにキーコードを選択する。この場合、入力メソッド１４０は乱数発生器１２０を用いて、１つ１つの位置情報に対してキーコードを選択してもよい。これにより、表示されるソフトキーボードの各キーはランダムな文字が表示可能となる。例えば、（ｘ１，ｙ１）に対して、”ＫＥＹＣＯＤＥ＿ｘ”（[ｘ]キーを表す）が選択されたとき、図５に示すように、ソフトキーボードの左上の位置に「ｘ」キーを表示させることが可能となる。
【０１０５】
そして、入力メソッド１４０は、Ｓ２３でメモリに記憶されたキーコード（例えば”ＫＥＹＣＯＤＥ＿１”）に代えて、ランダムに選択したキーコード（例えば”ＫＥＹＣＯＤＥ＿ｘ”）を上書きして記憶する。これにより、メモリには新たにランダムに割り当てたキーコード（例えば”ＫＥＹＣＯＤＥ＿ｘ”）、割り当てた文字（例えば”Ａ”）、位置情報（例えば、（ｘ１，ｙ１））が対応して記憶される。入力メソッド１４０は、メモリに記憶された位置情報（例えば（ｘ１，ｙ１））とキーコード（例えば、”ＫＥＹＣＯＤＥ＿ｘ”）とをソフトキー表示部１５０へ出力することで、ランダムに割り当てたソフトキーボードが表示される（Ｓ２４）。
【０１０６】
ユーザがキー入力を行った場合、アプリケーション１００はユーザが操作した位置の位置情報（例えば（ｘ１，ｙ１））をソフトキー表示部１５０からから取得する。アプリケーション１００は付加情報として位置情報を入力メソッド１４０へ出力し（図４のＳ３２）、入力メソッド１４０は位置情報に基づいて、当該位置に割り当てられた文字（例えば、”Ａ”）をメモリから読み出して取得する（Ｓ３６）。以降は第２の実施の形態と同様に実施できる。
【０１０７】
標準的なテンキーは左上には［１］キーが配置され、左上のキーに対しては”Ａ”が割り当てられているが、本第３の実施の形態では［１］とも”Ａ”とも無関係の［ｘ］キーが表示される。
【０１０８】
本第３の実施の形態におけるスマートデバイス１０では、表示されたソフトキーボードの各キーに対してランダムに文字を割り当てているため、ユーザがタップしたキーからパスワードを類推することは困難である。例えば、ユーザが［１］，［２］，［３］，［４］と入力した場合よりも、［ｘ］，［０］，［ｊ］，［−］を入力した方が、覗き見した人は混乱が生じる可能性が高い。従って、本第３の実施の形態では、パスワードを覗き見した人を混乱させ、覗き見によるパスワードの流出を防止できる。
【０１０９】
このようなソフトキーボードのランダムな表示は、例えば、ユーザがパスワード入力後毎回行われてもよいし、一定期間経過毎にランダムに表示するようにしてもよい。例えば、図３に示すソフトキーボードの表示（Ｓ２４）について一定期間毎にランダムに割り当てを行うようにしたり、図４のループ１が終了した後に、ランダム表示によるソフトキーボードの表示（Ｓ２４）を行うようにしたりすればよい。
【０１１０】
［第４の実施の形態］
第３の実施の形態でも説明したようにソフトキー表示部１５０に表示されたソフトキーボードに対してユーザはどのような文字が割り当てられているか気にしなくてもよい。本第４の実施の形態では、表示されるソフトキーボードの各キーに何も表示しないようにした例である。この場合、ユーザはキーの位置と組み合わせをパスワードとして記憶しておけばよい。
【０１１１】
図６は本第４の実施の形態におけるスマートデバイス１０の構成例などを表す図である。図６に示すように、ソフトキー表示部１５０にはソフトキーボードが表示されるが、ソフトキーボードの各キーには文字が割り当てられておらず印字のない状態となっている。
【０１１２】
本第４の実施の形態では、例えば、ユーザは各キーに何も表示されていないキーに対して、左側列を上から順番に４つをタップするものとしてパスワードを記憶しており、この順番で各キーをタップする。この場合、入力メソッド１４０は文字列”Ａ！９ｐ”をパスワードとしてアプリケーション１００へ出力する。
【０１１３】
例えば、入力メソッド１４０は以下のような割り当て処理とパスワード出力処理を行う。すなわち、入力メソッド１４０は、ソフトキーボードに対する文字の割り当てを行う（図３のＳ１０からＳ２３）が、この場合、各キーの位置情報に基づいて文字の割り当てを行うようにすればよい。例えば、ソフトキーボードの左上のキーに対しては、入力メソッド１４０は当該キーの位置情報（例えば（ｘ１，ｙ１））に対して文字の割り当て（例えば”Ａ”）を行い、位置情報と割り当てた文字とを対応させてメモリに記憶する。
【０１１４】
また、入力メソッド１４０は、例えば、各キーに対して何も印字されていないソフトキーボードに関する情報をメモリから読み出してソフトキー表示部１５０へ出力することで、キーに何も印字されていないソフトキーボードを表示してもよい（Ｓ２４）。
【０１１５】
パスワードの出力処理（図４）については、第３の実施の形態と同様に、入力メソッド１４０はタッチセンサなどにより検出された位置情報（例えば（ｘ１，ｙ１））に基づいて割り当てた文字（例えば”Ａ”）をメモリから読み出してアプリケーション１００へ送信すればよい（図４のＳ３０からＳ３７）。
【０１１６】
本第４の実施の形態も第３の実施の形態と同様に、ソフトキーボードの各キーには印字がないため、覗き見によるパスワード流出を防ぐことができる。
【０１１７】
なお、このように各キーに文字の印字がないことを、例えば、無文字、空白文字、或いは空文字列が表示されるなどと称する場合もある。
【０１１８】
［第５の実施の形態］
第３の実施の形態でも説明したようにソフトキー表示部１５０に表示されたソフトキーボードに対してユーザはどのような文字が割り当てられているか気にしなくてもよい。本第５の実施の形態では、ユーザがソフトキーボードのキーをタップするのではなく、パターンをなぞることでパスワードを入力するようにした例である。
【０１１９】
図７は本第５の実施の形態におけるスマートデバイス１０の構成例などを表す図である。図７に示すように、ソフトキー表示部１５０にはソフトキーボードに代えて、［◎］が表示される。このボタン（又はマーク、或いは点、以下、「ボタン」と称する場合がある）は、位置の識別を可能としており、ソフトキーボードにおける特定の文字に割り当てられている点を表示している。ユーザはこの［◎］ボタンを自分で決めた順番でなぞる。例えば、図７に示すように、左側列に表示された［◎］ボタンを上から順番になぞる。この場合、入力メソッド１４０は文字列”Ａ！９ｐ”をパスワードとしてアプリケーション１００へ出力する。
【０１２０】
例えば、入力メソッド１４０は以下のような割り当て処理とパスワード出力処理を行う。すなわち、入力メソッド１４０は、第４の実施の形態と同様に、各［◎］ボタンの位置情報（例えば、（ｘ１，ｙ１））に基づいて、各［◎］ボタンに対する文字の割り当て（例えば”Ａ”）を行う（図３のＳ１０からＳ２３）。そして、入力メソッド１４０は、位置情報（例えば（ｘ１，ｙ１））と［◎］ボタンの情報をメモリなどから読み出してソフトキー表示部１５０へ出力することで、ソフトキーボードの各位置に［◎］ボタンを表示させることができる（Ｓ２４）。
【０１２１】
パスワードの入力については、第３の実施の形態と同様に、入力メソッド１４０はタッチセンサなどにより検出された位置情報（例えば（ｘ１，ｙ１））に基づいて、割り当てた文字（例えば”Ａ”）をメモリから読み出してアプリケーション１００へ送信すればよい（図４のＳ３７）。
【０１２２】
本第５の実施の形態においても、表示されるのは［◎］ボタンであり、ユーザが文字を入力するようにはなっておらず、パスワード入力を覗き見した人を混乱させ、覗き見によるパスワードの流出を防止することができる。
【０１２３】
なお、本第５の実施の形態では表示されるボタン又はマークの例として［◎］を例にして説明したが、単なる点［・］や［△］など、[◎]以外のボタンなどであってもよい。このようなボタンやマーク、点などは、例えば、特殊文字や囲み文字、合成用文字と称される場合がある。これらのボタンやマーク、点などは、例えば、文字の一種である。
【０１２４】
［第６の実施の形態］
第３の実施の形態でも説明したようにソフトキー表示部１５０に表示されたソフトキーボードに対してユーザはどのような文字が割り当てられているか気にしなくてもよい。本第６の実施の形態では、タップ（又は押下）回数によってソフトキーボードに割り当てる文字をランダムに変更する例である。
【０１２５】
図８は第６の実施の形態におけるスマートデバイス１０の構成例などを表す図である。図８に示すようにユーザが[０]，[０]，[０]，[０]の各キーをタップした場合、入力メソッド１４０はタップ回数の「４」を検出し、検出した回数「４」を乱数発生器１２０へ入力回数として送信する。入力メソッド１４０は乱数発生器１２０から乱数を受信し、受信した乱数に応じたキーの割り当てパターンを生成する。この場合、入力メソッド１４０は４つの割り当てパターンを生成する。入力メソッド１４０は、４つの割り当てパターンを順番に用いることで、ユーザが表示されたソフトキーボードの同じキーを連続してタップしても、異なる文字列を出力することができる。
【０１２６】
図８の例では、ユーザが[０]，[０]，[０]，[０]をタップした場合、入力メソッド１４０は、１回目の割り当てにより割り当てた”＠”、２回目の割り当てにより割り当てた”ａ”、３回目の割り当てにより割り当てた”０”、４回目の割り当てにより割り当てた”Ｓ”を順番に出力する。従って、入力メソッド１４０は文字列”＠ａ０Ｓ”をパスワードとしてアプリケーション１００へ出力する。
【０１２７】
例えば、入力メソッド１４０は以下のような割り当て処理とパスワード出力処理を行う。すなわち、入力メソッド１４０は、例えば、図３に示すＳ１０からＳ２３までの処理により１回目のキー割り当てを行う。そして、入力メソッド１４０はソフトキーボードを表示する（Ｓ２４）。ユーザは表示されたソフトキーボード上で複数回タップ（例えば４回）する。アプリケーション１００はこれを検出して、付加情報として入力メソッド１４０へ送信する。入力メソッド１４０は入力回数（例えば４回）をアプリケーション１００から受信する（図４のＳ３２）。
【０１２８】
その後、入力メソッド１４０は、ループ１のループ処理（Ｓ３８からＳ４０）を（入力回数−１）回分、繰り返すことで、入力回数に応じたキーの割り当てを行うことができる。例えば、ユーザが４回タップすると、１つめの割り当てパターンは図３の処理で生成され、２〜４つめの割り当てパターンは図４のループ１で生成される。
【０１２９】
そして、入力メソッド１４０は、入力回数毎に生成した割り当てパターンを用いて、入力した文字に対応する文字をパスワードとしてアプリケーション１００へ出力する（Ｓ３７）。
【０１３０】
本第６の実施の形態においても、ユーザがハードキーボード又はソフトキーボードにおいて同じキーを複数回連続して入力しても、入力メソッド１４０は、毎回異なるキーの割り当てパターンを生成するようにしている。従って、入力メソッド１４０は、毎回異なる文字又は毎回異なる種別の文字をパスワードとして出力可能である。
【０１３１】
上述したようにユーザが[０]キーを４回タップしても、入力メソッド１４０はより複雑な文字列”＠ａ０Ｓ”をパスワードとして出力している。従って、ユーザが簡易なパスワードを入力しても、本スマートデバイス１０は一定の場合よりも強度の高いパスワードを出力できる。
【０１３２】
[第７の実施の形態]
例えば、ユーザがスマートデバイス１０を入手し、当該ユーザが覗き見により入手したパスワードの入力手順（タップ順とパターンなど）で不正アクセスを行う場合がある。本第７の実施の形態では、表示されるソフトキーボードの各キーの文字（例えば第１の文字）と、当該文字に対して割り当てた異なる種類の文字又は同一種類で異なる文字との関係を保ったまま、表示されるソフトキーボードのキー配列（又は各キーに割り当てられた第１の文字）をランダムに変更させる例である。ユーザは、ソフトキーボード上に配置されたキーを記憶した順番でタップしてパスワードの入力を行う。
【０１３３】
図９は本第７の実施の形態のスマートデバイス１０の構成例などを表す図である。図９に示す例は、ソフトキーボードはテンキー仕様で表示される例を表している。例えば、ユーザは[１]，[２]，[３]，[４]の各キーをこの順番で入力することを記憶しており、この順番で入力すると、入力メソッド１４０は”Ａｘｊ！”をアプリケーション１００へ出力する。この場合、１回タップされる毎に、テンキーとして表示されるソフトキーボードの各キーの位置がランダムに変化し、表示されるソフトキーボードのキー配置をランダムに表示させるようにしている。
【０１３４】
例えば、入力メソッド１４０は以下のような割り当て処理とパスワード出力処理を行う。すなわち、入力メソッド１４０は、第２の実施の形態と同様に、表示された通常のテンキーによるソフトキーボードの各キーに対して、文字の割り当てを行う（図３のＳ１０からＳ２３）。そして、入力メソッド１４０は、ソフトキーボードの表示を行う（Ｓ２４）が、例えば、以下のようにして行う。
【０１３５】
すなわち、ソフトキーボードの左上の位置座標を（ｘ１，ｙ１）とし、入力メソッド１４０は当該位置に、複数のキーコードの中からランダムに選択したキーコード”ＫＥＹＣＯＤＥ＿７”（＝[７]）を割り当てる。入力メソッド１４０は、位置情報（例えば（ｘ１，ｙ１））と選択したキーコード（例えば”ＫＥＹＣＯＤＥ＿７”）とをソフトキー表示部１５０へ出力することで、ソフトキーボードの左上に[７]キーを表示させることができる。このとき、入力メソッド１４０は、選択したキーコード”ＫＥＹＣＯＤＥ＿７”の位置情報を（ｘ３，ｙ１）から（ｘ１，ｙ１）に上書きしてメモリに記憶する。これにより、キーコード”ＫＥＹＣＯＤＥ＿７”に割り当てた文字（”９”）の割り当てを保つことができる。入力メソッド１４０は、ソフトキーボードの全キーに対してこのような処理を繰り返すことで、キー配置をランダムに表示したソフトキーボードを表示する。
【０１３６】
ソフトキーボードの表示が行われた後は、入力メソッド１４０は、例えば、図４に示すフローチャートによりパスワードの出力が可能となる。この場合、ループ１のループ処理（Ｓ３８とＳ４０）に代えて、入力メソッド１４０は、上述したソフトキーボードの表示を行う。すなわち、入力メソッド１４０は、キー入力として文字入力キーの１文字（又は１タップ操作）に対して、Ｓ３１からＳ３７までの処理を行って割り当てた文字をアプリケーション１００へ送信する。そして、入力メソッド１４０は上述したソフトキーボードの表示を行う。これにより、１回のユーザのタップにより、再びランダムにキーが表示されたソフトキーボードを表示させることができる。これを繰り返すことで、入力メソッド１４０は、ユーザによる１回のタップ毎に毎回異なるキー配列となるソフトキーボードを表示させることが可能となる。
【０１３７】
本第７の実施の形態では、タップ順やパターンなどを覗き見したユーザが本スマートデバイス１０を使用してパスワードを入力しても、ソフトキーボードのキー配列はタップ毎に毎回ランダムに異なる表示となるため、覗き見による不正なアクセスを防止することができる。
【０１３８】
[第８の実施の形態]
第８の実施の形態では、ブラウザ・アプリケーション１００に代えて、ＷｅｂＶｉｅｗが利用された場合の動作例である。図１０はＷｅｂＶｉｅｗ１７５を含むスマートデバイス１０の構成例などを表す図である。
【０１３９】
ＷｅｂＶｉｅｗ１７５、例えば、ソフトキー表示部１５０の画面内においてＷｅｂページを表示させるようにしたソフトウェア又はＧＵＩ（Graphic User Interface）コンポーネントである。ＷｅｂＶｉｅｗ１７５により、Ｗｅｂページ内に広告や他のＷｅｂページを表示させることが可能となる。例えば、プロセッサ１６０はメモリなどに記憶された所定のプログラムを読み出して実行することで、ＷｅｂＶｉｅｗ１７５の機能を実行できる。
【０１４０】
第２の実施の形態においては、アプリケーション１００が固有情報を生成して入力メソッド１４０へ出力することについて説明した。例えば、このような固有情報を生成しない（或いはこのような機能を持っていない）サードベンダ製のアプリケーション１７０の場合、当該アプリケーション１７０は固有情報を入力メソッド１４０へ送信することができない。
【０１４１】
他方、ＷｅｂＶｉｅｗ１７５において、例えば、ｇｅｔＵＲＬ（）メソッドを利用することで、ＷｅｂＶｉｅｗ１７５からＵＲＬを取得することが可能である。ＷｅｂＶｉｅｗ１７５では、ｇｅｔＵＲＬ（）メソッドと、取得したＵＲＬから固有情報を生成する機能とを、ＷｅｂＶｉｅｗ１７５を実行するプログラム内に作成しておけばよい。これにより、アプリケーション１７０が固有情報を生成することができない場合でも、ＷｅｂＶｉｅｗ１７５により固有情報を生成することが可能となり、入力メソッド１４０は、第２の実施の形態と同様に、ハードキーボードやソフトキーボードの各キーに対してランダムに文字を割り当てることができる。
【０１４２】
例えば、以下のような処理が行われる。すなわち、アプリケーション１７０はアクセスした先のＵＲＬをＷｅｂＶｉｅｗ１７５へ送信する。ＷｅｂＶｉｅｗ１７５は、受信したＵＲＬに基づいて、ネットワーク３００を介してコンテンツ（又はドキュメント）をダウンロードし、Ｗｅｂページ（又はコンテンツ）をソフトキー表示部１５０へ表示する。コンテンツ内には、ｔｙｐｅ属性が”ｐａｓｓｗｏｒｄ”のｉｎｐｕｔ要素が存在し、ユーザが当該ｉｎｐｕｔを選択すると、ＷｅｂＶｉｅｗ１７５は入力要求を入力メソッド１４０へ送信する。また、入力メソッド１４０は固有情報をＷｅｂＶｉｅｗ１７５へ要求し、ＷｅｂＶｉｅｗ１７５はアプリケーション１７０から取得したＵＲＬに基づいて固有情報を生成し、入力メソッド１４０へ送信する。以降は、スマートデバイス１０は第２の実施の形態と同様に図３や図４に示す処理を行う。
【０１４３】
本第８の実施の形態では、ブラウジング・アプリケーション１００に代えて、ＷｅｂＶｉｅｗ１７５を用いた場合でも、第２の実施の形態と同様に、各キーにランダムに文字を割り当てることができ、一定よりも強度の高いパスワードの設定が可能となる。
【０１４４】
[第９の実施の形態]
スマートデバイス１０を介してユーザに提供されるサービスについて、複数のアプリケーションで同じサービスが提供される場合がある。例えば、Ｗｅｂページによりサービスが提供される場合と、専用のアプリケーションが実行されてサービスが提供される場合などがある。本第９の実施の形態では、複数のアプリケーションで同一のサービスが提供される場合でも、同一のパスワードの設定を可能にする例である。
【０１４５】
本第９の実施の形態では、例えば、第８の実施の形態と同様にＷｅｂＶｉｅｗ１７５を用いて処理を行う（例えば図１０）。
【０１４６】
複数のアプリケーションで同一のサービスが提供される場合でも、ユーザの認証が行われる認証局のＵＲＬは同一である場合がある。この場合、ＷｅｂＶｉｅｗ１７５が認証画面を表示させるようにし、アプリケーション１７０から取得した認証画面に関するＵＲＬに基づいて固有情報を生成し、入力メソッド１４０へ送信する。
【０１４７】
従って、複数のアプリケーションで同一のサービスが提供される場合でも、固有情報は複数のアプリケーションで同一とすることができる。ユーザが入力した初期シードを複数のアプリケーションで用いることで、入力メソッド１４０では複数のアプリケーションにおいて同一の固有情報と同一の初期シードを得ることができ、同一のパスワードをアプリケーション１００へ送信できる。
【０１４８】
従って、ユーザは、同一のサービスであれば、複数のアプリケーションで異なるパスワードを入力することがなくなり、同一のパスワードの設定が可能であり、複数のパスワードを記憶することなく当該サービスを受けることができる。
【０１４９】
なお、本第９の実施の形態では、図１０に示すアプリケーション１７０は複数のアプリケーションを含んでいてもよい。
【０１５０】
[第１０の実施の形態]
本第１０の実施の形態では、ユーザが別のスマートデバイスを用いて同一のサービスの提供を受ける例について説明する。例えば、スマートフォン、タブレット、パーソナルコンピュータ、ゲーム装置など、それぞれのスマートデバイスについて、同一のサービスについて同一のパスワードを出力することができれば、異なるスマートデバイス１０で同一のサービスの提供を受けることが可能である。
【０１５１】
図１１は本第１０の実施の形態におけるスマートデバイス１０の構成例を表している。図１１に示すスマートデバイス１０は、例えば、Ｍｉｃｒｏｓｏｆｔ社製のＯＳであるＷｉｎｄｏｗｓ（登録商標）ＯＳ（以下、単に「ＯＳ」と称する場合がある）１８５上で実行されるソフトキーアプリケーション１８０のモジュールの構成例を表している。ＯＳ１８５とソフトキーアプリケーション１８０は、例えば、プロセッサ１６０がメモリなどに記憶された所定のプログラムを読み出して実行することで実現される。
【０１５２】
ソフトキーアプリケーション１８０は、初期シード保存ＤＢ１１０、設定データ保存ＤＢ１３０、ソフトキー表示部１８１、文字割り付け部１８２、表示ＵＲＬ取得部１８３、及びキーイベント送信部１８４を備える。
【０１５３】
ソフトキー表示部１８１は、例えば、第２の実施の形態のソフトキー表示部１５０と同様に、表示画面上にソフトキーボードを表示し、ユーザからの入力を受け付ける。ソフトキー表示部１８１は、ソフトキーボードだけではなく、Ｗｅｂページなどを表示してもよい。
【０１５４】
文字割り付け部１８２は、初期シード保存ＤＢ１１０と設定データ保存ＤＢ１３０から初期シードと設定文字数をそれぞれ読み出し、表示ＵＲＬ取得部１８３からＵＲＬを取得し、初期シードと設定文字数、及びＵＲＬに基づいて文字の割り当てを行う。
【０１５５】
このとき、文字割り付け部１８２では、ＵＲＬから固有情報を生成する。また、文字割り付け部１８２は、例えば、乱数発生器１２０を内部に有してもよい。文字割り付け部１８２は、初期シードと生成した固有情報とに基づいて乱数を発生させ、第２の実施の形態と同様に、乱数に基づいてハードキーボード１５０又はソフトキーボードの各キーに対してランダムに文字を割り当てる。この場合、文字割り付け部１８２は、各キーに対して設定文字数分の文字を割り当てる。図１１の例では、第２の実施の形態と同様に、設定文字数が「２」の場合の例を表している。
【０１５６】
表示ＵＲＬ取得部１８３は、例えば、ＯＳ１８５からブラウザのオブジェクト（例えば、ＩｎｔｅｒｎｅｔＥｘｐｌｏｒｅｒオブジェクト）を取得し、さらに、ＬｏｃａｔｉｏｎＵＲＬプロパティを取得することで、Ｗｅｂページ（又は認証画面）のＵＲＬを取得する。表示ＵＲＬ取得部１８３は取得したＵＲＬを文字割り付け部１８２へ出力する。
【０１５７】
キーイベント送信部１８４は、ユーザが入力した文字に対して文字割り付け部１８２により割り当てられた文字をキー入力イベントとしてＯＳ１８５へ送信する。この場合、キーイベント送信部１８４は、例えば、Ｓｅｎｄｋｅｙｓメソッドを利用してキー入力イベントを送信してもよい。
【０１５８】
以上により、第２の実施の形態で説明した機能をＯＳ１８５上のアプリケーションとして実行することができる。なお、スマートデバイス１０が取得したコンテンツ内に含まれるｉｎｐｕｔ要素がアクティブになった場合に、プロセッサ１６０がメモリから所定のプログラムを読み出してソフトキーアプリケーション１８０を実行するようにしてもよい。
【０１５９】
図１２はスマートフォン１１とパーソナルコンピュータ（以下、「ＰＣ」と称する場合がある）１２からユーザが同一のサービスにアクセスする場合の動作を説明するための図である。
【０１６０】
スマートフォン１１としてはアンドロイド端末、ＰＣ１２としてはＷｉｎｄｏｗｓ端末でもよい。スマートフォン１１もＰＣ１２も、いずれもスマートデバイス１０の一例である。
【０１６１】
スマートフォン１１には、第２の実施の形態で説明したブラウザ・アプリケーション１００と初期シード保存ＤＢ１１０、入力メソッド１４０、スマートフォンＯＳ１８６を備える。スマートフォン１１には、更に、乱数発生器１２０や設定データ保存ＤＢ１３０を備えていてもよいが、図１２では省略されている。ブラウザ１００や入力メソッド１４０、スマートフォンＯＳ１８６は、例えば、スマートフォン１１のプロセッサ１６０により実現される機能である。
【０１６２】
また、ＰＣ１２には、初期シード保存ＤＢ１１０、ソフトキーアプリケーション１８０、ＯＳ１８５、及びブラウザ１８７を備える。ソフトキーアプリケーション１８０、ＯＳ１８５、ブラウザ１８７は、例えば、ＰＣ１２のプロセッサ１６０により実現される機能である。
【０１６３】
この場合、ユーザはスマートフォン１１にもＰＣ１２にも同一の初期シードを入力する。これにより、同一の初期シードが双方の初期シード保存ＤＢ１１０において保存される。
【０１６４】
サービスの認証画面が表示される場合のＵＲＬは、スマートフォン１１とＰＣ１２で異なる場合がある。例えば、ＰＣ１２では「ｌｏｇｉｎ．ｅｘａｍｐｌｅ．ｊｐ」、スマートフォン１１では「ｌｏｇｉｎ−ｓｐ．ｅｘａｍｐｌｅ．ｊｐ」となる場合がある。
【０１６５】
しかし、スマートフォン１１の入力メソッド１４０では、第２の実施の形態でも説明したように、ドメイン部の末端部を削除した固有情報を作成しているため、固有情報として「ｅｘａｍｐｌｅ．ｊｐ」を得ることができる。また、ＰＣ１２におけるソフトキーアプリケーション１８０の文字割り付け部１８２においても固有情報として「ｅｘａｍｐｌｅ．ｊｐ」を取得できる。従って、いずれも同一の固有情報を得ることができる。
【０１６６】
スマートフォン１１とＰＣ１２においては、初期シードは双方とも同一、固有情報も双方とも同一であり、双方の乱数発生器において同じアルゴリズムにより乱数を発生させることで、同一の割り当て文字を出力することができる。従って、同一のパスワードが双方のスマートデバイスから送信されるため、ユーザは異なる端末からでも同一のサービスを受けることができる。
【０１６７】
[第１１の実施の形態]
例えば、Ｗｅｂページの１ページ内に複数のｉｎｐｕｔ要素が存在する場合がある。各ｉｎｐｕｔ要素で異なるパスワードの入力が可能となるように、ｉｎｐｕｔ要素の名前（又はｉｎｐｕｔ要素のｎａｍｅ属性の値）を固有情報に加えてもよい。
【０１６８】
例えば、認証画面のＵＲＬが「ｗｗｗ．ｅｘａｍｐｌｅ．ｃｏ．ｊｐ」、ユーザによって選択されたｉｎｐｕｔ要素のフォームが「ｉｎｐｕｔ  ｔｙｐｅ＝”ｐａｓｓｗｏｒｄ”  ｎａｍｅ＝”ｉｄ１”」の場合、固有情報は「ｅｘａｍｐｌｅ．ｃｏ．ｊｐ．ｉｄ１」となる。このような固有情報は、例えば、アプリケーション１００やＷｅｂＶｉｅｗ１７５においてＵＲＬとｉｎｐｕｔ要素に基づいて生成される。入力メソッド１４０はこの固有情報に基づいて文字の割り当てを行えばよい。
【０１６９】
また、固有情報としては、アプリケーション１００を識別するパッケージ名やアクティビティ名が含まれてもよい（又は利用されてもよい）。パッケージ名とアクティビティ名は、例えば、アプリケーションプログラムなどを識別する識別名である。パッケージ名とアクティビティ名は、ＵＲＬと同様にドメイン名が使用されており、ＵＲＬと同様に固有情報として使用可能である。
【０１７０】
例えば、ダウンロードなどによりスマートデバイス１０のメモリにアプリケーションプログラムなどが記憶される際にパッケージ名やアクティビティ名により当該プログラムなどがメモリに記憶される。プロセッサ１６０はメモリから当該プログラムを読み出してアプリケーション１００を実行する際に、当該プログラムのパッケージ名やアクティビティ名も読み出して、アプリケーション１００やＷｅｂＶｉｅｗ１７５へ出力する。これにより、アプリケーション１００やＷｅｂＶｉｅｗ１７５では、パッケージ名やアクティビティ名に基づいて固有情報を生成することが可能となる。
【０１７１】
[第１２の実施の形態]
固有情報として、例えば、スマートデバイス１０において認証の際に利用した、セキュリティ証明書やデジタル証明書などの電子証明書が用いられてもよい。このような電子証明書は、スマートデバイス１０が認証局との間で交換されるもので、例えば、スマートデバイス１０は認証局から受信可能である。アプリケーション１００やＷｅｂＶｉｅｗ１７５では、メモリに記憶された電子証明書に関する情報を読み出して、電子照明書に関する情報（例えば、電子証明書を発行した発行元のＵＲＬなど）に基づいて、固有情報を生成すればよい。固有情報には、電子証明書に関する情報が含まれる。固有情報としては、例えば、サービスの提供元によって異なるものであれば固有情報として使用可能である。
【０１７２】
[第１３の実施の形態]
第２から第１２の実施の形態においては、例えば、アプリケーション１００やＷｅｂＶｉｅｗ１７５がｉｎｐｕｔ要素を判別すると、入力メソッド１４０を起動させて入力メソッド１４０により文字の割り当てを行う例について説明した。
【０１７３】
例えば、ユーザが指定したｉｎｐｕｔ要素について、そのｔｙｐｅ属性として”ｐａｓｓｗｏｒｄ”が指定されていない場合もある。そのような場合でも、Ｗｅｂページ上に表示された所定のラジオボタンなどの操作によりユーザがパスワード入力を有効化した場合、本スマートデバイス１０では上記した実施の形態と同様に文字を割り当てて、パスワードを出力するようにする。
【０１７４】
この場合、例えば、アプリケーション１００やＷｅｂＶｉｅｗ１７５（又はタッチセンサなど）が、当該ラジオボタンの操作が行われたことを検出すると、パスワードの入力を示す入力要求を入力メソッド１４０へ出力する。これにより、本第１２の実施の形態におけるスマートデバイス１０においても、上記した実施の形態と同様に、図３と図４により実施することができる。
【０１７５】
[その他の実施の形態]
第３から第１３の実施の形態においては、いずれも入力メソッド１４０が文字の割り当てを行う例について説明した。従って、第３から第１３の実施の形態においても、第２の実施の形態と同様に、ユーザが簡易なパスワード入力を行っても、一定の場合よりも強度の高いパスワードを出力することができる。また、スマートデバイス１０は、例えば、図３と図４に示す処理を行うことで、出力するパスワードそのものを内部に保存することなく、一定の場合よりも強度の高いパスワードを出力することができる。
【０１７６】
また、第２から第１３の実施の形態において、入力メソッド１４０において割り当てる文字の種類としては、大文字と小文字のアルファベット、数字、記号について説明した。例えば、割り当てる文字の種別としては、片仮名や平仮名などの日本語、ハングル文字、漢字など、様々な種類の文字が含まれてもよい。また、ソフトキー表示部１５０において表示されるソフトキーボードについても、テンキー仕様のソフトキーボードだけではなく、アルファベット仕様のソフトキーボードや平仮名文字や片仮名文字仕様のソフトキーボード、ハングル文字仕様のソフトキーボードなど、様々な文字の種類のソフトキーボードやハードキーボードであってもよい。
【０１７７】
図１３（Ａ）と図１３（Ｂ）はスマートデバイス１０のハードウェアの構成例を表す図である。図１３（Ａ）は例えば無線通信可能なスマートデバイス１０、図１３（Ｂ）は有線通信可能なスマートデバイス１０の構成例を夫々表している。
【０１７８】
図１３（Ａ）に示すように、スマートデバイス１０は、プロセッサ１６０、ＲＯＭ１９０、ＲＡＭ１９１、メモリ１９２、表示部１９３、無線部１９５、及びアンテナ１９６を備える。図１３（Ａ）に示すスマートデバイス１０としては、例えば、スマートフォン、フィーチャーフォン、タブレットなどがある。
【０１７９】
プロセッサ１６０は、ＲＯＭ１９０に記憶されたプログラムをＲＡＭ１９１にロードし、ロードしたプログラムを実行することで、アプリケーション１００，１７０、乱数発生器１２０、入力メソッド１４０、ソフトキー表示部１５０の機能を実行できる。また、プロセッサ１６０は、ロードしたプログラムを実行することで、ソフトキーアプリケーション１８０の機能を実行できる。プロセッサ１６０は、例えば、第２から第１３の実施の形態における、アプリケーション１００，１７０、乱数発生器１２０、入力メソッド１４０、及びソフトキーアプリケーション１８０に対応する。
【０１８０】
なお、プロセッサ１６０は、例えば、ＣＰＵ（Central Processing Unit）やＦＰＧＡ（Field Programmable Gate Array）、ＤＳＰ（Digital Processing Unit）、その他のコントローラであってもよい。
【０１８１】
メモリ１９２には、例えば、初期シード保存ＤＢ１１０と設定データ保存ＤＢ１３０を記憶する。メモリ１９２は、例えば、第２から第１３の実施の形態における、初期シード保存ＤＢ１１０と設定データ保存ＤＢ１３０に対応する。
【０１８２】
表示部１９３は、ソフトキーボードやＷｅｂページなどを表示する。表示部１９３は、例えば、第２から第１３の実施の形態におけるソフトキー表示部１５０に対応する。
【０１８３】
無線部１９５は、プロセッサ１６０から出力されたデータなどを無線信号へ変換してアンテナ１９６へ出力したり、アンテナ１９６から出力された無線信号からデータなどを抽出してプロセッサ１６０へ出力する。アンテナ１９６は基地局や他のスマートデバイスとの間で無線信号を交換する。
【０１８４】
図１３（Ｂ）に示すように、更に、通信ＩＦ（Interface）１９８を備える。図１３（Ｂ）に示すスマートデバイス１０としては、例えば、パーソナルコンピュータなどがある。
【０１８５】
通信ＩＦ１９８は、プロセッサ１６０から出力されたデータなどを外部のネットワークへ出力可能なフォーマットに変換して、変換後のデータなどを外部へ送信する。また、通信ＩＦ１９８は、外部から所定フォーマットのデータなどを受信して、データなどを抽出し、抽出したデータをプロセッサ１６０へ出力する。
【０１８６】
以上まとめると付記のようになる。
【０１８７】
（付記１）
ハードキーボード又は表示部に表示された第１のソフトキーボードの各キーに対するユーザ操作により前記各キーに割り当てられた文字が入力されたとき、当該文字と異なる種類の文字又は当該文字と同一種類で当該文字とは異なる文字を出力するプロセッサ
を備えることを特徴とする情報処理装置。
【０１８８】
（付記２）
前記プロセッサは、ユーザ操作により入力された前記文字に対して、当該文字と異なる種類の複数の文字、又は当該文字と同一種類で当該文字とは異なる複数の文字を出力することを特徴とする付記１記載の情報処理装置。
【０１８９】
（付記３）
前記プロセッサは、前記ハードキーボード又は前記ソフトキーボードの各キーに対するユーザ操作により入力された設定文字数に従って、前記複数の文字を出力することを特徴とする付記２記載の情報処理装置。
【０１９０】
（付記４）
前記プロセッサは、前記ハードキーボード又は前記第１のソフトキーボードの各キーに割り当てられた文字に対して、当該文字とは異なる種類の文字又は当該文字と同一種類で当該文字とは異なる文字を前記各キーに割り当てた第２のソフトキーボードを生成し、前記第１のソフトキーボードの各キーに対するユーザ操作により当該キーに割り当てた文字が入力されたとき、当該キーに対応する前記第２のソフトキーボードのキーに割り当てた文字を出力することを特徴とする付記１記載の情報処理装置。
【０１９１】
（付記５）
前記プロセッサは、ユーザ操作により前記第１のソフトキーボードの各キーに割り当てられた文字が入力される場合において前記情報処理装置がアクセスした認証局における統一位置資源子の一部である固有情報に基づいて、前記第２のソフトキーボードの各キーに対する文字の割り当てを行うことを特徴とする付記４記載の情報処理装置。
【０１９２】
（付記６）
前記プロセッサは、ユーザ操作により前記第１のソフトキーボードの各キーに割り当てられた文字が入力される場合において前記情報処理装置がアクセスした認証局の統一位置資源子の一部である固有情報と初期シードとに基づいて生成した乱数に基づいて、前記第２のソフトキーボードの各キーに対する文字の割り当てを行うことを特徴とする付記４記載の情報処理装置。
【０１９３】
（付記７）
前記固有情報は、前記統一位置資源子に含まれるドメイン名のうち「ｗｗｗ」を除いた部分であることを特徴とする付記５記載の情報処理装置。
【０１９４】
（付記８）
前記プロセッサは、前記第１のソフトキーボードの各キーに割り当てられた文字に対して、当該文字と同一又は異なる種類の文字からランダムに選択した文字を前記表示部に表示させることを特徴とする付記１記載の情報処理装置。
【０１９５】
（付記９）
前記プロセッサは、前記第１のソフトキーボードの各キーに割り当てられた文字が入力されて当該文字と異なる種類の文字又は当該文字と同一種類で当該文字とは異なる文字を出力する毎に、又は、一定期間経過毎に、前記第１のソフトキーボードの各キーに代えてランダムに選択した文字を前記表示部に表示させることを特徴とする付記８記載の情報処理装置。
【０１９６】
（付記１０）
前記プロセッサは、前記第１のソフトキーボードの各キーに割り当てられた文字に対して空白文字を前記表示部に表示させることを特徴とする付記１記載の情報処理装置。
【０１９７】
（付記１１）
前記プロセッサは、前記第１のソフトキーボードの各キーに割り当てられた文字に対してボタン又は記号を前記表示部に表示させることを特徴とする付記１記載の情報処理装置。
【０１９８】
（付記１２）
前記プロセッサは、前記ハードキーボード又は前記第１のソフトキーボードの各キーに割り当てられた文字に対し、当該文字と異なる種類の文字又は当該文字と同一種類で当該文字とは異なる文字を各キーに割り当てた第２のソフトキーボードを生成し、ユーザによる前記ハードキーボード又は前記第１のソフトキーボードの各キーに対する操作毎に前記第２のソフトキーボードの各キーに割り当てる文字を変更することを特徴とする付記１記載の情報処理装置。
【０１９９】
（付記１３）
前記プロセッサは、前記第１のソフトキーボードの各キーに割り当てられた文字と、当該文字と異なる種類の文字又は当該文字と同一種類で当該文字とは異なる文字との対応関係を保持したまま、ユーザによる操作毎に、前記第１のソフトキーボードの各キーに割り当てた文字の配置を変更することを特徴とする付記１記載の情報処理装置。
【０２００】
（付記１４）
前記プロセッサは、Ｗｅｂページを前記表示部に表示させる機能又Ｗｅｂページ内に他のＷｅｂページを前記表示部に表示させる機能を実行することで、ユーザ操作により前記第１のソフトキーボードの各キーに割り当てられた文字を入力するときに前記情報処理装置がアクセスした認証局における統一位置資源子の一部を固有情報として取得し、取得した固有情報に基づいて前記第２のソフトキーボードを生成する付記４記載の情報処理装置。
【０２０１】
（付記１５）
前記プロセッサは、
前記第１のソフトキーボードを表示するソフトキー表示部と、
前記プロセッサによりネットワークを介してアクセスした装置の統一位置資源子を取得する表示ＵＲＬ取得部と、
前記統一位置資源子に基づいて、前記第１のソフトキーボードの各キーに割り当てられた文字に対して、当該文字と異なる種類の文字又は当該文字と同一種類で当該文字とは異なる文字を割り当てる文字割り付け部と、
前記割り付け部により割り当てた文字を送信するキーイベント送信部
の各機能を含むことを特徴とする付記１記載の情報処理装置。
【０２０２】
（付記１６）
前記固有情報は、前記第１のソフトキーボードの各キーに割り当てられた文字を入力するときにユーザ操作により選択されたｉｎｐｕｔ要素におけるｎａｍｅ属性を含むことを特徴とする付記５記載の情報処理装置。
【０２０３】
（付記１７）
前記固有情報は、前記固有情報を生成するプログラムを識別するパッケージ名又はアクティビティ名を含むことを特徴とする付記５記載の情報処理装置。
【０２０４】
（付記１８）
前記固有情報には、前記情報処理装置が前記認証局との間で交換した電子証明書に関する情報が含まれることを特徴とする付記５記載の情報処理装置。
【０２０５】
（付記１９）
前記文字の種類は、大文字のアルファベット、小文字のアルファベット、数字、及び記号であることを特徴とする付記１記載の情報処理装置。
【０２０６】
（付記２０）
情報処理装置におけるコンピュータに実行させる入力制御プログラムであって、
ハードキーボード又は表示部に表示されたソフトキーボードの各キーに対するユーザ操作により前記各キーに割り当てられた文字が入力されたとき、当該文字と異なる種類の文字又は当該文字と同一種類で当該文字とは異なる文字を出力する処理を
コンピュータに実行させることを特徴とする入力制御プログラム。
【０２０７】
（付記２１）
プロセッサを含む情報処理装置における入力制御方法であって、
前記プロセッサにより、ハードキーボード又は表示部に表示されたソフトキーボードの各キーに対するユーザ操作により前記各キーに割り当てられた文字が入力されたとき、当該文字と異なる種類の文字又は当該文字と同一種類で当該文字とは異なる文字を出力する
ことを特徴とする入力制御方法。
【符号の説明】
【０２０８】
１０：スマートデバイス                １００：アプリケーション
１１０：初期シード保存ＤＢ            １２０：乱数発生器
１３０：設定データ保存ＤＢ            １４０：入力メソッド
１５０：ハードキーボード又はソフトキー表示部
１６０：プロセッサ                    １７０：アプリケーション
１７５：ＷｅｂＶｉｅｗ                １８０：ソフトキーアプリケーション
１８１：ソフトキー表示部              １８２：文字割り付け部
１８３：表示ＵＲＬ取得部              １８４：キーイベント送信部
１９２：メモリ                        １９３：表示部
【図１】
0006481487.tif 000002
【図２】
0006481487.tif 000003
【図３】
0006481487.tif 000004
【図４】
0006481487.tif 000005
【図５】
0006481487.tif 000006
【図６】
0006481487.tif 000007
【図７】
0006481487.tif 000008
【図８】
0006481487.tif 000009
【図９】
0006481487.tif 000010
【図１０】
0006481487.tif 000011
【図１１】
0006481487.tif 000012
【図１２】
0006481487.tif 000013
【図１３】
0006481487.tif 000014