CPC H04L 9/3218 (2013.01) [G07C 9/28 (2020.01); H04L 9/0866 (2013.01); H04L 9/3213 (2013.01)] | 18 Claims |
1. A computer implemented system for communicating data messages between a verifier computing device and a portable client computing device, the data messages establishing authentication of one or more characteristics of a client associated with the portable client computing device, the system comprising:
the portable client computing device including at least a client computing device processor and data storage, the data storage storing one or more token data objects received from or computed jointly in a multiparty protocol with an issuer computing device, the one or more token data objects generated using at least a issuer computing device private issuance key, the one or more token data objects each including one or more signed data elements representing at least one of the one or more characteristics of the client associated with the portable client computing device; and
the client computing device processor configured to receive a verification request data message from the verifier computing device and, using a combination of the one or more token data objects and the verification request data message, generate one or more proof data messages without sending any data messages or requests to the issuer computing device;
wherein the verification request data message includes at least a nonce c0; and
the client computing device processor is configured to:
compute t=x−1 mod p, where x is an attribute value from the one or more token data objects, and p is an order of the discrete log group; t is a modular inverse of x mod p;
uniformly sample a first random number r1 and a second random number, r2, such that r1, r2∈
![]() compute R=Cxr1hr2, where R is a commitment to random values r1 and r2, Cx is a commitment to attribute x, and h is a group generator;
compute c=H(Cx, R, c0), where c is a proof challenge, based at least on the Fiat-Shamir Heuristic;
compute z1=ct+r1 and z2=−cty+r2, where z1 and z2 are proof responses based on a Sigma protocol; and
encapsulate and transmit the one or more proof data messages including R, z1 and z2 as data objects to the verifier computing device, such that the verifier computing device is able to compute c=H(Cx, R, c0) and confirm that gcR=Cxz1hz2, the verifier computing device controlling provisioning of access to a secured resource responsive to the confirmation that gcR=Cxz1hz2.
|