(57)【要約】  暗号独立型の暗号化ハードウェアサービスが開示される。暗号独立型のトランザクションが入力スロット内に受信される（２０２）。当該入力スロットは当該トランザクションを維持するためのＦＩＦＯを含む。当該トランザクションが当該ＦＩＦＯから除去されるにつれて、当該トランザクションは暗号独立型の形態から暗号依存型の形態に変換されて（２０６）暗号依存型のタイミングに変換される。暗号固有のハードウェアによる暗号化処理の後、それらの結果は出力ＦＩＦＯに送られる（２１２）。複数の暗号化機能が並行して、かつ同時に実行されることが可能なように、複数のＦＩＦＯ及び暗号化ハードウェアが使用され得る。
2012519414.tif 000002
【特許請求の範囲】
【請求項１】
暗号化ハードウェアシステムであって、
暗号独立型の暗号化トランザクションを受信する複数の入力スロット、
暗号独立型の暗号化トランザクションを受信して第１の暗号依存型のトランザクションを第１の暗号ハードウェアに送る、前記第１の暗号ハードウェアを含む第１のラップされた暗号ブロックであって、前記暗号独立型の暗号化トランザクションを前記第１の暗号依存型のトランザクションに変換し、前記第１の暗号ハードウェアから受信された第１の暗号依存型の結果トランザクションを暗号独立型の結果トランザクションに変換する第１のラップされた暗号ブロック、及び
前記第１のラップされた暗号ブロックに関連する前記暗号独立型の結果トランザクションを受信する複数のスロットを有する第１の出力ＦＩＦＯ
を備えた暗号化ハードウェアシステム。
【請求項２】
請求項１のシステムにおいて、前記ラップされた暗号ブロックが、暗号依存型のタイミングを使用して、前記第１の暗号依存型のトランザクションを前記第１の暗号ハードウェアに送る、システム。
【請求項３】
請求項１のシステムであって、さらに、
暗号独立型の暗号化トランザクションを受信して第２の暗号依存型のトランザクションを第２の暗号ハードウェアに送る、前記第２の暗号ハードウェアを含む第２のラップされた暗号ブロックであって、前記暗号独立型の暗号化トランザクションを前記第２の暗号依存型のトランザクションに変換し、前記第２の暗号ハードウェアから受信された第２の暗号依存型の結果トランザクションを暗号独立型の結果トランザクションに変換する第２のラップされた暗号ブロック
を備えたシステム。
【請求項４】
請求項３のシステムであって、さらに、
暗号独立型の暗号化トランザクションを受信して暗号独立型の暗号化トランザクションを前記第１のラップされた暗号ブロック及び前記第２のラップされた暗号ブロックに送る入力スイッチ
を備えたシステム。
【請求項５】
請求項４のシステムであって、さらに、
第１のラップされた暗号ブロックから暗号独立型の結果トランザクションを受信して前記第１のラップされた暗号ブロックに関連する暗号独立型の結果トランザクションを前記第１の出力ＦＩＦＯに送り、前記第２のラップされた暗号ブロックに関連する暗号独立型の結果トランザクションを第２の出力ＦＩＦＯに送る出力スイッチ
を備えたシステム。
【請求項６】
請求項５のシステムであって、さらに、
前記入力スイッチ及び前記出力スイッチを制御するディスパッチユニット
を備えたシステム。
【請求項７】
請求項６のシステムにおいて、前記ディスパッチユニットが、前記第１の暗号ハードウェア及び前記第２の暗号ハードウェアが並行して暗号化機能を実行するように、前記入力スイッチ、前記出力スイッチ、前記第１のラップされた暗号ブロック及び前記第２のラップされた暗号ブロックを制御する、システム。
【請求項８】
請求項３のシステムにおいて、前記第１の暗号ハードウェア及び前記第２の暗号ハードウェアが第１の暗号を実施する、システム。
【請求項９】
請求項３のシステムにおいて、前記第１の暗号ハードウェアが第１の暗号を実施し、前記第２の暗号ハードウェアが第２の暗号を実施する、システム。
【請求項１０】
暗号化サービスを提供する方法であって、
暗号独立型の暗号化トランザクションを受信するステップ、
前記暗号独立型の暗号化トランザクションを第１の暗号ハードウェアを含む第１のラップされた暗号ブロック内に受信するステップ、
前記暗号独立型の暗号化トランザクションを第１の暗号依存型のトランザクションに変換するステップ、
第１の暗号依存型のトランザクションを前記第１の暗号ハードウェアに送るステップ、
前記第１の暗号ハードウェアから受信された第１の暗号依存型の結果トランザクションを暗号独立型の結果トランザクションに変換するステップ、及び
前記暗号独立型の結果トランザクションを第１の出力ＦＩＦＯ内に受信するステップ
を備える方法。
【請求項１１】
請求項１０の方法において、第１の暗号依存型のトランザクションを送る前記ステップが、暗号依存型のタイミングを使用して前記第１の暗号依存型のトランザクションを前記第１の暗号ハードウェアに送る、方法。
【請求項１２】
請求項１０の方法であって、
暗号独立型の暗号化トランザクションを第２の暗号ハードウェアを含む第２のラップされた暗号ブロック内に受信するステップ、
前記暗号独立型の暗号化トランザクションを第２の暗号依存型のトランザクションに変換するステップ、
第２の暗号依存型のトランザクションを前記第２の暗号ハードウェアに送るステップ、及び
前記第２の暗号ハードウェアから受信された第２の暗号依存型の結果トランザクションを暗号独立型の結果トランザクションに変換するステップ
を備える方法。
【請求項１３】
請求項１２の方法において、前記第１の暗号ハードウェア及び前記第２の暗号ハードウェアが並行して暗号化機能を実行する、方法。
【請求項１４】
請求項１０の方法において、前記暗号独立型の暗号化トランザクションがタイミング情報を伴わずに特定される、方法。
【請求項１５】
請求項１２の方法において、前記第１の暗号ハードウェア及び前記第２の暗号ハードウェアが第１の暗号を実施する、方法。
【請求項１６】
請求項１２の方法において、前記第１の暗号ハードウェアが第１の暗号を実施し、前記第２の暗号ハードウェアが第２の暗号を実施する、方法。
【請求項１７】
請求項１６の方法であって、前記第１の暗号ハードウェア及び前記第２の暗号ハードウェアが異なるタイミング要件を有する、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
この出願は、２００９年２月２６日に出願され、その開示全体が、本出願が開示及び教示するものすべてに関して参照により本明細書に明確に組み込まれている「Ｃｉｐｈｅｒ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｉｎｔｅｒｆａｃｅ  ｆｏｒ  Ｃｒｙｐｔｏｇｒａｐｈｉｃ  Ｈａｒｄｗａｒｅ  Ｓｅｒｖｉｃｅ」という表題の米国仮出願第６１／１５５，８６４号に基づき当該仮出願の利益を主張する。
【背景技術】
【０００２】
現代の特定用途向け集積回路（ＡＳＩＣ）はますます増大する機能を集積する。これらのいわゆるシステムオンチップ（ｓｙｓｔｅｍ−ｏｎ−ａ−ｃｈｉｐ）はコンピュータ又はその他の電子システムの多くの構成要素を単一の集積回路内に組み込む。システムオンチップ設計の１つの利点は、システムオンチップ設計が通常、システムオンチップが取って代わるマルチチップシステムよりも少ない電力を消費し、低いコストを有する点である。さらに、所与のシステム内により少ないパッケージが存在するため、システムオンチップはシステムの生産コスト全体を低減するのに役立つ。
【０００３】
システムオンチップ内に組み込まれる機能のいくつかは、グラフィック、イーサネット（登録商標）媒体アクセス制御層（ＭＡＣ）、ユニバーサルシリアルバス（ＵＳＢ）、メモリコントローラ、及びその他の特定用途論理を含む。ＡＳＩＣ内に組み込まれることが可能な別の演算集約的な機能はハードウェア暗号化（ｃｒｙｐｔｏｇｒａｐｈｉｃ）機能ブロックである。様々なアプリケーションに関して、現代のＡＳＩＣ内の暗号化モジュールはますますユビキタスになっている。
【０００４】
通常、これらの暗号化モジュールは異なる標準をサポートする。これらの暗号化モジュールは通常、異なるインターフェースを使用する。特に、これらの暗号化モジュールは、多くの場合、入力情報／出力情報に関して非常に特定かつ正確なタイミングスケジュールも要求する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国仮出願第６１／１５５，８６４号
【発明の概要】
【課題を解決するための手段】
【０００６】
従って、本発明の実施形態は、暗号（ｃｉｐｈｅｒ）独立型の暗号化トランザクションを受信する複数の入力スロット、暗号独立型の暗号化トランザクションを受信して第１の暗号依存型のトランザクションを第１の暗号ハードウェアに送る前記第１の暗号ハードウェアを含む第１のラップされた（ｗｒａｐｐｅｄ）暗号ブロックであって、前記暗号独立型の暗号化トランザクションを前記第１の暗号依存型のトランザクションに変換して前記第１の暗号ハードウェアから受信された第１の暗号依存型の結果トランザクションを暗号独立型の結果トランザクションに変換する第１のラップされた暗号ブロック、及び前記第１のラップされた暗号ブロックに関連する前記暗号独立型の結果トランザクションを受信する複数のスロットを有する第１の出力ＦＩＦＯを備えた暗号化ハードウェアシステムを備え得る。
【０００７】
従って、本発明の実施形態は、暗号化サービスを提供する方法であって、暗号独立型の暗号化トランザクションを受信すること、前記暗号独立型の暗号化トランザクションを第１の暗号ハードウェアを含む第１のラップされた暗号ブロック内に受信すること、前記暗号独立型の暗号化トランザクションを第１の暗号依存型のトランザクションに変換すること、第１の暗号依存型のトランザクションを前記第１の暗号ハードウェアに送ること、前記第１の暗号ハードウェアから受信された第１の暗号依存型の結果トランザクションを暗号独立型の結果トランザクションに変換すること、及び前記暗号独立型の結果トランザクションを第１の出力ＦＩＦＯ内に受信することを備える方法をさらに備える。
【図面の簡単な説明】
【０００８】
【図１】暗号化ハードウェアシステムのブロック図である。
【図２】暗号化ハードウェアサービスを提供する方法の流れ図である。
【図３】暗号化ハードウェアシステムを操作する方法の流れ図である。
【図４】暗号固有のトランザクションフォーマット及びタイミングから、スーパー言語（Ｓｕｐｅｒ  Ｌａｎｇｕａｇｅ）でタイミング独立型のトランザクションを導出する例を示す図である。
【図５】入力ＦＩＦＯに関する例示的なスーパー言語のビットレベル記述を示す図である。
【図６】出力ＦＩＦＯに関する例示的なスーパー言語のビットレベル記述を示す図である。
【発明を実施するための形態】
【０００９】
図１は、暗号化ハードウェアシステムのブロック図である。暗号化ハードウェア１００は入力スロット１１０、入力スロット１１１、入力スロット１１２、入力スイッチ１１５、ディスパッチ１２０、ラップされた暗号ブロック１３０、ラップされた暗号ブロック１３１、出力スイッチ１４０、出力ＦＩＦＯ１５０、出力ＦＩＦＯ１５１及び出力ＦＩＦＯ１５２を備える。ラップされた暗号ブロック１３０は、入力変換装置（ｔｒａｎｓｌａｔｏｒ）１３０−１、暗号ハードウェア１３０−２、出力変換装置１３０−３及び制御１３０−４を含む。ラップされた暗号ブロック１３１は、入力変換装置１３１−１、暗号ハードウェア１３１−２、出力変換装置１３１−３及び制御１３１−４を含む。暗号化ハードウェア１００の要素のそれぞれは、暗号化ハードウェア１００のその他の要素のそれぞれに動作可能に結合される。
【００１０】
図１に示すように、入力スロット１１０〜１１２はコマンド及びデータを受信するためのシステムに動作可能に結合される。入力スロット１１０〜１１２はディスパッチ１２０に動作可能に結合される。入力スロット１１０〜１１２は、入力スイッチ１１５に動作可能に結合される。入力スイッチ１１５はディスパッチ１２０に動作可能に結合される。入力スイッチ１１５はラップされた暗号ブロック１３０及びラップされた暗号ブロック１３１に動作可能に結合される。特に、入力スイッチ１１５は入力変換装置１３０−１及び入力変換装置１３１−１に動作可能に結合される。従って、入力スロット１１０〜１１２内に配置された暗号化トランザクションは、ラップされた暗号ブロック１３０、ラップされた暗号ブロック１３１、又は追加のラップされた暗号ブロック（図示せず）に経路選択され得る。実施形態では、入力スイッチ１１５はクロスポイントスイッチであってよく、又はその他のＮ個×Ｍ個のポートの経路選択デバイスであってよく、この場合、Ｎは入力ポートの数であり、Ｍは出力ポートの数である。Ｎは通常、入力スロット１１０〜１１２の数に対応することになる。Ｍは通常、ラップされた暗号ブロック１３０〜１３１の数に対応することになる。
【００１１】
出力ＦＩＦＯ１５０〜１５２は結果及び／又はメッセージを送るためのシステムに動作可能に結合される。出力ＦＩＦＯ１５０〜１５２は出力スイッチ１４０に動作可能に結合される。出力ＦＩＦＯ１５０〜１５２はディスパッチ１２０に動作可能に結合される。出力スイッチ１４０はディスパッチ１２０に動作可能に結合される。ラップされた暗号ブロック１３０〜１３１は出力スイッチ１４０に動作可能に結合される。特に、出力スイッチ１４０は出力変換装置１３０−３及び出力変換装置１３１−３に動作可能に結合される。従って、ラップされた暗号ブロック１３０〜１３１によって生み出された暗号化の結果トランザクションは出力ＦＩＦＯ１５０〜１５２のうちのいずれかに経路選択されることが可能である。実施形態では、出力スイッチ１４０はクロスポイントスイッチであってよく、又はその他のＭ個×Ｑ個のポートの経路選択デバイスであってよく、この場合、Ｍは入力ポートの数であり、Ｑは出力ポートの数である。Ｍは通常、ラップされた暗号ブロック１３０〜１３１の数に対応することになる。Ｑは通常、出力ＦＩＦＯ１５０〜１５２の数に対応することになる。
【００１２】
入力変換装置１３０−１は暗号ハードウェア１３０−２に動作可能に結合される。暗号ハードウェア１３０−２は出力変換装置１３０−３に動作可能に結合される。入力変換装置１３０−１、暗号ハードウェア１３０−２及び出力変換装置１３０−３はすべて、制御１３０−４に動作可能に結合される。従って、制御１３０−４は入力変換装置１３０−１、暗号ハードウェア１３０−２及び出力変換装置１３０−３の動作並びにデータ入力及びデータ出力を管理することが可能である。制御１３０−４及び入力変換装置１３０−１は、暗号依存型のタイミングを使用して、暗号依存型のトランザクションを暗号ハードウェア１３０−２に送るために協働することが可能である。即ち、制御１３０−４及び入力変換装置１３０−１は、データ信号及び制御信号をある形態でかつ暗号ハードウェア１３０−２によって要求されるタイミングを用いて、暗号ハードウェア１３０−２に送るために協働することが可能である。
【００１３】
入力変換装置１３１−１は暗号ハードウェア１３１−２に動作可能に結合される。暗号ハードウェア１３１−２は出力変換装置１３１−３に動作可能に結合される。入力変換装置１３１−１、暗号ハードウェア１３１−２及び出力変換装置１３１−３はすべて、制御１３１−４に動作可能に結合される。従って、制御１３１−４は入力変換装置１３１−１、暗号ハードウェア１３１−２及び出力変換装置１３１−３の動作並びにデータ入力及びデータ出力を管理することが可能である。制御１３１−４及び入力変換装置１３１−１は、暗号依存型のタイミングを使用して、暗号依存型のトランザクションを暗号ハードウェア１３１−２に送るために協働することが可能である。即ち、制御１３１−４及び入力変換装置１３１−１は、データ信号及び制御信号をある形態でかつ暗号ハードウェア１３１−２によって要求されるタイミングを用いて、暗号ハードウェア１３１−２に送るために協働することが可能である。
【００１４】
実施形態では、入力スロット１１０〜１１２は入力ＦＩＦＯを含み得る。これらの入力ＦＩＦＯはシステムから暗号独立型の暗号化トランザクションを受信することが可能である。加えて、入力スロット１１０〜１１２は、まだ開始されていない暗号化トランザクションに対する優先順位を受信及び／又は演算することが可能である。複数の入力スロット１１０〜１１２が存在するため、複数のラップされた暗号ブロック１３０〜１３１は並行してかつ独立してアクセスされ得る。並行して、かつ独立して実行され得る複数のトランザクションの数は、入力スロット１１０〜１１２内のＦＩＦＯの数及びラップされた暗号ブロック１３０〜１３１の数によって限定される。従って、ラップされた暗号ブロック１３０は、ラップされた暗号ブロック１３１が暗号独立型の暗号化トランザクションを入力スロット１１２から受信及び処理しているのと同時に、入力スロット１１０から暗号独立型の暗号化トランザクションを受信及び処理していることが可能である。
【００１５】
ディスパッチ１２０は、どのラップされた暗号ブロック１３０〜１３１とどの出力ＦＩＦＯ１５０〜１５２とが使用中であるかを知ることができる。ディスパッチ１２０は、入力スロット１１０〜１１２、ラップされた暗号ブロック１３０〜１３１及び出力ＦＩＦＯ１５０〜１５２の間の対応関係を知ることができる。従って、ディスパッチ１２０は、入力スイッチ１１５及び出力スイッチ１４０を制御することが可能である。ディスパッチ１２０は、開始する目的で暗号化トランザクションを選択するため、及び暗号化の結果トランザクションを受信する目的で出力ＦＩＦＯ１５０〜１５２を割り当てるためにも入力スロット１１０〜１１２を観察することが可能である。
【００１６】
入力スイッチ１１５は、入力スロット１１０〜１１２及びラップされた暗号ブロック１３０〜１３１の間の接続を提供する。入力スイッチ１１５はラップされた暗号ブロック１３０〜１３１から状態信号を受信することも可能である。例えば、入力スイッチ１１５は制御１３０−４及び制御１３１−４からトランザクション完了指示子を受信することが可能である。それに応じて、入力スイッチ１１５は入力スロット１１０〜１１２が再使用され得るという指示子をディスパッチ１２０に送ることができる。
【００１７】
ラップされた暗号ブロック１３０〜１３１は、それぞれの特定の暗号ハードウェア１３０−２及び１３１−２に対して個々に開発され得る。ラップされた暗号ブロック１３０〜１３１は均一のデータ及び信号インターフェースを提供する。この均一のデータ及び信号インターフェースは入力と出力の両方の上に標準のＦＩＦＯのようなインターフェースを備え得る。この標準のインターフェースは、暗号独立型の暗号トランザクションが入力スロット１１０〜１１２内に配置され、ラップされた暗号ブロック１３０〜１３１によって実行される暗号機能（例えば、暗号化コード）を決定する基礎となる暗号ハードウェア１３０−２及び１３１−２に関係なく、ラップされた暗号ブロック１３０〜１３１に経路選択されることを可能にする。
【００１８】
実施形態では、基礎となる暗号ハードウェア１３０−２及び１３１−２は異なる暗号を実施することが可能であり、又は同じ暗号を実施することも可能である。加えて、暗号ハードウェア１３０−２及び１３１−２は異なるタイミング要件を有する可能性がある。しかし、入力スロット１１０〜１１２内のＦＩＦＯ、及び出力ＦＩＦＯ１５０〜１５２は、暗号独立型の暗号化トランザクション及び暗号独立型の結果トランザクションが暗号ハードウェア１３０−２及び１３１−２の入力要件並びにタイミング要件に関係なくそれぞれ入力スロット１１０〜１１２及び出力ＦＩＦＯ１５０〜１５２に書き込まれ、入力スロット１１０〜１１２及び出力ＦＩＦＯ１５０〜１５２から読み取られることを可能にする。
【００１９】
制御１３０−４及び１３１−４はそれぞれ暗号ハードウェア１３０−２及び１３１−２を制御する。制御１３０−４及び１３１−４は、暗号独立型の暗号化トランザクションを暗号ハードウェア１３０−２及び１３１−２が理解することが可能な形態並びにタイミングに処理するために、入力変換装置１３０−１及び１３１−１も制御する。制御１３０−４及び１３１−４は、暗号ハードウェア１３０−２及び１３１−２から受信された暗号依存型の結果を出力ＦＩＦＯ１５０〜１５２並びに当該システムの残りの部分が理解することが可能な暗号独立型の形態及びタイミングに処理するために、出力変換装置１３０−３及び１３１−３も制御する。
【００２０】
入力スイッチ１４０は出力ＦＩＦＯ１５０〜１５２及びラップされた暗号ブロック１３０〜１３１の間の接続を提供する。出力ＦＩＦＯ１５０〜１５２は出力スイッチ１４０を経由してラップされた暗号ブロック１３０〜１３１から暗号独立型の結果トランザクションを受け入れる。出力ＦＩＦＯ１５０〜１５２は当該出力ＦＩＦＯ１５０〜１５２が一杯である、又はほぼ一杯であるという表示を提供することも可能である。この表示は、出力スイッチ１４２によって、ラップされた暗号ブロック１３０〜１３１に中継され得る。この表示は暗号ハードウェア１３０−２及び１３１−２が実行するのを停止させることができる。暗号ハードウェア１３０−２及び１３１−２を停止することによって、出力ＦＩＦＯ１５０〜１５２がオーバーフローするのを防ぐ。
【００２１】
前述の暗号化ハードウェア１００は、複数の暗号化トランザクションを並行して実行することが可能な複数のＩ／Ｏチャネルを提供する。暗号独立型の暗号化トランザクションを受信するＦＩＦＯベースの入力スロット１１０〜１１２を使用することによって、詳細な時間スケジューリング及びデータフォーマッティングは不要である。暗号独立型の暗号化トランザクションはすべての暗号並びに暗号ハードウェア１３０−２及び１３１−２に均一のインターフェースを提供する。これにより、入力スロット１１０が暗号独立型の暗号化トランザクションをラップされた暗号ブロック１３０に提供していて、それらの結果が出力ＦＩＦＯ１５０内に配置されている間に入力スロット１１１は暗号独立型の暗号化トランザクションをラップされた暗号ブロック１３１に同時に提供していて、それらの結果が出力ＦＩＦＯ１５２内に配置されることが可能である。実施形態では、この均一のインターフェースは８ビットの制御及び６４ビットのデータを備え得る。
【００２２】
暗号化ハードウェア１００は、付加された暗号ブロックの全域での均一のインターフェース、それぞれの個々の暗号のパラメータ、入力チャネル／出力チャネルの数、ＦＩＦＯのサイズ、及び暗号及びＦＩＦＯの間のトポロジー（即ち、専用接続／共有接続／混合接続）を提供する。加えて、暗号独立型の暗号化トランザクションは、バイナリ言語又はニーモニック言語で表現され得る。提案されるアーキテクチャ及び技術的解決策は、非常に好都合で、柔軟性があり、また組み合わせ安いことも推定される。
【００２３】
業界において、全面的にハードウェアの形で利用可能な組み合わされた暗号サービスを提供する、かかる暗号化モジュールはほんのわずかしか存在しない点に留意されたい。非常に競争的な暗号ライブラリブロックと組み合わせて、暗号化ハードウェア１００は、その両方が開発のために存在し、かつ開発が計画される増大するデータ保護市場の獲得及び様々なアプリケーションに対するセキュリティ需要に対する契機契機が得られることを可能にする。
【００２４】
暗号化ハードウェア１００のこのアーキテクチャは暗号ブロックのためのドロップイン解決策をサポートする。ディスパッチャ１２０は並行トランザクションのための柔軟性のあるマルチストリーム入力チャネル／出力チャネルを可能にする。ディスパッチャ１２０はトランザクション優先順位、デッドロック・ハンドリング、マルチスレッド及び取消しをサポート及び処理する。
【００２５】
暗号化ハードウェア１００の複雑な構造の開発は、包括的なデバッグ及びテストシステムの確立を要求する可能性がある。従って、内蔵型のテスト能力、デバッグサポート能力、エラー検出能力及びエラー回復能力が提供される。
【００２６】
提案される暗号化ハードウェア１００のこのアーキテクチャ及びハードウェア実装は、様々なハードウェアアプリケーション及び／若しくはハードウェアプロトコル並びに／又はファームウェアアプリーション及び／若しくはファームウェアプロトコルのために、複数の組み合わされた暗号サービスを提供する。サポートされる暗号サービスは、いわゆるプレイングカード（Ｐｌａｙｉｎｇ  ｃａｒｄ）によって均一のスーパー言語で好都合かつ容易に表現され得る。プレイングカードは暗号ジョブ記述にとって本質的に好都合なテンプレートである。
【００２７】
ガロ・カウンタ・モード（ＧＣＭ）の形でＡＥＳ暗号を実施している暗号ハードウェア１００を駆動するために使用され得る暗号独立型の暗号化トランザクションの例が表１に提示される。これは、入力変換装置１３０−１及び１３１−１によって受信され得るデータの例である。表１において、それぞれのセミコロン（「；」）はクロック周期を示す点に留意されたい。従って、例えば、ＢＥＧＩＮ＿ＴＲＡＮＳ及び第１のＳＥＮＤ＿ＫＥＹ＿０トランザクションの間には、１クロック周期だけが存在する。
【表１】
2012519414.tif 000003
【００２８】
ガロ・カウンタ・モード（ＧＣＭ）の形でＡＥＳ暗号を実施する暗号ハードウェアを駆動する（ニーモニック形態の）暗号依存型のトランザクションの例が表２に提示される。これは、暗号独立型の暗号化トランザクションが入力変換装置１３０−１及び１３１−１によって変換された後で、暗号ハードウェア１３０−２及び１３１−２によって受信され得るデータの例である。表２では、それぞれのセミコロン「；」はクロック周期を示す点に留意されたい。従って、例えば、ｓａｖｅ＿ｋｅｙ及び第１のｍａｋｅ＿ｍａｓｋトランザクションの間には１５クロック周期が存在する。従って、入力変換装置１３０−１及び１３１−１によって実行される変換はビットフォーマット及び時間の両方において変換を行うように機能する。同様に、出力変換装置１３０−３及び１３１−３はビットフォーマット及び時間の両方において暗号ハードウェア１３０−２並びに１３１−２の出力を変換するように機能し得る。
【表２】
2012519414.tif 000004
【００２９】
図２は、ハードウェア暗号化サービスを提供する方法の流れ図である。図２に示されるステップは暗号化ハードウェア１００の１つ又は複数の要素によって実行され得る。暗号独立型の暗号化トランザクションが受信される（２０２）。例えば、入力スロット１１０は暗号独立型の暗号化トランザクションを受信することが可能である。入力スロット１１０は暗号独立型の暗号化トランザクションをＦＩＦＯ内に受信することが可能である。暗号独立型の暗号化トランザクションは暗号ハードウェアを含むラップされた暗号ブロック内に受信される（２０４）。例えば、ラップされた暗号ブロック１３０は入力スイッチ１１５を経由して入力スロット１１０から暗号独立型の暗号化トランザクションを受信することが可能である。ラップされた暗号ブロック１３０は暗号ハードウェア１３０−２を含み得る。
【００３０】
暗号独立型の暗号化トランザクションは暗号依存型のトランザクションに変換される（２０６）。例えば、入力変換装置１３０−１は暗号独立型の暗号化トランザクションを暗号ハードウェア１３０−２に適した暗号依存型のトランザクションに変換する。実施形態では、暗号独立型の暗号化トランザクションから暗号依存型の暗号化トランザクションへのこの変換は、形態、フォーマット、ビット順序、コマンドシーケンス、及び／又はタイミングの変換を含み得る。即ち、入力変換装置１３０−１は入力スロット１１０内に記憶され、かつ入力スロット１１０から受信された暗号独立型の暗号化トランザクションを、暗号ハードウェア１３０−２を駆動するのに適切なデータ信号及び制御信号に変換するために任意の形態の状態機械又はその他の論理を実施する。
【００３１】
暗号依存型のトランザクションが暗号ハードウェアに送られる（２０８）。例えば、入力変換装置１３０−１からの暗号依存型のトランザクション及び制御１３０−４からの制御信号は暗号ハードウェア１３０−２に送られることが可能である。これらの暗号依存型のトランザクション及び制御信号は暗号ハードウェアにその暗号機能を実行させることが可能である。これらの暗号機能は暗号ハードウェアに暗号依存型の結果を生み出させることが可能である。これらの暗号依存型の結果は暗号依存型の結果トランザクション及び／又は制御信号を含んでよく、又は暗号依存型の結果トランザクション及び／又は制御信号であり得る。
【００３２】
暗号ハードウェアから受信された暗号依存型の結果トランザクションは暗号独立型の結果トランザクションに変換される（２１０）。例えば、出力変換装置１３０−３は暗号ハードウェア１３０−２から受信された暗号依存型の結果トランザクションを暗号独立型の結果トランザクションに変換することが可能である。暗号独立型の結果トランザクションは出力ＦＩＦＯ内に受信される（２１２）。例えば、出力ＦＩＦＯ１５０は出力スイッチ１４０を経由して出力変換装置１３０−３から暗号独立型の結果トランザクションを受信することが可能である。
【００３３】
図３は暗号化ハードウェアシステムを操作する方法の流れ図である。図３に例示されたステップは暗号化ハードウェア１００の１つ又は複数の要素によって実行され得る。ジョブ要求は入力スロット内に配置される（３０２）。例えば、暗号独立型のジョブ要求は入力スロット１１０内に配置され得る。ディスパッチユニットは開始ラベル及び現在の優先順位を受信する（３０４）。例えば、ディスパッチ１２０は入力スロット１１０から開始信号及び優先順位の指示子を受信することが可能である。
【００３４】
このディスパッチユニットは入力スイッチ及び出力スイッチを構成する（３０６）。例えば、ディスパッチ１２０は入力スロット１１０からラップされた暗号ブロック１３０に暗号独立型の暗号化トランザクションを経路選択するように入力スイッチ１１５を構成することが可能である。ディスパッチ１２０はラップされた暗号ブロック１３０から出力ＦＩＦＯ１５０に暗号独立型の結果トランザクションを経路選択するように出力スイッチ１４０を構成することが可能である。
【００３５】
ラップされた暗号ブロック制御は開始信号を受信する（３０８）。例えば、制御１３０−４は、制御１３０−４が開始信号と解釈することになる「開始」トランザクションを受信することが可能である。入力変換装置は受信された暗号独立型のトランザクションを暗号依存型のトランザクションに変換して、それらの暗号依存型のトランザクションを暗号ハードウェアに送る（３１０）。例えば、制御１３０−４は読取り要求を入力スロット１１０に送ることが可能である。これは、暗号独立型の暗号化トランザクションを入力スロット１１０から入力変換装置１３０−１に送らせることができる。入力変換装置１３０−１は、次に、受信された暗号独立型のトランザクションを暗号依存型のトランザクションに変換する。これらの暗号依存型のトランザクション及び／又は制御信号は暗号ハードウェア１３０−２に送られることが可能である。
【００３６】
暗号ハードウェアは暗号機能を実行する（３１２）。例えば、暗号ハードウェア１３０−２は暗号機能を実行することが可能である。例では、暗号ハードウェアはＡＥＳ、ＴＤＥＳ、Ｋａｓｕｍｉ、ＳＨＡ、ＲＳＡ／ＥＣＣ又は別の暗号機能を実行することが可能である。出力変換装置は、受信された暗号依存型のトランザクションを暗号独立型のトランザクションに変換して、これらの暗号独立型のトランザクションを出力ＦＩＦＯに送る（３１４）。例えば、出力変換装置１３０−３は、暗号ハードウェア１３０−２から受信された暗号依存型の結果トランザクション及び／又は制御信号を暗号独立型の結果トランザクションに変換することが可能である。これらの暗号独立型の結果トランザクションは出力スイッチ１４０を経由して出力ＦＩＦＯ１５０に送られることが可能である。
【００３７】
暗号ハードウェアは完了信号を送る（３１６）。例えば、暗号ハードウェア１３０−２は、暗号依存型のトランザクション又はその暗号依存型のトランザクションが完了したことを示す制御信号を送ることが可能である。ディスパッチユニットは入力スイッチ及び出力スイッチの接続を断つ（３１８）。例えば、ディスパッチ１２０はラップされた暗号ブロック１３０から入力スロット１１０の接続を断つように入力スイッチ１１５に命令することができる。ディスパッチ１２０はまた出力ＦＩＦＯ１５０からラップされた暗号ブロック１３０の接続を断つように出力スイッチ１４０に命令することもできる。実施形態ではディスパッチ１２０に送られる２つの指示子が存在し得る。第１の指示子は、最後の暗号独立型の暗号化トランザクションが入力変換装置に送られるときに送られることになる。その時点で、ディスパッチ１２０は、より多くの暗号独立型の暗号化トランザクションを受信するために入力スロットを開放することが可能である。第２の指示子は最後の暗号独立型の結果トランザクションが出力変換装置を出たときに送られることになる。
【００３８】
実施形態では、特定の暗号／ハッシャに関係するトランザクションはサポートされるプレイングカードに準拠する。不一致はエラーを引き起こす。即ち、制御１３０−４又は１３１−４はエラー状態（ＥＲＲ）になり、エラー出力信号が発行され得る。エラー状態から機能を回復するために取消し入力信号が送られる必要がある。これは、暗号化ハードウェア１００に以下を行わせる。即ち、（１）現在のトランザクションデータの残りを入力スロット１１０〜１１２内の入力ＦＩＦＯから除去し、（２）「中断／取消し」の組合せ（例えば、有効＝１、無効＝０、開始＝１）をラップされた暗号ブロック１３０〜１３１に送ることである。ラップされた暗号ブロック１３０〜１３１は、（１）ＥＲＲ＿ＥＮＤ＿ＴＲＡＮＳブロックを出力ＦＩＦＯ１５０〜１５２内に送ってＤＯＮＥ＿ＷＲＩＴＥ信号を発行し、（２）暗号ハードウェア１３０−２  １３１−２を新しいトランザクションの処理を開始する準備が整った開始状態に設定し、（３）制御１３０−４  １３１−４の内部状態をその初期状態に変更する。
【００３９】
個々の暗号ハードウェアユニットは非常に複雑なＩ／Ｏインターフェースフォーマット及びタイミングスケジュールを使用することが可能である。この例は、表３の第１の列に提示される。実施形態では、データフローはタイミングスケジュールなしにＦＩＦＯを経由して送られた６４ビットのブロックの点から説明される。これらはオプコード及び少数のフラッグ（例えば、最後＝｛０，１｝又はサイズ＝｛１．．８｝）を含む８ビットの制御信号を介してマークアップ言語でフォーマットされ得る。入力ＦＩＦＯ及び出力ＦＩＦＯに関するこのマークアップの例は表３の第３及び第４の列に提示される。
【表３】
2012519414.tif 000005
【００４０】
表３において、ＢＥＧＩＮ＿ＴＲＡＮＳ及びＥＮＤ＿ＴＲＡＮＳ（並びに、それらのエラー変形）は、２つの特別なコマンド、即ち、トランザクション「ラップすること」、並びに、トランザクションを一般的な用語で定義することである。これらのトランザクションは以下の引数を有する。即ち、（１）Ｉｄ。特定のトランザクションに関連するユーザ定義された整数、（２）優先順位。当該トランザクションに関連するユーザ定義された整数、（３）状況。暗号を定義する事前に定義された整数、（４）パラメータ。特定の暗号モード（例えば、暗号化と復号モードの関係、タグが生成されなければならない、など）を特定する事前に定義された整数（又は制御ビットのセット）である。
【００４１】
実施形態では、暗号のすべてのタイプの入力データは、６４ビットのブロックに分割される。これらのブロックは、３つのタイプの区分に分類され得る。即ち、（１）ＳＥＮＤ＿ＫＥＹ区分、（２）ＳＥＮＤ＿ＩＶ区分、（３）ＳＥＮＤ＿ＤＡＴＡ区分である。それぞれのタイプは４つの個々の変形によって表現され得る。これらのタイプは、例えば、マスタキー及び二次キーを特定するときに使用され得る。例えば、これらの変形の例は、（１）ＳＥＮＤ＿ＫＥＹ＿０区分、（２）ＳＥＮＤ＿ＫＥＹ＿１区分、（３）ＳＥＮＤ＿ＫＥＹ＿２区分、及び（４）ＳＥＮＤ＿ＫＥＹ＿３区分である。
【００４２】
これらの区分／変形を符号化するために、我々は８ビットのコマンドバスの４個の最下位のビットを使用する。即ち、オプコード＝コマンド［３：０］である（ＢＥＧＩＮ＿ＴＲＡＮＳ及びＥＮＤ＿ＴＲＡＮＳに関するコードは同じコードスペースを共有することができる）。区分のセット及び区分の順序は状況に依存する。通常、この状況は、使用される区分のセット及び区分の順序の両方を厳密に特定する。それぞれの区分内の最後のコマンドは、「最後＝１」など、特別なフラッグによって印されることが可能であり、従って、すべてのその他のコマンドは「最後＝０」を有さなければならない。この「最後の」ビットはコマンド［４］である。「ａｕｘ」（ａｕｘ＝コマンド［７：５］）と名づけられた３個の最上位のビットが符号長に対して使用され得る。例えば、不完全なデータブロックをバイト粒度で送っている場合、０は完全な８バイトのデータを意味し、ｎ（この場合、ｎ＝１，２，．．．，７）はｎバイトの不完全なデータを意味する。デフォルトによって、これらは最上位のバイトとなり得る。
【００４３】
図４は暗号固有のトランザクションフォーマット及びタイミングからスーパー言語でタイミング独立型のトランザクションを導出する例である。図４において、コマンドフロー状態図は暗号固有のトランザクションフォーマット及びタイミングから導出される。制御状態図はコマンドフロー状態図から導出される。最終的に、スーパー言語（「プレイングカード」）でタイミング独立型のトランザクションがフロー状態図から導出される。
【００４４】
図５は入力スロット１１０〜１１２のＦＩＦＯに関する例示的なスーパー言語のビットレベル記述を示す。図５において、ＢＥＧＩＮ＿ＥＲＲ＿ＴＲＡＮ及びＢＥＧＩＮ＿ＴＲＡＮの場合、ＸＸＸとして示される３個の最下位のビット（ＬＳＢ）は未使用である。Ｅとして示される最上位のビットはＢＥＧＩＮ＿ＥＲＲ＿ＴＲＡＮに関して１に設定される。ＢＥＧＩＮ＿ＥＲＲ＿ＴＲＡＮＳ及びＢＥＧＩＮ＿ＴＲＡＮに関するオプコードは０００１である。ＳＥＮＤ＿ＫＥＹ＿ＮＮ、ＳＥＮＤ＿ＩＶ＿ＮＮ、及びＳＥＮＤ＿ＤＡＴＡ＿ＮＮに関するオプコードは、それぞれ０１ＮＮ、１０ＮＮ、及び１１ＮＮである。ＮＮは２進法で０、１、２又は３を示す。従って、例えば、ＳＥＮＤ＿ＤＡＴＡ＿０１は１１０１になる。Ｌビットは「最後の」フラッグを表す。ＳＳＳは不完全なデータ長の符号化のために使用され得る３個のビットを示す。ＥＮＤ＿ＴＲＡＮ、及びＥＮＤ＿ＥＲＲ＿ＴＲＡＮに関するオプコードは００１０である。Ｅビット（エラーフラッグ）はＥＮＤ＿ＴＲＡＮに関して０に設定され、ＥＮＤ＿ＥＲＲ＿ＴＲＡＮに関して１に設定される。
【００４５】
図６は出力ＦＩＦＯ１５０〜１５２に関する例示的なスーパー言語のビットレベル記述を示す。図６において、ＢＥＧＩＮ＿ＥＲＲ＿ＴＲＡＮ及びＢＥＧＩＮ＿ＴＲＡＮの場合、ＸＸＸとして示される３個の最下位のビット（ＬＳＢ）は未使用である。Ｅとして示される最上位のビットはＢＥＧＩＮ＿ＥＲＲ＿ＴＲＡＮに関して１に設定される。ＢＥＧＩＮ＿ＥＲＲ＿ＴＲＡＮ及びＢＥＧＩＮ＿ＴＲＡＮに関するオプコードは０００１である。結果及びタグに関するオプコードは、それぞれ１１ＺＺ及び１０ＺＺである。ＺＺは２進法で０、１、２、又は３を示す。オプコードの最初の２個のビットと共に、ＺＺビットはブロックタイプ（例えば、結果、タグ、ハッシュ、など）を示す。Ｌビットは「最後の」フラッグを表す。ＳＳＳは不完全なデータ長の符号化のために使用され得る３個のビットを示す。ＥＮＤ＿ＴＲＡＮ、及びＥＮＤ＿ＥＲＲ＿ＴＲＡＮに関するオプコードは００１０である。Ｅビット（エラーフラッグ）はＥＮＤ＿ＴＲＡＮに関して０に設定され、ＥＮＤ＿ＥＲＲ＿ＴＲＡＮに関して１に設定される。
【００４６】
スーパー言語、プレイングカード、及び暗号化ハードウェア１００の動作の概念をさらに例示するために、以下は、３つの異なる形態、即ち、（ａ）「数理」言語で、即ち、ＧＣＭ−ＡＥＳ標準の点から、（ｂ）ＧＣＭ−ＡＥＳコアに関するプロトコルの「固有の」ニーモニックフォーマットで、（ｃ）ＧＣＭ−ＡＥＳ暗号化機能ユニット（ＣＦＵ）向けの対応するトランザクションのスーパー言語のニーモニックフォーマットで、サンプルのＧＣＭ−ＡＥＳトランザクションを提示する。これらのトランザクションは、それぞれ表４、表５及び表６に示される。留意すべき（ｂ）及び（ｃ）の間の差は、（ｂ）において、プロトコルはクロックに関して正確（ｃｌｏｃｋ  ａｃｃｕｒａｔｅ）であり、「；」は「新しいクロック周期」を示す。即ち、第１のＭＡＫＥ＿ＭＡＳＫは、ＳＡＶＥ＿ＫＥＹのまさしく１５クロック周期後に送られなければならない。（ｃ）において、「；」は、単にデータブロックの分離符であり、データブロックはランダムなクロック周期で、ＦＩＦＯのようなインターフェースにプッシュされることが可能であり、かつ／又はＦＩＦＯのようなインターフェースからポップされることが可能である。この差は図５及び表３においても例示される。
【００４７】
ＧＣＭ−ＡＥＳ暗号の例示的な入力パラメータ及び変数が表４に提示される。
【表４】
2012519414.tif 000006
【００４８】
組織される「固有の」ニーモニックフォーマット内のＧＣＭ−ＡＥＳコアプロトコルと同じ情報が表５に示される。
【表５】
2012519414.tif 000007
【００４９】
スーパー言語のニーモニックフォーマットで組織された、ＧＣＭ−ＡＥＳ  ＣＦＵトランザクションと同じ情報が表６に示される。
【表６】
2012519414.tif 000008
【００５０】
表７はＧＣＭ−ＡＥＳ／ＧＭＡＣに関する例示的なプレイングカードを提示する。
【表７】
2012519414.tif 000009
2012519414.tif 000010
2012519414.tif 000011
2012519414.tif 000012
2012519414.tif 000013
2012519414.tif 000014
2012519414.tif 000015
【００５１】
本発明の先の記述は例示及び説明のために提示されている。本発明の先の記述は網羅的であること又は本発明を開示されたまさにその形態に限定することが意図されず、上の教示に照らしてその他の修正形態及び改変形態が可能であり得る。当該実施形態は、それにより、その他の当業者が、企図される特定の使用に適した様々な実施形態及び様々な修正形態で本発明を最もよく利用することを可能にするために、本発明の原理及びその実際的な適用を最もよく説明する目的で選択及び説明された。添付の特許請求の範囲は、先行技術によって限定される範囲を除き、本発明のその他の代替の実施形態を包括すると解釈されることが意図される。
【図１】
2012519414.tif 000016
【図２】
2012519414.tif 000017
【図３】
2012519414.tif 000018
【図４】
2012519414.tif 000019
【図５】
2012519414.tif 000020
【図６】
2012519414.tif 000021
【国際調査報告】
2012519414.tif 000022