92 Views

Download Presentation
##### CprE / ComS 583 Reconfigurable Computing

**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. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -

**CprE / ComS 583Reconfigurable Computing**Prof. Joseph Zambreno Department of Electrical and Computer Engineering Iowa State University Lecture #10 – HW #2 / Projects Discussion**Plaintext**Ciphertext Plaintext Encryption Decryption Recap – Introduction to Cryptography • Encryption is the process of encoding a message such that its meaning is not obvious • Decryption is the reverse process, i.e., transforming an encrypted message to its original form • We denote plaintext by P and ciphertext by C • C = E(P), P = D(C) and P = D(E(P)), where E() is the encryption function (algorithm) and D() the decryption function CprE 583 – Reconfigurable Computing**m**|| m H Compare H E D E(H(m)) Private Key Public Key Signing With Message Digests • A message digest (or hash) function is a one-way function which produces a fixed length vector of an input block x of arbitrary length • A fixed length “fingerprint” of a message • Instead of signing message, sign the message digest CprE 583 – Reconfigurable Computing**1 Gbps SHA-512 Implementation**• Partial unrolling (5 rounds), pipelining • 1 Gbps on Virtex-E FPGAs • See [LieGre04A] for details CprE 583 – Reconfigurable Computing**Application – Private-Key Crypto**• The Advanced Encryption Standard (AES) is becoming the block cipher of choice for private-key cryptography • Implementing AES on FPGA hardware has been looked at in some depth: • Approximately 50 unique research implementations! • Various commercial cores (Actel, Helion Tech, Amphion, etc.) • Approach taken – an exploration of the decisions that lead to area/delay tradeoffs in an AES FPGA implementation • End result – pareto optimal designs in terms of throughput, latency, and area efficiency CprE 583 – Reconfigurable Computing**AES-128E Algorithm**Round Transformation round++ KeyExpansion 128-bit key ShiftRows MixColumns AddRoundKey SubBytes 128-bit plaintext No round = 10? Yes 128-bit ciphertext CprE 583 – Reconfigurable Computing**R1**R2 R3 R4 R5 Input plaintext SubBytes ShiftRows MixColumns AddRoundKey R10 R9 R8 R7 R6 Output Ciphertext KeyExpansion Results: UF10-PP3D CprE 583 – Reconfigurable Computing**Application – Random Number Generation**• Cryptographic applications often require good sources of random numbers: • Key generation • Initialization vectors • Types of random number generators: • Pseudo-Random Number Generators (PRNG) – appear to be random, initialized with an externally generated sequence (deterministic) • Cryptographically Secure PRNGs (CSPRNG) – a PRNG where prediction of the next input bit given a previously-generated sequence is computationally intractable • True Random Number Generators (TRNG) – output is based on some underlying physical random process CprE 583 – Reconfigurable Computing**The Method [KohGaj04A]**• Make use of the clock jitter in a circuit: • Variation of the significant instants of the clock • Nondeterministic, may have many sources: • Semiconductor noise • Crosstalk • Power supply variations • Electro-magnetic fields CprE 583 – Reconfigurable Computing**Overall Design**CprE 583 – Reconfigurable Computing**Ring Oscillators**Uses Propagation Delay – 130 MHz CprE 583 – Reconfigurable Computing**Sampler Circuit**One of the clock signals is used to sample the other signal CprE 583 – Reconfigurable Computing**Sampler Output**• Clock Skew(jitter) in between two clock signals is used (e.g. sampled) to generate a totally random bit • The output clock skew: • Will never be uniform • Is not simple out-out-phase behavior CprE 583 – Reconfigurable Computing**Good Speed Ratios**• Ring oscillators with closely matched frequencies require that a desired speed ratio must be achieved • What factors affect this achievement? • Variation in CLB speed • 7% difference between the slowest CLB and the fastest one • Sensitive to temperature and difficult for measurement • Variation in the frequency of an oscillator with the chip temperature • Close placement • To use a large number of oscillators CprE 583 – Reconfigurable Computing**CLB Speed / Temperature Variation**CprE 583 – Reconfigurable Computing**Summary**• FPGA platforms are a popular choice for implementing cryptographic applications • High throughputs • Relatively low design cost • Algorithmic agility / upload • Many other algorithms have been implemented that we haven’t discussed today: • Public-key cryptography (e.g. RSA, ECC) • Private-key cryptography (e.g. DES, 3DES) • Cryptographic hash functions (e.g. MD5, RIPEMD) • Security issues as they pertain to using FPGAs have not been fully addressed CprE 583 – Reconfigurable Computing**Project Proposals**• Due Sunday, 9/30 at midnight • Purpose – to provide a background and overview of the project • Goal – allow me to understand what you are intending to do • Project topic: • Perform an in-depth exploration of some area of reconfigurable computing • Whatever topic you choose, you must include a strong experimental element in your project • Work in groups of 2+ (3 if very lofty proposal) CprE 583 – Reconfigurable Computing**Some Suggested Topics**• Design and implementation of X • Pick any application or application domain • Identify whatever objectives need to optimized (power, performance, area, etc.) • Design and implement X targeting an FPGA • Compare to microprocessor-based implementation • Network processing • Explore the use of an FPGA as a network processor that can support flexibility in protocol through reconfiguration • Flexibility could be with respect to optimization • Could provide additional processing to packets/connections • Implement a full-fledged FPGA-based embedded system • From block diagram to physical hardware • Examples: • Image/video processor • Digital picture frame • Digital clock (w/video) • Sound effects processor • Any old-school video game • Voice-over-IP CprE 583 – Reconfigurable Computing**Suggested Project Topics (cont.)**• Prototype some microarchitectural concept using FPGA • See proceedings of MICRO/ISCA/HPCA/ASPLOS from last 5 years • Survey some recurring topic • Compare results from simulation (Simplescalar) to FPGA prototype results • Evaluation of various FPGA automation tools and methodologies • Survey 3-4 different available FPGA design tools • Pick a representative (pre-existing) benchmark set, see how they fare…how well do they work? • Analyze output designs to determine basic differences in algorithms and methodology • Anything else that interests you! CprE 583 – Reconfigurable Computing**Previous Year’s Topics**• Fall 2006 projects: • “FPGA Implementation of Frequency-Domain Audio Filter Bank” (2 students) • “Transparent FPGA-Based Network Analyzer” (2 students) • “FPGA-Based Library Design for Linear Algebra Applications” (2 students) • “An Improved Approach of Configuration Compression for FPGA-based Embedded Systems” (2 students) • “Analysis of Sobel Edge Detection Implementations” (1 student) • “Artificial Neural Networks on Dynamically Reconfigurable FPGAs” (3 students) • Papers and presentations for these are available upon request • We can do better! CprE 583 – Reconfigurable Computing**Proposal Structure**• Suggested structure [3-4 pages, IEEE conf. format] • Introduction – what is the context for this work? What problem are you trying to address? Why is it interesting/challenging? • Prior work – what is the related work? How does your work differ from these? (5-10 references) • Approach – how are you going to tackle the problem? What tools and methodologies do you intend on using? What experiments do you intend on running? • Expected results –what do you expect the outcome of your project to be? What are the deliverables? How do you intend on presenting your results? • Milestones – what is your expected progress schedule? Provide a weekly / bi-weekly basis CprE 583 – Reconfigurable Computing