JP2008151829A - 暗号演算装置 - Google Patents

暗号演算装置 Download PDF

Info

Publication number
JP2008151829A
JP2008151829A JP2006336719A JP2006336719A JP2008151829A JP 2008151829 A JP2008151829 A JP 2008151829A JP 2006336719 A JP2006336719 A JP 2006336719A JP 2006336719 A JP2006336719 A JP 2006336719A JP 2008151829 A JP2008151829 A JP 2008151829A
Authority
JP
Japan
Prior art keywords
period
multiplication
data string
coefficient
exclusive
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
JP2006336719A
Other languages
English (en)
Inventor
Soichi Okada
壮一 岡田
Koichi Ito
孝一 伊藤
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2006336719A priority Critical patent/JP2008151829A/ja
Priority to EP07121899A priority patent/EP1933495A3/en
Priority to US11/948,447 priority patent/US20080181395A1/en
Publication of JP2008151829A publication Critical patent/JP2008151829A/ja
Withdrawn legal-status Critical Current

Links

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/122Hardware reduction or efficient architectures

Landscapes

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

Abstract

【課題】AES暗号回路を小型化する。
【解決手段】MixColumn変換回路において、4つの乗算器とXOR回路から構成される演算回路を2個並列に設けて、32ビットデータを2サイクルで処理するか、あるいは、単一の演算回路で32ビットデータを4サイクルで処理することで、MixColumn変換またはInvMixColumn変換の変換結果を得る。
【選択図】図2

Description

本発明は、共通ブロック暗号の業界標準であるAES(Advanced Encryption Standard)の暗号演算を行う暗号演算装置に関する。
図8は、FIPS197(Federal Information Processing Standards 197)(例えば、下記の非特許文献1を参照)で規定されているAESの暗号化アルゴリズムを示しており、図9は、AESの復号アルゴリズムを示している。
図8の暗号化アルゴリズムでは、128ビットの平文から128ビットの暗号文が生成される。秘密鍵の鍵データは、128ビット、192ビット、または256ビットの3種類から選択することができる。
まず、鍵スケジュール801を実行することで、鍵データからNr+1個のラウンド鍵(Round Key)0〜Nrが生成される。排他的論理和(XOR)演算器802は、平文とラウンド鍵0のXORを出力する。
ラウンド処理803−k(k=1,2,...,Nr−1)は、ByteSub(バイトサブ)変換、ShiftRow(シフトロウ)変換、MixColumn(ミクスコラム)変換、およびラウンド鍵加算の4種類の処理から構成され、このうち、ラウンド鍵加算においてラウンド鍵kが使用される。これらのラウンド処理803−1〜803−(Nr−1)により、XOR演算器802の出力に対して、ラウンド処理がNr−1回繰り返される。
最後のラウンド処理803−Nrは、ByteSub変換、ShiftRow変換、およびラウンド鍵加算の3種類の処理から構成され、ラウンド処理803−(Nr−1)の出力から暗号文を生成する。このうち、ラウンド鍵加算においてラウンド鍵Nrが使用される。
図9の復号アルゴリズムでは、128ビットの暗号文から128ビットの平文が生成される。まず、鍵スケジュール901を実行することで、鍵データからNr+1個のラウンド鍵0〜Nrが生成される。XOR演算器902は、暗号文とラウンド鍵NrのXORを出力する。
ラウンド処理903−k(k=1,2,...,Nr−1)は、InvShiftRow(逆シフトロウ)変換、InvByteSub(逆バイトサブ)変換、ラウンド鍵加算、およびInvMixColumn(逆ミクスコラム)変換の4種類の処理から構成され、このうち、ラウンド鍵加算においてラウンド鍵kが使用される。これらのラウンド処理903−(Nr−1)〜903−1により、XOR演算器902の出力に対して、ラウンド処理がNr−1回繰り返される。
最後のラウンド処理903−0は、InvShiftRow(逆シフトロウ)変換、InvByteSub(逆バイトサブ)変換、およびラウンド鍵加算の3種類の処理から構成され、ラウンド処理903−1の出力から平文を生成する。このうち、ラウンド鍵加算においてラウンド鍵0が使用される。
スマートカード等にAESブロック暗号の演算処理を組み込むことを想定した場合、暗
号回路に要求される条件は、一定水準の処理速度を維持しつつ、回路規模を小型化することである。この条件を前提とした場合、図8および図9に示したAESアルゴリズムのすべてのラウンド処理を128ビット単位でハードウェア化する方法では、回路規模が大きすぎて、スマートカードへの搭載が困難となる。
そこで、スマートカードに搭載可能なAES暗号回路として、32ビット単位でラウンド処理の各機能を実現する小型回路の提案等がなされている(例えば、下記の特許文献1を参照)。この小型回路には、図10に示すような、AESアルゴリズムの1ラウンド分の処理を行う基本構成が設けられる。
図10の基本構成は、セレクタ1001、1005、ByteSub変換部1002、ラウンド鍵加算部1003、1006、MixColumn変換部1004、およびShiftRow変換部1007からなる。
セレクタ1001は、128ビットの入力データからnビット(例えば、n=32)のデータを選択し、セレクタ1005に出力する。セレクタ1005は、セレクタ1001、ByteSub変換部1002、MixColumn変換部1004、およびShiftRow変換部1007のいずれかの出力を選択して、ラウンド鍵加算部1006に出力する。ラウンド鍵加算部1006は、セレクタ1005の出力とラウンド鍵またはオール“0”の加算処理を行い、ShiftRow変換部1007は、ラウンド鍵加算部1006の出力に対してShiftRow変換を行う。
ByteSub変換部1002は、ShiftRow変換部1007の出力に対してByteSub変換を行い、ラウンド鍵加算部1003は、ShiftRow変換部1007の出力とラウンド鍵またはオール“0”の加算処理を行う。MixColumn変換部1004は、ラウンド鍵加算部1003の出力に対してMixColumn変換を行う。
図11および図12は、特許文献1で提案されているMixColumn変換回路の構成を示している。このMixColumn変換回路は、4つの演算回路1101〜1104からなり、暗号化処理におけるMixColumn変換、または、復号処理におけるInvMixColumn変換を行う。
演算回路1101は、それぞれ8ビット単位で乗算を実行する4つの乗算器1111(MULe2)、1112(MULb3)、1113(MULd1)、および1114(MUL91)と、これらの乗算器の出力のXORを計算するXOR演算器1115〜1117からなる。
同様に、演算回路1102は、乗算器1121(MUL91)、1122(MULe2)、1123(MULb3)、および1124(MULd1)と、XOR演算器1125〜1127からなり、演算回路1103は、乗算器1131(MULd1)、1132(MUL91)、1133(MULe2)、および1134(MULb3)と、XOR演算器1135〜1137からなり、演算回路1104は、乗算器1141(MULb3)、1142(MULd1)、1143(MUL91)、および1144(MULe2)と、XOR演算器1145〜1147からなる。
乗算係数を2桁の16進数で表すことにすると、MULe2は、暗号化処理において入力データに“02”を乗算し、復号処理において入力データに“0E”を乗算する。MULb3は、暗号化処理において入力データに“03”を乗算し、復号処理において入力データに“0B”を乗算する。MULd1は、暗号化処理において入力データに“01”を乗算し、復号処理において入力データに“0D”を乗算する。MUL91は、暗号化処理
において入力データに“01”を乗算し、復号処理において入力データに“09”を乗算する。
MixColumn変換回路の32ビットの入力データI_DT[31:0]および出力データO_DT[31:0]は、次のような8ビットデータa0〜a3およびb0〜b3で表される。

a0=I_DT[31:24] (1)
a1=I_DT[23:16] (2)
a2=I_DT[15:8] (3)
a3=I_DT[7:0] (4)

b0=O_DT[31:24] (5)
b1=O_DT[23:16] (6)
b2=O_DT[15:8] (7)
b3=O_DT[7:0] (8)

このとき、MixColumn変換回路は、(a0,a1,a2,a3)で構成されるコラムを(b0,b1,b2,b3)で構成されるコラムに変換する。暗号化処理および復号処理におけるMixColumn変換は、それぞれ次式のように表される。

暗号化処理
b0=02*a0+03*a1+01*a2+01*a3 (11)
b1=01*a0+02*a1+03*a2+01*a3 (12)
b2=01*a0+01*a1+02*a2+03*a3 (13)
b3=03*a0+01*a1+01*a2+02*a3 (14)

復号処理
b0=0E*a0+0B*a1+0D*a2+09*a3 (15)
b1=09*a0+0E*a1+0B*a2+0D*a3 (16)
b2=0D*a0+09*a1+0E*a2+0B*a3 (17)
b3=0B*a0+0D*a1+09*a2+0E*a3 (18)

ここで、各項の係数は2桁の16進数を表し、記号“*”および“+”はそれぞれ乗算およびXOR演算を表す。演算回路1101、1102、1103、および1104は、b0、b1、b2、およびb3の値をそれぞれ出力する。
"Federal Information Processing Standards Publication 197"、[online]、[平成18年10月2日検索]、インターネット<URL: http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf> 特開2003−015522号公報
スマートカードは、近年、多機能化およびセキュア化が進み、様々な機能を搭載する必要があるので、AES暗号回路のさらなる小型化を実現することが望まれる。
例えば、スマートカードには、サイドチャネル攻撃と呼ばれる暗号解読法により、秘密鍵等が特定されてしまう脅威がある。このサイドチャネル攻撃には、SPA(Single Power Analysis )やDPA(Differential Power Analysis )のような電力解析攻撃および
電磁波解析(EMA)攻撃が含まれる。
このサイドチャネル攻撃を防御する機構として、マスク回路や多重Sbox回路をスマートカードに組み込むと、回路規模が大きくなるため、AES暗号回路の搭載が困難となる。したがって、セキュアなスマートカードを提供できないという問題が発生する。
本発明の課題は、従来のAES暗号回路をさらに小型化することである。
図1は、本発明の第1および第2の暗号演算装置の原理図である。
第1の暗号演算装置は、分割手段101、第1の乗算手段102−1、第2の乗算手段102−2、第3の乗算手段102−3、第4の乗算手段102−4、ラッチ手段103、および排他的論理和手段104を備える。
分割手段101は、入力データ列を第1、第2、第3、および第4のデータ列に分割して出力する。乗算手段102−1は、第1の期間において、第1のデータ列に第1の係数を乗算して第1の乗算結果を出力し、第2の期間において、第3のデータ列に第1の係数を乗算して第2の乗算結果を出力する。乗算手段102−2は、第1の期間において、第2のデータ列に第2の係数を乗算して第3の乗算結果を出力し、第2の期間において、第4のデータ列に第2の係数を乗算して第4の乗算結果を出力する。
乗算手段102−3は、第1の期間において、第1のデータ列に第3の係数を乗算して第5の乗算結果を出力し、第2の期間において、第3のデータ列に第3の係数を乗算して第6の乗算結果を出力する。乗算手段102−4は、第1の期間において、第2のデータ列に第4の係数を乗算して第7の乗算結果を出力し、第2の期間において、第4のデータ列に第4の係数を乗算して第8の乗算結果を出力する。
ラッチ手段103は、第1の期間において、第1および第3の乗算結果の排他的論理和と、第5および第7の乗算結果の排他的論理和をラッチする。排他的論理和手段104は、第2の期間において、第1および第3の乗算結果の排他的論理和と、第6および第8の乗算結果の排他的論理和との排他的論理和を出力し、かつ、第5および第7の乗算結果の排他的論理和と、第2および第4の乗算結果の排他的論理和との排他的論理和を出力する。
第1の期間において、入力データ列のうち第1および第2のデータ列が乗算手段102−1および102−2にそれぞれ入力され、かつ、第1および第2のデータ列が乗算手段102−3および102−4にそれぞれ入力される。これを受けて、乗算手段102−1〜102−4は、第1、第3、第5、および第7の乗算結果をそれぞれ出力し、ラッチ手段103は、第1および第3の乗算結果の排他的論理和と、第5および第7の乗算結果の排他的論理和をラッチする。
第2の期間において、入力データ列のうち第3および第4のデータ列が乗算手段102−1および102−2にそれぞれ入力され、かつ、第3および第4のデータ列が乗算手段102−3および102−4にそれぞれ入力される。これを受けて、乗算手段102−1〜102−4は、第2、第4、第6、および第8の乗算結果をそれぞれ出力し、排他的論理和手段104は、それらの乗算結果とラッチ手段103から出力される2種類の排他的論理和を用いて、第1、第3、第6、および第8の乗算結果の排他的論理和と、第5、第7、第2、および第4の乗算結果の排他的論理和を生成する。
AESの暗号化処理におけるミクスコラム変換、または、復号処理における逆ミクスコ
ラム変換の対象となる入力データ列を分割手段101に入力すれば、第2の期間において、排他的論理和手段104から変換結果の半分に相当する排他的論理和が出力される。
さらに、乗算手段102−1〜102−4、ラッチ手段103、および排他的論理和手段104からなる回路と同様の回路を並列に設けるか、または、第3および第4の期間において、第1〜第4のデータ列の順序を変更して乗算手段102−1〜102−4に入力することで、他の半分の変換結果を得ることができる。前者の場合は、全体として8個の乗算手段を並列に設けるだけでよく、後者の場合は、全体として4個の乗算手段を並列に設けるだけでよい。したがって、16個の乗算器を並列に設けた従来のMixColumn変換回路と比較すると、回路規模が削減される。
第1の暗号演算装置において、分割手段101は、例えば、後述する図3のセレクタ301または図6のセレクタ601に対応し、乗算手段102−1〜102−4は、例えば、後述する図2の乗算器211〜214、図3の乗算器311〜314、または図6の乗算器611〜614に対応する。
ラッチ手段103は、例えば、図2のXOR回路215、図3のXOR演算器315および316とフリップフロップ回路317および318、または図6のXOR演算器615および616とフリップフロップ回路617および618に対応し、排他的論理和手段104は、例えば、図2のXOR回路215、図3のXOR演算器319および320、または図6のXOR演算器619および620に対応する。
第2の暗号演算装置は、分割手段101、第1の乗算手段102−1、第2の乗算手段102−2、第3の乗算手段102−3、第4の乗算手段102−4、および排他的論理和手段104を備える。
分割手段101は、入力データ列を第1、第2、第3、および第4のデータ列に分割して出力する。分割手段101は、第1の期間において、第1、第2、第3、および第4のデータ列をそれぞれ乗算手段102−1、102−2、102−3、および102−4に出力し、第2の期間において、第1、第2、第3、および第4のデータ列を第1の期間とは異なる順序で乗算手段102−1、102−2、102−3、および102−4に出力する。
乗算手段102−1は、第1の期間において、第1のデータ列に第1の係数を乗算して第1の乗算結果を出力し、第2の期間において、分割手段101から入力されたデータ列に第1の係数を乗算して第2の乗算結果を出力する。乗算手段102−2は、第1の期間において、第2のデータ列に第2の係数を乗算して第3の乗算結果を出力し、第2の期間において、分割手段101から入力されたデータ列に第2の係数を乗算して第4の乗算結果を出力する。
乗算手段102−3は、第1の期間において、第3のデータ列に第3の係数を乗算して第5の乗算結果を出力し、第2の期間において、分割手段101から入力されたデータ列に第3の係数を乗算して第6の乗算結果を出力する。乗算手段102−4は、第1の期間において、第4のデータ列に第4の係数を乗算して第7の乗算結果を出力し、第2の期間において、分割手段101から入力されたデータ列に第4の係数を乗算して第8の乗算結果を出力する。
排他的論理和手段104は、第1の期間において、第1、第3、第5、および第7の乗算結果の排他的論理和を出力し、第2の期間において、第2、第4、第6、および第8の乗算結果の排他的論理和を出力する。
第1の期間において、第1〜第4のデータ列が乗算手段102−1〜102−4にそれぞれ入力される。これを受けて、乗算手段102−1〜102−4は、第1、第3、第5、および第7の乗算結果をそれぞれ出力し、排他的論理和手段104は、それらの乗算結果の排他的論理和を生成する。
第2の期間において、第1〜第4のデータ列が第1の期間とは異なる順序で乗算手段102−1〜102−4に入力される。これを受けて、乗算手段102−1〜102−4は、第2、第4、第6、および第8の乗算結果をそれぞれ出力し、排他的論理和手段104は、それらの乗算結果の排他的論理和を生成する。
AESの暗号化処理におけるミクスコラム変換、または、復号処理における逆ミクスコラム変換の対象となる入力データ列を分割手段101に入力すれば、第1および第2の期間において、排他的論理和手段104から変換結果の1/4に相当する排他的論理和がそれぞれ出力される。
さらに、乗算手段102−1〜102−4および排他的論理和手段104からなる回路と同様の回路を並列に設けるか、または、第3および第4の期間において、第1〜第4のデータ列の順序をさらに変更して乗算手段102−1〜102−4に入力することで、他の半分の変換結果を得ることができる。したがって、第1の暗号演算装置と同様に、従来のMixColumn変換回路よりも回路規模が削減される。
第2の暗号演算装置において、分割手段101は、例えば、後述する図4のセレクタ401または図7のセレクタ701に対応し、乗算手段102−1〜102−4は、例えば、後述する図2の乗算器211〜214、図4の乗算器411〜414、または図7の乗算器711〜714に対応する。排他的論理和手段104は、例えば、図2のXOR回路215、図4のXOR演算器415〜417、または図7のXOR演算器715〜717に対応する。
本発明によれば、AES暗号回路におけるMixColumn変換回路が小型化され、よりコンパクトな回路でAESの暗号化アルゴリズムおよび復号アルゴリズムを実行することが可能になる。したがって、AES暗号回路のスマートカードへの搭載が容易になり、サイドチャネル攻撃防御機能等を組み込んだセキュアな多機能スマートカードを実現することができる。
以下、図面を参照しながら、本発明を実施するための最良の形態を詳細に説明する。
図2は、AES暗号回路における第1のMixColumn変換回路の構成を示している。図2のMixColumn変換回路は、2つの演算回路201および202からなる。演算回路201は、それぞれ8ビット単位で乗算を実行する4つの乗算器211(MULe2)、212(MULb3)、213(MULd1)、および214(MUL91)と、これらの乗算器の出力のXORを計算するXOR回路215からなる。XOR回路215は、バッファ(フリップフロップ回路)やXOR演算器を備える。同様に、演算回路202も4つの乗算器とXOR回路からなる。
図11および図12に示した従来のMixColumn変換回路では、4つの乗算器(MULe2,MULb3,MULd1,MUL91)と3つのXOR演算器から構成される演算回路を4個並列に設けており、32ビットデータを1サイクルで処理する構成となっている。これに対して、図2のMixColumn変換回路では、4つの乗算器とXO
R回路から構成される演算回路を2個並列に設けており、32ビットデータを2サイクルで処理する構成となっている。
図3は、図2のMixColumn変換回路の具体例(第2のMixColumn変換回路)を示している。図3のMixColumn変換回路は、セレクタ301と2つの演算回路302および303からなる。
演算回路302は、4つの乗算器311(MULe2)、312(MULb3)、313(MULd1)、および314(MUL91)と、4つのXOR演算器315、316、319、および320と、2つのフリップフロップ回路317および318からなる。演算回路303は、4つの乗算器321(MUL91)、322(MULe2)、323(MULb3)、および324(MULd1)と、4つのXOR演算器325、326、329、および330と、2つのフリップフロップ回路327および328からなる。
最初のサイクルでは、選択信号hcとして“0”が入力され、次のサイクルでは、選択信号hcとして“1”が入力される。
セレクタ301は、32ビットの入力データI_DT[31:0]を、上位16ビットI_DT[31:16]と下位16ビットI_DT[15:0]に分割する。そして、選択信号hcが“0”のとき、I_DT[31:16]を16ビットの入力データI’_DT[15:0]として出力し、選択信号hcが“1”のとき、I_DT[15:0]をI’_DT[15:0]として出力する。
I’_DT[15:0]の上位8ビットI’_DT[15:8]は、演算回路302の乗算器311、313と演算回路303の乗算器321、323に入力され、I’_DT[15:0]の下位8ビットI’_DT[7:0]は、演算回路302の乗算器312、314と演算回路303の乗算器322、324に入力される。
XOR演算器315は、乗算器311および312の出力のXORを出力し、XOR演算器316は、乗算器313および314の出力のXORを出力する。フリップフロップ回路317および318は、最初のサイクルでXOR演算器315および316の出力をそれぞれラッチし、次のサイクルでラッチされたデータを出力する。
XOR演算器319は、XOR演算器316およびフリップフロップ回路317の出力のXORを、8ビットのデータDT[31:24]として出力する。XOR演算器320は、XOR演算器315およびフリップフロップ回路318の出力のXORを、8ビットのデータDT[15:8]として出力する。
XOR演算器325は、乗算器321および322の出力のXORを出力し、XOR演算器326は、乗算器323および324の出力のXORを出力する。フリップフロップ回路327および328は、最初のサイクルでXOR演算器325および326の出力をそれぞれラッチし、次のサイクルでラッチされたデータを出力する。
XOR演算器329は、XOR演算器326およびフリップフロップ回路327の出力のXORを、8ビットのデータDT[23:16]として出力する。XOR演算器330は、XOR演算器325およびフリップフロップ回路328の出力のXORを、8ビットのデータDT[7:0]として出力する。
こうして得られた4つの8ビットデータDT[31:24]、DT[23:16]、DT[15:8]、およびDT[7:0]が結合され、32ビットの出力データO_DT[31:0]として出力される。
I_DT[31:0]およびO_DT[31:0]を(1)〜(8)式の8ビットデータa0〜a3およびb0〜b3で表すと、暗号化処理における最初のサイクルにおいて、(11)、(12)、(13)、および(14)式の第1項および第2項のXORが、フリップフロップ回路317、327、318、および328にそれぞれラッチされる。そして、次のサイクルにおいて、(11)〜(14)式のb0、b1、b2、およびb3の値が、それぞれDT[31:24]、DT[23:16]、DT[15:8]、およびDT[7:0]として出力される。
また、復号処理における最初のサイクルにおいて、(15)、(16)、(17)、および(18)式の第1項および第2項のXORが、フリップフロップ回路317、327、318、および328にそれぞれラッチされる。そして、次のサイクルにおいて、(15)〜(18)式のb0、b1、b2、およびb3の値が、それぞれDT[31:24]、DT[23:16]、DT[15:8]、およびDT[7:0]として出力される。
したがって、次のサイクルにおける出力データO_DT[31:0]が、MixColumn変換の演算結果として採用され、最初のサイクルの出力データO_DT[31:0]は無視される。
図4は、図2のMixColumn変換回路の別の具体例(第3のMixColumn変換回路)を示している。図4のMixColumn変換回路は、セレクタ401および404と、2つの演算回路402および403からなる。
演算回路402は、4つの乗算器411(MULe2)、412(MULb3)、413(MULd1)、および414(MUL91)と、3つのXOR演算器415、416、および417からなる。演算回路403は、4つの乗算器421(MUL91)、422(MULe2)、423(MULb3)、および424(MULd1)と、3つのXOR演算器425、426、および427からなる。
最初のサイクルでは、選択信号hcとして“0”が入力され、次のサイクルでは、選択信号hcとして“1”が入力される。
セレクタ401は、32ビットの入力データI_DT[31:0]を8ビット単位で切り替える。具体的には、選択信号hcが“0”のとき、I_DT[31:24]を乗算器411および421に出力し、I_DT[23:16]を乗算器412および422に出力し、I_DT[15:8]を乗算器413および423に出力し、I_DT[7:0]を乗算器414および424に出力する。
また、選択信号hcが“1”のとき、I_DT[31:24]を乗算器413および423に出力し、I_DT[23:16]を乗算器414および424に出力し、I_DT[15:8]を乗算器411および421に出力し、I_DT[7:0]を乗算器412および422に出力する。
XOR演算器415は、乗算器411および412の出力のXORを出力し、XOR演算器416は、乗算器413および414の出力のXORを出力する。XOR演算器417は、XOR演算器415および416の出力のXORを、8ビットのデータDT[15:8]として出力する。
XOR演算器425は、乗算器421および422の出力のXORを出力し、XOR演算器426は、乗算器423および424の出力のXORを出力する。XOR演算器427は、XOR演算器425および426の出力のXORを、8ビットのデータDT[7:
0]として出力する。DT[15:8]およびDT[7:0]は結合されて、セレクタ404に入力される。
セレクタ404は、16ビットのデータDT[15:0]を、32ビットの出力データO_DT[31:0]の上位16ビットまたは下位16ビットに切り替える。具体的には、選択信号hcが“0”のとき、DT[15:0]をO_DT[31:0]の上位16ビットO_DT[31:16]として出力し、選択信号hcが“1”のとき、DT[15:0]をO_DT[31:0]の下位16ビットO_DT[15:0]として出力する。
このようなMixColumn変換回路によれば、暗号化処理における最初のサイクルにおいて、(11)および(12)式のb0およびb1の値が、それぞれDT[15:8]およびDT[7:0]として出力され、それらが結合されてO_DT[31:16]として出力される。そして、次のサイクルにおいて、(13)および(14)式のb2およびb3の値が、それぞれDT[15:8]およびDT[7:0]として出力され、それらが結合されてO_DT[15:0]として出力される。
また、復号処理における最初のサイクルにおいて、(15)および(16)式のb0およびb1の値が、それぞれDT[15:8]およびDT[7:0]として出力され、それらが結合されてO_DT[31:16]として出力される。そして、次のサイクルにおいて、(17)および(18)式のb2およびb3の値が、それぞれDT[15:8]およびDT[7:0]として出力され、それらが結合されてO_DT[15:0]として出力される。
なお、最初のサイクルで選択信号hcとして“1”を入力し、次のサイクルで選択信号hcとして“0”を入力しても、同様の変換結果を得ることができる。
図5は、図11および図12のMixColumn変換回路、図3のMixColumn変換回路、および図4のMixColumn変換回路の回路規模を比較した結果を示している。従来構成(図11および図12)のゲート数が1300個程度であるのに対して、第2の構成(図3)および第3の構成(図4)のゲート数は、それぞれ次のように見積もることができる。
・第2の構成
各演算回路のうち、従来の演算回路(乗算器等)に相当するゲート数:270個
セレクタ:1ビット当たり3個
XOR演算器:1ビット当たり2個
フリップフロップ回路:1ビット当たり13個
回路全体:270×2+3×32+2×8×8+13×8×4=1148
・第3の構成
各演算回路のうち、従来の演算回路(乗算器等)に相当するゲート数:270個
セレクタ:1ビット当たり3個
XOR演算器:1ビット当たり2個
回路全体:270×2+3×32×2+2×8×6=828
したがって、第2の構成では、従来構成より回路規模が約10%削減されており、第3の構成では、従来構成より回路規模が約30%削減されている。
次に、図6および図7を参照しながら、単一の演算回路により32ビットデータを4サイクルで処理する構成について説明する。
図6は、AES暗号回路における第4のMixColumn変換回路の構成を示している。図6のMixColumn変換回路は、セレクタ601および603と演算回路602からなる。
演算回路602は、4つの乗算器611(MULe2)、612(MULb3)、613(MULd1)、および614(MUL91)と、4つのXOR演算器615、616、619、および620と、2つのフリップフロップ回路617および618からなる。
第1のサイクルでは、選択信号hcとして“0”が入力され、第2のサイクルでは、選択信号hcとして“1”が入力され、第3のサイクルでは、選択信号hcとして“2”が入力され、第4のサイクルでは、選択信号hcとして“3”が入力される。
セレクタ601は、32ビットの入力データI_DT[31:0]を、4つの8ビットデータI_DT[31:24]、I_DT[23:16]、I_DT[15:8]、およびI_DT[7:0]に分割する。そして、選択信号hcの値に応じて、これらの8ビットデータを次のように出力する。
・hc=0
I_DT[31:24]→乗算器611および613
I_DT[23:16]→乗算器612および614
・hc=1
I_DT[15:8] →乗算器611および613
I_DT[7:0] →乗算器612および614
・hc=2
I_DT[23:16]→乗算器611および613
I_DT[15:8] →乗算器612および614
・hc=3
I_DT[7:0] →乗算器611および613
I_DT[31:24]→乗算器612および614
XOR演算器615、616、619、および620とフリップフロップ回路617および618の動作については、図3のXOR演算器315、316、319、および320とフリップフロップ回路317および318と同様である。XOR演算器619は、演算結果を8ビットのデータDT1[7:0]として出力し、XOR演算器620は、演算結果を8ビットのデータDT2[7:0]として出力する。
セレクタ603は、DT1[7:0]およびDT2[7:0]を、32ビットの出力データO_DT[31:0]のO_DT[31:24]、O_DT[23:16]、O_DT[15:8]、またはO_DT[7:0]に切り替える。
具体的には、選択信号hcが“1”のとき、DT1[7:0]およびDT2[7:0]をそれぞれO_DT[31:24]およびO_DT[15:8]として出力し、選択信号hcが“3”のとき、DT1[7:0]およびDT2[7:0]をそれぞれO_DT[23:16]およびO_DT[7:0]として出力する。
このようなMixColumn変換回路によれば、暗号化処理における第1のサイクルにおいて、(11)および(13)式の第1項および第2項のXORが、フリップフロップ回路617および618にそれぞれラッチされる。次に、第2のサイクルにおいて、(11)および(13)式のb0およびb2の値が、それぞれDT1[7:0]およびDT2[7:0]として出力される。
次に、第3のサイクルにおいて、(12)および(14)式の第2項および第3項のXORが、フリップフロップ回路617および618にそれぞれラッチされる。そして、第4のサイクルにおいて、(12)および(14)式のb1およびb3の値が、それぞれDT1[7:0]およびDT2[7:0]として出力される。
また、復号処理における第1のサイクルにおいて、(15)および(17)式の第1項および第2項のXORが、フリップフロップ回路617および618にそれぞれラッチされる。次に、第2のサイクルにおいて、(15)および(17)式のb0およびb2の値が、それぞれDT1[7:0]およびDT2[7:0]として出力される。
次に、第3のサイクルにおいて、(16)および(18)式の第2項および第3項のXORが、フリップフロップ回路617および618にそれぞれラッチされる。そして、第4のサイクルにおいて、(16)および(18)式のb1およびb3の値が、それぞれDT1[7:0]およびDT2[7:0]として出力される。
したがって、第2のサイクルにおける出力データO_DT[31:24]およびO_DT[15:8]と、第4のサイクルにおける出力データO_DT[23:16]およびO_DT[7:0]が、MixColumn変換の演算結果として採用される。そして、第1のサイクルおよび第3のサイクルの出力データO_DT[31:0]は無視される。
なお、第1のサイクルで選択信号hcとして“2”を入力し、第2のサイクルで選択信号hcとして“3”を入力し、第3のサイクルで選択信号hcとして“0”を入力し、第4のサイクルで選択信号hcとして“1”を入力しても、同様の変換結果を得ることができる。
図7は、AES暗号回路における第5のMixColumn変換回路の構成を示している。図7のMixColumn変換回路は、セレクタ701および703と演算回路702からなる。
演算回路702は、4つの乗算器711(MULe2)、712(MULb3)、713(MULd1)、および714(MUL91)と、3つのXOR演算器715、716、および717からなる。
第1のサイクルでは、選択信号hcとして“0”が入力され、第2のサイクルでは、選択信号hcとして“1”が入力され、第3のサイクルでは、選択信号hcとして“2”が入力され、第4のサイクルでは、選択信号hcとして“3”が入力される。
セレクタ701は、32ビットの入力データI_DT[31:0]を、4つの8ビットデータI_DT[31:24]、I_DT[23:16]、I_DT[15:8]、およびI_DT[7:0]に分割する。そして、選択信号hcの値に応じて、これらの8ビットデータを次のように出力する。
・hc=0
I_DT[31:24]→乗算器711
I_DT[23:16]→乗算器712
I_DT[15:8] →乗算器713
I_DT[7:0] →乗算器714
・hc=1
I_DT[31:24]→乗算器714
I_DT[23:16]→乗算器711
I_DT[15:8] →乗算器712
I_DT[7:0] →乗算器713
・hc=2
I_DT[31:24]→乗算器713
I_DT[23:16]→乗算器714
I_DT[15:8] →乗算器711
I_DT[7:0] →乗算器712
・hc=3
I_DT[31:24]→乗算器712
I_DT[23:16]→乗算器713
I_DT[15:8] →乗算器714
I_DT[7:0] →乗算器711
XOR演算器715〜717の動作については、図4のXOR演算器415〜417と同様である。XOR演算器717は、演算結果を8ビットのデータDT[7:0]として出力する。
セレクタ703は、DT[7:0]を、32ビットの出力データO_DT[31:0]のO_DT[31:24]、O_DT[23:16]、O_DT[15:8]、またはO_DT[7:0]に切り替える。
具体的には、選択信号hcが“0”のとき、DT[7:0]をO_DT[31:24]として出力し、選択信号hcが“1”のとき、DT[7:0]をO_DT[23:16]として出力し、選択信号hcが“2”のとき、DT[7:0]をO_DT[15:8]として出力し、選択信号hcが“3”のとき、DT[7:0]をO_DT[7:0]として出力する。
このようなMixColumn変換回路によれば、暗号化処理における第1のサイクルにおいて、(11)式のb0の値がO_DT[31:24]として出力され、第2のサイクルにおいて、(12)式のb1の値がO_DT[23:16]として出力され、第3のサイクルにおいて、(13)式のb2の値がO_DT[15:8]として出力され、第4のサイクルにおいて、(14)式のb3の値がO_DT[7:0]として出力される。
また、復号処理における第1のサイクルにおいて、(15)式のb0の値がO_DT[31:24]として出力され、第2のサイクルにおいて、(16)式のb1の値がO_DT[23:16]として出力され、第3のサイクルにおいて、(17)式のb2の値がO_DT[15:8]として出力され、第4のサイクルにおいて、(18)式のb3の値がO_DT[7:0]として出力される。
なお、第1〜第4のサイクルにおいて選択信号hcとして入力される値“0”〜“3”の順序を入れ替えても、同様の変換結果を得ることができる。
図6および図7のMixColumn変換回路によれば、図3および図4のMixColumn変換回路と比較して回路規模がさらに削減される。
(付記1)入力データ列を第1、第2、第3、および第4のデータ列に分割して出力する分割手段と、
第1の期間において、前記第1のデータ列に第1の係数を乗算して第1の乗算結果を出力し、第2の期間において、前記第3のデータ列に該第1の係数を乗算して第2の乗算結果を出力する第1の乗算手段と、
前記第1の期間において、前記第2のデータ列に第2の係数を乗算して第3の乗算結果を出力し、前記第2の期間において、前記第4のデータ列に該第2の係数を乗算して第4の乗算結果を出力する第2の乗算手段と、
前記第1の期間において、前記第1のデータ列に第3の係数を乗算して第5の乗算結果を出力し、前記第2の期間において、前記第3のデータ列に該第3の係数を乗算して第6の乗算結果を出力する第3の乗算手段と、
前記第1の期間において、前記第2のデータ列に第4の係数を乗算して第7の乗算結果を出力し、前記第2の期間において、前記第4のデータ列に該第4の係数を乗算して第8
の乗算結果を出力する第4の乗算手段と、
前記第1の期間において、前記第1および第3の乗算結果の排他的論理和と、前記第5および第7の乗算結果の排他的論理和をラッチするラッチ手段と、
前記第2の期間において、前記第1および第3の乗算結果の排他的論理和と、前記第6および第8の乗算結果の排他的論理和との排他的論理和を出力し、かつ、前記第5および第7の乗算結果の排他的論理和と、前記第2および第4の乗算結果の排他的論理和との排他的論理和を出力する排他的論理和手段と
を備えることを特徴とする暗号演算装置。
(付記2)前記第1の期間において、前記第1のデータ列に第5の係数を乗算して第9の乗算結果を出力し、前記第2の期間において、前記第3のデータ列に該第5の係数を乗算して第10の乗算結果を出力する第5の乗算手段と、
前記第1の期間において、前記第2のデータ列に第6の係数を乗算して第11の乗算結果を出力し、前記第2の期間において、前記第4のデータ列に該第6の係数を乗算して第12の乗算結果を出力する第6の乗算手段と、
前記第1の期間において、前記第1のデータ列に第7の係数を乗算して第13の乗算結果を出力し、前記第2の期間において、前記第3のデータ列に該第7の係数を乗算して第14の乗算結果を出力する第7の乗算手段と、
前記第1の期間において、前記第2のデータ列に第8の係数を乗算して第15の乗算結果を出力し、前記第2の期間において、前記第4のデータ列に該第8の係数を乗算して第16の乗算結果を出力する第8の乗算手段と、
前記第1の期間において、前記第9および第11の乗算結果の排他的論理和と、前記第13および第15の乗算結果の排他的論理和をラッチするラッチ手段と、
前記第2の期間において、前記第9および第11の乗算結果の排他的論理和と、前記第14および第16の乗算結果の排他的論理和との排他的論理和を出力し、かつ、前記第13および第15の乗算結果の排他的論理和と、前記第10および第12の乗算結果の排他的論理和との排他的論理和を出力する排他的論理和手段と
をさらに備えることを特徴とする付記1記載の暗号演算装置。
(付記3)前記第1の乗算手段は、第3の期間において、前記第2のデータ列に前記第1の係数を乗算して第9の乗算結果を出力し、第4の期間において、前記第4のデータ列に該第1の係数を乗算して第10の乗算結果を出力し、
前記第2の乗算手段は、前記第3の期間において、前記第3のデータ列に前記第2の係数を乗算して第11の乗算結果を出力し、前記第4の期間において、前記第1のデータ列に該第2の係数を乗算して第12の乗算結果を出力し、
前記第3の乗算手段は、前記第3の期間において、前記第2のデータ列に前記第3の係数を乗算して第13の乗算結果を出力し、前記第4の期間において、前記第4のデータ列に該第3の係数を乗算して第14の乗算結果を出力し、
前記第4の乗算手段は、前記第3の期間において、前記第3のデータ列に前記第4の係数を乗算して第15の乗算結果を出力し、前記第4の期間において、前記第1のデータ列に該第4の係数を乗算して第16の乗算結果を出力し、
前記ラッチ手段は、前記第3の期間において、前記第9および第11の乗算結果の排他的論理和と、前記第13および第15の乗算結果の排他的論理和をラッチし、
前記排他的論理和手段は、前記第4の期間において、前記第9および第11の乗算結果の排他的論理和と、前記第14および第16の乗算結果の排他的論理和との排他的論理和を出力し、かつ、前記第13および第15の乗算結果の排他的論理和と、前記第10および第12の乗算結果の排他的論理和との排他的論理和を出力することを特徴とする付記1記載の暗号演算装置。
(付記4)入力データ列を第1、第2、第3、および第4のデータ列に分割して出力する分割手段と、
第1の期間において、前記第1のデータ列に第1の係数を乗算して第1の乗算結果を出力し、第2の期間において、前記分割手段から入力されたデータ列に該第1の係数を乗算
して第2の乗算結果を出力する第1の乗算手段と、
前記第1の期間において、前記第2のデータ列に第2の係数を乗算して第3の乗算結果を出力し、前記第2の期間において、前記分割手段から入力されたデータ列に該第2の係数を乗算して第4の乗算結果を出力する第2の乗算手段と、
前記第1の期間において、前記第3のデータ列に第3の係数を乗算して第5の乗算結果を出力し、前記第2の期間において、前記分割手段から入力されたデータ列に該第3の係数を乗算して第6の乗算結果を出力する第3の乗算手段と、
前記第1の期間において、前記第4のデータ列に第4の係数を乗算して第7の乗算結果を出力し、前記第2の期間において、前記分割手段から入力されたデータ列に該第4の係数を乗算して第8の乗算結果を出力する第4の乗算手段と、
前記第1の期間において、前記第1、第3、第5、および第7の乗算結果の排他的論理和を出力し、前記第2の期間において、前記第2、第4、第6、および第8の乗算結果の排他的論理和を出力する排他的論理和手段とを備え、
前記分割手段は、前記第1の期間において、前記第1、第2、第3、および第4のデータ列をそれぞれ前記第1、第2、第3、および第4の乗算手段に出力し、前記第2の期間において、該第1、第2、第3、および第4のデータ列を該第1の期間とは異なる順序で該第1、第2、第3、および第4の乗算手段に出力することを特徴とする暗号演算装置。(付記5)前記第1の期間において、前記第1のデータ列に第5の係数を乗算して第9の乗算結果を出力し、前記第2の期間において、前記分割手段から入力されたデータ列に該第5の係数を乗算して第10の乗算結果を出力する第5の乗算手段と、
前記第1の期間において、前記第2のデータ列に第6の係数を乗算して第11の乗算結果を出力し、前記第2の期間において、前記分割手段から入力されたデータ列に該第6の係数を乗算して第12の乗算結果を出力する第6の乗算手段と、
前記第1の期間において、前記第1のデータ列に第7の係数を乗算して第13の乗算結果を出力し、前記第2の期間において、前記分割手段から入力されたデータ列に該第7の係数を乗算して第14の乗算結果を出力する第7の乗算手段と、
前記第1の期間において、前記第2のデータ列に第8の係数を乗算して第15の乗算結果を出力し、前記第2の期間において、前記分割手段から入力されたデータ列に該第8の係数を乗算して第16の乗算結果を出力する第8の乗算手段と、
前記第1の期間において、前記第9、第11、第13、および第15の乗算結果の排他的論理和を出力し、前記第2の期間において、前記第10、第12、第14、および第16の乗算結果の排他的論理和を出力する排他的論理和手段とをさらに備え、
前記分割手段は、前記第1の期間において、前記第1、第2、第3、および第4のデータ列をそれぞれ前記第5、第6、第7、および第8の乗算手段に出力し、前記第2の期間において、該第1、第2、第3、および第4のデータ列を前記第1、第2、第3、および第4の乗算手段に出力した順序で該第5、第6、第7、および第8の乗算手段に出力することを特徴とする付記4記載の暗号演算装置。
(付記6)前記分割手段は、第3の期間において、前記第1、第2、第3、および第4のデータ列を前記第1および第2の期間とは異なる順序で前記第1、第2、第3、および第4の乗算手段に出力し、第4の期間において、該第1、第2、第3、および第4のデータ列を該第1、第2、および第3の期間とは異なる順序で該第1、第2、第3、および第4の乗算手段に出力し、
前記第1の乗算手段は、前記第3の期間において、前記分割手段から入力されたデータ列に前記第1の係数を乗算して第9の乗算結果を出力し、前記第4の期間において、前記分割手段から入力されたデータ列に該第1の係数を乗算して第10の乗算結果を出力し、
前記第2の乗算手段は、前記第3の期間において、前記分割手段から入力されたデータ列に前記第2の係数を乗算して第11の乗算結果を出力し、前記第4の期間において、前記分割手段から入力されたデータ列に該第2の係数を乗算して第12の乗算結果を出力し、
前記第3の乗算手段は、前記第3の期間において、前記分割手段から入力されたデータ
列に前記第3の係数を乗算して第13の乗算結果を出力し、前記第4の期間において、前記分割手段から入力されたデータ列に該第3の係数を乗算して第14の乗算結果を出力し、
前記第4の乗算手段は、前記第3の期間において、前記分割手段から入力されたデータ列に前記第4の係数を乗算して第15の乗算結果を出力し、前記第4の期間において、前記分割手段から入力されたデータ列に該第4の係数を乗算して第16の乗算結果を出力し、
前記排他的論理和手段は、前記第3の期間において、前記第9、第11、第13、および第15の乗算結果の排他的論理和を出力し、前記第4の期間において、前記第10、第12、第14、および第16の乗算結果の排他的論理和を出力することを特徴とする付記4記載の暗号演算装置。
(付記7)前記分割手段は、暗号化処理におけるミクスコラム変換、または、復号処理における逆ミクスコラム変換の対象となる入力データ列を分割し、前記排他的論理和手段は、該ミクスコラム変換または逆ミクスコラム変換の変換結果である排他的論理和を出力することを特徴とする付記1乃至6のいずれかに記載の暗号演算装置。
本発明の暗号演算装置の原理図である。 第1のMixColumn変換回路の構成図である。 第2のMixColumn変換回路の構成図である。 第3のMixColumn変換回路の構成図である。 MixColumn変換回路の回路規模の比較を示す図である。 第4のMixColumn変換回路の構成図である。 第5のMixColumn変換回路の構成図である。 AES暗号化アルゴリズムを示す図である。 AES復号アルゴリズムを示す図である。 ラウンド処理の基本構成を示す図である。 従来のMixColumn変換回路の構成図である。 従来のMixColumn変換回路の詳細構成図である。
符号の説明
101 分割手段
102−1 第1の乗算手段
102−2 第2の乗算手段
102−3 第3の乗算手段
102−4 第4の乗算手段
103 ラッチ手段
104 排他的論理和手段
201、202、302、303、402、403、602、702、1101、1102、1103、1104 演算回路
211、212、213、214、311、312、313、314、321、322、323、324、411、412、413、414、421、422、423、424、611、612、613、614、711、712、713、714、1111、1112、1113、1114、1121、1122、1123、1124、1131、1132、1133、1134、1141、1142、1143、1144 乗算器
215 XOR回路
301、401、404、601、603、701、703、1001、1005 セレクタ
315、316、319、320、325、326、329、330、415、416、417、425、426、427、615、616、619、620、715、716
、717、802、902、1115、1116、1117、1125、1126、1127、1135、1136、1137、1145、1146、1147 XOR演算器
317、318、327、328、617、618 フリップフロップ回路
801、901 鍵スケジュール
803−1、803−(Nr−1)、803−Nr、903−0、903−1、903−(Nr−1) ラウンド処理
1002 ByteSub変換部
1003、1006 ラウンド鍵加算部
1004 MixColumn変換部
1007 ShiftRow変換部

Claims (6)

  1. 入力データ列を第1、第2、第3、および第4のデータ列に分割して出力する分割手段と、
    第1の期間において、前記第1のデータ列に第1の係数を乗算して第1の乗算結果を出力し、第2の期間において、前記第3のデータ列に該第1の係数を乗算して第2の乗算結果を出力する第1の乗算手段と、
    前記第1の期間において、前記第2のデータ列に第2の係数を乗算して第3の乗算結果を出力し、前記第2の期間において、前記第4のデータ列に該第2の係数を乗算して第4の乗算結果を出力する第2の乗算手段と、
    前記第1の期間において、前記第1のデータ列に第3の係数を乗算して第5の乗算結果を出力し、前記第2の期間において、前記第3のデータ列に該第3の係数を乗算して第6の乗算結果を出力する第3の乗算手段と、
    前記第1の期間において、前記第2のデータ列に第4の係数を乗算して第7の乗算結果を出力し、前記第2の期間において、前記第4のデータ列に該第4の係数を乗算して第8の乗算結果を出力する第4の乗算手段と、
    前記第1の期間において、前記第1および第3の乗算結果の排他的論理和と、前記第5および第7の乗算結果の排他的論理和をラッチするラッチ手段と、
    前記第2の期間において、前記第1および第3の乗算結果の排他的論理和と、前記第6および第8の乗算結果の排他的論理和との排他的論理和を出力し、かつ、前記第5および第7の乗算結果の排他的論理和と、前記第2および第4の乗算結果の排他的論理和との排他的論理和を出力する排他的論理和手段と
    を備えることを特徴とする暗号演算装置。
  2. 前記第1の期間において、前記第1のデータ列に第5の係数を乗算して第9の乗算結果を出力し、前記第2の期間において、前記第3のデータ列に該第5の係数を乗算して第10の乗算結果を出力する第5の乗算手段と、
    前記第1の期間において、前記第2のデータ列に第6の係数を乗算して第11の乗算結果を出力し、前記第2の期間において、前記第4のデータ列に該第6の係数を乗算して第12の乗算結果を出力する第6の乗算手段と、
    前記第1の期間において、前記第1のデータ列に第7の係数を乗算して第13の乗算結果を出力し、前記第2の期間において、前記第3のデータ列に該第7の係数を乗算して第14の乗算結果を出力する第7の乗算手段と、
    前記第1の期間において、前記第2のデータ列に第8の係数を乗算して第15の乗算結果を出力し、前記第2の期間において、前記第4のデータ列に該第8の係数を乗算して第16の乗算結果を出力する第8の乗算手段と、
    前記第1の期間において、前記第9および第11の乗算結果の排他的論理和と、前記第13および第15の乗算結果の排他的論理和をラッチするラッチ手段と、
    前記第2の期間において、前記第9および第11の乗算結果の排他的論理和と、前記第14および第16の乗算結果の排他的論理和との排他的論理和を出力し、かつ、前記第13および第15の乗算結果の排他的論理和と、前記第10および第12の乗算結果の排他的論理和との排他的論理和を出力する排他的論理和手段と
    をさらに備えることを特徴とする請求項1記載の暗号演算装置。
  3. 前記第1の乗算手段は、第3の期間において、前記第2のデータ列に前記第1の係数を乗算して第9の乗算結果を出力し、第4の期間において、前記第4のデータ列に該第1の係数を乗算して第10の乗算結果を出力し、
    前記第2の乗算手段は、前記第3の期間において、前記第3のデータ列に前記第2の係数を乗算して第11の乗算結果を出力し、前記第4の期間において、前記第1のデータ列に該第2の係数を乗算して第12の乗算結果を出力し、
    前記第3の乗算手段は、前記第3の期間において、前記第2のデータ列に前記第3の係数を乗算して第13の乗算結果を出力し、前記第4の期間において、前記第4のデータ列に該第3の係数を乗算して第14の乗算結果を出力し、
    前記第4の乗算手段は、前記第3の期間において、前記第3のデータ列に前記第4の係数を乗算して第15の乗算結果を出力し、前記第4の期間において、前記第1のデータ列に該第4の係数を乗算して第16の乗算結果を出力し、
    前記ラッチ手段は、前記第3の期間において、前記第9および第11の乗算結果の排他的論理和と、前記第13および第15の乗算結果の排他的論理和をラッチし、
    前記排他的論理和手段は、前記第4の期間において、前記第9および第11の乗算結果の排他的論理和と、前記第14および第16の乗算結果の排他的論理和との排他的論理和を出力し、かつ、前記第13および第15の乗算結果の排他的論理和と、前記第10および第12の乗算結果の排他的論理和との排他的論理和を出力することを特徴とする請求項1記載の暗号演算装置。
  4. 入力データ列を第1、第2、第3、および第4のデータ列に分割して出力する分割手段と、
    第1の期間において、前記第1のデータ列に第1の係数を乗算して第1の乗算結果を出力し、第2の期間において、前記分割手段から入力されたデータ列に該第1の係数を乗算して第2の乗算結果を出力する第1の乗算手段と、
    前記第1の期間において、前記第2のデータ列に第2の係数を乗算して第3の乗算結果を出力し、前記第2の期間において、前記分割手段から入力されたデータ列に該第2の係数を乗算して第4の乗算結果を出力する第2の乗算手段と、
    前記第1の期間において、前記第3のデータ列に第3の係数を乗算して第5の乗算結果を出力し、前記第2の期間において、前記分割手段から入力されたデータ列に該第3の係数を乗算して第6の乗算結果を出力する第3の乗算手段と、
    前記第1の期間において、前記第4のデータ列に第4の係数を乗算して第7の乗算結果を出力し、前記第2の期間において、前記分割手段から入力されたデータ列に該第4の係数を乗算して第8の乗算結果を出力する第4の乗算手段と、
    前記第1の期間において、前記第1、第3、第5、および第7の乗算結果の排他的論理和を出力し、前記第2の期間において、前記第2、第4、第6、および第8の乗算結果の排他的論理和を出力する排他的論理和手段とを備え、
    前記分割手段は、前記第1の期間において、前記第1、第2、第3、および第4のデータ列をそれぞれ前記第1、第2、第3、および第4の乗算手段に出力し、前記第2の期間において、該第1、第2、第3、および第4のデータ列を該第1の期間とは異なる順序で該第1、第2、第3、および第4の乗算手段に出力することを特徴とする暗号演算装置。
  5. 前記第1の期間において、前記第1のデータ列に第5の係数を乗算して第9の乗算結果を出力し、前記第2の期間において、前記分割手段から入力されたデータ列に該第5の係数を乗算して第10の乗算結果を出力する第5の乗算手段と、
    前記第1の期間において、前記第2のデータ列に第6の係数を乗算して第11の乗算結果を出力し、前記第2の期間において、前記分割手段から入力されたデータ列に該第6の係数を乗算して第12の乗算結果を出力する第6の乗算手段と、
    前記第1の期間において、前記第1のデータ列に第7の係数を乗算して第13の乗算結果を出力し、前記第2の期間において、前記分割手段から入力されたデータ列に該第7の係数を乗算して第14の乗算結果を出力する第7の乗算手段と、
    前記第1の期間において、前記第2のデータ列に第8の係数を乗算して第15の乗算結果を出力し、前記第2の期間において、前記分割手段から入力されたデータ列に該第8の係数を乗算して第16の乗算結果を出力する第8の乗算手段と、
    前記第1の期間において、前記第9、第11、第13、および第15の乗算結果の排他的論理和を出力し、前記第2の期間において、前記第10、第12、第14、および第1
    6の乗算結果の排他的論理和を出力する排他的論理和手段とをさらに備え、
    前記分割手段は、前記第1の期間において、前記第1、第2、第3、および第4のデータ列をそれぞれ前記第5、第6、第7、および第8の乗算手段に出力し、前記第2の期間において、該第1、第2、第3、および第4のデータ列を前記第1、第2、第3、および第4の乗算手段に出力した順序で該第5、第6、第7、および第8の乗算手段に出力することを特徴とする請求項4記載の暗号演算装置。
  6. 前記分割手段は、第3の期間において、前記第1、第2、第3、および第4のデータ列を前記第1および第2の期間とは異なる順序で前記第1、第2、第3、および第4の乗算手段に出力し、第4の期間において、該第1、第2、第3、および第4のデータ列を該第1、第2、および第3の期間とは異なる順序で該第1、第2、第3、および第4の乗算手段に出力し、
    前記第1の乗算手段は、前記第3の期間において、前記分割手段から入力されたデータ列に前記第1の係数を乗算して第9の乗算結果を出力し、前記第4の期間において、前記分割手段から入力されたデータ列に該第1の係数を乗算して第10の乗算結果を出力し、
    前記第2の乗算手段は、前記第3の期間において、前記分割手段から入力されたデータ列に前記第2の係数を乗算して第11の乗算結果を出力し、前記第4の期間において、前記分割手段から入力されたデータ列に該第2の係数を乗算して第12の乗算結果を出力し、
    前記第3の乗算手段は、前記第3の期間において、前記分割手段から入力されたデータ列に前記第3の係数を乗算して第13の乗算結果を出力し、前記第4の期間において、前記分割手段から入力されたデータ列に該第3の係数を乗算して第14の乗算結果を出力し、
    前記第4の乗算手段は、前記第3の期間において、前記分割手段から入力されたデータ列に前記第4の係数を乗算して第15の乗算結果を出力し、前記第4の期間において、前記分割手段から入力されたデータ列に該第4の係数を乗算して第16の乗算結果を出力し、
    前記排他的論理和手段は、前記第3の期間において、前記第9、第11、第13、および第15の乗算結果の排他的論理和を出力し、前記第4の期間において、前記第10、第12、第14、および第16の乗算結果の排他的論理和を出力することを特徴とする請求項4記載の暗号演算装置。
JP2006336719A 2006-12-14 2006-12-14 暗号演算装置 Withdrawn JP2008151829A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2006336719A JP2008151829A (ja) 2006-12-14 2006-12-14 暗号演算装置
EP07121899A EP1933495A3 (en) 2006-12-14 2007-11-29 Cryptographic operation apparatus for AES
US11/948,447 US20080181395A1 (en) 2006-12-14 2007-11-30 Cryptographic operation apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006336719A JP2008151829A (ja) 2006-12-14 2006-12-14 暗号演算装置

Publications (1)

Publication Number Publication Date
JP2008151829A true JP2008151829A (ja) 2008-07-03

Family

ID=39272269

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006336719A Withdrawn JP2008151829A (ja) 2006-12-14 2006-12-14 暗号演算装置

Country Status (3)

Country Link
US (1) US20080181395A1 (ja)
EP (1) EP1933495A3 (ja)
JP (1) JP2008151829A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013045072A (ja) * 2011-08-26 2013-03-04 Toshiba Corp 演算装置
JP2014160256A (ja) * 2008-10-30 2014-09-04 Qualcomm Incorporated 短い待ち時間のブロック暗号

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11488134B2 (en) * 2008-05-02 2022-11-01 Micro Focus Llc Format-preserving cryptographic systems
US10396981B2 (en) * 2015-09-30 2019-08-27 Apple Inc. Pre-personalization of electronic subscriber identity modules

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3851115B2 (ja) * 2001-06-28 2006-11-29 富士通株式会社 暗号回路
JP3940714B2 (ja) * 2003-09-25 2007-07-04 株式会社東芝 演算装置、および、暗号・復号演算装置
KR100610367B1 (ko) * 2004-06-19 2006-08-10 삼성전자주식회사 정보 누출 공격을 방지하기 위한 갈로아 필드 상의 곱셈방법 및 장치, 역변환 장치 그리고 aes 바이트 치환연산장치
JP4890976B2 (ja) * 2005-08-31 2012-03-07 キヤノン株式会社 暗号処理装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014160256A (ja) * 2008-10-30 2014-09-04 Qualcomm Incorporated 短い待ち時間のブロック暗号
US9336160B2 (en) 2008-10-30 2016-05-10 Qualcomm Incorporated Low latency block cipher
JP2013045072A (ja) * 2011-08-26 2013-03-04 Toshiba Corp 演算装置

Also Published As

Publication number Publication date
EP1933495A3 (en) 2009-08-12
US20080181395A1 (en) 2008-07-31
EP1933495A2 (en) 2008-06-18

Similar Documents

Publication Publication Date Title
JP4909018B2 (ja) 共通鍵暗号のための暗号化装置
JP5229315B2 (ja) 共通鍵暗号機能を搭載した暗号化装置及び組込装置
Chu et al. Low area memory-free FPGA implementation of the AES algorithm
JP5364840B2 (ja) 暗号化装置
WO2015146431A1 (ja) 暗号処理装置、および暗号処理方法、並びにプログラム
Weerasinghe An effective RC4 stream cipher
RU2008125109A (ru) Многоканальное высокоскоростное шифрование и дешифрование
WO2012132622A1 (ja) データ処理装置、およびデータ処理方法、並びにプログラム
KR20050078271A (ko) 저전력 고속 동작을 위한 하드웨어 암호화/복호화 장치 및그 방법
WO2015146430A1 (ja) 暗号処理装置、および暗号処理方法、並びにプログラム
JP2008151829A (ja) 暗号演算装置
JP3940714B2 (ja) 演算装置、および、暗号・復号演算装置
JP6136325B2 (ja) 暗号処理装置、暗号処理方法およびプログラム
Abdulwahed Chaos-Based Advanced Encryption Standard
Granado et al. IDEA and AES, two cryptographic algorithms implemented using partial and dynamic reconfiguration
Kotel et al. Lightweight encryption algorithm based on modified XTEA for low-resource embedded devices
JPWO2008117804A1 (ja) ストリーム暗号向け擬似乱数生成装置とプログラムと方法
JP2008040244A (ja) Aes暗号回路
JP5500277B2 (ja) 共通鍵暗号機能を搭載した暗号化装置及び組込装置
JP2013205437A (ja) 非線形関数S−boxの計算方法及び装置
WO2015146432A1 (ja) 暗号処理装置、および暗号処理方法、並びにプログラム
Hassan New Approach for Modifying DES Algorithm Using 4-States Multi-keys
JP2009169287A (ja) 暗号処理装置及び復号処理装置及びプログラム
Sharma et al. Design of an efficient architecture for advanced encryption standard algorithm using systolic structures
JPH0736673A (ja) 乱数発生器、及びそれを用いた通信システム及びその方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090810

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20091030