Why are prime numbers used in public-key cryptography? I heard it is due to the difficulty of factoring large numbers into their prime factors. Are there any more reasons? Please elaborate.