Applications Of Factoring In Cryptography