(57)【要約】【課題】各国の言語に対応したキーボードのキー配列の影響を受けにくく、しかも情報の機密性を保持することが可能な情報処理システムおよび情報処理方法を提供する。【解決手段】上位装置２０と情報処理装置３０との間で情報の送受信を行う情報処理システム１０であって、情報処理装置３０と上位装置２０との間で情報の送受信を行う際にこの情報を暗号化する暗号化処理部２５１，３３０と、上位装置２０に配置され、情報処理装置３０において暗号化処理部３３０により暗号化されて送信された共通言語で表現された共通コードを仮想コードに変換する変換部２５２と、上位装置２０に配置され、変換部２５２で変換された仮想コードに基づく情報を出力する出力部２５４とを有する。【選択図】図２
2015069425.tif 000002
【特許請求の範囲】
【請求項１】
上位装置と情報処理装置との間で情報の送受信を行う情報処理システムであって、
前記情報処理装置と前記上位装置との間で情報の送受信を行う際に当該情報を暗号化する暗号化処理手段と、
前記上位装置に配置され、前記情報処理装置において前記暗号化処理手段により暗号化されて送信された共通言語で表現された共通コードを仮想コードに変換する変換手段と、
前記上位装置に配置され、前記変換手段で変換された仮想コードに基づく情報を出力する出力手段と
を有する情報処理システム。
【請求項２】
前記上位装置は、
前記情報処理装置に送信する情報を暗号化し、前記情報処理装置から受信する暗号化された情報を復号し、復号した情報を前記変換手段に出力する第１の暗号化処理手段を含み、
前記情報処理装置は、
前記上位装置に送信する情報を暗号化し、前記上位装置から受信する暗号化された情報を復号する第２の暗号化処理手段を含む
請求項１記載の情報処理システム。
【請求項３】
前記上位装置は、
第１のアプリケーションとしての前記変換手段と、
供給されるデータに対する読み取り処理を行う第２のアプリケーションとしての汎用処理手段と、を含み、
前記第１の暗号化処理手段は、
アプリケーションインターフェースを含み、指示に従って、当該アプリケーションインターフェースを、前記第１のアプリケーション用とするかまたは前記第２のアプリケーション用とするかを設定可能であり、
前記アプリケーションインターフェースが第１のアプリケーション用として設定されている場合には、復号した情報を前記変換手段に出力し、
前記アプリケーションインターフェースが第２のアプリケーション用として設定されている場合には、復号した情報を前記汎用処理手段に出力する
請求項２記載の情報処理システム。
【請求項４】
前記情報処理装置は、カードリーダであって、
カード状媒体のデータを読み取るヘッドと、
前記ヘッドで読み取られ、復調された復調データをデコードし、共通言語で表現されるコードであるＡＳＣＩＩコードの文字列のデータとして生成するデコード手段と、を含み、
前記第２の暗号化処理手段は、
前記ＡＳＣＩＩコードを暗号化して前記上位装置に送信する
請求項２または３記載の情報処理システム。
【請求項５】
上位装置と情報処理装置との間で情報の送受信を行う情報処理方法であって、
前記情報処理装置と前記上位装置との間で情報の送受信を行う際に当該情報を暗号化する暗号化処理ステップと、
前記情報処理装置において前記暗号化処理ステップにより共通言語で表現された共通コードを暗号化して前記上位装置に送信する送信ステップと、
前記上位装置側で、前記情報処理装置において前記暗号化処理手段により暗号化されて送信された共通言語で表現された共通コードを仮想コードに変換する変換ステップと、
前記変換ステップで変換された仮想コードに基づく情報を出力する出力ステップと
を有する情報処理方法。
【請求項６】
前記上位装置の処理として、
前記情報処理装置に送信する情報を暗号化し、前記情報処理装置から受信する暗号化された情報を復号し、復号した情報を前記変換ステップに供給する第１の暗号化処理ステップを含み、
前記情報処理装置の処理として、
前記上位装置に送信する情報を暗号化し、前記上位装置から受信する暗号化された情報を復号する第２の暗号化処理ステップを含む
請求項５記載の情報処理方法。
【請求項７】
前記上位装置の処理として、
第１のアプリケーションとしての前記変換ステップと、
供給されるデータに対する読み取り処理を行う第２のアプリケーションとしての汎用処理ステップと、を含み、
前記第１の暗号化処理ステップは、
指示に従って、アプリケーションインターフェースを、前記第１のアプリケーション用とするかまたは前記第２のアプリケーション用とするかを設定可能であり、
前記アプリケーションインターフェースが第１のアプリケーション用として設定されている場合には、復号した情報を前記変換ステップに供給し、
前記アプリケーションインターフェースが第２のアプリケーション用として設定されている場合には、復号した情報を前記汎用処理ステップに供給する
請求項６記載の情報処理方法。
【請求項８】
前記情報処理装置は、カードリーダであって、カードリーダの処理として、
カード状媒体のデータをヘッドで読み取り、復調された復調データをデコードし、共通言語で表現されるコードであるＡＳＣＩＩコードの文字列のデータとして生成するデコードステップ、を含み、
前記第２の暗号化処理ステップは、
前記ＡＳＣＩＩコードを暗号化して前記上位装置に送信し、
前記上位装置において、
前記第１の暗号化処理ステップは、
暗号化されているＡＳＣＩＩコードを復号し、復号したＡＳＣＩＩコードを所定のアプリケーションに供給する
請求項６または７記載の情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、上位装置とカードリーダやバーコードリーダ等の情報処理装置との間で情報の送受信を行う情報処理システムにおよび情報処理方法に関するものである。
【背景技術】
【０００２】
通常、カードリーダ等の情報処理装置（電子機器装置）は通信線を介して上位装置と接続され、上位装置からの指令に従って処理を実行するように構成されている。
このように、上位装置と情報処理装置（下位装置）との通信を確立するためには、一般的に、ＲＳ２３２Ｃ方式、パラレルポート方式、ＵＳＢ(Universal Serial Bus)接続方式など種々の通信方式が採用されている。
【０００３】
また、カードリーダやバーコードリーダ等の情報処理装置には、キーボード機能（『キーボード・インターフェース』と呼ばれる場合もある）を備えたものが知られている（たとえば特許文献１参照）。
すなわち、キーボードと同じ要領でＰ/Ｓ２規格や、ＵＳＢ規格に則り、スキャンコード（Ｕｓａｇｅ）を送り、読み取ったデータを上位装置側のアプリケーションで表示するという技術が使われているものがある。
【０００４】
一般に、キーボードの各キーは、スキャンコードと呼ばれる固有のＩＤを持っている。
キーコードは、キートップ表面に印刷された文字ではなく、キースイッチの位置に対して割り付けられている。
たとえば、“Ａ”と印字されたキートップのキーを押した場合でも、キーボードは“Ａ”のコードを発行しているわけではない。
キーボードは、キーを押した際、離した際にキーコードをＣＰＵ等のキーボードコントローラに送信する。
キーボードは、そのキー配置が国やキーボードの種類によって異なっており、キーボードにはいくつかのモデルがあるが、スイッチ数と形状が同じであれば、キートップの印刷内容は異なっても、同じ位置のキースイッチは同じスキャンコードを持っている。
キーボードコントローラでは、キーボードから受け取ったスキャンコードからキー入力を組み立て、キーコードを作成する。
そして、設定された国コードおよびキーボードタイプにより、どのスキャンコード（どこの位置のキー）を受け取った際に、どの文字（仮想キーコード）に変換するか決められている。
そのため、その変換テーブルを切り替えることで所望のキーボードになるように設定することができる。
【０００５】
特許文献１に記載の装置においては、キーボードコントローラを有するコンピュータにキーボードとバーコードリーダが接続されている。
キーボードコントローラは、キーボードの所定のキーが押されると、キーの押された位置を、スキャンコードの信号として上位装置側に通知する。
上位装置側では、受け取ったスキャンコードを仮想キーコードとしてオペレーティングシステム（ＯＳ）に通知する。
【０００６】
仮想キーコードは、ＯＳ独自のコードで定められており、ＯＳ内で共通に利用されるキーのコードである。ＯＳは、受け取った仮想キーコードを、起動している各アプリケーション（文書作成ソフトなど）に通知し、これを受けたアプリケーションは、文字を出力する。
【０００７】
また、キーボードコントローラは、バーコードリーダで読み取られたデータをキーボードデータとして上位装置に出力する。上位装置では、上記したキーボードで入力されたデータと同様の処理が行われる。
【０００８】
以上が、ＯＳ上におけるＰ/Ｓ２規格でのキーボード・インターフェースの基本的な構成および機能であるが、これ以外に、ＵＳＢ規格でのキーボード・インターフェースがある。
このＵＳＢ規格でのキーボードは、ヒューマン・インタフェース・デバイス (ＨＩＤ) クラスとして実装される。
この場合、スキャンコードに相当するものにＵｓａｇｅというもがあるが、基本的には、上述したＰ/Ｓ２規格でのキーボード・インターフェースと同様である。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開平７−３６５９４号公報
【特許文献２】特開２００６−２６８４２３号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、上述したキーボード・インターフェースでは、キーボードのキー配列は、米国（ＵＳ）では１０１/１０４英語キーボード、ヨーロッパでは１０２/１０５多国語（Multi Language）キーボード、日本では１０６/１０９日本語キーボードが主流である。
このように、キーに印字されている文字が違うため、前述したように、必ずしも、スキャンコード(またはＵｓａｇｅ)と文字は一致しているわけではない。
【００１１】
一方、近年、カードリーダで読み取られた情報を上位装置に送信する際、スキミングと呼ばれる不正行為により、カードに記録されている情報を読み取られる可能性があるため、セキュリティの強化への要望が高い。
そのため、カードリーダと上位装置との間で情報をやり取りする際に、情報を暗号化させる技術が提案されている（たとえば、特許文献２参照）。
【００１２】
しかしながら、特許文献２に示すカードリーダにおけるキーボード機能（キーボード・インターフェース）では、特許文献２の図３、４に示すように、各キーごとに情報を送信するため、キーごとに暗号化処理、復号化処理が実行される。
そのため、情報の送受信が煩雑となるという不利益がある。
【００１３】
本発明の目的は、たとえば各国の言語に対応したキーボードのキー配列の影響を受けにくく、しかも情報の機密性を保持することが可能な情報処理システムおよび情報処理方法を提供することにある。
【課題を解決するための手段】
【００１４】
本発明の第１の観点は、上位装置と情報処理装置との間で情報の送受信を行う情報処理システムであって、前記情報処理装置と前記上位装置との間で情報の送受信を行う際に当該情報を暗号化する暗号化処理手段と、前記上位装置に配置され、前記情報処理装置において前記暗号化処理手段により暗号化されて送信された共通言語で表現された共通コードを仮想コードに変換する変換手段と、前記上位装置に配置され、前記変換手段で変換された仮想コードに基づく情報を出力する出力手段と、を有する。
【００１５】
これにより、各国の言語に対応したキーボードのキー配列の影響を受けにくく、しかも情報の機密性を保持することが可能となる。
【００１６】
好適には、前記上位装置は、前記情報処理装置に送信する情報を暗号化し、前記情報処理装置から受信する暗号化された情報を復号し、復号した情報を前記変換手段に出力する第１の暗号化処理手段を含み、前記情報処理装置は、前記上位装置に送信する情報を暗号化し、前記上位装置から受信する暗号化された情報を復号する第２の暗号化処理手段を含む。
これにより、情報の高い機密性を保持することが可能となる。
【００１７】
好適には、前記上位装置は、第１のアプリケーションとしての前記変換手段と、供給されるデータに対する読み取り処理を行う第２のアプリケーションとしての汎用処理手段と、を含み、前記第１の暗号化処理手段は、アプリケーションインターフェースを含み、指示に従って、当該アプリケーションインターフェースを、前記第１のアプリケーション用とするかまたは前記第２のアプリケーション用とするかを設定可能であり、前記アプリケーションインターフェースが第１のアプリケーション用として設定されている場合には、復号した情報を前記変換手段に出力し、前記アプリケーションインターフェースが第２のアプリケーション用として設定されている場合には、復号した情報を前記汎用処理手段に出力する。
これにより、ＡＰＩを切り替えることで、ユーザの使い勝手に従って、キーボード機能として使用させる場合、汎用装置、たとえばカードリーダとして使用させる場合と簡単に行うことが可能となる。
【００１８】
好適には、前記情報処理装置は、カードリーダであって、カード状媒体のデータを読み取るヘッドと、前記ヘッドで読み取られ、復調された復調データをデコードし、共通言語で表現されるコードであるＡＳＣＩＩコードの文字列のデータとして生成するデコード手段と、を含み、前記第２の暗号化処理手段は、前記ＡＳＣＩＩコードを暗号化して前記上位装置に送信する。
これにより、ＡＳＣＩＩコードを用いてキーボード機能を実現することができ、汎用の第２のアプリケーションおよび変換用の第１のアプリケーションを格納しておけば、暗号化処理手段内のＡＰＩを切り替えることで、ユーザの使い勝手に従って、キーボード機能として使用させる場合、汎用のカードリーダとして使用させる場合と簡単に行うことが可能となる。
【００１９】
本発明の第２の観点は、上位装置と情報処理装置との間で情報の送受信を行う情報処理方法であって、前記情報処理装置と前記上位装置との間で情報の送受信を行う際に当該情報を暗号化する暗号化処理ステップと、前記情報処理装置において前記暗号化処理ステップにより共通言語で表現された共通コードを暗号化して前記上位装置に送信する送信ステップと、前記上位装置側で、前記情報処理装置において前記暗号化処理手段により暗号化されて送信された共通言語で表現された共通コードを仮想コードに変換する変換ステップと、前記変換ステップで変換された仮想コードに基づく情報を出力する出力ステップと、を有する。
【００２０】
これにより、各国の言語に対応したキーボードのキー配列の影響を受けにくく、しかも情報の機密性を保持することが可能となる。
【００２１】
好適には、前記上位装置の処理として、前記情報処理装置に送信する情報を暗号化し、前記情報処理装置から受信する暗号化された情報を復号し、復号した情報を前記変換手ステップに供給する第１の暗号化処理ステップを含み、前記情報処理装置の処理として、前記上位装置に送信する情報を暗号化し、前記上位装置から受信する暗号化された情報を復号する第２の暗号化処理ステップを含む。
これにより、情報の高い機密性を保持することが可能となる。
【００２２】
好適には、前記上位装置の処理として、第１のアプリケーションとしての前記変換ステップと、供給されるデータに対する読み取り処理を行う第２のアプリケーションとしての汎用処理ステップと、を含み、前記第１の暗号化処理ステップは、指示に従って、アプリケーションインターフェースを、前記第１のアプリケーション用とするかまたは前記第２のアプリケーション用とするかを設定可能であり、前記アプリケーションインターフェースが第１のアプリケーション用として設定されている場合には、復号した情報を前記変換ステップに供給し、前記アプリケーションインターフェースが第２のアプリケーション用として設定されている場合には、復号した情報を前記汎用処理ステップに供給する。
これにより、ＡＰＩを切り替えることで、ユーザの使い勝手に従って、キーボード機能として使用させる場合、汎用装置、たとえばカードリーダとして使用させる場合と簡単に行うことが可能となる。
【００２３】
好適には、前記情報処理装置は、カードリーダであって、カードリーダの処理として、カード状媒体のデータをヘッドで読み取り、復調された復調データをデコードし、共通言語で表現されるコードであるＡＳＣＩＩコードの文字列のデータとして生成するデコードステップを含み、前記第２の暗号化処理ステップは、前記ＡＳＣＩＩコードを暗号化して前記上位装置に送信し、前記上位装置において、前記第１の暗号化処理ステップは、暗号化されているＡＳＣＩＩコードを復号し、復号したＡＳＣＩＩコードを所定のアプリケーションに供給する。
これにより、ＡＳＣＩＩコードを用いてキーボード機能を実現することができ、汎用の第２のアプリケーションおよび変換用の第１のアプリケーションを格納しておけば、暗号化処理手段内のＡＰＩを切り替えることで、ユーザの使い勝手に従って、キーボード機能として使用させる場合、汎用のカードリーダとして使用させる場合と簡単に行うことが可能となる。
【発明の効果】
【００２４】
本発明によれば、各国の言語に対応したキーボードのキー配列の影響を受けにくく、しかも情報の機密性を保持することが可能となる。
【図面の簡単な説明】
【００２５】
【図１】本発明の実施形態に係る情報処理システムの概要を示す図である。
【図２】本発明の実施形態に係る情報処理システムの概要を示すブロック図である。
【図３】本実施形態に係る暗号化処理手段としての上位装置側の暗号処理ミドルウェア部およびカードリーダ側の暗号処理部の構成例を示すブロック図である。
【図４】本実施形態に係る暗号処理ミドルウェア部におけるＡＰＩ切り替え部の構成例を示す機能ブロック図である。
【図５】本実施形態において、キーボード機能として使用する場合の変換用常駐アプリケーションを説明するためのフローチャートである。
【図６】変換等常駐アプリケーションの変換処理を説明するためのフローチャートである。
【図７】本実施形態において、カードリーダとして機能させる場合の金融アプリケーションの処理を説明するためのフローチャートである。
【図８】本実施形態に係る情報処理システムの全体的な動作概要を説明するための図である。
【発明を実施するための形態】
【００２６】
以下、本発明の実施形態を図面に関連付けて説明する。
以下の実施形態においては、情報処理装置として磁気カード等のカードリーダを例に説明する。ただし、本発明はカードリーダに限らず、電子機器装置としてのバーコードリーダ等にも適用可能である。
【００２７】
図１は、本発明の実施形態に係る情報処理システムの概要を示す図である。
図２は、本発明の実施形態に係る情報処理システムの概要を示すブロック図である。
【００２８】
情報処理システム１０は、上位装置（ホスト装置）２０、情報処理装置としてのカードリーダ３０、キーボード装置４０、および情報カード（以下、単にカードという）５０を含んで構成されている。
なお、本実施形態において、キーボード装置４０が接続された構成として示しているが、キーボード装置４０が接続されていない構成も可能である。
【００２９】
本実施形態において、上位装置２０はパーソナルコンピュータ（ＰＣ）やＡＴＭ（Automated Teller Machine)、ＰＯＳ（Point of sale system）レジスタ端末等により構成される。
上位装置２０には、第１の通信部６０を通して情報処理装置としてのカードリーダ３０が接続され、第２の通信部７０を介してキーボード装置４０が接続されている。
【００３０】
第１の通信部６０としては、ＲＳ２３２ＣやＵＳＢなどの専用線（有線の通信線）を用いた通信システムが適用され、本実施形態ではＵＳＢ通信システムが適用されている。したがって、本実施形態では、上位装置２０とカードリーダ３０はＵＳＢケーブル６１により接続されている。
【００３１】
本実施形態において、第２の通信部７０としては、Ｐ/Ｓ２通信規格に従った通信システムが適用され、上位装置２０とキーボード装置４０は図示しないＰ/Ｓ２コネクタが接続されたケーブル７１により接続されている。
【００３２】
以下、情報処理システム１０の概要を説明した後、各部の具体的な構成および機能について説明する。
【００３３】
［情報処理システム１０の概要］
金融機関などで使用され、キャッシュレスや個人認証などを実現するカードとして、たとえばプラスチック基板にストライプ状に磁気データが記録された磁気カード、プラスチック基板内部に集積回路チップ（ＩＣチップ）が埋め込まれ、表面にＩＣ端子が配置されたＩＣカード（接触式ＩＣカード）や内部にアンテナコイルが配置されたＩＣカード（非接触式ＩＣカード）がある。
そして、このカード（磁気カードまたはＩＣカード）５０に対する情報の再生または記録は、情報処理装置としてのカードリーダ３０によって行われる。
【００３４】
基本的に、カードリーダ３０は、上位装置２０からのコマンドを受信し、カード５０との通信プロトコルに沿った形式に変換する。
そして、カードリーダ３０は、電圧や通信速度等も変換した後に、そのコマンドをカード５０に送信する。また、カードリーダ３０は、カード５０からの応答を受信した後、逆変換を行って、その応答を上位装置２０に送信する。
カードリーダ３０とカード５０との間の通信は、ＴＴＬレベル、ＵＳＢ通信等が一般的である。
【００３５】
本実施形態に示すカードリーダ３０を含む情報処理システム１０の構成では、上位装置２０が、文字入力アプリケーションの他に、金融等の汎用アプリケーション（第２のアプリケーション）と変換手段としての変換用常駐アプリケーション（第１のアプリケーション）を有している。
すなわち、本実施形態においては、たとえば、ＡＴＭに備えられたカードリーダ３０において、金融機関等で、磁気記録データと、金融データベースとの照合を行う場合には、金融アプリケーションを起動し、信号（情報）処理を行う。
一方、ＰＣのログインなど、キーボード機能（上述したキーボード・インターフェースと呼ばれる機能）として使用する場合は変換用常駐アプリケーションを起動し、信号（情報）処理を行う。
また、上位装置２０は、暗号化処理および復号処理手段としての暗号処理ミドルウェア部を有している。
【００３６】
本実施形態において、カードリーダ３０は、カード５０から読み取ったデータを復調し、復調データを共通言語で表現されたコード、本実施形態ではＡＳＣＩＩコードの文字列として生成し、生成したＡＳＣＩＩコードを、暗号キーを用いて暗号化し、この暗号化データを上位装置２０に第１の通信部６０を通して送信する。
上位装置２０は、ＵＳＢ通信システムであるＵＳＢコントローラ、ＵＳＢドライバ、さらにはＯＳを通して暗号化処理および復号処理手段としての暗号処理ミドルウェア部でカードリーダ３０により送信された暗号化データを復号し、復号したＡＳＣＩＩコード等のデータを、アプリケーションインターフェースの設定状態に応じて変換用常駐アプリケーションまたは汎用アプリケーションに供給する。
変換手段としての変換用常駐アプリケーションは、ＡＳＣＩＩコードを仮想キーコードに変換し、ＯＳを通して文字入力アプリケーションに供給する。
文字入力アプリケーションは、変換された仮想キーコードに基づく文字をディスプレイの画面上に出力する。
これにより、テキストエディタ等のアプリケーションにイベントメッセージとして配信等する。
【００３７】
また、キーボード装置４０のキーボードの所定のキーが押されると、キーボードコントローラによりキーの押された位置を、スキャンコードの信号として第２の通信部７０を通して上位装置２０側に通知する。
上位装置側２０では、受け取ったスキャンコードをキーボードコントローラ、キーボードドライバ、さらにはＯＳを通して仮想キーコードとして文字入力アプリケーションに供給する。文字入力アプリケーションは、変換された仮想キーコードに基づく文字をディスプレイの画面上に出力する。
【００３８】
このように、本実施形態では、磁気データの機密性を保持しつつ、キーボードから文字入力された場合と同様に、カード５０のデータを文字として出力することが可能に構成されている。
【００３９】
次に、上記構成を有する情報処理システム１０の上位装置（ホスト装置）２０、並びにカードリーダ（情報処理装置）３０の具体的な構成および機能について説明する。
【００４０】
［上位装置（ホスト装置）２０の具体的な構成および機能］
本実施形態に係る上位装置（ホスト装置）２０の具体的な構成および機能について説明する。
上位装置２０は、上述したように、基本的に、カードリーダ３０との間で、第１の通信部６０のＵＳＢ通信システムを通して通信制御を行い、コマンドの送信に対応したレスポンス（応答）を受信する等の各種情報の授受を行って、カードリーダ３０からの情報を取得する。
また、ここでの例では、上位装置２０は、キーボード装置４０との間で、第２の通信部７０であるＰ/Ｓ２通信システムを介してして通信制御を行い、コマンドの送信に対応したレスポンス（応答）を受信する等の各種情報の授受を行って、キーボード装置４０からのスキャンコードを受信する。
【００４１】
図２は、本実施形態に係る上位装置２０および情報処理装置であるカードリーダ３０、キーボード装置４０の構成例を概念的に示している。
図２の上位装置２０は、ハードウェアシステム２１０およびソフトウェアシステム２２０を含んで構成されている。
【００４２】
［ハードウェアシステム２１０の構成例］
図２の上位装置２０は、基本的に、処理装置であるＣＰＵ２１１、ＲＯＭ２１２、ＲＡＭ２１３、ＨＤＤ等のストレージユニット２１４、第１の通信部６０を構成するＵＳＢコントローラ２１５、第２の通信部７０を構成するキーボードコントローラ２１６、および入力文字等が表示されるディスプレイ２１７を有する。
そして、ＣＰＵ２１１、ＲＯＭ２１２、ＲＡＭ２１３、ストレージユニット２１４、コントローラ２１５、キーボードコントローラ２１６、およびディスプレイ２１７は、バス（ＢＵＳ）２１８により接続されている。
【００４３】
ＵＳＢコントローラ２１５は、ＵＳＢケーブル６１を介してカードリーダ３０のＵＳＢコントローラと接続されて、カードリーダ３０との間で、第１の通信部６０のＵＳＢ通信システムを通して通信制御を行い、コマンドの送信に対応したレスポンス（応答）を受信する等の各種情報の授受を行って、カードリーダ３０からの情報を取得する。
【００４４】
ＵＳＢ通信システムは、ホストである上位装置２０とデバイスであるカードリーダ３０間をシリアル通信で接続するものであって、たとえばプラグアンドプレイ機能（自動接続認識機能）、ホットプラグ機能（電源を入れたままでの抜き差しを可能にする機能）およびホストからデバイスへの電源供給機能など、ユーザの利便性を高める様々な機能を有している。
一般的に、ＵＳＢ通信で用いるＵＳＢケーブル６１は、５Ｖの電源ライン（Ｖ−ＢＵＳライン）、ＧＮＤ（グランド）ライン、およびデータ転送用のＤ＋及びＤ−の信号ラインから構成される合計４本の配線を有している。
そして、カードリーダ３０等のデバイス側では、Ｖ−ＢＵＳラインを通じて送信されるＶ−ＢＵＳ信号の常時監視を行っている。つまり、このＶ−ＢＵＳ信号の遷移状態を常時監視することで、ＵＳＢ通信の異常検出を行うこともできるようになっている。たとえば、Ｖ−ＢＵＳラインの上位装置が故意にダウンさせることのないシステムにおいては、ＵＳＢ通信中に何らかの理由でＵＳＢケーブルが外れた場合には、Ｖ−ＢＵＳ信号がオンからオフへと遷移し、その結果、デバイスはＵＳＢ通信の物理的な接続が破断したと認識し、ＵＳＢ通信の異常が検出されることもできる。
【００４５】
キーボードコントローラ２１６は、Ｐ/Ｓ２通信用ケーブル７１を介して入力装置としてのキーボード装置４０と接続されて、キーボード装置４０との間で、第２の通信部７０であるＰ/Ｓ２通信システムを介して通信制御を行い、コマンドの送信に対応したレスポンス（応答）を受信する等の各種情報の授受を行って、キーボード装置４０からのスキャンコードを受信する。
【００４６】
上位装置２０において、ＣＰＵ２１１が全体の制御を行う。
上位装置２０においては、ストレージユニット２１４内に保存されたＯＳ（オペレーティングシステム）、ドライバ、ミドルウェアＭＷ、アプリケーション等のプログラムがソフトウェアシステムの一部をなし、実行時にいわゆるコンピュータであるＣＰＵ２１１のソフトウェアとしてＲＡＭ２１３上に展開される。
ＣＰＵ２１１は、ＲＡＭ２１３にアクセスすることにより各種プログラムを起動する。
【００４７】
［ソフトウェアシステム２２０の構成および機能］
ソフトウェアシステム２２０は、ドライバ部（カーネルモード部）２３０、ＯＳ部２４０、およびミドルウェアおよびアプリケーション部（ユーザモード部）２５０を含んで構成されている。
【００４８】
ドライバ部２３０は、たとえばカーネルモードで動作するＵＳＢドライバ２３１およびキーボードドライバ２３２を含み、ＯＳ部２４０に応じた機能を有する。
【００４９】
ＵＳＢドライバ２３１は、ＵＳＢ通信システムに関するハードウェアであるＵＳＢコントローラ２１５を制御し、アプリケーションソフトウェアに対して抽象化したインターフェースを提供する。
ＵＳＢドライバ２３１は、ＵＳＢ通信システムを経由してカードリーダ３０と通信する機能を有し、プログラムからドライバ内のルーチンを呼び出すと、ＵＳＢドライバ２３１がコマンドを発行し、カードリーダ３０からデータが送り返されてくると、元の読み出したプログラム内のルーチンを読み出す等する。
【００５０】
キーボードドライバ２３２は、Ｐ/Ｓ２通信システムに関するハードウェアであるキーボードコントローラ２１６を制御し、アプリケーションソフトウェアに対して抽象化したインターフェースを提供する。
キーボードドライバ２３２は、Ｐ/Ｓ２通信システムを経由してキーボード装置４０と通信する機能を有し、プログラムからドライバ内のルーチンを呼び出すと、キーボードドライバ２３２がコマンドを発行し、キーボード装置４０からデータが送り返されてくると、元の読み出したプログラム内のルーチンを読み出す等する。
【００５１】
ＯＳ部２４０は、ＵＳＢドライバ２３１およびキーボードドライバ２３２において抽象化したインターフェースをアプリケーションソフトウェアに対して提供する。
ＯＳ２４１の中で、ハードウェアを直接管理操作するなどの最も中心的な機能の部分を、特にカーネルと呼んで分けることもある。この場合、カーネル以外の部分はユーザランドと呼ばれる。
本実施形態では、ドライバ部２３０がカーネル領域であり、ミドルウェアおよびアプリケーション部（ユーザモード部）２５０がユーザランド領域として形成されている。
【００５２】
ミドルウェアおよびアプリケーション部（ユーザモード部）２５０は、第１の暗号化処理手段としての暗号処理ミドルウェア部２５１、第１のアプリケーションとしての変換用常駐アプリケーション２５２、第２のアプリケーションとしての金融等の汎用アプリケーション２５３、および文字入力アプリケーション２５４を含んで構成されている。
なお、汎用アプリケーション２５３は、汎用処理手段として機能する。
【００５３】
暗号処理ミドルウェア部２５１は、第１の暗号化処理手段として機能し、第１の通信部６０を構成するＵＳＢ通信システムを通してカードリーダ３０とのデータの送受信にためのデータの送受信機能、並びに暗号化および復号化処理機能を有している。
【００５４】
本実施形態において、情報処理装置としてのカードリーダ３０またはホストコンピュータとしての上位装置２０では、上位装置２０またはカードリーダ３０とデータのやり取りを行うとき、その過程で秘密情報が漏れても問題を発生させないために、やり取りするデータには暗号化したデータを用いる。
この暗号化の方法として、現在最も多く用いられているのはＤＥＳ（Data Encryption Standard）である。ＤＥＳでは、データの暗号化にはカードリーダ３０側と上位装置２０側が同じ鍵を用い、データの送信側であるカードリーダ３０または上位装置２０はデータをその鍵で暗号化して送信し、データの受信側である上位装置２０またはカードリーダ３０は同じ鍵で復号してデータ取り出す。
【００５５】
本実施形態においては、暗号化に用いる暗号キーＫＹは、暗号処理ミドルウェア部２５１で暗号化してカードリーダ３０にＵＳＢ通信システムを通して送信する。
カードリーダ３０側では、受信した暗号化された暗号キーＫＹを復号化して、復号化した暗号キーを用いカード５０から読み取ったデータを暗号化し、ＵＳＢ通信システムを通して上位装置２０に送信する。
【００５６】
また、暗号処理ミドルウェア部２５１は、カードリーダ３０側でカード５０がスワイプされた否かを確認するため、状態通知コマンドを発信する。
【００５７】
図３は、本実施形態に係る暗号化処理手段としての上位装置側の暗号処理ミドルウェア部およびカードリーダ側の暗号処理部の構成例を示すブロック図である。
図３の暗号処理ミドルウェア部２５１は、その暗号化および復号化機能部として、暗号部２５１１および復号部２５１２を含んで構成されている。
暗号部２５１１は、暗号化に用いる暗号キーＫＹを暗号化し、ＵＳＢドライバ２３１、ＵＳＢコントローラ２１５を介してカードリーダ３０に送信する。
復号部２５１２は、カードリーダ３０側で暗号化されたＡＳＣＩＩコードの文字列データとして生成された磁気データを復号する。
【００５８】
本実施形態において、暗号処理ミドルウェア部２５１は暗号化するための暗号キーをカードリーダ３０に送り、カードリーダ３０はこの暗号キーを使用して、ＡＳＣＩＩコードの文字列で生成された磁気データを暗号化する。
暗号処理ミドルウェア部２５１は、この暗号化されたデータを受け取り、ＡＳＣＩＩ文字列に復号する。
【００５９】
本実施形態に示すミドルウェアおよびアプリケーション部２５０におけるカードリーダ系の構成では、図２に示すように、第２のアプリケーションとしての汎用アプリケーション（一例として金融アプリケーション）２５３と第１のアプリケーションとしての変換用常駐アプリケーション２５２を備えている。
暗号処理ミドルウェア部２５１は、たとえば、ＡＴＭに備えられたカードリーダにおいて、金融機関等で、磁気記録データと、金融データベースとの照合を行う場合には、金融アプリケーション２５３を起動し、信号（情報）処理を行わせる。
一方、暗号処理ミドルウェア部２５１は、ＰＣのログインなど、キーボード機能（上述したキーボード・インターフェースと呼ばれる機能）として使用する場合は変換用常駐アプリケーション２５２を起動し、信号（情報）処理を行わせる。
【００６０】
より具体的な使用例について述べる。
金融アプリケーション２５３は、ＡＴＭ端末にインストールされているＷｉｎｄｏｗｓ（登録商標） ＯＳなどで起動させる。
ＡＴＭの電源スイッチをＯＮにした際、ＢＩＯＳ、ＯＳの順に立ち上がる。ＯＳ起動後、金融アプリケーション２５３が自動的に起動するよう、Ｗｉｎｄｏｗｓ（登録商標）でいう「スタートアップ」プログラムとして登録しておくことが一般的である。
こうすることにより、銀行員が金融アプリケーション２５３を立ち上げにいく必要なく、ＡＴＭの電源を入れるだけで金融アプリケーション２５３の待ちうけ画面（顧客待機画面）まで起動する。
【００６１】
一方、キーボード機能などは、ＡＴＭで使用することはない。
ＰＯＳ端末や、ＰＣのログインなどに使われる。
この場合、変換用常駐アプリケーション２５２をＷｉｎｄｏｗｓ（登録商標）でいう「サービス」プログラムとして起動する。
具体的には、「サービス」を有効にするよう、あらかじめＯＳ２４１に設定しておき、ＯＳ起動と同時に、この変換用常駐アプリケーション２５２が起動するようにしておく。
これにより、他のキーボードと同様、ユーザが何か操作をすることなく、データをＯＳ２４１に通知することができる。
【００６２】
上記した動作を実現するために、本実施形態では、暗号処理ミドルウェア部２５１内にＡＰＩ（Application Programming Interface）を、キーボード機能用ＡＰＩまたは汎用カードリーダ使用のＡＰＩとして切り替える機能を備えている。
本実施形態では、予め、ユーザの要求により、切り替えておくことで対応している。
【００６３】
図４は、本実施形態に係る暗号処理ミドルウェア部におけるＡＰＩ切り替え部の構成例を示す機能ブロック図である。
【００６４】
図４の暗号処理ミドルウェア部２５１は、切替制御部２５１３、およびＡＰＩ２５１４を含んで構成されている。
切替制御部２５１３は、ユーザの要求に応じた指示信号ＳＩを受けて、信号Ｓ２５１３によりＡＰＩ２５１４をキーボード機能用ＡＰＩまたは汎用カードリーダ使用のＡＰＩとして切り替えるように制御する。
【００６５】
すなわち、暗号処理ミドルウェア部２５１は、ＡＰＩを、第１のアプリケーションである変換用常駐アプリケーション用とするかまたは第２のアプリケーションである汎用アプリケーション用とするかを設定可能である。
暗号処理ミドルウェア部２５１は、ＡＰＩが第１のアプリケーション用として設定されている場合には、復号した情報を変換用常駐アプリケーション２５２に出力し、ＡＰＩが第２のアプリケーション用として設定されている場合には、復号した情報を汎用アプリケーション２５３に出力する。
【００６６】
変換手段としての変換用常駐アプリケーション２５２は、暗号処理ミドルウェア部２５１によるＡＳＣＩＩコードを仮想キーコードに変換し、ＯＳ２４１を通して文字入力アプリケーション２５４に供給する。
文字入力アプリケーション２５４は、変換された仮想キーコードに基づく文字をディスプレイ２１７の画面上に出力する。
【００６７】
ここで、キーボード機能として使用する場合の動作を変換用常駐アプリケーション２５２の実行処理を中心に、図５および図６に関連付けて説明する。
図５は、本実施形態において、キーボード機能として使用する場合の変換用常駐アプリケーションの処理を説明するためのフローチャートである。
図６は、変換等常駐アプリケーションの変換処理を説明するためのフローチャートである。
【００６８】
（キーボード機能として使用する場合）
変換用常駐アプリケーション２５２は、ＯＳ起動後、直ちに起動する。
変換用常駐アプリケーション２５２の処理は、図５に示すように、まず、暗号処理ミドルウェア部２５１とリンクさせる（ステップＳＴ１）。
その後、このミドルウェアに実装させているＲｅａｄ（磁気データ読み取り用ＡＰＩ）を実行し、戻り値が返されるまで待機する（ステップＳＴ２）。
この戻り値は、カード５０がスワイプされ、磁気データを取得したタイミングで、磁気データはＡＳＣＩＩコードの文字列として返される。
変換用常駐アプリケーション２５２は、読み取り結果を確認し（ステップＳＴ３）、成功すれば読み取ったトラック情報（ＪＩＳＩＩラックデータ、ＩＳＯ１トラックデータ、ＩＳＯ２トラックデータ）を意味するＡＳＣＩＩコードとしてバッファに保管、また、これに続きと受け取った磁気データを、ＡＳＣＩＩコードとして保管する（ステップＳＴ５）。失敗していれば、このエラー情報をＡＳＣＩＩコードの文字列で作成し（ステップＳＴ４）、バッファへ保管する（ステップＳＴ５）。
その後、変換用常駐アプリケーション２５２は、保管されたバッファから一文字毎ＡＳＣＩＩコードを取り出し、仮想キーコードに変換し、イベントとして、各アプリケーションに通知（送信）する（ステップＳＴ６）。
【００６９】
このＡＳＣＩＩコードを仮想キーコードに変換する変換処理を図６に関連付けて説明する。
変換用常駐アプリケーション２５２は、まず、ＡＳＣＩＩデータ保存バッファの先頭１文字を取り出し、バッファから取り出した文字を削除する（ステップＳＴ６１）。
ここで、ＡＳＣＩＩ文字があるか否かを判別し（ステップＳＴ６２）、ある場合には、このＡＳＣＩＩコードから、仮想キーコードと、シフト状態を取得する（ステップＳＴ６３）。
たとえば、大文字の“Ａ”は、シフトキーを押しながら仮想キーコード“Ａ”を押すことで、画面に出力される。
また、たとえば“＆”文字を出力させるためには、１０１/１０４英語キーボードではシフトキーと仮想キーコード“７”、１０６/１０９日本語キーボードではシフトキーと仮想キーコード“６”を押すという違いがある。
変換の具体的な方法は、上記のような、指定されたＡＳＣＩＩコードから、どの仮想キーコードを押す必要があるかと、シフトを押す必要があるかという情報をＯＳ２４１に問い合わせる（ステップＳＴ６４）。
ＯＳ２４１に問い合わせることにより、今、ＯＳ２４１に設定されているキーボード言語により、最適な仮想キーコードと、シフト状態を取得することができる。
【００７０】
シフト状態が取得できたら、まず、必要な場合は、仮想キーコードの“Ｓｈｉｆｔ”をＫｅｙ Ｄｏｗｎイベントとして送信する（ステップＳＴ６５）。
その後、取得した仮想キーコードをＫｅｙ Ｄｏｗｎ イベントとして送信する（ステップＳＴ６６）。
また、次のステップとして、 “Ｓｈｉｆｔ” をＫｅｙ Ｕｐイベントとして送信し、仮想キーコードをＫｅｙ Ｕｐ イベントとして送信する（ステップＳＴ６７）。
もし、シフトが不要な場合は（ステップＳＴ６８）、“Ｓｈｉｆｔ”のＫｅｙ Ｄｏｗｎ、またはＫｅｙ ＵＰイベントは送信しない。
シフトが必要な場合（ステップＳＴ６８）、“Ｓｈｉｆｔ” をＫｅｙ Ｕｐイベントとして送信し（ステップＳＴ６９）、ステップＳＴ６１の処理に戻り、このＡＳＣＩＩ文字の変換、イベント送信処理をバッファが空になるまで繰り返し、終了する。
【００７１】
ここで言うイベント送信は、実際には、ＯＳ２４１にイベント送信を依頼するものであり、依頼されたＯＳは、このイベントを各アプリケーションに通知する。
【００７２】
次に、カードリーダとして機能させる場合の動作を金融（汎用）アプリケーション２５３の実行処理を中心に、図７に関連付けて説明する。
図７は、本実施形態において、カードリーダとして機能させる場合の金融アプリケーションの処理を説明するためのフローチャートである。
【００７３】
（カードリーダとして機能させる場合）
本実形態においては、金融機関（ＡＴＭに搭載されて）で使用される場合に、金融アプリケーション２５３で使用する例を図７に示している。
図５と同様、まず、暗号処理ミドルウェア部２５１とリンクさせる（ステップＳＴ２１）
その後、この暗号処理ミドルウェア部２５１に実装させているＲｅａｄ（磁気データ読み取り用ＡＰＩ）を実行し、戻り値が返されるまで待機する（ステップＳＴ２２）。
その後、受け取ったＡＳＣＩＩデータの文字列を、金融データベースと照合し（ステップＳＴ２３）、磁気データの読み取り処理を終了する。
【００７４】
また、キーボード装置４０のキーボードの所定のキーが押されると、キーボードコントローラによりキーの押された位置が、スキャンコードの信号として第２の通信部７０を通して上位装置２０側に通知される。
上位装置側２０では、受け取ったスキャンコードをキーボードコントローラ２１６、キーボードドライバ２３２、さらにはＯＳ２４１を通して仮想キーコードとして文字入力アプリケーション２５４に供給する。
文字入力アプリケーション２５４は、変換された仮想キーコードに基づく文字をディスプレイ２１７の画面上に出力する。
【００７５】
以上、上位装置２０の構成および機能について具体的に説明した。
次に、カードリーダ３０の構成および機能について説明する。
【００７６】
［カードリーダ３０の構成および機能］
カードリーダ３０は、上位装置２０との通信およびカード５０との通信機能を有する。カードリーダ３０は、上述したように、上位装置２０とのメイン（通常）の通信はＵＳＢ通信規格に準拠して行う。
【００７７】
図２は、本実施形態に係る情報処理装置であるカードリーダ３０、キーボード装置４０、および上位装置の構成例を概念的に示している。
【００７８】
カードリーダ３０は、ハードウェアの基本的な構成として、カードリーダ３０全体を統合的に制御するＣＰＵ３１、カードリーダ３０の動作プログラムや初期値、パラメータなどを格納するＲＯＭ３２、およびＣＰＵ３１のワーキングエリアとして機能するＲＡＭ３３を有している。
そして、カードリーダ３０は、磁気ヘッド３１０、デコード部３２０、第２の暗号化処理手段としての暗号処理部３３０、およびＵＳＢ通信システムを構成するＵＳＢコントローラ３４０を主構成要素として有している。
【００７９】
磁気ヘッド３１０は、たとえばスワイプされたカード５０の磁気ストライプｍｐに、Ｆ２Ｆ変調方式等により記録された磁気データをアナログ信号として読み取る。
磁気ヘッド３１０で読み取られた磁気データは、図示しない増幅器で増幅され、アナログデジタル変換器等を通してデジタル化されるとともに復調され、デコード部３２０に供給される。
【００８０】
デコード部３２０は、ファームウェアＦＷの一部として構成され、デジタル化された復調データを各種フォーマットにデコードし、各トラックを共通言語で表現されるコードの一例であるＡＳＣＩＩコードの文字列のデータとして生成し、暗号処理部３３０に出力する。
【００８１】
暗号処理部３３０は、上位装置２０の暗号処理ミドルウェア部２５１と同様に暗号化処理手段の一部である第２の暗号処理化手段として機能し、第１の通信部６０を構成するＵＳＢ通信システムを通してカードリーダ３０とのデータの送受信にためのデータの送受信機能、並びに暗号化および復号化処理機能を有している。
【００８２】
前述したように、本実施形態において、情報処理装置としてのカードリーダ３０またはホストコンピュータとしての上位装置２０では、上位装置２０またはカードリーダ３０とデータのやり取りを行うとき、その過程で秘密情報が漏れても問題を発生させないために、やり取りするデータには暗号化したデータを用いる。
【００８３】
本実施形態において、暗号処理部３３０は、暗号化に用いる暗号キーＫＹは、上位装置２０側の暗号処理ミドルウェア部２５１で暗号化された、暗号化に用いる暗号キーＫＹを復号し、復号した暗号キーを用いカード５０から読み取ったデータを暗号化し、ＵＳＢ通信システムを通して上位装置２０に送信する。
【００８４】
また、暗号処理部３３０を含むファームウェア部ＦＷは、上位装置２０の暗号処理ミドルウェア部２５１から送信される状態通知コマンドに対し、磁気データを保持していることを示す情報をレスポンスデータとして返信する機能を有する。
【００８５】
図３は、本実施形態に係る暗号化処理手段としての上位装置側の暗号処理ミドルウェア部およびカードリーダ側の暗号処理部の構成例を示している。
図３の暗号処理部３３０は、その暗号化および復号化機能部として、復号部３３１および暗号部３３２を含んで構成されている。
復号部３３１は、ＵＳＢコントローラ３４０を通して受信した、暗号処理ミドルウェア部２５１で暗号化された暗号キーＫＹを復号する。
暗号部３３２は、復号された暗号化に用いる暗号キーＫＹを用いて、ＡＳＣＩＩの文字列で生成された磁気データを暗号化し、ＵＳＢコントローラ３４０を介して上位装置２０に送信する。
【００８６】
このように、本実施形態において、カードリーダ３０は、カード５０から読み取ったデータを復調し、復調データを共通言語で表現されたコード、本実施形態ではＡＳＣＩＩコードに変換し、変換したＡＳＣＩＩコードを、暗号キーＫＹを用いて暗号化し、この暗号化した磁気データを上位装置２０に第１の通信部６０を通して送信する。
【００８７】
［キーボード装置４０の構成］
キーボード装置４０は、キーボード４１０およびキーボードコントローラ４２０を含んで構成されている。
キーボード装置４０は、そのキーの配置が国やキーボード４１０の種類によって異なっており、キーボードにはいくつかのモデルがあるが、スイッチ数と形状が同じであれば、キートップの印刷内容は異なっても、同じ位置のキースイッチは同じスキャンコードを持っている。
キーボード４１０としては、たとえば前述したような１０１/１０４英語キーボードや１０６/１０９日本語キーボード等がある。
キーボードコントローラ４２０では、キーボード４１０から受け取ったスキャンコードからキー入力を組み立て、キーコードを作成する。
そして、設定された国コードおよびキーボードタイプにより、どのスキャンコード（どこの位置のキー）を受け取った際に、どの文字（仮想キーコード）に変換するか決められている。
そのため、その変換テーブルを切り替えることで所望のキーボードになるように設定することができる。
【００８８】
キーボード装置４０は、キーボード４１０の所定のキーが押されると、キーボードコントローラ４２０によりキーの押された位置を、スキャンコードの信号として第２の通信部７０を通して上位装置２０側に通知する。
キーボード装置４０は、上位装置２０が起動すると、キーボードコントローラ４２０が、上位装置２０のＯＳとの間でコマンド、レスポンスのやり取りにて初期設定を行う。この処理により、キーボード装置４０において、ユーザがキーボード４１０のキーを押したときに、上位装置２０までスキャンコードが伝わるようになる。
【００８９】
［全体の動作］
次に、上記構成による情報処理システムの全体的な動作の概要を説明する。
図８は、本実施形態に係る情報処理システムの全体的な動作概要を説明するための図である。
ここでは、上位装置２０と情報処理装置としてのカードリーダ間の処理を図８に関連付けて説明し、その後、ＯＳ上におけるＰ/Ｓ２規格でのキーボード装置４０の基本動作について説明する。
【００９０】
まず、上位装置２０が起動状態で、ユーザによりキーボード機能とするかカードリーダ機能とするかの指示が行われる。
これに伴い、上位装置２０の暗号処理ミドルウェア部２５１における切替制御部２５１３に対してユーザの要求に応じた指示信号ＳＩが入力され、切替制御部２５１３はで信号Ｓ２５１３に応じてＲｅａｄ等のＡＰＩ２５１４をキーボード機能用ＡＰＩまたは汎用カードリーダ使用のＡＰＩとして切り替えるように制御する。これにより、上位装置２０は、キーボード機能またはカードリーダ機能に設定される（ステップＳＴ１０１）。
【００９１】
暗号処理ミドルウェア部２５１は、カードリーダ３０側でカード５０がスワイプされたかどうかを確認するため、常時、状態通知コマンドを発信する（ステップＳＴ１０２）。
カードリーダ３０は、カードがスワイプされると（ステップＳＴ１０３）、磁気ヘッド３１０により磁気データが読み取られる（ステップＳＴ１０４）。
カードリーダ３０は、読み取った磁気データをデジタル化するとともに復調する。カードリーダ３０のファームウェアＦＷはこのデジタル化された復調データを各種フォーマットにデコードし、各トラックをＡＳＣＩＩコードの文字列データとして生成する（ＳＴ１０５）。
また、カードリーダ３０は、暗号処理ミドルウェア部２５１から送信される状態通知コマンドに対し、磁気データを保持していることを示す情報をレスポンスデータとして上位装置２０に返信する（ステップＳＴ１０６）。
【００９２】
上位装置２０においては、カードリーダ側で磁気データを保持しているものとして、暗号化のための暗号キーＫＹを暗号化してカードリーダ３０に送信する（ステップＳＴ１０７）。
カードリーダ３０は、暗号化された暗号キーを復号し、復号した暗号キーを用いて暗号化し、この暗号化データを上位装置２０に第１の通信部６０を通して送信する（ステップＳＴ１０８）。
【００９３】
上位装置２０は、暗号処理ミドルウェア部２５１でカードリーダ３０により送信された暗号化データを、暗号キーを用いて復号する（ステップＳＴ１０９）。
ここで、ステップＳＴ１０１で設定された機能がキーボード機能である場合には（ステップＳＴ１１０）、変換手段としての変換用常駐アプリケーションが、ＡＳＣＩＩコードを仮想キーコードに変換し（ステップＳＴ１１１）、ＯＳを通して文字入力アプリケーション２５４に供給する。
文字入力アプリケーション２５４は、変換された仮想キーコードに基づく文字をディスプレイ２１７の画面上に出力する（ステップＳＴ１１２）。
【００９４】
ステップＳＴ１０１で設定された機能がカードリーダ機能である場合には（ステップＳＴ１１０）、汎用アプリケーション２５３が受け取ったＡＳＣＩＩデータの文字列を、金融データベースと照合し、磁気データの読み取り処理を終了する（ステップＳＴ１１３）。
【００９５】
最後に、ＯＳ上におけるＰ/Ｓ２規格でのキーボード装置４０の基本動作について説明する。
キーボード装置４０は、キーボード４１０の所定のキーが押されると、キーボードコントローラ４２０によりキーの押された位置を、スキャンコードの信号として第２の通信部７０を通して上位装置２０側に通知する。
上位装置側２０では、受け取ったスキャンコードをキーボードコントローラ２１６、キーボードドライバ２３２、さらにはＯＳ２４１を通して仮想キーコードとして文字入力アプリケーション２５４に供給する。文字入力アプリケーション２５４は、変換された仮想キーコードに基づく文字をディスプレイ２１７の画面上に出力する。
これにより、テキストエディタ等のアプリケーションにイベントメッセージとして配信等することができる。
【００９６】
より具体的には、まず、上位装置２０が起動すると、接続されているキーボード装置４０に対し、コマンド、レスポンスのやり取りにて初期設定を行われる。この処理は、主に、上位装置のＯＳと、キーボード装置４０に内蔵されているキーボードコントローラ４２０にて行われる。
これにより、ユーザがキーボード４１０のキーを押したときに、上位装置２０までスキャンコードが伝わるようになる。
ユーザによってキーボード４１０のキーが押されると、電気信号としてキーボードコントローラ４２０に伝わる。
キーボードコントローラ４２０は、キーの押された場所を、スキャンコードとしての信号にて、上位装置２０のキーボードコントローラ２１６を介してＣＰＵ２１１に通知する。
上位装置２０のキーボードドライバ２３２は、ＣＰＵ２１１で受け取ったスキャンコードを仮想キーコードとして、ＯＳ２４１に通知する。
仮想キーコードは、ＯＳ独自のコードで定められており、ＯＳ内で共通に利用されるキーのコードである。ＯＳ２４１は、受け取った仮想キーコードを、起動している各アプリケーション（文書作成ソフトなど）に通知し、これを受けた文字入力アプリケーション２５４は、文字をディスプレイ２１７等に出力する。
【００９７】
［実施形態の効果］
本実施形態において、情報処理システム１０は、上位装置２０と情報処理装置３０との間で情報の送受信を行う情報処理システム１０であって、情報処理装置３０と上位装置２０との間で情報の送受信を行う際にこの情報を暗号化する暗号化処理部２５１，３３０と、上位装置２０に配置され、情報処理装置３０において暗号化処理部３３０により暗号化されて送信された共通言語で表現された共通コード（ＡＳＣＩＩコード）を仮想キーコードに変換する変換用常駐アプリケーション２５２と、上位装置２０に配置され、変換用常駐アプリケーション２５２で変換された仮想コードに基づく情報を出力する出力部としての文字入力アプリケーション２５４と、を有する。
また、情報処理システム１０において、上位装置２０は、情報処理装置であるカードリーダ３０に送信する情報を暗号化し、カードリーダ３０から受信する暗号化された情報を復号する第１の暗号化処理手段としての暗号処理ミドルウェア部２５１を含む。
また、情報処理装置としてのカードリーダ３０は、上位装置２０に送信する情報を暗号化し、上位装置２０から受信する暗号化された情報を復号する第２の暗号化処理手段としての暗号処理部３３０を含む。
また、上位装置２０において、暗号処理ミドルウェア部２５１はＡＰＩ（アプリケーションインターフェース）を、第１のアプリケーションである変換用常駐アプリケーション用とするかまたは第２のアプリケーションである汎用アプリケーション用とするかを設定可能である。ＡＰＩが第１のアプリケーション用として設定されている場合には、復号した情報を変換用常駐アプリケーション２５２に出力し、ＡＰＩが第２のアプリケーション用として設定されている場合には、復号した情報を汎用アプリケーション２５３に出力する。
そして、情報処理装置としてカードリーダ３０は、カード５０のデータを読み取るヘッド３１０と、ヘッドで読み取られ、復調された復調データを各種フォーマットにデコードし、各トラックを共通言語で表現されるコードであるＡＳＣＩＩコードの文字列のデータとして生成するデコード部３２０と、を含み、暗号処理部３３０は、ＡＳＣＩＩコードを暗号化して上位装置２０に送信する。
これに対応して、上位装置２０において、暗号処理ミドルウェア部２５１は、暗号化されているＡＳＣＩＩコードを復号し、復号したＡＳＣＩＩコードを設定されているアプリケーションに供給する。
【００９８】
したがって、本実施形態によれば、以下の効果を得ることができる。
各国の言語に対応したキーボードのキー配列の影響を受けにくく、しかも情報の機密性を保持することが可能となるカードリーダを提供することができる。
また、ＡＰＩを切り替えることで、ユーザの使い勝手に従って、キーボード機能として使用させる場合、汎用装置、たとえばカードリーダとして使用させる場合と簡単に行うことが可能となる。
【００９９】
なお、本実施形態では、キーボード機能として使用するカードリーダであっても、汎用のカードリーダとしても使用することが可能となっている。
すなわち、従来、キーボード・インターフェースとして実装されているものではない、汎用的なカードリーダを接続した場合には、使用するコードがスキャンコードとＡＳＣＩＩコードと異なっているため、それを処理するアプリケーションが異なるので使用することができない。したがって、カードリーダのアプリケーションを大幅に変更する必要があり。また、この技術では、キーボードとしての用途でしか使えず、カードリーダが読み取ったデータを、（汎用のカードリーダとして使用する）金融のデータベースで情報の照合を行うような、アプリケーションでは利用できない。
これに対し、本実施形態では、ＡＳＣＩＩコードを用いてキーボード機能を実現したことから、図２に示すように、汎用アプリケーション２５３および変換用常駐アプリケーション２５２を格納しておけば、暗号処理ミドルウェア部２５１内のＡＰＩを切り替えることで、ユーザの使い勝手に従って、キーボード機能として使用させる場合、汎用のカードリーダとして使用させる場合と簡単に行うことが可能となっている。
【０１００】
［他の実施形態］
本実施形態では、上位装置と情報処理装置とを接続する第１の通信部をＵＳＢ接続としたが、ＲＳ−２３２Ｃ接続やＬＡＮ等、通信の形態は問わない。
また、表示するアプリケーションとしてテキストエディタを一例として示したが、ログイン画面のＩＤやパスワード入力であっても使用することができる。
また、本実施形態では、スワイプ式のカードリーダを例に説明したが、ディップ式やモータ式など、カードの搬送方法に制限されることはない。
また、本実施形態では、情報処理装置をカードリーダとして説明したが、バーコードスキャナやその他の入力装置においても適用することが可能である。
【０１０１】
なお、以上詳細に説明した方法は、上記手順に応じたプログラムとして形成し、ＣＰＵ等のコンピュータで実行するように構成することも可能である。
また、このようなプログラムは、半導体メモリ、磁気ディスク、光ディスク、フロッピー（登録商標）ディスク等の記録媒体、この記録媒体をセットしたコンピュータによりアクセスし上記プログラムを実行するように構成可能である。
【符号の説明】
【０１０２】
１０・・・情報処理システムは、２０・・・上位装置（ホスト装置）、２１０・・・ハードウェアシステム、２１１・・・ＣＰＵ、２１２・・・ＲＯＭ、２１３・・・ＲＡＭ、２１４・・・ストレージユニット、２１５・・・ＵＳＢコントローラ、２１６・・・キーボードコントローラ、２１７・・・ディスプレイ、２１８・・・バス（ＢＵＳ）、
２２０・・・ソフトウェアシステム、２３０・・・ドライバ部（カーネルモード部）、２３１・・・ＵＳＢドライバ、２３２・・・キーボードドライバ、２４０・・・ＯＳ部、２４１・・・ＯＳ，２５０・・・ミドルウェアおよびアプリケーション部（ユーザモード部）、２５１・・・暗号処理ミドルウェア部（第１の暗号化処理手段）、２５２・・・変換用常駐アプリケーション（第１のアプリケーション）、２５３・・・汎用アプリケーション（第２のアプリケーション）、２５４・・・文字入力アプリケーション、３０・・・カードリーダ、３１・・・ＣＰＵ、３２・・・ＲＯＭ、３３・・・ＲＡＭ、３３１０・・・磁気ヘッド、３２０・・・デコード部、３３０・・・暗号処理部（第２の暗号化処理手段）、３４０・・・ＵＳＢコントローラ、４０・・・キーボード装置、４１０・・・キーボード、４２０・・・キーボードコントローラ、５０・・・カード、６０・・・第１の通信部、７０・・・第２の通信部。
【図１】
2015069425.tif 000003
【図２】
2015069425.tif 000004
【図３】
2015069425.tif 000005
【図４】
2015069425.tif 000006
【図５】
2015069425.tif 000007
【図６】
2015069425.tif 000008
【図７】
2015069425.tif 000009
【図８】
2015069425.tif 000010