JP2005215688A - S−box演算を用いるハードウェア暗号化/復号化装置及び、その方法 - Google Patents

S−box演算を用いるハードウェア暗号化/復号化装置及び、その方法 Download PDF

Info

Publication number
JP2005215688A
JP2005215688A JP2005022279A JP2005022279A JP2005215688A JP 2005215688 A JP2005215688 A JP 2005215688A JP 2005022279 A JP2005022279 A JP 2005022279A JP 2005022279 A JP2005022279 A JP 2005022279A JP 2005215688 A JP2005215688 A JP 2005215688A
Authority
JP
Japan
Prior art keywords
data
result
key
galois field
bits
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
JP2005022279A
Other languages
English (en)
Inventor
Kyoung-Moon Ahn
慶 門 安
Mi-Jung Noh
美 貞 盧
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2005215688A publication Critical patent/JP2005215688A/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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or 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/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
    • 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/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Abstract

【課題】低電力高速動作のためのハードウェア暗号化/復号化装置及び、その方法を提供する。
【解決手段】ラウンド演算部で各ラウンド演算に該当するキーが入力されて、入力データを暗号文に変換させるハードウェア暗号化/復号化装置。ハードウェア暗号化/復号化装置のS−BOX演算または逆S−BOX演算は、ガロアフィールドGF(2)上の元素の乗算の逆元を、ガロアフィールドGF(((2)上の演算を用いて計算し、この計算結果を用いて入力されるベクトルを他のベクトルに置換する。
【選択図】図1

Description

本発明は、ハードウェア暗号化/復号化装置に係り、特に、AES(Advanced Encryption Standard)アルゴリズムのハードウェア暗号化または復号化装置に関する。
最近では、スマートカード、ICカードなどを用いた通信、インターネット通信、無線LAN通信などにおいて、ユーザーが伝送する情報には安全が保たれなければならない秘密情報が数多く存在する。したがって、ユーザーの秘密情報がハッキングによって流出するのを防止するために、署名や認証手続きを経て伝送される秘密情報を暗号文に変換して伝送するハードウェア暗号化/復号化装置が必要である。
暗号化演算は、一般的に速度が遅いため、スマートカードのような適用でハードウェアで実現することが多い。RSA(Rivest−Shamir−Adelman)、ECC体系(Elliptic Curve Crypto System)などのような公開キーアルゴリズムだけでなく、DES(Data Encryption Standard)、AES(Advanced Encryption Standard)のような対称キーアルゴリズムもハードウェアで実現される。
特に、AESは、SPN(Substitution Permutation Network)構造を有し、それはDESを代える対称キー暗号化アルゴリズムであって、ブロックの長さは128ビットであり、キーの長さは128、192及び256ビットである。用いられるキーの長さのそれぞれによって、10、12及び14ラウンドを行う。AESの暗号化過程は、初期入力キーの合算及び各ラウンドの演算で行われる。例えば、AESで、暗号化過程時に用いられるラウンド数をNrとすれば、“Sub_Byte変換”、“Shift_Row変換”、“Mix_Column変換”及び“Add_Round_Key演算”よりなるラウンド演算が(Nr−1)回行われ、最終ラウンド演算では“Mix_Column変換”を除いた“Sub_Byte変換”、“Shift_Row変換”及び“Add_Round_Key演算”が1回行われる。したがって、従来のAES暗号化アルゴリズムの実現で、暗号化過程では(Nr+1)以上のクロックサイクルが要求され、暗号化過程の逆過程を行う復号化過程では2(Nr+1)以上のクロックサイクルが要求される。そのようなAES暗号化アルゴリズムのラウンド演算については、特許文献1及び2に詳しく記載されている。
ところが、非線形変換である“Sub_Byte変換”はS−BOXによって行われ、S−BOXの演算はAES実現時に最も多量の電力を消耗する。すなわち、S−BOXは、非線形変換関数であって入力データを他のデータに置換し、その時、非線形変換関数の演算に用いられるメモリと回路の複雑度とが大きいため、多量の電力を消耗する。例えば、S−BOXで非線形関数による置換演算を行うために、ルックアップテーブル、SOP(Sum−of−Products)、POS(Produce−of−Sum)、PPRM(Positive Polarity Reed−Muller)form、BDD(Binary Decision Diagram)などの多様な方法が適用される。S−BOXの入力値に対する変換値を得るために、ルックアップテーブル方式は、ROM(Read Only Memory)にその値を保存して参照する。SOP、POS、PPRM form、BDDなどの方式は、データを8個の入力による2進表現で表わして回路を実現する。その時、そのような従来の方式でS−BOXを実現すれば、800ないし2200個程度のゲートサイズが要求され、スマートカード、ICカードなどのようにメモリ及び帯域幅に制限があり、低電力及び速い処理速度が要求される小型システムに適していないという問題点がある。
米国公開特許US2003−0133568号 韓国公開特許KR2002−61718号
本発明が達成しようとする技術的課題は、スマートカードやICカードなどの小型システムに容易に適用できる低電力及び、高速の暗号化または復号化が可能なハードウェア暗号化/復号化装置を提供するところにある。
本発明が達成しようとする他の技術的課題は、低電力及び高速の暗号化または復号化が可能なハードウェア暗号化/復号化方法を提供するところにある。
前記の技術的課題を達成するための本発明に係るハードウェア暗号化/復号化装置は、ラウンド演算部及びキースケジューラを備えることを特徴とする。前記ラウンド演算部は、各ラウンドに該当するN個のキーが入力されて、第1ラウンドで前記キーのうち第1キーを用いて入力データを暗号文に変換し、残りのN−1ラウンドのそれぞれで順次前記キーのうち第2キーないし第Nキーを用いて、以前ラウンドの変換結果を他の暗号文に変換する。前記キースケジューラは、入力キーを用いて前記第1キーないし前記第Nキーのそれぞれを生成する。前記ラウンドのそれぞれのS−BOXは、ガロアフィールドGF(2)上の元素の乗算の逆元を、ガロアフィールドGF(((2)上の演算を用いて計算し、前記計算結果を用いて入力されるベクトルを他のベクトルに置換することを特徴とする。前記ハードウェア暗号化/復号化装置は、伝送するデータと前記入力キーとを合算して、その合算結果を前記入力データとして出力する合算器を更に備えることを特徴とする。
前記S−BOXは、デルタ変換部、逆元計算部、逆デルタ変換部及びアフィン変換部を備えることを特徴とする。前記デルタ変換部は、入力されるベクトルの各元素をなすガロアフィールドGF(2)上の元素をガロアフィールドGF(((2)上の元素に変換する。前記逆元計算部は、前記ガロアフィールドGF(((2)上の元素の逆元を計算して出力する。前記逆デルタ変換部は、前記ガロアフィールドGF(((2)上の元素の逆元をガロアフィールドGF(2)上の元素に変換する。前記アフィン変換部は、アフィン関数によって、前記変換したガロアフィールドGF(2)上の元素をアフィン変換する。
前記の技術的課題を達成するための本発明に係るハードウェア暗号化/復号化方法は、N個のラウンドに対応する該当N個のキーが入力される段階と、前記ラウンドのうち第1ラウンドで、前記キーのうち第1キーを用いて入力データを暗号文に変換する段階と、残りのN−1ラウンドのそれぞれで、順次前記キーのうち第2キーないし第Nキーを用いて、以前ラウンドの変換結果を他の暗号文に変換する段階と、入力キーを用いて前記第1キーないし前記第Nキーのそれぞれを生成する段階と、を備え、前記ラウンドのそれぞれの暗号文に変換する段階は、S−BOX演算で、ガロアフィールドGF(2)上の逆元をガロアフィールドGF(((2)上の演算を用いて計算し、入力されるベクトルを前記計算結果を用いて他のベクトルに置換する段階を備えることを特徴とする。前記ハードウェア暗号化/復号化方法は、伝送するデータと前記入力キーとを合算して、その合算結果を前記入力データとして出力する段階を更に備えることを特徴とする。
本発明に係るハードウェア暗号化/復号化装置は、AES暗号化アルゴリズムの実現で、S−BOXが占めるハードウェア面積及びラウンドキー発生クロックとを最小化できる。したがって、小さな面積と速い動作速度が要求されるスマートカードやICカードなどの小型システムに容易に適用できる効果がある。
本発明と本発明の動作上との利点及び、本発明の実施によって達成される目的を十分に理解するには、本発明の好ましい実施例を示す添付図面及び添付図面に記載された内容を参照しなければならない。
以下、添付図面を参照して、本発明の好ましい実施例を説明することで、本発明を詳細に説明する。各図面に付された同一参照符号は同一部材を示す。
図1は、本発明の一実施例に係るハードウェア暗号化装置100のブロック図である。図1を参照すると、本発明の一実施例に係るAES方式のハードウェア暗号化装置100は、合算器110及びラウンド演算を行う複数のN個のラウンド120ないし150を備える。その他にも、ハードウェア暗号化装置100は、図4に示すようなキースケジューラ400を備える。キースケジューラ400は、入力キーINKEYと複数のN個ラウンド120ないし150とに該当するKEY1ないしKEY10を提供する。キースケジューラ400については、図4の説明で更に詳細に説明する。複数のN個ラウンド120ないし150のそれぞれでのラウンド演算は、各ラウンドで重複する演算を共有することができる。
合算器110は、初期入力キーINKEYの合算を行う。すなわち、合算器110は、伝送するデータTXDと入力キーINKEYとを合算して、その合算結果をラウンド120ないし150のうち第1ラウンド120の入力データとして出力する。ここで、伝送するデータTXDのブロックの長さは、一般的な場合と同様に128ビットであると仮定する。
複数のN個ラウンド120ないし150は、各ラウンドに該当するN個のキーKEY1ないしKEY10を入力して、暗号化のためのラウンド演算を行う。ここで、キーKEY1ないしKEY10のそれぞれのデータの長さは128ビットであると仮定し、それによって、ラウンド120ないし150の数は10個であり、10ラウンド演算を行うと仮定する。その他にも、周知のように、キーの長さがそれぞれ192及び256ビットである場合には、12及び14ラウンド演算を行う。
ラウンド120ないし150のうち第1ラウンド120は、キーのうち第1キーKEY1を用いて入力データ(TXD+INKEY)を暗号文に変換する。それによって、残りの9ラウンド130ないし150のそれぞれは、順次キーのうち第2キーKEY2ないし第10キーKEY10を用いて、以前ラウンドの変換結果を他の暗号文に変換する。第10番目の最終ラウンド150は、第10キーKEY10を用いて第9ラウンド140の変換結果を最終暗号文CIPHDに変換する。そのように、伝送するデータTXDが暗号化された最終暗号文CIPHDは、スマートカード、ICカードなどのような小型システムから伝送される秘密情報となる。その他にも、AES方式のハードウェア暗号化/復号化装置は、安全が維持されねばならない秘密情報の送受信のために、インターネット通信、無線LAN通信などにも用いられる。
ここで、ラウンド120ないし150によって、一般的なAES暗号化過程と同様に、ラウンド数が10であるため、“Sub_Byte変換”、“Shift_Row変換”、“Mix_Column変換”及び“Add_Round_Key演算”よりなるラウンド演算が9回行われ、最終ラウンド演算では“Mix_Column変換”を除いた“Sub_Byte変換”、“Shift_Row変換”及び“Add_Round_Key演算”が1回行われる。一般的に、非線形変換である“Sub_Byte変換”を行うためには、用いられるメモリと回路の複雑度とが大きいため、多量の電力を消耗する。それによって、本発明の一実施例に係るハードウェア暗号化/復号化装置は、ラウンド演算で、Sub_Byte回路(図2の160、図3の200)または逆Sub_Byte回路(図11の1700、図12の2100)に新たなS−BOX(図5及び図13)を備え、従来と異なる方式で“Sub_Byte変換”と“逆Sub_Byte変換”とを行って入力されるベクトルを他のベクトルに置換する。まず、本発明の一実施例によって提案されたハードウェア暗号化装置100では、ラウンド120ないし150のラウンド演算を行う時に、S−BOX(図5)のハードウェアの負担及び消費電力を減らすために、“Sub_Byte変換”を行うに当たって、ガロアフィールド(Galois Field)GF(2)上の元素の乗算の逆元計算がガロアフィールドGF(2)の合成フィールド、すなわち、GF(2)、GF((2)及びGF(((2)上の演算で行われる。乗算の逆元は、乗算して1となる数であり、逆数である。本発明の一実施例によって提案されたS−BOX(図5)の動作については、図2、図3及び図5の説明で更に具体的に記述される。
図2は、図1の第1ラウンド120ないし第9ラウンド140を示す具体的なブロック図である。図2を参照すれば、第1ラウンド120ないし第9ラウンド140のそれぞれは、Sub_Byte回路160、Shift_Row回路170、Mix_Column回路180及び合算器190を備える。前記したように、ラウンド数が10であるため、第1ラウンド120ないし第9ラウンド140を通じて、“Sub_Byte変換”、“Shift_Row変換”、“Mix_Column変換”及び“Add_Round_Key演算”よりなるラウンド演算が9回行われる。
Sub_Byte回路160は、S−BOX(図5)を通じて、“Sub_Byte変換”のためのガロアフィールドGF(2)上の逆元計算で、ガロアフィールドGF(((2)上の演算を用いて計算し、計算結果を用いて入力されるベクトルINCIPHを他のベクトルに置換する。すなわち、ガロアフィールドGF(2)上の逆元計算は、ガロアフィールドGF(2)の合成フィールド、すなわち、GF(2)、GF((2)及びGF(((2)上の演算で行われる。
そのような合成フィールドを用いて逆元を計算する理論については、論文“Akashi Satoh,Sumio Morioka,Kohji Takano,and Seiji Munetoh,<A Compact Rijndael Hardware Architecture with S−Box Optimization>,ASIACRYPT 2001”を参照した。一般的な通信標準によれば、ガロアフィールドGF(2)、GF(2)、GF((2)及びGF(((2)のそれぞれについての原始多項式は、数式1の通りである。数式1のような原始多項式は、約分できない既約多項式である。λ={1100}∈GF((2)であり、φ={10}∈GF(2)である。すなわち、第1係数λは、ガロアフィールドGF((2)上で2進数{1100}であり、第2係数φは、ガロアフィールドGF(2)上で2進数{10}である。
Figure 2005215688
Shift_Row回路170は、“Shift_Row変換”を行うために、Sub_Byte回路160の出力信号を入力ベクトルとして受けて、ロー単位でシフト処理する関数によって、入力ベクトルをロー単位でシフト処理して出力する。Mix_Column回路180は、“Mix_Column変換”を行うために、カラム単位で置換処理する関数によって、Shift_Row回路170の出力ベクトルをカラム単位で置換処理して出力する。合算器190は、“Add_Round_Key演算”を行うために、Mix_Column回路180の出力ベクトルと、キーのうち該当ラウンドキーKEYNとを合算して出力する。合算器190から出力された暗号文OUTCIPHは、次のラウンドに入力される。
図3は、図1の第10ラウンド150を示す具体的なブロック図である。図3を参照すれば、図1の第10ラウンド150は、Sub_Byte回路200、Shift_Row回路210及び合算器220を備える。前記したように、ラウンド数が10であるため、最終ラウンドである第10ラウンド150を通じて、“Sub_Byte変換”、“Shift_Row変換”及び“Add_Round_Key演算”よりなるラウンド演算が1回行われる。Sub_Byte回路200、Shift_Row回路210及び合算器220の動作は、図2のSub_Byte回路160、Shift_Row回路170及び合算器190の動作と同じであるため、ここでは説明を省略する。
図4は、図1のキーINKEY、KEY1ないしKEY10を発生させるキースケジューラ400を示すブロック図である。図4を参照すると、前記キースケジューラ400は、レジスタ410、マルチプレクサ420及びキー生成器430を備える。
図4で、入力キーINKEYは、ユーザーが暗号化に用いるキーであって、本発明に係るAES暗号化過程のためにユーザーによって入力されるキーである。キー生成器430は、マルチプレクサ420を介して入力される入力キーINKEYを用いて、第1ラウンド120で用いられる第1キーKEY1を生成する。キースケジューラ400は、第1ラウンド120の演算が行われる前である初期に、図1の合算器110に入力キーINKEYを提供する。図1の合算器110への入力キーINKEYの提供と、キー生成器430での前記第1キーKEY1の発生とは、システムクロック(図示せず)の1つのサイクルで行なうことができる。キー生成器430で生成された第1キーKEY1は、レジスタ410に保存されると共に第1ラウンド120のラウンドキーとなり、次のシステムクロックに、レジスタ410からマルチプレクサ420に入力される。マルチプレクサ420は、所定制御信号RNDSTの論理状態によって、選択的に入力キーINKEYまたはレジスタ410から出力された第1キーKEY1を出力する。第1キーKEY1がキー生成器430に入力されれば、キー生成器430は第2キーKEY2を生成して出力する。
すなわち、残りの9ラウンド130ないし150のそれぞれで用いられる第2キーKEY2ないし第10キーKEY10は、キー生成器430が、以前ラウンドで用いられるキーKEYNが保存されるレジスタ410の値を用いて、順次発生させる。例えば、第1キーKEY1が、レジスタ410からマルチプレクサ420を介してキー生成器430に入力される時、キー生成器430は第1キーKEY1を用いて、第2ラウンド130で用いられる第2キーKEY2を発生させる。
そのように、キースケジューラ400が入力キーINKEYを用いて、第1キーKEY1ないし第10キーKEY10のそれぞれを生成することで、10ケラウンド120ないし150に該当ラウンドキーKEY1ないしKEY10を提供する。前述のように、図1の合算器110への入力キーINKEYの提供と、第1キーKEY1の発生とは、システムクロックの1つのサイクルで行われるため、図1のような本発明に係るAES暗号化アルゴリズムを実現する時、暗号化過程には10クロックサイクルが要求される。暗号化過程の逆過程を行う復号化過程には、20クロックサイクルが要求される。そのように、本発明のAES暗号化過程では、キー発生のクロックサイクル数を最小化して速い演算を行うようにした。復号化過程については、図10ないし図13の説明で更に具体的に説明する。
図5は、図2及び図3のSub_Byte回路160、200で用いられるS−BOXを示すブロック図である。図5を参照すると、S−BOXは、デルタ変換部(δ)161、逆元計算部(X−1)162、逆デルタ変換部(δ−1)163及びアフィン変換部(AFFIEN)164を備える。
デルタ変換部161は、入力されるベクトルSBINの各元素をなすガロアフィールドGF(2)上の元素を、ガロアフィールドGF(((2)上の元素に同型変換させる。図5に示すように、入力されるベクトルSBINは128ビットであり、それらは、8ビットのデータを有する16元素S00ないしS33よりなる。デルタ変換部161の同型変換式は、数式2及び数式3の通りである。数式2で、xは入力ベクトルSBINであり、yは同型変換ベクトルδによって変換したベクトルである。
Figure 2005215688
Figure 2005215688
逆元計算部162は、ガロアフィールドGF(((2)上の元素の乗算の逆元を計算して出力する。逆元計算部162の逆元計算は、図6で詳細に説明する。
逆デルタ変換部163は、逆元計算部162で計算されたガロアフィールドGF(((2)上の元素の乗算の逆元を、ガロアフィールドGF(2)上の元素に逆同型変換させる。逆デルタ変換部163の逆同型変換式は、数式4及び数式5の通りである。数式4で、yは逆デルタ変換部163が入力される逆元ベクトルであり、xは逆同型変換ベクトルδ−1によって逆変換したベクトルである。
Figure 2005215688
Figure 2005215688
アフィン変換部164は、アフィン関数によって、逆デルタ変換部163で変換したガロアフィールドGF(2)上の元素をアフィン変換させる。図5に示すように、アフィン変換したベクトルSBOUTは、デルタ変換部161が入力されるベクトルSBINと同様に128ビットであり、それらは、8ビットのデータを有する16元素S00’ないしS33’よりなる。アフィン変換式は、数式6の通りである。数式6で、xないしxは、逆デルタ変換部163で変換したガロアフィールドGF(2)上の元素(8ビットデータ)のビット値であり、x’ないしx’は、アフィン変換した元素(8ビットデータ)のビット値である。
Figure 2005215688
図6は、GF(((2)上で、逆元計算のための図5の逆元計算部162を示す具体的なブロック図である。図6を参照すると、逆元計算部162は、第1合算器601、第1乗算器602、第1自乗器603、第1係数乗算器608、第2合算器604、第1逆元計算器605、第2乗算器606及び第3乗算器607を備える。第1合算器601は、ガロアフィールドGF(((2)上の元素を形成する8ビットデジタルデータの下位4ビットデータP[3:0]と、上位4ビットデータP[3:0]とを第1合算する。第1乗算器602は、ガロアフィールドGF((2)上で、第1合算結果に下位4ビットデータP[3:0]を第1乗算する。第1自乗器603は、上位4ビットデータP[3:0]を第1自乗する。第1係数乗算器608は、第1自乗結果に第1係数λ(数式1参照)を乗算する。第2合算器604は、第1乗算結果と第1自乗結果とを第2合算する。第1逆元計算器605は、ガロアフィールドGF((2)上で、第2合算結果の逆元を計算する。第1逆元計算器605の逆元計算については、図7の説明で詳細に記述する。
第2乗算器606は、ガロアフィールドGF((2)上で、第2合算結果の逆元に第1合算結果を第2乗算して、第2乗算結果を前記下位4ビットデータの逆元P −1[3:0]として出力する。第3乗算器607は、ガロアフィールドGF((2)上で、第2合算結果の逆元に前記上位4ビットデータP[3:0]を第3乗算して、第3乗算結果を上位4ビットデータの逆元P −1[3:0]として出力する。
図7は、GF((2)上で、逆元計算のための図6の第1逆元計算器605を示す具体的なブロック図である。図7を参照すると、図6の第1逆元計算器605は、第3合算器701、第4乗算器702、第2自乗器703、第2係数乗算器704、第4合算器705、第2逆元計算器706、第5乗算器707及び第6乗算器708を備える。第3合算器701は、図6の第2合算器604から出力される第2合算結果をなす4ビットデジタルデータの下位2ビットデータQ[1:0]と、上位2ビットデータQ[1:0]とを第3合算する。第4乗算器702は、ガロアフィールドGF(2)上で、第3合算結果に下位2ビットデータQ[1:0]を第4乗算する。第2自乗器703は、上位2ビットデータQ[1:0]を第2自乗する。第2係数乗算器704は、第2自乗結果に第2係数φ(数式1参照)を乗算する。第4合算器705は、第4乗算結果と第2係数乗算結果とを第4合算する。第2逆元計算器706は、第4合算結果の自乗を計算して、第4合算結果の逆元として出力する。すなわち、第4合算結果の自乗は、その逆元と同じである。第5乗算器707は、ガロアフィールドGF(2)上で、第4合算結果の逆元に第3合算結果を第5乗算して、第5乗算結果を下位2ビットデータの逆元Q −1[1:0]として出力する。前6乗算器708は、ガロアフィールドGF(2)上で、前4合算結果の逆元に上位2ビットデータを第6乗算して、第6乗算結果を上位2ビットデータの逆元Q −1[1:0]として出力する。
図8は、GF((2)上で、乗算のための図6の4ビット乗算器602、606、607を示す具体的なブロック図である。図8を参照すると、図6の4ビット乗算器602、606、607は、第5合算器801、第6合算器802、第7乗算器803、第8乗算器804、第9乗算器805、第7合算器806、第3係数乗算器807及び第8合算器808を備える。前記4ビット乗算器602、606、607は、2個の4ビットデジタルデータを第1データA及び第2データBとして入力して、ガロアフィールドGF((2)上で、2個の4ビットデータの乗算値Mを計算する。第5合算器801は、第2データBの下位2ビットデータB[1:0]と上位2ビットデータB[1:0]とを第5合算する。第6合算器802は、第1データAの下位2ビットA[1:0]と上位2ビットデータA[1:0]とを第6合算する。第7乗算器803は、ガロアフィールドGF(2)上で、第2データBの下位2ビットデータB[1:0]及び、第1データAの下位2ビットデータA[1:0]を第7乗算する。第8乗算器804は、第2データBの上位2ビットデータB[1:0]及び、第1データAの上位2ビットデータA[1:0]を第8乗算する。第9乗算器805は、ガロアフィールドGF(2)上で、第5合算結果に第6合算結果を第9乗算する。第7合算器806は、第9乗算結果と第7乗算結果とを第7合算して、第7合算結果を4ビットデータの乗算値の上位2ビットデータM[1:0]として出力する。第3係数乗算器807は、第8乗算結果に第2係数φ(数式1参照)を乗算する。第8合算器808は、第7乗算結果と第2係数乗算結果とを第8合算して、第8合算結果を4ビットデータの乗算値の下位2ビットデータM[1:0]として出力する。
図9は、GF(2)上で、乗算のための図7及び図8の2ビット乗算器702、707、708、803、804、805を示す具体的なブロック図である。図9を参照すれば、図7及び図8の2ビット乗算器702、707、708、803、804、805は、第1論理積ロジック901、第2論理積ロジック902、第3論理積ロジック903、第4論理積ロジック904、第1排他的論理和ロジック905、第2排他的論理和ロジック906及び第3排他的論理和ロジック907を備える。2ビット乗算器702、707、708、803、804、805は、2個の2ビットデジタルデータを第3データC及び第4データDとして入力されて、ガロアフィールドGF(2)上で、2個の2ビットデータC、Dの乗算値を計算する。2個の2ビットデータC、Dの乗算値の計算は、数式7を用いる。すなわち、第3データCをax+b、第4データDをcx+dで示せば、数式7が成り立つ。数式1で、ガロアフィールドGF(2)上で原始多項式はx+x+1であり、その原始多項式は約分できない既約多項式であるため、数式7でのようにxはx+1と同じである。数式7で、a、cは2ビットデータのうち上位ビットデータであり、b、dは2ビットデータのうち下位ビットデータである。
Figure 2005215688
したがって、2ビット乗算器702、707、708、803、804、805は、次の通りに乗算値を計算する。第1論理積ロジック901は、第3データC及び第4データDの上位ビットデータa、cを第1論理積演算する。第2論理積ロジック902は、第3データCの下位ビットbと第4データDの上位ビットcとを第2論理積演算する。第3論理積ロジック903は、第3データCの上位ビットaと第4データDの下位ビットdとを第3論理積演算する。第4論理積ロジック904は、第3データC及び第4データDの下位ビットデータb、dを第4論理積演算する。第1排他的論理和ロジック905は、第1論理積演算結果ac及び第2論理積演算結果bcを第1排他的論理和演算する。第2排他的論理和ロジック906は、第1排他的論理和演算結果と第3論理積演算結果adとを第2排他的論理和演算して、第2排他的論理和演算結果を、2ビットデータの乗算値の上位ビットデータac+ad+bcとして出力する。第3排他的論理和ロジック907は、第1論理積演算結果ac及び第4論理積演算結果bdを第3排他的論理和演算して、第3排他的論理和演算結果を2ビットデータの乗算値の下位ビットデータac+bdとして出力する。
図10は、図1のハードウェア暗号化装置100から伝送された暗号文を復号するハードウェア復号化装置を示す一例である。図10に示すように、受信側でハードウェア復号化装置は、図1のハードウェア暗号化装置100から伝送された暗号文CIPHDを受信し、ユーザーから入力される入力キーINKEYを用いて暗号文CIPHDを平文に復号する。前記ハードウェア復号化装置から出力される平文は、スマートカード、ICカード、インターネット通信、無線LAN通信などのようなシステムから伝送される秘密情報や認証/署名データである。復号化過程は、前述のAES暗号化過程の逆過程を行うものであって、図1のように、ハードウェア暗号化装置100が10ラウンド演算を行う場合に、ハードウェア復号化装置は、暗号化過程の逆過程を更に行って総20ラウンド演算を行う。ハードウェア復号化装置は、合算器1100と10個のラウンド1200ないし1500とを行うことで、平文を出力する。復号化時に用いられるキーINKEYないしKEY10は、暗号化時に用いられるキーINKEYないしKEY10を逆順で用いる。まず、キースケジューラ400は、復号化のために入力キーINKEYを用いて、暗号化過程と同じ方法でKEY1からKEY10まで生成する。KEY10が生成されれば、図10のような復号化過程を行い、その時、キースケジューラ400によって、それぞれのラウンド1200ないし1500で用いられるラウンドキーKEY9ないしINKEYが生成される。その時、そのような復号化過程に必要なシステムクロックサイクル数は、前述したように、20サイクルが要求される。
図11は、図10の復号過程にある第10ラウンドないし第2ラウンド1200ないし1400を示す具体的なブロック図である。図11に示されたように、ラウンド1200ないし1400は、逆Shift_Row回路1600で暗号文I_INCIPHを“逆Shift_Row変換”した後、逆Sub_Byte回路1700で“逆Sub_Byte変換”を行う。逆Sub_Byte回路1700の結果値は、合算器1800で該当キーKEYNと合算され、その合算結果値は、逆Mix_Column回路1900に入力される。逆Mix_Column回路1900は“逆Mix_Column変換”を行う。
図12は、図10の第1ラウンド1500を示す具体的なブロック図である。図12を参照すれば、図10の第1ラウンド1500は、逆Shift_Row回路2000、逆Sub_Byte回路2100及び合算器2200を備える。最終ラウンドである第1ラウンド1500では、“逆Shift_Row変換”、“逆Sub_Byte変換”及び“Add_Round_Key演算”よりなるラウンド演算が1回行われる。
図13は、図11及び図12の逆SUB_BYTE回路1700、2100に用いられる逆S−BOXを示す具体的なブロック図である。図13を参照すると、逆S−BOXは、逆アフィン変換部2300、デルタ変換部2400、逆元計算部2500及び逆デルタ変換部2600を通じて、図5の暗号化変換の逆過程を行う。
当業者ならば、図10ないし図13の逆変換過程は十分に理解でき、実際ハードウェアで実現できるため、そのような逆変換過程について具体的な説明を省略する。
前述のように、本発明の一実施例に係るAES方式のハードウェア暗号化/復号化装置で、非線形変換関数による演算を行うS−BOX(図5)は、GF(2)上の元素の乗算の逆元計算を、合成フィールドよりなるGF(((2)上の演算を用いて計算する。また、ハードウェア暗号化/復号化装置は、初期ラウンドキーの生成時にクロックの無駄が無く、各ラウンドで用いられるキーKEYNを毎クロックごとに生成する最適化されたキースケジューラ400構造を適用する。したがって、S−BOX(図5)または逆S−BOX(図13)のゲートサイズが約400個となってハードウェアの負担を減らすことができ得、従来技術に比べて非線形変換関数演算のためのクロック数が減る。そのようなS−BOX(図5)または逆S−BOX(図13)の演算は、可変的なキーの長さ、すなわち、128、192及び256ビットのそれぞれによって10、12及び14ラウンドで行われる。
以上のように、図面と明細書とで最良の実施例が開示された。ここで、特定用語を用いたが、これは単に、本発明を説明するための目的で用いられたものであり、意味限定や特許請求の範囲に記載された本発明の範囲を制限するために用いられたものではない。したがって、当業者ならば、これから多様な変形及び均等な他の実施例が可能であるということが理解できるであろう。したがって、本発明の真の技術的保護範囲は、特許請求の範囲の技術的思想によって決めなければならない。
本発明に係るハードウェア暗号化/復号化装置及び方法は、安全認証が要求されるインターネット通信、無線LAN通信、スマートカード通信及びICカード通信などに用いられる。
本発明の一実施例に係るハードウェア暗号化装置のブロック図である。 図1の第1ラウンド120ないし第9ラウンド140を示す具体的なブロック図である。 図1の第10ラウンド150を示す具体的なブロック図である。 図1のキーを発生させるキースケジューラを示すブロック図である。 図2及び図3のSub_Byte回路160で用いられるS−BOXを示すブロック図である。 GF(((2)上で、逆元計算のための図5の逆元計算部162を示す具体的なブロック図である。 GF((2)上で、逆元計算のための図6の第1逆元計算器605を示す具体的なブロック図である。 GF((2)上で、乗算のための図6の4ビット乗算器602、606、607を示す具体的なブロック図である。 GF(2)上で、乗算のための図7及び図8の2ビット乗算器702、707、708、803、804、805を示す具体的なブロック図である。 図1のハードウェア暗号化装置から伝送された暗号文を復号するハードウェア復号化装置を示す例示図である。 図10の復号過程にある第10ラウンドないし第2ラウンド1200ないし1400を示す具体的なブロック図である。 図10の第1ラウンド1500を示す具体的なブロック図である。 図11及び図12の逆Sub_Byte回路1700、2100で用いられる逆S−BOXを示すブロック図である。
符号の説明
100 ハードウェア暗号化装置
110 合算器
120〜150 ラウンド
INKEY 入力キー
KEY1〜KEY10 キー
TXD 伝送するデータ
CIPHD 最終暗号文

Claims (22)

  1. 各ラウンドに該当するN(自然数)個のキーが入力され、第1ラウンドで前記キーのうち第1キーを用いて入力データを暗号文に変換し、残りのN−1ラウンドのそれぞれで順次前記キーのうち第2キーないし第Nキーを用いて、以前ラウンドの変換結果を他の暗号文に変換するラウンド演算部と、
    入力キーを用いて前記第1キーないし前記第Nキーのそれぞれを生成するキースケジューラと、を備え、前記ラウンドのそれぞれは、
    ガロアフィールドGF(2)上の元素の乗算の逆元をガロアフィールドGF(((2)上の演算を用いて計算し、前記計算結果を用いて入力されるベクトルを他のベクトルに置換するS−BOXを備えることを特徴とするハードウェア暗号化/復号化装置。
  2. 前記ハードウェア暗号化/復号化装置は、
    伝送するデータと前記入力キーとを合算して、その合算結果を前記入力データとして出力する合算器を更に備えることを特徴とする請求項1に記載のハードウェア暗号化/復号化装置。
  3. 前記Nは、
    10であることを特徴とする請求項1に記載のハードウェア暗号化/復号化装置。
  4. 前記Nは、
    12であることを特徴とする請求項1に記載のハードウェア暗号化/復号化装置。
  5. 前記Nは、
    14であることを特徴とする請求項1に記載のハードウェア暗号化/復号化装置。
  6. 前記第1ラウンドないし前記第N−1ラウンドのそれぞれは、
    前記S−BOXを用いて入力ベクトルを他のベクトルに置換するSub_Byte回路と、
    ロー単位でシフト処理する関数によって、前記Sub_Byte回路の出力ベクトルをロー単位でシフト処理して出力するShift_Row回路と、
    カラム単位で置換処理する関数によって、前記Shift_Row回路の出力ベクトルをカラム単位で置換処理して出力するMix_Column回路と、
    前記Mix_Column回路の出力ベクトルと、前記キーのうち該当ラウンドキーとを合算して出力する合算器と、を更に備え、
    前記第Nラウンドは、
    前記S−BOXを用いて入力ベクトルを他のベクトルに置換するSub_Byte回路と、
    ロー単位でシフト処理する関数によって、前記Sub_Byte回路の出力ベクトルをロー単位でシフト処理して出力するShift_Row回路と、
    前記Shift_Row回路の出力ベクトルと、前記キーのうち該当ラウンドキーとを合算して出力する合算器と、を更に備えることを特徴とする請求項1に記載のハードウェア暗号化/復号化装置。
  7. 前記S−BOXは、
    入力されるベクトルの各元素を形成するガロアフィールドGF(2)上の元素を、ガロアフィールドGF(((2)上の元素に変換するデルタ変換部と、
    前記ガロアフィールドGF(((2)上の元素の逆元を計算して出力する逆元計算部と、
    前記ガロアフィールドGF(((2)上の元素の逆元を、ガロアフィールドGF(2)上の元素に変換する逆デルタ変換部と、
    アフィン関数によって、前記変換したガロアフィールドGF(2)上の元素をアフィン変換するアフィン変換部と、を備えることを特徴とする請求項1に記載のハードウェア暗号化/復号化装置。
  8. 前記逆元計算部は、
    前記ガロアフィールドGF(((2)上の元素をなす8ビットデジタルデータの下位4ビットと上位4ビットデータとを第1合算する第1合算器と、
    ガロアフィールドGF((2)上で、前記第1合算結果に前記下位4ビットデータを第1乗算する第1乗算器と、
    前記上位4ビットデータを第1自乗する第1自乗器と、
    前記第1自乗結果に第1係数を乗算する第1係数乗算器と、
    前記第1乗算結果と前記第1自乗結果とを第2合算する第2合算器と、
    前記ガロアフィールドGF((2)上で、前記第2合算結果の逆元を計算する第1逆元計算器と、
    ガロアフィールドGF((2)上で、前記第2合算結果の逆元に前記第1合算結果を第2乗算して、前記第2乗算結果を前記下位4ビットデータの逆元として出力する第2乗算器と、
    ガロアフィールドGF((2)上で、前記第2合算結果の逆元に前記上位4ビットデータを第3乗算して、前記第3乗算結果を前記上位4ビットデータの逆元として出力する第3乗算器と、を備えることを特徴とする請求項7に記載のハードウェア暗号化/復号化装置。
  9. 前記第1逆元計算器は、
    前記第2合算結果をなす4ビットデジタルデータの下位2ビットと上位2ビットデータとを第3合算する第3合算器と、
    ガロアフィールドGF(2)上で、前記第3合算結果に前記下位2ビットデータを第4乗算する第4乗算器と、
    前記上位2ビットデータを第2自乗する第2自乗器と、
    前記第2自乗結果に第2係数を乗算する第2係数乗算器と、
    前記第4乗算結果と前記第2係数乗算結果とを第4合算する第4合算器と、
    前記第4合算結果の自乗を計算して、前記第4合算結果の逆元として出力する第2逆元計算器と、
    ガロアフィールドGF(2)上で、前記第4合算結果の逆元に前記第3合算結果を第5乗算して、前記第5乗算結果を前記下位2ビットデータの逆元として出力する第5乗算器と、
    前記ガロアフィールドGF(2)上で、前記第4合算結果の逆元に前記上位2ビットデータを第6乗算して、前記第6乗算結果を前記上位2ビットデータの逆元として出力する第6乗算器と、を備えることを特徴とする請求項8に記載のハードウェア暗号化/復号化装置。
  10. 前記第1乗算器ないし第3乗算器のそれぞれは、
    4ビットを有する第2データの下位2ビットと上位2ビットデータとを第5合算する第5合算器と、
    4ビットを有する第1データの下位2ビットと上位2ビットデータとを第6合算する第6合算器と、
    ガロアフィールドGF(2)上で、前記第1データ及び前記第2データの下位2ビットデータを第7乗算する第7乗算器と、
    前記ガロアフィールドGF(2)上で、前記第1データ及び前記第2データの上位2ビットデータを第8乗算する第8乗算器と、
    前記ガロアフィールドGF(2)上で、前記第5合算結果に前記第6合算結果を第9乗算する第9乗算器と、
    前記第9乗算結果と前記第7乗算結果とを第7合算して、前記第7合算結果を前記4ビットデータの乗算値の上位2ビットデータとして出力する第7合算器と、
    前記第8乗算結果に第2係数を乗算する第2係数乗算器と、
    前記第7乗算結果と第2係数乗算結果とを第8合算して、前記第8合算結果を前記4ビットデータの乗算値の下位2ビットデータとして出力する第8合算器と、を備えることを特徴とする請求項8に記載のハードウェア暗号化/復号化装置。
  11. 前記第4乗算器ないし第6乗算器のそれぞれは、
    2ビットを有する第1データの上位ビットデータ及び、2ビットを有する第2データの上位ビットデータを第1論理積演算する第1論理積ロジックと、
    前記第1データの下位ビットと前記第2データの上位ビットとを第2論理積演算する第2論理積ロジックと、
    前記第1データの上位ビットと前記第2データの下位ビットとを第3論理積演算する第3論理積ロジックと、
    前記第1データ及び前記第2データの下位ビットデータを第4論理積演算する第4論理積ロジックと、
    前記第1論理積及び前記第2論理積演算結果を第1排他的論理和演算する第1排他的論理和ロジックと、
    前記第1排他的論理和演算結果と前記第3論理積演算結果とを第2排他的論理和演算して、前記第2排他的論理和演算結果を、前記2ビットデータの乗算値の上位ビットデータとして出力する第2排他的論理和ロジックと、
    前記第1論理積及び前記第4論理積演算結果を第3排他的論理和演算して、前記第3排他的論理和演算結果を、前記2ビットデータの乗算値の下位ビットデータとして出力する第3排他的論理和ロジックと、を備えることを特徴とする請求項9に記載のハードウェア暗号化/復号化装置。
  12. 前記第7乗算器ないし第9乗算器のそれぞれは、
    2ビットを有する第3データの上位ビットデータ及び、2ビットを有する第4データの上位ビットデータを第1論理積演算する第1論理積ロジックと、
    前記第3データの下位ビットと前記第4データの上位ビットとを第2論理積演算する第2論理積ロジックと、
    前記第3データの上位ビットと前記第4データの下位ビットとを第3論理積演算する第3論理積ロジックと、
    前記第3データ及び前記第4データの下位ビットデータを第4論理積演算する第4論理積ロジックと、
    前記第1論理積及び前記第2論理積演算結果を第1排他的論理和演算する第1排他的論理和ロジックと、
    前記第1排他的論理和演算結果と前記第3論理積演算結果とを第2排他的論理和演算して、前記第2排他的論理和演算結果を、前記2ビットデータの乗算値の上位ビットデータとして出力する第2排他的論理和ロジックと、
    前記第1論理積及び前記第4論理積演算結果を第3排他的論理和演算して、前記第3排他的論理和演算結果を、前記2ビットデータの乗算値の下位ビットデータとして出力する第3排他的論理和ロジックと、を備えることを特徴とする請求項10に記載のハードウェア暗号化/復号化装置。
  13. 前記キースケジューラは、
    前記入力キーを用いて前記第1ラウンドで用いられる前記第1キーを生成し、前記残りのN−1ラウンドのそれぞれで用いられる前記第2キーないし前記第Nキーは、以前ラウンドで用いられるキーが保存されるレジスタ値を用いて順次に発生させ、前記合算器への前記入力キーの提供と前記第1キーの発生とは、所定クロックの1つのサイクルに行われることを特徴とする請求項2に記載のハードウェア暗号化/復号化装置。
  14. 前記キースケジューラは、
    前記入力キーとレジスタとからの出力を受信し、制御信号によって選択的に前記受信された信号のうちいずれか1つを出力するマルチプレクサと、
    前記マルチプレクサの出力を受信し、前記レジスタによって受信されるキーを生成して出力するキー生成器と、を含むことを特徴とする請求項1に記載のハードウェア暗号化/復号化装置。
  15. 入力キーを用いてN個のラウンドに対応する該当N個のキーを生成する段階と、
    前記ラウンドのうち第1ラウンドで、前記キーのうち第1キーを用いて入力データを暗号文に変換させる段階と、
    残りのN−1ラウンドのそれぞれで、順次前記キーのうち第2キーないし第Nキーを用いて、以前ラウンドの変換結果を他の暗号文に変換させる段階と、を備え、前記ラウンドのそれぞれの暗号文に変換させる段階は、
    S−BOX演算で、ガロアフィールドGF(2)上の乗算の逆元をガロアフィールドGF(((2)上の演算を用いて計算し、入力されるベクトルを前記計算結果を用いて他のベクトルに置換する段階を備えることを特徴とするハードウェア暗号化/復号化方法。
  16. 前記ハードウェア暗号化/復号化方法は、
    伝送するデータと前記入力キーとを合算して、その合算結果を前記入力データとして出力する段階を更に備えることを特徴とする請求項15に記載のハードウェア暗号化/復号化方法。
  17. 前記Nは、
    10であることを特徴とする請求項15に記載のハードウェア暗号化/復号化方法。
  18. 前記第1ラウンドないし前記第N−1ラウンドのそれぞれで暗号文に変換させる段階は、
    入力される信号を入力ベクトルとして受けて、前記S−BOX演算を行ってその結果を出力する段階と、
    ロー単位でシフト処理する関数によって、前記S−BOX演算結果をロー単位でシフト処理して出力する段階と、
    カラム単位で置換処理する関数によって、前記ロー単位でシフト処理されたベクトルをカラム単位で置換処理して出力する段階と、
    前記カラム単位で置換処理されたベクトルと、前記キーのうち該当ラウンドキーとを合算して出力する段階と、を備え、
    前記第Nラウンドで暗号文に変換させる段階は、
    入力される信号を入力ベクトルとして受けて、前記S−BOX演算を行ってその結果を出力する段階と、
    ロー単位でシフト処理する関数によって、前記S−BOX演算結果をロー単位でシフト処理して出力する段階と、
    前記ロー単位でシフト処理されたベクトルと、前記キーのうち該当ラウンドキーとを合算して出力する段階と、を備えることを特徴とする請求項15に記載のハードウェア暗号化/復号化方法。
  19. 前記置換段階は、
    入力されるベクトルの各元素をなすガロアフィールドGF(2)上の元素をガロアフィールドGF(((2)上の元素に変換させる段階と、
    前記ガロアフィールドGF(((2)上の元素の逆元を計算して出力する段階と、
    前記ガロアフィールドGF(((2)上の元素の逆元をガロアフィールドGF(2)上の元素に変換させる段階と、
    アフィン関数によって、前記変換したガロアフィールドGF(2)上の元素をアフィン変換する段階と、を備えることを特徴とする請求項15に記載のハードウェア暗号化/復号化方法。
  20. 前記ガロアフィールドGF(((2)上の元素の逆元計算は、
    前記ガロアフィールドGF(((2)上の元素を形成する8ビットデジタルデータを下位4ビットと上位4ビットデータとに分類し、前記分類された4ビットデータのそれぞれに対し、合算と乗算とで単純化された演算を用いて、ガロアフィールドGF((2)上で逆元を計算することを特徴とする請求項19に記載のハードウェア暗号化/復号化方法。
  21. 前記ガロアフィールドGF((2)上の元素の逆元計算は、
    前記ガロアフィールドGF((2)上の元素をなす4ビットデジタルデータを下位2ビットと上位2ビットデータとに分類し、前記分類された2ビットデータのそれぞれに対し、合算と乗算とで単純化された演算を用いて、ガロアフィールドGF(2)上で逆元を計算することを特徴とする請求項20に記載のハードウェア暗号化/復号化方法。
  22. 前記N個キーの生成段階は、
    前記入力キーを用いて、前記第1ラウンドで用いられる前記第1キーを生成する段階と、
    以前ラウンドで用いられるキーが保存されるレジスタ値を用いて、前記残りのN−1ラウンドのそれぞれで用いられる前記第2キーないし前記第Nキーを順次発生させる段階と、を備え、
    前記入力キーの提供と前記第1キーの発生とは、所定クロックの1つのサイクルで行われることを特徴とする請求項16に記載のハードウェア暗号化/復号化方法。
JP2005022279A 2004-01-29 2005-01-28 S−box演算を用いるハードウェア暗号化/復号化装置及び、その方法 Withdrawn JP2005215688A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040005647A KR100800468B1 (ko) 2004-01-29 2004-01-29 저전력 고속 동작을 위한 하드웨어 암호화/복호화 장치 및그 방법

Publications (1)

Publication Number Publication Date
JP2005215688A true JP2005215688A (ja) 2005-08-11

Family

ID=34806017

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005022279A Withdrawn JP2005215688A (ja) 2004-01-29 2005-01-28 S−box演算を用いるハードウェア暗号化/復号化装置及び、その方法

Country Status (4)

Country Link
US (1) US20050169463A1 (ja)
JP (1) JP2005215688A (ja)
KR (1) KR100800468B1 (ja)
DE (1) DE102005005335A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009109988A (ja) * 2007-10-10 2009-05-21 Canon Inc 暗号処理回路

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2893796B1 (fr) * 2005-11-21 2008-01-04 Atmel Corp Procede de protection par chiffrement
US20080019524A1 (en) * 2006-06-29 2008-01-24 Kim Moo S Apparatus and method for low power aes cryptographic circuit for embedded system
US8094815B2 (en) * 2006-11-13 2012-01-10 Electronics Andtelecommunications Research Institute Arithmetic method and apparatus for supporting AES and ARIA encryption/decryption functions
US7949130B2 (en) 2006-12-28 2011-05-24 Intel Corporation Architecture and instruction set for implementing advanced encryption standard (AES)
US8538015B2 (en) 2007-03-28 2013-09-17 Intel Corporation Flexible architecture and instruction for advanced encryption standard (AES)
US8233615B2 (en) * 2008-01-15 2012-07-31 Inside Secure Modular reduction using a special form of the modulus
TWI416347B (zh) 2009-06-22 2013-11-21 Realtek Semiconductor Corp 處理有限域運算之方法與運算電路
US9832769B2 (en) 2009-09-25 2017-11-28 Northwestern University Virtual full duplex network communications
US20110116421A1 (en) * 2009-09-25 2011-05-19 Dongning Guo Rapid on-off-division duplex network communications
US20160269175A1 (en) * 2015-03-09 2016-09-15 Qualcomm Incorporated Cryptographic cipher with finite subfield lookup tables for use in masked operations
US10409614B2 (en) 2017-04-24 2019-09-10 Intel Corporation Instructions having support for floating point and integer data types in the same register
US10474458B2 (en) 2017-04-28 2019-11-12 Intel Corporation Instructions and logic to perform floating-point and integer operations for machine learning
CN108737073B (zh) * 2018-06-22 2021-09-28 北京智芯微电子科技有限公司 分组加密运算中抵抗能量分析攻击的方法和装置
US20220179787A1 (en) 2019-03-15 2022-06-09 Intel Corporation Systems and methods for improving cache efficiency and utilization
US11934342B2 (en) 2019-03-15 2024-03-19 Intel Corporation Assistance for hardware prefetch in cache access
JP7408671B2 (ja) 2019-03-15 2024-01-05 インテル コーポレイション シストリックアレイに対するブロックスパース演算のためのアーキテクチャ
JP7383985B2 (ja) * 2019-10-30 2023-11-21 富士電機株式会社 情報処理装置、情報処理方法及びプログラム
US11968187B2 (en) * 2020-10-23 2024-04-23 Secturion Systems, Inc. Multi-independent level security for high performance computing and data storage systems

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997044935A1 (en) * 1996-05-20 1997-11-27 Philips Electronics N.V. Cryptographic method and apparatus for non-linearly merging a data block and a key
KR100296958B1 (ko) * 1998-05-06 2001-09-22 이석우 블록 데이터 암호화 장치
KR100377172B1 (ko) * 2000-06-13 2003-03-26 주식회사 하이닉스반도체 데이터 암호화 표준 알고리즘을 이용한 암호화 장치의 키스케쥴러
AU2001269086A1 (en) * 2000-07-04 2002-01-14 Koninklijke Philips Electronics N.V. Substitution-box for symmetric-key ciphers
JP3505482B2 (ja) * 2000-07-12 2004-03-08 株式会社東芝 暗号化装置、復号装置及び拡大鍵生成装置、拡大鍵生成方法並びに記録媒体
US7142671B2 (en) * 2000-12-13 2006-11-28 Broadcom Corporation Methods and apparatus for implementing a cryptography engine
KR20020087331A (ko) * 2001-05-14 2002-11-22 최병윤 부분 라운드간 파이프라인 기법을 이용한 AES Rijndael암호 및 복호 회로
US6937727B2 (en) * 2001-06-08 2005-08-30 Corrent Corporation Circuit and method for implementing the advanced encryption standard block cipher algorithm in a system having a plurality of channels
TW527783B (en) * 2001-10-04 2003-04-11 Ind Tech Res Inst Encryption/deciphering device capable of supporting advanced encryption standard
US7801301B2 (en) * 2001-10-10 2010-09-21 Stmicroelectronics S.R.L. Method and circuit for data encryption/decryption
US7283628B2 (en) * 2001-11-30 2007-10-16 Analog Devices, Inc. Programmable data encryption engine
US7508937B2 (en) 2001-12-18 2009-03-24 Analog Devices, Inc. Programmable data encryption engine for advanced encryption standard algorithm
JP4328487B2 (ja) * 2002-01-28 2009-09-09 インターナショナル・ビジネス・マシーンズ・コーポレーション 組合せ回路、暗号回路、その生成方法及びプログラム
US20030198345A1 (en) * 2002-04-15 2003-10-23 Van Buer Darrel J. Method and apparatus for high speed implementation of data encryption and decryption utilizing, e.g. Rijndael or its subset AES, or other encryption/decryption algorithms having similar key expansion data flow
US7257229B1 (en) * 2002-06-07 2007-08-14 Winbond Electronics Corporation Apparatus and method for key scheduling
JP3984116B2 (ja) * 2002-07-09 2007-10-03 株式会社東芝 フォトマスクの製造方法
US20040047466A1 (en) * 2002-09-06 2004-03-11 Joel Feldman Advanced encryption standard hardware accelerator and method
US7421076B2 (en) * 2003-09-17 2008-09-02 Analog Devices, Inc. Advanced encryption standard (AES) engine with real time S-box generation

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009109988A (ja) * 2007-10-10 2009-05-21 Canon Inc 暗号処理回路

Also Published As

Publication number Publication date
DE102005005335A1 (de) 2005-08-25
US20050169463A1 (en) 2005-08-04
KR20050078271A (ko) 2005-08-05
KR100800468B1 (ko) 2008-02-01

Similar Documents

Publication Publication Date Title
JP2005215688A (ja) S−box演算を用いるハードウェア暗号化/復号化装置及び、その方法
CA2723319C (en) A closed galois field cryptographic system
CA2632857C (en) Closed galois field combination
JP3992742B2 (ja) データブロックおよび鍵を非線形的に結合する暗号方法および装置
DK1686722T3 (en) Block encryption device and block encryption method comprising rotation key programming
KR100610367B1 (ko) 정보 누출 공격을 방지하기 위한 갈로아 필드 상의 곱셈방법 및 장치, 역변환 장치 그리고 aes 바이트 치환연산장치
JP5229315B2 (ja) 共通鍵暗号機能を搭載した暗号化装置及び組込装置
Kitsos et al. FPGA-based performance analysis of stream ciphers ZUC, Snow3g, Grain V1, Mickey V2, Trivium and E0
KR101506499B1 (ko) 마스킹이 적용된 seed를 이용한 암호화 방법
Priya et al. FPGA implementation of efficient AES encryption
Ghazi et al. Robust and Efficient Dynamic Stream Cipher Cryptosystem
Gangadari et al. FPGA implementation of compact S-box for AES algorithm using composite field arithmetic
Pyrgas et al. A very compact architecture of CLEFIA block cipher for secure IoT systems
Mohan et al. Revised aes and its modes of operation
Venkatesha et al. AES based algorithm for image encryption and decryption
RU2188513C2 (ru) Способ криптографического преобразования l-битовых входных блоков цифровых данных в l-битовые выходные блоки
Kumar et al. A comparative analysis of encryption algorithms for better utilization
RU2206961C2 (ru) Способ итеративного блочного шифрования двоичных данных
Das et al. An efficient VLSI implementation of AES encryption using ROM submodules and exclusion of shiftrows
Lee et al. Uniform random number generator using leap-ahead LFSR architecture
RU2199826C2 (ru) Способ итеративного шифрования блоков цифровых данных
Sukhavasi et al. Analysis and implementation of proficient Rijndael algorithm with optimized computation
Nandan et al. Design of Improved Advance Encryption Standard Algorithm with Affine Transformation in S-Box for Performance Improvement in Field-Programmable Gate Arrays
REDDY et al. Implementation of Security-Enabled Flexible Architecture with Symmetric Cryptography
RU2172075C1 (ru) Итеративный способ блочного шифрования

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071213

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20091013