From: Mok-Kong Shen on
[Addendum]

To my knowledge, CBC MAC is one of the authentication methods that is
in standard use today. There may be tiny variations desirable when the
last plaintext block is not full. But this could evidently be taken
over for use in our scheme as well.

I like to restate the improvements in my humber view of our scheme
over the well-known encryption with CBC MAC: (1) it uses one key
instead of two. (2) the chaining values in the proper processing of the
plaintext to generate ciphertext is unknown to the analyst (in the case
of using CBC MAC, the chaining values are the ciphertext blocks, which
are available to the analyst).

In a comment appearing in another thread, the question of efficiency
has been raised. For our scheme, exactly like using CBC MAC, needs two
invocations of the block cipher for each block of plaintext, once in
the pass to obtain the MAC, and once in the proper encryption pass.
Certainly, science has inevitably been constantly making progress, so
that there are alternative schemes now that are much more efficient
in respect of computing. It may be remarked however, that as long as
CBC MAC is not yet outdated in use, there seems to be no reason why one
shouldn't better use our scheme instead. (This barring availability of
comments and critiques from the experts on our scheme, of course.)

In this connection I like to point out that our scheme is actually
developed out of a previous proposal of mine using nonlinear combination
in accumulating ciphertext blocks at the level of words (for efficiency)
to obtain chaining values. Denoting Z(X,Y) = X*Y + X + Y mod 2^32
(wordwise for e.g. the four words of an 128-bit block), that scheme
runs as follows:

H_(-1) = IV; C_(-1) = 0; (definition)

for (i=0; i<n; i++)
{
H_i = Z( H_(i-1), C_(i-1) );

C_i = E( K, H_i ^ P_i );
}

MAC = H_n = Z( H_(n-1), C_(n-1) );

This evidently works much faster. However, it could be criticized for
"lack" of proof of security. Since my humble knowledge is insufficient
to defend against such critiques, I decided to present the scheme in
the original post of this thread, even though I personally think that
the more efficient scheme above seems to be not too bad at all. (BTW,
for comments and critiques on it I should certainly be very grateful.)

Finally, I like also to mention that variations to the above include
Z(X,Y) = X*Y ^ X + Y mod 2^32 and H_i = Z( H_(i-1), P_(i-1) ^ C_(i-1) )
and mutual bit rotations of X and Y. For more on the theme nonlinear
combination, see the recent thread initiated by me: "Nonlinear
combinaton of streams".

Thanks,

M. K. Shen

-------------------------------------------------------------------------

[OT, personal note:] I am unfortunately forced by recurrent personal
insults to use kill-file. That is, I would not read, not to say answer,
posts of some who have the mean habit of frequently abuse this
sci-group that way. Anyone who doesn't like my posts for whatever
reasons is strongly advised to put me in his kill-files as well.

It may be remarked that this group is for free discussions and is not
a "course" in an education institution (school etc.). Thus nobody has
the "right" to take on the position of a "teacher". It is all very well
that one attempts to help others to learn during discussions. However,
if unfortunately his "pupil" turns out to be too "stipid" in his view
("unbelehrbar" in German, I don't know a good English translation),
then he should stop such attempts after at most a couple of "failed"
trials (and even better not starting "teaching" in the first place, if
he has seen that others have failed before him in such attempts). In
any case, a good teacher (whose study includes courses on pedagogical
psychology) avoids using words that work insulting to the feeling of
the recipient. Therefore, I conclude that a few persons in this group,
who frequently "want" to "teach" others but employing sacarstic or even
very bad words are in fact not ones that "genuinely" want to help
others but ones actually having some "non-outspoken" personal
intentions in pretending to be "good-minded" persons helping others,
while practically wasting the bandwidth of the group (i.e. spamming).
I like to stress: This group is a free group for scientific discussions
and for scientific discussions "alone", not for "anything" that is
"personal". For personal matters, one should use e-mail, in order not
to waste the time of thousands of third persons who have to read the
nonsense stuff as well!!!