Book contents
- Frontmatter
- Dedication
- Contents
- Preface
- 1 Error-correcting Codes
- 2 Code Constructions and Bounds on Codes
- 3 Weight Enumeration
- 4 Cyclic Codes
- 5 Polynomial Codes
- 6 Algebraic Decoding
- 7 Complexity and Decoding
- 8 Codes and Related Structures
- 9 Cryptology
- 10 Gröbner Bases for Coding and Cryptology
- 11 Codes on Curves
- 12 Coding and Cryptology with Computer Algebra
- References
- Index
12 - Coding and Cryptology with Computer Algebra
Published online by Cambridge University Press: 26 October 2017
- Frontmatter
- Dedication
- Contents
- Preface
- 1 Error-correcting Codes
- 2 Code Constructions and Bounds on Codes
- 3 Weight Enumeration
- 4 Cyclic Codes
- 5 Polynomial Codes
- 6 Algebraic Decoding
- 7 Complexity and Decoding
- 8 Codes and Related Structures
- 9 Cryptology
- 10 Gröbner Bases for Coding and Cryptology
- 11 Codes on Curves
- 12 Coding and Cryptology with Computer Algebra
- References
- Index
Summary
In this chapter we give a brief overview of four computer algebra systems: Singular, Magma, GAP and Sage. We show how these computer algebra systems are able to deal with the objects considered in this book: error-correcting codes and their parameters, cryptosystems, as well as Gröbner bases and their applications. We work out specific examples that help to understand specifics that sometimes go beyond basic constructions with small parameters. This chapter also aims at invoking interest with those readers who have not worked with computer algebra systems before, but would like to do so having specific interesting examples to enter the field.
We start with a short overview for each of the four systems and then dive into hands-on examples.
SINGULAR
As is stated at www.singular.uni–kl.de: “Singular is a computer algebra system for polynomial computations, with special emphasis on commutative and non-commutative algebra, algebraic geometry, and singularity theory.” The system started as a tool for computing Gröbner bases with a focus on applications in singularity theory, but it grew into a tool for applications in many other fields. Relevant for us will be the method of Gröbner bases for decoding error-correcting codes, see Section 12.7. Singular also provides some basic functionality for cryptology, mainly for teaching purposes. We use a powerful kernel functionality of Singular for relevant Gröbner bases computations.
SINGULAR can be downloaded free of charge under the GNU public license from www.singular.uni–kl.de/index.php/singular-download.html for different platforms (Linux/Unix, Windows, OS X). The web site provides an online manual at www.singular.uni–kl.de/Manual/latest/index.htm. Also an online version of the system for trying out without a download is available at https://www.singular.uni–kl.de:8003/
In the context of this book, we use functionality provided for decoding linear codes via polynomial system solving (decodegb.lib). Interesting also, and therefore mentioned here, are the libraries:
• brnoeth.lib for working with algebraic-geometry codes;
• crypto.lib for teaching cryptography;
• teachstd.lib for teaching Gröbner bases.
- Type
- Chapter
- Information
- Codes, Cryptology and Curves with Computer Algebra , pp. 524 - 564Publisher: Cambridge University PressPrint publication year: 2017