JP2017531209A - 回転ベース暗号 - Google Patents
回転ベース暗号 Download PDFInfo
- Publication number
- JP2017531209A JP2017531209A JP2017518094A JP2017518094A JP2017531209A JP 2017531209 A JP2017531209 A JP 2017531209A JP 2017518094 A JP2017518094 A JP 2017518094A JP 2017518094 A JP2017518094 A JP 2017518094A JP 2017531209 A JP2017531209 A JP 2017531209A
- Authority
- JP
- Japan
- Prior art keywords
- value
- state
- state value
- rotated
- rotation
- 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.)
- Pending
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
-
- 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]
-
- 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/04—Masking or blinding
- H04L2209/046—Masking or blinding of operations, operands or results of the operations
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
- Executing Machine-Instructions (AREA)
Abstract
Description
本出願は、その内容全体が参照により本明細書に組み込まれる、2014年10月10日に米国特許商標庁に出願された仮出願第62/062,306号、および2015年2月6日に米国特許商標庁に出願された非仮出願第14/616,110号の優先権および利益を主張する。
本開示は、いくつかの態様では、回転ベース暗号に関する。いくつかの態様では、そのような回転ベース暗号は、ソフトウェア(ならびに、ハードウェア)において効率的に実装され得、キャッシュタイミング攻撃への耐性(サイドチャネル耐性)があり得る。いくつかの態様では、そのような暗号は、極めて小さいコードフットプリントを用いて実装され得る。たとえば、Intel(登録商標)x64プロセッサ上では、そのような暗号は、いくつかの実装形態では、100バイト未満において、および/または25未満の機械語命令において実装され得る。回転ベース暗号の2つの例について、以下で詳細に説明する。
第1の例では、暗号は、以下の演算を中心として設計された単一のラウンドを繰り返すことによって取得される。
state = state XOR wide-s-box(state AND 0xF) 式1
state = state XOR key_i 式2
state = ROR(state, 4) 式3
sbox := S[15] | S[14] | S[13] | ... | S[2] | S[1] | S[0]、式4
S[v] = ( sbox >> (v * 4) ) AND 0xF 式5
式6
wide-s-box(v) = ROR(sbox,v*4) (したがって、S[v] = wide-s-box(v) AND 0xF)
state = state XOR wide-s-box(state AND 0xF) 式7
式8
state = state XOR (wide-s-box(state AND 0xF) AND 0xFFFFFFFFFFFFFFF0)
式9
Mask = 0xFFFFFFFFFFFFFFF0ULL
void paul_encrypt(uint64_t * ciphertext, uint64_t plaintext, uint64_t key)
{
int i;
uint64_t state, boxvalue;
int shift;
state = plaintext;
for (i = 0; i <= ROUNDS - 1; i++)
{
state = state XOR key_i //鍵混合
index = state & 0xF //状態の最下位4ビットからSボックスを選択する
boxvalue = sbox >>> (index*4)
state = state XOR (boxvalue AND Mask) //置換および拡散
if (i <> ROUNDS-1)
state = state >>> 4 //状態を回転させる
}
state = state XOR key_ROUNDS //出力白色化(最後の鍵混合)
* ciphertext = state;
}
式10
#define ROR64(x,b) (((x) >> (b)) | ((x) << (64-(b))))
#define MASK 0xFFFFFFFFFFFFFFF0
const uint64_t sbox = 0x3F41B87D026C59EA ULL
state ^= key[i];
state ^= ROR(sbox, (state & 0xF) << 2) & MASK;
state = ROR(state, 4);
ただし、^=はXOR演算であり、RORは右回転演算であり、&はAND演算であり、<<はビット左シフト演算であり、stateは状態504に対応し、sboxはテーブル520であり、MASKはマスク524に対応し、keyは暗号鍵である。
従来のテーブルルックアップとは対照的に、本明細書で開示する回転ベース暗号は、データロード命令のための秘密暗号状態インデックスを使用する必要がない。したがって、暗号のデータキャッシュフットプリントは、暗号状態に依存する必要がない。したがって、この設計は、キャッシュタイミング攻撃に対する自然免疫を有する。
図5の回転ベース暗号500の逆は、逆順であることを除いて、暗号500と同様の演算を実行する。たとえば、そのような逆暗号は、暗号500によって生成された暗号文を解読するために使用され得る。別の例として、逆暗号が、平文を暗号化するために使用され得、暗号500が、得られた暗号文を解読するために使用され得る。
式11
Mask = 0xFFFFFFFFFFFFFFF0ULL
void paul_decrypt(uint64_t ciphertext, uint64_t * plaintext, uint64_t key)
{
int i;
uint64_t state, boxvalue;
int shift;
state = ciphertext;
state = state XOR key_ROUNDS //初期鍵混合
for (i = ROUNDS-1; I >= 0; i--)
{
if (i <> ROUNDS - 1)
state = state <<< 4 //回転させる
index = state & 0xF //状態の最下位4ビットからSボックスを選択する
boxvalue = sbox >>> (index*4)
state = state XOR (boxvalue AND Mask)
state = state XOR key_i //鍵混合
}
* plaintext = state;
}
式12
#define ROL64(x,b) (((x) << (b)) | ((x) >> (64-(b))))
#define MASK 0xFFFFFFFFFFFFFFF0
const uint64_t sbox = 0x3F41B87D026C59EA ULL
state = ROL(state, 4);
state ^= ROR(sbox, (state & 0xF) << 2) & MASK;
state ^= key[i];
ただし、^=はXOR演算であり、ROLは左回転演算であり、RORは右回転演算であり、&はAND演算であり、<<はビット左シフト演算であり、stateは状態504に対応し、sboxはテーブル520であり、MASKはマスク524に対応し、keyは暗号鍵である。
値(たとえば、ストリング、テーブルなど)の同じタイプの回転を使用して、幅広いSボックスを作成する暗号の第2の例では、値を状態に混合するとき、マスキングが採用されない。この暗号は、フェイステルネットワークではない。この例では、暗号の逆はより複雑であり、その理由は、(上記で説明したように)最下位ニブルが修正されるからである、
new-state[3..0] = state[3..0] XOR S([state[3..0]) 式13
式14
Mask = 0xFFFFFFFFFFFFFFF0ULL
MASQ = 0xFEDCBA9876543210ULL
sbox = (MASQ XOR tbox)
tbox= 0xc19d02e574386bfaULL
tinv = 0x19cf20d473865aebULL
void paul_encrypt(uint64_t * ciphertext, uint64_t plaintext, uint64_t key)
{
int i;
uint64_t state, boxvalue;
int shift;
state = plaintext;
for (i = 0; i <= ROUNDS - 1; i++)
{
state = state XOR key_i //鍵混合
index = state & 0xF //状態の最下位4ビットからSボックスを選択する
boxvalue = sbox >>> (index*4)
state = state XOR boxvalue //置換および拡散
if (i <> ROUNDS - 1)
state = state >>> 4 //回転させる
}
state = state XOR key_i //出力白色化
* ciphertext = state;
}
式15
#define ROR64(x,b) (((x) >> (b)) | ((x) << (64-(b))))
const uint64_t sbox = 0x3F41B87D026C59EA ULL
state ^= key[i];
state ^= ROR(sbox, (state & 0xF) << 2);
state = ROR(state, 4);
ただし、^=はXOR演算であり、RORは右回転演算であり、&はAND演算であり、<<はビット左シフト演算であり、stateは状態604に対応し、sboxはテーブル620であり、keyは暗号鍵である。
図6の回転ベース暗号600の逆は、上記で説明したようにSボックスTを使用しながら、逆順であることを除いて、暗号600と同様の演算を実行する。そのような逆暗号は、たとえば、暗号600によって生成された暗号文を解読するために使用され得る。別の例として、逆暗号が、平文を暗号化するために使用され得、暗号600が、得られた暗号文を解読するために使用され得る。
式16
void paul2_decrypt(uint64_t ciphertext, uint64_t * plaintext, uint64_t key)
{
int i;
uint64_t state, boxvalue;
int shift;
state = ciphertext;
state = state XOR key_i
for (i = ROUNDS - 1; i >= 0; i--)
{
if (i <> ROUNDS-1)
state = state <<< 4 //回転させる
index = state & 0xF
shift = ((tinv >> (index << 2)) & 0xF) << 2
boxvalue = sbox >>> (shift)
state = state XOR (boxvalue)
state = state XOR key_i //鍵混合
}
* plaintext = state;
}
式17
#define ROL64(x,b) (((x) << (b)) | ((x) >> (64-(b))))
const uint64_t tinv = 0x19cf20d473865aeb ULL
const uint64_t sbox = 0x3F41B87D026C59EA ULL
state = ROL(state, 4);
shift = (tinv >> ((state & 0xF) << 2)) << 2;
state ^= ROR(sbox, shift);
state ^= key[i];
ただし、^=はXOR演算であり、ROLは左回転演算であり、RORは右回転演算であり、&はAND演算であり、>>はビット右シフト演算であり、<<はビット左シフト演算であり、stateは状態604に対応し、sboxはテーブル620であり、keyは暗号鍵である。
本明細書の教示は、本明細書で説明する特定の例のみではなく、一般に「幅広い」Sボックスに適用可能である。たとえば、マスキングは、より小さいサイズに切り捨てるために使用され得る。
V → nビットに切り捨てられた、ROT(sbox,4*v) 式18
によって達成され得る。
V → 16ビットワードとして使用された、ROT(sbox,4*v) & 0xFFFF 式19
V → S[v+3] | S[v+2] | S[v+1] | S[v] 式20
として作成され得る。
上記で説明したように、4ビットSボックスでは、単一の64ビットレジスタが、16個の4ビットエントリを表すために使用され得る。異なるエントリが、レジスタの異なる回転によって取得される。したがって、(たとえば、DESの場合のように)テーブルルックアップを使用するのではなく、置換は、ソフトウェアの観点から、はるかにより効率的な回転演算によって達成される。
式21
S[x] = (Y >>> (4*x)) & 0xF、
ただし、「>>>」は右への循環回転を示した。
式22
x 0 1 2 3 4 5 6 7 8 9 A B C D E F
S00(x) E 4 D 1 2 F B 8 3 A 6 C 5 9 0 7
式23
static const unsigned char S00[16] = {
0xE,0x4,0xD,0x1,0x2,0xF,0xB,0x8,0x3,0xA,0x6,0xC,0x5,0x9,0x0,0x7
}
式24
y = (0x7095C6A38BF21D4E >> ((x & 0xF) << 2)) & 0xF
上記に鑑みて、いくつかの態様では、本開示は、式10、式12、式15、式17の演算、または本明細書で教示する任意の他の演算を実行する、処理回路に関する。
図12は、本開示の1つまたは複数の態様による、暗号演算をサポートするように構成された装置1200の図である。装置1200は、通信インターフェース(たとえば、少なくとも1つのトランシーバ)1202と、記憶媒体1204と、ユーザインターフェース1206と、メモリデバイス1208と、処理回路1210とを含む。
図13は、本開示のいくつかの態様による暗号プロセス1300を示す。プロセス1300は、電子デバイス、トランシーバ、または何らかの他の好適な装置内に位置し得る、処理回路(たとえば、図7の処理回路702、図8の処理回路802、図9の処理回路902、図10の処理回路1002、または図12の処理回路1210)内で行われ得る。もちろん、本開示の範囲内の様々な態様では、プロセス1300は、暗号演算をサポートすることが可能な任意の好適な装置によって実施され得る。
図面に示す構成要素、ステップ、特徴および/または機能のうちの1つまたは複数は、単一の構成要素、ステップ、特徴、または機能に再構成かつ/または結合されてよく、あるいは、いくつかの構成要素、ステップまたは機能に組み込まれてもよい。追加の要素、構成要素、ステップ、および/または機能も、本明細書で開示する新規の特徴から逸脱することなく追加され得る。図に示す装置、デバイス、および/または構成要素は、本明細書で説明する方法、特徴、またはステップのうちの1つまたは複数を実行するように構成され得る。本明細書で説明する新規のアルゴリズムはまた、効率的にソフトウェアで実装されてもよく、かつ/またはハードウェアに埋め込まれてもよい。
102 エンサイファ構成要素
104、704、808、904、1008 平文
106、708、804、908、1004 暗号文
108 デサイファ構成要素
200 DESブロック暗号
202、402 入力情報(平文)
204、404 出力情報(暗号文)
206 第1の線形層、線形層
208、406 非線形層
210 第2の線形層、線形層
300、520、620 テーブル
400 AESブロック暗号
408 線形層
500、600 回転ベース暗号、暗号
502、602 サブセット
504、604 現在の状態、状態、64ビット状態
506、606 θ関数
508、608 拡大出力、64ビット拡大出力
510、610 γ関数
524 マスク
512、612 XOR
514、614 回転
516、616 θ記述
518、618 γ記述
702、802、902、1002、1210 処理回路
706、806、906、1006 式
1100 回路
1102 プロセス実行回路
1104 メモリデバイス
1106 シフト回路
1108 マスク回路
1110 結合回路
1200 装置
1202 通信インターフェース
1204 記憶媒体
1206 ユーザインターフェース
1208 メモリデバイス
1212 アンテナ
1214 送信機
1216 受信機
1218 暗号情報
1220 信号を受信するための回路/モジュール
1222 状態値を決定するための回路/モジュール
1224 回転距離を決定するための回路/モジュール
1226 置換ボックス値を回転させるための回路/モジュール
1228 結合するための回路/モジュール
1230 信号を生成するための回路/モジュール
1232 信号を受信するためのコード
1234 状態値を決定するためのコード
1236 回転距離を決定するためのコード
1238 置換ボックス値を回転させるためのコード
1240 結合するためのコード
1242 信号を生成するためのコード
Claims (30)
- 暗号信号を生成するための方法であって、
第1の信号を受信するステップと、
前記第1の信号に基づいて、状態値を決定するステップと、
前記状態値に基づいて、回転距離を決定するステップと、
前記回転距離に基づいて、第1の値を回転させるステップと、
前記回転された第1の値と前記状態値とを結合するステップと、
前記回転された第1の値と前記状態値との前記結合に基づいて、第2の信号を生成するステップと
を含む方法。 - 前記第1の値が置換ボックス値である、請求項1に記載の方法。
- 前記回転させるステップおよび前記結合するステップが、前記状態値の後続のインスタンス内で、前記状態値における非線形性を伝え、前記結合を拡散する、請求項1に記載の方法。
- 前記結合するステップが、
前記回転された第1の値をマスクするステップと、
前記回転されマスクされた第1の値と前記状態値とを結合するステップと
を含む、請求項1に記載の方法。 - 前記結合するステップが、
前記回転された第1の値と前記状態値とを結合することによって、前記状態値の中間インスタンスを生成するステップ
を含む、請求項1に記載の方法。 - 前記第2の信号の前記生成が、前記状態値の前記中間インスタンスを回転させることによって、前記状態値の後続のインスタンスを生成することを含み、
前記状態値の前記中間インスタンスが、前記第1の値のビット量に基づくビット量だけ回転される、請求項5に記載の方法。 - 前記状態値の前記中間インスタンスの前記生成が、暗号鍵を、前記回転された第1の値と前記状態値との前記結合の結果と結合することを含む、請求項5に記載の方法。
- 前記状態値の前記決定が、暗号鍵と前記状態値の以前のインスタンスとを結合することによって、前記状態値の現在のインスタンスを生成することを含む、請求項1に記載の方法。
- 前記回転距離の前記決定が、前記状態値のサブセットにさらに基づく、請求項1に記載の方法。
- 前記回転距離の前記決定が、
前記状態値からビットのサブセットを選択することと、
前記選択されたビットのサブセットに対応する第1の数を決定することと、
前記第1の値のビット量に対応する第2の数を決定することと、
前記第1の数に前記第2の数を乗算することと
を含む、請求項1に記載の方法。 - 前記回転距離の前記決定が、
前記状態値をマスクすることと、
前記マスクされた状態値をシフトすることと
を含む、請求項1に記載の方法。 - 前記回転距離の前記決定が、
前記シフトされマスクされた状態値に基づいて、第2の値をシフトすることと、
前記シフトされた第2の値をマスクすることと、
前記シフトされマスクされた第2の値をシフトすることと
をさらに含む、請求項11に記載の方法。 - 前記状態値の前記決定が、前記状態値の以前のインスタンスを回転させることによって、前記状態値の現在のインスタンスを生成することを含む、請求項1に記載の方法。
- 前記第2の信号の前記生成が、暗号鍵を、前記回転された第1の値と前記状態値との前記結合と結合することを含む、請求項1に記載の方法。
- 前記第1の値が、前記回転された第1の値と前記状態値との前記結合が全単射であるような値を有する、請求項1に記載の方法。
- 前記第1の値が全単射である、請求項1に記載の方法。
- 前記回転距離の前記決定、前記第1の値の前記回転、および前記回転された第1の値と前記状態値との前記結合が、演算
s ^= ROR(sbox, (s & M1) << S1) & MASK、および
s = ROR(s, R1)によって実行され、
ただし、^=はXOR演算であり、RORは右回転演算であり、&はAND演算であり、<<はビット左シフト演算であり、sは前記状態値のインスタンスに対応し、M1は第1のマスク値であり、MASKは第2のマスク値であり、S1はシフト値であり、R1は回転値であり、sboxは前記第1の値のインスタンスに対応する、請求項1に記載の方法。 - 前記回転距離の前記決定、前記第1の値の前記回転、および前記回転された第1の値と前記状態値との前記結合が、演算
s = ROL(s, R1)、および
s ^= ROR(sbox, (s & M1) << S1) & MASKによって実行され、
ただし、^=はXOR演算であり、ROLは左回転演算であり、RORは右回転演算であり、&はAND演算であり、<<はビット左シフト演算であり、sは前記状態値のインスタンスに対応し、M1は第1のマスク値であり、MASKは第2のマスク値であり、R1は回転値であり、S1はシフト値であり、sboxは前記第1の値のインスタンスに対応する、請求項1に記載の方法。 - 前記回転距離の前記決定、前記第1の値の前記回転、および前記回転された第1の値と前記状態値との前記結合が、演算
s ^= ROR(sbox, (s & M1) << S1)、および
s = ROR(s, R1)によって実行され、
ただし、^=はXOR演算であり、RORは右回転演算であり、&はAND演算であり、<<はビット左シフト演算であり、sは前記状態値のインスタンスに対応し、M1はマスク値であり、S1はシフト値であり、R1は回転値であり、sboxは前記第1の値のインスタンスに対応する、請求項1に記載の方法。 - 前記回転距離の前記決定、前記第1の値の前記回転、および前記回転された第1の値と前記状態値との前記結合が、演算
s = ROL(s, R1)、
shift = (tinv >> ((state & M1) << S1)) << S2、および
s ^= ROR(sbox, shift)によって実行され、
ただし、^=はXOR演算であり、ROLは左回転演算であり、RORは右回転演算であり、&はAND演算であり、<<はビット左シフト演算であり、>>はビット右シフト演算であり、sは前記状態値のインスタンスに対応し、M1はマスク値であり、S1は第1のシフト値であり、S2は第2のシフト値であり、R1は第1の回転値であり、shiftは第2の回転値であり、tinvは逆置換ボックス値であり、sboxは前記第1の値のインスタンスに対応する、請求項1に記載の方法。 - 暗号信号を生成するための装置であって、
メモリ回路と、
前記メモリ回路に結合され、
前記メモリ回路から第1の信号を受信すること、
前記第1の信号に基づいて、状態値を決定すること、
前記状態値に基づいて、回転距離を決定すること、
前記回転距離に基づいて、第1の値を回転させること、
前記回転された第1の値と前記状態値とを結合すること、および
前記回転された第1の値と前記状態値との前記結合に基づいて、第2の信号を生成すること
を行うように構成された処理回路と
を備える装置。 - 前記第1の値が置換ボックス値である、請求項21に記載の装置。
- 前記回転および前記結合が、前記状態値の後続のインスタンス内で、前記状態値における非線形性を伝え、前記結合を拡散する、請求項21に記載の装置。
- 前記回転距離の前記決定が、前記状態値のサブセットにさらに基づく、請求項21に記載の装置。
- 前記回転された第1の値と前記状態値とを結合するために、前記処理回路が、
前記回転された第1の値をマスクすること、および
前記回転されマスクされた第1の値と前記状態値とを結合すること
を行うようにさらに構成される、請求項21に記載の装置。 - 前記回転された第1の値と前記状態値とを結合するために、前記処理回路が、前記回転された第1の値と前記状態値とに基づいて、前記状態値の中間インスタンスを生成するようにさらに構成され、
前記第2の信号を生成するために、前記処理回路が、前記状態値の前記中間インスタンスを回転させて、前記状態値の後続のインスタンスを生成するようにさらに構成され、
前記状態値の前記中間インスタンスが、前記第1の値のビット量に基づくビット量だけ回転される、請求項21に記載の装置。 - 暗号信号を生成するための装置であって、
第1の信号を受信するための手段と、
前記第1の信号に基づいて、状態値を決定するための手段と、
前記状態値に基づいて、回転距離を決定するための手段と、
前記回転距離に基づいて、第1の値を回転させるための手段と、
前記回転された第1の値と前記状態値とを結合するための手段と、
前記回転された第1の値と前記状態値との前記結合に基づいて、第2の信号を生成するための手段と
を備える装置。 - 前記回転および前記結合が、前記状態値の後続のインスタンス内で、前記状態値における非線形性を伝え、前記結合を拡散する、請求項27に記載の装置。
- コンピュータ実行可能コードを記憶する非一時的コンピュータ可読記憶媒体であって、
第1の信号を受信すること、
前記第1の信号に基づいて、状態値を決定すること、
前記状態値に基づいて、回転距離を決定すること、
前記回転距離に基づいて、第1の値を回転させること、
前記回転された第1の値と前記状態値とを結合すること、および
前記回転された第1の値と前記状態値との前記結合に基づいて、第2の信号を生成すること
を行うためのコードを含む、非一時的コンピュータ可読媒体。 - 前記回転および前記結合が、前記状態値の後続のインスタンス内で、前記状態値における非線形性を伝え、前記結合を拡散する、請求項29に記載のコンピュータ可読媒体。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462062306P | 2014-10-10 | 2014-10-10 | |
US62/062,306 | 2014-10-10 | ||
US14/616,110 | 2015-02-06 | ||
US14/616,110 US20160105276A1 (en) | 2014-10-10 | 2015-02-06 | Rotation-based cipher |
PCT/US2015/047974 WO2016057134A1 (en) | 2014-10-10 | 2015-09-01 | Rotation-based cipher |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017531209A true JP2017531209A (ja) | 2017-10-19 |
JP2017531209A5 JP2017531209A5 (ja) | 2018-09-27 |
Family
ID=54106015
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017518094A Pending JP2017531209A (ja) | 2014-10-10 | 2015-09-01 | 回転ベース暗号 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20160105276A1 (ja) |
EP (1) | EP3205044B1 (ja) |
JP (1) | JP2017531209A (ja) |
CN (1) | CN107078902A (ja) |
WO (1) | WO2016057134A1 (ja) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR3040514B1 (fr) * | 2015-09-02 | 2017-09-15 | Stmicroelectronics Rousset | Protection dpa d'un algorithme de rijndael |
FR3040513B1 (fr) * | 2015-09-02 | 2018-11-16 | Stmicroelectronics (Rousset) Sas | Protection d'un algorithme de rijndael |
FR3040515B1 (fr) | 2015-09-02 | 2018-07-27 | St Microelectronics Rousset | Verification de la resistance d'un circuit electronique a des attaques par canaux caches |
US10992470B2 (en) | 2016-05-12 | 2021-04-27 | Lg Electronics, Inc. | System and method for efficient and secure implementation of LS-Designs |
US10771235B2 (en) * | 2016-09-01 | 2020-09-08 | Cryptography Research Inc. | Protecting block cipher computation operations from external monitoring attacks |
US10673616B2 (en) | 2017-01-11 | 2020-06-02 | Qualcomm Incorporated | Lightweight mitigation against first-order probing side-channel attacks on block ciphers |
EP3422176A1 (en) * | 2017-06-28 | 2019-01-02 | Gemalto Sa | Method for securing a cryptographic process with sbox against high-order side-channel attacks |
CN107563950A (zh) * | 2017-09-08 | 2018-01-09 | 东北大学 | 一种安全高效的数字图像加密方法 |
CN108111622B (zh) * | 2017-12-29 | 2021-10-29 | 北京梆梆安全科技有限公司 | 一种下载白盒库文件的方法、装置及系统 |
US10680802B2 (en) * | 2018-05-31 | 2020-06-09 | Nxp B.V. | High-rate multi-block-length hash function based on block ciphers |
CN109743156B (zh) * | 2018-12-28 | 2022-03-22 | 北京思源理想控股集团有限公司 | 一种分组加解密方法和装置 |
US11240022B1 (en) * | 2019-04-11 | 2022-02-01 | Wells Fargo Bank, N.A. | Passive encryption rotation keys |
CN111405547A (zh) * | 2020-02-28 | 2020-07-10 | 深圳财通宝网络科技股份有限公司 | 一种基于云加密服务的商用移动操作系统信息保护方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1173101A (ja) * | 1997-06-23 | 1999-03-16 | Samsung Electron Co Ltd | 高速ブロック暗号化方法,及び,コンピュータで使用可能な媒体 |
US20140198913A1 (en) * | 2013-01-11 | 2014-07-17 | Qualcomm Incorporated | Method and Apparatus for a Computable, Large, Variable and Secure Substitution Box |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6182216B1 (en) * | 1997-09-17 | 2001-01-30 | Frank C. Luyster | Block cipher method |
US7236592B2 (en) * | 2002-02-01 | 2007-06-26 | International Business Machines Corporation | Efficient stream cipher system and method |
JP3735670B2 (ja) * | 2003-03-19 | 2006-01-18 | 独立行政法人情報通信研究機構 | 乱数列生成装置、暗号化復号化装置、乱数列生成方法、暗号化復号化方法、ならびに、プログラム |
US7505588B2 (en) * | 2004-03-31 | 2009-03-17 | Microsoft Corporation | Stream cipher design with revolving buffers |
KR20070093963A (ko) * | 2004-09-24 | 2007-09-19 | 시냅틱 래버러토리즈 리미티드 | 대입 박스들 |
US8130946B2 (en) * | 2007-03-20 | 2012-03-06 | Michael De Mare | Iterative symmetric key ciphers with keyed S-boxes using modular exponentiation |
KR100930591B1 (ko) * | 2007-12-10 | 2009-12-09 | 한국전자통신연구원 | 고속 세션 변경이 가능한 암호화 장치 |
US8737604B2 (en) * | 2011-05-09 | 2014-05-27 | Advanced Micro Devices, Inc. | Processor with architecture implementing the advanced encryption standard |
CN102223228A (zh) * | 2011-05-11 | 2011-10-19 | 北京航空航天大学 | 基于fpga的aes加密芯片设计方法及嵌入式加密系统 |
US9189425B2 (en) * | 2011-09-01 | 2015-11-17 | Apple Inc. | Protecting look up tables by mixing code and operations |
US20150215114A1 (en) * | 2014-01-29 | 2015-07-30 | Mohammad A. Alahmad | Method for generating a secure cryptographic hash function |
-
2015
- 2015-02-06 US US14/616,110 patent/US20160105276A1/en not_active Abandoned
- 2015-09-01 WO PCT/US2015/047974 patent/WO2016057134A1/en active Application Filing
- 2015-09-01 CN CN201580053452.9A patent/CN107078902A/zh active Pending
- 2015-09-01 JP JP2017518094A patent/JP2017531209A/ja active Pending
- 2015-09-01 EP EP15763170.6A patent/EP3205044B1/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1173101A (ja) * | 1997-06-23 | 1999-03-16 | Samsung Electron Co Ltd | 高速ブロック暗号化方法,及び,コンピュータで使用可能な媒体 |
US20140198913A1 (en) * | 2013-01-11 | 2014-07-17 | Qualcomm Incorporated | Method and Apparatus for a Computable, Large, Variable and Secure Substitution Box |
Also Published As
Publication number | Publication date |
---|---|
EP3205044A1 (en) | 2017-08-16 |
WO2016057134A1 (en) | 2016-04-14 |
EP3205044B1 (en) | 2018-11-28 |
US20160105276A1 (en) | 2016-04-14 |
CN107078902A (zh) | 2017-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3205044B1 (en) | Rotation-based cipher | |
Eisenbarth et al. | Compact implementation and performance evaluation of block ciphers in ATtiny devices | |
Li et al. | Improved single-key attacks on 9-round AES-192/256 | |
US9553722B2 (en) | Generating a key based on a combination of keys | |
JP4905000B2 (ja) | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム | |
TWI571091B (zh) | 用於以第二密文編密演算法之運算修改第一密文編密演算法的技術 | |
US10491374B2 (en) | Apparatus and method for encryption | |
JP2016505887A (ja) | 乱数生成器及びストリーム暗号 | |
Gueron | Advanced encryption standard (AES) instructions set | |
Zhang et al. | Cryptanalysis of image scrambling based on chaotic sequences and Vigenère cipher | |
JP6135804B1 (ja) | 情報処理装置、情報処理方法及びプログラム | |
US20160359618A1 (en) | Using state reordering to protect against white box attacks | |
Forler et al. | Overview of the Candidates for the Password Hashing Competition: And Their Resistance Against Garbage-Collector Attacks | |
KR102565443B1 (ko) | 암호 알고리즘 생성 장치 및 방법, 암호화 장치 및 방법 | |
JP6187624B1 (ja) | 情報処理装置、情報処理方法及びプログラム | |
CN114124359A (zh) | 保留格式加密数据的方法、装置、电子设备及存储介质 | |
Kaur et al. | FPGA implementation of efficient hardware for the advanced encryption standard | |
JP6292195B2 (ja) | 情報処理装置及び情報処理方法 | |
JP2014240921A (ja) | 暗号装置、暗号処理方法及び暗号処理プログラム | |
JP6136325B2 (ja) | 暗号処理装置、暗号処理方法およびプログラム | |
US10142099B2 (en) | Method and apparatus for a computable, large, variable and secure substitution box | |
Szefer et al. | General-purpose FPGA platform for efficient encryption and hashing | |
Lu et al. | The higher-order meet-in-the-middle attack and its application to the Camellia block cipher | |
KR102393958B1 (ko) | 암호화 알고리즘이 적용된 시스템에서의 데이터 처리 방법 | |
CN116866038B (zh) | 动态掩码加密方法及动态掩码加密装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180814 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180814 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20190320 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190422 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20191118 |