JP2006072117A - 暗号処理装置 - Google Patents

暗号処理装置 Download PDF

Info

Publication number
JP2006072117A
JP2006072117A JP2004257203A JP2004257203A JP2006072117A JP 2006072117 A JP2006072117 A JP 2006072117A JP 2004257203 A JP2004257203 A JP 2004257203A JP 2004257203 A JP2004257203 A JP 2004257203A JP 2006072117 A JP2006072117 A JP 2006072117A
Authority
JP
Japan
Prior art keywords
round function
processing unit
encryption
unit
decryption
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
JP2004257203A
Other languages
English (en)
Inventor
Kanejiro Ike
兼次郎 池
Hiroto Yasuura
寛人 安浦
Koichi Sakurai
幸一 櫻井
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.)
Kyushu University NUC
Panasonic Holdings Corp
Original Assignee
Kyushu University NUC
Matsushita Electric Industrial 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 Kyushu University NUC, Matsushita Electric Industrial Co Ltd filed Critical Kyushu University NUC
Priority to JP2004257203A priority Critical patent/JP2006072117A/ja
Publication of JP2006072117A publication Critical patent/JP2006072117A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • 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

Abstract

【課題】 グリッジの発生を抑制し回路全体の消費電力を効果的に削減できる暗号処理装置を提供する。
【解決手段】 暗号処理装置は、拡大鍵を入力し入力データをAESアルゴリズムにしたがって暗号化する暗号化ラウンド関数処理部520と、暗号化ラウンド関数処理部に関するデータを保持するラッチ601と、拡大鍵を入力し入力データを復号する復号ラウンド関数処理部521と、復号ラウンド関数処理部に関するデータを保持するラッチ602と、現在の処理が暗号化/復号のいずれかに依存して、暗号化ラウンド関数処理部側の出力と復号ラウンド関数処理部側の出力のいずれかを選択する選択部503と、暗号化処理時にラッチ602の状態を維持し、復号処理時にラッチ601の状態を維持する制御部10とを備える。
【選択図】 図6

Description

本発明は、AESアルゴリズムを利用した暗号処理装置に関するものである。
近年のインターネット等を利用した電子商取引市場の拡大により、通信データの盗聴、通信相手へのなりすまし、通信内容の改竄などへの対策が必要となっている。暗号化技術は、これらの問題への対策一つとしてますます重要になっており、今後、暗号化技術が様々な電子機器へ適用されることが予想される。
暗号化技術における重要な要素技術として共通鍵ブロック暗号がある。共通鍵ブロック暗号は、処理単位となる所定ビット長のデータブロックを、鍵となる所定ビット長のデータを使用して暗号化する。暗号化されたデータブロックは、暗号化において使用された鍵を、用いて復号される。ここで、本明細書において、処理単位となるデータブロックの所定ビット長を「ブロック長」といい、鍵となるデータを「秘密鍵」といい、秘密鍵の所定ビット長を「鍵長」という。
1977年に米国政府標準暗号として制定されたData Encryption Standard(以下「DES」という)は、従来広く使用されてきた共通鍵ブロック暗号である。しかしDESは、ブロック長が64ビットしかなく、鍵長が実質56ビットしかない。近年、計算機処理能力が向上し、実用的な時間内に、DESによる鍵を総当り攻撃できるようになっている。したがって、DESでは安全上問題がある。
以上をふまえ、米国国立標準技術院(以下「NIST」という)は、DESの後継暗号である次期米国標準暗号としてAdvanced Encryption Standard(以下「AES」という)を2001年に制定した。AESは、そのブロック長が128ビットであり、その鍵長は、128ビット、192ビット、256ビットからいずれか一つを選択できる。IPsec、SSLをはじめ無線LANなどの標準規格において、AESを採用することが検討されており、AESは、次世代共通鍵ブロック暗号のデファクトスタンダードとして幅広く使用されることが期待されている。AESの処理は、非特許文献1において詳細に規定されている。
AESを含む共通鍵ブロック暗号化処理及びその復号処理の実装形態は、2つありうる。その1つはソフトウェアによるものであり、もう1つはハードウェアによるものである。処理の高速化あるいは低消費電力化を図るために、ハードウェアによる実装が望ましい。通信において暗号を使用すると、暗号化処理及びその復号処理は、通信処理全体の中で大きな割合を占めることが知られており、今後の電子機器開発では、ハードウェアにより、共通鍵ブロック暗号化処理及びその復号処理を実装することが重要になるであろう。
従来のハードウェア実装で達成すべき目標は、回路の小面積化や処理の高速化であった。しかし、近年のハードウェア実装で達成すべき目標として重要となっているのは、低消費電力化、省エネルギー化である。その理由の1つは、電力消費により生ずる発熱により冷却コストやパッケージコストが上昇する点である。理由のもう1つは、バッテリー駆動の携帯機器等において、消費エネルギーがバッテリー時間に影響を与える点である。AESを含む暗号化処理は、ICカードからネットワークのバックボーンで使用される機器に至るまで、多様な用途で使われることが予想されることから、AESアルゴリズムを利用した暗号処理装置においても、低消費電力化・省エネルギー化を図ることは必要である。この点について、例えば、非特許文献2は、AESアルゴリズムのハードウェア実装においては回路の一部の低消費電力化を図る手法を開示する。
ところが、後に本発明者らの考察において、詳述するように、非特許文献2により、AESを構成する部分回路単体の低消費電力化を図るだけでは、不十分である。より具体的には、非特許文献2によると、グリッジ(本来の処理には不要なゲートの出力変化(以下「スイッチング」という))が発生し、回路全体の消費電力を十分に削減できないという問題点があった。
NIST、"Federal Information Processing Standards Publication 197"、2001、インターネット S.Morioka、他1名、"An Optimized S−Box Circuit Architecture for Low Power AES Design"、2002年、Workshop on Cryptographic Hardware and Embedded Systems 2002、第172頁―第186頁
そこで本発明は、グリッジの発生を抑制し回路全体の消費電力を効果的に削減できる暗号処理装置を提供することを目的とする。
第1の発明に係る暗号処理装置は、拡大鍵を入力し入力データをAESアルゴリズムにしたがって暗号化する暗号化ラウンド関数処理部と、暗号化ラウンド関数処理部に関するデータを保持する第1のデータ保持部と、拡大鍵を入力し入力データを復号する復号ラウンド関数処理部と、復号ラウンド関数処理部に関するデータを保持する第2のデータ保持部と、現在の処理が暗号化/復号のいずれかに依存して、暗号化ラウンド関数処理部側の出力と復号ラウンド関数処理部側の出力のいずれかを選択する選択部と、現在の処理が暗号化であるとき第2のデータ保持部の状態を維持し、現在の処理が復号であるとき第1のデータ保持部の状態を維持する制御部とを備える。
この構成により、現在の処理が暗号化であるとき演算処理に寄与しない第2のデータ保持部についてのグリッジが発生せず、現在の処理が復号であるとき演算処理に寄与しない第1のデータ保持部についてのグリッジが発生しない。このようにグリッジの発生が抑制され、回路全体の消費電力を効果的に削減できる。
第2の発明に係る暗号処理装置では、第1のデータ保持部は暗号化ラウンド関数処理部の入力側に接続される第1のラッチを含み、第2のデータ保持部は復号ラウンド関数処理部の入力側に接続される第2のラッチを含む。
この構成により、現在の処理が暗号化であるとき演算処理に寄与しない第2のラッチについてのグリッジが発生せず、現在の処理が復号であるとき演算処理に寄与しない第1のラッチについてのグリッジが発生しない。このようにグリッジの発生が抑制され、回路全体の消費電力を効果的に削減できる。
第3の発明に係る暗号処理装置では、第1のデータ保持部は暗号化ラウンド関数処理部の出力側に接続される第1のレジスタを含み、第2のデータ保持部は復号ラウンド関数処理部の出力側に接続される第2のレジスタを含む。
この構成により、ラッチでなくレジスタで、第1、第2のデータ保持部を構成でき、その結果、ゲート数を削減してコストを抑制できる。
第4の発明に係る暗号処理装置では、暗号化ラウンド関数処理部は複数の要素から構成され、復号ラウンド関数処理部は複数の要素から構成され、暗号化ラウンド関数処理部の複数の要素の少なくとも一部と復号ラウンド関数処理部の複数の要素の少なくとも一部とは共通化されている。
この構成において、第1のデータ保持部の複数の要素の少なくとも一部と第2のデータ保持部の複数の要素の少なくとも一部とを共通化し、ゲート数を削減してコストを抑制できる。
第5の発明に係る暗号処理装置では、暗号化ラウンド関数処理部は、AESアルゴリズムの暗号化ラウンド関数のうちN(N:AESアルゴリズムのブロック長以下の自然数)ビット処理を行い、復号ラウンド関数処理部は、AESアルゴリズムの復号ラウンド関数のうちNビット処理を行い、暗号化ラウンド関数処理部及び復号ラウンド関数処理部は、処理ループによる繰り返し処理を行う。
この構成により、同じ要素を繰り返し使用することができるため、ゲート数を削減してコストを抑制できる。
第6の発明に係る暗号処理装置は、秘密鍵に基づいて拡大鍵を生成する鍵スケジュール部をさらに備える。
この構成により、外部から拡大鍵を入力しなくとも、暗号処理装置の内部で拡大鍵を生成でき、入力処理を簡易化できる。
本発明によれば、演算に寄与しないグリッジの発生を抑制し、回路全体の消費電力を効果的に削減できる。
以下、図面を参照しながら、本発明の実施の形態について説明する。まず、各形態の具体的構成を説明するに先立ち、次に本発明者らによる考察を述べる。なお、以下の各形態は例示に過ぎないのであって、本発明の趣旨を逸脱しない限りにおいて、以下の各形態以外の内容であっても本発明に包含されることは言うまでもない。
(考察)
図1は、本発明の考察における暗号化処理装置のブロック図である。この装置は、暗号化ラウンド関数処理部101と、鍵スケジュール部102とを備える。
鍵スケジュール部102は、秘密鍵106を入力し、これに基づいて拡大鍵EK0〜EK10を生成する。ここでは、拡大鍵EK0〜EK10のそれぞれは、128ビットデータであるものとする。
暗号化ラウンド関数処理部101は、排他的論理和(以下「EXOR」という)演算器108と、暗号化ラウンド関数部104と最終暗号化ラウンド関数部107とを備える。なお、図1において、複数の暗号化ラウンド関数部104が存在するように記載しているが、後述の各形態では、処理ループによるN回の繰り返し処理を行うようにしているので、暗号化ラウンド関数部104及び最終暗号化ラウンド関数部107は、1つの回路ブロックで済む。なお、拡大鍵EK0はEXOR演算器108で使用され、拡大鍵EK1〜EK9は暗号化ラウンド関数部104で使用され、拡大鍵EK10は暗号化最終ラウンド関数部107で使用される。
暗号化ラウンド関数処理部101において、EXOR演算器108は、入力データブロック103と拡大鍵EK0とのEXOR演算を行い、その結果ER1を暗号化ラウンド関数部104に出力する。
1回目に暗号化ラウンド関数部104は、結果ER1を入力し暗号化ラウンド関数による演算を行い、その結果ER2を自分自身に出力する。
図1は、128ビット鍵長におけるAESの暗号化処理を示しており、このときの繰り返し回数は「9」である。数mを「2」以上「9」以下の整数とすると、i回目に暗号化ラウンド関数部104は、結果ERmを入力し暗号化ラウンド関数による演算を行い、その結果ERm+1を自分自身に出力する。
暗号化ラウンド関数部104の繰り返し回数は、鍵長によって変化する。具体的には、鍵長が128ビットである場合は9回、鍵長が192ビットである場合は11回、鍵長が256ビットである場合は13回となる。
最後に、暗号化最終ラウンド関数部107は結果ER10を入力し暗号化ラウンド関数による演算を行い、その結果ER10を出力データブロック105として出力する。
以下、EXOR演算器108の処理のように、ラウンド関数の繰り返し前に行う処理を「初期変換」といい、暗号化最終ラウンド関数部107の処理のようにラウンド関数の繰り返し後に行う処理を「最終変換」という。また、暗号化最終ラウンド関数部107を含めたラウンド関数の繰り返し回数をNbで示す。ちなみに鍵長が128ビットの場合、Nb=10である。
図2は、本発明の考察における暗号化ラウンド関数部のブロック図である。暗号化ラウンド関数部104は128ビット入出力の関数であり、SubBytes処理部201と、ShiftRows処理部202と、MixColumns処理部203と、AddRoundKey処理部204とを直列に接続して構成される。
まず、SubBytes処理部201は、128ビットデータである入力ERi(iは0からNbまでの整数)を8ビットデータブロックに分割し、すべての8ビットデータブロックに対して非線形変換する。ShiftRows処理部202は、128ビットデータであるSubBytes処理部201の結果を8ビットデータブロックに分割し所定の方法で並べ替える。MixColumns処理部203は、128ビットデータであるShiftRows処理部202の結果を32ビットデータブロックに分割し、32ビットを1処理単位とする線形変換を行う。最後に、AddRoundKey処理部204は、MixColumns処理の結果と拡大鍵EKiとのEXOR演算を行い、その結果ERi+1を出力する。
暗号化最終ラウンド関数部107は、図2に示した処理のうちMixColumns処理部203による処理を行わない点を除き、暗号化ラウンド関数部104と同じ処理を行う。
図3は、本発明の考察における復号処理装置のブロック図である。この装置は、復号ラウンド関数処理部301と鍵スケジュール部102とを備える。鍵スケジュール部102は、図1のそれと同じである。
暗号ラウンド関数処理部301は、排他的論理和(以下「EXOR」という)演算器108と、復号ラウンド関数部304と最終復号ラウンド関数部307とを備える。なお、図3において、複数の復号ラウンド関数部304が存在するように記載しているが、後述の各形態では、処理ループによるN回の繰り返し処理を行うようにしているので、復号ラウンド関数部304及び最終復号ラウンド関数部307は、1つの回路ブロックで済む。なお、拡大鍵EK10はEXOR演算器108で使用され、拡大鍵EK9〜EK1は復号ラウンド関数部304で使用され、拡大鍵EK0は復号最終ラウンド関数部307で使用される。復号ラウンド関数部304が使用する復号ラウンド関数は、図1の暗号化ラウンド関数部107が使用する関数の逆関数である。
復号ラウンド関数処理部301において、EXOR演算器108は、入力データブロック103と拡大鍵EK10とのEXOR演算を行い、その結果DR1を復号ラウンド関数部304に出力する。
1回目に復号ラウンド関数部304は、結果DR1を入力し復号ラウンド関数による演算を行い、その結果DR2を自分自身に出力する。
図3は、128ビット鍵長におけるAESの復号処理を示しており、このときの繰り返し回数は「9」である。数mを「2」以上「9」以下の整数とすると、i回目に復号ラウンド関数部304は、結果DRmを入力し復号ラウンド関数による演算を行い、その結果DRm+1を自分自身に出力する。
復号ラウンド関数部304の繰り返し回数は、鍵長によって変化する。具体的には、鍵長が128ビットである場合は9回、鍵長が192ビットである場合は11回、鍵長が256ビットである場合は13回となる。
最後に、復号最終ラウンド関数部307は結果DR10を入力し復号ラウンド関数による演算を行い、その結果DR10を出力データブロック105として出力する。
図2は、本発明の考察における暗号化ラウンド関数部のブロック図である。暗号化ラウンド関数部104は128ビット入出力の関数であり、SubBytes処理部201と、ShiftRows処理部202と、MixColumns処理部203と、AddRoundKey処理部204とを直列に接続して構成される。
まず、SubBytes処理部201は、128ビットデータである入力ERi(iは0からNbまでの整数)を8ビットデータブロックに分割し、すべての8ビットデータブロックに対して非線形変換する。ShiftRows処理部202は、128ビットデータであるSubBytes処理部201の結果を8ビットデータブロックに分割し所定の方法で並べ替える。MixColumns処理部203は、128ビットデータであるShiftRows処理部202の結果を32ビットデータブロックに分割し、32ビットを1処理単位とする線形変換を行う。最後に、AddRoundKey処理部204は、MixColumns処理の結果と拡大鍵EKiとのEXOR演算を行い、その結果ERi+1を出力する。
暗号化最終ラウンド関数部107は、図2に示した処理のうちMixColumns処理部203による処理を行わない点を除き、暗号化ラウンド関数部104と同じ処理を行う。
図4は、本発明の考察における復号ラウンド関数部のブロック図である。復号ラウンド関数部304は128ビット入出力の関数であり、復号ラウンド関数部304が使用する関数は、暗号化ラウンド関数部104が使用する関数の逆関数である。
まず、InvShiftRows処理部401は、入力DRi(iは0からNbまでの整数)に対し、ShiftRows処理部202の逆関数である関数による処理を行う。InvSubBytes処理部402は、128ビットデータであるInvShiftRows処理部401の結果を、8ビットデータブロックに分割し、すべての8ビットデータブロックに対してSubBytes処理部で施した非線形変換の逆変換を行う。
AddRoundKey処理部206は、InvSubBytes処理部402の結果と拡大鍵DKiとのEXOR演算を行う。最後に、InvMixColumns処理部404は、128ビットデータであるAddRoundKey処理部206の結果を、32ビットデータブロックに分割し、MixColumns処理部203でなされた32ビットを1処理単位とする線形変換の逆変換を行い、結果DRi+1を出力する。
さて次に、図5を参照しながら、図1の暗号化処理装置と図3の復号処理装置とを、1つの暗号処理装置にまとめて実装することを考える。図5は、本発明の考察における暗号処理装置のブロック図である。
図5において、暗号化ラウンド関数処理部520は、拡大鍵EKiを入力し入力データブロック103をAESアルゴリズムにしたがって暗号化する。復号ラウンド関数処理部521は、拡大鍵DKiを入力し入力データブロック103を復号する。
暗号化ラウンド関数処理部520は、暗号化ラウンド関数のうちN bit(N:AESのブロック長である128以下の自然数)処理を行う。暗号化ラウンド関数処理部520で使用する拡大鍵EKiのうちN bitが鍵スケジュール部から供給される。
暗号化ラウンド関数処理部520のセレクタ501は、暗号化ラウンド関数処理部520が暗号化ラウンド関数部104の処理を実行するか最終暗号化ラウンド関数部107の処理を実行するかによって、AddRoundKey処理部204の入力を、MixColumns処理部203とShiftRows処理部202とのいずれかに切り替える。切り替え信号511は、図5に示す回路で実行する処理(暗号化または復号)と現在処理しているラウンド数を管理している制御部10から出力される。
復号ラウンド関数処理部521は、復号ラウンド関数のうちN bit処理を行う。復号ラウンド関数処理部521で使用される拡大鍵DKiのうちN bitが鍵スケジュール部102から供給される。
復号ラウンド関数処理部521のセレクタ502は、暗号化ラウンド関数処理部520が暗号化ラウンド関数部104の処理を実行するか最終暗号化ラウンド関数部107の処理を実行するかにより入力を、InvMixColumns処理部403とAddRoundKey処理部204のとのいずれかに切り替える。切り替え信号512は、制御部10が出力される。
EXOR演算器108は、暗号処理装置が暗号化処理/復号処理のいずれを行うにかかわらず入力データブロック103と拡大鍵との排他的論理和を求め、これをセレクタ503へ出力する。また、セレクタ503には、暗号化ラウンド関数処理部520の出力側と復号ラウンド関数処理部521の出力側とが接続される。
セレクタ503は、暗号処理装置が暗号化処理/復号処理のいずれを行うにかかわらず初期変換を実行している場合、EXOR演算器108からの入力を出力する。セレクタ503は、暗号処理装置が初期変換を実行しておらず暗号化処理を実行しているときは、暗号化ラウンド関数処理部520のAddRoundKey処理部204が出力するN bitの結果を出力する。セレクタ503は、暗号処理装置が初期変換を実行しておらず復号処理を実行しているときは、復号ラウンド関数処理部521のセレクタ502が出力するN bitの結果を出力する。切り替え信号513は、制御部10が出力する。
レジスタ504は、クロック510の立ち上がりに同期しセレクタ503の出力を保持する。所定の回数だけラウンド関数が実行された後に、レジスタ504の出力が出力データブロック105として外部へ出力される。
暗号化ラウンド関数処理部520の入力側に接続されるセレクタ505は、レジスタ504の128bit出力から暗号化ラウンド関数を実行すべきN bitを選択する。切り替え信号514は、制御部10が出力する。なおN=128の場合は、セレクタ505は省略できる。
復号ラウンド関数処理部521の入力側に接続されるセレクタ506は、レジスタ504の128bit出力から復号ラウンド関数を実行すべきN bitを選択する。切り替え信号515は、制御部10が出力する。なおN=128の場合、セレクタ506は省略できる。
図5に示す構成ではレジスタ504の出力データは、暗号化ラウンド関数処理部520と復号ラウンド関数処理部521の両方に入力されるため、暗号化処理実行の場合は復号ラウンド関数処理部521において、復号処理実行の場合は暗号化ラウンド関数処理部520において、それぞれ処理に無関係なスイッチング、即ち、グリッジが発生する。
現在LSIなどで一般に使用されているCMOS構成では、スイッチングに起因する電力消費が支配的である。そのため、図5に示す構成では、グリッジにより、無駄でかつ無視できない電力消費が生じる。
さらに、AESをはじめとする共通鍵ブロック暗号を用いると、グリッジが発生しやすく、グリッジによる無駄な電力消費が生じる傾向がある。以下にその理由を記す。
共通鍵ブロック暗号は、入力データブロックが1ビット変化すると出力データブロックのすべてのビットが変化する確率が「1/2」であるという性質を持っている。この性質は、Strict Avalanche Criterion(以下「SAC」という)と呼ばれており、共通鍵ブロック暗号の安全性を測る指標の一つである。
共通鍵ブロック暗号の部分処理における入力の変化は、すべての出力の変化に大きな影響を与える。そのような性質を持つ処理を回路に実装する場合、回路入力が変化するタイミングが不揃いであると、遅れて変化した回路入力に反応して変化する回路出力に伴うゲートのスイッチングが多くなる。このとき、その直前に変化した回路入力に反応して変化する出力に伴うゲートのスイッチングが本来の計算に寄与しないグリッジとなる場合が多くなる。
図5に示す構成では、レジスタ504の出力は、クロック510に同期して一斉に変化するものの、セレクタ505またはセレクタ506における切り替え信号514の遅延などにより、ラウンド関数処理部520への入力変化が不揃いになる。
以上のように、非特許文献2のようにAESを構成する部分回路単体の低消費電力化を図るだけでは、回路全体の電力消費を十分に削減することはできない。以上で、考察を終える。
次に、以上の考察をふまえ、本発明の各形態の具体的構成を説明する。なお、以上の考察において述べた構成要素と同様の構成要素については、同一符号を付すことにより説明を省略する。
(実施の形態1)
図6は、本発明の実施の形態1における暗号処理装置のブロック図である。図1に示すように、本形態の暗号処理装置は、次の要素を備える。
暗号化ラウンド関数処理部520は、拡大鍵を入力し入力データをAESアルゴリズムにしたがって暗号化する。より具体的には、暗号化ラウンド関数処理部520は、AESアルゴリズムの暗号化ラウンド関数のうちN(N:AESアルゴリズムのブロック長以下の自然数)ビット処理を繰り返し行う。
図1に示したように、拡大鍵は、秘密鍵に基づいて拡大鍵を生成する鍵スケジュール部102から供給される。
ラッチ601は、暗号化ラウンド関数処理部に関するデータを保持する第1のデータ保持部に相当し、暗号化ラウンド関数処理部520の入力側とセレクタ505との間に接続される。
復号ラウンド関数処理部521は、鍵スケジュール部102から供給される拡大鍵を入力し入力データを復号する。より具体的には、復号ラウンド関数処理部521は、AESアルゴリズムの復号ラウンド関数のうちNビット処理を繰り返し行う。
ラッチ602は、復号ラウンド関数処理部に関するデータを保持する第2のデータ保持部に相当し、復号ラウンド関数処理部521の入力側とセレクタ506との間に接続される。
セレクタ503は、現在の処理が暗号化/復号のいずれかに依存して、暗号化ラウンド関数処理部側の出力と復号ラウンド関数処理部側の出力のいずれかを選択する選択部に相当する。なお、初期変換時には、セレクタ503は、EXOR演算器108の出力を選択する。
制御部10は、現在の処理が暗号化であるときラッチ602の状態を維持し、現在の処理が復号であるときラッチ601の状態を維持する。
図6において、ラッチ601は、制御部10から出力される暗号化/復号切替信号603が暗号化を示しているとき、ラッチ601の入力データをそのまま出力する。また、その信号603が復号を示しているとき、復号を示す直前の出力データをそのまま保持する。この保持により、グリッジの発生を抑制できる。
ラッチ602は、制御部10から出力される暗号化/復号切替信号603が復号を示しているとき、ラッチ602の入力データをそのまま出力する。また、ラッチ602は、その信号603が暗号化を示しているとき暗号化を示す直前の出力データをそのまま保持する。この保持により、グリッジの発生を抑制できる。
本形態によれば、暗号化処理の場合はラッチ602の出力が変化しないので復号ラウンド関数処理部521でグリッジは発生しない。また復号処理の場合はラッチ601の出力が変化しないので暗号化ラウンド関数処理部520でグリッジは発生しない。このことから、処理実行に不要なスイッチングを削減することができ、回路全体の消費電力、消費エネルギーを削減できる。
(実施の形態2)
図6は、本発明の実施の形態2における暗号処理装置のブロック図である。さて、実施の形態1では、EXOR演算器108のような単純な演算器を除いて、暗号化ラウンド関数処理部520と復号ラウンド関数処理部521で使用する演算器を個別に実装している。
しかしながら、復号ラウンド関数部521のAddRoundKey処理部204は、セレクタ503の後段に配置しても差し支えない。そこで本形態では、図7に示すように、AddRoundKey処理部204は、セレクタ503の後段に配置し、AddRoundKey処理部204を、暗号化ラウンド関数処理部520と復号ラウンド関数処理部521とにおいて、共通化している。
また、AddRoundKey処理部204の処理内容は、EXOR演算であるので、AddRoundKey204とEXOR演算器演算108も共有することもできる。
本形態によれば、実施の形態1と同等の機能を有し、かつ、暗号化ラウンド関数処理部、復号ラウンド関数処理部、初期変換のEXOR演算器を共有することにより、回路のゲート数を削減することができ、コスト削減を図ることができる。
(実施の形態3)
実施の形態2では、ラッチ601、ラッチ602を使用してレジスタ504出力データ伝達を制御している。しかし、STA(Static Timing Analysis)の適用などの都合により、LSI実装上ラッチを使用することができないことが多い。
そこで本形態では、ラッチに変えて、レジスタを用いる構成を採用している。図8は、本発明の実施の形態3における暗号処理装置のブロック図であり、図8において、レジスタ801は、暗号化ラウンド関数処理部520の出力側に接続される第1のデータ保持部に相当し、レジスタ802は、復号ラウンド関数処理部521の出力側に接続される第2のデータ保持部に相当する。
より具体的には、レジスタ801は、暗号化/復号切替信号603が暗号化を示し、かつクロック505の立ち上がりに同期して入力データを保持する。レジスタ802は、暗号化/復号切替信号603が復号を示し、かつクロック505の立ち上がりに同期して入力データを保持する。
また、セレクタ803は、暗号化/復号切替信号603を参照し、暗号化処理の際はレジスタ801を、復号処理の際はレジスタ802を、それぞれ出力データブロック105として出力する。
本形態によれば、実施の形態2と同等の機能を有し、かつラッチを使用しないため、LSI実装制約を受けることなく適用することができる。また、ラッチをレジスタに置き換えることができるため、ゲート数を削減することができ、コスト削減を図ることができる。
本発明に係る暗号処理装置は、例えば、データの暗号化あるいは暗号化されたデータの復号の分野などにおいて好適に利用できる。
本発明の考察における暗号化処理装置のブロック図 本発明の考察における暗号化ラウンド関数部のブロック図 本発明の考察における復号処理装置のブロック図 本発明の考察における復号ラウンド関数部のブロック図 本発明の考察における暗号処理装置のブロック図 本発明の実施の形態1における暗号処理装置のブロック図 本発明の実施の形態2における暗号処理装置のブロック図 本発明の実施の形態3における暗号処理装置のブロック図
符号の説明
10 制御部
101 暗号化ラウンド関数処理部
102 鍵スケジュール部
103 入力データブロック
104 暗号化ラウンド関数部
105 出力データブロック
106 秘密鍵
108 EXOR演算器
201 SubBytes処理部
202 ShiftRows処理部
203 MixColumns処理部
204 AddRoundKey処理部
301 復号ラウンド関数部
304 復号ラウンド関数部
307 最終復号ラウンド関数部
401 InvShiftRows処理部
402 InvSubBytes処理部
404 InvMixColumns処理部
501、502、503、505、506、803 セレクタ
504、801、803 レジスタ
510 クロック
511、512、513、514、515 切り替え信号
520 暗号化ラウンド関数処理部
521 復号ラウンド関数処理部
601、602 ラッチ
603 暗号化/復号切替信号

Claims (7)

  1. 拡大鍵を入力し入力データをAESアルゴリズムにしたがって暗号化する暗号化ラウンド関数処理部と、
    前記暗号化ラウンド関数処理部に関するデータを保持する第1のデータ保持部と、
    拡大鍵を入力し入力データを復号する復号ラウンド関数処理部と、
    前記復号ラウンド関数処理部に関するデータを保持する第2のデータ保持部と、
    現在の処理が暗号化/復号のいずれかに依存して、前記暗号化ラウンド関数処理部側の出力と前記復号ラウンド関数処理部側の出力のいずれかを選択する選択部と、
    現在の処理が暗号化であるとき前記第2のデータ保持部の状態を維持し、現在の処理が復号であるとき前記第1のデータ保持部の状態を維持する制御部とを備える暗号処理装置。
  2. 前記第1のデータ保持部は前記暗号化ラウンド関数処理部の入力側に接続される第1のラッチを含み、前記第2のデータ保持部は前記復号ラウンド関数処理部の入力側に接続される第2のラッチを含む請求項1記載の暗号処理装置。
  3. 前記第1のデータ保持部は前記暗号化ラウンド関数処理部の出力側に接続される第1のレジスタを含み、前記第2のデータ保持部は前記復号ラウンド関数処理部の出力側に接続される第2のレジスタを含む請求項1記載の暗号処理装置。
  4. 前記暗号化ラウンド関数処理部は複数の要素から構成され、前記復号ラウンド関数処理部は複数の要素から構成され、前記暗号化ラウンド関数処理部の前記複数の要素の少なくとも一部と前記復号ラウンド関数処理部の前記複数の要素の少なくとも一部とは共通化されている請求項1または3記載の暗号処理装置。
  5. 前記暗号化ラウンド関数処理部は、AESアルゴリズムの暗号化ラウンド関数のうちN(N:AESアルゴリズムのブロック長以下の自然数)ビット処理を行い、
    前記復号ラウンド関数処理部は、AESアルゴリズムの復号ラウンド関数のうちNビット処理を行う請求項1から4記載の暗号処理装置。
  6. 前記暗号化ラウンド関数処理部及び前記復号ラウンド関数処理部は、処理ループによる繰り返し処理を行う請求項1から5記載の暗号処理装置。
  7. 秘密鍵に基づいて拡大鍵を生成する鍵スケジュール部をさらに備える請求項1から6記載の暗号処理装置。
JP2004257203A 2004-09-03 2004-09-03 暗号処理装置 Withdrawn JP2006072117A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004257203A JP2006072117A (ja) 2004-09-03 2004-09-03 暗号処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004257203A JP2006072117A (ja) 2004-09-03 2004-09-03 暗号処理装置

Publications (1)

Publication Number Publication Date
JP2006072117A true JP2006072117A (ja) 2006-03-16

Family

ID=36152799

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004257203A Withdrawn JP2006072117A (ja) 2004-09-03 2004-09-03 暗号処理装置

Country Status (1)

Country Link
JP (1) JP2006072117A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150093785A (ko) * 2012-12-11 2015-08-18 미쓰비시덴키 가부시키가이샤 통합 시큐리티 장치 및 통합 시큐리티 장치에 이용되는 신호 처리 방법

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150093785A (ko) * 2012-12-11 2015-08-18 미쓰비시덴키 가부시키가이샤 통합 시큐리티 장치 및 통합 시큐리티 장치에 이용되는 신호 처리 방법
EP2933944A1 (en) * 2012-12-11 2015-10-21 Mitsubishi Electric Corporation Integrated security device and signal processing method used by integrated security device
EP2933944A4 (en) * 2012-12-11 2016-08-17 Mitsubishi Electric Corp INTEGRATED SECURITY DEVICE AND SIGNAL PROCESSING METHOD USED BY AN INTEGRATED SECURITY DEVICE
KR101653121B1 (ko) 2012-12-11 2016-08-31 미쓰비시덴키 가부시키가이샤 통합 시큐리티 장치 및 통합 시큐리티 장치에 이용되는 신호 처리 방법

Similar Documents

Publication Publication Date Title
Singh et al. Image encryption and decryption using blowfish algorithm in MATLAB
Gueron Intel’s new AES instructions for enhanced performance and security
Alanazi et al. New comparative study between DES, 3DES and AES within nine factors
US7532721B2 (en) Implementation of a switch-box using a subfield method
US8213603B2 (en) Encryption processing apparatus
Rahimunnisa et al. FPGA implementation of AES algorithm for high throughput using folded parallel architecture
US8036379B2 (en) Cryptographic processing
JP2017504838A (ja) 暗号アルゴリズムに対するサイドチャネル攻撃への対抗策
JP2005527853A (ja) 高度暗号化規格(aes)のハードウェア暗号法エンジン
US9288040B2 (en) Encryption device
Rinne et al. Performance analysis of contemporary light-weight block ciphers on 8-bit microcontrollers
Gielata et al. AES hardware implementation in FPGA for algorithm acceleration purpose
More et al. Implementation of AES with time complexity measurement for various input
JP2000295212A (ja) 暗号データの復号化処理方法および装置
Manoj Kumar et al. Implementation of a High-Speed and High-Throughput Advanced Encryption Standard.
US9135834B2 (en) Apparatus and method to prevent side channel power attacks in advanced encryption standard using floating point operation
Hasamnis et al. implementation of AES as a custom hardware using NIOS II processor
Dulla et al. An Enhanced BlowFish (eBf) Algorithm for Securing x64FileMessage Content
Singh et al. Design of High Performance MIPS Cryptography Processor
JP2006072117A (ja) 暗号処理装置
Wardhani et al. Fast implementation of AES on Cortex-M3 for security information devices
WO2018066951A1 (en) Improved lightweight block cipher
Valasa et al. On-the-fly key generation based VLSI implementation of advanced encryption standard
US20040071287A1 (en) Encryption circuit arrangement and method therefor
Farmani et al. A high performance hardware implementation image encryption with AES algorithm

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20071106