ECC1 Core. Elliptic Curve Point Multiply and Verify Core. General Description. Key Features. Applications. Symbol

Similar documents
AES1. Ultra-Compact Advanced Encryption Standard Core AES1. General Description. Base Core Features. Symbol. Applications

Novel Approach Design of Elliptic curve Cryptography Implementation in VLSI

Survey of Commercially available chips and IP cores implementing cryptographic algorithms

Elliptic Curve Public Key Cryptography

Early Models in Silicon with SystemC synthesis

ECC Elliptic Curve Cryptography. Foundations of Cryptography - ECC pp. 1 / 31

Design and Evaluation of FPGA Based Hardware Accelerator for Elliptic Curve Cryptography Scalar Multiplication

AL8253 Core Application Note

Tiny Tate Bilinear Pairing Core Specification. Author: Homer Hsing

This chapter continues our overview of public-key cryptography systems (PKCSs), and begins with a description of one of the earliest and simplest

Abhijith Chandrashekar and Dushyant Maheshwary

Hardware Architectures

Elliptic Curve Cryptography (ECC) Elliptic Curve Cryptography. Elliptic Curves. Elliptic Curve Cryptography (ECC) Elliptic curve

Elliptic Curve Cryptography (ECC) Elliptic Curve Cryptography. Elliptic Curves. Elliptic Curve Cryptography (ECC) Elliptic curve

Prime Field over Elliptic Curve Cryptography for Secured Message Transaction

PKI Knowledge Dissemination Program. PKI Standards. Dr. Balaji Rajendran Centre for Development of Advanced Computing (C-DAC) Bangalore

High Speed Cryptoprocessor for η T Pairing on 128-bit Secure Supersingular Elliptic Curves over Characteristic Two Fields

Efficient Hardware Design and Implementation of AES Cryptosystem

Analysis, demands, and properties of pseudorandom number generators

Algorithms and arithmetic for the implementation of cryptographic pairings

Bus Matrix Synthesis Based On Steiner Graphs for Power Efficient System on Chip Communications

FPGAs: FAST TRACK TO DSP

SHA Core, Xilinx Edition. Core Facts

ESL design with the Agility Compiler for SystemC

PUBLIC KEY CRYPTO. Anwitaman DATTA SCSE, NTU Singapore CX4024. CRYPTOGRAPHY & NETWORK SECURITY 2018, Anwitaman DATTA

Final Project Report: Cryptoprocessor for Elliptic Curve Digital Signature Algorithm (ECDSA)

A High-Speed FPGA Implementation of an RSD-Based ECC Processor

Understanding Cryptography by Christof Paar and Jan Pelzl. Chapter 9 Elliptic Curve Cryptography

Key Management and Elliptic Curves

Acronyms. International Organization for Standardization International Telecommunication Union ITU Telecommunication Standardization Sector

Documentation. Design File Formats. Constraints Files. Verification. Slices 1 IOB 2 GCLK BRAM

Published by: PIONEER RESEARCH & DEVELOPMENT GROUP ( 158

I 2 C Bus Interface - Slave ver 3.08

The use of Elliptic Curve Cryptography in DNSSEC

The Application of Elliptic Curves Cryptography in Embedded Systems

Introduction to Elliptic Curve Cryptography

Elliptic Curves over Prime and Binary Fields in Cryptography

Computer Security: Principles and Practice

About FIPS, NGE, and AnyConnect

Memory-Mapped SHA-1 Coprocessor

HIGH PERFORMANCE ELLIPTIC CURVE CRYPTO-PROCESSOR FOR FPGA PLATFORMS

AL8259 Core Application Note

ESE Back End 2.0. D. Gajski, S. Abdi. (with contributions from H. Cho, D. Shin, A. Gerstlauer)

Fast implementation and fair comparison of the final candidates for Advanced Encryption Standard using Field Programmable Gate Arrays

Security IP-Cores. AES Encryption & decryption RSA Public Key Crypto System H-MAC SHA1 Authentication & Hashing. l e a d i n g t h e w a y

Computer Security 3/23/18

Introduction to Post-Quantum Cryptography

Introduction to Post-Quantum Cryptography

Studying Software Implementations of Elliptic Curve Cryptography

8/30/17. Introduction to Post-Quantum Cryptography. Features Required from Today s Ciphers. Secret-key (Symmetric) Ciphers

Java Implementation And Arithmetic Performance Evaluation of Elliptic Curve Cryptography Using MATLAB

DataTraveler 5000 (DT5000) and DataTraveler 6000 (DT6000) Ultimate Security in a USB Flash Drive. Submitted by SPYRUS, Inc.

New Generation Cryptosystems using Elliptic Curve Cryptography

NIST Cryptographic Toolkit

Configurable UART with FIFO ver 2.20

Lecture 11. Security Protocols. Cryptographic Standards. Companies Developing Cryptographic Hardware

Use of Embedded FPGA Resources in Implementa:ons of 14 Round 2 SHA- 3 Candidates

Number Theory and Cryptography

Implementation of Galois Field Arithmetic Unit on FPGA

Key Management and Distribution

ECE 297:11 Reconfigurable Architectures for Computer Security

Modeling a 4G LTE System in MATLAB

Computer Security. 08. Cryptography Part II. Paul Krzyzanowski. Rutgers University. Spring 2018

Design & Implementation of 64 bit ALU for Instruction Set Architecture & Comparison between Speed/Power Consumption on FPGA.

Elliptic Curves as Tool for Public Key Cryptography

FIPS Security Policy

Elliptic Curve Cryptography

AES Core Specification. Author: Homer Hsing

The most important development from the work on public-key cryptography is the digital signature. Message authentication protects two parties who

Internet Engineering Task Force (IETF) Category: Informational ISSN: October 2013

An Optimized Hardware Architecture for the Montgomery Multiplication Algorithm

SMPTE Standards Transition Issues for NIST/FIPS Requirements

Software Engineering Aspects of Elliptic Curve Cryptography. Joppe W. Bos Real World Crypto 2017

Connecting Securely to the Cloud

Park Sung Chul. AE MentorGraphics Korea

ALTERA FPGAs Architecture & Design

C O M P A N Y O V E R V I E W

INTRODUCTION TO FPGA ARCHITECTURE

VLSI Design and Implementation of High Speed and High Throughput DADDA Multiplier

AES as A Stream Cipher

VHDL for Synthesis. Course Description. Course Duration. Goals

ALTERA FPGA Design Using Verilog

Cryptography and Network Security

SHA3 Core Specification. Author: Homer Hsing

IMPLEMENTATION OF ELLIPTIC CURVE POINT MULTIPLICATION ALGORITHM USING DSP PROCESSOR 1Prof. Renuka H. Korti, 2Dr. Vijaya C.

Public Key Cryptography

Energy Efficiency Analysis and Implementation of AES on an FPGA

FIPS Non-Proprietary Security Policy. Level 1 Validation Version 1.2

FPGA Implementation of High Speed AES Algorithm for Improving The System Computing Speed

Design and Implementation of Low-Complexity Redundant Multiplier Architecture for Finite Field

Innovation and Cryptoventures. Digital Signatures. Campbell R. Harvey. Duke University, NBER and Investment Strategy Advisor, Man Group, plc

Innovation and Cryptoventures. Digital Signatures. Campbell R. Harvey. Duke University, NBER and Investment Strategy Advisor, Man Group, plc

IOS Common Cryptographic Module (IC2M)

SEC 1: Elliptic Curve Cryptography

RC6 Implementation including key scheduling using FPGA

Chapter 5: ASICs Vs. PLDs

Cryptography Symmetric Cryptography Asymmetric Cryptography Internet Communication. Telling Secrets. Secret Writing Through the Ages.

Iqbal Singh Deptt. of Computer Science, Bhagwant University, Rajasthan, India

Configurable UART ver 2.10

Understanding Cryptography A Textbook for Students and Practitioners by Christof Paar and Jan Pelzl. Chapter 6 Introduction to Public-Key Cryptography

Transcription:

General Description Key Features Elliptic Curve Cryptography (ECC) is a public-key cryptographic technology that uses the mathematics of so called elliptic curves and it is a part of the Suite B of cryptographic algorithms approved by the NSA. Since ECC requires fewer bits than RSA to achieve the same cipher strength, it is frequently used in embedded applications. The operations necessary for the ECC cannot be efficiently implemented on an embedded CPU, however, typically requiring hundreds of milliseconds of the CPU time for signature verification. ECC1 implements by far the most time-consuming operation of the ECC cryptography: so called point multiplication to enable low-power operation of the battery-powered devices. It also supports the point verification operation to simplify the system integration. The design is fully synchronous and available in multiple configurations varying in bus widths, set of elliptic curves supported and throughput. ECC1 implementation is unencumbered by any patents Small size: ECC1 requires less than 10K ASIC gates High throughput for long life battery powered applications: 5,000 point multiplications per second in the 65 nm ASIC process Support for the NIST ECC binary fields 2 163, 2 233, 2 283, 2 409, and 2 571 Microprocessor-friendly interface Test bench provided Applications Secure communications systems RFID Symbol Implantable medical devices Digital Rights Management (DRM) for battery powered electronics D[] A[] Elliptic Curve Diffie-Hellman (EC-DH) standard ANSI X9.63 Elliptic Curve Digital Signature Algorithm (EC-DSA) standard ANSI X9.62 ACK MODE ECC1 Digital Signature Standard (DSS) FIPS-186 B and K elliptic curves (163, 233, 283, 409, 571) defined by NIST START CLK RESET READ WRITE DONE IEEE P1363 curves over binary fields GF(2m) TLS implementations per RFC 4492 Cryptographic messaging per RFC 3278 IP Cores, Inc. April 2009 Page 1

Pin Description Name Type Description CLK Input Core clock signal START Input When HIGH, starts a Point Multiply or Point Verify operation RESET Input HIGH level asynchronously resets the core READ Output Read request for the memory WRITE Output Write request for the memory DONE Output HIGH level indicates a completion of computation D[] Input memory data bus A[] Input Address for the memory ACK Input Red/write acknowledgement from the memory MODE Input LOW level for Point Multiply, HIGH for Point Verify operation Elliptic Curve Cryptography Basics Elliptic curve cryptography (ECC) is an approach to public-key cryptography based on the algebraic structure of elliptic curves over finite fields. The use of elliptic curves in cryptography was suggested independently by Neal Koblitz and Victor S. Miller in 1985. A binary field is a finite field GF(2 m ) which contains 2 m elements for some m (called the degree of the field). The elements of this field are the bit strings of length m, and the field arithmetic is implemented in terms of operations on the bits. An elliptic curve is a plane curve which is isomorphic to a curve defined by an equation of the form y 2 = x 3 + ax + b The set of points on such a curve all solutions of the above equation together with a point at infinity form an Abelian group, with the point at infinity as identity element and a generator element G. The use of elliptic curves in cryptography is based on an assumption that the point multiplication operation (for an integer k, finding kg = G+G+G+ +G) is relatively easy to calculate, but very hard to reverse (i.e., finding k when only kg and G are known requires enormous computing power for large k and m). IP Cores, Inc. April 2009 Page 2

The two critical ECC operations that greatly benefit from hardware acceleration are: Point multiplication, i.e. calculation of coordinates of the point Q = kp given an integer k and point P. This operation is by far the most computationally intensive, and its hardware implementation improves the performance of the ECC algorithm and power consumed by the device. Point verification simply verifies if the given point P indeed belongs to the curve. This is important, because the value of kp for a point P that does not belong to the curve, might reveal the secret random number k. Although the verification is much less computationally intensive than the multiplication, its implementation in hardware allows to provide a complete solution (no finite field calculations in firmware) at virtually zero cost in gates. The following table gives the approximate size (m) of the binary filed used in ECC to match the corresponding strength of the symmetric cipher (per NIST recommendations). For comparison, the bit length of comparable RSA public key solutions is also provided. Symmetric key bit length Matching binary ECC bit length m Matching RSA bit length 80 163 1024 112 (3DES) 233 2048 128 (AES-128) 283 3072 256 (AES-256) 571 15360 For each field degree m, NIST defined a pseudo-random curve along with a Koblitz curve. The pseudo-random curve has the form E: y 2 + x y = x 3 + x 2 + b, and the Koblitz curve has the form E a : y 2 + x y = x 3 + ax 2 + 1 where a = 0 or 1. Function Description The core implements the point multiplication operation and the point verification operations. The operands for the multiplication: k, P x, P y are placed into the shared memory before the start of operation. Once the operation is complete, the results are placed back into the shared memory. The curve parameters a/b/m as well as the width of CPU memory are fixed for the particular version of the core, for example the ECC1-163/32 core work with the NIST binary curve of 163 bits and has a 32-bit wide interface to the CPU memory. Design of ECC1 allows sharing the arbitrated CPU memory to store the arguments and results of operations. This both helps to save the silicon resource in the extremely compact implementations (smart cards) and simplify the data transfer between the CPU and the ECC1 core. The memory load during the core operation is very small, about 5% of the total cycles. If sharing memory is not desirable, an optional dedicated memory can be used. IP Cores, Inc. April 2009 Page 3

Implementation Details Representative synthesis results for the ECC1-163/32 are shown below. Technology Max Frequency Area/Resources TSMC 65 nm 835 MHz 9,972 gates TSMC 65 nm 1636 MHz 14,109 gates TSMC 90 nm 1064 MHz 11,399 gates Altera MAX II 139 MHz 2059 LE Altera Cyclone II 220 MHz 2065 LE Altera Stratix II 250 MHz 1137 ALUTs Xilinx Virtex 5 265 MHz 630 slices Actel ProASIC3 48 MHz 7790 tiles Export Permits The core is subject to the US export regulations. See the IP Cores, Inc. licensing basics page, http://ipcores.com/export_licensing.htm, for links to US government sites and licensing details. Deliverables HDL Source Licenses Synthesizable Verilog RTL source code Software modules for a complete ECC implementation (optional) Verilog testbench (self-checking) Vectors for the testbench Expected results User Documentation Netlist Licenses Post-synthesis EDIF Testbench (self-checking) Vectors for testbench Expected results Contact Information IP Cores, Inc. 3731 Middlefield Rd. Palo Alto, CA 94303, USA Phone: +1 (650) 815-7996 IP Cores, Inc. April 2009 Page 4

E-mail: info@ipcores.com IP Cores, Inc. April 2009 Page 5