JP5652363B2 - 暗号処理装置、および暗号処理方法、並びにプログラム - Google Patents
暗号処理装置、および暗号処理方法、並びにプログラム Download PDFInfo
- Publication number
- JP5652363B2 JP5652363B2 JP2011207703A JP2011207703A JP5652363B2 JP 5652363 B2 JP5652363 B2 JP 5652363B2 JP 2011207703 A JP2011207703 A JP 2011207703A JP 2011207703 A JP2011207703 A JP 2011207703A JP 5652363 B2 JP5652363 B2 JP 5652363B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- function
- unit
- input
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
-
- 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
-
- 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/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- 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)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
Description
データ処理対象となるデータの構成ビットを複数ラインに分割して入力し、各ラインのデータに対してデータ変換処理を繰り返して実行する暗号処理部を有し、
前記暗号処理部は、
前記複数ラインを構成する1ラインのデータを入力して、変換データを生成するF関数実行部と、
前記F関数の出力に対する他ラインのデータとの排他的論理和演算を実行する排他的論理和演算実行部と、
前記F関数実行部における変換データの生成過程の中間データを格納する中間データ格納レジスタと、
前記中間データ格納レジスタの格納データに基づいて、前記F関数実行部に対する入力データを算出する逆演算実行部と、
を有する暗号処理装置にある。
暗号処理装置において実行する暗号処理方法であり、
暗号処理部が、データ処理対象となるデータの構成ビットを複数ラインに分割して入力し、各ラインのデータに対してデータ変換処理を繰り返して実行する暗号処理ステップを実行し、
前記暗号処理ステップは、
前記複数ラインを構成する1ラインのデータを入力して、変換データを生成するF関数実行ステップと、
前記F関数の出力に対する他ラインのデータとの排他的論理和演算を実行する排他的論理和演算実行ステップと、
前記F関数実行ステップにおける変換データの生成過程の中間データを中間データ格納レジスタに格納するステップと、
前記中間データ格納レジスタの格納データに基づいて、前記F関数実行部に対する入力データを算出する逆演算実行ステップと、
を実行する暗号処理方法にある。
暗号処理装置において暗号処理を実行させるプログラムであり、
暗号処理部が、データ処理対象となるデータの構成ビットを複数ラインに分割して入力し、各ラインのデータに対してデータ変換処理を繰り返して実行する暗号処理ステップを実行させ、
前記暗号処理ステップにおいて、
前記複数ラインを構成する1ラインのデータを入力して、変換データを生成するF関数実行ステップと、
前記F関数の出力に対する他ラインのデータとの排他的論理和演算を実行する排他的論理和演算実行ステップと、
前記F関数実行ステップにおける変換データの生成過程の中間データを中間データ格納レジスタに格納するステップと、
前記中間データ格納レジスタの格納データに基づいて、前記F関数実行部に対する入力データを算出する逆演算実行ステップと、
を実行させるプログラムにある。
具体的には、データ処理対象となるデータの構成ビットを複数ラインに分割して入力し、各ラインのデータに対してデータ変換処理を繰り返して実行する暗号処理部を有し、暗号処理部は、複数ラインを構成する1ラインのデータを入力して、変換データを生成するF関数実行部と、F関数の出力に対する他ラインのデータとの排他的論理和演算を実行する排他的論理和演算実行部と、F関数実行部における変換データの生成過程の中間データを格納する中間データ格納レジスタと、中間データ格納レジスタの格納データに基づいて、F関数実行部に対する入力データを算出する逆演算実行部を有する。逆演算実行部における逆演算により、F関数実行部に対する入力値を算出可能となり、このデータを保持するレジスタを削減することが可能となり、暗号処理構成の小型化が実現される。
1.共通鍵ブロック暗号の概要
2.共通鍵ブロック暗号の構造と従来型の小型化実装手法の概要について
3.レジスタ削減を実現する暗号処理構成例について
4.本開示の手法の効果のまとめ
5.その他の実施例について
6.暗号処理装置の構成例について
7.本開示の構成のまとめ
まず、共通鍵ブロック暗号の概要について説明する。
(1−1.共通鍵ブロック暗号)
ここでは共通鍵ブロック暗号(以下ではブロック暗号)としては以下に定義するものを指すものとする。
ブロック暗号は入力として平文Pと鍵Kを取り、暗号文Cを出力する。平文と暗号文のビット長をブロックサイズと呼びここではnで著す。nは任意の整数値を取りうるが、通常、ブロック暗号アルゴリズムごとに、あらかじめひとつに決められている値である。ブロック長がnのブロック暗号のことをnビットブロック暗号と呼ぶこともある。
平文P:nビット
暗号文C:nビット
鍵K:kビット
暗号化アルゴリズムEに対応する復号アルゴリズムDは暗号化アルゴリズムEの逆関数E−1と定義でき、入力として暗号文Cと鍵Kを受け取り,平文Pを出力する。図2に図1に示した暗号アルゴリズムEに対応する復号アルゴリズムDの図を示す。
ブロック暗号は2つの部分に分けて考えることができる。ひとつは鍵Kを入力とし、
ある定められたステップによりビット長を拡大してできた拡大鍵K'(ビット長k')を出力する「鍵スケジュール部」と、もうひとつは平文Pと鍵スケジュール部から拡大された鍵K'を受け取ってデータの変換を行い暗号文Cを出力する「データ暗号化部」である。
2つの部分の関係は図3に示される。
以下の実施例において用いるデータ暗号化部はラウンド関数という処理単位に分割できるものとする。ラウンド関数は入力としての2つのデータを受け取り、内部で処理を施したのち、1つのデータを出力する。入力データの一方は暗号化途中のnビットデータであり、あるラウンドにおけるラウンド関数の出力が次のラウンドの入力として供給される構成となる。もう1つの入力データは鍵スケジュールから出力された拡大鍵の一部のデータが用いられ、この鍵データのことをラウンド鍵と呼ぶものとする。またラウンド関数の総数は総ラウンド数と呼ばれ、暗号アルゴリズムごとにあらかじめ定められている値である。ここでは総ラウンド数をRで表す。
ブロック暗号アルゴリズムによってラウンド関数はさまざまな形態をとりうる。ラウンド関数はその暗号アルゴリズムが採用する構造(structure)によって分類できる。代表的な構造としてここではSPN構造、Feistel構造、拡張Feistel構造を例示する。
nビットの入力データすべてに対して、ラウンド鍵との排他的論理和演算、非線形変換、線形変換処理などが適用される構成。各演算の順番は特に決まっていない。図5にSPN構造のラウンド関数の例を示す。
nビットの入力データはn/2ビットの2つのデータに分割される。うち片方のデータとラウンド鍵を入力として持つ関数(F関数)が適用され、出力がもう片方のデータに排他的論理和される。そののちデータの左右を入れ替えたものを出力データとする。F関数の内部構成にもさまざまなタイプのものがあるが、基本的にはSPN構造同様にラウンド鍵データとの排他的論理和演算、非線形演算、線形変換の組み合わせで実現される。図6にFeistel構造のラウンド関数の一例を示す。
拡張Feistel構造はFeistel構造ではデータ分割数が2であったものを,3以上に分割する形に拡張したものである。分割数をdとすると、dによってさまざまな拡張Feistel構造を定義することができる。F関数の入出力のサイズが相対的に小さくなるため、小型実装に向いているとされる。図7にd=4でかつ、ひとつのラウンド内に2つのF関数が並列に適用される場合の拡張Feistel構造の一例を示す。また,図8にd=8でかつ,ひとつのラウンド内に1つのF関数が適用される場合の拡張Feistel構造の一例を示す。
非線形変換処理部は、入力されるデータのサイズが大きくなると実装上のコストが高くなる傾向がある。それを回避するために対象データを複数の単位に分割し、それぞれに対して非線形変換を施す構成がとられることが多い。例えば入力サイズをmsビットとして、それらをsビットずつのm個のデータに分割して、それぞれに対してsビット入出力を持つ非線形変換を行う構成である。それらのsビット単位の非線形変換をS−boxと呼ぶものとする。図9に例を示す。
線形変換処理部はその性質上、行列として定義することが可能である。行列の要素はGF(28)の体の要素やGF(2)の要素など、一般的にはさまざまな表現ができる。図10にmsビット入出力をもち、GF(2s)の上で定義されるm×mの行列により定義される線形変換処理部の例を示す。
次に、共通鍵ブロック暗号の構造と従来型の小型化実装手法の概要について説明する。
本開示に係る暗号処理構成の説明上、必要な用語について説明する。
図11を参照して、再度、共通鍵ブロック暗号について説明する。共通鍵ブロック暗号のアルゴリズムは、入力データの変換を繰り返し実行するラウンド関数を有するデータ暗号化部と、ラウンド関数部の各ラウンドで適用するラウンド鍵を生成する鍵スケジュール部とによって構成される。鍵スケジュール部は秘密鍵を入力し、各ラウンド関数に入力するラウンド鍵を生成する。
例えば、r段のラウンド関数を行なう構成としたブロック暗号においては、1からr段までのラウンド関数にそれぞれRK1,RK2,...,Rrのラウンド鍵が入力される。また、初期鍵としてIKが,最終鍵としてFKが排他的論理和される。
図12を参照してFeistel構造について説明する。共通鍵ブロック暗号におけるデータ暗号化部の代表的な構造としてFeistel構造がある。ブロック長をn−bitとした際の具体的なFeistel構造の構成例を図12に示す。
また、図12に示した構造は,Feistel構造の構成例の1つであり,IK,FKを排他的論理和する位置を変更することで、別の構成例が可能である。
図13を参照して拡張Feistel構造について説明する。前節のFeistel構造の説明では,n/2−bitずつの2−lineに分割し、処理を行なう構成であったが、3−line以上に分割する形にも拡張が可能である。例えば、n/4−bitずつの4−lineに分割し、処理を行なう4−line拡張Feistel構造と呼ばれるものもある。
(2−4−1.SPN構造を適用したAES暗号アルゴリズムにおける小型実装手法について)
先に説明したように、SPN構造を適用したAES暗号アルゴリズムにおける小型実装手法についてHamalainen,Alho,Hannikainen,HamalainenらはAESの小型実装法を提案している。非特許文献3[Panu Hamalainen,Timo Alho,Marko Hannikainen,and Timo D.Hamalainen. Design and implementation of low-area and low-power AES encryption hardware core. In DSD,pages 577-583.IEEE Computer Society,2006.9]
32−8=24−bit
分に抑えられる。
上述したように,Hamalainenらは,SPN構造の小型化を実現している。しかし、この小型化構成はSPN構造に対応した特有の構成であり、この小型実装構成を拡張Feistel構造へ適用しても十分な小型化の効果は得られない。
*非線形処理を実行するS−boxからなる非線形変換部S801、
*非線形変換部S801からの出力に対して、行列演算により線形変換の処理を行なうM802、
*線形変換部M802からの出力に対して、ラウンド鍵との排他的論理和演算を実行する排他的論理和演算部X803、
上記の構成要素を持つ。図18に示すF関数はSP型F関数と呼ばれる。
(y0、y1、y2、y3)は、行列演算回路である線形変換部M801の出力(線形変換結果)、
4×4の行列は、行列演算回路である線形変換部M801において適用する行列(線形変換行列)に対応する。
なお、4×4の線形変換行列の要素は16進数値として示している。
本例では、(x0、x1、x2、x3)の各々は、S−boxからの1サイクルあたりの出力であり8ビットデータである。出力(y0、y1、y2、y3)の各々も8ビットデータである。
図17に示す回路も、図16に示す回路と同様、S−boxは1つのみである。図17に示すS−box,S701である。このS−box,S701は、図18に示すF関数内に設定される1つのS−boxの処理を1cycleで実行する。
cycleごとに、順次、図18に示す各S−boxの処理を行なうことになる。
レジスタの回路規模は他のセルに比べて比較的大きなものとなり、レジスタ数の増加は回路規模に大きく影響する。そのため、小型化を実現するための一つの方向性として、レジスタの増加を抑えた実装法が考えられる。従来手法の実装法では、block長分よりも大きなレジスタが必要になってしまうことが課題と考えられる。
Hamalainenらの実装法を、拡張Feistel構造を持つアルゴリズムに適用した場合には、前節で述べたように必要なレジスタが増加してしまう。これは、F関数への入力は次のラウンドでも利用するため、F関数への入力を保持したまま、F関数の出力を演算しているためである。この考えのもとで実装すると、F関数への入力を保持するレジスタと、F関数演算時の中間値を保持するためのレジスタの両方が必要となる。
F関数の出力値と、F関数へ入力したラインとは別のラインとの排他的論理和を実行後、F関数演算時の中間値からF関数への入力を復元するように考える。
図13を参照すると、1ラウンドに演算する必要のあるF関数は2つあることが分かる。図19では,1つのF関数の出力を4cycleかけて実行し、その後の4cycleをかけて図18の保持する中間値I,804からF関数の入力を復元する。
i∈{0,1,...,15}
に対して、
piを8−bitの要素とする。
このとき,(p0,p1,...,p15)で表される128−bitを平文として考える。
図20は,図13における、
i∈{1,...,r}ラウンド目のラウンド関数を表したものである。
R0〜R3には、(S(p0),S(p1),S(p2),S(p3))が格納され、
R4〜R15には,(p4,p5,...,p15)がそれぞれ格納されている状態を表す。
また、マルチプレクサm03を利用することにより、R0に格納されている値を次のcycleでR3に格納することで、2,3,4cycle目には同様に図18記載の線形演算部M801の出力値の9〜16,17〜24,25〜32−bit目がそれぞれ計算できる。
また、図19記載のマルチプレクサm03を利用し、R0が保持している値を次のcycleではR3に格納するようにしていたので、表1を参照すると、ラウンド開始後の4cycle後には、R0,R1,R2,R3の保持内容は、ラウンド開始時の値と変化していないことが分かる。
しかし、ラウンド関数開始後の4cycle後には、ラウンド関数出力の値として必要な(x0,x1,x2,x3)の値は保持しておらず、代わりにF関数演算時の中間値である(S(x0),S(x1),S(x2),S(x3))のみをR0,R1,R2,R3に保持している。
しかし、ラウンド関数開始後の4cycle後には、ラウンド関数出力の値として必要な(x8,x9,x10,x11)の値は保持しておらず、代わりにF関数演算時の中間値である(S(x8),S(x9),S(x10),S(x11))のみをR0,R1,R2,R3に保持している。
また、y12,y13,y14,y15は、図19記載のマルチプレクサm01を利用し、ラウンド関数開始後の16cycle後には、それぞれR12,R13,R14,R15に格納される。
i∈{0,1,...,15}
に対して、ciを8−bitの要素とする。
このとき、(c0,c1,...,c15)で表される128−bitを暗号文として考える。
S(c4),S(c5),S(c6),S(c7),c8,c9,c10,c11,c12,c13,c14,c15,c0,c1,c2,c3、
が格納されている。
上記のようにすることで,暗号文出力ポートから,毎サイクルごとにc0,c1,...,c15の順で順次出力される。
従来手法では、F関数への入力を保持したまま、F関数の出力を演算していた。この考えのもとでは、block長分のレジスタに加え,F関数演算時の中間値を保持するレジスタが必要となる。
前節では,4−line拡張Feistel構造においてラウンド関数内部の構成要素もある程度仮定し、適用法と効果について説明した。本開示の手法は、前節までに説明した具体的なラウンド関数の構造のみではなく、変形、拡張された構造についても適用可能である。
本開示の方式は、図18に記載のSP型F関数だけではなく、図21に記載のSPS型F関数にも適用可能である。この場合に考えられるデータパスの例を図22に示す。
図21に示す保持する中間値I104となる。
本開示の方式は、図18に記載のSP型F関数だけではなく、図23に記載の鍵挿入が複数入ったSPS型F関数にも適用可能である。この場合に考えられるデータパスの例を図24に示す。
保持する中間値は、図23に示す保持する中間値I124となる。
本開示の方式は、図18に記載のSP型F関数だけではなく、図25に記載の鍵挿入がF関数入力直後にあるSP型F関数にも適用可能である。この場合に考えられるデータパスの例を図26に示す。
保持する中間値は、図25に示す保持する中間値I144となる。
本開示の方式は、図18に記載のSP型F関数だけではなく、図27に記載のF関数にも適用可能である。図27に記載のF関数は、これまでに説明したF関数と大きく構造が異なるため、詳細に説明する。
本開示の方式は、図18に記載のSP型F関数だけではなく、図29に記載のF関数にも適用可能である。図29は、図27に記載の繰り返し型のF関数の非線形演算部S161,S162,S16sが,図29記載の非線形演算部S181,S182,S18sに変更されたものと考えることができる。
ここで記載した具体的なF関数の構成は限られたものであるが、本開示の手法は、適した回路を導入することで中間値からF関数の入力を復元することが可能となる任意のF関数に適用可能である。
F関数に行列演算を含む場合、本開示の手法は、巡回行列のみでなくアダマール行列に対しても適用可能であり、同様の効果が期待できる。また、上記以外の行列に対しても発明手法のアイデアは適用できる。
F関数に行列演算を含む場合、本開示の方式は、4×4行列のみでなく任意のx(xは2以上の自然数)に対して,x×x行列でも同様の考えが適用可能であり、同様の効果が期待できる。
4−linetype−2拡張Feistel構造を例に本開示の手法の適用例について説明したが、type−1,type−3の拡張Feistel構造に対しても適用可能であり、同様の効果が期待できる。
4−linetype−2拡張Feistel構造を例に本開示の手法の適用例について説明したが、2−lineのFeistel構造に対しても適用可能であり、同様の効果が期待できる。
4−line拡張Feistel構造への適用と同様の考えで、任意のx(xは3以上の自然数)に対して、x−line拡張Feistel構造に対しても適用可能であり、同様の効果が期待できる。
図20に点線枠で示すように、1つのラウンド関数の出力は、次の段のラウンド関数へ出力する際に、各ラインのデータ単位でシフト処理等の入れ替え処理が行われる。
このラウンド関数間のデータ入れ替え、すなわち、前段のラウンドの出力を後段のラウンドへ出力する際に、各ライン単位でデータを入れ替える処理をラウンド置換(round permutaion)と呼ぶ。
左から1番目のラインの出力を、次のラウンド関数の左から4番目のラインへの入力に設定、
左から2番目のラインの出力を、次のラウンド関数の左から1番目のラインへの入力に設定、
左から3番目のラインの出力を、次のラウンド関数の左から2番目のラインへの入力に設定、
左から4番目のラインの出力を、次のラウンド関数の左から3番目のラインへの入力に設定、
上記のラウンド置換(round permutaion)の設定例である。
ただし、データパスの設定は、各ラウンド置換(round permutaion)の設定に応じた構成とすることが必要である。
図30に示すラウンド置換(round permutaion)は、前段のラウンド関数の各ライン出力である(n/4)bitのそれぞれを2分割し、(n/8)bitの2つのライン出力に分割する。
各々が(n/8)bitのデータを持つ計8ラインのデータを次のラウンド関数に入力する際に、各ライン単位でデータ入れ替え(置換)を行う構成としている。
左から1番目のラインの出力を2分割した前半データ(n/8)bitを、次のラウンド関数の左から4番目のラインの前半データ(n/8)bitの入力に設定、
左から1番目のラインの出力を2分割した後半データ(n/8)bitを、次のラウンド関数の左から2番目のラインの後半データ(n/8)bitの入力に設定、
左から2番目のラインの出力を2分割した前半データ(n/8)bitを、次のラウンド関数の左から1番目のラインの前半データ(n/8)bitの入力に設定、
左から2番目のラインの出力を2分割した後半データ(n/8)bitを、次のラウンド関数の左から3番目のラインの後半データ(n/8)bitの入力に設定、
左から3番目のラインの出力を2分割した後半データ(n/8)bitを、次のラウンド関数の左から4番目のラインの後半データ(n/8)bitの入力に設定、
左から4番目のラインの出力を2分割した前半データ(n/8)bitを、次のラウンド関数の左から3番目のラインの前半データ(n/8)bitの入力に設定、
左から4番目のラインの出力を2分割した後半データ(n/8)bitを、次のラウンド関数の左から1番目のラインの後半データ(n/8)bitの入力に設定、
上記のラウンド置換(round permutaion)の設定例である。
なお、図30に示すラウンド関数におけるF関数は、図21に記載したSPS型F関数であると想定している。
図31に示すデータパスは、F関数として、図21に記載のSPS型F関数を適用した場合の構成例である。また、F関数における線形変換実行部である行列演算部M204で適用する行列の一例として,1行目の要素が(2,3,1,1)となる巡回行列を想定している。
図31において、これらの中間値は、レジスタR0〜R3に保持される。
基本的なデータの流れは、先に拡張例1として説明した図22に示すデータパスと同様のものであり、非線形演算部S−boxS203の入力前にマルチプレクサm202が設定されている。行列演算部M204の出力がマルチプレクサm202を利用し、非線形演算部S−boxS203に入力され、S−boxS203の出力が排他的論理和部X206に入力される。
最後に、上述した実施例に従った暗号処理を実行する暗号処理装置の実装例について説明する。
上述した実施例に従った暗号処理を実行する暗号処理装置は、暗号処理を実行する様々な情報処理装置に搭載可能である。具体的には、PC、TV、レコーダ、プレーヤ、通信機器、さらに、RFID、スマートカード、センサネットワーク機器、デンチ/バッテリー認証モジュール、健康、医療機器、自立型ネットワーク機器等、例えばデータ処理や通信処理に伴う暗号処理を実行する様々な危機において利用可能である。
暗号化処理、復号処理、双方の処理において、上述した実施例において説明したレジスタ削減構成を持つF関数実行部の構成をそのまま適用することが可能である。
以上、特定の実施例を参照しながら、本開示の実施例について詳解してきた。しかしながら、本開示の要旨を逸脱しない範囲で当業者が実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本開示の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
(1)データ処理対象となるデータの構成ビットを複数ラインに分割して入力し、各ラインのデータに対してデータ変換処理を繰り返して実行する暗号処理部を有し、
前記暗号処理部は、
前記複数ラインを構成する1ラインのデータを入力して、変換データを生成するF関数実行部と、
前記F関数の出力に対する他ラインのデータとの排他的論理和演算を実行する排他的論理和演算実行部と、
前記F関数実行部における変換データの生成過程の中間データを格納する中間データ格納レジスタと、
前記中間データ格納レジスタの格納データに基づいて、前記F関数実行部に対する入力データを算出する逆演算実行部と、
を有する暗号処理装置。
(7)前記F関数実行部は、複数の非線形演算部の繰り返し構造を有する前記(1)〜(6)いずれか1に記載の暗号処理装置。
(8)前記暗号処理部は、入力データとしての平文を暗号文に変換する暗号化処理、または、入力データとしての暗号文を平文に変換する復号処理を実行する前記(1)〜(7)いずれか1に記載の暗号処理装置。
具体的には、データ処理対象となるデータの構成ビットを複数ラインに分割して入力し、各ラインのデータに対してデータ変換処理を繰り返して実行する暗号処理部を有し、暗号処理部は、複数ラインを構成する1ラインのデータを入力して、変換データを生成するF関数実行部と、F関数の出力に対する他ラインのデータとの排他的論理和演算を実行する排他的論理和演算実行部と、F関数実行部における変換データの生成過程の中間データを格納する中間データ格納レジスタと、中間データ格納レジスタの格納データに基づいて、F関数実行部に対する入力データを算出する逆演算実行部を有する。逆演算実行部における逆演算により、F関数実行部に対する入力値を算出可能となり、このデータを保持するレジスタを削減することが可能となり、暗号処理構成の小型化が実現される。
701 CPU(Central processing Unit)
702 メモリ
703 暗号処理部
704 乱数生成部
705 送受信部
Claims (10)
- データ処理対象となるデータの構成ビットを複数ラインに分割して入力し、各ラインのデータに対してデータ変換処理を繰り返して実行する暗号処理部を有し、
前記暗号処理部は、
前記複数ラインを構成する1ラインのデータを入力して、変換データを生成するF関数実行部と、
前記F関数の出力に対する他ラインのデータとの排他的論理和演算を実行する排他的論理和演算実行部と、
前記F関数実行部における変換データの生成過程の中間データを格納する中間データ格納レジスタと、
前記中間データ格納レジスタの格納データに基づいて、前記F関数実行部に対する入力データを算出する逆演算実行部と、
を有する暗号処理装置。 - 前記F関数実行部は、
F関数実行部への入力データに対する非線形変換処理を実行するS−boxを有し、
前記中間データ格納レジスタは、前記S−boxの出力値を中間データとして保持し、
前記逆演算実行部は、
前記S−boxによる非線形変換処理の逆演算を含む演算処理により、前記F関数実行部に対する入力データを算出する請求項1に記載の暗号処理装置。 - 前記F関数実行部は、
非線形変換部、および線形変換部を有し、前記非線形変換部の出力を前記中間データとして格納するレジスタを有し、
前記線形変換部は、前記レジスタの格納値に対する線型変換処理を実行し、
前記逆演算実行部は、前記レジスタの格納値に対する演算処理により、前記F関数実行部に対する入力データを算出する請求項1に記載の暗号処理装置。 - 前記F関数実行部は、F関数実行部に対する入力に対して非線形変換部において非線形変換処理を実行し、さらに線形変換部において線形変換処理を実行するSP型F関数である請求項1に記載の暗号処理装置。
- 前記F関数実行部は、F関数実行部に対する入力に対して非線形変換部において非線形変換処理を実行し、さらに線形変換部において線形変換処理を実行し、さらに非線形変換部において再度、非線形変換処理をするSPS型F関数である請求項1に記載の暗号処理装置。
- 前記F関数実行部は、外部から入力するラウンド鍵との排他的論理和演算部を有する請求項1に記載の暗号処理装置。
- 前記F関数実行部は、複数の非線形演算部の繰り返し構造を有する請求項1に記載の暗号処理装置。
- 前記暗号処理部は、
入力データとしての平文を暗号文に変換する暗号化処理、または、
入力データとしての暗号文を平文に変換する復号処理を実行する請求項1に記載の暗号処理装置。 - 暗号処理装置において実行する暗号処理方法であり、
暗号処理部が、データ処理対象となるデータの構成ビットを複数ラインに分割して入力し、各ラインのデータに対してデータ変換処理を繰り返して実行する暗号処理ステップを実行し、
前記暗号処理ステップは、
前記複数ラインを構成する1ラインのデータを入力して、変換データを生成するF関数実行ステップと、
前記F関数の出力に対する他ラインのデータとの排他的論理和演算を実行する排他的論理和演算実行ステップと、
前記F関数実行ステップにおける変換データの生成過程の中間データを中間データ格納レジスタに格納するステップと、
前記中間データ格納レジスタの格納データに基づいて、前記F関数実行部に対する入力データを算出する逆演算実行ステップと、
を実行する暗号処理方法。 - 暗号処理装置において暗号処理を実行させるプログラムであり、
暗号処理部が、データ処理対象となるデータの構成ビットを複数ラインに分割して入力し、各ラインのデータに対してデータ変換処理を繰り返して実行する暗号処理ステップを実行させ、
前記暗号処理ステップにおいて、
前記複数ラインを構成する1ラインのデータを入力して、変換データを生成するF関数実行ステップと、
前記F関数の出力に対する他ラインのデータとの排他的論理和演算を実行する排他的論理和演算実行ステップと、
前記F関数実行ステップにおける変換データの生成過程の中間データを中間データ格納レジスタに格納するステップと、
前記中間データ格納レジスタの格納データに基づいて、前記F関数実行部に対する入力データを算出する逆演算実行ステップと、
を実行させるプログラム。
Priority Applications (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011207703A JP5652363B2 (ja) | 2011-03-28 | 2011-09-22 | 暗号処理装置、および暗号処理方法、並びにプログラム |
BR112013024247A BR112013024247A2 (pt) | 2011-03-28 | 2012-02-20 | dispositivo e método de processamento de criptografia, e, programa. |
RU2013142986/08A RU2013142986A (ru) | 2011-03-28 | 2012-02-20 | Устройство обработки шифрования и способ обработки шифрования, и программа |
PCT/JP2012/053931 WO2012132621A1 (ja) | 2011-03-28 | 2012-02-20 | 暗号処理装置、および暗号処理方法、並びにプログラム |
CN2012800141850A CN103444125A (zh) | 2011-03-28 | 2012-02-20 | 加密处理设备、加密处理方法和程序 |
US14/002,379 US9418245B2 (en) | 2011-03-28 | 2012-02-20 | Encryption processing device, encryption processing method, and program |
EP12765336.8A EP2693683A4 (en) | 2011-03-28 | 2012-02-20 | ENCRYPTION PROCESSING DEVICE, ENCRYPTION PROCESSING METHOD AND PROGRAM THEREFOR |
TW101105915A TW201240418A (en) | 2011-03-28 | 2012-02-22 | Encryption processing device, encryption processing method, and programme |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011069183 | 2011-03-28 | ||
JP2011069183 | 2011-03-28 | ||
JP2011207703A JP5652363B2 (ja) | 2011-03-28 | 2011-09-22 | 暗号処理装置、および暗号処理方法、並びにプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012215814A JP2012215814A (ja) | 2012-11-08 |
JP5652363B2 true JP5652363B2 (ja) | 2015-01-14 |
Family
ID=46930382
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011207703A Expired - Fee Related JP5652363B2 (ja) | 2011-03-28 | 2011-09-22 | 暗号処理装置、および暗号処理方法、並びにプログラム |
Country Status (8)
Country | Link |
---|---|
US (1) | US9418245B2 (ja) |
EP (1) | EP2693683A4 (ja) |
JP (1) | JP5652363B2 (ja) |
CN (1) | CN103444125A (ja) |
BR (1) | BR112013024247A2 (ja) |
RU (1) | RU2013142986A (ja) |
TW (1) | TW201240418A (ja) |
WO (1) | WO2012132621A1 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4561252B2 (ja) | 2004-09-03 | 2010-10-13 | ソニー株式会社 | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
KR101330664B1 (ko) * | 2012-06-15 | 2013-11-15 | 한국전자통신연구원 | 저전력 암호화 장치 및 방법 |
EP2884692B1 (en) * | 2013-12-13 | 2020-05-20 | Nxp B.V. | Updating software on a secure element |
KR101776172B1 (ko) * | 2017-02-14 | 2017-09-07 | 주식회사 유니온플레이스 | 사물 인터넷 장치 |
US11050575B2 (en) * | 2018-01-10 | 2021-06-29 | Ememory Technology Inc. | Entanglement and recall system using physically unclonable function technology |
US11838402B2 (en) | 2019-03-13 | 2023-12-05 | The Research Foundation For The State University Of New York | Ultra low power core for lightweight encryption |
CN114844781B (zh) * | 2022-05-20 | 2023-05-09 | 南京大学 | Rack架构下面向编码MapReduce的Shuffle性能优化方法及系统 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5512977A (en) * | 1992-10-21 | 1996-04-30 | Pumpkin House Incorporated | Copying machine with encryption function |
JP3928819B2 (ja) * | 1997-01-21 | 2007-06-13 | ソニー株式会社 | データ受信装置及び暗号処理プログラム更新方法 |
GB9801713D0 (en) * | 1998-01-27 | 1998-03-25 | Sgs Thomson Microelectronics | Executing permutations |
US6269163B1 (en) * | 1998-06-15 | 2001-07-31 | Rsa Security Inc. | Enhanced block ciphers with data-dependent rotations |
US6578061B1 (en) * | 1999-01-19 | 2003-06-10 | Nippon Telegraph And Telephone Corporation | Method and apparatus for data permutation/division and recording medium with data permutation/division program recorded thereon |
JP3748184B2 (ja) * | 1999-11-05 | 2006-02-22 | 日本電信電話株式会社 | 秘話通信装置 |
KR100377176B1 (ko) * | 2000-06-12 | 2003-03-26 | 주식회사 하이닉스반도체 | 데이터 암호화 표준 알고리즘을 이용한 암호화 장치 |
JP2003098959A (ja) * | 2001-09-21 | 2003-04-04 | Toshiba Corp | 暗号処理装置 |
JP4128395B2 (ja) * | 2002-05-23 | 2008-07-30 | 三菱電機株式会社 | データ変換装置 |
EP1496641A3 (en) * | 2003-07-07 | 2005-03-02 | Sony Corporation | Cryptographic processing apparatus, cryptographic processing method and computer program |
US7565343B2 (en) * | 2004-03-31 | 2009-07-21 | Ipt Corporation | Search apparatus and search management method for fixed-length data |
JP2007192893A (ja) * | 2006-01-17 | 2007-08-02 | Sony Corp | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
JP2007199156A (ja) | 2006-01-24 | 2007-08-09 | Sony Corp | 暗号処理装置、暗号処理装置製造装置、および方法、並びにコンピュータ・プログラム |
JP4882598B2 (ja) * | 2006-07-28 | 2012-02-22 | ソニー株式会社 | 暗号処理装置、暗号処理アルゴリズム構築方法、および暗号処理方法、並びにコンピュータ・プログラム |
JP4967544B2 (ja) * | 2006-09-01 | 2012-07-04 | ソニー株式会社 | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
JP5050454B2 (ja) * | 2006-09-01 | 2012-10-17 | ソニー株式会社 | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
JP5023624B2 (ja) * | 2006-09-01 | 2012-09-12 | ソニー株式会社 | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
DE112008002389T5 (de) * | 2007-09-05 | 2010-07-15 | Hiok-Nam Tay | CMOS Bildsensor mit breitem Dynamikbereich |
IL187045A0 (en) * | 2007-10-30 | 2008-02-09 | Sandisk Il Ltd | Software protection against fault attacks |
JP5338306B2 (ja) * | 2008-12-26 | 2013-11-13 | 富士通株式会社 | データ記憶装置およびデータ記憶装置におけるデータ管理方法 |
EP2348450B1 (en) * | 2009-12-18 | 2013-11-06 | CompuGroup Medical AG | Database system, computer system, and computer-readable storage medium for decrypting a data record |
EP2348446B1 (en) * | 2009-12-18 | 2015-04-15 | CompuGroup Medical AG | A computer implemented method for authenticating a user |
-
2011
- 2011-09-22 JP JP2011207703A patent/JP5652363B2/ja not_active Expired - Fee Related
-
2012
- 2012-02-20 CN CN2012800141850A patent/CN103444125A/zh active Pending
- 2012-02-20 EP EP12765336.8A patent/EP2693683A4/en not_active Withdrawn
- 2012-02-20 BR BR112013024247A patent/BR112013024247A2/pt not_active IP Right Cessation
- 2012-02-20 WO PCT/JP2012/053931 patent/WO2012132621A1/ja active Application Filing
- 2012-02-20 US US14/002,379 patent/US9418245B2/en not_active Expired - Fee Related
- 2012-02-20 RU RU2013142986/08A patent/RU2013142986A/ru unknown
- 2012-02-22 TW TW101105915A patent/TW201240418A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
BR112013024247A2 (pt) | 2018-06-19 |
EP2693683A4 (en) | 2014-08-27 |
JP2012215814A (ja) | 2012-11-08 |
RU2013142986A (ru) | 2015-03-27 |
CN103444125A (zh) | 2013-12-11 |
WO2012132621A1 (ja) | 2012-10-04 |
EP2693683A1 (en) | 2014-02-05 |
TW201240418A (en) | 2012-10-01 |
US20130339753A1 (en) | 2013-12-19 |
US9418245B2 (en) | 2016-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5652363B2 (ja) | 暗号処理装置、および暗号処理方法、並びにプログラム | |
EP2058781B1 (en) | Encryption device, encryption method, and computer program | |
US11606189B2 (en) | Method and apparatus for improving the speed of advanced encryption standard (AES) decryption algorithm | |
US8966279B2 (en) | Securing the implementation of a cryptographic process using key expansion | |
CN103503362B (zh) | 数据处理装置、数据处理方法以及程序 | |
EP3371928B1 (en) | Key sequence generation for cryptographic operations | |
JP2009211071A (ja) | 一連の変換を行って一変換を分離する命令を含む命令の組合せ | |
US20110225432A1 (en) | Method and circuitry for detecting a fault attack | |
Verma et al. | Enhancement of RC6 block cipher algorithm and comparison with RC5 & RC6 | |
Patel et al. | Hybrid security algorithms for data transmission using AES-DES | |
Murtaza et al. | Fortification of aes with dynamic mix-column transformation | |
Buell | Modern symmetric ciphers—Des and Aes | |
JP5605197B2 (ja) | 暗号処理装置、および暗号処理方法、並びにプログラム | |
JPWO2009090689A1 (ja) | 暗号化装置及び暗号処理方法 | |
RU2738321C1 (ru) | Способ криптографического преобразования и устройство для его осуществления | |
Labbi et al. | Symmetric encryption algorithm for RFID systems using a dynamic generation of key | |
US20220414268A1 (en) | Protection of data processed by an encryption algorithm | |
KR102348802B1 (ko) | Aes 암호화 및 복호화 회로 | |
Sharma et al. | Design of an efficient architecture for advanced encryption standard algorithm using systolic structures | |
JP6292107B2 (ja) | 暗号処理装置、および暗号処理方法、並びにプログラム | |
Dubois et al. | Proposal for a new equation system modelling of block ciphers and application to AES 128 | |
Arrag et al. | Several AES variants under VHDL language in FPGA | |
JP5338945B2 (ja) | 復号処理装置、情報処理装置、および復号処理方法、並びにコンピュータ・プログラム | |
JP2021047371A (ja) | 情報処理装置、情報処理方法及びプログラム | |
Sampath | FPGA based hardware implementation of Advanced Encryption Standard |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140730 |
|
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: 20141021 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20141103 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5652363 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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |