FINITE FIELDS FOR COMPUTER SCIENTISTS AND ENGINEERS THE KLUWER INTERNATIONAL SERIES IN ENGINEERING AND COMPUTER SCIENCE INFORMATION THEORY Consulting Editor Robert G. Gallager FINITE FIELDS FOR COMPUTER SCIENTISTS AND ENGINEERS by Robert J. McEliece California Institute of Technology KLUWER ACADEMIC PUBLISHERS Boston / Dordrecht / Lancaster Distributors for North America: Kluwer Academic Publishers 101 Philip Drive Assinippi Park Norwell, Massachusetts 02061, USA tel: 718-871-6600 fax: 781-681-9045 email: [email protected] Distributors for all other countries: Kluwer Academic Publishers Group Distribution Centre Post Office Box 322 3300 AH Dordrecht, THE NETHERLANDS tel: 31 786 576 000 fax: 31 786 576474 email: [email protected] Library of Congress Cataloging-in-Publication Data McEliece, Robert J. Finite fields for computer scientists and engineers. (The Kluver international series in engineering and computer science ; 23) Bibliography: p. Includes index. 1. Finite fields (Algebra) I. Title. II. Series: Kluver international series in engineering and computer science ; SECS 23. QA247.3.M37 1987 512'.3 86-21145 ISBN-13: 978-1-4612-9185-5 e-ISBN-13: 978-1-4613-1983-2 DOl: 10.1007/978-1-4613-1983-2 Copyright © 1987 by K1uwer Academic Publishers. Sixth Printing 2003. Softcover reprint of the hardcover 1st edition 2003 All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, mechanical, photocopying, recording, or otherwise, without the prior written permission of the publisher, Kluwer Academic Publishers, 101 Philip Drive, Assinippi Park, Norwell, Massachusetts 02061. This printing is a digital duplication of the original edition. to my friend Gus Solomon who taught me all this stuff Contents Preface ............... . ix 1 Prologue .............. . . 1 2 Euclidean Domains and Euclid's Algorithm .3 3 Unique Factorization in Euclidean Domains 13 4 Building Fields from Euclidean Domains 19 5 Abstract Properties of Finite Fields. . . 29 6 Finite Fields Exist and are Unique . . . 55 7 Factoring Polynomials over Finite Fields . 75 8 'frace, Norm, and Bit-Serial Multiplication . 97 9 Linear Recurrences over Finite Fields . . . 123 10 The Theory of m-Sequences . . . . . . . 151 11 Crosscorrelation Properties of m-Sequences 169 Bibliography .201 Index ................ . .203 Preface This book developed from a course on finite fields I gave at the University of Illinois at Urbana-Champaign in the Spring semester of 1979. The course was taught at the request of an exceptional group of graduate students (includ ing Anselm Blumer, Fred Garber, Evaggelos Geraniotis, Jim Lehnert, Wayne Stark, and Mark Wallace) who had just taken a course on coding theory from me. The theory of finite fields is the mathematical foundation of algebraic coding theory, but in coding theory courses there is never much time to give more than a "Volkswagen" treatment of them. But my 1979 students wanted a "Cadillac" treatment, and this book differs very little from the course I gave in response. Since 1979 I have used a subset of my course notes (correspond ing roughly to Chapters 1-6) as the text for my "Volkswagen" treatment of finite fields whenever I teach coding theory. There is, ironically, no coding theory anywhere in the book! If this book had a longer title it would be "Finite fields, mostly of char acteristic 2, for engineering and computer science applications." It certainly does not pretend to cover the general theory of finite fields in the profound depth that the recent book of Lidl and Neidereitter (see the Bibliography) does. What it does do, however, is to give a thorough discussion of the ele mentary things like what finite fields are, how they are constructed, and how to make computations. (This in Chapters 1-6.) In the final five chapters, x FINITE FIELDS I treat in some depth several topics which are closely related to coding the ory but which are rarely covered in the classroom. These topics include two of Elwyn Berlekamp's brilliant recent contributions to the subject, viz., his polynomial factorization algorithm (Chapter 7) and his bit-serial multiplica tion circuits (Chapter 8). Also, the last three Chapters (9, to, and 11) include (among other things) what I hope is a "Cadillac" treatment of the theory of m-sequences, an old topic which has recently assumed increased practical im portance because of its applications to spread-spectrum communications. No book is written in a vacuum, least of all this one, and I am happy to acknowledge my debts. I already mentioned the graduate students who forced me to offer a course on finite fields in 1979. Many later students at the University of Illinois and Caltech have criticised and thereby improved the notes. Of these, I would particularly like to thank Doug Whiting, who convinced me of the importance of dual bases and bit-serial arithmetic. (This is in fact the only topic included in the book which was not covered in the 1979 course.) Carl Harris of Kluwer convinced me that the course notes should be published, and has gently but firmly kept me more-or-Iess on schedule as the manuscript was being prepared. Joanne Clark typed and retyped the manuscript, using Don Knuth's brilliant but often aggravating 'lEX computer typesetting program. The final preparation of the manuscript was done by Caltech's infallible 'lEX guru, Calvin Jackson, and I feel the appearance of the book fully justifies Calvin's careful and expert hard work. And finally I wish to thank Gus Solomon, who first taught me about finite fields, and many other things, quite a number of years ago. Gus has forgotten more about those subjects than I will ever know. Thank you, Gus. FINITE FIELDS FOR COMPUTER SCIENTISTS AND ENGINEERS Chapter 1 Prologue We begin at the beginning. A field is a place where you can add, subtract, multiply, and divide. More formally, it is a set F, together with two binary "+" operations, and ".", such that: 1. F is an Abelian group under "+", with identity element O. 2. The nonzero elements of F form an Abelian group under ".". 3. The distributive law a· (b + c) = a· b + a· c holds. A field is called finite or infinite according to whether the underlying set is finite or infinite. Familiar examples of infinite fields include the real numbers, the rational numbers, the complex numbers, and rational functions over a field. We find infinite fields uninteresting. However, we find the following finite field extremely interesting: Zp = {O,I, ... ,p-l}, arithmetic mod p, where p is a prime. It is not obvious that Zp as defined above is indeed a field, and we shall give a proof in Chapter 4. For now just notice that Z4 (arithmetic mod 4) is not a field, since e.g. 2 has no inverse, i.e., there is no element x such that 2x == 1 (mod 4). However, there is a field with four elements. If we denote its elements as {O, 1,2, 3}, the addition and multiplication tables are as follows: