More Related Content Similar to Slide dist (20) More from MITSUNARI Shigeo More from MITSUNARI Shigeo (20) Slide dist5. AE(AD)
authenticated encrypytion … 認証暗号、認
証付暗号、改ざん検知暗号
狭義の「暗号」は守秘機能のみ。
改ざん防止機能ありと勘違い(?)
暗号に改ざん検知機能も欲しい。
従来は「暗号+MAC」で実現。
「暗号&MAC」「暗号thenMAC」「MACthen
暗号」で安全性が異なる。組合せも重要。
「完パケ」化 → 改ざん検知暗号
Copyright 2015 c NTT セキュアプラットフォーム研究所 – p. 5/26
8. Minalpher再び
NTT + 三菱電機 + 福井大学の研究者で
設計。
暗号利用モードやブロック暗号だけでな
く全部を設計。
誤利用耐性がある。
Nonce Repetition (送信者側の問題)
Release of Unverified Plaintext (受信者側
の問題)
Copyright 2015 c NTT セキュアプラットフォーム研究所 – p. 8/26
9. 実装面からの設計方針
組み込み環境でROM 容量少なく→4-bit
sbox (total 8B)
単位実行時間あたりたくさん混じって欲
しい (x64)
256-bit XOR → 256 論理命令
64-bit 加算 → およそ384 論理命令
64-bit 乗算 → およそ20000 論理命令
32×4-bit gather → ≈512 命令
pshufbで4-bit gather (sbox) を使いたい!
Copyright 2015 c NTT セキュアプラットフォーム研究所 – p. 9/26
16. x86_64アーキテクチャ
世代 Bridge well
有効命令セット AVX AVX2
一般レジスタ ALU×3 ALU×4
SIMD レジスタ ALU×3 ALU×3
load 2 2
AVX SIMD 整数命令は128 ビットxmm
AVX2 SIMD 整数命令は256 ビットymm
Copyright 2015 c NTT セキュアプラットフォーム研究所 – p. 16/26
17. 段関数実装法考察
SPN ではT 表実装が有効
4 × 32ビット表の場合、load 64 回
∴最低でも32 clock cycle は必要
SIMD のpshufb実装
xmmレジスタではpshufb 4 回
ymmレジスタではpshufb 2 回
∴2 clock cycle で処理
⇒ pshufb実装を採用
Copyright 2015 c NTT セキュアプラットフォーム研究所 – p. 17/26
18. pshufb実装
pshufbで複数の4-bit sbox を並列に引
ける。
vpshufb xmm2, xmm0, xmm1
S(x) 0 4 8 F 1 5 E 9 2 7 A C B D 6 3 xmm0
input 0 0 1 3 C F D 2 3 D 6 E A A 3 6 xmm1
output 0 0 4 F B 3 D 8 F D E 6 A A F E xmm2
Hamburg, “Accelerating AES with Vector Permute Instructions,” CHES 2009
Copyright 2015 c NTT セキュアプラットフォーム研究所 – p. 18/26
19. SIMD演算器とport
演算器 Ivy Bridge Haswell
SIMD Shuffle p1, p5 p5
SIMD Shift p1, p5 p0
SIMD Logical p0, p1, p5 p0, p1, p5
Copyright 2015 c NTT セキュアプラットフォーム研究所 – p. 19/26
21. Haswellでのデータ移動考察
2 ブロック同時実装 MC 中の左右データ入
れ換えが不要に
4 ブロック同時実装 XM ◦ SM のシフトが
不要に
32 ブロック同時実装 SR がデータ位置の読
み換えに
Copyright 2015 c NTT セキュアプラットフォーム研究所 – p. 21/26
23. Haswell 4-block実装
実行段 次段
p5 p0 p1 p0 p1
1 S0 C3
2 R0 X37
3 S1 C0 M23
4 R1 M1 M0
5 S4 C1 M3
6 R4
7 S5 X04
8 R5
9 S2 X15 M45
10 R2 M01
11 S6 C2
12 R6
13 S7 X26 M6
14 R7 M2
15 S3 M67 M7
16 R3 M4 M5
Si: sbox
Ri: SRi
Ci: ⊕RC
Xij: XM
Mij: MC
Mi: MC
Copyright 2015 c NTT セキュアプラットフォーム研究所 – p. 23/26
24. モード部の最適化
いわゆるoffset update については、いわ
ゆる2 倍算が必要。2 倍算をSIMD 的にま
とめて行なったデータを準備しておくこ
とにより、毎回のupdate は3 命令で実行
できる。
tag 値計算のためのPMAC 的排他的論理和
について、nibble⇔byte 変換は、1 ブロッ
クにつき1 回の排他的論理和に置き換え
可能。
Copyright 2015 c NTT セキュアプラットフォーム研究所 – p. 24/26
25. 結果 (cpb)
µ メッセージ長(byte)
arch 31 63 1K-1 8K-1 64K-1
Ivy 1 25.21 19.58 14.40 14.05 14.05
Bridge 2 26.97 17.97 9.63 8.94 8.85
Has 1 25.47 19.66 14.00 13.69 13.65
-well 2 26.12 16.97 8.80 8.30 8.23
4 26.85 17.27 6.33 5.76 5.69
Copyright 2015 c NTT セキュアプラットフォーム研究所 – p. 25/26