Over the past few days, I’ve heard folks pointing fingers at encryption, again, as a mysterious technology that enables terrorism. This seems to come up every few months at this point. I expect that whenever we have some senseless terrorist tragedy strike, we’ll see the encryption boogieman being blamed. I understand why this happens - America and the world has made clear that we’re not interested in letting people listen in on everything we do or say, but some believe that, regardless of how we may feel, they are entitled to eavesdrop arbitrarily. These people will claim that they will only interdict the traffic from the bad guys, and that they won’t impinge on our rights to privacy. But let’s face it - their track record is pretty poor.
That said, I understand their reasons. We live in a frightening time, no doubt. And honestly, I truly believe that those that are pushing for encryption circumventions do feel that what they are doing is in the best interests of all of us (well, of all Americans, at any rate). The problem is that it is simply too late.
There’s three primary reasons that implementing legal cryptography circumvention will not work. First, you can’t put backdoors into the algorithms themselves, you need to compromise implementations. Second, strong encryption algorithms are well known, published and widely available. Finally, if you backdoor implementations, you don’t get to keep the keys to yourself anymore.
Today, let’s address the first reason why the genie is already out of the bottle, and isn’t coming back - algorithms themselves aren’t backdoor-able.
Encryption algorithms are underpinned by rigorous, well-reviewed mathematics. AES works in a particular way. Triple-DES does as well. Asymmetric encryption has clear properties and implementations, including ElGamal or Elliptic Curve techniques. We know how these work, the algorithms are very well known. And they are based on very difficult problems that we know we can’t easily solve. No matter how much certain folks might like to be able to change that, that’s just the way it is. The underlying problems are hard, and you’re not going to make them easier by wishful thinking. Neither is there a magic number that will let you circumvent the underlying math (and no, it is not 42).
If we can’t break the algorithms themselves, then we need to insert backdoors into the implementations. That is a fabulous idea you might be thinking, especially if you’re a criminal! after all, if the circumventing key is in the code, I’ll just fire up GDB or IDA Pro, look through the disassembled code, and pull that key right out. It’ll take me, oh, maybe two or three minutes? And I’m old and slow. Those young kids today are much faster.
So we can’t put a backdoor into the code itself, but what if we could? what if we can put a super-secret code into every implementation of every algorithm available? Well, that won’t work either, as I’ll show you in the next installment.