Gen Wiener RSA
public text v1 · immutableGenWienerRSA[len_] :=
Module[{p, q, n, \[Phi], d, e, dlen = Floor[len/4]},
{p, q} = RandomPrime[{2^(len - 1), 2^len}, 2];
n = p q;
d = \[Phi] = (p - 1) (q - 1);
While[GCD[d, \[Phi]] != 1,
d = RandomInteger[{2^(dlen - 1), 2^dlen}];
If[EvenQ[d], d++];
];
e = PowerMod[d, -1, (p - 1) (q - 1)];
Return[{e, n}]
]