Code for both encryption and decryption are highly cluttered with unnecessary constructs and are both functionally incorrect. Multiplier used also has extensive delay. Currently unusable even after being sanitized.
Tested with ISE 12.4 using Xilinx Spartan3 XC3S1000.