Abstract : Most encryption algorithms are designed without regard to their performance on top-of-the-line microprocessors. The purpose of this thesis is to discuss the software optimization techniques and how they should be applied in the design of encryption algorithms. General software optimization principles are presented that apply to almost all modern CPUs. Several well known algorithms which are MARS, RC6 and BLOWFISH are examined to show where these principles are applied leading to sub-optimal performance through the under Windows 2000 cryptography system that was previously designed to achieve on-line end-to-end encryption between LAN nodes preventing by this encryption any intruder from being connected to the network. The implementation are executed through the cryptography system mentioned above by using Intel Pentium III, IV and AMD Athelon XP1800+ processors to show the architecture differences among these processors and how they affect the software optimization and system performance. The total optimization rate enhancements of MARS and BLOWFISH algorithms reached to their maximum values when using Intel Pentium III processor where as RC6 maximum rate enhancement occurred when using AMD processor which yields that the complexity of the algorithm and the architecture of the processor are the main factors that affect the software optimization for encryption algorithm.