Public-key cryptosystem using braid groups