A public-key cryptosystem with worst-case/ average-case equivalence