Today marks the end of my first week back home, and just chilling on sabbatical. Don’t get it twisted, though; I’ve been pretty busy — cough, I just got back from the local equivalent of Turkish Baths, chilling in warm pools all day, cough…
Seriously though, I entered the sabbatical knowing I would be working on at least one of five projects I’ve had in my “things I would do if I had infinite time” list. In this case, it’s been working on a “new” (as in, nobody has ever actually tried implementing it before) way to do witness encryption. It’s the equivalent of putting something in an envelope and giving it to a trusted third party to give to someone in the event X happens: only with witness encryption, a trusted third party isn’t required. The encryption is basically programmable such that you can only decrypt it when X happens, instead of requiring a secret key.
Witness encryption is nothing new (it’s been around at least 10 years), but existing implementations have many problems, and I have a few ideas I want to explore. Maybe it will work out, and that would be pretty awesome … or perhaps it won’t, and I learned a ton about some math I’ve always had my eye on.
I almost thought my idea wasn’t going to work, and I gave myself until 2 am yesterday to figure out why I was getting nonsensical results. I managed to find and resolve the issue at 1:59 am. I spent all day and long into the night just hunting through code, looking for what I knew to be an integer overflow issue. I just managed to spot it as I was closing my laptop … after reading it 1,000 times.
This project has until next Wednesday to come through, then it is on to another “infinite time” project, which I’ve been curious about for nearly a decade. If that works, you’d literally be able to go to the moon on a tank of gas (or a fully charged Tesla) and have flying cars. There’s no way to prove it does or doesn’t work with physics because it causes a division by 0 if you try to work it out. But anyway, I really want to see what happens… according to a simulation I wrote nearly 5-6 years ago, it works. I feel it won’t work in the real world, though, which is how it got on this list… I just have to see what happens now that I have time to dedicate to trying wacky ideas. Who knows, maybe it does work?
If this cryptology project does pan out, I’ll probably write a paper, do a cryptoanalysis, create a website, and open-source it. That’ll take more time than until next Wednesday.
In reflection, I found this first week interesting and “lonely.” I’m used to interacting with my team daily, helping people solve problems, and being part of a community at work. That community is “on hold” for the moment, and that’s where the “loneliness” comes from. I know I’ll eventually find a new community to be a part of; it just takes time.
Speaking of time, I feel like time has flown by. In just a few weeks, my sister will be visiting, and then a few weeks after that, we’ll be going to Ireland for a couple of weeks, and then it is back to work. It’s crazy how time flies!