Group SD0617

From ECE Department Wiki

Jump to: navigation, search

ECE 405 - Kid Krypto

Advisor: Dr. Raj Katti
Deepak Agarwal
Ben Anderson

Contents

Introduction

Purpose of the Project

  1. We will produce a device and presentation that will convey a fundamental cryptographic concept (and its mathematical grounding) to students from grades 7 – 12 and beyond in a challenging, thought provoking, and entertaining way.
  2. We will gain much knowledge on the topic of cryptography and its educating potential for math students in elementary school through high school.
  3. The key features of this project will be
    1. A circuit board based electronic device with 3 LCD display and interactive controls.
    2. A display background will be necessary to provide instruction on using the device, the process, theory, and applications. It will provide a background of cryptography and its use in society today.
    3. An interactive program that teaches the fundamentals of cryptography via the RSA algorithm with graduated examples of increasing difficulty.
  4. The project will be focused towards NDSU tour groups, so time will be an issue. We want the total program time to be no more than 20 minutes. Also, it must have a minimal or zero learning curve to operate.

Scope of the Project

The project will be focused towards NDSU tour groups, so time will be an issue. We want the total program time to be no more than 20 minutes. Also, it must have a minimal or zero learning curve to operate.

The display devices will not be able to efficiently convey all there is to know about the project, so a supplementary handbook or display board will accompany the device.

Project Start/End

Project start date: 8/25/2006
Project completion date: 5/5/2007

People or Organization Working on the Project

Deepak Agarwal
Ben Anderson

People or Organization for Whom the Project is Being Done

Dr. Raj Katti
NDSU ECE Department

 

Image:SD0617-Group.jpg Image:SD0617-KidKrypto.jpg
Ben Anderson & Deepak Agarwal

Kid Krypto Breadboard Design

 

Hardware

Our layout consists of three boards: Alice, Oscar, and Bob. They represent the Sender, Eavesdropper, and Receiver, respectively. Each has a corresponding PIC and LCD. Alice also includes a keypad and decoder to interpret user input. Alice controls the flow of the program and Oscar and Bob perform support roles in the operation.

Media:SD0617-FinalSchematic.pdf

Media:SD0617-PCBBoard.pdf

Media:SD0617-PCBoard.jpg

Image:SD0617-Hardware.jpg
 
Hardware Description

Software

Our Software consists of the drivers for the LCD and Keypad, as well as the general program flow and algorithms. Alice contains the bulk of the programming while Oscar and Bob provide support. Each PIC has algorithms and text pertinent to its operation.

Media:SD0617-FlowChart.pdf

Media:SD0617-SampleCode.pdf

Budget

Kid Krypto was a very low cost project to make and we finished well under our budget of $150. Check out the link for the final breakdown.

Media:SD0617-Budget.pdf

Project Comments

Like any major projects, there were difficulties encountered in the course of production. Perhaps the biggest difficulty was the loss of one of our partners after the first semester. We were counting on his knowledge and insights to help bring this project to completion. When he left, we had to do some major reallocation of duties and planning so we could attempt to move forward in a timely manner.

The hardware we chose, while it functions to an extent, was probably underpowered for what we originally envisioned. This was shortsighted on our part. We chose components that we were already somewhat familiar with so as to ease the process of building the project and reduce frustration in learning a new technology (as we were already learning a whole new subject matter alongside building our project.)

To that end, we have run into limitations in the size of numbers we can use. In cryptography, numbers routinely exceed the maximum 32 bit variables available on a PIC. With more crafty programming and software development, this could perhaps be worked around. However, we were unable to implement that kind of code in the time allowed.

Program size is limited to 8k so we are unable to include too many features beyond the basic program. Error checking and more ‘Object Oriented’ functions are beyond the scope of what we can do here. However, for a straight forward program, this amount of memory does seem passable. Modules of the program also suffered from size limits. A block of machine code cannot exceed a certain size (known as a psect) before the PIC will run out of room in a memory bank. Code must be divided so that it can be compiled into machine code and placed into different memory banks.

Using HI-Tech C PiccLite was troublesome initially, due to the 2k compile limit and limited devices supported. This was a major frustration originally, but once we moved to the full version of the HI-Tech C compiler (with a 45 day demo) most of our problems were relieved and we could focus on programming.

The programming was not finished in time to implement the project onto a PCB board. Some more refinements should be made before the project is fit for public consumption. Input verification, error checking, and exception handling all should be implemented first. Also, the program should be wrapped up more nicely to show the differentiation between Alice, Oscar, and Bob and their roles in the operation. This project is highly dependent on the user guide, but it would be nice to ultimately get away from a paper document that needs to follow the tool around.

We learned a lot about project management and the lifecycle of a project. The conceptualization process, gathering information from the customer, requirements captures, design options, progress updates, and all that it entails was greatly educational and we learned very much through that process.

We learned not to dwell on decisions after they have been made. If a decision has been made, don’t waste time second guessing and wondering if it was the right one. Make a move and make it work. You can always go back if there was a mistake, but you’ll never get anywhere if you don’t move forward in a timely manner.

Cryptography was a totally new topic for our group when we started, and in investigating how it works we learned so much that our previous education had left untouched. Cryptography is a truly fascinating topic and we enjoyed learning about it and can see why it has potential as a teaching tool to make math more interesting.

Creating an educational device greatly opened our eyes to the difficulties that exist in trying to make complicated topics accessible and easy to grasp for someone totally new to the subject. This project seemed like a fairly straightforward task until we finally grasped that it is meant for people to learn from. That opens a whole new can of worms that delves into how people learn, what is too easy, what is too hard, and what is too boring to even sit through. Education is a matter of taste, and we have a deeper respect for those who make it their life’s goal to educate, because it is a HARD thing to do.

In the future, I would like to see our project developed into a fully functional teaching device that doesn’t depend quite as much on an accompanying User Guide. Larger LCD’s would be effective, as well as larger microcontrollers capable of more storage and variable sizes. Perhaps a memory card could be implemented to store different programs on the board and uploaded to the PICS as the user wanted to change the program. Perhaps even having swappable memory cards would be an option.

Our advice for new design students would be: “Don’t be afraid of making a few small mistakes early on when they can be changed and remedied. Be more afraid of not moving forward until you feel things are perfect. When you finally do move forward, you may realize (as you very well probably will) that the meticulously thought out plan missed a few key points and now it is too late in the game to make up for them.” Also, communicate with your advisor and customer often and keep them updated. Their ideas for your project might change as you all become more familiar with what the project is really about.

All in all, we learned an incredible amount about project design, cryptography, education, and ourselves in this project. These are all valuable lessons that we will be able to take with us into the future.

Other Files

Here are some more project related files including the final report and presentation. Thanks for checking our our project!

Media:SD0617-FinalPwrPt.ppt

Media:SD0617-UserGuide.pdf

Media:SD0617-FinalReport.pdf

Personal tools