Individual Progress Report

Description

The Individual Progress Report (IPR) is a chance to put your contributions to the team's progress in writing. The report will discuss not only the components and subsystems you have personally been responsible for, but what components you have helped work on as well. It is important to talk about the relation between your work and your teammates' work as well.

Requirements and Grading

This report should be 5-12 pages of your own work. This means that you cannot take paragraphs/text from your Design Review document, since that was a collaborative effort. The IPR Grading Rubric describes what we look for in grading this assignment. The requirements are expanded on below:

  1. General: Concise writing is encouraged, but it is important that all pertinent information is conveyed. All figures should be labeled and formatted consistently.
  2. Formatting: Please refer to the Final Report Guidelines for general writing guidelines, since the format of this report should be very similar to that of the final report. Note that each component of the Final Report may be tailored to the parts of the project the individual has been active in.
  3. Introduction: First, discuss what portion of the system you have been active in designing connects to which portion of a different subsystem, and how these interact to complete an overall objective. Then discuss what you have accomplished, what you are currently working on, and what you still have left to do.
  4. Design: Discuss the design work you have done so far. It is expected that you have done calculations and/or found relevant equations, created circuits for your parts of the project, and simulated / drawn schematics for your parts. You may have already, at a high level, discussed how your part fits into the rest of the project, but you should expand on the technical details and interface between your module(s) and the other modules of the project.
  5. Verification: Testing and verification is also very important. Make sure you describe each test that was performed and its procedure in detail, and give quantitative, meaningful results. Also describe tests that have yet to be performed. We should be convinced that if all your tests will pass, your part of the project will work.
  6. Conclusion: Discuss a plan and timeline for completing your responsibilities and your project as a whole. Also explain the ethical considerations of your project by consulting the IEEE Code of Ethics, ACM Code of Ethics, or another relevant Code of Ethics.
  7. Citations: You need citations. Cite sources for equations, Application Notes you referenced in your design, and any literature you used to help design or verify your work. If you checked something from another course's lecture slides, Google'd for things related to your project, or anything similar, then you have something you need to cite. At the very least, since you have talked about the ethical considerations of your project as it relates to a published code of ethics (e.g., IEEE or ACM), you should cite those!

Submission and Deadlines

The IPR should be submitted on canvas in PDF format by the deadline listed on the Course Calendar.

Schnorr Protocol Key Fob

Michael Gamota, Vasav Nair, Pedro Ocampo

Featured Project

# Schnorr Identification Protocol Key Fob

Team Members:

- Michael Gamota (mgamota2)

- Vasav Nair (vasavbn2)

- Pedro Ocampo (pocamp3)

# Problem

Current car fobs are susceptible to different types of attacks. Rolling jam attacks are one of such attacks where an attacker jams and stores a valid "unlock" signal for later. Cars with passive keys/cards can be stolen using relay attacks. Since a car can be the most expensive item someone owns, it is unreasonable to allow people to steal them so discreetly by hacking the fob/lock combo.

# Solution

By leveraging public key cryptography, specifically the Schnorr identification protocol, it is possible to create a key fob which is not susceptible to either attack (rolling jam and relay) and also gives no information about the private key of the fob if the signal were to be intercepted.

# Solution Components

# Key Fob

## Subsystem 1

Random number generation - We will use a transistor circuit to generate random numbers. This is required by the Schnorr protocol to ensure security.

## Subsystem 2

Microcontroller - The MCU will run all the computation to calculate the messages. We will likely use an ATtiny MCU so we can use the Arduino IDE for programming. However, some group members have experience with the STM32 family so that is another option.

## Subsystem 3

Power - We plan on using either a 5V battery or 3.3V battery with a boost converter to power the fob.

## Subsystem 4

Wireless Communication - We plan on using the 315 MHz frequency band which is currently used by some car fobs. We will need a transmitter and receiver, since the protocol is interactive.

# Lock

## Subsystem 1

Random number generation - We will use a transistor circuit to generate random numbers. This is required by the Schnorr protocol to ensure security.

## Subsystem 2

Microcontroller - This MCU will also run all the computation to calculate the messages. We will likely use an ATtiny MCU so we can use the Arduino IDE for programming. However, some group members have experience with the STM32 family so that is another option. This MCU will need to have PWM output to control the lock.

## Subsystem 3

Linear Actuator - We plan on using a linear actuator as a deadbolt lock for demonstration purposes.

## Subsystem 4

Wireless Communication - We plan on using the 315 MHz frequency band which is currently used by some car fobs. We will need a transmitter and receiver, since the protocol is interactive.

## Subsystem 5

Power - This subsystem will also likely require 5V, but power sourcing is not an issue since this system would be connected to the car battery. During a demo I would be acceptable to have this plugged into a power supply or a barrel jack connector from an AC-DC converter.

# Criterion For Success

Describe high-level goals that your project needs to achieve to be effective. These goals need to be clearly testable and not subjective.

Our first criteria for success is a reasonably sized fob. There is some concern about the power storage and consumption of the fob.

The next criteria for success is communication between the fob and the lock. This will be the first milestone in our design. We will need to have a message sent from one MCU that is properly received by the other, we can determine this in the debug terminal.

Once we are sure that we can communicate between the fob and the lock, we will implement the Schnorr protocol on the two systems, where the fob will act as the prover and the lock as the verifier. If the Schnorr signature implementation is correct, then we will always be able to unlock the lock using the fob whose public key is associated with full privileges.

Project Videos