JPH10320191A - プログラム可能暗号処理システムおよび方法 - Google Patents

プログラム可能暗号処理システムおよび方法

Info

Publication number
JPH10320191A
JPH10320191A JP10132755A JP13275598A JPH10320191A JP H10320191 A JPH10320191 A JP H10320191A JP 10132755 A JP10132755 A JP 10132755A JP 13275598 A JP13275598 A JP 13275598A JP H10320191 A JPH10320191 A JP H10320191A
Authority
JP
Japan
Prior art keywords
processing
data unit
channel
program
cryptographic
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.)
Pending
Application number
JP10132755A
Other languages
English (en)
Inventor
David Michael Harrison
ディビッド・マイケル・ハリソン
James Edward Greenwood Jr
ジェームズ・エドワード・グリーンウッド・ジュニア
Kerry Lucille Johns-Vano
ケリー・ルシル・ジョンズ−バノ
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.)
Motorola Solutions Inc
Original Assignee
Motorola Inc
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 Motorola Inc filed Critical Motorola Inc
Publication of JPH10320191A publication Critical patent/JPH10320191A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • H04L9/16Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms the keys or algorithms being changed during operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/122Hardware reduction or efficient architectures

Abstract

(57)【要約】 【課題】 単一のULSIダイ上で実施できるいくつか
の処理資源14,16,26を含む改善されたプログラ
ム可能暗号処理システム10を実現する。 【解決手段】 本処理システムはキーおよびアルゴリズ
ムの双方に対して機敏であり現プログラムの実行の間の
次のプログラムのバックグランドステージングおよびコ
ンテクスト(キーおよび状態)により種々の暗号プログ
ラムの同時的実行を可能にする。本プログラム可能暗号
処理システムはチャネルプログラムにしたがったデータ
ユニットの処理ためのプログラム可能暗号プロセッサ1
7、チャネルプログラムを識別するための暗号制御部1
1、外部ホストに対し非同期的にデータユニットを転送
しかつ受信するための2つのインタフェースプロセッサ
13,15を含む。データユニットは特定のチャネルプ
ログラムを識別し、かつ識別されたチャネルプログラム
にしたがって選択された処理エンジンで処理される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は一般的には保安暗
号通信の分野に関する。
【0002】
【従来の技術】通信市場における傾向は明らかに商業用
および軍事用マーケットの双方に対して保安性(sec
urity)の必要性を規定している。通信システムが
複雑な通信サービスおよび能力を備えてより精巧になる
に応じて、情報を安全にまたは保安されて保つことが重
要である。保安機器に伴う問題の1つはリバースエンジ
ニアリング技術による搾取からの暗号プログラムの保護
である。暗号プログラムがハードウエアに組み込まれて
いる暗号プログラムのハードウエアによる実施は一般に
安全であると考えられる。ハードウエアの実施に伴う問
題は敵対者または利害の対立するものが非常な努力を用
いてダイ探査(die probing)および分析に
よりプログラムを決定できることである。ハードウエア
で実施されるまたは構成される暗号システムの他の問題
は暗号プログラムを処理するチップのための高いコスト
の半導体処理である。半導体は保安状態の下で製造さ
れ、それは暗号プログラムがハードウエア論理に組み込
まれているためである。
【0003】ソフトウエアによって実施されるまたは構
成される暗号プログラムは、しかしながら、典型的には
ハードウエアの構成ほど安全でないと考えられ、それは
ソフトウエアのアクセス可能性のためである。ソフトウ
エアの構成に伴う典型的な問題は複数プログラムの同時
処理が結果として保安オペレーティングシステムにおけ
るタスク交換(task swapping)による性
能の損失を生じることである。ソフトウエアの構成に伴
う他の問題は典型的なマイクロプロセッサおよびデジタ
ル信号プロセッサの算術論理ユニットが高速暗号処理に
とって望ましい高速の並列、数値および論理処理資源を
持たないことである。
【0004】
【発明が解決しようとする課題】ハードウエアおよびソ
フトウエア双方の暗号処理システムに伴う問題はサブシ
ステムの間で交換されたときキー変数データの無防備さ
または攻撃されやすさ(vulnerability)
である。これは今日の暗号システムにとって一般的な保
安性の危険である。
【0005】従って、必要なことは改善された暗号処理
システムおよび方法である。さらに必要なことは暗号プ
ログラム(crypto programs)を含まず
かつ商業的な半導体工場で処理されて半導体処理のコス
トを低減できる暗号処理システムおよび方法である。ま
た、高性能の暗号プログラム処理のための暗号システム
も必要である。さらに、同時に複数のプログラムを実行
できる暗号システムも必要である。さらに必要なこと
は、キーおよびアルゴリズムに機敏な(keyand
algorithm agile)暗号処理システムお
よび方法である。さらに必要なことは、迅速かつ安全に
処理される各々のデータユニットに対するコンテクスト
(context)およびプログラム(例えば、アルゴ
リズム)を切り替えできる暗号処理システムおよび方法
である。さらに、異なるサブシステムの間で交換された
ときキー変数データを保護する暗号シスムテが必要であ
る。さらに必要なことは、リバースエンジニアリングか
ら暗号プログラムが保護される暗号システムである。
【0006】
【課題を解決するための手段】本発明は、とりわけ、プ
ログラム可能な暗号処理システムおよび方法を提供す
る。本発明はまた高性能の暗号プログラムを処理するの
に適した暗号処理システムを提供する。本発明はまた同
時に複数の暗号プログラムを処理するシステムおよび方
法を提供する。本発明はまた処理される各々のデータユ
ニットに対するコンテクストおよびプログラム(例え
ば、アルゴリズム)を高速かつ安全に切り替える暗号処
理システムおよび方法を提供する。本発明はさらに、異
なるサブシステムの間で交換されたときキー変数データ
を保護する暗号処理システムおよび方法を提供する。本
発明はまたフェイルセイフのアーキテクチャにおける暗
号プログラムを処理するのに適したシステムおよび方法
を提供する。本発明はさらに典型的な暗号処理システム
に関連する半導体処理コストを低減するプログラム可能
な暗号処理システムを提供する。好ましい実施形態で
は、キー変数データの保安性がサブシステムの間で交換
される場合に保護される。また、好ましい実施形態にお
いては、暗号プログラムは現場に配備された機器におい
て更新できる。また、好ましい実施形態では、暗号プロ
グラムはリバースエンジニアリングから保護される。
【0007】
【発明の実施の形態】本発明は特に添付の特許請求の範
囲に指摘されている。しかしながら、本発明のより完全
な理解は添付の図面と共に以下の詳細な説明および特許
請求の範囲を参照することにより得ることができる。図
面においては同じ参照数字は図面にわたり同様の項目に
言及している。
【0008】図1は、本発明の好ましい実施形態に係わ
るプログラム可能な暗号処理システム(crypto
processing system)のハードウエア
ブロック図を示す。暗号処理システム10は、好ましい
実施形態では、2つの主な処理要素、キーマネジメント
暗号エンジン(Key management cry
pto engine:KMCE)12およびプログラ
ム可能暗号プロセッサ(programmable c
ryptographic processor:PC
P)17を有する。PCP17は2つの処理エンジン、
プログラム可能暗号エンジン(programmabl
e cryptographic engine:PC
E)14および構成可能暗号エンジン(configu
rable cryptographic engin
e:CCE)16を具備する。前記処理エンジンはチャ
ネルプログラムの実行を行う。システム10はまた暗号
コントローラ(cryptographic cont
roller:CC)11を含み、該CC11は処理エ
ンジンのためのプログラム管理を行う。システム10は
また外部インタフェースおよびシステム10のためのシ
グナリングを提供するプレインテキストまたは平文イン
タフェースプロセッサ(plane text int
erface processor:PTIP)13お
よび暗号文インタフェースプロセッサ(cipher
text interface processor:
CTIP)15を含む。前記インタフェースプロセッサ
はまた外部ホストとシステム10の内部処理システムの
間の高性能保安フレキシブルバッファを提供する。シス
テム10はまたKMCE12およびPCP17の間の弾
力性あるバッファとして作用する共用または共有メモリ
18を含む。システム10はまたFILLおよびCIK
ポート34に結合されたプログラム可能インタフェース
21を含む。システム10の試験はオンチップエミュレ
ーションおよびJTAGポート35を含む試験インタフ
ェース20を使用して行うことができる。
【0009】KMCE12は内部メモリ25を含みかつ
内部バス23によってCC11に結合されている。他の
内部バス23はPTIP13、CTIP15、PCP1
7および共有メモリ18をCC11に結合する。
【0010】好ましい実施形態では、KMCE12はま
たフェイルセイフの縮小命令セットコンピュータ(FS
−RISC)26を含む。KMCE12は好ましくはモ
ッドまたはモジュロN解抽出器(mod N solu
tion extractor:NSE)22のような
第2の処理資源を含む。FS−RISC26は好ましく
は2重の(dual)32ビットRISCコアからな
り、これは組み込まれたまたは埋込まれた(embed
ed)保安オペレーティングシステム(secure
operating system:SOS)を実行す
る。該保安オペレーティングシステムはタスクがシステ
ム10の外部のプログラムメモリから実行できるように
するためセグメンテイション(segmentatio
n)およびタスク管理を提供する。そのようなタスクは
保安処理を行わないまたは微妙なデータ(sensit
ive data)を取り扱わないタスクおよびサブル
ーチンを含むことができる。保安処理を行いあるいは微
妙なデータを取り扱うタスクおよびサブルーチンは好ま
しくはメモリ25に含まれる内部プログラムメモリ(R
OM)から実行される。
【0011】本発明の好ましい実施形態では、前記FS
−RISCのSOSによって内部ROMから行われる機
能は、とりわけ、システム10のマスタコントロール、
システム10のセルフテストおよび警報監視、プログラ
ムロードおよび実時間マルチレベル保安タスク管理を含
む。プログラムロードは保安および非保安プログラムの
双方を内部メモリ25へロードするかあるいはアルゴリ
ズムまたはプログラムのPCP17へのロードを含む。
【0012】FS−RISC26はまたメモリ25の内
部プログラムメモリ(RAM)からのアプリケーション
ソフトウエアを動作させることができる。内部プログラ
ムRAMからFS−RISC26によって動作する典型
的なアプリケーションソフトウエアはCIKおよび微妙
なデータの低レベル処理のためのフィルポート処理また
はポート充填処理(fill−port proces
sing)のような機能を含む。この例はキーのロード
を含む。動作する他のアプリケーションソフトウエアの
例は、例えば、パブリックキープログラムによるセッシ
ョンキーの発生および他のキー管理および制御機能を含
む。アプリケーションソフトウエアはまたロード(lo
ading)、検証(verifying)、変更(c
hanging)および会計検査(auditing)
のようなシステム管理およびキー管理機能を含むことが
できる。
【0013】FS−RISC26はまた外部プログラム
メモリからのアプリケーションソフトウエアを動作させ
ることができる。これらの外部プログラムメモリは外部
ホストシステムのRAMとすることができる。外部プロ
グラムRAMから動作するそのようなアプリケーション
ソフトウエアは好ましくはインタフェースプロトコル処
理(たとえば、DS−101およびNSA87−2
7)、キー管理オペレーション、コマンド処理、非保安
プログラムソフトウエアおよび微妙なデータの処理に直
接関連しないソフトウエアのような機能を含む。
【0014】PCP17は、とりわけ、データユニット
に関する機能を行いかつデータユニットを処理する高性
能プログラム可能スーパースケーラ(supersca
ler)暗号処理要素である。データユニットは、好ま
しくは外部ホストにより、インタフェースプロセッサ1
3へとまたはインタフェースプロセッサ15へとロード
される。CC11は要求されるコンテクスト(cont
ext)、プログラムコード、状態(state)およ
び変数をデータユニットのヘッダ情報の読取りに応じて
インスタンシエイト(ロード)することによりデータユ
ニットの処理を開始する。いったんデータユニットがP
CP17にロードされかつ処理が行われると結果が出力
インタフェースプロセッサに書き込まれる。処理された
データユニットはあるいはさらに処理を行うためにKM
CE12のような他のデスティネイションに提供するこ
とができる。
【0015】CC11は、とりわけ、インタフェースプ
ロセッサ13および15および暗号エンジン14および
16、NSE22およびFS−RISC26の実行資源
の間で総合的なデータ移動を管理する。CC11は概略
的に移動すべきデータ、PCP17にインストールすべ
きタスク、およびいつプログラムの実行を開始するかを
決定することによって安全なまたは保安実時間オペレー
ティングシステムとして動作する。CC11はこれを各
々のデータユニットの内容を調べることにより達成す
る。これは後に詳細に説明する。このデータ駆動アーキ
テクチャはシステム10に高性能の処理能力を提供す
る。さらに、CC11はバックグランド準備作業または
バックグラウンドステージング(background
staging)を行う。次のタスクおよびデータユ
ニットは現在のタスクの実行の間に設定または準備され
る(staged)。前記バックグランド作業はシステ
ム10のための高いスループットを可能にする。例え
ば、PCP17へのデータユニットの転送、メモリのク
リーンアップ、および次のデータユニットのためのプロ
グラムロードが前のデータユニットの処理の間に行われ
る。
【0016】本発明の好ましい実施形態では、PCP1
7は、とりわけ、チャネル暗号化および暗号解読のよう
な機能および保安通信およびシグナリングにおいて典型
的に行われる他のデータ処理を行う、2つの高速処理エ
ンジン、PCE14およびCCE16を具備する。好ま
しい実施形態では、PCE14はコードブック形式の
(codebook style)プログラムを行い、
一方CCE16はコンバイナ形式の(combiner
style)プログラムを実行する。PCE14およ
びCCE16は独立に動作しかつ組み合せて32ビット
のデータに対して1200MIPより大きな処理能力を
提供する。本発明の好ましい実施形態では、PCE14
およびCCE16は4ステージパイプライン構成でほぼ
100メガヘルツで動作する高性能32ビットRISC
プロセッサで構成される。これらのRISCプロセッサ
は、とりわけ、帯域内(in−band)信号処理、エ
ラー検出および訂正、およびチャネルプログラムによっ
て規定される他のプロトコルおよびフォーマット処理の
ようなデータ処理のためにも使用することができる。
【0017】PCP17はまたチャネルプログラムおよ
び/またはデータユニットを記憶するための暗号プロセ
ッサRAM9(CP−RAM)を含む。CC11はデー
タユニットを処理する前にチャネルプログラムをCP−
RAM9から処理エンジンのメモリへとダウンロードす
る。CC11はまたデータユニットを処理する前にCP
−RAM9から処理エンジンのメモリへとチャネルプロ
グラムのコンテクストをダウンロードする。
【0018】KMCE12は、とりわけ、システム10
のためのマスタ制御機能を達成する。好ましい実施形態
では、KMCE12はKMCE12内のROMに組み込
まれた保安オペレーティングシステム(SOS)を含
む。好ましい実施形態では、FS−RISC26は高性
能32ビットRISCプロセッサである。FS−RIS
C26に加えて、KMCE12は好ましくはパブリック
キープログラムの処理に適した数値演算コプロセッサま
たはマスコプロセッサ(math coprocess
or)を含む。この実施形態では、KMCE12は複数
チャネルおよび単一チャネルの埋め込まれた(embe
ded)アプリケーションの実行を可能にするためにお
よそ150MIPの処理能力を有する。
【0019】他の実施形態では、システム10は種々の
アプリケーションのために埋め込まれた暗号処理要素と
して作用することができる。例えば、システム10はデ
ータフロースルーアーキテクチャ(data flow
through architectures)また
はコプロセッサアーキテクチャ(coprocesso
r architecture)が実施できるようにす
る。データフロースルーアーキテクチャにおいては、デ
ータは平文インタフェースポート33から暗号文インタ
フェースポート37へあるいはその逆に流れることがで
きる。システム10に組み込まれたまたは埋め込まれた
内部保安メカニズムは微妙な(sensitive)平
文データおよび変数のような論理的に異なるデータタイ
プを保護される暗号文データから隔離または分離するこ
とを助ける。コプロセッサアーキテクチャの構成では、
例えばホストシステムが前記タイプまたは形式のデータ
を隔離するためにより大きな設計の確実さ(desig
n assurance)を好適に提供する。
【0020】システム10の好ましい実施形態では、P
TIP13およびCTIP15はFIFO制御構造を備
えてポート33および37において8ビット、16ビッ
トおよび32ビット並列データインタフェースを含む。
インタフェースプロセッサ13および15もまた好まし
くは直列非同期および直列同期インタフェースを含む。
PTIP13およびCTIP15は内部プロセッサ、内
部物理メモリおよび外部メモリ拡張能力を含む。インタ
フェースプロセッサのメモリはそれらの内部プロセッサ
によって管理される。好ましい実施形態では、インタフ
ェースプロセッサは全2重(full duplex)
動作が可能でありかつ平文および暗号文データを処理す
るために完全な物理的データインタフェースのアイソレ
ーションを提供する。
【0021】インタフェースポート31はKMCE12
と関連しており、かつ好ましくはメモリインタフェー
ス、構成信号(configuration sign
als)、システムクロックおよび割込みのためのポー
トを含む。好ましい実施形態では、メモリインタフェー
スポートは33ビットのデータバス、24ビットのアド
レスバスおよび内部メモリまたはI/O装置をアクセス
するための制御インタフェースから構成される。システ
ム10の好ましい実施形態では、KMCE12はPTI
P13またはCTIP15を通してコマンドおよびデー
タを受ける。他の実施形態は制御およびデータがインタ
フェースポート31からくるようにすることができる。
【0022】システム10はまたコンテクストポート
(context port)36に接続するコンテク
ストメモリバス38(CNTX)を含む。好ましい実施
形態では、コンテクストメモリバス38は外部コンテク
ストメモリに結合するために使用される33ビットのデ
ータバスおよびアドレス制御バスから構成される。CC
11はPCP17におけるアクティブなタスクから外部
コンテクストメモリにおけるインアクティブなタスクへ
のコンテクストの交換またはスワッピングを管理する。
バス38は内部メモリに存在し得るものよりも多くの同
時的なタスクを要求するアプリケーションのための高速
のコンテクスト変化を可能にする。ポート32は制御信
号および個別の警報信号のためにCC11へのインタフ
ェースを提供する。
【0023】ここで使用されているコンテクスト(Co
ntext)は、例えば、特定のチャネルプログラムに
関連する情報を含みかつ状態(state)または変数
情報(variable information)、
キーおよびチャネルに関連する機能情報を含むことがで
きる。
【0024】好ましい実施形態では、本発明の暗号処理
システムは超大規模集積回路(ULSI)装置におい
て、好ましくは単一シリコンダイ上で、実施される。好
ましい実施形態では、いくつかの処理サブシステムが前
記ULSI内に集積され広範囲の暗号プログラムのクラ
スにとって適切なほぼ1350MIPの処理能力を得る
ことができる。
【0025】図2は、本発明の好ましい実施形態に係わ
るデータユニットの処理を示す。本発明の暗号処理シス
テムのアーキテクチャは非常に高いスループットを備え
た複数チャネルのパケット化通信スレッド(threa
ds)の処理を可能にする。内部サブシステムと外部ホ
ストとの間の非同期動作はCC11における有限状態マ
シン(finite state machine)に
よって管理される。
【0026】図2を参照すると、データユニット41
は、時間線またはタイムライン(time−line)
40で示されるように、外部ホストからインタフェース
プロセッサ13または15(図1)の1つに転送され
る。インタフェースプロセッサはCC11に対し新しい
データユニット41が処理のために用意ができているこ
とを時間51に該データユニットのヘッダをCC11に
送ることにより通知する。データユニット41のヘッダ
の情報に基づき、CC11はインタフェースプロセッサ
にデータユニットを、KMCE12、PCE14または
CCE16のような、適切な処理サブシステムに移動す
ることを指令する。好ましくは、データユニットの一部
のみが、例えば、ヘッダ以外のすべてが、処理エンジン
に転送される。
【0027】データユニットがPCP17におけるエン
ジンの1つによって処理されるべく準備されたとき、C
C11は処理を予定しかつ開始する。調停により、CC
11は好ましくはシステム10における同時処理を最大
にするためデータユニット転送を最大にする。タイムラ
イン42において、データユニット41はCP−RAM
9(図1)のようなメモリに転送され、そこで適切な処
理エンジン(例えば、PCE14またはCCE16)に
よって処理されるべく待機する。処理されるべき次のデ
ータユニットのこのバックグランド作業はシステム10
にわたる潜伏(latency)を最小にする。さら
に、プログラムのバックグランド作業はPCE14また
はCCE16の資源がデータユニットを処理しておりか
つデータまたはプログラムを移動していないことを保証
することを助ける。従って、システムのデータスループ
ットが大幅に増大される。
【0028】タイムライン44は処理エンジンがデータ
ユニット45を処理しておりかつ処理されたデータ部分
を出力インタフェースプロセッサに転送している期間を
示す。時間フレーム52は典型的には1クロックサイク
ルでありその間にキーおよびプログラムが切り替えられ
るコンテクスト切替え時間である。インタフェースプロ
セッサは時間51においてCC11に対し新しいデータ
ユニットが処理される用意ができたことを通知する。タ
イムライン44の間に、処理されたデータユニットは処
理ユニットから出力インタフェースプロセッサへと転送
される。データユニットの処理は時間54で完了する。
この時間に、出力インタフェースプロセッサは外部ホス
トに対しデータユニットが処理を完了しておりかつ利用
可能であることを通知する。データユニット47は処理
されたデータユニットであり、かつタイムライン46の
間に外部ホストに転送される。該データユニットを処理
することに関連するパケットの潜伏59は入力インタフ
ェースプロセッサにおけるパケットの受信から処理され
たデータユニットが外部ホストに転送される用意ができ
る時間までの時間として示されている。
【0029】図2の処理ダイアグラムから見られるよう
に、データユニットはパケット全体が処理ユニット(P
CP17)によって受信された後に処理エンジン(例え
ば、PCE14またはCCE16)によって処理され
る。さらに、データユニットはデータユニット全体が処
理されるまで外部ホストに転送するために利用できな
い。データユニットは好ましくは複数のDワード(Dw
ords)(32ビットのワード)からなり、その各々
は個々に処理されかつ次に処理ユニットから出力インタ
フェースプロセッサへと処理が行われるに従って継続的
な(continual)ベースで送信される。好まし
い実施形態では、外部ホストはデータユニット全体が処
理を完了しかつ出力インタフェースプロセッサにおいて
利用可能となった後に通知される。完全なデータユニッ
トの処理は外部ホストからの行動またはアクションによ
って生じ得る行き詰まりまたはデッドロックを避ける働
きをなす。
【0030】出力インタフェースプロセッサは典型的に
はデータユニットがそこから発出または発信される反対
側のインタフェースポートに関連するインタフェースプ
ロセッサである。例えば、プレインテキストまたは平文
インタフェースポート33において発出するデータは、
それが処理された後に、CTIP15に送られかつ暗号
文インタフェースポート37において利用可能にされ
る。
【0031】好ましい実施形態では、データユニットは
ホストシステムによって非同期的にインタフェースプロ
セッサ13または15にロードされかつインタフェース
プロセッサによって管理される。PCE14またはCC
E16による実行のために計画または予定されたデータ
ユニットは処理ユニット(例えば、CP−RAM9)に
関連するメモリに送られかつ記憶される。処理エンジン
がFS−RISC26である場合は、処理の用意ができ
たデータユニットはメモリ25に記憶される。インタフ
ェースプロセッサ13および15はデータユニットの分
解(dataunit parsing)、優先順位付
け(prioritizing)、並列−直列および直
列−並列変換、パケット統合、検査またはチェックワー
ド(checkword)発生およびメモリ管理機能の
ような機能を行う。
【0032】本発明の好ましい実施形態では、システム
10によって処理されるデータユニットはシステム10
による処理のために特別にフォーマットされる。この実
施形態では、インタフェースプロセッサ13および15
は以下に説明するAPDUフォーマットでデータを処理
する。しかしながら、APDUフォーマットにないスト
リームデータ(stream data)もインタフェ
ースプロセッサの並列または直列ポートにおいて受信さ
れかつ処理のためにAPDUフォーマットへと変換する
ことができる。
【0033】図3は、本発明の好ましい実施形態と共に
使用するのに適したデータユニットのフォーマットを示
す。APDUフォーマットにおけるデータユニットが図
3に示されている。APDUフォーマットのデータユニ
ットは一連のDワードからなる。各々のDワードは欄6
0に示されるオフセットを有する。最初のDワードはチ
ャネルヘッダのDワード66であり、これは好ましくは
32ビットのDワードである。チャネルヘッダのDワー
ド66に続いてコマンドDワード67があり、これは1
のDワードオフセットを有する。コマンドDワード67
に続いて2と4094の間のDワードオフセットを有す
るパラメータデータフィールド68がある。APDUの
パラメータデータフィールド68はアプリケーションの
ペイロード(application payloa
d)を含む。フィールド68のデータは各々のチャネル
に対して異なるフォーマットを持つことができ、それは
アプリケーションプログラムは各々のデータユニットに
対してコンテクスト交換(context swap)
できるからである。例えば、複数のチャネルに対してシ
ステム10において複数のプログラムが実行していると
き、いくつかのチャネルは通信スレッド(commun
ication thread)に対するロックステッ
プ処理を保証するためにより堅牢な(robust)プ
ロトコルを必要とするであろう。
【0034】最後のDワードは検査合計またはチェック
サム(check sum)Dワード69であり、これ
は好ましくはAPDU全体にわたり計算される32ビッ
トのフレーム検査シーケンス(frame check
sequence:FCS)である。検査合計または
チェックサム(CS)Dワード69は特定の用途に対し
てイネーブルしまたはディスエーブルすることができる
任意選択的なフィールドである。スタートアップ手順の
間に、KMCE12はCC11を構成しかつチェックサ
ムが各々のAPDUに添付されたか否かを判定する。
【0035】1つの適切なFCSプログラムはISO3
309−1964E仕様の32ビットのバージョンであ
る。この仕様は情報処理システムおよびデータ通信のた
めの高レベルデータリンク制御手順およびフレーム構造
を規定する。
【0036】図4は、本発明の好ましい実施形態におい
て使用するのに適したチャネルヘッダのフォーマットを
示す。該チャネルヘッダのフォーマットはチャネルヘッ
ダのDワード66におけるフィールドのサイズまたは大
きさおよびロケーションまたは位置を規定する。チャネ
ルヘッダDワード66は3ビットのAPDUタイプフィ
ールド71、19ビットのチャネルインデクスフィール
ド72、12ビットのPDU長さフィールド73、スペ
アビット74、3ビットのMLSタグフィールド75、
優先度ビット76およびパリティビット77を含む。M
LSタグフィールド75および優先度ビット76は任意
選択的なものである。APDUタイプフィールド71は
APDUタイプに対する値およびその対応する意義また
は有意性(significance)を規定する。好
ましくは、APDUタイプフィールド71は、例えば、
PTIP13またはCTIP15からの、あるいはシス
テム10の他の内部ソースからのAPDUのソースを規
定する。APDUタイプフィールド71は好ましくはデ
ータユニットを受けるべき出力プロセッサをも示す。
【0037】APDUタイプフィールド71はまたAP
DUが要求APDUであるか応答APDUであるかを特
定する。応答APDUに対しては、チャネルインデクス
フィールド72はもはやチャネルインデクスを含まず、
代わりに要求APDUのコマンドDワードにおいて与え
られる3ビットの要求プログラム番号(request
program number:RPN)を含む。C
C11はAPDUタイプフィールド71を用いて、とり
わけ、チャネルインデクスフィールド72の使用(us
e)を決定する。
【0038】チャネルインデクスフィールド72はデー
タユニットが通常のチャネルを呼んでいるか否かあるい
はデータユニットが内部資源を呼んでいるかを規定す
る。例えば、チャネルインデクスの最初のビットが
“1”であれば、最後の10ビットは後に説明するチャ
ネルテーブルにおいて使用するチャネルプログラムを識
別する。チャネルテーブルはチャネルの特性を特定す
る。CC11はコンテクストおよびプログラムが実行ユ
ニットのアクティブチャネルメモリへと移動されかつア
クティブチャネルメモリから出される際にチャネルテー
ブルを管理する。チャネルが生成されるとき、エントリ
が該チャネルテーブルに加えられる。チャネルテーブル
のエントリが除去されたとき、そのチャネルはインアク
ティブ(inactive)になる。インアクティブな
チャネルのテーブルは状態(state)および変数デ
ータおよび/またはプログラムがC11の状態マシンに
よってアクセスできない記憶位置に移動されたものであ
る。FS−RISC26上で動作するアプリケーション
プログラムは該テーブルからチャネルプログラムを再割
当てしかつデータをPCP17から除去することができ
る。インアクティブなチャネルデータを記憶するために
使用されるメモリはKMCE12または外部コンテクス
トメモリ内に設けることができる。
【0039】チャネルインデクスフィールド72に関し
ては、もしチャネルインデクスの最初のビットがゼロで
あれば、データユニットは処理のために内部資源を要求
しているかもしれない。このチャネルインデクスの次の
10ビットはどの内部資源が要求されているかを示す。
内部資源はPTIP13、CTIP15、CC11、P
I21内のランダマイザ(randomizer)、お
よびFS−RISC26を含む。
【0040】PDU長さフィールド73は好ましくはコ
マンドDワード67に続く任意選択的なCSスペースD
ワードを含むDワードの数を示す。長さフィールド73
はアプリケーションデータのサイズまたは大きさを規定
する。図3に示される実施形態では、最大のアプリケー
ションデータユニットのサイズは4094Dワードであ
り、これは131,008ビットである。
【0041】MLSタグフィールド75はAPDUの保
安レベルを特定する。好ましい実施形態では、MLSタ
グフィールド75内の値はチャネルに関連するキーのM
LSタグの値と比較される。2つのタグが整合しない場
合、データユニットは排除されかつエラー状態がセット
される。本発明の好ましい実施形態では、キーのMLS
タグは該キーと共にロードされるかあるいはキー作成の
ときに特定される。該キーのMLSタグは好ましくは該
キーを作成するために使用される保安レベルに基づく。
【0042】優先度ビット76はAPDUのための優先
度レベルを規定する。該優先度ビットは好ましくはイン
タフェースプロセッサ13または15によって使用され
てデータユニットの処理の順序を選択する。示された実
施形態では、2つのレベルの優先度がある。例えば、ゼ
ロは非実時間(non−real−time)処理を特
定し、一方“1”は実時間処理を特定するために使用さ
れる。
【0043】パリティビット77は好ましくはそれぞれ
のヘッダDワードに加えられる。CC11は該ヘッダワ
ードのパリティを該ヘッダが処理されるときに検査す
る。
【0044】図5は、本発明の好ましい実施形態におい
て使用するのに適したコマンドDワードのフォーマット
を示す。コマンドDワード67は好ましくは各々のAP
DUにおける第2のDワードである。コマンドDワード
67は10ビットのコマンドIDフィールド81、7ビ
ットの応答フィールド82、3ビットの要求プログラム
番号(RPN)フィールド83、5ビットのAPDU長
さフィールド84、スペアビット85、およびパリティ
ビット86を含む。好ましい実施形態では、コマンドI
Dフィールド81はデータユニットに対して実行される
べき機能を特定する。機能は好ましくは各々のチャネル
プログラムに対して規定される。好ましい実施形態で
は、システム10に対して本来の機能はない。機能は、
例えば、暗号化、暗号解読、符号、真正証明、その他を
含むことができる。例えば、暗号化のような機能はアプ
リケーションソフトウエアに対しAPDUのデータ部分
(例えば、パラメータデータフィールド68)が暗号化
されるべきことを指定する。該暗号化はチャネルプログ
ラムおよびチャネルインデクスフィールドによって選択
されたそのチャネルに対して特定されたキーを使用して
行われる。
【0045】応答フィールド82は処理されたデータユ
ニットと共に処理ステータスを戻す。該応答はシステム
10の処理ユニットによって発生される。例えば、PC
E14は出力インタフェースプロセッサへのデータユニ
ットの送信の終りに「処理完了(processing
complete)」応答を応答フィールド82に提
供することができる。同様に、CC11はデータユニッ
トの転送が失敗した場合に送信プロセッサに「デフォー
ルト」応答値を送ることができる。応答フィールド82
は特定のアプリケーションまたはチャネルプログラムに
依存するものとすることができる。
【0046】RPNフィールド83は要求形式の(re
quest type)APDUにおいてどのプログラ
ムが要求を発行したかを識別するために使用される。C
C11は、例えば、暗号化エンジンの1つで現在動作し
ている処理の1つにマッピングするためにRPNを使用
することができる。RPNフィールド83はCC11が
APDUを正しいプロセッサに導くことができるように
する応答APDUチャネルインデクスにおける値を戻
す。好ましい実施形態では、APDUが外部ホストから
発出した場合、RPNフィールドは使用されずかつゼロ
にセットされる。プログラムを識別することにより、R
PNフィールド83はシステム10の実行ユニットにお
いて動作している異なるチャネルプログラムの間でコマ
ンド、パラメータおよびデータを要求しかつ受け渡す。
処理ユニットはプログラムを同時に走らせることができ
るから、処理ユニットはまたデータユニットを通信構造
で使用する。従って、RPNフィールド83の使用によ
って、プログラムは情報をCC11を使用してそれら自
体の間で転送できる。
【0047】APDU長さフィールド84はAPDUの
サイズを規定する。パリティビット86がコマンドDワ
ード67のヘッダに加えられる。CC11は該ヘッダワ
ードに関するパリティをそれがコマンドDワード67
(図3)を処理するときに検査することができる。
【0048】図6は、本発明の好ましい実施形態におい
て使用するのに適したチャネル規定またはチャネル定義
テーブルを示す。ヘッダDワード66(図4)のチャネ
ルインデクスフィールド72(図4)はCC11(図
1)によって読み取られてAPDUに適用されるチャネ
ルテーブル90の行(row)を決定する。チャネルテ
ーブル90はチャネルテーブルフィールドの内容および
それらの長さを規定する。好ましい実施形態では、チャ
ネルテーブル90は各々のチャネルを特性付けるために
1024ワード長さ×32ビットのテーブルとされる。
CC11は処理エンジン14および16においてチャネ
ルプログラムをセットアップする場合にチャネルテーブ
ル90のフィールドを使用する。チャネルテーブル90
は2ビットの割り当てられた活動フィールド(allo
cated activity field)92、要
求サービスビット93、セイブバックビット(save
back bit)94、4ビットのプログラムID
フィールド95、17ビットの可変アドレスフィールド
96、4ビットの長さフィールド97、および3ビット
のMLSキータグフィールド98を含む。
【0049】チャネルテーブル90の情報はAPDUを
適切な処理資源に導くために使用されかつそのチャネル
に対する特定の通信スレッドのインストールまたは再イ
ンストールのための他の情報を含む。一般に、チャネル
テーブルはチャネル定義または規定のためにプログラム
およびコンテクストが配置されるロケーションへのポイ
ンタを含む。チャネルインデクスフィールド72もまた
PCP17に割り当てられていないチャネルに対し指示
する(point)ことができる。この場合、CC11
は処理が行われるKMCE12へとデータユニットを導
くことができる。一般に、処理はKMCE12によって
例外ベース(exception basis)で行わ
れる。
【0050】チャネルインデクスフィールド72はFS
−RISC26上で実行するアプリケーションプログラ
ムのソフトウエアによって割り当てられかつチャネルの
作成/規定時に生じる。チャネルインデクスの割当ては
特定のアプリケーションに依存して固定されあるいは動
的なものとされる。動的チャネル割当てはチャネル作成
のときにおける値の交換を含みそれによって、例えば、
外部ホストが適切にAPDUを構築できるようにする。
新しいチャネルが作成されあるいは取りこわされた(t
orn down)とき、KMCE12はチャネルテー
ブル90において新しいエントリを作成しあるいはエン
トリを削除する。好ましい実施形態におけるチャネルテ
ーブル90はCC11のメモリ19に格納される。
【0051】各々のチャネルはCC11内に内在的に格
納される関連するチャネル状態(channel st
ate)を有する。チャネル状態は動作している現在の
プログラム状態、次のまたは最後の状態、スタンバイ状
態、インストール状態およびインアクティブまたは不活
性状態を含む。チャネルは現在のプログラム状態および
コンテクストがPCE14またはCCE16上で実行し
ている場合に動作状態(running state)
にある。好ましい実施形態では、PCE14およびCC
E16は一組の少なくとも4つのメモリを有し、これら
はピンポン(ping−pong)様式で選択され現在
のチャネルが現在実行している間に次のチャネルがロー
ドできるようにする。前記メモリ規定または定義はこの
メモリスワッピングが発生するからアクティブ(act
ive)からシャドウ(shadpw)へと変化する。
【0052】次のまたは最後のチャネル状態はチャネル
プログラムが上に述べたPCE14またはCCE16と
関連するシャドウメモリに存在することを示す。スタン
バイチャネル状態はアプリケーションプログラムがCP
−RAM9に存在しかつシャドウメモリにインストール
されるべく用意ができていることを規定する。インスト
ールチャネル状態は、1つのチャネルに対するチャネル
プログラムに関連するコンテクストが他のものとスワッ
プされたときに、スタンバイと次のまたは最後のものと
の間のチャネル状態である。インアクティブチャネル状
態は前記コンテクストおよび/またはプログラムがPC
P17の制御の外にある状態である。例えば、プログラ
ムはKMCE12にあるいは外部コンテクストメモリに
存在することができる。
【0053】いったんチャネルがPCP17において確
立されると、外部ホストのアプリケーションはFS−R
ISC26において実行しているアプリケーションプロ
グラムからの介在なしにチャネルごとのベースでPCP
17においてAPDUを処理することができる。従っ
て、暗号化または暗号解読のような機能の間の最大のス
ループットがPCP17におけるチャネルごとの(pe
r channel)自律的処理によって達成される。
従って、典型的なアプリケーションはKMCE12の介
在なしにAPDUをPCP17を通って受け渡す。
【0054】チャネル活動フィールド92は有効なチャ
ネルを識別し、かつチャネル状態情報を含む。無効なチ
ャネルプログラムを識別するデータユニットは処理のた
めにFS−RISC26に書き込まれることができる。
チャネル活動フィールド92は、有効な場合、そのチャ
ネルの処理活動を示す。データユニットが処理されてい
る場合、チャネル活動フィールド92は更新される。チ
ャネル活動フィールド92はまたKMCE12によって
使用されてどのチャネルがよりまれにしか使用されてい
ないかかつ従って、システム10への最小の影響と共に
除去できるかを決定する。好ましい実施形態では、チャ
ネル活動フィールド92は順次、例えば、番号“0
1”,“10”および“11”を通って更新される。現
在のまたは現行の値は特定のAPDUを処理するために
使用されているチャネルと共に記憶される。チャネル活
動フィールド92の値はチャネルの最後に使用された状
態を表す。
【0055】要求サービスビットフィールド93はPC
E14またはCCE16上で実行しているアプリケーシ
ョンプログラムがFS−RISC26上で実行している
アプリケーションプログラムによって更新された包括的
変数(global variables)に対して新
しい値を読む必要があることを示す。従って、要求サー
ビスビットまたはサービス要求ビットがセットされてい
る場合、FS−RISC26はプログラムが開始する前
に付加的な情報を提供する。セイブバックビット94は
CC11がコンテクストをセーブするために使用する方
法を示す。例えば、コンテクストはCP−RAM9にあ
るいは外部メモリにセーブすることができる。コンテク
ストは一般に処理エンジンの1つにおいて導入されたま
たはインストールされたチャネルプログラムが現存する
コンテクストのいくつかまたはすべてを変えた後にセー
ブし戻される。セーブバックビット94を使用すること
により、多くのAPDUは同じチャネル上で動作してコ
ンテクストへの変化を生じさせることができる。チャネ
ルが処理エンジンの1つから除去されたとき、コンテク
ストは内部または外部メモリへとセイブバックされる。
従って、無用のセーブが避けられる。
【0056】プログラムIDフィールド95はアルゴリ
ズムまたはプログラムのためのIDコードを含む。好ま
しくは、プログラムIDフィールド95はCC11のメ
モリ19内に存在するプログラムアドレステーブルにお
ける行(row)を指示する。プログラムアドレステー
ブルは、とりわけ、CC11が異なるプログラムを追跡
するために使用するフィールドを規定する。変数または
可変アドレスフィールド96はチャネルに対する可変ま
たは変数データが位置するPCP17内のメモリロケー
ションの開始アドレスを規定する。可変または変数アド
レスフィールド96を使用することにより、CC11は
該変数が現在アクティブメモリにあるか、シャドウメモ
リにあるか、変数または状態メモリにあるかを決定す
る。さらに、変数アドレスフィールド96はCC11に
対し変数データがCP−RAM9にありかつ変数状態に
対してCCE16のPCE14のアクティブまたはシャ
ドウメモリへと移動されるべきことを示す。シャドウお
よびアクティブメモリに対するメモリアドレスは好まし
くは固定され従ってCC11がAPDUが実行の用意が
できているか否かあるいはAPDUがシャドウメモリへ
とスタグされるべきか否かを決定できるようにする。A
PDUがシャドウメモリにスタグされている間に、プロ
グラム変数および状態のような、そのチャネルに対する
チャネルパラメータが処理エンジンにロードされる。
【0057】状態長さフィールド97は上で述べた状態
変数データの長さを規定する。好ましい実施形態では、
状態長さフィールド97はゼロと32のDワードとの間
で変動する。MLSキータグフィールド98はチャネル
キーの保安レベルを列挙する(lists)。キータグ
フィールド98の値はAPDUのヘッダDワード66の
MLSタグフィールド75において受信されたタグと比
較される。キータグフィールド98に列挙されたチャネ
ルキーの保安レベルは処理されるべきデータユニットに
対してヘッダDワード66のMLSタグフィールド76
において識別される、データの保安レベルより高くある
べきである。
【0058】図7は、本発明の好ましい実施形態におい
て使用するのに適したプログラムアドレステーブルの例
を示す。プログラムアドレステーブル700はプログラ
ムタイプフィールド702、プログラムロケーションフ
ィールド703、赤/黒(red/black)フィー
ルド704、プログラムアドレスフィールド705、プ
ログラム長さフィールド706、ブランクDワードフィ
ールド707および変数長さフィールド708を含む。
チャネルテーブル90からのプログラムIDフィールド
95(図6)はチャネルアドレステーブル700の行
(row)を指示する。従って、各々のチャネルはプロ
グラムアドレステーブル700における行と関連してい
る。
【0059】プログラムタイプフィールド702はチャ
ネルプログラムのサイズ、例えば、大きいかまたは小さ
いか、を識別する2ビットのフィールドである。プログ
ラムタイプフィールド702はまたプログラムが動作す
る実行ユニット、例えば、PCE14またはCCE1
6、を識別する。プログラムロケーションフィールド7
03はそのチャネルに対するチャネルプログラムのロケ
ーションを識別する。CC11はプログラムロケーショ
ンフィールド703を使用してそれがAPDUを処理す
るために必要な場合にプログラムのロケーションを決定
する。プログラムロケーションフィールド703はまた
プログラムがいつFS−RISC26によってロードさ
れるべきかを示す。プログラムロケーションフィールド
はまたそのプログラムの1つのコピーのみが存在しかつ
それがPCE14またはCCE16のような処理エンジ
ンに永久的に存在することを示すことができる。プログ
ラムロケーションフィールド703はまたはチャネルプ
ログラムがCP−RAM9にありかつ適切な処理エンジ
ンにとって必要な場合にコピーされるべきことを示す。
プログラムロケーションフィールド703はまたプログ
ラムが外部メモリにありかつ必要に応じてシステム10
にコピーされることを示す。プログラムが外部メモリに
あるとき、該プログラムは処理エンジンの1つにおける
インストールの前にKMCE12によって解読される必
要があるかもしれない。
【0060】赤/黒フィールド704は好ましくはプロ
グラムの保安レベルを識別する2ビットのフィールドで
ある。赤/黒フィールド704は、とりわけ、該プログ
ラムが保安プログラムであるかあるいは保安プログラム
でないかを示す。保安プログラムは暗黒のまたはブラッ
ク(black)外部メモリに移動される前に暗号化さ
れ、かつ外部メモリから該プログラムを移動した後に解
読されるべきである。非保安プログラムは外部メモリに
移動しまたは外部メモリから移動する前に暗号化される
必要はない。本発明の好ましい実施形態では、赤/黒フ
ィールド702は外部メモリがプログラム記憶のために
使用されないかあるいはプログラム記憶のために利用で
きない場合には使用されない。
【0061】プログラムアドレスフィールド705はチ
ャネルプログラムまたはそのチャネルに対するプログラ
ムのメモリロケーションを識別するアドレスポインタを
含む。該メモリロケーションはPCE14、CCE1
6、CP−RAM9または外部メモリにあることができ
る。CC11はプログラムアドレスフィールド705を
使用してチャネルプログラムの位置を決定しかつそれを
処理エンジンのシャドウメモリ内に移動する。特定のプ
ログラムが処理エンジンに永久的にロードされる場合
は、前記プログラムアドレスはプログラムが移動する必
要がないことを示すためにある値を含むことができる。
【0062】プログラム長さフィールド706はメモリ
に記憶されるチャネルプログラムのマイクロコードのサ
イズを識別する。ブランクDワードフィールド707は
CC11がそのメモリにプログラムをインストールした
後にCC11がメモリロケーションに書き込むゼロまた
はブランクDワードの数を示す。前記ゼロまたはブラン
クDワードはプログラムスペースがオーバライトされて
いることを保証するために前にインストールされたプロ
グラムに続き処理エンジンのプログラムスペースに書き
込まれる。
【0063】変数長さフィールド708はこの特定のプ
ログラムにおいて使用される変数の長さを含む。変数の
長さは同じプログラムを使用するすべてのチャネルに対
して同じとすることができる。プログラム変数の長さは
好ましくはゼロと32Dワードの間である。CC11は
チャネルのコンテクストを処理エンジンにインストール
する場合に前記変数長さを使用する。
【0064】図8は、本発明の好ましい実施形態におい
て使用するのに適したセットアップおよび構成(con
figuration)手順のフローチャートである。
手順100はシステム10によって、とりわけ、チャネ
ルを定義または規定し、かつ関連するチャネルプログラ
ムをPCP17にロードするために行われる。本発明の
プログラム可能暗号処理システムは、そのスーパースカ
ラ(superscaler)プログラム可能アーキテ
クチャにより、同時に動作するいくつかのプログラムを
もつことができる。これらのプログラムはFS−RIS
C26の保安オペレーティングシステム上で動作するマ
スタアプリケーションプログラムからインストールされ
る。タスク102において、KMCE12はシステム1
0の構成要素(components)およびサブシス
テムが適切に動作していることを保証するためリセット
およびセルフテスト処理を行う。タスク104において
は、マスタアプリケーションプログラムが外部ホスト1
03からKMCE12へとロードされる。本発明の別の
実施形態では、アプリケーションプログラムはKMCE
12のメモリ25内に存在し、かつメモリ25からFS
−RISC26へとロードされる。
【0065】タスク106においては、タスク104に
おいてロードされたアプリケーションプログラムが実行
され、好ましくはFS−RISC26の保安オペレーテ
ィングシステム上で実行される。
【0066】タスク108においては、アプリケーショ
ンプログラムはCC11に対しチャネル定義情報107
を使用して複数のチャネルを作成しかつ定義するよう指
令する。チャネル定義情報またはチャネル規定情報(C
hannel definition informa
tion)107はシステム10内に記憶されあるいは
外部ホストによって提供することができる。このステッ
プの間に、チャネルテーブル90(図6)のようなチャ
ネルテーブルが作成される。さらに、図7のプログラム
アドレステーブル700のようなプログラムアドレステ
ーブルも作成される。本発明の好ましい実施形態では、
これらのテーブルは共有または共用メモリ18(図1)
に記憶される。セットアップおよび構成手順100のタ
スク108の間に、チャネルプログラムは好ましくは処
理エンジン14または16においてインストールされな
い。チャネルプログラムはデータユニットが処理される
ときに特定のデータユニットのためにインストールされ
る。例えば、APDUのチャネルインデクスはCC11
にチャネルプログラムが走る(ラン)ようにさせかつC
C11はこのプログラムをインストールしかつ該プログ
ラムの実行を適切な処理エンジンにおいて開始する。
【0067】チャネル定義情報107はコンテクストの
特定のプログラムまたはプログラムセグメントとの関連
を定義するまたは規定する情報を含む。実行コード(e
xecution code)の単一のスレッド(th
read)はチャネルの例である。コンテクストを交換
するマルチ処理システムにおいては、数多くの同時的な
チャネルがマルチチャネル動作のために時分割で動作す
る。従って、各々のチャネルに対する別個のコンテクス
トが好ましくは維持される。
【0068】チャネルが定義されかつチャネルプログラ
ムが、タスク110において、識別された後、アプリケ
ーションプログラムは特定のチャネルプログラムをPC
P17のCP−RAM9のようなメモリにダウンロード
する。好ましくは各々のチャネルに関連してチャネルプ
ログラムがある。
【0069】タスク112においては、暗号キー(en
cryption keys)がシステム10にロード
される。好ましくは、該キーはフィルポート(fill
port)34を通してプログラム可能インタフェー
ス21へとロードされる。キーは、暗号化、暗号解読、
デジタル署名および真正証明のために使用されるキーを
含めて、DES暗号キー、パブリックおよびプライベー
トキーおよび暗号法の技術においてよく知られた他の形
式のキーを含む。好ましい実施形態では、メモリ25は
システム10への電源障害の場合にキーの喪失を防止す
るため、バッテリのような、バックアップ電源を有す
る。タスク112は任意選択的にFS−RISC26に
おいてキーを発生するキー発生タスク111を含むこと
ができる。FS−RISC26によって行われるキー発
生はパブリックまたはプライベートキー発生ソフトウエ
アを使用することを含むことができる。FS−RISC
26は内部ランダマイザ(randomizer)を使
用することによるものを含めて技術的に知られた多くの
方法でチャネルまたはセッションキーを発生することが
できる。好ましい実施形態では、キーはチャネルに関連
され、かつチャネルを適切なキーまたはキー対と関連さ
せるテーブルに記憶される。好ましい実施形態では、キ
ーはFS−RISC26の初期化の間に各チャネルと関
連される。1実施形態では、チャネルの保安レベルはそ
れを特定のキーと関連させる。
【0070】もしタスク112がキー発生タスク111
を含んでいれば、キーはキーエスクロー(key es
crow)にとって利用できるものとすることができ
る。タスク112はまたキーをキーエスクローに提供す
るタスクを含むことができる。タスク114において
は、キーはチャネル情報113を使用するチャネルと関
連されかつデータユニットを処理する上で使用するため
にCP−RAM9またはPCE14またはCCE16と
関連するローカルメモリのような、メモリに記憶され
る。タスク114が完了すると、システム10はデータ
ユニットを処理する用意ができている。
【0071】図9は、本発明の好ましい実施形態におい
て使用するのに適したデータユニットの処理手順のフロ
ーチャートである。好ましい実施形態では、手順200
はシステム10によって受信された各々のデータユニッ
トに対して行われる。一般に、手順200はある機能を
各々のデータユニットに対して行われるようにする。機
能は、例えば、暗号化、暗号解読、署名または真正証明
を含む。該機能が行われかつ処理されたデータユニット
が完成した後、システム10は処理されたデータユニッ
トを外部ホストにとって利用できるようにする。
【0072】タスク202においては、データユニット
は外部ホストからインタフェースプロセッサ13または
15において受信される。データユニットは好ましくは
図3〜図5で説明したようなAPDUフォーマットにな
っている。データユニットは外部ホストによって他のフ
ォーマットからAPDUフォーマットへと変換できる。
例えば、APDUフォーマットでないストリームデータ
(stream data)の場合は、PTIP13ま
たはSTIP15は該ストリームデータをシステム10
に記憶された構成情報203を使用してフォーマットす
ることができる。好ましい実施形態では、外部ホストは
タスク202においてインタフェースプロセッサによっ
て受信される前にデータをAPDUフォーマットに変換
するが、システム10がデータユニットをAPDUフォ
ーマットに変換することを妨げるものは何もない。
【0073】構成情報(Configuration
information)203はシステムのアプリケ
ーションに基づく特定の情報を含む。例えば、構成情報
203は処理されるべきデータユニットの種別、使用さ
れるべきインタフェース、APDUフォーマット情報、
およびいつPTIP13またはCTIP15がAPDU
を生成するかを含むことができる。
【0074】タスク202はデータユニットを同期的に
あるいは好ましくは非同期的に受信することができる。
データユニットはまた関連するインタフェースプロセッ
サの並列または直列ポートを通して並列または直列形式
で受信することができる。データユニットが非同期的に
受信される場合、インタフェースプロセッサは外部ホス
トにそれがデータユニットを受信するために利用できる
ことを通知する。
【0075】タスク204においては、入力インタフェ
ースプロセッサがパケット優先度(すなわち、ヘッダD
ワード66(図4)のビット76)を読み取り、かつそ
のデータユニットに対する処理を予定または計画する。
好ましい実施形態では、実時間優先度を備えたパケット
が始めにCC11に送られ、それに続き非実時間パケッ
トが送られる。タスク204の一部として、インタフェ
ースプロセッサはCC11に対し新しいデータユニット
が処理される用意ができていることを通知する。タスク
206においては、CC11はデータユニットのヘッダ
を読み取る。
【0076】タスク208においては、CC11はフィ
ールド72からチャネルインデクスを、フィールド71
からAPDUタイプを、そしてデータユニットのヘッダ
Dワード66のMLSタグフィールド75を読み取り該
データユニットを処理するために適切なチャネルプログ
ラムおよび処理資源を決定する。CC11はまたタスク
208の一部としてAPDU長さフィールド84を読み
取ることができる。
【0077】タスク210においては、CC11はイン
タフェースプロセッサに対しデータユニットを、PCE
14またはCCE16のような処理エンジンあるいはF
S−RISC26に導くよう指令する。処理エンジンは
タスク208からの情報に基づき選択される。ヘッダD
ワード66のチャネルインデクスフィールド72はデー
タユニットに対して処理を行うために外部ユニットを決
定する。好ましい実施形態では、データユニットはCP
−RAM9に導かれ、そこでPSE14またはCCE1
6による処理を待つ。あるいは、データユニットはPC
E14またはCCE16のシャドウメモリに導かれそこ
でそれぞれPCE14またはCCE16による処理を待
つ。
【0078】タスク210の間に、CC11におけるフ
レームチェックシーケンス(frame check
sequence:FCS)チェッカが転送の間のデー
タユニットの完全性を調べる。FCSによって問題が発
生したとき、デフォールト応答がデータユニットを提供
した外部ホストに戻される。ヘッダDワード66のPD
U長さフィールド73はPCP17においてメモリを割
り当てるためにCC11によって使用される。本発明の
1実施形態では、タスク210はデータユニットのペイ
ロード部分のみを処理エンジンに導くことを含む。
【0079】タスク211においては、その特定のチャ
ネルに対するコンテクストがダウンロードされる。タス
ク212においては、CC11はチャネルプログラムが
適切な処理エンジンにダウンロードされるようにする。
好ましくは、プログラムはPCE14またはCCE16
(図1)のシャドウメモリにロードされる。
【0080】タスク214においては、MLSタグフィ
ールド75がチャネルテーブルにおけるタグ(すなわ
ち、MLSキータグフィールド98)と比較されてプロ
グラムの保安レベルが少なくともそのデータユニットが
要求する保安レベル程度に大きいことを保証する。デー
タユニットがチャネルが提供するより大きな保安性を要
求する場合は、該データユニットは好ましくは処理され
ずかつデフォールト応答が入力インタフェースプロセッ
サに戻される。インタフェースプロセッサはこのデフォ
ールト応答をそのデータユニットを提供した外部ホスト
に戻すことができる。
【0081】タスク216においては、CC11はプロ
グラムを適切な処理エンジンに関連するシャドウメモリ
からインストールする。上で述べたように、データユニ
ットは該データユニットが処理される用意ができるまで
処理エンジンに関連するシャドウメモリに留っている。
タスク216はまたそのチャネルプログラムに対するコ
ンテクストの処理エンジンへのインストールに関与す
る。
【0082】いくつかのデータユニットに対して、特定
のデータユニットに対する処理エンジンはFS−RIS
C26(図1)である。この状況では、アプリケーショ
ンプログラムは一般にすでに動作しておりかつ従って、
タスク216のプログラムインストールのステップは行
われる必要がないかもしれない。この状況では、タスク
216はCC11がKMCE12に対しデータユニット
がメモリ25のようなFS−RISC26に関連するメ
モリ(例えば、FS−RISC26に対するメイルボッ
クス)へとロードされておりかつ処理の用意ができてい
ることを通知するタスクを含む。
【0083】タスク218においては、データユニット
に関連するコマンドが読み取られる。好ましくは、デー
タユニットのコマンドDワード67(図3)は適切な処
理エンジンによって読み出され(タスク210)、とり
わけ、データユニットに関して行われるべき機能を決定
する。該処理エンジンは今やデータユニットを処理する
用意ができている。処理エンジンがPCE14またはC
CE16である場合、処理エンジンはコマンドDワード
67をCP−RAM9におけるその記憶位置から読み出
す。処理エンジンがFS−RISC26である場合、C
C11はコマンドDワード67をメモリ25内のデータ
ユニットのロケーションから読み出す。
【0084】タスク218が行われた後、タスク220
はデータユニットを処理する。タスク218においてコ
マンドIDフィールド81を読み出すと、CC11は処
理エンジンに適切なチャネルプログラムによって該デー
タユニットに対して行われるべき機能を選択させる。タ
スク220においては、選択された機能に関連するキー
(単数または複数)およびチャネルが処理エンジンにロ
ードされる。一般に、選択された機能はまた処理された
データがどこに送られるかを決定する。例えば、暗号機
能は処理された(暗号化された)データをCTIP15
に送ることができ、一方暗号解読機能は処理された(解
読された)データをPTIP13に送ることができる。
内部データユニット処理に対しては、処理されたデータ
はさらに処理するためにCP−RAM9に送られ、ある
いはFS−RISC26によるさらなる処理のためにメ
モリ25に送ることができる。
【0085】典型的な処理機能221は暗号化、暗号解
読、デジタル署名および真正証明を含む。暗号化に関連
しない機能を含む他の機能も行うことができ、キーを使
用しない機能を含む。タスク222の間に、出力インタ
フェースプロセッサは処理されたデータユニットを累積
する(accumulates)。好ましくは、データ
ユニットの各々のDワードが処理されると、処理された
Dワードは出力インタフェースプロセッサへと提供され
る。いったんデータユニットのすべての処理されたDワ
ードが出力インタフェースプロセッサによって累積され
ると、出力インタフェースプロセッサはデータユニット
が処理を完了したこと、およびインタフェースプロセッ
サがデータユニットの完全な処理されたペイロード部分
を有することを通知される。タスク222はまたAPD
Uフォーマットのために処理されたデータユニットをフ
ォーマットするタスクを含むことができ、かつ、チャネ
ルヘッダDワード66のような、ヘッダ情報およびコマ
ンドDワード67(図3)のようなコマンド情報を加え
るタスクを含むことができる。タスク222はまたデー
タユニットが処理を完了しており、かつ適切なフォーマ
ットになっていることをCC11が出力インタフェース
プロセッサに通知するステップを含むことができる。
【0086】タスク224においては、インタフェース
プロセッサは外部ホストにデータユニットが外部ホスト
への転送のために用意ができていることを通知する。好
ましくは、外部ホストは該外部ホストが処理されたデー
タユニットを受ける用意ができたときにデータユニット
を要求する。例えば、外部ホストおよび出力インタフェ
ースプロセッサは処理されたデータユニットを転送する
ためにハンドシェイクプロトコルに関与する(enga
ge)ことができる。タスク224の一部として、出力
インタフェースプロセッサは処理されたデータユニット
が転送された後にそのメモリをクリアする。
【0087】いくつかの場合、データユニットに対して
付加的な処理が行われる。タスク222において、もし
データユニットに対してさらなる処理が要求されれば、
処理されたデータユニットはPCE14またはCCE1
6からCC11へと導き戻される。CC11は付加的な
処理を予定しかつタスク210〜222が反復される。
【0088】アプリケーションプログラムはデータユニ
ットに対して付加的な処理がいつ行われるべきかまたは
行われるべきことを決定することができる。行われるべ
き付加的な処理を有するデータユニットはAPDUとし
てフォーマットされCC11がどの処理を次に予定する
かを決定できるようにする。データユニットの処理の実
行のシーケンスは好ましくはチャネルプログラムによっ
て決定されかつCC11によって前記APDUと共にチ
ャネル番号を読み取ることによって実施され実行すべき
次のタスクを決定する。
【0089】本発明の1実施形態では、APDUフォー
マットでのデータユニットはタスク224の前に再フォ
ーマットされかつ再構成される。例えば、APDUは標
準的なPDUフォーマットに変換することができる。こ
の再フォーマット、再構成または変換は出力インタフェ
ースプロセッサによってあるいは外部ホストによって行
うことができる。
【0090】従って、プログラム可能な暗号処理システ
ムが説明され該システムは知られた技術に対して大きな
利点を有する。とりわけ、本発明のプログラム可能暗号
システムは暗号化、暗号解読およびメッセージの真正証
明、メッセージ署名その他のような他の保安サービスな
どに対する機能のための大幅に改善された性能を提供す
る。本発明の処理システムはまた高いグレードの、保安
通信システムのための増大する要求に答えることができ
る。本発明の処理システムはプログラム可能でありかつ
単一のULSI設計を使用して複数のプログラムをサポ
ートし、かつ現在のおよび将来の通信装置との共通動作
を可能にする。
【0091】本発明のプログラム可能暗号処理システム
および方法は複数の暗号プログラムを同時に処理するの
に適している。本発明のプログラム可能暗号処理システ
ムおよび方法は処理される各々のデータユニットに関し
てコンテクストおよびプログラム(例えば、アルゴリズ
ム)の迅速かつ安全なスイッチングを可能にする。
【0092】とりわけ、本発明のプログラム可能暗号シ
ステムは広い範囲のアプリケーションをサポートでき
る。各々のアプリケーションはいくつかの異なるかつ独
立の通信チャネルをもつことができる。さらに、各々の
チャネルは異なる暗号変数および状態をもつことができ
る。本発明のプログラム可能暗号システムのアーキテク
チャは正しいプログラムおよび機能がフェイルセイフ動
作で実行できることを保証する。
【0093】本発明のプログラム可能暗号システムはま
たフレーミング(framing)および帯域内シグナ
リング(in−band signaling)のよう
な非暗号処理をサポートする。好ましい実施形態では、
本プログラム可能暗号システムはプログラム可能であり
かつシステムが種々の機器種別において使用できるよう
にし、結果として柔軟性を加えコストをより低下させ
る。
【0094】好ましい実施形態では、暗号機能に対する
典型的な処理スループットは、種々のプログラムの同時
的実行に対するものを含めて、50MBPSのオーダに
ある。この能力はとりわけ、スループットの利点を提供
しならびに複数チャネルの実施をサポートする次のタス
クのバックグランドの準備または設定(backgro
und staging)によって達成される。
【0095】本発明は同時に動作するためにマルチ処理
を可能にするアーキテクチャを有するシステムを提供す
る。例えば、高速コードブック暗号化アプリケーション
は高速直列暗号解読ならびにデジタル署名のようなパブ
リックキー動作と共に同時に動作することができる。本
発明のプログラム可能暗号システムは保安手持型無線機
から保安高性能マルチチャネル無線機およびネットワー
クにおよぶ種々のアプリケーションに対して確実な解決
方法を提供することを助けるよう区分される。
【0096】好ましい実施形態では、本発明の処理シス
テムは同時処理能力を備えたスーパースカラーアーキテ
クチャによってサポートする。高いクロックレートの実
行、パケット化されたデータユニットの処理、インテリ
ジェントインタフェースプロセッサおよびバックグラン
ドタスクのスケジューリングによる単一サイクルのタス
ク交換のための深い(Deep)パイプラインマシンが
提供される。これらの特徴的機能を1つのシステムへと
統合することは標準的な商業的な同様のプロセッサを使
用した実施に対してほぼ10,000倍の性能上の利点
を与える。
【0097】DSPの標準的な商業プロセッサによる複
数プログラムの処理に伴う問題の1つは保安オペレーテ
ィングシステムにおけるタスク交換またはタスクスワッ
ピングによる大きな性能の損失があることである。本発
明はバックグランドにおいて高速度の保安タスクスワッ
ピングを可能にする。典型的なマイクロプロセッサおよ
びDSPに伴う他の問題は高速の暗号化処理に対して高
速並列数値および論理処理資源が不十分であることであ
る。本発明のシステムは、好ましい実施形態では、暗号
処理を加速する3つの高速処理資源、およびより低い速
度の要求に対する低速プロセッサを有する。
【0098】典型的な暗号処理システムにおいては、キ
ー変数データはサブシステムの間で交換されたとき傷つ
きやすい(vulnerable)。この保安性のリス
クは本発明によってキー管理およびコントローラサブシ
ステムならびに単一のモノリシックダイ上に配置された
暗号処理エンジンによって大幅に低減される。動作機器
における深いサブミクロンレベルからのデータの抽出は
非常に困難でありかつ従って、最も巧妙な攻撃者からで
もデータの喪失を防止することを助ける。本発明のUL
SI実施形態では、該ULSIは好ましくはそのような
敏感なデータの保護をさらに強化するためダイの表面の
プロービングを防止する保護コーティングによって覆う
ことができる。
【0099】暗号プログラム処理は好ましくはハードウ
ェアの障害があった場合でも敏感なデータの喪失を防止
することを助けるためフェイルセーフアーキテクチャで
行なわれる。典型的には、フェイルセーフ設計は複雑さ
の増大、コストの増大、電力消費の増大、およびより低
い信頼性を生じる結果となる。しかしながら、本発明は
好適にフェイルセーフ技術を導入し、これは結果として
増大した信頼性、電力消費の低減およびより低いコスト
を生じることになる。
【0100】好ましい実施形態では、本発明はまたエン
ドユーザ機器におけるプログラムのアップグレードを可
能にする。暗号プログラムのこの継続的なアップグレー
ドの可能性は保安機器の有用な寿命を延長しかつ他の機
器との共用を可能にする。
【0101】本発明の好ましい実施形態では、暗号プロ
グラムはそれらが暗号エンジンにロードされるまで暗号
保護される。いったん暗号キーまたは暗号化キーが除去
されると、プログラムは回復不能にされる。好ましい実
施形態では、プログラムソフトウェアを解読するために
使用されるキーはゼロ化される(zeroed)。
【0102】したがって、示されたものはプログラム可
能暗号処理システムであって、該暗号処理システムはデ
ータユニットを処理するためのプログラム可能暗号プロ
セッサ(PCP)、および各々のデータユニットに含ま
れる情報に基づき各々のデータユニットに対しチャネル
プログラムを識別するための暗号コントローラまたは暗
号制御部(CC)を具備することを特徴とし、かつ前記
データユニットの各々はヘッダフィールド、コマンドフ
ィールドおよびペイロード部分からなり、かつ前記CC
は前記データユニットの1つのヘッダフィールドを読み
取るための手段、前記ヘッダフィールドにおけるチャネ
ルインデクスに基づき前記1つのデータユニットを処理
するために複数のチャネルプログラムからチャネルプロ
グラムを識別する手段、前記チャネルインデクスに応じ
てPCPにおける処理エンジンに対しチャネルプログラ
ムがダウンロードされるようにする手段、そして前記処
理エンジンによる処理を予期して前記ペイロード部分を
PCPへと転送する手段を具備し、かつ前記コマンドフ
ィールドは処理エンジンによって前記1つのデータユニ
ットに対して行なわれるべき機能を識別し、前記PCP
はさらに、前記1つのチャネルプログラムを記憶するた
めの第1のメモリ、処理エンジンによる前記ペイロード
部分の処理に先立ち前記ペイロード部分を記憶するため
の第2のメモリ、前記機能を決定するために前記1つの
データユニットのコマンドフィールドを読み取るための
手段、および前記機能の実行のために前記チャネルプロ
グラムを処理エンジンにロードする手段を具備する。
【0103】さらに、システムが示され、該システムに
おいてはデータユニットはヘッダフィールド、コマンド
フィールドおよびペイロード部分からなり、かつ前記P
CPは前記ペイロード部分を記憶するための第1のメモ
リおよび複数のチャネルプログラムを記憶するための第
2のメモリを含み、前記チャネルプログラムの1つは前
記データユニットの前の処理の間に前記データユニット
の1つの処理を予期して処理エンジンの第2のメモリに
ダウンロードされる。
【0104】さらに、外部ホストからデータユニットを
受信しかつ処理されたデータユニットを外部ホストに転
送する複数のインタフェースプロセッサ(IP)を有す
るシステムが示され、この場合PCPはデータユニット
の1つの処理された部分を処理エンジンによる該1つの
データユニットの処理の間にインタフェースプロセッサ
の第2のものに転送する手段を有し、かつ前記第2のイ
ンタフェースプロセッサは前記1つのデータユニットが
PCPによる処理を完了したことを外部ホストに通知す
る手段を有し、かつ前記インタフェースプロセッサの第
1のものは外部ホストからデータユニットを非同期的に
受信する手段を含み、かつ前記第2のインタフェースプ
ロセッサは処理されたデータユニットを外部ホストに非
同期的に転送する手段を有する。
【0105】また、PCP、CCおよび第1および第2
のインタフェースプロセッサが単一のダイ上に製造され
るシステムが示されている。
【0106】さらにシステムが示され、この場合前記デ
ータユニットはヘッダフィールド、コマンドフィールド
およびペイロード部分からなり、PCPはデータユニッ
トに対して機能を達成するため少なくとも2つの処理エ
ンジンを具備し、かつCCは、1つのデータユニットの
ヘッダフィールドを読み取るための手段、該ヘッダフィ
ールドにおけるチャネルインデクスに基づき複数のチャ
ネルプログラムからチャネルプログラムを識別する手
段、該チャネルプログラムに基づき処理エンジンの1つ
を選択する手段、チャネルインデクスに応じてチャネル
プログラムがPCPにおける選択された処理エンジンに
ダウンロードされるようにする手段、そして選択された
処理エンジンによる処理を予見して前記ペイロード部分
をPCPに転送する手段を具備する。
【0107】さらに、CCと結合されたキー管理暗号エ
ンジン(Key Management Crypto
Engine:KMCE)によって特徴付けられるシ
ステムが示され、かつこの場合PCPはさらにプログラ
ム可能暗号エンジン(PCE)および構成可能な暗号エ
ンジン(CCE)を具備し、かつCCは各々のデータユ
ニットに含まれるチャネルインデクスに基づき各々のデ
ータユニットを処理するための暗号エンジンの1つを選
択するための手段、およびチャネルインデクスに応じて
各々のデータユニットを暗号エンジンの選択された1つ
に導く手段を具備し、前記選択された暗号エンジンは各
データユニットに対して複数のチャネルプログラムの1
つを実行し、かつ前記1つのチャネルプログラムは関連
するコンテクストを有し、該コンテクストは外部メモリ
に暗号化形式で記憶され、かつ前記システムは前記コン
テクストを暗号解読して前記コンテクストが1つのデー
タユニットの処理の前に選択された暗号エンジンに転送
されるようにする手段を有する。
【0108】さらに、CCが各々のデータユニットに対
して複数のチャネルプログラムから1つのチャネルプロ
グラムを識別する手段を有するシステムが示され、かつ
この場合CCは各チャネルプログラムに関連するコンテ
クストを識別する手段を有し、かつPCPは識別された
チャネルプログラムおよび関連するコンテクストにした
がってデータユニットの各々を処理するための手段を有
し、前記関連するコンテクストはチャネルプログラムに
対する状態(state)情報およびキーによって特徴
付けられる。
【0109】また、ヘッダ部分、コマンド部分および関
連するペイロード部分を有するデータユニットを処理す
るためのシステムが示され、この場合前記ヘッダ部分は
関連するデータユニットを処理するためのチャネルプロ
グラムを識別し、かつ前記コマンド部分は関連するデー
タユニットのペイロード部分に対して実行されるべき機
能を識別し、前記システムは、前記データユニットの各
々によって特定されるチャネルプログラムにしたがって
前記データユニットの各々を処理するためのプログラム
可能暗号プロセッサ(PCP)、および前記ヘッダ部分
を読み取りかつ前記関連するデータユニットによって識
別されるチャネルプログラムがPCPにおける処理エン
ジンにダウンロードされるようにする暗号制御部または
暗号コントローラ(CC)を具備することを特徴とし、
前記CCは前記ペイロード部分がチャネルプログラムに
よる処理を待機するため前記処理エンジンのメモリに転
送されるようにする。
【0110】さらに、システムが示され、該システムは
外部ホストからデータユニットを非同期的に受信しかつ
該データユニットの1つが処理のための利用できること
をCCに通知する第1のインタフェースプロセッサ、お
よびPCPから前記1つのデータユニットの処理された
部分を受信し、外部ホストに前記データユニットの処理
された部分の全てがPCPから受信されたことを通知
し、かつ処理されたデータユニットを外部ホストに非同
期的に転送するための第2のインタフェースプロセッサ
を有する。
【0111】さらに、キー管理暗号エンジン(KMC
E)を特徴とするシステムが示され、かつこの場合前記
処理エンジンはプログラム可能暗号エンジン(PCE)
であり、かつPCPはさらに構成可能な暗号エンジン
(CCE)を具備し、かつCCはデータユニットによっ
て識別されたチャネルインデクスに基づき1つのデータ
ユニットを処理するための暗号エンジンの1つを選択す
る手段、および前記1つのデータユニットをチャネルイ
ンデクスに応じて選択された暗号エンジンに導く手段を
具備し、前記選択された暗号エンジンは前記1つのデー
タユニットに対してチャネルプログラムを実行し、かつ
前記暗号エンジン、前記CCおよび前記第1および第2
のインタフェースプロセッサは単一のダイ上に製造さ
れ、前記チャネルプログラムは関連するコンテクストを
有し、該コンテクストは外部メモリに暗号化された形式
で記憶され、かつ前記システムはコンテクストを暗号解
読し該コンテクストが1つのデータユニットを処理する
前に選択された暗号エンジンに転送されるようにする手
段を有する。
【0112】さらに、複数の処理エンジンを有する処理
システムにおけるデータユニットを処理する方法が示さ
れ、該方法は、データユニットの第1のものにおける情
報に基づき複数のチャネルプログラムから1つのチャネ
ルプログラムを識別する段階、前記第1のデータユニッ
トを処理するために前記複数の処理エンジンから1つの
処理エンジンを識別する段階、前記第1のデータユニッ
トを前記識別された処理エンジンに関連するメモリに導
く段階、前記識別されたチャネルプログラムを識別され
た処理エンジンにロードする段階、そして前記識別され
たチャネルプログラムを使用して前記識別された処理エ
ンジンにおいて前記第1のデータユニットを処理する段
階を具備することを特徴とし、かつ前記チャネルを識別
する段階はさらに前記チャネルに関連するコンテクスト
を識別する段階を含み、前記コンテクストはメモリに記
憶され、かつ前記処理を行なう段階は前記識別されたチ
ャネルプログラムによる第1のデータユニットの処理の
段階を含み、前記識別されたチャネルプログラムは関連
するコンテクストを使用する。
【0113】さらに1つの方法が示され、該方法はチャ
ネルプログラムを識別する段階、処理エンジンを識別す
る段階、第1のデータユニットを処理する段階の実行の
間に第2のデータユニットのためにルーティングおよび
ロードを行なう段階を反復する段階を具備することを特
徴とし、前記反復されたチャネルプログラムを識別する
段階は第2のデータユニットのための第2のチャネルプ
ログラムを識別し、かつ前記識別された処理エンジンは
第1の処理エンジンであり、かつ前記方法はさらに、デ
ータユニットの第3のものを処理するために第2の処理
エンジンを識別する段階、前記第3のデータユニットの
ための第3のチャネルプログラムを識別する段階、前記
第3のデータユニットを前記第2の処理エンジンに関連
するメモリに導く段階、前記第3のチャネルプログラム
を第2の処理エンジンにロードする段階、そして第2の
処理エンジンにおいて前記第3のデータユニットを前記
第3のチャネルプログラムを使用して処理する段階を具
備することを特徴とし、前記第3のデータユニットを処
理する段階は前記第1の処理エンジンによる前記第1の
データユニットを処理する段階と同時的に行なわれる。
【0114】さらに1つの方法が示され、この場合前記
データユニットはヘッダフィールド、コマンドフィール
ドおよびペイロード部分からなり、該方法はさらにデー
タユニットのヘッダフィールドを読み取る段階、前記ヘ
ッダフィールドにおけるチャネルインデクスに基づき前
記データユニットを処理するために複数のチャネルプロ
グラムからチャネルプログラムを識別する段階、前記チ
ャネルプログラムに基づき処理エンジンを選択する段
階、前記チャネルインデクスに応じてチャネルプログラ
ムを選択された処理エンジンにダウンロードする段階、
前記処理エンジンによる処理を予期して前記処理エンジ
ンに関連するメモリロケーションにペイロード部分を転
送する段階、外部ホストから非同期的にデータユニット
を受信する段階、および処理されたデータユニットを外
部ホストに非同期的に転送する段階を具備することを特
徴とする。
【0115】さらに、複数の処理ユニットを有するプロ
グラム可能暗号処理システムにおける暗号機能を同時に
行なう方法が示され、該方法は、第1のヘッダフィール
ド、コマンドIDフィールドおよびペイロード部分から
なる第1のデータユニットを受信する段階、第1のヘッ
ダフィールドに基づき第1のデータユニットに対して暗
号機能の1つを行なうために処理ユニットの1つを選択
する段階、第1のデータユニットを選択された1つの処
理ユニットに導く段階、そして選択された1つの処理ユ
ニットがコマンドIDフィールドにおける情報に基づき
ペイロード部分に対して暗号機能の選択された1つを実
行する段階を具備することを特徴とする。
【0116】また、前記実行段階を行なう間にインタフ
ェースプロセッサにおいて第1の処理されたデータユニ
ットを形成する方法が示され、この場合該方法は前記第
1の処理されたデータユニットが形成されたとき外部ホ
ストに通知する段階を含む。また、1つの方法が示さ
れ、該方法においては前記ルーティング段階は前記第1
のデータユニットを選択された1つの処理ユニットに関
連するメモリに導く段階を含む。
【0117】さらに、1つの方法が示され、該方法は、
前記第1のデータユニットに対して前記実行段階を行な
っている間に第2のデータユニットに関して、暗号機能
の1つを選択する段階、処理ユニットの1つを選択する
段階、および前記導く段階を含んでいる。
【0118】また、1つの方法が示され、この場合前記
1つの処理ユニットを選択する段階はさらに前記暗号機
能の1つを達成するため前記複数の処理ユニットの内の
利用可能な1つを選択する段階を具備する。
【0119】さらに、1つの方法が示され、該方法にお
いては前記1つの暗号機能を達成する段階は前記1つの
暗号機能に関連するキーをロードする段階、および暗号
機能を達成するために該キーを使用する段階を含む。
【0120】さらに1つの方法が示され、該方法はさら
に前記暗号機能の1つを選択する段階、前記処理ユニッ
トの1つを選択する段階、前記導く段階、および第2の
データユニットのために暗号機能の選択された1つを実
行する段階を反復する段階を具備することを特徴とし、
前記第2のデータユニットは一連の受信されたデータユ
ニットにおける第1のデータユニットに続くデータユニ
ットであり、前記第1および第2のデータユニットは外
部ホストから非同期的に受信される。
【0121】また、1つの方法が示され、該方法はさら
に複数のチャネルプログラムを否定する段階を具備する
ことを特徴とし、各々のチャネルプログラムは暗号機能
およびキーに関連している。
【0122】1つの方法が示され、該方法はさらに複数
のチャネルを再規定または再定義する段階を具備するこ
とを特徴とし、各々のチャネルは暗号機能および暗号キ
ーの組合わせと関連し、各々のデータユニットのヘッダ
フィールドは複数のチャネルプログラムの1つを識別
し、かつ前記実行する段階は各々のデータユニットにつ
いて1つのチャネルプログラムに対し暗号キーによって
暗号機能の1つを実行する段階を含み、かつ前記暗号機
能は暗号化機能を具備し、かつ前記受信段階はシステム
の平文(plain−text)プログラム可能インタ
フェースによって平文で第1のデータユニットを受信す
る段階を含み、前記選択段階は前記チャネルプログラム
に関連する暗号機能の1つを選択する段階を含み、かつ
前記1つの暗号機能を実行する段階はシステムに記憶さ
れかつチャネルプログラムと関連する暗号化キーを使用
して第1のデータユニットの少なくともペイロード部分
を暗号化する段階を含み、かつ前記暗号機能は暗号解読
機能を具備し、かつ前記受信段階はシステムの暗号文
(cipher−text)プログラム可能インタフェ
ースによって暗号文で前記第1のデータユニットを受信
する段階を含み、前記選択する段階はチャネルプログラ
ムに関連する1つの暗号機能を選択する段階を含み、か
つ前記暗号機能を実行する段階はシステムに記憶されか
つチャネルプログラムに関連する暗号キーおよび選択さ
れた暗号機能を使用して第1のデータユニットの少なく
ともペイロード部分を暗号解読するステップを含む。
【0123】さらに1つの方法が示され、この場合暗号
機能はデジタル署名機能を含み、かつ前記受信段階はシ
ステムのプログラム可能インタフェースにおいて第1の
データユニットを受信する段階を含み、前記選択段階は
チャネルプログラムに関連する暗号機能を選択する段階
を含み、かつ暗号機能を行なう段階は選択された暗号機
能およびチャネルプログラムに関連するシステムに記憶
された暗号キーを使用して少なくとも前記第1のデータ
ユニットをデジタル的に署名する段階を含む。
【0124】さらに1つの方法が示され、この場合前記
暗号機能は真正証明機能を含み、かつ前記受信段階はシ
ステムのプログラム可能インタフェースにおいて第1の
データユニットを受信する段階を含み、前記選択する段
階はチャネルプログラムに関連する暗号機能を選択する
段階を含み、かつ前記暗号機能を実行する段階は選択さ
れた暗号機能およびチャネルに関連するシステムにおい
て記憶された暗号キーを使用して前記第1のデータユニ
ットを真正証明する段階を含む。
【0125】さらにまた1つの方法が示され、この場合
前記ヘッダフィールドは第1のデータユニットに関連す
るデータユニットの保安レベルを識別するフィールドを
含み、かつ前記第1のデータユニットは第1のチャネル
プログラムを識別し、第1のチャネルプログラムは関連
するプログラム保安レベルを有し、かつ前記方法は前記
データユニットの保安レベルをプログラム保安レベルと
比較する段階を含み、かつ前記暗号機能を実行する段階
は前記プログラム保安レベルが少なくとも前記データユ
ニット保安レベルと同じ大きさである場合に行なわれ
る。
【0126】さらにデータユニットを処理する方法が示
され、該方法は、第1のデータユニットから第1のチャ
ネル情報を読み取る段階、第1のチャネル情報によって
識別される第1のチャネルプログラムにしたがって第1
のデータユニットを処理する段階、第2のデータユニッ
トから第2のチャネル情報を読み取る段階、第2のチャ
ネル情報によって識別される第2のチャネルプログラム
にしたがって第2のデータユニットを処理する段階、第
1のチャネル情報を読み取る段階に応じて第1のチャネ
ルプログラムを処理エンジンにダウンロードする段階、
そして前記第2のチャネル情報を読み取る段階に応答し
て前記第2のチャネルプログラムを処理エンジンにダウ
ンロードする段階を具備することを特徴とし、前記第2
のチャネルプログラムをダウンロードする段階は第1の
データユニットを処理する段階の実行の間に行なわれ
る。
【0127】また、さらに他の方法が示され、該方法は
さらに第2のチャネルプログラムに関連するコンテクス
トを処理エンジンに関連するメモリにロードする段階を
具備することを特徴とし、該コンテクストをロードする
段階は第1のデータユニットを処理する段階の実行の間
に行なわれる。
【0128】さらに1つの方法が示され、該方法では処
理エンジンは暗号処理システムの複数の処理エンジンの
1つであり、前記方法はさらに第1のデータユニットに
含まれる情報に基づき前記処理エンジンの1つを識別す
る段階、および前記第1のデータユニットを前記処理エ
ンジンの識別された1つに導く段階を具備することを特
徴とし、前記第1のデータユニットを処理する段階は前
記処理エンジンの識別された1つによって第1のデータ
ユニットを処理する段階を具備し、かつ前記第1のチャ
ネルプログラムをダウンロードする段階は第1のチャネ
ルプログラムを識別された1つの処理エンジンにダウン
ロードする段階を具備する。
【0129】さらに1つの方法が示され、この場合前記
読み取り段階、処理段階、ダウンロード段階およびロー
ド段階はプログラム可能暗号処理システムによって行な
われ、前記コンテクストはシステムの外部のメモリロケ
ーションに記憶され、かつ前記方法はさらに前記コンテ
クストをロードする段階の前に前記コンテクストを暗号
解読する段階、第3のデータユニットから第3のチャネ
ル情報を読み取る段階、該第3のデータユニットに含ま
れる情報に基づき処理エンジンの内の第2のものを識別
する段階、第3のデータユニットを前記処理エンジンの
内の第2のものに導く段階、および前記第3のチャネル
情報によって識別される第3のチャネルプログラムにし
たがって第2の処理エンジンにおいて第3のデータユニ
ットを処理する段階を具備する。
【0130】さらに1つの方法が示され、この場合前記
第3のチャネル情報を読み取る段階、処理エンジンの第
2のものを識別する段階、および第3のデータユニット
を導く段階は、前記第1のデータユニットを処理する段
階と同時的に行なわれる。
【0131】以上の特定の実施形態に関する説明は本発
明の包括的な性質を完全に開示しており、これによって
他のものが、現在の知識を適用することにより、包括的
な概念から離れることなくそのような特定の実施形態を
容易に変更しおよび/または種々の用途に適用させるこ
とができ、したがってそのような適用および変更は開示
された実施形態と同等の意味および範囲内に含まれるも
のと考えられるべきである。
【0132】ここで使用された語法または用語法は説明
のためのものであり制限的なものでないことが理解され
るべきである。したがって、本発明は添付の特許請求の
範囲の精神および広い範囲内に含まれる全てのそのよう
な置換え、変更、等価物および変形を含むことを意図し
ている。
【図面の簡単な説明】
【図1】本発明の好ましい実施形態に係わるプログラム
可能暗号処理システムを示すハードウェアブロック図で
ある。
【図2】本発明の好ましい実施形態に係わるデータユニ
ットの処理を示す説明図である。
【図3】本発明の好ましい実施形態と共に使用するのに
適したデータユニットを示すフォーマット図である。
【図4】本発明の好ましい実施形態において使用するの
に適したチャネルヘッダを示すフォーマット図である。
【図5】本発明の好ましい実施形態において使用するの
に適したコマンドDワードを示すフォーマット図であ
る。
【図6】本発明の好ましい実施形態において使用するの
に適したチャネル識別テーブルを示す説明図である。
【図7】本発明の好ましい実施形態において使用するの
に適したプログラムアドレステーブルの一例を示す説明
図である。
【図8】本発明の好ましい実施形態において使用するの
に適したセットアップおよび構成手順を示すフローチャ
ートである。
【図9】本発明の好ましい実施形態において使用するの
に適したデータユニットの処理手順を示すフローチャー
トである。
【符号の説明】
10 暗号処理システム 12 キーマネージメント暗号エンジン(KMCE) 13 平文インタフェースプロセッサ(PTIP) 14 プログラム可能暗号エンジン(PCE) 16 構成可能暗号エンジン(CCE) 17 プログラム可能暗号プロセッサ(PCP) 18 共用メモリ 19 暗号制御部 20 テストインタフェース 21 プログラム可能インタフェース 22 modN解抽出器(NSE) 24 暗号プロセッサRAM 25 内部メモリ 26 フェイルセーフ縮小命令セットコンピュータ(F
S−RISC)
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジェームズ・エドワード・グリーンウッ ド・ジュニア アメリカ合衆国アリゾナ州85250、スコッ ツデイル、レッドウィング・ドライブ 8414 (72)発明者 ケリー・ルシル・ジョンズ−バノ アメリカ合衆国アリゾナ州85254、スコッ ツデイル、イースト・マリリン・ロード 6328

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 プロセッサ可能暗号処理システム(1
    0)であって、 データユニットを処理するためのプログラム可能暗号プ
    ロセッサ(PCP)(17)、そして各々のデータユニ
    ットに含まれる情報に基づき各々のデータユニットに対
    するチャネルプログラムを識別するための暗号制御装置
    (CC)(11)、 を具備することを特徴とするプログラム可能暗号処理シ
    ステム(10)。
  2. 【請求項2】 前記データユニットの各々はヘッダフィ
    ールド、コマンドフィールドおよびペイロード部分を含
    み、前記CCは、前記データユニットの1つのヘッダフ
    ィールドを読み取るための手段、 前記ヘッダフィールドにおけるチャネルインデクスに基
    づき前記1つのデータユニットを処理するために複数の
    チャネルプログラムから前記チャネルプログラムを識別
    するための手段、 前記チャネルインデクスに応じて、前記チャネルプログ
    ラムが前記PCPにおける処理エンジンにダウンロード
    されるようにするための手段、 前記処理エンジンによる処理を予期して前記ペイロード
    部分を前記PCPに転送するための手段、 を具備し、前記コマンドフィールドは前記処理エンジン
    によって前記1つのデータユニットに対して行なわれる
    べき機能を識別し、かつ前記PCPはさらに、 前記1つのチャネルプログラムを記憶するための第1の
    メモリ、 前記処理エンジンによる前記ペイロード部分の処理に先
    立ち前記ペイロード部分を記憶するための第2のメモ
    リ、 前記機能を決定するために前記1つのデータユニットの
    前記コマンドフィールドを読み取るための手段、そして
    前記チャネルプログラムを前記機能の実行のために前記
    処理エンジンにロードするための手段、 を具備し、前記データユニットはヘッダフィールド、コ
    マンドフィールドおよびペイロード部分を含み、かつ前
    記PCPは前記ペイロード部分を記憶するための第1の
    メモリおよび複数のチャネルプログラムを記憶するため
    の第2のメモリを含み、 前記チャネルプログラムの1つは前記データユニットの
    前の処理の間に前記データユニットの1つの処理を予期
    して処理エンジンの前記第2のメモリにダウンロードさ
    れることを特徴とするプログラム可能暗号処理システ
    ム。
  3. 【請求項3】 ヘッダ部分、コマンド部分および関連す
    るペイロード部分を有するデータユニットを処理するた
    めのデータユニット処理システムであって、前記ヘッダ
    部分は前記関連するデータユニットを処理するためのチ
    ャネルプログラムを識別し、かつ前記コマンド部分は前
    記関連するデータユニットのペイロード部分に対して実
    行されるべき機能を識別し、前記システムは、 前記データユニットの各々によって特定される前記チャ
    ネルプログラムにしたがって前記データユニットの各々
    を処理するためのプログラム可能暗号プロセッサ(PC
    P)(17)、そして前記ヘッダ部分を読み取りかつ前
    記関連するデータユニットによって識別される前記チャ
    ネルプログラムを前記PCPにおける処理エンジンにダ
    ウンロードさせる暗号制御部(CC)(11)であっ
    て、該CCは前記ペイロード部分が前記チャネルプログ
    ラムによる処理を待機するため前記処理エンジンのメモ
    リに転送されるようにするもの、 を具備することを特徴とするデータユニット処理システ
    ム。
  4. 【請求項4】 複数の処理エンジンを有する処理システ
    ムにおいてデータユニットを処理する方法(200)で
    あって、 (208)前記データユニットの第1のものにおける情
    報に基づき複数のチャネルプログラムからあるチャネル
    プログラムを識別する段階、 (208)前記第1のデータユニットを処理するために
    前記複数の処理エンジンからある処理エンジンを識別す
    る段階、 (210)前記識別された処理エンジンに関連するメモ
    リに前記第1のデータユニットを導く段階、 (216)前記識別された処理エンジンに前記識別され
    たチャネルプログラムをロードする段階、そして (220)前記識別されたチャネルプログラムを使用し
    て前記識別された処理エンジンにおいて前記第1のデー
    タユニットを処理する段階、 を具備し、前記チャネルを識別する段階はさらに前記チ
    ャネルに関連するコンテクストを識別する段階を含み、
    該コンテクストはメモリに記憶され、かつ前記処理する
    段階は前記識別されたチャネルプログラムによって前記
    第1のデータユニットを処理する段階を含み、前記識別
    されたチャネルプログラムは前記関連するコンテクスト
    を使用することを特徴とする複数の処理エンジンを有す
    る処理システムにおいてデータユニットを処理する方法
    (200)。
  5. 【請求項5】 複数の処理ユニットを有するプログラム
    可能暗号処理システムにおける暗号機能を同時的に行な
    う方法(200)であって、 (202)第1のヘッダフィールド、コマンドIDフィ
    ールドおよびペイロード部分を含む第1のデータユニッ
    トを受信する段階、 (208)前記第1のヘッダフィールドに基づき前記第
    1のデータユニットに対して前記暗号機能の1つを実行
    するために前記処理ユニットの1つを選択する段階、 (210)前記第1のデータユニットを前記選択された
    1つの処理ユニットに導く段階、 前記選択された1つの処理ユニットが前記コマンドID
    フィールドにおける情報に基づき前記ペイロード部分に
    対し前記暗号機能の選択された1つを実行する(22
    0)段階、そして前記実行する段階の達成の間にインタ
    フェースプロセッサにおいて第1の処理されたデータユ
    ニットを形成する段階、 を具備し、かつ前記方法は前記第1の処理されたデータ
    ユニットが形成されたことを外部ホストに通知する段階
    を含み、そして前記導く段階は前記第1のデータユニッ
    トを前記選択された1つの処理ユニットに関連するメモ
    リに導く段階を含むことを特徴とする複数の処理ユニッ
    トを有するプログラム可能暗号処理システムにおける暗
    号機能を同時的に実行する方法(200)。
JP10132755A 1997-04-30 1998-04-27 プログラム可能暗号処理システムおよび方法 Pending JPH10320191A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/841,314 US6101255A (en) 1997-04-30 1997-04-30 Programmable cryptographic processing system and method
US08/841,314 1997-04-30

Publications (1)

Publication Number Publication Date
JPH10320191A true JPH10320191A (ja) 1998-12-04

Family

ID=25284556

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10132755A Pending JPH10320191A (ja) 1997-04-30 1998-04-27 プログラム可能暗号処理システムおよび方法

Country Status (5)

Country Link
US (1) US6101255A (ja)
EP (1) EP0876026B1 (ja)
JP (1) JPH10320191A (ja)
DE (1) DE69841760D1 (ja)
TW (1) TW386202B (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003051819A (ja) * 2001-08-08 2003-02-21 Toshiba Corp マイクロプロセッサ
WO2006115252A1 (ja) 2005-04-25 2006-11-02 Matsushita Electric Industrial Co., Ltd. 情報セキュリティ装置
US7308099B1 (en) 1999-02-24 2007-12-11 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Device and method for producing an encoded audio and/or video data stream
US8074284B2 (en) 2006-06-14 2011-12-06 Panasonic Corporation Device provided with rewritable circuit, updating system, updating method, updating program and integrated circuit
US8181024B2 (en) 2006-09-08 2012-05-15 Renesas Electronics Corporation Data processing apparatus
US8189773B2 (en) 2005-04-21 2012-05-29 Panasonic Corporation Circuit updating system
US8452985B2 (en) 2005-04-07 2013-05-28 Panasonic Corporation Circuit building device

Families Citing this family (116)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7581077B2 (en) 1997-10-30 2009-08-25 Commvault Systems, Inc. Method and system for transferring data in a storage operation
US6418478B1 (en) 1997-10-30 2002-07-09 Commvault Systems, Inc. Pipelined high speed data transfer mechanism
US6965999B2 (en) * 1998-05-01 2005-11-15 Microsoft Corporation Intelligent trust management method and system
FI105739B (fi) * 1998-06-10 2000-09-29 Ssh Comm Security Oy Verkkoon kytkettävä laite ja menetelmä sen asennusta ja konfigurointia varten
US6301662B1 (en) * 1998-08-21 2001-10-09 Nortel Networks Corporation Authentication of routing data using variable output length one-way functions
JP4763866B2 (ja) * 1998-10-15 2011-08-31 インターシア ソフトウェア エルエルシー 2重再暗号化によりデジタルデータを保護する方法及び装置
US7107612B1 (en) * 1999-04-01 2006-09-12 Juniper Networks, Inc. Method, apparatus and computer program product for a network firewall
US6701432B1 (en) * 1999-04-01 2004-03-02 Netscreen Technologies, Inc. Firewall including local bus
US7600131B1 (en) 1999-07-08 2009-10-06 Broadcom Corporation Distributed processing in a cryptography acceleration chip
US20030014627A1 (en) * 1999-07-08 2003-01-16 Broadcom Corporation Distributed processing in a cryptography acceleration chip
US7370348B1 (en) 1999-07-30 2008-05-06 Intel Corporation Technique and apparatus for processing cryptographic services of data in a network system
WO2001029781A1 (en) 1999-10-15 2001-04-26 Ascom Hasler Mailing Systems, Inc. Technique for effectively generating postage indicia using a postal security device
US6842863B1 (en) 1999-11-23 2005-01-11 Microsoft Corporation Certificate reissuance for checking the status of a certificate in financial transactions
WO2001043338A1 (en) * 1999-12-09 2001-06-14 Milinx Business Group Inc. Method and apparatus for secure e-commerce transactions
US20020003878A1 (en) * 2000-04-28 2002-01-10 Erlend Olson Cryptographic key distribution system and method for digital video systems
US20020037081A1 (en) * 2000-04-28 2002-03-28 David Rogoff Cryptographic key distribution system and method for digital video systems
JP2001339383A (ja) * 2000-05-29 2001-12-07 Hitachi Ltd 認証通信用半導体装置
JP2002014872A (ja) 2000-06-29 2002-01-18 Fujitsu Ltd 暗号制御装置
DE10040854A1 (de) * 2000-08-21 2002-03-21 Infineon Technologies Ag Chipkarte
US7277542B2 (en) 2000-09-25 2007-10-02 Broadcom Corporation Stream cipher encryption application accelerator and methods thereof
CN1202643C (zh) * 2000-10-07 2005-05-18 Lg电子株式会社 具有无线电链路控制层的无线电通信系统和数据处理方法
DE10061998A1 (de) * 2000-12-13 2002-07-18 Infineon Technologies Ag Kryptographieprozessor
JP4098478B2 (ja) * 2001-01-31 2008-06-11 株式会社東芝 マイクロプロセッサ
TW552786B (en) 2001-04-30 2003-09-11 Activcard Method and system for remote activation and management of personal security devices
US20020162021A1 (en) * 2001-04-30 2002-10-31 Audebert Yves Louis Gabriel Method and system for establishing a remote connection to a personal security device
US7225465B2 (en) * 2001-04-30 2007-05-29 Matsushita Electric Industrial Co., Ltd. Method and system for remote management of personal security devices
DE60203277T2 (de) 2001-04-30 2006-03-30 Activcard Ireland Ltd. Verfahren und system zur authentifizierung eines personal security device gegenüber mindestens einem fernrechnersystem
US7363486B2 (en) * 2001-04-30 2008-04-22 Activcard Method and system for authentication through a communications pipe
DE10127424B4 (de) * 2001-06-06 2004-09-02 Infineon Technologies Ag Elektronische Schaltung mit asynchroner Taktung von Peripherieeinheiten
US7500104B2 (en) * 2001-06-15 2009-03-03 Microsoft Corporation Networked device branding for secure interaction in trust webs on open networks
US7512780B1 (en) * 2001-08-31 2009-03-31 Verizon Corporate Services Group, Inc. Packet-parallel high performance cryptography systems and methods
US7082200B2 (en) * 2001-09-06 2006-07-25 Microsoft Corporation Establishing secure peer networking in trust webs on open networks using shared secret device key
US7162631B2 (en) * 2001-11-02 2007-01-09 Activcard Method and system for scripting commands and data for use by a personal security device
EP1320006A1 (en) * 2001-12-12 2003-06-18 Canal+ Technologies Société Anonyme Processing data
US7376967B1 (en) * 2002-01-14 2008-05-20 F5 Networks, Inc. Method and system for performing asynchronous cryptographic operations
US20030167399A1 (en) * 2002-03-01 2003-09-04 Yves Audebert Method and system for performing post issuance configuration and data changes to a personal security device using a communications pipe
US7305567B1 (en) * 2002-03-01 2007-12-04 Cavium Networks, In. Decoupled architecture for data ciphering operations
US20040006635A1 (en) * 2002-04-19 2004-01-08 Oesterreicher Richard T. Hybrid streaming platform
US7899924B2 (en) * 2002-04-19 2011-03-01 Oesterreicher Richard T Flexible streaming hardware
US20040006636A1 (en) * 2002-04-19 2004-01-08 Oesterreicher Richard T. Optimized digital media delivery engine
US7802108B1 (en) * 2002-07-18 2010-09-21 Nvidia Corporation Secure storage of program code for an embedded system
US7885409B2 (en) * 2002-08-28 2011-02-08 Rockwell Collins, Inc. Software radio system and method
GB2409553B (en) 2002-09-16 2007-04-04 Commvault Systems Inc System and method for optimizing storage operations
US6684271B1 (en) * 2002-10-18 2004-01-27 Xilinx, Inc. Method and apparatus for changing context in link channelization
US7568218B2 (en) * 2002-10-31 2009-07-28 Microsoft Corporation Selective cross-realm authentication
US7191341B2 (en) 2002-12-18 2007-03-13 Broadcom Corporation Methods and apparatus for ordering data in a cryptography accelerator
US20040123123A1 (en) * 2002-12-18 2004-06-24 Buer Mark L. Methods and apparatus for accessing security association information in a cryptography accelerator
US7568110B2 (en) * 2002-12-18 2009-07-28 Broadcom Corporation Cryptography accelerator interface decoupling from cryptography processing cores
US7434043B2 (en) * 2002-12-18 2008-10-07 Broadcom Corporation Cryptography accelerator data routing unit
US20040123120A1 (en) * 2002-12-18 2004-06-24 Broadcom Corporation Cryptography accelerator input interface data handling
JP4686445B2 (ja) * 2003-04-08 2011-05-25 エーシーエヌ・アドヴァンスト・コミュニケーションズ・ネットワークス・エスエー データ通信のための方法
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
US7900055B2 (en) * 2003-04-18 2011-03-01 Via Technologies, Inc. Microprocessor apparatus and method for employing configurable block cipher cryptographic algorithms
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
US7529368B2 (en) * 2003-04-18 2009-05-05 Via Technologies, Inc. Apparatus and method for performing transparent output 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
US7536560B2 (en) * 2003-04-18 2009-05-19 Via Technologies, Inc. Microprocessor apparatus and method for providing configurable cryptographic key size
US7844053B2 (en) * 2003-04-18 2010-11-30 Ip-First, Llc Microprocessor apparatus and method for performing block cipher cryptographic functions
US7539876B2 (en) * 2003-04-18 2009-05-26 Via Technologies, Inc. Apparatus and method for generating a cryptographic key schedule in a microprocessor
US7529367B2 (en) * 2003-04-18 2009-05-05 Via Technologies, Inc. Apparatus and method for performing transparent cipher feedback mode cryptographic functions
US7542566B2 (en) * 2003-04-18 2009-06-02 Ip-First, Llc Apparatus and method for performing transparent cipher block chaining mode cryptographic functions
US7925891B2 (en) * 2003-04-18 2011-04-12 Via Technologies, Inc. Apparatus and method for employing cryptographic functions to generate a message digest
US7657757B2 (en) * 2003-04-30 2010-02-02 Freescale Semiconductor, Inc. Semiconductor device and method utilizing variable mode control with block ciphers
US20040242261A1 (en) * 2003-05-29 2004-12-02 General Dynamics Decision Systems, Inc. Software-defined radio
US7685436B2 (en) * 2003-10-02 2010-03-23 Itt Manufacturing Enterprises, Inc. System and method for a secure I/O interface
CA2544063C (en) 2003-11-13 2013-09-10 Commvault Systems, Inc. System and method for combining data streams in pilelined storage operations in a storage network
FR2863076B1 (fr) * 2003-11-28 2006-02-03 Bull Sa Systeme cryptographique haut debit a architecture modulaire.
CN1938983A (zh) * 2004-03-30 2007-03-28 松下电器产业株式会社 用于密码系统的更新系统
DE102004027372B4 (de) * 2004-06-04 2006-03-30 Infineon Technologies Ag DPA-resistente konfigurierbare Logikschaltung
US20050276413A1 (en) * 2004-06-14 2005-12-15 Raja Neogi Method and apparatus to manage heterogeneous cryptographic operations
EP1772016A2 (en) * 2004-07-23 2007-04-11 Beach Unlimited LLC Trickmodes and speed transitions
CN101877674A (zh) * 2004-07-30 2010-11-03 莫克纳公司 用于大量信道的硬件加速
US20060117004A1 (en) * 2004-11-30 2006-06-01 Hunt Charles L System and method for contextually understanding and analyzing system use and misuse
US20060136717A1 (en) 2004-12-20 2006-06-22 Mark Buer System and method for authentication via a proximate device
US8295484B2 (en) 2004-12-21 2012-10-23 Broadcom Corporation System and method for securing data from a remote input device
US20090055638A1 (en) * 2005-04-21 2009-02-26 Toshihisa Nakano Algorithm update system
US9191198B2 (en) 2005-06-16 2015-11-17 Hewlett-Packard Development Company, L.P. Method and device using one-time pad data
US8527741B2 (en) * 2005-07-05 2013-09-03 Viasat, Inc. System for selectively synchronizing high-assurance software tasks on multiple processors at a software routine level
US8190877B2 (en) * 2005-07-05 2012-05-29 Viasat, Inc. Trusted cryptographic processor
US7840000B1 (en) * 2005-07-25 2010-11-23 Rockwell Collins, Inc. High performance programmable cryptography system
US20080118065A1 (en) * 2005-07-29 2008-05-22 James Blaisdell Hardware acceleration for large volumes of channels
US8842839B2 (en) * 2005-09-29 2014-09-23 Hewlett-Packard Development Company, L.P. Device with multiple one-time pads and method of managing such a device
US20070177424A1 (en) * 2005-09-29 2007-08-02 Martin Sadler Device with n-time pad and a method of managing such a pad
US8429418B2 (en) 2006-02-15 2013-04-23 Intel Corporation Technique for providing secure firmware
US9860055B2 (en) * 2006-03-22 2018-01-02 Synopsys, Inc. Flexible architecture for processing of large numbers and method therefor
US8301905B2 (en) * 2006-09-08 2012-10-30 Inside Secure System and method for encrypting data
US8320556B1 (en) * 2006-09-28 2012-11-27 Rockwell Collins, Inc. Method to allow cryptographic processing of messages without sanitizing the cryptographic processor between messages
US8280028B1 (en) 2007-03-23 2012-10-02 Nextel Communications, Inc. System and method for indicating call priority
US8583915B1 (en) * 2007-05-31 2013-11-12 Bby Solutions, Inc. Security and authentication systems and methods for personalized portable devices and associated systems
DE102007060675A1 (de) * 2007-06-11 2008-12-18 Rohde & Schwarz Gmbh & Co. Kg Vorrichtung und Verfahren zur Verarbeitung von Datenströmen
US8392983B2 (en) 2007-07-31 2013-03-05 Viasat, Inc. Trusted labeler
US9020146B1 (en) * 2007-09-18 2015-04-28 Rockwell Collins, Inc. Algorithm agile programmable cryptographic processor
US8897448B2 (en) * 2008-10-31 2014-11-25 Ciena Corporation Controlling session keys through in-band signaling
US8990582B2 (en) * 2010-05-27 2015-03-24 Cisco Technology, Inc. Virtual machine memory compartmentalization in multi-core architectures
US8812871B2 (en) * 2010-05-27 2014-08-19 Cisco Technology, Inc. Method and apparatus for trusted execution in infrastructure as a service cloud environments
US9141831B2 (en) 2010-07-08 2015-09-22 Texas Instruments Incorporated Scheduler, security context cache, packet processor, and authentication, encryption modules
US9191200B1 (en) * 2010-10-07 2015-11-17 L-3 Communications Corp. System and method for changing the security level of a communications terminal during operation
US9456340B2 (en) * 2011-06-29 2016-09-27 Hewlett Packard Enterprise Development Lp Unsolicited broadcast packet transmission through close-by communication protocol
US9536078B2 (en) 2011-10-12 2017-01-03 Forcepoint Federal Llc Integrated circuit for cyber security processing
FR3003712B1 (fr) * 2013-03-19 2016-08-05 Altis Semiconductor Snc Module de securite materiel
US9374344B1 (en) 2013-03-29 2016-06-21 Secturion Systems, Inc. Secure end-to-end communication system
US9317718B1 (en) 2013-03-29 2016-04-19 Secturion Systems, Inc. Security device with programmable systolic-matrix cryptographic module and programmable input/output interface
US9798899B1 (en) 2013-03-29 2017-10-24 Secturion Systems, Inc. Replaceable or removable physical interface input/output module
US9355279B1 (en) 2013-03-29 2016-05-31 Secturion Systems, Inc. Multi-tenancy architecture
US9524399B1 (en) * 2013-04-01 2016-12-20 Secturion Systems, Inc. Multi-level independent security architecture
FR3016065B1 (fr) 2013-12-26 2016-02-05 Thales Sa Procede de conception d'une architecture reconfigurable de traitement d'un ensemble d'operations multi niveau de securite
DE102014222181A1 (de) * 2014-10-30 2016-05-04 Robert Bosch Gmbh Verfahren zum Betreiben eines Steuergeräts
US9898213B2 (en) 2015-01-23 2018-02-20 Commvault Systems, Inc. Scalable auxiliary copy processing using media agent resources
US9904481B2 (en) 2015-01-23 2018-02-27 Commvault Systems, Inc. Scalable auxiliary copy processing in a storage management system using media agent resources
US9794064B2 (en) 2015-09-17 2017-10-17 Secturion Systems, Inc. Client(s) to cloud or remote server secure data or file object encryption gateway
US11283774B2 (en) 2015-09-17 2022-03-22 Secturion Systems, Inc. Cloud storage using encryption gateway with certificate authority identification
US10708236B2 (en) 2015-10-26 2020-07-07 Secturion Systems, Inc. Multi-independent level secure (MILS) storage encryption
US11010261B2 (en) 2017-03-31 2021-05-18 Commvault Systems, Inc. Dynamically allocating streams during restoration of data
IT201700074269A1 (it) * 2017-07-03 2019-01-03 Stmicroelectronics Application Gmbh Sistema di elaborazione, relativo circuito integrato, dispositivo e procedimento
US11057194B2 (en) * 2017-07-03 2021-07-06 Stmicroelectronics S.R.L. Processing system, related integrated circuit, device and method

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4075691A (en) * 1975-11-06 1978-02-21 Bunker Ramo Corporation Communication control unit
US4386234A (en) * 1977-12-05 1983-05-31 International Business Machines Corp. Cryptographic communication and file security using terminals
US4433207A (en) * 1981-09-10 1984-02-21 Best Robert M Cryptographic decoder for computer programs
US4590552A (en) * 1982-06-30 1986-05-20 Texas Instruments Incorporated Security bit for designating the security status of information stored in a nonvolatile memory
US4603381A (en) * 1982-06-30 1986-07-29 Texas Instruments Incorporated Use of implant process for programming ROM type processor for encryption
DE3241376A1 (de) * 1982-11-09 1984-05-10 Siemens AG, 1000 Berlin und 8000 München Dma-steuereinrichtung zur uebertragung von daten zwischen einem datensender und einem datenempfaenger
US4941176A (en) * 1988-08-11 1990-07-10 International Business Machines Corporation Secure management of keys using control vectors
FR2677200B1 (fr) * 1991-05-30 1993-09-17 Besnard Christian Dispositif de securisation de donnees numeriques.
US5584039A (en) * 1993-11-08 1996-12-10 International Business Machines Corporation System for coordinating execution of multiple concurrent channel programs without host processor involvement using suspend and resume commands to control data transfer between I/O devices
US5469507A (en) * 1994-03-01 1995-11-21 International Business Machines Corporation Secure communication and computation in an insecure environment
US5533123A (en) * 1994-06-28 1996-07-02 National Semiconductor Corporation Programmable distributed personal security
US5610839A (en) * 1994-10-07 1997-03-11 Itt Corporation Communications management system architecture
US5742840A (en) * 1995-08-16 1998-04-21 Microunity Systems Engineering, Inc. General purpose, multiple precision parallel operation, programmable media processor
US5825889A (en) * 1996-10-15 1998-10-20 Ericsson Inc. Use of duplex cipher algorithms for satellite channels with delay

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7308099B1 (en) 1999-02-24 2007-12-11 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Device and method for producing an encoded audio and/or video data stream
JP2003051819A (ja) * 2001-08-08 2003-02-21 Toshiba Corp マイクロプロセッサ
US8452985B2 (en) 2005-04-07 2013-05-28 Panasonic Corporation Circuit building device
US8189773B2 (en) 2005-04-21 2012-05-29 Panasonic Corporation Circuit updating system
WO2006115252A1 (ja) 2005-04-25 2006-11-02 Matsushita Electric Industrial Co., Ltd. 情報セキュリティ装置
US7958353B2 (en) 2005-04-25 2011-06-07 Panasonic Corporation Information security device
US8074284B2 (en) 2006-06-14 2011-12-06 Panasonic Corporation Device provided with rewritable circuit, updating system, updating method, updating program and integrated circuit
US8181024B2 (en) 2006-09-08 2012-05-15 Renesas Electronics Corporation Data processing apparatus
US8918646B2 (en) 2006-09-08 2014-12-23 Renesas Electronics Corporation Data processing apparatus

Also Published As

Publication number Publication date
TW386202B (en) 2000-04-01
EP0876026A3 (en) 2000-05-10
US6101255A (en) 2000-08-08
EP0876026A2 (en) 1998-11-04
EP0876026B1 (en) 2010-07-14
DE69841760D1 (de) 2010-08-26

Similar Documents

Publication Publication Date Title
JPH10320191A (ja) プログラム可能暗号処理システムおよび方法
US5961626A (en) Method and processing interface for transferring data between host systems and a packetized processing system
US6081895A (en) Method and system for managing data unit processing
US8413153B2 (en) Methods and systems for sharing common job information
US9552498B2 (en) On-chip storage, creation, and manipulation of an encryption key
US6275588B1 (en) Apparatus and method for performing and controlling encryption/decryption for data to be transmitted on local area network
US7158637B2 (en) Security communication packet processing apparatus and the method thereof
WO2020077211A1 (en) Multimode cryptographic processor
US8918646B2 (en) Data processing apparatus
US9703595B2 (en) Multi-core system with central transaction control
CN110958215B (zh) 安全的在线接收的网络分组处理
US20080192926A1 (en) Des Hardware Throughput for Short Operations
US8683221B2 (en) Configurable memory encryption with constant pipeline delay in a multi-core processor
CN116635820B (zh) 用于控制计算存储处理器的方法和装置
CN115549911B (zh) 一种加解密系统、方法、处理器和服务器
US11038856B2 (en) Secure in-line network packet transmittal
CN114969851B (zh) 一种基于fpga的数据处理方法、装置、设备及介质
CN115412241A (zh) 实现后量子密码算法Kyber和Saber的融合密码安全处理器
CN112035866B (zh) 一种数据加密方法、装置、设备和计算机可读存储介质
US20060013397A1 (en) Channel adapter managed trusted queue pairs
JPH10190649A (ja) 双方向データストリーム伝送装置
CN113127901B (zh) 一种数据加密传输的处理方法、装置及芯片
EP1049292A2 (en) System and method for network monitoring
Anderson et al. High-Performance Interface Architectures for Cryptographic Hardware
US20030093578A1 (en) Method for indicating completion status of asynchronous events