SlideShare a Scribd company logo
改ざん検知暗号Minalpherの設計と
Ivy Bridge/Haswellでの最適化
青木 和麻呂
NTT セキュアプラットフォーム研究所
2015 年3 月15 日 @ x86/x64 最適化勉強会7
Copyright 2015 c NTT セキュアプラットフォーム研究所 – p. 1/26
自己紹介
NTT 研究所に勤めてまる20 年です
学生時代から暗号一筋です
Camellia とかいう暗号設計にも関わりま
した
プログラムを速くするのが好きです
Copyright 2015 c NTT セキュアプラットフォーム研究所 – p. 2/26
発表内容
Minalpher とは
改ざん検知暗号
x86 64 アーキテクチャ
実装法比較
結果
まとめ
Copyright 2015 c NTT セキュアプラットフォーム研究所 – p. 3/26
Minalpherとは
Authenticated Encryption with Associated
Data (AEAD)
CAESAR competition へ応募
詳細はこのあとで
Copyright 2015 c NTT セキュアプラットフォーム研究所 – p. 4/26
AE(AD)
authenticated encrypytion … 認証暗号、認
証付暗号、改ざん検知暗号
狭義の「暗号」は守秘機能のみ。
改ざん防止機能ありと勘違い(?)
暗号に改ざん検知機能も欲しい。
従来は「暗号+MAC」で実現。
「暗号&MAC」「暗号thenMAC」「MACthen
暗号」で安全性が異なる。組合せも重要。
「完パケ」化 → 改ざん検知暗号
Copyright 2015 c NTT セキュアプラットフォーム研究所 – p. 5/26
現在のAE
汎用結合: Enc-then-MAC
暗号利用モード: AES-GCM, AES-CCM,
ChaCha20 + Poly1305
TLS1.2 から利用可。TLS1.3 からはAE
必須。
AES-GCM はデータの上限が64GB。弱鍵
の問題もある。
→CAESAR competition
Copyright 2015 c NTT セキュアプラットフォーム研究所 – p. 6/26
CAESAR competition
「AES-GCM を越えるもの」を期待して始
まった暗号技術評価プロジェクト
57 応募方式。日本の組織が混じる応募は
4 方式。
既に9 方式が取り下げ。20 程度の方式に
安全性上の問題あり。
2014/ 3/15 応募締切り
2015/ 3/15 2R 候補発表
2017/12/15 推薦方式発表
Copyright 2015 c NTT セキュアプラットフォーム研究所 – p. 7/26
Minalpher再び
NTT + 三菱電機 + 福井大学の研究者で
設計。
暗号利用モードやブロック暗号だけでな
く全部を設計。
誤利用耐性がある。
Nonce Repetition (送信者側の問題)
Release of Unverified Plaintext (受信者側
の問題)
Copyright 2015 c NTT セキュアプラットフォーム研究所 – p. 8/26
実装面からの設計方針
組み込み環境で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
モード部構成
OCB + PMAC
ブロック暗号部分はEven-Mansour
Even-Mansour の鍵は、いわゆるoffset
(2i
Lの類)
Copyright 2015 c NTT セキュアプラットフォーム研究所 – p. 10/26
モード部 (次スライドで拡大版)
P
ϕ1
M[1]
tag
C[1]
P
ϕm−1
M[m−1]
P
ϕm
M[m]
C[m−1] C[m]
P
ψ1
P
ψm−1
P
ψm
′
Copyright 2015 c NTT セキュアプラットフォーム研究所 – p. 11/26
モード部 (下半分は次スライド)
P
ϕ1
M[1]
C[1]
P
ϕm−1
M[m−1]
P
ϕm
M[m]
C[m−1] C[m]
P
ψ1
P
ψm−1
Copyright 2015 c NTT セキュアプラットフォーム研究所 – p. 12/26
tag
C[1] C[m−1] C[m]
P
ψ1
P
ψm−1
P
ψm
′
Copyright 2015 c NTT セキュアプラットフォーム研究所 – p. 13/26
プリミティブ部概要
256 ビット入力、256 ビット出力の置換
4-bit sbox を使ったSPN
17.5 段
Copyright 2015 c NTT セキュアプラットフォーム研究所 – p. 14/26
プリミティブ段関数
Ai
Bi
Ai-1
SN
SN
MC
MC
SR
SR-1
Ai-1
Bi-1
SN
Bi-1
SN
Ai-1
SR
Bi-1
SR
Ai-1
SM
Bi-1
SM
Ai-1
MC
Bi-1
MC
Ai-1
XM
Bi-1
XM
S T M XiXi-1
XiXi-1
E(i-1)
RCi-1
MC:
1101
1110
0111
1011
SR: 行中のnibble 入れ換え
Copyright 2015 c NTT セキュアプラットフォーム研究所 – p. 15/26
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
段関数実装法考察
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
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
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
段関数実装に必要な命令
SN pshufbで計算
SR pshufbで計算
XM ◦ SM データ移動とpxor
MC データ移動とpxorで計算
定数加算 pxorで計算
Copyright 2015 c NTT セキュアプラットフォーム研究所 – p. 20/26
Haswellでのデータ移動考察
2 ブロック同時実装 MC 中の左右データ入
れ換えが不要に
4 ブロック同時実装 XM ◦ SM のシフトが
不要に
32 ブロック同時実装 SR がデータ位置の読
み換えに
Copyright 2015 c NTT セキュアプラットフォーム研究所 – p. 21/26
Haswell理想スケジューリングでの性能
並列計算ブロック数 cpb
1 5.625
2 4.875
4 4.5
32 2.4375
※P ◦ P 相当の演算
Copyright 2015 c NTT セキュアプラットフォーム研究所 – p. 22/26
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
モード部の最適化
いわゆるoffset update については、いわ
ゆる2 倍算が必要。2 倍算をSIMD 的にま
とめて行なったデータを準備しておくこ
とにより、毎回のupdate は3 命令で実行
できる。
tag 値計算のためのPMAC 的排他的論理和
について、nibble⇔byte 変換は、1 ブロッ
クにつき1 回の排他的論理和に置き換え
可能。
Copyright 2015 c NTT セキュアプラットフォーム研究所 – p. 24/26
結果 (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
まとめと今後の課題
最近のx86 64 アーキテクチャでの
Minalpher 実装性能の解析
5.7 cpb @ Haswell (漸近性能)
x86 64 アーキテクチャをもっと調べて、
さらなる最適化
Copyright 2015 c NTT セキュアプラットフォーム研究所 – p. 26/26

More Related Content

PDF
AES-NI@Sandy Bridge
PDF
準同型暗号の実装とMontgomery, Karatsuba, FFT の性能
PDF
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用
PDF
optimal Ate pairing
PDF
WASM(WebAssembly)入門 ペアリング演算やってみた
PDF
LLVM最適化のこつ
PDF
フラグを愛でる
PDF
汎用性と高速性を目指したペアリング暗号ライブラリ mcl
AES-NI@Sandy Bridge
準同型暗号の実装とMontgomery, Karatsuba, FFT の性能
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用
optimal Ate pairing
WASM(WebAssembly)入門 ペアリング演算やってみた
LLVM最適化のこつ
フラグを愛でる
汎用性と高速性を目指したペアリング暗号ライブラリ mcl

What's hot (20)

PDF
条件分岐とcmovとmaxps
PDF
Wavelet matrix implementation
PDF
HPC Phys-20201203
PDF
Haswellサーベイと有限体クラスの紹介
PDF
llvm入門
PDF
emcjp Item 42
PDF
CuPy解説
PPTX
Prosym2012
PDF
LT@Chainer Meetup
PDF
Intro to SVE 富岳のA64FXを触ってみた
PDF
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
PDF
研究動向から考えるx86/x64最適化手法
PDF
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
PDF
TVM の紹介
PDF
高速な倍精度指数関数expの実装
PDF
Xeon PhiとN体計算コーディング x86/x64最適化勉強会6(@k_nitadoriさんの代理アップ)
PDF
きつねさんでもわかるLlvm読書会 第2回
PDF
並列対決 Elixir × Go × C# x Scala , Node.js
PDF
Xbyakの紹介とその周辺
PPT
ADVENTURE_Thermalの概要
条件分岐とcmovとmaxps
Wavelet matrix implementation
HPC Phys-20201203
Haswellサーベイと有限体クラスの紹介
llvm入門
emcjp Item 42
CuPy解説
Prosym2012
LT@Chainer Meetup
Intro to SVE 富岳のA64FXを触ってみた
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
研究動向から考えるx86/x64最適化手法
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
TVM の紹介
高速な倍精度指数関数expの実装
Xeon PhiとN体計算コーディング x86/x64最適化勉強会6(@k_nitadoriさんの代理アップ)
きつねさんでもわかるLlvm読書会 第2回
並列対決 Elixir × Go × C# x Scala , Node.js
Xbyakの紹介とその周辺
ADVENTURE_Thermalの概要
Ad

Viewers also liked (17)

PDF
From IA-32 to avx-512
PDF
Emcjp item33,34
PDF
Emcjp item21
PPTX
AA-sort with SSE4.1
PDF
GoogleのSHA-1のはなし
PDF
Memory sanitizer
PDF
『データ解析におけるプライバシー保護』勉強会 #2
PDF
改ざん検知暗号Minalpherの設計とIvy Bridge/Haswellでの最適化
PDF
Backdoors with the MS Office file encryption master key and a proposal for a ...
PDF
『データ解析におけるプライバシー保護』勉強会
PDF
バックドア耐性のあるパスワード暗号化の提案
PDF
暗号文のままで計算しよう - 準同型暗号入門 -
PDF
C/C++プログラマのための開発ツール
PDF
Cybozu Tech Conference 2016 バグの調べ方
PDF
楕円曲線入門 トーラスと楕円曲線のつながり
PDF
Cプログラマのためのカッコつけないプログラミングの勧め
PDF
MS Officeファイル暗号化のマスター鍵を利用したバックドアとその対策
From IA-32 to avx-512
Emcjp item33,34
Emcjp item21
AA-sort with SSE4.1
GoogleのSHA-1のはなし
Memory sanitizer
『データ解析におけるプライバシー保護』勉強会 #2
改ざん検知暗号Minalpherの設計とIvy Bridge/Haswellでの最適化
Backdoors with the MS Office file encryption master key and a proposal for a ...
『データ解析におけるプライバシー保護』勉強会
バックドア耐性のあるパスワード暗号化の提案
暗号文のままで計算しよう - 準同型暗号入門 -
C/C++プログラマのための開発ツール
Cybozu Tech Conference 2016 バグの調べ方
楕円曲線入門 トーラスと楕円曲線のつながり
Cプログラマのためのカッコつけないプログラミングの勧め
MS Officeファイル暗号化のマスター鍵を利用したバックドアとその対策
Ad

Similar to Slide dist (20)

PPTX
【たぶん日本初導入!】Azure Stack Hub with GPUの性能と機能紹介
PDF
サイボウズ・ラボユース成果発表会資料
PDF
PyCoRAMを用いたグラフ処理FPGAアクセラレータ
PDF
Ictsc9 infra解説スライド
PPTX
フロー技術によるネットワーク管理
PDF
OpenStack Kilo with 6Wind VA High-Performance Networking Using DPDK - OpenSta...
PDF
Optuna on Kubeflow Pipeline 分散ハイパラチューニング
PDF
Kernel vm-2014-05-25
PDF
CMD2021 f01 xilinx_20210921_r1.1
PDF
REFERENCEの等価回路モデリング
PDF
Storm×couchbase serverで作るリアルタイム解析基盤
PDF
FPGA・リコンフィギャラブルシステム研究の最新動向
PDF
大規模なスイッチレス・サーバクラスタリング構築運用の考察
PDF
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
PDF
LTspiceを活用したスタートアップ機能の等価回路モデル
PDF
ONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタック
PDF
Oscillatorの等価回路モデリング
PPTX
JAWS目黒 EC2チューニングTips #jawsmeguro #jawsug
PPTX
Openstack neutron vtjseminar_20160302
PDF
OSC2013 Tokyo/Spring JOSUG
【たぶん日本初導入!】Azure Stack Hub with GPUの性能と機能紹介
サイボウズ・ラボユース成果発表会資料
PyCoRAMを用いたグラフ処理FPGAアクセラレータ
Ictsc9 infra解説スライド
フロー技術によるネットワーク管理
OpenStack Kilo with 6Wind VA High-Performance Networking Using DPDK - OpenSta...
Optuna on Kubeflow Pipeline 分散ハイパラチューニング
Kernel vm-2014-05-25
CMD2021 f01 xilinx_20210921_r1.1
REFERENCEの等価回路モデリング
Storm×couchbase serverで作るリアルタイム解析基盤
FPGA・リコンフィギャラブルシステム研究の最新動向
大規模なスイッチレス・サーバクラスタリング構築運用の考察
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
LTspiceを活用したスタートアップ機能の等価回路モデル
ONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタック
Oscillatorの等価回路モデリング
JAWS目黒 EC2チューニングTips #jawsmeguro #jawsug
Openstack neutron vtjseminar_20160302
OSC2013 Tokyo/Spring JOSUG

More from MITSUNARI Shigeo (20)

PDF
暗号技術の実装と数学
PDF
範囲証明つき準同型暗号とその対話的プロトコル
PDF
暗認本読書会13 advanced
PDF
暗認本読書会12
PDF
暗認本読書会11
PDF
暗認本読書会10
PDF
暗認本読書会9
PDF
暗認本読書会8
PDF
暗認本読書会7
PDF
暗認本読書会6
PDF
暗認本読書会5
PDF
暗認本読書会4
PDF
深層学習フレームワークにおけるIntel CPU/富岳向け最適化法
PDF
私とOSSの25年
PDF
WebAssembly向け多倍長演算の実装
PDF
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化
PDF
楕円曲線と暗号
PDF
BLS署名の実装とその応用
PDF
LazyFP vulnerabilityの紹介
PDF
ゆるバグ
暗号技術の実装と数学
範囲証明つき準同型暗号とその対話的プロトコル
暗認本読書会13 advanced
暗認本読書会12
暗認本読書会11
暗認本読書会10
暗認本読書会9
暗認本読書会8
暗認本読書会7
暗認本読書会6
暗認本読書会5
暗認本読書会4
深層学習フレームワークにおけるIntel CPU/富岳向け最適化法
私とOSSの25年
WebAssembly向け多倍長演算の実装
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化
楕円曲線と暗号
BLS署名の実装とその応用
LazyFP vulnerabilityの紹介
ゆるバグ

Slide dist