Hash functions like SHA-1 or MD5 are one of the most important cryptographic primitives, especially in the field of information integrity. Considering the fact that increasing methods have been proposed to break these hash algorithms, a competition for a new family of hash functions was held by the US National Institute of Standards and Technology. Keccak was the winner and selected to be the next generation of hash function standard, named SHA-3. We aim to implement and optimize Batch mode based Keccak algorithms on NVIDIA GPU platform. Our work consider the case of processing multiple hash tasks at once and implement the case on CPU and GPU respectively. Our experimental results show that GPU performance is significantly higher than CPU is the case of processing large batches of small hash tasks.
GPU is widely used in various applications that require huge computational power. In this paper, we contribute to the cryptography research community by presenting techniques to accelerate symmetric block ciphers (IDEA, Blowfish and Threefish) in NVIDIA GTX 690 with Kepler architecture. The results are benchmarked against implementation in OpenMP and existing GPU implementations in the literature. We are able to achieve encryption throughput of 90.3 Gbps, 50.82 Gbps and 83.71 Gbps for IDEA, Blowfish and Threefish respectively. Block ciphers can be used as pseudorandom number generator (PRNG) when it is operating under counter mode (CTR), but the speed is usually slower compare to other PRNG using lighter operations. Hence, we attempt to modify IDEA and Blowfish in order to achieve faster PRNG generation. The modified IDEA and Blowfish manage to pass all NIST Statistical Test and TestU01 Small Crush except the more stringent tests in TestU01 (Crush and BigCrush).