1 / 7

E-Voting Machine - Design Presentation

E-Voting Machine - Design Presentation. Group M1 Bohyun Jessica Kim Jonathan Chiang Chi Ho Yoon Donald Cober. Mon. Sept 22 Behavioral Verilog code TEA encryption description Revised transistor counts. Secure Electronic Voting Terminal. E-Voting Overall System Block Diagram. T: 320.

ianna
Download Presentation

E-Voting Machine - Design Presentation

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. E-Voting Machine - Design Presentation • Group M1 • Bohyun Jessica Kim • Jonathan Chiang • Chi Ho Yoon • Donald Cober Mon. Sept 22 Behavioral Verilog code TEA encryption description Revised transistor counts Secure Electronic Voting Terminal

  2. E-Voting Overall System Block Diagram T: 320 INPUTS FSM T: 1536 8 Machine Initialization FSM 5 Encryption Key SRAM (32 byte) Card Reader 1 8 8 Finger Print Scanner 1 T: 160 5 9 9 8 1 1 Discrete Buttons User Input T: 384 COMMS T: 5000 User Identification FSM 64 64 9 Regis- ter Encryption Transmit Keyboard 9 Decryption Receive 1 T: 160 64 64 T: 5000 6 8 1 Selection FSM 9 10 T: 192 Write-In SRAM (64 byte) 9 9 2 Choice SRAM (4 byte) 13 T: 240 Central Computer 8 T: 3072 9 9 1 1 1 1 Confirmation FSM T: 384 8 11 ID SRAM (8 byte) 14 T: 480 8 9 9 OUTPUTS T: 240 8 DISPLAY Serial Output Port 9 1 8 choices of candidates per page 4 pages 1 write-in per page

  3. Transistor counts

  4. Encryption Key SRAM (32 byte) 5bit Address 8bit Data Register 64bit TX Encryption 64bit TX Transmit 1bit TX 1bit RTS 8bit Data (TX) 1bit CTR 8bit Data (RX) 64bit RX Decryption 64bit RX Receive 1bit RX COMMS

  5. Tiny Encryption Algorithm Project Specs Origin: David Wheeler and Roger Needham of Cambridge Computer Laboratory First Published 1994 Original Implementation: 64-bit blocks: Two 32-bit inputs 128-bit key: Four 32-bit keys (K[0], K[1], K[2], K[3]) Feistel Structure: Symmetric structure used in block ciphers “Magic” constant: 9E3779B9 (Delta) = 2^32 / 1.6180339887 (golden ratio) 64 Feistel rounds = 32 cycles E-Voting Machine Implementation: 16-bit blocks: Two 8-bit inputs 32-bit key: Four 8-bit keys 32 Feistel rounds = 16 cycles Hardware: 4, 5-bit Shifters 16-bit Multipliers 16-bit Adder / Subtractor

  6. Tiny Encryption Algorithm C Implementation #include <stdint.h> void encrypt (, uint32_t* v uint32_t* k) { uint32_t v0=v[0], v1=v[1], sum=0, i; /* 64-bit block set up */ uint32_t delta=0x9e3779b9; /* a key schedule constant */ uint32_t k0=k[0], k1=k[1], k2=k[2], k3=k[3]; /* 128-bit cache key */ for (i=0; i < 32; i++) { /* basic cycle start */ sum += delta; v0 += ((v1<<4) + k0) ^ (v1 + sum) ^ ((v1>>5) + k1); v1 += ((v0<<4) + k2) ^ (v0 + sum) ^ ((v0>>5) + k3); } /* end cycle */ v[0]=v0; v[1]=v1; } void decrypt (uint32_t* v, uint32_t* k) { uint32_t v0=v[0], v1=v[1], sum=0xC6EF3720, i; /* 64-bit block set up */ uint32_t delta=0x9e3779b9; /* a key schedule constant */ uint32_t k0=k[0], k1=k[1], k2=k[2], k3=k[3]; /* 128-bit cache key */ for (i=0; i<32; i++) { /* basic cycle start */ v1 -= ((v0<<4) + k2) ^ (v0 + sum) ^ ((v0>>5) + k3); v0 -= ((v1<<4) + k0) ^ (v1 + sum) ^ ((v1>>5) + k1); sum -= delta; } /* end cycle */ v[0]=v0; v[1]=v1; }

  7. Questions? Thank you!

More Related