Cover image for The mathematics of coding theory : information, compression, error correction, and finite fields
Title:
The mathematics of coding theory : information, compression, error correction, and finite fields
Personal Author:
Publication Information:
Upper Saddle River, NJ : Prentice Hall, 2004
ISBN:
9780131019676

Available:*

Library
Item Barcode
Call Number
Material Type
Item Category 1
Status
Searching...
30000010122354 QA275 G37 2003 Open Access Book Book
Searching...

On Order

Summary

Summary

Useful for undergraduate courses in Coding Theory and Network Security, in departments of Mathematics, Electrical Engineering, and Computer Science. This text provides an introduction to an important application of number theory, abstract algebra, and probability. From credit cards to cellphones, codes are discussed.


Excerpts

Excerpts

This book is intended to be accessible to undergraduate students with two years of typical mathematics experience, most likely meaning calculus with a little linear algebra and differential equations. Thus, specifically, there is no assumption of a background in abstract algebra or number theory, nor of probability, nor of linear algebra. All these things are introduced and developed to a degree sufficient to address the issues at hand. We will address the fundamental problem of transmitting information effectively and accurately. The specific mode of transmission does not really play a role in our discussion. On the other hand, we should mention that the importance of the issues of efficiency and accuracy has increased largely due to the advent of the internet and, even more so, due to the rapid development of wireless communications. For this reason it makes sense to think of networked computers or wireless devices as archetypical fundamental practical examples. The underlying concepts of information and information content of data make sense independently of computers, and are relevant in looking at the operation of natural languages such as English, and of other modes of operation by which people acquire and process data. The issue of efficiency is the obvious one: transmitting information costs time, money, and bandwidth. It is important to use as little as possible of each of these resources. Data compression is one way to pursue this efficiency. Some well known examples of compression schemes are commonly used for graphics: GIFs, JPEGs, and more recently PNGs. These clever file format schemes are enormously more efficient in terms of filesize than straightforward bitmap descriptions of graphics files. There are also general-purpose compression schemes, such as gzip, bzip2, ZIP, etc. The issue of accuracy is addressed by detection and correction of errors that occur during transmission or storage of data. The single most important practical example is the TCP/IP protocol, widely used on the internet: one basic aspect of this is that if any of the packets composing a message is discovered to be mangled or lost, the packet is simply retransmitted. The detection of lost packets is based on numbering the collection making up a given message. The detection of mangled packets is by use of 16-bit checksums in the headers of IP and TCP packets. We will not worry about the technical details of TCP/IP here, but only note that email and many other types of internet traffic depend upon this protocol, which makes essential use of rudimentary error-detection devices. And it is a fact of life that dust settles on CD-ROMs, static permeates network lines, etc. That is, there is noise in all communication systems. Human natural languages have evolved to include sufficient redundancy so that usually much less than 100% of a message need be received to be properly understood. Such redundancy must be designed into CD-ROM and other data storage protocols to achieve similar robustness. There are other uses for detection of changes in data: if the data in question is the operating system of your computer, a change not initiated by you is probably a sign of something bad, either failure in hardware or software, or intrusion by hostile agents (whether software or wetware). Therefore, an important component of systems security is implementation of a suitable procedure to detect alterations in critical files. In pre-internet times, various schemes were used to reduce the bulk of communication without losing the content: this influenced the design of the telegraphic alphabet, traffic lights, shorthand, etc. With the advent of the telephone and radio, these matters became even more significant. Communication with exploratory spacecraft having very limited resources available in deep space is a dramatic example of how the need for efficient and accurate transmission of information has increased in our recent history. In this course we will begin with the model of communication and information made explicit by Claude Shannon in the 1940's, after some preliminary forays by Hartley and others in the preceding decades. Many things are omitted due to lack of space and time. In spite of their tremendous importance, we do not mention convolutional codes at all. This is partly because there is less known about them mathematically. Concatenated codes are mentioned only briefly. Finally, we also omit any discussion of the so-called turbo codes. Turbo codes have been recently developed experimentally. Their remarkably good behavior, seemingly approaching the Shannon bound, has led to the conjecture that they are explicit solutions to the fifty-year old existence results of Shannon. However, at this time there is insufficient understanding of the reasons for their good behavior, and for this reason we will not attempt to study them here. We do give a very brief introduction to geometric Goppa codes, attached to algebraic curves, which are a natural generalization of Reed-Solomon codes (which we discuss), and which exceed the Gilbert-Varshamov lower bound for performance. The exercises at the ends of the chapters are mostly routine, with a few more difficult exercises indicated by single or double asterisks. Short answers are given at the end of the book for a good fraction of the exercises, indicated by ' (ans.) ' following the exercise. I offer my sincere thanks to the reviewers of the notes that became this volume. They found many unfortunate errors, and offered many good ideas about improvements to the text. While 1 did not choose to take absolutely all the advice given, I greatly appreciate the thought and energy these people put into their reviews: John Bowman, University of Alberta; Sergio Lopez, Ohio University; Navin Kashyap, University of California, San Diego; James Osterburg, University of Cincinnati; LeRoy Bearnson, Brigham Young University; David Grant, University of Colorado at Boulder; Jose Voloch, University of Texas. Paul Garrett Excerpted from The Mathematics of Coding Theory: Information, Compression, Error Correction, and Finite Fields by Paul Garrett All rights reserved by the original copyright owners. Excerpts are provided for display purposes only and may not be reproduced, reprinted or distributed without the written permission of the publisher.

Table of Contents

1 Probability
Counting
Preliminary Ideas of Probability
More Formal View of Probability
Random Variables, Expected Values, Variance
Markov Inequality, Chebycheff Inequality
Law of Large Numbers
2 Information and Entropy
Uncertainty, Acquisition of Information
Entropy
Uniquely-Decipherable and Prefix Codes
Kraft and Macmillan Inequalities
3 Noiseless Coding
Noiseless Coding Theorem
Huffman Coding
4 Noisy Coding
Noisy channels
Example: Parity Checks
Decoding from a Noisy Channel
Channel Capacity
Noisy Coding Theorem
5 Cyclic Redundancy Checks
The Finite Field GF(2) with 2 Elements
Polynomials over GF(2)
Cyclic Redundancy Checks (CRC's)
What Errors Does a CRC Catch?
6
Reduction Algorithm
Divisibility
Factorization into Primes
Euclidean Algorithm
Integers Modulo M
The Finite Field Z/P for P Prime
Fermat's Little Theorem
Primitive Roots
Euler's Criterion
Fast Modular Exponentiation
7 Finite Fields
Making Fields
Examples of Field Extensions
Addition Modulo P
Multiplication Modulo P
Multiplicative Inverses Modulo P
Primitive Roots
8 Polynomials
Polynomials with Coefficients in a Field
Divisibility
Factoring and Irreducibility
Euclidean Algorithm
Unique Factorization
9 Introduction to Linear Codes
An Ugly Example
The Hamming Binary [7,4] Code
Some Linear Algebra
A Review of Row Reduction
Definition: Linear Codes
Syndrome Decoding
Berlekamp's Algorithm
10 Bounds for Codes
Hamming (Sphere-Packing) Bound
Gilbert-Varshamov Bound
Singleton Bound
11 Cyclic Codes
Minimum Distance in Linear Codes
Cyclic Codes
12 Primitive Roots
Characteristics of Fields
Multiple Factors in Polynomials
Cyclotomic Polynomials
Primitive Roots in Finite Fields
Primitive Roots Modulo Prime Powers
Counting Primitive Roots
Non-Existence
An Algorithm to Find Primitive Roots
13 Primitive Polynomials
Definitions
Examples Modulo 2
Testing for Primitivity
Example: Periods of LFSR's
Example: Two-Bit Errors Detected by CRC's
14 Basic Linear Codes
Vandermonde Determinants
More Check Matrices for Cyclic Codes
RS Codes
Hamming Codes (Again)
BCH Codes
Decoding BCH Codes
15 Concatenated Codes
Mirage Codes
Concatenated Codes
Justesen Codes
Some Explicit Irreducible Polynomials
16 Curves and Codes
Plane Curves
Singularities of Curves
Projective Plane Curves
Curves in Higher Dimensions
Genus, Divisors, Linear Systems
Geometric Goppa Codes
Tsfasman-Vladut-Zink Bound
Appendices
Sets and functions
Equivalence Relations
Stirling's Formula
Bibliography
Index