Applied cryptography

Similar documents
ENEE 457: E-Cash and Bitcoin

Bitcoin (Part I) Ken Calvert Keeping Current Seminar 22 January Keeping Current 1

Chapter 13. Digital Cash. Information Security/System Security p. 570/626

Problem: Equivocation!

Digital Cash Systems

Bitcoin and Blockchain

Smalltalk 3/30/15. The Mathematics of Bitcoin Brian Heinold

Computer Security. 14. Blockchain & Bitcoin. Paul Krzyzanowski. Rutgers University. Spring 2019

Blockchain. CS 240: Computing Systems and Concurrency Lecture 20. Marco Canini

Digital Signatures. Luke Anderson. 7 th April University Of Sydney.

E-cash. Cryptography. Professor: Marius Zimand. e-cash. Benefits of cash: anonymous. difficult to copy. divisible (you can get change)

CS 4770: Cryptography. CS 6750: Cryptography and Communication Security. Alina Oprea Associate Professor, CCIS Northeastern University

University of Duisburg-Essen Bismarckstr Duisburg Germany HOW BITCOIN WORKS. Matthäus Wander. June 29, 2011

Information Security. message M. fingerprint f = H(M) one-way hash. 4/19/2006 Information Security 1

How Bitcoin achieves Decentralization. How Bitcoin achieves Decentralization

Reminder: Homework 4. Due: Friday at the beginning of class

A simple approach of Peer-to-Peer E-Cash system

Lecture 10, Zero Knowledge Proofs, Secure Computation

Bitcoin/Namecoin/*coin: On Bitcoin like protocols and their relation to other IT-Security issues

Deniable Unique Group Authentication CS380S Project Report

Lecture 9. Anonymity in Cryptocurrencies

CSC 5930/9010 Modern Cryptography: Digital Signatures

The Design of an Anonymous and a Fair Novel E-cash System

Blind Signatures and Their Applications

Bitcoin. CS6450: Distributed Systems Lecture 20 Ryan Stutsman

E-Cash Payment Protocols

CS 4770: Cryptography. CS 6750: Cryptography and Communication Security. Alina Oprea Associate Professor, CCIS Northeastern University

Digital Signatures. Sven Laur University of Tartu

COMS W4995 Introduction to Cryptography November 13, Lecture 21: Multiple Use Signature Schemes

About cryptocurrencies and blockchains part 1. Jyväskylä 17th of April 2018 Henri Heinonen

Ensimag - 4MMSR Network Security Student Seminar. Bitcoin: A peer-to-peer Electronic Cash System Satoshi Nakamoto

1 Defining Message authentication

P2P BitCoin: Technical details

Notes for Lecture 21. From One-Time Signatures to Fully Secure Signatures

Payment systems. Tuomas Aura CSE-C3400 Information security. Aalto University, autumn 2014

Cryptography and Cryptocurrencies. Intro to Cryptography and Cryptocurrencies

Cryptanalysis of Blind Signature Schemes

Cryptography V: Digital Signatures

Privacy Enhancing Technologies CSE 701 Fall 2017

Computer Security Spring 2010 Paxson/Wagner HW 4. Due Thursday April 15, 5:00pm

Jan Møller Co-founder, CTO Chainalysis

CS 495 Cryptography Lecture 6

RSA. Public Key CryptoSystem

Digital Signatures CMSC 23200/33250, Autumn 2018, Lecture 8

Cryptography: More Primitives

Payment systems. Tuomas Aura T Information security technology. Aalto University, autumn 2013

Lecture 19 - Oblivious Transfer (OT) and Private Information Retrieval (PIR)

Analyzing Bitcoin Security. Philippe Camacho

Cryptographically Secure Bloom-Filters

Blockchains & Cryptocurrencies

Blockchain, Cryptocurrency, Smart Contracts and Initial Coin Offerings: A Technical Perspective

APPLICATIONS AND PROTOCOLS. Mihir Bellare UCSD 1

Lecture 22 - Oblivious Transfer (OT) and Private Information Retrieval (PIR)

ICS 421 & ICS 690. Bitcoin & Blockchain. Assoc. Prof. Lipyeow Lim Information & Computer Sciences Department University of Hawai`i at Mānoa

Security Analysis of Bitcoin. Dibyojyoti Mukherjee Jaswant Katragadda Yashwant Gazula

CRUDE COINS.

Blockchain Certification Protocol (BCP)

DEV. Deviant Coin, Innovative Anonymity. A PoS/Masternode cr yptocurrency developed with POS proof of stake.

CSE 5852, Modern Cryptography: Foundations Fall Lecture 26. pk = (p,g,g x ) y. (p,g,g x ) xr + y Check g xr +y =(g x ) r.

Introduc)on to Bitcoin

CS 251: Bitcoin and Crypto Currencies Fall 2015

CS 251: Bitcoin and Cryptocurrencies Fall 2016

Digital Signatures. KG November 3, Introduction 1. 2 Digital Signatures 2

Secure Multiparty Computation

Financial Cryptography February 2001 Grand Cayman Islands - BWI

SpaceMint Overcoming Bitcoin s waste of energy

Solutions to exam in Cryptography December 17, 2013

Efficient identity-based GQ multisignatures

Cryptographic Primitives and Protocols for MANETs. Jonathan Katz University of Maryland

Biomedical Security. Cipher Block Chaining and Applications

Whitepaper Rcoin Global

Biomedical and Healthcare Applications for Blockchain. Tiffany J. Callahan Computational Bioscience Program Hunter/Kahn Labs

Bitcoin: A Peer-to-Peer Electronic Cash System

BLOCKCHAIN The foundation behind Bitcoin

EECS 498 Introduction to Distributed Systems

Bitcoin: A Peer-to-Peer Electronic Cash System

Lecture 8 - Message Authentication Codes

Biomedical Security. Some Security News 10/5/2018. Erwin M. Bakker

Part VI. Public-key cryptography

Introduction to Bitcoin I

Matt Howard and Ajay Patel CIS 556: Cryptography University of Pennsylvania Fall DriveCoin: A Proof of Space Cryptocurrency

CS573 Data Privacy and Security. Cryptographic Primitives and Secure Multiparty Computation. Li Xiong

Cryptography V: Digital Signatures

Transactions as Proof-of-Stake! by Daniel Larimer!

CCP: Conflicts Check Protocol for Bitcoin Block Security 1

Anonymity and Privacy

Digital Proxy Blind Signature Schemes Based on DLP and ECDLP

1 Identification protocols

SmartPool: practical decentralized pool mining. Loi Luu, Yaron Velner, Jason Teutsch, and Prateek Saxena August 18, 2017

Bitcoin a Peer-to-Peer payment solution

Imposing fairness in electronic commerce

Distributed Algorithms Bitcoin

The Implementation of Blind Signature in Digital Cash

Cryptographic protocols

BYZANTINE CONSENSUS THROUGH BITCOIN S PROOF- OF-WORK

CS 395T. Formal Model for Secure Key Exchange

Providing Efficient Privacy-Aware Incentives for Mobile Sensing

COS433/Math 473: Cryptography. Mark Zhandry Princeton University Spring 2017

Blind Signature Scheme Based on Elliptic Curve Cryptography

Neel Gupte. Index Terms Bitcoin, Cryptocurreny, Block Chain, Hashing, Proof-of-Work, Double-spending, Momentum Method, Proof of Stake.

Transcription:

Applied cryptography Electronic Cash Andreas Hülsing 29 November 2016 1 / 61

Classical Cash - Life Cycle Mint produces money (coins / bank notes) Sent to bank User withdraws money (reduces account balance) User (payer) pays some Vendor / other user (Payee) Payee either becomes new payer or deposits money (increases account balance) 2 / 61

Classical Cash - Properties Coin / bank notes with different values Transferable Anonymous (Not linked to owner) Untraceable (With restrictions serial number) Unforgeable (well...) Hard to duplicate (!= unforgeable, especially important in digital setting) 3 / 61

ecommerce In 2014 goods and services worth $1.5 trillion USD were sold online. 1.5 trillion = 1,500,000,000,000 GDP Netherlands: $869.51 billion USD (2014) 4 / 61

ecommerce In 2014 goods and services worth $1.5 trillion USD were sold online. 1.5 trillion = 1,500,000,000,000 GDP Netherlands: $869.51 billion USD (2014) 4 / 61

How do we pay these goods? 5 / 61

The common way 6 / 61

Credit Card Payment - Properties Traceable: Credit card processors, issuing bank, and credit card company learn about purchase... No anonymity: Clearly linked to owner Unforgeable (assuming authorization is used by merchant) Easy to duplicate (especially for online setting) Even worse as data stored in many places. 7 / 61

A less common way 8 / 61

PayPal - Properties Traceable: PayPal (ebay) learn about purchase... Anonymity towards payee but not towards PayPal. Unforgeable Hard to duplicate (PayPal server keeps track of balance) 9 / 61

The Dutch way 10 / 61

ideal - Properties Traceable: Issuing bank learns about purchase... No anonymity: Clearly linked to owner Unforgeable Hard to duplicate 11 / 61

Electronic Cash 12 / 61

Targeted properties Coins with different values Transferable Anonymous (Not linked to owner) Untraceable Unforgeable Hard to duplicate (a.k.a. double spending; bit strings are easy to copy... ) 13 / 61

A first try A minimal ecash scheme needs at least the following protocols: Withdrawal Payment Deposit 14 / 61

A first try - Withdrawal protocol User tells bank she wants to withdraw $100 dollar. Bank returns $100 bill {I am a $100 bill,#2342345234} SKB and withdraws $100 from account. User accepts bill if signature is valid. 15 / 61

A first try - Payment & Deposit Protocols Payment protocol: User pays Payee with bill. Payee accepts bill if signature is valid. Deposit protocol: Payee gives bill to bank. Bank checks signature and credits payee account if signature is valid. 16 / 61

A first try - Payment & Deposit Protocols Payment protocol: User pays Payee with bill. Payee accepts bill if signature is valid. Deposit protocol: Payee gives bill to bank. Bank checks signature and credits payee account if signature is valid. 16 / 61

Targeted properties Coins with different values Transferable x Anonymous (Bank can link) x Untraceable (Serial number) Unforgeable x Hard to duplicate / double spend 17 / 61

Fixing double spending Bank keeps list of signed notes using serial numbers. Fixed deposit protocol: Payee gives bill to bank. Bank checks signature and credits payee account if signature is valid and serial number was not deposited before. 18 / 61

Targeted properties Coins with different values Transferable x Anonymous (Bank can link) x Untraceable (Serial number) Unforgeable Hard to duplicate / double spend BUT: requires online connection with bank! (Immediate deposit necessary) 19 / 61

Targeted properties Coins with different values Transferable x Anonymous (Bank can link) x Untraceable (Serial number) Unforgeable Hard to duplicate / double spend BUT: requires online connection with bank! (Immediate deposit necessary) 19 / 61

Fixing Anonymity / Untraceability Consider following analog withdrawal protocol: User creates check with random serial number and amount. User covers check with carbon paper, and seals both in an envelope User sends envelope to bank and tells bank amount. Bank signs on envelope, withdraws amount from account and sends back envelope. User takes out check and verifies signature. 20 / 61

Fixing Anonymity / Untraceability - Analysis When deposited, bank can verify signature and compare serial number to used checks database. No link to user as bank did not see serial number before. But how do we make sure that user did not lie about amount? 21 / 61

Fixing Anonymity / Untraceability - Analysis When deposited, bank can verify signature and compare serial number to used checks database. No link to user as bank did not see serial number before. But how do we make sure that user did not lie about amount? 21 / 61

Fixing the fix - Cut and Choose Consider following analog withdrawal protocol: User creates k checks with random serial numbers and amount. User covers checks with carbon paper, and seals all in different envelopes User sends envelopes to bank and tells bank amount. Bank opens k 1 envelopes at random and verifies amount. Bank signs remaining envelope, withdraws amount from account and sends back envelope. User takes out check and verifies signature. 22 / 61

Targeted properties Coins with different values x Transferable Anonymous Untraceable Unforgeable Hard to duplicate / double spend BUT: requires online connection with bank! 23 / 61

Chaum s ecash system [Chaum 83] 24 / 61

Targeted properties Coins with different values x Transferable Anonymous Untraceable Unforgeable Hard to duplicate / double spend BUT: requires online connection with bank! 25 / 61

Blind Signatures How to implement envelope & carbon paper? Protocol between (R)eceiver and (S)igner Blinding R preparse blinded message M = b(m). Signing R sends M to S. S replies with signature σ on M. Unblinding R extracts signature σ for M from σ. 26 / 61

Blind Signatures - Security One-More Unforgeability The number of signatures obtained by R is bounded by the number of times S and R have engaged in an execution of the signing protocol. More precisely, given oracle access to S, R should be unable to produce l + 1 or more valid signed messages from l oracle calls. Unlinkability S cannot link any particular signature obtained by R with an execution of the signing protocol. 27 / 61

Unlinkability Unlinkability can also be formulated as a game: 1 S picks (M 0, M 1 ) and gives the pair to R. 2 R flips a bit b and engages in two instances of the blind signature protocol, in the first one using M b to obtain σ b and in the second one using (M 1 b to obtain σ 1 b ). R gives (σ 0, σ 1 ) to S. 3 S must determine b. S should not have an advantage, that is, guessing b correctly only succeeds with probability negligibly different from 1/2. Usually there is one signer and a population of receivers. 28 / 61

Blind RSA signatures Schoolbook RSA signatures RSA setting: modulus n = pq, public exponent e with gcd(e, φ(n)) = 1, private exponent d e 1 mod φ(n). Message m: m Z n (or, Z n, if you like) Signature σ: s m d mod n Verification: V (m, s) := s e? m mod n Existential forgery: V (1, 1) V (x e, x), for any x V (m, s) V (m y, s y ), for any y V (m 1, s 1 ) V (m 2, s 2 ) V (m 1 m 2, s 1 s 2 ) But these algebraic properties are very useful in protocols! 29 / 61

Full RSA signatures Secure RSA signatures require a redundancy ( hash ) function f mapping messages into Z n. Simplified examples, using auxiliary hash functions h, g 1, g 2 : f PKCS#1v1.5 (m) = 0x 00 01 FF FF FF FF 00 h(m) f FDH (m) = h(0 m) h(1 m)) h(2 m)) f ecash (m) = h(m) h(h(m)) h(h(m) h(h(m))) f PSS (m) = 0 w g 1 (w) r g 2 (w) Signature s satisfies s = f (m) d mod n. with w = h(m r) and r random. 30 / 61

Chaum s blind signature protocol (R)eceiver (S)igner pk = (n, e) sk = (n, d) r R Z n M := f (M)r e mod n σ := σ r 1 mod n s e =? f (M) mod n M σ increment count σ := M d mod n 31 / 61

Unlinkability Signer s view: pairs (M, σ ) with σ = M d mod n Receivers s view: pairs (M, σ) with σ = f (M) d mod n Take any pair (M, σ ) and any pair (M, σ), not necessarily obtained in the same execution of the blind signature protocol. Set r = σ σ 1 mod n. Then clearly f (M)r e = f (M)(σ σ 1 ) e = σ e = M (mod n). Hence, for any such pair there is a unique r for which the pairs match. In fact, the views are statistically independent. Hence, information-theoretic unlinkability. 32 / 61

Unforgeability Remember, we got security reductions for RSA-FDH and RSA-PSS. Reduction in random oracle model. Intuitively: Nothing different here... Problem with blinded versions: hash oracle queries are now done by the receiver! The e-th root queries (signing queries) are now blinded to random numbers in Z n. Hence we need to know d mod φ(n). Proof does not go through. There exist reductions, but only in restricted models (e.g. assuming polylogarithmically bounded adversaries) 33 / 61

Unforgeability Remember, we got security reductions for RSA-FDH and RSA-PSS. Reduction in random oracle model. Intuitively: Nothing different here... Problem with blinded versions: hash oracle queries are now done by the receiver! The e-th root queries (signing queries) are now blinded to random numbers in Z n. Hence we need to know d mod φ(n). Proof does not go through. There exist reductions, but only in restricted models (e.g. assuming polylogarithmically bounded adversaries) 33 / 61

Alternative solution to denomination problem Instead of letting user choose denomination of coin using cut & choose, different public exponents e i can be used to encode the denominations D ei of electronic coins. e 3 5 7 11 13 17... D e $0.005 $0.01 $0.02 $0.04 $0.08 $0.16... Is it possible to forge a $0.02 coin using a $0.005 coin and a $0.01 coin? Mint issues e i -th roots, where the e i s are relatively prime. We have to show that a 7-th root cannot be obtained from a 3-rd and 5-th root. 34 / 61

Security of multiple roots Shamir showed that given the values {M, M 1/e 1,..., M 1/e k 1}, the computation of M 1/e k is just as difficult as when these values aren t given at all. Theorem Let e 1,..., e k be public RSA exponents that are mutually co-prime. Suppose it is feasible to compute M 1/e k given {M 1/e 1,..., M 1/e k 1} for random M Z n. Then it is feasible to compute x 1/e k for arbitrary x Z n. 35 / 61

Chaum s ecash system [Chaum 83] 36 / 61

Achieved Properties Coins with different values x Transferable Anonymous Untraceable Unforgeable Hard to duplicate / double spend BUT: requires online connection with bank! 37 / 61

An offline version 38 / 61

An offline version Basic idea: Make the user embed his identity in each coin (hidden). Introduce a challenge-response phase in payment protocol such that: A single run of the protocol leaks no information about user. The result of two runs of the protocol leaks the user identity. 39 / 61

Offline ecash - Withdrawal protocol User prepares k $20 dollar bills: M i = {I am a $20 bill,#{serial} i, y i,1, y i,1, y i,2, y i,2,..., y i,n, y i,n} where y i,j = H(x i,j ); y i,j = H(x i,j ) with randomly chosen pairs x i,j, x i,j such that x i,j x i,j = id i, j. User blinds all M i and sends them to bank. Bank asks to unblind k 1 random M i. User also returns all x i,j, x i,j for unblinded M i. Bank checks that amount is correct and that x i,j x i,j = id i, j. Bank returns signature on remaining blinded M i. 40 / 61

Offline ecash - Payment User pays Payee with bill M i. Payee sends random n bit string b 1,..., b n (Challenge). For each bit b j, user replies with c j = x i,j if b j = 0, and c j = x i,j otherwise (Response). Payee accepts if H(c j ) = y i,j (or H(c j ) = y i,j, respectively) for all j and the signature is valid. 41 / 61

Offline ecash - Deposit Protocols Deposit protocol: Payee gives bill M i, bit string b and openings c j to bank. Bank checks signature and looks for serial number in database. If signature is invalid bank aborts. If serial number is not in database, bank credits payee account and adds serial number, bit string, and openings to database. If serial number is in database: if openings are the same: Bank knows payee misbehaved. if openings are different: Bank can learn user identity. 42 / 61

Offline ecash - Security If H is perfectly one-way, righteous users remain anonymous. If H is one-way, no one besides user can solve challenge. If H is collision-resistant, a misbehaving user is caught with probability 1 2 n. 43 / 61

Achieved Properties Coins with different values x Transferable Anonymous Untraceable Unforgeable Hard to duplicate / double spend Transferability can also be achieved e.g. using malleable signatures but more complicated. 44 / 61

Bitcoin 45 / 61

Bitcoin facts First ecash scheme to really take off. Published by Nakamoto in 2008. Genesis block established January 3rd 2009. Currently about 15 million BTC in circulation worth about $6 billion USD. About 100,000 transactions per day. 46 / 61

Bitcoin facts II Decentralized ecash system based on a P2P network. Completely different from Chaum s ecash. No banks involved (that s why they do not like it). Double-spending not cryptographically prevented (that s why many cryptographers do not like it). Restarted interest in ecash / gave rise to a full new ecosystem of ecash protocols. 47 / 61

Bitcoin Building Blocks Transactions ( coins), Distributed Timestamp server, Network, Wallet (= keystore). 48 / 61

Transactions - Concept Actually it is a graph (see next slide) 49 / 61

Transactions - Concept II Arbitrarily many inputs. Maximum two outputs / receivers (payee and change). 50 / 61

Distributed Timestamp Server Take a periodical snapshot of all transactions. Timestamp it. That s the block chain. 51 / 61

Network Every user participates in network. Transactions are sent to all parties. Block-chain updates are distributed to every user. 52 / 61

Distributed Timestamp Server: Proof of work Achieved via block chain. Every user that wants to participate (aka miner) takes snapshot of system and searches for hash such that it is less than a given target value x. Search via nonce. 53 / 61

Distributed Timestamp Server: Proof of work x adapted approx. every 14 days such that search always takes 10min. Assuming SHA2 is random, every nonce has probability x/2 n to lead a valid hash. Assumed number of hashes: 2 n log x. When hash is found, it is distributed among the users. Honest users will switch to this new block and start searching for hash on this block + snapshot. (Always the most evolved chain is accepted) 54 / 61

Distributed Timestamp Server: Incentive Why spend money on computing time? Reward! Fixed amount of new bitcoins that halves approx. every four years (25 BTC in 2012) until limit of 21 million BTC is reached. Transaction fees: If in > out for an transaction, miner receives difference. 55 / 61

Achieved Properties Coins with different values (Kind of) Transferable ( ) Anonymous x Untraceable Unforgeable ( ) Hard to duplicate / double spend 56 / 61

Unforgeability. Block chain manipulation (simply assign yourself higher reward). Reward is determined by protocol, will not be accepted by others. Signature forgery (rather stealing bitcoins). Infeasible if signature scheme is secure (ECC). 57 / 61

The double spending issue. Payees have to wait for a few blocks before accepting transfer. Payees make sure that their transaction made it into global block chain. Issues: There might be temporarily different views of the block chain in different network segments. Adversary might actively cause this, e.g. by suppressing the transaction message. Adversary might create a new fork of block chain. 58 / 61

Races: Creating a malicious block chain An adversary might start a new branch of the block chain at any time, controlling which transactions make it in. Clearly, if the adversary has more computational power than all righteous miners together he will overtake the honest chain at some point. If adversary has less computational power, the probability that he catches up is exponentially small in the number of blocks he has to catch up. This game can be statistically analyzed in every detail (early start, only local view,... ). Nakamoto: No incentive. Can probably earn more with honest behavior, undermines system and validity of own wealth. 59 / 61

Anonymity / Untraceability Users are not limited to one key pair. Key pairs are not related to users by the system. Users can perform shadow transactions or use mixing services. However, bitcoin exchanges can be forced to collect and hand out user data. 60 / 61

Anonymity / Untraceability 61 / 61