Original Link :


Can you give us a little background about yourself?

Hi! I’m Pramod. I am a PhD student at Princeton working on formal verification as applied to hardware security concerns. Or to put it in simpler terms, I try to find security bugs by writing programs that analyze hardware and firmware.

Before I started at Princeton, I used to work in the microprocessor modeling team at AMD and a few years before that I used to write software for National Instruments’ Radio Frequency instruments and supporting software. So I’ve done quite a few things in this industry – research, software and hardware design, and I’ve really enjoyed all of it.

What did you study?

I did  my Electronics & Communication Engineering (Visvesvaraya Technological University). I then did my M.Sc (Computer Systems) from IISC, Bangalore. I did my PhD (Electrical engineering) from Princeton University. Iam currently doing a PostDoc at Berkeley in the area of Electrical Engg and Computer Science.

How did you get into electronics/engineering and when did you start?

I started programming somewhere around middle-school. That got me interested in computer science and electronics. In my last year of high-school I read a little about how microprocessors are designed, and this made me choose Electronics when I started university.

What has been your favorite project?

Honestly, it would be quite hard to pick one. A few things that stand out are:

1. While at NI, I started programming GPUs for signal processing applications. This was before CUDA and it was quite difficult to program GPUs back then, and we had a fun wrapping our brains around the GPUarchitectures.

2. At AMD, I helped design a new cache replacement algorithm for the Jaguar. We were able to come up with a new algorithm that was better than state-of-the-art academic work, so that was also fun.

3. During my PhD, the work that resulted in my HOST’15 paper was very satisfying. A lot of researchers had proposed a set of “logic encryption” schemes and we attacked these encryption methods using SAT solvers and showed they were not secure. In security research, it’s always great fun being an attacker!

Can you tell us about your latest publication?

My last few papers have been in the broad area of trying to help find security bugs in System-on-Chip (SoC) designs. Modern SoCs have a lot of accelerators (e.g., H264, AES) and also a lot of firmware which interacts very closely with the accelerators. Because of the close interaction, and especially from a security point of view, it’s important to try to co-verify firmware and hardware, as opposed to verifying hardware and software separately. So broadly my last few papers have been trying to address this problem.

Our approach has been to semi-automatically synthesize abstractions of SoC hardware, which we call Instruction-Level Abstractions, and then use these along with the firmware for co-verification. My most recent paper (DAC’16) provides a summary of our approach.

What are your favorite hardware and software tools that you use?

I am a little old-school because I prefer desktop computers, typically with a dual-monitor setup. Other than wanting a dual-monitor setup, I don’t other hardware preferences.

In terms of software, I use mostly Linux. My favorite editor is vim, I typically always have gvim open, usually with a lot of tabs and vertical splits. I program mostly in C++ and Python. My papers are written in LaTeX, so most of time you will find me editing C++/Python/LaTex in gvim.

What are you currently working on?

Related to what I said for Q4, I’m continuing to work on security verification for today’s SoCs. Right now, I have two projects going on. One is about improved methods for synthesizing Instruction-Level Abstractions (the models) that we build. The other is using model checking, which exhaustively explores all possible states of a system – but in a smart manner, because the naïve way would take billions of years – to look for security bugs.

Do you participate in professional organizations? Can you tell us about it?

I am a member of the IEEE and ACM. I mostly use them for the digital libraries and discounts at academic conferences. I would like to be more active, but it is hard to find time as a graduate student.

What are your hobbies outside of work?

I run, cook, read, eat and sleep!

What direction do you see the Electronics Industry heading in the next few years?

One thing I am really excited by is the increasing use of formal verification and synthesis tools in the industry. These tools are helping us design provably correct hardware, which is especially important because verification is one of the big challenges the industry faces.

Another thing that I am excited by is recent academic work in the area of “program synthesis.” The idea here is that you can write a program with “holes” and then computer will fill up the holes for you. If this takes off, it could revolutionize how we write programs.

I’m also really looking forward to the IoT era, where we have many interconnected sensors and we can use this to measure and optimize all aspects of our lives. There are obviously many privacy and security challenges, but that only makes things more interesting for us security researchers.

Is there anything you’d like to say to young people to encourage them to pursue electronics?

I agree with Marc Andreesen who said “software is eating the world.” Except software doesn’t run by itself, it needs hardware. So I’d say computing is eating the world. The point is, there are many aspects of our lives that can be improved with smart algorithms, sensors and computing technology and we have only just begun to scratch the surface in terms of what is possible. So I think the computing revolution is still going to continue for next several decades, and this is a very exciting time to be a part of this industry and be a part of the revolution.

On an intellectual level, the industry keeps evolving and there’s always a lot of new stuff to learn, so that is also very engaging and exciting.