AES暗号の実装研究

Download Report

Transcript AES暗号の実装研究

九州大学大学院 システム情報科学府 情報学専攻
田中哲士 西出隆志 堀良彰 櫻井幸一


GPGPUとは
GPUによる暗号実装
◦ AES暗号の実装研究
◦ RSA暗号の実装研究

GPUによる暗号解析
◦ GPUによるパスワードクラック

まとめ
2

General-Purpose computing
on Graphics Processing Unitsの略称.
◦ GPUを画像処理以外の一般目的の演算に応用する技術.
◦ GPUの並列性を利用して問題を解決する.

応用例
◦ エンコーダ
◦ 機械学習
◦ 物理シミュレータ
NVIDIA GeForce 6600 GT
(http://ja.wikipedia.org/wiki/
Graphics_Processing_Unit)
3

CPUよりも高い演算性能.
FLOPS:1秒間に浮動小数演算を行える回数.
4

当事者にのみデータの内容が理解できるように,
データの内容を変換する方式.

共通鍵暗号
◦ 暗号化, 復号化に同じ鍵を用いる暗号方式.
◦ DES暗号, AES暗号, RC4暗号等.

公開鍵暗号
◦ 暗号化, 復号化に用いるカギが異なる暗号方式.
◦ 安全性の根拠に, 数学問題の計算量困難性を利用している.
 問題は必ず解けるが莫大な時間を必要とする.
◦ RSA暗号, ElGamal暗号, ECC暗号等.
5

GPUを用いた暗号の実装
◦ 目的
 暗号化及び復号化の高速実装.
◦ 共通鍵暗号:暗号アルゴリズムの実装を行う.
◦ 公開鍵暗号:暗号アルゴリズムの演算の実装を行う.

GPUを用いた暗号の解析
◦ 目的
 GPUの演算能力を暗号解析に利用する.
◦ パスワード等の短い鍵を総当たり的に解く.
◦ 既存の解読用アルゴリズムをGPUで実装させる.
6

2001年に規格化されたアメリカの標準暗号化方式.
◦ 以前準暗号化方式として採用されていたDES暗号の後継.
 56ビット+8ビットの長さを持つ鍵を利用するブロック暗号.
 16回のFeistel構造によるデータ変換を繰り返し暗号化する.
 コンピュータの発展により現在ではDES暗号は安全ではない.

Rijndaelアルゴリズムが採用されている.
◦ 128, 196, 256ビット長の鍵を使用できる.
◦ 繰り返しは行うがFeistel構造は使用しない.
 SPN構造を使用している.
 128ビットなら10回, 256ビットなら14回繰り返す.
7
8
“CryptoGraphics: Secret Key Cryptography Using
Graphics Cards.” [CIKJ05, RSA Conf. LNCS3376]
◦ GPUを用いた暗号の実装における最初の研究.
◦ 目的
 CPUが負担する暗号化の計算をGPUで肩代わりする.
◦ 使用CPU及びGPU
使用GPU
GPU年代
使用CPU
NVIDIA GeForce 3 Ti200
2001
Intel Pentium Ⅳ 1.8 GHz
ATI Radeon 7500
2000
Intel Pentium Centrino 1.3 GHz
NVIDIA Riva TNT2
1999
Intel Pentium Ⅲ 800 MHz
◦ 使用API
 OpenGL.
9
◦ 実装結果 [CIKJ05, RSA Conf. LNCS3376]
 32ビットのXORの実行レート
使用GPU
GPU
年代
使用CPU
実装結果
CPU結果
GPUによる
高速化
NVIDIA GeForce 3 Ti200
2001
Intel Pentium Ⅳ 1.8 GHz
105.0MBps
139MBps
75.5%
ATI Radeon 7500
2000
Intel Pentium Centrino 1.3 GHz
41.5MBps
93.9MBps
44.2%
NVIDIA Riva TNT2
1999
Intel Pentium Ⅲ 800 MHz
32.8MBps
56MBps
58.6%
 AES暗号におけるそれぞれの暗号化レート
使用GPU
GPU
年代
使用CPU
実装結果
CPU結果
GPUによる
高速化
NVIDIA GeForce 3 Ti200
2001
Intel Pentium Ⅳ 1.8 GHz
1.53Mbps
3.5Mbps
43.7%
ATI Radeon 7500
2000
Intel Pentium Centrino 1.3 GHz
278.3Kbps
2.52Mbps
11.0%
NVIDIA Riva TNT2
1999
Intel Pentium Ⅲ 800 MHz
732Kbps
1.68Mbps
43.6%
 CPU使用率
 CPU実装, GPU実装ともに100%のCPU使用率.
10
“CUDA compatible GPU as an efficient hardware accelerator
for AES encryption.” [Manavski07, IEEE ICSPC’07]
◦ 目的
 GPUを利用した効率的な暗号実装の実現.
◦ 使用CPU
 Intel Pentium Ⅳ 3.0 GHz
◦ 使用GPU及びAPI
使用GPU
GPU年代
使用API
NVIDIA GeForce 8800 GTX 2006
CUDA
ATI Radeon X1900
OpenGL
2005
11
◦ 実装結果 [Manavski07, IEEE ICSPC’07]
 AES 256による8MBの入力ファイルの暗号化時間
使用GPU
GPU
年代
使用API
NVIDIA GeForce
8800 GTX
2006
CUDA
ATI Radeon
X1900
2005
OpenGL
CPU
実行時間
GPU実行時間
暗号化
9.39ms
合計時間
27.3ms
暗号化
120ms
合計時間
804ms
GPUによる
高速化
15.76
148ms
5.41
1.23
0.184
 AES 128による8MBの入力ファイルの暗号化時間
使用GPU
GPU
年代
使用API
NVIDIA GeForce
8800 GTX
2006
CUDA
GPU実行時間
暗号化
7.55ms
合計時間
25.0ms
CPU
実行時間
148ms
GPUによる
高速化
19.60
5.92
12

その他のAES暗号実装
[HW07, CHES 2007, LNCS4727], [KS09], [JHHMP10, SIGCOMM 2010]
使用GPU
GPU
年代
使用CPU
使用API
実装結果
[HW07]
NVIDIA GeForce
6600GT
2004
AMD CPU
2GHz
OpenGL
PBO
44.89MBps
[HW07]
NVIDIA GeForce
7900GT
2006
AMD CPU
2GHz
OpenGL
PBO
108.86MBps
[KS09]
NVIDIA GPU
不明
不明
CUDA
NVIDIA GeForce
GTX 480
2010
Intel Xeon
X5550
CUDA
文献
[JHHMP10]

GPUによる
高速化
論文
年代
備考
0.9792
2007
CPU使用率
13.25%
2.3599
2007
CPU使用率
25.16%
1.211GBps
14.2542
2009
1.130GBps
2.0030
2010
CBCモード
CBC(Cipher Block Chain)モード
◦ 前のブロックの結果を次のブロックに利用する.
13

GPUで実装する事でCPUよりも高速に実装できている.
◦ [Manavski07, IEEE ICSPC’07]の19.60倍の高速化は驚異的.
 動作全体の高速化は5.92倍に留まる.
 CPUとGPUのデータのやり取りによる遅延.
 世代が若干異なっている.
 Intel Pentium Ⅳ 3.00 GHz, 2002年1月~2006年1月
 NVIDIA GeForece 8800GTX, 2006年11月
 Intel Core2 Extreme X6800 2.93 GHz, 2006年7月
◦ CBCモードでのGPUによる暗号化の高速実装は難しい.
 前のブロックの暗号化の結果が必要なため,並列化が困難.
 復号時は並列に行うことができる.
14


Rivest, Shamir, Adlemanが発明した公開鍵暗号.
安全性の根拠
◦ 桁数が大きい合成数の素因数分解問題の困難性.
 例:RSA-170(563ビット) [BK10]
2606262368413984492152987926667443219708592538048640641616478519185999962854206936145028
3931914514618683512198164805919882053057222974116478065095809832377336510711545759
=3586420730428501486799804587268520423291459610599781611402318606339484508580405939638
×7267029064107019078863797763923946264136137803856996670313708936002281582249587494493
 実用上では, 最低でも合成数を1024ビットにする必要がある.

RSA暗号で使用される演算
◦ べき剰余算
15
“Toward acceleration of RSA using 3D graphics
hardware.” [MPS07, IMACC 2009, LNCS 4887]
◦ 目的
 べき剰余算をGPU上で実装し, RSA暗号の高速化を図る.
◦ 使用CPU及びGPU
 AMD64 3200+ 2.2 GHz
 NVIDIA GeForce 7800 GTX
◦ 実装言語
 GLSL(OpenGL シェーディング言語)
16
“Public Key Cryptography on Modern Graphics
Hardware.” [HW09, EUROCRYPT 2009]
◦ 目的
 べき剰余算をGPU上で実装し, RSA暗号の高速化を示す.
◦ 使用するGPU
 NVIDIA GeForce 8800GTX.
◦ 使用API
 CUDA.
17
“Accelerating SSL with GPUs.”
[JHHMP10, SIGCOMM 2010]
◦ 目的
 Webサーバに対するSSLプロキシをGPUで実装し,高いスルー
プットと低いレイテンシを実現する.
◦ 使用CPU及びGPU
 Intel Xeon X5550
 NVIDIA GeForce GTX480
◦ 使用API
 CUDA
18
◦ 実装結果
 1024ビットのべき剰余算の実行結果
[MPS07, IMACC 2009, LNCS 4887], [HW09, EUROCRYPT 2009]
文献
使用GPU
GPU
年代
実装言語
使用API
[MPS07]
NVIDIA GeForce
7800GTX
2005
[HW09]
NVIDIA GeForce
8800GTX
2006
実装結果
CPU結果
GPUによる
高速化
GLSL
OpenGL
5.7 ms/op
17.0 ms/op
3.77
CUDA
0.27 ms/op
0.68 ms/op
2.52
 RSA暗号のスループット[JHHMP10, SIGCOMM 2010]
1024-bit
2048-bit
4096-bit
CPU スループット
7,268 msg/s
1,160 msg/s
164 msg/s
GPU スループット
66,970 msg/s
9,995 msg/s
1,348 msg/s
GPUによる高速化
9.214
8.616
8.220
19

べき剰余算はGPU上で実装してもあまり高速化でき
ていない.
◦ GPUはシリアルな処理は得意ではない.
 べき乗算は乗算の繰り返し.
◦ RNS(Residue Number System:剰余数系)の基数拡張が
計算のコストになっている.

[JHHMP10, SIGCOMM 2010]は高速化に成功し
ている.
◦ 多倍長整数の乗算をCPUでネイティブな整数の集団に変換.
 kビットの整数を並列にO(k)で解決する乗算を利用している.
20
“Comparison of Modular Arithmetic
Algorithms on GPUs.” [GIT09, ParCo’09]
“GPU Accelerated Elliptic Curve Cryptography
in
.” [CP10, IEEE MWSCAS 2010]
◦ ECC(Elliptic Curve Cryptosystem:楕円曲線暗号)の基本
演算を実装している.
“Speed records for NTRU.”
[HVB10, RSA Conf. LCNS5985]
◦ NTRU暗号の暗号化, 復号化を共に実装している.
21
“Brute force attack on UNIX passwords with
SIMD computer.” [KI99, Security’99]
◦ GPUを用いた最初の暗号分野の研究.
◦ PixelFlowを巨大な8ビットのSIMDマシンとして考え,
そのマシンパワーを利用してパスワードを解く.
 PixelFlow
 ノースカロライナ大学チャペルヒル校が開発したグラフィックエンジン.
◦ あらゆるUNIXのパスワードをブルートフォースアタック
(総当たり攻撃)により1日, 2日で解読可能.
 同様にあらゆる56ビットの暗号を解読可能.
◦ 辞書攻撃, ブルートフォースアタックに耐性のあるパスワード
スキームの提案.
22

近年, GPUに対応したパスワードクラックツールが
市場に流通するようになった.
◦ “市販GPUを使ってパスワードを高速クラック.” [ElcomSoft07]
◦ “GPUs Used To Crack WiFi Passwords Faster.”
[ElcomSoft09]

GPUの演算性能の発展がセキュリティの基準に影響
を与えつつある.
◦ パスワードは最低でも12文字必要となる. [TeraFlops10]
23
“GPU-based password cracking.” [BJ10]
◦ GPUを用いて複数のパスワードクラックツールで, 様々なパ
スワードハッシュ関数にクラッキングを仕掛けている.
◦ 使用CPU及びGPU
 Intel Core i7 975
 NVIDIA GeForce GT295
◦ 使用ツール




Elcomsoft
Extreme GPU Bruteforcer
IGHASHGPU
BarsWF bruteforce
24

実験結果 [BJ10]
ハッシュ関数
使用ツール
性能(Million
password / s)
MD5
Elcomsoft
1750
Extreme GPU Bruteforcer
2260
IGHASHGPU
2770
BarsWF bruteforce
3200
BarsWFx64(Intel core i7 975 EE)
NTLM
Extreme GPU Bruteforcer
3050
IGHASHGPU
3050
EnTibr0.1(Intel core i7 975 EE)
DCC
Oracle 11g
358
233
Extreme GPU Bruteforcer
1556
IGHASHGPU
1565
MDCrack1.8.3(Intel core i7 975 EE)
162
IGHASHGPU
968
25

GPUで実装することにより高速なクラックが可能.
◦ ブルートフォースアタックは各試行が独立して行える.
 GPUの並列性を用いた実装が有効.
◦ MD5で3200 Million password/s
 5文字以内のパスワードを2.32秒で探索可能.
 8文字のパスワードは22日で探索可能.
 12文字のパスワードは探索に471万年かかる.
26
“ECM on Graphics cards.”
[BCCLY09, EUROCRYPT 2009 LNCS5479]
◦ ECM(Elliptic Curve Method:楕円曲線法)の最大公約数
による判定をGPUで実装している.
 CPUとGPU2枚を使用して,604.99 curves/sを実現.
 GPU1枚の場合,216.78 curves/s.
“Parallel Shortest Lattice Vector Enumeration on Graphics
Cards.” [HSBVP10, AFRICACRYPT 2010, LNCS6055]
◦ ENUM法をGPUで実装している.
 高次元のラティスでは,GPUはCPUより5倍高速に動作する.
27

“Factorization of RSA-170.” [BK10]
◦ RSA-170チャレンジ解決までの技術レポート.
 一般数体篩法で素因数分解を行っている.
 GPUは篩で用いる多項式の選択に使用される.
“Cryptanalysis of the DECT Standard Cipher.”
[NTW10, FSE 2010, LNCS6147]
◦ DECT標準暗号を現実的に解読する手法を提案.
 DECT(Digital Enhanced Cordless Telecommunications)
 デジタルコードレス電話規格.
 30個の方程式, 個のキーストリームを用いて50%程度の割合
で,実行時間内に暗号に暗号の秘密鍵を取得できる.
 GPUを用いることで,6.2倍程度高速化できる.
28

実験的な研究が多い.
◦ 既存の暗号のGPU実装.
◦ GPUで実装した攻撃法の性能実験.

実用上での問題点はないのか.
◦ 消費電力はどの程度になるのか.
◦ ミドルエンド,ローエンドのGPUでも対応できるのか.
◦ 誰が恩恵を受けるのか.
29

GPUを用いた暗号の高速実装.
◦ GPUで暗号を実装する目的が重要.
 高速化することで何を達成できるか.
 e.g. 公開鍵暗号が高速化された.
公開鍵暗号のみで実用的に通信できるようになった.

GPUを用いた暗号の解析
◦ 実践的な解析の研究を行うべきである.
 暗号解析の結果は安全性の指標となる.
 GPUは攻撃者にも容易に入手可能.
 安価な攻撃道具として使用される可能性がある.
30



GPUを利用した暗号の高速実装及び,解析に関する
論文を調査した.
GPUを利用することにより暗号化,解析ともに高速に
処理を行うことができる.
現状の研究は実用に関する言及が少ない.
◦ 実践的な研究が行われるべきである.
31
[BCCLY09, EUROCRYPT 2009 LNCS5479]
D. J. Bernstein, T.-R. Chen, C.-M. Chen, T. Lange and B.-Y. Yang,
ECM on Graphics Cards. In EUROCRYPT 2009, LNCS, vol. 5479,
pp. 483-501, Springer, April 26-30, 2009.
[BJ10]
M. Bakker and R. Jagt, GPU-based password cracking.
University of Amsterdam System and Network Engineering,
February 5, 2010.
[BK10]
D. Bonenberger and M. Krone, Factorization of RSA-170,
Fachhochschule Braunschweig / Wolfenbüttel University of
Applied Sciences, March 8, 2010.
[CP10, IEEE MWSCAS 2010]
A. E. Cohen and K. K. Parhi, GPU Accelerated Elliptic Curve
Cryptography in GF( ). In the 53rd IEEE International Midwest
Symposium on Circuits and Systems, pp. 57-60, IEEE,
August 1-4, 2010.
32
[CIJL05, RSA Conf. LNCS3376]
D. Cook, J. Ioannidis, A. Keromytis and J. Luck,
CryptoGraphics: Secret Key Cryptography Using Graphics Cards.
In the Cryptographer’s Track at the RSA Conference 2005,
LNCS, vol. 3376, pp. 334-351, Springer, February 14-18, 2005.
[GIT09, ParCo’09]
P. Giorgi, T. Izard and A. Tisserand, Comparison of modular
arithmetic algorithms on GPU. In International Conference on
Parallel Computing, September 1-4, 2009.
[ElcomSoft07]
“市販GPUを使ってパスワードを高速クラック”.
http://japanese.engadget.com/2007/10/29/elcomsoftgpgpu-password-cracking/
33
[ElcomSoft09]
“GPUs Used To Crack WiFi Passwords Faster”.
http://it.slashdot.org/article.pl?sid=09%2F01%2F15%2F1334222
[HSBVP10, AFRICACRYPT 2010, LNCS6055]
J. Hermans, M. Schneider, J. Buchmann, F. Vercauteren and
B. Preneel, Parallel Shortest Lattice Vector Enumeration
on Graphics Cards. In Africacrypt 2010, LNCS, vol. 6055,
pp. 52-68, Springer, May 3-5, 2010.
[HVB10, RSA Conf. LCNS5985]
J. Hermans, F. Vercauteren and B. Preneel, Speed Records for
NTRU. In the Cryptographer’s Track at the RSA Conference, 2010,
LCNS, vol. 5985, pp. 73-88, Springer, March 1-5, 2010.
34
[HW07, CHES 2007, LNCS4727]
O. Harrison and J. Waldron, AES Encryption Implementation and
Analysis on Commodity Graphics Processing Units. In 9th
Workshop on Cryptographic Hardware and Embedded Systems,
LNCS, vol. 4727, pp. 209-226, Springer, September 10-13, 2007.
[HW09, EUROCRYPT 2009]
O. Harrison and J. Waldron, Public Key Cryptography on Modern
Graphics Hardware. Booklet of posters, Eurocrypt 2009,
April 26-30, 2009.
[JHHMP10, SIGCOMM 2010]
K. Jang, S. Han, S. Han, S. Moon and KS. Park, Accelerating SSL
with GPUs. In ACM SIGCOMM Computer Communication Review,
vol. 40, issue 4, pp. 437-438, poster,
August 30-September 3, 2010.
35
[KI99, Security’99]
G. Kedem and Y. Ishihara, Brute Force Attack on UNIX
Passwords with SIMD Computer. In the 8th USENIX Security
Symposium, vol. 8, pp. 93-98, USENIX, August 25-26, 1999.
[KS09]
M. Kipper, J. Slavkin and D. Denisenko, Implementing AES on
GPU Final Report. University of Toronto, April 20, 2009
[Manavski07, IEEE ICSPC’07]
S. Manavski, CUDA compatible GPU as an efficient hardware
accelerator for AES cryptography. In 2007 IEEE International
Conference on Signal Processing and Communications,
pp.65-68, IEEE, November 24-27, 2007.
36
[MPS07, IMACC 2009, LNCS 4887]
A. Moss, D. Page and N. Smart, Toward Acceleration of RSA
Using 3D Graphics Hardware. In Eleventh IMA International
Conference on Cryptography and Coding, LNCS, vol. 4887,
pp. 364-383, Springer, December 18-20, 2007.
[NTW10, FSE 2010, LNCS6147]
K.Nohl, E. Tews and R.-P. Weinmann, Cryptanalysis of the
DECT Standard Cipher, In the 17th International Workshop on
Fast Software Encryption, LNCS, vol. 6147, pp.1-18. Springer,
February 7-10, 2010.
[TeraFlops10]
“Teraflop Troubles: The Power of Graphics Processing Units
May Threaten the World’s Password Security System”.
http://www.gtri.gatech.edu/casestudy/Teraflop-TroublesPower-Graphics-Proccessing-Units-GPUs-PasswordSecurity-System
37