Fast Cryptographic Computation Via Function Stitching

Fast Cryptographic Computation Via Function Stitching

Executive SummaryCryptographic applications often run more than one independent algorithm such as encryption and authentication. This fact provides a high level of parallelism, which can be exploited by software and converted into instruction-level parallelism to improve overall performance on modern super-scalar processors. We present fast and efficient methods of computing such pairs of functions on Intel® architecture processors using a method called “function stitching.” Instead of computing pairs of functions sequentially as is done today in applications/libraries, we replace the function calls by a single call to a composite function that implements both algorithms. The execution time of this composite function can be made significantly shorter than the sums of the execution times for the individual functions and, in many cases, close to the execution time of the slower function.

Executive SummaryCryptographic applications often run more than one independent algorithm such as encryption and authentication. This fact provides a high level of parallelism, which can be exploited by software and converted into instruction-level parallelism to improve overall performance on modern super-scalar processors. We present fast and efficient methods of computing such pairs of functions on Intel® architecture processors using a method called “function stitching.” Instead of computing pairs of functions sequentially as is done today in applications/libraries, we replace the function calls by a single call to a composite function that implements both algorithms. The execution time of this composite function can be made significantly shorter than the sums of the execution times for the individual functions and, in many cases, close to the execution time of the slower function.