Schrijf de functie rsa_test(N: int, i: int) -> bool
die de twee grootste priemgetallen \(p_1\) en \(p_2\) bepaalt die kleiner zijn dan N
. De functie kiest dan \(n = p_1 \cdot p_2\) en het kleinste gehele getal \(e > 1\) dat gebruikt kan worden voor RSA-encryptie. Vervolgens wordt het getal i
gecodeerd aan de hand van de publieke sleutel, en terug gedecodeerd aan de hand van de private sleutel. De functie geeft een bool
terug die aangeeft of het resultaat na decodering hetzelfde is als het oorspronkelijke getal.
Deze functie zal True
teruggeven wanneer N
voldoende groot of i
voldoende klein is. Waarom is dit niet zo voor \(N = 10\) en \(i = 57\)?
Voorbeelden:
>>> rsa_test(1000, 57)
True
>>> rsa_test(100, 57)
True
>>> rsa_test(10, 57)
False
>>> rsa_test(10, 33)
True