# opencl-ciphers **Repository Path**: JasonNiuSDU/opencl-ciphers ## Basic Information - **Project Name**: opencl-ciphers - **Description**: An OpenCL implementation of most common ciphers - **Primary Language**: C - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-07-27 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # opencl-cipher This project provides the open-cl implementations of the following ciphers, with the support for CTR mode. ## Supported ciphers - AES128 - AES192 - AES256 - CAMELLIA128 - CAMELLIA192 - CAMELLIA256 - CLEFIA128 - CLEFIA192 - CLEFIA256 - DES - DES2 - DES3 - HIGHT - MISTY1 - PRESENT MEMORY - PRESENT SPEED - SEED OLD - SEED ## Prerequisites To use this library you need to install on your machine the opencl framework and the drivers of your devices (cpu/gpu) ## Project details The project is divided in 3 main parts. The implementation itself of the algorithms. The test suite that verifies the correctness of the implemented algorithms. The benchmarks suite that can be used to verify the performances of the algorithms by choosing the parallelization parameters and the file size. By calling the makefile a binary executable is produced that call all the functions of the test suite and tries some default benchmarks. `make` The output of the benchmarks suite are .dat file that provide the statistics about the performances measured. They can be visualized with gnuplot For more details check : benchmarks/benchmarks_main.c and /tests/test_main.c ## Usage The functions implemented in this library need a pointer to a file to encrypt a pointer that will point to the output, a valid key, a work group size and the device option. Example: `cl_event aes128CtrEncrypt(char* fileName, word* key, uint8_t* output,size_t local_item_size, char* deviceType);` ## Authors Angelo Gallarello Francesco Lattari