JP5682527B2 - 暗号処理装置、および暗号処理方法、並びにプログラム - Google Patents
暗号処理装置、および暗号処理方法、並びにプログラム Download PDFInfo
- Publication number
- JP5682527B2 JP5682527B2 JP2011207705A JP2011207705A JP5682527B2 JP 5682527 B2 JP5682527 B2 JP 5682527B2 JP 2011207705 A JP2011207705 A JP 2011207705A JP 2011207705 A JP2011207705 A JP 2011207705A JP 5682527 B2 JP5682527 B2 JP 5682527B2
- Authority
- JP
- Japan
- Prior art keywords
- round
- key
- unit
- data
- keys
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- 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/002—Countermeasures against attacks on cryptographic mechanisms
-
- 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/24—Key scheduling, i.e. generating round keys or sub-keys for block encryption
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Storage Device Security (AREA)
Description
データ処理対象となるデータの構成ビットを複数のラインに分割して入力し、各ラインのデータに対してラウンド関数を適用したデータ変換処理をラウンド演算として繰り返して実行する暗号処理部と、
前記暗号処理部のラウンド演算実行部に対して、ラウンド鍵を出力する鍵スケジュール部を有し、
前記鍵スケジュール部は、
予め保持する秘密鍵を複数個に分割して複数のラウンド鍵またはラウンド鍵構成データを生成する置換型鍵スケジュール部であり、
前記暗号処理部において順次実行するラウンド演算実行部に対して、前記複数のラウンド鍵、または前記ラウンド鍵構成データを結合して生成した複数のラウンド鍵を一定のシーケンスの繰り返しとならない設定で出力する暗号処理装置にある。
暗号処理装置において実行する暗号処理方法であり、
暗号処理部が、データ処理対象となるデータの構成ビットを複数のラインに分割して入力し、各ラインのデータに対してラウンド関数を適用したデータ変換処理をラウンド演算として繰り返して実行する暗号処理ステップと、
鍵スケジュール部が、前記暗号処理部のラウンド演算実行部に対して、ラウンド鍵を出力する鍵スケジューリングステップを実行し、
前記鍵スケジュール部は、
予め保持する秘密鍵を複数個に分割して複数のラウンド鍵またはラウンド鍵構成データを生成する置換型鍵スケジュール部であり、
前記暗号処理部において順次実行するラウンド演算実行部に対して、前記複数のラウンド鍵、または前記ラウンド鍵構成データを結合して生成した複数のラウンド鍵を一定のシーケンスの繰り返しとならない設定で出力する暗号処理方法にある。
暗号処理装置において暗号処理を実行させるプログラムであり、
暗号処理部に、データ処理対象となるデータの構成ビットを複数のラインに分割して入力し、各ラインのデータに対してラウンド関数を適用したデータ変換処理をラウンド演算として繰り返して実行させる暗号処理ステップと、
鍵スケジュール部に、前記暗号処理部のラウンド演算実行部に対して、ラウンド鍵を出力する鍵スケジューリングステップを実行させ、
前記鍵スケジュール部は、予め保持する秘密鍵を複数個に分割して複数のラウンド鍵またはラウンド鍵構成データを生成する置換型鍵スケジュール部であり、
前記鍵スケジュール部に、前記暗号処理部において順次実行するラウンド演算実行部に対して、前記複数のラウンド鍵、または前記ラウンド鍵構成データを結合して生成した複数のラウンド鍵を一定のシーケンスの繰り返しとならない設定で出力させるプログラムにある
具体的には、データ処理対象となるデータの構成ビットを複数のラインに分割して入力し、各ラインのデータに対してラウンド関数を適用したデータ変換処理をラウンド演算として繰り返して実行する暗号処理部と、暗号処理部のラウンド演算実行部に対して、ラウンド鍵を出力する鍵スケジュール部を有し、鍵スケジュール部は、予め保持する秘密鍵を複数個に分割して複数のラウンド鍵を生成する置換型鍵スケジュール部であり、暗号処理部において順次実行するラウンド演算実行部に対して、生成した複数のラウンド鍵を一定のシーケンスの繰り返しとならない設定で出力する。本構成により、例えば関連鍵攻撃等に対する耐性の高い安全性の高い暗号処理構成が実現される。
1.共通鍵ブロック暗号の概要
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構造の一例を示す。
分割数dが偶数である拡張Feistel構造において、ひとつのラウンド内にd/2個のF関数が並列に適用される。
また、ラウンド間の置換としてcyclic shiftを用いる。
なお、図7、18、20は4系列一般化Feistel構造を示す。
非線形変換処理部は、入力されるデータのサイズが大きくなると実装上のコストが高くなる傾向がある。それを回避するために対象データを複数の単位に分割し、それぞれに対して非線形変換を施す構成がとられることが多い。例えば入力サイズをmsビットとして、それらをsビットずつのm個のデータに分割して、それぞれに対してsビット入出力を持つ非線形変換を行う構成である。それらのsビット単位の非線形変換をS−boxと呼ぶものとする。図9に例を示す。
線形変換処理部はその性質上、行列として定義することが可能である。行列の要素はGF(28)の体の要素やGF(2)の要素など、一般的にはさまざまな表現ができる。図10にmsビット入出力をもち、GF(2s)の上で定義されるm×mの行列により定義される線形変換処理部の例を示す。
本開示の暗号処理の説明の前に、前提となる構成である鍵スケジュール部の構成と処理の概要について説明する。
k=128の場合、
m=128,R=11であるため、
k'=1408である。
m=128,R=13であるため、
k'=1664である。
(特性1)等価鍵が存在しないこと
なお、秘密鍵K0を入力したときの拡大鍵K0'と,秘密鍵K1(≠K0)を入力したときの拡大鍵K1'に対し、K0'=K1'が成り立つとき、K0とK1を等価鍵と呼ぶ。
一般的な攻撃は、ある固定された秘密鍵上での平文や暗号文間のデータの偏り(差分,線形性など)を利用したものであるのに対し、関連鍵攻撃では複数の秘密鍵上での平文や暗号文間データの偏りを利用するものである。
また、秘密鍵の差分を攻撃者が自由に選べるという強力な仮定を置く攻撃も存在する。この仮定の下でも安全性を達成していることが望ましい。
但し、(+)は排他的論理和演算子を表す。
よって、関連鍵差分攻撃は攻撃者が利用できる情報がより増えているため通常の差分攻撃よりさらに強力な攻撃となる。
例えば、秘密鍵K0を入力したときのラウンド鍵をRK1,RK2,…,RKRとし、秘密鍵K1を入力したときのラウンド鍵がRK2,RK3,…,RKR+1のように、スライドした値を取るとき、安全性が損なわれる可能性がある。
(特性4)実装が容易であること
(特性5)秘密鍵から拡大鍵を生成するセットアップ時間が短いこと
(特性6)on−the−flyで拡大鍵が生成できること
(特性7)暗号化鍵スケジュール部,復号鍵スケジュール部ができる限り共有可能であること
(特性8)データ暗号化部,データ復号部とできる限り共有可能であること
(特性9)秘密鍵長の変更に容易に対応できること
次に、鍵スケジュール部に対する攻撃とこれまでの対策例について説明する。
鍵スケジュール部は各種の共通鍵ブロック暗号毎に、様々な設計がなされている。
鍵スケジュール部の安全性、実装性能はデータ暗号化部と深い関連があるが、一般的にデータ暗号化部と同様に安全性と実装性能にはトレードオフがあると考えられている。
例えば、図13に示すように、ブロック暗号GOST(非特許文献5:GOST 28147−89: Encryption, Decryption, and Message Authentication Code (MAC) Algorithms, RFC 5830.)の鍵スケジュール部は、4n−bitの秘密鍵Kを(n/2)−bit毎、8つに等分割し、それぞれを順番にラウンド鍵とする構造になっている
秘密鍵K0から得られるラウンド鍵をRK01,RK02,…,RK0Rとし、秘密鍵K1から得られるラウンド鍵をRK11,RK12,…,RK1Rとする。このとき、秘密鍵K0と秘密鍵K1の差分を秘密鍵差分Δとし、各ラウンド鍵の差分をラウンド鍵差分Δ1,Δ2,…,ΔRとする。
同様に全てのラウンド関数において,(d,d)の差分が伝播していくため,暗号文差分が必ず(d,d)となる。
秘密鍵K(+)(d,d,d,d,d,d,d,d),
平文P(+)(d,d)、
を入力したときに得られる暗号文C'は確率1でC'=C(+)(d,d)となる。
しかしながら、KASUMIの鍵スケジュール部も高い実装性能を持つものの、関連鍵攻撃に対して脆弱であることが知られている。
以上のような問題点を鑑み,以下では、実装コストを増大させずに,関連鍵攻撃に対し安全性を得られるような置換型鍵スケジュール部の構成法について説明する。
(手法1)ラウンド鍵挿入位置の変更:ラウンド鍵を従来のF関数の前(例えば図14,図18に示す位置)ではなく、F関数の後で排他的論理和を取る(例えば図19,図20に示す位置)
(手法2)ラウンド鍵生成置換の変更:データ暗号化部の構造にしたがって,関連鍵攻撃等に対して安全になるような置換法を用いてラウンド鍵を生成する。
(効果1)高い実装性能
置換型鍵スケジュール部を用いることで従来型同様高い実装性能を持つことが期待される.特にハードウェア実装時の必要回路が少なくできるという利点がある。
(効果2)ラウンド鍵の挿入位置の変更による安全性向上
図19や図20に示す構成のように、ラウンド鍵をF関数の前でなく後に排他的論理和することで、置換型鍵スケジュール部を用いたとしても、従来法であるGOSTのような確率1で成功する関連鍵攻撃を防ぐことが可能となる。
また、実装手法によっては、データ暗号化部の実装性能をさらに向上させることにもつなげられる。
従来方式と異なり、分割した秘密鍵を順番に供給するのではなく、関連鍵攻撃耐性を持つように適切に順序を入れ替えて供給する。
この順序は秘密鍵Kのbit長と分割数、及び、データ暗号化部の構造に関連があり、データ暗号化部の構造毎に鍵スケジュール部を設計する必要がある。
図21に示す設定である。
秘密鍵Kは、2n−bitの鍵データである。
この2n−bit秘密鍵Kを4等分して4つのラウンド鍵K1,K2,K3,K4を生成する。
4つのラウンド鍵K1,K2,K3,K4は、(n/2)−bitの鍵データである。
この4つのラウンド鍵K1,K2,K3,K4を、4ラウンドを1単位として、各単位で異なるシーケンスで利用する。
ラウンドR1:ラウンド鍵K1
ラウンドR2:ラウンド鍵K2
ラウンドR3:ラウンド鍵K3
ラウンドR4:ラウンド鍵K4
ラウンドR5:ラウンド鍵K3
ラウンドR6:ラウンド鍵K1
ラウンドR7:ラウンド鍵K4
ラウンドR8:ラウンド鍵K2
ラウンドR9 :ラウンド鍵K4
ラウンドR10:ラウンド鍵K3
ラウンドR11:ラウンド鍵K2
ラウンドR12:ラウンド鍵K1
このように、4ラウンドを1単位として、各単位で異なるラウンド鍵入力シーケンスを適用する。
例えば、図22に示す構成である。
秘密鍵Kは、2n−bitの鍵データである。
この2n−bit秘密鍵Kを8等分して8つの鍵K1,K2,K3,K4,K5,K6,K7,K8を生成する。
8つの鍵K1〜K8は、(n/4)−bitの鍵データである。
この8つの鍵K1〜K8から選択した2つの鍵の連結データからなる(n/2)−bitラウンド鍵:KxKyを、4ラウンドを1単位として、各単位で異なるシーケンスで利用する。
ラウンドR1:ラウンド鍵K1K2
ラウンドR2:ラウンド鍵K3K4
ラウンドR3:ラウンド鍵K5K6
ラウンドR4:ラウンド鍵K7K8
ラウンドR5:ラウンド鍵K3K4
ラウンドR6:ラウンド鍵K2K7
ラウンドR7:ラウンド鍵K1K6
ラウンドR8:ラウンド鍵K5K8
ラウンドR9 :ラウンド鍵K2K7
ラウンドR10:ラウンド鍵K4K5
ラウンドR11:ラウンド鍵K3K6
ラウンドR12:ラウンド鍵K1K8
このように、4ラウンドを1単位として、各単位で異なるラウンド鍵入力シーケンスを適用する。
例えば図23に示す構成である。
秘密鍵Kは、4n−bitの鍵データである。
この4n−bit秘密鍵Kを8等分して8つのラウンド鍵K1,K2,K3,K4,K5,K6,K7,K8を生成する。
8つのラウンド鍵K1〜K8は、(n/2)−bitの鍵データである。
この8つのラウンド鍵K1〜K8を、8ラウンドを1単位として、各単位で異なるシーケンスで利用する。
ラウンドR1:ラウンド鍵K1
ラウンドR2:ラウンド鍵K2
ラウンドR3:ラウンド鍵K3
ラウンドR4:ラウンド鍵K4
ラウンドR5:ラウンド鍵K5
ラウンドR6:ラウンド鍵K6
ラウンドR7:ラウンド鍵K7
ラウンドR8:ラウンド鍵K8
ラウンドR9 :ラウンド鍵K2
ラウンドR10:ラウンド鍵K5
ラウンドR11:ラウンド鍵K1
ラウンドR12:ラウンド鍵K4
ラウンドR13:ラウンド鍵K8
ラウンドR14:ラウンド鍵K6
ラウンドR15:ラウンド鍵K3
ラウンドR16:ラウンド鍵K7
このように、8ラウンドを1単位として、各単位で異なるラウンド鍵入力シーケンスを適用する。
例えば図24に示す構成である。
秘密鍵Kは、2n−bitの鍵データである。
この2n−bit秘密鍵Kを8等分して8つのラウンド鍵K1,K2,K3,K4,K5,K6,K7,K8を生成する。
8つのラウンド鍵K1〜K8は、(n/4)−bitの鍵データである。
この8つのラウンド鍵K1〜K8から選択した2つのラウンド鍵を、4ラウンドを1単位として、各単位で異なるシーケンスで利用する。
ラウンドR1:ラウンド鍵K1と、ラウンド鍵K2
ラウンドR2:ラウンド鍵K3と、ラウンド鍵K4
ラウンドR3:ラウンド鍵K5と、ラウンド鍵K6
ラウンドR4:ラウンド鍵K7と、ラウンド鍵K8
ラウンドR5:ラウンド鍵K5と、ラウンド鍵K1
ラウンドR6:ラウンド鍵K2と、ラウンド鍵K6
ラウンドR7:ラウンド鍵K7と、ラウンド鍵K3
ラウンドR8:ラウンド鍵K4と、ラウンド鍵K8
ラウンドR9 :ラウンド鍵K7と、ラウンド鍵K5
ラウンドR10:ラウンド鍵K1と、ラウンド鍵K3
ラウンドR11:ラウンド鍵K4と、ラウンド鍵K2
ラウンドR12:ラウンド鍵K6と、ラウンド鍵K8
このように、4ラウンドを1単位として、各単位で異なるラウンド鍵入力シーケンスを適用する。
例えば図25に示す構成である。
秘密鍵Kは、2n−bitの鍵データである。
この2n−bit秘密鍵Kを8等分して8つのラウンド鍵K1,K2,K3,K4,K5,K6,K7,K8を生成する。
8つのラウンド鍵K1〜K8は、(n/4)−bitの鍵データである。
この8つのラウンド鍵K1〜K8から選択した2つのラウンド鍵を、4ラウンドを1単位として、各単位で異なるシーケンスで利用する。
この例では、K1〜K4のラウンド鍵を4系列Feistel構造における各ラウンドの左側のF関数に適用し、K5〜K8のラウンド鍵を4系列Feistel構造における各ラウンドの右側のF関数に適用する。
ラウンドR1:ラウンド鍵K1と、ラウンド鍵K5
ラウンドR2:ラウンド鍵K2と、ラウンド鍵K6
ラウンドR3:ラウンド鍵K3と、ラウンド鍵K7
ラウンドR4:ラウンド鍵K7と、ラウンド鍵K8
ラウンドR5:ラウンド鍵K2と、ラウンド鍵K5
ラウンドR6:ラウンド鍵K4と、ラウンド鍵K8
ラウンドR7:ラウンド鍵K1と、ラウンド鍵K6
ラウンドR8:ラウンド鍵K3と、ラウンド鍵K7
ラウンドR9 :ラウンド鍵K4と、ラウンド鍵K5
ラウンドR10:ラウンド鍵K3と、ラウンド鍵K7
ラウンドR11:ラウンド鍵K2と、ラウンド鍵K8
ラウンドR12:ラウンド鍵K1と、ラウンド鍵K6
このように、4ラウンドを1単位として、各単位で異なるラウンド鍵入力シーケンスを適用する。
ラウンド鍵:K1〜K4、
ラウンド鍵:K5〜K8、
これらの4つのラウンド鍵単位で入力順の入れ替えを行う。
この構成によって、置換型鍵スケジュール部に必要となるセレクタのコストをさらに削減することが可能になる。
このとき、
F関数に入力されるデータ系列をF関数入力側データ系列,
排他的論理和されるデータ系列を排他的論理和側データ系列、
とする。
各系列(各ライン)において転送されるn/dビットデータ各々について、さらにd/2個に再分割する(この際の分割は等分割でなくても良い)。
各系列(各ライン)各々でd/2個に再分割されたデータを次のルールにしたがって分配する。
(2)排他的論理和側データ系列は必ず次のラウンド関数のF関数入力側データ系列に分配する
(3)各d/2個に分割されたデータ系列はd/2箇所の次のラウンド関数のデータ系列にそれぞれ重複なく分配する
これを必要回数繰り返す。
具体的には、例えば、図25と同様の入れ替え手法である図27に示す構造が適している。
すなわち、秘密鍵を(n/4)−bit毎8等分した中で、4つを左側のF関数へのラウンド鍵RKr,0に用いるものとし、残りの4つを右側のF関数へのラウンド鍵RKr,1に用いる構成である。
秘密鍵Kは、2n−bitの鍵データである。
この2n−bit秘密鍵Kを8等分して8つのラウンド鍵K1,K2,K3,K4,K5,K6,K7,K8を生成する。
8つのラウンド鍵K1〜K8は、(n/4)−bitの鍵データである。
この8つのラウンド鍵K1〜K8から選択した2つのラウンド鍵を、4ラウンドを1単位として、各単位で異なるシーケンスで利用する。
この例では、K1〜K8のラウンド鍵から選択した2つのラウンド鍵を、cyclic shiftをround permutationに変更した4系列一般化Feistel+構造における各ラウンドの2つのF関数に適用する。
ラウンドR1:ラウンド鍵K1と、ラウンド鍵K5
ラウンドR2:ラウンド鍵K2と、ラウンド鍵K6
ラウンドR3:ラウンド鍵K3と、ラウンド鍵K7
ラウンドR4:ラウンド鍵K7と、ラウンド鍵K8
ラウンドR5:ラウンド鍵K2と、ラウンド鍵K5
ラウンドR6:ラウンド鍵K4と、ラウンド鍵K8
ラウンドR7:ラウンド鍵K1と、ラウンド鍵K6
ラウンドR8:ラウンド鍵K3と、ラウンド鍵K7
ラウンドR9 :ラウンド鍵K4と、ラウンド鍵K5
ラウンドR10:ラウンド鍵K3と、ラウンド鍵K7
ラウンドR11:ラウンド鍵K2と、ラウンド鍵K8
ラウンドR12:ラウンド鍵K1と、ラウンド鍵K6
このように、4ラウンドを1単位として、各単位で異なるラウンド鍵入力シーケンスを適用する。
例えば、秘密鍵が(5n/4)−bitであり、1ラウンドに必要なラウンド鍵が(n/2)−bitのときの鍵スケジュール部の構成法を図28に示す。
この構成では、初めに1ラウンドに必要なラウンド鍵のbit長の整数倍になるように置換と拡張を行う。その後は順番に供給していく構造を取る。
秘密鍵Kは、(5/4)n−bitの鍵データである。
まず、置換型鍵スケジュール部は、この(5/4)n−bitの鍵データに基づいて、ラウンド鍵のbit長に相当する5つのラウンド鍵K1,K2,K3,K4,K5を生成する。
このラウンド鍵K1〜K5から選択した2つのラウンド鍵を各ラウンドに適用するラウンド鍵として入力して2つのF関数に適用する。
ラウンドR1:ラウンド鍵K3と、ラウンド鍵K4
ラウンドR2:ラウンド鍵K1と、ラウンド鍵K2
ラウンドR3:ラウンド鍵K3と、ラウンド鍵K4
ラウンドR4:ラウンド鍵K5と、ラウンド鍵K5
ラウンドR5:ラウンド鍵K1と、ラウンド鍵K2
次の5ラウンド:R6〜R10、その後の5ラウンド:R11〜R15でも同様のシーケンスで2つのラウンド鍵を入力して適用する。
まず、差分確率,active F関数、最小active F関数数の定義を行う。
先の表1では、関連鍵差分攻撃に対する安全性を保証するために必要なactive F関数の個数が7個であるような暗号では、少なくとも28ラウンドが必要になる。
本開示に従った処理、すなわち、置換型鍵スケジュール部において、所定のラウンド単位で、入力鍵シーケンスを変更する処理を行う構成とすることで、従来法と比べて13ラウンド減らせることが分かる。
この構造に対して、ラウンド鍵を単純に順番に入れる従来法(図30)を採用した際の、関連鍵差分を考慮したラウンド数と最小active F関数数の対応は、前記の(表1)と同じ値を取る。
先の表1では、関連鍵差分攻撃に対する安全性を保証するために必要なactive F関数の個数が7個であるような暗号では、少なくとも28ラウンドが必要になる。
本開示に従った処理、すなわち、置換型鍵スケジュール部において、所定のラウンド単位で、入力鍵シーケンスを変更する処理を行う構成とすることで、従来法と比べて13ラウンド減らせることが分かる。
次に、鍵置換型鍵スケジュール部の様々な構成例(バリエーション)について説明する。
従って、1ラウンド辺り、合計で、
(n/d)×(d/2)
=(n/2)−bitのラウンド鍵データが必要となる。
各ラウンド単位で、(n/4)−bitのラウンド鍵を2つずつ入力する必要がある。
秘密鍵がn−bitの場合には、例えば図32に示すように、n−bit秘密鍵を4等分したn/4−bitのラウンド鍵を生成して各ラウンドに2つずつ入力する。
秘密鍵が(5/4)n−bitの場合には、例えば図33、図34に示すように、n−bit秘密鍵を5等分したn/4−bitのラウンド鍵を生成して各ラウンドに2つずつ入力する。
図32に示すラウンド鍵の供給処理について説明する。
秘密鍵Kは、n−bitの鍵データである。
このn−bit秘密鍵Kを4等分して4つのラウンド鍵K1,K2,K3,K4を生成する。
4つのラウンド鍵K1,K2,K3,K4は、(n/4)−bitの鍵データである。
この4つのラウンド鍵K1,K2,K3,K4を、4ラウンドを1単位として、各単位で異なるシーケンスで利用する。
ラウンドR1:ラウンド鍵K1と、ラウンド鍵K2
ラウンドR2:ラウンド鍵K3と、ラウンド鍵K4
ラウンドR3:ラウンド鍵K3と、ラウンド鍵K1
ラウンドR4:ラウンド鍵K4と、ラウンド鍵K2
ラウンドR5:ラウンド鍵K4と、ラウンド鍵K3
ラウンドR6:ラウンド鍵K2と、ラウンド鍵K1
ラウンドR7:ラウンド鍵K2と、ラウンド鍵K4
ラウンドR8:ラウンド鍵K1と、ラウンド鍵K3
ラウンドR9 :ラウンド鍵K1と、ラウンド鍵K2
ラウンドR10:ラウンド鍵K3と、ラウンド鍵K4
秘密鍵Kは、(5/4)n−bitの鍵データである。
まず、置換型鍵スケジュール部は、この(5/4)n−bitの鍵データに基づいて、ラウンド鍵のbit長に相当する5つのラウンド鍵K1,K2,K3,K4,K5を生成する。
このラウンド鍵K1〜K5から選択した2つのラウンド鍵を各ラウンドに適用するラウンド鍵として入力して2つのF関数に適用する。
ラウンドR1:ラウンド鍵K1と、ラウンド鍵K2
ラウンドR2:ラウンド鍵K3と、ラウンド鍵K4
ラウンドR3:ラウンド鍵K5と、ラウンド鍵K5
ラウンドR4:ラウンド鍵K2と、ラウンド鍵K3
ラウンドR5:ラウンド鍵K3と、ラウンド鍵K4
次の5ラウンド:R6〜R10でも同様のシーケンスで2つのラウンド鍵を入力して適用する。
すなわち、いずれも、K1,K2,K3,K4,K5,K5,K5,K1,K2,K3・・・この順番で鍵の供給が行われる。
このように、置換型鍵スケジュール部の鍵供給処理において、例えばmラウンドにm'(>1)回の鍵置換が必要な設定では、2回目以降の鍵置換を行わず、鍵の選択順序を変更する処理を行う構成としてもよい。
例えば、図33に示す鍵供給処理シーケンスと、図34に示す鍵供給処理シーケンスは、全く同じとなる。
すなわち、最初の5ラウンド:R1〜R5では以下のシーケンスで2つのラウンド鍵を入力して適用する。
ラウンドR1:ラウンド鍵K1と、ラウンド鍵K2
ラウンドR2:ラウンド鍵K3と、ラウンド鍵K4
ラウンドR3:ラウンド鍵K5と、ラウンド鍵K5
ラウンドR4:ラウンド鍵K2と、ラウンド鍵K3
ラウンドR5:ラウンド鍵K3と、ラウンド鍵K4
次の5ラウンド:R6〜R10でも同様のシーケンスで2つのラウンド鍵を入力して適用する。
すなわち、最初の4ラウンド:R1〜R4では以下のシーケンスで2つのラウンド鍵を入力して適用する。
ラウンドR1:ラウンド鍵K1と、ラウンド鍵K2
ラウンドR2:ラウンド鍵K3と、ラウンド鍵K4
ラウンドR3:ラウンド鍵K5と、ラウンド鍵K6
ラウンドR4:ラウンド鍵K7と、ラウンド鍵K8
ラウンドR5:ラウンド鍵K5と、ラウンド鍵K1
ラウンドR6:ラウンド鍵K2と、ラウンド鍵K6
ラウンドR7:ラウンド鍵K7と、ラウンド鍵K3
ラウンドR8:ラウンド鍵K4と、ラウンド鍵K8
ラウンドR9 :ラウンド鍵K7と、ラウンド鍵K5
ラウンドR10:ラウンド鍵K1と、ラウンド鍵K3
ラウンドR11:ラウンド鍵K4と、ラウンド鍵K2
ラウンドR12:ラウンド鍵K6と、ラウンド鍵K8
このように、図24を参照して説明したラウンド鍵供給構成と、図35に示す鍵供給処理シーケンスは、4ラウンドを1単位として、各単位で異なるラウンド鍵入力シーケンスを適用した構成となる。
先に図24を参照して説明した構成では、鍵の長さが2n−bitで8等分する場合、4ラウンド毎に同じ態様の鍵置換を行っている。
これに対して、例えば、図36に示すように、4ラウンド単位で実行する置換処理を毎回異なる態様に設定してもよい。
ラウンドR1:ラウンド鍵K1と、ラウンド鍵K2
ラウンドR2:ラウンド鍵K3と、ラウンド鍵K4
ラウンドR3:ラウンド鍵K5と、ラウンド鍵K6
ラウンドR4:ラウンド鍵K7と、ラウンド鍵K8
ラウンドR5:ラウンド鍵K5と、ラウンド鍵K1
ラウンドR6:ラウンド鍵K2と、ラウンド鍵K6
ラウンドR7:ラウンド鍵K7と、ラウンド鍵K3
ラウンドR8:ラウンド鍵K4と、ラウンド鍵K8
ラウンドR9 :ラウンド鍵K8と、ラウンド鍵K5
ラウンドR10:ラウンド鍵K7と、ラウンド鍵K3
ラウンドR11:ラウンド鍵K1と、ラウンド鍵K2
ラウンドR12:ラウンド鍵K4と、ラウンド鍵K6
図24に示す設定では置換型鍵スケジュール部の実行する鍵置換、すなわち鍵入れ替え処理を4ラウンド単位で同じ設定で実行する構成であるが、図36に示す構成では、置換型鍵スケジュール部の実行する鍵置換、すなわち鍵入れ替え処理を4ラウンド単位で異なる設定で実行しているからである。
上記のように、図24や、図36に示す構成では、4ラウンドに8等分した8個の鍵を1つずつ入力している。
図38に示すように、3ラウンド毎に置換を行い3ラウンドに6個のみを利用する構成も可能である。
ラウンドR1:ラウンド鍵K1と、ラウンド鍵K2
ラウンドR2:ラウンド鍵K3と、ラウンド鍵K4
ラウンドR3:ラウンド鍵K5と、ラウンド鍵K6
ラウンドR4:ラウンド鍵K7と、ラウンド鍵K3
ラウンドR5:ラウンド鍵K8と、ラウンド鍵K1
ラウンドR6:ラウンド鍵K2と、ラウンド鍵K4
ラウンドR7:ラウンド鍵K6と、ラウンド鍵K8
ラウンドR8:ラウンド鍵K5と、ラウンド鍵K7
ラウンドR9:ラウンド鍵K3と、ラウンド鍵K1
ラウンドR10:ラウンド鍵K4と、ラウンド鍵K5
ラウンドR11:ラウンド鍵K2と、ラウンド鍵K6
ラウンドR12:ラウンド鍵K8と、ラウンド鍵K7
この例では、3ラウンド単位で、同一パターンの鍵置換を繰り返す構成としている。
本開示のラウンド鍵の供給方式は従来方式と同様、置換型鍵スケジュール部による処理として実行するものであるため、実装効率が高い。
例えば、図40に示すように、ラウンド鍵の生成元となる秘密鍵Kの長さが2n−bitのとき、ラウンド毎に鍵を8等分した鍵K1〜K8のうちの2つのラウンド鍵を選択する。
K1,K2,K3,K4
K5,K6,K7,K8
これらの4つのラウンド鍵のグループを2つ設定し、
これらの各グループ単位で、所定ラウンド数単位の鍵置換、すなわち鍵供給シーケンスの変更を行う構成とすることで、ある実装形態において実装効率をさらに高めることができる。
K1,K2,K3,K4
K5,K6,K7,K8
これらの各ラウンド鍵のグループからの出力鍵の選択を実行する構成とする。
具体的には、図42に示すように、
(5/4)nビットの秘密鍵Kから、n/4ビットのラウンド鍵K1,K2,K,K4,K5を生成し、
第1のセレクタが、K1,K2,K3を対象とした鍵選択を実行し、第2のセレクタが、K3,K4,K5を対象とした鍵選択を実行する構成である。
最後に、上述した実施例に従った暗号処理を実行する暗号処理装置の実相例について説明する。
上述した実施例に従った暗号処理を実行する暗号処理装置は、暗号処理を実行する様々な情報処理装置に搭載可能である。具体的には、PC、TV、レコーダ、プレーヤ、通信機器、さらに、RFID、スマートカード、センサネットワーク機器、デンチ/バッテリー認証モジュール、健康、医療機器、自立型ネットワーク機器等、例えばデータ処理や通信処理に伴う暗号処理を実行する様々な危機において利用可能である。
暗号化処理、復号処理、双方の処理において、上述した実施例において説明した構成を適用することが可能である。
以上、特定の実施例を参照しながら、本開示の実施例について詳解してきた。しかしながら、本開示の要旨を逸脱しない範囲で当業者が実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本開示の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
(1) データ処理対象となるデータの構成ビットを複数のラインに分割して入力し、各ラインのデータに対してラウンド関数を適用したデータ変換処理をラウンド演算として繰り返して実行する暗号処理部と、
前記暗号処理部のラウンド演算実行部に対して、ラウンド鍵を出力する鍵スケジュール部を有し、
前記鍵スケジュール部は、
予め保持する秘密鍵を複数個に分割して複数のラウンド鍵またはラウンド鍵構成データを生成する置換型鍵スケジュール部であり、
前記暗号処理部において順次実行するラウンド演算実行部に対して、前記複数のラウンド鍵、または前記ラウンド鍵構成データを結合して生成した複数のラウンド鍵を一定のシーケンスの繰り返しとならない設定で出力する暗号処理装置。
(3)前記暗号処理部は、前記複数のラインに分割されたデータを入力して非線形変換処理と、線形変換処理を含むF関数実行部と、前記F関数実行部の出力に対して、前記ラウンド鍵を適用した演算を実行する演算部を有する前記(1)または(2)に記載の暗号処理装置。
(5)前記鍵スケジュール部は、予め保持する秘密鍵を複数個に分割して前記ラウンド演算実行部に入力するラウンド鍵より少ないビット数を持つ複数のラウンド鍵構成データを生成し、前記複数のラウンド鍵構成データを複数連結して前記ラウンド演算実行部に入力するラウンド鍵と同一ビット数のラウンド鍵を生成する前記(1)〜(4)いずれかに記載の暗号処理装置。
(7)前記鍵スケジュール部は、前記ラウンド演算実行部に対する鍵の選択供給処理を行う1以上のセレクタを有する記(1)〜(6)いずれかに記載の暗号処理装置。
(9)前記鍵スケジュール部は、前記グループ単位のセレクタを有する記(1)〜(8)いずれかに記載の暗号処理装置。
(10)前記暗号処理部は、入力データとしての平文を暗号文に変換する暗号化処理、または、入力データとしての暗号文を平文に変換する復号処理を実行する記(1)〜(9)いずれかに記載の暗号処理装置。
具体的には、データ処理対象となるデータの構成ビットを複数のラインに分割して入力し、各ラインのデータに対してラウンド関数を適用したデータ変換処理をラウンド演算として繰り返して実行する暗号処理部と、暗号処理部のラウンド演算実行部に対して、ラウンド鍵を出力する鍵スケジュール部を有し、鍵スケジュール部は、予め保持する秘密鍵を複数個に分割して複数のラウンド鍵を生成する置換型鍵スケジュール部であり、暗号処理部において順次実行するラウンド演算実行部に対して、生成した複数のラウンド鍵を一定のシーケンスの繰り返しとならない設定で出力する。本構成により、例えば関連鍵攻撃等に対する耐性の高い安全性の高い暗号処理構成が実現される。
701 CPU(Central processing Unit)
702 メモリ
703 暗号処理部
704 乱数生成部
705 送受信部
Claims (15)
- データ処理対象となるデータの構成ビットを複数のラインに分割して入力し、各ラインのデータに対してラウンド関数を適用したデータ変換処理をラウンド演算として繰り返して実行する暗号処理部と、
前記暗号処理部のラウンド演算実行部に対して、ラウンド鍵を出力する鍵スケジュール部を有し、
前記鍵スケジュール部は、
予め保持する秘密鍵を複数個に分割して複数のラウンド鍵またはラウンド鍵構成データを生成する置換型鍵スケジュール部であり、
前記暗号処理部において順次実行するラウンド演算実行部に対して、前記複数のラウンド鍵、または前記ラウンド鍵構成データを結合して生成した複数のラウンド鍵を一定のシーケンスの繰り返しとならない設定で出力し、
前記複数のラウンド鍵または前記ラウンド鍵構成データを区分した複数のグループを設定し、前記ラウンド演算実行部に対する鍵供給シーケンスを、各グループごとに設定して鍵供給制御を行う暗号処理装置。 - 前記鍵スケジュール部は、
前記ラウンド演算実行部に対する前記複数のラウンド鍵の入力シーケンスを、前記ラウンド演算実行部における複数ラウンド単位で変更する請求項1に記載の暗号処理装置。 - 前記暗号処理部は、
前記複数のラインに分割されたデータを入力して非線形変換処理と、線形変換処理を含むF関数実行部と、
前記F関数実行部の出力に対して、前記ラウンド鍵を適用した演算を実行する演算部を有する請求項1に記載の暗号処理装置。 - 前記鍵スケジュール部は、
予め保持する秘密鍵を複数個に分割して前記ラウンド演算実行部に入力するラウンド鍵と同一のビット数を持つ複数のラウンド鍵を生成する請求項1に記載の暗号処理装置。 - 前記鍵スケジュール部は、
予め保持する秘密鍵を複数個に分割して前記ラウンド演算実行部に入力するラウンド鍵より少ないビット数を持つ複数のラウンド鍵構成データを生成し、
前記複数のラウンド鍵構成データを複数連結して前記ラウンド演算実行部に入力するラウンド鍵と同一ビット数のラウンド鍵を生成する請求項1に記載の暗号処理装置。 - 前記鍵スケジュール部は、
前記暗号処理部において順次実行するラウンド演算実行部に対して、ラウンド演算実行部において適用する複数のラウンド鍵を並列出力する請求項1に記載の暗号処理装置。 - 前記鍵スケジュール部は、
前記ラウンド演算実行部に対する鍵の選択供給処理を行なう1以上のセレクタを有する請求項1に記載の暗号処理装置。 - 前記鍵スケジュール部は、前記グループ各々に対応する個別のセレクタを有する請求項1に記載の暗号処理装置。
- 前記暗号処理部は、
入力データとしての平文を暗号文に変換する暗号化処理、または、
入力データとしての暗号文を平文に変換する復号処理を実行する請求項1に記載の暗号処理装置。 - 前記暗号処置装置は、前記暗号処理部と前記鍵スケジュール部から構成される一般化Feistel構造をもつ、請求項1に記載の暗号処理装置。
- 前記暗号処置装置は、前記暗号処理部と前記鍵スケジュール部から構成される4系列一般化Feistel構造をもつ、請求項1に記載の暗号処理装置。
- 前記暗号処置装置は、前記暗号処理部と前記鍵スケジュール部から構成されるType−2一般化Feistel構造をもつ、請求項1に記載の暗号処理装置。
- プログラムを実行するプロセッサと、
前記プログラムを格納するメモリと、
データ処理対象となるデータの構成ビットを複数のラインに分割して入力し、各ラインのデータに対してラウンド関数を適用したデータ変換処理をラウンド演算として繰り返して実行する暗号処理部と、
前記暗号処理部のラウンド演算実行部に対して、ラウンド鍵を出力する鍵スケジュール部を有し、
前記鍵スケジュール部は、
予め保持する秘密鍵を複数個に分割して複数のラウンド鍵またはラウンド鍵構成データを生成する置換型鍵スケジュール部であり、
前記暗号処理部において順次実行するラウンド演算実行部に対して、前記複数のラウンド鍵、または前記ラウンド鍵構成データを結合して生成した複数のラウンド鍵を一定のシーケンスの繰り返しとならない設定で出力するし、
前記複数のラウンド鍵または前記ラウンド鍵構成データを区分した複数のグループを設定し、前記ラウンド演算実行部に対する鍵供給シーケンスを、各グループごとに設定して鍵供給制御を行う情報処理装置。 - 暗号処理装置において実行する暗号処理方法であり、
暗号処理部が、データ処理対象となるデータの構成ビットを複数のラインに分割して入力し、各ラインのデータに対してラウンド関数を適用したデータ変換処理をラウンド演算として繰り返して実行する暗号処理ステップと、
鍵スケジュール部が、前記暗号処理部のラウンド演算実行部に対して、ラウンド鍵を出力する鍵スケジューリングステップを実行し、
前記鍵スケジュール部は、
予め保持する秘密鍵を複数個に分割して複数のラウンド鍵またはラウンド鍵構成データを生成する置換型鍵スケジュール部であり、
前記暗号処理部において順次実行するラウンド演算実行部に対して、前記複数のラウンド鍵、または前記ラウンド鍵構成データを結合して生成した複数のラウンド鍵を一定のシーケンスの繰り返しとならない設定で出力し、
前記複数のラウンド鍵または前記ラウンド鍵構成データを区分した複数のグループを設定し、前記ラウンド演算実行部に対する鍵供給シーケンスを、各グループごとに設定して鍵供給制御を行う暗号処理方法。 - 暗号処理装置において暗号処理を実行させるプログラムであり、
暗号処理部に、データ処理対象となるデータの構成ビットを複数のラインに分割して入力し、各ラインのデータに対してラウンド関数を適用したデータ変換処理をラウンド演算として繰り返して実行させる暗号処理ステップと、
鍵スケジュール部に、前記暗号処理部のラウンド演算実行部に対して、ラウンド鍵を出力する鍵スケジューリングステップを実行させ、
前記鍵スケジュール部は、予め保持する秘密鍵を複数個に分割して複数のラウンド鍵またはラウンド鍵構成データを生成する置換型鍵スケジュール部であり、
前記鍵スケジュール部に、前記暗号処理部において順次実行するラウンド演算実行部に対して、前記複数のラウンド鍵、または前記ラウンド鍵構成データを結合して生成した複数のラウンド鍵を一定のシーケンスの繰り返しとならない設定で出力させ、
前記複数のラウンド鍵または前記ラウンド鍵構成データを区分した複数のグループを設定し、前記ラウンド演算実行部に対する鍵供給シーケンスを、各グループごとに設定して鍵供給制御を行わせるプログラム。
Priority Applications (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011207705A JP5682527B2 (ja) | 2011-03-28 | 2011-09-22 | 暗号処理装置、および暗号処理方法、並びにプログラム |
BR112013024231A BR112013024231A2 (pt) | 2011-03-28 | 2012-02-20 | dispositivo e método de processamento de criptografia, programa, e, dispositivo de processamento de informação |
CN201280014184.6A CN103621007A (zh) | 2011-03-28 | 2012-02-20 | 加密处理装置、加密处理方法和程序 |
RU2013142993/08A RU2013142993A (ru) | 2011-03-28 | 2012-02-20 | Устройство обработки шифрования, способ обработки шифрования и программа |
EP12765375.6A EP2693684B1 (en) | 2011-03-28 | 2012-02-20 | Encryption processing device, encryption processing method, and programme |
US14/002,462 US9270458B2 (en) | 2011-03-28 | 2012-02-20 | Encryption processing device, encryption processing method, and program |
PCT/JP2012/053933 WO2012132623A1 (ja) | 2011-03-28 | 2012-02-20 | 暗号処理装置、および暗号処理方法、並びにプログラム |
TW101105914A TW201251412A (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 |
---|---|---|---|
JP2011069185 | 2011-03-28 | ||
JP2011069185 | 2011-03-28 | ||
JP2011207705A JP5682527B2 (ja) | 2011-03-28 | 2011-09-22 | 暗号処理装置、および暗号処理方法、並びにプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012215816A JP2012215816A (ja) | 2012-11-08 |
JP5682527B2 true JP5682527B2 (ja) | 2015-03-11 |
Family
ID=46930384
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011207705A Expired - Fee Related JP5682527B2 (ja) | 2011-03-28 | 2011-09-22 | 暗号処理装置、および暗号処理方法、並びにプログラム |
Country Status (8)
Country | Link |
---|---|
US (1) | US9270458B2 (ja) |
EP (1) | EP2693684B1 (ja) |
JP (1) | JP5682527B2 (ja) |
CN (1) | CN103621007A (ja) |
BR (1) | BR112013024231A2 (ja) |
RU (1) | RU2013142993A (ja) |
TW (1) | TW201251412A (ja) |
WO (1) | WO2012132623A1 (ja) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5871827B2 (ja) * | 2013-01-11 | 2016-03-01 | 日本電信電話株式会社 | 安全性強化システム、安全性強化装置、検証装置、およびプログラム |
KR101516574B1 (ko) * | 2014-02-21 | 2015-05-04 | 한국전자통신연구원 | 형태보존 암호화를 위한 가변길이 블록암호 장치 및 방법 |
WO2015142765A1 (en) | 2014-03-17 | 2015-09-24 | Coinbase, Inc | Bitcoin host computer system |
US9515818B2 (en) * | 2014-09-16 | 2016-12-06 | Apple Inc. | Multi-block cryptographic operation |
US9735958B2 (en) * | 2015-05-19 | 2017-08-15 | Coinbase, Inc. | Key ceremony of a security system forming part of a host computer for cryptographic transactions |
RU2675435C1 (ru) * | 2016-02-25 | 2018-12-20 | Федеральное государственное казенное военное образовательное учреждение высшего образования "Военный учебно-научный центр Военно-Морского Флота "Военно-морская академия имени Адмирала флота Советского Союза Н.Г. Кузнецова" | Устройство аппаратурного шифрования и передачи данных в локальных сетях |
US20180150836A1 (en) * | 2016-11-29 | 2018-05-31 | Ca, Inc. | Generating tokens dynamically using payment keys |
US11218240B2 (en) * | 2017-06-27 | 2022-01-04 | Mitsubishi Electric Corporation | Code generation apparatus, code generation method, and computer readable medium |
US11269993B2 (en) * | 2017-08-10 | 2022-03-08 | Sony Corporation | Encryption device, encryption method, decryption device, and decryption method |
US20190318356A1 (en) * | 2018-04-17 | 2019-10-17 | Coinbase, Inc. | Offline storage system and method of use |
KR102091611B1 (ko) * | 2018-06-11 | 2020-03-20 | 엘지전자 주식회사 | 이동단말기 |
EP3617928B1 (de) * | 2018-08-28 | 2021-01-27 | Siemens Aktiengesellschaft | Verfahren zum speichern von schlüsseldaten in einem elektronischen bauteil |
US11394543B2 (en) | 2018-12-13 | 2022-07-19 | Coinbase, Inc. | System and method for secure sensitive data storage and recovery |
EP4007983A4 (en) | 2019-08-01 | 2023-08-30 | Coinbase, Inc. | SYSTEMS AND METHODS FOR GENERATING SIGNATURES |
WO2021076868A1 (en) * | 2019-10-16 | 2021-04-22 | Coinbase, Inc. | Systems and methods for re-using cold storage keys |
JP7572922B2 (ja) | 2021-08-03 | 2024-10-24 | Kddi株式会社 | 暗号化装置、暗号化方法及び暗号化プログラム |
Family Cites Families (8)
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 |
US7391865B2 (en) * | 1999-09-20 | 2008-06-24 | Security First Corporation | Secure data parser method and system |
JP4561252B2 (ja) * | 2004-09-03 | 2010-10-13 | ソニー株式会社 | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
KR101226167B1 (ko) * | 2004-10-28 | 2013-01-24 | 이르데토 코포레이트 비.브이. | 암호 함수 모호화 방법 및 시스템 |
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 | ソニー株式会社 | 暗号処理装置、暗号処理アルゴリズム構築方法、および暗号処理方法、並びにコンピュータ・プログラム |
JP5055993B2 (ja) * | 2006-12-11 | 2012-10-24 | ソニー株式会社 | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
-
2011
- 2011-09-22 JP JP2011207705A patent/JP5682527B2/ja not_active Expired - Fee Related
-
2012
- 2012-02-20 BR BR112013024231A patent/BR112013024231A2/pt not_active Application Discontinuation
- 2012-02-20 US US14/002,462 patent/US9270458B2/en not_active Expired - Fee Related
- 2012-02-20 RU RU2013142993/08A patent/RU2013142993A/ru unknown
- 2012-02-20 CN CN201280014184.6A patent/CN103621007A/zh active Pending
- 2012-02-20 WO PCT/JP2012/053933 patent/WO2012132623A1/ja active Application Filing
- 2012-02-20 EP EP12765375.6A patent/EP2693684B1/en not_active Not-in-force
- 2012-02-22 TW TW101105914A patent/TW201251412A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2012132623A1 (ja) | 2012-10-04 |
CN103621007A (zh) | 2014-03-05 |
EP2693684A1 (en) | 2014-02-05 |
EP2693684A4 (en) | 2015-03-25 |
US9270458B2 (en) | 2016-02-23 |
US20130343546A1 (en) | 2013-12-26 |
TW201251412A (en) | 2012-12-16 |
BR112013024231A2 (pt) | 2016-12-20 |
EP2693684B1 (en) | 2018-11-07 |
JP2012215816A (ja) | 2012-11-08 |
RU2013142993A (ru) | 2015-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5682527B2 (ja) | 暗号処理装置、および暗号処理方法、並びにプログラム | |
US8165288B2 (en) | Cryptographic processing apparatus and cryptographic processing method, and computer program | |
US7039184B2 (en) | Encryption/decryption unit and storage medium | |
JP4961909B2 (ja) | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム | |
JP5402632B2 (ja) | 共通鍵ブロック暗号化装置、共通鍵ブロック暗号化方法及びプログラム | |
JP5050454B2 (ja) | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム | |
US8396210B2 (en) | Cryptographic processing apparatus and cryptographic processing method, and computer program | |
JP2008058830A (ja) | データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム | |
JP5682525B2 (ja) | 暗号処理装置、および暗号処理方法、並びにプログラム | |
TWI595460B (zh) | Data processing device, information processing device, data processing method and program | |
JP5704159B2 (ja) | ブロック暗号化装置、ブロック復号装置、ブロック暗号化方法、ブロック復号方法及びプログラム | |
JP5680016B2 (ja) | 復号処理装置、情報処理装置、および復号処理方法、並びにコンピュータ・プログラム | |
JP5772934B2 (ja) | データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム | |
JP6292107B2 (ja) | 暗号処理装置、および暗号処理方法、並びにプログラム | |
JP5338945B2 (ja) | 復号処理装置、情報処理装置、および復号処理方法、並びにコンピュータ・プログラム | |
JP5223245B2 (ja) | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
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: 5682527 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 |