JP2006529031A - Mixcolumn/invmixcolumn関数のハードウェア実装 - Google Patents

Mixcolumn/invmixcolumn関数のハードウェア実装 Download PDF

Info

Publication number
JP2006529031A
JP2006529031A JP2006530630A JP2006530630A JP2006529031A JP 2006529031 A JP2006529031 A JP 2006529031A JP 2006530630 A JP2006530630 A JP 2006530630A JP 2006530630 A JP2006530630 A JP 2006530630A JP 2006529031 A JP2006529031 A JP 2006529031A
Authority
JP
Japan
Prior art keywords
encryption
rows
block
decryption
data
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.)
Withdrawn
Application number
JP2006530630A
Other languages
English (en)
Inventor
ボニー、シー.セクストン
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.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
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 Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of JP2006529031A publication Critical patent/JP2006529031A/ja
Withdrawn 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
    • 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
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • 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
    • 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
    • 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/80Wireless

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

暗号化/復号ユニット、変換モジュール、方法、およびコンピュータ・プログラムは、暗号化変換および逆暗号化変換の両方のための共通論理を共用して、待機時間を僅かに増加させるだけで、必要とされるゲートの数を削減する。鍵スケジュール・ユニットが、少なくとも1つの鍵の値を提供する。変換モジュールは、鍵スケジュール・ユニットと通信可能であり、平文/暗号文のブロックを第1の複数の行内の所定数のバイト・ユニットに変換する。変換モジュールは、第1の複数の行から第2の複数の行を生成する暗号化関数および第2の複数の行から第1の複数の行を生成する逆暗号化関数の両方の変換用に共用回路を利用するMixColumnAllサブモジュールを含む。MixColumnAllサブモジュールは、AESで実行されるMixColumnおよびInvMixColumnの組み合わせを実行する。ブロック・ラウンド・ユニットは、所定数のバイト・ユニットを暗号文/平文に暗号化/復号する。

Description

本発明は、暗号化を実行する方法および装置に関する。より詳細には、本発明は、高度暗号化標準(AES:Advanced Encryption Standard)など、暗号化の様々な方法において機能する、Mix Column関数の改良に関する。
スマートカードなどのアイテムやインターネットを介した商取引の利用が拡大するのに伴い、データを暗号化および復号する必要性が、現在ほど不可欠となったことはない。実際、米国政府は、遡ること1976年に米国標準として選択されたDES(データ暗号化標準)や、続いて標準となったトリプルDESなどの暗号化標準を、特に米国標準技術局(NIST:National Institute of Standards and Technology)を通じ、多年にわたって選択してきた。近年、NISTは、公式の暗号化標準となるであろう、AESに基づく新しい標準を選択するため、複数のAESアルゴリズムを評価している。Joan DaemenおよびVincent Rijmenは、NISTによって承認される暗号化アルゴリズムを提出し、2001年11月26日に同アルゴリズムを公表した。このアルゴリズムは、Rijndaelアルゴリズムと呼ばれている。AESは、性能、柔軟性、効率性、および実施がより容易な方法に関して、従来技術の56ビット暗号化を改良するため、128、192、および256ビットの3つのシステムを使用する。
AESアルゴリズムにおける処理の基本単位はバイトである。内部的に、AESアルゴリズムの演算は、STATEと呼ばれる、バイトを要素とする2次元配列上で実行される。STATEは通常、バイトを要素とする4つの行をもち、各行はNbバイトを含むが、Nbはブロック長を32で割った値である。
暗号化は、データを暗号文と呼ばれる理解不能な形式に変換する。暗号文の復号は、「平文」と呼ばれるデータをその元の形式に変換し戻す。当技術分野における一般的な用語法では、平文を暗号文に変換する一連の変換を「暗号化(Cipher)」と呼び、暗号文を平文に変換する一連の変換を「逆暗号化(Inverse Cipher)」と呼ぶ。暗号化および逆暗号化の両方において、拡張鍵ルーチン(Expansion Key Routine)によって使用される秘密暗号鍵である暗号鍵(Cipher Key)が、暗号化および逆暗号化ルーチンでSTATEに適用される(ラウンド鍵(round key)と呼ばれる)一連の値を生成する。
AESアルゴリズムの入力および出力は各々、128個のビット(0または1の値をもつ数字)のシーケンスから成る。これらのシーケンスは、時にはブロックと呼ばれることがあり、ブロックが含むビットの数は、ブロックの長さと呼ばれる。
AESは、情報を復号(decrypt)(復号(decipher))および暗号化(encrypt)(暗号化(encipher))するため、MixColumn変換をその他の変換と共に使用する。暗号化におけるMixColumnは、STATEのすべての行(カラム)を取り込み、行のデータを(他の行とは独立に)混合して、新しい行を生成する。InvMixColumnは、MixColumnの逆である逆暗号化の変換である。
図1は、STATE配列の入力および出力の一例を示している。暗号化および逆暗号化の開始において、バイト(inからin15)を要素とする入力配列が、図1に示すように、STATEにコピーされる。次に、暗号化または逆暗号化演算が、このSTATE配列上で行われ、その後、その最終的な値が、出力バイトoutからout15を要素とする配列にコピーされる。
従来技術においては、ハードウェア実装は、暗号化を実施する回路を逆暗号化でせいぜい部分的に再利用できるといったものである。単一回路で正および逆のMixColumnアルゴリズムを実行して、必要とされる総ゲート数を削減し、その結果、回路全体のサイズを縮小する方法および装置があれば望ましいであろう。
本発明は、MixColumn関数用およびInverse MixColumn関数用に使用される回路の大部分を共用し、その結果、ゲート数を削減する。高速ネットワーキング・プロセッサおよびスマートカード・アプリケーション向けには、より小さなゲート・サイズおよび高いデータ速度が実現される。ダイ・サイズが増えると、デバイスの費用および電力消費はさらに膨らむが、本発明は、非常に小さなゲート・サイズを実現するので、ダイ・サイズを大きく増やすことなく、並列処理が利用可能である。本発明においては、最大パス遅延は、従来技術のデバイスに比べて、それほど長くなることはないが、回路デザインは、著しく小さくすることができる。本発明は、発明者によって「MixColumnAll」と呼ばれる、これまで当技術分野で知られていなかった関数を実施し、その回路は、非常に僅かしか重複ロジックをもたずに、MixColumnおよびInvMixColumn変換の両方を実行する。
本発明はまた、MixColumnAll関数を実行するための方法、および暗号化/復号プロセスの一部としてMixColumnAll関数を実行するコンピュータ・プログラムを含む。
本発明の上記およびその他の特徴および利点は、以下に示す詳細な説明を添付の図面と併せて読むことによって、より明瞭となるであろう。
以下の説明においては、限定よりも説明を目的として、本発明の完全な理解を提供するために、特定の構成、インタフェース、技法などの具体的な詳細が説明される。しかし、本発明が、それらの具体的な詳細から逸脱する他の実施形態においても実施され得ることは、当業者には明らかであろう。さらに、明瞭さを目的として、よく知られたデバイス、回路、および方法についての詳細な説明は、本発明の説明を不要な詳細によって曖昧にしないために省略される。
図1に関して、NISTによる「FIPS 197」に開示されているように、暗号化および逆暗号化の開始において、バイトinからin15を要素とする配列である入力が、図示するように、STATE配列にコピーされる。次に、暗号化または逆暗号化演算が、このSTATE配列上で行われ、その後、その最終的な値が、outからout15までのバイトを要素とする配列として示されている出力にコピーされる。有限体における2つの要素の加算は、2つの要素用の多項式の同次項の係数どうしを「加算する」ことによって達成される。加算は、ブール演算の排他的論理和(XOR)演算によって実行される(「FIPS 197」、NIST、p.10)。2つのバイトの加算に関する2進表記例が、以下に示されている。
Figure 2006529031
…式(1.0)
多項式表現においては、GF(2)での乗算は、次数8の既約多項式を法とする多項式の乗算に相当する。多項式は、その因数が1とそれ自身だけの場合、既約である。AESアルゴリズムでは、この既約多項式は、
M<x>=x8+x4+x3+x+1 …方程式(1.1)
である。
各対角要素が1に等しい対角行列は、単位行列と呼ばれる。単位行列は、Inと表記される。
Figure 2006529031
…式(1.2)
AおよびBがn×n行列である場合、
AB=BA=I (1.3)
が成り立てば、互いに一方を他方の逆と呼ぶ。
MIXCOLUMN()変換は、Stateに1行ずつ作用し、各行を4項の多項式として取り扱う。行は、GF(2)上の多項式と見なされ、FIPS、NIST、17ページに、
A(x)={03}x+{01}x+{01}x+{02}
として開示されている定められた多項式a(x)を、x+1を法として乗じられる。
これは、以下に示された行列の乗算として、書き表すことができる。
Figure 2006529031
この乗算の結果として、1行内の4つのバイトは、以下によって置き換えられる。
Figure 2006529031
…式(1.5)
MixColumnの逆は、正のMixColumnと類似している。すべての行は、
D(x)={0B}x3+{0D}x2+{09}x+{09} …式(1.6)
によって除算される、特定の乗算多項式d(x)を乗じることによって変換される。
式1.6は、DaemenおよびRijmen、「The Rijndael Cipher Block」の13ページから引用したものである。
本発明は、正および逆変換の両方を実施する回路を使用して、MixColumn変換用の縮小された組み合わせ論理実装を実現する。この実装は、総ゲート数については、従来技術の別々のMixColumnおよびInvMixColumn変換より少なく、最大遅延パスについては、僅かに長くなる。
従来技術のMixColumnを実施する、以下に示すようなC言語コードが、DaemenおよびRijmenによって提供されている。
Void MixColumn (word8 a[4] [MAXBC], word8 BC){
/*線形手法で各行の4バイトをミックスする*/
word8 b[4] MAXABC];
int i, j;
for (j=0; j<BC' j++)
for (i=0; i<4; i++)
b[i][j]=mul(2, a[i][j])
^a[(i+2)%4][j])
^a[(i+2)%4][j]
^a[(i+3)%4][j];
for (i=0; i<4; i++)
for (j=0; j<BC; j++)a[I]
注:関数mulは、GF(2)上の乗算である。
さらに、従来技術のInvMixColumnを実施する、C言語コードが、以下に示すようにDaemenおよびRijmenによって提供されている。
void InvMixColumn (word8 a[4] [MAXABC], word8 BC) {
/*線形手法で各行の4バイトをミックスする*/
/*これは、MixColumnの反対の動作である*/
*/
word8 b[4] [MAXABC];
int i, j;
for (j=0; j<BC; j++)
for (i=0; i<4; i++)
b[i][j]=mul(0xe, a[i][j])
^mul(0xb, a[(i+1)%4][j])
^mul(0xd, a[(i+2)%4][j])
^mul(0x9, a[(i+3)%4][j]);
for (i=0; i<4; i++)
for (j=0; j<BC; j++) a[i][j]=b[i][j];
MixColumn変換が、ANDおよびXORゲートを用いて、DaemenおよびRijmenによって提案されたように実装される場合、回路方程式は、以下のようになるであろう。
MixColumn変換式:
ブール式の縮約(Boolean reduction)後、1バイトに関する式は、以下のようになる。
Bit7=b2[7]^b3[7]^b1[7]^b1[6]^b0[6]
Bit6=b3[6]^b2[6]^b1[5]^b1[6]^b0[5]
Bit5=b3[5]^b2[5]^b1[4]^b1[5]^b0[4]
Bit4=b3[4]^b2[4]^b1[3]^b1[4]^b0[3]^b1[7]^b0[7]
Bit3=b3[3]^b2[3]^b1[2]^b1[3]^b0[2]^b0[7]^b1[7]
Bit2=b3[2]^b2[2]^b1[1]^b1[2]^b0[1]^b0[7]
Bit1=b3[1]^b2[1]^b1[0]^b1[1]^b0[0]^b1[7]
Bit0=b3[0]^b2[0]^b1[0]^b0[7]^b1[7]
InvMixColumn変換式:
ブール式の縮約後、1バイトに関する式は、以下のようになる。
Bit7=b2[7]^b3[7]^b1[7]^b1[6]^b0[6]^b0[4]^b0[5]^b1[4]^b2[4]^b2[5]^b3[4]
Bit6=b3[6]^b2[6]^b1[5]^b1[6]^b0[5]^b0[7]^b0[3]^b0[4]^b1[7]^b1[3]^b2[7]^b2[3]^b2[4]^b3[3]^b3[7]
Bit5=b3[5]^b2[5]^b1[4]^b1[5]^b0[4]^b1[7]^b1[2]^b2[3]^b3[2]^b0[3]^b0[2]^b0[6]^b1[6]^b2[6]^b2[2]^b3[7]^b3[6]
Bit4=b3[4]^b2[4]^b1[3]^b1[4]^b0[3]^b1[7]^b0[5]^b0[1]^b1[5]^b2[5]^b2[1]^b2[7]^b3[5]^b0[2]^b1[6]^b1[1]^b2[2]^b3[6]^b3[1]
Bit3=b3[3]^b2[3]^b1[2]^b1[3]^b0[2]^b0[5]^b1[5]^b2[5]^b2[1]^b2[7]^b3[5]^b0[0]^b0[6]^b3[0]^b3[7]^b2[6]^b2[0]^b1[0]
Bit2=b3[2]^b2[2]^b1[1]^b1[2]^b0[1]^b1[7]^b0[0]^b0[6]^b3[6]^b3[7]^b2[0]^b2[6]^b1[6]
Bit1=b3[1]^b2[1]^b1[0]^b1[1]^b0[0]^b1[7]^b1[5]^b3[6]^b3[5]^b0[5]^b2[5]^b2[7]^b1[6]
Bit0=b3[0]^b2[0]^b1[0]^b0[7]^b1[7]^b1[6]^b2[5]^b3[5]^b0[5]^b0[6]^b2[6]
2つの変換式(MixColumnおよびInvMixColumn)を精査すると、各ビットに以下の共通論理が存在することが分かる。
Bit7=b2[7]^b3[7]^b1[7]^b1[6]^b0[6]
Bit6=b3[6]^b2[6]^b1[5]^b1[6]^b0[5]
Bit5=b3[5]^b2[5]^b1[4]^b1[5]^b0[4]
Bit4=b3[4]^b2[4]^b1[3]^b1[4]^b0[3]^b1[7]
Bit3=b3[3]^b2[3]^b1[2]^b1[3]^b0[2]
Bit2=b3[2]^b2[2]^b1[1]^b1[2]^b0[1]
Bit1=b3[1]^b2[1]^b1[0]^b1[1]^b0[0]^b1[7]
Bit0=b3[0]^b2[0]^b1[0]^b0[7]^b1[7]
したがって、本発明によれば、上記の共通論理が共用され、逆および正変換を1つの回路に組み合わせることによって、本質的に実装ゲート(instantiation)の数を半分に削減する。
ゲート・サイズおよび最大パス遅延について、比較のために、Synopsys社およびPhilips社のCMOS18テクノロジ・ライブラリの合成ツールを使用する。
比較:両回路は、
(1)正および逆論理MixColumnアルゴリズムごとに別々の回路を使用する従来技術のAES提案(NIST)、および
(2)発明者らによってMixColAllアルゴリズムと呼ばれる共用論理を用いて両方を実施する本発明による単一回路に従って設計された。
サイズおよび最大遅延の比較は、別々のMixColumn設計と、MixColAll回路とで実行された。各設計は、最大パス分析を用いて合成され、時間を測定する。両実装の比較のため、ゲート数によるサイズおよびマイクロメートルによるサイズが提示される。
以下の表1は、別々の回路のMixColumnおよびInvMixColumnと、本発明の縮小論理構造との比較を示している。
Figure 2006529031
別々の回路による手法の組み合わされたゲート・サイズは、1120+3216=4336である。組み合わされた回路のゲート・サイズは3053であり、1283個のゲートを節約している。別々の回路による最大遅延は、2.25nsの最長パスである。組み合わされた回路の最大遅延は、2.84であり、590ps増加しているに過ぎない。使用される回路はCMOSであるが、その他のタイプの回路で代用することもできる。
図2は、本発明による装置がとり得る一態様を示したブロック図である。MixColAllサブモジュール230が、Rijndaelアルゴリズムを処理可能な、またはMixColumnおよびInvMixColumn機能がパイプライン処理および非パイプライン処理装置の両方で利用され得る、その他のタイプのアルゴリズムを処理可能な任意のハードウェア装置とともに使用され得ることを、当業者であれば理解されたい。この装置は、変換モジュール212を介して、暗号化/復号を行うことができる。変換モジュール212は、データ・ブロックをバイト・ユニットに変換し、このモジュール212は、鍵付加(keyadd)215、置換(substitutional)220、行シフト(shiftrow)225、およびMixColumnAll230サブモジュールを含む。鍵スケジュール・モジュール201は、各ラウンドの暗号化/復号を行うため、鍵に基づく副鍵の鍵スケジュールを提供する。暗号化処理が行われているときは、副鍵値ラウンド鍵(subkey value round key)が、モジュール235に出力され、復号処理が行われているときは、副鍵の値が、逆関数からブロック・ラウンド・モジュール235に提供される。
入力/出力モジュール210は、暗号化される平文の入力を準備するか、または復号された符号化文の受信210を準備する。入力/出力モジュール211は、暗号文を受信するか、または復号されて平文として出力される暗号文が入力され得る点を除いて、モジュール210と類似している。
図3は、本発明によるコンピュータ・プログラム用の方法およびそのステップを示している。添付の付録は、本発明に従ってプログラムが実行され得る一方法を示したサンプル・ソース・コードを提供している。
ステップ305において、少なくとも1つのデータ・ブロックが、暗号化/復号のために受信される。次に、ステップ310において、ブロックが、共用論理MixColAllモジュールによって、バイト・ユニットに変換される。先に説明したように、MixColAllモジュールは、各ビット0〜7に関する共通論理(Bit7=b2[7]^b3[7]^b1[7]^b1[6]^b0[6]、Bit6=b3[6]^b2[6]^b1[5]^b1[6]^b0[5]、Bit5=b3[5]^b2[5]^b1[4]^b1[5]^b0[4]、Bit4=b3[4]^b2[4]^b1[3]^b1[4]^b0[3]^b1[7]、Bit3=b3[3]^b2[3]^b1[2]^b1[3]^b0[2]、Bit2=b3[2]^b2[2]^b1[1]^b1[2]^b0[1]、Bit1=b3[1]^b2[1]^b1[0]^b1[1]^b0[0]^b1[7]、Bit0=b3[0]^b2[0]^b1[0]^b0[7]^b1[7])を使用する同じ回路を共用して、MixColumn関数およびInvMixColumn関数の両方を実行する。
ステップ315において、副鍵の値が、実行される暗号化/復号の各ラウンド用に提供される。最後に、ステップ320において、暗号化/復号された文が、記憶装置、ディスプレイ、またはプリンタなどの出力装置に出力される。
本発明の主旨または添付の特許請求の範囲の範囲から逸脱せずに施され得る様々な修正が存在することを、当業者であれば理解されよう。例えば、使用される共通論理のビット数、装置のモジュールおよびサブモジュールのレイアウト、変換されるデータのブロック数、入力および出力モジュールなどはすべて、必要に応じて修正され得る。本発明は、セキュリティ・ネットワーキング・プロセッサ、セキュア・キーボード装置、磁気カード読取装置、スマートカード読取装置、および802.11装置などの無線通信アプリケーションとともに使用可能であるので、データの受信または出力は、共通回路内に含まれることができ、またはRF、光ファイバ、マイクロ波などを介して送信されることができる。そのような場合、送信および受信機能は、様々なタイプの送信からのプロトコル変換とともに含まれる。さらに、例では、8バイト(128ビット)のものを示したが、この数は、必要に応じて、および/またはAESプロトコルの変更に応じて、増やされることも、または減らされることもできる。「平文」および「暗号文」という用語は、専門用語であり、暗号化/復号は、図画、写真、イラスト、図表を対象とすることができ、音声、映像、および/またはマルチメディア・データを対象とすることができることにも留意されたい。
付録
Figure 2006529031
Figure 2006529031
Figure 2006529031
Figure 2006529031
Figure 2006529031
Figure 2006529031
STATE配列ならびにその入力および出力バイトを示した図である。 本発明による装置が構成され得る一方法を示した図である。 本発明による方法の概略を示すフローチャートである。

Claims (24)

  1. 少なくとも1つの鍵の値を提供するための鍵スケジュール・ユニットと、
    前記鍵スケジュール・ユニットと通信可能であり、平文/暗号文のブロックを第1の複数の行内の所定数のバイト・ユニットに変換する変換モジュールと、
    前記所定数のバイト・ユニットを暗号文/平文に暗号化/復号するためのブロック・ラウンド・ユニットとを備え、
    前記変換モジュールが、前記第1の複数の行から第2の複数の行を生成する暗号化関数および前記第2の複数の行から前記第1の複数の行を生成する逆暗号化関数の両方の変換用に共用回路を利用するMixColumnAllサブモジュールを含む、暗号化/復号ユニット。
  2. 前記暗号化関数が、高度暗号化標準(AES)によるMixColumn関数を含む、請求項1に記載の装置。
  3. 前記逆暗号化関数が、高度暗号化標準(AES)によるInvMixColumn関数を含む、請求項1に記載の装置。
  4. 前記所定数のバイト・ユニットが、8バイト(128ビット)に等しい、請求項1に記載の装置。
  5. 平文/暗号文のデータ・ブロックを入力するための入力モジュールと、暗号文/平文の出力を保存/表示するための出力モジュールとをさらに備える、請求項1に記載の装置。
  6. 前記MixColumnAllサブモジュールが、各ビットに関する以下の共通論理
    Bit7=b2[7]^b3[7]^b1[7]^b1[6]^b0[6]
    Bit6=b3[6]^b2[6]^b1[5]^b1[6]^b0[5]
    Bit5=b3[5]^b2[5]^b1[4]^b1[5]^b0[4]
    Bit4=b3[4]^b2[4]^b1[3]^b1[4]^b0[3]^b1[7]
    Bit3=b3[3]^b2[3]^b1[2]^b1[3]^b0[2]
    Bit2=b3[2]^b2[2]^b1[1]^b1[2]^b0[1]
    Bit1=b3[1]^b2[1]^b1[0]^b1[1]^b0[0]^b1[7]
    Bit0=b3[0]^b2[0]^b1[0]^b0[7]^b1[7]
    のための共用回路を含む、請求項1に記載の装置。
  7. 前記MixColumnAllサブモジュールの前記共用回路が、CMOSゲートを含む、請求項1に記載の装置。
  8. MixColumnAll関数を実行するために前記MixColumnAllサブモジュールによって使用されるゲートの総数が、別々の回路を利用するMixColumn関数およびInvMixColumn関数によって使用されるゲートの組み合わせ総数よりも少ない、請求項7に記載の装置。
  9. 暗号化/復号のために複数行のデータの暗号化および逆暗号化を実行する変換モジュールであって、
    前記複数行のデータから新しい行のデータを生成する暗号化関数および前記新しい行のデータから前記複数行を生成する逆暗号化関数の両方の変換用に共用回路を利用するMixColumnAllサブモジュールを備える変換モジュール。
  10. 前記共用回路が、8ビット以上用に提供される、請求項9に記載の変換モジュール。
  11. 前記共用回路が、少なくとも8ビット用に提供され、各ビットに関する以下の共通ブール論理
    Bit7=b2[7]^b3[7]^b1[7]^b1[6]^b0[6]
    Bit6=b3[6]^b2[6]^b1[5]^b1[6]^b0[5]
    Bit5=b3[5]^b2[5]^b1[4]^b1[5]^b0[4]
    Bit4=b3[4]^b2[4]^b1[3]^b1[4]^b0[3]^b1[7]
    Bit3=b3[3]^b2[3]^b1[2]^b1[3]^b0[2]
    Bit2=b3[2]^b2[2]^b1[1]^b1[2]^b0[1]
    Bit1=b3[1]^b2[1]^b1[0]^b1[1]^b0[0]^b1[7]
    Bit0=b3[0]^b2[0]^b1[0]^b0[7]^b1[7]
    を有する、請求項9に記載の変換モジュール。
  12. 前記モジュールが、無線通信によって受信される平文/暗号文を変換する手段を備える、請求項11に記載の変換モジュール。
  13. 前記無線通信が、802.11形式を含む、請求項12に記載の変換モジュール。
  14. 前記複数行のデータが、合計で少なくとも128ビットになる、請求項9に記載の変換モジュール。
  15. データ暗号化/復号のための方法であって、
    (a)暗号化/復号のために少なくとも1つのデータ・ブロックを受信するステップと、
    (b)ステップ(a)からの前記少なくとも1つのブロックをバイト・ユニットに変換するステップと、
    (c)各ラウンド用の暗号化/復号のための鍵の値をブロック・ラウンド・ユニットに提供するステップと、
    (d)暗号化/復号されたブロックを出力装置に出力するステップとを含み、
    少なくとも1つのブロックを変換する前記ステップが、暗号化変換および逆暗号化変換の両方で共通の論理を共用することによって実行される方法。
  16. 前記逆暗号化関数が、高度暗号化標準(AES)によるInvMixColumn関数を含む、請求項15に記載の方法。
  17. 前記暗号化関数が、高度暗号化標準(AES)によるMixColumn関数を含む、請求項15に記載の方法。
  18. ブロック当たりのバイト・ユニットの総数が、8バイトに等しい、請求項15に記載の方法。
  19. コンピュータ可読媒体に収められた、暗号化/復号の際に共通論理を共用するための実行可能命令を含む、暗号化/復号のためのコンピュータ・プログラムであって、
    (a)暗号化/復号のために少なくとも1つのデータ・ブロックを受信するための実行可能命令と、
    (b)ステップ(a)からの前記少なくとも1つのデータ・ブロックを所定数のバイト・ユニットに変換するための実行可能命令であって、少なくとも1つのブロックの前記変換が、暗号化変換および逆暗号化変換の両方で共通の論理を共用することによって実行される実行可能命令と、
    (c)各ラウンド用の暗号化/復号のための鍵の値をブロック・ラウンド・ユニットに提供するための実行可能命令と、
    (d)暗号化/復号されたデータ・ブロックを出力装置に出力するための実行可能命令とを含むコンピュータ・プログラム。
  20. ステップ(b)の実行可能命令が、各ビットに関する以下の共通論理
    Bit7=b2[7]^b3[7]^b1[7]^b1[6]^b0[6]
    Bit6=b3[6]^b2[6]^b1[5]^b1[6]^b0[5]
    Bit5=b3[5]^b2[5]^b1[4]^b1[5]^b0[4]
    Bit4=b3[4]^b2[4]^b1[3]^b1[4]^b0[3]^b1[7]
    Bit3=b3[3]^b2[3]^b1[2]^b1[3]^b0[2]
    Bit2=b3[2]^b2[2]^b1[1]^b1[2]^b0[1]
    Bit1=b3[1]^b2[1]^b1[0]^b1[1]^b0[0]^b1[7]
    Bit0=b3[0]^b2[0]^b1[0]^b0[7]^b1[7]
    のための共用回路用の命令をさらに含む、請求項19に記載のコンピュータ・プログラム。
  21. 前記出力装置が、ディスプレイを含む、請求項19に記載のコンピュータ・プログラム。
  22. 前記出力装置が、記憶装置を含む、請求項19に記載のコンピュータ・プログラム。
  23. 前記出力装置が、プリンタを含む、請求項19に記載のコンピュータ・プログラム。
  24. 前記出力装置が、無線通信を介して暗号化/復号されたデータを受信する、請求項19に記載のコンピュータ・プログラム。
JP2006530630A 2003-05-14 2004-05-10 Mixcolumn/invmixcolumn関数のハードウェア実装 Withdrawn JP2006529031A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US47039103P 2003-05-14 2003-05-14
PCT/IB2004/001480 WO2004102870A2 (en) 2003-05-14 2004-05-10 A hardware implementation of the mixcolumn/ invmixcolumn functions

Publications (1)

Publication Number Publication Date
JP2006529031A true JP2006529031A (ja) 2006-12-28

Family

ID=33452395

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006530630A Withdrawn JP2006529031A (ja) 2003-05-14 2004-05-10 Mixcolumn/invmixcolumn関数のハードウェア実装

Country Status (6)

Country Link
US (1) US20060198524A1 (ja)
EP (1) EP1625693A2 (ja)
JP (1) JP2006529031A (ja)
KR (1) KR20060012002A (ja)
CN (1) CN1788450A (ja)
WO (1) WO2004102870A2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050087271A (ko) * 2004-02-26 2005-08-31 삼성전자주식회사 가변 키 길이를 가지는 초기 라운드 키에 대응하는 암호라운드 키와 복호 라운드 키를 선택적으로 발생하는 키스케쥴 장치
KR100594265B1 (ko) * 2004-03-16 2006-06-30 삼성전자주식회사 매스킹 방법이 적용된 데이터 암호처리장치, aes암호시스템 및 aes 암호방법.
US7783037B1 (en) * 2004-09-20 2010-08-24 Globalfoundries Inc. Multi-gigabit per second computing of the rijndael inverse cipher
KR100788902B1 (ko) 2006-12-06 2007-12-27 한국전자통신연구원 믹스컬럼블록 장치 및 이를 이용한 곱셈연산방법
KR100840944B1 (ko) 2006-12-06 2008-06-24 한국전자통신연구원 역믹스컬럼블록 장치 및 이를 이용한 곱셈연산방법
US8538015B2 (en) * 2007-03-28 2013-09-17 Intel Corporation Flexible architecture and instruction for advanced encryption standard (AES)
US9191197B2 (en) * 2007-10-10 2015-11-17 Canon Kabushiki Kaisha AES encryption/decryption circuit
US7506366B1 (en) * 2008-02-27 2009-03-17 International Business Machines Corporation Integrating workstation computer with badging system
CN101588234B (zh) * 2008-05-19 2013-10-02 北京大学深圳研究生院 一种aes中列混合变换模块的加解密复用方法
US8316338B2 (en) 2009-02-09 2012-11-20 The United States Of America, As Represented By The Secretary Of Commerce, The National Institute Of Standards & Technology Method of optimizing combinational circuits
US9425961B2 (en) * 2014-03-24 2016-08-23 Stmicroelectronics S.R.L. Method for performing an encryption of an AES type, and corresponding system and computer program product

Family Cites Families (1)

* 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

Also Published As

Publication number Publication date
CN1788450A (zh) 2006-06-14
WO2004102870A3 (en) 2005-01-06
KR20060012002A (ko) 2006-02-06
WO2004102870A8 (en) 2005-02-17
WO2004102870A2 (en) 2004-11-25
EP1625693A2 (en) 2006-02-15
US20060198524A1 (en) 2006-09-07

Similar Documents

Publication Publication Date Title
McLoone et al. High performance single-chip FPGA Rijndael algorithm implementations
EP1246389B1 (en) Apparatus for selectably encrypting or decrypting data
EP2096786B1 (en) Combining instructions including an instruction that performs a sequence of transformations to isolate one transformation
Borkar et al. FPGA implementation of AES algorithm
Moh'd et al. AES-512: 512-bit Advanced Encryption Standard algorithm design and evaluation
JP2006529031A (ja) Mixcolumn/invmixcolumn関数のハードウェア実装
Yewale Minal et al. Implementation of AES on FPGA
Balamurugan et al. High speed low cost implementation of advanced encryption standard on fpga
Manoj Kumar et al. Implementation of a High-Speed and High-Throughput Advanced Encryption Standard.
KR20050092698A (ko) 라인달 블록 암호의 서브바이트 함수를 실행하는 장치 및방법과 데이터 암호화 및 해독 장치
EP1629626B1 (en) Method and apparatus for a low memory hardware implementation of the key expansion function
Tamilselvi et al. A novel based mix-column architecture for AES-128 bit algorithm
Bajaj et al. AES algorithm for encryption
US20080181395A1 (en) Cryptographic operation apparatus
Balamurugan et al. Low power and high speed AES using mix column transformation
US20040071287A1 (en) Encryption circuit arrangement and method therefor
Rady et al. Design and implementation of area optimized AES algorithm on reconfigurable FPGA
Lanjewar et al. Implementation of AES-256 Bit: A Review
SUNEEL et al. DESIGN AND IMPLEMENTATION OF AREA-OPTIMIZED AES ALGORITHM USING PIPELINE TECHNOLOGY
Saidulu Fast pipelined AES algorithm implemented on Xilinx FPGAs
Kaur et al. IMPLEMENTATION OF AES ALGORITHM ON FPGA FOR LOW AREA CONSUMPTION.
Prasanthi et al. Enhanced AES algorithm
Liu et al. An optimized fpga implementation of an aes algorithm for embedded applications
Aruna et al. An FPGA Based Area Optimization of AES
ManjulaRani et al. An Efficient FPGA Implementation of Advanced Encryption Standard Algorithm on Virtex-5 FPGA’s

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070508

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20070522

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20070816