With
increasing incidence of identity thefts, credit card frauds, social engineering attacks,
digital world is facing challenges in
years ahead. Obviously, cryptography, a young science, will play a prominent role in
security of protecting digital assets. This article tries to explain
basics of cryptography (encryption) using plain language. Let us take
example of scrambling an egg. First, crack
shell, pour
contents into a bowl and beat
contents vigorously until you achieved
needed result - well, a scrambled egg. This action of mixing
molecules of
egg is encryption. Since
molecules are mixed-up, we say
egg has achieved a higher state of entropy (state of randomness). To return
scrambled egg to its original form (including uncracking
shell) is decryption. Impossible?
However, if we substitute
word “egg” and replace it with “number”, “molecules” with “digits”, it is POSSIBLE. This, my friend, is
exciting world of cryptography (crypto for short). It is a new field dominated by talented mathematicians who uses vocabulary like "non-linear polynomial relations", "overdefined systems of multivariate polynomial equations", "Galois fields", and so forth. These cryptographers uses language that mere mortals like us cannot pretend to understand.
In
computer, everything stored are numbers. Your MP3 file is a number. Your text message is a number. Your address book is a longer number. The number 65 represents
character "A", 97 for
small "a", and so on.
For humans, we recognize numbers with
digits from 0 to 9, where else,
computer can only recognize 0 or 1. This is
binary system which uses bits instead of digits. To convert bits to digits, just simply multiply
number of bits by 0.3 to get a good estimation. For example, if you have 256-bits of Indonesian Rupiah (one of
lowest currency denomination in
world), Bill Gates’ wealth in comparison would be microscopic.
The hexadecimal (base 16) system uses
ten digits from 0 to 9, plus
six extra symbols from A to F. This set has sixteen different “digits”, hence
hexadecimal name. This notation is useful for computer workers to peek into
"real contents" stored by
computer. Alternatively, treat these different number systems as currencies, be it Euro, Swiss Franc, British Pound and
like. Just like an object can be priced with different values using these currencies, a number can also be "priced" in these different number systems as well.