Cryptography 1
Over the next couple of weeks we will be looking at cryptography. While it may not directly help us secure our infrastructure, it is in important tool for security. As it means that data in our systems, if encrypted, can only be read by intended users.
Note
I am going to call it Crypto from now on, save wearing out my keyboard :p
What is Cryptography
Cryptography is used to provide security and protection for information, and is used everywhere in software. Without crypto things like online shopping, or secure browsing would be impossible.
While the study of cryptography itself is maths turned up to 11™, as developers we need some understanding of what it is, how it works, and how to use cryptographic libraries to improve the security of our software.
Where is Cryptography used
Encryption
This is the most obvious, storing and transmitting data in a secure way. We encrypt and decrypt data using keys that ensure only the intended person / or people can read or process it.
Hashing
Another common form of cryptography, that you should have heard of. One way Hash functions are used to transform content into a hash, which is difficult (or impossible) to reverse back to the original text.
Hashes care used for several things including:
- Storing passwords
- Blockchain
- Git Commits
Digital Signatures
Provide a way of guaranteeing the authenticity of data. Asymmetric cryptography can be used for message signing, or other authentication algorithms like HMAC can be used.
The Next couple of weeks
As well as some theory we will take a look at Practical Cryptography.
- How can we use these tools to keep our programs secure?
- What do we need to consider when using Crypto?
Tools for playing with Codes and Ciphers
There are lots of tools to help you deal with code online. I like either:
Topics for this week
- Authentication
- History of Cryptography
- Encoding Data
- Hashing