| Grant Ayers |
![]() (2012 - I need to update this pic!) ![]() |
I'm a recent graduate of the University of Utah, where I received a BS in Computer Engineering and MS in Electrical and Computer Engineering. I am joining the Computer Science department at Stanford University in the fall of 2012 to pursue a Ph.D in Computer Science. I have many interests in this field, including UNIX-like operating systems, cryptography and security, steganography, and networks for the software side, and processor design, embedded systems, FPGAs, sensor/control systems, and ASIC design for the hardware side (with many things in between). Essentially I like understanding computer systems from the transistor level to the application. My other interests include such things as biking, music, water polo, piano, filmmaking, and the Spanish language.
High-Radix Electrical Arbitration for routers designed for optical crossbar datapaths. This research is supervised by Al Davis and investigates the use of parallel prefix tree structures for priority logic to arbitrate high-radix (up to 1024) routers.
XUM is the eXtensible Utah Multicore Project, which is a full and open-source multicore CPU and Network-on-Chip designed for FPGAs. This project is headed by Ganesh Gopalakrishnan and explores many new and open research questions with respect to multicore. It aims to provide a platform for conducting holistic hardware and software design and verification. I recently redesigned its general-purpose CPU from the ground up in Verilog to be small, fast, and reliable. Here are slides from a presentation I gave on it.
Update: The MIPS32 R1 processor is now on OpenCores (link). The complete XUM 2.0 single/multicore release can be found here.
TLS/SSL Man-In-The-Middle Attack For a network security course, I implemented an attack on the Public Key Infrastructure (PKI) that we use on today's Internet. This attack exploits the inherent trust we place in CAs, our browser developers, and the underlying insecure network we use to transfer data. This possibility has been known for years, but this project demonstrated the extreme ease with which attackers can place themselves "in the middle" and carry out this attack. For a demonstration, we logged into an email and bank account without any warnings from the browser, after which we dumped the complete connection traffic to the screen, which revealed all of the passwords and transmitted data.
You can view the browser attack video (WMV 6MB), which shows a download of Firefox on a clean operating system and a successful login to a test email account without warnings or errors. (Note that the actual Firefox binary was injected into the insecure connection, and has a custom root CA labeled "MiddleMen" installed.) Then view attack console video (WMV 2MB), which reveals the password (and all traffic) from the browser session. Finally, see the certificates video (WMV 2MB) to see more details about the MITM root certificate implementation.
UAV Helicopter For a Senior Computer Engineering project, Nic McDonald and I built a stabilization unit for an RC helicopter. This project included the use of gyroscopes, magnetometers, accelerometers, GPS, a proximity detector, and temperature sensor, and ran across eleven concurrent software threads on both the ground and on the helicopter. During that time we supported the UAV page. Our final report will be in the 2010 section of the CS 3992 course page. Also check out the Indoor Stabilization Test and Outdoor PID Calibration Test videos from December, 2010 (turn your volume down!).
Whack-on-LAN is a remote power cycling solution for remotely-deployed PCs that requires no additional infrastructure and is extremely inexpensive. It enables a guaranteed remote hardware reset over Ethernet and is very robust. I developed this as a member of the Flux Research Group to address the issue of "wedged" nodes on the Emulab testbed. The complete security implementation is still a work in progress. Please email me for the most current version of the Whack-on-LAN technical paper.
Steganography is the art of hiding secret information in seemingly innocent mediums. These have commonly included the use of invisible inks, wax-covered tablets, and even tattoos. In the modern and digital world, we can implement steganography in the millions of bits we pass around each day in the form of pictures, music, documents, and other files. When coupled with cryptography, steganography provides a powerful tool for communication in even the most hostile and controlled environments.
I've not performed formal research on the subject, but I like playing around with it on my free time. So far I've created two steganographic tools; one for hiding data in images, and the other for hiding data in audio. They are intended as proof-of-concept only, but the audio implementation is very flexible and can be especially secure. Find them on the Steganography page. I also created a multilayer image implementation for a gen-ed final during my first semester here. Note that these binaries and links are from 2004/2005 and are old and unmaintained. I will post the source when I can locate it (why should you trust my binaries?).
(Not so) recent activities, though mostly from high school. I also used to maintain a site at Tejat.net as a member of a small coding group. I used to think Facebook was cool too.
In December 2007 I returned from serving a two-year mission in Buenos Aires, Argentina. While there, I learned a new culture and language, and made many friends from all backgrounds and circumstances. That experience changed us for the better, and was some of the best education I have ever received. If you would like to speak Castillian, or just plain Spanish, find me! And that's me in a world-readable page.