JP4098719B2 - Aesアルゴリズム用のプログラマブルデータ暗号化エンジン - Google Patents

Aesアルゴリズム用のプログラマブルデータ暗号化エンジン Download PDF

Info

Publication number
JP4098719B2
JP4098719B2 JP2003553779A JP2003553779A JP4098719B2 JP 4098719 B2 JP4098719 B2 JP 4098719B2 JP 2003553779 A JP2003553779 A JP 2003553779A JP 2003553779 A JP2003553779 A JP 2003553779A JP 4098719 B2 JP4098719 B2 JP 4098719B2
Authority
JP
Japan
Prior art keywords
programmable data
galois field
key
data encryption
encryption engine
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.)
Expired - Fee Related
Application number
JP2003553779A
Other languages
English (en)
Other versions
JP2005513541A6 (ja
JP2005513541A (ja
Inventor
ヨゼフ・ステイン
ハイム・プリモ
Original Assignee
アナログ デバイシーズ インク
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
Priority claimed from US10/051,533 external-priority patent/US6587864B2/en
Priority claimed from US10/060,699 external-priority patent/US6766345B2/en
Priority claimed from US10/228,526 external-priority patent/US7082452B2/en
Priority claimed from US10/255,971 external-priority patent/US7508937B2/en
Application filed by アナログ デバイシーズ インク filed Critical アナログ デバイシーズ インク
Publication of JP2005513541A publication Critical patent/JP2005513541A/ja
Publication of JP2005513541A6 publication Critical patent/JP2005513541A6/ja
Application granted granted Critical
Publication of JP4098719B2 publication Critical patent/JP4098719B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • 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/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Error Detection And Correction (AREA)

Description

本発明は、AES(Advanced Encryption Standard)の暗号機能(cipher function)を実施するためのプログラマブルデータ暗号化エンジンに関する。
本出願は、2001年12月18日に出願された米国仮出願シリアル番号60/341634の優先権を主張する。
ANSI(American National Standard Institute)AES(Advanced encryption standard)を実施するための暗号化エンジンは、256ビットまでの可変長キーを用いて一般には128ビット(ブロックサイズ)のデータのブロックを暗号化し且つ解読する。解読は、暗号化に使用されたものと同一のキーを用いてなされるが、解読処理が暗号化処理の逆となるようにキービットがアドレッシングのスケジュールで変えられる。
AESを実施するための異なる多くのアルゴリズムが存在し、より著名なもののひとつに、リジャンダール(Rijndael)アルゴリズムがある。一般に、そのアルゴリズムは、4、4バイト、32ビットワードを入力し、それについてガロアフィールドGF−1(2)での逆数を備えるサブバイト変換を実施し、アフィン(オーバーGF(2))変換を適用する。次に、シフトロウ変換(shift rows transformation)がなされ、その後にミックスカラム(mix columns)変換が続き、ミックスカラム変換を適用すると共にラウンドキー(round key)を加える。
一連のステップは、何回も繰り返される。繰り返し数(the number of iterations)はリジャンダールアルゴリズムに従ってキーの長さとブロックサイズに依存する。例えば、キーの長さが4、32ビットワード(128ビット)、および、ブロックサイズが4、32ビットワードに対しては、繰り返し数は10であり、キーの長さが6(192ビット)でブロックサイズが4に対しては、繰り返し数は12であり、そしてキーの長さが8(256ビット)でブロックサイズが4に対して繰り返し数は14である。ここで、キーの長さは、そのキーにおける32ビットワードの数であり、且つブロックサイズは、同時に暗号化される32ビットワードの数である。従って、例えば、キーの長さが4でブロックサイズが4については、10の繰り返し(iteration)又はラウンド(round)を必要とし、4で32ビットワードの10個のラウンドキーのそれぞれは、4で32ビットワードの入力マスターキーから、各繰り返し又はラウンドに対して一つだけ発生されることを必要とする。これらは、キーの長さ及びラウンドの数に応じて一つ又は二つのステップを通して40個の異なるサブキーとして発生される。ラウンドキーの発生における最初のワードは、(a)ワードローテイション(word Rotation)を経て、その後にサブワード(subword)、逆ガロアフィールド(inverse Galois field)及びアフィン変換(affine transformation)の組み合わせが続き、そしてRcon[i](繰り返し依存値)がGF(2)フィールド上で加えられ、(b)32ビットワードの順列(permutation)が(a)の結果と排他的ORがとられる。例えば、10個のラウンドと4のキーの長さでは、4番目ごとのサブキー発生サイクルは(a)及び(b)の両方のステップを経る。他のキー発生サイクルは、(c)32ビットワード順列が前のサブキーと排他的ORがとられるステップを経る。従って、サイクル0,4,8,12,16,20,24,28,32,36,40は、(a)および(b)の両方のステップを採用し、残りのサイクルはステップ(c)のみを使用する。一般には、これは、各ワードに対し90又はそれ以上のクロックサイクルを必要とし、または、4ワードからなる各ブロックに対して360クロックサイクルを必要とし、そして、AESについてリジャンダールアルゴリズムを完結するために3600クロックサイクルを必要とする。従って、128ビットの4、32ビットワードブロックに関する10メガビットデータストリーム動作については、必要条件が281MIPS(Mega Instruction Per Second)となる。
従って、本発明の目的は、AES(Advanced Encryption Standard)の暗号機能(cipher function)を実施するための改良されたプログラマブルデータ暗号化エンジンを提供することである。
さらに、本発明の目的は、リジャンダールアルゴリズムを用いてAES(Advanced Encryption Standard)の暗号機能を実施するための上記の改良されたプログラマブルデータ暗号化エンジンを提供することである。
さらに、本発明の目的は、ソフトウェアで実施可能なAES(Advanced Encryption Standard)の暗号機能を実施するための上記の改良されたプログラマブルデータ暗号化エンジンを提供することである。
さらに、本発明の目的は、大規模に高速なAES(Advanced Encryption Standard)の暗号機能を実施するための上記の改良されたプログラマブルデータ暗号化エンジンを提供することである。
さらに、本発明の目的は、極めて柔軟性があり且つ多くの異なる順列(permutation)及びアプリケーションについて再プログラムできるAES(Advanced Encryption Standard)の暗号機能を実施するための上記の改良されたプログラマブルデータ暗号化エンジンを提供することである。
本発明は、AES選択機能を実施し且つGF−1(2)での逆数を実行し且つアフィンオーバーGF(2)変換を適用してサブバイト変換を得るための第1データブロックに応答する第1パラレルルックアップテーブルを備えるAES(Advanced Encryption Standard)アルゴリズムの暗号機能を実施するためのプログラマブルデータ暗号化エンジンを特徴とする。第2パラレルルックアップテーブルは、サブバイト変換を変換してシフトロウ変換(shift row transformation)を得る。ガロアフィールド乗算器は、上記シフトロウ変換を変換して、ミックスカラム変換を獲得し、そしてラウンドキーを加え、結果として上記第1データブロックのAES暗号機能をもたらす。
好ましい実施形態において、複数のラウンドキーをガロアフィールド乗算器に提供するためのキージェネレータを備えてもよい。上記キージェネレータは、上記ラウンドキーを発生するためのマスターキーに応答するキージェネレータ回路を備えてもよい。上記キージェネレータは、マスターキーをローテイション(rotating)してローテイション(rotated)されたサブキーを得るための第3のパラレルルックアップテーブルを備えてもよい。キージェネレータ回路は、GF−1(2)での逆数を実行し、そしてアフィンオーバーGF(2)を適用して上記ラウンドキーを得るための第4のパラレルルックアップテーブルを備えてもよい。上記第1および第2のパラレルルックアップテーブルおよび上記第1のガロアフィールド乗算器は、多くのラウンドの変換を実施してもよく、そして、各ラウンドに対して発生されるキーが存在していてもよい。各ラウンドキーは複数のサブキーを備えてもよい。ガロアフィールド乗算器は、二つの多項式をガロアフィールド上の係数と乗算してそれらの積を得るための乗算回路と、既約多項式(irreducible polynomial)について多項式のモジューロ剰余(modulo remainder)を予測するための上記乗算回路に応答するガロアフィールドリニア変換回路と、所定の既約の多項式についてモジューロ剰余を予測するための係数のセットを上記ガロアフィールドリニア変換回路に供給するためのストレージ回路と、単一のサイクルにおいて乗算および加算演算を実施するためにガロアフィールド上の係数と共に第3の多項式と上記乗算回路の積を加算するためのガロアフィールド加算回路とを備えてもよい。パラレルルックアップテーブルシステムは、メモリと、該メモリに格納された複数のルックアップテーブルと、上記ルックアップテーブルでルックアップ(look up)されるべき値を保持するためのロウインデックスレジスタと、上記メモリに格納された各ルックアップテーブルの開始アドレスを表す値を格納するためのカラムインデックスレジスタと、上記ロウインデックスレジスタにおける各値についてアドレスを同時に発生して各ルックアップテーブルにそれらの値の機能を並列に配置するために上記カラムインデックスレジスタ及びロウインデックスレジスタに応答するアドレス変換回路(address translation circuit)とを備えても良い。
また、本発明は、AES(Advanced Encryption Standard)アルゴリズムの暗号機能を実施するための上記の改良されたプログラマブルデータ暗号化エンジンを特徴とする。第1モードにおいて、AES選択機能を実施し且つGF−1(2)での逆数を実行し且つアフィンオーバーGF(2)変換を適用するために第1データブロックに応答してサブバイト変換を獲得し、且つ、第2モードにおいて、上記サブバイト変換に応答して、上記サブバイト変換を変換してシフトロウ変換を得るパラレルルックアップテーブルシステムを備える。ガロアフィールド乗算器は、上記シフトロウ変換を変換してミックスカラム変換を得ると共にラウンドキーを加え、結果として上記第1データブロックのAES(Advanced Encryption Standard)暗号機能をもたらす。
好ましい実施形態において、上記パラレルルックアップテーブルは、第3モードにおいて、マスターキーに応答してサブキーを取得してもよく、そして第4モードにおいて、上記サブキーに応答してラウンドキーを発生してもよい。
その他の目的、特徴および利点については、当業者であれば、添付の図面と好ましい実施形態の以下の記載から理解するであろう。
好ましい実施形態、または以下に開示される実施形態の他に、本発明は、他の実施形態が可能であり、種々の方法で実行または実施できる。従って、本発明は、以下の説明に述べられ又は図示される要素の配置および構成の細部に対する適用に制限されない。
図1には、関連する入力回路12および出力回路14と共に、本発明によるAES(Advanced Encryption Standard)暗号化エンジン10が示されている。AES暗号化エンジン10によって実施されるAES(Advanced Encryption Standard)アルゴリズムは図2に示され、ここでは、入来するデータブロック16は最初にSBOX変換18を経て、そしてシフトロウ変換(shift row transformation)20の後に、キー23が付加されるミックスカラム変換(mix column transformation)22を経る。24での出力はライン26上を何回もフィードバックされ、その回数は、選択された特定のAESアルゴリズムに依存する。例えば、以下のチャートIのようである。
Figure 0004098719
アルゴリズムAES−128については、キーの長さは4であり、ブロックサイズは4であり、そしてラウンド(round)または繰り返し(iteration)の数は10であり、一方、AES−192については、キーの長さは6であり、ブロックサイズは4であり、繰り返し数は12であり、そしてAES−256については、繰り返し数は14である。ラウンドが実行される度に、新たなキーが取り入れられる。AESアルゴリズムサブバイト変換は、S−BOXを用いて達成され、ここで、データブロック16は4つのワード30,32,34,36から構成され、それぞれは4バイトのS00−S03,S10−S13,S20−S23,S30−S33である。S−BOX変換は、最初に、GF−1(2)での逆数(multiplicative inverse)をとり、そして図3のボックス38に示されるように行列表現により定義されたアフィンオーバーGF(2)変換(affine over GF(2) transformation)を適用する。その出力は、データブロック16のサブバイト変換(subbyte transformation)17である。そして、図4のサブバイト変換17は、シフトロウ変換を経て、その変換において、第1ロウ30aは全くローテイション(rotation)されず、第2ロウ32aは1バイトだけローテイションされ、第3ロウ34aは2バイトだけローテイションされ、第4ロウ36aは3バイトだけローテイションされる。このシフトは図式40で表現され、結果としてシフトロウ変換されたデータブロック19を発生し、そこには同一の値が現れるが、ロウ32b,34b,36bにおいて1つ,2つ,3つの場所(place)だけシフトされる。それから、図5のミックスカラム変換およびラウンドキーの付加により、データブロック19は、1回でカラムがミックスカラム変換行列42と乗算され、この例では、第2のカラム44がミックスカラム変換行列と乗算されることが示されている。これにラウンドキーが加えられ、このケースではカラム46であり、第1データブロック16の完結したAES(Advanced Encryption Standard)暗号機能48が得られる。
一実施形態において、本発明によれば、AES暗号化エンジン10は、S−BOX変換を実施するためのパラレルルックアップテーブル(parallel look-up table)60と、シフトロウ変換を実施するためのパラレルルックアップテーブル62と、ミックスカラム及びキー付加演算を実施するためのガロアフィールド乗算器64を備えても良い。各繰り返しで異なるキーまたはラウンドキーが提供される。例えば、AES128アルゴリズムの実施では、10のラウンドが存在し、各ラウンドはキーが供給される。各繰り返しで異なるラウンドキー66が取り入れられる。ラウンドキーは、ローテイションワードパラレルルックアップテーブル74及びS−BOXパラレルルックアップテーブル76を備えるキージェネレータ回路72により、入力71を通して取り入れられたマスターキーからキージェネレータ68によって発生される。ローテイションワードパラレルルックアップテーブル74は、ワード(a,a,a,a)を入力として取り、そして巡回順列(cyclical permutation)を実施し、そしてワードを(a,a,a,a)として返す。S−BOXパラレルルックアップテーブル76は、図3に更に詳細に表現されるように、図2のS−BOX機能18と同じようなS−BOX機能を実施する。一旦、キー又はサブキーが発生され、図6におけるキーストレージ80に格納されると、それらは、各繰り返し又は実施されるラウンドについて同時にラウンドキーとして使用され、ここで、ラウンドキーは4つのワードを備え、それぞれ8ビットバイトである。
S−BOXパラレルルックアップテーブル60は、図7に示されるように作用し、ここで、4つの8ビットバイトから成るデータワード90は、アドレス変換回路92に与えられ、それはメモリ94における特定のアドレスを指定し、そしてメモリは或る相関関係で読み出され、サブバイト変換に従ってデータワード90’を生成し、その結果として図3のデータブロック17を生じる。シフトロウパラレルルックアップテーブル62は、アドレス変換回路102を通して図8のデータワード100を適用して、図4に示されるようなローテイションされたバイト構成106を生じることに関連して読み出されるメモリ104の特定の場所を指定することにより、図4に示されるようなバイトローテイションを実施する。
ミックスカラムガロアフィールド乗算器64は、図9の4つのガロアフィールド乗算リニア変換器110,112,114,116を用いて実施され、それぞれがデータブロック126のカラム118,120,122,124を処理してデータブロック全体が一度に処理されるように実施されてもよい。各ガロアフィールド乗算リニア変換器110−116は、3つの抵抗R,R,Rを備え、4つの全てが同じように動作し、従ってガロアフィールドリニア変換器110の説明は、4つの全ての動作を説明するのに足りる。ガロアフィールド乗算リニア変換器110は、サイクル1,2,3,4として識別される4サイクルにわたって動作するものとして示されている。サイクル1においては乗算および加算(multiply and add)動作がなされ、一方、サイクル2,3,4では乗算積算(multiply accumulation)動作が発生する。抵抗Rは、ミックスカラム変換行列128を入力する。抵抗Rは、カラム118における複数のバイトを入力し、抵抗Rは、キー130,K−Kを入力する。第1サイクルにおいて、行列128における最初の位置の値は、カラム118におけるS00の値と乗算され、そしてキーKがそれに加えられて出力Zが形成される。次のサイクルでは、行列128からの次の値03がカラム118の次の値S10と乗算され、そしてここでは出力Zに加えられて乗算積算動作が完結する。次の二つのサイクルは、行列における次の二つの値とカラムにおける次の二つの値を用いて同様に動作を実施する。最終的な出力は次の式として示される。
Figure 0004098719
ガロアフィールド乗算リニア変換器110−116のそれぞれは、図10に示されるようにプログラムされ、ここで、サークル140は、イネーブルにされた排他的ORゲートとの接続を示す。このプログラミングは、AESガロアフィールドGF−1(2)既約多項式(x+x+x+x+1)を達成する。ローテイションワードパラレルルックアップテーブル74は、図8に示されるようなシフトロウパラレルルックアップテーブル62と同様の方法で実施されてもよい。そして、キージェネレータ68におけるS−BOXパラレルルックアップテーブル76は、図7に示されるS−BOXパラレルルックアップテーブル60として実施されてもよい。
これまでに示された実施形態は、二つに分離したパラレルルックアップテーブルを使用してAES暗号化エンジンにおけるシフトロウ及びS−BOXを実施し、そして第3及び第4パラレルルックアップテーブルを使用してラウンドキー発生におけるS−BOX動作およびローテイションワードを行ったが、これは本発明の必然的な制限ではない。例えば、図11に示されるように、入力回路12aは、コンフィギュレーションコントロール回路150を介して単一のパラレルルックアップテーブル61と相互接続されてもよく、コンフィギュレーションコントロール回路150は、ライン152上の命令でS−BOX動作またはシフトロウ動作の何れかのためにパラレルルックアップテーブル61を設定することができる。これらの動作は異なる時刻に発生するので、同一のパラレルルックアップテーブルは2倍のデューティで各機能を実施できるが、異なる時刻であれば必然的にハードウェアを節約する結果になる。加えて、図12のパラレルルックアップテーブル61aは、4つの異なるモード、即ち、コンフィグレーション回路154の制御の下で、暗号ラウンドのためのシフトロウおよびS−BOX、並びにキー発生のためのS−BOXおよびローテイションワードに取り入れられてもよい。従って、ライン156上の命令に応答するコンフィギュレーション回路154は、パラレルルックアップテーブル61aを構成して、暗号S−BOX、暗号シフトロウ、キーローテイションワード、又は、キーS−BOX動作の何れかを実施することができる。暗号動作が発生する第1及び第2のモードにおいて、パラレルルックアップテーブル61aからの出力は、ガロアフィールド乗算器64に直接的に与えられるであろう。キー発生、ローテイションワード、およびS−BOX機能が実施される第3および第4のモードにおいては、パラレルルックアップテーブル61aからの出力は、キーストレージ80aに配信され、ここで、それはガロアフィールド乗算器64によってアクセスされることができる。図12は、実際の論理回路を備えるモードスイッチ回路154を使用するが、これは本発明の必然的な制限ではない。本発明は、4つのパラレルルックアップテーブル(PLUTs)が一つの272バイトリニアパラレルルックアップテーブル(PLUT)として取り扱われることを実現して簡単化できる。256バイトのS−BoxPLUTは、暗号およびラウンドキージェネレータによって共有することができる。そして、二つのメモリレスのバイトローテイション動作であるところのシフトロウ及びワードシフト変換は、同一の16バイトルックアップテーブルを共有することができる。パラレルルックアップテーブルにおける正確なアドレスは、開始アドレスをルックアップされる値に加えることにより見つけ出される。従って、モードスイッチ回路は、単に、二つのパラレルルックアップテーブル開始アドレスとして実施できる。パラレルルックアップテーブルの動作は、2002年4月24日に出願されたSteinらの「RECONFIGURABLE LOOK-UP TABLE SYSTEM」と題された米国特許出願(AD−305J)において更に詳しく説明されている。
図13に、本発明の実施例におけるガロアフィールド乗算/乗算−加算/乗算−積算システム210が示されており、それは、選択的に、レジスタ214および216の値を乗算してそれらの積を出力レジスタ211に供給し、または、レジスタ14および16の値を乗算してそれらの積をレジスタ215の値と合計し、その結果を出力レジスタ211に供給する。
図13におけるシステム210の図14における更なる詳細な実施形態の説明の前に、ガロアフィールド乗算および加算を簡単に次に述べる。
ガロアフィールドGF(n)は、二つの2進演算が実施可能な要素のセットである。加算および乗算は、交換法則、結合法則、分配法則を満足しなければならない。有限数の要素を持っているフィールドは有限フィールドである。2進フィールド(binary field)の例は、モジューロ2加算(modulo 2 addition)およびモジューロ2乗算(modulo 2 multiplication)の下での{0,1}のセットであり、GF(2)と表される。モジューロ2加算およびモジューロ2乗算は、次の図に示される表によって定義される。第1ロウおよび第1カラムは、ガロアフィールド加算器および乗算器への入力を示す。例えば、1+1=0および1*1=1についてである。
Figure 0004098719
Figure 0004098719
一般に、pが素数であれば、GF(p)がp要素を持つ有限フィールド(finite field)であり、GF(p)がp要素を持つ拡大フィールド(extension field)であることが示される。加えて、フィールドの種々の要素は、それを異なる指数に上げることにより、一つのフィールド要素αの様々な累乗として発生できる。例えば、GF(256)は、原始要素(primitive element)αを256の異なる累乗に上げることにより、全て発生され得る256個の要素を有する。
加えて、係数が2進値(binary)である多項式はGF(2)に属する。m次(degree m)のGF(2)上の多項式は、mよりも小さく且つゼロよりも大きい次数(degree)のGF(2)上の任意の多項式で割り切れなければ、既約(irreducible)であると言われる。多項式F(X)=X+X+1は、XまたはX+1の何れでも割り切れないので、既約多項式である。X2m−1+1を割り切れる次数mの既約多項式は原始多項式として知られている。所定のmについて、一つよりも多くの原始多項式が存在するかもしれない。最もよく通信基準(communication standard)において使用されるm=8についての原始多項式の例は、F(X)=x+x+x+x+x+1である。
ガロアフィールド加算(Galois field addition)は、モジューロ加算と同一であるので、ソフトウェアで実施することが容易である。例えば、もし、29および16がGF(2)における二つの要素であれば、それらの加算は、単に次のようなXOR演算として行われる。
Figure 0004098719
他方のガロアフィールド乗算は、原始要素αの繰り返し乗算により、GF(2)の全ての要素を計算する次の例によって示されるように、やや複雑である。GF(2)についてフィールド要素を発生するために、次数m=4の原始多項式G(x)は、G(x)=X+X+1のように選択される。乗算の結果が依然としてフィールドの要素であるように乗算をモジューロとするために、5番目のビットセットを有する要素は、次の恒等式(identity)F(α)=α+α+1=0を用いて4ビットの計算結果に持ち込まれる。この恒等式は、α=1+αとすることにより、繰り返し使用されてフィールドの異なる要素を形成する。従って、フィールドの要素は次のように表される。
{0,1,α,α,1+α,α+α,1+α+α,…1+α}
αはGF(2)についての原始要素であるから、それは2に設定されて、GF(2)のフィールド要素を{0,1,2,4,8,3,6,12,11,…9}として発生する。
ガロアフィールド多項式乗算は二つの基本的なステップで実施できることが分かる。第1ステップは、代数的に拡大された多項式積c(x)=a(x)*b(x)の計算であり、同類の指数は収集(対応する項の間のXOR演算に相当する加算)されて、c(x)を与える。
例えば、c(x)=(a3x3+a2x2+a1x1+a0)*(b3x3+b2x2+b1x1+b0)
C(x)=c6x6+c5x5+c4x4+c3x3+c2x2+c1x1+c0
ここで:
Figure 0004098719
第2ステップは、d(x)=c(x) modulo p(x) の計算である。ここで、p(x)は既約多項式である。
説明のため、乗算は、多項式 モジューロ 既約多項式の乗算で実施される。例えば、(p(x)=x8+x4+x3+x+1であれば)
{57}*{83}={c1}
であり、なぜなら、
これら{*}バイトのそれぞれは、{b7,b6,b5,b4,b3,b2,b1,b0}の順で個々のビット値(0または1)の連結であり、多項式表現:
b7x7+b6x6+b5x5+b4x4+b3x3+b2x2+b1x1+b0x0=Σbixi
を用いて有限要素として解釈されるからである。
Figure 0004098719
本発明による図2の改良されたガロアフィールド乗算システム10は、レジスタ14の二つの2進多項式をレジスタ16の多項式と乗算してそれらの積を得るための2進多項式乗算回路12を備え、その積は、チャートIIIのように定義されるような16項の多項式c(x)によって与えられる。乗算回路12は、実際には複数の乗算セル12a,12b,12c…12nを備える。
Figure 0004098719
各項は、*により表されるようなAND関数を含み、各一対の項は、
Figure 0004098719
により表される論理排他的ORで結合される。この積は、ガロアフィールドリニア変換回路18に与えられ、このガロアフィールドリニア変換回路18は、それぞれが16x8セル35からなる多数のガロアフィールドリニア変換ユニット18a,18b,18c…18nを備えてもよく、それは、乗算器12によって発生された積に応答して、所定の既約多項式について多項式積のモジューロ剰余を1サイクルで予測する。乗算は、ユニット18a,18b,18c…18nにおいて実施される。このガロアフィールドリニア変換回路の動作及び構成並びにその変換ユニットのそれぞれ及びその乗算機能は、2002年1月18日に出願されたシリアル番号10/051533のSteinらによる米国特許出願「GALOIS FIELD LINEAR TRANSFORMER」(AD−239J)、および、2001年11月30日に出願されたシリアル番号60/334510のSteinらによる「GALOIS FIELD MULTIPLIER SYSTEM」(AD−240J)において更に詳細に説明されており、それぞれは、参照として本明細書に完全に組み込まれる。ガロアフィールドリニア変換ユニットのそれぞれは、既約多項式で多項式積を除算することにより、1サイクルでモジューロ剰余を予測する。その既約多項式は、例えばチャートIVに示されるもののどれであってもよい。
Figure 0004098719
Figure 0004098719
GF(2)が全累乗2(all powers 2)及びそれ以下で実施することができるガロアフィールド乗算器がチャートIVに示されている。より低い多項式については、選択された指数よりも高い係数がゼロであり、例えば、GF(2)が実施されれば、GF(2)とGF(2)との間の係数はゼロであろう。そして、予測はそのレベルを超えないであろう。
この特定の例について、グループGF(2)における既約または原始多項式0x11Dが選択されている。ストレージセル226を持っているストレージ回路220は、その特定の原始または既約多項式についてモジューロ剰余を予測するために係数のセットをガロアフィールドリニア変換回路に供給する。
本発明によるGF乗算の例は次のようである。
Figure 0004098719
図14の本発明によれば、ガロアフィールド上の係数を持つ第3多項式を備える第3レジスタ215が存在する。通常、レジスタ214,216および215のそれぞれは、各レジスタがトータルで4バイトまたは32ビットを含むように、それぞれが8ビットの4つのバイトセクションを備える。レジスタ215からの出力は、ガロアフィールド加算回路219に配信され、それは、この実施形態では、バス217と、バス217の各ビットに対して一つの複数の排他的ORゲート219とを備える。ガロアフィールドリニア変換回路218で得られた積は、出力レジスタ回路211のMpyレジスタ223において乗算の簡単な積が得られるようにバス221上を配信され、一方、バス221上の積と第3多項式との組み合わせは、排他的OR回路219’を備える加算回路219において結合されて、出力レジスタ回路211のMpaレジスタ225に乗算加算または乗算積算結果が供給される。例えば、もし二つの新たな値が入力レジスタ回路214および216に渡される間にガロアフィールド乗算システム210の出力が再帰的に入力レジスタ回路215にフィードバックされれば、乗算積算(MAC; Multiply and accumulate)が実施される。他方、もし二つの新たな値が入力レジスタ215および216に渡される間にガロアフィールド乗算システム210の出力が再帰的に入力レジスタ214にフィードバックされれば、乗算加算(MPA; Multiply and add)が実施される。このようにして、レジスタ214および216における多項式全体の乗算と、レジスタ215における多項式とそれらの加算とが全て1サイクルの動作で完結する。ガロアフィールド乗算システム210は、2002年8月26日に出願されたSteinらによる「GALOIS FIELD MULTIPLY/MULTIPLY-ADD/MULTIPLY ACCUMULATE」と題された米国特許出願(AD−299J)において更に詳しく説明されており、これを参照することにより本明細書に組み込まれる。
図15に、本発明を実施するための再設定可能(reconfigurable)なパラレルルックアップテーブルシステム310が示されており、ロウインデックスレジスタR 312と、カラムインデックスレジスタR 314と、アドレス変換回路316と、多数のルックアップテーブルを含むメモリ318とを備える。メモリ318からの出力は、出力レジスタ320に配信される。メモリ318は、複数のルックアップテーブルと、それらのルックアップテーブルにおいてルックアップされる値を保持するロウインデックスレジスタ312とを備える。例えば、ロウインデックスレジスタ312は、メモリ318でルックアップテーブルにおいてルックアップされる角度(angle)を保持してもよく、ここでは、それらの角度に対し、ルックアップテーブルのそれぞれが、異なる機能、サイン値、コサイン値、タンジェント値の中の一つ、等々を備えてもよい。カラムインデックスレジスタ314は、メモリに格納された各ルックアップテーブルの開始アドレスを表す値を格納する。例えば、もしメモリ318が、それぞれ64バイトの8個のルックアップテーブルを保持すれば、カラム30,32,34,36,38,40,42,44と一致するそれらルックアップテーブルについての開始点は、0,64,128,192,256,320,384,448であろう。アドレス変換回路16は、ロウインデックスレジスタ312の値を、ルックアップテーブルのそれぞれの開始アドレスの表示と結びつけて、インデックスレジスタにおける各値に対するアドレスを同時に発生し、それらの値の機能を並列に各ルックアップテーブルに配置する。パラレルルックアップテーブルシステム310は、2002年4月24日に出願されたSteinらの米国特許出願シリアル番号10/131007の「RECONFIGURABLE LOOK UP TABLE SYSTEM」(AD−305J)に更に詳細に説明されており、これ参照することにより本明細書に組み込まれる。
本発明の特定の特徴がいくつかの図面に示されると共に他には示されていないが、これは、単に便宜のためであり、各特徴は、本発明による任意の又は全ての他の特徴と結びつけられてもよい。本明細書で使用されている用語“備える(include)”、“具備する(comprising)”、“有する(having)”および“持つ(with)”は、広く且つ包括的に解釈されるべきであり、如何なる物理的な相互接続にも限定されない。更に、本願の如何なる実施形態も、単にあり得るものとして捉えるべきではない。
他の実施形態は当業者には明らかであり、本願請求項の範囲内である。
本発明によるAES(Advanced Encryption Standard)暗号化エンジンのブロックダイアグラムである。 基本的AES暗号アルゴリズムを示す図式的ブロックダイアグラムである。 図2のAES暗号アルゴリズムのサブバイト変換を示す図式的ブロックダイアグラムである。 図2のAES暗号アルゴリズムのシフトロウ変換を示す図式的ブロックダイアグラムである。 図2のAES暗号アルゴリズムによるラウンドキーの付加とミックスカラム変換を示す図式的ブロックダイアグラムである。 本発明による図1のAES暗号化エンジンの更に詳細な図式的ブロックダイアグラムである。 図6のSBOXパラレルルックアップテーブルの更に詳細な図式的ブロックダイアグラムである。 図6のシフトロウパラレルルックアップテーブルの更に詳細な図式的ブロックダイアグラムである。 図6のミックスカラムガロアフィールド乗算器の更に詳細な図式的ブロックダイアグラムである。 AESアルゴリズムのミックスカラム機能を達成するためのガロアフィールド変換器のプログラミングを示す図式的ブロックダイアグラムである。 暗号S−BOXおよびシフトロウ動作を実施するために単一のパラレルルックアップテーブルが使用される本発明によるAES暗号化エンジンの図式的ブロックダイアグラムである。 ラウンドキー発生についてのS−BOX動作およびローテイションワードと同様に、シフトロウ動作および暗号S−BOXを実施するために単一のパラレルルックアップテーブルが使用される本発明によるAES暗号化エンジンの図式的ブロックダイアグラムである。 本発明を実施するために使用できるガロアフィールド乗算/乗算−加算/乗算−積算システムの簡単化されたブロックダイアグラムである。 図13の乗算/乗算−加算/乗算−積算システムの更に詳細な図である。 本発明を実施するために使用される再設定可能(reconfigurable)なパラレルルックアップテーブルシステムの簡単化されたブロックダイアグラムである。

Claims (12)

  1. AES(Advanced Encryption Standard)アルゴリズムの暗号機能を実施するためのプログラマブルデータ暗号化エンジンであって、
    AES選択機能を実施し且つGF−1(2)で逆数を実行し且つアフィンオーバーGF(2)変換を適用してサブバイト変換を得るために第1データブロックに応答する第1パラレルルックアップテーブルと、
    前記サブバイト変換を変換してシフトロウ変換を得るための第2パラレルルックアップテーブルと、
    前記シフトロウ変換を変換してミックスカラム変換を獲得すると共にラウンドキーを加えて前記第1データブロックのAES暗号機能をもたらすガロアフィールド乗算器と、
    を備えたプログラマブルデータ暗号化エンジン。
  2. 複数のラウンドキーを前記ガロアフィールド乗算器に供給するためのキージェネレータを更に備えた請求項1記載のプログラマブルデータ暗号化エンジン。
  3. 前記キージェネレータは、マスターキーに応答して前記ラウンドキーを発生するキージェネレータ回路を備えた請求項2記載のプログラマブルデータ暗号化エンジン。
  4. 前記キージェネレータ回路が、前記マスターキーをローテイションしてローテイションされたサブキーを得るための第3パラレルルックアップテーブルシステムを備えた請求項3記載のプログラマブルデータ暗号化エンジン。
  5. 前記キージェネレータ回路が、GF−1(2)で逆数を実行し且つアフィンオーバーGF(2)変換を適用して前記ラウンドキーを得るための第4パラレルルックアップテーブルシステムを備えた請求項4記載のプログラマブルデータ暗号化エンジン。
  6. 前記第1および第2パラレルルックアップテーブル及び前記第1ガロアフィールド乗算器が、変換の多くのラウンドを実施し、且つ各ラウンドについて発生されたラウンドキーが存在する請求項5記載のプログラマブルデータ暗号化エンジン。
  7. 前記各ラウンドキーが複数のサブキーを備えた請求項6記載のプログラマブルデータ暗号化エンジン。
  8. 前記ガロアフィールド乗算器は、
    二つの多項式をガロアフィールド上の係数と乗算してそれらの積を得るための乗算回路と、
    既約多項式について前記多項式の積のモジューロ剰余を予測するために前記乗算回路に応答するガロアフィールドリニア変換回路と、
    所定の既約多項式についてモジューロ剰余を予測するために係数のセットを前記ガロアフィールドリニア変換回路に供給するためのストレージ回路と、
    単一のサイクルで前記乗算および加算演算を実施するために、前記乗算回路の前記積を、ガロアフィールド上の係数を持つ第3多項式に加えるためのガロアフィールド加算回路と、
    を備えた請求項1記載のプログラマブルデータ暗号化エンジン。
  9. 前記パラレルルックアップテーブルは、
    メモリと、
    前記メモリに格納された複数のルックアップテーブルと、
    前記ルックアップテーブルにおいてルックアップされる値を保持するためのロウインデックスレジスタと、
    前記メモリに格納された前記各ルックアップテーブルの開始アドレスを表す値を格納するためのカラムインデックスレジスタと、
    前記カラムインデックスレジスタ及び前記ロウインデックスレジスタに応答して、前記ロウインデックスレジスタにおける各値に対するアドレスを同時に発生し、各ルックアップテーブルにそれらの値の機能を並列に配置するアドレス変換回路と、
    を備えた請求項1記載のプログラマブルデータ暗号化エンジン。
  10. AES(Advanced Encryption Standard)アルゴリズムの暗号機能を実施するためのプログラマブルデータ暗号化エンジンであって、
    AES選択機能を実施し且つGF−1(2)で前記逆数を実行し且つアフィンオーバーGF(2)変換を適用してサブバイト変換を獲得するために第1モードにおいて第1データブロックに応答すると共に、第2モードにおいて前記サブバイト変換に応答して前記サブバイト変換を変換してシフトロウ変換を得るパラレルルックアップテーブルシステムと、
    前記シフトロウ変換を変換してミックスカラム変換を得ると共にラウンドキーを加えて前記第1データブロックのAES(Advanced Encryption Standard)暗号機能をもたらすガロアフィールド乗算器と、
    を備えたプログラマブルデータ暗号化エンジン。
  11. 前記パラレルルックアップテーブルシステムが、第3モードにおいてマスターキーに応答してサブキーを獲得すると共に、第4モードにおいて前記サブキーに応答してラウンドキーを発生する請求項10記載のプログラマブルデータ暗号化エンジン。
  12. 前記パラレルルックアップテーブルシステムが、前記サブバイト/サブワード変換を実施するための第1パラレルルックアップテーブルと、前記シフトロウ/ローテイションワード変換を実施するための第2ルックアップテーブルとを備えた請求項11記載のプログラマブルデータ暗号化エンジン。
JP2003553779A 2001-12-18 2002-12-18 Aesアルゴリズム用のプログラマブルデータ暗号化エンジン Expired - Fee Related JP4098719B2 (ja)

Applications Claiming Priority (15)

Application Number Priority Date Filing Date Title
US34163501P 2001-12-18 2001-12-18
US34171101P 2001-12-18 2001-12-18
US34163401P 2001-12-18 2001-12-18
US60/341,711 2001-12-18
US60/341,634 2001-12-18
US60/341,635 2001-12-18
US10/051,533 2002-01-18
US10/051,533 US6587864B2 (en) 2001-11-30 2002-01-18 Galois field linear transformer
US10/060,699 2002-01-30
US10/060,699 US6766345B2 (en) 2001-11-30 2002-01-30 Galois field multiplier system
US10/228,526 2002-08-26
US10/228,526 US7082452B2 (en) 2001-11-30 2002-08-26 Galois field multiply/multiply-add/multiply accumulate
US10/255,971 2002-09-26
US10/255,971 US7508937B2 (en) 2001-12-18 2002-09-26 Programmable data encryption engine for advanced encryption standard algorithm
PCT/US2002/040901 WO2003053001A1 (en) 2001-12-18 2002-12-18 Programmable data encryption engine for advanced encryption standard algorithm

Publications (3)

Publication Number Publication Date
JP2005513541A JP2005513541A (ja) 2005-05-12
JP2005513541A6 JP2005513541A6 (ja) 2005-08-04
JP4098719B2 true JP4098719B2 (ja) 2008-06-11

Family

ID=27568054

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003553779A Expired - Fee Related JP4098719B2 (ja) 2001-12-18 2002-12-18 Aesアルゴリズム用のプログラマブルデータ暗号化エンジン

Country Status (3)

Country Link
EP (1) EP1456994B1 (ja)
JP (1) JP4098719B2 (ja)
WO (1) WO2003053001A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW527783B (en) * 2001-10-04 2003-04-11 Ind Tech Res Inst Encryption/deciphering device capable of supporting advanced encryption standard
JP2005077517A (ja) * 2003-08-28 2005-03-24 Mitsumi Electric Co Ltd 暗号化/復号化装置及び暗号化/復号化方法
DE102004006570B4 (de) * 2004-02-11 2007-06-21 Golawski, Herbert, , Dipl.-Ing. Einmalschlüsselgenerierungsverfahren auf fraktaler Berechnungsbasis für Blockverschlüsselungsalgorithmen
US8024551B2 (en) * 2005-10-26 2011-09-20 Analog Devices, Inc. Pipelined digital signal processor
EP2173056A1 (fr) * 2008-09-04 2010-04-07 Gemplus Procédé de contre-mesure dans un composant électronique mettant en ouvre un algorithme de cryptographie à clef secrète
JP2012109854A (ja) * 2010-11-18 2012-06-07 Panasonic Corp プログラマブル・ロジック・デバイス
WO2014047135A2 (en) * 2012-09-18 2014-03-27 Interdigital Patent Holdings, Inc. Generalized cryptographic framework
US9455962B2 (en) 2013-09-22 2016-09-27 Winbond Electronics Corporation Protecting memory interface
US10019571B2 (en) 2016-03-13 2018-07-10 Winbond Electronics Corporation Protection from side-channel attacks by varying clock delays
JP6187624B1 (ja) * 2016-03-17 2017-08-30 富士電機株式会社 情報処理装置、情報処理方法及びプログラム
JP6135804B1 (ja) * 2016-06-01 2017-05-31 富士電機株式会社 情報処理装置、情報処理方法及びプログラム
WO2020148771A1 (en) * 2019-01-17 2020-07-23 Fortifyiq Inc Methods for protecting computer hardware from cyber threats

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5212652A (en) * 1989-08-15 1993-05-18 Advanced Micro Devices, Inc. Programmable gate array with improved interconnect structure
JPH0659686B2 (ja) 1990-10-29 1994-08-10 ダイアホイルヘキスト株式会社 コンデンサー用二軸配向ポリエステルフィルム
US6400180B2 (en) * 1999-02-25 2002-06-04 Xilinix, Inc. Configurable lookup table for programmable logic devices
GB0023409D0 (en) * 2000-09-22 2000-11-08 Integrated Silicon Systems Ltd Data encryption apparatus
EP1246389B1 (en) * 2001-03-27 2005-01-05 Amphion Semiconductor Limited Apparatus for selectably encrypting or decrypting data
US6587864B2 (en) 2001-11-30 2003-07-01 Analog Devices, Inc. Galois field linear transformer
US6766345B2 (en) 2001-11-30 2004-07-20 Analog Devices, Inc. Galois field multiplier system

Also Published As

Publication number Publication date
EP1456994B1 (en) 2018-02-07
WO2003053001A1 (en) 2003-06-26
JP2005513541A (ja) 2005-05-12
EP1456994A1 (en) 2004-09-15
EP1456994A4 (en) 2010-02-24

Similar Documents

Publication Publication Date Title
US7508937B2 (en) Programmable data encryption engine for advanced encryption standard algorithm
McLoone et al. High performance single-chip FPGA Rijndael algorithm implementations
Mangard et al. A highly regular and scalable AES hardware architecture
CN101350714B (zh) 采用混合rijndael s-box的有效高级加密标准数据路径
JP3992742B2 (ja) データブロックおよび鍵を非線形的に結合する暗号方法および装置
EP1246389B1 (en) Apparatus for selectably encrypting or decrypting data
US11606189B2 (en) Method and apparatus for improving the speed of advanced encryption standard (AES) decryption algorithm
JP2005215688A (ja) S−box演算を用いるハードウェア暗号化/復号化装置及び、その方法
JP2002366029A (ja) Dpaに対して安全な暗号化
WO2009031883A1 (en) Encryption processor
JP4098719B2 (ja) Aesアルゴリズム用のプログラマブルデータ暗号化エンジン
RU2124814C1 (ru) Способ шифрования блоков цифровых данных
Pramstaller et al. A universal and efficient AES co-processor for field programmable logic arrays
JP2005513541A6 (ja) Aesアルゴリズム用のプログラマブルデータ暗号化エンジン
JP5652363B2 (ja) 暗号処理装置、および暗号処理方法、並びにプログラム
JPH10240500A (ja) 乱数生成装置及び方法、暗号化装置及び方法、復号装置及び方法、並びにストリーム暗号システム
Kaur et al. FPGA implementation of efficient hardware for the advanced encryption standard
Murtaza et al. Fortification of aes with dynamic mix-column transformation
CN109033893B (zh) 基于合成矩阵的aes加密单元、aes加密电路及其加密方法
Alam et al. A novel pipelined threads architecture for AES encryption algorithm
KR20020087331A (ko) 부분 라운드간 파이프라인 기법을 이용한 AES Rijndael암호 및 복호 회로
Abdulwahed Chaos-Based Advanced Encryption Standard
CN108989018B (zh) 一种aes加密单元、aes加密电路及加密方法
Shastry et al. Rolled architecture based implementation of AES using T-Box
Sharma et al. Design of an efficient architecture for advanced encryption standard algorithm using systolic structures

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070306

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070605

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070612

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080212

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080313

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110321

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120321

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130321

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130321

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140321

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees