1. A method for accelerating cryptographic processing of a cryptographic algorithm, comprising: breaking the cryptographic algorithm into a plurality of cryptographic primitives; determining for each of the cryptographic primitives if each cryptographic primitive is capable of being executed in parallel; executing the cryptographic primitive in parallel if the cryptographic primitive is fully capable of being executed in parallel; executing a part of the cryptographic primitive in parallel that if the cryptographic primitive is partially capable of being executed in parallel; sequentially executing the cryptographic primitive if the cryptographic primitive is not capable of being executed in parallel; and distributing processing of the cryptographic primitive fully capable of being executed in parallel or the partially-capable of being executed in parallel cryptographic primitive to one or more devices capable of parallel execution of the cryptographic primitive.