(57)【要約】  モード回路および暗号化回路を含む装置。モード回路は、第１のモードにある場合には、レジスタ入力データを出力信号によって選択的に提供し、第２のモードにある場合には、メモリデータを出力信号によって選択的に提供するように構成してもよい。暗号化回路は、レジスタ入力データとメモリデータとの間で交換可能に暗号化／復号化するように構成してもよい。
2010501895.tif 000002
【特許請求の範囲】
【請求項１】
第１のモードにある場合には、レジスタ入力データを出力信号によって選択的に提供し、第２のモードにある場合には、メモリデータを前記出力信号によって選択的に提供するように構成されたモード回路と、
前記レジスタ入力データと前記メモリデータとの間で交換可能に暗号化／復号化するように構成された暗号化回路と、
を含む装置。
【請求項２】
（ｉ）前記第１のモードにある場合には、前記レジスタ入力データを暗号化データ信号によって提供し、（ｉｉ）前記第２のモードにある場合にはメモリ制御信号を提供するように構成されたホストプロセッサをさらに含む、請求項１に記載の装置。
【請求項３】
前記モード回路に結合され、前記第２のモードにある場合には、暗号化／復号化されたデータを記憶するように構成されたメモリをさらに含む、請求項１に記載の装置。
【請求項４】
前記モード回路が、前記レジスタ入力データを記憶するように構成された１つまたは複数の入力データレジスタを含む、請求項１に記載の装置。
【請求項５】
前記モード回路が、
メモリ制御信号に応じて前記メモリデータを提供するように構成されたメモリエンジンをさらに含む、請求項４に記載の装置。
【請求項６】
前記モード回路が、
（ｉ）前記第１のモードにある場合には、前記１つまたは複数の入力データレジスタから前記レジスタ入力データを提供し、（ｉｉ）前記第２のモードにある場合には、前記メモリエンジンから前記メモリデータを提供するように構成されたマルチプレクサをさらに含む、請求項５に記載の装置。
【請求項７】
前記暗号化回路が、
前記レジスタ入力データおよび前記メモリデータを暗号化／復号化するように構成された高度暗号化標準コアユニットをさらに含む、請求項６に記載の装置。
【請求項８】
前記暗号化回路が、
暗号化／復号化されたレジスタ入力データを記憶するように構成された１つまたは複数の出力レジスタをさらに含む、請求項７に記載の装置。
【請求項９】
前記高度暗号化標準コアユニットが、暗号化／復号化されたメモリデータを前記メモリエンジンに提供する、請求項７に記載の装置。
【請求項１０】
前記メモリエンジンが、前記暗号化／復号化されたメモリデータをメモリに提供する、請求項９に記載の装置。
【請求項１１】
前記暗号化回路が、連鎖を実行している間に、前記レジスタ入力データと前記メモリデータとの間で交換可能に暗号化／復号化するように構成された、請求項１に記載の装置。
【請求項１２】
前記暗号化回路が、高度暗号化標準（ＡＥＳ）に従って、前記レジスタ入力データおよび前記メモリデータに対して暗号化／復号化を実行するように構成された、請求項１に記載の装置。
【請求項１３】
前記暗号化回路が、前記第２のモードにある場合には、パケット化および非パケット化データブロックを暗号化／復号化する、請求項１に記載の装置。
【請求項１４】
前記パケット化データブロックが、ペイロードセクションおよびヘッダセクションを含み、前記暗号化回路が、前記ペイロードセクションに対して暗号化／復号化動作を実行し、前記ヘッダセクションが、前記暗号化／復号化動作中に変更のないままである、請求項１３に記載の装置。
【請求項１５】
１つまたは複数の入力レジスタを有し、前記１つまたは複数の入力レジスタからレジスタ入力データを提供するように構成された第１の回路と、
高度暗号化標準（ＡＥＳ）に従って、前記レジスタ入力データを暗号化／復号化するように構成された第２の回路と、
を含む装置。
【請求項１６】
（ａ）第１のモードにある場合には、レジスタ入力データを出力信号によって選択的に提供し、第２のモードにある場合には、メモリデータを前記出力信号によって選択的に提供するステップと、
（ｂ）前記レジスタ入力データと前記メモリデータとの間で交換可能に暗号化／復号化するステップと、
を含む二重モード暗号化／復号化動作を実行する方法。
【請求項１７】
（ｉ）前記第１のモードにある場合には、前記レジスタ入力データを暗号化データ信号によって提供し、（ｉｉ）前記第２のモードにある場合には、メモリ制御信号を提供するステップをさらに含む、請求項１６に記載の方法。
【請求項１８】
前記第２のモードにある場合には、暗号化／復号化されたデータをメモリに格納するステップをさらに含む、請求項１６に記載の方法。
【請求項１９】
前記レジスタ入力データを１つまたは複数の入力データレジスタに格納するステップをさらに含む、請求項１６に記載の方法。
【請求項２０】
高度暗号化標準に従って、前記レジスタ入力データおよび前記メモリデータに対して暗号化／復号化動作を実行するステップをさらに含む、請求項１６に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に暗号化方式に関し、詳細には単一および多重ＡＥＳ動作をサポートする二重モード高度暗号化標準（ＡＥＳ）インプリメンテーションに関する。
【背景技術】
【０００２】
ＡＥＳは、いくつかの暗号化方式で用いられている人気のある暗号化標準である。ＡＥＳは、一度に１２８ビットで動作する。１２８ビットより大きなデータサイズで動作するいくつかのＡＥＳベース暗号化方式が開発された。ＡＥＳベース暗号化方式は、コアＡＥＳ動作を実行する一方で、１２８ビットに基づいて動作するＡＥＳコアユニットを効果的に使用できるインタフェースを提供することができない。
【０００３】
かかる問題に対する１つの解決法は、ＡＥＳコアユニットの回りにダイレクトメモリアクセス（ＤＭＡ）インタフェースを実装することである。かかるＤＭＡインタフェースは、ホストプロセッサによってプログラムされる。ＤＭＡインタフェースは、（ｉ）同期ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）からデータを取り出し、（ｉｉ）このデータをＡＥＳコアユニットに提供し、（ｉｉｉ）暗号化／復号化されたデータをＳＤＲＡＭに格納することができる。かかるインタフェースを用いれば、１２８ビットよりはるかに大きいデータブロックでＡＥＳ動作を実行することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ＤＭＡインタフェースの主な不都合は、ＤＭＡインタフェースの動作をセットアップすることに関連するオーバヘッドである。設計者は、（ｉ）入力および出力データのアドレス、ならびに（ｉｉ）セクタ数をプログラムしなければならない。セクタサイズ／数が大きい場合には、オーバヘッドは最小である。しかしながら、１２８ビットまたは２５６ビットの暗号化／復号化が必要とされるＡＥＳアプリケーションの場合には、オーバヘッドは、実際の動作と比較して大きくなる可能性がある。
【０００５】
従来のアプローチに関する別の不都合は、新しいＡＥＳベース暗号化方式が、常に開発されていることである。これらの方式のいくつかは、ＤＭＡインタフェースが自動的に入力データを処理するので、ＤＭＡインタフェースモードによってサポートされ得ない癖を含む可能性がある。かかるアプローチに対する代替が、マイクロコントローラを用い、ソフトウェアで暗号化方式全体を実行することである。マイクロコントローラの使用によって、暗号化／復号化プロセスが遅くなる可能性がある。
【０００６】
単一および多重ＡＥＳ動作をサポートする二重モードＡＥＳインプリメンテーション用の方法および／または装置を提供することが望ましいであろう。
【課題を解決するための手段】
【０００７】
本発明は、モード回路および暗号化回路を含む装置に関する。モード回路は、第１のモードにある場合には、レジスタ入力データを出力信号によって選択的に提供し、第２のモードにある場合には、メモリデータを出力信号によって選択的に提供するように構成してもよい。暗号化回路は、レジスタ入力データとメモリデータとの間で交換可能に暗号化／復号化するように構成してもよい。
【０００８】
本発明の目的、特徴および利点には、単一および多重ＡＥＳ動作をサポートする二重モードＡＥＳインプリメンテーション用の方法および／または装置を提供することが含まれるが、この方法および／または装置は、（ｉ）少量のデータを必要としてもよく、（ｉｉ）レジスタインタフェースを用いて、より小さなオーバヘッドで実行可能で、（ｉｉｉ）暗号化／復号化されたデータが漏洩されるのを防ぐことができ、（ｉｖ）一度に一ブロックが実行される、ＤＭＡモードによってサポートされないＡＥＳベース暗号化方式を可能にする。
【０００９】
本発明の、これらおよび他の目的、特徴および利点は、下記の詳細な説明ならびに添付の特許請求の範囲および図面から明らかになろう。
【図面の簡単な説明】
【００１０】
【図１】本発明の好適な実施形態の図である。
【図２】本発明の好適な実施形態の詳細図である。
【図３】ＡＥＳコマンドを連鎖する例を示す図である。
【図４】本発明の代替実施例の図である。
【発明を実施するための形態】
【００１１】
図１を参照すると、本発明の好適な実施形態に従って、システム１００のブロック図が示されている。システム１００には、一般に、ブロック（または回路）１０２、ブロック（または回路）１０４、ブロック（または回路）１０６およびブロック（または回路）１０８が含まれる。回路１０２は、ホストプロセッサとして実装してもよい。回路１０４は、モード回路として実装してもよい。回路１０６は、ＡＥＳ回路として実装してもよい。回路１０８は、メモリとして実装してもよい。一例において、メモリ１０８は、ＳＤＲＡＭとして実装してもよい。ホストプロセッサ１０２は、信号（例えばＡＥＳ＿ＤＡＴＡ）を供給可能な出力部１１０、および信号（例えばＤＭＡ＿ＣＯＮＴＲＯＬ）を供給可能な出力部１１４を有してもよい。モード回路１０４は、信号ＡＥＳ＿ＤＡＴＡを受信可能な入力部１１２、信号ＤＭＡ＿ＣＯＮＴＲＯＬを受信可能な入力部１１６、信号（例えばＡＥＳ＿ＯＵＴＰＵＴ）を受信可能な入力部１２４、および信号（例えばＤＡＴＡ）を受信／供給可能な入力／出力部１２６を有してもよい。モード回路１０４は、信号（例えばＯＵＴＰＵＴ）を供給可能な出力部１１８を有してもよい。ＡＥＳ回路１０６は、信号ＯＵＴＰＵＴを受信可能な入力部１２０を有してもよい。ＡＥＳ回路１０６は、信号ＡＥＳ＿ＯＵＴＰＵＴを供給可能な出力部１２２を有してもよい。メモリ１０８は、信号ＤＡＴＡを供給／受信可能な入力／出力部１２８を有してもよい。
【００１２】
モード回路１０４は、システムが第１のモード（またはレジスタモード）にある場合には、レジスタ入力データを信号ＯＵＴＰＵＴによって提供してもよい。モード回路１０４は、システムが第２のモード（またはＤＭＡモード）にある場合には、メモリデータを信号ＯＵＴＰＵＴによって提供してもよい。ＡＥＳ回路１０６は、ＡＥＳ暗号化／復号化方式に従って、レジスタ入力データとメモリデータとの間で交換可能に暗号化／復号化してもよい。レジスタモードにおいて入力レジスタデータを提供し、ＤＭＡモードにおいてメモリデータを提供することによって、ＡＥＳ回路１２２により実行されるデータ暗号化／復号化は、従来のシステムほどオーバヘッドを用いなくてもよい。ホストプロセッサ１０２は、ＡＥＳ暗号化／復号化動作を実行するために用いられるＡＥＳ鍵を生成してもよい。ホストプロセッサ１０２は、信号ＡＥＳ＿ＤＡＴＡを通じてＡＥＳ鍵を提供してもよい。ＡＥＳ鍵は、一般に、システム１００がレジスタモードかまたはＤＭＡモードにある場合に、ＡＥＳ暗号化／復号化を実行するために必要とされる。ＡＥＳ鍵は、データストリームの一部として、非対称鍵の公開鍵−秘密鍵ペアの秘密鍵として擬似乱数発生器によって生成するか、または別の適切な機構を用いて生成してもよい。
【００１３】
図２を参照すると、システム１００の一層詳細な図が示されている。モード回路１０４には、一般に、ブロック（または回路）１４０、ブロック（または回路）１４２、ブロック（または回路）１４４およびブロック（または回路）１４６が含まれる。回路１４０は、１つまたは複数のＡＥＳ入力データレジスタとして実装してもよい。回路１４２は、ＤＭＡインタフェース回路として実装してもよい。回路１４４は、マルチプレクサとして実装してもよい。回路１４６は、ＤＭＡエンジン回路として実装してもよい。ＤＭＡエンジン１４６は、１つまたは複数のＦＩＦＯ回路として実装してもよい。ＡＥＳ入力データレジスタ１４０は、信号（例えばＲＩＤ）を供給可能な出力部１６２を有してもよい。ＤＭＡインタフェース回路１４２は、信号ＤＭＡ  ｃｏｎｔｒｏｌを供給可能な出力部１６６を有してもよい。マルチプレクサ１４４は、信号ＲＩＤを受信可能な入力部１６４、および信号（例えばＭＤ）を受信可能な入力部１７２を有してもよい。ＤＭＡエンジン１４６は、信号ＤＭＡ＿ＣＯＮＴＲＯＬを受信可能な入力部１６８、および信号ＭＤを供給可能な出力部１７０を有してもよい。ＡＥＳ回路１０６には、一般に、ブロック（または回路）１４８およびブロック（または回路）１５０が含まれる。回路１４８は、ＡＥＳコア回路として実装してもよい。回路１５０は、１つまたは複数のＡＥＳ出力レジスタとして実装してもよい。
【００１４】
ＤＭＡモードにおいて、ホストプロセッサ１０２は、（ｉ）（ＤＭＡインタフェース１４２を介して）ＤＭＡエンジン１４６を制御し、ＳＤＲＡＭ１０８から信号ＤＡＴＡを通じてデータ（またはメモリデータ）を取り出し、（ｉｉ）信号ＭＤを通じてマルチプレクサ１４４にメモリデータを提供してもよい。マルチプレクサ１４４は、メモリデータをＡＥＳコア１４８に提供してもよい。ＡＥＳコア１４８は、（ｉ）メモリデータを暗号化／復号化し、（ｉｉ）暗号化／復号化されたメモリデータを、信号ＡＥＳ＿ＯＵＴを通じてＤＭＡエンジン１４６に提供してもよい。ＤＭＡエンジン１４６は、暗号化／復号化されたデータを、信号ＤＡＴＡを通じてメモリ１０８に逆に提供してもよい。ＤＭＡインタフェース１４２回路は、ホストプロセッサ１０２と連携して、（ｉ）ＤＭＡエンジン１４６とメモリ１０８との間でＤＭＡ転送動作を開始し、（ｉｉ）ＤＭＡエンジン１４６とメモリ１０８との間で、関連パラメータ（例えば、メモリアドレス、ＤＭＡ転送のサイズ、およびＤＭＡ転送の方向（メモリ１０８から読み出されるかまたはそこに書き込まれるメモリデータの方向）を含む）を送信してもよい。ＤＭＡエンジン１４６は、メモリ１０８とインタフェースし、実際のメモリトランザクションを実行してもよい。
【００１５】
ＤＭＡモードにおいて、システム１００は、メモリデータのパケット化および非パケット化ブロックの両方を扱ってもよい。メモリデータのパケット化ブロックには、ヘッダセクションおよびペイロードセクションが含まれる。データのパケット化入力ブロックに関して、ペイロードセクションは、ＡＥＳ暗号化／復号化動作を介して処理してもよい。ヘッダセクションは、ＡＥＳ暗号化／復号化動作中に変更のないままであってもよい。ＡＥＳ動作を実行している間に、システム１００は、ヘッダおよびペイロードセクションをその場で識別し、ペイロードセクションだけを処理してもよい。
【００１６】
レジスタモードにおいて、ホストプロセッサ１０２は、レジスタ入力データを、信号ＡＥＳ＿ＤＡＴＡを介してＡＥＳ入力データレジスタ１４０にプログラムしてもよい。ＡＥＳ入力データレジスタ１４０は、レジスタ入力データを、信号ＲＩＤを通じてマルチプレクサ１４４に提供してもよい。マルチプレクサ１４４は、レジスタ入力データを、信号ＯＵＴＰＵＴを通じてＡＥＳコアユニット１４８に提供してもよい。ＡＥＳ制御レジスタ（図示せず）は、マルチプレクサ１４４によって用いられ、ＤＭＡモードとレジスタモードとの間の切り替えを実行してもよい。ＡＥＳ暗号化／復号化用のデータが、ＡＥＳ入力データレジスタ１４０において利用可能な場合には、ＡＥＳ制御レジスタにおけるモードビットは、１に設定してもよい。ＡＥＳ制御レジスタにデータがない場合には、ＡＥＳ制御レジスタにおけるモードビットは、ゼロに設定してもよい（例えば、かかる場合には、データは、ＤＭＡエンジン１４６において利用可能であり得る）。モードビットの値に基づいて、マルチプレクサ１４４は、ＡＥＳ入力データレジスタ１４０から（例えば、モードビットは１に設定される）かまたはＤＭＡエンジン１７０から（例えば、モードビットはゼロに設定される）データを選択してもよい。ＡＥＳコアユニット１４８、（ｉ）レジスタ入力データを暗号化／復号化し、（ｉｉ）暗号化／復号化されたレジスタ入力データをＡＥＳ出力レジスタ１５０に格納してもよい。ＡＥＳコアユニット１４８は、レジスタモードを用いて、暗号化および復号化動作間で、必要に応じて、任意の連鎖を実行してもよい。
【００１７】
一般に、連鎖は、ＡＥＳブロックからの入力または出力を、次のＡＥＳブロックへの入力または鍵のいずれかとして用いてもよい。一例において、暗号ブロック連鎖（ＣＢＣ）に関して、一ＡＥＳブロックからの入力（例えばＡＥＳ復号化）または出力（例えばＡＥＳ暗号化）は、次のＡＥＳブロック（例えばＡＥＳハッシュ）への入力として用いてもよいが、この場合に、一ＡＥＳブロックからの出力は、次のＡＥＳブロックへの鍵として用いてもよい。
【００１８】
連鎖は、レジスタモードおよびＤＭＡモードの両方において実行してもよい。ＤＭＡモードおよびレジスタモードの両方に対して、同じＡＥＳ動作を実行してもよい。ＡＥＳ暗号化／復号化は、１つの１６バイトＡＥＳブロックから次の１６バイトＡＥＳブロックへ実行してもよい。また、暗号モードは、ブロックからブロックへ同じままであってもよい。レジスタモードが、ＡＥＳコマンドごとに１６バイトデータブロックに対して動作するので、ＡＥＳ動作は、ある１６バイトブロックから別のブロックに変わってもよい。したがって、異なるＡＥＳ動作および暗号モードが、レジスタモードにおいて連鎖されてもよい。
【００１９】
図３を参照すると、多くのＡＥＳコマンドを連鎖する例を示す図が示されている。ペイロードに対して暗号化／復号化を実行する鍵を生成するために、３つのＡＥＳ動作が必要とされる可能性がある。
【００２０】
第１のコマンド（またはＡＥＳ  ｃｍｄ１）において、デバイス鍵および固有ＩＤを用いてルート鍵を生成してもよい。ＡＥＳ鍵レジスタは、デバイス鍵に設定してもよい。ＡＥＳ入力レジスタデータは、固有ＩＤに設定してもよい。ＡＥＳ動作は、暗号化を実行するように設定してもよい。ＡＥＳモードは、ＡＥＳハッシュに設定してもよい。
【００２１】
第２のコマンド（またはＡＥＳ  ｃｍｄ２）では、ルート鍵（例えば、第１のコマンドによって生成されるような）を用いて、固有鍵を生成してもよい。ＡＥＳ入力レジスタデータは、暗号化された固有鍵に設定してもよい。使用内部鍵（Ｕｓｅ  Ｉｎｔｅｒｎａｌ  Ｋｅｙ）は、１に設定してもよい。ＡＥＳ動作は、復号化を実行するように設定してもよい。ＡＥＳモードは、電子コードブック（ＥＣＢ）モードに設定してもよい。
【００２２】
第３のコマンド（またはＡＥＳ  ｃｍｄ３）では、固有鍵（例えば、第２のコマンドによって生成されるような）を用いて、ペイロード鍵を生成してもよい。ＡＥＳ入力レジスタデータは、暗号化されたペイロード鍵に設定してもよい。使用内部鍵は、１に設定してもよい。入力モードは、レジスタモードに設定してもよい。ＡＥＳ動作は、復号化を実行するように設定してもよい。ＡＥＳモードは、ＥＣＢモードに設定してもよい。
【００２３】
各コマンド（例えば、第１のコマンド、第２のコマンドおよび第３のコマンド）は、独立したＡＥＳ動作を示してもよい。各コマンドは、暗号化および復号化の両方を実行する一方で、異なるデータブロックに対して動作してもよい。第１のコマンドのＡＥＳ出力は、第２のＡＥＳ動作用の鍵として用いてもよい。第２のコマンドのＡＥＳ出力は、第３のＡＥＳ動作用の鍵として用いてもよい。ひとたびペイロード鍵が生成されると、ペイロードデータに対するＡＥＳ動作は、ＤＭＡモードで実行してもよい。かかる動作は、第４のコマンド（例えば、ＡＥＳ  ｃｍｄ４）に示してもよい。第４のコマンドにおいて、使用内部鍵は、１に設定してもよい。入力モードは、ＤＭＡモードに設定してもよい。ＡＥＳ動作は、復号化を実行するように設定してもよい。ＡＥＳモードは、ＣＢＣモードに設定してもよい。図３に示す連鎖例において、前のコマンドにおいて生成された鍵は、ホストプロセッサによって鍵レジスタを明示的に設定することなく、続くコマンドで直接用いてもよい。ＤＭＡモードにおいて用いられる大きなＡＥＳブロックは、（ｉ）多数の１６バイトブロックに分割し、（ｉｉ）性能が低減されたレジスタモードにある間に、暗号化／復号化してもよい。
【００２４】
本発明により、ＤＭＡまたはレジスタモードは、ＡＥＳ暗号化／復号化方式によってサポートすることが可能になる。ＤＭＡモードおよびレジスタモードは、ＡＥＳコアユニット１４８によってサポートしてもよい。ＤＭＡモードおよびレジスタモードをサポートすることにより、ＡＥＳコアユニット１４８は、より少ないオーバヘッドを用いて、データを暗号化／復号化することが可能になる。１２８ビット（例えば、ＡＥＳデータブロックサイズ）より小さいかまたは等しいブロックサイズに対してＡＥＳ暗号化／復号化動作を実行する場合には、入力データレジスタ１４０においてデータを処理することは、メモリ１０８においてデータを処理するより高速になり得る。レジスタモード１４０においてＡＥＳ暗号化／復号化を実行することがより高速なのは、ＤＭＡ転送動作を実行する際の関連オーバヘッドが、単に、必要なデータでＡＥＳ入力データレジスタ１６２を設定するオーバヘッドよりはるかに大きいからである。ＤＭＡモードでＤＭＡ転送を実行している間に、オーバヘッドは、ＤＭＡ転送セットアップ（例えば、ＤＭＡ要求を開始すること、および／またはＤＭＡ転送パラメータをメモリコントローラ（図示せず）に送信すること）ならびに実際のＤＭＡ転送待ち時間のために、増加する可能性がある。
【００２５】
次の例は、レジスタモードおよびＤＭＡモードにおいて１２８ビットのデータブロックをロードすることに関連するオーバヘッドを示す。
【００２６】
レジスタモードにおいて、各ＡＥＳ入力データレジスタ１４０は、３２ビット幅であり、３２ビットレジスタを設定するために４つのホストプロセッサクロックサイクルを必要とする可能性がある。１２８ビットのデータをロードするために、レジスタモードは、合計４つのレジスタを必要とし、合計１６のホストプロセッサクロックサイクルを用いる可能性がある。
【００２７】
ＤＭＡモードにおいて、ＤＭＡ転送セットアップタイムは、入力ブロックのメモリアドレスおよびサイズを設定するために８つのホストプロセッサクロックサイクルを必要とする可能性がある。（ｉ）ＤＭＡ要求を開始し、（ｉｉ）ＤＭＡ転送のためのアクノリッジメントをメモリコントローラから取得し、（ｉｉｉ）ＤＭＡ転送パラメータをメモリコントローラに送信する間に、平均で１６のホストプロセッサクロックサイクルが用いられる可能性がある。さらに、ＤＭＡ転送待ち時間を実現するために、実際の転送は、２−４クロックサイクルの間を取る可能性がある。一般に、実際のＤＭＡ転送用にメモリを設定するためにメモリコントローラが必要とし得るサイクル数は、１６クロックサイクルになる可能性がある。全体として、ＤＭＡモードは、１２８ビットまたは１６バイトの入力メモリデータを転送するために、（最良の筋書きの下で）３２から４０サイクルまでのいずれかを必要とする可能性がある。
【００２８】
入力レジスタデータのサイズが増加するにつれて、レジスタモードは、それほど効率的ではなくなる可能性がある。新しい１２８ビットブロック用にＡＥＳ入力データレジスタ１４０を設定することに加えて、システム１００は、前のデータブロックに対するＡＥＳ動作が完了したかどうかを判定する必要があり得る。かかる判定はまた、レジスタモード用のオーバヘッドを増加する可能性がある。例えば、４つの１２８ビットブロックに対して、ＤＭＡモードは、約３２−４０のホストプロセッサクロックサイクルを必要とする可能性がある。レジスタモードは、８０サイクル（例えば、４＊４＊４＋１６（ポーリングオーバヘッド））（最良の場合）が必要となる可能性がある。システム１００は、レジスタモードにある場合には、入力レジスタデータの最適なサイズを維持して、最小のオーバヘッドを保証してもよい。
【００２９】
一般に、システム１００がレジスタモードにある場合には、暗号化／復号化されたデータは、メモリ１０８に格納しなくてもよい。暗号化／復号化されたデータはメモリ１０８に格納しなくてもよいので、暗号化／復号化されたデータは、メモリ１０８（例えばＳＤＲＡＭピン）への問い合わせによって情報を漏洩される可能性がない。かかるアクセス方式において、アプリケーションは、ＡＥＳ出力レジスタ１５０に直接アクセスし、必要に応じて暗号化／復号化されたデータを用いてもよい。かかるアクセス方式によって、メモリ１０８とインタフェースするピンの問い合わせを防ぐことが可能になる。システム１００は、必要に応じて、暗号化／復号化されたデータをメモリ１０８に格納できるように適合させてもよい。例えば、必要ならば、アプリケーションは、ＡＥＳ出力レジスタ１５０からの復号化されたデータをメモリ１０８に格納してもよい。
【００３０】
図４を参照すると、本発明の別の実施形態に従って、システム１００'が示されている。システム１００'は、レジスタモードのシステム１００と同様に動作可能である。システム１００'は、ＤＭＡモードに切り替わる必要がなく、レジスタモードだけで動作してもよい。ホストプロセッサ１０２'は、ＡＥＳ暗号化／復号化動作を実行するために用いられるＡＥＳ鍵を生成してもよい。多くのＡＥＳ入力データレジスタ１４０'が、レジスタ入力データをＡＥＳコアユニット１４８'に提供してもよい。ＡＥＳコアユニット１４８'は、復号化されたデータを、信号ＡＥＳ＿ＯＵＴＰＵＴを通じて提供してもよい。多くのＡＥＳ出力レジスタ１５０'が、復号化されたデータをＡＥＳ出力レジスタ１５０'に格納してもよい。ＡＥＳ出力レジスタ１５０'に格納された、復号化されたデータは、ソフトウェアによって読み出してもよい。ソフトウェアは、出力（例えば、復号化されたデータ）をメモリ（図示せず）に格納してもよい。
【００３１】
レジスタモードによってのみサポートされるＡＥＳベース暗号化方式は、やはり、レジスタモードにある間に一度に一ブロック、実行してもよい。システム１００'がレジスタモードで動作する場合には、レジスタモードとＤＭＡモードとの間の二重モードでシステムを動作させることよりも多くのオーバヘッドが示される可能性がある。しかしながら、オーバヘッドは、ソフトウェアで、またはもっぱらＤＭＡモードで全動作を実行するより少なくなり得る。
【００３２】
システム１００で実行されようとシステム１００'で実行されようと、レジスタモードは、ルート鍵からの、続くＡＥＳ暗号化／復号化動作用の鍵生成または鍵抽出に適している可能性がある。ほとんどのマルチメディアコンテンツは、ペイロードを暗号化／復号化するための鍵を生成するために、いくつかの段階を用いる可能性がある。段階は、別個であってもよく、入力ブロックサイズは、１２８ビット未満であってもよい。システム１００は、鍵をユーザに見えるようにすることなく、大きなデータに対して、続くＡＥＳ暗号化／復号化のために鍵を生成することに備えてもよい。
【００３３】
本発明の好適な実施形態に関連して本発明を詳細に図示し説明してきたが、本発明の範囲から逸脱せずに、形態および詳細における様々な変更を行い得ることが、当業者には理解されよう。
【図１】
2010501895.tif 000003
【図２】
2010501895.tif 000004
【図３】
2010501895.tif 000005
【図４】
2010501895.tif 000006
【国際調査報告】
2010501895.tif 000007