In real-life cryptography, we are not usually concerned
with individual encryption and decryption functions, but
rather with classes of functions indexed by a key.
'C = E{k}(M)
' and 'M = D{k}(C)
'
denote these. For keyed functions, our corresponding
automatic equality is M = D{k}(E{k}(M))
. With
different key indexes to our function classes, we do not
expect equalities like the above (in fact, finding them would
usually indicate bad algorithms):
M != D{k1}(E{k2}(M))
. This inequality works out
nicely because all the folks without access to the key K will
not know which decryption function to use in deciphering C.
The design of specific
cryptographic algorithms has many details, but the basic mathematics are as
simple as their portrayal in these panels.