An Ideal Untraceable Electronic Cash System Discussion of a digital cash protocol proposed by Tatsuaki Okamoto and Kazuo Ohta In class presentation by Catalin Floristean
- "Ideal" untraceable electronic cash system:
- Independence
- Security
- Privacy (Untraceability)
- Off-line payment
- Transferability
- Dividability
- Main advantage: dividability.
- A cash balance of C dollars can be subdivided into many pieces in any desired way.
- Efficient.
- Less than 100 bytes per piece of e-cash, regardless of face value.
- Seconds per transaction.
- Security relies on difficulty of factoring.
- Uses the cut-and-choose methodology.
- New key techniques:
- Square root modulo N (Wiliams integers).
- Hierarchical structure table corresponding to the structure of the cash system.
Preparations
- Number Theoretic Background
- Blum integer: N = PQ (P, Q prime), P = 3 (mod 4), Q = 3 (mod 4).
- Wiliams integer: N = PQ (P, Q prime), P = 3 (mod 8), Q = 7 (mod 8).
- Quadratic rezidue: a, s.t. x2=a (mod m), where (a,m) = 1, is solvable.
- (x/N) - Jacobi/Legendre symbol when N is composite/prime.
- N = PQ (P, Q prime), ZN can be classified into four classes:
- Z(1,1) = {x in ZN | (x/P) = 1, (x/Q) = 1}
- Z(1,-1) = {x in ZN | (x/P) = 1, (x/Q) = -1}
- Z(-1,1) = {x in ZN | (x/P) = -1, (x/Q) = 1}
- Z(-1,-1) = {x in ZN | (x/P) = -1, (x/Q) = -1}
- Z(1,1) is QRN, the other classes form QNRN.
- Proposition 1: Let N be a Blum integer and x in QRN. Then, for any t >= 1, there are values y1,y2,y3,y4 s.t. yi2^t = x (mod N) and y1 in Z(1,1), y2 in Z(-1,1), y3 in Z(1,-1), y4 in Z(-1,-1). Moreover, y1 = -y4 (mod N), y2 = -y3 (mod N), (y1/N) = (y4/N) = 1 and (y2/N) = (y3/N) = -1.
- x1/2^t mod N can be computed in expected polynomial time from x, P, Q.
- (y/N) can be computed efficiently from y and N.
- computing x1/2^t mod N from x and N is as difficult as factoring N.
- Proposition 2: Let N = PQ be a Williams integer. Then, for any x in ZN, one of x, -x, 2x and -2x is in QRN while the others are in QNRN.
- Notation (N is a Williams integer, x in QRN and z in ZN):
- [x1/2^t mod N]QR = y, s.t. y2^t = x mod N and y in QRN.
- [x1/2^t mod N]1 = y, s.t. y2^t = x mod N, (y/N) = 1, 0 < y < N/2.
- [x1/2^t mod N]-1 = y, s.t. y2^t = x mod N (y/N) = -1, 0 < y < N/2.
- <z>QR = dz mod N, s.t. d in {+1, -1, +2, -2} and dz mod N in QRN.
- <z>1 = dz mod N, s.t. d in {+1, +2} and (dz/N) = 1.
- <z>-1 = dz mod N, s.t. d in {+1, +2} and (dz/N) = -1.
- Hierarchical Structure Table
- Allows an issued electronic bill C to be subdivided into many pieces s.t.each piece is worth any desired value less than C and the total value of all pieces is C.
- A complete binary tree of t levels with values stored at nodes.
- Restrictions:
- The value of a node is the sum of the values of the direct descendants.
- When a node (the corresponding value) is used, all descendants and ancestors cannot be used (are disabled).
- No node can be used more than once.
$100
O
-------/ \---------
/ \
$50 O O $50
------/ \----- -----/ \------
/ \ / \
O O O O
$25 $25 $25 $25
Basic Scheme
- Assumptions
- Bank A, customer (payer) P, merchant (vendor) V.
- A generates RSA keys for blind digital signatures:
- (eA,nA;dA) for the electronic license that A issues;
- (eA',nA';dA'), (eA'',nA'';dA''), ... for the values of the electronic bills issued (e.g. $100, $500, etc.).
- A sets the value of the security parameter K = O(|nA|) = O(|nA'|) = ... (e.g. K = 40).
- A publishes three randomized hash functions: fG, fL and fO.
- P has a bank account number IDP and generates the RSA key (eP,nP;dP) for digital signatures.
- The Protocol
- Part I: P opens an account with A and gets the electronic license B = {Bi | 1 <= i <= K/2}.
- P chooses random values ai and Williams integers Ni = PiQi, i = 1 .. K.
- P sends K blind candidates Wi to A (ri are random integers in ZnA and g is a one-way hash function):
- Si = IDP || ai || (g(IDP || ai))dp mod np = S1,i || S2,i
- I1,i = S1,i2 mod Ni, I2,i = S2,i2 mod Ni, Ii = I1,i || I2,i
- Wi = rieA g(Ii || Ni) mod nA
- A chooses a random subset of K/2 blind candidates (assume Wi, i = K/2+1 .. K).
- P shows A the ai, Pi, Qi, (g(IDP || ai))dp mod np, IDP, ri for those candidates.
K/2
- A gives P ( II Wi)dA mod nA.
i = 1 K/2
- P can extract the electronic license B = ( II g(Ii || Ni))dA mod nA.
i = 1
- Part II: P gets money from A (e.g. $100).
- P chooses a random value b, sends Z to A, Z = reA' g(B || b) mod nA', (r in ZnA', random).
- A gives ZdA' mod nA' back to P and charges P's account $100.
- P can extract the electronic bill C = (g(B || b))dA' mod nA'.
- Part III: P pays shop V a certain amount (e.g. $75).
- Preliminary step: P computes Gi,0 (i = 1 .. K/2) as Gi,0 = <fG(C || 0 || Ni)>QR.
- To pay V $75, P computes Xi,00 ($50) and Xi,010 ($25) as:
- Xi,00 = [Gi,001/2 mod Ni]-1 = [Gi,01/4 mod Ni]-1
- Xi,010 = [Gi,0101/2 mod Ni]-1 = [(Oi,02 Gi,0)1/8 mod Ni]-1, where Oi,0 = <fO(C || 0 || Ni)>1.
Gi,0
1 O Oi,0
-------/ \---------
/ \Gi,00 = Gi,01/2 O O Gi,01 = Oi,0Gi,01/2
------/ \----- -----/ \------
1 / Oi,00 \ / 1 \ Oi,01
O O O OGi,000 Gi,001 Gi,010 Gi,011
|| || || ||
Gi,001/2 Oi,00Gi,001/2 Gi,011/2 Oi,01Gi,011/2
- P sends V: (Ii, Ni, Xi,00, Xi,010), (i = 1 .. K/2) and (B, C).
- V verifies the validity of signatures B for {(Ii, Ni)}, and C for B.
- V computes Oi,0, fG(C || 0 || Ni), the verifies the validity of Xi,00, Xi,010 (di in {+1, -1, +2, -2}):
- (Xi,00/Ni) = (Xi,010/Ni) = -1
- Xi,004 = difG(C || 0 || Ni) mod Ni
- Xi,0108 = diOi,02fG(C || 0 || Ni) mod Ni
- If valid, V selects random bits Ei,00, Ei,010 and sends them to P.
- P computes Yi,00 and Yi,010 and gives them to V:
- Li,00 = <fL(C || 00 || Ni)>QR
- Li,010 = <fL(C || 010 || Ni)>QR
- Yi,00 = [L i,001/2mod Ni]((-1)Ei,00)
- Yi,010 = [Li,0101/2 mod Ni]((-1)Ei,010)
- V verifies Yi,00 and Yi,010; if valid V accepts payment (di', di'' in {+1, -1, +2, -2}):
- (Yi,00/Ni) = (-1) Ei,00, (Yi,010/Ni) = (-1)Ei,010
- Yi,002 = di'fL(C || 00 || Ni) mod Ni
- Yi,0102 = di''fL(C || 010 || Ni) mod Ni
- Part IV: A credits V's account the appropriate amount ($75).
- V sends the history of PART III, H, to A.
- A checks the validity of H; if invalid, secret information Si of customer P is revealed.
- If valid, A credits V's account.
- Correctness
- Independence
- Off-line payment
- Privacy (Untraceability) - if customer follows protocol accurately, even A + V cannot get any knowledge about P.
- Dividability - insurred by the Hierarchical Structure Table(s).
- Security:
- Relies on dificulty of factoring.
- The Hierarchical Structure Table's restrictions are securely realized.
- The O function is important.
Transferable Cash Protocol
- PART I: customers P1 and P2 open accounts at bank A and get licenses B(j), j = (1,2).
- PART II: P1 gets a $100 electronic bill C from A.
- PART III: P1 transfers P2 the bill:
- P2 takes the role of V and P1 pays "shop" P2 $25 (corresponding to node G011) as in PART III above.
- P1 sends certification T denoting the transfer of C from P1 to P2 (e.g. T = (<g(C || 011 || B(2)>QR)1/2 mod N1(1).
- PART IV: P2 pays shop V $25:
- P2 sends history of the P1 -> P2 transfer H(1) to V; V checks validity.
- P2 follows PART III of the basic protocol with shop V to pay C (P2 sends messages for nodes G011(2) and L011(2).
- PART V: bank A credits V's account $25 after verifying (and storing) history H(2) of PART IV above.
Performance
- Assuming K = 40, |Ni| = 64 bytes, Hierarchical Structure Table with 17 levels, bills issued in $1000 denominations:
- C can be stored using 64 bytes.
- B uses several KB.
- For a payment of $334.36 the smart card transmits 20 KB, computation time is seconds.
- Easy to implement in smart cards.
References
- T. Okamoto and K.Ohta, "Universal Electronic Cash", Advances in Cryptology -- CRYPTO '91 Proceedings, Springer-Verlag 1992, pp. 324-337.
- T. Okamoto and K.Ohta, "Disposable Zero-Knowledge Authentications and Their Applications to Untraceable Cash", Advances in Cryptology -- CRYPTO '89 Proceedings, Springer-Verlag 1990, pp. 481-496.
- D. Chaum, A. Fiat and M. Naor, "Untraceable Electronic Cash", Proceedings of CRYPTO '88, pp. 319-327.
- M.O. Rabin, "Digitized Signatures and Public-Key Functions as Intractable as Factorization", Tech. Rep., MIT/LCS/TR-212, MIT Lab. Comp. Sci., (1979).
- H.C. Williams, "A Modification of the RSA Public-Key Encryption Procedure", IEEE Trans, on Information Theory, Vol IT-26, No.6, pp. 726-729 (1980).