Mark: Do you still want me to see if I can hack version 2 of MAME35TG
as well?
<p>
Chad/Mark: I am going to keep this more general than necessary,
because this is all about making it as hard as possible to cheat, and
the more details about things are out in the open, the easier it gets
to cheat.
<p>
First, a good method is to have some value that changes with every
word of input and use this (adding, xor-ing, whatever) to modify the
input word. This ensures that, roughly, every word will occur equally
many times, and so a lot of methods of breaking keys will fail. This
by itself will not be enough, since anybody people with some
experience in cracking encoded data may still be able to crack it. So
in addition to this, the input has to be permutated, and a different
permutation (again, generated by some value) has to be used for every
frame. Both generators (i.e. the algorithms that change that base
value all the time) can be initialised with some value ("key") that is
kept outside of the MAME source, and these keys have to be
sufficiently large (say 128 bits) to withstand brute force attacks.
<p>
The problems with this:
<p>
If the key is outside the MAME source, but is still used when
compiling MAME, then (in addition to problems I do not like to
discuss here) it can be argued that you are not making the entire
source code public.
<p>
If the key is somehow generated outside everything, and has to be
retrieved somewhere (like Chad suggested, from the internet, for
instance), then everybody will more or less have a unique version of
MAME35TG, which also means that nobody but the person who got the key
and everybody who knows what the key is, can play back recordings.
This probably means that only Mark and the person who recorded the
game will be able to play back that recording. And if Mark uses some
utility to convert it to a regular .inp file, then that, again, makes
security very vulnerable. I don't think it's desirable that only two
people can view .inps, especially not since this whole thing is first
and foremost meant for world record .inps. What good is it if nobody
but Mark can see it? And, no offence Mark, why should others take
Mark's word for it that the recording is legitimate? That only shifts
the problem.
<p>
A minor problem with using algorithms that transform an .inp into
something resembling random data (because seemingly true random data
is the only kind of data that is not susceptible to hack attacks) is
that the .inps will not compress very well. A 10 meg .inp will, if
it looks like it's random enough, remain a 10 meg .inp, even if
zipped, or compressed with whichever, much better, compression tool
you wish to use.
<p>
There are some more problems I can think of, but this will do for now.
<p>
Ben Jos.
--
walbeehm@walbeehm.com