ECE 545 Project 1 Introduction & Specification Part I.

Slides:



Advertisements
Similar presentations
ECE 448 – FPGA and ASIC Design with VHDLGeorge Mason University ECE 448: Lab 2 Implementing Sequential Logic in VHDL.
Advertisements

TIE Extensions for Cryptographic Acceleration Charles-Henri Gros Alan Keefer Ankur Singla.
1 The AES block cipher Niels Ferguson. 2 What is it? Block cipher: encrypts fixed-size blocks. Design by two Belgians. Chosen from 15 entries in a competition.
VHDL AES 128 Encryption/Decryption
ECE 448: Spring 12 Lab 4 – Part 2 Finite State Machines Basys2 FPGA Board.
ECE 545 Project 1 Part IV Key Scheduling Final Integration List of Deliverables.
1 Chapter 3 Ciphers Mechanism that decides the process of encryption/decryption Stream Cipher: Bit-by-bit encryption / decryption Block Cipher: Block-by-block.
SHA-3 Candidate Evaluation 1. FPGA Benchmarking - Phase Round-2 SHA-3 Candidates implemented by 33 graduate students following the same design.
FPGA (Field Programmable Gate Array): CLBs, Slices, and LUTs Each configurable logic block (CLB) in Spartan-6 FPGAs consists of two slices, arranged side-by-side.
VHDL Project Specification Naser Mohammadzadeh. Schedule  due date: Tir 18 th 2.
Cryptography Team Presentation 2
Welcome to the ECE 449 Computer Design Lab Spring 2005.
Swankoski MAPLD 2005 / B103 1 Dynamic High-Performance Multi-Mode Architectures for AES Encryption Eric Swankoski Naval Research Lab Vijay Narayanan Penn.
ECE 448: Spring 11 Lab 3 Part 1 Sequential Logic for Synthesis.
“Implementation of a RC5 block cipher algorithm and implementing an attack on it” Cryptography Team Presentation 1.
ECE 545 Project 2 Specification Part I. Adjust your synthesizable code for Project 1 in such a way that it complies with the following requirements: a.
ECE 545 Project 2 Specification. Schedule of Projects (1) Project 1 RTL design for FPGAs (20 points) Due date: Tuesday, November 22, midnight (firm) Checkpoints:
ECE 545 Digital System Design with VHDL
ECE 545 Project 2 Specification. Project 2 (15 points) – due Tuesday, December 19, noon Application: cryptography OR digital signal processing optimized.
George Mason University ECE 449 – Computer Design Lab Welcome to the ECE 449 Computer Design Lab Spring 2004.
Introductory project. Development systems Design Entry –Foundation ISE –Third party tools Mentor Graphics: FPGA Advantage Celoxica: DK Design Suite Design.
Introduction to VHDL Simulation … Synthesis …. The digital design process… Initial specification Block diagram Final product Circuit equations Logic design.
Lecture 5 Block Diagrams Modes of Operation of Block Ciphers.
Introduction to FPGA Tools
Lecture 9 RTL Design Methodology. Structure of a Typical Digital System Datapath (Execution Unit) Controller (Control Unit) Data Inputs Data Outputs Control.
FPGA Implementation of RC6 including key schedule Hunar Qadir Fouad Ramia.
ECE 645 Spring 2007 PROJECT 2 Specification. Topic Options.
Chapter 2 Symmetric Encryption.
RTL Design Methodology Transition from Pseudocode & Interface
VHDL and Hardware Tools CS 184, Spring 4/6/5. Hardware Design for Architecture What goes into the hardware level of architecture design? Evaluate design.
Lecture 5B Block Diagrams HASH Example.
Lecture 3 RTL Design Methodology Transition from Pseudocode & Interface to a Corresponding Block Diagram.
CDA 4253 FPGA System Design RTL Design Methodology 1 Hao Zheng Comp Sci & Eng USF.
Encryption / Decryption on FPGA Final Presentation Written by: Daniel Farcovich ID Saar Vigodskey ID Advisor: Mony Orbach Summer.
ECE 448 Lecture 6 Finite State Machines State Diagrams vs. Algorithmic State Machine (ASM) Charts.
George Mason University ECE 448 – FPGA and ASIC Design with VHDL FPGA Design Flow based on Aldec Active-HDL FPGA Board.
George Mason University Design of Controllers using Algorithmic State Machine (ASM) Charts ECE 545 Lecture 12.
Encryption / Decryption on FPGA Midterm Presentation Written by: Daniel Farcovich ID Saar Vigodskey ID Advisor: Mony Orbach Summer.
The RC6 Block Cipher: A simple fast secure. Design Philosophy u Leverage our experience with RC5: use data-dependent rotations to achieve a high level.
Implementing Combinational
RTL Design Methodology Transition from Pseudocode & Interface
Hash Function Performance Metrics
Introduction Introduction to VHDL Entities Signals Data & Scalar Types
FPGA Implementation of Multicore AES 128/192/256
ECE 448 Lecture 6 Finite State Machines State Diagrams vs. Algorithmic State Machine (ASM) Charts.
RTL Design Methodology
Implementing Combinational and Sequential Logic in VHDL
Course Agenda DSP Design Flow.
RTL Design Methodology
Project Deliverables ECE 545 – Introduction to VHDL.
Unit 2 “Implementation of a RC5 block cipher algorithm and implementing an attack on it”
Lecture 18 SORTING in Hardware.
Cryptography Team Presentation 1
Dynamic High-Performance Multi-Mode Architectures for AES Encryption
ECE 545 Lecture 10 Design of Controllers Finite State Machines and Algorithmic State Machine (ASM) Charts.
ECE 545 Lecture 9 Design of Controllers Finite State Machines and Algorithmic State Machine (ASM) Charts.
ECE 545 Lecture 11 Design of Controllers Finite State Machines and Algorithmic State Machine (ASM) Charts.
RTL Design Methodology Transition from Pseudocode & Interface
Sequential Logic for Synthesis Based on Aldec Active-HDL
Block Ciphers: DES and AES
HARDWARE IMPLEMENTATION OF TEA TINY ENCRYPTION ALGORITHM
ECE 545 Remaining Tasks.
RTL Design Methodology
RTL Design Methodology Transition from Pseudocode & Interface
RTL Design Methodology
RTL Design Methodology Transition from Pseudocode & Interface
RTL Design Methodology
RTL Design Methodology Transition from Pseudocode & Interface
RTL Design Methodology
ECE 448 Lecture 6 Finite State Machines State Diagrams vs. Algorithmic State Machine (ASM) Charts.
Presentation transcript:

ECE 545 Project 1 Introduction & Specification Part I

Cipher Message / Ciphertext Ciphertext / Message Cryptographic Key m bits k bits Encrypt/Decrypt 1 bit

Secret-Key Ciphers key of Alice and Bob - K AB Alice Bob Network Encryption Decryption

Block vs. stream ciphers Stream cipher memory Block cipher KK M 1, M 2, …, M n m 1, m 2, …, m n C 1, C 2, …, C n c 1, c 2, …, c n C i =f K (M i )C i = f K (m i, m i-1, …, m 2, m 1 ) Every block of ciphertext is a function of only one corresponding block of plaintext Every block of ciphertext is a function of the current and all proceeding blocks of plaintext

Initial transformation Final transformation r times Round Key[i] i:=i+1 Round Key[0] i:=1 i < r Cipher Round Round Key[#rounds+1] Typical Flow Diagram of a Secret-Key Block Cipher

register combinational logic one round multiplexer Basic iterative architecture round key Encrypt/Decrypt

IN OUT M1 C1 M2 C2 M3 Basic architecture: Timing r · clock_period CLK

RC5 Ron Rivest, MIT, 1994 variable key length - k variable i/o block size - m variable number of rounds - r simple description (Ron’s Code 5, Rivest’s Cipher 5)

One of the fastest ciphers Basic operation Y Y<<X Rotation by a variable number of bits RC5 X times

RC5 w/r/b w - word size in bits input/output block size, m = 2 words = 2  w bits Typical values: w=32  64-bit input/output block w=64  128-bit input/output block r - number of rounds b - key size in bytes key size in bits, k = 8  b bits 0  b  255 w = 16, 32, 64

RC5 32/12/16 64 bit block 12 rounds 128 bit key Most commonly used sets of parameters RC5 64/20/ bit block 20 rounds 256 bit key

Encryption A || B = M A = A + S[0] B = B + S[1] for i= 1 to r do { A= (A  B) <<< B + S[2i] B= (B  A) <<< A + S[2i+1] } C= A || B RC5 Decryption A || B = C for i= r downto 1 do { B= ((B  S[2i+1]) >>> A)  A A= ((A  S[2i])>>>B)  B } B = B  S[1] A = A  S[0] M= A || B

Notation || - concatenation  - XOR X <<< Y - X rotated by Y positions + - addition without carry (addition modulo 2 w ) S[i] – value of a round key i

variable rotation ROL32 Mux-based rotation High-speed clock C ASM Variable Rotation A <<< B ROL A, B C = (A > (32-B)); min (B, 32-B) CLK’ cycles Hardware Software fast clock CLK’ A A<<<B A<<<0A<<<16 32 B[4] B[3] B[2] B[1] B[0]

RC5 - Key Scheduling k bits of the main key 2  r + 2 round keys = (2  r + 2 )  w bits Two magic constants: P w = Odd ((e-2)  2 w ) Q w = Odd ((  -1)  2 w ) e - base of natural logarithms e =  - golden ratio = yx-y x x y = y =

RC5 - Key Scheduling Initialize Mix t = 2  r + 2 c = 8b8b w S[0] = P w for i=0 to t-1 do S[i] = S[i] + Q w i = j = 0 A = B = 0 do 3  max{t, c} times { A = S[i] = (S[i] + A + B) <<< 3 B = L[j] = (L[j] + A + B) <<< (A+B) i = (i+1) mod t j = (j+1) mod c }

key scheduling encryption/decryption memory of round keys output input input interface output interface Control unit control Implementation of a secret-key cipher Round keys precomputed key

Encryption/decryption unit clock reset encrypt/decrypt data input data available data read m key input key available key read k Key scheduling unit Key memory data output write full n round key(s) round number round key(s) cycle number

Project 1 - Organization 25 points total 4 phases, 1 phase per week grading 5 points for each phase + 5 point for a final report individual project the same for all students contest for the best results (bonus points awarded to winners)

Project 1 – Honor Code Rules All students are expected to write and debug their codes individually Students are encouraged to help and support each other in all problems related to the - operation of the CAD tools, - basic understanding of the problem.

Project 1 – Optimization Criteria Maximum ratio Encryption/Decryption Throughput divided by Total Circuit Area

Primary parameters of hardware implementations for secret-key block ciphers Latency Throughput Encryption/ decryption Time to encrypt/decrypt a single block of data MiMi CiCi Number of bits encrypted/decrypted in a unit of time Encryption/ decryption MiMi M i+1 M i+2 CiCi C i+1 C i+2 Throughput = Block_size · Number_of_blocks_processed_simultaneously Latency

Project 1 - Organization Electronic submission by Monday, noon Feedback provided to students in class and during office hours

Project 1 – Platform & tools Target devices: Xilinx FPGA Spartan 2 family Tools: VHDL Simulation: Aldec Active HDL or ModelSim VHDL Synthesis: Synplify Pro Implementation: Xilinx ISE

Phase 1, due Monday October 4, noon 1.Draw a block diagram of a single round of encryption 2.Draw a block diagram of a single round of decryption 3.Draw a combined block diagram of a circuit capable of implementing a single round of both encryption and decryption with possible resource sharing 4.Describe in VHDL combinational logic implementing one round of encryption and decryption using dataflow design style, i.e., using only concurrent statements 5. Write a testbench capable of verifying function of your circuit 6. Describe the entire datapath of the encryption/decryption unit in VHDL, assuming the use of the basic iterative architecture