let n be non empty Element of NAT ; :: thesis: for lk being Element of NAT
for Key1, Key2 being Matrix of lk,6, NAT
for r being Element of NAT
for m being FinSequence of NAT st lk >= r & (2 to_power n) + 1 is prime & len m >= 4 & m . 1 is_expressible_by n & m . 2 is_expressible_by n & m . 3 is_expressible_by n & m . 4 is_expressible_by n & ( for i being Element of NAT st i <= r holds
( Key1 * i,1 is_expressible_by n & Key1 * i,2 is_expressible_by n & Key1 * i,3 is_expressible_by n & Key1 * i,4 is_expressible_by n & Key1 * i,5 is_expressible_by n & Key1 * i,6 is_expressible_by n & Key2 * i,1 is_expressible_by n & Key2 * i,2 is_expressible_by n & Key2 * i,3 is_expressible_by n & Key2 * i,4 is_expressible_by n & Key2 * i,5 is_expressible_by n & Key2 * i,6 is_expressible_by n & Key2 * i,1 = INV_MOD (Key1 * i,1),n & Key2 * i,2 = NEG_MOD (Key1 * i,3),n & Key2 * i,3 = NEG_MOD (Key1 * i,2),n & Key2 * i,4 = INV_MOD (Key1 * i,4),n & Key1 * i,5 = Key2 * i,5 & Key1 * i,6 = Key2 * i,6 ) ) holds
(compose ((IDEA_P_F Key1,n,r) ^ (IDEA_Q_F Key2,n,r)),MESSAGES ) . m = m
let lk be Element of NAT ; :: thesis: for Key1, Key2 being Matrix of lk,6, NAT
for r being Element of NAT
for m being FinSequence of NAT st lk >= r & (2 to_power n) + 1 is prime & len m >= 4 & m . 1 is_expressible_by n & m . 2 is_expressible_by n & m . 3 is_expressible_by n & m . 4 is_expressible_by n & ( for i being Element of NAT st i <= r holds
( Key1 * i,1 is_expressible_by n & Key1 * i,2 is_expressible_by n & Key1 * i,3 is_expressible_by n & Key1 * i,4 is_expressible_by n & Key1 * i,5 is_expressible_by n & Key1 * i,6 is_expressible_by n & Key2 * i,1 is_expressible_by n & Key2 * i,2 is_expressible_by n & Key2 * i,3 is_expressible_by n & Key2 * i,4 is_expressible_by n & Key2 * i,5 is_expressible_by n & Key2 * i,6 is_expressible_by n & Key2 * i,1 = INV_MOD (Key1 * i,1),n & Key2 * i,2 = NEG_MOD (Key1 * i,3),n & Key2 * i,3 = NEG_MOD (Key1 * i,2),n & Key2 * i,4 = INV_MOD (Key1 * i,4),n & Key1 * i,5 = Key2 * i,5 & Key1 * i,6 = Key2 * i,6 ) ) holds
(compose ((IDEA_P_F Key1,n,r) ^ (IDEA_Q_F Key2,n,r)),MESSAGES ) . m = m
let Key1, Key2 be Matrix of lk,6, NAT ; :: thesis: for r being Element of NAT
for m being FinSequence of NAT st lk >= r & (2 to_power n) + 1 is prime & len m >= 4 & m . 1 is_expressible_by n & m . 2 is_expressible_by n & m . 3 is_expressible_by n & m . 4 is_expressible_by n & ( for i being Element of NAT st i <= r holds
( Key1 * i,1 is_expressible_by n & Key1 * i,2 is_expressible_by n & Key1 * i,3 is_expressible_by n & Key1 * i,4 is_expressible_by n & Key1 * i,5 is_expressible_by n & Key1 * i,6 is_expressible_by n & Key2 * i,1 is_expressible_by n & Key2 * i,2 is_expressible_by n & Key2 * i,3 is_expressible_by n & Key2 * i,4 is_expressible_by n & Key2 * i,5 is_expressible_by n & Key2 * i,6 is_expressible_by n & Key2 * i,1 = INV_MOD (Key1 * i,1),n & Key2 * i,2 = NEG_MOD (Key1 * i,3),n & Key2 * i,3 = NEG_MOD (Key1 * i,2),n & Key2 * i,4 = INV_MOD (Key1 * i,4),n & Key1 * i,5 = Key2 * i,5 & Key1 * i,6 = Key2 * i,6 ) ) holds
(compose ((IDEA_P_F Key1,n,r) ^ (IDEA_Q_F Key2,n,r)),MESSAGES ) . m = m
for m being FinSequence of NAT
for r being Element of NAT st lk >= r & (2 to_power n) + 1 is prime & len m >= 4 & m . 1 is_expressible_by n & m . 2 is_expressible_by n & m . 3 is_expressible_by n & m . 4 is_expressible_by n & ( for i being Element of NAT st i <= r holds
( Key1 * i,1 is_expressible_by n & Key1 * i,2 is_expressible_by n & Key1 * i,3 is_expressible_by n & Key1 * i,4 is_expressible_by n & Key1 * i,5 is_expressible_by n & Key1 * i,6 is_expressible_by n & Key2 * i,1 is_expressible_by n & Key2 * i,2 is_expressible_by n & Key2 * i,3 is_expressible_by n & Key2 * i,4 is_expressible_by n & Key2 * i,5 is_expressible_by n & Key2 * i,6 is_expressible_by n & Key2 * i,1 = INV_MOD (Key1 * i,1),n & Key2 * i,2 = NEG_MOD (Key1 * i,3),n & Key2 * i,3 = NEG_MOD (Key1 * i,2),n & Key2 * i,4 = INV_MOD (Key1 * i,4),n & Key1 * i,5 = Key2 * i,5 & Key1 * i,6 = Key2 * i,6 ) ) holds
(compose ((IDEA_P_F Key1,n,r) ^ (IDEA_Q_F Key2,n,r)),MESSAGES ) . m = m
proof
let m be
FinSequence of
NAT ;
:: thesis: for r being Element of NAT st lk >= r & (2 to_power n) + 1 is prime & len m >= 4 & m . 1 is_expressible_by n & m . 2 is_expressible_by n & m . 3 is_expressible_by n & m . 4 is_expressible_by n & ( for i being Element of NAT st i <= r holds
( Key1 * i,1 is_expressible_by n & Key1 * i,2 is_expressible_by n & Key1 * i,3 is_expressible_by n & Key1 * i,4 is_expressible_by n & Key1 * i,5 is_expressible_by n & Key1 * i,6 is_expressible_by n & Key2 * i,1 is_expressible_by n & Key2 * i,2 is_expressible_by n & Key2 * i,3 is_expressible_by n & Key2 * i,4 is_expressible_by n & Key2 * i,5 is_expressible_by n & Key2 * i,6 is_expressible_by n & Key2 * i,1 = INV_MOD (Key1 * i,1),n & Key2 * i,2 = NEG_MOD (Key1 * i,3),n & Key2 * i,3 = NEG_MOD (Key1 * i,2),n & Key2 * i,4 = INV_MOD (Key1 * i,4),n & Key1 * i,5 = Key2 * i,5 & Key1 * i,6 = Key2 * i,6 ) ) holds
(compose ((IDEA_P_F Key1,n,r) ^ (IDEA_Q_F Key2,n,r)),MESSAGES ) . m = m
defpred S1[
Element of
NAT ]
means (
lk >= $1 &
(2 to_power n) + 1 is
prime &
len m >= 4 &
m . 1
is_expressible_by n &
m . 2
is_expressible_by n &
m . 3
is_expressible_by n &
m . 4
is_expressible_by n & ( for
i being
Element of
NAT st
i <= $1 holds
(
Key1 * i,1
is_expressible_by n &
Key1 * i,2
is_expressible_by n &
Key1 * i,3
is_expressible_by n &
Key1 * i,4
is_expressible_by n &
Key1 * i,5
is_expressible_by n &
Key1 * i,6
is_expressible_by n &
Key2 * i,1
is_expressible_by n &
Key2 * i,2
is_expressible_by n &
Key2 * i,3
is_expressible_by n &
Key2 * i,4
is_expressible_by n &
Key2 * i,5
is_expressible_by n &
Key2 * i,6
is_expressible_by n &
Key2 * i,1
= INV_MOD (Key1 * i,1),
n &
Key2 * i,2
= NEG_MOD (Key1 * i,3),
n &
Key2 * i,3
= NEG_MOD (Key1 * i,2),
n &
Key2 * i,4
= INV_MOD (Key1 * i,4),
n &
Key1 * i,5
= Key2 * i,5 &
Key1 * i,6
= Key2 * i,6 ) ) implies
(compose ((IDEA_P_F Key1,n,$1) ^ (IDEA_Q_F Key2,n,$1)),MESSAGES ) . m = m );
A1:
S1[
0 ]
proof
A2:
len (IDEA_P_F Key1,n,0 ) = 0
by Def17;
A3:
m in MESSAGES
by FINSEQ_1:def 11;
len (IDEA_Q_F Key2,n,0 ) = 0
by Def18;
then
IDEA_Q_F Key2,
n,
0 = {}
;
then (IDEA_P_F Key1,n,0 ) ^ (IDEA_Q_F Key2,n,0 ) =
IDEA_P_F Key1,
n,
0
by FINSEQ_1:47
.=
{}
by A2
;
then
compose ((IDEA_P_F Key1,n,0 ) ^ (IDEA_Q_F Key2,n,0 )),
MESSAGES = id MESSAGES
by FUNCT_7:41;
hence
S1[
0 ]
by A3, FUNCT_1:35;
:: thesis: verum
end;
A4:
for
k being
Element of
NAT st
S1[
k] holds
S1[
k + 1]
proof
let k be
Element of
NAT ;
:: thesis: ( S1[k] implies S1[k + 1] )
assume A5:
S1[
k]
;
:: thesis: S1[k + 1]
assume that A6:
lk >= k + 1
and A7:
(2 to_power n) + 1 is
prime
and A8:
len m >= 4
and A9:
(
m . 1
is_expressible_by n &
m . 2
is_expressible_by n &
m . 3
is_expressible_by n &
m . 4
is_expressible_by n )
and A10:
for
i being
Element of
NAT st
i <= k + 1 holds
(
Key1 * i,1
is_expressible_by n &
Key1 * i,2
is_expressible_by n &
Key1 * i,3
is_expressible_by n &
Key1 * i,4
is_expressible_by n &
Key1 * i,5
is_expressible_by n &
Key1 * i,6
is_expressible_by n &
Key2 * i,1
is_expressible_by n &
Key2 * i,2
is_expressible_by n &
Key2 * i,3
is_expressible_by n &
Key2 * i,4
is_expressible_by n &
Key2 * i,5
is_expressible_by n &
Key2 * i,6
is_expressible_by n &
Key2 * i,1
= INV_MOD (Key1 * i,1),
n &
Key2 * i,2
= NEG_MOD (Key1 * i,3),
n &
Key2 * i,3
= NEG_MOD (Key1 * i,2),
n &
Key2 * i,4
= INV_MOD (Key1 * i,4),
n &
Key1 * i,5
= Key2 * i,5 &
Key1 * i,6
= Key2 * i,6 )
;
:: thesis: (compose ((IDEA_P_F Key1,n,(k + 1)) ^ (IDEA_Q_F Key2,n,(k + 1))),MESSAGES ) . m = m
A11:
k + 1
>= k
by NAT_1:11;
A12:
for
i being
Element of
NAT st
i <= k holds
(
Key1 * i,1
is_expressible_by n &
Key1 * i,2
is_expressible_by n &
Key1 * i,3
is_expressible_by n &
Key1 * i,4
is_expressible_by n &
Key1 * i,5
is_expressible_by n &
Key1 * i,6
is_expressible_by n &
Key2 * i,1
is_expressible_by n &
Key2 * i,2
is_expressible_by n &
Key2 * i,3
is_expressible_by n &
Key2 * i,4
is_expressible_by n &
Key2 * i,5
is_expressible_by n &
Key2 * i,6
is_expressible_by n &
Key2 * i,1
= INV_MOD (Key1 * i,1),
n &
Key2 * i,2
= NEG_MOD (Key1 * i,3),
n &
Key2 * i,3
= NEG_MOD (Key1 * i,2),
n &
Key2 * i,4
= INV_MOD (Key1 * i,4),
n &
Key1 * i,5
= Key2 * i,5 &
Key1 * i,6
= Key2 * i,6 )
proof
let i be
Element of
NAT ;
:: thesis: ( i <= k implies ( Key1 * i,1 is_expressible_by n & Key1 * i,2 is_expressible_by n & Key1 * i,3 is_expressible_by n & Key1 * i,4 is_expressible_by n & Key1 * i,5 is_expressible_by n & Key1 * i,6 is_expressible_by n & Key2 * i,1 is_expressible_by n & Key2 * i,2 is_expressible_by n & Key2 * i,3 is_expressible_by n & Key2 * i,4 is_expressible_by n & Key2 * i,5 is_expressible_by n & Key2 * i,6 is_expressible_by n & Key2 * i,1 = INV_MOD (Key1 * i,1),n & Key2 * i,2 = NEG_MOD (Key1 * i,3),n & Key2 * i,3 = NEG_MOD (Key1 * i,2),n & Key2 * i,4 = INV_MOD (Key1 * i,4),n & Key1 * i,5 = Key2 * i,5 & Key1 * i,6 = Key2 * i,6 ) )
assume
i <= k
;
:: thesis: ( Key1 * i,1 is_expressible_by n & Key1 * i,2 is_expressible_by n & Key1 * i,3 is_expressible_by n & Key1 * i,4 is_expressible_by n & Key1 * i,5 is_expressible_by n & Key1 * i,6 is_expressible_by n & Key2 * i,1 is_expressible_by n & Key2 * i,2 is_expressible_by n & Key2 * i,3 is_expressible_by n & Key2 * i,4 is_expressible_by n & Key2 * i,5 is_expressible_by n & Key2 * i,6 is_expressible_by n & Key2 * i,1 = INV_MOD (Key1 * i,1),n & Key2 * i,2 = NEG_MOD (Key1 * i,3),n & Key2 * i,3 = NEG_MOD (Key1 * i,2),n & Key2 * i,4 = INV_MOD (Key1 * i,4),n & Key1 * i,5 = Key2 * i,5 & Key1 * i,6 = Key2 * i,6 )
then
i <= k + 1
by A11, XXREAL_0:2;
hence
(
Key1 * i,1
is_expressible_by n &
Key1 * i,2
is_expressible_by n &
Key1 * i,3
is_expressible_by n &
Key1 * i,4
is_expressible_by n &
Key1 * i,5
is_expressible_by n &
Key1 * i,6
is_expressible_by n &
Key2 * i,1
is_expressible_by n &
Key2 * i,2
is_expressible_by n &
Key2 * i,3
is_expressible_by n &
Key2 * i,4
is_expressible_by n &
Key2 * i,5
is_expressible_by n &
Key2 * i,6
is_expressible_by n &
Key2 * i,1
= INV_MOD (Key1 * i,1),
n &
Key2 * i,2
= NEG_MOD (Key1 * i,3),
n &
Key2 * i,3
= NEG_MOD (Key1 * i,2),
n &
Key2 * i,4
= INV_MOD (Key1 * i,4),
n &
Key1 * i,5
= Key2 * i,5 &
Key1 * i,6
= Key2 * i,6 )
by A10;
:: thesis: verum
end;
A13:
rng (compose (IDEA_P_F Key1,n,k),MESSAGES ) c= MESSAGES
by Th44;
A14:
rng (compose ((IDEA_P_F Key1,n,k) ^ (<*(IDEA_P (Line Key1,(k + 1)),n)*> ^ <*(IDEA_Q (Line Key2,(k + 1)),n)*>)),MESSAGES ) c= MESSAGES
proof
A15:
rng (compose ((IDEA_P_F Key1,n,k) ^ (<*(IDEA_P (Line Key1,(k + 1)),n)*> ^ <*(IDEA_Q (Line Key2,(k + 1)),n)*>)),MESSAGES ) =
rng (compose (((IDEA_P_F Key1,n,k) ^ <*(IDEA_P (Line Key1,(k + 1)),n)*>) ^ <*(IDEA_Q (Line Key2,(k + 1)),n)*>),MESSAGES )
by FINSEQ_1:45
.=
rng ((IDEA_Q (Line Key2,(k + 1)),n) * (compose ((IDEA_P_F Key1,n,k) ^ <*(IDEA_P (Line Key1,(k + 1)),n)*>),MESSAGES ))
by FUNCT_7:43
;
A16:
rng ((IDEA_Q (Line Key2,(k + 1)),n) * (compose ((IDEA_P_F Key1,n,k) ^ <*(IDEA_P (Line Key1,(k + 1)),n)*>),MESSAGES )) c= rng (IDEA_Q (Line Key2,(k + 1)),n)
proof
let a be
set ;
:: according to TARSKI:def 3 :: thesis: ( not a in rng ((IDEA_Q (Line Key2,(k + 1)),n) * (compose ((IDEA_P_F Key1,n,k) ^ <*(IDEA_P (Line Key1,(k + 1)),n)*>),MESSAGES )) or a in rng (IDEA_Q (Line Key2,(k + 1)),n) )
assume
a in rng ((IDEA_Q (Line Key2,(k + 1)),n) * (compose ((IDEA_P_F Key1,n,k) ^ <*(IDEA_P (Line Key1,(k + 1)),n)*>),MESSAGES ))
;
:: thesis: a in rng (IDEA_Q (Line Key2,(k + 1)),n)
hence
a in rng (IDEA_Q (Line Key2,(k + 1)),n)
by FUNCT_1:25;
:: thesis: verum
end;
rng (IDEA_Q (Line Key2,(k + 1)),n) c= MESSAGES
by RELAT_1:def 19;
hence
rng (compose ((IDEA_P_F Key1,n,k) ^ (<*(IDEA_P (Line Key1,(k + 1)),n)*> ^ <*(IDEA_Q (Line Key2,(k + 1)),n)*>)),MESSAGES ) c= MESSAGES
by A15, A16, XBOOLE_1:1;
:: thesis: verum
end;
A17:
dom (compose (IDEA_P_F Key1,n,k),MESSAGES ) = MESSAGES
by Th44;
A18:
dom (((IDEA_Q (Line Key2,(k + 1)),n) * (IDEA_P (Line Key1,(k + 1)),n)) * (compose (IDEA_P_F Key1,n,k),MESSAGES )) = MESSAGES
proof
dom ((IDEA_Q (Line Key2,(k + 1)),n) * (IDEA_P (Line Key1,(k + 1)),n)) = MESSAGES
by FUNCT_2:def 1;
hence
dom (((IDEA_Q (Line Key2,(k + 1)),n) * (IDEA_P (Line Key1,(k + 1)),n)) * (compose (IDEA_P_F Key1,n,k),MESSAGES )) = MESSAGES
by A13, A17, RELAT_1:46;
:: thesis: verum
end;
A19:
m in MESSAGES
by FINSEQ_1:def 11;
then
(compose (IDEA_P_F Key1,n,k),MESSAGES ) . m in rng (compose (IDEA_P_F Key1,n,k),MESSAGES )
by A17, FUNCT_1:def 5;
then reconsider M =
(compose (IDEA_P_F Key1,n,k),MESSAGES ) . m as
FinSequence of
NAT by A13, FINSEQ_1:def 11;
A20:
(
len M >= 4 &
M . 1
is_expressible_by n &
M . 2
is_expressible_by n &
M . 3
is_expressible_by n &
M . 4
is_expressible_by n )
by A8, A9, Th47;
(
width Key1 = 6 &
width Key2 = 6 )
by A6, MATRIX_1:24;
then A21:
( 1
in Seg (width Key1) & 2
in Seg (width Key1) & 3
in Seg (width Key1) & 4
in Seg (width Key1) & 5
in Seg (width Key1) & 6
in Seg (width Key1) & 1
in Seg (width Key2) & 2
in Seg (width Key2) & 3
in Seg (width Key2) & 4
in Seg (width Key2) & 5
in Seg (width Key2) & 6
in Seg (width Key2) )
by FINSEQ_1:3;
consider k1 being
Element of
NAT such that A22:
k1 = k + 1
;
(
(Line Key1,(k + 1)) . 1
= Key1 * k1,1 &
(Line Key1,(k + 1)) . 2
= Key1 * k1,2 &
(Line Key1,(k + 1)) . 3
= Key1 * k1,3 &
(Line Key1,(k + 1)) . 4
= Key1 * k1,4 &
(Line Key1,(k + 1)) . 5
= Key1 * k1,5 &
(Line Key1,(k + 1)) . 6
= Key1 * k1,6 &
(Line Key2,(k + 1)) . 1
= Key2 * k1,1 &
(Line Key2,(k + 1)) . 2
= Key2 * k1,2 &
(Line Key2,(k + 1)) . 3
= Key2 * k1,3 &
(Line Key2,(k + 1)) . 4
= Key2 * k1,4 &
(Line Key2,(k + 1)) . 5
= Key2 * k1,5 &
(Line Key2,(k + 1)) . 6
= Key2 * k1,6 )
by A21, A22, MATRIX_1:def 8;
then A23:
(
(Line Key1,(k + 1)) . 1
is_expressible_by n &
(Line Key1,(k + 1)) . 2
is_expressible_by n &
(Line Key1,(k + 1)) . 3
is_expressible_by n &
(Line Key1,(k + 1)) . 4
is_expressible_by n &
(Line Key1,(k + 1)) . 5
is_expressible_by n &
(Line Key1,(k + 1)) . 6
is_expressible_by n &
(Line Key2,(k + 1)) . 1
= INV_MOD ((Line Key1,(k + 1)) . 1),
n &
(Line Key2,(k + 1)) . 2
= NEG_MOD ((Line Key1,(k + 1)) . 3),
n &
(Line Key2,(k + 1)) . 3
= NEG_MOD ((Line Key1,(k + 1)) . 2),
n &
(Line Key2,(k + 1)) . 4
= INV_MOD ((Line Key1,(k + 1)) . 4),
n &
(Line Key2,(k + 1)) . 5
= (Line Key1,(k + 1)) . 5 &
(Line Key2,(k + 1)) . 6
= (Line Key1,(k + 1)) . 6 )
by A10, A22;
(compose ((IDEA_P_F Key1,n,(k + 1)) ^ (IDEA_Q_F Key2,n,(k + 1))),MESSAGES ) . m =
(compose (((IDEA_P_F Key1,n,k) ^ <*(IDEA_P (Line Key1,(k + 1)),n)*>) ^ (IDEA_Q_F Key2,n,(k + 1))),MESSAGES ) . m
by Th37
.=
(compose (((IDEA_P_F Key1,n,k) ^ <*(IDEA_P (Line Key1,(k + 1)),n)*>) ^ (<*(IDEA_Q (Line Key2,(k + 1)),n)*> ^ (IDEA_Q_F Key2,n,k))),MESSAGES ) . m
by Th38
.=
(compose ((((IDEA_P_F Key1,n,k) ^ <*(IDEA_P (Line Key1,(k + 1)),n)*>) ^ <*(IDEA_Q (Line Key2,(k + 1)),n)*>) ^ (IDEA_Q_F Key2,n,k)),MESSAGES ) . m
by FINSEQ_1:45
.=
(compose (((IDEA_P_F Key1,n,k) ^ (<*(IDEA_P (Line Key1,(k + 1)),n)*> ^ <*(IDEA_Q (Line Key2,(k + 1)),n)*>)) ^ (IDEA_Q_F Key2,n,k)),MESSAGES ) . m
by FINSEQ_1:45
.=
((compose (IDEA_Q_F Key2,n,k),MESSAGES ) * (compose ((IDEA_P_F Key1,n,k) ^ (<*(IDEA_P (Line Key1,(k + 1)),n)*> ^ <*(IDEA_Q (Line Key2,(k + 1)),n)*>)),MESSAGES )) . m
by A14, FUNCT_7:50
.=
((compose (IDEA_Q_F Key2,n,k),MESSAGES ) * ((compose (<*(IDEA_P (Line Key1,(k + 1)),n)*> ^ <*(IDEA_Q (Line Key2,(k + 1)),n)*>),MESSAGES ) * (compose (IDEA_P_F Key1,n,k),MESSAGES ))) . m
by A13, FUNCT_7:50
.=
((compose (IDEA_Q_F Key2,n,k),MESSAGES ) * ((compose <*(IDEA_P (Line Key1,(k + 1)),n),(IDEA_Q (Line Key2,(k + 1)),n)*>,MESSAGES ) * (compose (IDEA_P_F Key1,n,k),MESSAGES ))) . m
by FINSEQ_1:def 9
.=
((compose (IDEA_Q_F Key2,n,k),MESSAGES ) * ((((IDEA_Q (Line Key2,(k + 1)),n) * (IDEA_P (Line Key1,(k + 1)),n)) * (id MESSAGES )) * (compose (IDEA_P_F Key1,n,k),MESSAGES ))) . m
by FUNCT_7:53
.=
((compose (IDEA_Q_F Key2,n,k),MESSAGES ) * (((IDEA_Q (Line Key2,(k + 1)),n) * (IDEA_P (Line Key1,(k + 1)),n)) * (compose (IDEA_P_F Key1,n,k),MESSAGES ))) . m
by FUNCT_2:23
.=
(compose (IDEA_Q_F Key2,n,k),MESSAGES ) . ((((IDEA_Q (Line Key2,(k + 1)),n) * (IDEA_P (Line Key1,(k + 1)),n)) * (compose (IDEA_P_F Key1,n,k),MESSAGES )) . m)
by A18, A19, FUNCT_1:23
.=
(compose (IDEA_Q_F Key2,n,k),MESSAGES ) . (((IDEA_Q (Line Key2,(k + 1)),n) * (IDEA_P (Line Key1,(k + 1)),n)) . ((compose (IDEA_P_F Key1,n,k),MESSAGES ) . m))
by A17, A19, FUNCT_1:23
.=
(compose (IDEA_Q_F Key2,n,k),MESSAGES ) . ((compose (IDEA_P_F Key1,n,k),MESSAGES ) . m)
by A7, A20, A23, Th34
.=
((compose (IDEA_Q_F Key2,n,k),MESSAGES ) * (compose (IDEA_P_F Key1,n,k),MESSAGES )) . m
by A17, A19, FUNCT_1:23
.=
m
by A5, A6, A7, A8, A9, A11, A12, A13, FUNCT_7:50, XXREAL_0:2
;
hence
(compose ((IDEA_P_F Key1,n,(k + 1)) ^ (IDEA_Q_F Key2,n,(k + 1))),MESSAGES ) . m = m
;
:: thesis: verum
end;
thus
for
k being
Element of
NAT holds
S1[
k]
from NAT_1:sch 1(A1, A4); :: thesis: verum
end;
hence
for r being Element of NAT
for m being FinSequence of NAT st lk >= r & (2 to_power n) + 1 is prime & len m >= 4 & m . 1 is_expressible_by n & m . 2 is_expressible_by n & m . 3 is_expressible_by n & m . 4 is_expressible_by n & ( for i being Element of NAT st i <= r holds
( Key1 * i,1 is_expressible_by n & Key1 * i,2 is_expressible_by n & Key1 * i,3 is_expressible_by n & Key1 * i,4 is_expressible_by n & Key1 * i,5 is_expressible_by n & Key1 * i,6 is_expressible_by n & Key2 * i,1 is_expressible_by n & Key2 * i,2 is_expressible_by n & Key2 * i,3 is_expressible_by n & Key2 * i,4 is_expressible_by n & Key2 * i,5 is_expressible_by n & Key2 * i,6 is_expressible_by n & Key2 * i,1 = INV_MOD (Key1 * i,1),n & Key2 * i,2 = NEG_MOD (Key1 * i,3),n & Key2 * i,3 = NEG_MOD (Key1 * i,2),n & Key2 * i,4 = INV_MOD (Key1 * i,4),n & Key1 * i,5 = Key2 * i,5 & Key1 * i,6 = Key2 * i,6 ) ) holds
(compose ((IDEA_P_F Key1,n,r) ^ (IDEA_Q_F Key2,n,r)),MESSAGES ) . m = m
; :: thesis: verum