Archive for August, 2020

Day 1 — Introduction and Goals

August 31st, 2020 1 comment

Hello, and again, welcome to Implementing Cryptography with OpenCL, or ICOC for short!

I am Kyle Jenkins, and I am tackling this project to gain more experience in programming in the graphical interface. The goal of the project is to implement a cryptographic hash in a graphic environment, rather than in the CPU, in order to encrypt and decrypt values. To do this, I will be using OpenCL and using the BLAKE2 hash function.

Open Computing Language, or OpenCL, is an open-source standard that allows for parallel and cross-platform programming. This standard will allow for a connection between the CPU and the graphical environments. This will be necessary to activate the cryptographic hash function that will be processed within the graphics card.

BLAKE2 is a cryptographic hash function that is at least as secure as and faster than SHA-3, another cryptographic hash function. It is also one of the hashing components of Wireguard, a VPN service. The BLAKE2 function will be implemented so that it will be processed using OpenCL in the graphics card.

The final goal is to be able to accurately write a complete algorithm that will hash values using the BLAKE2 function through the graphics card, using OpenCL as the parallel programming standard, and encrypt/decrypt the input into an output. The algorithm would first begin on the CPU with an input of the values to encrypt or decrypt. Then, the algorithm would call functions written to be processed within the graphical environment and create a BLAKE2 hash. Finally, the graphical environment would take the input and, using the hash, encrypt or decrypt the input and return the results as the output, back onto the CPU.

This blog will be where I post my progress as I research and develop this algorithm. Here, I will post results of my research, studies, and progress toward the algorithm. You can expect at the very least two posts during the business week and one post during the weekend!

Thank you for your interest in my project!

Kyle Jenkins.

Implementing CryptoSystems using OpenCL

August 31st, 2020 No comments

In this project, we will look at ways to implement Cryptographic hashing using the OpenCL graphics library.  While “fast hashing” is considered bad for algorithms that use hashes to store passwords, it can be good for cryptographic hashes used to verify file integrity.

Most cryptographic hashing algorithms are intended to be performed sequentially to maximize confusion and diffusion of information, but for some applications, algorithms can be modified to use multiple cores, including multiple GPU cores.

This semester, we will explore whether we can parallelize existing cryptographic hashing algorithms, such as Blake2, and then think about ways in which novel cryptographic algorithms can take advantage of GPU processing.

Categories: Uncategorized Tags:

Hello, World! Welcome to ICOC!

August 31st, 2020 No comments

Welcome to Implementing Cryptography with OpenCL!

The goal for this blog is to report progress towards the project of implementing cryptographic encryption and decryption through the graphics card, instead of the CPU.

This is just a test post to get comfortable with the blog. More, and detailed, information will be shared later today.

I hope you enjoy what’s in store!

Kyle Jenkins.

Categories: Uncategorized Tags: