Book contents
- Frontmatter
- Epigraph
- Contents
- Preface
- Acknowledgments
- 1 Introduction
- 2 The integers
- 3 Cryptography based on the integer ring
- 4 Cryptography based on the discrete logarithm
- 5 Information-theoretic methods in cryptography
- 6 Block ciphers
- 7 Stream ciphers
- 8 Authentication and ownership protection
- 9 Groups, rings, and fields
- 10 Cryptography based on elliptic curves
- 11 Cryptography based on hyperelliptic curves
- 12 Cryptography based on bilinear pairings
- 13 Implementation
- 14 Cryptographic protocols for security and identification
- 15 More public-key cryptography
- References
- Index
13 - Implementation
Published online by Cambridge University Press: 05 April 2014
- Frontmatter
- Epigraph
- Contents
- Preface
- Acknowledgments
- 1 Introduction
- 2 The integers
- 3 Cryptography based on the integer ring
- 4 Cryptography based on the discrete logarithm
- 5 Information-theoretic methods in cryptography
- 6 Block ciphers
- 7 Stream ciphers
- 8 Authentication and ownership protection
- 9 Groups, rings, and fields
- 10 Cryptography based on elliptic curves
- 11 Cryptography based on hyperelliptic curves
- 12 Cryptography based on bilinear pairings
- 13 Implementation
- 14 Cryptographic protocols for security and identification
- 15 More public-key cryptography
- References
- Index
Summary
An implementation of a cryptographic algorithm is a hardware or software device that performs the function of encryption or decryption. A discussion of implementation extends the discussion of encryption and decryption algorithms down into the next level of detail. The coordination of the detail at this level of a hardware or software implementation is called an architecture. An architecture is a general plan or framework for a hardware or software implementation that provides a structure for the final details of the implementation but does not fully describe those details. The notion of an architecture is midway between the notion of an algorithm and the notion of an implementation.
At the level of an implementation, the computational equations are expanded into a configuration of adders, multipliers, and inverters, with data paths between them; or into a collection of software subroutines, along with the sequence of instructions linking and executing the subroutines. The designer of a hardware implementation must deal with details of data movement and must make decisions regarding whether various computational resources, such as an adder or a multiplier, should be shared by subsections of the algorithm, or should be resources dedicated to a specific computation. The many multiplications required by an algorithm, for example, can be provided by one multiplier shared in time, or by many distinct multipliers used concurrently.
- Type
- Chapter
- Information
- Cryptography and Secure Communication , pp. 475 - 507Publisher: Cambridge University PressPrint publication year: 2014