Motivated by a problem posed by Hamming in 1980, we define even codes.
They are Huffman type prefix codes with the additional property of being
able to detect the occurrence of an odd number of 1-bit errors in the message.
We characterize optimal even codes and describe a simple method for
constructing the optimal codes. Further, we compare optimal even codes
with Huffman codes for equal frequencies. We show that the maximum encoding
in an optimal even code is at most two bits larger than the maximum encoding
in a Huffman tree. Moreover, it is always possible to choose an optimal even
code such that this difference drops to 1 bit. We compare average
sizes and show that the average size of an encoding in a optimal even tree
is at least 1/3 and at most 1/2 of a bit larger than
that of a Huffman tree. These values represent the overhead in the encoding
sizes for having the ability to detect an odd number of errors in the
message. Finally, we discuss the case of arbitrary frequencies and describe
some results for this situation.