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
Application number
JP2002215500A
Other languages
English (en)
Other versions
JP4298971B2 (ja
Inventor
Richard E Kessler
リチャード・イー・ケスラー
David A Carlson
ディビッド・エイ・カールソン
Muhammad Raghib Hussain
ムハマッド・ラヒブ・フセイン
Robert A Sanzone
ロバート・エイ・サンゾン
Khaja E Ahmed
カジャ・イー・アメッド
Michael D Varga
マイケル・ディー・バーガ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cavium LLC
Original Assignee
Cavium Networks LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Cavium Networks LLC filed Critical Cavium Networks LLC
Publication of JP2003216591A publication Critical patent/JP2003216591A/ja
Application granted granted Critical
Publication of JP4298971B2 publication Critical patent/JP4298971B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/166Implementing security features at a particular protocol layer at the transport layer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing 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

(57)【要約】 【課題】 セキュリティ・コプロセッサのためのインタ
ーフェースを提供すること。 【解決手段】 セキュリティ・オペレーションを処理す
る方法と装置である。プロセッサは、セキュリティ・オ
ペレーションに対するいくつかの要求を処理するいくつ
かの実行ユニットを含む。これらの実行ユニットは、い
くつかの要求の結果を、その要求に格納されているポイ
ンタに基づいて、遠隔メモリ内の要求に関連する出力デ
ータ構造に出力する。この実行ユニットは、要求待ち行
列内の要求の順番とは異なる順番で結果を出力すること
ができる。プロセッサは実行ユニットに結合されている
要求ユニットも含む。要求ユニットは、要求の一部を遠
隔メモリ内の要求待ち行列から取り出し、要求の一部に
対する関連する入力データ構造を遠隔メモリから取り出
す。さらに、要求ユニットは、取り出した要求を実行ユ
ニットによる処理の可用性に基づいていくつかの実行ユ
ニットに分配する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は処理の分野に関す
る。より詳細には、本発明はセキュリティ・コプロセッ
サのためのインターフェースに関する。
【0002】
【従来の技術】通信ネットワークおよびそのネットワー
クを使用するユーザの数は増加し続けている。さらに、
インターネットを介したB2BおよびB2Cに関するオ
ンライン販売も普及し続けている。また、在宅勤務者数
も増加し続けている。オンライン販売と在宅勤務のどち
らも、異なる通信ネットワークを通して送信している間
に保護される必要のある個人データおよび機密データを
典型的に伴う通信ネットワークを使用した例である。
【0003】したがって、セキュリティ・プロトコル
(例えば、トランスポート・レイヤ・セキュリティ(T
LS)、セキュア・ソケット・レイヤ(SSL)3.
0、インターネット・プロトコル・セキュリティ(IP
Sec)等)は、遠隔システム間でのセキュア・セッシ
ョンを確立するために発展してきた。これらのセキュリ
ティ・プロトコルは、遠隔システムがメッセージ交換お
よび計算によってセキュア・セッションを確立する方法
を提供し、それによって、異なる通信ネットワークを横
断して送信される機密データを安全に、かつ改ざんされ
ずに保つことができる。
【0004】図1は、セキュア・セッションを確立する
ための2相によるクライアント/サーバ交換を示す。第
1の相105であるセキュリティ・ネゴシエーション相
では、ネットワーク要素101(クライアント)とネッ
トワーク要素103(サーバ)とは、2つのネットワー
ク要素101と103の間でセキュリティをネゴシエー
ションするためにメッセージを交換する。セキュリティ
のネゴシエーションには、2つのネットワーク要素10
1と103が使用すべきアルゴリズム(例えば、ハッシ
ング・アルゴリズム、暗号化アルゴリズム、圧縮アルゴ
リズム等)を決定することが含まれる。第2の相107
であるキー交換相では、ネットワーク要素101と10
3はキー情報を交換する。第2の相107は、選択した
公開キーアルゴリズムおよび受け取ったメッセージの認
証に基づいてメッセージを交換するネットワーク要素1
01と103とを含んでいる。これら2相の特定の基本
的なタスクは様々なセキュリティ・プロトコルによって
異なるが、セキュア・セッションを確立するための基本
的なタスクは、メッセージの受信、メッセージの送信、
キーの生成、シークレットの生成、データのハッシン
グ、データの暗号化、データの暗号解読、および乱数の
計算を含むことができる。
【0005】セキュア・セッションを確立するためのタ
スクの実行はプロセッサ集中である。ネットワーク要素
に対してホスト・プロセッサとして動作する汎用プロセ
ッサは、これらのタスクを実行する場合、それらのタス
クのために資源が消費されるのでネットワーク要素のシ
ステム・パフォーマンスは損なわれることになる。不満
足なシステム・パフォーマンスの結果は、ネットワーク
要素の機能によって(例えば、ルーティング、スイッチ
ング、サービス、ネットワーク接続された格納装置の管
理等)様々な方法でネットワークおよびユーザに影響を
与える。
【0006】ホスト・プロセッサから一部のタスクの負
荷を軽減するためにコプロセッサが開発された。ホスト
・プロセッサのための特定の基本タスク(例えば、デー
タのハッシュ)を実行するために、いくつかのコプロセ
ッサが開発された。タスク特有のコプロセッサを追加し
ても、大量のセキュア・セッションを確立するタスクの
負荷はホスト・プロセッサから軽減されない。一代替形
態は、それぞれが異なるタスクを実行する複数のコプロ
セッサをネットワークに追加することである。このよう
な代替形態は、物理的な制約(例えば、カードを結合す
るためのスロット数)によって制限を受けるものであ
り、ホスト・プロセッサと複数のコプロセッサの間での
複数の通信による問題を生じる。
【0007】セキュア・セッションを確立するために要
求される複数のタスクを実行するために他のコプロセッ
サが開発された。コプロセッサが暗号オペレーション
(例えば、暗号化または暗号解読)、キー・マテリアル
生成オペレーション、およびハッシュ・オペレーション
を実行することができると仮定する。例えば、サーバ
が、SSL3.0セッションを確立するための要求を受
け取ったと仮定する。サーバは、クライアントから受け
取ったプリ・マスター・シークレットを暗号解読するた
めにコプロセッサを呼び出す必要がある。マスター・シ
ークレットおよびキー・マテリアルを生成するために、
ホスト・プロセッサはコプロセッサを20回(ハッシュ
・オペレーションにつき1回ずつ)呼び出す必要があ
る。単一のセキュア・セッションの確立の始めに、ホス
ト・プロセッサは複数タスクのコプロセッサを21回呼
び出した。この例で説明したように、複数タスクを実行
することができるコプロセッサは、ホスト・プロセッサ
とコプロセッサの間における複数の通信の資源消費の問
題は解決しない。
【0008】
【発明が解決しようとする課題】これらのコプロセッサ
を追加したにもかかわらず、セキュア・セッションの確
立に伴い依然として大量の資源が消費される。セキュア
・セッションの確立は、ホスト・プロセッサと、1つの
複数タスク・コプロセッサまたは複数の単一タスク・コ
プロセッサの間の複数の通信によって生じる待ち時間に
よって損なわれる危険性がある。CPUとコプロセッサ
間の複数の通信は、システム資源(例えば、バス資源、
メモリ資源、クロック周期等)を消費する。システムに
対する影響には、1)提供できるセキュア・セッション
の数、2)システムが維持できる並行したセキュア・セ
ッションの数が含まれる。
【0009】
【課題を解決するための手段】セキュリティ・オペレー
ションを処理する方法および装置について説明する。一
実施態様では、プロセッサには、セキュリティ・オペレ
ーションに対するいくつかの要求を処理するいくつかの
実行ユニットが含まれる。いくつかの実行ユニットは、
いくつかの要求に格納されているポインタに基づいて、
遠隔メモリ内のいくつかの要求に関するいくつかの出力
データ構造に対して、いくつかの要求の結果を出力する
ためのものである。いくつかの実行ユニットは、要求待
ち行列内の要求の順番とは異なる順番で結果を出力する
ことができる。プロセッサは、いくつかの実行ユニット
に結合されている要求ユニットも含む。要求ユニット
は、遠隔メモリ内の要求待ち行列からいくつかの要求の
一部を取り出し、また、遠隔メモリからいくつかの要求
の一部に対する関連付けられた入力データ構造を取り出
すためのものである。さらに、要求ユニットは、いくつ
かの実行ユニットによる処理の可用性に基づいて、取り
出した要求をいくつかの実行ユニットに分配する。
【0010】一実施態様は、ホスト・プロセッサ上で実
行される方法である。この方法は、ホスト・メモリ内の
要求待ち行列内のセキュリティ・オペレーションに対す
るいくつかの要求を格納することを含むが、このいくつ
かの要求は要求待ち行列内の順番通りである。この方法
は、セキュリティ・オペレーションに対するいくつかの
要求に関係するデータを、ホスト・メモリ内のいくつか
の入力データ構造に格納することを含む。この方法は、
さらにホスト・メモリ内のいくつかの出力データ構造を
割り振ることを含み、コプロセッサはセキュリティ・オ
ペレーションに対するいくつかの要求の結果をいくつか
の出力データ構造に書き込むためのものである。コプロ
セッサは、要求待ち行列内の順番とは異なる順番で結果
を書き込むことができる。さらに、いくつかの要求のそ
れぞれに対して、ホスト・プロセッサ上で実行するため
のスレッドが割り当てられるが、このスレッドは関連付
けられた要求に関して出力データ構造に格納されている
完了コードの値を定期的に確認する。この完了コード
は、その要求がコプロセッサによって完了したことを示
している。
【0011】一実施態様では、方法は、要求ユニットに
よってホスト・メモリからセキュリティ・オペレーショ
ンに対するいくつかの要求を取り出すことを含むが、こ
のいくつかの要求はホスト・メモリ内の順番通りであ
る。方法は、要求ユニットによってセキュリティ・オペ
レーションに対するいくつかの要求をいくつかの実行ユ
ニットに分配することも含む。この分配は、いくつかの
実行ユニットの可用性に基づいている。さらに、この方
法は、いくつかの実行ユニットによってセキュリティ・
オペレーションに対するいくつかの要求を処理すること
も含む。この方法は、ホスト・メモリ内の位置にセキュ
リティ・オペレーションに対するいくつかの要求の結果
を出力することを含むが、結果を出力する順番は、ホス
ト・メモリ内の要求の順番とは異なってもよい。
【0012】
【発明の実施の形態】本発明の実施形態は、これらの実
施形態を説明する以下の記述と添付の図面を参照するこ
とによって最もよく理解することができるであろう。本
明細書に含まれる図面に対する付番方式では、図面内の
所与の要素に対する先頭の番号を図面番号に関連付けて
いる。例えば、ホスト・プロセッサ202は図2にある
はずである。しかし、異なる図面でも同一の要素に対し
ては同一の要素番号が付番されている。
【0013】セキュリティ・オペレーションを処理する
方法および装置を説明する。以下の説明では、本発明の
完全な理解を実現するために数多くの特定の細部が記述
されている。しかし、本発明はこれら特定の細部なくし
ても実施することができることを理解されよう。また、
本発明を不明瞭にすることを避けるため、周知の回路、
構造および技術は示さない。記述した本発明の実施形態
はSSL3.0プロトコルを引用しているが、代替形態
は、IPSec、TLS等の他のセキュリティ・プロト
コルに適用することができる。
【0014】本明細書では、「セキュリティ・オペレー
ション」という用語は、基本的なセキュリティ・オペレ
ーションであっても、マクロ・セキュリティ・オペレー
ションであってもよい。基本的なセキュリティ・オペレ
ーションは、暗号解読オペレーション、暗号化オペレー
ション、ハッシュ・オペレーション、または値(例え
ば、シークレット、キー・マテリアル等)を生成するた
めの一群の算術オペレーションであってよい。マクロ・
セキュリティ・オペレーションは一群の基本的オペレー
ションである。
【0015】概要 本発明の一形態は、ホスト・プロセッサとセキュリティ
・コプロセッサの間でのタスクと結果の通信であり、コ
プロセッサは複数の実行ユニットを有する。本発明の別
の形態はタスクのタイプである。具体的には、コプロセ
ッサが複数の実行ユニットを有する場合に、ホスト・プ
ロセッサがセキュリティ・コプロセッサに転送すること
のできるマクロ・セキュリティ・オペレーションであ
る。これらの2つの形態は共に使用することができる。
例えば、一実施形態では、複数の実行ユニットを有する
セキュリティ・コプロセッサは要求を受け取って、連続
したフロー機構によって結果を供給する。受け取った要
求は相互から独立して扱われ、複数の実行ユニットの使
用可能な1つに順番通りに分配されるが、これらの要求
はマクロ・セキュリティ・オペレーションである場合が
あり、完了するのに異なる時間を要する場合があり、順
不同に完了され/戻される場合がある。これら2つの形
態を共に使用することができるが、これらは相互に依存
してはいない。すなわち、マクロ・セキュリティ・オペ
レーションは、ホスト・プロセッサとセキュリティ・コ
プロセッサの間でタスクおよび結果を通信するための異
なる(例えば、従来技術による)技術と共に使用するこ
とができ、また、この逆も可能である。
【0016】システムの説明 図2は、本発明の実施形態による、セキュリティ・オペ
レーションを処理するシステムを示すブロック図であ
る。図2には、ホスト・プロセッサ202、ホスト・メ
モリ204、コプロセッサ212、および要求処理ユニ
ット234が含まれる。ホスト・プロセッサ202、ホ
スト・メモリ204、およびコプロセッサ212はシス
テム・バス210に結合されている。さらに、ホスト・
プロセッサ202、ホスト・メモリ204、および要求
処理ユニット234は相互接続されている。一実施形態
では、要求処理ユニット234は、ホスト・メモリ20
4および/またはプロセッサ202に常駐することがで
き、ホスト・プロセッサ202内で実行することができ
るプロセスまたはタスクでよい。例えば、要求処理ユニ
ット234は、ホスト・プロセッサによって実行される
コプロセッサからのドライバでよいが、このドライバは
OpenSSLとインターフェースをとる。しかし、本
発明の実施形態はこのように限定されるものではなく、
要求処理ユニット234は記述された処理を実行する様
々なタイプのハードウェア(例えばデジタル論理)であ
ってよい。
【0017】ホスト・メモリ204は要求待ち行列20
6、入力データ208A〜208I、および出力データ
209A〜209Iを格納する。要求待ち行列206
は、待ち行列の観点で示され、記述される。しかし、本
発明の実施形態はこのように限定されるものではなく、
要求待ち行列206はコプロセッサ212に送信される
べき要求を格納するための他のどのようなタイプのデー
タ構造であってもよいが、これについては以下でより詳
細に説明する。一実施形態では、要求待ち行列206は
巡回待ち行列(リング・バッファ)である。一実施形態
では、要求待ち行列206への書込ポインタは要求処理
ユニット234によって維持され、要求待ち行列206
への読取ポインタはコプロセッサ212の要求ユニット
214によって維持される。したがって、要求処理ユニ
ット234は、要求待ち行列206に要求を格納すると
きにその書込ポインタを増分し、要求ユニット214
は、要求待ち行列206から要求を抽出するとき、また
は取り出すときにその読取ポインタを減分する。
【0018】さらに、入力データ208A〜208Iと
出力データ209A〜209Iは表に示すようなデータ
構造であるが、このようなデータは、オブジェクト指向
環境のデータ・オブジェクトなど他のタイプのデータ構
造でも格納することができる。一実施形態では、入力デ
ータ208A〜208Iはホスト・メモリ204に連続
して格納される。したがって、コプロセッサ212内の
要求ユニット214は、1つの直接メモリ・アクセス
(DMA)読取りオペレーションを使用して複数の要求
全体から入力データを抽出することができるが、これに
ついては以下でより詳細に説明する。
【0019】要求処理ユニット234によって要求待ち
行列206に挿入された要求は、要求のサイズに制約が
あるため、オペレーション・コードなどの命令、操作さ
れるべきデータ、および要求待ち行列206内の要求に
入れられないデータ(要求に関係する)を格納するホス
ト・メモリ204内の他の位置へのポインタを含むこと
ができる。特に、要求待ち行列206内の要求は、入力
データ208A〜208Iの1つを指すことができる。
一実施形態では、これらの要求は32バイトのサイズで
ある。要求のタイプは、図3から図8に関して以下で説
明するマクロ・セキュリティ・オペレーションを含め
て、異なるセキュリティ・オペレーションを含むことが
できる。さらに、このようなセキュリティ・オペレーシ
ョンは、限定はしないが、(1)乱数を生成するための
要求、(2)素数を生成するための要求、(3)モジュ
ーラ演算を実行するための要求、(4)ハッシュ・オペ
レーションを実行するための要求、(5)暗号化/暗号
解読のためのキーを生成するための要求、(6)ハッシ
ュ・メッセージ認証コード(H−MAC)オペレーショ
ンを実行するための要求、(7)ハンドシェーク・ハッ
シュ・オペレーションを実行するための要求、および
(8)終了/検証オペレーションを実行するための要求
を含むことができる。
【0020】図3は、本発明の実施形態による、コプロ
セッサ212による処理のための要求形式の一例を示
す。具体的には、図3は、オペレーション・コード30
2、サイズ304、パラメータ306、データ長30
8、データ・ポインタ310、および結果ポインタ31
2を含む要求形式300を示す。オペレーション・コー
ド302は、ハッシング、モジューラ演算等のためのo
p−codeなどのコプロセッサ212によって実行さ
れるべき異なるセキュリティ・オペレーションを識別す
るop−codeを含む。サイズ304は、オペレーシ
ョンのタイプに応じて、そのオペレーションに関係する
様々なデータに対してサイズを定義することができる。
例えば、モジューラ演算オペレーションに関するサイズ
304は絶対値のサイズを含むことができ、あるいは、
ハッシュ・オペレーションに関するサイズ304はハッ
シュされるべきデータのサイズを含むことができる。
【0021】サイズ304と同様に、パラメータ306
は、オペレーションのタイプによって、オペレーション
に関係する異なるデータを定義することができる。例え
ば、暗号化/暗号解読用のキー生成のオペレーションの
場合、パラメータ306はそのキーに対するプリ・マス
ターの長さを定義することができる。パラメータ306
をさらに説明すると、H−MACオペレーションに関す
るオペレーションについては、パラメータ306はシー
クレットの長さを定義することができる。一実施形態で
は、パラメータ306は、特定のオペレーションに関し
ては未定義の状態で残される。
【0022】データ長308は、(要求内で)データ・
ポインタ310によって示され、要求内で定義されたセ
キュリティ・オペレーションのためにコプロセッサ21
2にコピーされる、関連付けられた入力データ208A
〜208I内のデータ構造の長さを定義する。関連付け
られた入力データ208A〜208Iに格納され、デー
タ・ポインタ310によって指し示されるデータ構造
は、実行されるべきセキュリティ・オペレーションのタ
イプに応じて様々なデータを含むことができる。一実施
形態では、所与のオペレーションに関してはこの追加デ
ータ構造は必要とされず、したがってデータ・ポインタ
310は使用されない。例えば、乱数を生成するオペレ
ーションの場合、入力データ208A〜208Iには入
力データは1つも格納されていない。このようなデータ
構造に格納されるべきデータのタイプの説明に役立てる
ために、キー生成オペレーションの場合、データ構造は
クライアント乱数、サーバ乱数、ラベルおよびプリ・マ
スター番号を含めることができる。
【0023】結果ポインタ312は、コプロセッサ21
2がデータ構造に出力結果を書き込むことができる場
合、ホスト・メモリ204内の位置(出力データ209
A〜209Iの1つ)を定義する。一実施形態では、こ
の書込みオペレーションはDMA書込みオペレーション
によって実行される。さらに、一実施形態では、このデ
ータ構造の最後に完了コードが入れられる(以下でさら
に説明する)。説明に役立てるためにキー生成オペレー
ションにもう一度戻ると、関連付けられた出力データ2
09A〜209Iに格納されているデータ構造は、マス
ター・キー、キー・マテリアル、および完了コードを含
むことができる。
【0024】図2に戻って、コプロセッサ212は、相
互に結合されている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ユニットがシステム・バ
スに結合するために使用される一実施形態が説明されて
いるが、代替形態は様々なバスを使用することができ
る。
【0025】いくつかの実行ユニット216および21
7と、いくつかの乱数ジェネレータ・ユニット218
は、限定するためではなく例示の目的で示されており、
コプロセッサ212内にはこれらのユニットより少ない
数でも多い数でも含むことができる。実行ユニット21
7A〜217Iのより詳細な図面およびオペレーション
を、図8に関連して以下で説明する。乱数ジェネレータ
・ユニット218は、キーの生成のために乱数を生成す
る。キーユニット244は、様々なセキュリティ・オペ
レーションを処理するために後で使用することのでき
る、実行ユニット217A〜217Iに対するキーをコ
プロセッサ212内にローカルに格納することができ、
コプロセッサ212の外部にあるメモリからそのような
キーを取り出すことは必要としない。要求ユニット21
4は、ドアベル・レジスタ220に挿入された値に基づ
いて要求待ち行列206内の要求を抽出し、その要求を
処理するために実行ユニット217A〜217Iに分配
するが、これについては以下でより詳細に説明する。要
求バッファ222は、実行ユニット216〜217が処
理するために要求ユニット214が抽出した要求を格納
することができる。
【0026】マクロ・セキュリティ・オペレーション 図4は、本発明の一実施形態によるセキュアなSSL
3.0セッションの確立の一例を示す図面である。図4
では、クライアント401とサーバ403は、セキュア
・セッションを確立するためにハンドシェーク・メッセ
ージを交換する。サーバ403はコプロセッサ212に
対してセキュリティ・オペレーション407、409、
423、および425のセットを送る。ホスト・プロセ
ッサ210からコプロセッサ212に送信されるセキュ
リティ・オペレーションのセットのそれぞれは、基本的
なセキュリティ・オペレーションであっても、マクロ・
セキュリティ・オペレーションであってもよい。図4に
示した実施形態では、セキュリティ・オペレーション4
09、423、および425のセットはマクロ・セキュ
リティ・オペレーションである。各マクロ・セキュリテ
ィ・オペレーションは、コプロセッサ212の実行ユニ
ット216〜217の1つによって実行される。
【0027】クライアント401は、最初にクライアン
ト・ハロー・メッセージ405をサーバ403に送る。
クライアント403は、任意選択で追加メッセージを送
ることができる。サーバ403のホスト・プロセッサ2
01は、コプロセッサ212が実行すべき乱数セキュリ
ティ・オペレーション407を呼び出す。乱数ジェネレ
ータ218は、乱数オペレーション407に応答して一
つまたは複数の乱数を生成し、格納する。本発明の一実
施形態では、乱数オペレーション407は、単一の乱数
を生成する基本的なセキュリティ・オペレーションであ
る。本発明の別の実施形態では、乱数セキュリティ・オ
ペレーションは、乱数のベクトルを生成するマクロ・セ
キュリティ・オペレーションである。本発明の代替形態
では、ホスト・プロセッサ201は、コプロセッサ21
2とは別個に配置されている乱数ジェネレータ218が
実行すべき乱数オペレーション407を呼び出す。本発
明の別の実施形態では、乱数はセッションを確立する前
に生成される。一つまたは複数の乱数が生成された後
で、サーバ403はセキュリティ・ネゴシエーション・
オペレーション409をコプロセッサ212に送る。
【0028】セキュリティ・ネゴシエーション・オペレ
ーション409を実行した後、コプロセッサ212は蓄
積されたハンドシェーク・メッセージ(クライアント・
ハロー405およびいかなる任意選択のメッセージ)の
部分ハッシュを作成する。サーバ403は、一つまたは
複数の乱数と、コプロセッサ212によるセキュリティ
・ネゴシエーション・オペレーション409の実行によ
って得られるデータとを使用して、クライアント401
に送信されるメッセージのセットを作成する。サーバ4
03は、サーバ・ハロー・メッセージ411、証明書4
13、およびサーバのハロー終了メッセージ415を送
る。本発明の別の実施形態では、追加の任意選択メッセ
ージがクライアント401に送信される。
【0029】SSL3.0のセキュア・セッションを確
立するキー交換相では、クライアント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に送る。
【0030】図5は、本発明の一実施形態による図4に
示したマクロ・セキュリティ・オペレーションのための
基本的セキュリティ・オペレーションのグループを示す
表である。「マクロ・セキュリティ・オペレーション」
と標示された欄では、ネゴシエーション・セキュリティ
・オペレーション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の基本的なセキュリティ・オペレーションを実
行する。
【0031】基本的なセキュリティ・オペレーションを
マクロ・セキュリティ・オペレーションに関連付けるこ
とは、様々な方法で実施することができる。記述した発
明の様々な実施形態は、セキュリティ・プロトコル、デ
ータ依存性等を含めることのできる要因にそれぞれ基づ
くマクロ・セキュリティ・オペレーションに対して基本
的なセキュリティ・オペレーションをグループ化するこ
とができる。
【0032】図6は、本発明の一実施形態によるセキュ
ア・セッションの確立の一例を示す図面である。図6で
は、図4で示したセキュア・セッションの確立に対し
て、マクロ・セキュリティ・オペレーションの異なる一
実施形態を示す。図6では、マクロ・セキュリティ・オ
ペレーション407、409および423ではなく、サ
ーバ・フル・ハンドシェーク・オペレーション601が
呼び出される。サーバ・フル・ハンドシェーク・マクロ
・セキュリティ・オペレーション601は、サーバ40
3がクライアント401からメッセージ417、419
および421のセットを受け取った後で呼び出される。
単一呼び出しによって、コプロセッサ212(乱数の呼
び出しは含まない)は、セキュア・セッションを確立す
るためにホスト・プロセッサ201に必須のデータを供
給する。
【0033】図7は、本発明の一実施形態によるサーバ
・フル・ハンドシェーク・オペレーション701のため
の一群の基本的オペレーションを示す表である。サーバ
・フル・ハンドシェーク・オペレーション601を実行
する実行ユニット216〜217の1つは、1)暗号解
読オペレーション、2)暗号化オペレーション、3)モ
ジュラ計算オペレーション、および4)35のハッシュ
・オペレーションの基本的なセキュリティ・オペレーシ
ョンを実行する。したがって、この実行ユニットは、サ
ーバ・フル・ハンドシェーク・オペレーション601を
完了するために、約39の基本的セキュリティ・オペレ
ーションを実行する。このサーバ・フル・ハンドシェー
ク・オペレーション601の例では、クライアントの終
了メッセージ421は暗号解読されない。クライアント
の終了メッセージ421は暗号解読されないのは、予想
されるクライアントの終了メッセージがコプロセッサ2
12によって作成されるからである。サーバ403は、
実際にクライアントの終了メッセージ421を受け取る
前に既にそのクライアントの終了メッセージ421の内
容を認識しているので、予想されるクライアントの終了
メッセージを作成し、それを使用して、受け取ったクラ
イアントの終了メッセージ421を暗号解読せずにその
クライアントの終了メッセージ421を認証することが
できる。
【0034】クライアント・フル・ハンドシェーク・オ
ペレーションは、予想されるサーバの終了メッセージを
作成することができる。コプロセッサ212を有するク
ライアントは、クライアント・フル・ハンドシェーク・
オペレーションによって、サーバ401からサーバの終
了メッセージ429を受け取る前にセキュア・セッショ
ンを確立するための、コプロセッサ212に対する単一
呼出しを実行することができる。
【0035】したがって、図4から7は、マクロ・セキ
ュリティ・オペレーションを形成するために、基本的セ
キュリティ・オペレーションをグループ化することので
きる方法のいくつかの例を示す。このような基本的セキ
ュリティ・オペレーションのどのような組み合わせで
も、本発明の範囲に含まれることを理解されたい。マク
ロ・セキュリティ・オペレーションによって、ホスト・
プロセッサ201と、クライアント401またはサーバ
403のコプロセッサ212との間で、限られた数の通
信によるセキュア・セッションを確立することができ
る。通信数を少なくすることによってシステム資源の消
費が低減される。システム資源の消費が低減されると、
システム・パフォーマンスが低下することが防止され
る。さらに、セキュア・セッションをより高速に確立す
ることができ、かつ、より多くのセキュア・セッション
を維持することができる。具体的には、マクロ・セキュ
リティ・オペレーションの処理に要する処理量は基本的
セキュリティ・オペレーションよりも多いので、セキュ
リティ・コプロセッサの様々な実行ユニットに対してオ
ペレーションを割り当てると、その割り当てに伴うオー
バーヘッドがあるにも係わらず、より多くのスループッ
トが可能になる。
【0036】図8は、本発明の一実施形態による実行ユ
ニット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を結合す
る。
【0037】マイクロコード・ブロック801は、セキ
ュリティ・オペレーションを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転送を使用してメイン・メ
モリの該当位置まで転送される。
【0038】一実施形態は、各実行ユニットが固有のマ
イクロコード・ブロックを有するように示しているが、
代替形態は1つまたは複数の実行ユニットに単一マイク
ロコード・ブロックを共有させる。さらに別の実施形態
は、中央マイクロコード・ブロック(例えば、SRA
M)を有するが、その内容は、次回の電源投入時に実行
ユニットのそれぞれの中にあるローカル・マイクロコー
ド・ブロックにロードされる。1つまたは複数のマイク
ロコード・ブロックの構成に関係なく、特定の実施形態
では、実行されるべきセキュリティ・オペレーション
(マクロおよび/または基本的セキュリティ・オペレー
ション)を選択する上での柔軟性を考慮して、マイクロ
コード・ブロックは再プログラム可能である。
【0039】ストレージ・ファームへのルータ、スイッ
チ、アクセス等として動作するネットワーク要素は、1
つまたは複数のセキュア・セッションを確立することが
できる。このネットワーク要素は、マクロ・セキュリテ
ィ・オペレーションによって、大量のシステム資源を消
費することなく複数のセキュア・セッションを確立する
ことができる。さらに、このセキュア・セッションはマ
クロ・セキュリティ・オペレーションによってさらに高
速に確立することができる。
【0040】例えば、コプロセッサ212は、セキュア
な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はそれらを順不同で完了することがで
きる。
【0041】セキュア・セッションを確立するための機
能を実行するためにコプロセッサ212を利用すること
によって、システムおよびそのホスト・プロセッサ20
1の効率が高められる。コプロセッサ2121は、消費
されるホスト・プロセッサ201の資源を低減すること
によって、セキュア・セッションの確立を可能にする。
より多くのセキュア・セッションをさらに高速に確立す
ることができる。さらに、セキュリティ機能のために既
に費やされた資源をホスト・プロセッサ201が使用す
ることができるので、システムの全体的なパフォーマン
スも高められることになる。これらのホスト・プロセッ
サ201の資源は、システム監視、トラフィック監視等
に適用することができる。
【0042】さらに、実行ユニット216〜217の並
行した順不同の特性は、セキュリティ・オペレーション
を実施するために柔軟性を実現する。変化する顧客ニー
ズに合わせるために、様々な細分化レベルのマクロ・セ
キュリティ・オペレーションを実施することができる。
順不同の完了を可能にする実施形態を示したが、代替形
態は、要求の順番通りの完了を要求するためのハードウ
ェアを含む。
【0043】一実施形態では、要求処理ユニット234
はホスト・プロセッサが実行するコプロセッサ・ドライ
バである。本発明の一実施形態では、コプロセッサ・ド
ライバはOpenSSLの修正版とインターフェースを
とる。OpenSSLの修正版は、基本的セキュリティ
・オペレーションとは反対に、マクロ・セキュリティ・
オペレーションをドライバに伝達するように変更され
る。
【0044】要求処理ユニット234によるセキュリテ
ィ・オペレーションの処理 マクロ・セキュリティ・オペレーションを使用すること
によって、所与のセキュア・セッションに関するホスト
・プロセッサとセキュリティ・コプロセッサとの間の通
信数を減少させると、システム・パフォーマンスを高め
ることができるが、コプロセッサのアーキテクチャに対
してより伝わり易いタスクおよび結果の伝達方法は、ホ
スト・プロセッサとセキュリティ・コプロセッサとの間
におけるパフォーマンスを高めることができる。具体的
には、既に指摘したように、本発明の別の形態は、コプ
ロセッサが複数の実行ユニットを有する場合に、ホスト
・プロセッサとセキュリティ・コプロセッサとの間での
タスクと結果の伝達である。より具体的には、連続的フ
ロー可能なタスクの引き渡しおよび結果返還の機構が使
用される。連続的フロー可能なタスクの引き渡しおよび
結果返還の機構によって、ホスト・プロセッサは連続し
てタスクを追加することができ(待ち行列が満杯でない
限り)、セキュリティ・コプロセッサは連続して結果を
返還することができる(ホスト・プロセッサがセキュリ
ティ・コプロセッサに別の作業ブロックを転送できる前
にコプロセッサが完了すべき作業ブロックを必要とする
機構とは反対に)。図2、9および10は、非割込み駆
動型の連続的フロー機構の一実施形態を説明している
が、代替形態は様々なフロー機構を使用することができ
る。
【0045】セキュリティ・オペレーションの処理をさ
らに説明するために、図9は、本発明の実施形態による
要求処理ユニット234(図2を参照のこと)による要
求の処理の流れ図を示す。方法900は、処理ブロック
902で、セキュリティ・オペレーションに対するいく
つかの要求の1つを受け取ることから始まる。一実施形
態では、この要求は、前述したマクロ・オペレーション
および/または基本的オペレーションを含む。一実施形
態では、処理ブロック904で、要求処理ユニット23
4は、その要求に関連するデータ、例えばセキュリティ
・オペレーションに対するオペランドなどを入力データ
208A〜208Iの1つに格納する。特に、このデー
タは、要求待ち行列206への入口点に課されるサイズ
の制約のために要求待ち行列206の外部に格納するよ
うに要求することができる。一実施形態では、関連する
データのすべてを要求待ち行列206内の要求内に格納
することができるので、追加データの格納は要求されな
い。
【0046】さらに、処理ブロック906で、要求処理
ユニット234は、出力データ209A〜209Iのメ
モリ空間を要求待ち行列206に格納されるべきそれら
の要求に割り当てる。一実施形態では、要求処理ユニッ
ト234は、関連する出力データ209A〜209I内
の完了コードの値を、その要求が完了していないことを
示す値にセットする。例えば、そのような一実施形態で
は、値0はその要求が完了したことを示し、したがっ
て、要求処理ユニット234はこの値を非0の番号にセ
ットする。
【0047】さらに、処理ブロック908で、要求処理
ユニット234は要求待ち行列をロックする。したがっ
て、このようにロックすることによって、他のユニット
または処理が、要求待ち行列206への書込要求から除
外される。要求待ち行列206をロックするために様々
な技術を使用することができるが、一実施形態では、要
求処理ユニット234は、セマフォーを使用したソフト
ウェア・ロックによって要求待ち行列206をロックす
る。処理ブロック910で、要求処理ユニット234
は、1つまたは複数の要求を要求待ち行列206に追加
する。図3を参照しながら既に述べたように、要求は、
コプロセッサ212内のユニットが実行するべきオペレ
ーション・コード、入力データ208A〜208Iの1
つに格納されているオペレーションに関係する他のデー
タを指すポインタ、および所与の要求の完了後にコプロ
セッサ212によって出力結果が入れられるホスト・メ
モリ204内の位置、例えば出力データ209A〜20
9Iへのポインタを含むことができる。処理ブロック9
12で、要求処理ユニット234は、1つまたは複数の
要求を追加した後で、要求待ち行列206をアンロック
する。
【0048】処理ブロック914で、要求処理ユニット
234は、要求待ち行列206に追加された1つまたは
複数の要求の数をドアベル・レジスタ220(コプロセ
ッサ212に配置される)に書き込む。一実施形態で
は、この書込みオペレーションは直接メモリ・アクセス
(DMA)書込みオペレーションによって実行される。
レジスタとして記述したが、ドアベル・レジスタ220
に格納されるべきデータは、コプロセッサ212内の他
のいかなるタイプのメモリをも含むことができる。
【0049】処理ブロック916で、要求処理ユニット
234は、ホスト・プロセッサ202上の実行のための
スレッドを生成することもできる。一実施形態では、ス
レッドは、SSL3.0セッションなどの所与のセキュ
リティ・セッションに対して作成される。一実施形態で
は、要求処理ユニット234は、要求待ち行列206に
挿入される要求ごとに異なるスレッドを作成する。処理
ブロック918で、これらのスレッドは、関係する出力
データ209A〜209Iに格納されている完了コード
を監視することによって、それらの関連する要求が完了
したかどうかを確認する。
【0050】一実施形態では、要求処理ユニット324
は、関連する要求が要求待ち行列206に入れられると
スレッドをスリープさせ、そのスレッドを起こすために
タイマーをセットする。したがって、そのスレッドは、
処理を開始する際に、その要求が完了したかどうかを判
定するために、関係する出力データ209A〜209I
内の完了コードを確認する。一実施形態では、要求処理
ユニット234は、実行されるべき特定の要求に基づい
てこのタイマーの値をセットする。例えば、乱数を生成
するための第1の要求が、キー生成オペレーションへの
第2の要求よりも短期間で、コプロセッサ212によっ
て典型的に処理される場合、要求処理ユニット234は
それに従ってそれらのタイマーの値をセットする。すな
わち、第1の要求は、第2の要求よりも短期間のタイマ
ーを有するということである。一実施形態では、要求処
理ユニット234は、所定の期間だけそのスレッドを起
きた状態で保ち、その要求がその期間中に完了しなかっ
たと判断した場合、そのスレッドをスリープさせる。一
実施形態では、要求処理ユニット234は、所与の要求
に対してコプロセッサ212が完了コードをセットする
直前にブロックする。完了コードを確認するために要求
処理ユニット134がスレッドを使用する実施形態を説
明したが、代替形態は、他の機構を使用することができ
る(例えば、要求処理ユニット134は完了コードのそ
れぞれを確認することができる)。
【0051】一実施形態では、コプロセッサ112が要
求を完了すると、関連するスレッドはその要求、関連す
る入力データ208および/または出力データ209を
ホスト・メモリ204から削除することができる。一実
施形態では、要求が要求ユニット214から抽出される
と、要求および関連する入力データ208は要求待ち行
列206から削除されるが、出力データ209の内容を
持ってスレッドが終了すると、関連するスレッドによっ
て関連する出力データ209が削除される。
【0052】コプロセッサ212によるセキュリティ・
オペレーションの処理 図10は、本発明の実施形態によるコプロセッサ212
が要求する処理の流れ図である。方法1000は、処理
ブロック1002で、要求ユニット214によってドア
ベル・レジスタ220をポーリングすることから始ま
る。このドアベル・レジスタ220のポーリングは、1
つの処理ブロックで示される。しかし、本発明の実施形
態は、このように限定されるものではなく、このドアベ
ル・レジスタ220のポーリングを定期的に実行するこ
とができ、したがって要求ユニット214は、他の処理
ブロックに示されている機能が実行されている間にこの
ポーリングを実行することができる。例えば、要求ユニ
ット214によるこのポーリングは、実行ユニット21
6〜217の1つが要求を処理しているのと同時に実行
することができる(後述する処理ブロック1012にお
いて)。一実施形態では、要求ユニット214はすべて
のクロック周期でドアベル・レジスタ220をポーリン
グする。
【0053】さらに、処理決定ブロック1004で、要
求ユニット214は、要求待ち行列206が要求を含む
かどうかを、ドアベル・レジスタ220に格納されてい
る値に基づいて判定する。要求ユニット214は、要求
待ち行列206のサイズと位置を決定するために、コプ
ロセッサ212にローカルないくつかのメモリ位置にア
クセスすることができる。第1のメモリ位置は要求待ち
行列206の基底アドレスであり、第2のメモリ位置は
要求待ち行列206の長さである。一実施形態では、こ
れらのメモリ位置はコプロセッサ212内のレジスタで
ある。一実施形態では、要求処理ユニット234は、初
期化中にこれらのメモリ位置を適切な値にセットする。
【0054】一実施形態では、要求処理ユニット234
によってドアベル・レジスタ220に格納された値は、
要求待ち行列206に追加された要求の数である(要求
待ち行列206の合計要求数でなく)。したがって、要
求待ち行列206に要求が含まれないと判定した場合、
処理ブロック1002で要求ユニット214はドアベル
・レジスタ220を再度ポーリングする。反対に、要求
待ち行列206に要求が含まれると判定した場合、処理
ブロック1006で、要求ユニット214は、要求待ち
行列206の合計要求数でカウンタを更新する。一実施
形態では、このカウンタは、レジスタなどの、コプロセ
ッサ212内のローカル・メモリである。このカウンタ
の更新の説明に役立てるために、このカウンタに格納さ
れている値が25であり、ドアベル・レジスタ220が
値5を有する場合、要求ユニット214はこれら2つの
値を加算して(合計30とし)、その和をカウンタに格
納する。さらに、処理ブロック1008で、要求ユニッ
ト214は、ドアベル・レジスタ220に格納されてい
る値を0にリセットする。
【0055】しかし、本発明の実施形態は、このように
限定されるものではなく、要求待ち行列206内の要求
数を追跡する際に別の技術を採用することができる。例
えば、一実施形態では、要求待ち行列206内の合計要
求数を格納するために1つのメモリ位置が使用される
が、これは要求処理ユニット234および要求ユニット
214の両方によって、例えば複数ユニットが単一メモ
リ位置を更新することを可能にするセマフォーを使用し
て更新することができる。
【0056】処理ブロック1006では、要求ユニット
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のそれぞ
れは、いくつかの異なる基本的およびマクロ・セキュリ
ティ・オペレーションを実行することができる。
【0057】処理決定ブロック1010で、コプロセッ
サ212には要求をローカルに格納するために使用可能
なバッファ空間がないかどうか、かつ/またはそのよう
な要求を処理するために使用可能な実行ユニット216
〜217があるかどうかを判定する際、要求ユニット2
14はこの使用可能なバッファ空間または実行ユニット
216〜217に関して確認を続ける。一実施形態で
は、要求ユニット214は、コプロセッサ212内の実
行ユニット216〜217または他の制御回路から受け
取った信号からそのような可用性を判定することができ
る。反対に、要求をローカルに格納するために使用可能
なコプロセッサ212内のバッファ空間、および/また
は、そのような要求を処理するために使用可能な実行ユ
ニット216〜217があると判定した場合、処理ブロ
ック1012で、要求ユニット214は要求待ち行列2
06から1つまたは複数の要求を取り出す。一実施形態
では、要求ユニット214は、DMA読取りオペレーシ
ョンを使用して要求待ち行列206から1つまたは複数
のそのような要求を取り出す。
【0058】さらに、処理ブロック1014で、要求ユ
ニット214は、それらの要求に関する関連する入力デ
ータ208A〜208Iをホスト・メモリ204から取
り出す。一実施形態では、入力データ208A〜208
Iはホスト・メモリ204に連続して格納される。この
ような一実施形態では、要求ユニット214は、そのよ
うなデータが連続して格納されているということから、
単一DMA読取を使用してこの関連する入力データ20
8A〜208Iを取り出す。したがって、複数の要求を
コプロセッサ2121に転送するためには2つのDMA
オペレーションだけでよく、したがって、所与のセキュ
リティ・オペレーションに関する全体の処理速度は向上
する。
【0059】処理ブロック1016で、コプロセッサ内
のユニット(要求ユニット214、実行ユニット216
〜217、および乱数ジェネレータ・ユニット218を
含む)は要求を処理する。要求ユニット214は、これ
らの取り出された要求を実行ユニット216〜217お
よび乱数ジェネレータ・ユニット218に分配または与
える。一実施形態において、各実行ユニット216〜2
17は、受け取った様々なタイプのいかなるセキュリテ
ィ・オペレーションでも処理することができるので、要
求ユニット214は、そのような要求の処理のために使
用可能な実行ユニット216〜217の第1の実行ユニ
ットに要求を送ることができる。
【0060】処理ブロック1016で、所与の要求に関
して、実行ユニット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を介したバス転送は、セキュリ
ティ・オペレーションを処理するための時間の点で犠牲
が大きくなる場合がある。
【0061】さらに、説明したように、様々なセキュリ
ティ・オペレーションをそれぞれが実行することがで
き、かつ他の実行ユニットによって処理中の他のセキュ
リティ・オペレーションと関係なくこれを行うことがで
きるいくつかの実行ユニットをコプロセッサ212が含
むので、これらの要求は、要求待ち行列206内に要求
があった順番とは異なる順番で実行および/または完了
することができる(また、結果をホスト・メモリ204
に出力する)。例えば、第1の要求は、第1のSSLオ
ペレーションに対するキー生成オペレーションを含むこ
とができるが、第2の要求は、第2のSSLセッション
に対するモジューラ演算オペレーションを含むことがで
き、したがって、第1の要求は第2の要求よりも前に要
求待ち行列206に格納され、かつ、そこから抽出され
る。通常、第2の要求は第1の要求よりもより高速に実
行ユニット216〜217によって処理される。したが
って、たとえ第1の要求が、要求待ち行列206内の要
求の順番に基づいて最初にコプロセッサ212に送信さ
れたとしても、第2の要求の処理は第1の要求の処理よ
りも前に完了することができる。
【0062】したがって、一実施形態は、要求がハード
ウェアによって相互から独立して扱われるように記述さ
れている。完了の特別な順番を要する従属関係が任意の
要求の間にある場合、その順番はこの実施形態ではソフ
トウェアによって断行される。しかし、代替形態は、要
求の順番通りの完了を断行するハードウェアを含む。
【0063】本明細書で記述するメモリは、本明細書で
記述する方法の任意の1つまたはそのすべてを実施する
命令のセット(すなわち、ソフトウェア)が格納されて
いる機械可読媒体を含む。ソフトウェアは、本明細書に
記述するこのメモリ内および/またはプロセッサ内に、
全体的にまたは少なくとも部分的に常駐することができ
る。本明細書のためには、「機械可読媒体」という用語
は、機械(すなわち、コンピュータ)によって可読の形
式で情報を供給する(すなわち、格納かつ/または送
る)いかなる機構をも含むものと解釈される。例えば、
機械可読媒体には、読取専用メモリ(「ROM」)、ラ
ンダム・アクセス・メモリ(「RAM」)、磁気ディス
ク格納媒体、光格納媒体、フラッシュ・メモリ装置、ま
たは電子式、光学式、音響式または他の形式の伝搬信号
(例えば、搬送波、赤外線信号、デジタル信号、等)等
が含まれる。
【0064】以上、セキュリティ・オペレーションを処
理する方法および装置について説明した。本発明は特定
の例示的実施形態を参照して説明したが、本発明のより
広範な趣旨および範囲を逸脱せずに、これらの実施形態
に対する様々な変形形態および変更が可能であることが
明白になろう。例えば、代替形態では、ホスト・プロセ
ッサは割込みによってセキュリティ・コプロセッサと通
信することができるが、この際、ホスト・メモリと通信
するためにセキュリティ・コプロセッサがDMAオペレ
ーションを使用することを可能にする。あるいは、セキ
ュリティ・コプロセッサは、ホスト・プロセッサとの通
信のために割込みを使用することができるが、ホスト・
プロセッサは、コプロセッサとの通信のためにDMAオ
ペレーションを使用する。したがって、本明細書および
図面は、限定的ではなく例示的なものと考慮されるべき
である。
【図面の簡単な説明】
【図1】セキュア・セッションを確立するための2相の
クライアント/サーバ交換を説明する図面である。
【図2】本発明の実施形態による、セキュリティ・オペ
レーションを処理するシステムを示すブロック図であ
る。
【図3】本発明の実施形態による、コプロセッサ212
による処理の要求形式の一例を示す図である。
【図4】発明の一実施形態によるセキュアなSSL3.
0セッションの確立の一例を示す図面である。
【図5】発明の一実施形態による、図4に示したマクロ
・セキュリティ・オペレーションに対する基本的なセキ
ュリティ・オペレーションのグループを示す表である。
【図6】発明の一実施形態によるセキュア・セッション
の確立の一例を示す図面である。
【図7】発明の一実施形態による、サーバのフル・ハン
ドシェーク・オペレーション701に対する一群の基本
的なオペレーションを示す表である。
【図8】発明の一実施形態による、実行ユニット216
〜217の1つを示す図面である。
【図9】本発明の実施形態による、要求処理ユニット2
34による要求処理の流れ図である。
【図10】本発明の実施形態による、コプロセッサ21
2による要求処理の流れ図である。
【符号の説明】
202 ホスト・プロセッサ 204 ホスト・メモリ 206 要求待ち行列 210 システム・バス 212 コプロセッサ 214 要求ユニット 216A〜216I 実行ユニット
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ディビッド・エイ・カールソン アメリカ合衆国・76052・テキサス州・ハ スレット・ベイツ アストン・13909 (72)発明者 ムハマッド・ラヒブ・フセイン アメリカ合衆国・94588・カリフォルニア 州・プレザントン・ローズ ロック サー クル・3753 (72)発明者 ロバート・エイ・サンゾン アメリカ合衆国・01749・マサチューセッ ツ州・ハドソン・セネカ ドライブ・11 (72)発明者 カジャ・イー・アメッド アメリカ合衆国・94566・カリフォルニア 州・プレザントン・パセオ サンタ クル ズ・7807 (72)発明者 マイケル・ディー・バーガ アメリカ合衆国・95035・カリフォルニア 州・ミルピタス・クシズ レーン・1494 Fターム(参考) 5B013 DD03 5B045 BB28 BB54 EE29 GG09

Claims (46)

    【特許請求の範囲】
  1. 【請求項1】 要求ユニットによって、ホスト・メモリ
    からセキュリティ・オペレーションに対するいくつかの
    要求をホスト・メモリ内の順番通りに取り出し、 要求ユニットによって、セキュリティ・オペレーション
    に対するいくつかの要求をいくつかの実行ユニットに、
    いくつかの実行ユニットの可用性に基づいて分配し、 いくつかの実行ユニットによって、セキュリティ・オペ
    レーションに対するいくつかの要求を処理し、かつセキ
    ュリティ・オペレーションに対するいくつかの要求の結
    果をホスト・メモリ内の位置に出力することであって、
    結果を出力する順番がホスト・メモリ内の要求の順番と
    異なってよいことを含む方法。
  2. 【請求項2】 いくつかの要求が、いくつかの異なるセ
    キュア・ソケット・レイヤ・セッションに関係し、いく
    つかの要求は相互に依存しなくてよい請求項1に記載の
    方法。
  3. 【請求項3】 いくつかの要求の1つを処理する時間
    が、いくつかの要求の他の1つを処理する時間と異なっ
    てもよい請求項1に記載の方法。
  4. 【請求項4】 いくつかの実行ユニットのそれぞれが、
    いくつかの要求内の異なるタイプのセキュリティ・オペ
    レーションのどれでも処理することができる請求項1に
    記載の方法。
  5. 【請求項5】 要求がマクロ・セキュリティ・オペレー
    ションを含むことができる請求項1に記載の方法。
  6. 【請求項6】 いくつかの要求を取り出すことが、いく
    つかの要求をホスト・メモリの待ち行列から、いくつか
    の要求に対する第1の直接メモリ・アクセス(DMA)
    読取りオペレーションを使用して取り出し、いくつかの
    要求に関係する入力データ構造をホスト・メモリから、
    第2のDMA読取りオペレーションを使用して取り出す
    ことを含む請求項1に記載の方法。
  7. 【請求項7】 いくつかの要求の結果を出力すること
    が、DMA書込みオペレーションを使用していくつかの
    要求の結果を出力することを含む請求項6に記載の方
    法。
  8. 【請求項8】 いくつかの要求の1つを取り出すこと
    と、いくつかの要求の1つを出力することが、約2つの
    DMAオペレーションを含む請求項7に記載の方法。
  9. 【請求項9】 セキュリティ・オペレーションに対する
    いくつかの要求の結果をホスト・メモリ内の位置に出力
    することが、セキュリティ・オペレーションに対するい
    くつかの要求の結果を、いくつかの要求に格納されてい
    るポインタに基づいてホスト・メモリ内の位置に出力す
    ることを含む請求項1に記載の方法。
  10. 【請求項10】 セキュリティ・オペレーションに対す
    るいくつかの要求の結果をホスト・メモリ内の位置に出
    力することが、ホスト・メモリ内の位置で要求の完了を
    示す完了コードの値をセットすることを含む請求項1に
    記載の方法。
  11. 【請求項11】 ホスト・メモリ内の要求待ち行列内の
    セキュリティ・オペレーションに対するいくつかの要求
    を要求待ち行列内の順番通りに格納し、 セキュリティ・オペレーションに対するいくつかの要求
    に関係するデータを、ホスト・メモリ内のいくつかの入
    力データ構造に格納し、 いくつかの出力データ構造をホスト・メモリ内に割り振
    ることであって、セキュリティ・オペレーションに対す
    るいくつかの要求の結果をいくつかの出力データ構造に
    書き込むコプロセッサが、要求待ち行列内の要求の順番
    とは異なる順番で結果を書き込むことができ、 いくつかの要求のそれぞれに対して、関連する要求に関
    して出力データ構造に格納されており、要求がコプロセ
    ッサによって完了したことを示す完了コードの値を定期
    的に確認するスレッドをホスト・プロセッサ上で実行す
    るために割り振ることを含むホスト・プロセッサ上で実
    行される方法。
  12. 【請求項12】 要求待ち行列内のいくつかの要求を格
    納中に要求待ち行列がロックされる請求項11に記載の
    方法。
  13. 【請求項13】 要求待ち行列に格納されているいくつ
    かの要求を、コプロセッサのメモリ位置に書き込むこと
    をさらに含む請求項11に記載の方法。
  14. 【請求項14】 実行の各スレッドが異なるセキュリテ
    ィ・ソケット・レイヤ・セッションに関連付けられる請
    求項11に記載の方法。
  15. 【請求項15】 実行のスレッドが、実行の他のスレッ
    ドとは関係なく、関連する要求に関して完了コードの値
    を確認する請求項11に記載の方法。
  16. 【請求項16】 いくつかの要求の少なくとも1つがマ
    クロ・セキュリティ・オペレーションを含む請求項11
    に記載の方法。
  17. 【請求項17】 セキュリティ・オペレーションに対す
    るいくつかの要求を処理するいくつかの実行ユニットで
    あって、いくつかの実行ユニットは、いくつかの要求の
    結果を、いくつかの要求に格納されているポインタに基
    づいて、遠隔メモリ内のいくつかの要求に関連するいく
    つかの出力データ構造に出力するためのものであり、い
    くつかの実行ユニットが、要求待ち行列の要求の順番と
    は異なる順番で結果を出力することができる実行ユニッ
    トと、 いくつかの実行ユニットに結合されている要求ユニット
    であって、要求ユニットは、いくつかの要求の一部を遠
    隔メモリ内の要求待ち行列から取り出し、また、いくつ
    かの要求の一部に対する関連する入力データ構造を遠隔
    メモリから取り出し、要求ユニットが、取り出した要求
    を、いくつかの実行ユニットによる処理に対する可用性
    に基づいて、いくつかの実行ユニットに分配するための
    ものである要求ユニットとを含むプロセッサ。
  18. 【請求項18】 いくつかの要求はいくつかの異なるセ
    キュア・ソケット・レイヤ・セッションに関係し、いく
    つかの要求が相互に依存しなくてよい請求項17に記載
    のプロセッサ。
  19. 【請求項19】 いくつかの要求の1つを処理する時間
    が、いくつかの要求の他の1つを処理する時間と異なっ
    てよい請求項17に記載のプロセッサ。
  20. 【請求項20】 いくつかの実行ユニットのそれぞれ
    が、いくつかの要求内の異なるタイプのセキュリティ・
    オペレーションのどれでも処理することができる請求項
    17に記載のプロセッサ。
  21. 【請求項21】 要求がマクロ・セキュリティ・オペレ
    ーションを含むことができる請求項17に記載のプロセ
    ッサ。
  22. 【請求項22】 要求ユニットが、第1の直接メモリ・
    アクセス(DMA)読取りオペレーションを使用して要
    求待ち行列からいくつかの要求を取り出すためのもので
    あり、要求ユニットは、第2のDMA読取りオペレーシ
    ョンを使用して、いくつかの関連する入力データ構造を
    取り出すためのものである請求項17に記載のプロセッ
    サ。
  23. 【請求項23】 いくつかの実行ユニットが、DMA書
    込みオペレーションを使用して、いくつかの要求の結果
    をいくつかの出力データ構造に出力するためのものであ
    る請求項22に記載のプロセッサ。
  24. 【請求項24】 システム・バスに結合されているホス
    ト・プロセッサと、 システム・バスに結合されているホスト・メモリであっ
    て、 セキュリティ・オペレーションに対するいくつかの要求
    を含めるための要求待ち行列であって、いくつかの要求
    が要求待ち行列内の順番通りである要求待ち行列と、 いくつかの要求に関連するデータを含めるためのいくつ
    かの入力データ構造と、 いくつかの要求の処理からの結果を含めるためのいくつ
    かの出力データ構造とを格納するホスト・メモリと、 システム・バスに結合されているコプロセッサとを含む
    システムであって、コプロセッサが、 セキュリティ・オペレーションに対するいくつかの要求
    を処理するためのいくつかの実行ユニットであって、そ
    のいくつかの実行ユニットは、いくつかの要求の結果
    を、いくつかの要求に格納されているポインタに基づい
    て、いくつかの要求に関連するいくつかの出力データ構
    造に出力するためのものであり、いくつかの実行ユニッ
    トが要求待ち行列内の要求の順番とは異なる順番で結果
    を出力することができるいくつかの実行ユニットと、 いくつかの実行ユニットに結合されており、いくつかの
    要求の一部を要求待ち行列から取り出し、また、いくつ
    かの要求の一部に対する関連する入力データ構造をホス
    ト・メモリから取り出す要求ユニットであって、いくつ
    かの実行ユニットによる処理の可用性に基づいて、取り
    出した要求をいくつかの実行ユニットに分配する要求ユ
    ニットとを含むシステム。
  25. 【請求項25】 いくつかの要求がいくつかの異なるセ
    キュア・ソケット・レイヤ・セッションに関係し、いく
    つかの要求が相互に依存しなくてよい請求項24に記載
    のシステム。
  26. 【請求項26】 いくつかの要求の1つを処理する時間
    が、いくつかの要求の他の1つを処理する時間と異なっ
    てよい請求項24に記載のシステム。
  27. 【請求項27】 いくつかの実行ユニットのそれぞれ
    が、いくつかの要求内の異なるタイプのセキュリティ・
    オペレーションのどれでも処理することができる請求項
    24に記載のシステム。
  28. 【請求項28】 要求がマクロ・セキュリティ・オペレ
    ーションを含むことができる請求項24に記載のシステ
    ム。
  29. 【請求項29】 要求ユニットが、第1の直接メモリ・
    アクセス(DMA)読取りオペレーションを使用して、
    いくつかの要求を要求待ち行列から取り出すためのもの
    であり、要求ユニットが第2のDMA読取りオペレーシ
    ョンを使用していくつかの関連する入力データ構造を取
    り出すためのものである請求項24に記載のシステム。
  30. 【請求項30】 いくつかの実行ユニットが、DMA書
    込みオペレーションを使用して、いくつかの要求の結果
    をいくつかの出力データ構造に出力するためのものであ
    る請求項29に記載のシステム。
  31. 【請求項31】 命令を提供する機械可読媒体であっ
    て、その命令が機械によって実行されたときに、 要求ユニットによって、セキュリティ・オペレーション
    に対するいくつかの要求をホスト・メモリ内の順番通り
    にホスト・メモリから取り出し、 要求ユニットによって、セキュリティ・オペレーション
    に対するいくつかの要求をいくつかの実行ユニットに、
    いくつかの実行ユニットの可用性に基づいて分配し、 いくつかの実行ユニットによって、セキュリティ・オペ
    レーションに対するいくつかの要求を処理し、かつセキ
    ュリティ・オペレーションに対するいくつかの要求の結
    果をホスト・メモリ内の位置に出力することを含み、結
    果を出力する順番がホスト・メモリ内の要求の順番と異
    なってよいオペレーションを、命令が機械に実行させる
    機械可読媒体。
  32. 【請求項32】 いくつかの要求がいくつかの異なるセ
    キュア・ソケット・レイア・セッションに関係し、いく
    つかの要求が相互に依存しなくてよい請求項31に記載
    の機械可読媒体。
  33. 【請求項33】 いくつかの要求の1つを処理する時間
    が、いくつかの要求の他の1つを処理する時間と異なっ
    てよい請求項31に記載の機械可読媒体。
  34. 【請求項34】 いくつかの実行ユニットのそれぞれ
    が、いくつかの要求内の異なるタイプのセキュリティ・
    オペレーションのどれでも処理することができる請求項
    31に記載の機械可読媒体。
  35. 【請求項35】 要求がマクロ・セキュリティ・オペレ
    ーションを含むことができる請求項31に記載の機械可
    読媒体。
  36. 【請求項36】 いくつかの要求を取り出すことが、 いくつかの要求に対して第1の直接メモリ・アクセス
    (DMA)読取りオペレーションを使用して、いくつか
    の要求をホスト・メモリの待ち行列から取り出し、 第2のDMA読取りオペレーションを使用して、いくつ
    かの要求に関係する入力データ構造をホスト・メモリか
    ら取り出すことを含む請求項31に記載の機械可読媒
    体。
  37. 【請求項37】 いくつかの要求の結果を出力すること
    が、DMA書込みオペレーションを使用していくつかの
    要求の結果を出力することを含む請求項36に記載の機
    械可読媒体。
  38. 【請求項38】 いくつかの要求の1つを取り出すこと
    と、いくつかの要求の1つを出力することが、約2つの
    DMAオペレーションを含む請求項37に記載の機械可
    読媒体。
  39. 【請求項39】 セキュリティ・オペレーションに対す
    るいくつかの要求の結果をホスト・メモリ内の位置に出
    力することが、セキュリティ・オペレーションに対する
    いくつかの要求の結果を、いくつかの要求に格納されて
    いるポインタに基づいてホスト・メモリ内の位置に出力
    することを含む請求項31に記載の機械可読媒体。
  40. 【請求項40】 セキュリティ・オペレーションに対す
    るいくつかの要求の結果をホスト・メモリ内の位置に出
    力することが、ホスト・メモリ内の位置で、要求の完了
    を示す完了コードをセットすることを含む請求項31に
    記載の機械可読媒体。
  41. 【請求項41】 命令を提供する機械可読媒体であっ
    て、その命令がホスト・プロセッサによって実行された
    ときに、 ホスト・メモリ内の要求待ち行列内のセキュリティ・オ
    ペレーションに対するいくつかの要求を要求待ち行列内
    の順番通り格納し、 セキュリティ・オペレーションに対するいくつかの要求
    に関係するデータを、ホスト・メモリ内のいくつかの入
    力データ構造に格納し、 ホスト・メモリ内でいくつかの出力データ構造を割り当
    てることであって、セキュリティ・オペレーションに対
    するいくつかの要求の結果をいくつかの出力データ構造
    に書き込むコプロセッサが、要求待ち行列内の要求の順
    番とは異なる順番で要求を書くことができ、かついくつ
    かの要求のそれぞれに対して、関連する要求に関して出
    力データ構造に格納され、要求がコプロセッサによって
    完了したことを示す完了コードの値を定期的に確認する
    スレッドをホスト・プロセッサ上で実行するために割り
    振ることを含むオペレーションを命令がホスト・プロセ
    ッサに実行させる機械可読媒体。
  42. 【請求項42】 要求待ち行列が、要求待ち行列内のい
    くつかの要求を格納中にロックされる請求項41に記載
    の機械可読媒体。
  43. 【請求項43】 要求待ち行列内に格納されているいく
    つかの要求をコプロセッサのメモリ位置に書き込むこと
    をさらに含む請求項41に記載の機械可読媒体。
  44. 【請求項44】 実行の各スレッドが、異なるセキュリ
    ティ・ソケット・レイヤ・セッションに関連する請求項
    41に記載の機械可読媒体。
  45. 【請求項45】 実行のスレッドが、実行の他のスレッ
    ドとは関係なく、関連する要求に関して完了コードの値
    を確認する請求項41に記載の機械可読媒体。
  46. 【請求項46】 いくつかの要求の少なくとも1つがマ
    クロ・セキュリティ・オペレーションを含む請求項41
    に記載の機械可読媒体。
JP2002215500A 2001-07-24 2002-07-24 セキュリティ・コプロセッサのためのインターフェース Expired - Fee Related JP4298971B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (1)

* Cited by examiner, † Cited by third party
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