Thursday, August 4, 2011

The beauty of cryptography

Cryptography is an ancient art. However, it is only in the last 40-50 years that it has evolved and gained considerable roots and applications as different topics in computer science have evolved.
The main problem that we deal with is a scenario in which Alice wants to send Bob a message over an insecure channel. The most known cryptographic primitive that helps protect Alice's message (keep it secret) is encryption. Keeping that in mind, it's important to understand that cryptography consists of other useful and important security "gems", such as:
1) Digital signatures,
2) Cryptographic hash functions,
3) Message authentication codes,
4) Zero knowledge proofs and much more.
Most importantly, these cryptographic gems help us leverage and meet security requirements where different information security solutions (not based on crypto') fail or don't fully comply.

Our goals:
The cryptographic utilities above help us achieve different goals based on the threat model we're facing. The main issues are:
1) Confidentiality (secrecy),
2) Integrity,
3) Availability,
Together comprise the well know CIA.
4) Authentication,
5) Non-repudiation,
6) Completeness (security of protocols).

Applications and real world use cases:
The beauty of cryptography lies in the vast prospect it holds in achieving security, privacy and completeness in different real world situations and systems such as: Online auctions, e-voting, electronic cash, information retrieval and privacy of health records to state a few.