JP5055993B2 - 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム - Google Patents
暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム Download PDFInfo
- Publication number
- JP5055993B2 JP5055993B2 JP2006333882A JP2006333882A JP5055993B2 JP 5055993 B2 JP5055993 B2 JP 5055993B2 JP 2006333882 A JP2006333882 A JP 2006333882A JP 2006333882 A JP2006333882 A JP 2006333882A JP 5055993 B2 JP5055993 B2 JP 5055993B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- round
- key
- swap
- bit
- 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
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/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- 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/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/003—Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
-
- 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
-
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
Description
K. Nyberg, "Generalized Feistel networks", ASIACRYPT'96, SpringerVerlag, 1996, pp.91--104. Yuliang Zheng, Tsutomu Matsumoto, Hideki Imai: On the Construction of Block Ciphers Provably Secure and Not Relying on Any Unproved Hypotheses. CRYPTO 1989: 461-480
共通鍵ブロック暗号処理を実行する暗号処理装置であり、
ラウンド関数を複数ラウンド繰り返すデータ変換処理を行なう暗号処理部と、
前記ラウンド関数の実行に適用するラウンド鍵を生成する鍵スケジュール部を有し、
前記鍵スケジュール部は、
秘密鍵の変換処理によって中間鍵を生成し、生成した中間鍵を格納するレジスタと、
前記レジスタに格納されたレジスタ格納データに対するデータ変換処理を実行するデータ変換部であり、前記レジスタ格納データを構成する部分データのスワップ(入れ替え)処理を繰り返し実行して複数の異なるラウンド鍵を生成するデータ変換部と、
を有する構成であることを特徴とする暗号処理装置にある。
(a)先頭iビットの部分データA0、
(b)先頭からi+1ビット〜mビットの部分データA1、
(c)先頭からm+1ビット〜2m−iビットの部分データA2、
(d)末尾iビットの部分データA3、
上記(a)〜(d)に示す4つの部分データに区分し、各部分データのスワップ(入れ替え)処理を繰り返し実行して、複数の異なるラウンド鍵を生成する構成であることを特徴とする。
(a)先頭mビットの部分データA0、
(b)末尾mビットの部分データA1、
上記(a)〜(b)に示す2つの部分データに区分し、各部分データのスワップ(入れ替え)処理を実行するスワップ処理実行部と、
2mビットからなる前記レジスタ格納データを、
(c)先頭(m−i)ビットの部分データA0、
(d)先頭から(m−i+1)ビット〜(m+i)ビットの部分データA1、
(e)先頭から(m+i+1)ビット〜末尾ビットの部分データA2、
上記(c)〜(e)に示す3つの部分データに区分し、上記(c)と(d)の部分データのスワップ(入れ替え)処理を実行するサブスワップ処理実行部とを有し、前記スワップ処理実行部と、前記サブスワップ処理実行部の処理をラウンド進行に応じて交互に実行してラウンド鍵の生成を実行する構成であることを特徴とする。
暗号処理装置において共通鍵ブロック暗号処理を実行する暗号処理方法であり、
鍵スケジュール部において、暗号処理部で実行する複数ラウンドのラウンド関数の実行に適用する複数のラウンド鍵を生成するラウンド鍵生成ステップと、
暗号処理部において、前記ラウンド鍵を適用したラウンド関数を複数ラウンド繰り返すデータ変換処理を行なう暗号処理ステップとを有し、
前記ラウンド鍵生成ステップは、
秘密鍵の変換処理によって中間鍵を生成してレジスタに格納する中間鍵生成ステップと、
データ変換部が前記レジスタに格納されたレジスタ格納データを構成する部分データのスワップ(入れ替え)処理を繰り返し実行して、複数の異なるラウンド鍵を生成するデータ変換ステップと、
を有するステップであることを特徴とする暗号処理方法にある。
(a)先頭iビットの部分データA0、
(b)先頭からi+1ビット〜mビットの部分データA1、
(c)先頭からm+1ビット〜2m−iビットの部分データA2、
(d)末尾iビットの部分データA3、
上記(a)〜(d)に示す4つの部分データに区分し、各部分データのスワップ(入れ替え)処理を繰り返し実行して、複数の異なるラウンド鍵を生成するステップであることを特徴とする。
(a)先頭mビットの部分データA0、
(b)末尾mビットの部分データA1、
上記(a)〜(b)に示す2つの部分データに区分し、各部分データのスワップ(入れ替え)処理を実行するスワップ処理実行ステップと、
2mビットからなる前記レジスタ格納データを、
(c)先頭(m−i)ビットの部分データA0、
(d)先頭から(m−i+1)ビット〜(m+i)ビットの部分データA1、
(e)先頭から(m+i+1)ビット〜末尾ビットの部分データA2、
上記(c)〜(e)に示す3つの部分データに区分し、上記(c)と(d)の部分データのスワップ(入れ替え)処理を実行するサブスワップ処理実行ステップと、
を有し、前記スワップ処理実行ステップと、前記サブスワップ処理実行ステップの処理をラウンド進行に応じて交互に実行してラウンド鍵の生成を実行するステップであることを特徴とする。
1.共通鍵ブロック暗号の概要
2.鍵スケジュール部におけるラウンド鍵生成処理構成
(2−1)鍵スケジュール部の詳細構成について
(2−2)シフト処理を適用した一般的なラウンド鍵生成処理構成について
(2−3)本発明の第1実施例に係るラウンド鍵の生成処理構成について
(2−4)本発明の第2実施例に係るラウンド鍵の生成処理構成について
(2−5)本発明の第3実施例に係るラウンド鍵の生成処理構成について
3.暗号処理装置の構成例
まず、本発明の適用可能な共通鍵ブロック暗号の概要について説明する。本明細書において、共通鍵ブロック暗号(以下ではブロック暗号)は、以下に定義するものを指すものとする。
平文[P]、暗号文[C]、鍵[K]の各ビットサイズは、以下のように示される。
平文P:nビット
暗号文C:nビット
鍵K:kビット
(ア)SPN(Substitution Permutation Network)構造、
(イ)Feistel構造、
がある。以下、これらの具体的構成について、図4〜図6を参照して説明する。
まず、図4を参照して、ラウンド関数実行部20の一構成例としてのSPN構造ラウンド関数について説明する。SPN構造ラウンド関数実行部20aは、非線形変換層(S層)と線形変換層(P層)を接続したいわゆるSP型の構成を有する。図4に示すように、nビットの入力データすべてに対して、ラウンド鍵との排他的論理和(EXOR)演算を実行する排他的論理和演算部21、排他的論理和演算部21の演算結果を入力し、入力データの非線形変換を実行する非線形変換処理部22、非線形変換処理部22における非線形変換処理結果を入力し、入力データに対する線形変換処理を実行する線形変換処理部23などによって構成される。線形変換処理部23の線形変換処理結果が、次のラウンドに出力される。最終ラウンドでは暗号文となる。なお、図4に示す例では、排他的論理和演算部21、非線形変換処理部22、線形変換処理部23の処理順を示しているが、これらの処理部の順番は、限定されるものではなく、他のシーケンスで処理を行なう構成としてもよい。
次に、図5を参照してラウンド関数実行部20の一構成例としてのFeistel(フェイステル)構造について説明する。Feistel構造は、図5に示すように、前ラウンドからの入力(第1ラウンドでは入力文)であるnビットの入力データをn/2ビットの2つのデータに分割して、各ラウンドにおいて入れ替えながら処理を実行する。
(ア)SPN(Substitution Permutation Network)構造、
(イ)Feistel構造、
これらの構造をとり得る。これらのラウンド関数実行部は、いずれも非線形変換層(S層)と線形変換層(P層)を接続したいわゆるSP型の構成を有する。すなわち、非線形変換処理を実行する非線形変換処理部と、線形変換処理を実行する線形変換処理部とを有する。以下、これらの変換処理構成について説明する。
非線形変換処理部の具体例について、図6を参照して説明する。図6に示すように、非線形変換処理部50は、具体的には、Sボックス(S−box)51と呼ばれるsビット入力sビット出力の非線形変換テーブルがm個並んだものであり、msビットの入力データがsビットずつ分割されてそれぞれ対応するSボックス(S−box)51に入力されデータが変換される。各Sボックス51では、例えば変換テーブルを適用した非線形変換処理が実行される。
線形変換処理部の具体例について、図7を参照して説明する。線形変換処理部は、入力値、例えば、Sボックスからの出力データであるmsビットの出力値を入力値Xとして入力し、この入力に対して線形変換を施しmsビットの結果を出力する。線形変換処理は、例えば、入力ビット位置の入れ替え処理などの線形変換処理を実行して、msビットの出力値Yを出力する。線形変換処理は、例えば、入力に対して、線形変換行列を適用して入力ビット位置の入れ替え処理を行なう。この行列の一例が図7に示す線形変換行列である。
上述したように、共通鍵ブロック暗号は、ラウンド関数の繰り返しによる暗号処理を行なう構成である。この共通鍵ブロック暗号処理の問題点として、暗号解析による鍵の漏洩がある。暗号解析による鍵の解析が容易であるということは、その暗号処理の安全性が低いということになり、実用上、大きな問題となる。
(2−1)鍵スケジュール部の詳細構成について
(2−2)シフト処理を適用した一般的なラウンド鍵生成処理構成について
(2−3)本発明の第1実施例に係るラウンド鍵の生成処理構成について
(2−4)本発明の第2実施例に係るラウンド鍵の生成処理構成について
(2−5)本発明の第3実施例に係るラウンド鍵の生成処理構成について
先に、例えば図2を参照して説明したように、共通鍵ブロック暗号においては、鍵スケジュール部が、入力鍵Kのビット長を拡大して拡大鍵K'(ビット長k')を出力し、拡大鍵に基づいて生成されるラウンド鍵RKiを適用したラウンド関数が実行される。
(a)ラウンド鍵が分かっても鍵データが復元できないこと
(b)ラウンド鍵同士が独立であること
これらの性質がある。
(a)は、万が一各ラウンドにおいて適用するラウンド鍵が解析された場合でも、そのラウンド鍵から元の秘密鍵を復元不可能とすることで安全性を高められることを意味する。また、(b)は1つのラウンド鍵と他のラウンド鍵とのデータ間に何らかの関係がある場合、1つのラウンド鍵の解析に成功した場合、他のラウンド鍵が推定可能になり、このような関連性を排除することで安全性が高まるということを意味する。
*slide attack(スライド攻撃)に対し十分な耐性をもつこと
*related cipher attack(関連暗号攻撃)に対して十分な耐性をもつことが必要とされる。
上述したように、上述のラウンド鍵を利用する共通鍵ブロック暗号処理を実行する装置を構成する場合、実装のコスト上、ラウンド鍵同士が独立であるようにラウンド鍵を生成することは難しく、実際には、秘密鍵から非線形変換を用いて求められた中間鍵データを循環シフトしたデータから切り出したデータをラウンド鍵として用いる。
図11は、復号処理におけるラウンド鍵生成処理を実行する鍵スケジュール部の構成例、
図12は、暗号化、復号の双方におけるラウンド鍵生成処理を実行する鍵スケジュール部の構成例を示している。
RK1=L
RK2=L<<<i
RK3=L<<<(2×i)
・・・
RKr−1=L<<<((r−2)×i)
RKr=L<<<((r−1)×i)
RK1=Lは、シフト量ゼロのデータであり、中間鍵Lに等しく、
RK2=L<<<iは、中間鍵Lに対して、左にiビットの循環シフトを行なったデータ、
RK3=L<<<(2×i)は、中間鍵Lに対して、左に2×iビットのシフトを行なったデータ、
・・・をそれぞれ示している。
For n=1 to r−1 do
RKn←RegL
RegL←RegL<<<i
RKr←RegL
RegL←RegL>>>((r−1)×i)
<<<iはiビット左循環シフト、
>>>iはiビット右循環シフト、
を示している。
iビット右循環シフト回路221と、
(r−1)×iビット左循環シフト回路222
によって構成される。
RegL←RegL<<<((r−1)×i)
For n=r to 2 do
RKn←RegL
RegL←RegL>>>i
RK1←RegL
<<<iはiビット左循環シフト、
>>>iはiビット右循環シフト、
を示している。
iビット左循環シフト回路231、
iビット右循環シフト回路232、
(r−1)×iビット右循環シフト回路233、
(r−1)×iビット左循環シフト回路234、
であり、図10、図11に構成された循環シフト回路をすべて含む構成であり、
iビット左循環シフト、iビット右循環シフト、(r−1)×iビット右循環シフト、(r−1)×iビット左循環シフトを選択的に実行することが可能な構成を持つ。この構成を適用することで、暗号化および復号処理いずれの場合もラウンド鍵を生成して出力することが可能となる。
(A)秘密鍵Kに基づいて生成された中間鍵データLと、
(B)別の秘密鍵K'に基づいて生成された中間鍵データL'を(s×i)ビット左循環シフトした拡大鍵データL'<<<(s×i)
これらが同じ値になった場合には、その後にビットシフトによって生成される各ラウンドのラウンド鍵、すなわち、
(a)中間鍵データLより生成されるr−s段分のラウンド鍵{RK1,RK2,・・・、RK(r−s)−1,RK(r−s)}と、
(b)拡大鍵データL'<<<(s×i)より生成されるr−s段分のラウンド鍵{RKs+1,RK2s+2,・・・,RK2r−1,RK2r}
これらの各ラウンド鍵が(a)(b)とで同一のデータとなってしまう。
この性質により、前述のSlide attack(スライド攻撃)による鍵解析が容易となり、攻撃に対する耐性が不十分となってしまう。
iビット左循環シフト回路231、
iビット右循環シフト回路232、
(r−1)×iビット右循環シフト回路233、
(r−1)×iビット左循環シフト回路234、
これらの構成を有し、さらに、
セレクタ241を備えている。
*隣り合うビットに変化が少ないことによるラウンド鍵間の独立性が少ない。
*Slide attack(スライド攻撃)に対して十分な耐性がない。
*Feistel構造での利用の場合上位・下位ビット列選択回路の追加が必要。
これらの欠点をもつ。
以下、上述した循環シフト処理によるラウンド鍵の生成処理における問題点を解決し、様々な暗号攻撃に対する耐性の高い、すなわち安全性の高い暗号処理を実行するラウンド鍵の生成処理構成について説明する。
A=(a0,a1,・・・,a126,a127)、
とする。
anは、128ビットの各ビットデータである。
さらに、
a[x→y]:、データA中の連続ビットデータaxからayまでのビット列、
b|c:ビット列b、cを連結したビット列、
とする。
「iビットダブルスワップ(Double Swap)定義」
128ビットデータAに対するiビットDoubleSwap演算によって得られるデータBを、
B=DoubleSwap128,i(A)
とすると、
B=a[i→63]|a[(128−i)→127]|a[0→(i−1)]|a[64→(127−i)]
となる。
(a)は、入力128ビット、
(b)は、演算結果としての出力128ビット、
を示している。
A0:a[0→(i−1)]、すなわち先頭iビット、
A1:a[i→63]、すなわち先頭iビットの後続ビット〜データAの前半終端ビット
A2:a[64→(127−i)]、すなわちデータAの後半開始ビット〜末尾iビットの先行ビット
A3:a[(128−i)→127]、すなわち末尾iビット、
入力ビットの配列:A0|A1|A2|A3を、
出力ビットの配列:A1|A3|A0|A2、
とするビットデータの位置変更処理を実行する。
128ビットデータAに対するiビットDoubleSwap演算によって得られるデータBを、
B=DoubleSwap128,i(A)
としたとき、出力Bは、
B=a[i→63]|a[(128−i)→127]|a[0→(i−1)]|a[64→(127−i)]
となる。
*ビットの相対位置が大きく変化するが、循環シフトに比べて回路規模が増えない
*Fesitel構造に利用すると実装コストの削減効果
なお、これらの利点については、後段で説明する。
「iビットダブルスワップ(Double Swap)逆演算定義」
128ビットデータAに対するiビットDoubleSwap逆演算によって得られるデータBを、
B=DoubleSwap−1 128,i(A)
とすると、
B=a[64→63+i]|a[0→(63−i)]| [(64+i)→127]|a[(64−i)→63]
となる。
2mビットデータA(mは2以上の整数)に対するiビットDoubleSwap演算によって得られるデータBを、
B=DoubleSwap2m、i(A)
とすると、
B=a[i→(m−1)]|a[(2m−i)→(2m−1)]|a[0→(i−1)]|a[m→(2m−1−i)]
として表現することができる。
A0:a[0→(i−1)]、すなわち先頭iビット、
A1:a[i→(m−1)]、すなわち先頭iビットの後続ビット〜データAの前半終端ビット
A2:a[m→(2m−1−i)]、すなわちデータAの後半開始ビット〜末尾iビットの先行ビット
A3:a[(2m−i)→(2m−1)]、すなわち末尾iビット、
これらの4分割データを、
入力ビットの配列:A0|A1|A2|A3を、
出力ビットの配列:A1|A3|A0|A2、
とするビットデータの位置変更処理を実行することになる。
(r−1)回分iビットダブルスワップ(Double Swap)逆演算回路312の実行するDoubleSwap逆演算は以下のように定義される。
「iビットダブルスワップ(Double Swap)逆演算定義」
2mビットデータA(mは2以上の整数)に対するiビットDoubleSwap逆演算によって得られるデータBを、
B=DoubleSwap−1 2m,i(A)
とすると、
B=a[m→(m−1)+i]|a[0→((m−1)−i)]|[(m+i)→(2m−1)]|a[(m−i)→(m−1)]
となる。
For i=1 to r−1 do
RKi←RegL
RegL←DoubleSwapn、i(RegL)
RKr←RegL
RegL←DoubleSwap−1 n、i(・・・(DoubleSwap−1 n、i(DoubleSwap−1 n、i(RegL))))
For i=1 to r−1 do
RKi←RegL
RegL←DoubleSwapn、i(RegL)
RKr←(RegL)L
これらは、iビットダブルスワップ(Double Swap)演算回路311におけるiビットダブルスワップ処理の繰り返し実行に基づくラウンド鍵の生成プロセスに相当し、最後の処理、すなわち、
RegL←DoubleSwap−1 n、i(・・・(DoubleSwap−1 n、i(DoubleSwap−1 n、i(RegL))))
この処理は、(r−1)回分iビットダブルスワップ(Double Swap)逆演算回路312におけるDoubleSwap逆演算のr−1回分に相当する演算により元の中間鍵Lを生成する処理に相当する。
RegL←DoubleSwapn,i(・・・(DoubleSwapn,i(DoubleSwapn,i(RegL))))
For i=r to 2 do
RKi←RegL
RegL←DoubleSwap−1 n,i(RegL)
RK1←RegL
RegL←DoubleSwapn,i(・・・(DoubleSwapn,i(DoubleSwapn,i(RegL))))
この処理は、(r−1)回分iビットダブルスワップ(Double Swap)演算回路322におけるDoubleSwap演算のr−1回分に相当する演算により元の中間鍵Lから暗号処理における最終ラウンドのラウンド鍵、すなわち復号処理における最初のラウンド鍵を生成する処理に相当する。
その後のステップ、すなわち、
For i=r to 2 do
RKi←RegL
RegL←DoubleSwap−1 n,i(RegL)
RK1←RegL
この処理は、復号処理における第2ラウンド以降のラウンド鍵生成処理に相当し、iビットダブルスワップ(Double Swap)逆演算回路321におけるDoubleSwap逆演算の実行によるラウンド鍵の生成処理である。
iビットダブルスワップ(Double Swap)演算回路331、
iビットダブルスワップ(Double Swap)逆演算回路332、
(r−1)回分iビットダブルスワップ(Double Swap)演算回路333、
(r−1)回分iビットダブルスワップ(Double Swap)逆演算回路334、
これらのビット位置変換処理回路を備えたデータ変換部330を有する構成となっている。
(a)初期的な中間鍵データ、
(b)ダブルスワップ変換処理1回実行後のデータ、
(c)ダブルスワップ変換処理2回実行後のデータ、
(d)ダブルスワップ変換処理3回実行後のデータ、
これらの4つのデータを示している。
(b)ダブルスワップ変換処理1回実行後のデータ、
の設定となる。
(b)のデータにおいて、[B]はデータ左端に移動する。このとき[B]の左にはビットが存在しない。さらに、DoubleSwap変換を一回適用すると、
(c)ダブルスワップ変換処理2回実行後のデータ、
の設定となる。
(c)のデータにおいて、[B]はデータ左端から65番目のビット位置に移動する。この状態では、[B]の左に位置するビット[b2]は、(b)のデータにおいて右端に存在したビットデータ[b2]である。さらに、DoubleSwap変換を一回適用すると、
(d)ダブルスワップ変換処理3回実行後のデータ、
の設定となる。
(d)のデータにおいて、[B]は、データ左端から65+i番目のビット位置に移動する。この状態では、[B]の左に位置するビット[b3]は、(c)のデータにおいて左端からi番目に存在したビットデータ[b3]となる。
次に、Feistel(フェイステル)型暗号のように、暗号処理対象データをnビットとしたとき、ラウンド鍵としてn/2ビットを利用する構成において上述のダブルスワップ(DoubleSwap)演算を適用する実施例について説明する。
(a)スワップ(Swap)演算、
(b)iビットサブスワップ(SubSwap)演算、
これらの2つの処理を交互に実行する構成とした。すなわち、
ダブルスワップ(DoubleSwap)演算
=スワップ(Swap)演算+iビットサブスワップ(SubSwap)演算、
となる。
スワップ(Swap)演算回路411、
iビットサブスワップ(SubSwap)演算回路412、
ジャンプ(Jumpr−1)演算回路413、
これらを備えたデータ変換部410を持つ。なお、iは1以上の整数である。
スワップ(Swap)演算回路411、
iビットサブスワップ(SubSwap)演算回路412、
ジャンプ(Jumpr−1)演算回路413、
これらのビット位置変更処理回路が接続され、予め設定されたアルゴリズムに従って、レジスタRegL403に格納されたデータのビット位置変更処理が実行される。
128ビットのデータAを、
A=(a0,a1,・・・,a126,a127)、
とする。
anは、128ビットの各ビットデータである。
さらに、
a[x→y]:、データA中の連続ビットデータaxからayまでのビット列、
b|c:ビット列b、cを連結したビット列、
とする。
「スワップ(Swap)演算定義」
128ビットデータAに対するSwap演算によって得られるデータBを、
B=Swap128(A)
とすると、
B=a[64→127]|a[0→63]
となる。
Swap演算=Swap逆演算
である。
「スワップ(Swap)演算定義」
2mビットデータA(mは2以上の整数)に対するSwap演算によって得られるデータBを、
B=Swap2m(A)
とすると、
B=a[m→(2m−1)]|a[0→(m−1)]
として表現することができる。
128ビットデータに対するiビットサブスワップ(SubSwap)演算は以下のように定義できる。
「iビットサブスワップ(SubSwap)演算定義」
128ビットデータAに対するiビットサブスワップ(SubSwap)演算によって得られるデータBを、
B=SubSwap128、i(A)
とすると、
B=a[(64+i)→127]|a[(64−i)→(63+i)]|a[0→(63−i)]
となる。
「iビットサブスワップ(SubSwap)演算定義」
2mビットデータA(mは2以上の整数)に対するiビットサブスワップ(SubSwap)演算によって得られるデータBを、
B=SubSwap2m、i(A)
とすると、
B=a[(m+i)→127]|a[(m−i)→(m−1+i)]|a[0→(m−1−i)]
として表現することができる。
スワップ(Swap)演算、
サブスワップ(SubSwap)演算、
これらを連続して1回ずつ実行すると、先に、図15を参照して説明したダブルスワップ(DoubleSwp)演算によるビット位置変更処理と同様のビット位置変更がなされることになる。
スワップ(Swap)演算回路411、
iビットサブスワップ(SubSwap)演算回路412、
これらの各演算回路を適用したビット位置変更処理を交互に実行して各ラウンド鍵を生成する。
スワップ(Swap)演算回路411、
iビットサブスワップ(SubSwap)演算回路412、
これらの各演算回路を適用したビット位置変更処理を交互に実行して各ラウンド鍵を生成する。このようにして、各ラウンド関数において適用するラウンド鍵RK1,RK2,・・・,RKr−1,RKrが生成される。最後にレジスタRegL403に格納されたデータに対して、ジャンプ(Jumpr−1)演算回路413によるビット位置変更処理が実行され、レジスタRegL403に最初に格納された中間鍵データLに戻す処理が実行される。
スワップ(Swap)演算回路411によるr/2回のスワップ(Swap)演算と、
iビットサブスワップ(SubSwap)演算回路412による(r/2−1)回のiビットサブスワップ(SubSwap)演算を交互に繰り返して得られた結果を初期データに戻す演算としてのビット位置変更処理に相当する。先に説明したように、スワップ(Swap)演算とサブスワップ(SubSwap)演算はそれぞれ自分自身が逆変換になっていることから、結果としては、ジャンプ(Jumpr−1)演算回路413によるビット位置変更処理は、図24に示すように、
スワップ(Swap)演算回路411によるr/2回のスワップ(Swap)演算と、
iビットサブスワップ(SubSwap)演算回路412による(r/2−1)回のiビットサブスワップ(SubSwap)演算を交互に繰り返す処理を再度実行することに相当する。
スワップ(Swap)演算回路411、
iビットサブスワップ(SubSwap)演算回路412、
ジャンプ(Jumpr−1)演算回路413、
これらの演算回路は、先に、図16、図17を参照して説明したと同様のビット位置変換回路によって実装可能である。従って、例えば、ジャンプ(Jumpr−1)演算回路413は、巡回シフト演算をr−1回まとめて行う演算と同程度の回路規模で実現可能である。なお、これらのビット位置変更処理は図16、図17を参照して説明したと同様のハードウェア構成として実現しても、ソフトウェアによって実行する構成としてもよい。
スワップ(Swap)演算回路411、
iビットサブスワップ(SubSwap)演算回路412、
ジャンプ(Jumpr−1)演算回路413、
これらの演算回路によるビット位置変更処理を適用したn/2ビットのラウンド鍵生成アルゴリズムは、以下のように示される。なお、ラウンド数は、偶数ラウンドとしr=rとして表す。
For i=1 to r−1 do
RKi←RegLの上位n/2ビット
IF i==odd
Swapn(RegL)
IF i==even
SubSwapn,i(RegL)
RKr←RegLの上位n/2ビット
RegL←Jumpr−1(RegL)
RegL←Jumpr−1(RegL)
For i=r to 2 do
RKi←RegLの上位n/2ビット
IF i==even
Swapn(RegL)
IF i==odd
SubSwapn,i(RegL)
RK1←RegLの上位n/2ビット
スワップ(Swap)演算回路411、
iビットサブスワップ(SubSwap)演算回路412、
これらの演算回路によるビット位置変更処理を交互に実行して、各ラウンドのラウンド鍵生成を実行する構成である。
スワップ(Swap)演算回路411、
iビットサブスワップ(SubSwap)演算回路412、
ジャンプ(Jumpr−1)演算回路413、
これらの各演算回路によるビット位置変更処理を行なうことによりラウンド鍵を生成することができる。この実装により、循環シフト回路で必要であった選択回路(図13に示すセレクタ241)を省略でき、なおかつ循環シフト回路で4種類必要であった演算回路の種類を3つに減らすことが可能となり、実装コスト、実装面積の削減が可能となる。
次に、本発明の第3実施例に係るラウンド鍵の生成処理構成について、図25を参照して説明する。以下において説明する実施例は、先に説明した構成によって生成するラウンド鍵データに対して、ラウンド毎に異なる定数Cjを排他的論理和(EXOR)し、この結果をラウンド鍵とする構成である。この構成とすることで、
*中間鍵がオール0やオール1の場合にラウンド鍵が同じにならない。
*Slide attack(スライド攻撃)に対して十分な耐性をもつ。
これらの効果がもたらされる。
Cj=((bj<<<i)[EXOR](Mask1),(bj<<<j)[EXOR](Mask2),(bj<<<k)[EXOR](Mask3),(bj<<<l)[EXOR](Mask4))
上記式において、
bj<<<iは、16ビットのデータbjをiビット左シフトしたデータである。
Mask1は、予め設定された固定値としてのマスク値(16ビット)である。
(bj<<<i)[EXOR](Mask1)は、(bj<<<i)と(Mask1)との排他的論理和演算を示す。
i,j,k,lはそれぞれ予め決定されたシフト量であり、
MASK1,MASK2,MASK3,MASK4はそれぞれ予め決定されたマスク値(16ビット)である。
16ビットのデータbjをそれぞれ異なるシフト量i,j,k,lによってシフトした16ビットデータに対して、それぞれ異なるマスク値Mask1,Mask2,Mask3,Mask4を適用した排他的論理和演算を実行して得られた4つの16ビッデータを並べて64ビットのラウンド毎に異なる定数Cjを生成する式である。
(a)ラウンド数r1のk1ビットの鍵長、
(b)ラウンド数r2のk2ビットの鍵長、
(c)ラウンド数r3のk3ビットの鍵長、
これらの全てをサポートする構成とする場合には、定数生成回路420は、複数の異なる暗号処理に対応する全ラウンド数:r1+r2+r3個の異なるmビットのデータbjを、各ラウンドにおいて適用する。この構成により、異なる鍵長においてレジスタRegL403の格納値Lが同じ値になった場合にもラウンド鍵を異なる値にすることができる。
*中間鍵がオール0やオール1の場合にラウンド鍵が同じにならない。
*各ラウンド鍵の関連性が排除されSlide attack(スライド攻撃)に対して十分な耐性をもつ。
これらの効果がもたらされる。
最後に、上述した実施例に従った暗号処理を実行する暗号処理装置としてのICモジュール700の構成例を図27に示す。上述の処理は、例えばPC、ICカード、リーダライタ、その他、様々な情報処理装置において実行可能であり、図27に示すICモジュール700は、これら様々な機器に構成することが可能である。
(ア)SPN(Substitution Permutation Network)構造、
(イ)Feistel構造、
これらの構成を適用した共通鍵ブロック暗号処理アルゴリズムに従った暗号処理、復号処理を実行する。
(2−3)本発明の第1実施例に係るラウンド鍵の生成処理
(2−4)本発明の第2実施例に係るラウンド鍵の生成処理
(2−5)本発明の第3実施例に係るラウンド鍵の生成処理
これらの処理構成のいずれかに対応する構成を持つ鍵スケジュール部を持つ。
11 鍵スケジュール部
12 暗号処理部
20 ラウンド関数実行部
21 排他的論理和演算部
22 非線形変換処理部
23 線形変換処理部
30 F関数部
31 排他的論理和演算部
32 非線形変換処理部
33 線形変換処理部
34 排他的論理和演算部
50 非線形変換処理部
51 Sボックス
111 秘密鍵
112 暗号化鍵スケジュール部
113 暗号化拡大鍵
114 データ暗号化部
121 秘密鍵
122 復号鍵スケジュール部
123 復号拡大鍵
124 データ復号部
201 非線形変換回路
202 セレクタ
203 レジスタ
204 セレクタ
211 iビット左循環シフト回路
212 (q−1)×iビット右循環シフト回路
221 iビット右循環シフト回路
222 (q−1)×iビット左循環シフト回路
231 iビット左循環シフト回路
232 iビット右循環シフト回路
233 (q−1)×iビット右循環シフト回路
234 (q−1)×iビット左循環シフト回路
241 セレクタ
301 非線形変換回路
302 セレクタ
303 レジスタ
310 データ変換部
311 iビットダブルスワップ演算回路
312 (r−1)回分iビットダブルスワップ逆演算回路
320 データ変換部
321 iビットダブルスワップ逆演算回路
322 (r−1)回分iビットダブルスワップ演算回路
330 データ変換部
331 iビットダブルスワップ演算回路
332 iビットダブルスワップ逆演算回路
333 (r−1)回分iビットダブルスワップ演算回路
334 (r−1)回分iビットダブルスワップ逆演算回路
401 非線形変換回路
402 セレクタ
403 レジスタ
410 データ変換部
411 スワップ演算回路
412 iビットサブスワップ演算回路
413 ジャンプ演算回路
420 定数生成回路
430 排他的論理和(EXOR)演算部
700 ICモジュール
701 CPU(Central processing Unit)
702 メモリ
703 暗号処理部
704 乱数発生器
705 送受信部
Claims (18)
- 共通鍵ブロック暗号処理を実行する暗号処理装置であり、
ラウンド関数を複数ラウンド繰り返すデータ変換処理を行なう暗号処理部と、
前記ラウンド関数の実行に適用するラウンド鍵を生成する鍵スケジュール部を有し、
前記鍵スケジュール部は、
秘密鍵の変換処理によって中間鍵を生成する中間鍵生成部と、
前記中間鍵を格納するレジスタと、
前記レジスタに格納されたレジスタ格納データに対するデータ変換処理を実行するデータ変換部であり、前記レジスタ格納データを部分データに区分する処理と、前記部分データ単位の位置変更処理を含むダブルスワップ処理を繰り返し実行して複数の異なるラウンド鍵を生成するデータ変換部と、
を有する構成であることを特徴とする暗号処理装置。 - 前記データ変換部は、
2mビットからなる前記レジスタ格納データを、
(a)先頭iビットの部分データA0、
(b)先頭からi+1ビット〜mビットの部分データA1、
(c)先頭からm+1ビット〜2m−iビットの部分データA2、
(d)末尾iビットの部分データA3、
上記(a)〜(d)に示す4つの部分データに区分する処理と、前記部分データ単位の位置変更処理を含むダブルスワップ処理を繰り返し実行して、複数の異なるラウンド鍵を生成する構成であることを特徴とする請求項1に記載の暗号処理装置。 - 前記データ変換部は、
等しいビット数を持つ部分データの組を2組設定するように前記レジスタ格納データを4つの部分データに区分する処理と、前記部分データ単位の位置変更処理を含むダブルスワップ処理を実行するダブルスワップ処理実行部と、
前記ダブルスワップ実行部の処理の複数の繰り返し処理の逆処理に相当するデータ変換処理を実行するダブルスワップ逆処理実行部と、
を有する構成であることを特徴とする請求項1に記載の暗号処理装置。 - 前記データ変換部は、
暗号化処理におけるラウンド鍵生成と逆順でラウンド鍵を生成する復号用ラウンド鍵生成処理を行なう構成を有し、
等しいビット数を持つ部分データの組を2組設定するように前記レジスタ格納データを4つの部分データに区分する処理と、前記部分データ単位の位置変更処理を含むダブルスワップ処理を予め規定されたラウンド数に基づいて決定される回数分繰り返した結果データを、前記レジスタ格納データに対する変換処理によって生成する復号用ラウンド鍵対応データ変換部と、
前記復号用ラウンド鍵対応データ変換部において変換されたデータに対して、前記ダブルスワップ処理の逆処理を実行して、各ラウンドのラウンド鍵を生成するダブルスワップ逆処理実行部と、
を有することを特徴とする請求項1に記載の暗号処理装置。 - 共通鍵ブロック暗号処理を実行する暗号処理装置であり、
ラウンド関数を複数ラウンド繰り返すデータ変換処理を行なう暗号処理部と、
前記ラウンド関数の実行に適用するラウンド鍵を生成する鍵スケジュール部を有し、
前記鍵スケジュール部は、
秘密鍵の変換処理によって中間鍵を生成する中間鍵生成部と、
前記中間鍵を格納するレジスタと、
前記レジスタに格納されたレジスタ格納データに対するデータ変換処理を実行するデータ変換部を有し、
前記データ変換部は、
2mビットからなる前記レジスタ格納データを、
(a)先頭mビットの部分データA0、
(b)末尾mビットの部分データA1、
上記(a)〜(b)に示す2つの部分データに区分し、各部分データのスワップ処理を実行するスワップ処理実行部と、
2mビットからなる前記レジスタ格納データを、
(c)先頭(m−i)ビットの部分データA0、
(d)先頭から(m−i+1)ビット〜(m+i)ビットの部分データA1、
(e)先頭から(m+i+1)ビット〜末尾ビットの部分データA2、
上記(c)〜(e)に示す3つの部分データに区分し、上記(c)と(d)の部分データのスワップ処理を実行するサブスワップ処理実行部と、
を有し、
前記スワップ処理実行部と、前記サブスワップ処理実行部の処理をラウンド進行に応じて交互に実行してラウンド鍵の生成を実行する構成であることを特徴とする暗号処理装置。 - 前記データ変換部は、さらに、
前記スワップ処理実行部と、前記サブスワップ処理実行部の処理の繰り返し処理の逆処理に相当するデータ変換を実行する逆変換処理実行部を有することを特徴とする請求項5に記載の暗号処理装置。 - 前記鍵スケジュール部は、さらに、
ラウンド毎に異なる定数を生成する定数生成部と、
前記定数生成部の生成した定数と、前記レジスタ格納データとの排他的論理和演算を実行してラウンド鍵を生成する排他的論理和演算部と、
を有する構成であることを特徴とする請求項1〜6いずれかに記載の暗号処理装置。 - 前記定数生成部は、
生成する定数より少ないビット数のラウンド毎に異なる少ビット数データのシフトデータの組み合わせによってラウンド毎に異なる定数を生成する構成であることを特徴とする請求項7に記載の暗号処理装置。 - 前記定数生成部は、
生成する定数より少ないビット数の少ビット数データに対するデータ変換によって、ラウンド毎に異なる少ビット数データを生成して、生成した少ビット数データのシフトデータの組み合わせによってラウンド毎に異なる定数を生成する構成であることを特徴とする請求項7に記載の暗号処理装置。 - 暗号処理装置において共通鍵ブロック暗号処理を実行する暗号処理方法であり、
鍵スケジュール部において、暗号処理部で実行する複数ラウンドのラウンド関数の実行に適用する複数のラウンド鍵を生成するラウンド鍵生成ステップと、
暗号処理部において、前記ラウンド鍵を適用したラウンド関数を複数ラウンド繰り返すデータ変換処理を行なう暗号処理ステップとを有し、
前記ラウンド鍵生成ステップは、
秘密鍵の変換処理によって中間鍵を生成する中間鍵生成ステップと、
前記中間鍵をレジスタに格納する中間鍵格納ステップと、
データ変換部が前記レジスタに格納されたレジスタ格納データを部分データに区分する処理と、前記部分データ単位の位置変更処理を含むダブルスワップ処理を繰り返し実行して、複数の異なるラウンド鍵を生成するデータ変換ステップと、
を有するステップであることを特徴とする暗号処理方法。 - 前記データ変換ステップは、
2mビットからなる前記レジスタ格納データを、
(a)先頭iビットの部分データA0、
(b)先頭からi+1ビット〜mビットの部分データA1、
(c)先頭からm+1ビット〜2m−iビットの部分データA2、
(d)末尾iビットの部分データA3、
上記(a)〜(d)に示す4つの部分データに区分する処理と、前記部分データ単位の位置変更処理を含むダブルスワップ処理を繰り返し実行して、複数の異なるラウンド鍵を生成するステップであることを特徴とする請求項10に記載の暗号処理方法。 - 前記データ変換ステップは、
等しいビット数を持つ部分データの組を2組設定するように前記レジスタ格納データを4つの部分データに区分する処理と、前記部分データ単位の位置変更処理を含むダブルスワップ処理を実行するダブルスワップ処理実行ステップと、
前記ダブルスワップ実行ステップの処理の複数の繰り返し処理の逆処理に相当するデータ変換処理を実行するダブルスワップ逆処理実行ステップと、
を有するステップであることを特徴とする請求項10に記載の暗号処理方法。 - 前記データ変換ステップは、
暗号化処理におけるラウンド鍵生成と逆順でラウンド鍵を生成する復号用ラウンド鍵生成処理を行なうステップを有し、
等しいビット数を持つ部分データの組を2組設定するように前記レジスタ格納データを4つの部分データに区分する処理と、前記部分データ単位の位置変更処理を含むダブルスワップ処理を実行するダブルスワップ処理を予め規定されたラウンド数に基づいて決定される回数分繰り返した結果データを、前記レジスタ格納データに対する変換処理によって生成する復号用ラウンド鍵対応データ変換ステップと、
前記復号用ラウンド鍵対応データ変換ステップにおいて変換されたデータに対して、前記ダブルスワップ処理の逆処理を実行して、各ラウンドのラウンド鍵を生成するダブルスワップ逆処理実行ステップと、
を有するステップであることを特徴とする請求項10に記載の暗号処理方法。 - 暗号処理装置において共通鍵ブロック暗号処理を実行する暗号処理方法であり、
鍵スケジュール部において、暗号処理部で実行する複数ラウンドのラウンド関数の実行に適用する複数のラウンド鍵を生成するラウンド鍵生成ステップと、
暗号処理部において、前記ラウンド鍵を適用したラウンド関数を複数ラウンド繰り返すデータ変換処理を行なう暗号処理ステップとを有し、
前記ラウンド鍵生成ステップは、
秘密鍵の変換処理によって中間鍵を生成する中間鍵生成ステップと、
前記中間鍵をレジスタに格納する中間鍵格納ステップと、
データ変換部が前記レジスタに格納されたレジスタ格納データに対するデータ変換処理を実行するデータ変換ステップを有し、
前記データ変換ステップは、
2mビットからなる前記レジスタ格納データを、
(a)先頭mビットの部分データA0、
(b)末尾mビットの部分データA1、
上記(a)〜(b)に示す2つの部分データに区分し、各部分データのスワップ処理を実行するスワップ処理実行ステップと、
2mビットからなる前記レジスタ格納データを、
(c)先頭(m−i)ビットの部分データA0、
(d)先頭から(m−i+1)ビット〜(m+i)ビットの部分データA1、
(e)先頭から(m+i+1)ビット〜末尾ビットの部分データA2、
上記(c)〜(e)に示す3つの部分データに区分し、上記(c)と(d)の部分データのスワップ処理を実行するサブスワップ処理実行ステップと、
を有し、
前記スワップ処理実行ステップと、前記サブスワップ処理実行ステップの処理をラウンド進行に応じて交互に実行してラウンド鍵の生成を実行するステップであることを特徴とする暗号処理方法。 - 前記データ変換ステップは、さらに、
前記スワップ処理実行ステップと、前記サブスワップ処理実行ステップの処理の繰り返し処理の逆処理に相当するデータ変換を実行する逆変換処理実行ステップを有することを特徴とする請求項14に記載の暗号処理方法。 - 前記暗号処理方法は、さらに、
定数生成部が、ラウンド毎に異なる定数を生成する定数生成ステップと、
排他的論理和演算部が、前記定数生成部の生成した定数と、前記レジスタ格納データとの排他的論理和演算を実行してラウンド鍵を生成する排他的論理和演算ステップと、
を有することを特徴とする請求項10〜15いずれかに記載の暗号処理方法。 - 前記定数生成ステップは、
生成する定数より少ないビット数のラウンド毎に異なる少ビット数データのシフトデータの組み合わせによってラウンド毎に異なる定数を生成するステップであることを特徴とする請求項16に記載の暗号処理方法。 - 前記定数生成ステップは、
生成する定数より少ないビット数の少ビット数データに対するデータ変換によって、ラウンド毎に異なる少ビット数データを生成して、生成した少ビット数データのシフトデータの組み合わせによってラウンド毎に異なる定数を生成するステップであることを特徴とする請求項16に記載の暗号処理方法。
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006333882A JP5055993B2 (ja) | 2006-12-11 | 2006-12-11 | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
PCT/JP2007/072551 WO2008072455A1 (ja) | 2006-12-11 | 2007-11-21 | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
US12/518,510 US8737603B2 (en) | 2006-12-11 | 2007-11-21 | Cryptographic processing apparatus, cryptographic processing method, and computer program |
EP07832281.5A EP2096616A4 (en) | 2006-12-11 | 2007-11-21 | ENCRYPTION DEVICE, ENCRYPTION METHOD, AND COMPUTER PROGRAM |
CN2007800456671A CN101553857B (zh) | 2006-12-11 | 2007-11-21 | 加密处理装置、加密处理方法以及计算机程序 |
KR1020097011387A KR20090094086A (ko) | 2006-12-11 | 2007-11-21 | 암호 처리 장치, 암호 처리 방법과 컴퓨터 프로그램 |
HK10103332.9A HK1138098A1 (en) | 2006-12-11 | 2010-03-31 | Encryption device, encryption method, and computer program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006333882A JP5055993B2 (ja) | 2006-12-11 | 2006-12-11 | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2008145791A JP2008145791A (ja) | 2008-06-26 |
JP2008145791A5 JP2008145791A5 (ja) | 2009-10-08 |
JP5055993B2 true JP5055993B2 (ja) | 2012-10-24 |
Family
ID=39511480
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006333882A Expired - Fee Related JP5055993B2 (ja) | 2006-12-11 | 2006-12-11 | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
Country Status (7)
Country | Link |
---|---|
US (1) | US8737603B2 (ja) |
EP (1) | EP2096616A4 (ja) |
JP (1) | JP5055993B2 (ja) |
KR (1) | KR20090094086A (ja) |
CN (1) | CN101553857B (ja) |
HK (1) | HK1138098A1 (ja) |
WO (1) | WO2008072455A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7772999B2 (en) * | 2007-12-10 | 2010-08-10 | Peter Lablans | N-state ripple adder scheme coding with corresponding n-state ripple adder scheme decoding |
US20110064214A1 (en) * | 2003-09-09 | 2011-03-17 | Ternarylogic Llc | Methods and Apparatus in Alternate Finite Field Based Coders and Decoders |
US8577026B2 (en) | 2010-12-29 | 2013-11-05 | Ternarylogic Llc | Methods and apparatus in alternate finite field based coders and decoders |
JP4882598B2 (ja) * | 2006-07-28 | 2012-02-22 | ソニー株式会社 | 暗号処理装置、暗号処理アルゴリズム構築方法、および暗号処理方法、並びにコンピュータ・プログラム |
US8417942B2 (en) * | 2007-08-31 | 2013-04-09 | Cisco Technology, Inc. | System and method for identifying encrypted conference media traffic |
US20090169001A1 (en) * | 2007-12-28 | 2009-07-02 | Cisco Technology, Inc. | System and Method for Encryption and Secure Transmission of Compressed Media |
US8837598B2 (en) * | 2007-12-28 | 2014-09-16 | Cisco Technology, Inc. | System and method for securely transmitting video over a network |
US8233620B2 (en) * | 2009-02-27 | 2012-07-31 | Inside Secure | Key recovery mechanism for cryptographic systems |
JP2010245881A (ja) * | 2009-04-07 | 2010-10-28 | Toshiba Corp | 暗号処理装置 |
JP5042272B2 (ja) * | 2009-05-15 | 2012-10-03 | 日本電信電話株式会社 | 暗号用拡大鍵生成回路、復号用拡大鍵生成回路、暗号用拡大鍵生成方法および復号用拡大鍵生成方法 |
WO2011101994A1 (ja) * | 2010-02-22 | 2011-08-25 | 株式会社東芝 | 暗号化装置 |
US8611540B2 (en) * | 2010-06-23 | 2013-12-17 | Damaka, Inc. | System and method for secure messaging in a hybrid peer-to-peer network |
JP5198526B2 (ja) * | 2010-09-21 | 2013-05-15 | 株式会社東芝 | 暗号化装置および復号装置 |
JP5682527B2 (ja) * | 2011-03-28 | 2015-03-11 | ソニー株式会社 | 暗号処理装置、および暗号処理方法、並びにプログラム |
US8707123B2 (en) * | 2011-12-30 | 2014-04-22 | Lsi Corporation | Variable barrel shifter |
KR101362675B1 (ko) * | 2012-11-30 | 2014-02-12 | 한국전자통신연구원 | 저전력 암호화 장치 및 방법 |
JP6238774B2 (ja) | 2013-02-21 | 2017-11-29 | キヤノン株式会社 | ハッシュ値生成装置 |
JP6113091B2 (ja) | 2013-03-07 | 2017-04-12 | キヤノン株式会社 | ハッシュ値生成装置 |
WO2014140698A1 (en) * | 2013-03-11 | 2014-09-18 | Indian Institute of Technology Kharagpur | Improved resistance to cache timing attacks on block cipher encryption |
JP2014192612A (ja) * | 2013-03-26 | 2014-10-06 | Toshiba Corp | 生成装置、暗号化装置、復号装置、生成方法、暗号化方法、復号方法およびプログラム |
JP2014240921A (ja) * | 2013-06-12 | 2014-12-25 | 株式会社東芝 | 暗号装置、暗号処理方法及び暗号処理プログラム |
JP6178142B2 (ja) * | 2013-07-12 | 2017-08-09 | 株式会社東芝 | 生成装置、方法およびプログラム |
JP2015025930A (ja) * | 2013-07-26 | 2015-02-05 | 日本電信電話株式会社 | 圧縮関数演算装置、圧縮関数演算方法及びプログラム |
KR101534792B1 (ko) * | 2014-04-08 | 2015-07-08 | 주식회사 오비고 | 인증키 전송 관련하여 보안성을 높이기 위한 방법, 서버 및 컴퓨터 판독 가능한 기록 매체 |
US10341090B2 (en) * | 2014-10-14 | 2019-07-02 | Sony Corporation | Cipher processing apparatus and cipher processing method |
US9960908B1 (en) * | 2015-06-19 | 2018-05-01 | Amazon Technologies, Inc. | Reduced-latency packet ciphering |
RU2630423C1 (ru) * | 2016-12-08 | 2017-09-07 | Общество с ограниченной ответственностью "ЛАН-ПРОЕКТ" | Способ криптографического преобразования информации |
JP6441390B2 (ja) * | 2017-01-26 | 2018-12-19 | 株式会社東芝 | 生成装置、暗号化装置、復号装置、生成方法、暗号化方法、復号方法およびプログラム |
JP7063628B2 (ja) * | 2018-01-11 | 2022-05-09 | Necプラットフォームズ株式会社 | 暗号化装置、暗号化方法およびプログラム |
KR102213835B1 (ko) * | 2018-11-09 | 2021-02-09 | 고려대학교 산학협력단 | 동형암호 기법으로 암호화된 데이터의 지수 함수 연산 서버 및 방법 |
JP7383985B2 (ja) * | 2019-10-30 | 2023-11-21 | 富士電機株式会社 | 情報処理装置、情報処理方法及びプログラム |
CN110880967B (zh) * | 2019-12-24 | 2023-04-07 | 北京炼石网络技术有限公司 | 采用分组对称密钥算法对多消息并行加解密方法 |
KR20210108787A (ko) | 2020-02-26 | 2021-09-03 | 삼성전자주식회사 | 듀얼 인코더를 포함하는 시큐리티 회로 및 이를 포함하는 암복호화기 |
CN112887085B (zh) * | 2021-01-13 | 2022-06-24 | 深圳安捷丽新技术有限公司 | 一种ssd固态硬盘主控芯片安全密钥生成方法、装置和系统 |
CN113343276B (zh) * | 2021-07-01 | 2022-06-14 | 衡阳师范学院 | 基于广义二维猫映射的轻量级分组密码算法gcm的加密方法 |
US20230164150A1 (en) * | 2021-11-24 | 2023-05-25 | At&T Intellectual Property I, L.P. | Anomaly detection relating to communications using information embedding |
CN115017530B (zh) * | 2022-08-08 | 2022-12-16 | 创云融达信息技术(天津)股份有限公司 | 一种数据安全存储设备及方法 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01147585A (ja) * | 1987-12-04 | 1989-06-09 | Nippon Telegr & Teleph Corp <Ntt> | 暗号装置 |
US6578143B1 (en) * | 1998-12-18 | 2003-06-10 | Qualcomm Incorporated | Method for negotiating weakened keys in encryption systems |
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 |
JP3499810B2 (ja) * | 2000-03-06 | 2004-02-23 | 株式会社東芝 | 暗号化装置、暗号化方法及び暗号化装置としてコンピュータを機能させるためのプログラムを記録したコンピュータ読取り可能な記録媒体並びに復号装置、復号方法及び復号装置としてコンピュータを機能させるためのプログラムを記録したコンピュータ読取り可能な記録媒体 |
CA2449665C (en) * | 2000-03-09 | 2005-06-21 | Mitsubishi Denki Kabushiki Kaisha | Block encryption device using auxiliary conversion |
US7237097B2 (en) * | 2001-02-21 | 2007-06-26 | Mips Technologies, Inc. | Partial bitwise permutations |
US7317795B2 (en) * | 2001-04-17 | 2008-01-08 | She Alfred C | Pipelined deciphering round keys generation |
JP4128395B2 (ja) | 2002-05-23 | 2008-07-30 | 三菱電機株式会社 | データ変換装置 |
US20040047466A1 (en) * | 2002-09-06 | 2004-03-11 | Joel Feldman | Advanced encryption standard hardware accelerator and method |
JP2005218023A (ja) * | 2004-02-02 | 2005-08-11 | Matsushita Electric Ind Co Ltd | 鍵配信システム |
JP4444781B2 (ja) | 2004-10-14 | 2010-03-31 | 日本電信電話株式会社 | 無線送信機、送信信号電力調整装置および送信信号電力調整方法 |
JP4622807B2 (ja) * | 2005-03-25 | 2011-02-02 | ソニー株式会社 | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
US8312297B2 (en) * | 2005-04-21 | 2012-11-13 | Panasonic Corporation | Program illegiblizing device and method |
US7702100B2 (en) * | 2006-06-20 | 2010-04-20 | Lattice Semiconductor Corporation | Key generation for advanced encryption standard (AES) Decryption and the like |
-
2006
- 2006-12-11 JP JP2006333882A patent/JP5055993B2/ja not_active Expired - Fee Related
-
2007
- 2007-11-21 WO PCT/JP2007/072551 patent/WO2008072455A1/ja active Application Filing
- 2007-11-21 CN CN2007800456671A patent/CN101553857B/zh not_active Expired - Fee Related
- 2007-11-21 KR KR1020097011387A patent/KR20090094086A/ko not_active Application Discontinuation
- 2007-11-21 EP EP07832281.5A patent/EP2096616A4/en not_active Withdrawn
- 2007-11-21 US US12/518,510 patent/US8737603B2/en not_active Expired - Fee Related
-
2010
- 2010-03-31 HK HK10103332.9A patent/HK1138098A1/xx not_active IP Right Cessation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
Also Published As
Publication number | Publication date |
---|---|
JP2008145791A (ja) | 2008-06-26 |
EP2096616A1 (en) | 2009-09-02 |
US8737603B2 (en) | 2014-05-27 |
CN101553857A (zh) | 2009-10-07 |
EP2096616A4 (en) | 2014-04-02 |
CN101553857B (zh) | 2011-04-20 |
KR20090094086A (ko) | 2009-09-03 |
HK1138098A1 (en) | 2010-08-13 |
US20100014664A1 (en) | 2010-01-21 |
WO2008072455A1 (ja) | 2008-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5055993B2 (ja) | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム | |
JP4905000B2 (ja) | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム | |
JP4961909B2 (ja) | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム | |
JP5050454B2 (ja) | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム | |
JP4967544B2 (ja) | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム | |
JP5023624B2 (ja) | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム | |
JP4622807B2 (ja) | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム | |
JP2008058830A (ja) | データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム | |
JP2007192893A (ja) | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム | |
JP2007199156A (ja) | 暗号処理装置、暗号処理装置製造装置、および方法、並びにコンピュータ・プログラム | |
JP5680016B2 (ja) | 復号処理装置、情報処理装置、および復号処理方法、並びにコンピュータ・プログラム | |
JP5605197B2 (ja) | 暗号処理装置、および暗号処理方法、並びにプログラム | |
JP5772934B2 (ja) | データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム | |
JP5338945B2 (ja) | 復号処理装置、情報処理装置、および復号処理方法、並びにコンピュータ・プログラム | |
JP5223245B2 (ja) | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090820 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090820 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20090820 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20090820 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120124 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120322 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120417 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120616 |
|
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: 20120703 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120716 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150810 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150810 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |