Wednesday, October 09, 2019

What Every Quantum Researcher and Engineer Should Know about Classical Cryptography

At a conference in Berlin in June, I was asked, paraphrasing, about why we change the cryptographic keys used during long communication sessions, and how often they ought to be changed.  I waved my hands a little bit, but I wasn't completely satisfied with my own answer. It turned out to be a good opportunity for me to dig into a little background I'd been meaning to go through.  It also proved to be a remarkably hard question to answer from googling up pages, including cryptography research papers and the extensive mailing list archives from development of key Internet protocols.  I fell down a pretty serious rabbit hole here, and haven't found my way out yet.

What I have wound up with is about 25 pages of notes on classical cryptography, and I have decided to turn them into something that will benefit the quantum community at large.  I'm tentatively titling it, "What Every Quantum Researcher and Engineer Should Know about Classical Cryptography", in homage to Goldberg's classic paper on floating point arithmetic.

The target audience for this is primarily quantum computing researchers who are familiar with Shor's algorithm, Grover's algorithm and QKD, since those are among the first things you learn, but who have only a very rough idea of what it means to actually encrypt data and to use encryption in a real-world setting.

I'll be posting the notes gradually over the next few weeks here on this blog, and I hope you will comment and help me improve them.

Table of Contents:
  1. Introduction
  2. Encrypted Communications
    1. Authentication
    2. Key Generation
    3. Bulk Data Encryption
      1. DES
      2. AES
      3. Limitations of Block Ciphers
    4. Notes & References
  3. Cryptanalysis
    1. Defense
      1. Entropy
      2. Diffusion and Confusion
    2. The Birthday Paradox, or, When Should I Change my Encryption Keys?
    3. Differential Cryptanalysis
    4. Linear Cryptanalysis
    5. Known and Chosen Plaintexts in Real Systems
    6. Notes & References
  4. IPsec and the IETF
    1. Internet Standards
    2. (Classical) IPsec
    3. Digging into the Cryptanalysis of IPsec
    4. IPsec with QKD
    5. Notes & References
  5. TLS/SSL and cryptography
    1. TLS Records and Basic Limits
    2. Keying and Rekeying
    3. Other Attacks on TLS
    4. TLS and QKD
    5. Notes & References
  6. Quantum Attacks on Classical Crypto
    1. Shor 'Nuff
    2. Grover's Amplifier
  7. Post-Quantum Cryptography
  8. Bitcoin/Blockchain and Quantum Computers
  9. Conclusion
  10. Additional References
See the first installment here.

1 comment:

David said...

Excellent initiative! Looking forward to the whole series.