A Survey of Public-key Cryptography over Non-abelian Groups