Software Development Papers
Classical Papers
- Leslie Lamport, 1978 Time, Clocks, and the Ordering of Events in a Distributed System
- Ken Thomson, 1984 Reflections on Trusting Trust
- James Hamilton, 2007 On Designing and Deploying Internet-Scale Services
Cryptography
- Whitfield Diffie and Martin E. Hellman, 1976 New Directions in Cryptography
- EPC342-08 - Guidelines on cryptographic algorithms usage and key management
- rev. 13 in 2024
- contains recommendations on algorithms and key sizes
- Alex Biryukov, Daniel Dinu, and Dmitry Khovratovich Argon2: the memory-hard function for password hashing and other applications
- winner of the Password Hashing Competition in 2015
- GitHub repository
- European Union Agency for Cybersecurity (ENISA) Pseudonymisation techniques and best practices
- EU advices on how personal data should be handled
- Jim Waldo, 2019 A Hitchhiker’s Guide to the Blockchain Universe
- Thomas Wu, 2002 SRP-6: Improvements and Refinements to the Secure Remote Password Prototol
- Proton blog post on Improved Authentication for Email Encryption and Security which covers some interesting implementation details of their usage of SRP. They also have an excerpt from an old paper covering there SRP usage in more details in ProtonMail Security Features and Infrastructure
- Secure Remote Password protocol
Streaming Algorithms
- Robert Morris, 1977 Counting large numbers of events in small registers - approximate counting, the math in the paper is explained in
- Ted Dunning, 2019 Computing Extremely Accurate Quantiles Using t-digest
- algorithm for computing percentiles with very little space
- https://github.com/tdunning/t-digest
Memory Models and Synchronization
Quantum Computing
- Assessing the Quantum-Computing Landscape (Communications of the ACM, October 2022, Vol. 65 No. 10, Pages 57-65) Overview article of the state of Quantum Computing in 2022.
- currently most advanced quantum computers has less than 100 qubits. A general purpose computer would require approximately one million qubits to be useful. That is at least a decade away.
- the different cloud computing platforms are beginning to offer access to quantum computers - one of these is AWS Braket. Most of these are programmed using tools based on Python.