Today, we’re going to talk about time. Not time in the metaphysical sense, but the measurement of time. In most of the modern world, we use a number of common units of duration such as seconds, minutes, hours, days, months and years. Most of us have an intuitive feel for these units and are comfortable using them everyday to do things like setting alarm clocks, booking flights, paying for parking, remembering birth days etc. We even think of the system as a reasonably logical one – 60 seconds in a minute, 60 minutes in an hour, 24 hours in a days 365 days a year etc. Here, we shall take a look at how these intuitive models ignore some of the more bizarre aspects of time keeping. If not understood correctly, these mistakes creep into unexpected places, affecting everything from software systems, medical and aeronautical system to financial and legal frameworks.
Ciphers: Hiding in Plain Sight
My last post talked about cryptography, its motivation and its primitive techniques. In this post, we shall learn about modern security techniques and how they keep us secure. We will touch upon the mathematical basis behind modern cryptography, talk about symmetric key cryptography and talk about a technique for exchanging secrets out in the open known as the Diffie-Hellman key exchange. To start off the discussion, I would like you to consider the following situation. Alice is a diplomat in a foreign country and has some sensitive information that she would like to communicate to Bob, her superior. The only means of communication available to Alice is a phone line that she and Bob knows is constantly being monitored and eves dropped on. How could Alice and Bob communicate a message in a secure manner starting from this state? We saw in the last post how, with some pre-decided shared secret (such as a codebook when using a substitution cipher), one could attempt to obscure a message and make it hard (but not too hard) to guess. More curiously, starting with no secret state between the two parties, is it possible to establish a secret codebook? In other words, sharing no secrets beforehand, is it possible to begin sharing a secret?
Ciphers: Early Techniques
We have all heard the word ‘encrypted’ used many times on television or in movies. It is usually implies some form of security or an obstacle that needs to be overcome by some button pushing by a man in a lab coat. Shows such as CSI and Law and Order use it, almost indiscriminately and often inaccurately. So what exactly is encryption and what does it mean to say that a message is encrypted? In this post, I shall describe the motivation behind cryptography, a number of early encryption schemes and the idea behind modern cryptography. In the second post in this series, I will describe more modern algorithms as they are used today in computers to protect your identity, privacy and security on the Internet.
Data Compression and Crowded Pigeons
Have you ever used a data compression program? WinZip, WinRAR, bzip2 and gzip are all common data compression software. If you have ever emailed large pictures, sent or received text files or pdfs, you may have run across these pieces of software. In general, they take a set of input files, and output a compressed file, which when uncompressed, produce the original files again. The quite amazing thing that these software applications do is to produce a compressed file whose size is less than the sum of the sizes of the input files. This is great! But have you wondered, what would happen if you tried to compress a compressed file? Would it get smaller? Could you not, therefore, repeatedly compress the same file over and over till it became insignificantly small? What is to stop this? Another question you may ask is, given a compressor, can you compress all files to yield a smaller file? Why do some files compress more than others?