d = (e ** -1) % f
но он делает совсем не то, что надо (брал такие же циферки) F = (P - 1) * (Q - 1)
print "Вычисляем функцию Эйлера F(n)=(p-1)*(Q-1)"
print "F =",F
# Use first simple number.
Ko = 0
i = 2
while i < F:
e = Euclid(F, i)
if e == 1:
Ko = i;
break;
i += 1
print "Выбираем значение открытого ключа Кo с соблюдением условий"
print "1<Кo<F(n), Кo и F(n) – взаимно простые числа (их НОД=1)"
print "Ko =",Ko
i = 2
while i < n:
if (i * Ko) % F == 1:
Kc = i
break
i += 1
print "Находим Kc =",Kc
C = M**Ko % n
print "Шифрование: C =",C
Md = C**Kc % n
print "Расшифрование: M =",Md