iKP – A Family of Secure Electronic Payment Protocols
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
common price, IDM, TIDM, date, NM, CID, hash(desc, saltC)
clear IDM, TIDM, date, NM, hash(common)
SLIP price, hash(common), CAN, RC, [PIN]
C desc, CAN, PKCA, [PIN]
M desc, PKCA, CERTA
A SKA,
CERTA
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))
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))
C desc, CAN, PKCA
M desc, PKCA, CERTA, SKM, CERTM
A PKA, SKA, CERTA
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))
Same as 2KP plus
SigC SC(EA(SLIP), hash(common))
C desc, CAN, PKCA, SKC, CERTC
M & A same as 2KP
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))