Estudio sobre la implementación paralela de OCB de acceso aleatorio

Estudio sobre la implementación paralela de OCB de acceso aleatorio

Luis Alejandro Pérez Sarmiento
 

Texto completo de la Tesis           Examen 

 


Resumen  

En este trabajo se estudia el nivel de paralelismo de dos diferentes versiones del algoritmo de cifrado autenticado OCB (Offset Code Book). Las versiones incluidas en el presente trabajos son OCB3 y OCBRA (random access OCB). OCB es instanciado utilizando el cifrador por bloques AES (Advanced Encryption Starndard). El grado de paralelismo de OCB depende del cálculo de un valor Δi que sirve para enmascarar la entrada y la salida del cifrador por bloques de la siguiente manera: EK(P ⊕Δ)⊕Δ donde EK(·) es el cifrador por bloques y P es un bloque de mensaje. En OCB3 el Δ es calculado de una manera secuencial, es decir, Δi es dependiente de Δi−1. Como una solución a lo anterior se propuso OCBRA, en el cual todos los Δi pueden ser calculados de manera independiente. Ya que todas las versiones de OCB pueden ser ejecutadas eficientemente en pipeline, se realizaron experimentos en el procesador Intel i7-11800H los cuales contienen registros de 512 bits, y los conjuntos de instrucciones AVX512 y VAES (AES-NI vectorial que permite cifrar 4 bloques de AES-128 en paralelo). La programación se realizó en lenguaje C utilizando las instrucciones intrínsecas de Intel. Para demostrar que OCBRA tiene un grado mayor de paralelización se utilizaron GPUs (procesadores gráficos). OCB3 también puede ser paralelizado en GPUs pero requiere que todos los valores Δi sean precalculados. En este caso la programación se realizó en el lenguaje CUDA. Los resultados obtenidos muestran que OCBRA presenta una mejora significativa en comparación con OCB3, OCBRA tiene un Throughput de 75.58 Gb/s contra los 54,57 Gb/s del OCB3 en sus respectivas versiones de 512 bits en procesadores Intel. Los experimentos muestran que OCBRA permite un mayor nivel de paralelización debido a la forma como se calculan los valores Δi, lo que permite un mejor uso del pipeline de instrucciones del procesador.

 

Abstract

In this work, we study the parallelism of two versions of the OCB (Offset Code Book) authenticated encryption algorithm. The versions included in this work are OCB3 and OCBRA (random acces OCB). OCB is instantiated using the block cipher AES(Advanced Encryption Starndard). The grade of parallelism depends on delta calculation which masks the input and output of the block cipher as follows EK(P ⊕ Δ) ⊕ Δ where EK(·) is the block cipher, and P is a message block. In OCB3, the Δ calculation is sequential. The Δi depends onΔi−1. As a solution to the above, OCBRA was proposed. In OCBRA, all delta can be calculated independently. All versions of OCB could be executed efficiently in the pipeline. We perform different experiments on Intel processor I7-11800H, which contain 512-bit registers and AVX512 and VAES set of instructions (AES-NI vectorial, which allows encrypting four blocks in parallel). The codes are in C using an Intel intrinsics set of instructions. To prove OCBRA has a more significant parallel grade. We use GPUs (Graphics Processors Units). OCB3 can also be parallelized on GPUs but requires computing all Δi values. In this case, all the codes are in CUDA. The results obtained prove that OCBRA has the best performance than OCB3. OCBRA has a Throughput of 75.58 Gb/s against 54,57 Gb/s of OCB3 in theirs 512bits versions in Intel processor. The results prove that OCBRA allows a more significant parallel grade due to the way to calculate Δi values allowing better use of the processor’s instruction pipeline.