Novel Algorithms And Hardware Architectures For Computational Subsystems Used In Cryptography And Error Correction Coding