iKP A Family of Secure Electronic Payment Protocols

 

Quantities for all iKP

TID Transaction ID

desc Goods description, delivery address, credit card name, bank id number, currency

CAN customer account number payment key, credit card number

CID customer psuedo-ID, CID = hash(RC, CAN)

Y/N yes or no, or authorization code

PIN customer to enhance security

V random number generated in 2KP, 3KP for proof that merchant accepted payment

[x] x is optional

EA() Public Encryption for A

SA() Private signing for A

SKA Signing key for A

PKA Public Encryption Key for A

 

1KP

 

Composite fields

common price, IDM, TIDM, date, NM, CID, hash(desc, saltC)

clear IDM, TIDM, date, NM, hash(common)

SLIP price, hash(common), CAN, RC, [PIN]

 

Starting info

C desc, CAN, PKCA, [PIN]

M desc, PKCA, CERTA

A SKA, CERTA

 

Protocol

Initiate: C -> M: saltC, CID

Invoice: M -> C: IDM, TIDM, date, NM, hash(common)

Payment: C -> M: EA(SLIP)

Auth-Request: M -> A: clear, hash(desc, saltC), EA(SLIP)

Auth-Response: A -> M: Y/N, SA(Y/N, hash(common))

Confirm: M -> A: Y/N, SA(Y/N, hash(common))

 

2KP

 

Composite fields

common price, IDM, TIDM, date, NM, CID, hash(desc, saltC), hash(V)

clear IDM, TIDM, date, NM, hash(V), hash(common)

SLIP price, hash(common), CAN, RC

SigM SM(hash(common), hash(v))

 

Starting info

C desc, CAN, PKCA

M desc, PKCA, CERTA, SKM, CERTM

A PKA, SKA, CERTA

 

Protocol

Initiate: C -> M: saltC, CID

Invoice: M -> C: IDM, TIDM, date, NM, hash(V), hash(common), SigM, CERTM

Payment: C -> M: EA(SLIP)

Auth-Request: M -> A: clear, hash(desc, saltC), EA(SLIP), SigM, CERTM

Auth-Response: A -> M: Y/N, SA(Y/N, hash(common))

Confirm: M -> A: Y/N, V, SA(Y/N, hash(common))

 

3KP

 

Composite fields

Same as 2KP plus

SigC SC(EA(SLIP), hash(common))

 

Starting info

C desc, CAN, PKCA, SKC, CERTC

M & A same as 2KP

 

Protocol

Initiate: C -> M: saltC, CID, CERTC

Invoice: M -> C: IDM, TIDM, date, NM, hash(V), hash(common), SigM

Payment: C -> M: EA(SLIP), SC(EA(SLIP), hash(common))

Auth-Request: M -> A: clear, hash(desc, saltC), EA(SLIP), SigM, SigC

Auth-Response: A -> M: Y/N, SA(Y/N, hash(common))

Confirm: M -> A: Y/N, V, SA(Y/N, hash(common))

References

Conference Paper iKP - A Family of Secure Electronic Payment Protocols by Mihir Bellare, Juan A. Garay, Ralf Hauser, Amire Herzberg, Hugo Krawczyk, Michael Steiner, Gene Tsudik, Michael Waidner Proceedings First USENIX Workshop on Electronic Commerce pp. 89-106, New York, NY, July 1995