Okamoto–Uchiyama cryptosystem