九州大学大学院 システム情報科学府 情報学専攻 田中哲士 西出隆志 堀良彰 櫻井幸一 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
© Copyright 2025 ExpyDoc