JP2003216591A - セキュリティ・コプロセッサのためのインターフェース - Google Patents
セキュリティ・コプロセッサのためのインターフェースInfo
- Publication number
- JP2003216591A JP2003216591A JP2002215500A JP2002215500A JP2003216591A JP 2003216591 A JP2003216591 A JP 2003216591A JP 2002215500 A JP2002215500 A JP 2002215500A JP 2002215500 A JP2002215500 A JP 2002215500A JP 2003216591 A JP2003216591 A JP 2003216591A
- Authority
- JP
- Japan
- Prior art keywords
- requests
- request
- security
- operations
- execution units
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/16—Implementing security features at a particular protocol layer
- H04L63/166—Implementing security features at a particular protocol layer at the transport layer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Bioethics (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Advance Control (AREA)
- Storage Device Security (AREA)
- Multi Processors (AREA)
Abstract
ーフェースを提供すること。 【解決手段】 セキュリティ・オペレーションを処理す
る方法と装置である。プロセッサは、セキュリティ・オ
ペレーションに対するいくつかの要求を処理するいくつ
かの実行ユニットを含む。これらの実行ユニットは、い
くつかの要求の結果を、その要求に格納されているポイ
ンタに基づいて、遠隔メモリ内の要求に関連する出力デ
ータ構造に出力する。この実行ユニットは、要求待ち行
列内の要求の順番とは異なる順番で結果を出力すること
ができる。プロセッサは実行ユニットに結合されている
要求ユニットも含む。要求ユニットは、要求の一部を遠
隔メモリ内の要求待ち行列から取り出し、要求の一部に
対する関連する入力データ構造を遠隔メモリから取り出
す。さらに、要求ユニットは、取り出した要求を実行ユ
ニットによる処理の可用性に基づいていくつかの実行ユ
ニットに分配する。
Description
る。より詳細には、本発明はセキュリティ・コプロセッ
サのためのインターフェースに関する。
クを使用するユーザの数は増加し続けている。さらに、
インターネットを介したB2BおよびB2Cに関するオ
ンライン販売も普及し続けている。また、在宅勤務者数
も増加し続けている。オンライン販売と在宅勤務のどち
らも、異なる通信ネットワークを通して送信している間
に保護される必要のある個人データおよび機密データを
典型的に伴う通信ネットワークを使用した例である。
(例えば、トランスポート・レイヤ・セキュリティ(T
LS)、セキュア・ソケット・レイヤ(SSL)3.
0、インターネット・プロトコル・セキュリティ(IP
Sec)等)は、遠隔システム間でのセキュア・セッシ
ョンを確立するために発展してきた。これらのセキュリ
ティ・プロトコルは、遠隔システムがメッセージ交換お
よび計算によってセキュア・セッションを確立する方法
を提供し、それによって、異なる通信ネットワークを横
断して送信される機密データを安全に、かつ改ざんされ
ずに保つことができる。
ための2相によるクライアント/サーバ交換を示す。第
1の相105であるセキュリティ・ネゴシエーション相
では、ネットワーク要素101(クライアント)とネッ
トワーク要素103(サーバ)とは、2つのネットワー
ク要素101と103の間でセキュリティをネゴシエー
ションするためにメッセージを交換する。セキュリティ
のネゴシエーションには、2つのネットワーク要素10
1と103が使用すべきアルゴリズム(例えば、ハッシ
ング・アルゴリズム、暗号化アルゴリズム、圧縮アルゴ
リズム等)を決定することが含まれる。第2の相107
であるキー交換相では、ネットワーク要素101と10
3はキー情報を交換する。第2の相107は、選択した
公開キーアルゴリズムおよび受け取ったメッセージの認
証に基づいてメッセージを交換するネットワーク要素1
01と103とを含んでいる。これら2相の特定の基本
的なタスクは様々なセキュリティ・プロトコルによって
異なるが、セキュア・セッションを確立するための基本
的なタスクは、メッセージの受信、メッセージの送信、
キーの生成、シークレットの生成、データのハッシン
グ、データの暗号化、データの暗号解読、および乱数の
計算を含むことができる。
スクの実行はプロセッサ集中である。ネットワーク要素
に対してホスト・プロセッサとして動作する汎用プロセ
ッサは、これらのタスクを実行する場合、それらのタス
クのために資源が消費されるのでネットワーク要素のシ
ステム・パフォーマンスは損なわれることになる。不満
足なシステム・パフォーマンスの結果は、ネットワーク
要素の機能によって(例えば、ルーティング、スイッチ
ング、サービス、ネットワーク接続された格納装置の管
理等)様々な方法でネットワークおよびユーザに影響を
与える。
荷を軽減するためにコプロセッサが開発された。ホスト
・プロセッサのための特定の基本タスク(例えば、デー
タのハッシュ)を実行するために、いくつかのコプロセ
ッサが開発された。タスク特有のコプロセッサを追加し
ても、大量のセキュア・セッションを確立するタスクの
負荷はホスト・プロセッサから軽減されない。一代替形
態は、それぞれが異なるタスクを実行する複数のコプロ
セッサをネットワークに追加することである。このよう
な代替形態は、物理的な制約(例えば、カードを結合す
るためのスロット数)によって制限を受けるものであ
り、ホスト・プロセッサと複数のコプロセッサの間での
複数の通信による問題を生じる。
求される複数のタスクを実行するために他のコプロセッ
サが開発された。コプロセッサが暗号オペレーション
(例えば、暗号化または暗号解読)、キー・マテリアル
生成オペレーション、およびハッシュ・オペレーション
を実行することができると仮定する。例えば、サーバ
が、SSL3.0セッションを確立するための要求を受
け取ったと仮定する。サーバは、クライアントから受け
取ったプリ・マスター・シークレットを暗号解読するた
めにコプロセッサを呼び出す必要がある。マスター・シ
ークレットおよびキー・マテリアルを生成するために、
ホスト・プロセッサはコプロセッサを20回(ハッシュ
・オペレーションにつき1回ずつ)呼び出す必要があ
る。単一のセキュア・セッションの確立の始めに、ホス
ト・プロセッサは複数タスクのコプロセッサを21回呼
び出した。この例で説明したように、複数タスクを実行
することができるコプロセッサは、ホスト・プロセッサ
とコプロセッサの間における複数の通信の資源消費の問
題は解決しない。
を追加したにもかかわらず、セキュア・セッションの確
立に伴い依然として大量の資源が消費される。セキュア
・セッションの確立は、ホスト・プロセッサと、1つの
複数タスク・コプロセッサまたは複数の単一タスク・コ
プロセッサの間の複数の通信によって生じる待ち時間に
よって損なわれる危険性がある。CPUとコプロセッサ
間の複数の通信は、システム資源(例えば、バス資源、
メモリ資源、クロック周期等)を消費する。システムに
対する影響には、1)提供できるセキュア・セッション
の数、2)システムが維持できる並行したセキュア・セ
ッションの数が含まれる。
ションを処理する方法および装置について説明する。一
実施態様では、プロセッサには、セキュリティ・オペレ
ーションに対するいくつかの要求を処理するいくつかの
実行ユニットが含まれる。いくつかの実行ユニットは、
いくつかの要求に格納されているポインタに基づいて、
遠隔メモリ内のいくつかの要求に関するいくつかの出力
データ構造に対して、いくつかの要求の結果を出力する
ためのものである。いくつかの実行ユニットは、要求待
ち行列内の要求の順番とは異なる順番で結果を出力する
ことができる。プロセッサは、いくつかの実行ユニット
に結合されている要求ユニットも含む。要求ユニット
は、遠隔メモリ内の要求待ち行列からいくつかの要求の
一部を取り出し、また、遠隔メモリからいくつかの要求
の一部に対する関連付けられた入力データ構造を取り出
すためのものである。さらに、要求ユニットは、いくつ
かの実行ユニットによる処理の可用性に基づいて、取り
出した要求をいくつかの実行ユニットに分配する。
行される方法である。この方法は、ホスト・メモリ内の
要求待ち行列内のセキュリティ・オペレーションに対す
るいくつかの要求を格納することを含むが、このいくつ
かの要求は要求待ち行列内の順番通りである。この方法
は、セキュリティ・オペレーションに対するいくつかの
要求に関係するデータを、ホスト・メモリ内のいくつか
の入力データ構造に格納することを含む。この方法は、
さらにホスト・メモリ内のいくつかの出力データ構造を
割り振ることを含み、コプロセッサはセキュリティ・オ
ペレーションに対するいくつかの要求の結果をいくつか
の出力データ構造に書き込むためのものである。コプロ
セッサは、要求待ち行列内の順番とは異なる順番で結果
を書き込むことができる。さらに、いくつかの要求のそ
れぞれに対して、ホスト・プロセッサ上で実行するため
のスレッドが割り当てられるが、このスレッドは関連付
けられた要求に関して出力データ構造に格納されている
完了コードの値を定期的に確認する。この完了コード
は、その要求がコプロセッサによって完了したことを示
している。
よってホスト・メモリからセキュリティ・オペレーショ
ンに対するいくつかの要求を取り出すことを含むが、こ
のいくつかの要求はホスト・メモリ内の順番通りであ
る。方法は、要求ユニットによってセキュリティ・オペ
レーションに対するいくつかの要求をいくつかの実行ユ
ニットに分配することも含む。この分配は、いくつかの
実行ユニットの可用性に基づいている。さらに、この方
法は、いくつかの実行ユニットによってセキュリティ・
オペレーションに対するいくつかの要求を処理すること
も含む。この方法は、ホスト・メモリ内の位置にセキュ
リティ・オペレーションに対するいくつかの要求の結果
を出力することを含むが、結果を出力する順番は、ホス
ト・メモリ内の要求の順番とは異なってもよい。
施形態を説明する以下の記述と添付の図面を参照するこ
とによって最もよく理解することができるであろう。本
明細書に含まれる図面に対する付番方式では、図面内の
所与の要素に対する先頭の番号を図面番号に関連付けて
いる。例えば、ホスト・プロセッサ202は図2にある
はずである。しかし、異なる図面でも同一の要素に対し
ては同一の要素番号が付番されている。
方法および装置を説明する。以下の説明では、本発明の
完全な理解を実現するために数多くの特定の細部が記述
されている。しかし、本発明はこれら特定の細部なくし
ても実施することができることを理解されよう。また、
本発明を不明瞭にすることを避けるため、周知の回路、
構造および技術は示さない。記述した本発明の実施形態
はSSL3.0プロトコルを引用しているが、代替形態
は、IPSec、TLS等の他のセキュリティ・プロト
コルに適用することができる。
ション」という用語は、基本的なセキュリティ・オペレ
ーションであっても、マクロ・セキュリティ・オペレー
ションであってもよい。基本的なセキュリティ・オペレ
ーションは、暗号解読オペレーション、暗号化オペレー
ション、ハッシュ・オペレーション、または値(例え
ば、シークレット、キー・マテリアル等)を生成するた
めの一群の算術オペレーションであってよい。マクロ・
セキュリティ・オペレーションは一群の基本的オペレー
ションである。
・コプロセッサの間でのタスクと結果の通信であり、コ
プロセッサは複数の実行ユニットを有する。本発明の別
の形態はタスクのタイプである。具体的には、コプロセ
ッサが複数の実行ユニットを有する場合に、ホスト・プ
ロセッサがセキュリティ・コプロセッサに転送すること
のできるマクロ・セキュリティ・オペレーションであ
る。これらの2つの形態は共に使用することができる。
例えば、一実施形態では、複数の実行ユニットを有する
セキュリティ・コプロセッサは要求を受け取って、連続
したフロー機構によって結果を供給する。受け取った要
求は相互から独立して扱われ、複数の実行ユニットの使
用可能な1つに順番通りに分配されるが、これらの要求
はマクロ・セキュリティ・オペレーションである場合が
あり、完了するのに異なる時間を要する場合があり、順
不同に完了され/戻される場合がある。これら2つの形
態を共に使用することができるが、これらは相互に依存
してはいない。すなわち、マクロ・セキュリティ・オペ
レーションは、ホスト・プロセッサとセキュリティ・コ
プロセッサの間でタスクおよび結果を通信するための異
なる(例えば、従来技術による)技術と共に使用するこ
とができ、また、この逆も可能である。
レーションを処理するシステムを示すブロック図であ
る。図2には、ホスト・プロセッサ202、ホスト・メ
モリ204、コプロセッサ212、および要求処理ユニ
ット234が含まれる。ホスト・プロセッサ202、ホ
スト・メモリ204、およびコプロセッサ212はシス
テム・バス210に結合されている。さらに、ホスト・
プロセッサ202、ホスト・メモリ204、および要求
処理ユニット234は相互接続されている。一実施形態
では、要求処理ユニット234は、ホスト・メモリ20
4および/またはプロセッサ202に常駐することがで
き、ホスト・プロセッサ202内で実行することができ
るプロセスまたはタスクでよい。例えば、要求処理ユニ
ット234は、ホスト・プロセッサによって実行される
コプロセッサからのドライバでよいが、このドライバは
OpenSSLとインターフェースをとる。しかし、本
発明の実施形態はこのように限定されるものではなく、
要求処理ユニット234は記述された処理を実行する様
々なタイプのハードウェア(例えばデジタル論理)であ
ってよい。
6、入力データ208A〜208I、および出力データ
209A〜209Iを格納する。要求待ち行列206
は、待ち行列の観点で示され、記述される。しかし、本
発明の実施形態はこのように限定されるものではなく、
要求待ち行列206はコプロセッサ212に送信される
べき要求を格納するための他のどのようなタイプのデー
タ構造であってもよいが、これについては以下でより詳
細に説明する。一実施形態では、要求待ち行列206は
巡回待ち行列(リング・バッファ)である。一実施形態
では、要求待ち行列206への書込ポインタは要求処理
ユニット234によって維持され、要求待ち行列206
への読取ポインタはコプロセッサ212の要求ユニット
214によって維持される。したがって、要求処理ユニ
ット234は、要求待ち行列206に要求を格納すると
きにその書込ポインタを増分し、要求ユニット214
は、要求待ち行列206から要求を抽出するとき、また
は取り出すときにその読取ポインタを減分する。
出力データ209A〜209Iは表に示すようなデータ
構造であるが、このようなデータは、オブジェクト指向
環境のデータ・オブジェクトなど他のタイプのデータ構
造でも格納することができる。一実施形態では、入力デ
ータ208A〜208Iはホスト・メモリ204に連続
して格納される。したがって、コプロセッサ212内の
要求ユニット214は、1つの直接メモリ・アクセス
(DMA)読取りオペレーションを使用して複数の要求
全体から入力データを抽出することができるが、これに
ついては以下でより詳細に説明する。
行列206に挿入された要求は、要求のサイズに制約が
あるため、オペレーション・コードなどの命令、操作さ
れるべきデータ、および要求待ち行列206内の要求に
入れられないデータ(要求に関係する)を格納するホス
ト・メモリ204内の他の位置へのポインタを含むこと
ができる。特に、要求待ち行列206内の要求は、入力
データ208A〜208Iの1つを指すことができる。
一実施形態では、これらの要求は32バイトのサイズで
ある。要求のタイプは、図3から図8に関して以下で説
明するマクロ・セキュリティ・オペレーションを含め
て、異なるセキュリティ・オペレーションを含むことが
できる。さらに、このようなセキュリティ・オペレーシ
ョンは、限定はしないが、(1)乱数を生成するための
要求、(2)素数を生成するための要求、(3)モジュ
ーラ演算を実行するための要求、(4)ハッシュ・オペ
レーションを実行するための要求、(5)暗号化/暗号
解読のためのキーを生成するための要求、(6)ハッシ
ュ・メッセージ認証コード(H−MAC)オペレーショ
ンを実行するための要求、(7)ハンドシェーク・ハッ
シュ・オペレーションを実行するための要求、および
(8)終了/検証オペレーションを実行するための要求
を含むことができる。
セッサ212による処理のための要求形式の一例を示
す。具体的には、図3は、オペレーション・コード30
2、サイズ304、パラメータ306、データ長30
8、データ・ポインタ310、および結果ポインタ31
2を含む要求形式300を示す。オペレーション・コー
ド302は、ハッシング、モジューラ演算等のためのo
p−codeなどのコプロセッサ212によって実行さ
れるべき異なるセキュリティ・オペレーションを識別す
るop−codeを含む。サイズ304は、オペレーシ
ョンのタイプに応じて、そのオペレーションに関係する
様々なデータに対してサイズを定義することができる。
例えば、モジューラ演算オペレーションに関するサイズ
304は絶対値のサイズを含むことができ、あるいは、
ハッシュ・オペレーションに関するサイズ304はハッ
シュされるべきデータのサイズを含むことができる。
は、オペレーションのタイプによって、オペレーション
に関係する異なるデータを定義することができる。例え
ば、暗号化/暗号解読用のキー生成のオペレーションの
場合、パラメータ306はそのキーに対するプリ・マス
ターの長さを定義することができる。パラメータ306
をさらに説明すると、H−MACオペレーションに関す
るオペレーションについては、パラメータ306はシー
クレットの長さを定義することができる。一実施形態で
は、パラメータ306は、特定のオペレーションに関し
ては未定義の状態で残される。
ポインタ310によって示され、要求内で定義されたセ
キュリティ・オペレーションのためにコプロセッサ21
2にコピーされる、関連付けられた入力データ208A
〜208I内のデータ構造の長さを定義する。関連付け
られた入力データ208A〜208Iに格納され、デー
タ・ポインタ310によって指し示されるデータ構造
は、実行されるべきセキュリティ・オペレーションのタ
イプに応じて様々なデータを含むことができる。一実施
形態では、所与のオペレーションに関してはこの追加デ
ータ構造は必要とされず、したがってデータ・ポインタ
310は使用されない。例えば、乱数を生成するオペレ
ーションの場合、入力データ208A〜208Iには入
力データは1つも格納されていない。このようなデータ
構造に格納されるべきデータのタイプの説明に役立てる
ために、キー生成オペレーションの場合、データ構造は
クライアント乱数、サーバ乱数、ラベルおよびプリ・マ
スター番号を含めることができる。
2がデータ構造に出力結果を書き込むことができる場
合、ホスト・メモリ204内の位置(出力データ209
A〜209Iの1つ)を定義する。一実施形態では、こ
の書込みオペレーションはDMA書込みオペレーション
によって実行される。さらに、一実施形態では、このデ
ータ構造の最後に完了コードが入れられる(以下でさら
に説明する)。説明に役立てるためにキー生成オペレー
ションにもう一度戻ると、関連付けられた出力データ2
09A〜209Iに格納されているデータ構造は、マス
ター・キー、キー・マテリアル、および完了コードを含
むことができる。
互に結合されているPeripheral Compo
nent Interconnect(PCI)ユニッ
ト230、lightening data tran
sport(LDT)ユニット232、キーユニット2
44、要求ユニット214、ドアベル・レジスタ22
0、実行ユニット216A〜216I、実行ユニット2
17A〜217I、乱数ジェネレータ・ユニット21
8、および要求バッファ222を含む。さらに、PCI
ユニット230とLDTユニット232はシステム・バ
ス210に結合されている。PCIユニット230とL
DTユニット232は、コプロセッサ212とホスト・
メモリ204の様々な構成要素、ホスト・プロセッサ2
02、および要求処理ユニット234の間で通信を実現
する。PCIユニットとLDTユニットがシステム・バ
スに結合するために使用される一実施形態が説明されて
いるが、代替形態は様々なバスを使用することができ
る。
7と、いくつかの乱数ジェネレータ・ユニット218
は、限定するためではなく例示の目的で示されており、
コプロセッサ212内にはこれらのユニットより少ない
数でも多い数でも含むことができる。実行ユニット21
7A〜217Iのより詳細な図面およびオペレーション
を、図8に関連して以下で説明する。乱数ジェネレータ
・ユニット218は、キーの生成のために乱数を生成す
る。キーユニット244は、様々なセキュリティ・オペ
レーションを処理するために後で使用することのでき
る、実行ユニット217A〜217Iに対するキーをコ
プロセッサ212内にローカルに格納することができ、
コプロセッサ212の外部にあるメモリからそのような
キーを取り出すことは必要としない。要求ユニット21
4は、ドアベル・レジスタ220に挿入された値に基づ
いて要求待ち行列206内の要求を抽出し、その要求を
処理するために実行ユニット217A〜217Iに分配
するが、これについては以下でより詳細に説明する。要
求バッファ222は、実行ユニット216〜217が処
理するために要求ユニット214が抽出した要求を格納
することができる。
3.0セッションの確立の一例を示す図面である。図4
では、クライアント401とサーバ403は、セキュア
・セッションを確立するためにハンドシェーク・メッセ
ージを交換する。サーバ403はコプロセッサ212に
対してセキュリティ・オペレーション407、409、
423、および425のセットを送る。ホスト・プロセ
ッサ210からコプロセッサ212に送信されるセキュ
リティ・オペレーションのセットのそれぞれは、基本的
なセキュリティ・オペレーションであっても、マクロ・
セキュリティ・オペレーションであってもよい。図4に
示した実施形態では、セキュリティ・オペレーション4
09、423、および425のセットはマクロ・セキュ
リティ・オペレーションである。各マクロ・セキュリテ
ィ・オペレーションは、コプロセッサ212の実行ユニ
ット216〜217の1つによって実行される。
ト・ハロー・メッセージ405をサーバ403に送る。
クライアント403は、任意選択で追加メッセージを送
ることができる。サーバ403のホスト・プロセッサ2
01は、コプロセッサ212が実行すべき乱数セキュリ
ティ・オペレーション407を呼び出す。乱数ジェネレ
ータ218は、乱数オペレーション407に応答して一
つまたは複数の乱数を生成し、格納する。本発明の一実
施形態では、乱数オペレーション407は、単一の乱数
を生成する基本的なセキュリティ・オペレーションであ
る。本発明の別の実施形態では、乱数セキュリティ・オ
ペレーションは、乱数のベクトルを生成するマクロ・セ
キュリティ・オペレーションである。本発明の代替形態
では、ホスト・プロセッサ201は、コプロセッサ21
2とは別個に配置されている乱数ジェネレータ218が
実行すべき乱数オペレーション407を呼び出す。本発
明の別の実施形態では、乱数はセッションを確立する前
に生成される。一つまたは複数の乱数が生成された後
で、サーバ403はセキュリティ・ネゴシエーション・
オペレーション409をコプロセッサ212に送る。
ーション409を実行した後、コプロセッサ212は蓄
積されたハンドシェーク・メッセージ(クライアント・
ハロー405およびいかなる任意選択のメッセージ)の
部分ハッシュを作成する。サーバ403は、一つまたは
複数の乱数と、コプロセッサ212によるセキュリティ
・ネゴシエーション・オペレーション409の実行によ
って得られるデータとを使用して、クライアント401
に送信されるメッセージのセットを作成する。サーバ4
03は、サーバ・ハロー・メッセージ411、証明書4
13、およびサーバのハロー終了メッセージ415を送
る。本発明の別の実施形態では、追加の任意選択メッセ
ージがクライアント401に送信される。
立するキー交換相では、クライアント401はクライア
ント・キー交換メッセージ417、暗号スペック変更メ
ッセージ419、およびクライアント終了メッセージ4
21を送る。サーバ403がこのメッセージ417、4
19および421のセットを受け取った後、サーバ40
3上のホスト・プロセッサ201は、コプロセッサ21
2が実行すべきキー交換オペレーション423および終
了オペレーション425を呼び出す。キー交換セキュリ
ティ・オペレーション423を実行した結果、コプロセ
ッサ212は1)暗号解読したプリ・マスター・シーク
レットと、2)マスター・シークレットおよびキー・マ
テリアルと、3)蓄積されたハンドシェーク・メッセー
ジの部分ハッシュ(ハッシュされたクライアント・ハロ
ー405およびメッセージ417、419および421
のセット)とを作成する。終了オペレーション425を
実行した結果、コプロセッサ212は、1)暗号解読し
たクライアントの終了メッセージと、2)クライアント
の終了メッセージ421に対する終了ハッシュと、3)
サーバの終了メッセージ429に対する終了ハッシュ
と、4)メッセージ認証コード(MAC)付きの暗号化
されたサーバの終了メッセージとを生成する。キー交換
オペレーション423および終了オペレーション425
からのデータを使用して、サーバ403は、1)クライ
アントから受け取ったメッセージを検証し、2)暗号ス
ペック変更メッセージ427およびサーバの終了メッセ
ージ429をクライアント401に送る。
示したマクロ・セキュリティ・オペレーションのための
基本的セキュリティ・オペレーションのグループを示す
表である。「マクロ・セキュリティ・オペレーション」
と標示された欄では、ネゴシエーション・セキュリティ
・オペレーション407、キー交換オペレーション40
9、および終了オペレーション425が識別される。こ
の表は、これらのマクロ・セキュリティ・オペレーショ
ンのそれぞれを実行するときに、コプロセッサ212の
実行ユニット216〜217の1つが実行する基本的セ
キュリティ・オペレーションのグループを示している。
セキュリティ・ネゴシエーション・オペレーション40
7を実行するときに、実行ユニット216〜217の1
つは2つのハッシュ・オペレーションを実行する。キー
交換オペレーション409を実行するために、実行ユニ
ット216〜217の1つは1)暗号解読オペレーショ
ン、2)一群のモジューラ演算オペレーション、および
3)22のハッシュ・オペレーション(TLSに従って
セキュア・セッションを確立する場合は78のハッシュ
・オペレーション)を実行する。セキュリティ・ネゴシ
エーション・オペレーション407を実行するために、
実行ユニット216〜217の1つは、本発明の一実施
形態に従ってSSL3.0のための23の基本的なセキ
ュリティ・オペレーションを実行することになる。終了
オペレーション409を実行するために、実行ユニット
216〜217の1つは、1)暗号解読オペレーショ
ン、2)暗号化オペレーション、および3)12のハッ
シュ・オペレーションを実行する。終了オペレーション
407を実行する実行ユニット216〜217の1つ
は、14の基本的なセキュリティ・オペレーションを実
行する。
マクロ・セキュリティ・オペレーションに関連付けるこ
とは、様々な方法で実施することができる。記述した発
明の様々な実施形態は、セキュリティ・プロトコル、デ
ータ依存性等を含めることのできる要因にそれぞれ基づ
くマクロ・セキュリティ・オペレーションに対して基本
的なセキュリティ・オペレーションをグループ化するこ
とができる。
ア・セッションの確立の一例を示す図面である。図6で
は、図4で示したセキュア・セッションの確立に対し
て、マクロ・セキュリティ・オペレーションの異なる一
実施形態を示す。図6では、マクロ・セキュリティ・オ
ペレーション407、409および423ではなく、サ
ーバ・フル・ハンドシェーク・オペレーション601が
呼び出される。サーバ・フル・ハンドシェーク・マクロ
・セキュリティ・オペレーション601は、サーバ40
3がクライアント401からメッセージ417、419
および421のセットを受け取った後で呼び出される。
単一呼び出しによって、コプロセッサ212(乱数の呼
び出しは含まない)は、セキュア・セッションを確立す
るためにホスト・プロセッサ201に必須のデータを供
給する。
・フル・ハンドシェーク・オペレーション701のため
の一群の基本的オペレーションを示す表である。サーバ
・フル・ハンドシェーク・オペレーション601を実行
する実行ユニット216〜217の1つは、1)暗号解
読オペレーション、2)暗号化オペレーション、3)モ
ジュラ計算オペレーション、および4)35のハッシュ
・オペレーションの基本的なセキュリティ・オペレーシ
ョンを実行する。したがって、この実行ユニットは、サ
ーバ・フル・ハンドシェーク・オペレーション601を
完了するために、約39の基本的セキュリティ・オペレ
ーションを実行する。このサーバ・フル・ハンドシェー
ク・オペレーション601の例では、クライアントの終
了メッセージ421は暗号解読されない。クライアント
の終了メッセージ421は暗号解読されないのは、予想
されるクライアントの終了メッセージがコプロセッサ2
12によって作成されるからである。サーバ403は、
実際にクライアントの終了メッセージ421を受け取る
前に既にそのクライアントの終了メッセージ421の内
容を認識しているので、予想されるクライアントの終了
メッセージを作成し、それを使用して、受け取ったクラ
イアントの終了メッセージ421を暗号解読せずにその
クライアントの終了メッセージ421を認証することが
できる。
ペレーションは、予想されるサーバの終了メッセージを
作成することができる。コプロセッサ212を有するク
ライアントは、クライアント・フル・ハンドシェーク・
オペレーションによって、サーバ401からサーバの終
了メッセージ429を受け取る前にセキュア・セッショ
ンを確立するための、コプロセッサ212に対する単一
呼出しを実行することができる。
ュリティ・オペレーションを形成するために、基本的セ
キュリティ・オペレーションをグループ化することので
きる方法のいくつかの例を示す。このような基本的セキ
ュリティ・オペレーションのどのような組み合わせで
も、本発明の範囲に含まれることを理解されたい。マク
ロ・セキュリティ・オペレーションによって、ホスト・
プロセッサ201と、クライアント401またはサーバ
403のコプロセッサ212との間で、限られた数の通
信によるセキュア・セッションを確立することができ
る。通信数を少なくすることによってシステム資源の消
費が低減される。システム資源の消費が低減されると、
システム・パフォーマンスが低下することが防止され
る。さらに、セキュア・セッションをより高速に確立す
ることができ、かつ、より多くのセキュア・セッション
を維持することができる。具体的には、マクロ・セキュ
リティ・オペレーションの処理に要する処理量は基本的
セキュリティ・オペレーションよりも多いので、セキュ
リティ・コプロセッサの様々な実行ユニットに対してオ
ペレーションを割り当てると、その割り当てに伴うオー
バーヘッドがあるにも係わらず、より多くのスループッ
トが可能になる。
ニット216〜217の1つを示す図面である。図8で
は、マイクロコード・ブロック801がマイクロコント
ローラ・ブロック803に結合されている。マイクロコ
ントローラ・ブロック803は実行待ち行列ブロック8
05に結合されている。実行待ち行列ブロック805は
基本的セキュリティ・オペレーション・ブロックのセッ
トに結合されている。この基本的セキュリティ・オペレ
ーション・ブロックには、拡張暗号化規格(AES)ブ
ロック807、トリプル・データ暗号化規格(3DE
S)ブロック809、モジューラ指数(modular exponen
tiation)ブロック811、ハッシュ・ブロック813、
単純算術および論理ブロック815、および仮定のRC
4(登録商標)ブロック819が含まれる。本発明の代
替形態は、この基本的セキュリティ・オペレーション・
ブロックにさらに基本的セキュリティ・オペレーション
・ブロックを追加することも、これより少なくすること
もできる。バス821は基本的セキュリティ・オペレー
ション・ブロック807、809、811、813、8
19と、レジスタ・ファイル・ブロック817を結合す
る。
ュリティ・オペレーションを1つまたは複数の基本的セ
キュリティ・オペレーションに翻訳し、その1つまたは
複数の基本的セキュリティ・オペレーションをマイクロ
コントローラ・ブロック803に渡す。マイクロコント
ローラ・ブロック803は、レジスタ・ファイル817
から、それぞれの基本的セキュリティ・オペレーション
に対して該当するデータを取り出す。基本的セキュリテ
ィ・オペレーションは、マイクロコントローラ・ブロッ
ク803によって実行待ち行列805に入れられる。あ
る基本的セキュリティ・オペレーションに対応する基本
的セキュリティ・オペレーション・ブロックが、その基
本的セキュリティ・オペレーションを実行することがで
きるとき、実行待ち行列805はその基本的セキュリテ
ィ・オペレーションを該当する基本的セキュリティ・オ
ペレーション・ブロック807、809、811、81
3、815、または819にプッシュする。基本的セキ
ュリティ・オペレーション・ブロック807、809、
811、813、815、または819によるその基本
的セキュリティ・オペレーションの実行が完了すると、
その基本的セキュリティ・オペレーション・ブロック
は、その結果をレジスタ・ファイル817またはバス8
21に渡す。ホスト・プロセッサ201からの要求のセ
キュリティ・オペレーション(マクロまたは基本的セキ
ュリティ・オペレーション)の結果は、実行ユニット2
16〜217によってDMA転送を使用してメイン・メ
モリの該当位置まで転送される。
イクロコード・ブロックを有するように示しているが、
代替形態は1つまたは複数の実行ユニットに単一マイク
ロコード・ブロックを共有させる。さらに別の実施形態
は、中央マイクロコード・ブロック(例えば、SRA
M)を有するが、その内容は、次回の電源投入時に実行
ユニットのそれぞれの中にあるローカル・マイクロコー
ド・ブロックにロードされる。1つまたは複数のマイク
ロコード・ブロックの構成に関係なく、特定の実施形態
では、実行されるべきセキュリティ・オペレーション
(マクロおよび/または基本的セキュリティ・オペレー
ション)を選択する上での柔軟性を考慮して、マイクロ
コード・ブロックは再プログラム可能である。
チ、アクセス等として動作するネットワーク要素は、1
つまたは複数のセキュア・セッションを確立することが
できる。このネットワーク要素は、マクロ・セキュリテ
ィ・オペレーションによって、大量のシステム資源を消
費することなく複数のセキュア・セッションを確立する
ことができる。さらに、このセキュア・セッションはマ
クロ・セキュリティ・オペレーションによってさらに高
速に確立することができる。
なSSL3.0セッションを確立するための3つの要求
を受け取ることができる。サーバ・フル・ハンドシェー
ク・オペレーション701が実施される場合、ホスト・
プロセッサ201は、コプロセッサ212を呼び出すこ
とによってセキュア・セッションを確立することができ
る。実行ユニット216〜217は、その3つのオペレ
ーションを並行して実行することができる。マクロ・セ
キュリティ・オペレーションのより細分化されたセット
を、図4および図5に示すマクロ・セキュリティ・オペ
レーションに類似したサーバ上で実施することができ
る。例えば、図4および図5に示したマクロ・セキュリ
ティ・オペレーションは、セキュア・セッションに対す
る2つの要求を既に受信しているサーバ403上で実施
することができる。その2つの要求されたセッションの
それぞれに対してクライアント・キー交換オペレーショ
ン423を実行するためにホスト・プロセッサ201が
コプロセッサ212を呼び出した後、サーバ403はセ
キュア・セッションに対する第3の要求を受け取る。こ
の第3のセキュア・セッションに対するセキュリティ・
ネゴシエーション・オペレーション409を実行するた
めに、ホスト・プロセッサ201はコプロセッサ212
を呼び出す。コプロセッサ212の要求ユニット214
は、実行ユニット216〜217の2つに対して2つの
クライアント・キー交換オペレーション423を発行し
た後で、実行ユニット216〜217の1つに対してセ
キュリティ・ネゴシエーション・オペレーション409
を発行するが、セキュリティ・ネゴシエーション・オペ
レーション409を実行する実行ユニット216〜21
7の1つは、実行ユニット216〜217の別の2つが
それらのオペレーションの実行を完了する前に(セキュ
リティ・ネゴシエーション・オペレーション409がキ
ー交換オペレーション423よりも短時間しか要しない
と仮定して)、オペレーション409の実行を完了する
ことになる。したがって、ホスト・プロセッサ201か
らのオペレーションは、実行ユニット216〜217に
対して順番通りに発行することができるが、実行ユニッ
ト216〜217はそれらを順不同で完了することがで
きる。
能を実行するためにコプロセッサ212を利用すること
によって、システムおよびそのホスト・プロセッサ20
1の効率が高められる。コプロセッサ2121は、消費
されるホスト・プロセッサ201の資源を低減すること
によって、セキュア・セッションの確立を可能にする。
より多くのセキュア・セッションをさらに高速に確立す
ることができる。さらに、セキュリティ機能のために既
に費やされた資源をホスト・プロセッサ201が使用す
ることができるので、システムの全体的なパフォーマン
スも高められることになる。これらのホスト・プロセッ
サ201の資源は、システム監視、トラフィック監視等
に適用することができる。
行した順不同の特性は、セキュリティ・オペレーション
を実施するために柔軟性を実現する。変化する顧客ニー
ズに合わせるために、様々な細分化レベルのマクロ・セ
キュリティ・オペレーションを実施することができる。
順不同の完了を可能にする実施形態を示したが、代替形
態は、要求の順番通りの完了を要求するためのハードウ
ェアを含む。
はホスト・プロセッサが実行するコプロセッサ・ドライ
バである。本発明の一実施形態では、コプロセッサ・ド
ライバはOpenSSLの修正版とインターフェースを
とる。OpenSSLの修正版は、基本的セキュリティ
・オペレーションとは反対に、マクロ・セキュリティ・
オペレーションをドライバに伝達するように変更され
る。
ィ・オペレーションの処理 マクロ・セキュリティ・オペレーションを使用すること
によって、所与のセキュア・セッションに関するホスト
・プロセッサとセキュリティ・コプロセッサとの間の通
信数を減少させると、システム・パフォーマンスを高め
ることができるが、コプロセッサのアーキテクチャに対
してより伝わり易いタスクおよび結果の伝達方法は、ホ
スト・プロセッサとセキュリティ・コプロセッサとの間
におけるパフォーマンスを高めることができる。具体的
には、既に指摘したように、本発明の別の形態は、コプ
ロセッサが複数の実行ユニットを有する場合に、ホスト
・プロセッサとセキュリティ・コプロセッサとの間での
タスクと結果の伝達である。より具体的には、連続的フ
ロー可能なタスクの引き渡しおよび結果返還の機構が使
用される。連続的フロー可能なタスクの引き渡しおよび
結果返還の機構によって、ホスト・プロセッサは連続し
てタスクを追加することができ(待ち行列が満杯でない
限り)、セキュリティ・コプロセッサは連続して結果を
返還することができる(ホスト・プロセッサがセキュリ
ティ・コプロセッサに別の作業ブロックを転送できる前
にコプロセッサが完了すべき作業ブロックを必要とする
機構とは反対に)。図2、9および10は、非割込み駆
動型の連続的フロー機構の一実施形態を説明している
が、代替形態は様々なフロー機構を使用することができ
る。
らに説明するために、図9は、本発明の実施形態による
要求処理ユニット234(図2を参照のこと)による要
求の処理の流れ図を示す。方法900は、処理ブロック
902で、セキュリティ・オペレーションに対するいく
つかの要求の1つを受け取ることから始まる。一実施形
態では、この要求は、前述したマクロ・オペレーション
および/または基本的オペレーションを含む。一実施形
態では、処理ブロック904で、要求処理ユニット23
4は、その要求に関連するデータ、例えばセキュリティ
・オペレーションに対するオペランドなどを入力データ
208A〜208Iの1つに格納する。特に、このデー
タは、要求待ち行列206への入口点に課されるサイズ
の制約のために要求待ち行列206の外部に格納するよ
うに要求することができる。一実施形態では、関連する
データのすべてを要求待ち行列206内の要求内に格納
することができるので、追加データの格納は要求されな
い。
ユニット234は、出力データ209A〜209Iのメ
モリ空間を要求待ち行列206に格納されるべきそれら
の要求に割り当てる。一実施形態では、要求処理ユニッ
ト234は、関連する出力データ209A〜209I内
の完了コードの値を、その要求が完了していないことを
示す値にセットする。例えば、そのような一実施形態で
は、値0はその要求が完了したことを示し、したがっ
て、要求処理ユニット234はこの値を非0の番号にセ
ットする。
ユニット234は要求待ち行列をロックする。したがっ
て、このようにロックすることによって、他のユニット
または処理が、要求待ち行列206への書込要求から除
外される。要求待ち行列206をロックするために様々
な技術を使用することができるが、一実施形態では、要
求処理ユニット234は、セマフォーを使用したソフト
ウェア・ロックによって要求待ち行列206をロックす
る。処理ブロック910で、要求処理ユニット234
は、1つまたは複数の要求を要求待ち行列206に追加
する。図3を参照しながら既に述べたように、要求は、
コプロセッサ212内のユニットが実行するべきオペレ
ーション・コード、入力データ208A〜208Iの1
つに格納されているオペレーションに関係する他のデー
タを指すポインタ、および所与の要求の完了後にコプロ
セッサ212によって出力結果が入れられるホスト・メ
モリ204内の位置、例えば出力データ209A〜20
9Iへのポインタを含むことができる。処理ブロック9
12で、要求処理ユニット234は、1つまたは複数の
要求を追加した後で、要求待ち行列206をアンロック
する。
234は、要求待ち行列206に追加された1つまたは
複数の要求の数をドアベル・レジスタ220(コプロセ
ッサ212に配置される)に書き込む。一実施形態で
は、この書込みオペレーションは直接メモリ・アクセス
(DMA)書込みオペレーションによって実行される。
レジスタとして記述したが、ドアベル・レジスタ220
に格納されるべきデータは、コプロセッサ212内の他
のいかなるタイプのメモリをも含むことができる。
234は、ホスト・プロセッサ202上の実行のための
スレッドを生成することもできる。一実施形態では、ス
レッドは、SSL3.0セッションなどの所与のセキュ
リティ・セッションに対して作成される。一実施形態で
は、要求処理ユニット234は、要求待ち行列206に
挿入される要求ごとに異なるスレッドを作成する。処理
ブロック918で、これらのスレッドは、関係する出力
データ209A〜209Iに格納されている完了コード
を監視することによって、それらの関連する要求が完了
したかどうかを確認する。
は、関連する要求が要求待ち行列206に入れられると
スレッドをスリープさせ、そのスレッドを起こすために
タイマーをセットする。したがって、そのスレッドは、
処理を開始する際に、その要求が完了したかどうかを判
定するために、関係する出力データ209A〜209I
内の完了コードを確認する。一実施形態では、要求処理
ユニット234は、実行されるべき特定の要求に基づい
てこのタイマーの値をセットする。例えば、乱数を生成
するための第1の要求が、キー生成オペレーションへの
第2の要求よりも短期間で、コプロセッサ212によっ
て典型的に処理される場合、要求処理ユニット234は
それに従ってそれらのタイマーの値をセットする。すな
わち、第1の要求は、第2の要求よりも短期間のタイマ
ーを有するということである。一実施形態では、要求処
理ユニット234は、所定の期間だけそのスレッドを起
きた状態で保ち、その要求がその期間中に完了しなかっ
たと判断した場合、そのスレッドをスリープさせる。一
実施形態では、要求処理ユニット234は、所与の要求
に対してコプロセッサ212が完了コードをセットする
直前にブロックする。完了コードを確認するために要求
処理ユニット134がスレッドを使用する実施形態を説
明したが、代替形態は、他の機構を使用することができ
る(例えば、要求処理ユニット134は完了コードのそ
れぞれを確認することができる)。
求を完了すると、関連するスレッドはその要求、関連す
る入力データ208および/または出力データ209を
ホスト・メモリ204から削除することができる。一実
施形態では、要求が要求ユニット214から抽出される
と、要求および関連する入力データ208は要求待ち行
列206から削除されるが、出力データ209の内容を
持ってスレッドが終了すると、関連するスレッドによっ
て関連する出力データ209が削除される。
オペレーションの処理 図10は、本発明の実施形態によるコプロセッサ212
が要求する処理の流れ図である。方法1000は、処理
ブロック1002で、要求ユニット214によってドア
ベル・レジスタ220をポーリングすることから始ま
る。このドアベル・レジスタ220のポーリングは、1
つの処理ブロックで示される。しかし、本発明の実施形
態は、このように限定されるものではなく、このドアベ
ル・レジスタ220のポーリングを定期的に実行するこ
とができ、したがって要求ユニット214は、他の処理
ブロックに示されている機能が実行されている間にこの
ポーリングを実行することができる。例えば、要求ユニ
ット214によるこのポーリングは、実行ユニット21
6〜217の1つが要求を処理しているのと同時に実行
することができる(後述する処理ブロック1012にお
いて)。一実施形態では、要求ユニット214はすべて
のクロック周期でドアベル・レジスタ220をポーリン
グする。
求ユニット214は、要求待ち行列206が要求を含む
かどうかを、ドアベル・レジスタ220に格納されてい
る値に基づいて判定する。要求ユニット214は、要求
待ち行列206のサイズと位置を決定するために、コプ
ロセッサ212にローカルないくつかのメモリ位置にア
クセスすることができる。第1のメモリ位置は要求待ち
行列206の基底アドレスであり、第2のメモリ位置は
要求待ち行列206の長さである。一実施形態では、こ
れらのメモリ位置はコプロセッサ212内のレジスタで
ある。一実施形態では、要求処理ユニット234は、初
期化中にこれらのメモリ位置を適切な値にセットする。
によってドアベル・レジスタ220に格納された値は、
要求待ち行列206に追加された要求の数である(要求
待ち行列206の合計要求数でなく)。したがって、要
求待ち行列206に要求が含まれないと判定した場合、
処理ブロック1002で要求ユニット214はドアベル
・レジスタ220を再度ポーリングする。反対に、要求
待ち行列206に要求が含まれると判定した場合、処理
ブロック1006で、要求ユニット214は、要求待ち
行列206の合計要求数でカウンタを更新する。一実施
形態では、このカウンタは、レジスタなどの、コプロセ
ッサ212内のローカル・メモリである。このカウンタ
の更新の説明に役立てるために、このカウンタに格納さ
れている値が25であり、ドアベル・レジスタ220が
値5を有する場合、要求ユニット214はこれら2つの
値を加算して(合計30とし)、その和をカウンタに格
納する。さらに、処理ブロック1008で、要求ユニッ
ト214は、ドアベル・レジスタ220に格納されてい
る値を0にリセットする。
限定されるものではなく、要求待ち行列206内の要求
数を追跡する際に別の技術を採用することができる。例
えば、一実施形態では、要求待ち行列206内の合計要
求数を格納するために1つのメモリ位置が使用される
が、これは要求処理ユニット234および要求ユニット
214の両方によって、例えば複数ユニットが単一メモ
リ位置を更新することを可能にするセマフォーを使用し
て更新することができる。
214は、いくつかの実行ユニット216〜217の1
つが要求を処理できるかどうか、かつ/またはコプロセ
ッサ212の要求バッファ222内の空間が要求待ち行
列206から抽出した要求を格納できるかどうかを判定
する。特に、一実施形態では、実行ユニット216〜2
17の1つによって処理されるべき要求待ち行列206
から受け取った要求を格納するためにコプロセッサ21
2は要求バッファ222を含む。図8に示す前述の実施
形態のように、いくつかの実行ユニット216〜217
のそれぞれは、このようなユニットに対して、限定はし
ないが前述のような(異なる要求の説明に関連して)オ
ペレーションを含めて、いくつかの異なるセキュリティ
・オペレーションを実行することを可能にするマイクロ
コードを含むか、またはそのようなマイクロコードに対
するアクセス権を有する。すなわち、実行ユニット21
6〜217の所与の1つは、ハッシュ・オペレーション
などの所与の機能に限定されるものではないが、別の実
行ユニット216〜217の1つはセキュリティ・オペ
レーションのためのキーの生成に限定される。そうでは
なく、いくつかの実行ユニット216〜217のそれぞ
れは、いくつかの異なる基本的およびマクロ・セキュリ
ティ・オペレーションを実行することができる。
サ212には要求をローカルに格納するために使用可能
なバッファ空間がないかどうか、かつ/またはそのよう
な要求を処理するために使用可能な実行ユニット216
〜217があるかどうかを判定する際、要求ユニット2
14はこの使用可能なバッファ空間または実行ユニット
216〜217に関して確認を続ける。一実施形態で
は、要求ユニット214は、コプロセッサ212内の実
行ユニット216〜217または他の制御回路から受け
取った信号からそのような可用性を判定することができ
る。反対に、要求をローカルに格納するために使用可能
なコプロセッサ212内のバッファ空間、および/また
は、そのような要求を処理するために使用可能な実行ユ
ニット216〜217があると判定した場合、処理ブロ
ック1012で、要求ユニット214は要求待ち行列2
06から1つまたは複数の要求を取り出す。一実施形態
では、要求ユニット214は、DMA読取りオペレーシ
ョンを使用して要求待ち行列206から1つまたは複数
のそのような要求を取り出す。
ニット214は、それらの要求に関する関連する入力デ
ータ208A〜208Iをホスト・メモリ204から取
り出す。一実施形態では、入力データ208A〜208
Iはホスト・メモリ204に連続して格納される。この
ような一実施形態では、要求ユニット214は、そのよ
うなデータが連続して格納されているということから、
単一DMA読取を使用してこの関連する入力データ20
8A〜208Iを取り出す。したがって、複数の要求を
コプロセッサ2121に転送するためには2つのDMA
オペレーションだけでよく、したがって、所与のセキュ
リティ・オペレーションに関する全体の処理速度は向上
する。
のユニット(要求ユニット214、実行ユニット216
〜217、および乱数ジェネレータ・ユニット218を
含む)は要求を処理する。要求ユニット214は、これ
らの取り出された要求を実行ユニット216〜217お
よび乱数ジェネレータ・ユニット218に分配または与
える。一実施形態において、各実行ユニット216〜2
17は、受け取った様々なタイプのいかなるセキュリテ
ィ・オペレーションでも処理することができるので、要
求ユニット214は、そのような要求の処理のために使
用可能な実行ユニット216〜217の第1の実行ユニ
ットに要求を送ることができる。
して、実行ユニット216〜217の1つが要求の処理
を完了すると、この実行ユニット216〜217は、要
求の結果ポインタ212(図3に示す)が指すホスト・
メモリ204内の位置(出力データ209A〜209I
の1つ)にこの要求の結果を格納する。要求内のオペレ
ーションの実際の結果に加え、実行ユニット216〜2
17は完了コード内に値、例えば要求が完了したことを
示す非0値などを書き込む。一実施形態では、実行ユニ
ット216〜217は、DMA書込みオペレーションを
使用して結果および完了コードを書き込む。したがっ
て、一実施形態では、所与の要求(要求に対するDMA
読取、入力データに対するDMA読取、および出力結果
に対するDMA書込を含む)に対して合計3つのDMA
オペレーションが必要となる。さらに、所与のDMAオ
ペレーションについてはホスト・メモリ204から複数
の要求を読み取ることができるので、DMAオペレーシ
ョンの合計数は約2に近づき、これによって、システム
・バス210を介した全体のバス転送は限定される。こ
のシステム・バス210を介したバス転送は、セキュリ
ティ・オペレーションを処理するための時間の点で犠牲
が大きくなる場合がある。
ティ・オペレーションをそれぞれが実行することがで
き、かつ他の実行ユニットによって処理中の他のセキュ
リティ・オペレーションと関係なくこれを行うことがで
きるいくつかの実行ユニットをコプロセッサ212が含
むので、これらの要求は、要求待ち行列206内に要求
があった順番とは異なる順番で実行および/または完了
することができる(また、結果をホスト・メモリ204
に出力する)。例えば、第1の要求は、第1のSSLオ
ペレーションに対するキー生成オペレーションを含むこ
とができるが、第2の要求は、第2のSSLセッション
に対するモジューラ演算オペレーションを含むことがで
き、したがって、第1の要求は第2の要求よりも前に要
求待ち行列206に格納され、かつ、そこから抽出され
る。通常、第2の要求は第1の要求よりもより高速に実
行ユニット216〜217によって処理される。したが
って、たとえ第1の要求が、要求待ち行列206内の要
求の順番に基づいて最初にコプロセッサ212に送信さ
れたとしても、第2の要求の処理は第1の要求の処理よ
りも前に完了することができる。
ウェアによって相互から独立して扱われるように記述さ
れている。完了の特別な順番を要する従属関係が任意の
要求の間にある場合、その順番はこの実施形態ではソフ
トウェアによって断行される。しかし、代替形態は、要
求の順番通りの完了を断行するハードウェアを含む。
記述する方法の任意の1つまたはそのすべてを実施する
命令のセット(すなわち、ソフトウェア)が格納されて
いる機械可読媒体を含む。ソフトウェアは、本明細書に
記述するこのメモリ内および/またはプロセッサ内に、
全体的にまたは少なくとも部分的に常駐することができ
る。本明細書のためには、「機械可読媒体」という用語
は、機械(すなわち、コンピュータ)によって可読の形
式で情報を供給する(すなわち、格納かつ/または送
る)いかなる機構をも含むものと解釈される。例えば、
機械可読媒体には、読取専用メモリ(「ROM」)、ラ
ンダム・アクセス・メモリ(「RAM」)、磁気ディス
ク格納媒体、光格納媒体、フラッシュ・メモリ装置、ま
たは電子式、光学式、音響式または他の形式の伝搬信号
(例えば、搬送波、赤外線信号、デジタル信号、等)等
が含まれる。
理する方法および装置について説明した。本発明は特定
の例示的実施形態を参照して説明したが、本発明のより
広範な趣旨および範囲を逸脱せずに、これらの実施形態
に対する様々な変形形態および変更が可能であることが
明白になろう。例えば、代替形態では、ホスト・プロセ
ッサは割込みによってセキュリティ・コプロセッサと通
信することができるが、この際、ホスト・メモリと通信
するためにセキュリティ・コプロセッサがDMAオペレ
ーションを使用することを可能にする。あるいは、セキ
ュリティ・コプロセッサは、ホスト・プロセッサとの通
信のために割込みを使用することができるが、ホスト・
プロセッサは、コプロセッサとの通信のためにDMAオ
ペレーションを使用する。したがって、本明細書および
図面は、限定的ではなく例示的なものと考慮されるべき
である。
クライアント/サーバ交換を説明する図面である。
レーションを処理するシステムを示すブロック図であ
る。
による処理の要求形式の一例を示す図である。
0セッションの確立の一例を示す図面である。
・セキュリティ・オペレーションに対する基本的なセキ
ュリティ・オペレーションのグループを示す表である。
の確立の一例を示す図面である。
ドシェーク・オペレーション701に対する一群の基本
的なオペレーションを示す表である。
〜217の1つを示す図面である。
34による要求処理の流れ図である。
2による要求処理の流れ図である。
Claims (46)
- 【請求項1】 要求ユニットによって、ホスト・メモリ
からセキュリティ・オペレーションに対するいくつかの
要求をホスト・メモリ内の順番通りに取り出し、 要求ユニットによって、セキュリティ・オペレーション
に対するいくつかの要求をいくつかの実行ユニットに、
いくつかの実行ユニットの可用性に基づいて分配し、 いくつかの実行ユニットによって、セキュリティ・オペ
レーションに対するいくつかの要求を処理し、かつセキ
ュリティ・オペレーションに対するいくつかの要求の結
果をホスト・メモリ内の位置に出力することであって、
結果を出力する順番がホスト・メモリ内の要求の順番と
異なってよいことを含む方法。 - 【請求項2】 いくつかの要求が、いくつかの異なるセ
キュア・ソケット・レイヤ・セッションに関係し、いく
つかの要求は相互に依存しなくてよい請求項1に記載の
方法。 - 【請求項3】 いくつかの要求の1つを処理する時間
が、いくつかの要求の他の1つを処理する時間と異なっ
てもよい請求項1に記載の方法。 - 【請求項4】 いくつかの実行ユニットのそれぞれが、
いくつかの要求内の異なるタイプのセキュリティ・オペ
レーションのどれでも処理することができる請求項1に
記載の方法。 - 【請求項5】 要求がマクロ・セキュリティ・オペレー
ションを含むことができる請求項1に記載の方法。 - 【請求項6】 いくつかの要求を取り出すことが、いく
つかの要求をホスト・メモリの待ち行列から、いくつか
の要求に対する第1の直接メモリ・アクセス(DMA)
読取りオペレーションを使用して取り出し、いくつかの
要求に関係する入力データ構造をホスト・メモリから、
第2のDMA読取りオペレーションを使用して取り出す
ことを含む請求項1に記載の方法。 - 【請求項7】 いくつかの要求の結果を出力すること
が、DMA書込みオペレーションを使用していくつかの
要求の結果を出力することを含む請求項6に記載の方
法。 - 【請求項8】 いくつかの要求の1つを取り出すこと
と、いくつかの要求の1つを出力することが、約2つの
DMAオペレーションを含む請求項7に記載の方法。 - 【請求項9】 セキュリティ・オペレーションに対する
いくつかの要求の結果をホスト・メモリ内の位置に出力
することが、セキュリティ・オペレーションに対するい
くつかの要求の結果を、いくつかの要求に格納されてい
るポインタに基づいてホスト・メモリ内の位置に出力す
ることを含む請求項1に記載の方法。 - 【請求項10】 セキュリティ・オペレーションに対す
るいくつかの要求の結果をホスト・メモリ内の位置に出
力することが、ホスト・メモリ内の位置で要求の完了を
示す完了コードの値をセットすることを含む請求項1に
記載の方法。 - 【請求項11】 ホスト・メモリ内の要求待ち行列内の
セキュリティ・オペレーションに対するいくつかの要求
を要求待ち行列内の順番通りに格納し、 セキュリティ・オペレーションに対するいくつかの要求
に関係するデータを、ホスト・メモリ内のいくつかの入
力データ構造に格納し、 いくつかの出力データ構造をホスト・メモリ内に割り振
ることであって、セキュリティ・オペレーションに対す
るいくつかの要求の結果をいくつかの出力データ構造に
書き込むコプロセッサが、要求待ち行列内の要求の順番
とは異なる順番で結果を書き込むことができ、 いくつかの要求のそれぞれに対して、関連する要求に関
して出力データ構造に格納されており、要求がコプロセ
ッサによって完了したことを示す完了コードの値を定期
的に確認するスレッドをホスト・プロセッサ上で実行す
るために割り振ることを含むホスト・プロセッサ上で実
行される方法。 - 【請求項12】 要求待ち行列内のいくつかの要求を格
納中に要求待ち行列がロックされる請求項11に記載の
方法。 - 【請求項13】 要求待ち行列に格納されているいくつ
かの要求を、コプロセッサのメモリ位置に書き込むこと
をさらに含む請求項11に記載の方法。 - 【請求項14】 実行の各スレッドが異なるセキュリテ
ィ・ソケット・レイヤ・セッションに関連付けられる請
求項11に記載の方法。 - 【請求項15】 実行のスレッドが、実行の他のスレッ
ドとは関係なく、関連する要求に関して完了コードの値
を確認する請求項11に記載の方法。 - 【請求項16】 いくつかの要求の少なくとも1つがマ
クロ・セキュリティ・オペレーションを含む請求項11
に記載の方法。 - 【請求項17】 セキュリティ・オペレーションに対す
るいくつかの要求を処理するいくつかの実行ユニットで
あって、いくつかの実行ユニットは、いくつかの要求の
結果を、いくつかの要求に格納されているポインタに基
づいて、遠隔メモリ内のいくつかの要求に関連するいく
つかの出力データ構造に出力するためのものであり、い
くつかの実行ユニットが、要求待ち行列の要求の順番と
は異なる順番で結果を出力することができる実行ユニッ
トと、 いくつかの実行ユニットに結合されている要求ユニット
であって、要求ユニットは、いくつかの要求の一部を遠
隔メモリ内の要求待ち行列から取り出し、また、いくつ
かの要求の一部に対する関連する入力データ構造を遠隔
メモリから取り出し、要求ユニットが、取り出した要求
を、いくつかの実行ユニットによる処理に対する可用性
に基づいて、いくつかの実行ユニットに分配するための
ものである要求ユニットとを含むプロセッサ。 - 【請求項18】 いくつかの要求はいくつかの異なるセ
キュア・ソケット・レイヤ・セッションに関係し、いく
つかの要求が相互に依存しなくてよい請求項17に記載
のプロセッサ。 - 【請求項19】 いくつかの要求の1つを処理する時間
が、いくつかの要求の他の1つを処理する時間と異なっ
てよい請求項17に記載のプロセッサ。 - 【請求項20】 いくつかの実行ユニットのそれぞれ
が、いくつかの要求内の異なるタイプのセキュリティ・
オペレーションのどれでも処理することができる請求項
17に記載のプロセッサ。 - 【請求項21】 要求がマクロ・セキュリティ・オペレ
ーションを含むことができる請求項17に記載のプロセ
ッサ。 - 【請求項22】 要求ユニットが、第1の直接メモリ・
アクセス(DMA)読取りオペレーションを使用して要
求待ち行列からいくつかの要求を取り出すためのもので
あり、要求ユニットは、第2のDMA読取りオペレーシ
ョンを使用して、いくつかの関連する入力データ構造を
取り出すためのものである請求項17に記載のプロセッ
サ。 - 【請求項23】 いくつかの実行ユニットが、DMA書
込みオペレーションを使用して、いくつかの要求の結果
をいくつかの出力データ構造に出力するためのものであ
る請求項22に記載のプロセッサ。 - 【請求項24】 システム・バスに結合されているホス
ト・プロセッサと、 システム・バスに結合されているホスト・メモリであっ
て、 セキュリティ・オペレーションに対するいくつかの要求
を含めるための要求待ち行列であって、いくつかの要求
が要求待ち行列内の順番通りである要求待ち行列と、 いくつかの要求に関連するデータを含めるためのいくつ
かの入力データ構造と、 いくつかの要求の処理からの結果を含めるためのいくつ
かの出力データ構造とを格納するホスト・メモリと、 システム・バスに結合されているコプロセッサとを含む
システムであって、コプロセッサが、 セキュリティ・オペレーションに対するいくつかの要求
を処理するためのいくつかの実行ユニットであって、そ
のいくつかの実行ユニットは、いくつかの要求の結果
を、いくつかの要求に格納されているポインタに基づい
て、いくつかの要求に関連するいくつかの出力データ構
造に出力するためのものであり、いくつかの実行ユニッ
トが要求待ち行列内の要求の順番とは異なる順番で結果
を出力することができるいくつかの実行ユニットと、 いくつかの実行ユニットに結合されており、いくつかの
要求の一部を要求待ち行列から取り出し、また、いくつ
かの要求の一部に対する関連する入力データ構造をホス
ト・メモリから取り出す要求ユニットであって、いくつ
かの実行ユニットによる処理の可用性に基づいて、取り
出した要求をいくつかの実行ユニットに分配する要求ユ
ニットとを含むシステム。 - 【請求項25】 いくつかの要求がいくつかの異なるセ
キュア・ソケット・レイヤ・セッションに関係し、いく
つかの要求が相互に依存しなくてよい請求項24に記載
のシステム。 - 【請求項26】 いくつかの要求の1つを処理する時間
が、いくつかの要求の他の1つを処理する時間と異なっ
てよい請求項24に記載のシステム。 - 【請求項27】 いくつかの実行ユニットのそれぞれ
が、いくつかの要求内の異なるタイプのセキュリティ・
オペレーションのどれでも処理することができる請求項
24に記載のシステム。 - 【請求項28】 要求がマクロ・セキュリティ・オペレ
ーションを含むことができる請求項24に記載のシステ
ム。 - 【請求項29】 要求ユニットが、第1の直接メモリ・
アクセス(DMA)読取りオペレーションを使用して、
いくつかの要求を要求待ち行列から取り出すためのもの
であり、要求ユニットが第2のDMA読取りオペレーシ
ョンを使用していくつかの関連する入力データ構造を取
り出すためのものである請求項24に記載のシステム。 - 【請求項30】 いくつかの実行ユニットが、DMA書
込みオペレーションを使用して、いくつかの要求の結果
をいくつかの出力データ構造に出力するためのものであ
る請求項29に記載のシステム。 - 【請求項31】 命令を提供する機械可読媒体であっ
て、その命令が機械によって実行されたときに、 要求ユニットによって、セキュリティ・オペレーション
に対するいくつかの要求をホスト・メモリ内の順番通り
にホスト・メモリから取り出し、 要求ユニットによって、セキュリティ・オペレーション
に対するいくつかの要求をいくつかの実行ユニットに、
いくつかの実行ユニットの可用性に基づいて分配し、 いくつかの実行ユニットによって、セキュリティ・オペ
レーションに対するいくつかの要求を処理し、かつセキ
ュリティ・オペレーションに対するいくつかの要求の結
果をホスト・メモリ内の位置に出力することを含み、結
果を出力する順番がホスト・メモリ内の要求の順番と異
なってよいオペレーションを、命令が機械に実行させる
機械可読媒体。 - 【請求項32】 いくつかの要求がいくつかの異なるセ
キュア・ソケット・レイア・セッションに関係し、いく
つかの要求が相互に依存しなくてよい請求項31に記載
の機械可読媒体。 - 【請求項33】 いくつかの要求の1つを処理する時間
が、いくつかの要求の他の1つを処理する時間と異なっ
てよい請求項31に記載の機械可読媒体。 - 【請求項34】 いくつかの実行ユニットのそれぞれ
が、いくつかの要求内の異なるタイプのセキュリティ・
オペレーションのどれでも処理することができる請求項
31に記載の機械可読媒体。 - 【請求項35】 要求がマクロ・セキュリティ・オペレ
ーションを含むことができる請求項31に記載の機械可
読媒体。 - 【請求項36】 いくつかの要求を取り出すことが、 いくつかの要求に対して第1の直接メモリ・アクセス
(DMA)読取りオペレーションを使用して、いくつか
の要求をホスト・メモリの待ち行列から取り出し、 第2のDMA読取りオペレーションを使用して、いくつ
かの要求に関係する入力データ構造をホスト・メモリか
ら取り出すことを含む請求項31に記載の機械可読媒
体。 - 【請求項37】 いくつかの要求の結果を出力すること
が、DMA書込みオペレーションを使用していくつかの
要求の結果を出力することを含む請求項36に記載の機
械可読媒体。 - 【請求項38】 いくつかの要求の1つを取り出すこと
と、いくつかの要求の1つを出力することが、約2つの
DMAオペレーションを含む請求項37に記載の機械可
読媒体。 - 【請求項39】 セキュリティ・オペレーションに対す
るいくつかの要求の結果をホスト・メモリ内の位置に出
力することが、セキュリティ・オペレーションに対する
いくつかの要求の結果を、いくつかの要求に格納されて
いるポインタに基づいてホスト・メモリ内の位置に出力
することを含む請求項31に記載の機械可読媒体。 - 【請求項40】 セキュリティ・オペレーションに対す
るいくつかの要求の結果をホスト・メモリ内の位置に出
力することが、ホスト・メモリ内の位置で、要求の完了
を示す完了コードをセットすることを含む請求項31に
記載の機械可読媒体。 - 【請求項41】 命令を提供する機械可読媒体であっ
て、その命令がホスト・プロセッサによって実行された
ときに、 ホスト・メモリ内の要求待ち行列内のセキュリティ・オ
ペレーションに対するいくつかの要求を要求待ち行列内
の順番通り格納し、 セキュリティ・オペレーションに対するいくつかの要求
に関係するデータを、ホスト・メモリ内のいくつかの入
力データ構造に格納し、 ホスト・メモリ内でいくつかの出力データ構造を割り当
てることであって、セキュリティ・オペレーションに対
するいくつかの要求の結果をいくつかの出力データ構造
に書き込むコプロセッサが、要求待ち行列内の要求の順
番とは異なる順番で要求を書くことができ、かついくつ
かの要求のそれぞれに対して、関連する要求に関して出
力データ構造に格納され、要求がコプロセッサによって
完了したことを示す完了コードの値を定期的に確認する
スレッドをホスト・プロセッサ上で実行するために割り
振ることを含むオペレーションを命令がホスト・プロセ
ッサに実行させる機械可読媒体。 - 【請求項42】 要求待ち行列が、要求待ち行列内のい
くつかの要求を格納中にロックされる請求項41に記載
の機械可読媒体。 - 【請求項43】 要求待ち行列内に格納されているいく
つかの要求をコプロセッサのメモリ位置に書き込むこと
をさらに含む請求項41に記載の機械可読媒体。 - 【請求項44】 実行の各スレッドが、異なるセキュリ
ティ・ソケット・レイヤ・セッションに関連する請求項
41に記載の機械可読媒体。 - 【請求項45】 実行のスレッドが、実行の他のスレッ
ドとは関係なく、関連する要求に関して完了コードの値
を確認する請求項41に記載の機械可読媒体。 - 【請求項46】 いくつかの要求の少なくとも1つがマ
クロ・セキュリティ・オペレーションを含む請求項41
に記載の機械可読媒体。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US30764301P | 2001-07-24 | 2001-07-24 | |
US60/307643 | 2001-07-24 | ||
US10/025512 | 2001-12-19 | ||
US10/025,512 US6789147B1 (en) | 2001-07-24 | 2001-12-19 | Interface for a security coprocessor |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003216591A true JP2003216591A (ja) | 2003-07-31 |
JP4298971B2 JP4298971B2 (ja) | 2009-07-22 |
Family
ID=26699851
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002215500A Expired - Fee Related JP4298971B2 (ja) | 2001-07-24 | 2002-07-24 | セキュリティ・コプロセッサのためのインターフェース |
Country Status (4)
Country | Link |
---|---|
US (1) | US6789147B1 (ja) |
EP (1) | EP1282025B8 (ja) |
JP (1) | JP4298971B2 (ja) |
TW (1) | TW576963B (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7370123B2 (en) | 2004-10-12 | 2008-05-06 | Nec Electronics Corporation | Information processing apparatus |
Families Citing this family (140)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7480939B1 (en) * | 2000-04-28 | 2009-01-20 | 3Com Corporation | Enhancement to authentication protocol that uses a key lease |
US7240203B2 (en) * | 2001-07-24 | 2007-07-03 | Cavium Networks, Inc. | Method and apparatus for establishing secure sessions |
US7085850B2 (en) * | 2001-08-22 | 2006-08-01 | International Business Machines Corporation | Stateless message processing scheme for network processors interactions |
US6658091B1 (en) | 2002-02-01 | 2003-12-02 | @Security Broadband Corp. | LIfestyle multimedia security system |
US7305567B1 (en) | 2002-03-01 | 2007-12-04 | Cavium Networks, In. | Decoupled architecture for data ciphering operations |
US7003610B2 (en) * | 2002-09-20 | 2006-02-21 | Lsi Logic Corporation | System and method for handling shared resource writes arriving via non-maskable interrupts (NMI) in single thread non-mission critical systems with limited memory space |
US7337314B2 (en) * | 2003-04-12 | 2008-02-26 | Cavium Networks, Inc. | Apparatus and method for allocating resources within a security processor |
US7661130B2 (en) * | 2003-04-12 | 2010-02-09 | Cavium Networks, Inc. | Apparatus and method for allocating resources within a security processing architecture using multiple queuing mechanisms |
US7657933B2 (en) * | 2003-04-12 | 2010-02-02 | Cavium Networks, Inc. | Apparatus and method for allocating resources within a security processing architecture using multiple groups |
US7519833B2 (en) | 2003-04-18 | 2009-04-14 | Via Technologies, Inc. | Microprocessor apparatus and method for enabling configurable data block size in a cryptographic engine |
US7844053B2 (en) * | 2003-04-18 | 2010-11-30 | Ip-First, Llc | Microprocessor apparatus and method for performing block cipher cryptographic functions |
US7529368B2 (en) | 2003-04-18 | 2009-05-05 | Via Technologies, Inc. | Apparatus and method for performing transparent output feedback mode cryptographic functions |
US8060755B2 (en) * | 2003-04-18 | 2011-11-15 | Via Technologies, Inc | Apparatus and method for providing user-generated key schedule in a microprocessor cryptographic engine |
US7542566B2 (en) | 2003-04-18 | 2009-06-02 | Ip-First, Llc | Apparatus and method for performing transparent cipher block chaining mode cryptographic functions |
US7321910B2 (en) | 2003-04-18 | 2008-01-22 | Ip-First, Llc | Microprocessor apparatus and method for performing block cipher cryptographic functions |
US7529367B2 (en) | 2003-04-18 | 2009-05-05 | Via Technologies, Inc. | Apparatus and method for performing transparent cipher feedback mode cryptographic functions |
US7532722B2 (en) * | 2003-04-18 | 2009-05-12 | Ip-First, Llc | Apparatus and method for performing transparent block cipher cryptographic functions |
US7502943B2 (en) | 2003-04-18 | 2009-03-10 | Via Technologies, Inc. | Microprocessor apparatus and method for providing configurable cryptographic block cipher round results |
US7539876B2 (en) | 2003-04-18 | 2009-05-26 | Via Technologies, Inc. | Apparatus and method for generating a cryptographic key schedule in a microprocessor |
US7925891B2 (en) * | 2003-04-18 | 2011-04-12 | Via Technologies, Inc. | Apparatus and method for employing cryptographic functions to generate a message digest |
US7900055B2 (en) | 2003-04-18 | 2011-03-01 | Via Technologies, Inc. | Microprocessor apparatus and method for employing configurable block cipher cryptographic algorithms |
US7536560B2 (en) | 2003-04-18 | 2009-05-19 | Via Technologies, Inc. | Microprocessor apparatus and method for providing configurable cryptographic key size |
US7392400B2 (en) * | 2003-04-18 | 2008-06-24 | Via Technologies, Inc. | Microprocessor apparatus and method for optimizing block cipher cryptographic functions |
US7644197B1 (en) * | 2003-10-15 | 2010-01-05 | Sun Microsystems, Inc. | Queue management by multiple processors |
US8176545B1 (en) * | 2003-12-19 | 2012-05-08 | Nvidia Corporation | Integrated policy checking system and method |
US11677577B2 (en) | 2004-03-16 | 2023-06-13 | Icontrol Networks, Inc. | Premises system management using status signal |
US9609003B1 (en) | 2007-06-12 | 2017-03-28 | Icontrol Networks, Inc. | Generating risk profile using data of home monitoring and security system |
US11811845B2 (en) | 2004-03-16 | 2023-11-07 | Icontrol Networks, Inc. | Communication protocols over internet protocol (IP) networks |
US8996665B2 (en) | 2005-03-16 | 2015-03-31 | Icontrol Networks, Inc. | Takeover processes in security network integrated with premise security system |
US10127802B2 (en) | 2010-09-28 | 2018-11-13 | Icontrol Networks, Inc. | Integrated security system with parallel processing architecture |
US11368429B2 (en) | 2004-03-16 | 2022-06-21 | Icontrol Networks, Inc. | Premises management configuration and control |
US7711796B2 (en) | 2006-06-12 | 2010-05-04 | Icontrol Networks, Inc. | Gateway registry methods and systems |
US10313303B2 (en) | 2007-06-12 | 2019-06-04 | Icontrol Networks, Inc. | Forming a security network including integrated security system components and network devices |
US11582065B2 (en) | 2007-06-12 | 2023-02-14 | Icontrol Networks, Inc. | Systems and methods for device communication |
US10142392B2 (en) | 2007-01-24 | 2018-11-27 | Icontrol Networks, Inc. | Methods and systems for improved system performance |
US11244545B2 (en) | 2004-03-16 | 2022-02-08 | Icontrol Networks, Inc. | Cross-client sensor user interface in an integrated security network |
US11489812B2 (en) | 2004-03-16 | 2022-11-01 | Icontrol Networks, Inc. | Forming a security network including integrated security system components and network devices |
US11113950B2 (en) | 2005-03-16 | 2021-09-07 | Icontrol Networks, Inc. | Gateway integrated with premises security system |
US9531593B2 (en) | 2007-06-12 | 2016-12-27 | Icontrol Networks, Inc. | Takeover processes in security network integrated with premise security system |
US10382452B1 (en) | 2007-06-12 | 2019-08-13 | Icontrol Networks, Inc. | Communication protocols in integrated systems |
US9729342B2 (en) | 2010-12-20 | 2017-08-08 | Icontrol Networks, Inc. | Defining and implementing sensor triggered response rules |
US8612591B2 (en) | 2005-03-16 | 2013-12-17 | Icontrol Networks, Inc. | Security system with networked touchscreen |
US11159484B2 (en) | 2004-03-16 | 2021-10-26 | Icontrol Networks, Inc. | Forming a security network including integrated security system components and network devices |
US20160065414A1 (en) | 2013-06-27 | 2016-03-03 | Ken Sundermeyer | Control system user interface |
US11916870B2 (en) | 2004-03-16 | 2024-02-27 | Icontrol Networks, Inc. | Gateway registry methods and systems |
US9141276B2 (en) | 2005-03-16 | 2015-09-22 | Icontrol Networks, Inc. | Integrated interface for mobile device |
US10156959B2 (en) | 2005-03-16 | 2018-12-18 | Icontrol Networks, Inc. | Cross-client sensor user interface in an integrated security network |
US8963713B2 (en) | 2005-03-16 | 2015-02-24 | Icontrol Networks, Inc. | Integrated security network with security alarm signaling system |
US10444964B2 (en) | 2007-06-12 | 2019-10-15 | Icontrol Networks, Inc. | Control system user interface |
US9191228B2 (en) | 2005-03-16 | 2015-11-17 | Icontrol Networks, Inc. | Cross-client sensor user interface in an integrated security network |
US10339791B2 (en) | 2007-06-12 | 2019-07-02 | Icontrol Networks, Inc. | Security network integrated with premise security system |
US8635350B2 (en) | 2006-06-12 | 2014-01-21 | Icontrol Networks, Inc. | IP device discovery systems and methods |
US8473619B2 (en) | 2005-03-16 | 2013-06-25 | Icontrol Networks, Inc. | Security network integrated with premise security system |
US20170118037A1 (en) | 2008-08-11 | 2017-04-27 | Icontrol Networks, Inc. | Integrated cloud system for premises automation |
US20090077623A1 (en) | 2005-03-16 | 2009-03-19 | Marc Baum | Security Network Integrating Security System and Network Devices |
US10522026B2 (en) | 2008-08-11 | 2019-12-31 | Icontrol Networks, Inc. | Automation system user interface with three-dimensional display |
EP1738540B1 (en) | 2004-03-16 | 2017-10-04 | Icontrol Networks, Inc. | Premises management system |
US9172553B2 (en) | 2005-03-16 | 2015-10-27 | Icontrol Networks, Inc. | Security system with networked touchscreen and gateway |
US11277465B2 (en) | 2004-03-16 | 2022-03-15 | Icontrol Networks, Inc. | Generating risk profile using data of home monitoring and security system |
US10237237B2 (en) | 2007-06-12 | 2019-03-19 | Icontrol Networks, Inc. | Communication protocols in integrated systems |
US11201755B2 (en) | 2004-03-16 | 2021-12-14 | Icontrol Networks, Inc. | Premises system management using status signal |
US10200504B2 (en) | 2007-06-12 | 2019-02-05 | Icontrol Networks, Inc. | Communication protocols over internet protocol (IP) networks |
US11343380B2 (en) | 2004-03-16 | 2022-05-24 | Icontrol Networks, Inc. | Premises system automation |
US10721087B2 (en) | 2005-03-16 | 2020-07-21 | Icontrol Networks, Inc. | Method for networked touchscreen with integrated interfaces |
US10375253B2 (en) | 2008-08-25 | 2019-08-06 | Icontrol Networks, Inc. | Security system with networked touchscreen and gateway |
US11316958B2 (en) | 2008-08-11 | 2022-04-26 | Icontrol Networks, Inc. | Virtual device systems and methods |
US8988221B2 (en) | 2005-03-16 | 2015-03-24 | Icontrol Networks, Inc. | Integrated security system with parallel processing architecture |
US20170180198A1 (en) | 2008-08-11 | 2017-06-22 | Marc Baum | Forming a security network including integrated security system components |
US20120324566A1 (en) | 2005-03-16 | 2012-12-20 | Marc Baum | Takeover Processes In Security Network Integrated With Premise Security System |
US20110128378A1 (en) | 2005-03-16 | 2011-06-02 | Reza Raji | Modular Electronic Display Platform |
US8713132B2 (en) | 2005-03-16 | 2014-04-29 | Icontrol Networks, Inc. | Device for data routing in networks |
US9306809B2 (en) | 2007-06-12 | 2016-04-05 | Icontrol Networks, Inc. | Security system with networked touchscreen |
US9450776B2 (en) | 2005-03-16 | 2016-09-20 | Icontrol Networks, Inc. | Forming a security network including integrated security system components |
US8819178B2 (en) | 2005-03-16 | 2014-08-26 | Icontrol Networks, Inc. | Controlling data routing in integrated security systems |
US11615697B2 (en) | 2005-03-16 | 2023-03-28 | Icontrol Networks, Inc. | Premise management systems and methods |
US10999254B2 (en) | 2005-03-16 | 2021-05-04 | Icontrol Networks, Inc. | System for data routing in networks |
US9059863B2 (en) | 2005-03-16 | 2015-06-16 | Icontrol Networks, Inc. | Method for data routing in networks |
US11496568B2 (en) | 2005-03-16 | 2022-11-08 | Icontrol Networks, Inc. | Security system with networked touchscreen |
US11700142B2 (en) | 2005-03-16 | 2023-07-11 | Icontrol Networks, Inc. | Security network integrating security system and network devices |
US8825871B2 (en) | 2005-03-16 | 2014-09-02 | Icontrol Networks, Inc. | Controlling data routing among networks |
US20070005815A1 (en) * | 2005-05-23 | 2007-01-04 | Boyd William T | System and method for processing block mode I/O operations using a linear block address translation protection table |
JP2007079789A (ja) * | 2005-09-13 | 2007-03-29 | Nec Corp | 計算機システム及びイベント処理方法 |
US7490223B2 (en) * | 2005-10-31 | 2009-02-10 | Sun Microsystems, Inc. | Dynamic resource allocation among master processors that require service from a coprocessor |
US10079839B1 (en) | 2007-06-12 | 2018-09-18 | Icontrol Networks, Inc. | Activation of gateway device |
US7746350B1 (en) | 2006-06-15 | 2010-06-29 | Nvidia Corporation | Cryptographic computations on general purpose graphics processing units |
CN101179622B (zh) * | 2006-11-07 | 2010-06-16 | 中兴通讯股份有限公司 | 通讯系统中一种多命令的处理设备及其处理方法 |
US11706279B2 (en) | 2007-01-24 | 2023-07-18 | Icontrol Networks, Inc. | Methods and systems for data communication |
US7633385B2 (en) | 2007-02-28 | 2009-12-15 | Ucontrol, Inc. | Method and system for communicating with and controlling an alarm system from a remote server |
US8451986B2 (en) | 2007-04-23 | 2013-05-28 | Icontrol Networks, Inc. | Method and system for automatically providing alternate network access for telecommunications |
US11212192B2 (en) | 2007-06-12 | 2021-12-28 | Icontrol Networks, Inc. | Communication protocols in integrated systems |
US10423309B2 (en) | 2007-06-12 | 2019-09-24 | Icontrol Networks, Inc. | Device integration framework |
US11237714B2 (en) | 2007-06-12 | 2022-02-01 | Control Networks, Inc. | Control system user interface |
US11423756B2 (en) | 2007-06-12 | 2022-08-23 | Icontrol Networks, Inc. | Communication protocols in integrated systems |
US11218878B2 (en) | 2007-06-12 | 2022-01-04 | Icontrol Networks, Inc. | Communication protocols in integrated systems |
US10523689B2 (en) | 2007-06-12 | 2019-12-31 | Icontrol Networks, Inc. | Communication protocols over internet protocol (IP) networks |
US11089122B2 (en) | 2007-06-12 | 2021-08-10 | Icontrol Networks, Inc. | Controlling data routing among networks |
US11601810B2 (en) | 2007-06-12 | 2023-03-07 | Icontrol Networks, Inc. | Communication protocols in integrated systems |
US10666523B2 (en) | 2007-06-12 | 2020-05-26 | Icontrol Networks, Inc. | Communication protocols in integrated systems |
US10616075B2 (en) | 2007-06-12 | 2020-04-07 | Icontrol Networks, Inc. | Communication protocols in integrated systems |
US10389736B2 (en) | 2007-06-12 | 2019-08-20 | Icontrol Networks, Inc. | Communication protocols in integrated systems |
US10051078B2 (en) | 2007-06-12 | 2018-08-14 | Icontrol Networks, Inc. | WiFi-to-serial encapsulation in systems |
US10498830B2 (en) | 2007-06-12 | 2019-12-03 | Icontrol Networks, Inc. | Wi-Fi-to-serial encapsulation in systems |
US11316753B2 (en) | 2007-06-12 | 2022-04-26 | Icontrol Networks, Inc. | Communication protocols in integrated systems |
US11646907B2 (en) | 2007-06-12 | 2023-05-09 | Icontrol Networks, Inc. | Communication protocols in integrated systems |
US11831462B2 (en) | 2007-08-24 | 2023-11-28 | Icontrol Networks, Inc. | Controlling data routing in premises management systems |
US8190881B2 (en) | 2007-10-15 | 2012-05-29 | Foundry Networks Llc | Scalable distributed web-based authentication |
US7853735B2 (en) * | 2007-12-13 | 2010-12-14 | Emulex Design & Manufacturing Corporation | Efficient processing of groups of host access requests that may include zero length requests |
US11916928B2 (en) | 2008-01-24 | 2024-02-27 | Icontrol Networks, Inc. | Communication protocols over internet protocol (IP) networks |
US20090193230A1 (en) * | 2008-01-30 | 2009-07-30 | Ralf Findeisen | Computer system including a main processor and a bound security coprocessor |
US20170185278A1 (en) | 2008-08-11 | 2017-06-29 | Icontrol Networks, Inc. | Automation system user interface |
US11258625B2 (en) | 2008-08-11 | 2022-02-22 | Icontrol Networks, Inc. | Mobile premises automation platform |
US11729255B2 (en) | 2008-08-11 | 2023-08-15 | Icontrol Networks, Inc. | Integrated cloud system with lightweight gateway for premises automation |
US11758026B2 (en) | 2008-08-11 | 2023-09-12 | Icontrol Networks, Inc. | Virtual device systems and methods |
US10530839B2 (en) | 2008-08-11 | 2020-01-07 | Icontrol Networks, Inc. | Integrated cloud system with lightweight gateway for premises automation |
US11792036B2 (en) | 2008-08-11 | 2023-10-17 | Icontrol Networks, Inc. | Mobile premises automation platform |
US9628440B2 (en) | 2008-11-12 | 2017-04-18 | Icontrol Networks, Inc. | Takeover processes in security network integrated with premise security system |
US8352710B2 (en) | 2009-01-19 | 2013-01-08 | International Business Machines Corporation | Off-loading of processing from a processor blade to storage blades |
US8638211B2 (en) | 2009-04-30 | 2014-01-28 | Icontrol Networks, Inc. | Configurable controller and interface for home SMA, phone and multimedia |
WO2011038409A1 (en) * | 2009-09-28 | 2011-03-31 | Icontrol Networks, Inc. | Integrated security system with parallel processing architecture |
CN101777012B (zh) * | 2009-12-31 | 2013-05-08 | 深圳市蓝韵网络有限公司 | 一种三维图像服务器多任务管理调度方法 |
US9144143B2 (en) | 2010-04-30 | 2015-09-22 | Icontrol Networks, Inc. | Power and data solution for remote low-power devices |
WO2011143273A1 (en) | 2010-05-10 | 2011-11-17 | Icontrol Networks, Inc | Control system user interface |
US8836467B1 (en) | 2010-09-28 | 2014-09-16 | Icontrol Networks, Inc. | Method, system and apparatus for automated reporting of account and sensor zone information to a central station |
US11750414B2 (en) | 2010-12-16 | 2023-09-05 | Icontrol Networks, Inc. | Bidirectional security sensor communication for a premises security system |
US9147337B2 (en) | 2010-12-17 | 2015-09-29 | Icontrol Networks, Inc. | Method and system for logging security event data |
EP2544115A1 (fr) * | 2011-07-06 | 2013-01-09 | Gemalto SA | Procédé d'exécution d'un traitement dans un dispositif sécurisé |
US20130080672A1 (en) * | 2011-09-27 | 2013-03-28 | Kaminario Technologies Ltd. | System, method and computer program product for access control |
US9128769B2 (en) | 2011-10-13 | 2015-09-08 | Cavium, Inc. | Processor with dedicated virtual functions and dynamic assignment of functional resources |
US9129060B2 (en) | 2011-10-13 | 2015-09-08 | Cavium, Inc. | QoS based dynamic execution engine selection |
KR101448866B1 (ko) | 2013-01-11 | 2014-10-13 | 주식회사 시큐아이 | 웹 보안 프로토콜에 따른 암호화 데이터를 복호화하는 보안 장치 및 그것의 동작 방법 |
US9928975B1 (en) | 2013-03-14 | 2018-03-27 | Icontrol Networks, Inc. | Three-way switch |
US9287727B1 (en) | 2013-03-15 | 2016-03-15 | Icontrol Networks, Inc. | Temporal voltage adaptive lithium battery charger |
US9867143B1 (en) | 2013-03-15 | 2018-01-09 | Icontrol Networks, Inc. | Adaptive Power Modulation |
JP6050528B2 (ja) * | 2013-03-15 | 2016-12-21 | インテル コーポレイション | セキュリティ・コプロセッサ・ブート性能 |
WO2015021469A2 (en) | 2013-08-09 | 2015-02-12 | Icontrol Networks Canada Ulc | System, method and apparatus for remote monitoring |
US11146637B2 (en) | 2014-03-03 | 2021-10-12 | Icontrol Networks, Inc. | Media content management |
US11405463B2 (en) | 2014-03-03 | 2022-08-02 | Icontrol Networks, Inc. | Media content management |
US10031758B2 (en) * | 2014-03-31 | 2018-07-24 | Netronome Systems, Inc. | Chained-instruction dispatcher |
US10469265B2 (en) * | 2016-03-31 | 2019-11-05 | Intel Corporation | Technologies for secure inter-enclave communications |
US10721172B2 (en) | 2018-07-06 | 2020-07-21 | Marvell Asia Pte, Ltd. | Limiting backpressure with bad actors |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5581763A (en) * | 1988-06-14 | 1996-12-03 | Progressive Technology Inc. | Secure architecture and apparatus using an independent computer cartridge |
US5805711A (en) * | 1993-12-21 | 1998-09-08 | Francotyp-Postalia Ag & Co. | Method of improving the security of postage meter machines |
US6373846B1 (en) | 1996-03-07 | 2002-04-16 | Lsi Logic Corporation | Single chip networking device with enhanced memory access co-processor |
US5930832A (en) * | 1996-06-07 | 1999-07-27 | International Business Machines Corporation | Apparatus to guarantee TLB inclusion for store operations |
US5953502A (en) | 1997-02-13 | 1999-09-14 | Helbig, Sr.; Walter A | Method and apparatus for enhancing computer system security |
US6295645B1 (en) | 1997-12-22 | 2001-09-25 | Texas Instruments Incorporated | Method and apparatus for providing downloadable functionality to an embedded coprocessor |
US6378072B1 (en) | 1998-02-03 | 2002-04-23 | Compaq Computer Corporation | Cryptographic system |
US7996670B1 (en) * | 1999-07-08 | 2011-08-09 | Broadcom Corporation | Classification engine in a cryptography acceleration chip |
-
2001
- 2001-12-19 US US10/025,512 patent/US6789147B1/en not_active Expired - Lifetime
-
2002
- 2002-07-22 EP EP02016424.0A patent/EP1282025B8/en not_active Expired - Fee Related
- 2002-07-24 JP JP2002215500A patent/JP4298971B2/ja not_active Expired - Fee Related
- 2002-07-24 TW TW091116472A patent/TW576963B/zh not_active IP Right Cessation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7370123B2 (en) | 2004-10-12 | 2008-05-06 | Nec Electronics Corporation | Information processing apparatus |
Also Published As
Publication number | Publication date |
---|---|
EP1282025A3 (en) | 2005-07-20 |
EP1282025B1 (en) | 2018-07-04 |
TW576963B (en) | 2004-02-21 |
EP1282025B8 (en) | 2018-11-28 |
JP4298971B2 (ja) | 2009-07-22 |
US6789147B1 (en) | 2004-09-07 |
EP1282025A2 (en) | 2003-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2003216591A (ja) | セキュリティ・コプロセッサのためのインターフェース | |
JP2003209543A (ja) | セキュア・セッションを確立する方法および装置 | |
US6070198A (en) | Encryption with a streams-based protocol stack | |
US20220138349A1 (en) | Cryptographic architecture for cryptographic permutation | |
EP3514723B1 (en) | Methods and apparatus for secure data processing and transmission | |
JP3789454B2 (ja) | 暗号コプロセッサを有するストリームプロセッサ | |
US7475257B2 (en) | System and method for selecting and using a signal processor in a multiprocessor system to operate as a security for encryption/decryption of data | |
EP2192518B1 (en) | System for securing multithreaded server applications | |
JP6916454B2 (ja) | ハードウェアアクアクセラレーテッド暗号法のためのキーのスレッド所有権 | |
JP2003512649A (ja) | 暗号アクセラレータ | |
JP2003337736A (ja) | 計算機、ハードディスク装置、複数の該計算機及び共有ハードディスク装置から構成されるディスク装置共有システム、及び該共有システムにおいて利用されるディスク装置の共有方法 | |
CN113839770A (zh) | 用于tls分组加密和解密的高吞吐量后量子aes-gcm引擎 | |
KR100799305B1 (ko) | 다중 암호엔진을 사용하는 고성능 암호화 장치 | |
US20060013397A1 (en) | Channel adapter managed trusted queue pairs | |
Danczul et al. | Cuteforce analyzer: A distributed bruteforce attack on pdf encryption with gpus and fpgas | |
RU2585988C1 (ru) | Устройство шифрования данных (варианты), система на кристалле с его использованием (варианты) | |
CN116134421A (zh) | 向多瓦片处理系统流式传输数据 | |
Hughes et al. | Transparent multi-core cryptographic support on Niagara CMT Processors | |
JPH10190649A (ja) | 双方向データストリーム伝送装置 | |
Bian et al. | AsyncGBP: Unleashing the Potential of Heterogeneous Computing for SSL/TLS with GPU-based Provider | |
Anderson et al. | High-Performance Interface Architectures for Cryptographic Hardware | |
Kingsy Grace et al. | Joy of GPU Computing: A Performance Comparison of AES and RSA in GPU and CPU | |
Deng et al. | An object-oriented cryptosystem based on two-level reconfigurable computing architecture | |
CN116305245A (zh) | 一种基于可信执行环境的智能合约执行方法及相关装置 | |
Greathouse | Processors with On-Die Cryptography Accelerators |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050712 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080507 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20080807 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20080812 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080908 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090106 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090210 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20090317 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090416 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 4298971 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120424 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120424 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130424 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130424 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140424 Year of fee payment: 5 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |