General Purpose Stream Processing on Graphics Hardware

 Introduction
This project involves research into the latest developments of graphics hardware and their applicability to non graphics oriented applications. The category of applications which best suit the current graphics hardware implementations are those which follow a stream processing model. This model describes a high level abstraction of processing in which the operating code remains small and relatively consistent, the ratio between the data and code is normally much higher than conventional processing models and memory access is generally sequential or otherwise restricted. Graphics hardware, in particular graphics processing units(GPUs), are evolving rapidly and while following a restricted stream processing framework, are becoming more flexible with each design iteration. GPUs offer a large performance advantage over conventional CPUs when used to execute suitable stream based algorithms. This project investigates stream processing in general and applications or parts thereof which can lend themselves to this model with an aim to better harness the available processing power within the now ubiquitous GPU. The application area being looked into is cryptography, this page will be updated to correspond with any progress made.
 Cryptography on GPUs
Publications:
Owen Harrison , John Waldron. GPU Accelerated Cryptography as an OS Service
Appeared In: LNCS Journal Transactions on Computational Science XI, Issue 11, October 2010, Pages 104-131.
Acceptance Rate:
Download: Personal Copy | Dept. Copy
Keywords: OpenBSD Cryptographic Framework, Linux-OCF, OCF, Cryptography, GPU
Owen Harrison , John Waldron. Efficient Acceleration of Asymmetric Cryptography on Graphics Hardware
Appeared In: AfricaCrypt 2009, June 21-25, 2009, Gammarth, Tunisia.
LNCS, Volume 5580/2009, Pages 350-367.
Acceptance Rate: 25 Accepted / 70 Submissions. Rate = 35.7%
Download: Personal Copy | Dept. Copy | SpringerLink
Keywords: Public Key, Cryptography, RSA, GPU, Modular Exponentiation
Owen Harrison , John Waldron. Public Key Cryptography on Graphics Hardware
Appeared In: Eurocrypt 2009, 28th Annual International Conference on the Theory and Applications of Cryptographic Techniques, Cologne, Germany, April 26-30, 2009. (as booklet and poster.)
Acceptance Rate: 49 Accepted / 148 Submissions. Rate = 33.1% (figures incl. booklet/posters)
Download: Personal Copy | Dept. Copy
Keywords: Public Key, Cryptography, RSA, GPU, Modular Exponentiation
Owen Harrison , John Waldron. Practical Symmetric Key Cryptography on Modern Graphics Hardware
Appeared In: 17th USENIX Security Symposium July 28 - August 1, 2008, San Jose, CA. Pages 195-209.
Acceptance Rate: 27 Accepted / 170 Submissions. Rate = 15.9%
Download: Personal Copy | Dept. Copy | USENIX Copy
Keywords: Private Key, Cryptography, AES, GPU, CUDA, DX10
Owen Harrison , John Waldron. AES Encryption Implementation and Analysis on Commodity Graphics Processing Units
Appeared In: 9th Workshop on Cryptographic Hardware and Embedded Systems, CHES 2007, Vienna, Austria, September 10 - 13, 2007.
LNCS, Volume 4727/2007, Pages 209-226.
Acceptance Rate: 31 Accepted / 99 Submissions. Rate = 31%
Download: Personal Copy | Dept. Copy | SpringerLink
Keywords: Private Key, Cryptography, AES, GPU, OpenGL, DX9
Other Publications relating to cryptography and GPUs:
(Up to date as of August, 2009. Mail me if you feel left out - harrisoo at cs.tcd.ie)

- G. Kedem and Y. Ishihara, "Brute Force Attack On Unix Passwords With SIMD Computer", Proceedings of the 8th USENIX Security Symposium, Washington, D.C., USA, August 23-26, 1999.
- D. Cook, J. Ioannidis, A. Keromytis and J. Luck, "CryptoGraphics: Secret Key Cryptography Using Graphics Cards". In RSA Conference, Cryptographer's Track (CT-RSA), February 2005.
- D. L. Cook, R. Baratto and A. D. Keromytis, "Remotely Keyed CryptoGraphics - Secure Remote Display Access Using (Mostly) Untrusted Hardware". In Proceedings of ICICS, LNCS 3783, pages 363-375, December 2005.
- N. Jacob, C. Brodley, "Offloading IDS Computation to the GPU," 22nd Annual Computer Security Applications Conference (ACSAC'06), 2006.
- S. Fleissner, "GPU-Accelerated Montgomery Exponentiation". Computational Science - ICCS 2007, 7th International Conference. Beijing, China. May 27-30, 2007.
- Hubert Nguyen (Nvidia Corporation), "GPU Gems 3 - AES Encryption and Decryption on the GPU - Chapter 36". 2007.
- J. Yang and J. Goodman, "Symmetric Key Cryptography on Modern Graphics Hardware". ASIACRYPT 2007. Kuching, Malaysia. December 2-6, 2007.
- A. Moss, D. Page and N.P. Smart, "Toward Acceleration of RSA Using 3D Graphics Hardware". 11th IMA International Conference on Cryptography and Coding. Cirencester, UK. December 18-20, 2007.
- S.A. Manavski, "CUDA Compatible GPU as an Efficient Hardware Accelerator for AES Cryptography". IEEE International Conference on Signal Processing and Communications, 2007. ICSPC 2007. Dubai. November 24-27, 2007.
- U. Rosenberg. "Using Graphic Processing Unit in Block Cipher Calculations". University of Tartu. http://math.ut.ee/~uraes/openssl-gpu/. 2007.
- S. Tzeng, L. Wei. "Parallel White Noise Generation on a GPU via Cryptographic Hash". Proceedings of the 2008 symposium on Interactive 3D graphics and games. Redwood City, California. February, 2008. Pages 79-87
- M. Seshadrinathan, K.L. Dempski, "Implementation of Advanced Encryption Standard for encryption and decryption of images and text on a GPU". IEEE Computer Society Conference on Computer Vision and Pattern Recognition Workshops. Anchorage, AK, USA. June, 2008.
- N. Pilkington1, B. Irwin, "A Canonical Implementation Of The Advanced Encryption Standard On The Graphics Processing Unit." Appeared as a "Research in Progress Paper" in the Innovative Minds Conference. Johannesburg, South Africa. 7 - 9 July 2008.
- R. Szerwinski and T. Güneysu, "Exploiting the Power of GPUs for Asymmetric Cryptography". 10th International Workshop on Cryptographic Hardware and Embedded Systems. Washington DC, USA. August 10-13, 2008.
- Y. Yeom, Y. Cho and M. Yung, "High-Speed Implementations of Block Cipher ARIA Using Graphics Processing Units". 2008 International Conference on Multimedia and Ubiquitous Engineering. Busan, Korea. April 24-26, 2008.
- G. Vasiliadis, S. Antonatos, M. Polychronakis, E. P. Markatos and S. Ioannidis, "Gnort: High Performance Network Intrusion Detection Using Graphics Processors". In Proceedings of the 11th International Symposium On Recent Advances In Intrusion Detection (RAID). September 2008, Boston, MA, USA.
- Boeing, A. "Survey and future trends of efficient cryptographic function implementations on GPGPUs". Proceedings of The 6th Australian Digital Forensics Conference. Perth, Western Australia. 1st-3rd December, 2008.
- D. Bernstein, T. Chen, C. Cheng, T. Lange, B. Yang. "ECM on Graphics Cards". Proceedings of the 28th Annual International Conference on Advances in Cryptology: the Theory and Applications of Cryptographic Techniques. April 2009, Cologne, Germany. Pages 483 - 501.
 GPGPU
Publications:
Owen Harrison , John Waldron. Optimising Data Movement Rates For Parallel Processing Applications On Graphics Processors.
Appeared In: Parallel and Distributed Computing and Networks, PDCN 2007, Innsbruck, Austria, February 13 - 15, 2007.
Download: Personal Copy | Dept. Copy
Keywords: GPGPU, Data Transfer, PCI, OpenGL, DX9
 Project Pages
Transfer Bench OpenGL Tool which allows the investigation of transfer rates both to and from the graphics card across the system bus under a large array of configuration states.
Very very rough AES and RSA code I don't have time any more to spend at this, but there have been a number of people looking for the code for AES and RSA on CUDA. This page contains a snapshot of code I think may work. Read the page for more detail.
 Graphics Links
General information on OpenGL
Old but useful copy of OpenGL Guide
Old but useful copy of OpenGL Reference manual
General purpose GPU aggregation site
Graphics programming course with useful links
NVIDIA Tutorial on GPU Programming
General Purpose Processing on GPUs introductory presentation
Description of Nvidia's 6 series GPU architecture
Introduction to Stream Processing
Paper about Graphics Card as a Stream Processor
Recent performance analysis of GPUs for general purpose applications
Introduction to PCI Express(new gpu(and others)bus interface standard)
Graphics programming tips
Nvidia GPU Gems 1 sample chapters
Nvidia GPU Gems 2 sample chapters
Nvidia GPU Gems 3, Free Online ;)
Nvidia architecture documents page
Nvidia 6800 Ultra Technical Report from Extreme Tech
Nvidia G80 Review
Nvidia GT200 Review
 Cryptography Links
http://www1.cs.columbia.edu/~dcook/pubs/CTRSA-corrected.pdf
Slightly different from above
http://www.cs.unc.edu/~fchinchi/courses/290-gpgp/gpgp-cryptography.ppt
http://www.cs.columbia.edu/~dcook/graphics.shtml
http://en.wikipedia.org/wiki/Data_Encryption_Standard
http://en.wikipedia.org/wiki/Advanced_Encryption_Standard
Handbook of Applied Cryptography - Read this before asking questions!