Introduction to Cryptography with Maple

This introduction to cryptography employs a programming-oriented approach to study the most important cryptographic schemes in current use and the main cryptanalytic attacks against them. Discussion of the theoretical aspects, emphasizing precise security definitions based on methodological tools su...

Full description

Saved in:
Bibliographic Details
Main Author Pardo, José Luis Gómez
Format eBook Book
LanguageEnglish
Published Berlin, Heidelberg Springer Nature 2012
Springer
Springer Berlin / Heidelberg
Springer Berlin Heidelberg
Edition1
Subjects
Online AccessGet full text
ISBN9783642321665
3642321666
9783642321658
3642321658
3642446213
9783642446214
DOI10.1007/978-3-642-32166-5

Cover

Table of Contents:
  • Intro -- Introduction to Cryptography with Maple -- Preface -- Contents -- Acronyms -- Introduction -- 1 Classical Ciphers and Their Cryptanalysis -- 1.1 The Caesar Cipher -- 1.2 Substitution Ciphers -- 1.3 The Vigenère Cipher -- 1.3.1 The Vigenère Cipher in Maple -- 1.3.2 Cryptanalysis of the Vigenère Cipher -- 1.4 The Hill Cipher -- 1.4.1 The Hill Cipher in Maple -- 1.4.2 Cryptanalysis of the Hill Cipher -- 1.5 Some Conclusions -- 2 Basic Concepts from Probability, Complexity, Algebra and Number Theory -- 2.1 Basic Probability Theory -- 2.2 Integers and Divisibility -- 2.2.1 Representation of Integers -- 2.3 Basic Computational Complexity -- 2.3.1 Asymptotic Notation -- 2.3.2 Efficient Computation and p Versus p -- 2.3.3 Running Times of Some Simple Algorithms -- 2.3.4 Probabilistic Algorithms -- 2.3.5 Final Remarks on Complexity -- 2.4 The Euclidean Algorithm -- 2.5 Groups, Rings and Fields -- 2.5.1 Basic Concepts -- 2.5.2 Congruences and the Residue Class Ring -- 2.6 The Chinese Remainder Theorem -- 2.6.1 The Chinese Remainder Theorem and the Residue Class Ring -- 2.7 Euler's Theorem and Modular Exponentiation -- 2.7.1 Euler's Theorem -- 2.7.2 Modular Exponentiation -- 2.7.3 Finding Generators in Zp* -- 2.8 Finite Fields -- 2.8.1 A Field of 4 Elements -- 2.8.2 The Polynomial Ring -- 2.8.3 The Field of pn Elements -- 2.8.4 The Field of 256 Elements -- 2.8.5 The Multiplicative Group of a Finite Field -- 2.9 Quadratic Residues and Modular Square Roots -- 2.9.1 Quadratic Residues and the Legendre and Jacobi Symbols -- 2.9.2 Computing Modular Square Roots -- 3 Private-Key Encryption -- 3.1 Perfect Secrecy -- 3.2 The One-Time Pad -- 3.3 From Unconditional Security to Computational Security -- 3.3.1 Pseudo-Random Generators -- 3.3.2 One-Way Functions -- 3.3.3 From One-Way Functions to Pseudo-Random Generators: The Blum--Blum--Shub PRG
  • 3.4 PRGs and Related Constructions in Maple -- 3.4.1 The Blum--Blum--Shub PRG in Maple -- 3.4.2 An Approximation to the One-Time Pad in Maple -- 3.4.3 Practical Security Aspects -- 3.5 Private-Key Encryption Schemes and Their Security -- 3.5.1 Private-Key Encryption Schemes -- 3.5.2 Security Definitions for Private-Key Encryption Schemes -- 3.5.3 CPA Security and CCA Security -- 3.5.4 Concluding Remarks -- 4 Block Ciphers and Modes of Operation -- 4.1 Block Ciphers and Pseudo-Random Functions -- 4.2 The Advanced Encryption Standard -- 4.2.1 The Data Encryption Standard -- 4.2.2 Introducing AES -- 4.2.3 AES Decryption -- 4.2.4 Remarks on AES Design and AES Security -- 4.3 Modes of Operation -- 4.3.1 Confidentiality Modes -- 4.3.2 A CPA Secure Encryption Scheme -- 4.4 AES in Maple -- 4.4.1 AES Operations in Maple -- 4.4.2 AES Encryption and Decryption -- 4.5 Some Modes of Operation in Maple -- 4.5.1 OFB and CTR in Maple -- 4.5.2 Encryption and Decryption with OFB and CTR -- 5 Message Authentication -- 5.1 Confidentiality Versus Authenticity -- 5.2 Message Authentication Codes -- 5.2.1 Defining MACs -- 5.2.2 Security for MACs -- 5.3 Constructing MACs -- 5.3.1 MACs from Pseudo-Random Functions -- 5.3.2 CBC-MAC -- 5.3.3 CMAC and Its Maple Implementation -- 5.4 CCA Security and Authenticated Encryption -- 5.4.1 A CCA Secure Encryption Scheme -- 5.4.2 Obtaining Authenticated Encryption -- 5.5 MACs Based on Universal Hashing -- 5.5.1 GCM -- 5.5.2 GMAC -- 5.6 Collision Resistant Hash Functions -- 5.6.1 A Couple of Applications -- 5.6.2 The Merkle--Damgård Construction -- 5.6.3 SHA-256 -- 5.6.4 SHA-256 in Maple -- 5.6.5 MACs with Hash Functions: HMAC -- 5.7 The Birthday Attack on Hash Functions -- 5.7.1 The Birthday Paradox -- 5.7.2 The Birthday Attack
  • 8 Public-Key Encryption -- 8.1 Public-Key Encryption Schemes -- 8.2 Security for Public-Key Encryption -- 8.2.1 Definitions of Security -- 8.2.2 Hybrid Encryption and Its Security -- 8.3 RSA -- 8.3.1 The RSA Assumption -- 8.3.2 Plain RSA -- 8.3.3 Plain RSA in Maple -- 8.3.4 Security of RSA -- 8.3.5 RSA with Probabilistic Encryption -- 8.3.6 RSA-OAEP -- 8.3.7 RSAES-OAEP in Maple -- 8.4 Rabin Encryption -- 8.4.1 Plain Rabin Encryption -- 8.4.2 Plain Rabin Encryption in Maple -- 8.4.3 CCA Secure Rabin Encryption -- 8.4.4 Rabin-SAEP+ in Maple -- 8.5 The Elgamal Encryption Scheme -- 8.5.1 Security of Elgamal -- 8.5.2 Elgamal on the Group of Quadratic Residues Modulo a Safe Prime -- 8.6 The Cramer--Shoup Encryption Scheme -- 8.6.1 Cramer--Shoup Encryption and Its Security -- 8.6.2 A Variant of the Cramer--Shoup Encryption Scheme in Maple -- 8.7 A Speed Comparison Among Implementations of CCA Secure Schemes -- 8.8 Homomorphic Encryption -- 8.8.1 The Goldwasser--Micali Encryption Scheme -- 8.8.2 The Paillier Encryption Scheme -- 8.8.3 The Paillier Encryption Scheme in Maple -- 8.9 Final Remarks on Public-Key Encryption -- 8.9.1 Fully Homomorphic Encryption -- 8.9.2 Lattice-Based Cryptography -- 9 Digital Signatures -- 9.1 Digital Signature Schemes -- 9.1.1 Definition of Signature Schemes -- 9.1.2 Security of Signature Schemes -- 9.2 Some Early Signature Schemes -- 9.2.1 Plain RSA Signatures -- 9.2.2 Elgamal Signatures -- 9.3 The ``Hash-then-Decrypt'' Paradigm -- 9.3.1 Hashed RSA Signatures -- 9.3.2 Hashed Elgamal Signatures -- 9.4 The Digital Signature Algorithm -- 9.4.1 The DSA Signature Scheme -- 9.4.2 DSA Security -- 9.4.3 DSA in Maple -- 9.5 CMA Secure Signature Schemes -- 9.5.1 FDH Signatures -- 9.5.2 PSS Signatures -- 9.5.3 RSASSA-PSS from PKCS #1 v2.1 -- 9.5.4 RSASSA-PSS in Maple -- 9.5.5 Cramer--Shoup Signatures
  • 6 Algorithmic Number Theory for Cryptography and Cryptanalysis: Primality, Factoring and Discrete Logarithms -- 6.1 Large Primes and How to Find Them -- 6.1.1 Searching for Large Random Primes -- 6.1.2 The Distribution of Prime Numbers -- 6.2 Primality Testing -- 6.2.1 The Fermat Test and Pseudoprimes -- 6.2.2 The Strong Probable Prime Test -- 6.2.3 The Miller--Rabin Test -- 6.2.4 Other Primality Tests -- 6.3 Generating Random Primes -- 6.3.1 Generating Safe Primes -- 6.3.2 Generating Pseudo-Random Primes with Maple -- 6.4 The Integer Factorization Problem -- 6.4.1 Trial Division as a Factoring Algorithm -- 6.4.2 Pollard's Rho Method and Its Maple Implementation -- 6.4.3 Fermat's Factorization Method -- 6.4.4 Fermat's Factorization Method in Maple -- 6.4.5 Factor Bases -- 6.4.6 The Factor Base Method in Maple -- 6.4.7 The Quadratic Sieve -- 6.4.8 The Basic QS Algorithm in Maple -- 6.4.9 Some Improvements on the Basic QS -- 6.4.10 The Current Status of Factorization -- 6.5 The Discrete Logarithm Problem -- 6.5.1 The Baby-Step Giant-Step Algorithm and Its Maple Implementation -- 6.5.2 Pollard's Rho Method for Discrete Logarithms -- 6.5.3 The Rho Method for Discrete Logarithms in Maple -- 6.5.4 The Pohlig--Hellman Algorithm and Its Maple Implementation -- 6.5.5 The Index Calculus Method for Discrete Logarithms -- 6.5.6 The Index Calculus Method in Maple -- 6.5.7 Extensions of the Index Calculus Method -- 6.5.8 Final Remarks on the Discrete Logarithm Problem -- 7 Introduction to Public-Key Cryptography: The Diffie--Hellman Protocol -- 7.1 From Private-Key to Public-Key Cryptography -- 7.2 The Diffie--Hellman Key Agreement -- 7.2.1 The DH Protocol and the DH Problems -- 7.2.2 Man-in-the-Middle Attacks -- 7.2.3 Groups for the DH Protocol -- 7.2.4 Attacking the Diffie--Hellman Protocol with Maple -- 7.2.5 Concluding Remarks on the Diffie--Hellman Protocol
  • 9.6 Signatures with Added Functionality -- 9.6.1 Blind Signatures -- 9.6.2 Other Signatures with Added Functionality -- 9.7 Public-Key Infrastructures -- 9.7.1 Certificates -- 9.7.2 Multiple Certification Authorities -- 10 Identity-Based Cryptography -- 10.1 Introducing Identity-Based Cryptography -- 10.2 Identity-Based Signatures -- 10.2.1 IBS Schemes -- 10.2.2 From Signature Schemes to IBS Schemes -- 10.3 Identity-Based Encryption -- 10.3.1 IBE Definition -- 10.3.2 Applications of IBE -- 10.3.3 The Cocks IBE Scheme -- 10.3.4 The Cocks IBE Scheme in Maple -- 10.4 The Boneh--Franklin IBE Scheme -- 10.4.1 Pairings -- 10.4.2 The Boneh--Franklin Scheme -- 10.5 Final Remarks on Identity-Based Cryptography -- 11 An Introduction to Elliptic Curve Cryptography -- 11.1 Elliptic Curves and Their Group Structure -- 11.1.1 Definition of Elliptic Curve -- 11.1.2 The Group Structure on an Elliptic Curve -- 11.2 Elliptic Curves Over Finite Fields -- 11.2.1 Some Small Examples -- 11.2.2 Elliptic Curve Elementary Computations -- 11.2.3 The Orders of Elliptic Curve Groups -- 11.2.4 Elliptic Curve Groups Over Prime Fields in Maple -- 11.3 The Elliptic Curve Discrete Logarithm Problem -- 11.3.1 The Rho Method and Pohlig--Hellman for the ECDLP in Maple -- 11.3.2 The Current State of the ECDLP -- 11.3.3 Reduction Attacks Against the ECDLP -- 11.3.4 Final Remarks on the ECDLP -- 11.4 Elliptic Curve Schemes -- 11.4.1 ECC Schemes and Their Domain Parameters -- 11.4.2 The Elliptic Curve Digital Signature Algorithm (ECDSA) -- 11.4.3 ECDSA in Maple -- 11.4.4 Elliptic Curve Encryption -- 11.5 Final Remarks on Elliptic Curve Cryptography -- Appendix A Some Maple Conversion Functions -- References -- Index
  • Intro -- Introduction to Cryptography with Maple -- Preface -- Contents -- Acronyms -- Introduction -- 1 Classical Ciphers and Their Cryptanalysis -- 2 Basic Concepts from Probability, Complexity, Algebra and Number Theory -- 3 Private-Key Encryption -- 4 Block Ciphers and Modes of Operation -- 5 Message Authentication -- 6 Algorithmic Number Theory for Cryptography and Cryptanalysis: Primality, Factoring and Discrete Logarithms -- 7 Introduction to Public-Key Cryptography: The Diffie--Hellman Protocol -- 8 Public-Key Encryption -- 9 Digital Signatures -- 10 Identity-Based Cryptography -- 11 An Introduction to Elliptic Curve Cryptography -- Appendix A Some Maple Conversion Functions -- References -- Index