Cover image for Hardware implementation of finite-field arithmetic
Title:
Hardware implementation of finite-field arithmetic
Series:
Electronic engineering
Publication Information:
New York : McGraw-Hill, 2009
Physical Description:
xiii, 347 p. : ill. ; 24 cm.
ISBN:
9780071545815

Available:*

Library
Item Barcode
Call Number
Material Type
Item Category 1
Status
Searching...
30000010193572 TK7895.E42 D474 2009 Open Access Book Book
Searching...
Searching...
30000010193571 TK7895.E42 D474 2009 Open Access Book Book
Searching...

On Order

Summary

Summary

Publisher's Note: Products purchased from Third Party sellers are not guaranteed by the publisher for quality, authenticity, or access to any online entitlements included with the product.


Implement Finite-Field Arithmetic in Specific Hardware (FPGA and ASIC)

Master cutting-edge electronic circuit synthesis and design with help from this detailed guide. Hardware Implementation of Finite-Field Arithmetic describes algorithms and circuits for executing finite-field operations, including addition, subtraction, multiplication, squaring, exponentiation, and division.

This comprehensive resource begins with an overview of mathematics, covering algebra, number theory, finite fields, and cryptography. The book then presents algorithms which can be executed and verified with actual input data. Logic schemes and VHDL models are described in such a way that the corresponding circuits can be easily simulated and synthesized. The book concludes with a real-world example of a finite-field application--elliptic-curve cryptography. This is an essential guide for hardware engineers involved in the development of embedded systems.

Get detailed coverage of:

Modulo m reduction Modulo m addition, subtraction, multiplication, and exponentiation Operations over GF(p) and GF(pm) Operations over the commutative ring Zp[x]/f(x)

Operations over the binary field GF(2m) using normal, polynomial, dual, and triangular


Author Notes

Jean-Pierre Deschamps, Ph.D., is a professor at the University Rovira i Virgili in Tarragona, Spain.

José Luis Imaña, Ph.D., is a professor at Complutense University of Madrid, Spain.

Gustavo D. Sutter, Ph.D., is a professor at the Autonomous University of Madrid, Spain.


Table of Contents

Prefacep. xi
Acknowledgmentsp. xiii
1 Mathematical Backgroundp. 1
1.1 Number Theoryp. 1
1.1.1 Basic Definitionsp. 1
1.1.2 Euclidean Algorithmsp. 2
1.1.3 Congruencesp. 4
1.2 Algebrap. 8
1.2.1 Groupsp. 8
1.2.2 Ringsp. 9
1.2.3 Fieldsp. 10
1.2.4 Polynomialsp. 11
1.2.5 Congruences of Polynomialsp. 15
1.3 Finite Fieldsp. 17
1.3.1 Basic Propertiesp. 17
1.3.2 Field Extensionsp. 18
1.3.3 Roots of Irreducible Polynomialsp. 20
1.3.4 Bases of Finite Fieldsp. 20
1.3.5 Finite Fields GF(2 m )p. 22
1.4 Referencesp. 23
2 mod m Reductionp. 25
2.1 Integer Divisionp. 25
2.1.1 Digit Recurrence Algorithmsp. 25
2.1.2 Nonrestoring Reducerp. 27
2.1.3 SRT Reducerp. 29
2.2 Reduction mod 2 k - ap. 33
2.3 Precomputation of 2 ik mod mp. 38
2.4 Barrett Reduction Algorithmp. 43
2.4.1 n-Digit to (k + t)-Digit Reductionp. 43
2.4.2 An Approximation of qp. 44
2.5 Comparisonp. 48
2.6 Specific Circuitsp. 49
2.6.1 mod 239 Reducerp. 49
2.6.2 mod (2 192 - 2 64 - 1) Reducerp. 50
2.7 FPGA Implementationp. 54
2.7.1 Nonrestoring Reducersp. 55
2.7.2 SRT Reducersp. 55
2.7.3 Reduction mod 2 k - ap. 55
2.7.4 Precomputation of 2 ik mod mp. 57
2.7.5 Barrett Reductionp. 58
2.7.6 Specific Circuitsp. 59
2.8 Comments and Conclusionsp. 59
2.9 Referencesp. 60
3 mod m Operationsp. 61
3.1 Addition mod mp. 61
3.2 Subtraction mod mp. 63
3.3 Adder/Subtractor mod mp. 64
3.4 Multiplication mod mp. 66
3.4.1 Multiply and Reducep. 66
3.4.2 Double, Add, and Reducep. 70
3.4.3 Montgomery Multiplicationp. 75
3.4.4 Comparisonp. 81
3.5 Exponentiationp. 82
3.6 FPGA Implementationsp. 87
3.6.1 mod m Adders/Subtractorsp. 87
3.6.2 mod m Multipliersp. 87
3.6.3 mod m Exponentiatorsp. 88
3.7 Comments and Conclusionsp. 88
3.8 Referencesp. 89
4 Operations over GF(p)p. 91
4.1 Euclidean Algorithmp. 92
4.1.1 Integer Divisionp. 93
4.1.2 Multiplication and Subtractionp. 96
4.1.3 mod p Divisionp. 98
4.2 Binary Algorithmp. 100
4.3 Plus-Minus Algorithmp. 104
4.4 Fermat's Little Theoremp. 110
4.5 Comparisonp. 112
4.6 FPGA Implementationsp. 113
4.6.1 Euclidean Algorithmp. 113
4.6.2 Binary Algorithmp. 114
4.6.3 Plus-Minus Algorithmp. 114
4.6.4 Fermat's Little Theoremp. 115
4.7 Comments and Conclusionsp. 116
4.8 Referencesp. 116
5 Operations over Z p [x]/f(x)p. 117
5.1 Addition and Subtraction mod f(x)p. 117
5.2 Multiplication mod f(x)p. 121
5.2.1 Two-Step Multiplicationp. 121
5.2.2 Serial Multiplicationp. 123
5.3 Exponentiation mod f(x)p. 128
5.4 Optimal Extension Fieldsp. 132
5.5 FPGA Implementationsp. 136
5.5.1 Adders of Polynomials mod pp. 136
5.5.2 Subtractors of Polynomials mod pp. 136
5.5.3 Adders/Subtractors of Polynomials mod pp. 137
5.5.4 Serial Multipliersp. 137
5.5.5 Exponentiationp. 137
5.6 Comments and Conclusionsp. 138
5.7 Referencesp. 138
6 Operations over GF(p m )p. 139
6.1 Euclidean Algorithmp. 140
6.2 Binary Algorithmp. 147
6.3 Reduction to Multiplications over GF(p m ) and Inversion over Z pp. 154
6.4 Optimal Extension Fieldsp. 156
6.5 FPGA Implementationsp. 162
6.6 Comments and Conclusionsp. 162
6.7 Referencesp. 162
7 Operations over GF(2 m )-Polynomial Basesp. 163
7.1 Multiplicationp. 164
7.1.1 Two-Step Classic Multiplicationp. 164
7.1.2 Karatsuba-Ofman Polynomial Multiplicationp. 169
7.1.3 Interleaved Multiplicationp. 171
7.1.4 Matrix-Vector Multipliersp. 174
7.1.5 Montgomery Multiplicationp. 182
7.2 Squaringp. 187
7.3 Exponentiationp. 195
7.4 Divisionp. 204
7.5 Inversionp. 206
7.6 Important Irreducible Polynomialsp. 213
7.6.1 Equally Spaced Polynomials (ESPs)p. 213
7.6.2 General Irreducible Polynomialsp. 214
7.6.3 All-One Polynomials (AOPs)p. 216
7.6.4 Trinomialsp. 219
7.6.5 Pentanomialsp. 221
7.7 FPGA Implementationsp. 223
7.7.1 Classic Multipliersp. 224
7.7.2 Interleaved Multiplicationp. 224
7.7.3 Mastrovito Multipliersp. 224
7.7.4 Mastrovito Multipliers, Second Versionp. 225
7.7.5 Interleaved Multiplication, Advanced Versionp. 225
7.7.6 Montgomery Multipliersp. 225
7.7.7 Classic Squaringp. 227
7.7.8 LSB First Squarer, Second Versionp. 227
7.7.9 Montgomery Squarerp. 228
7.7.10 Binary Exponentiationp. 228
7.7.11 Montgomery Exponentiationp. 229
7.7.12 Divisionp. 229
7.7.13 Extended Euclidean Algorithm (EEA) for Inversionp. 229
7.7.14 Modified Almost Inverse Algorithm (MAIA) for Inversionp. 230
7.7.15 Important Irreducible Polynomialsp. 230
7.8 Comments and Conclusionsp. 231
7.9 Referencesp. 231
8 Operations over GF(2 m )-Normal Basesp. 235
8.1 Some Properties of Normal Basesp. 236
8.2 Squaringp. 238
8.3 Multiplicationp. 238
8.4 Exponentiationp. 249
8.5 Inversionp. 255
8.6 Optimal Normal Basesp. 259
8.7 FPGA Implementationsp. 264
8.7.1 Multiplierp. 265
8.7.2 Exponentiationp. 265
8.7.3 Inversionp. 266
8.7.4 Type-I Optimal Normal Basis Multiplier with AOPsp. 266
8.8 Comments and Conclusionsp. 266
8.9 Referencesp. 267
9 Operations over GF(2 m )-Other Basesp. 269
9.1 Dual Basesp. 269
9.2 Triangular Basesp. 277
9.3 Referencesp. 284
10 An Example of Application-Elliptic Curve Cryptographyp. 287
10.1 Public-Key Cryptographyp. 287
10.2 Elliptic Curve over a Finite Fieldp. 288
10.3 Group Lawp. 290
10.4 Point Multiplicationp. 292
10.4.1 Definitionp. 292
10.4.2 Basic Algorithmsp. 293
10.4.3 Some Alternative Methodsp. 294
10.5 Example of Implementationp. 304
10.5.1 Computation Resourcesp. 305
10.5.2 Point Additionp. 305
10.5.3 Point Multiplicationp. 306
10.6 FPGA Implementationp. 310
10.7 Referencesp. 311
A p = 2 192 - 2 64 - 1p. 313
A.1 Hexadecimal Representationp. 313
A.2 mod p Reductionp. 313
A.2.1 Generic Sequential Circuitp. 313
A.2.2 Specific Combinational Circuitp. 314
A.2.3 FPGA Implementationp. 314
A.3 mod p Addition and Subtractionp. 314
A.4 mod p Multiplicationp. 315
A.4.1 Generic Circuitp. 315
A.4.2 Specific Circuitp. 315
A.5 mod p Exponentiationp. 316
A.6 mod p Divisionp. 317
B Optimal Extension Fieldsp. 319
B.1 GF(239 17 )p. 319
B.1.1 VHDL Models and Constant Definitionsp. 319
B.1.2 FPGA Implementationsp. 320
B.2 GF((2 32 - 387) 6 )p. 321
B.2.1 Constantsp. 321
B.2.2 mod p Reductionp. 323
B.2.3 mod p Addition and Subtractionp. 323
B.2.4 mod p Multiplicationp. 324
B.2.5 mod p Divisionp. 324
B.2.6 mod (x 6 - 2) Multiplicationp. 325
B.2.7 mod (x 6 - 2) Divisionp. 326
C Binary Fieldsp. 331
C.1 GF(2 163 )p. 331
C.1.1 mod f(x) Multiplicationp. 331
C.1.2 mod f(x) Divisionp. 331
C.1.3 Squaringp. 332
C.1.4 Elliptic-Curve Operationsp. 332
C.2 GF(2 233 )p. 333
C.2.1 mod f(x) Multiplicationp. 333
C.2.2 mod f(x) Divisionp. 334
C.2.3 Squaringp. 334
C.2.4 Elliptic-Curve Operationsp. 334
D Ada versus VHDLp. 337
Indexp. 341