FPGA Implementation of RC6 including key schedule Hunar Qadir Fouad Ramia.

Slides:



Advertisements
Similar presentations
FPGA and ASIC Technology Comparison - 1 © 2009 Xilinx, Inc. All Rights Reserved FPGA and ASIC Technology Comparison, Part 2.
Advertisements

© 2003 Xilinx, Inc. All Rights Reserved Course Wrap Up DSP Design Flow.
TIE Extensions for Cryptographic Acceleration Charles-Henri Gros Alan Keefer Ankur Singla.
Altera FLEX 10K technology in Real Time Application.
University Of Vaasa Telecommunications Engineering Automation Seminar Signal Generator By Tibebu Sime 13 th December 2011.
Graduate Computer Architecture I Lecture 15: Intro to Reconfigurable Devices.
Zheming CSCE715.  A wireless sensor network (WSN) ◦ Spatially distributed sensors to monitor physical or environmental conditions, and to cooperatively.
© 2004 Xilinx, Inc. All Rights Reserved Implemented by : Alon Ben Shalom Yoni Landau Project supervised by: Mony Orbach High speed digital systems laboratory.
Configurable System-on-Chip: Xilinx EDK
The Design of Improved Dynamic AES and Hardware Implementation Using FPGA 游精允.
VHDL AES 128 Encryption/Decryption
Characterization Presentation Neural Network Implementation On FPGA Supervisor: Chen Koren Maria Nemets Maxim Zavodchik
Bandpass filter on FPGA Student Vitaly Zakharenko Supervisor Mony Orbach Semester Spring 2007 Duration single semester.
Implementation of DSP Algorithm on SoC. Characterization presentation Student : Einat Tevel Supervisor : Isaschar Walter Accompany engineer : Emilia Burlak.
Decryption Algorithms Characterization Project ECE 526 spring 2007 Ravimohan Boggula,Rajesh reddy Bandala Southern Illinois University Carbondale.
THANGJAM105/MAPLD1 EFFICIENT FPGA IMPLEMENTATION OF PWM CORE.
ECE 448: Spring 12 Lab 4 – Part 2 Finite State Machines Basys2 FPGA Board.
HW/SW CODESIGN OF THE MPEG-2 VIDEO DECODER Matjaz Verderber, Andrej Zemva, Andrej Trost University of Ljubljana Faculty of Electrical Engineering Trzaska.
HW/SW CODESIGN OF THE MPEG-2 VIDEO DECODER Matjaz Verderber, Andrej Zemva, Andrej Trost University of Ljubljana Faculty of Electrical Engineering Trzaska.
Field Programmable Gate Array (FPGA) Layout An FPGA consists of a large array of Configurable Logic Blocks (CLBs) - typically 1,000 to 8,000 CLBs per chip.
Study of AES Encryption/Decription Optimizations Nathan Windels.
Final presentation Encryption/Decryption on embedded system Supervisor: Ina Rivkin students: Chen Ponchek Liel Shoshan Winter 2013 Part A.
RUN-TIME RECONFIGURATION FOR AUTOMATIC HARDWARE/SOFTWARE PARTITIONING Tom Davidson, Karel Bruneel, Dirk Stroobandt Ghent University, Belgium Presenting:
© 2011 Xilinx, Inc. All Rights Reserved Intro to System Generator This material exempt per Department of Commerce license exception TSU.
General Purpose FIFO on Virtex-6 FPGA ML605 board Students: Oleg Korenev Eugene Reznik Supervisor: Rolf Hilgendorf 1 Semester: spring 2012.
A Compact and Efficient FPGA Implementation of DES Algorithm Saqib, N.A et al. In:International Conference on Reconfigurable Computing and FPGAs, Sept.
Trigger design engineering tools. Data flow analysis Data flow analysis through the entire Trigger Processor allow us to refine the optimal architecture.
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.
A comprehensive method for the evaluation of the sensitivity to SEUs of FPGA-based applications A comprehensive method for the evaluation of the sensitivity.
Feistel Model Last Updated: Aug 27, Feistel Cipher Structure Described by Horst Feistel (IBM) in 1973 Many symmetric encryption algorithms use this.
Xilinx Programmable Logic Design Solutions Version 2.1i Designing the Industry’s First 2 Million Gate FPGA Drop-In 64 Bit / 66 MHz PCI Design.
Research on Reconfigurable Computing Using Impulse C Carmen Li Shen Mentor: Dr. Russell Duren February 1, 2008.
High-Level Interconnect Architectures for FPGAs Nick Barrow-Williams.
AMIN FARMAHININ-FARAHANI CHARLES TSEN KATHERINE COMPTON FPGA Implementation of a 64-bit BID-Based Decimal Floating Point Adder/Subtractor.
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.
ECE 449: Computer Design Lab Coordinator: Kris Gaj TAs: Tuesday session: Pawel Chodowiec Thursday session: Nghi Nguyen.
Cryptography Team Presentation 2
Microelectronic Systems Institute Leandro Soares Indrusiak Manfred Glesner Ricardo Reis Lookup-based Remote Laboratory for FPGA Digital Design Prototyping.
Swankoski MAPLD 2005 / B103 1 Dynamic High-Performance Multi-Mode Architectures for AES Encryption Eric Swankoski Naval Research Lab Vijay Narayanan Penn.
“Implementation of a RC5 block cipher algorithm and implementing an attack on it” Cryptography Team Presentation 1.
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:
George Mason University ECE 449 – Computer Design Lab Welcome to the ECE 449 Computer Design Lab Spring 2004.
Introduction to FPGA Tools
RTL Design Methodology Transition from Pseudocode & Interface
Project 2.A Extending NS-2 to support encryption/decryption Date: 04/07/2005 Course: CSCI 5931 Name: Sam Tran Tuan Nguyen.
Lecture 3 RTL Design Methodology Transition from Pseudocode & Interface to a Corresponding Block Diagram.
Encryption / Decryption on FPGA Final Presentation Written by: Daniel Farcovich ID Saar Vigodskey ID Advisor: Mony Orbach Summer.
Teaching Digital Logic courses with Altera Technology
RC6: The Simple Cipher Presenter: Morgan Monger. RC6 Cipher Created by Ronald Rivest et al. for AES submission Follows the evolution of RC5 cipher –Parameterized.
An optimization of the SAFER+ algorithm for custom hardware and TMS320C6x DSP implementation. By: Sachin Garg Vikas Sharma.
George Mason University ECE 448 – FPGA and ASIC Design with VHDL FPGA Design Flow based on Aldec Active-HDL FPGA Board.
ECE 545 Project 1 Introduction & Specification Part I.
Course web page: ECE 545 Introduction to VHDL ECE web page  Courses  Course web pages  ECE 545.
Encryption / Decryption on FPGA Midterm Presentation Written by: Daniel Farcovich ID Saar Vigodskey ID Advisor: Mony Orbach Summer.
Design of OCDMA Demonstrator Yun Ping Yang, Alireza Hodjat, Herwin Chan, Eric Chen, Josh Conway.
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.
Design and Analysis of Low-Power novel implementation of encryption standard algorithm by hybrid method using SHA3 and parallel AES.
ECE web page  Courses  Course web pages
FPGA Implementation of Multicore AES 128/192/256
Implementing Combinational and Sequential Logic in VHDL
Course Agenda DSP Design Flow.
Dynamic High-Performance Multi-Mode Architectures for AES Encryption
Implementing Combinational
Sequential Logic for Synthesis Based on Aldec Active-HDL
HARDWARE IMPLEMENTATION OF TEA TINY ENCRYPTION ALGORITHM
Security Implementation Using Present-Puffin Protocol
International Data Encryption Algorithm
Presentation transcript:

FPGA Implementation of RC6 including key schedule Hunar Qadir Fouad Ramia

Introduction RC6 is a symmetric key block cipher derived from RC5 One of the five finalists chosen for AES Works on a block size of 128 bits Specified as RC6-w/r/b Supports key sizes of 64, 128, and 256 bits

Goal of our project Implementation of RC6 in hardware FPGA as the target technology Implementation of key schedule/generator in addition to encryption/decryption Study/compare the performance of our design

Motivation Why RC6?  Security  Simplicity  Performance Why FPGAs?  Higher performance than software solutions  Reprogrammable (FPGA vs. ASICs)

RC6 Algorithm Key Schedule  User supplies a key of b bytes  2r + 4 words (w bits each) are derived and stored in the array S [0, 2r + 3]  Array is used in both encryption and decryption

RC6 Algorithm (continued) Encryption  Plain text stored in four w-bit input registers A, B, C, D B = B + S [0] D = D + S [1] for i = 1 to r do { T = (B X (2B + 1)) <<< lg w u = (D X (2D + 1)) <<< lg w A = ((A t) <<< u) + S [2i] C = ((C u) <<< t) + S [2i+ 1] (A, B, C, D) = (B, C, D, A) } A = A + S [2r + 2] C = C + S [2r + 3] *Figure taken from RC6 paper by Ron Rivest

RC6 Algorithm (continued) Decryption  Cipher text stored in four w-bit input registers A, B, C, D C = C – S [2r + 3] A = A – S [2r + 2] for i = r downto 1 do { (A, B, C, D) = (D, A, B, C) u = (D X (2D + 1)) <<< lg w t = (B X (2B + 1)) <<< lg w C = ((C – S [2i + 1]) >>> t) u A = ((A – S [2i]) >>> u) t } D = D – S [1] B = B – S [0]

Development Environment Use VHDL to simulate hardware implementation CAD tools used:  ALDEC Active HDL  Synplify Pro 8.5 for synthesis  Xilinx ISE 7.1 for implementation Selection of a target FPGA  Xilinx Virtex XCV1000

RC6 Pin-out Diagram

RC6 Key Schedule Module

RC6 Core Module

RC6 Block diagram

Control Unit

Control Signals

Implementation results Min. Period (ns) :  Max. Frequency (MHz) :  43.7 Throughput Including key generation  27 Mbit/sec Throughput Encryption/Decryption only  266 Mbit/sec

Comparing FPGA with software implementations RC6Key setupEncryptionDecryption FPGA at 43.7 MHZ 188 cycles 4305 ns 21 cycles 480 ns 21 cycles 480 ns ANSI C at 200 MHZ 2,350 cycles 11,800 ns 616 cycles 3080 ns 566 cycles 2830 ns Java (JIT) at 200 MHZ 14,300 cycles 71,400 ns 1010 cycles 5050 ns 955 cycles 4775 ns Assembly at 200 MHZ N/A254 cycles 1270 ns 254 cycles 1270 ns

Comparing FPGA with software implementations (continued)

Conclusion & Future Work Pros and Cons of Key Schedule on board AdvantagesDisadvantages With Key ScheduleNo need to reload the Round keys every time the user changes the input Key 1- Lower throughput 2- More hardware resources Without Key Schedule1- Higher throughput 2- Less hardware resources Every time the input key is changed, the round keys must be reloaded to the FPGA Future Work: Compute round keys on the fly