  We describe and explore so-called linear hash functions and show how they can
be used to build error detection and correction codes. The method can be
applied for different types of errors (for example, burst errors). When the
method is applied to a model where number of distorted letters is limited, the
obtained estimate of its performance is slightly better than the known
Varshamov-Gilbert bound. We also describe random code whose performance is
close to the same boundary, but its construction is much simpler. In some cases
the obtained methods are simpler and more flexible than the known ones. In
particular, the complexity of the obtained error detection code and the
well-known CRC code is close, but the proposed code, unlike CRC, can detect
with certainty errors whose number does not exceed a predetermined limit.
