(57)【要約】【課題】第１計算装置が第２計算装置と安全な通信を約束しているときに、キーボードから第１計算装置へ送信された全ての情報を保護すること。【解決手段】再構成可能で安全な入力装置（ＲＳＩＤ）は、暗号化鍵と少なくとも一つの変換命令とを受信する。ＲＳＩＤは、暗号化鍵をメモリセクション内に記憶する。ＲＳＩＤは、少なくとも一つの変換命令を第２メモリセクション内に記憶する。ＲＳＩＤプロセッサは、少なくとも一つの変換命令を利用して、複数の変換済み符号を作る。複数の変換済み符号は、可能性のある複数の入力装置の入力の各々に対応する複数の値と共に、変換済み参照表内に記憶される。ＲＳＩＤプロセッサは、実際の入力装置の入力を、可能性のある複数のキーボードの入力の一つと照合して一致する値を作る。ＲＳＩＤプロセッサは、一致する変換済み符号を変換済み参照表から一致する値に出力する。【選択図】図４
2004240434.tif 000002
【特許請求の範囲】
【請求項１】
再構成可能で安全な入力装置（ＲＳＩＤ）において、
入力を送信するための実際の入力装置と、
変換命令を受信し、かつ、複数の符号を利用して、前記変換命令に基づいて複数の変換済み符号を生成するためのＲＳＩＤプロセッサと
を備え、前記複数の符号は、可能性のある実際の入力装置の入力を表していることを特徴とするＲＳＩＤ。
【請求項２】
ＲＳＩＤメモリセクションが、前記複数の変換済み符号を記憶することを特徴とする請求項１記載のＲＳＩＤ。
【請求項３】
前記ＲＳＩＤプロセッサは、前記実際の入力装置からの入力を受信し、一致する値を識別し、その一致する値に対応する複数の変換済み符号の一致する変換済み符号を生成し、その一致する変換済み符号を送信し、また、前記一致する値は、前記実際の入力装置からの入力に一致する、可能性のある実際の入力装置の入力を表す複数の符号の一つであることを特徴とする請求項１記載のＲＳＩＤ。
【請求項４】
十分な数の一致する変換済み符号が生成されるまで、一致する変換済み符号を受信して記憶するための、一時的な記憶装置をさらに含むことを特徴とする請求項３記載のＲＳＩＤ。
【請求項５】
公開暗号鍵と個人暗号化鍵とを記憶するための読み出し専用メモリをさらに含み、前記ＲＳＩＤプロセッサは、前記公開暗号化鍵と前記個人暗号化鍵とを前記読み出し専用メモリから読むことを特徴とする請求項１記載のＲＳＩＤ。
【請求項６】
ＲＳＩＤ公開暗号化鍵とＲＳＩＤ個人暗号化鍵とを生成するための暗号化装置をさらに含み、前記ＲＳＩＤプロセッサは、前記ＲＳＩＤ公開暗号化鍵を計算装置に送信して、ＲＳＩＤに送信しようとする情報をその計算装置に暗号化させることを特徴とする請求項１記載のＲＳＩＤ。
【請求項７】
前記ＲＳＩＤは、暗号化済み変換命令を受信し、前記ＲＳＩＤプロセッサは、前記複数の変換済み符号を生成するために前記変換命令を利用する前に、前記ＲＳＩＤ個人暗号化鍵命令を利用して、前記暗号化済み変換命令を解読することを特徴とする請求項６記載のＲＳＩＤ。
【請求項８】
前記ＲＳＩＤプロセッサは、計算装置公開暗号化鍵を利用して、十分な数の一致する変換済み符号を暗号化することを特徴とする請求項７記載のＲＳＩＤ。
【請求項９】
前記計算装置公開暗号化鍵は、ＲＳＩＤプロセッサが計算装置公開暗号化鍵を利用して、十分な数の一致する変換済み符号を暗号化する前に、メモリセクション内に記憶されることを特徴とする請求項８記載のＲＳＩＤ。
【請求項１０】
変換命令を記憶し、変換命令をＲＳＩＤプロセッサに送信するメモリセクションをさらに含むことを特徴とする請求項１記載のＲＳＩＤ。
【請求項１１】
第１メモリセクションと第２メモリセクションは、共に同じ物理的メモリ素子内に置かれることを特徴とする請求項１０記載のＲＳＩＤ。
【請求項１２】
前記第１メモリセクションと前記第２メモリセクションと前記第３メモリセクションとは、同じ物理的メモリ装置内に置かれることを特徴とする請求鴻１０記載のＲＳＩＤ。
【請求項１３】
処理カード読み取り器をさらに含むことを特徴とする請求項１記載のＲＳＩＤ。
【請求項１４】
前記処理カード読み取り器は、スマートカード読み取り器であることを特徴とする請求項１３記載のＲＳＩＤ。
【請求項１５】
前記スマートカード読み取り器に結合される加入者身元モジュール（ＳＩＭ）をさらに含むことを特徴とする請求項１４記載のＲＳＩＤ。
【請求項１６】
前記処理カード読み取り器は、バーコード読み取り器であることを特徴とする請求項１３記載のＲＳＩＤ。
【請求項１７】
前記処理カード読み取り器は、生物測定読み取り器であることを特徴とする請求項１３記載のＲＳＩＤ。
【請求項１８】
前記処理カード読み取り器は、メモリカード読み取り器であることを特徴とする請求項１３記載のＲＳＩＤ。
【請求項１９】
計算装置において、
中央処理ユニット（ＣＰＵ）と、
少なくとも一つの変換命令を送信するための制御器と、
前記制御器から変換命令を受信し、暗号化した変換済み符号を前記制御器に送信する、再構成可能で安全な入力装置(ＲＳＩＤ)と
を備え、
前記ＲＳＩＤは、
実際の入力装置の入力を送信するための実際の入力装置と、
各々が、可能性のある実際の複数の入力装置の入力の一つに対応する、複数の符号と複数の値とを持った標準参照表を含むＲＳＩＤプロセッサと
を含み、
前記ＲＳＩＤプロセッサは、少なくとも一つの変換命令を受信し、少なくとも一つの変換命令を実行し、変換済みの表を生成し、
前記変換済みの表は、複数の変換済み符号と複数の値とを含み、
前記複数の変換済み符号は、少なくとも一つの変換命令を利用して作られる
ことを特徴とする計算装置。
【請求項２０】
前記ＲＳＩＤは、さらに、変換済みの表を記憶するためのメモリセクションを含むことを特徴とする請求項１９記載の計算装置。
【請求項２１】
前記メモリセクションは、ＲＳＩＤプロセッサの内部にあることを特徴とする請求項２０記載の計算装置。
【請求項２２】
前記ＲＳＩＤプロセッサは、実際の入力装置の入力を受信し、可能性のある複数の実際の入力装置の入力の一つに対応する入力値と照合し、変換済み参照表内の入力値を表わす、一致する変換済み符合を決定し、その一致する変換済み符号を出力することを特徴とする請求項１９記載の計算装置。
【請求項２３】
ＲＳＩＤ公開暗号化鍵とＲＳＩＤ個人暗号化鍵とを作るための暗号化鍵生成器をさらに含むことを特徴とする請求項２２記載の計算装置。
【請求項２４】
前記暗号化鍵生成器は、計算装置内に置かれることを特徴とする請求項２３記載の計算装置。
【請求項２５】
前記暗号化鍵生成器は、ＲＳＩＤ内に置かれることを特徴とする請求項２３記載の計算装置。
【請求項２６】
前記暗号化鍵生成器は、計算装置の外に置かれることを特徴とする請求項２３記載の計算装置。
【請求項２７】
キーボード入力を変換するための方法において、
少なくとも一つの変換命令を利用して、各々が、可能性のある複数の実際の入力装置の入力の一つに対応する、複数の変換済み符号を作るための段階と、
前記複数の変換済み符号を、変換済み参照表内の複数の値と共に記憶する段階と
を備え、
前記複数の値は，可能性のある複数の実際の入力装置の入力に対応することを特徴とする方法。
【請求項２８】
少なくとも一つの変換命令が利用される前に、前記少なくとも一つの変換命令を第１メモリセクション内に記憶する段階をさらに含むことを特徴とする請求項１７記載の方法。
【請求項２９】
実際の入力装置の入力を受信する段階をさらに含むことを特徴とする請求項２７記載の方法。
【請求項３０】
前記実際の入力装置の入力を、可能性のある複数の実際の入力装置の入力の一つと照合して、一致する値を作る段階をさらに含むことを特徴とする請求項２９記載の方法。
【請求項３１】
前記変換済み参照表から、一致する値に対応する、一致する変換済み符号を出力する段階をさらに含むことを特徴とする請求項３０記載の方法。
【請求項３２】
暗号化された一致する変換済み符号を作るために、少なくとも一つの暗号化命令を利用して、一致する変換済み符号を暗号化する段階と、
再構成可能で安全な入力装置から、暗号化された変換済み符号を計算装置へ送信する段階とをさらに含むことを特徴とする請求項３１記載の方法。
【請求項３３】
前記計算装置から、前記少なくとも一つの暗号化命令を受信する段階をさらに含むことを特徴とする請求項３２記載の方法。
【請求項３４】
再構成可能で安全な入力装置において、前記少なくとも一つの暗号化命令を生成する段階をさらに含むことを特徴とする請求項３２記載の方法。
【請求項３５】
暗号化生成装置から、前記少なくとも一つの暗号化命令を受信する段階をさらに含むことを特徴とする請求項３２記載の方法。
【請求項３６】
利用する前に、前記少なくとも一つの暗号化命令をメモリセクション内に記憶する段階をさらに含むことを特徴とする請求項３２記載の方法。
【請求項３７】
十分な数の一致する変換済み符号が、一時的な記憶装置内に常駐するまで、前記一致する変換済み符号を前記一時的な記憶装置内に記憶する段階をさらに含むことを特徴とする請求項３１記載の方法。
【請求項３８】
複数の暗号化された一致する変換済み符号を作るために、十分な数の一致する変換済み符号を暗号化する段階と、前記複数の暗号化された一致する変換済み符号を、再構成可能で安全な入力装置から計算装置へ送信する段階とをさらに含むことを特徴とする請求項３７記載の方法。
【請求項３９】
プログラムコード記憶装置において、
機械読み取り可能な記憶媒体と、
前記機械読み取り可能な記憶媒体上に記憶された、機械読み取り可能なプログラムコードと
を備え、
前記機械読み取り可能なプログラムコードは、少なくとも一つの変換命令を利用して、各々が、可能性のある複数の実際の入力装置の入力の一つに対応する、複数の変換済み符号を作る命令と、複数の変換済み符号を、複数の可能性のあるキーボード入力に対応する複数の値と共に、変換済み参照表内に記憶する命令とを持っていることを特徴とするプログラムコード記憶装置。
【請求項４０】
前記少なくとも一つの変換命令が利用される前に、少なくとも一つの変換命令を第１メモリセクション内に記憶する命令をさらに含むことを特徴とする請求項３９記載のプログラムコード記憶装置。
【請求項４１】
実際の入力装置から受信した実際の入力装置の入力を、可能性のある複数の実際の入力装置の入力の一つと照合して、一致する値を作る命令をさらに含むことを特徴とする請求項３９記載のプログラムコード記憶装置。
【請求項４２】
変換済み参照表から、一致する値に対応する一致する変換済み符号を出力する段階をさらに含むことを特徴とする請求項４１記載のプログラムコード記憶装置。
【請求項４３】
少なくとも一つの暗号化命令を利用して、一致する変換済み符号を暗号化して、暗号化済みの一致する変換済み符合を作り、また、その暗号化された一致する変換済み符合を、再構成可能で安全な入力装置から計算装置へと送信する命令をさらに含むことを特徴とする請求項４２記載のプログラムコード記憶装置。
【請求項４４】
十分な数の一致する変換済み符号が一時的な記憶装置内に常駐するまで、前記一致する変換済み符号を一時的な記憶装置内に記憶し、また、十分な数の一致する変換済み符号を暗号化して、複数の暗号化された一致する変換済み符号を作り、その複数の暗号化された一致する変換済み符号を、再構成可能で安全な入力装置から計算装置へ送信する命令をさらに含むことを特徴とする請求項４２記載のプログラムコード記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、広く、入力装置を用いた安全な通信に関する。より詳しくは、本発明は、計算システム間での安全な通信に利用される、あるいは、再構成可能で安全な入力装置と計算装置との間における安全な通信に利用される、安全で再構成可能な入力装置に関する。
本出願は、２００２年２月１９日の同時係属出願第１０／０７８，７２７号の一部継続出願である。
【背景技術】
【０００２】
インターネットの発達により、ビジネスのやり方に変化が起きた。消費者と会社とは、クレジットカードあるいは当座預金情報を使って、インターネット上にあるウェブサイトから多くの商品を購入する。一番の関心は、インターネットの安全レベルに関して起こっており、特に、機密事項の個人情報あるいは金銭情報が消費者からウェブサイト、例えば、サーバーがホストをしているウェブサイトへ送られる時の安全レベルにである。機密事項の個人情報あるいは金銭情報には、クレジットカード情報や、社会保険番号や、銀行口座情報や、特権情報が含まれる。
【０００３】
インターネット上のコンピュータの安全に関する最も普通の方法は、暗号化である。暗号化は、鍵を持っている人（あるいはコンピュータ）だけが解くことができる方法で、情報を符号化する処理である。コンピュータ暗号化は、暗号法に基づいているが、これは、メッセージを符号化することである。コンピュータ暗号化は、二つの範疇に分けることができ、それは対称鍵暗号法（symmetric-key encryption）と公開鍵暗号法（public-key encription）である。対称鍵暗号法では、各コンピュータが秘密鍵を持っている必要がある。秘密鍵（secret key）は、二つのコンピュータ間で送信される情報を符号化と復号するのに使用される。対称鍵暗号化を動作させるのに、秘密鍵が二つのコンピュータの各々に与えられなくてはならない。もしこれが、安全でない送信線上で行われると、秘密鍵の安全性は、危ういものになり、誰かが秘密鍵を傍受することができる。
【０００４】
公開鍵暗号法は、個人鍵（private key）と公開鍵の組合せを利用する。公開鍵は、中央コンピュータと安全に通信をしたいと望む全てのコンピュータに与えられる。中央コンピュータは、中央コンピュータにだけ分かる秘密鍵も持っている。もし２方向通信が必要ならば、両方のコンピュータが公開鍵と個人鍵とを持つようになる。
【０００５】
図１は、従来技術によるコンピュータ間の公開鍵暗号化のメッセージの流れを示している。第１計算装置は、平文の中にメッセージ、例えば、特別な手段を使わずに理解できるメッセージを含んでいる。第１計算装置は、第２計算装置の公開鍵を利用して、平文メッセージを暗号文、例えば暗号化メッセージに暗号化する。第１計算装置は、暗号文を第２計算装置へと送信する。第２計算装置は、暗号文メッセージを受信して、その個人鍵を使って、暗号文メッセージを解読して平文メッセージへと訳し戻す。第２計算装置の公開鍵は、メッセージを暗号化することにのみに利用される。公開鍵による暗号化の第１の利点は、それによって、前もって安全性の用意をしていない人も、メッセージを安全に交換することができる点である。
【０００６】
公開鍵と個人鍵は数学的に関連性があるが、公開鍵だけを与えられて個人鍵を引き出すことは数学的に難しい。もし十分な計算能力が利用でき、十分な時間が与えられれば、個人鍵を引き出すことは可能である。公開鍵が大きければ、それだけ解読するのも、より難しくなる。産業標準は、現在１０２４ビットであり、いくつかのアプリケーションは２０４８ビットを使用している。
【０００７】
公開鍵暗号化の他の重要な利点は、ディジタル署名が２つの計算装置によって利用できる点である。ディジタル署名によって、情報の受信側が情報の送り元の信頼性を検証することができる。それに加えて、受信側は、データが通過中に変化しなかったことを検証できる。また、受信側は、否認防止、例えば送り主がメッセージを送ったことを否定できないようにすることができる。
【０００８】
図２は、従来技術によって第１計算装置と第２計算装置間で、ディジタル署名を使用する段階を示したものである。第１計算装置は、第１装置の個人鍵で暗号化された平文メッセージを持ち、例えばディジタル署名などの署名入りメッセージを作る。署名入りメッセージは、第１計算装置から第２計算装置へと送られる。第２装置は、第１計算装置の公開鍵を使って、署名入りメッセージを解読して、第１計算装置が元のメッセージを発したことを確かめる。第２計算装置は、確認済みメッセージを作り出す。
【０００９】
一つの問題が、ディジタル署名を使用する際に起こる。大量のデータが、平文メッセージを個人鍵で暗号化する際に作られるが、これは、平文メッセージが１０２４から２０４８ビットの長さになるために、１０２４ビットあるいは２０４８ビットが、キーによって使用されるからである。一方向のハッシュ機能によって、作られるデータがより少なくなるだろう。一方向のハッシュ機能は、可変長の入力、例えば全ての長さを持つメッセージを受信し、固定長の出力、すなわち各可変長入力に固有の１８０ビットを作り出す。もし、このメッセージが何らかの形で変更されると、別々の固定長出力値全体が、変更されたメッセージのために作られる（固定長は１８０ビットであることに注意）。
【００１０】
図３は、従来技術によって二つの計算装置の間での公開鍵暗号化において、ディジタル署名と共に利用されるハッシュ（hash）機能について示したものである。第１計算装置と第２計算装置は、利用するハッシュ機能について一致する。第１計算装置は、平文メッセージを持っており、それを第２計算装置へと送ろうとする。平文メッセージは、ハッシュ機能を通ってビット数を減らし、ハッシュされたメッセージが作られる。ハッシュされたメッセージは、第１計算装置の個人鍵を利用して暗号化されて、暗号化ハッシュメッセージが作られる。加えて、平文メッセージは、第２計算装置公開鍵を利用して暗号化され、暗号文メッセージが作られる。暗号化されたハッシュメッセージは、暗号文メッセージと共に第２計算装置へと送られ、暗号化されたハッシュメッセージは、より短く扱い易いディジタル署名を可能にする。第２計算装置は、第１計算装置の公開鍵を利用して、暗号化されたハッシュメッセージを解読して、ハッシュされたメッセージを作り出し、メッセージの送り元を検証する。第２計算装置は、自身の個人鍵を利用して、暗号文メッセージを解読して、第２平文メッセージを作り出す。暗号文メッセージが決して変更されていないことを検証するために、第２計算装置は、共有するハッシュ機能を利用して、第２のハッシュされたメッセージを作り出す。この第２のハッシュされたメッセージは、第２計算装置によってハッシュされたメッセージと比較されて（２つのメッセージは、値が等しいはずである）、変更が行われていないことを検証する。署名入り文書へささいな変更をしても、ハッシュ検証は不首尾に終わる。
【００１１】
多くのシステムが、公開鍵暗号化と対称鍵暗号化の組合せを利用して安全性を増している。実例としては、第１計算装置と第２計算装置間の安全な通信は、以下のように発生する。第１通信装置と第２通信装置とは、公開鍵を交換する、例えば、第１計算装置交換鍵は、第２計算装置へと送られ、第２計算装置公開鍵は、第１計算装置へと送られる。乱数生成器を持った装置、通常は、第２計算装置であるが、乱数生成器を利用して、秘密鍵である仮の無作為なセッション鍵を生成する。もし、第２計算装置が、秘密鍵を生成すると、第２計算装置は、秘密鍵を、公開−個人鍵暗号法を利用する第１計算装置へと送る。
【００１２】
秘密鍵は、第１計算装置と第２計算装置間で共有されて、秘密鍵を用いて対称鍵暗号化が実行されるが、これは、システム上での計算の負荷は、ビット数が少ないゆえに公開鍵暗号化よりも小さいからである。いくつかの場合において、公開鍵暗号化は、秘密鍵を共有するだけのために利用される。いくつかのシステムにおいて、処理の間、ディジタル署名が必要であり、ハッシュをディジタル署名と共に利用することも求められるかも知れない。また、いくつかの安全な環境において、ディジタル署名された証明書を、暗号化セッションの間、互いの身分を証明するために利用することができる。もしディジタル署名された証明書が最初に共有されれば、侵入者は、忍び込み仲間の一人あるいは双方のように振る舞って、通信を妨害することができるために、ディジタル署名された証明書をセッションの間、共有することは、大事なことである。
【００１３】
問題は、ハッカーが第１計算装置と第２計算装置間で通信を妨害する時に起こる。特に、ハッカーは、計算装置の一つ、通常は第１計算装置に対して、ハッカーへ、暗号化されていないキーボード入力を送るように指示することによって、個人的なあるいは機密性のある情報を妨害することができる。ハッカーは、これを、“クッキー”ファイルに付ける、あるプログラムを第１計算装置上にインストールすることによって成し遂げる。代わりに、ハッカーは、これを、第１計算装置の記憶装置上、あるいは第１計算装置のメモリ内のいずこかに、プログラムをインストールすることで成し遂げることもできる。
【００１４】
“クッキー”は、ウェブサーバー、例えば第２計算装置によってコンピュータのハードドライブ上に置かれる、データの断片である。“クッキー”は、クッキーファイルの中の第１計算装置記憶装置内に記憶される。“クッキー”は、多くの異なる目的のために使用され、最も一般的な目的は、第２計算装置上にあるウェブサイトにアクセスするために、ユーザー名と暗証番号を記憶することである。“クッキー”は、あらゆる種類の情報や、ユーザーの好みや、好きなサイトや、他の固有化した情報を含んでいよう。
【００１５】
ハッカーは、自身を第１計算装置上に置かれた“クッキー”に付けて、例えば第２計算装置であるウェブサイトから送る“トロイの木馬”のプログラムを送ることができる。“トロイの木馬”のプログラムは、重要ではない、あるいは無関係に見え、後で多くの場合破壊的な機能である他の機能を実行するプログラムである。例えば、もし誰かが１−８００−Ｆｌｏｗｅｒｓのウェブサイトにログオンしてクレジットカードで花を注文すると、１−８００−Ｆｌｏｗｅｒｓのサーバーは、ユーザーのコンピュータに、クッキーを処理に関する個人情報や機密情報と共に置くことができる。ハッカーあるいは第３者は、通信を妨害して、送信の時に“トロイの木馬”のプログラムを“クッキー”に付けることができる。“トロイの木馬”のプログラムは、自身を第１計算装置の記憶装置上の“クッキー”ファイルに付けることができる。“トロイの木馬”のプログラムをコンピュータ上に置くための他の方法は、ハッカーが製品の注文に割引を提供するｅメールをユーザーグループに送ることである。もし、ユーザーがｅメールを開くと、“トロイの木馬”のプログラムが動き出して、自身をクッキーファイルに付ける。“クッキー”ファイルが次に動く時に、“トロイの木馬”のプログラムは、素早く動き出す。
【００１６】
“トロイの木馬”のプログラムは、次に“クッキー”が読み出されるとき、あるいは次に消費者が“クッキー”が送信された場所からサーバーにアクセスするときに、開始することができる。“トロイの木馬”のプログラムによって、処理は、正常に第１計算装置と第２計算装置の間でインターネット上で進めることができるだろうが、また、このプログラムは、第１計算装置に対して実際のキーストローク入力を、暗号化したデータと共にハッカーのコンピュータに送るように指示するであろう。ハッカーは、実際のキーストローク入力を見ることができるので、ハッカーは、識別番号（ＰＩＮ）や暗証番号やクレジットカード情報のような、ユーザーの個人情報と金銭情報とをコピーすることができる。ハッカーが実際のキーストローク入力を妨害する問題は、自身を“クッキーファイル”に付ける“トロイの木馬”のプログラムに限られるのではない。第１計算装置の記憶装置上あるいは第１計算装置のメモリ内に置かれた、ハッカーがインストールしたいかなるプログラムも、実際のキーボード入力を妨害し、同種の問題を引き起こすことがある。
【００１７】
McAuliffe他の特許文献１は、一体型符号化済み装置読み取り器を持った、コンピュータキーボードコンソールを開示しており、これは、例えば、スマートコード読み取り器であってよく、これは、好ましくはスマートコード読み取り器および／またはキーボード上のキーストロークを経由して符号化されたデータが入力される時に、ホストＣＰＵを無効にすることによって、一時的にコンピュータキーボードコンソールとホスト中央処理ユニットとの間の通信を妨害するものである。キーボードコンソール内の別個のマイクロプロセッサは、メモリ内に記憶される値と比較することによって、符号化済み情報の信頼性を検証し、符号化済みデータが送信されて検証されると、中央処理ユニットを有効にする。本発明は、キーボードが、スマートカード読み取り器上に記憶される情報や、認証処理の間にキーボードから入力される情報を送ることを防止する。しかし、システムは、メッセージと情報が第１計算装置のキーボードコンソールから第２計算装置へと送られる時に、機密文書メッセージおよび／または機密金銭情報および／またはクレジットカード情報に対して保護はしない。
【００１８】
【特許文献１】米国特許第６,０５６,１９３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１９】
従って、第１計算装置が第２計算装置と安全な通信を約束しているときに、キーボードから第１計算装置へ送信された全ての情報を保護する必要が存在する。
【課題を解決するための手段】
【００２０】
本発明の、再構成可能で安全な入力装置（ＲＳＩＤ）は、入力を送信するための実際の入力装置と、変換命令を受信し、かつ、複数の符号を利用して、前記変換命令に基づいて複数の変換済み符号を生成するためのＲＳＩＤプロセッサとを備え、前記複数の符号は、可能性のある実際の入力装置の入力を表していることを特徴とする。
【発明を実施するための最良の形態】
【００２１】
再構成可能で安全な入力装置から他の入力装置への局所的な通信は、再構成可能で安全な入力装置（ＲＳＩＤ）からの実際の入力を暗号化および／または変換することによって、安全に達成することができる。代わりに、安全な通信は、ＲＳＩＤから第１計算装置へ、ＲＳＩＤからの実際の入力を暗号化および／または変換することによって、達成される。本発明の一実施形態において、安全な通信システムは、少なくとも第１計算装置と、ＲＳＩＤからの全ての出力が暗号化および／または変換されるために追加的な安全を含む第２計算装置との間で、世界的なネットワークに渡って確立することができる。この実施形態において、第２計算装置は、可能性のあるキーボード入力のいくつか或いは全てに対して、新しい符号を確立することができる。本発明のこの実施形態において、安全な通信システムは、例えばインターネットのような世界的なネットワークに渡って、安全なビジネス処理を実施するために利用することができる。
【００２２】
ＲＳＩＤからの実際の入力は、８４キーあるいは１０１キーのキーボードのような、標準的なキーボードからの入力に限られる。実例として、ＲＳＩＤからの実際の入力は、キーパッドや、数字キーパッドや、ゲームコンソールや、制御ボタンから受信することができる。
【００２３】
図４は、本発明の一実施形態による、安全な通信システムの動作を示す図である。安全な通信システム４０は、第１計算装置４２と、第２計算装置４４と、ネットワーク４６と、再構成可能で安全な入力装置（ＲＳＩＤ）５０とを含んでいて良い。本発明の一実施形態において、ＲＳＩＤ５０は、ケーブルを通して第１計算装置４２に付けられる。本発明の一実施形態において、ＲＳＩＤ５０は、例えば、第１計算装置がラップトップ計算装置である場合に、第１計算装置上４２の中に一体化される。ＲＳＩＤ５０は、例えば、８４キーあるいは１０１キーのキーボードのような、標準的なキーボード、或いはキーパッド、或いは少なくとも一つの制御ボタン、或いはゲームコンソールであって良い。
【００２４】
安全な通信システム４０は、ネットワーク４６を用いて、第２計算装置４４にログインする第１計算装置４２によって達成される。第１計算装置４２と第２計算装置４４とは、公開暗号化鍵を交換する。第２計算装置４４は、その後、少なくとも一つの変換命令を生成し、第１計算装置公開鍵を用いて少なくとも一つの変換命令を暗号化し、暗号化した少なくとも一つの変換命令を世界的なネットワーク４６に送ることができる。
【００２５】
第１計算装置４２は、第２計算装置公開鍵と暗号化済み変換命令受信して、第２計算装置公開鍵と暗号化済み変換命令とをＲＳＩＤ５０へ転送することができる。ＲＳＩＤ５０は、ＲＳＩＤ５０内に置かれたメモリ内の第２計算装置公開鍵を記憶することができる。本発明の一実施形態において、ＲＳＩＤプロセッサ６０は、第１計算装置４２の個人鍵を利用して、変換命令を解読することができる。本発明の一実施形態において、第１計算装置プロセッサ４８は、変換命令をＲＳＩＤ５０へ転送する前に、変換命令を解読することができる。
【００２６】
変換命令は、ＲＳＩＤ５０内に置かれたメモリ内に記憶することができる。ＲＳＩＤプロセッサ６０は、変換命令を実行することができ、可能性のある実際の入力全てを表している複数の符号は、複数の変換済み符号へ変換することができる。複数の変換済み符号は、可能性のある実際の入力全てに対応する複数の値と共に、ＲＳＩＤ５０内に置かれたメモリセクション内に記憶することができる。
【００２７】
本発明の一実施形態において、実際の入力は、その後ＲＳＩＤ５０に入力される。キーボードを利用した本発明の一実施形態において、実際の入力は、少なくとも一つのキーストロークの結果として起きる。ＲＳＩＤプロセッサ６０は、実際の入力を受信して、受信した実際の入力に対応する、可能性のある実際の入力全てを表す複数の値の一つを決定することができる。これは、照合変換符号と呼ばれる。実際の入力に対応する複数の値の内の一つに対応する変換済み符号は、出力されて一時的なバッファ内に置かれる。変換済み符号は、第２計算装置公開鍵を利用して暗号化し、暗号化した変換済み符号は、ＲＳＩＤ５０から第１計算装置４２へ転送することができる。第１計算装置４２は、暗号化した変換済み符号を、ネットワーク４６を経由して第２計算装置４４へと転送することができる。第２計算装置４４は、暗号化された変換済み符号を受信して、暗号化された変換済み符号を第２計算装置公開鍵を利用して転送することができる。第２計算装置４４は、少なくとも一つの変換命令を送ったので、第２計算装置４４は、変換符号を復号して、実際の入力を読み出すことができる。
【００２８】
図５Ａは、本発明の一実施形態による、再構成可能で安全な入力装置５０を示している。本発明の一実施形態によると、再構成可能で安全な入力装置（ＲＳＩＤ）５０は、実際の入力装置５２と、第１メモリセクション５４と、第２メモリセクション５６と、第３メモリセクション５８と、ＲＳＩＤプロセッサ６０とを含んでいて良い。
【００２９】
第１メモリセクション５４は、暗号化鍵を記憶するのに利用することができる。第１メモリセクション５４は、一つの暗号化鍵を含むか、多数の暗号化鍵を含むことができる。第１メモリセクション５４はＲＳＩＤプロセッサ６０によってのみ、書き込んだり読んだりすることができる。暗号化鍵は、公開暗号化鍵であって良い。代わりに、暗号化鍵は、個人暗号化鍵であって良く、また、暗号化鍵は、ハッシュ値であっても良い。
【００３０】
第２メモリセクション５６は、少なくとも一つの暗号化命令を記憶するのに利用することができる。代わりに、第２メモリセクション５６は、多数の暗号化命令を含んでいて良い。代わりに第２メモリセクション５６は、変換命令を含んでいて良い。異なる動作条件下で、第２メモリセクション５６は、多数の変換命令を含んでいて良い。本発明の他の実施形態において、第２メモリセクション５６は、少なくとも一つの暗号化命令と少なくとも一つの変換命令を含んでいて良い。第２メモリセクション５６は、ＲＳＩＤプロセッサ６０によってのみ、書き込んだり読んだりすることができる。
【００３１】
第３メモリセクション５８は、変換済み参照表を含んでいて良い。変換済み参照表の構成と内容とは、以下に説明する。第３メモリセクション５６は、ＲＳＩＤプロセッサ６０によってのみ書き込んだり読んだりすることができる。
【００３２】
本発明の一実施形態において、第１メモリセクション５４と第２メモリセクション５６とは、一つの物理的メモリ装置内に置くことができる。他の実施形態において、第１メモリセクション５４と、第２メモリセクション５６と、第３メモリセクション５８とは、一つの物理的メモリ装置内に置くことができる。別の実施形態において、第１メモリセクション５４と第２メモリセクション５６と第３メモリセクション５８との全ての組合せのいずれか一つは、物理的に１枚のメモリカード内に置くことができ、そこでは、メモリカードはＲＳＩＤ５０に結合されるか、その中にインストールされたメモリカード読み取り器内に置かれる。これらの実施形態は、単に説明しただけのものであり、メモリセクションの異なる組合せは、異なる物理的メモリ構造の中に置くことができる。
【００３３】
一実施形態において、第１メモリセクション５４と第２メモリセクション５６と第３メモリセクション５８とは、ＲＳＩＤプロセッサ６０内に物理的に置くことができる。第１メモリセクション５４と第２メモリセクション５６と第３メモリセクション５８は、ＲＳＩＤプロセッサ６０内のランダムアクセスメモリ（ＲＡＭ）内に置くことができる。本発明の本実施形態において、第１メモリセクション５４は、ＲＳＩＤプロセッサＲＡＭの第１の複数アドレスに置くことができ、第２メモリセクション５６は、ＲＳＩＤプロセッサＲＡＭの第２の複数アドレスに置くことができ、第３メモリセクション５８は、ＲＳＩＤプロセッサＲＡＭの第３の複数アドレスに置くことができる。ＲＳＩＤプロセッサ６０ＲＡＭは、ＲＯＭではないので、ＲＳＩＤプロセッサ６０に加えて、ＲＳＩＤプロセッサ６０ＲＡＭから読み書きすることを望むいかなる装置でも妨害されることを確かめるのに、論理回路を追加して含ませることができる。
【００３４】
ＲＳＩＤプロセッサ６０は、標準的な参照表を含んでいて良い。ＲＳＩＤプロセッサ６０のＲＡＭは、標準的な参照表を含んでいて良い。本発明の一実施形態において、ＲＳＩＤプロセッサ６０は、例えば、インテル（登録商標）８０１キーボードプロセッサであって良い。参照表には、可能性のある複数の実際の入力装置の入力全てを表す複数の符号が含まれていて良い。参照表は、複数の実際の入力装置の入力全てを表す値を含んでいても良い。標準的なキーボードを利用する本発明の一実施形態において、可能性のある複数のキーボード入力は、一つのキーからでも良いし、キーの組合せからでも良い。
【００３５】
例えば、キーボードをＲＳＩＤとして利用する本発明の一実施形態において、可能性のあるユニバーサル・シリアル・バス（ＵＳＢ）の１６進符号入力の“Cntl-Alt-Del”は、対応する符号（“Cntl”ビット、“Alt”ビット、２Ａ）と、対応するキーボードマップ位置−１５を持っていて良い。可能性のあるＵＳＢ１６進符号のキーボード入力の文字“a”は、対応する符号の０４と、対応するキーボードマップ位置−３１を持っていて良い。参照表は、例えば２Ａと０４のような“Cntl-Alt-Del”と“a”のような二つの可能性のあるキーボード入力を表す符号として識別される二つの符号を、他の可能性のあるキーボード入力全てを表す符号と共に含んでいて良い。加えて、参照表には、“Cntl-Alt-Del”と“a”のキーマップ位置を表す値を、他の可能性のあるキーボード入力全てのキーマップ位置を表す値と共に含んでいて良い。
【００３６】
ＲＳＩＤプロセッサ６０は、ＲＳＩＤ５０のメモリセクション、例えば第２メモリセクションから、変換命令を読み出すことができ、変換命令を実行することができる。変換命令の実行によって、ＲＳＩＤプロセッサ６０は、可能性のある実際の入力を表す複数の符号のいくつか或いは全てを変更することができる。本発明の一実施形態において、変換命令が実行される時、変換済み参照表を、変換命令に基づいた変更済み複数の符号を含んで作ることができる。変更された複数の符号は、変換済み符号として参照することができる。
【００３７】
多数の変換命令がメモリセクションから読み出される本発明の一実施形態において、多数の変換命令の最後のものが実行される時に、変換済み参照表が作られる。
【００３８】
変換命令が実行されて変換参照表が作られた後に、変換済み参照表が、例えば第３メモリセクション５８のようなメモリセクション内に記憶される。変換済み参照表には、可能性のある複数の実際の入力装置の入力全てを表す複数の値と、可能性のある複数の実際の入力装置の入力全てを表す変換済み符号とが含まれうる。
【００３９】
標準的なキーボードを利用した本発明の一実施形態において、変換済み参照表が作られて第３メモリセクション５８内に記憶された後に、ユーザーは、複数のキー５２の少なくとも一つを押すことができる。複数のキー５２の少なくとも一つは、押されたキーの位置を行と列から識別する、スイッチ行列との接触を作る。行と列による位置は、可能性のある実際の入力装置の入力の一つの値として参照される。押されたキーの行と列による各位置は、可能性のある複数の実際の入力装置の入力の一つの値に等しくなる。こうして、実際の入力装置の入力は、実際の一つのキーストローク或いはキーストロークの組合せのスイッチ行列によって識別される位置であって良い。先述したように、標準的な参照表と変換済み参照表とは、可能性のある複数の実際の入力装置の入力に対応する複数の値を含んでいて良い。標準的なキーボードを利用しない本発明の一実施形態において、実際の入力装置の入力は、キーパッド、あるいは制御ボタン、あるいはゲームコンソール、あるいは他の類似した入力装置から受信されて良い。
【００４０】
ＲＳＩＤプロセッサ６０は、実際の入力装置の入力を、変換済み参照表内に置かれた、可能性のある複数の実際の入力装置の入力の一つに対応する、複数の値の内の一つと照合して、照合値を作ることができる。ＲＳＩＤプロセッサ６０は、その後、その照合値と対応する、変換済み参照表内に置かれた変換済み符号を読み出すことができる。これは、照合変換済み符号と呼ばれる。
【００４１】
本発明の一実施形態において、ＲＳＩＤプロセッサ６０は、第１メモリセクション５４からの暗号化鍵を読み出すことができる。ＲＳＩＤプロセッサ６０は、第２メモリセクション５６から、少なくとも一つの暗号化命令を読み出すことができる。暗号化命令は、ＲＳＩＤ５０を現在利用しているアプリケーションの中で、どの種類の暗号化が利用されているかを識別する。例えば、アプリケーションは、対称暗号化をを要求するかも知れない。暗号化命令は、ＲＳＩＤプロセッサ６０が参照変換済み符号あるいは要求された様式による複数の参照変換済み符号を暗号化できるように、情報をＲＳＩＤプロセッサ５０に与えることができる。例えば、上述の場合、ＲＳＩＤプロセッサ６０によって読み出される照合変換済み符号は、対称的に、ＲＳＩＤプロセッサ６０によって暗号化されて、暗号化済み照合変換済み符号を作ることができる。
【００４２】
第１メモリセクション５４と第２メモリセクション５６と第３メモリセクション５８とは、更新することができる。例えば、ＲＳＩＤ５０を含む第１計算装置４２と会話する第２計算装置４４（図４参照）は、１５分ごとに、暗号化キーの変更を必要とする。他の第２計算装置４４は、必要な暗号化と、可能性のある実際の入力装置の入力全ての変換の種類を２時間毎に変更する必要があり、従って、少なくとも一つの暗号化命令と少なくとも一つの変換命令とを変更する必要がある。そのような動作条件下で、第１メモリセクション５４は、新しい暗号化命令を受信し記憶することができ、第２メモリセクション５６は、新しい変換命令と新しい暗号化命令とを受信することができる。
【００４３】
本発明の一実施形態において、新しい暗号化鍵は、第１暗号化鍵を置き換えることができる。本発明の他の一実施形態において、新しい暗号化鍵は、第１メモリセクション５４内に第１暗号化鍵と共に記憶することができ、暗号化命令は、どの暗号化鍵を利用して、いつ暗号化鍵の各々を利用するかを識別することができる。同様に、第２メモリセクション５６は、新しい暗号化命令と変換命令とを受信することもでき、新しい暗号化と変換の命令は、第２メモリセクション５６の中に、唯一の暗号化と変換の命令として記憶することができる。
【００４４】
図５Ｂには、本発明の一実施形態による再構成可能な安全入力装置と計算装置とを含んだ、安全な計算サブシステムを示してある。計算装置５００には、プロセッサ５０２と暗号化装置５０４とが含まれて良い。一つの実施形態では、ＲＳＩＤ５０６は、第１メモリセクション５０８と、第２メモリセクション５１０と、ＲＳＩＤプロセッサ５１４と、実際の入力装置５１６とを含んでいて良い。本発明の一実施形態において、ＲＳＩＤプロセッサ５１４には、第１メモリセクション５０８と、第２メモリセクション５１０と、第３メモリセクション５１２とが含まれていて良い。
【００４５】
安全な計算装置サブシステムのユーザーは、計算装置５００とＲＳＩＤ５０６との間の安全な通信を、計算装置５００と少なくとも第２計算装置４４（図４を参照）の間の安全のあらゆるレベルに加えて、あるいはそれとは別に、維持することを望むかも知れない。本発明の一実施形態において、計算装置５００の初期化の間、計算装置５００の中の暗号化装置５０４は、計算装置５００とＲＳＩＤ５０６の両方に対して公開暗号化鍵を生成することができる。この実施形態において、暗号化装置５０４は、ＲＳＩＤ５０６に対して公開暗号化鍵を保持し、計算装置５００の初期化の間、計算装置公開暗号化鍵をＲＳＩＤ５０６へ送信することができる。暗号化装置５０４は、計算装置個人暗号化鍵とＲＳＩＤ個人暗号化鍵を生成することもできる。ＲＳＩＤ個人暗号化鍵を作った後に、計算装置５００は、計算装置個人暗号化鍵を維持し、ＲＳＩＤ個人暗号化鍵をＲＳＩＤへ送信することができる。
【００４６】
もし、暗号化装置５０４が、ＲＳＩＤ個人暗号化鍵を生成しなければ、ＲＳＩＤ個人暗号化鍵は数学的にＲＳＩＤ公開暗号化鍵に関連しなくてはならないので、計算装置５００の中の暗号化装置５０４は、ＲＳＩＤ個人暗号化鍵を知る必要があるだろう。計算装置５００は、読み出し専用メモリあるいはアクセス不可能なメモリ内に記憶されるＲＳＩＤ公開暗号化鍵を知る必要があり、あるいは代わりに、計算装置５００とＲＳＩＤ５０６の初期化の間に計算装置に送信されたＲＳＩＤ個人暗号化鍵を知る必要があるだろう。
【００４７】
図５Ｂに示されるように、別の動作条件下では、ＲＳＩＤ公開暗号化鍵を、ＲＳＩＤプロセッサ５１４内、あるいはＲＳＩＤ第１メモリセクション５０８内および／またはＲＳＩＤ第３メモリセクション５１２内に記憶することができる。公開暗号化鍵がＲＳＩＤプロセッサ５１４あるいはＲＳＩＤメモリセクション５０８，５１０，５１２の一つの中に記憶される実施形態において、ＲＳＩＤ５０６は、公開暗号化鍵を初期化の間あるいは計算装置５００の初期化の後の或る期間の間に、計算装置５００へと送信することができる。ＲＳＩＤ公開暗号化鍵の送信の返しとして、あるいはそれと同時に、計算装置５００は、計算装置個人暗号化鍵をＲＳＩＤ５０６へ送信することができる。ＲＳＩＤ５０６は、公開暗号化鍵をＲＳＩＤメモリセクション５０８，５１０，５１２の一つあるいは二つ以上の中に記憶することができる。一実施形態において、第２メモリセクション５１０を利用することができる。
【００４８】
計算装置５００の中のプロセッサ５０２は、変換命令を生成することができる。代わりに、計算装置５００の中の暗号化装置５０４は、変換命令を生成することができる。実施形態に関わりなく、暗号化装置５０４は、ＲＳＩＤ公開暗号化鍵を利用する変換命令を暗号化することができ、また暗号化済み変換命令をＲＳＩＤ５０６へ送信することができる。
【００４９】
ＲＳＩＤ５０６は、暗号化された変換命令を受信することができる。本発明の一実施形態において、ＲＳＩＤプロセッサ５１４は、暗号化された変換命令を解読して、その暗号化された変換命令をＲＳＩＤのメモリセクション５０８あるいは５１０あるいは５１２の内の一つあるいは二つ以上の中に記憶することができる。本発明の他の実施形態において、暗号化された変換命令は、ＲＳＩＤのメモリセクション５０８あるいは５１０あるいは５１２の中に記憶し、ＲＳＩＤプロセッサ５１４は、後で暗号化された変換命令を読み出して、変換命令を解読するためにＲＳＩＤ個人鍵を利用することができる。
【００５０】
本発明の一実施形態において、ＲＳＩＤプロセッサ５１４は、解読済み変換命令を実行することができ、また、例えばキーボード入力のような、可能性のある実際の入力装置の入力全てを表す複数の符号は、変換されて複数の変換済み符号になることができる。複数の変換済み符号を生成した後、複数の変換済み符号をＲＳＩＤのメモリセクション５０８と５１０と５１２の一つの中に、可能性のある複数の実際の入力装置の入力を表す値と共に記憶することができる。これは、変換済み参照表として参照することができる。
【００５１】
実際の入力装置の入力は、ＲＳＩＤ５０６で受信される。ＲＳＩＤプロセッサ５１４は、実際の入力装置の入力を受信して、実際の入力装置の入力を表わすか、それに一致する複数の値の内の一つを決定することができる。これは、一致する値と呼ばれる。ＲＳＩＤプロセッサ５１４は、複数の変換済み符号と、可能性のある実際のキーボード入力の表を利用して、実際の入力装置の入力に対する一致する変換済み符号を決定することができる。
【００５２】
一組の動作条件の下で、一旦、特定量の一致する変換済み符号が作られると、ＲＳＩＤプロセッサ５１４は、対応するＲＳＩＤメモリセクション５０８あるいは５１０あるいは５１２から、計算装置の公開暗号化鍵を読み出すことができる。ＲＳＩＤ５０６がキーボードであるような本発明の一実施形態において、特定量の一致する変換済み符号は、キーストローク或いはキーストロークの組み合わせを表わす、単一の一致する変換済み符号であって良い。一実施形態において、ＲＳＩＤプロセッサ５１４は、第１ＲＳＩＤメモリセクション５０８から、計算装置の暗号化鍵を読み出すことができる。ＲＳＩＤプロセッサ５１４は、一致する変換済み符号の特定量を暗号化することができる。ＲＳＩＤプロセッサ５１４は、暗号化された一致する変換済み符号を、計算装置５００に送信することができる。計算装置５００は、暗号化された一致する変換済み符号を受信することができ、また、実際の入力装置の入力を表わす一致する変換済み符号を生成するために、計算装置の個人用暗号化鍵を利用して、暗号化された一致する変換済み符号を解読することができる。計算装置５００は、変換命令を生成するので、計算装置５００は、一致する変換済み符号を解読して、実際の入力装置の入力を読み出すことができる。
【００５３】
本発明の別の実施形態において、ＲＳＩＤプロセッサ５１４は、暗号化命令をＲＳＩＤメモリ５０８および／または５１０および／または５１２の一つから読み出すことができる。先述したように、暗号化命令は、現在ＲＳＩＤ５０６を利用しているアプリケーションの中で利用される暗号化の特別なモードを識別することができる。暗号化命令は、ＲＳＩＤプロセッサ５１４が一致する変換済み符号を要求した形式で暗号化することができる情報を、ＲＳＩＤプロセッサ５１４に与える。例えば、暗号化命令は、奇数の一致する変換済み符号に対して第１計算装置の公開暗号化鍵を利用することと、偶数の一致する変換済み符号に対して第２計算装置の公開暗号化鍵を利用することとを交互に行うように、ＲＳＩＤプロセッサ５１４に指示することができる。
【００５４】
図５Ｃには、再構成可能で安全な入力装置と、本発明の一実施形態による計算装置とを含む、安全な計算サブシステムが示されている。計算装置５００には、プロセッサ５０２が含まれていよう。一実施形態において、再構成可能で安全な入力装置(ＲＳＩＤ)５０６には、暗号化装置５０４と、第１メモリセクション５０８と、第２メモリセクション５１０と、第３メモリセクション５１２と、ＲＳＩＤプロセッサ５１４と、実際の入力装置５１６とが含まれていよう。本発明の他の実施形態において、ＲＳＩＤプロセッサ５１４には、第１メモリセクション５０８と、第２メモリセクション５１０と、第３メモリセクション５１２とが含まれていよう。
【００５５】
ある動作条件の下で、計算装置５００は、確立した公開暗号化鍵を備えている。計算装置５００は、計算装置５００の中の読み出し専用メモリから、計算装置の公開暗号化鍵と計算装置の個人暗号化鍵を、計算装置５００の初期化の間に読み出すことができる。別の動作条件の下で、計算装置５００には、第２暗号化装置（図示されず）が含まれ、初期化の間に、計算装置の公開および個人暗号化鍵を生成することができる。
【００５６】
この実施形態において、初期化の間、ＲＳＩＤ５０６内の暗号化装置５０４は、ＲＳＩＤ公開暗号化鍵とＲＳＩＤ個人暗号化鍵とを生成することができる。計算装置５００公開暗号化鍵が生成され、ＲＳＩＤ公開暗号化鍵が生成された後、計算装置５００とＲＳＩＤ５０６とは、公開鍵情報を交換する、すなわち、計算装置５００は、計算装置の公開暗号化鍵をＲＳＩＤ５０６に送信し、ＲＳＩＤ５０６は、ＲＳＩＤ公開暗号化鍵を計算装置５００に送信することができる。
【００５７】
ある動作条件下において、計算装置５００の中のプロセッサ５０２は、変換命令を生成することができる。計算装置５００は、ＲＳＩＤの公開暗号化鍵を利用して変換命令を暗号化して、その暗号化された変換済み符号をＲＳＩＤ５０６に送信することができる。
【００５８】
ＲＳＩＤ５０６は、暗号化済み変換命令を受信することができる。ある動作条件の下で、ＲＳＩＤプロセッサ５１４は、ＲＳＩＤ個人暗号化鍵を利用して、暗号化済み変換命令を解読し、変換命令をＲＳＩＤの命令セクション５０８，５１０，５１２の内の一つに記憶することができる。別の動作条件において、ＲＳＩＤプロセッサ５１４は、最初に、変換命令を、ＲＳＩＤメモリセクション５０８あるいは５１０あるいは５１２の内の一つあるいは二つ以上に記憶して、後に、変換命令を読み出して、ＲＳＩＤ個人暗号化鍵を利用して、変換命令を解読することができる。
【００５９】
本発明の一実施形態において、ＲＳＩＤプロセッサ５１４は、解読済み変換命令を実行し、例えばキーボードのような可能性のある実際の入力装置の入力全てを表わす複数の符号は、複数の変換済み符号へ変換されるだろう。複数の変換済み符号の生成が終わった後に、複数の変換済み符号を、ＲＳＩＤメモリセクション５０８と５１０と５１２の内の一つ或いは二つ以上の中に記憶することができる。同じＲＳＩＤメモリセクション５０８と５１０と５１２において、複数の変換済み符号が、可能性のある実際の入力装置の入力全てに対応する複数の値であって良いのは、先述した通りである。
【００６０】
実際の入力は、実際の入力装置５１６からＲＳＩＤ５０６に入力することができる。ＲＳＩＤプロセッサ５１４は、実際の入力を受信して、実際の入力をあらわす複数の値の一つを決定することができ、これは一致する値として参照され得る。ＲＳＩＤプロセッサ５１４は、複数の変換済み符号と、可能性のある実際のキーボード入力の表を利用して、変換済み符号あるいは、一致する変換済み符号である、複数の値の一つすなわち一致する値を決定することができ、これは、実際の入力装置の入力を表わす。
【００６１】
ある動作条件の下で、一旦，特定量の一致する変換済み符号が生成されると、ＲＳＩＤプロセッサ５１４は、対応するＲＳＩＤメモリセクション５０８，５１０，５１２から、計算装置の公開暗号化鍵を読み出すことができる。ＲＳＩＤプロセッサ５１４は、特定量の変換済み符号を解読して、暗号化された一致する変換済み符号を作ることができる。ＲＳＩＤプロセッサ５１４は、特定量の暗号化された一致する変換済み符号を、計算装置５００へ転送することができる。
【００６２】
計算装置５００は、特定量の暗号化された一致する変換済み符号を受信することができる。計算装置５００は、計算装置の個人暗号化鍵を利用して、特定量の暗号化された一致する変換済み符号を解読して、特定量の一致する変換済み符号を生成することができる。計算装置５００が変換命令を生成したので、計算装置５００は、特定量の変換された実際の入力を解読して、一致する変換済み符号からの実際の入力装置の入力を再生成することができる。
【００６３】
図５Ｄは、本発明の一実施形態による再構成可能で安全な入力装置と計算装置と暗号生成器とを含む、安全な計算サブシステムを示している。計算装置５００は、プロセッサ５０２を含んでいるだろう。一実施形態において、再構成可能で安全な入力装置(ＲＳＩＤ)５０６には、第１メモリセクション５０８と、第２メモリセクション５１０と、第３メモリセクション５１２と、ＲＳＩＤプロセッサ５１４と、実際の入力装置５１６とが含まれていよう。本発明の他の実施形態において、ＲＳＩＤ５１４には、第１メモリセクション５０８と、第２メモリセクション５１０と、第３メモリセクション５１２とが含まれているだろう。暗号生成器５３０には、暗号化装置５０４が含まれているだろう。
【００６４】
ある動作条件下で、計算装置５００は、確立した公開暗号化鍵と個人暗号化鍵とを持っているだろう。計算装置５００は、計算装置５００の初期化の間、計算装置５００の内部の読み出し専用メモリから、計算装置の公開暗号化鍵と計算装置の個人暗号化鍵とを読み出すことができる。別の動作条件下で、計算装置５００は、初期化の間に、計算装置の公開暗号化鍵と計算装置の個人暗号化鍵とを生成するために、第２暗号化装置（図示せず）を含んでいるだろう。
【００６５】
本実施形態において、暗号生成器５３０内の暗号化装置５０４は、ＲＳＩＤ公開暗号化鍵とＲＳＩＤ個人暗号化鍵とを生成することができる。暗号生成器５３０は、ＲＳＩＤ公開暗号化鍵とＲＳＩＤ個人暗号化鍵とを、ＲＳＩＤ５０６へ送信することができる。計算装置５００公開暗号化鍵が生成されて、ＲＳＩＤ公開暗号化鍵が生成された後に、計算装置５００とＲＳＩＤ５０６は、先述したように、公開鍵情報を交換することができる。
【００６６】
計算装置５００内のプロセッサ５０２は、変換命令を生成することができる。計算装置５００は、ＲＳＩＤ公開暗号化鍵を利用して変換命令を暗号化することができ、その暗号化した変換命令をＲＳＩＤ５０６へ送信することができる。
【００６７】
ＲＳＩＤ５０６は、暗号化済み変換命令を受信することができる。ある動作条件の下で、ＲＳＩＤプロセッサ５１４は、暗号化済み変換命令を解読し、変換命令をＲＳＩＤメモリセクション５０８，５１０，５１２の一つに記憶することができる。ＲＳＩＤプロセッサ５１４は、その後で、変換命令を読み出すことができる。
【００６８】
本発明の一実施形態において、ＲＳＩＤプロセッサ５１４は、変換命令を実行することができ、複数の符号は、例えばキーボード入力のような可能性のある実際の入力装置の入力全てを表しており、変換して複数の変換済み符号にすることができる。複数の変換済み符号が生成された後に、複数の変換済み符号は、ＲＳＩＤメモリセクション５０８，５１０，５１２の一つに記憶することができる。同じＲＳＩＤメモリセクション５０８，５１０，５１２において、複数の変換済み符号は、可能性のある実際の入力装置の入力全てに対応する複数の値であるだろうことは、先述した通りである。
【００６９】
実際の入力は、実際の入力装置５１６からＲＳＩＤ５０６へ入力することができる。ＲＳＩＤプロセッサ５１４は、実際の入力を受信して、実際の入力を表す複数の値の内の一つを決定することができ、これが一致する値を呼ばれるだろう。ＲＳＩＤプロセッサ５１４は、複数の変換済み符号と可能性のある実際の入力装置の入力の表を利用して、複数の値の一つすなわち一致する値に対して、変換済み符号あるいは一致する変換済み符号を決定するが、これが実際の入力を表している。
【００７０】
一旦、特定量の一致する変換済み符号が生成されると、ＲＳＩＤプロセッサ５１４は、対応するＲＳＩＤメモリセクション５０８，５１０，５１２から、計算装置の公開暗号化鍵を読み出すことができる。ＲＳＩＤプロセッサ５１４は、特定量の一致する変換済み符号を、計算装置の公開暗号化鍵を利用して暗号化することができる。ＲＳＩＤプロセッサ５１４は、暗号化された特定量の一致する変換済み符号を、計算装置５００に送信することができる。
【００７１】
計算装置５００は、特定量の暗号化された一致する変換済み符号を受信することができる。計算装置５００は、計算装置の個人暗号化鍵を利用して、特定量の暗号化された一致する変換済み符号を解読して、特定量の一致する変換済み符号を生成することができる。計算装置５００は、変換命令を生成するので、計算装置５００は、特定量の一致する変換済み符号を解読して、ＲＳＩＤの実際の入力装置の入力を再生成することができる。
【００７２】
図６は、本発明の一実施形態による、処理カード装置を持った、再構成可能で安全なキーボードを示している。再構成可能で安全な入力装置（ＲＳＩＤ）５０は、処理カード装置を含んでいるだろう。処理カード装置は、例えば、スマートカード読み取り器、あるいはメモリカード読み取り器、あるいは生物測定読み取り器（biometric reader）であって良い。スマートカード読み取り器を利用した本発明の一実施形態において、スマートカードは、スマートカード読み取り器に挿入される。本発明の一実施形態において、加入者身元モジュール（ＳＩＭ）は、スマートカード読み取り器に挿入される。
【００７３】
スマートカード読み取り器を含んだ本発明の一実施形態において、スマートカード読み取り器７２は、ＲＳＩＤ５０の内部にインストールされる。ユーザーがＲＳＩＤ５０を利用することができるために、ユーザーは、スマートカード読み取り器７２の中に挿入されるスマートカード上に符号化される、固有の識別番号を照合しなくてはならない。第１計算装置４２のユーザーは、スマートカード読み取り器にスマートカードを挿入することができ、そのスマートカードは、スマートカード上に符号化された固有の識別番号を備えている。固有の識別番号は、スマートカードから読まれ、スマートカード読み取り器７２を通り、ＲＳＩＤ５０のスマートカードインターフェイスを通って、安全なメモリ位置まで転送される。安全なメモリ位置は、キーボードプロセッサ６０の内部にある。
【００７４】
標準的なキーボードを利用した本発明の一実施形態において、スマートカードがスマートカード読み取り器７２に挿入された後、ユーザーは、ＲＳＩＤ上のキー５２の組合せを利用して、スマートカード上に、符号化される固有の識別番号を複製することができる。ユーザーが作成したキーボード入力が、ＲＳＩＤ５０の外部の第１計算装置に転送されるのを防ぐために、ＲＳＩＤプロセッサ６０は、キーボード入力を安全なメモリ位置へと導いて、スマートカードからの固有な識別番号との比較に供する。もしキーボード入力がスマートカードからの固有な識別番号と一致すると、ユーザーは、第１計算装置４２にログインを開始することができる。ＲＳＩＤプロセッサ６０は、第１計算装置４２に、ユーザーが確認メッセージを送ることによって認証されたことを知らせる。確認メッセージは、少なくとも一つの暗号化命令の内容によって、ＲＳＩＤプロセッサ６０が暗号化することができる。代わりに、確認を暗号化することはできない。
【００７５】
一旦、ユーザーが本人であることが確認されると、ユーザーは、第１計算装置４２のオペレーティングシステムにログインする必要がある。スマートカードは、オペレーティングシステムにログインする情報を備えていることもできる。第１計算装置がマイクロソフトウィンドウズ（登録商標）のオペレーティングシステムの一つを利用する本発明の一実施形態において、スマートカードは、例えばユーザー名と暗証番号のような、ウィンドウズ（登録商標）のログイン情報を備えているだろう。ウィンドウズ（登録商標）のログイン情報は、スマートカード読み取り器７２を経由してスマートカードから読み、ＲＳＩＤ５０内の一時記憶場所に運ぶことができる。ログイン情報を暗号化するために、標準が確立されて、パーソナルコンピュータ／スマートカード（ＰＣ／ＳＣ）仕様書１.０に含まれる。本発明の一実施形態において、ウィンドウズ（登録商標）のログイン情報は、ＰＣ／ＳＣ１.０標準に従って暗号化され、例えば、ユニバーサル・シリアル・バス（ＵＳＢ）あるいはＲＳ−２３２Ｃインターフェイスを経由して、第１計算装置４２へ送信される。第１計算装置４２は、ウィンドウズ（登録商標）のログイン情報を解読して、ユーザーが第１計算装置上のオペレーティングシステムへアクセスすることを許されていることを確認する。一旦、ウィンドウズ（登録商標）のログイン情報が確認されると、ユーザーは、安全な処理に携わるためにインターフェイスにログインすることも含めて、すべてのアプリケーションを走らせることができる。
【００７６】
本発明の一実施形態は、安全なビジネスの処理を行うために、異なる多くのビジネス環境において、安全なビジネス処理を実行するのに利用することができる。例えば、個々の消費者が、インターネットのようなネットワークを通って銀行に電子決済を提出することを希望することができる。図７は、本発明の一実施形態に従って、安全な通信システム８０において、再構成可能で安全な入力装置５０の電子決済アプリケーションを示したものである。電子決済情報は、当座預金番号を入力するユーザーと、社会保険番号と、銀行転送番号と、再構成可能で安全なキーボードコンソールを通しての支払金額とからなっている。本発明の一実施形態を利用することで、ユーザーは、ハッカーが、第１計算装置の記憶装置にある銀行の“クッキー”ファイルに“トロイの木馬”プログラムを付け、再構成可能で安全な入力装置（ＲＳＩＤ）５０からの暗号化されていないデータを自分のコンピュータに迂回させることから、守られる。
【００７７】
本発明の一実施形態において、ユーザーの計算装置８２は、機密メッセージ入力をＲＳＩＤ５０を経由して、電子決済情報と共に、インターネットを通して銀行のサーバー８４に送ることができる。銀行のサーバー８４は、可能性のある複数のキーボード入力に対応する符号を、可能性のある複数のキーボード入力に対応する変換済みの複数の符号へ変換することができる。機密メッセージを送る前に、ユーザーの計算装置８２は、銀行のサーバー８４にログインしなくてはならない。ユーザーの計算装置８２と銀行のサーバー８４は、公開鍵を交換することができる。代わりに、ユーザーの計算装置８２は、アクセスが公開されている場所、例えば銀行のサーバーのウェブサイトから銀行のサーバーの公開鍵を読み出して、ユーザーの計算装置の公開鍵を銀行のサーバー８４に転送することができる。銀行のサーバー８４は、可能性のある複数のキーボード入力に対応する符号を変換するための追加的な保護手段を必要とするので、銀行のサーバーの暗号化エンジン８６は、擬似乱数のセッション鍵を生成することができ、これは、後で対称暗号化に使用することができる。
【００７８】
公開鍵暗号化は、セッション鍵を共有するために、銀行サーバー８４とユーザーの計算装置との間で使用することができる。図を見ると、銀行サーバー８４は、ユーザーの計算装置の公開鍵を利用して、セッション鍵を暗号化し、その暗号化したセッション鍵を世界的なネットワークを渡ってユーザーの計算装置８２へ送信することができる。ユーザーの計算装置８２は、ユーザーの計算装置の公開鍵を利用して、セッション鍵を解読する。セッション鍵は、ユーザーの計算装置８２のメモリ内に記憶することができる。セッション鍵は、ＲＳＩＤ５０へ転送して、第１メモリセクション５４内に記憶することができる。一旦、セッション鍵が解読されると、ユーザーの計算装置８２と銀行のサーバー８４との間の通信は、セッション鍵を利用して対称的に暗号化することができる。
【００７９】
銀行のサーバーは、暗号化エンジン８６にセッション鍵を利用させて、変換命令を対照的に暗号化することができる。対称的に暗号化された変換命令は、銀行のサーバーのプロセッサ８８へ転送されて、その後、ネットワークを渡ってユーザーの計算装置８２へ転送されるだろう。ユーザー計算装置のプロセッサ９０は、対称的に暗号化された変換命令を解読して、変換命令をＲＳＩＤ５０に転送することができる。代わりに、ユーザーの計算装置のプロセッサ９０は、対称的に暗号化された変換命令を、ユーザーの計算装置８２で解読しようとせずに，直接ＲＳＩＤ５０に転送することができる。ＲＳＩＤ５０は、それまでに第１メモリセクション５４内に記憶されているセッション鍵を持っているので、ＲＳＩＤ６０は、セッション鍵を利用して、対称的に暗号化された変換命令をＲＳＩＤ５０の中で解読することができる。一旦、対称的に暗号化された変換命令がＲＳＩＤ５０の中で解読されると、変換命令は、第２メモリセクション５６内に記憶することができる。
【００８０】
ＲＳＩＤプロセッサ６０は、変換命令を実行することができる。変換命令は、可能性のある実際の入力装置の入力全てを代表する符号が、いかに変換されて、銀行のサーバーの変換要求に合致することができるかを識別する。変換命令の実行によって、複数の変換済み符号が作られ、これは、可能性のある実際の入力装置の入力全ての代表である。複数の変換済み符号と、可能性のある実際の入力装置の入力全てを代表する複数の値は、その後、変換済み参照表の中に記憶され、これは、第３メモリセクション５８の中に置かれる。少なくとも一つの変換命令が実行されたので、ＲＳＩＤ５０からの全ての実際の入力装置の入力は、ＲＳＩＤ６０内に置かれる、標準の参照表でなく変換済みの参照表を利用することができる。
【００８１】
標準的なキーボードを利用する本発明の一実施形態において、ユーザー計算装置のユーザーは、今度は、ＲＳＩＤ５０上の適当なキーを押すことにより、機密情報（金額や銀行交換番号等）を入力することができる。各キーボード入力が受信されると、ＲＳＩＤプロセッサ６０すなわちキーボードプロセッサは、実際のキーボード入力を、その実際のキーボード入力を代表する変換済み参照表内の値と合わせることができる。ＲＳＩＤプロセッサ６０は、その後、実際のキーボード入力を代表する値に対応する変換済み符号を用いることによって、キーボード入力を代表する変換済み符号を生成することができる。実際のキーボード入力を代表する変換済み符号は、一時的なバッファが、一時的なバッファを満たすのに十分なだけの変換された符号を受信するまで、ＲＳＩＤプロセッサ６０内の一時的なバッファに記憶することができる。本発明の本実施形態において、ＲＳＩＤプロセッサ６０は、第１メモリセクション５４内に記憶されるセッションキーを利用して、一時的なバッファからの変換済み符号を解読して、対称的に暗号化された変換済み符号を作ることができる。本発明の他の一実施形態において、ＲＳＩＤプロセッサ６０は、セッションキーを利用して、変換済み符号が生成されるすぐ後に、各変換済み符号を対称的に暗号化することができる。
【００８２】
ＲＳＩＤプロセッサ６０は、対称的に暗号化された変換済み符号をユーザー計算装置８２へ送信することができる。本発明の他の一実施形態において、ユーザーの計算装置のプロセッサ９０は、対称的に暗号化された変換済み符号を、直接に銀行サーバー８４にインターネット経由で送信することができる。銀行のサーバープロセッサ８８と暗号化エンジン８６は、セッションキーを利用して、対称的に暗号化された変換済み符号を解読することができ、その結果、変換済み符号は、銀行サーバー８４の中に常駐することができる。銀行のサーバー８４が、変換命令を与えたので、銀行のサーバーのプロセッサ８８は、それぞれが変換済み符号であるところの、可能性のあるキーボード入力のいずれが代表であるかを理解する。こうして、銀行のサーバーのプロセッサ８８は、完全に安全で、ハッカーがいかなるデータも妨害できないような送信で、ユーザー計算装置８２の秘密情報、すなわち、口座情報や支払額や銀行交換番号等を、ユーザーから読み出すことができる。
【００８３】
図８は、本発明の再構成可能で安全な入力装置のデータフロー図を表している。再構成可能で安全な入力装置（ＲＳＩＤ）は、計算装置から暗号化鍵と少なくとも一つの変換命令を受信する（１００）。ＲＳＩＤプロセッサ１０２は、第１メモリセクション内に暗号化鍵を記憶し（１０２）、変換命令を第２メモリセクション内に記憶する（１０４）。ＲＳＩＤプロセッサは、変換命令を利用して、ＲＳＩＤからの複数の可能性のある実際の入力装置の入力の内の一つに対応する、複数の変換済み符号を生成する（１０６）。ＲＳＩＤプロセッサ６０は、複数の変換済み符号を、変換済み参照表内の複数の値を共に記憶するが、ここで複数の値は、可能性のある実際の入力装置の入力の各々に対応する（１０８）。ＲＳＩＤプロセッサ６０は、実際のＲＳＩＤ入力を受信する（１１０）。ＲＳＩＤプロセッサ６０は、実際のキーボード入力を、可能性のある実際の入力装置の入力の各々に対応する複数の値の内の一つと合わせて、一致する値を作る（１１２）。ＲＳＩＤプロセッサ６０は、変換済み参照表から一致する値に対応する変換済み符号を出力する（１１４）。
【００８４】
上述したのは、本発明の特定の実施形態に関してであり、多くの変更がその趣旨から離れずに可能であることは理解されよう。添付の特許請求の範囲は、本発明の正確な範囲と趣旨の中にあるような変更を網羅するように意図してある。従って、ここに開示した実施形態は、あらゆる面において、説明した通りにそして制限無く理解されるべきであり、本発明の範囲は、前述の説明でなく添付の特許請求の範囲によって示され、特許請求の範囲と等価な意味と範囲内にある全ての変更は、その中に包含されることを意図している。
【図面の簡単な説明】
【００８５】
【図１】従来技術による、コンピュータ間の公開鍵暗号化のメッセージの流れを示す図である。
【図２】従来技術による、第１計算装置と第２計算装置間のディジタル署名の使用における段階を示す図である。
【図３】従来技術による、２つの計算装置間で公開鍵暗号化におけるディジタル署名と共に利用されるハッシュ機能を示す図である。
【図４】本発明の一実施形態による、安全な通信システムを示す図である。
【図５Ａ】本発明の一実施形態による、再構成可能で安全な入力装置を示す図である。
【図５Ｂ】本発明の一実施形態による、再構成可能で安全な入力装置と計算装置とを含む、安全な計算サブシステムを示す図である。
【図５Ｃ】本発明の一実施形態による、再構成可能で安全な入力装置と計算装置とを含む、安全な計算サブシステムを示す図である。
【図５Ｄ】本発明の一実施形態による、再構成可能で安全な入力装置と計算装置と暗号化生成器とを含む、安全な計算サブシステムを示す図である。
【図６】本発明の一実施形態による、処理カード装置を持った、再構成可能で安全なキーボード入力装置を示す図である。
【図７】本発明の一実施形態による、安全な通信システム内の再構成可能で安全な入力装置の、電子支払いアプリケーションを示す図である。
【図８】本発明の再構成可能で安全な入力装置のデータフローを示す図である。
【符号の説明】
【００８６】
４２…第１計算装置
４４…第２計算装置
４６…ネットワーク
４８…第１計算装置プロセッサ
５０，５０６…再構成可能で安全な入力装置
５２，５１６…実際の入力装置
５４…第１メモリセクション
５６…第２メモリセクション
５８…第３メモリセクション
６０，５１４…ＲＳＩＤプロセッサ
５００…計算装置
５０２…プロセッサ
５０４…暗号化装置
６０…キーボードプロセッサ
７２…スマートカード読み取り器
８２…ユーザーの計算装置
８４…銀行のサーバー
８６…暗号化エンジン
８８…銀行のサーバープロセッサ
９０…ユーザーの計算装置のプロセッサ
【図１】
2004240434.tif 000003
【図２】
2004240434.tif 000004
【図３】
2004240434.tif 000005
【図４】
2004240434.tif 000006
【図５Ａ】
2004240434.tif 000007
【図５Ｂ】
2004240434.tif 000008
【図５Ｃ】
2004240434.tif 000009
【図５Ｄ】
2004240434.tif 000010
【図６】
2004240434.tif 000011
【図７】
2004240434.tif 000012
【図８】
2004240434.tif 000013