1. A data security system, comprising: a processing unit configurable to execute microcode; a first memory device configurable to store message data to be secured; and a second memory device configurable to store the microcode to be executed by the processing unit and constants, wherein the microcode comprises an instruction set defining a cryptographic algorithm for use in securing the message data, the instruction set comprising bitwise instructions corresponding to and implementing each step of the cryptographic algorithm, the bitwise instructions, upon execution by the processing unit, cause the processing unit to process bits of the message data according to each of the steps of the cryptographic algorithm, the system further including a program counter having more than one microcode counter selectable by a register and configured to identify an instruction in the instruction set being executed by the processing unit or a next instruction in the instruction set to be executed by the processing unit; a multiplexer coupled to the first memory device and the second memory device, the multiplexer configured to accept as inputs the constants from the second memory device and bit blocks of message data from the first memory device and to output the constants or the bit blocks of the message data in accord with the instruction set; a shift/rotate unit coupled to an output of the multiplexer, the shift/rotate unit configured to receive the bit blocks of the message data from the first memory device or the constants from the second memory device and to shift/rotate bits in the bit blocks or constants in accord with the instruction set from the second memory device; an arithmetic logic unit configured to receive the shifted/rotated bits and to perform arithmetic and logical operations on the shifted/rotated bits in accord with the instruction set; and an accumulator coupled to the arithmetic logic unit and the first memory device, the accumulator configured to facilitate the arithmetic and logical operations performed by the arithmetic logic unit and to store secured message data in the first memory.