My 2 hours today: 1. Efficient arithmetic in finite fields minute break 3. Elliptic curves. My 2 hours tomorrow:

Size: px
Start display at page:

Download "My 2 hours today: 1. Efficient arithmetic in finite fields minute break 3. Elliptic curves. My 2 hours tomorrow:"

Transcription

1 My 2 hours today: 1. Efficient arithmetic in finite fields minute break 3. Elliptic curves My 2 hours tomorrow: 4. Efficient arithmetic on elliptic curves minute break 6. Choosing curves

2 Efficient arithmetic in finite fields D. J. Bernstein University of Illinois at Chicago

3 Some examples of finite fields: Z ( ). (Z (2 61 1))[Ø] (Ø 5 3). (Z 223))[Ø] (Ø 37 2). (Z 2)[Ø] (Ø 283 Ø 12 Ø 7 Ø 5 1). How quickly can we add, subtract, multiply in these fields? Answer will depend on platform: AMD Athlon, Sun UltraSPARC IV, Intel 8051, Xilinx Spartan-3, etc. Warning: different platforms often favor different fields!

4 The first question How to multiply big integers? Child s answer: Use polynomial with coefficients in to represent integer in radix 10. With this representation, multiply integers in two steps: 1. Multiply polynomials. 2. Carry extra digits. Polynomial multiplication involves small integers. Have split one big multiplication into many small operations.

5 Example of representation: 839 = = value (at Ø = 10) of polynomial 8Ø 2 + 3Ø 1 + 9Ø 0. Squaring: (8Ø 2 + 3Ø 1 + 9Ø 0 ) 2 = 64Ø Ø Ø Ø Ø 0. Carrying: 64Ø Ø Ø Ø Ø 0 ; 64Ø Ø Ø Ø 1 + 1Ø 0 ; 64Ø Ø Ø 2 + 2Ø 1 + 1Ø 0 ; 64Ø Ø 3 + 9Ø 2 + 2Ø 1 + 1Ø 0 ; 70Ø 4 + 3Ø 3 + 9Ø 2 + 2Ø 1 + 1Ø 0 ; 7Ø 5 + 0Ø 4 + 3Ø 3 + 9Ø 2 + 2Ø 1 + 1Ø 0. In other words, =

6 What operations were used here? multiply add divide by 10 add 159 mod

7 Scaled variation: 839 = = value (at Ø = 1) of polynomial 800Ø Ø 1 + 9Ø 0. Squaring: (800Ø Ø 1 + 9Ø 0 ) 2 = Ø Ø Ø Ø Ø 0. Carrying: Ø Ø Ø Ø Ø 0 ; Ø Ø Ø Ø 1 + 1Ø 0 ; Ø 5 + 0Ø Ø Ø Ø 1 + 1Ø 0.

8 What operations were used here? multiply add add subtract mod

9 Speedup: double inside squaring Squaring + 2Ø 2 + 1Ø 1 + 0Ø 0 produces coefficients such as Compute more efficiently as Or, slightly faster, 2( ) Or, slightly faster, (2 4) 0 + (2 3) after precomputing Have eliminated 1 2 of the work if there are many coefficients.

10 Speedup: allow negative coeffs Recall Scaled: Alternative: Scaled: Use digits instead of Several small advantages: easily handle negative integers; easily handle subtraction; reduce products a bit.

11 Speedup: delay carries Computing (e.g.) big + 2 : multiply polynomials, carry, square poly, carry, add, carry. e.g. = 314, = 271, = 839: (3Ø 2 +1Ø 1 +4Ø 0 )(2Ø 2 +7Ø 1 +1Ø 0 ) = 6Ø Ø Ø Ø 1 + 4Ø 0 ; carry: 8Ø 4 + 5Ø 3 + 0Ø 2 + 9Ø 1 + 4Ø 0. As before (8Ø 2 + 3Ø 1 + 9Ø 0 ) 2 = 64Ø Ø Ø Ø Ø 0 ; 7Ø 5 + 0Ø 4 + 3Ø 3 + 9Ø 2 + 2Ø 1 + 1Ø 0. +: 7Ø 5 +8Ø 4 +8Ø 3 +9Ø 2 +11Ø 1 +5Ø 0 ; 7Ø 5 + 8Ø 4 + 9Ø 3 + 0Ø 2 + 1Ø 1 + 5Ø 0.

12 Faster: multiply polynomials, square polynomial, add, carry. (6Ø Ø Ø Ø 1 + 4Ø 0 ) + (64Ø 4 +48Ø Ø 2 +54Ø 1 +81Ø 0 ) = 70Ø Ø Ø Ø Ø 0 ; 7Ø 5 + 8Ø 4 + 9Ø 3 + 0Ø 2 + 1Ø 1 + 5Ø 0. Eliminate intermediate carries. Outweighs cost of handling slightly larger coefficients. Important to carry between multiplications (and squarings) to reduce coefficient size; but carries are usually a bad idea for additions, subtractions, etc.

13 Speedup: polynomial Karatsuba Computing product of polys with (e.g.) deg 20, deg 20: 400 coefficient mults, 361 coefficient adds. Faster: Write as 0 + 1Ø 10 with deg 0 10, deg Similarly write as 0 + 1Ø 10. Then = ( 0 + 1)( 0 + 1)Ø 10 + ( Ø 10 )(1 Ø 10 ).

14 20 adds for 0 + 1, mults for three products 0 0, 1 1, ( 0 + 1)( 0 + 1). 243 adds for those products. 9 adds for Ø 10 with subs counted as adds and with delayed negations. 19 adds for (1 Ø 10 ). 19 adds to finish. Total 300 mults, 310 adds. Larger coefficients, slight expense; still saves time. Can apply idea recursively as poly degree grows.

15 Many other algebraic speedups in polynomial multiplication: Toom, FFT, etc. Increasingly important as polynomial degree grows. Ç(Ò lg Ò lg lg Ò) coeff operations to compute Ò-coeff product. Useful for sizes of Ò that occur in cryptography? Maybe; active research area.

16 Using CPU s integer instructions Replace radix 10 with, e.g., Power of 2 simplifies carries. Adapt radix to platform. e.g. Every 2 cycles, Athlon 64 can compute a 128-bit product of two 64-bit integers. (5-cycle latency; parallelize!) Also low cost for 128-bit add. Reasonable to use radix Sum of many products of digits fits comfortably below Be careful: analyze largest sum.

17 e.g. In 4 cycles, Intel 8051 can compute a 16-bit product of two 8-bit integers. Could use radix 2 6. Could use radix 2 8, with 24-bit sums. e.g. Every 2 cycles, Pentium 4 F3 can compute a 64-bit product of two 32-bit integers. (11-cycle latency; yikes!) Reasonable to use radix Warning: Multiply instructions are very slow on some CPUs. e.g. Pentium 4 F2: 10 cycles!

18 Using floating-point instructions Big CPUs have separate floating-point instructions, aimed at numerical simulation but useful for cryptography. In my experience, floating-point instructions support faster multiplication (often much, much faster) than integer instructions, except on the Athlon 64. Other advantages: portability; easily scaled coefficients.

19 e.g. Every 2 cycles, Pentium III can compute a 64-bit product of two floating-point numbers, and an independent 64-bit sum. e.g. Every cycle, Athlon can compute a 64-bit product and an independent 64-bit sum. e.g. Every cycle, UltraSPARC III can compute a 53-bit product and an independent 53-bit sum. Reasonable to use radix e.g. Pentium 4 can do the same using SSE2 instructions.

20 How to do carries in floating-point registers? (No CPU carry instruction: not useful for simulations.) Exploit floating-point rounding: add big constant, subtract same constant. e.g. Given «with «2 75 : compute 53-bit floating-point sum of «and constant , obtaining a multiple of 2 24 ; subtract from result, obtaining multiple of 2 24 nearest «; subtract from «.

21 Reducing modulo a prime Fix a prime Ô. The prime field Z Ô is the set Ô 1 with defined as mod Ô, + defined as + mod Ô, defined as mod Ô. e.g. Ô = : = 47 in Z Ô; 1 = in Z Ô; = 1 in Z Ô.

22 How to multiply in Z Ô? Can use definition: mod Ô = Ô Ô. Can multiply by a precomputed 1 Ô approximation; easily adjust to obtain Ô. Slight speedup: 2-adic inverse ; Montgomery reduction. We can do better: normally Ô is chosen with a special form (or dividing a special form; see redundant representations ) to make mod Ô much faster.

23 e.g. In Z : = = ( 3) = = Easily adjust to range 0 1 Ô 1 by adding/subtracting a few Ô s. (Beware timing attacks!) Speedup: Delay the adjustment; extra Ô s won t damage subsequent field operations.

24 Can delay carries until after multiplication by 3. e.g. To square in Z : Square poly 3Ø 5 + 1Ø 4 + 4Ø 3 + 1Ø 2 + 5Ø 1 + 9Ø 0, obtaining 9Ø Ø Ø Ø Ø Ø Ø Ø Ø Ø Ø 0. Reduce: replace ( )Ø 6+ by ( 3 )Ø, obtaining 72Ø Ø Ø 3 32Ø Ø 1 63Ø 0. Carry: 8Ø 6 4Ø 5 2Ø 4 + 1Ø 3 + 2Ø 2 + 2Ø 1 3Ø 0.

25 To minimize poly degree, mix reduction and carrying, carrying the top sooner. e.g. Start from square 9Ø Ø Ø Ø Ø Ø Ø Ø Ø Ø Ø 0. Reduce Ø 10 Ø 4 and carry Ø 4 Ø 5 Ø 6 : 6Ø 9 +25Ø 8 +14Ø 7 +56Ø 6 5Ø 5 +2Ø 4 +82Ø 3 +43Ø 2 +90Ø 1 +81Ø 0. Finish reduction: 5Ø 5 + 2Ø Ø 3 32Ø Ø 1 87Ø 0. Carry Ø 0 Ø 1 Ø 2 Ø 3 Ø 4 Ø 5 : 4Ø 5 2Ø 4 + 1Ø 3 + 2Ø 2 1Ø 1 + 3Ø 0.

26 Speedup: non-integer radix Consider Z (2 61 1). Five coeffs in radix 2 13? 4Ø 4 + 3Ø 3 + 2Ø 2 + 1Ø 1 + 0Ø 0. Most coeffs could be Square +2( )Ø 5 +. Coeff of Ø 5 could be Reduce: 2 65 = 2 4 in Z (2 61 1); + (2 5 ( ) + 0 2)Ø0. Coeff could be Very little room for additions, delayed carries, etc. on 32-bit platforms.

27 Scaled: Evaluate at Ø = 1. 4 is multiple of 2 52 ; 3 is multiple of 2 39 ; 2 is multiple of 2 26 ; 1 is multiple of 2 13 ; 0 is multiple of 2 0. Reduce: + (2 60 ( ) + 0 2)Ø0. Better: Non-integer radix is multiple of 2 49 ; 3 is multiple of 2 37 ; 2 is multiple of 2 25 ; 1 is multiple of 2 13 ; 0 is multiple of 2 0. Saves a few bits in coeffs.

28 More finite fields Fix a prime Ô. Fix a poly ³ in one variable Ø with ³ irreducible mod Ô. The finite field (Z Ô)[Ø] ³ is the set of polynomials deg ³ 1 Ødeg ³ Ø 1 + 0Ø 0 with each ¾ Z Ô and with + defined modulo Ô and modulo ³. (Z Ô)[Ø] ³ is an extension of the prime field Z Ô; it has characteristic Ô.

29 e.g. 223 is prime, and poly Ø 6 3 is irreducible mod 223, so (Z 223)[Ø] (Ø 6 3) is a field elements of field, namely polynomials 5Ø 5 + 4Ø 4 + 3Ø 3 + 2Ø 2 + 1Ø 1 + 0Ø 0 with each ¾ After adding, subtracting, multiplying: replace Ø 6 by 3, replace Ø 7 by 3Ø, etc.; and reduce coefficients modulo 223. e.g. (9Ø 4 + 1) 2 = 81Ø Ø = 243Ø 2 +18Ø 4 +1 = 18Ø 4 +20Ø 2 +1.

30 Have two levels of polynomials when Ô is large: element of (Z Ô)[Ø] ³ is poly mod ³; each poly coefficient is integer represented as poly in some radix. e.g. 4Ø 4 + 3Ø 3 + 2Ø 2 + 1Ø 1 + 0Ø 0 in (Z (2 61 1))[Ø] (Ø 5 3) could have each coefficient represented as poly of degree 3 in radix When Ô is small, especially Ô = 2, many speedups beyond this talk: batching coefficients, using fast Frobenius, et al.

Elliptic vs. hyperelliptic, part 1. D. J. Bernstein

Elliptic vs. hyperelliptic, part 1. D. J. Bernstein Elliptic vs. hyperelliptic, part 1 D. J. Bernstein Goal: Protect all Internet packets against forgery, eavesdropping. We aren t anywhere near the goal. Most Internet packets have little or no protection.

More information

Type-II optimal polynomial bases. D. J. Bernstein University of Illinois at Chicago. Joint work with: Tanja Lange Technische Universiteit Eindhoven

Type-II optimal polynomial bases. D. J. Bernstein University of Illinois at Chicago. Joint work with: Tanja Lange Technische Universiteit Eindhoven Type-II optimal polynomial bases D. J. Bernstein University of Illinois at Chicago Joint work with: Tanja Lange Technische Universiteit Eindhoven Bigger project: Breaking ECC2K-130. Daniel V. Bailey,

More information

Divide: Paper & Pencil

Divide: Paper & Pencil Divide: Paper & Pencil 1001 Quotient Divisor 1000 1001010 Dividend -1000 10 101 1010 1000 10 Remainder See how big a number can be subtracted, creating quotient bit on each step Binary => 1 * divisor or

More information

McBits: fast constant-time code-based cryptography. (to appear at CHES 2013)

McBits: fast constant-time code-based cryptography. (to appear at CHES 2013) McBits: fast constant-time code-based cryptography (to appear at CHES 2013) D. J. Bernstein University of Illinois at Chicago & Technische Universiteit Eindhoven Joint work with: Tung Chou Technische Universiteit

More information

Elliptic Curves over Prime and Binary Fields in Cryptography

Elliptic Curves over Prime and Binary Fields in Cryptography Elliptic Curves over Prime and Binary Fields in Cryptography Authors Dana Neustadter (danan@ellipticsemi.com) Tom St Denis (tstdenis@ellipticsemi.com) Copyright 2008 Elliptic Semiconductor Inc. Elliptic

More information

ECDLP course ECC2K-130. Daniel J. Bernstein University of Illinois at Chicago. Tanja Lange Technische Universiteit Eindhoven

ECDLP course ECC2K-130. Daniel J. Bernstein University of Illinois at Chicago. Tanja Lange Technische Universiteit Eindhoven ECDLP course ECC2K-130 Daniel J. Bernstein University of Illinois at Chicago Tanja Lange Technische Universiteit Eindhoven The target: ECC2K-130 1997: Certicom announces several elliptic-curve challenges.

More information

High-Performance Cryptography in Software

High-Performance Cryptography in Software High-Performance Cryptography in Software Peter Schwabe Research Center for Information Technology Innovation Academia Sinica September 3, 2012 ECRYPT Summer School: Challenges in Security Engineering

More information

D. J. Bernstein University of Illinois at Chicago & Technische Universiteit Eindhoven. Joint work with: Tanja Lange Technische Universiteit Eindhoven

D. J. Bernstein University of Illinois at Chicago & Technische Universiteit Eindhoven. Joint work with: Tanja Lange Technische Universiteit Eindhoven Simplicity 1 D. J. Bernstein University of Illinois at Chicago & Technische Universiteit Eindhoven Joint work with: Tanja Lange Technische Universiteit Eindhoven NIST s ECC standards = NSA s prime choices

More information

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

A High-Speed FPGA Implementation of an RSD- Based ECC Processor A High-Speed FPGA Implementation of an RSD- Based ECC Processor Abstract: In this paper, an exportable application-specific instruction-set elliptic curve cryptography processor based on redundant signed

More information

Algorithms and arithmetic for the implementation of cryptographic pairings

Algorithms and arithmetic for the implementation of cryptographic pairings Cairn seminar November 29th, 2013 Algorithms and arithmetic for the implementation of cryptographic pairings Nicolas Estibals CAIRN project-team, IRISA Nicolas.Estibals@irisa.fr What is an elliptic curve?

More information

Parallel Scalar Multiplication of Elliptic Curve Points. CSE 633 George Gunner March 28, 2017 Professor: Dr. Russ Miller

Parallel Scalar Multiplication of Elliptic Curve Points. CSE 633 George Gunner March 28, 2017 Professor: Dr. Russ Miller Parallel Scalar Multiplication of Elliptic Curve Points CSE 633 George Gunner March 28, 2017 Professor: Dr. Russ Miller Motivation Elliptic curves are commonly used in public-key cryptography Digital Signatures

More information

Curve25519: new Diffie-Hellman speed records. Which public-key systems are smallest? Fastest? D. J. Bernstein

Curve25519: new Diffie-Hellman speed records. Which public-key systems are smallest? Fastest? D. J. Bernstein Curve25519: new Diffie-Hellman speed records Which public-key systems are smallest? Fastest? D. J. Bernstein Thanks to: University of Illinois at Chicago Danmarks Tekniske Universitet Alfred P. Sloan Foundation

More information

HIGH PERFORMANCE ELLIPTIC CURVE CRYPTO-PROCESSOR FOR FPGA PLATFORMS

HIGH PERFORMANCE ELLIPTIC CURVE CRYPTO-PROCESSOR FOR FPGA PLATFORMS HIGH PERFORMANCE ELLIPTIC CURVE CRYPTO-PROCESSOR FOR FPGA PLATFORMS Debdeep Mukhopadhyay Dept. of Computer Science and Engg. IIT Kharagpur 3/6/2010 NTT Labs, Japan 1 Outline Elliptic Curve Cryptography

More information

Adaptive Scientific Software Libraries

Adaptive Scientific Software Libraries Adaptive Scientific Software Libraries Lennart Johnsson Advanced Computing Research Laboratory Department of Computer Science University of Houston Challenges Diversity of execution environments Growing

More information

Floating Point Arithmetic

Floating Point Arithmetic Floating Point Arithmetic Clark N. Taylor Department of Electrical and Computer Engineering Brigham Young University clark.taylor@byu.edu 1 Introduction Numerical operations are something at which digital

More information

High-Performance Modular Multiplication on the Cell Broadband Engine

High-Performance Modular Multiplication on the Cell Broadband Engine High-Performance Modular Multiplication on the Cell Broadband Engine Joppe W. Bos Laboratory for Cryptologic Algorithms EPFL, Lausanne, Switzerland joppe.bos@epfl.ch 1 / 21 Outline Motivation and previous

More information

Introduction to Cryptography and Security Mechanisms: Unit 5. Public-Key Encryption

Introduction to Cryptography and Security Mechanisms: Unit 5. Public-Key Encryption Introduction to Cryptography and Security Mechanisms: Unit 5 Public-Key Encryption Learning Outcomes Explain the basic principles behind public-key cryptography Recognise the fundamental problems that

More information

Side-Channel Attacks on RSA with CRT. Weakness of RSA Alexander Kozak Jared Vanderbeck

Side-Channel Attacks on RSA with CRT. Weakness of RSA Alexander Kozak Jared Vanderbeck Side-Channel Attacks on RSA with CRT Weakness of RSA Alexander Kozak Jared Vanderbeck What is RSA? As we all know, RSA (Rivest Shamir Adleman) is a really secure algorithm for public-key cryptography.

More information

Cryptology complementary. Finite fields the practical side (1)

Cryptology complementary. Finite fields the practical side (1) Cryptology complementary Finite fields the practical side (1) Pierre Karpman pierre.karpman@univ-grenoble-alpes.fr https://www-ljk.imag.fr/membres/pierre.karpman/tea.html 2018 03 15 Finite Fields in practice

More information

Number Representations

Number Representations Number Representations times XVII LIX CLXX -XVII D(CCL)LL DCCC LLLL X-X X-VII = DCCC CC III = MIII X-VII = VIIIII-VII = III 1/25/02 Memory Organization Viewed as a large, single-dimension array, with an

More information

Montgomery Multiplication Using Vector Instructions

Montgomery Multiplication Using Vector Instructions Montgomery Multiplication Using Vector Instructions Joppe W. Bos, Peter L. Montgomery, Daniel Shumow, and Gregory M. Zaverucha SAC 2013 E.g. ECDSA, ECDH Motivation E(F p ) Point arithmetic E.g. DH, DSA,

More information

Elliptic Curve Public Key Cryptography

Elliptic Curve Public Key Cryptography Why? Elliptic Curve Public Key Cryptography ECC offers greater security for a given key size. Why? Elliptic Curve Public Key Cryptography ECC offers greater security for a given key size. The smaller key

More information

Floating Point Arithmetic

Floating Point Arithmetic Floating Point Arithmetic CS 365 Floating-Point What can be represented in N bits? Unsigned 0 to 2 N 2s Complement -2 N-1 to 2 N-1-1 But, what about? very large numbers? 9,349,398,989,787,762,244,859,087,678

More information

An Efficient Elliptic Curve Cryptography Arithmetic Using Nikhilam Multiplication

An Efficient Elliptic Curve Cryptography Arithmetic Using Nikhilam Multiplication The International Journal Of Engineering And Science (IJES) Volume 4 Issue 4 Pages PP.45-50 2015 ISSN (e): 2319 1813 ISSN (p): 2319 1805 An Efficient Elliptic Curve Cryptography Arithmetic Using Nikhilam

More information

DIGITAL ARITHMETIC. Miloš D. Ercegovac Computer Science Department University of California Los Angeles and

DIGITAL ARITHMETIC. Miloš D. Ercegovac Computer Science Department University of California Los Angeles and 1 DIGITAL ARITHMETIC Miloš D. Ercegovac Computer Science Department University of California Los Angeles and Tomás Lang Department of Electrical and Computer Engineering University of California at Irvine

More information

Advanced Computing Research Laboratory. Adaptive Scientific Software Libraries

Advanced Computing Research Laboratory. Adaptive Scientific Software Libraries Adaptive Scientific Software Libraries and Texas Learning and Computation Center and Department of Computer Science University of Houston Challenges Diversity of execution environments Growing complexity

More information

Salsa20 speed. Daniel J. Bernstein

Salsa20 speed. Daniel J. Bernstein Salsa20 speed Daniel J. Bernstein Department of Mathematics, Statistics, and Computer Science (M/C 249) The University of Illinois at Chicago Chicago, IL 60607 7045 snuffle@box.cr.yp.to 1 Introduction

More information

Floating Point. The World is Not Just Integers. Programming languages support numbers with fraction

Floating Point. The World is Not Just Integers. Programming languages support numbers with fraction 1 Floating Point The World is Not Just Integers Programming languages support numbers with fraction Called floating-point numbers Examples: 3.14159265 (π) 2.71828 (e) 0.000000001 or 1.0 10 9 (seconds in

More information

Implementation of IEEE754 Floating Point Multiplier

Implementation of IEEE754 Floating Point Multiplier Implementation of IEEE754 Floating Point Multiplier A Kumutha 1 Shobha. P 2 1 MVJ College of Engineering, Near ITPB, Channasandra, Bangalore-67. 2 MVJ College of Engineering, Near ITPB, Channasandra, Bangalore-67.

More information

Number Systems and Computer Arithmetic

Number Systems and Computer Arithmetic Number Systems and Computer Arithmetic Counting to four billion two fingers at a time What do all those bits mean now? bits (011011011100010...01) instruction R-format I-format... integer data number text

More information

Beating Hand-Tuned Assembly. David Richardson

Beating Hand-Tuned Assembly. David Richardson Beating Hand-Tuned Assembly David Richardson d.g.richardson@gmail.com Outline Problem Hand tuned assembly Faster than assembly All optimization is like this 2 Multi Precision Arithmetic 11111111111111

More information

8/27/2016. ECE 120: Introduction to Computing. Graphical Illustration of Modular Arithmetic. Representations Must be Unambiguous

8/27/2016. ECE 120: Introduction to Computing. Graphical Illustration of Modular Arithmetic. Representations Must be Unambiguous University of Illinois at Urbana-Champaign Dept. of Electrical and Computer Engineering ECE 120: Introduction to Computing Signed Integers and 2 s Complement Strategy: Use Common Hardware for Two Representations

More information

! Addition! Multiplication! Bigger Example - RSA cryptography

! Addition! Multiplication! Bigger Example - RSA cryptography ! Addition! Multiplication! Bigger Example - RSA cryptography Modular Arithmetic Modular Exponentiation Primality Testing (Fermat s little theorem) Probabilistic algorithm Euclid s Algorithm for gcd (greatest

More information

Software Implementations of Elliptic Curve Cryptography

Software Implementations of Elliptic Curve Cryptography Software Implementations of Elliptic Curve Cryptography Aneel Murari ECE679 Oregon State university June 9, 2003 Abstract Elliptic Curve Cyrptography has gained a lot of significance in recent times. This

More information

Applied Cryptography and Network Security

Applied Cryptography and Network Security Applied Cryptography and Network Security William Garrison bill@cs.pitt.edu 6311 Sennott Square Lecture #8: RSA Didn t we learn about RSA last time? During the last lecture, we saw what RSA does and learned

More information

Scalar Blinding on Elliptic Curves with Special Structure

Scalar Blinding on Elliptic Curves with Special Structure Scalar Blinding on Elliptic Curves with Special Structure Scott Fluhrer Cisco Systems August 11, 2015 1 Abstract This paper shows how scalar blinding can provide protection against side channel attacks

More information

Module 7 Highlights. Mastered Reviewed. Sections ,

Module 7 Highlights. Mastered Reviewed. Sections , Sections 5.3 5.6, 6.1 6.6 Module 7 Highlights Andrea Hendricks Math 0098 Pre-college Algebra Topics Degree & leading coeff. of a univariate polynomial (5.3, Obj. 1) Simplifying a sum/diff. of two univariate

More information

Lecture 2 Algorithms with numbers

Lecture 2 Algorithms with numbers Advanced Algorithms Floriano Zini Free University of Bozen-Bolzano Faculty of Computer Science Academic Year 2013-2014 Lecture 2 Algorithms with numbers 1 RSA Algorithm Why does RSA work? RSA is based

More information

Introduction to Cryptography and Security Mechanisms. Abdul Hameed

Introduction to Cryptography and Security Mechanisms. Abdul Hameed Introduction to Cryptography and Security Mechanisms Abdul Hameed http://informationtechnology.pk Before we start 3 Quiz 1 From a security perspective, rather than an efficiency perspective, which of the

More information

Breaking ECC2K-130 on Cell processors and GPUs

Breaking ECC2K-130 on Cell processors and GPUs Breaking ECC2K-130 on Cell processors and GPUs Daniel V. Bailey, Lejla Batina, Daniel J. Bernstein, Peter Birkner, Joppe W. Bos, Hsieh-Chung Chen, Chen-Mou Cheng, Gauthier van Damme, Giacomo de Meulenaer,

More information

CHAPTER V NUMBER SYSTEMS AND ARITHMETIC

CHAPTER V NUMBER SYSTEMS AND ARITHMETIC CHAPTER V-1 CHAPTER V CHAPTER V NUMBER SYSTEMS AND ARITHMETIC CHAPTER V-2 NUMBER SYSTEMS RADIX-R REPRESENTATION Decimal number expansion 73625 10 = ( 7 10 4 ) + ( 3 10 3 ) + ( 6 10 2 ) + ( 2 10 1 ) +(

More information

Elliptic Curve Cryptography on a Palm OS Device

Elliptic Curve Cryptography on a Palm OS Device Elliptic Curve Cryptography on a Palm OS Device André Weimerskirch 1, Christof Paar 2, and Sheueling Chang Shantz 3 1 CS Department, Worcester Polytechnic Institute, USA weika@wpi.edu 2 ECE and CS Department,

More information

Software Implementation of Pairings 1

Software Implementation of Pairings 1 Software Implementation of Pairings 1 Darrel HANKERSON a, Alfred MENEZES b and Michael SCOTT c a Auburn University, hankedr@auburn.edu b University of Waterloo, ajmeneze@uwaterloo.ca c Dublin City University,

More information

Example: Adding 1000 integers on Cortex-M4F. Lower bound: 2n + 1 cycles for n LDR + n ADD. Imagine not knowing this : : :

Example: Adding 1000 integers on Cortex-M4F. Lower bound: 2n + 1 cycles for n LDR + n ADD. Imagine not knowing this : : : Cryptographic software engineering, part 2 1 Daniel J. Bernstein Last time: General software engineering. Using const-time instructions. Comparing time to lower bound. Example: Adding 1000 integers on

More information

Lecture Notes, CSE 232, Fall 2014 Semester

Lecture Notes, CSE 232, Fall 2014 Semester Lecture Notes, CSE 232, Fall 2014 Semester Dr. Brett Olsen Week 11 - Number Theory Number theory is the study of the integers. The most basic concept in number theory is divisibility. We say that b divides

More information

IMPLEMENTATION OF THE. Alexander J. Yee University of Illinois Urbana-Champaign

IMPLEMENTATION OF THE. Alexander J. Yee University of Illinois Urbana-Champaign SINGLE-TRANSPOSE IMPLEMENTATION OF THE OUT-OF-ORDER 3D-FFT Alexander J. Yee University of Illinois Urbana-Champaign The Problem FFTs are extremely memory-intensive. Completely bound by memory access. Memory

More information

Floating-point representation

Floating-point representation Lecture 3-4: Floating-point representation and arithmetic Floating-point representation The notion of real numbers in mathematics is convenient for hand computations and formula manipulations. However,

More information

DESIGN METHODOLOGY. 5.1 General

DESIGN METHODOLOGY. 5.1 General 87 5 FFT DESIGN METHODOLOGY 5.1 General The fast Fourier transform is used to deliver a fast approach for the processing of data in the wireless transmission. The Fast Fourier Transform is one of the methods

More information

Chapter Two MIPS Arithmetic

Chapter Two MIPS Arithmetic Chapter Two MIPS Arithmetic Computer Organization Review Binary Representation Used for all data and instructions Fixed size values: 8, 16, 32, 64 Hexadecimal Sign extension Base and virtual machines.

More information

Using an RSA Accelerator for Modular Inversion

Using an RSA Accelerator for Modular Inversion Using an RSA Accelerator for Modular Inversion by Martin Seysen CHES 2005 Coprocessors on Smart Cards Coprocessors on smart cards have been designed to speed up RSA Examples: Infineon SLE66 ACE Hitachi/Renesas

More information

CO Computer Architecture and Programming Languages CAPL. Lecture 15

CO Computer Architecture and Programming Languages CAPL. Lecture 15 CO20-320241 Computer Architecture and Programming Languages CAPL Lecture 15 Dr. Kinga Lipskoch Fall 2017 How to Compute a Binary Float Decimal fraction: 8.703125 Integral part: 8 1000 Fraction part: 0.703125

More information

0x1A Great Papers in Computer Security

0x1A Great Papers in Computer Security CS 380S 0x1A Great Papers in Computer Security Vitaly Shmatikov http://www.cs.utexas.edu/~shmat/courses/cs380s/ Attacking Cryptographic Schemes Cryptanalysis Find mathematical weaknesses in constructions

More information

The p-sized partitioning algorithm for fast computation of factorials of numbers

The p-sized partitioning algorithm for fast computation of factorials of numbers J Supercomput (2006) 38:73 82 DOI 10.1007/s11227-006-7285-5 The p-sized partitioning algorithm for fast computation of factorials of numbers Ahmet Ugur Henry Thompson C Science + Business Media, LLC 2006

More information

MC1601 Computer Organization

MC1601 Computer Organization MC1601 Computer Organization Unit 1 : Digital Fundamentals Lesson1 : Number Systems and Conversions (KSB) (MCA) (2009-12/ODD) (2009-10/1 A&B) Coverage - Lesson1 Shows how various data types found in digital

More information

Additional Key Words and Phrases: Accuracy, elementary function evaluation, floating point, Fortran, mathematical library, portable software

Additional Key Words and Phrases: Accuracy, elementary function evaluation, floating point, Fortran, mathematical library, portable software A Fortran Package For Floating-Point Multiple-Precision Arithmetic David M. Smith Loyola Marymount University FM is a collection of Fortran-77 routines which performs floating-point multiple-precision

More information

The Perils of Floating Point

The Perils of Floating Point The Perils of Floating Point by Bruce M. Bush Copyright (c) 1996 Lahey Computer Systems, Inc. Permission to copy is granted with acknowledgement of the source. Many great engineering and scientific advances

More information

Pomcor JavaScript Cryptographic Library (PJCL)

Pomcor JavaScript Cryptographic Library (PJCL) Pomcor JavaScript Cryptographic Library (PJCL) Version 0.9 (beta test version) Contents 1 Functionality provided in Version 0.9 6 2 Requirements 7 3 License 8 4 Downloadable zip archive 8 5 Data encodings

More information

Algebra II Radical Equations

Algebra II Radical Equations 1 Algebra II Radical Equations 2016-04-21 www.njctl.org 2 Table of Contents: Graphing Square Root Functions Working with Square Roots Irrational Roots Adding and Subtracting Radicals Multiplying Radicals

More information

Fast Multiplication on Elliptic Curves over GF (2 m ) without Precomputation

Fast Multiplication on Elliptic Curves over GF (2 m ) without Precomputation Fast Multiplication on Elliptic Curves over GF (2 m ) without Precomputation Julio López 1 and Ricardo Dahab 2 1 Department of Combinatorics & Optimization University of Waterloo, Waterloo, Ontario N2L

More information

Manipulate expressions containing surds and rationalise denominators (A*) Able to simplify surds (A)

Manipulate expressions containing surds and rationalise denominators (A*) Able to simplify surds (A) Moving from A to A* Manipulate expressions containing surds and rationalise denominators (A*) Solve using surds (A*) A* Solve direct and inverse variation three variables (A*) A* Find formulae describing

More information

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

High Speed Cryptoprocessor for η T Pairing on 128-bit Secure Supersingular Elliptic Curves over Characteristic Two Fields High Speed Cryptoprocessor for η T Pairing on 128-bit Secure Supersingular Elliptic Curves over Characteristic Two Fields Santosh Ghosh, Dipanwita Roy Chowdhury, and Abhijit Das Computer Science and Engineering

More information

CPS 104 Computer Organization and Programming

CPS 104 Computer Organization and Programming CPS 104 Computer Organization and Programming Lecture 9: Integer Arithmetic. Robert Wagner CPS104 IMD.1 RW Fall 2000 Overview of Today s Lecture: Integer Multiplication and Division. Read Appendix B CPS104

More information

Chapter 3. Errors and numerical stability

Chapter 3. Errors and numerical stability Chapter 3 Errors and numerical stability 1 Representation of numbers Binary system : micro-transistor in state off 0 on 1 Smallest amount of stored data bit Object in memory chain of 1 and 0 10011000110101001111010010100010

More information

Novel Multiplier Architectures for GF (p) andgf (2 n )

Novel Multiplier Architectures for GF (p) andgf (2 n ) Novel Multiplier Architectures for GF (p) andgf (2 n ) E. Savaş 1,A.F.Tenca 2,M.E.Çiftçibasi 3,andÇ. K. Koç 2 1 Faculty of Engineering and Natural Sciences Sabanci University Istanbul, Turkey TR-34956

More information

An Algorithm and Hardware Architecture for Integrated Modular Division and Multiplication in GF (p) and GF (2 n )

An Algorithm and Hardware Architecture for Integrated Modular Division and Multiplication in GF (p) and GF (2 n ) An Algorithm and Hardware Architecture for Integrated Modular Division and Multiplication in GF (p) and GF (2 n ) Lo ai A. Tawalbeh and Alexandre F. Tenca School of Electrical Engineering and Computer

More information

Pipelined Quadratic Equation based Novel Multiplication Method for Cryptographic Applications

Pipelined Quadratic Equation based Novel Multiplication Method for Cryptographic Applications , Vol 7(4S), 34 39, April 204 ISSN (Print): 0974-6846 ISSN (Online) : 0974-5645 Pipelined Quadratic Equation based Novel Multiplication Method for Cryptographic Applications B. Vignesh *, K. P. Sridhar

More information

Computer Architecture and System Software Lecture 02: Overview of Computer Systems & Start of Chapter 2

Computer Architecture and System Software Lecture 02: Overview of Computer Systems & Start of Chapter 2 Computer Architecture and System Software Lecture 02: Overview of Computer Systems & Start of Chapter 2 Instructor: Rob Bergen Applied Computer Science University of Winnipeg Announcements Website is up

More information

Breaking ECC2K-130. May 20, Oberseminar Computer Security, COSEC group, B-IT, Bonn

Breaking ECC2K-130. May 20, Oberseminar Computer Security, COSEC group, B-IT, Bonn Breaking ECC2K-130 Daniel V. Bailey, Lejla Batina, Daniel J. Bernstein, Peter Birkner, Joppe W. Bos, Hsieh-Chung Chen, Chen-Mou Cheng, Gauthier van Damme, Giacomo de Meulenaer, Luis Julian Dominguez Perez,

More information

Floating-Point Arithmetic

Floating-Point Arithmetic ENEE446---Lectures-4/10-15/08 A. Yavuz Oruç Professor, UMD, College Park Copyright 2007 A. Yavuz Oruç. All rights reserved. Floating-Point Arithmetic Integer or fixed-point arithmetic provides a complete

More information

--> Buy True-PDF --> Auto-delivered in 0~10 minutes. GM/T Translated English of Chinese Standard: GM/T0044.

--> Buy True-PDF --> Auto-delivered in 0~10 minutes. GM/T Translated English of Chinese Standard: GM/T0044. Translated English of Chinese Standard: GM/T0044.1-2016 www.chinesestandard.net Buy True-PDF Auto-delivery. Sales@ChineseStandard.net CRYPTOGRAPHY INDUSTRY STANDARD OF THE PEOPLE S REPUBLIC OF CHINA GM

More information

POST-SIEVING ON GPUs

POST-SIEVING ON GPUs POST-SIEVING ON GPUs Andrea Miele 1, Joppe W Bos 2, Thorsten Kleinjung 1, Arjen K Lenstra 1 1 LACAL, EPFL, Lausanne, Switzerland 2 NXP Semiconductors, Leuven, Belgium 1/18 NUMBER FIELD SIEVE (NFS) Asymptotically

More information

2 Computation with Floating-Point Numbers

2 Computation with Floating-Point Numbers 2 Computation with Floating-Point Numbers 2.1 Floating-Point Representation The notion of real numbers in mathematics is convenient for hand computations and formula manipulations. However, real numbers

More information

Number and Place Value

Number and Place Value Number and Place Value Reading and writing numbers Ordering and comparing numbers Place value Representing and estimating numbers Rounding numbers Round to nearest 100 000 up to 1 000 000, extend to rounding

More information

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

VLSI Design and Implementation of High Speed and High Throughput DADDA Multiplier VLSI Design and Implementation of High Speed and High Throughput DADDA Multiplier U.V.N.S.Suhitha Student Department of ECE, BVC College of Engineering, AP, India. Abstract: The ever growing need for improved

More information

CHAPTER 1 INTRODUCTION

CHAPTER 1 INTRODUCTION 1 CHAPTER 1 INTRODUCTION 1.1 Advance Encryption Standard (AES) Rijndael algorithm is symmetric block cipher that can process data blocks of 128 bits, using cipher keys with lengths of 128, 192, and 256

More information

NEON: Faster Elliptic Curve Scalar Multiplications on ARM Processors

NEON: Faster Elliptic Curve Scalar Multiplications on ARM Processors Four NEON: Faster Elliptic Curve Scalar Multiplications on ARM Processors Selected Areas in Cryptography (SAC 2016) St. Johns, Canada Patrick Longa Microsoft Research Next-generation elliptic curves Recent

More information

Hardware for Collision Search on Elliptic Curve over GF(2 m )

Hardware for Collision Search on Elliptic Curve over GF(2 m ) Hardware for Collision Search on Elliptic Curve over GF(2 m ) Philippe Bulens (S), Guerric Meurice de Dormale and Jean-Jacques Quisquater {bulens, gmeurice, quisquater}@dice.ucl.ac.be UCL Crypto Group

More information

Decimals Outcomes. Represent Q Using Decomposition

Decimals Outcomes. Represent Q Using Decomposition 1 Decimals Outcomes Represent addition, subtraction, multiplication, and division in Q using number lines and decomposition. Perform addition, subtraction, multiplication, and division in Q. Convert between

More information

Generic GF(2 m ) Arithmetic in Software and its Application to ECC

Generic GF(2 m ) Arithmetic in Software and its Application to ECC Generic GF(2 m ) Arithmetic in Software and its Application to ECC André Weimerskirch 1, Douglas Stebila 2, and Sheueling Chang Shantz 3 1 Communication Security Group, Ruhr-Universität Bochum, Germany

More information

Learning Log Title: CHAPTER 3: ARITHMETIC PROPERTIES. Date: Lesson: Chapter 3: Arithmetic Properties

Learning Log Title: CHAPTER 3: ARITHMETIC PROPERTIES. Date: Lesson: Chapter 3: Arithmetic Properties Chapter 3: Arithmetic Properties CHAPTER 3: ARITHMETIC PROPERTIES Date: Lesson: Learning Log Title: Date: Lesson: Learning Log Title: Chapter 3: Arithmetic Properties Date: Lesson: Learning Log Title:

More information

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

Understanding Cryptography by Christof Paar and Jan Pelzl. Chapter 9 Elliptic Curve Cryptography Understanding Cryptography by Christof Paar and Jan Pelzl www.crypto-textbook.com Chapter 9 Elliptic Curve Cryptography ver. February 2nd, 2015 These slides were prepared by Tim Güneysu, Christof Paar

More information

E-th roots and static Diffie-Hellman using index calculus

E-th roots and static Diffie-Hellman using index calculus E-th roots and static Diffie-Hellman using index calculus Antoine Joux 1 Joint work with Reynald Lercier 2, David Naccache 3, Emmanuel Thomé 4 Elliptic Curve Cryptography 2008 Utrecht 1 DGA and UVSQ 2

More information

Dr. Jinyuan (Stella) Sun Dept. of Electrical Engineering and Computer Science University of Tennessee Fall 2010

Dr. Jinyuan (Stella) Sun Dept. of Electrical Engineering and Computer Science University of Tennessee Fall 2010 CS 494/594 Computer and Network Security Dr. Jinyuan (Stella) Sun Dept. of Electrical Engineering and Computer Science University of Tennessee Fall 2010 1 Public Key Cryptography Modular Arithmetic RSA

More information

Floating-point Arithmetic. where you sum up the integer to the left of the decimal point and the fraction to the right.

Floating-point Arithmetic. where you sum up the integer to the left of the decimal point and the fraction to the right. Floating-point Arithmetic Reading: pp. 312-328 Floating-Point Representation Non-scientific floating point numbers: A non-integer can be represented as: 2 4 2 3 2 2 2 1 2 0.2-1 2-2 2-3 2-4 where you sum

More information

12-4 Geometric Sequences and Series. Lesson 12 3 quiz Battle of the CST s Lesson Presentation

12-4 Geometric Sequences and Series. Lesson 12 3 quiz Battle of the CST s Lesson Presentation 12-4 Geometric Sequences and Series Lesson 12 3 quiz Battle of the CST s Lesson Presentation Objectives Find terms of a geometric sequence, including geometric means. Find the sums of geometric series.

More information

Elliptic Curve Cryptography in JavaScript. Haustenne Laurie - De Neyer Quentin - Pereira Olivier Université catholique de Louvain

Elliptic Curve Cryptography in JavaScript. Haustenne Laurie - De Neyer Quentin - Pereira Olivier Université catholique de Louvain Elliptic Curve Cryptography in JavaScript Haustenne Laurie - De Neyer Quentin - Pereira Olivier Université catholique de Louvain ECRYPT Workshop on Lightweight Cryptography November 28-29, 2011, Louvain-la-Neuve,

More information

2 Computation with Floating-Point Numbers

2 Computation with Floating-Point Numbers 2 Computation with Floating-Point Numbers 2.1 Floating-Point Representation The notion of real numbers in mathematics is convenient for hand computations and formula manipulations. However, real numbers

More information

Reals 1. Floating-point numbers and their properties. Pitfalls of numeric computation. Horner's method. Bisection. Newton's method.

Reals 1. Floating-point numbers and their properties. Pitfalls of numeric computation. Horner's method. Bisection. Newton's method. Reals 1 13 Reals Floating-point numbers and their properties. Pitfalls of numeric computation. Horner's method. Bisection. Newton's method. 13.1 Floating-point numbers Real numbers, those declared to be

More information

Module 2: Computer Arithmetic

Module 2: Computer Arithmetic Module 2: Computer Arithmetic 1 B O O K : C O M P U T E R O R G A N I Z A T I O N A N D D E S I G N, 3 E D, D A V I D L. P A T T E R S O N A N D J O H N L. H A N N E S S Y, M O R G A N K A U F M A N N

More information

Euclid's Algorithm. MA/CSSE 473 Day 06. Student Questions Odd Pie Fight Euclid's algorithm (if there is time) extended Euclid's algorithm

Euclid's Algorithm. MA/CSSE 473 Day 06. Student Questions Odd Pie Fight Euclid's algorithm (if there is time) extended Euclid's algorithm MA/CSSE 473 Day 06 Euclid's Algorithm MA/CSSE 473 Day 06 Student Questions Odd Pie Fight Euclid's algorithm (if there is time) extended Euclid's algorithm 1 Quick look at review topics in textbook REVIEW

More information

Studies on Modular Arithmetic Hardware Algorithms for Public-key Cryptography

Studies on Modular Arithmetic Hardware Algorithms for Public-key Cryptography Studies on Modular Arithmetic Hardware Algorithms for Public-key Cryptography Marcelo Emilio Kaihara Graduate School of Information Science Nagoya University January 2006 iii Dedicated to my father. Abstract

More information

Comparison of Algorithms for Elliptic Curve Cryptography over Finite Fields of GF(2 m )

Comparison of Algorithms for Elliptic Curve Cryptography over Finite Fields of GF(2 m ) Comparison of Algorithms for Elliptic Curve Cryptography over Finite Fields of GF( m ) The IASTED International Conference on Communication, Network, and Information Security CNIS 003, December -1, 003

More information

Chapter 4 Section 2 Operations on Decimals

Chapter 4 Section 2 Operations on Decimals Chapter 4 Section 2 Operations on Decimals Addition and subtraction of decimals To add decimals, write the numbers so that the decimal points are on a vertical line. Add as you would with whole numbers.

More information

(-,+) (+,+) Plotting Points

(-,+) (+,+) Plotting Points Algebra Basics +y (-,+) (+,+) -x +x (-,-) (+,-) Plotting Points -y Commutative Property of Addition/Multiplication * You can commute or move the terms * This only applies to addition and multiplication

More information

A Scalable and High Performance Elliptic Curve Processor with Resistance to Timing Attacks

A Scalable and High Performance Elliptic Curve Processor with Resistance to Timing Attacks A Scalable and High Performance Elliptic Curve Processor with Resistance to Timing Attacks Alireza Hodjat, David D. Hwang, Ingrid Verbauwhede, University of California, Los Angeles Katholieke Universiteit

More information

CHAPTER 5: Representing Numerical Data

CHAPTER 5: Representing Numerical Data CHAPTER 5: Representing Numerical Data The Architecture of Computer Hardware and Systems Software & Networking: An Information Technology Approach 4th Edition, Irv Englander John Wiley and Sons 2010 PowerPoint

More information

More About Factoring Trinomials

More About Factoring Trinomials Section 6.3 More About Factoring Trinomials 239 83. x 2 17x 70 x 7 x 10 Width of rectangle: Length of rectangle: x 7 x 10 Width of shaded region: 7 Length of shaded region: x 10 x 10 Area of shaded region:

More information

But first, encode deck of cards. Integer Representation. Two possible representations. Two better representations WELLESLEY CS 240 9/8/15

But first, encode deck of cards. Integer Representation. Two possible representations. Two better representations WELLESLEY CS 240 9/8/15 Integer Representation Representation of integers: unsigned and signed Sign extension Arithmetic and shifting Casting But first, encode deck of cards. cards in suits How do we encode suits, face cards?

More information

Parallelizing Cryptography. Gordon Werner Samantha Kenyon

Parallelizing Cryptography. Gordon Werner Samantha Kenyon Parallelizing Cryptography Gordon Werner Samantha Kenyon Outline Security requirements Cryptographic Primitives Block Cipher Parallelization of current Standards AES RSA Elliptic Curve Cryptographic Attacks

More information

CIS 194: Homework 4. Due Wednesday, February 18, What is a Number?

CIS 194: Homework 4. Due Wednesday, February 18, What is a Number? CIS 194: Homework 4 Due Wednesday, February 18, 2015 What is a Number? This may sound like a deep, philosophical question, but the Haskell type system gives us a simple way to answer it. A number is any

More information