説明

埋込可能医療デバイスのテレメトリのための暗号認証

埋込可能医療デバイスと外部プログラマの間で通信される無線テレメトリによるメッセージの保全性が、メッセージを符号化することによって認証される。メッセージは、乱数またはタイム・スタンプ、および秘密鍵に基づいて暗号化される。メッセージは、暗号化および復号、またはハッシュ関数の実行によって認証される。

【発明の詳細な説明】
【技術分野】
【0001】
本主題は、心臓ペースメーカや埋込可能除細動器などの埋込可能医療デバイスに関する。具体的には、本主題は、埋込可能医療デバイスを使用したテレメトリのためのデータ認証に関する。
【背景技術】
【0002】
ペースメーカや埋込可能除細動器などの心調律管理デバイスを含めて、埋込可能医療デバイスは通常、外部プログラマと呼ばれるデバイスと無線周波数テレメトリ・リンクを介して通信する能力を有する。
【0003】
従来の埋込可能医療デバイスは、誘導テレメトリ・コイルまたは他の短距離通信チャネルを用いてリモート・プログラマとデータを交換する。手持ち型のワンドが埋込可能デバイスから数インチ以内に置かれ、データが誘導結合によって転送される。
【0004】
メッセージの長距離テレメトリが登場し、またそれに付随して通信範囲が増加するのに伴い、メッセージが損なわれるリスクが増加する。たとえば、メッセージまたはメッセージの一部が捕捉され、後に悪意のあるやり方で使用されるという再生攻撃が行われる。
【発明の開示】
【発明が解決しようとする課題】
【0005】
改良型テレメトリのためのシステムおよび方法が求められている。
【課題を解決するための手段】
【0006】
本主題は、メッセージで通信されるデータを認証するための方法とシステムを含む。具体的には、本主題は、メッセージの保全性が損なわれていないことと、通信セッションが許可されていることを検証するための方法とシステムを提供する。
【0007】
ある実施態様では、メッセージは、同じ鍵を使用してメッセージが暗号化され、復号される対称暗号化アルゴリズムを使用して伝達される。ある実施態様では、メッセージは、送信側と受信側の両方によって使用される一方向ハッシュ・アルゴリズムを使用して伝達され、受信側がメッセージの保全性が保たれていることを検証することを可能にする。
【0008】
他の態様は、以下の詳細な説明を読み、またその一部を形成する図面を見ると明らかになる。
【発明を実施するための最良の形態】
【0009】
以下の詳細な説明では、本明細書の一部を形成しており、また本主題が実施される特定の実施形態が例として示されている諸図面を参照する。これらの実施形態は、当業者が本主題を実施できるようにするのに十分なほど詳細に述べられており、諸実施形態は組み合わされることができ、または他の実施形態が使用されることができ、また本主題の範囲から逸脱せずに構造、機械、論理、電気に関する変更が加えることができることを理解されたい。したがって、以下の詳細な説明は限定的な意味で解釈されるべきでなく、本主題の範囲は、添付の特許請求の範囲およびその均等物によって定められる。
【0010】
上述したように、心臓ペースメーカなどの埋込可能医療デバイスに使用される従来のテレメトリ・システムは、信号を送受信するために、埋込可能デバイスと外部プログラマのアンテナ間の誘導結合を使用する。送信側アンテナによって生成される誘導磁界が距離と共に急速に低下するので、デバイス間の通常およそ数インチの距離で適切に働くためにこうしたシステムは、埋込可能デバイスと外部プログラマのワンド・アンテナとの間が非常に近いことを必要とする。
【0011】
一方、本主題は、遠距離放射を使用した埋込可能医療デバイスでのテレメトリを可能にするための装置と方法を含む。遠距離放射を使用した通信は、さらに大きい距離に渡って行われる。これによって、患者の遠隔監視など、テレメトリ・システムの他の応用や他のタイプの外部デバイスとの通信が可能となる。遠距離放射に基づくテレメトリには、無線周波数テレメトリ、音響テレメトリ、電界テレメトリが含まれる。
【0012】
図1Aは、外部デバイス30と埋込可能デバイス60とを含むシステム20Aを示している。外部デバイス30は、プログラマまたはリピータと称されることがある。様々な実施形態において、プログラマは、表示画面、プリンタ、あるいはオペレータにデータを運び、操作者によって入力され、または入力インターフェースから受信されたデータまたは他の命令を受信する他の出力デバイスを含む。様々な実施形態において、リピータは、遠隔監視またはプログラミングを可能にする、通信ネットワークとのインターフェースを備えるデバイスを含む。様々な実施形態において、リピータは、埋込可能デバイスと通信ネットワークの間で通信し、通信範囲を有効に拡張するデバイスを指す。ある実施形態では、リピータは、家庭内の電話回線に接続されており、したがって医療関係者が旧来の電話サービス(POTS:plain old telephone service)網を介してその家の住居者の埋込可能デバイスを監視することを可能にする。ある実施形態では、リピータは、ケーブル・モデムまたは他のインターフェースを用いてインターネットなどのネットワークに通信可能に結合される。
【0013】
埋込可能デバイス60は、ペースメーカ、心臓除細動器、細動除去器、あるいは生理学的な状態を監視し、電気エネルギー、薬またはその任意の組合せを用いて治療を行うように構成された他の埋込可能デバイスを含む。
【0014】
外部デバイス30は、メモリ32、プロセッサ34、データ入力ポート36、データ出力ポート38、テレメトリ40、テレメトリ42を含む。
【0015】
メモリ32は、本主題によるアルゴリズムを実装するためのデータ、ファームウェア、ソフトウェアを格納するように適応される。様々な実施形態において、メモリ32は、読出し専用メモリ、ランダム・アクセス・メモリまたは他のタイプの記憶装置を含む。
【0016】
プロセッサ34は、メモリ32内に格納された認証アルゴリズムを実行するように構成される。
【0017】
データ入力ポート36は、プロセッサ34に結合される。様々な実施形態において、データ入力ポート36は、キーボード、マウス、コントローラ、データ記憶装置または他のデータ入力手段を含む。ある実施形態では、データ入力ポートは、有線または無線ネットワーク接続、モデムまたはデータ・バスを含む。データ入力ポート36は、受信側デバイスに通信されるメッセージとして直接的にまたは間接的に働くデータまたは命令を受信する。ある実施形態では、プロセッサ34は、測定されまたは計算されたパラメータに基づいて埋込可能デバイス60のためのメッセージを独立に生成する。
【0018】
データ出力ポート38はプロセッサ34に結合される。様々な実施形態において、データ出力ポート38は、プリンタ、表示装置、オーディオ・トランスジューサ、データ記憶装置または他の出力デバイスを含む。データ出力ポート38によって、埋込可能デバイスまたは外部デバイスからの結果、データまたはメッセージは、操作者により知覚可能なものとなる。
【0019】
テレメトリ40は遠距離トランシーバを含み、遠距離放射を送受信するように構成されたアンテナに結合される。テレメトリ42は、短距離無線テレメトリ・トランシーバを含み、またある実施形態では、誘導アンテナを含む。遠距離無線周波数結合などの遠距離無線通信手段や誘導結合などの近距離無線通信手段は、参照により本明細書に組み込まれている、2001年12月19日に出願された、同一出願人による米国特許出願第10/025183号、「AN IMPLANTABLE MEDICAL DEVICE WITH TWO OR MORE TELEMETRY SYSTEMS」、発明人Jeffrey A.Von Arx他に開示されている。
【0020】
埋込可能デバイス60は、メモリ62とプロセッサ64と電気回路66とテレメトリ68とテレメトリ70とを含む。
【0021】
メモリ62は、本主題によるアルゴリズムを実装するためのデータ、ファームウェア、ソフトウェアを格納するように適応される。様々な実施形態において、メモリ62は、読出し専用メモリ、ランダム・アクセス・メモリまたは他のタイプの記憶装置を含む。
【0022】
プロセッサ64は、メモリ62内に格納された認証アルゴリズムを実行するように構成される。
【0023】
様々な実施形態において、電気回路66は、パルス発生器、ペースメーカ、除細動器、治療回路、監視回路、換気量センサ、インピーダンス測定回路、呼吸センサ、あるいは治療を行うように構成され、または生理学的な状態または事象を監視するように構成された他の回路を含む。
【0024】
テレメトリ68は、トランシーバを含み、遠距離放射を送受信するように構成されたアンテナに結合され、外部デバイス30のテレメトリ40と協働する。テレメトリ70は、近距離無線テレメトリ・トランシーバを含み、ある実施形態では誘導アンテナを含み、また外部デバイス30のテレメトリ42と協働する。ループの形の誘導アンテナに加えて、たとえばソレノイドを含めて、他のアンテナの形も企図されている。
【0025】
外部デバイス30と埋込可能デバイス60は、無線周波数伝送を使用してテレメトリ40とテレメトリ68の間の遠距離通信を可能にするように構成される。さらに、外部デバイス30と埋込可能デバイス60は、誘導結合されたアンテナを使用してテレメトリ42とテレメトリ70の間の近距離通信を可能にするように構成される。
【0026】
ある実施形態では、遠距離通信セッションが、まず誘導結合された通信セッションを確立することによって開始される。図1Aに示す実施形態では、外部デバイス30は、近距離アンテナを使用して埋込可能デバイス60と通信するためのテレメトリ42を含む。図1Bに示す実施形態では、補助または外部デバイス80が、誘導結合アンテナを使用して埋込可能デバイス60と通信するために使用される。補助デバイス80は、テレメトリ40とテレメトリ68の間の遠距離通信への移行が後に続いて行われる、誘導アンテナを介したテレメトリ70との通信を確立するために使用される。デバイス80は、プロセッサ82と誘導テレメトリ84とアンテナ86と電気回路24とメモリ26とを含む。デバイス80は、リンク37を介して外部デバイス30のプロセッサ34と通信状態にある。リンク37は、安全なデータを通信するためのチャネルを含む。たとえばある実施形態では、リンク37は、デバイス80からデバイス30に暗号鍵を中継するために使用される。様々な実施形態において、リンク37は、有線接続と無線通信チャネルとを含む。
【0027】
図2は、第1のデバイス210Aと第2のデバイス240Aとを含むシステム20Bを示しており、これらのデバイスのうちの1つは体内に埋め込み可能であり、もう1つは外部にある。たとえばある実施形態では、デバイス210Aはリピータまたはプログラマを含み、デバイス240Aは埋込可能パスル生成器を含む。図2のデバイス210Aまたは240Aが、図1Aの外部デバイス30または埋込可能デバイス60に対応するデバイス内で実装される。
【0028】
通常、埋込可能デバイスと外部デバイスは使用可能な電源と処理容量が互いに異なる。具体的には、プログラマであれリピータであれ、外部デバイスの電源は、置換可能なまたは充電可能なバッテリを含み、あるいは従量制の回線サービスへの有線接続を含む。それとは異なり、埋込可能デバイスの電源は一般に、取り替えるには外科的な処置を必要とするバッテリであり、簡単には充電することができない。得られる電源が限られていること、また物理的サイズへの考慮により、埋込可能デバイスの処理容量は一般に、外部デバイスのそれと比べて小さい。
【0029】
デバイス210Aは、他の要素もあるが特に挙げると、メモリ215、メモリ220、メッセージ・モジュール225、ハッシュ値生成器230を含む。デバイス210Aの選択された要素は、別個のものとして示されているが、組み合わされることがあるのを理解できるであろう。たとえば、メモリ215とメモリ220が単一の物理メモリ・デバイス内に存在してもよく、メッセージ・モジュール225とハッシュ値生成器230がプロセッサ内に単独に実装され、あるいはネットワーク接続やキーボードなどデータ入力デバイスと共にプロセッサ内に実装されることもある。
【0030】
メモリ215は、秘密鍵の記憶域を提供する。鍵は、秘密に保たれた文字列である。長い鍵は一般に、より短い鍵に比べて大きい安全性をもたらす。
【0031】
メモリ220は、コードの記憶域を提供する。ある実施形態では、コードは、通信セッション内の特定のメッセージの通信を可能にするためのメッセージ鍵の働きをする文字列である。通信セッションは、たとえば医療施設への事後の訪問時に発生する一連の交換を指す。ある実施形態では、セッションの各メッセージは一意のコードで認証される。様々な実施形態において、コードは、図に示されるように第2デバイス240Aによって生成され、または第1デバイス210Aによって生成されるタイム・スタンプまたは乱数を含む。コードは、メッセージ(またはメッセージの断片)が無許可のユーザによって捕捉され、通信システムを危険にさらすために後に使用される再生攻撃を阻止するための鮮度の尺度(measure of freshness)を提供する。
【0032】
図示する実施形態では、メッセージ・モジュール225は、第2デバイス240Aに伝達されるメッセージを表している。ある実施形態では、メッセージ・モジュール225は、キーボードなどのデータ入力デバイスを含み、またはそれに結合される。ある実施形態では、メッセージ・モジュール225は、プロセッサ上で実行されるアルゴリズムの関数として生成されるデータを格納するためのメモリを含む。ある実施形態では、メッセージ・モジュール225は、第2デバイス240Aへの引渡しのために命令をリモート・プロセッサから受信するためのネットワーク接続を含む。ある実施形態では、メッセージ・モジュール225は、測定された生理学的パラメータ、または埋込可能デバイスによって決定された他のパラメータに基づいてメッセージを生成する。
【0033】
メモリ215から受信された鍵、メモリ220から受信されたコード、メッセージ・モジュール225から受信されたメッセージを使用してハッシュ値生成器230は、ハッシュ関数に従って一意の値を計算する。ハッシュ関数は、可変長の入力文字列を取り、ハッシュ値、メッセージ・ダイジェストまたは指紋と呼ばれる固定長、一般にはより短い出力文字列に入力文字列を変換する一方向関数である。具体的には、ハッシュ値生成器230への入力のうちの1つは秘密鍵なので、出力ハッシュ値はメッセージ認証コード(MAC)またはデータ認証コード(DAC)と称される。図では、デバイス210Aによって生成されるメッセージ認証コードは、MAC1 235と示されている。
【0034】
ハッシュ・アルゴリズムは、所与のメッセージ・ダイジェストに対応するメッセージを見つけること、または同じメッセージ・ダイジェストを生成する2つの異なるメッセージを見つけることが計算的に実行不可能であるので、安全であるとされている。したがって、変更されたメッセージでは、メッセージ・ダイジェストにおいて検出可能な変化がもたらされる。
【0035】
様々なハッシュ・アルゴリズムが、ハッシュ値、したがってメッセージ認証コードの生成のために使用される。たとえば、セキュア・ハッシュ・アルゴリズム(SHA−1)は、メッセージまたはデータ・ファイルの圧縮表現を生成する。アルゴリズムSHA−1は、参照により本明細書に組み込まれている、FIPS PUB 180−1 Secure Hash Standard、1995年4月に規定されている。アルゴリズムSHA−1は、最大264ビットのメッセージを圧縮し、20バイトのメッセージ・ダイジェストを生成することができる。ハッシュ・アルゴリズムの追加の例にはメッセージ・ダイジェスト・アルゴリズムが含まれ、このアルゴリズムの一部は、MD2、MD4、MD5として知られている。アルゴリズムMD2、MD4、MD5はそれぞれ、128ビット長の圧縮されたメッセージ・ダイジェストを提供する。MD2、MD4、MD5についての説明とソース・コードは、それぞれが参照により本明細書に組み込まれている、Internet Request For Comment RFC1319、RFC1320やRFC1321において見ることができる。
【0036】
第2デバイス240Aは、様々な実施形態においてタイム・スタンプ、乱数、または新鮮度の何らかの他の尺度を生成するコード生成器245Bを含む。コード生成器245Bの出力は、第2デバイス240Aのメモリ260内に格納される。ある実施形態では、コード生成器245Bによって生成されるコードは、通信リンク292によって示されるように、デバイス210Aのコード生成器245Aによって生成されるコードと同期される。一例として、コードは、乱数生成器で使用される同じシードを使用するように調整することによって同期される。コード生成器245Aは、デバイス210Aのメモリ220内に格納するのためのコードを提供する。ある実施形態では、通信リンク292は、暗号化せずに通信する有線または無線の平文リンクである。別の実施形態では、コードは、暗号化または他の安全な通信手法を使用して送信される。図に示された実施形態では、コード生成器245Aとコード生成器245Bは、互いに同期されたリアルタイム・クロックを含み、それぞれがタイム・スタンプを供給する。
【0037】
ある実施形態では、コードはタイム・スタンプを含み、第1デバイス210Aと第2デバイス240Aの両方が、コードを生成するように構成されたリアルタイム・クロックを含む。ある実施形態では、乱数がコードのために使用され、メッセージを受信するデバイスは、コードを選択し、メッセージ送信の前にメッセージ送信側デバイスにそのコードを送信する。双方向リンクの場合、第1デバイス210Aと第2デバイス240Aの両方が、コード生成器を含む。
【0038】
ある実施形態によれば、鍵は、通信セッションの最初に通信参加者に配布される。ある実施形態によれば、鍵は、誘導テレメトリ・システムを使用して外部デバイスによって埋込可能デバイスから受信される。誘導テレメトリ・リンクが、通信セッションを開始し、鍵を配布するために使用される。
【0039】
様々な実施形態において、鍵は、所定の期間の間、所定の数の交換の間、あるいは他のやり方で取り消されまたは別の鍵で置き換えられるまで有効なままである。ある実施形態では、鍵は、通信セッションの継続時間の間有効なままであり、誘導リンクによって通信参加者間で交換される。たとえば、埋込可能デバイスの鍵は、1日、1週間、1ヶ月、1年またはデバイスの寿命の間有効のままであってもよい。ある実施形態では、初期の鍵は埋込可能デバイスによって生成され、その後のコードは、埋込可能デバイスまたは外部デバイスによって確立される。ある実施形態では、埋込可能デバイス用の鍵は、プログラマを使用した暗号化された交換によって変更される。
【0040】
コードがリンクの片側によって選択される(タイム・スタンプ以外のコードが使用される場合などの)ある実施形態では、メッセージ受信側は、そのメッセージのためのコードを選択する。一方、メッセージ送信側がコードの選択を許可される場合、通信セッションは再生攻撃を受けやすい。再生攻撃では、正当な送信側がコードを選択し、受信側にコードを通信し、次いで有効なコマンドを送信する。敵意のある送信側は、この交換を記録し、後にこのセッションを乗っ取る。次に、悪意のある送信側は、前の交換を再現することができ、メッセージ受信側は、正当なコード(前に受信したのと同じコード)、次いで正当なコマンド(前に受信したのと同じコマンド)を受信する。
【0041】
再生攻撃を防止するため、シーケンスは以下の通りである。まず、メッセージ発信元デバイスは、メッセージ受信側デバイスにコードを要求する。メッセージ受信側デバイスは、そのメッセージのコードをランダムに選択し、そのコードを(平文または暗号文として)メッセージ発信元デバイスに通信する。次いで、メッセージ送信側デバイスは、鍵とコードで生成されたハッシュと共にメッセージを送信する。このイベント・シーケンスでは、前のコードを再現する敵意ある送信側は、受信側をだますことができない。
【0042】
第2デバイス240Aは、鍵を格納するように構成されたメモリ255を含む。鍵は、安全なやり方で通信参加者に配布される。ある実施形態では、鍵は、デバイスの製造またはデバイスの移植時に確立される。さらに、鍵は、無許可のデバイスからはアクセス不可能であるように保存される。ある実施形態では、鍵は、誘導結合された通信リンクによりテレメトリ・セッションの最初に交換される。
【0043】
ある実施形態では、鍵は、特定のデバイスに固有のデータに基づいてハッシュ関数を実行することによって生成される。たとえば、埋込可能デバイスの製造時刻、製造日付、モデル番号、シリアル番号の任意の組合せが、ハッシュ・アルゴリズムへの入力として使用され、鍵はメッセージ・ダイジェストの関数として決定される。データに固有の他のデバイスもまた、メッセージ・ダイジェスト、したがって鍵の生成に使用される。たとえばある実施形態では、測定されまたは計算された、デバイスの性能に固有のパラメータまたは特性が、ハッシュ・アルゴリズムへの入力として使用される。ある実施形態では、ハッシュ関数の入力に使用されるデータは、外部の読取り装置または他のデバイスからは一般にアクセス不可能であるメモリ位置に格納される。ある実施形態では、ハッシュ関数の入力に使用されるデータは、たとえばループ・アンテナを使用した誘導結合リンクを用いて読み取られるメモリ位置に格納される。ある実施形態では、鍵を生成するのに使用されるハッシュ関数はメッセージ認証コードを生成するのに実行されるハッシュ関数とは異なる。
【0044】
第2デバイス240Aはメッセージを格納するように構成されたメモリ250を含む。ある実施形態では、メッセージは、通信リンク294で示すように第1デバイス210Aから第2デバイス240Aに平文で送信される。ある実施形態では、メッセージは暗号化された形で送信される。
【0045】
第2デバイス240Aは、メモリ250、メモリ255、メモリ260に結合されたハッシュ値生成器265を含む。ある実施形態では、単一のメモリ・デバイスが、本明細書では250、メモリ255、メモリ260と示された記憶レジスタの任意の組合せの少なくとも1つを含む。ハッシュ値生成器265は、メモリ250からメッセージ、メモリ255から鍵、メモリ260からコードを受信し、ハッシュ関数に従って一意のハッシュ値を計算する。ハッシュ値生成器265によって生成されたハッシュ値は、MAC2 270と示されたメッセージ認証コードである。ある実施形態では、ハッシュ値生成器265は、第2デバイス240A内のメモリ内に格納されたアルゴリズムを実行するプロセッサを含む。ハッシュ値生成器265によって実行されるハッシュ関数は、ハッシュ値生成器230によって実行されるハッシュ関数と同じである。
【0046】
第2デバイス240Aは、MAC1 235とMAC2 270の比較に基づいて出力を生成する比較器275を含む。通信リンク296は、メモリ280への格納のためMAC1 235を第2デバイス240Aに提供するための通信チャネルを備える。様々な実施形態において、通信リンク296は、平文または暗号文を伝達する。ある実施形態では、比較器275は、第2デバイス240Aのプロセッサを含む。
【0047】
比較器275の出力は、MAC1 235がMAC2 270に一致するかどうか判断される問合せ285で評価される。MAC1 235とMAC2 270の比較によって差が認められない場合は、メッセージは認証されたものとして扱われ、比較によって差が認められる場合は、メッセージは認証されていないものとして扱われる。メッセージが認証される場合は、メッセージのさらなる処理が、第2デバイス240Aの他の要素によって実施され、この要素のうちのいくつかは図に示されていない。メッセージが認証されない場合、ある実施形態では、さらなる措置は取られない。ある実施形態では、メッセージが認証されない場合、エラー・フラグが設定され、それに応じてさらなる措置が取られる。ある実施形態では、問合せ285は、第2デバイス240Aのプロセッサ上で実行されるアルゴリズムを含む。
【0048】
様々な実施形態において、代表的な通信リンク292、294、296は、無線通信チャネルである。たとえば、通信リンク292、294、296は、誘導テレメトリ・チャネルと遠距離テレメトリ・チャネルの任意の組合せの少なくとも1つを含む。他の通信リンクも企図されている。たとえばある実施形態では、ループ・アンテナを含むリンクが、短距離テレメトリを使用して鍵を交換するために設けられる。さらに、ある実施形態によれば、コードは、リンク292を使用した通信セッション内で交換されるメッセージ毎に交換される。ある実施形態では、通信リンク292、294、296は、遠距離リンクであり、遠距離送信機を含む。たとえば、通信リンク294はメッセージを平文で伝達し、通信リンク296は、第1デバイス210Aによって生成されたメッセージ認証コード235をはやり平文で伝達する。
【0049】
ある実施形態では、リンク292は、第1デバイス210Aと第2デバイス240Aの両方が、コード生成器の働きをするリアルタイム・クロックを含むので省かれる。ある実施形態では、送信されるメッセージ毎に新しいコードがリアルタイム・クロックを使用して生成され、そのコードは遠距離送信を使用して平文で送信される。
【0050】
図3は、本主題の一実施形態によって実施される方法300を示している。イベント・シーケンスが変更され、一部のイベントが省略される他の方法も企図されている。方法300は、メッセージを第1デバイスから第2デバイスに通信することを伴い、メッセージが本物であることが第2デバイスによって検証される。305で開始し、この方法は310に進み、秘密鍵が第1デバイスと第2デバイスの両方に格納される。鍵は、その識別が通常秘密に保たれており、第2デバイスと許可された第1デバイスだけに知られている所定の文字列を含む。ある実施形態では、鍵は、無許可のアクセスを防ぐためにリモート手段による読取りが不可能にされた第2デバイスのメモリ内に格納される。ある実施形態では、鍵は、誘導リンクにより交換される。鍵は、暗号化されて交換されることも、平文として交換されることもある。
【0051】
315で、コードが、第1デバイスによって第2デバイスから受信される。コードは、たとえば遠距離テレメトリ・リンクなどの通信リンクで、第1デバイスによって受信される。様々な実施形態において、コードは、第2デバイスによって生成されたタイム・スタンプまたは乱数を含む。315の後に、第1デバイスと第2デバイスの両方が、メモリ内に格納されたコードを有する。ある実施形態では、コードは平文で交換される。
【0052】
320で、第1デバイスは、鍵、コード、メッセージに基づいてメッセージ認証コードを生成する。メッセージ認証コードは、一方向ハッシュ値を含む。様々な実施形態において、メッセージは、命令、データまたは他のコンテンツを含む。
【0053】
325で、第1デバイスによって生成されたハッシュ値が第2デバイスに通信される。さらに、メッセージが、第1デバイスから第2デバイスに送信される。ある実施形態では、ハッシュ値とメッセージは、遠距離送信機を使用して平文で送信される。
【0054】
330で、ハッシュ値とメッセージが第2デバイスによって受信され、メモリ内に格納される。
【0055】
335で、第2デバイスは、格納された鍵、格納されたコード、第1デバイスから受信されたメッセージに基づいて第2ハッシュ値を独立に生成する。ある実施形態では、第2ハッシュ値は、第1デバイスのアルゴリズムに一致するアルゴリズムを使用して計算されたメッセージ認証コードである。
【0056】
340で、第1デバイスから受信されたハッシュ値と第2デバイスによって計算されたハッシュ値が、第2デバイス上で比較される。メッセージが本物であることは、ハッシュ値が一致する場合に確認される。
【0057】
方法300は345で終了するが、しかし、他の処理が行われてもよい。たとえばある実施形態では、ハッシュ値の比較の結果に応じて、後続のアルゴリズムまたは手順が実行される。具体的には、ある実施形態によれば、メッセージが本物であることが確認される場合はメッセージ内のいずれかの命令が実行され、メッセージが本物であることが確認されない場合はメッセージは廃棄される。
【0058】
図4は、第1デバイス210Bと第2デバイス240Bの間で通信されるメッセージを認証するために対称暗号化アルゴリズムが使用されるシステム20Cを示している。本文献の他所で述べたように、第1デバイス210Bのメモリ215と第2デバイス240Bのメモリ255はそれぞれ、秘密鍵の記憶域を提供する。さらに、第1デバイス210Bのメモリ220と第2デバイス240Bのメモリ260はそれぞれ、第2デバイス240Bのコード生成器245Cから鮮度コードを受信する。このコードは、通信リンク292を経由して第2デバイス240Bから第1デバイス210Bに送信される。図に示す実施形態では、単一のコード生成器245Cが、デバイス240B内に置かれており、第1デバイス210Bと第2デバイス240Bにコードを提供する。
【0059】
図に示す実施形態によれば、メッセージは、第1デバイス210Bのメッセージ・モジュール225内から生じる。メッセージは、キーボード、記憶装置または他のデータ入力手段を使用して受信されるデータに基づいて生成される。さらに、メッセージは、リモート・デバイスから受信され、ネットワークまたは他の通信手段によって第1デバイス210Bに通信されたデータに基づいて生成される。様々な実施形態において、メッセージはデータと命令を含む。
【0060】
図示する実施形態では、第1デバイス210Bは、プロセッサによって実行される暗号化アルゴリズム430を含む。暗号化アルゴリズム430は、暗号文435を、鍵、コード、メッセージの関数として生成する。鍵とコードなしでは、無許可の受信側は、暗号文だけに基づいてメッセージの内容を判断することはできないと仮定されている。
【0061】
様々な対称暗号化方法が使用可能である。例には、それぞれの規格が参照により本明細書に組み込まれている、データ暗号化規格(DES)、トリプル・データ暗号化規格(3DES)、拡張暗号化規格(AES、連邦情報処理規格刊行197)、国際データ暗号化アルゴリズム(IDEA)、Blowfish(1993年、Bruce Schneierによる設計)、CAST(Entrust(登録商標) Technologies社)が含まれる。これらの方法の一部に関する追加の情報は、1987年のコンピュータ・セキュリティ法(PL 100−235)のもとで確立された組織である、情報技術研究所(ITL:Information Technology Laboratory)のコンピュータ・セキュリティ部門から入手可能である。
【0062】
暗号文435は、通信リンク437を使用して、第1デバイス210Bから第2デバイス240Bに無線で通信される。ある実施形態では、通信リンク437は、遠距離通信チャネルを含む。
【0063】
第2デバイス240Bは、暗号文435を格納するように構成されたメモリ440を含み、また復号アルゴリズム465を実行するように構成されたプロセッサを含む。復号アルゴリズム465は、平文メッセージ470を鍵、コード、暗号文435の関数として生成する。
【0064】
第2デバイス240Bは、認証チェック・アルゴリズム475を実行するように構成されたプロセッサを含む。様々な実施形態において、認証チェック・アルゴリズム475は、巡回冗長検査値を計算し、次いでこの巡回冗長検査値は、格納されまたは受信された値と比較される。ある実施形態では、認証チェック・アルゴリズム475は、送信側の識別を確認するために、受信されたメッセージ内に含まれる送信機の識別コードを検証する。
【0065】
図5は、本主題の一実施形態によって実施される方法500を示している。イベント・シーケンスが変更され、一部のイベントが省略される他の方法も企図されている。方法500は、メッセージを第1デバイスから第2デバイスに通信することを伴い、メッセージが本物であることが第2デバイスによって検証される。この方法は、505で開始し、510に進む。そこでは秘密鍵が第1デバイスと第2デバイスの両方に格納される。鍵は所定の文字列を含み、通常、この文字列の識別は秘密に保たれており、第2デバイスと許可された第1デバイスだけに知られている。ある実施形態では、鍵は、無許可のアクセスを防ぐためリモート手段による読取りが不可能にされた第2デバイスのメモリ内に格納される。ある実施形態では、鍵は、誘導的に交換され、平文の形であることも、暗号文の形であることもある。
【0066】
510で、コードが、第1デバイスによって第2デバイスから受信される。ある実施形態では、コードは、遠距離アンテナを含む通信リンクで、第2デバイスによって受信される。様々な実施形態において、コードは、第2デバイスによって生成されたタイム・スタンプまたは乱数を含む。515の後には、第1デバイスと第2デバイスの両方が、メモリ内に格納されたコードを有する。ある実施形態ではコードは平文で交換され、セッション内のメッセージ毎に新しいコードが選択される。
【0067】
520で、第1デバイスは鍵、コード、平文メッセージに基づいて暗号文を生成する。メッセージは、様々な実施形態において、命令、データまたは他のコンテンツを含む。
【0068】
525で、第1デバイスによって生成される暗号文が第2デバイスに通信される。ある実施形態では、暗号文は遠距離送信機を使用して送信される。
【0069】
530で、平文メッセージの生成のため、格納された鍵と格納されたコードの関数として受信された暗号文が復号される。
【0070】
535で、平文メッセージが、メッセージの内容を解析することによって認証される。たとえばある実施形態では、メッセージの発信元が本物であることを検証するため、メッセージ発信元に関連する識別コードが格納された値と比較される。ある実施形態では、メッセージの発信元が本物であることを検証するため、メッセージ発信元に関連する識別コードがメッセージで受信された値と比較される。ある実施形態では、誤り検出符号が、メッセージ認証のために計算される。ある実施形態では、誤り検出符号は巡回冗長符号を含む。メッセージで受信された誤り検出符号はメッセージの関数として計算された値と比較される。
【0071】
方法500は540で終了するが、しかし、他の処理が行われてもよい。たとえばある実施形態では、認証の結果に応じて、後続のアルゴリズムまたは手順が実行される。具体的には、ある実施形態によれば、メッセージが本物であることが確認される場合はメッセージ内のいずれかの命令が実行され、メッセージが本物であることが確認されない場合はメッセージは廃棄される。
【0072】
代替実施形態
ある実施形態では、メッセージ認証コードは、第1デバイス上で動作するハッシュ値生成器によって生成され、第2デバイス上で動作するハッシュ値生成器によって生成されたメッセージ認証コードと比較される。ある実施形態では、アルゴリズムは互いに同じである。
【0073】
ある実施形態では、パルス生成器(埋込可能デバイス)とプログラマ(外部デバイス)の両方が秘密鍵を所有している。通信セッションの最初に、パルス生成器は、プログラマにタイム・スタンプまたは乱数を送信する。次いで、プログラマは、秘密鍵に基づく第1のメッセージ認証コード、乱数(またはタイム・スタンプ)、パルス生成器に送信されるメッセージを計算する。プログラマは、メッセージと第1メッセージ認証コードをパルス生成器に送信する。次いで、パルス生成器は、秘密鍵、乱数(またはタイム・スタンプ)、受信されたメッセージに基づいて第2のメッセージ認証コードを計算する。メッセージが本物かどうか判断するために、パルス生成器は第1と第2のメッセージ認証コードを比較する。
【0074】
ある実施形態では、本主題は、埋込可能デバイスから外部デバイスに送信されるデータの認証に適用される。ある実施形態では、本主題は、外部デバイスから埋込可能デバイスに送信されるデータの認証に適用される。
【0075】
ある実施形態では、第1デバイスと第2デバイスの間で通信されるすべてのデータが認証される。ある実施形態では、第1デバイスと第2デバイスの間で通信される所定のフレームまたは他のデータ・サブセットが認証を受ける。
【0076】
ある実施形態では、秘密鍵またはコードの長さは、安全性への考慮または他の要因に基づいて調整される。
【0077】
本明細書で示される諸実施例では、コード生成器は、第2デバイスの一部として述べられている。しかし、ある実施形態では、コード生成器は第1デバイスの一部であり、結果として生じるコードは第2デバイスに伝達される。
【0078】
ある実施形態では、通信されるメッセージは、ハッシュ・アルゴリズムを使用してメッセージ・ダイジェストが計算される前にパディングされる。メッセージは、ハッシュ・アルゴリズムで使用するのに適したメッセージ長をもたらすように追加のビットを加えることによってパディングされる。
【0079】
ある実施形態では、特定の暗号化アルゴリズムが、安全性向上のため、複数回繰り返される。ある実施形態では、メッセージ認証コードは送信または比較の前に追加のハッシュ関数にかけられる。ある実施形態では、メッセージ認証コードは、あるデバイスから別のデバイスへの送信の前に暗号化される。ある実施形態では、1つの暗号化アルゴリズムまたは異なるアルゴリズムの複数のラウンドが暗号化テキストを送信する前に実行される。
【0080】
ある実施形態では、鍵は通信する前に暗号化される。
【0081】
ある実施形態では、このシステムは、セッション鍵とコードを使用するのではなく、時間と共に変化するメッセージ鍵を使用する。たとえばある実施形態では、そのメッセージ鍵は、セッション鍵とコードを使用して排他的論理和などの論理操作を実施することによって取得される。したがって、ハッシュ値が、時間的に変化するメッセージ鍵とメッセージを使用して生成される。
【0082】
ある実施形態では、タイム・スタンプがコードとして使用される。たとえば、1秒の分解能では、コードは1秒毎に変化する。通信セッションの最初に、2つのデバイス(たとえば埋込可能デバイスと外部プログラマなど)のリアルタイム・クロックを合わせる。クロックは一般に、通信の継続時間を通して、だんだん互いに離れていく。メッセージ発信元は、メッセージとタイム・スタンプの両方を受信側に平文で送信する。メッセージの送信の後に続いて、メッセージ発信元は、セッション鍵に対して(たとえばハッシュ・アルゴリズムとしてSHA−1を使用して)ハッシュ関数を実行することによって生成された、暗号化されていない(平文の)メッセージ認証コード、タイム・スタンプ、メッセージを送信する。次いで、メッセージ受信側は、(暗号化されていない形で送信された)受信されたタイム・スタンプを、メッセージ受信側のコード生成器(またはリアルタイム・クロック)によって生成されたタイム・スタンプと比較する。受信されたタイム・スタンプが、生成されたタイム・スタンプと所定の値より大きい量だけ異なる場合は、メッセージはさらなる処理をせずに廃棄される。受信されたタイム・スタンプと生成されたタイム・スタンプとが十分に近い(たとえば、それらが所定の値より小さい量だけ互いに異なる)場合は、メッセージはさらに処理される。ある実施形態では、所定の値は8秒である。タイム・スタンプが十分に近い場合は、メッセージ受信側はメッセージ認証コードを生成し、次いでこのメッセージ認証コードは、メッセージ発信元から受信されたメッセージ認証コードと比較される。メッセージ認証コードが一致する場合、メッセージは認証される。
【0083】
ある実施形態では、ハッシュ関数は、HMACと称され、またFRC2104に記載された認証アルゴリズムを含む。このアルゴリズムは、参照により本明細書に組み込まれている、FIPS PUB 198、Federal Information Processing Standards Publication、The Keyed−Hash Message Authentication Code(HMAC);Category:Computer Security Subcategory:Cryptography;Information Technology Laboratory、National Institute of Standards and Technology、Gaithersburg、MD 20899−8900、2002年3月6日発行、に記載されている。
【0084】
HMACに従って秘密鍵が、データ保全性とデータ発行元の認証を可能にする。HMACは、MD5、SHA−1他など、反復暗号ハッシュ関数を使用して実装される。さらに、HMACは、メッセージ認証値の計算と検証のために秘密鍵を使用する。
【0085】
HMACに従って、暗号ハッシュ関数はHと表され、秘密鍵はKと表される。関数Hは、データ・ブロックに対して基本の圧縮関数を反復することによってデータがハッシュされる暗号ハッシュ関数である。さらに、Bはこうしたブロックのバイト長を表し、Lはハッシュ出力のバイト長を表す。秘密鍵Kは、最大Bの任意の長さである。Bより長い鍵では、最初にHを使用してKをハッシュし、次いで、結果として生じるLバイト列をHMACへの実際の鍵として使用する。また2つの異なる固定文字列ipad(内)とopad(外)は、ipad=バイト0×36をB回繰り返した文字列と定義され、opad=バイト0×5CをB回繰り返した文字列と定義される。したがって、データ「text」に対するHMACは、H(K XOR opad,H(K XOR ipad,text))と計算される。具体的には、HMAC法は、以下の一連のステップを伴う。
(1)Kの最後にゼロを追加してBバイトの文字列を作成する(たとえば、Kが20バイトの長さで、B=64であれば、Kに44個のゼロのバイト0×00が追加される)。
(2)ステップ(1)で計算されたBバイトの文字列とipadとのXOR(ビット毎の排他的論理和)を計算する。
(3)ステップ(2)の結果として得られたBバイトの文字列にデータ「text」のストリームを追加する。
(4)ステップ(3)で計算されたストリームにHを適用する。
(5)ステップ(1)で計算されたBバイトの文字列とopadとのXOR(ビット毎の排他的論理和)を計算する。
(6)ステップ(5)の結果として得られたBバイトの文字列に、ステップ(4)のHの結果を追加する。
(7)ステップ(6)で生成されたストリームにHを適用し、その結果を出力する。
【0086】
ある実施形態では、ハッシュ関数はSHA−1を含み、アルゴリズムは、MAC=H(K+OPAD‖H(K+IPAD‖M)によって近似される。ただし、Kはある長さの鍵であり、K+は鍵へのいくらかのパディングであり、H()はハッシュ関数の適用であり、符号‖は連結を指す。値OPADとIPADは定数である。ある実施形態では、ハッシュ・アルゴリズムはメッセージ認証コードを生成するために2度実行され、結果は切り捨てられる。ある実施形態では、メッセージ認証コードは、128ビットの長さへと切り捨てられる。
【0087】
ある実施形態では、コード生成器はクロックを含む。クロックによって生成されるタイム・スタンプ値が、コードの働きをする。
【0088】
ある実施形態では、埋込可能デバイスと外部デバイスの両方がそれぞれ、内部クロックを含む。通信セッションの最初に、クロックが近距離通信リンクを使用して同期させられる。ある実施形態では、クロックは、誘導リンクを使用して同期される。送信側デバイスは、各メッセージまたはフレーム毎にタイム・スタンプ値を平文の形で送信する。さらに、送信側デバイスは、タイム・スタンプ値とメッセージの関数として生成されたメッセージ認証コードを送信する。受信側デバイスは、受信されたタイム・スタンプ値を、その自体の内部クロックによって供給された現在の時間値と比較する。受信されたタイム・スタンプ値と、受信側デバイスの内部クロックによって供給された現在の時間値が十分に近くない場合、メッセージは再生攻撃であるとされ、メッセージが廃棄される。ある実施形態では、8秒しか差がない時間値は、時宜を得たものとされる。受信側デバイスは、受信されたタイム・スタンプ値を使用して、受信されたメッセージ認証コードとの比較のためメッセージ認証コードを生成する。
【0089】
ある実施形態では、タイム・スタンプ値の平文のコピーを交換するのではなく、通信セッションの最初に、埋込可能デバイスと外部デバイスの内部クロックが同期される。クロックは所定の精度レベル内で同期され、送信される各メッセージは、送信側デバイスによって生成された現在のタイム・スタンプ値を含む。メッセージを認証するために受信側デバイスは、受信されたタイム・スタンプ値をそれ自体の内部クロック値と比較する。クロックの誤差を補償するために、時間値は所定のレベルへと丸められまたは切り捨てられ、クロック値がクロック遷移の所定の範囲内であれば、早い時間値と遅い時間値の両方がチェックされる。たとえば、ある実施形態では、時間値は直近の8秒値に丸められ、遷移端が次の値から1秒以内にある場合、早い値と遅い値の両方が比較される。
【0090】
ある実施形態では、それぞれのデバイスは、コード生成器として働く乱数(または疑似乱数)生成器を含む。これらの数生成器は互いに同じシード値を使用する。シードは、乱数または疑似乱数の数列を生成するのに使用される開始値である。ある実施形態では、シード値は、近距離通信リンクを使用して通信セッションの最初に交換され、そのセッションの後続の交換については、コード生成器によって供給される値は各フレームと共に送信される必要はない。ある実施形態では、コード生成器によって供給される値は、各フレームと共に平文で送信される。
【0091】
ある実施形態では、通信リンクが双方向性であり、埋込可能デバイスと外部デバイスの両方からのメッセージが認証される対象であれば、両方のデバイスがコード生成器を含む。
【0092】
ある実施形態ではメッセージを認証するために、メッセージを受信しているデバイスによってコードが選択される。認証される対象のデータが単一の送信で通信される場合、その送信の前に、受信デバイスは、まずコードを要求するように構成される。通信リンクが双方向性であり、また埋込可能デバイスと外部デバイスの両方がメッセージを認証するセッションでは、いずれかの特定のメッセージのコードが事前の交換で伝達される。
【0093】
ある実施形態では、静的な鍵が識別を提供するために使用され、動的なコードが鮮度の尺度を提供するために使用される。ある実施形態では、鍵は動的であり、鍵の値を時間の関数として変更することにより、鮮度の尺度がもたらされる。動的な鍵が鍵生成器によって供給され、様々な実施形態において、鍵生成器は、数生成器またはクロックを含む。こうした実施形態では、鍵は、ハッシュ・アルゴリズムで使用される。ある実施形態では、鍵は、タイム・スタンプと組み合わされる。鍵とコードの任意の組合せのうちの少なくとも1つは、メッセージと組み合わされる。たとえば、ある実施形態では、鍵とコードは、論理的に組み合わされ、HASHアルゴリズムで使用される。他の組合せ方法も企図されている。ある実施形態では、埋込可能デバイスと外部デバイスは、同じ初期値がシードとして与えられ(seed)、それらの乱数生成器は、一致する数列を提供する。ある実施形態では、コードは省かれ、動的な鍵だけが使用される。
【0094】
上記の説明は、限定的なものではなく、例示的なものであることを理解されたい。たとえば、上記で述べた諸実施形態またはその任意の部分は、互いに組合せて使用される。添付の特許請求の範囲では、語句「任意の組合せ」は、複数の要素だけでなく、単一の要素をも含むものである。本文献を精査すると、当業者には他の実施形態が明らかになろう。
【図面の簡単な説明】
【0095】
【図1A】埋込可能デバイス用の誘導テレメトリおよび長距離テレメトリを提供するシステムを示す図である。
【図1B】誘導テレメトリ・デバイスを示す図である。
【図2】一実施形態によるハッシュベースの暗号化アルゴリズムを含むテレメトリ・システムを示す図である。
【図3】一実施形態による方法のフローチャートである。
【図4】一実施形態による対称暗号化アルゴリズムを含むテレメトリ・システムを示す図である。
【図5】一実施形態による方法のフローチャートである。

【特許請求の範囲】
【請求項1】
メッセージとそのメッセージの関数として生成された第1のハッシュ値に対応するデータを受信するように構成された受信機と、
前記受信機に結合されて、鍵と前記メッセージを格納するように構成されたメモリと、
前記メモリに結合されて、第2ハッシュ値を前記鍵と前記メッセージの関数として生成するように構成されたハッシュ値生成器と、
前記ハッシュ値生成器に結合されて、前記第1ハッシュ値が前記第2ハッシュ値と異なるかどうか判断するように構成された比較器とを備える埋込可能デバイス。
【請求項2】
前記メモリにタイム・スタンプを供給するように構成されたクロックをさらに含み、前記第2ハッシュ値が前記タイム・スタンプの関数として生成される請求項1に記載のデバイス。
【請求項3】
前記メモリに結合された数生成器をさらに含み、前記第2ハッシュ値が、前記数生成器によって供給された数の関数として生成される請求項1に記載のデバイス。
【請求項4】
前記数生成器が、乱数生成器と疑似乱数生成器の任意の組合せの少なくとも1つを含む請求項3に記載のデバイス。
【請求項5】
前記メモリに結合された鍵生成器をさらに含み、前記鍵が動的に生成される請求項1に記載のデバイス。
【請求項6】
前記受信機に結合された治療または監視回路をさらに含む請求項1に記載のデバイス。
【請求項7】
前記メモリに結合された誘導テレメトリ・チャネルをさらに含む請求項1に記載のデバイス。
【請求項8】
前記ハッシュ値生成器がSHA−1を実装するように構成される請求項1に記載のデバイス。
【請求項9】
前記ハッシュ値生成器がプロセッサと実行可能命令を含む請求項1に記載のデバイス。
【請求項10】
埋込可能デバイス上で、メッセージとそのメッセージの関数として生成された第1のハッシュ値に対応するデータを受信するステップと、
鍵と前記メッセージを前記埋込可能デバイスのメモリ内に格納するステップと、
第2のハッシュ値を前記鍵と前記メッセージの関数として生成するステップと、
前記第1ハッシュ値と前記第2ハッシュ値を比較するステップとを備える方法。
【請求項11】
コードを前記メモリ内に格納するステップをさらに含み、前記第2ハッシュ値が前記コードの関数として生成される請求項10に記載の方法。
【請求項12】
前記コードがタイム・スタンプを含む請求項11に記載の方法。
【請求項13】
前記鍵を格納するステップが近距離通信リンクで通信するステップを含む請求項10に記載の方法。
【請求項14】
埋込可能デバイスから、メッセージと前記メッセージの関数として生成された第1のハッシュ値を受信するように構成された非埋込可能トランシーバと、
前記トランシーバに結合されて、鍵と前記メッセージを格納するように構成されたメモリと、
前記メモリに結合されて、第2のハッシュ値を前記鍵と前記メッセージの関数として生成するように構成されたハッシュ値生成器と、
前記ハッシュ値生成器に結合されて、前記第1ハッシュ値が前記第2ハッシュ値と異なるかどうか判断するように構成された比較器とを備えるデバイス。
【請求項15】
前記トランシーバが、前記鍵を受信するように構成された近距離テレメトリ・アンテナを含む請求項14に記載のデバイス。
【請求項16】
前記トランシーバが、遠距離テレメトリ用に構成される請求項14に記載のデバイス。
【請求項17】
前記トランシーバに結合されたコード生成器をさらに含み、前記コード生成器が後続のメッセージに鮮度コードを供給する請求項14に記載のデバイス。
【請求項18】
前記コード生成器が、クロックと乱数生成器の任意の組合せの少なくとも1つを含む請求項17に記載のデバイス。
【請求項19】
第1の遠距離トランシーバと、
前記第1遠距離トランシーバに結合された第1のプロセッサと、
前記第1プロセッサに結合された第1のメモリと、
前記プロセッサに結合された電気回路とを含む埋込可能デバイスと、
第2の遠距離トランシーバと、
前記第2遠距離トランシーバに結合された第2のプロセッサと、
前記第2プロセッサに結合された第2のメモリと、
前記プロセッサに結合されたデータ・ポートとを含む外部デバイスとを備えるシステムであって、
前記第1プロセッサと第2プロセッサの任意の組合せの少なくとも1つが、前記第1プロセッサによって生成されたコード、前記第1メモリと前記第2メモリ内に格納された鍵、メッセージに基づいて暗号文を生成するように構成された暗号化アルゴリズを実施するための命令を実行するように適応され、
前記第1プロセッサと第2プロセッサの任意の組合せの少なくとも1つが、前記コードと前記鍵に基づいて前記暗号文から前記メッセージを復号するよう構成された復号アルゴリズを実施するための命令を実行するように適応されるシステム。
【請求項20】
前記埋込可能デバイスが、前記プロセッサに結合され、かつ前記鍵を通信するように適応された誘導テレメトリ・コイルを含む請求項19に記載のシステム。
【請求項21】
前記外部デバイスが、前記プロセッサに結合され、かつ前記鍵を通信するように適応された誘導テレメトリ・コイルを含む請求項19に記載のシステム。
【請求項22】
前記電気回路が治療回路を含む請求項19に記載のシステム。
【請求項23】
前記電気回路が監視回路を含む請求項19に記載のシステム。
【請求項24】
前記データ・ポートが、キーボード、マウス、コントローラ、データ記憶装置、ネットワーク接続、モデム、データ・バスの任意の組合せのうちの少なくとも1つを含む請求項19に記載のシステム。
【請求項25】
第1の遠距離トランシーバと、
前記第1遠距離トランシーバに結合された第1のプロセッサと、
前記第1プロセッサに結合された第1のメモリと、
前記プロセッサに結合された電気回路と
を含む埋込可能デバイスと、
第2の遠距離トランシーバと、
前記第2遠距離トランシーバに結合された第2のプロセッサと、
前記第2プロセッサに結合された第2のメモリと、
前記第2プロセッサに結合されたデータ・ポートと
を含む外部デバイスとを備えるシステムであって、
前記第1プロセッサと第2プロセッサの任意の組合せの少なくとも1つが、前記第1プロセッサによって生成されたコードと、前記第1メモリと前記第2メモリ内に格納された鍵と、メッセージとに基づいて第1のハッシュ値を生成するための命令を実行するように適応され、
前記第1プロセッサと第2プロセッサの任意の組合せの少なくとも1つが、前記メッセージ、前記コードと前記鍵に基づいて第2のハッシュ値を生成するための命令を実行するように適応され、また前記第1ハッシュ値と前記第2ハッシュ値を比較するように構成されるシステム。
【請求項26】
前記第1プロセッサに結合されて、前記鍵を通信するように適応された誘導テレメトリ・コイルをさらに含む請求項25に記載のシステム。
【請求項27】
前記第2プロセッサに結合されて、前記鍵を通信するように適応された誘導テレメトリ・コイルをさらに含む請求項25に記載のシステム。
【請求項28】
前記電気回路が治療回路を含む請求項25に記載のシステム。
【請求項29】
前記電気回路が監視回路を含む請求項25に記載のシステム。
【請求項30】
前記データ・ポートが、キーボード、マウス、コントローラ、データ記憶装置、ネットワーク接続、モデム、データ・バスの任意の組合せのうちの少なくとも1つを含む請求項25に記載のシステム。
【請求項31】
第1デバイスからコードを受信するステップと、
前記第1デバイスと第2デバイスに鍵を格納するステップであって、前記第1デバイスと前記第2デバイスのうちの少なくとも1つが埋込可能である、格納するステップと、
前記第2デバイス上で暗号文を生成するステップであって、前記暗号文を前記コード、前記鍵とメッセージの関数として生成するステップと、
前記第1デバイス上で前記暗号文を受信するステップと、
前記メッセージを受信するために前記第1デバイス上で前記暗号文を復号するステップであって、前記メッセージを前記コードと前記鍵の関数として復号するステップと、
前記第1デバイス上で前記メッセージを認証するステップを備える方法。
【請求項32】
前記コードを受信するステップが乱数を受信するステップを含む請求項31に記載の方法。
【請求項33】
前記コードを受信するステップがタイム・スタンプを受信するステップを含む請求項31に記載の方法。
【請求項34】
前記メッセージを認証するステップが、前記メッセージ内に含まれる識別コードをチェックするステップを含む請求項31に記載の方法。
【請求項35】
前記識別コードのチェックが、前記識別コードと格納された値とを比較するステップを含む請求項34に記載の方法。
【請求項36】
前記メッセージを認証するステップが、前記メッセージ内に含まれる誤り検出符号をチェックするステップを含む請求項31に記載の方法。
【請求項37】
前記誤り検出符号をチェックするステップが、
前記メッセージの関数として計算値を生成するステップと、
前記計算値と前記誤り検出符号を比較するステップとを含む請求項36に記載の方法。
【請求項38】
前記誤り検出符号のチェックが巡回冗長符号をチェックするステップを含む請求項36に記載の方法。
【請求項39】
前記鍵を格納するステップが鍵を生成するステップを含む請求項31に記載の方法。
【請求項40】
前記鍵を生成するステップが、鍵を前記第1デバイス内に格納されたデータの関数として計算するステップを含む請求項39に記載の方法。
【請求項41】
前記鍵を格納されたデータの関数として計算するステップが、デバイス・シリアル番号、製造日付、製造時刻、デバイス・モデル番号、前記デバイスの測定された特性の任意の組合せの少なくとも1つに基づいて格納されたデータを含むメモリにアクセスするステップを含む請求項40に記載の方法。
【請求項42】
前記鍵を計算するステップがハッシュ・アルゴリズムを実行するステップを含む請求項40に記載の方法。
【請求項43】
前記鍵を前記第1デバイス内に格納するステップが誘導結合を介して通信するステップを含む請求項31に記載の方法。
【請求項44】
前記鍵を前記第2デバイス内に格納するステップが誘導結合を介して通信するステップを含む請求項31に記載の方法。
【請求項45】
前記鍵を格納するステップが前記鍵を暗号化するステップを含む請求項31に記載の方法。
【請求項46】
前記第1暗号文を生成するステップが、データ暗号化規格(DES)、トリプル・データ暗号化規格(3DES)、拡張暗号化規格(AES)、国際データ暗号化アルゴリズム(IDEA)、BlowfishとCASTの任意の組合せの少なくとも1つから選択されたアルゴリズムを実行するステップを含む請求項31に記載の方法。
【請求項47】
第1デバイスからコードを受信するステップと、
前記第1デバイスと第2デバイスに鍵を格納するステップであって、前記第1デバイスと前記第2デバイスのうちの少なくとも1つが埋込可能である、前記鍵を格納するステップと、
前記第2デバイス上で、前記コード、前記鍵、メッセージの関数として生成される第1のハッシュ値を生成するステップと、
前記第1デバイス上で前記メッセージと前記第1ハッシュ値を受信するステップと、
前記第1デバイス上で、前記コード、前記鍵、前記メッセージの関数として生成される第2のハッシュ値を生成するステップと、
前記第1デバイス上で前記第1ハッシュ値と前記第2ハッシュ値を比較するステップとを備える方法。
【請求項48】
前記コードを受信するステップが乱数を受信するステップを含む請求項47に記載の方法。
【請求項49】
前記コードを受信するステップが、タイム・スタンプの受信とタイム・スタンプの生成の任意の組合せの少なくとも1つを含む請求項47に記載の方法。
【請求項50】
前記鍵を格納するステップが鍵を生成するステップを含む請求項47に記載の方法。
【請求項51】
前記鍵を生成するステップが、鍵を前記第1デバイス内に格納されたデータの関数として計算するステップを含む請求項50に記載の方法。
【請求項52】
前記鍵を計算するステップが第3のハッシュ値を計算するステップを含む請求項51に記載の方法。
【請求項53】
前記第1デバイス内へ前記鍵を格納するステップが、誘導結合を介して通信するステップを含む請求項47に記載の方法。
【請求項54】
前記第2デバイス内へ前記鍵を格納するステップが、誘導結合を介して通信するステップを含む請求項47に記載の方法。
【請求項55】
前記鍵を格納するステップが前記鍵を暗号化するステップを含む請求項47に記載の方法。
【請求項56】
前記第1ハッシュ値の生成と前記第2ハッシュ値の生成の任意の組合せの少なくとも1つが、ハッシュ・アルゴリズムを実行するステップを含む請求項47に記載の方法。
【請求項57】
前記ハッシュ・アルゴリズムの実行が、セキュア・ハッシュ標準アルゴリズムとメッセージ・ダイジェスト・アルゴリズムの任意の組合せの少なくとも1つを実行するステップを含む請求項56に記載の方法。
【請求項58】
セキュア・ハッシュ標準アルゴリズムの実行が、SHA−1とSHA−256の任意の組合せの少なくとも1つを実行するステップを含む請求項57に記載の方法。
【請求項59】
メッセージ・ダイジェスト・アルゴリズムの実行が、MD2、MD4、MD5の任意の組合せの少なくとも1つを実行するステップを含む請求項57に記載の方法。

【図1A】
image rotate

【図1B】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公表番号】特表2007−529959(P2007−529959A)
【公表日】平成19年10月25日(2007.10.25)
【国際特許分類】
【出願番号】特願2007−504021(P2007−504021)
【出願日】平成17年3月15日(2005.3.15)
【国際出願番号】PCT/US2005/008521
【国際公開番号】WO2005/091546
【国際公開日】平成17年9月29日(2005.9.29)
【出願人】(505003528)カーディアック・ペースメーカーズ・インコーポレーテッド (466)
【Fターム(参考)】