Prototyping
For our prototype the team initially had gathered supplies to use two arduino uno boards and 4 LEDs to demonstrate a proof of concept for our project. The prototyping consisted of three major parts, one being encryption and decryption, another reading over serial to the console, and the last was using LEDs to display the amount of characters in the plain text in a binary value. The team began with creating a simple shift cipher program, coded using the arduino IDE with two parts, encryption and decryption. Each part ran on a separate boards to show that encryption can happen on one device and decryption on the other. When the user entered the plain text to encrypt and hit enter on the keyboard the code would count the amount of characters within that string and display the amount with the LEDs.
Fortunately, the team had a breakthrough in getting the Xilinx FPGA’s that are being used for the final project. Once we had figured out how to upload a program to the board using Xilinx’s software development kit, the team used a shift cipher we had already coded in C to demonstrate a prototype on the board. We had the three initial parts of the prototype, with an added function of using push buttons to trigger the encryption console and decryption console.
The team chose these three objectives to demonstrate in our prototype because it showcased some of the biggest objectives of our project. Demonstrating serial communication was important because it shows the beginnings of how we plan to communicate with our board in our final product. The final product will communicate over different methods such as over USB or ethernet.
Demonstrating the encryption and decryption methods showed that we had a basic method of encrypting and decrypting. We chose to use a simple shift cipher as it is very easy to understand and verify. Verifying our cipher showed that the code we had uploaded to the board worked properly and was doing exactly as we desired.
To implement our hardware a bit we used LEDs to show how many characters were in the message we were encrypting or decrypting. In the teams final product we plan on using LEDs to show the progress of our encryption. We can demonstrate the progress of the program by using the LEDs as a progress bar to show how much more of the program we need to encrypt or decrypt.