JP5605197B2 - 暗号処理装置、および暗号処理方法、並びにプログラム - Google Patents
暗号処理装置、および暗号処理方法、並びにプログラム Download PDFInfo
- Publication number
- JP5605197B2 JP5605197B2 JP2010274807A JP2010274807A JP5605197B2 JP 5605197 B2 JP5605197 B2 JP 5605197B2 JP 2010274807 A JP2010274807 A JP 2010274807A JP 2010274807 A JP2010274807 A JP 2010274807A JP 5605197 B2 JP5605197 B2 JP 5605197B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- line
- unit
- matrix
- cryptographic processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0625—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/122—Hardware reduction or efficient architectures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Storage Device Security (AREA)
Description
データ処理対象となるデータブロックの構成ビットを複数のラインに分割して入力し、各ラインの伝送データに対してラウンド関数を適用したデータ変換処理を繰り返して実行する暗号処理部を有し、
前記暗号処理部は、
前記複数ラインの第1ラインのデータに対する変換データを生成し、生成した変換データに対して前記第1ラインと異なる第2ラインのデータとの演算を行い、該演算結果を次ラウンドの入力データとする演算を繰り返し実行する演算部と、
前記演算部の演算結果を保持するレジスタを有し、
前記演算部は、前記レジスタから順次、データを取得して取得データ順の演算を実行して演算結果を前記レジスタに格納する構成であり、
前記演算部は、
前記第1ラインのデータに対する行列を適用した線形変換を実行する行列演算実行部を有し、
前記行列演算実行部は、
前記第1ラインのデータに対する行列演算の実行サイクル中、最初のサイクルの行列演算の実行に際して前記第2ラインのデータとの演算を実行する暗号処理装置にある。
暗号処理装置において暗号処理を実行する暗号処理方法であり、
暗号処理部が、データ処理対象となるデータブロックの構成ビットを複数ラインに分割して入力し、各ラインの伝送データに対してラウンド関数を適用したデータ変換処理を繰り返して実行する暗号処理ステップを有し、
前記暗号処理ステップにおいて、前記複数ラインを構成する第1ラインのデータの変換処理を実行し、生成した変換データに対して前記第1ラインと異なる第2ラインのデータとの演算を行い、該演算結果を次ラウンドの入力データとする演算を繰り返し実行し、
前記第1ラインのデータの変換データ生成処理において実行する行列演算処理の実行サイクル中、最初のサイクルの行列演算処理に際して前記第2ラインのデータとの演算を実行する暗号処理方法にある。
暗号処理装置において暗号処理を実行させるプログラムであり、
暗号処理部に、データ処理対象となるデータブロックの構成ビットを複数ラインに分割して入力し、各ラインの伝送データに対してラウンド関数を適用したデータ変換処理を繰り返して実行させる暗号処理ステップを有し、
前記暗号処理ステップにおいて、前記複数ラインを構成する第1ラインのデータの変換処理を実行し、生成した変換データに対して前記第1ラインと異なる第2ラインのデータとの演算を行い、該演算結果を次ラウンドの入力データとする演算を繰り返し実行させ、
前記第1ラインのデータの変換データ生成処理において実行する行列演算処理の実行サイクル中、最初のサイクルの行列演算処理に際して前記第2ラインのデータとの演算を実行させるプログラムにある。
具体的には、データを複数ラインに分割入力し、各ラインの伝送データに対してラウンド関数を適用したデータ変換処理を繰り返して実行する一般化Feistel構造を適用した暗号処理構成において、第1ラインのデータに対する行列を適用した線形変換処理を実行する行列演算実行部が行列演算の実行サイクル中、最初のサイクルにおいて行列演算過程データと第2ラインのデータとの演算を実行する。本構成により、第2ラインのデータ保持用のレジスタと第1ラインの行列演算途中結果保持用のレジスタの共有化が可能となり、総レジスタ数の削減、小型化が実現される。さらに回路構成の小型化、エレメント数の削減により電力消費量の削減も可能となる。
1.共通鍵ブロック暗号の概要
2.SPN構造を適用したAES暗号アルゴリズムにおける小型実装手法の概要について
3.SPNの小型実装構成における行列演算回路の構成と処理の詳細について
4.SPN構造の小型実装構成の一般化Feisel構造への適用と問題点について
5.一般化Feistel構造の小型化の実現構成について
6.本発明の構成による効果および変形例について
7.暗号処理装置のICカードとしての構成例について
まず、本発明の適用可能な共通鍵ブロック暗号の概要について説明する。本明細書において、共通鍵ブロック暗号(以下ではブロック暗号)は、以下に定義するものを指すものとする。
平文[P]、暗号文[C]、鍵[K]の各ビットサイズは、以下のように示される。
平文P:nビット
暗号文C:nビット
鍵K:kビット
図2には右側にFeistel構造の全体構造を示し、左側に1つのF関数120の詳細構成図を示している。
各ラウンドにおけるF関数には、鍵スケジュール部111から入力する拡大鍵K'から生成されるラウンド鍵RK1〜RKrが入力される。
処理対象データの分割数は2分割に限らず、様々な設定が可能である。分割数を2に限定しないFeistel構造を一般化Feistel構造と呼ぶ。
図2を参照して説明したFeistel構造は、処理対象データであるn−bitの平文データを、n/2−bitずつの2−lineに分割し、処理を行なう構成であった。これに対して、図3に示す構成は、処理対象データであるn−bitの平文データを、n/4−bitずつの4−lineに分割して処理を行なう構成を持つ。
次に、本発明の実施例の説明の前提として、既に提案されているSPN構造を適用したAES暗号アルゴリズムにおける小型実装手法の概要について説明する。
まず、図4を参照してSPN構造を適用したAES暗号アルゴリズムのラウンド関数の構造について説明する。
なお、SPN構造を適用したAES暗号アルゴリズムにおいてもFeistel構造と同様、ラウンド関数を複数回、繰り返し実行する構成を持つ。
図4は、SPN構造を適用したAES暗号アルゴリズムにおいて利用されるラウンド関数実行部の構成例を示す図である。AESでは、図4に示すラウンド関数を、複数回、繰り返して平文から暗号文、または暗号文から平文の生成を行う。
非線形変換処理を実行する8ビット入出力の16個のS−boxからなる非線形変換部201、
非線形変換部201を構成するS−boxからの8ビット出力の入れ替え処理としてのShift Low実行部202、
Shift Low実行部202の出力を32ビット単位で入力して行列を適用した線形変換処理を実行する4つの行列演算部からなる線形変換部203、
線形変換部203を構成する4つの行列演算部各々からの32ビット出力に対して32ビットのラウンド鍵との排他的論理和演算を実行する4つの演算部からなる排他的論理和演算部204を有する。
この小型化構成では、S−boxの回路は1個しか用いず、さらに、4サイクル(4cycle)かけて1つの行列演算を実行する。このような実装とすることで、行列演算回路の小型化を実現している。
レジスタ数は、図5に示すように152ビット分のレジスタ(8ビットレジスタ×19)となっている。なお、鍵生成部251にも128ビット鍵データを保持する128ビットレジスタが必要となる。
次に、図5を参照して説明したSPNの小型実装構成における行列演算回路の構成と処理の詳細について説明する。
説明の簡単化のため、図6のように、Shift Low実行部によるデータ置換を行なう回路や、鍵スケジュール部については省略したデータパスを用いて説明する。
(y0、y1、y2、y3)は、行列演算回路253の出力(線形変換結果)、
4×4の行列は、行列演算回路253において適用する行列(線形変換行列)に対応する。
なお、4×4の線形変換行列の要素は16進数値として示している。
本例では、(x0、x1、x2、x3)の各々は、S−box252からの1サイクルあたりの出力であり8ビットデータである。出力(y0、y1、y2、y3)の各々も8ビットデータである。
例えば図7の行列演算回路253において、図4に示す行列演算回路203aの行列演算処理を実行する場合、図4に示す行列演算回路203aに対するS−box出力(1)〜(4)が図7に示す行列演算回路253に順次S−box252から4サイクルかけて入力されることになる。
第1サイクルにおいてデータx0、
第2サイクルにおいてデータx1、
第3サイクルにおいてデータx2、
第4サイクルにおいてデータx3、
これらのデータであり、このデータを用いて行列を適用した線形変換結果としての(y0,y1,y2,y3)を出力する。
前述したように、S−box252の各サイクルにおける出力x0、x1、x2、x3、の各々はそれぞれ8ビットデータであり、行列演算回路253における行列を適用した線形変換結果としてのy0,y1,y2,y3の各々もそれぞれ8ビットデータである。
以下、各サイクルにおける処理について説明する。
2番目のラインL2でも、入力データ(din)=x0がそのまま排他論理和部282を通過してレジスタr17に格納される。
x0・2、
x0・3、
これらを計算する。
これらの演算結果が、排他論理和部283,284を通過してレジスタr18,r19に格納される。
この設定により、排他論理和部281〜284では、入力データまたはその乗算値と論理積回路271〜274からの出力との排他的論理和演算が実行され、その結果がレジスタr16〜r19に格納されることになる。
(dout0,dout1,dout2,dout3)
=(y0,y1,y2,y3)
となる。
このように、図7に示す行列演算回路253により、4サイクルの処理で上記(式1)に従った行列演算が実行されることになる。
(y0、y1、y2、y3)は、行列演算回路290の出力(線形変換結果)
4×4の行列は、行列演算回路290において適用する行列(線形変換行列)に対応する。
なお、4×4の線形変換行列の要素は16進数値として示している。
乗算部291〜294が式2に示す4×4のアダマール行列からなる線形変換行列の要素に対応した設定となっている。
論理積回路を、マルチプレクサ(Multiplexer)295〜298に変更して、各レジスタr16〜r19への入力を、2つの他レジスタからの出力か0、これら3つの内から1つ選択する設定としている。
これらの構成が変更点である。
(1)ラウンド鍵格納用の128ビットレジスタ
(2)処理データ格納用の128ビットレジスタ
(3)線形変換行列を適用した行列演算において演算途中結果を格納するための32ビットレジスタ
データ演算部には、(2),(3)のレジスタが必要となり、128+32=160ビットレジスタが必要となると計算される。
Hamalainenらの提案した構成は、S−boxから行列演算回路へ入力が済んだ値(8ビット)が次のラウンドでは不要となる。このことに着目し、行列演算回路へS−boxから入力する32−bitのうち、はじめに入力する8−bit分のレジスタを行列演算回路内のレジスタと共有する構成とすることで、8−bit分のレジスタを削減したものである。
上述したように、HamalainenらはSPN構造の小型化を実現している。しかし、この小型化構成はSPN構造に対応した特有の構成であり、この小型実装構成を一般化Feisel構造へ適用しても十分な小型化の効果は得られない。以下、この問題点について説明する。なお、以下の説明では、一般化Feisel構造はFeisel構造を含む概念であるものとして説明する。
ラウンド関数内のF関数の具体例を図10に示す。
(a)ラウンド鍵との排他的論理和演算を実行する排他的論理和演算部321、
(b)排他的論理和演算部321の出力に対して非線形変換処理を実行するS−boxからなる非線形変換部[S]322、
(c)非線形変換部[S]322の出力に対して、行列演算により線形変換の処理を行なう線形変換部[M]323、
これらの構成要素を持つ。
ただし、4−line一般化Feistel構造におけるF関数に対する入出力は、n/4ビットとなる。
n=128−bit
とする。
図9に示すS−box303には、n/16ビットずつがサイクル毎に入力され非線形変換処理が実行される。
また、排他的論理和演算回路の数も増加している。
レジスタの増加は回路規模に大きく影響するため、ブロック長分のみのレジスタで構成できる実装法が実現できれば、そのほうが望ましい。
次に、本発明の構成、すなわち、一般化Feistel構造の小型化の実現構成について説明する。
Hamalainenらの実装法を、一般化Feistel構造を持つ暗号アルゴリズムの実行構成に適用した場合には、前節で説明したようにレジスタと排他的論理和の回路が増加してしまい、小型化が実現されない。
すなわち、一般化Feistel構造を適用した暗号アルゴリズムでは、行列の途中結果を保持するレジスタと他のラインのデータを保持するレジスタの両方が必要となる。
しかし、図11中のレジスタ群501は、図9に示すレジスタ群301よりも少ないレジスタ数に設定されている。
これに対して、図11に示すレジスタ群501に含まれるレジスタは、n/2−bit分のデータを保持するレジスタのみである。
n=128−bit
とする。
レジスタ群301に、(3/4)n−bit=96−bit
レジスタ群301以外の演算部に8ビットレジスタが8個の8×8=64−bit
総計で、
96+64=160−bit
のレジスタが必要となっている。
レジスタ群501に、(1/2)n−bit=64−bit
レジスタ群501以外の演算部に8ビットレジスタが8個の8×8=64−bit
総計で、
64+64=128−bit
のレジスタが必要となっている。
以下、詳細に説明するが、図11に示す本発明の構成では、行列演算回路において、他ラインからの出力(E0、E1、E2、E3)を利用した演算を先行して実行することで、これらの出力データ(E0、E1、E2、E3)を行列演算期間中、保持するためのレジスタ(8×4=32ビット)を削減したことによる。
レジスタ削減を実現するため、本発明の処理では、演算シーケンス、特に、線形変換を行う行列演算回路における行列を適用した演算シーケンスの設定を特別な設定とした。以下、図11に示す本発明に従ったデータパスである回路構成を適用した演算シーケンスの詳細について説明する。
さらに、図13および以下に示す表2に図11に示すデータパスに従った行列演算回路504における行列演算シーケンスを示す。
図11に示す構成における行列演算シーケンスを示す表2(図13)を用いて各処理の差異について説明する。
排他的論理和演算部305では、行列演算回路304の出力(y0,y1,y2,y3)と、4−line一般化Feistel構造における他ラインからの出力(E0、E1、E2、E3)と排他的論理和される。他ラインからの出力(E0、E1、E2、E3)は、例えば前ラウンドにおけるラウンド演算の処理結果に相当する。
レジスタR0の格納値:d・x0、
レジスタR1の格納値:c・x0、
レジスタR2の格納値:b・x0、
レジスタR3の格納値:a・x0、
これらのデータが各レジスタに格納される。
また、この2サイクル目において、他ラインからの出力要素E0がレジスタR7に格納される。
また、この3サイクル目において、他ラインからの出力要素E0がレジスタR6に格納され、E1がレジスタR7に格納される。
このレジスタ格納値、すなわち、下記式(式5)に示すデータが図9に示すライン306を介して次のラウンド演算の利用データとしてレジスタ群301に入力される。
また、この5サイクル目では、次の行列演算回路304への入力値(x'0,x'1、x'2,x'3)の始めの要素x'0に対する演算がレジスタR0、R1、R2、R3に格納される。
図11に示す構成は、図9に示す構成よりレジスタ数が削減された構成であるが、結果としては図9に示すと同様の演算処理を実現している。ただし、演算シーケンスが異なっている。
各サイクルにおける処理について説明する。
レジスタR5にはE0、
レジスタR6にはE1、
レジスタR7にはE2、
これらのデータが格納された状態に設定される。
d・x0、
c・x0、
b・x0、
a・x0、
これらの各値との排他的論理和演算が実行される。この排他的論理和演算結果が、レジスタR0、R1、R2、R3に格納される。
レジスタR0には、レジスタR6に格納された値E1が、マルチプレクサm0を介して排他論理和演算部512に入力されて、d・x0との排他論理和結果が格納される。
レジスタR1には、レジスタR7に格納された値E2が、マルチプレクサm1を介して排他論理和演算部512に入力されて、c・x0との排他論理和結果が格納される。
レジスタR2には、レジスタ群からライン521を介して出力される出力値E3が、マルチプレクサm2を介して排他論理和演算部512に入力されて、b・x0との排他論理和結果が格納される。
レジスタR3には、レジスタR5に格納された値E0が、マルチプレクサm3を介して排他論理和演算部512に入力されて、a・x0との排他論理和結果が格納される。
すなわち、以下の(式7)に示す各値がレジスタR0、R1、R2、R3に格納される。
第1サイクルでは、レジスタR7、R6、R5の格納値、ライン521の出力値を出力するように設定される。なお、これらの制御は図示しない制御部の制御によって行われる。
この結果、排他論理和演算部512において、入力要素x1の乗算部511の乗算結果と、前サイクルでレジスタR0、R1、R2、R3に格納された値との排他的論理和演算が実行され、その結果がレジスタR0、R1、R2、R3に格納される。
また、この2サイクル目において、他ラインからの出力要素E'0がレジスタR7に格納される。
また、この3サイクル目において、他ラインからの出力要素E'0がレジスタR6に格納され、E'1がレジスタR7に格納される。
排他論理和演算部512は、これらの入力値と、行列演算回路504に対する新たな入力x'0と乗算部511での乗算結果との排他論理和結果を算出して、レジスタR0、R1、R2、R3に格納する。
この時点で、レジスタR0、R1、R2、R3に格納された値は、レジスタR4、R5、R6、R7に格納される。
このレジスタ格納値、すなわち、下記式(式8)に示すデータが図10に示すライン506を介して次のラウンド演算の利用データとしてレジスタ群501に入力される。
図11に示す本発明に従った一般化Feistel構造を適用した暗号処理を実行するデータパスでは、上述したように、先行した処理結果をラウンド演算における行列演算の最初のサイクル(1サイクル目)で排他論理和演算処理を実行してしまう構成としている。
図11を参照して説明したように、行列演算回路504における行列演算の最初の処理として実行する第1サイクルにおいて、他ラインからの出力(E0、E1、E2、E3)をレジスタ等からマルチプレクサ513を介して排他論理和演算部512に先行して入力させて、行列演算回路504に対する最初の入力値(x0)の乗算部511での乗算結果(d・x0等)と排他論理和処理を実行する。
また、この小型化に伴い、低消費電力化も期待できる。
特に、レジスタのゲートサイズは、他のセルに比べて比較的大きなものとなるため、1−line分のレジスタを削減できたことは小型化に特に寄与する。
任意のx×x行列、ただし、xは2以上の自然数、
このような様々な行列の適用が可能である。
図14に示すデータパスにおいて、例えば前ラウンドの演算結果としての他ラインからの出力(E0、E1、E2、E3)をレジスタR4、R5、R6、R7に格納し、行列第1演算回路604における行列演算の最初の処理らサイクル(1サイクル目)においてS−box603からの入力値x0と乗算部611における乗算結果との排他論理和を実行してその結果をレジスタR0、R1、R2、R3に格納する。
このように、先に図11を参照して説明したと同様の処理シーケンスで行列演算を実行することが可能であり、この処理により、レジスタ数の削減などによりハードウェア構成を小型化することが可能となる。
最後に、上述した実施例に従った暗号処理を実行する暗号処理装置としてのICモジュール700の構成例を図15に示す。上述の処理は、例えばPC、ICカード、リーダライタ、その他、様々な情報処理装置において実行可能であり、図15に示すICモジュール700は、これら様々な機器に構成することが可能である。
具体的には、データを複数ラインに分割入力し、各ラインの伝送データに対してラウンド関数を適用したデータ変換処理を繰り返して実行する一般化Feistel構造を適用した暗号処理構成において、第1ラインのデータに対する行列を適用した線形変換処理を実行する行列演算実行部が行列演算の実行サイクル中、最初のサイクルにおいて行列演算過程データと第2ラインのデータとの演算を実行する。本構成により、第2ラインのデータ保持用のレジスタと第1ラインの行列演算途中結果保持用のレジスタの共有化が可能となり、総レジスタ数の削減、小型化が実現される。さらに回路構成の小型化、エレメント数の削減により電力消費量の削減も可能となる。
112 データ暗号化部
120 F関数
121 排他的論理和演算部
122 非線形変換部
123 線形変換部
201 非線形変換部
202 Shift Low実行部
203 線形変換部
204 排他的論理和演算部
251 鍵生成部
252 S−box
253 行列演算回路
254 排他的論理和演算部
271〜274 論理積回路
281〜284 排他的論理和演算部
285〜286 乗算部
290 行列演算回路
291〜294 乗算部
295〜298 マルチプレクサ
301 レジスタ群
302 排他的論理和演算部
303 S−box
304 行列演算回路
305 排他的論理和部
311 乗算部
312 排他的論理和部
313 論理積回路
321 排他的論理和演算部
322 非線形変換部[S]
323 線形変換部[M]
501 レジスタ群
502 排他的論理和演算部
503 S−box
504 行列演算回路
511 乗算部
512 排他的論理和部
513 マルチプレクサ
603 S−box
604 行列演算回路
611 乗算部
613 マルチプレクサ
700 ICモジュール
701 CPU(Central processing Unit)
702 メモリ
703 暗号処理部
704 乱数生成部
705 送受信部
Claims (11)
- データ処理対象となるデータブロックの構成ビットを複数のラインに分割して入力し、各ラインの伝送データに対してラウンド関数を適用したデータ変換処理を繰り返して実行する暗号処理部を有し、
前記暗号処理部は、
前記複数ラインの第1ラインのデータに対する変換データを生成し、生成した変換データに対して前記第1ラインと異なる第2ラインのデータとの演算を行い、該演算結果を次ラウンドの入力データとする演算を繰り返し実行する演算部と、
前記演算部の演算結果を保持するレジスタを有し、
前記演算部は、前記レジスタから順次、データを取得して取得データ順の演算を実行して演算結果を前記レジスタに格納する構成であり、
前記演算部は、
前記第1ラインのデータに対する行列を適用した線形変換を実行する行列演算実行部を有し、
前記行列演算実行部は、
前記第1ラインのデータに対する行列演算の実行サイクル中、最初のサイクルの行列演算の実行に際して前記第2ラインのデータとの演算を実行する暗号処理装置。 - 前記行列演算実行部は、
前段の非線形変換部から順次出力される複数の単位データに対する行列演算を複数サイクルで実行する構成であり、前記複数サイクルの最初のサイクルで、前記非線形変換部から入力する単位データの行列演算に併せて前記第2ラインのデータとの演算を実行する請求項1に記載の暗号処理装置。 - 前記暗号処理装置は、
前記第1ラインのデータに対する行列演算に必要な演算サイクルの完了後に前記第2ラインのデータとの演算を実行する場合に必要となる前記第2ラインのデータ保持用の独立したレジスタを削減し、
前記第1ラインのデータに対する行列演算の途中結果の保持用レジスタを前記第2ラインのデータ保持用のレジスタとして利用した構成を有する請求項1に記載の暗号処理装置。 - 前記行列演算実行部は、
前記第1ラインのデータに対する行列演算を実行する初期サイクルにおいて、前記第1ラインに対する行列演算過程データと前記第2ラインのデータとの排他的論理和演算を実行する請求項1に記載の暗号処理装置。 - 前記行列演算実行部は、
巡回行列またはアダマール行列を適用した行列演算を実行する構成である請求項1に記載の暗号処理装置。 - 前記暗号処理部は、前記ラウンド関数の実行部として、
非線形変換処理を実行する非線形変換部と、行列を適用した線形変換処理を実行する線形変換部としての行列演算実行部を有する請求項1に記載の暗号処理装置。 - 前記行列演算実行部は、
前記非線形変換部としてのS−boxの出力を、順次入力して入力データに対する行列演算を1サイクル処理として実行する請求項1に記載の暗号処理装置。 - 前記暗号処理部の実行する暗号処理は、Feistel構造または一般化Feistel構造を適用した暗号処理である請求項1に記載の暗号処理装置。
- 前記暗号処理部の実行する暗号処理は、CLEFIA暗号アルゴリズムに従った暗号処理である請求項1に記載の暗号処理装置。
- 暗号処理装置において暗号処理を実行する暗号処理方法であり、
暗号処理部が、データ処理対象となるデータブロックの構成ビットを複数ラインに分割して入力し、各ラインの伝送データに対してラウンド関数を適用したデータ変換処理を繰り返して実行する暗号処理ステップを有し、
前記暗号処理ステップにおいて、前記複数ラインを構成する第1ラインのデータの変換処理を実行し、生成した変換データに対して前記第1ラインと異なる第2ラインのデータとの演算を行い、該演算結果を次ラウンドの入力データとする演算を繰り返し実行し、
前記第1ラインのデータの変換データ生成処理において実行する行列演算処理の実行サイクル中、最初のサイクルの行列演算処理に際して前記第2ラインのデータとの演算を実行する暗号処理方法。 - 暗号処理装置において暗号処理を実行させるプログラムであり、
暗号処理部に、データ処理対象となるデータブロックの構成ビットを複数ラインに分割して入力し、各ラインの伝送データに対してラウンド関数を適用したデータ変換処理を繰り返して実行させる暗号処理ステップを有し、
前記暗号処理ステップにおいて、前記複数ラインを構成する第1ラインのデータの変換処理を実行し、生成した変換データに対して前記第1ラインと異なる第2ラインのデータとの演算を行い、該演算結果を次ラウンドの入力データとする演算を繰り返し実行させ、
前記第1ラインのデータの変換データ生成処理において実行する行列演算処理の実行サイクル中、最初のサイクルの行列演算処理に際して前記第2ラインのデータとの演算を実行させるプログラム。
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010274807A JP5605197B2 (ja) | 2010-12-09 | 2010-12-09 | 暗号処理装置、および暗号処理方法、並びにプログラム |
TW100138376A TWI456542B (zh) | 2010-12-09 | 2011-10-21 | 密碼處理裝置、密碼處理方法及程式 |
EP11846328.0A EP2651070B1 (en) | 2010-12-09 | 2011-10-24 | Code processing device, code processing method, and program |
KR1020137014092A KR20130126924A (ko) | 2010-12-09 | 2011-10-24 | 암호 처리 장치 및 암호 처리 방법, 및 프로그램 |
PCT/JP2011/074468 WO2012077419A1 (ja) | 2010-12-09 | 2011-10-24 | 暗号処理装置、および暗号処理方法、並びにプログラム |
US13/990,829 US9031230B2 (en) | 2010-12-09 | 2011-10-24 | Encryption processing device, encryption processing method, and program |
CN2011800580020A CN103238291A (zh) | 2010-12-09 | 2011-10-24 | 代码处理装置、代码处理方法和程序 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010274807A JP5605197B2 (ja) | 2010-12-09 | 2010-12-09 | 暗号処理装置、および暗号処理方法、並びにプログラム |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2012123259A JP2012123259A (ja) | 2012-06-28 |
JP2012123259A5 JP2012123259A5 (ja) | 2014-01-09 |
JP5605197B2 true JP5605197B2 (ja) | 2014-10-15 |
Family
ID=46206922
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010274807A Expired - Fee Related JP5605197B2 (ja) | 2010-12-09 | 2010-12-09 | 暗号処理装置、および暗号処理方法、並びにプログラム |
Country Status (7)
Country | Link |
---|---|
US (1) | US9031230B2 (ja) |
EP (1) | EP2651070B1 (ja) |
JP (1) | JP5605197B2 (ja) |
KR (1) | KR20130126924A (ja) |
CN (1) | CN103238291A (ja) |
TW (1) | TWI456542B (ja) |
WO (1) | WO2012077419A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016059870A1 (ja) * | 2014-10-14 | 2016-04-21 | ソニー株式会社 | 暗号処理装置、および暗号処理方法、並びにプログラム |
CN118014031A (zh) * | 2018-03-22 | 2024-05-10 | 亚马逊技术股份有限公司 | 针对多个输入数据集的处理 |
EP4117223A1 (en) * | 2021-07-05 | 2023-01-11 | Terra Quantum AG | Method for determining a cryptographic key, computer program, and data processing system |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003096612A1 (fr) * | 2002-05-09 | 2003-11-20 | Niigata Seimitsu Co., Ltd. | Dispositif, procede et systeme de cryptage |
JP4128395B2 (ja) * | 2002-05-23 | 2008-07-30 | 三菱電機株式会社 | データ変換装置 |
JP4622222B2 (ja) * | 2003-09-30 | 2011-02-02 | ソニー株式会社 | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
US20050276413A1 (en) * | 2004-06-14 | 2005-12-15 | Raja Neogi | Method and apparatus to manage heterogeneous cryptographic operations |
US8127144B2 (en) * | 2005-10-12 | 2012-02-28 | Panasonic Corporation | Program loader operable to verify if load-destination information has been tampered with, processor including the program loader, data processing device including the processor, promgram loading method, and integrated circuit |
JP4882598B2 (ja) * | 2006-07-28 | 2012-02-22 | ソニー株式会社 | 暗号処理装置、暗号処理アルゴリズム構築方法、および暗号処理方法、並びにコンピュータ・プログラム |
JP5050454B2 (ja) * | 2006-09-01 | 2012-10-17 | ソニー株式会社 | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
JP5023624B2 (ja) * | 2006-09-01 | 2012-09-12 | ソニー株式会社 | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
JP4967544B2 (ja) * | 2006-09-01 | 2012-07-04 | ソニー株式会社 | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
JP2008058830A (ja) * | 2006-09-01 | 2008-03-13 | Sony Corp | データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム |
-
2010
- 2010-12-09 JP JP2010274807A patent/JP5605197B2/ja not_active Expired - Fee Related
-
2011
- 2011-10-21 TW TW100138376A patent/TWI456542B/zh not_active IP Right Cessation
- 2011-10-24 KR KR1020137014092A patent/KR20130126924A/ko not_active Application Discontinuation
- 2011-10-24 WO PCT/JP2011/074468 patent/WO2012077419A1/ja active Application Filing
- 2011-10-24 US US13/990,829 patent/US9031230B2/en not_active Expired - Fee Related
- 2011-10-24 CN CN2011800580020A patent/CN103238291A/zh active Pending
- 2011-10-24 EP EP11846328.0A patent/EP2651070B1/en not_active Not-in-force
Also Published As
Publication number | Publication date |
---|---|
JP2012123259A (ja) | 2012-06-28 |
US20130251144A1 (en) | 2013-09-26 |
KR20130126924A (ko) | 2013-11-21 |
EP2651070B1 (en) | 2018-08-22 |
TWI456542B (zh) | 2014-10-11 |
EP2651070A4 (en) | 2017-01-18 |
US9031230B2 (en) | 2015-05-12 |
TW201225024A (en) | 2012-06-16 |
WO2012077419A1 (ja) | 2012-06-14 |
CN103238291A (zh) | 2013-08-07 |
EP2651070A1 (en) | 2013-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4905000B2 (ja) | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム | |
JP5055993B2 (ja) | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム | |
US8165288B2 (en) | Cryptographic processing apparatus and cryptographic processing method, and computer program | |
JP5822970B2 (ja) | 擬似ランダム生成、データ暗号化、およびメッセージ暗号化ハッシングのための暗号化デバイス | |
US8396210B2 (en) | Cryptographic processing apparatus and cryptographic processing method, and computer program | |
EP2058781B1 (en) | Encryption device, encryption method, and computer program | |
WO2009087972A1 (ja) | データ送信装置、データ受信装置、これらの方法、記録媒体、そのデータ通信システム | |
US9418245B2 (en) | Encryption processing device, encryption processing method, and program | |
JP5605197B2 (ja) | 暗号処理装置、および暗号処理方法、並びにプログラム | |
CN110071927B (zh) | 一种信息加密方法、系统及相关组件 | |
JP5223245B2 (ja) | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20131118 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20131118 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20140729 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140811 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5605197 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |