Patent ID: 7916864

Claim:
A computing device comprising: a processing unit for executing a cryptographic application program stored in memory; and a graphics processing unit that is controlled by a device driver stored in memory, wherein the device driver enables a wide multiplication function to be executed by the graphics processing unit, wherein the graphics processing unit comprises 16 single instruction, multiple data (SIMD) processing units and each SIMD unit is capable of processing 32 threads in parallel, and executing the wide multiplication function includes: splitting a multiplicand into smaller multiplicands; splitting a multiplier into smaller multipliers; generating partial product generation operations, wherein each partial product generation operation involves one smaller multiplicand and one corresponding smaller multiplier; organizing the partial product generation operations into threaded operations; executing the threaded operations by the SIMD processing units to generate threaded results; and executing a summation operation or a shifting operation to combine the threaded results to produce an arithmetically correct wide multiplication result, wherein the cryptographic application program includes instructions for invoking an encryption or decryption special function that is called from a special function library, the encryption or decryption special function in turn calling the wide multiplication function that is executed in the graphics processing unit through the device driver.