JP5682526B2 - データ処理装置、およびデータ処理方法、並びにプログラム - Google Patents
データ処理装置、およびデータ処理方法、並びにプログラム Download PDFInfo
- Publication number
- JP5682526B2 JP5682526B2 JP2011207704A JP2011207704A JP5682526B2 JP 5682526 B2 JP5682526 B2 JP 5682526B2 JP 2011207704 A JP2011207704 A JP 2011207704A JP 2011207704 A JP2011207704 A JP 2011207704A JP 5682526 B2 JP5682526 B2 JP 5682526B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- unit
- bit
- linear
- xor
- 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
- 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
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)
- Logic Circuits (AREA)
Description
このS−boxは、高い安全性が要求される。しかし、高い安全性を保持するために回路規模が大きくなってしまうという問題がある。
データ処理対象となるデータの構成ビットを複数ラインに分割して入力し、各ラインのデータに対するデータ変換処理を繰り返し実行するデータ変換処理部を有し、
前記データ変換処理部は、
前記複数ラインを構成する1ラインのデータを入力して、変換データを生成するF関数実行部を有し、
前記F関数実行部は、
非線形変換処理を実行する非線形変換処理部を有し、
前記非線形変換処理部は、
1つのNANDまたはNOR演算部と、1つのXORまたはXNOR演算部からなる非線形演算部と、
ビット置換部と、
の繰り返し構造を有するデータ処理装置にある。
1つのNANDまたはNOR演算部と、
1つのXORまたはXNOR演算部からなる非線形演算部と、
ビット置換部と、
の繰り返し構造を有する非線形変換処理部を有するデータ処理装置にある。
データ処理対象となるデータの構成ビットを複数ラインに分割して入力し、
複数ラインを構成する1ラインのデータを入力して変換データを生成する非線形関数実行部を有するラウンド関数の繰り返し構造を有するデータ処理装置にある。
データ処理装置において実行するデータ処理方法であり、
データ処理部が、データ処理対象となるデータの構成ビットを複数ラインに分割して入力し、各ラインのデータに対するデータ変換処理を繰り返し実行し、
前記データ変換処理において、
前記複数ラインを構成する1ラインのデータを入力して、変換データを生成するF関数を実行し、
前記F関数の実行処理において、非線形変換処理を実行し、
前記非線形変換処理において、
1つのNANDまたはNOR演算部と、1つのXORまたはXNOR演算部からなる非線形演算部と、
ビット置換部と、
を適用した繰り返し演算を実行するデータ処理方法にある。
データ処理装置においてデータ変換処理を実行させるプログラムであり、
データ処理部に、データ処理対象となるデータの構成ビットを複数ラインに分割して入力し、各ラインのデータに対するデータ変換処理を繰り返し実行させ、
前記データ変換処理において、
前記複数ラインを構成する1ラインのデータを入力して、変換データを生成するF関数を実行させ、
前記F関数の実行処理において、非線形変換処理を実行させ、
前記非線形変換処理において、
1つのNANDまたはNOR演算部と、1つのXORまたはXNOR演算部からなる非線形演算部と、
ビット置換部と、
を適用した繰り返し演算を実行させるプログラムにある。
具体的には、データ処理対象となるデータの構成ビットを複数ラインに分割して入力し、各ラインのデータに対してラウンド関数を適用したデータ変換処理を繰り返して実行する暗号処理部を有し、暗号処理部は、複数ラインを構成する1ラインのデータを入力して、変換データを生成するF関数実行部を有し、F関数実行部は非線形変換処理を実行する非線形変換処理部を有し、非線形変換処理部は1つのNANDまたはNOR演算部と、1つのXORまたはXNOR演算部からなる非線形演算部と、ビット置換部との繰り返し構造を有する。この繰り返し構成により小型化された非線形変換部が実現される。
1.共通鍵ブロック暗号の概要
2.S−boxについて
3.本開示に係るS−boxの概要について
4.暗号処理装置の構成例について
5.本開示の構成のまとめ
まず、共通鍵ブロック暗号の概要について説明する。
(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の行列により定義される線形変換処理部の例を示す。
まず、本発明の構成についての説明の前に、非線形変換部としてのS−boxの概要について説明する。
S−boxの性質は、暗号全体の安全性に大きな影響を与える。暗号全体やラウンド関数自体の厳密な安全性評価はその入出力サイズが大きいことから一般的に困難であるが、S−boxの入出力サイズは一般的には小さい(8−bit入出力程度)ので厳密な評価が可能である。暗号全体の安全性を高くするために、S−boxには、少なくとも以下のような特性(1)〜(4)が求められる。
S−boxの差分確率は、任意の入力差分Δxと出力差分Δyに対し、入力変数xが一様に選ばれたとき、
S(x)+S(x+Δx)=Δyを満たす確率である。
ただし、S(x)はあるS−box Sの入力xに対する出力を表す。
入力差分Δx,および出力差分Δyが与えられたときの関数Sの差分確率をDPs(Δx, Δy)と定義すると、DPs(Δx, Δy)は以下のように定義される。
S−boxの線形確率は、任意の入力マスクΓxと出力マスクΓyに対し、入力変数xが一様に選ばれたとき、
Γx・x=Γy・S(x)
を満たす確率から求められる値である。
ここで,・はnビットベクトル同士の内積演算を意味する。
以下にそれぞれを式で定義する。
入力マスクΓx,および、
出力マスクΓy、
が与えられたときの関数Sの線形確率を、
LPs(Γx, Γy)と定義すると,
LPs(Γx, Γy)は以下のように表現できる.
ブール代数次数は、S−boxの出力のビットを入力ビットのブール式で表現した場合の次数を意味する。すべてのビットに対して十分ブール代数次数の高いS−boxを設計することで、高階差分攻撃等の代数的性質を利用した攻撃に耐性を持たせることができる。
S−boxの出力ビットを入力ビットで多項式表現した場合の項数を十分多くすることで、補間攻撃に耐性を持たせることができる。
S−boxは安全性の要求とは別に高い実装性能も要求される。ソフトウェア実装においては通常、表引き(テーブル実装)と呼ばれる手法により実装されるため、その実装性能はS−boxの内部構造にはあまり依存しない。しかしながら、ハードウェア実装においては、S−boxの内部構造により、実装性能が大きく左右される。よってS−boxの内部構造は特にハードウェアの実装性能において重要だということができる。
このような要求を満たすS−boxを効率よく生成する手法として、拡大体上のべき乗関数を用いる方法がよく知られている。この手法で拡大体の次数とべき乗の乗数を適切に選べば、非常に特性の良いS−boxが生成できる。
最大差分確率,最大線形確率の点で最適なS−boxが構成できることがよく知られている(しかしながら、この手法を用いると入出力を多項式表現した際の項数が少なくなってしまうため、適当なaffine変換を加える必要がある)。
このような手法で構成されたS−boxの例としては、AES(非特許文献3:US National Institute of Standards and Technology, Advanced Encryption Standard, Federal Information Processing Standards Publications No. 197, 2001.),Camellia(非特許文献4:青木,市川,神田,松井,盛合,中嶋,時田,"128ビットブロック暗号 Camellia アルゴリズム仕様書",第 2.0版, 2001.)のS−boxなどが挙げられる。
例えば、CRYPTONver.0.5(非特許文献5:Chae Hoon Lim, "CRYPTON:A New 128−bit Block Cipher -Specification and Analysis (Version 0.5)"),CRYPTON ver.1.0(非特許文献6:Chae Hoon Lim, "CRYPTON:A New 128−bit Block Cipher -Specification and Analysis (Version 1.0)"),Whirlpool(非特許文献7:Paulo S. L. M Barreto, Vincent Rijmen "The WHIRLPOOL Hashing Function", 2003.),FOX(非特許文献8:Pascal Junod and Serge Vaudenay, "FOX : a New Family of Block Ciphers" ,2004),CLEFIA(非特許文献9:Sony Corporation, "The 128−bit Blockcipher CLEFIA Algorithm Specification", Revision 1.0, 2007.)に示されたS−boxなどがこのような手法に基づいて生成されたS−boxだと考えることができる。
4ビットデータの非線形変換処理を実行する3つのS−box:S40,S41,S42、
各S−boxの出力4ビットと他の4ビットとの排他的論理和演算を実行する3つの配置的論理演算部を有する。
8ビットの入力データは、左ライン入力と、右ライン入力にそれぞれ4ビットずつ入力される。
3つのS−box:S40,S41,S42を利用した非線形変換結果としての8ビットデータは、左ライン出力と右ライン出力からそれぞれ4ビットずつ出力される。
(1)入力8ビット中の4ビット(右ライン入力)を、第1段のS−box:S40に入力し、非線形変換を実行する。
この非線形変換結果と、入力8ビット中の他の4ビット(左ライン入力)とを排他的論理和演算する。
この非線形変換結果と、入力8ビット中の4ビット(右ライン入力)とを排他的論理和演算する。
排他的論理和演算結果を、出力8ビットの4ビット(右ライン出力)として出力する。
この非線形変換結果と、上記処理(1)における排他的論理和演算結果とを排他的論理和演算し、この結果を出力8ビットの4ビット(Out−a)として出力する。
図11は、上記の処理によって、8ビットの入力データの非線形変換処理を実行する構成である。
4ビットデータの非線型変換を実行するS−box:S40,S41、
各S−boxの出力4ビットに対して、2〜3ビット単位の排他的論理和演算を実行する演算実行部、
演算実行部の出力に対して、先のS−box:S40,S41の逆演算を実行する非線形変換部:S41 −1,S40 −1、
これらによって構成される。
4ビットデータの非線型変換を実行するS−box:S40,S42、
S−box:S41の逆演算を実行する非線形変換部:S41 −1、
複数の排他的論理和演算部、
これらの組み合わせによって構成された非線形変換処理構成である。
4ビットデータの非線型変換を実行するS−box:S40,S41,S42、
複数の排他的論理和演算部、
複数のOR演算部、
これらの組み合わせによって構成された非線形変換処理構成である。
4ビットデータの非線型変換を実行するS−box:SS0,SS1,SS2,SS3、
2×2の行列(MDS行列)を適用したデータ変換を実行する行列変換実行部、
これらの組み合わせによって構成された非線形変換処理構成である。
しかし、このように従来の小さなS−boxをベースにした構成法では、小さなS−boxの設計法、および小さなS−boxの組み合わせ法、それぞれについて以下のような問題がある。
従来法では,それぞれの小さなS−boxはランダムに作成している。よって、それら小さなS−boxはテーブル実装する必要があり、ハードウェア実装に必要な回路規模は依然大きくなってしまう。
従来法は単純な繰り返し構造を持っていないため、複数サイクルをかけてS−boxを実行する場合でも、回路の共有化が難しい。単純な繰り返し構造を持つ場合は、回路の共有化が可能であり、実行に複数サイクルが必要になるものの必要な回路規模を小さくできる可能性がある。しかしながら、従来法ではこのような実装手法を行うメリットは少なく、複数サイクルを使えたとしても回路規模を削減することが難しい。
以上のような問題点を鑑み、以下では、高い安全性を持ち、かつハードウェア実装を行う際に回路規模を従来法と比較して小さくできるS−boxの構成法を提案する。
以下において説明する構成は、ハードウェア実装において、実行スループットよりも実装に必要な回路規模を小さくすることが求められるような場合に特に高い効果を発揮する。なお、以降の説明では簡単のためにn−bit入出力の全単射S−boxのみについて説明する。
(1)論理演算とビット置換の繰り返し構造による安全でかつ少ない回路で実装することが可能なS−boxの構成法
(2)小さいサイズのS−boxをベースとした,安全で,かつ少ない回路で実装することが可能な繰り返し構造を持つより大きなサイズのS−boxの構成法
(1)と、(2)を組み合わせた構成も可能であり、この組み合わせ構成によって、(問題点1,2)の両方を解決することが可能である。
まず、
(1)論理演算とビット置換の繰り返し構造による安全でかつ少ない回路で実装することが可能なS−boxの構成法
について説明する。
S−boxは、様々な論理回路の組み合わせによって実現できる。
ここで、提案するS−boxは、AND(論理積)、OR(論理和)、NOT(論理否定)等の基本論理演算を基にした"非線形演算部"と、ビット位置の入れ替えを行う"ビット置換部"の2つの部分を基本的な要素として、これらの繰り返しによりS−boxを構成するものである。
これら非線形演算部、ビット置換部を複数回繰り返すことにより、S−boxを生成する。
非線形演算部、ビット置換部は繰り返すごとに変更しても同じものを使用しても構わない。
本手法の効果には以下の3つ効果(効果1〜3)がある。1つめは既存の技術の(問題点1)を解決し、残りの2つは更なる本発明のアドバンテージである。
非線形演算部1つは、1つのNAND、もしくはNOR演算、および1つのXOR、もしくはXNOR演算のみで構成されている。
NAND/NOR演算は入力に対して非線形な処理を行う非線形な基本論理演算のなかでも小さな回路で実装できることが知られている。
このNAND/NOR演算以外は全単射性を担保するためのXOR/XNOR演算しか用いていない.よって,この非線形演算部分は全単射な非線形関数の中で,ハードウェアの実装コスト(必要回路規模)が最小クラスであると言える。
さらに、ビット置換部はハードウェア実装では配線の変更のみで実装可能であり、必要回路規模に影響を与えない。つまり、ハードウェア実装コスト(必要回路規模)はゼロであると言える。
従来法では、ランダムにS−boxを生成していたため、必要回路規模を見積もる際は,論理合成ツールなどを用いて毎回評価を行う必要があった。
非線形演算部で用いる論理演算子と、ビット置換部で使用するビット置換の種類は選択の自由度があり、かつ繰り返し毎に種類が異なってもよいため、必要な回路規模が同じとなる複数個のS−boxを構成することができる。
これは、上位関数やほかの関数との組み合わせで最適なものを、同じハードウェア実装コスト(必要回路規模)のS−boxから選択できることに寄与する。
次に、論理演算とビット置換の繰り返し構造によるS−boxの具体的な構成例について説明する。
4ビットの場合のS−boxの具体的な構成例を図16に示す。
入力4ビット中の2ビットを1段目のNANDに入力し、その出力ビットを1段目のXNORに入力して、入力4ビット中の1ビットとXNOR演算を実行する。
1段目のXNOR演算の実行結果は、出力ビットに設定され、さらに3〜4段目の非線型部分のNANDに入力される。
入力4ビット中の2ビットを2段目のNANDに入力し、その出力ビットを2段目のXORに入力して、入力4ビット中の1ビットとXOR演算を実行する。
2段目のXOR演算の実行結果は、出力ビットに設定され、さらに4段目の非線型部分のNANDに入力される。
入力4ビット中の1ビットと、1段目のXNOR演算の実行結果を3段目のNANDに入力し、その出力ビットを3段目のXORに入力して、入力4ビット中の1ビットとXOR演算を実行する。
3段目のXOR演算の実行結果は、出力ビットに設定される。
1段目のXNOR演算の実行結果と、2段目のXOR演算の実行結果を4段目のNANDに入力し、その出力ビットを4段目のXORに入力して、入力4ビット中の1ビットとXOR演算を実行する。
4段目のXOR演算の実行結果は、出力ビットに設定される。
同じ最適な差分確率、線形確率をもち、かつ同じ回路規模(同じ繰り返し回数)で構成される他のS−boxの具体例を図17〜図20に示す。図16〜図20に示す例では最終段のビット置換は省略しているが、最終段のビット置換については設定する構成としても、省略した構成としても、いずれの構成も可能である。
図18に示す4ビットS−boxは、3つのNANDと、1つのNORと、3つのXNOR、1つのXORから構成されている。
図19に示す4ビットS−boxは、3つのNANDと、1つのNORと、3つのXNOR、1つのXORから構成されている。
図20に示す4ビットS−boxは、4つのNORと、1つのXNOR、3つのXORから構成されている。
図17に示す4ビットS−boxは、非線形演算部とビット置換部の組み合わせ構成の4段繰り返し構造を有しており、非線形処理部分は、4つのNORと、3つのXNOR、1つのXORから構成されている。なお、図においては最終段のビット置換は省略しているが、最終段のビット置換については設定する構成としても、省略した構成としても、いずれの構成も可能である。
入力4ビット中の2ビットを1段目のNORに入力し、その出力ビットを1段目のXNORに入力して、入力4ビット中の1ビットとXNOR演算を実行する。
1段目のXNOR演算の実行結果は、出力ビットに設定され、さらに3〜4段目の非線型部分のNORに入力される。
入力4ビット中の2ビットを2段目のNORに入力し、その出力ビットを2段目のXNORに入力して、入力4ビット中の1ビットとXNOR演算を実行する。
2段目のXNOR演算の実行結果は、出力ビットに設定され、さらに4段目の非線型部分のNORに入力される。
入力4ビット中の1ビットと、1段目のXNOR演算の実行結果を3段目のNORに入力し、その出力ビットを3段目のXNORに入力して、入力4ビット中の1ビットとXNOR演算を実行する。
3段目のXNOR演算の実行結果は、出力ビットに設定される。
1段目のXNOR演算の実行結果と、2段目のXNOR演算の実行結果を4段目のNORに入力し、その出力ビットを4段目のXORに入力して、入力4ビット中の1ビットとXOR演算を実行する。
4段目のXOR演算の実行結果は、出力ビットに設定される。
入力4ビット中の2ビットを1段目のNANDに入力し、その出力ビットを1段目のXNORに入力して、入力4ビット中の1ビットとXNOR演算を実行する。
1段目のXNOR演算の実行結果は、出力ビットに設定され、さらに3〜4段目の非線型部分のNORとNANDに入力される。
入力4ビット中の2ビットを2段目のNANDに入力し、その出力ビットを2段目のXORに入力して、入力4ビット中の1ビットとXOR演算を実行する。
2段目のXOR演算の実行結果は、出力ビットに設定され、さらに4段目の非線型部分のNANDに入力される。
入力4ビット中の1ビットと、1段目のXNOR演算の実行結果を3段目のNORに入力し、その出力ビットを3段目のXNORに入力して、入力4ビット中の1ビットとXNOR演算を実行する。
3段目のXNOR演算の実行結果は、出力ビットに設定される。
1段目のXNOR演算の実行結果と、2段目のXOR演算の実行結果を4段目のNANDに入力し、その出力ビットを4段目のXNORに入力して、入力4ビット中の1ビットとXNOR演算を実行する。
4段目のXNOR演算の実行結果は、出力ビットに設定される。
入力4ビット中の2ビットを1段目のNANDに入力し、その出力ビットを1段目のXORに入力して、入力4ビット中の1ビットとXOR演算を実行する。
1段目のXOR演算の実行結果は、出力ビットに設定され、さらに2〜3段目の非線型部分のNORとNANDに入力される。
入力4ビット中の1ビットと、1段目のXOR演算の実行結果を2段目のNORに入力し、その出力ビットを2段目のXNORに入力して、入力4ビット中の1ビットとXNOR演算を実行する。
2段目のXNOR演算の実行結果は、出力ビットに設定され、さらに4段目の非線型部分のNANDに入力される。
入力4ビット中の1ビットと、1段目のXNOR演算の実行結果を3段目のNANDに入力し、その出力ビットを3段目のXNORに入力して、入力4ビット中の1ビットとXNOR演算を実行する。
3段目のXNOR演算の実行結果は、出力ビットに設定される。
2段目のXNOR演算の実行結果と、3段目のXNOR演算の実行結果を4段目のNANDに入力し、その出力ビットを4段目のXNORに入力して、入力4ビット中の1ビットとXNOR演算を実行する。
4段目のXNOR演算の実行結果は、出力ビットに設定される。
入力4ビット中の2ビットを1段目のNORに入力し、その出力ビットを1段目のXORに入力して、入力4ビット中の1ビットとXOR演算を実行する。
1段目のXOR演算の実行結果は、出力ビットに設定され、さらに3〜4段目の非線型部分のNORに入力される。
入力4ビット中の2ビットを2段目のNORに入力し、その出力ビットを2段目のXORに入力して、入力4ビット中の1ビットとXOR演算を実行する。
2段目のXOR演算の実行結果は、出力ビットに設定され、さらに4段目の非線型部分のNORに入力される。
入力4ビット中の1ビットと、1段目のXOR演算の実行結果を3段目のNORに入力し、その出力ビットを3段目のXNORに入力して、入力4ビット中の1ビットとXNOR演算を実行する。
3段目のXNOR演算の実行結果は、出力ビットに設定される。
1段目のXOR演算の実行結果と、2段目のXOR演算の実行結果を4段目のNORに入力し、その出力ビットを4段目のXORに入力して、入力4ビット中の1ビットとXOR演算を実行する。
4段目のXOR演算の実行結果は、出力ビットに設定される。
図21に示す5ビットS−boxは、非線形演算部とビット置換部の組み合わせ構成の5段繰り返し構造を有しており、非線形演算部は、5つのNANDと4つのXOR、1つのXNORから構成されている。なお、図においては最終段のビット置換は省略しているが、最終段のビット置換については設定する構成としても、省略した構成としても、いずれの構成も可能である。
入力5ビット中の2ビットを1段目のNANDに入力し、その出力ビットを1段目のXORに入力して、入力5ビット中の1ビットとXOR演算を実行する。
1段目のXOR演算の実行結果は、出力ビットに設定され、さらに4〜5段目の非線型部分のNANDに入力される。
入力5ビット中の2ビットを2段目のNANDに入力し、その出力ビットを2段目のXNORに入力して、入力5ビット中の1ビットとXNOR演算を実行する。
2段目のXNOR演算の実行結果は、出力ビットに設定され、さらに5段目の非線型部分のNANDに入力される。
入力5ビット中の2ビットを3段目のNANDに入力し、その出力ビットを3段目のXORに入力して、入力5ビット中の1ビットとXOR演算を実行する。
3段目のXOR演算の実行結果は、出力ビットに設定される。
入力5ビット中の1ビットと、1段目のXOR演算の実行結果を4段目のNANDに入力し、その出力ビットを4段目のXORに入力して、入力5ビット中の1ビットとXOR演算を実行する。
4段目のXOR演算の実行結果は、出力ビットに設定される。
1段目のXOR演算の実行結果と、2段目のXNOR演算の実行結果を5段目のNANDに入力し、その出力ビットを5段目のXORに入力して、入力5ビット中の1ビットとXOR演算を実行する。
5段目のXOR演算の実行結果は、出力ビットに設定される。
次に、小さいS−boxを用いた繰り返し処理による大きなS−boxの構成法について説明する。
本手法は,H/W実装,特に必要回路規模を削減することを目的とした実装、例えばシリアル実装をした際に利点が大きい。
繰り返し構造を持っている演算に関しては、シリアル実装でS−boxを実装する際にすべての要素を実装する必要がなく、繰り返し単位を実装し、それを任意回反復実行すればよい。
よって、この構造は、繰り返し構造を持たない従来のS−boxに対して、より少ない回路規模で実装できると言える。
次に、小さいS−boxを用いた繰り返し処理による大きなS−boxの具体的な構成例について、説明する。
以下、具体的な構成法について詳細に述べる。
なお、以下に説明する図22〜図28において、各図にSとして示す矩形領域が、例えば図16〜図21を参照して説明した小さなS−box、すなわち例えば4ビット単位の非線形変換処理を実行するS−boxである。
n/4ビットのS−boxの適用結果と、
n/4ビットのS−boxとXOR回路の適用結果と、
n/4ビットのXOR回路の適用結果、
を生成し、これらの3つのn/4ビットの演算結果と、その他の未処理データに対して、n/4ビットのライン単位データのローテーションを行い、ローテーション結果を次の処理段に出力する構成を持つ。
2つのn/4ビットのS−boxの適用結果と、
2つのn/4ビットのS−boxとXOR回路の適用結果と、
を生成し、これらの4つのn/4ビットの演算結果に対して、n/4ビットのライン単位データのローテーションを行い、ローテーション結果を次の処理段に出力する構成を持つ。
n/4ビットのS−boxとXOR回路の適用結果と、
n/4ビットのXOR回路の適用結果、
を生成し、これらの2つのn/4ビットの演算結果と、その他の未処理データに対して、n/4ビットのライン単位データのローテーションを行い、ローテーション結果を次の処理段に出力する構成を持つ。
2つのn/4ビットのS−boxとXOR回路の適用結果、
を生成し、これらの2つのn/4ビットの演算結果と、その他の未処理データに対して、n/4ビットのライン単位データのローテーションを行い、ローテーション結果を次の処理段に出力する構成を持つ。
n/4ビットのS−boxの適用結果と、
n/4ビットのS−boxとXOR回路の適用結果と、
n/4ビットのXOR回路の適用結果、
を生成し、これらの3つのn/4ビットの演算結果と、その他の未処理データに対して、n/4ビットのライン単位データのローテーションを行い、ローテーション結果を次の処理段に出力する構成を持つ。
type−IGFN(Generalized Feistel Network)、
type−IIGFN、
と呼ばれる繰り返し構造である。
このように秘密鍵を用いずに構成することで全体をひとつの固定テーブルとして実装することも可能になる。
図22のtype−IGFNは、各段が1つのnビットS−boxとnビットのXOR、nビット単位のRotationから構成される。
なお、入力データの分割数は任意である。すなわち、任意のr分割(r>2)への拡張が可能であり、必要な大きなS−boxの入出力サイズに応じて適時決定することができる。
これらの2つの構成方法の特徴は、順方向からの演算と逆方向からの演算がほとんど同じであり、違いはRotation部分のみとなっている。
6回繰り返しで最大差分確率は2−8.3,
最大線形確率は2−7.83であり,
7回繰り返しで最大差分確率は2−9.1,
最大線形確率は2−8になる。
これらの値は16−bitで最適な値ではないが、十分低い確率であり、回路規模はランダムに作成したものと比べて非常に小さくなる。
6回繰り返しで最大差分確率は2−8.3,
最大線形確率は2−8であり、
7回繰り返しで、最大差分確率は2−9.1,
最大線形確率は2−8.5であり、
16−bitで最適な値ではないが、十分低い確率であり、回路規模はランダムに作成したものと比べて非常に小さくなる。
最後に、上述した実施例に従った暗号処理を実行する暗号処理装置の実相例について説明する。
上述した実施例に従った暗号処理を実行する暗号処理装置は、暗号処理を実行する様々な情報処理装置に搭載可能である。具体的には、PC、TV、レコーダ、プレーヤ、通信機器、さらに、RFID、スマートカード、センサネットワーク機器、デンチ/バッテリー認証モジュール、健康、医療機器、自立型ネットワーク機器等、例えばデータ処理や通信処理に伴う暗号処理を実行する様々な危機において利用可能である。
暗号化処理、復号処理、双方の処理において、上述した実施例において説明した構成を持つ非線形変換部の構成を適用することが可能である。
以上、特定の実施例を参照しながら、本開示の実施例について詳解してきた。しかしながら、本開示の要旨を逸脱しない範囲で当業者が実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本開示の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
(1) データ処理対象となるデータの構成ビットを複数ラインに分割して入力し、各ラインのデータに対するデータ変換処理を繰り返し実行するデータ変換処理部を有し、
前記データ変換処理部は、
前記複数ラインを構成する1ラインのデータを入力して、変換データを生成するF関数実行部を有し、
前記F関数実行部は、
非線形変換処理を実行する非線形変換処理部を有し、
前記非線形変換処理部は、
1つのNANDまたはNOR演算部と、1つのXORまたはXNOR演算部からなる非線形演算部と、
ビット置換部と、
の繰り返し構造を有するデータ処理装置。
(3)前記非線形変換処理部は、2ビット入力1ビット出力のNANDまたはNOR演算部における演算結果としての1ビットを、前記XORまたはXNOR演算部に出力して、他の入力1ビットデータとのXORまたはXNOR演算を実行し、XORまたはXNOR演算結果として生成した1ビットデータを非線形変換処理結果の構成ビットとして出力する前記(1)または(2)に記載のデータ処理装置。
(5)前記非線形変換処理部は、nビットデータの非線型変換結果を出力する構成において、前記非線形演算部をn回、前記ビット置換部をn回の前記非線形演算部の間にn−1回設定した構成である前記(1)〜(4)いずれかに記載のデータ処理装置。
(7)前記非線形変換処理部は、前記繰り返し構造中に、XOR演算部とXNOR演算部の双方を有する構成である前記(1)〜(6)いずれかに記載のデータ処理装置。
(8)前記データ処理装置は、入力データとしての平文を暗号文に変換する暗号化処理、または、入力データとしての暗号文を平文に変換する復号処理を実行する前記(1)〜(7)いずれかに記載のデータ処理装置。
1つのXORまたはXNOR演算部からなる非線形演算部と、
ビット置換部と、
の繰り返し構造を有する非線形変換処理部を有するデータ処理装置。
複数ラインを構成する1ラインのデータを入力して変換データを生成する非線形関数実行部を有するラウンド関数の繰り返し構造を有するデータ処理装置。
(12)前記非線形関数実行部は、非線形変換対象となるデータの構成ビットの全てに対して、1つのNANDまたはNOR演算部の演算結果とのXORまたはXNOR演算結果を生成し、該XORまたはXNOR演算結果を非線型変換結果の構成ビットとして出力する前記(11)に記載のデータ処理装置。
具体的には、データ処理対象となるデータの構成ビットを複数ラインに分割して入力し、各ラインのデータに対してラウンド関数を適用したデータ変換処理を繰り返して実行する暗号処理部を有し、暗号処理部は、複数ラインを構成する1ラインのデータを入力して、変換データを生成するF関数実行部を有し、F関数実行部は非線形変換処理を実行する非線形変換処理部を有し、非線形変換処理部は1つのNANDまたはNOR演算部と、1つのXORまたはXNOR演算部からなる非線形演算部と、ビット置換部との繰り返し構造を有する。この繰り返し構成により小型化された非線形変換部が実現される。
701 CPU(Central processing Unit)
702 メモリ
703 暗号処理部
704 乱数生成部
705 送受信部
Claims (13)
- データ処理対象となるデータの構成ビットを複数ラインに分割して入力し、各ラインのデータに対するデータ変換処理を繰り返し実行するデータ変換処理部を有し、
前記データ変換処理部は、
前記複数ラインを構成する1ラインのデータを入力して、変換データを生成するF関数実行部を有し、
前記F関数実行部は、
非線形変換処理を実行する非線形変換処理部を有し、
前記非線形変換処理部は、
非線形演算部と、ビット置換部を交互に繰り返す繰り返し構造を有し、
前記繰り返し構造に含まれる複数の非線形演算部は、異なる演算構成を持つ少なくとも2以上の異なる非線形演算部を含み、
前記2以上の異なる非線形演算部は、
(a)2ラインのデータの論理演算結果と別ラインのデータとのXOR演算を実行する構成、
(b)2ラインのデータの論理演算結果と別ラインのデータとのXNOR演算を実行する構成、
上記(a),(b)の2つの構成を含むデータ処理装置。 - 前記ビット置換部は、前記非線形演算部に対する入出力ビットを入れ替える配線構成を有する請求項1に記載のデータ処理装置。
- 前記繰り返し構造に含まれる非線形演算部は、
1つのNANDまたはNOR演算部と、1つのXORまたはXNOR演算部からなる構成される演算部であり、
前記非線形変換処理部は、
2ビット入力1ビット出力のNANDまたはNOR演算部における演算結果としての1ビットを、前記XORまたはXNOR演算部に出力して、他の入力1ビットデータとのXORまたはXNOR演算を実行し、XORまたはXNOR演算結果として生成した1ビットデータを非線形変換処理結果の構成ビットとして出力する請求項1に記載のデータ処理装置。 - 前記非線形変換処理部は、
nビットデータの非線型変換結果を出力する構成において、
前記非線形演算部を、n回以上繰り返す繰り返し構造を有する請求項1に記載のデータ処理装置。 - 前記非線形変換処理部は、
nビットデータの非線型変換結果を出力する構成において、
前記非線形演算部をn回、前記ビット置換部をn回の前記非線形演算部の間にn−1回設定した構成である請求項1に記載のデータ処理装置。 - 前記繰り返し構造に含まれる非線形演算部は、
1つのNANDまたはNOR演算部と、1つのXORまたはXNOR演算部からなる構成される演算部であり、
前記非線形変換処理部は、
非線形変換対象となるデータの構成ビットの全てに対して、1つのNANDまたはNOR演算部の演算結果とのXORまたはXNOR演算結果を生成し、該XORまたはXNOR演算結果を非線型変換結果の構成ビットとして出力する請求項1に記載のデータ処理装置。 - 前記繰り返し構造に含まれる非線形演算部は、
1つのNANDまたはNOR演算部と、1つのXORまたはXNOR演算部からなる構成される演算部であり、
前記非線形変換処理部は、
前記繰り返し構造中に、XOR演算部とXNOR演算部の双方を有する構成である請求項1に記載のデータ処理装置。 - 前記データ処理装置は、
入力データとしての平文を暗号文に変換する暗号化処理、または、
入力データとしての暗号文を平文に変換する復号処理を実行する請求項1に記載のデータ処理装置。 - 前記非線形変換処理部は、
4ビット入力、4ビット出力の非線形演算部と、ビット置換部との繰り返し構造を有する請求項1に記載のデータ処理装置。 - 非線形演算部と、一種類のビット置換部との繰り返し構造を有する非線形変換処理部を有し、
前記非線形演算部は、1つのNANDまたはNOR演算部と、1つのXORまたはXNOR演算部からなる非線形演算部であり、
前記繰り返し構造に含まれる複数の非線形演算部は、異なる演算構成を持つ少なくとも2以上の異なる非線形演算部を含み、
前記2以上の異なる非線形演算部は、
(a)2ラインのデータの論理演算結果と別ラインのデータとのXOR演算を実行する構成、
(b)2ラインのデータの論理演算結果と別ラインのデータとのXNOR演算を実行する構成、
上記(a),(b)の2つの構成を含み、
前記非線形変換処理部は、
非線形変換対象となるデータの構成ビットの全てに対して、1つのNANDまたはNOR演算部の演算結果とのXORまたはXNOR演算結果を生成し、該XORまたはXNOR演算結果を非線型変換結果の構成ビットとして出力するデータ処理装置。 - プログラムを保持するメモリと、
前記プログラムを実行するプロセッサと、
データ処理対象となるデータの構成ビットを複数ラインに分割して入力し、各ラインのデータに対するデータ変換処理を繰り返し実行するデータ変換処理部を有し、
前記データ変換処理部は、
前記複数ラインを構成する1ラインのデータを入力して、変換データを生成するF関数実行部を有し、
前記F関数実行部は、
非線形変換処理を実行する非線形変換処理部を有し、
前記非線形変換処理部は、
非線形演算部と、ビット置換部を交互に繰り返す繰り返し構造を有し、
前記繰り返し構造に含まれる複数の非線形演算部は、異なる演算構成を持つ少なくとも2以上の異なる非線形演算部を含み、
前記2以上の異なる非線形演算部は、
(a)2ラインのデータの論理演算結果と別ラインのデータとのXOR演算を実行する構成、
(b)2ラインのデータの論理演算結果と別ラインのデータとのXNOR演算を実行する構成、
上記(a),(b)の2つの構成を含む情報処理装置。 - データ処理装置において実行するデータ処理方法であり、
データ処理部が、データ処理対象となるデータの構成ビットを複数ラインに分割して入力し、各ラインのデータに対するデータ変換処理を繰り返し実行し、
前記データ変換処理において、
前記複数ラインを構成する1ラインのデータを入力して、変換データを生成するF関数を実行し、
前記F関数の実行処理において、非線形変換処理を実行し、
前記非線形変換処理は、
非線形演算部と、ビット置換部を交互に繰り返す繰り返し構造を適用した処理であり、
前記繰り返し構造に含まれる複数の非線形演算部は、異なる演算構成を持つ少なくとも2以上の異なる非線形演算部を含み、
前記2以上の異なる非線形演算部は、
(a)2ラインのデータの論理演算結果と別ラインのデータとのXOR演算を実行する構成、
(b)2ラインのデータの論理演算結果と別ラインのデータとのXNOR演算を実行する構成、
上記(a),(b)の2つの構成を含み、
前記非線形変換処理は、
前記2以上の異なる非線形演算部を適用した処理として実行するデータ処理方法。 - データ処理装置においてデータ変換処理を実行させるプログラムであり、
データ処理部に、データ処理対象となるデータの構成ビットを複数ラインに分割して入力し、各ラインのデータに対するデータ変換処理を繰り返し実行させ、
前記データ変換処理において、
前記複数ラインを構成する1ラインのデータを入力して、変換データを生成するF関数を実行させ、
前記F関数の実行処理において、非線形変換処理を実行させ、
前記非線形変換処理は、
非線形演算部と、ビット置換部を交互に繰り返す繰り返し構造を適用した処理であり、
前記繰り返し構造に含まれる複数の非線形演算部は、異なる演算構成を持つ少なくとも2以上の異なる非線形演算部を含み、
前記2以上の異なる非線形演算部は、
(a)2ラインのデータの論理演算結果と別ラインのデータとのXOR演算を実行する構成、
(b)2ラインのデータの論理演算結果と別ラインのデータとのXNOR演算を実行する構成、
上記(a),(b)の2つの構成を含み、
前記非線形変換処理は、
前記2以上の異なる非線形演算部を適用した処理として実行させるプログラム。
Priority Applications (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011207704A JP5682526B2 (ja) | 2011-03-28 | 2011-09-22 | データ処理装置、およびデータ処理方法、並びにプログラム |
BR112013024249A BR112013024249A2 (pt) | 2011-03-28 | 2012-02-20 | dispositivo e método de processamento de dados, programa, e, dispositivo de processamento de informação. |
EP12764563.8A EP2693682B1 (en) | 2011-03-28 | 2012-02-20 | Data processing device, data processing method, and programme |
CN201280014201.6A CN103503362B (zh) | 2011-03-28 | 2012-02-20 | 数据处理装置、数据处理方法以及程序 |
PCT/JP2012/053932 WO2012132622A1 (ja) | 2011-03-28 | 2012-02-20 | データ処理装置、およびデータ処理方法、並びにプログラム |
RU2013142995/08A RU2603550C2 (ru) | 2011-03-28 | 2012-02-20 | Устройство обработки данных, способ обработки данных и программа |
US14/006,392 US9083507B2 (en) | 2011-03-28 | 2012-02-20 | Data processing device, data processing method, and program |
TW101105913A TWI595460B (zh) | 2011-03-28 | 2012-02-22 | Data processing device, information processing device, data processing method and program |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011069184 | 2011-03-28 | ||
JP2011069184 | 2011-03-28 | ||
JP2011207704A JP5682526B2 (ja) | 2011-03-28 | 2011-09-22 | データ処理装置、およびデータ処理方法、並びにプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012215815A JP2012215815A (ja) | 2012-11-08 |
JP5682526B2 true JP5682526B2 (ja) | 2015-03-11 |
Family
ID=46930383
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011207704A Expired - Fee Related JP5682526B2 (ja) | 2011-03-28 | 2011-09-22 | データ処理装置、およびデータ処理方法、並びにプログラム |
Country Status (8)
Country | Link |
---|---|
US (1) | US9083507B2 (ja) |
EP (1) | EP2693682B1 (ja) |
JP (1) | JP5682526B2 (ja) |
CN (1) | CN103503362B (ja) |
BR (1) | BR112013024249A2 (ja) |
RU (1) | RU2603550C2 (ja) |
TW (1) | TWI595460B (ja) |
WO (1) | WO2012132622A1 (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4561252B2 (ja) | 2004-09-03 | 2010-10-13 | ソニー株式会社 | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
US10142099B2 (en) * | 2013-01-11 | 2018-11-27 | Qualcomm Incorporated | Method and apparatus for a computable, large, variable and secure substitution box |
JP2014240921A (ja) * | 2013-06-12 | 2014-12-25 | 株式会社東芝 | 暗号装置、暗号処理方法及び暗号処理プログラム |
CN103873229B (zh) * | 2014-03-13 | 2017-01-11 | 华南师范大学 | KLEIN加密AVR环境下抗timing和cache边信道攻击的快速保护方法 |
WO2015146432A1 (ja) * | 2014-03-28 | 2015-10-01 | ソニー株式会社 | 暗号処理装置、および暗号処理方法、並びにプログラム |
JP6669444B2 (ja) * | 2015-06-29 | 2020-03-18 | 株式会社ミツトヨ | 造形装置、及び造形方法 |
RU2591015C1 (ru) * | 2015-12-28 | 2016-07-10 | федеральное государственное автономное образовательное учреждение высшего профессионального образования "Национальный исследовательский ядерный университет МИФИ" (НИЯУ МИФИ) | Способ нелинейного трехмерного многораундового преобразования данных rdozen |
RU199358U1 (ru) * | 2020-03-04 | 2020-08-28 | Федеральное государственное бюджетное образовательное учреждение высшего образования "Ульяновский государственный аграрный университет имени П.А. Столыпина" | Устройство для сушки свекловичного жома |
US20230297693A1 (en) * | 2020-09-02 | 2023-09-21 | Nec Corporation | Information processing apparatus, information processing method, and non-transitory computer readable medium storing program |
DE102020129058B3 (de) * | 2020-11-04 | 2021-07-01 | Infineon Technologies Ag | Datenverarbeitungseinrichtung und verfahren zum kryptographischen verarbeiten von daten |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69635651T2 (de) | 1995-09-05 | 2006-09-07 | Mitsubishi Denki K.K. | Vorrichtung und Verfahren zur Datenumwandlung |
JPH1124558A (ja) | 1997-06-30 | 1999-01-29 | Nippon Telegr & Teleph Corp <Ntt> | 暗号装置 |
US6182216B1 (en) * | 1997-09-17 | 2001-01-30 | Frank C. Luyster | Block cipher method |
US6289455B1 (en) * | 1999-09-02 | 2001-09-11 | Crypotography Research, Inc. | Method and apparatus for preventing piracy of digital content |
DE60301750T2 (de) * | 2002-04-03 | 2006-07-06 | Matsushita Electric Industrial Co., Ltd., Kadoma | Vorrichtung zur Erzeugung eines erweiterten Schlüssels, Verschlüsselungsvorrichtung und Verschlüsselungssystem |
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 | ソニー株式会社 | 暗号処理装置、暗号処理アルゴリズム構築方法、および暗号処理方法、並びにコンピュータ・プログラム |
JP2008058830A (ja) * | 2006-09-01 | 2008-03-13 | Sony Corp | データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム |
FR2920617A1 (fr) * | 2007-09-05 | 2009-03-06 | France Telecom | Generateur et procede de generation de fonction pseudo- aleatoire a cle secrete. |
JP5532560B2 (ja) * | 2008-08-25 | 2014-06-25 | ソニー株式会社 | データ変換装置、およびデータ変換方法、並びにプログラム |
-
2011
- 2011-09-22 JP JP2011207704A patent/JP5682526B2/ja not_active Expired - Fee Related
-
2012
- 2012-02-20 CN CN201280014201.6A patent/CN103503362B/zh not_active Expired - Fee Related
- 2012-02-20 BR BR112013024249A patent/BR112013024249A2/pt not_active Application Discontinuation
- 2012-02-20 RU RU2013142995/08A patent/RU2603550C2/ru active
- 2012-02-20 US US14/006,392 patent/US9083507B2/en not_active Expired - Fee Related
- 2012-02-20 EP EP12764563.8A patent/EP2693682B1/en not_active Not-in-force
- 2012-02-20 WO PCT/JP2012/053932 patent/WO2012132622A1/ja active Application Filing
- 2012-02-22 TW TW101105913A patent/TWI595460B/zh not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
TW201241800A (en) | 2012-10-16 |
RU2013142995A (ru) | 2015-03-27 |
CN103503362B (zh) | 2016-08-24 |
EP2693682A1 (en) | 2014-02-05 |
US9083507B2 (en) | 2015-07-14 |
BR112013024249A2 (pt) | 2018-06-19 |
JP2012215815A (ja) | 2012-11-08 |
TWI595460B (zh) | 2017-08-11 |
RU2603550C2 (ru) | 2016-11-27 |
US20140003603A1 (en) | 2014-01-02 |
WO2012132622A1 (ja) | 2012-10-04 |
CN103503362A (zh) | 2014-01-08 |
EP2693682B1 (en) | 2017-05-31 |
EP2693682A4 (en) | 2014-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5682526B2 (ja) | データ処理装置、およびデータ処理方法、並びにプログラム | |
US9363074B2 (en) | Encryption processing apparatus, encryption processing method, and computer program | |
JP5682525B2 (ja) | 暗号処理装置、および暗号処理方法、並びにプログラム | |
JP4961909B2 (ja) | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム | |
JP5682527B2 (ja) | 暗号処理装置、および暗号処理方法、並びにプログラム | |
JP2008058830A (ja) | データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム | |
WO2009087972A1 (ja) | データ送信装置、データ受信装置、これらの方法、記録媒体、そのデータ通信システム | |
WO2015146431A1 (ja) | 暗号処理装置、および暗号処理方法、並びにプログラム | |
JP5652363B2 (ja) | 暗号処理装置、および暗号処理方法、並びにプログラム | |
KR20180081559A (ko) | 암호화 동작을 위한 키 시퀀스 생성 | |
WO2015146430A1 (ja) | 暗号処理装置、および暗号処理方法、並びにプログラム | |
JP5680016B2 (ja) | 復号処理装置、情報処理装置、および復号処理方法、並びにコンピュータ・プログラム | |
JP7622834B2 (ja) | 暗号装置、方法、及びプログラム | |
Murtaza et al. | Fortification of aes with dynamic mix-column transformation | |
JP5772934B2 (ja) | データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム | |
JP6292107B2 (ja) | 暗号処理装置、および暗号処理方法、並びにプログラム | |
WO2015146432A1 (ja) | 暗号処理装置、および暗号処理方法、並びにプログラム | |
Rahiyanath | A Novel Architecture for Lightweight Block Cipher Piccolo |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140730 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20141021 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20141125 |
|
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: 20141216 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20141229 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5682526 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 |