| CPC H04L 9/3221 (2013.01) [H04L 9/008 (2013.01); H04L 9/3236 (2013.01)] | 15 Claims |

|
1. A method for generating a proof of a statement related to private data while maintaining security among mutually untrusting parties, the method comprising:
executing at a first computing device operating as a prover party:
securely storing the private data, wherein the private data is not provided to at least one of the verifier parties;
storing the statement, wherein the validity of the statement is capable of being encoded as satisfiability of an arithmetic circuit over a field;
computing a first vector A, wherein the first vector A comprises uniformly random first elements of an extension of the field;
computing a second vector B based on the private data, wherein the second vector B comprises intermediate circuit-wire values of the arithmetic circuit based on the statement, and wherein the intermediate circuit-wire values are elements of the field;
generating a message m1 representing a commitment to the first vector A and the second vector B;
computing a value alpha as a result of a collision resistant hash function applied to the message m1;
wherein the first vector A and second vector B correspond to prover-input vectors of a line-point zero knowledge (LPZK) proof system and the value alpha corresponds to a verifier-input random value of the LPZK proof system, wherein the LPZK proof system is configured to generate a line-point evaluation output vector based on the first vector A, the second vector B, and the value alpha, and to output a polynomial-relationship satisfied or unsatisfied state, wherein the state is based on the line-point evaluation output vector;
generating a message m2 comprising a third vector, wherein the third vector is the line-point evaluation output vector of the LPZK proof system;
generating a message m3 representing a zero knowledge proof of knowledge that the first computing device correctly calculated the message m1, the value alpha, and the message m2, based on the first vector A and the second vector B; and
storing the messages m1, m2, and m3 on a computerized storage device, such that they are electronically accessible to one or more of the verifier parties by a network device, as a proof that the statement is valid.
|