let n, p, q, k1, k2 be Nat; ( p is prime & q is prime & p <> q & n = p * q & k1, Euler n are_coprime & (k1 * k2) mod (Euler n) = 1 implies for m being Element of NAT st m < n holds
Crypto ((Crypto (m,n,k1)),n,k2) = m )
assume that
A1:
p is prime
and
A2:
q is prime
and
A3:
p <> q
and
A4:
n = p * q
and
A5:
k1, Euler n are_coprime
and
A6:
(k1 * k2) mod (Euler n) = 1
; for m being Element of NAT st m < n holds
Crypto ((Crypto (m,n,k1)),n,k2) = m
A7:
q > 1
by A2, INT_2:def 4;
A8:
p > 1
by A1, INT_2:def 4;
A9: Euler n =
(Euler p) * (Euler q)
by A1, A2, A3, A4, EULER_1:21, INT_2:30
.=
(p - 1) * (Euler q)
by A1, EULER_1:20
.=
(p - 1) * (q - 1)
by A2, EULER_1:20
;
A10:
n > 1
by A4, A8, A7, XREAL_1:161;
A11:
( p <> 0 & q <> 0 )
by A1, A2, INT_2:def 4;
then reconsider p1 = p - 1, q1 = q - 1 as Element of NAT by INT_1:3;
n <> 0
by A4, A11, XCMPLX_1:6;
then A12:
Euler n <> 0
by Th42;
( not p1 = 1 or not q1 = 1 )
by A3;
then A13:
p1 * q1 <> 1
by NAT_1:15;
A14:
k1 <> 0
A15:
k2 <> 0
by A6, NAT_D:26;
A16:
q > 0
by A2, INT_2:def 4;
let m be Element of NAT ; ( m < n implies Crypto ((Crypto (m,n,k1)),n,k2) = m )
assume A17:
m < n
; Crypto ((Crypto (m,n,k1)),n,k2) = m
A18:
p > 0
by A1, INT_2:def 4;
now Crypto ((Crypto (m,n,k1)),n,k2) = mper cases
( m = 0 or m = 1 or ( m <> 0 & m <> 1 ) )
;
suppose A19:
m = 0
;
Crypto ((Crypto (m,n,k1)),n,k2) = mthen
m |^ k1 = 0
by A14, NAT_1:14, NEWTON:11;
then
(m |^ k1) mod n = 0
by NAT_D:26;
then
(Crypto (m,n,k1)) |^ k2 = 0
by A15, NAT_1:14, NEWTON:11;
hence
Crypto (
(Crypto (m,n,k1)),
n,
k2)
= m
by A19, NAT_D:26;
verum end; suppose A21:
(
m <> 0 &
m <> 1 )
;
Crypto ((Crypto (m,n,k1)),n,k2) = mA22:
for
t being
Element of
NAT holds
(m |^ (((t * p1) * q1) + 1)) mod n = m
proof
let t be
Element of
NAT ;
(m |^ (((t * p1) * q1) + 1)) mod n = m
now (m |^ (((t * p1) * q1) + 1)) mod n = m
m |^ ((t * p1) * q1) >= 1
by A21, NAT_1:14, PREPOWER:11;
then
(m |^ ((t * p1) * q1)) - 1
>= 1
- 1
by XREAL_1:9;
then reconsider a =
(m |^ ((t * p1) * q1)) - 1 as
Element of
NAT by INT_1:3;
A23:
p divides m * a
q divides m * a
then
p * q divides m * a
by A1, A2, A3, A23, Th4, INT_2:30;
then consider k being
Nat such that A26:
m * a = (p * q) * k
by NAT_D:def 3;
m * ((m |^ ((t * p1) * q1)) - 1) =
(m * (m |^ ((t * p1) * q1))) - (m * 1)
.=
(m |^ (((t * p1) * q1) + 1)) - m
by NEWTON:6
;
then
(m |^ (((t * p1) * q1) + 1)) - (m - m) = (n * k) + m
by A4, A26, XCMPLX_1:37;
hence
(m |^ (((t * p1) * q1) + 1)) mod n = m
by A17, NAT_D:def 2;
verum end;
hence
(m |^ (((t * p1) * q1) + 1)) mod n = m
;
verum
end; reconsider t =
(k1 * k2) div (Euler n) as
Element of
NAT ;
k1 * k2 =
((p1 * q1) * t) + 1
by A6, A12, A9, NAT_D:2
.=
((t * p1) * q1) + 1
;
then
(m |^ (k1 * k2)) mod n = m
by A22;
then
((m |^ k1) |^ k2) mod n = m
by NEWTON:9;
hence
Crypto (
(Crypto (m,n,k1)),
n,
k2)
= m
by EULER_2:22;
verum end; end; end;
hence
Crypto ((Crypto (m,n,k1)),n,k2) = m
; verum