POLYLITHIC SYNTAX ZERO KNOWLEDGE JOINT PROOF METHOD, APPARATUS AND SYSTEM
20240154812 ยท 2024-05-09
Assignee
Inventors
Cpc classification
H04L2209/46
ELECTRICITY
International classification
H04L9/32
ELECTRICITY
Abstract
A method, apparatus and system for implementing zero-knowledge proofs is provided. Partitioned garbled circuits are used to achieve a joint zero-knowledge proof system with full syntax verification. A polylithic syntax is used for handling complex semantics involving more than one statement to be proved and verified. Multiple verifiers can participate in a coordinated manner to perform the verification. Different verifiers can perform different parts of the verification.
Claims
1. A method for performing a zero knowledge proof, the method comprising: by a prover: performing a polylithic syntax decomposition on a statement to be proven; generating a garbled circuit indicative of the statement following polylithic syntax decomposition; partitioning the garbled circuit into a plurality of garbled circuit portions which collectively form a partitioned garbled circuit; transmitting the partitioned garbled circuit, via a shared repository, toward multiple verifiers; by the multiple verifiers: jointly computing a digest of the garbled circuit, wherein each one of the multiple verifiers computes outputs of a corresponding one of the plurality of garbled circuit portions; by an aggregator belonging to the multiple verifiers: computing a value of a unified Boolean operation applied collectively to all of said outputs of the plurality of garbled circuit portions; and by the aggregator: determining whether the value of the unified Boolean operation is equal to an expected value and indicating that the proof is verified if and only if the value of the unified Boolean operation is equal to the expected value.
2. The method of claim 1, wherein the statement has multiple aspects or variables, and wherein the polylithic syntax decomposition comprises generating a Boolean circuit representation of the statement using multiple wires and multiple gates, the garbled circuit being generated from said Boolean circuit representation.
3. The method of claim 1, further comprising converting the statement into one or more regular expressions, and generating a Boolean circuit representation from said regular expressions, the garbled circuit being generated directly or indirectly from said Boolean circuit representation.
4. The method of claim 3, further comprising implementing a Karnaugh Map operation on the Boolean circuit representation to produce a simplified version of the Boolean circuit representation, the garbled circuit being generated directly or indirectly from the simplified version of the Boolean circuit representation.
5. The method of claim 1, wherein transmitting the partitioned garbled circuit toward multiple verifiers is performed using a non-interactive oblivious transfer.
6. A system comprising: a prover computing device configured to: perform a polylithic syntax decomposition on a statement to be proven; generate a garbled circuit indicative of the statement following polylithic syntax decomposition; partition the garbled circuit into a plurality of garbled circuit portions which collectively form a partitioned garbled circuit; transmit the partitioned garbled circuit, via a shared repository, toward multiple verifier devices; said multiple verifier computing devices, configured to: jointly compute a digest of the garbled circuit, wherein each one of the multiple verifier devices computes outputs of a corresponding one of the plurality of garbled circuit portions; by an aggregator device belonging to the multiple verifier devices: compute a value of a unified Boolean operation applied collectively to all of said outputs of the plurality of garbled circuit portions; and by the aggregator device: determine whether the value of the unified Boolean operation is equal to an expected value and indicate that the proof is verified if and only if the value of the unified Boolean operation is equal to the expected value.
7. The system of claim 6, wherein the statement has multiple aspects or variables, and wherein the polylithic syntax decomposition comprises generating a Boolean circuit representation of the statement using multiple wires and multiple gates, the garbled circuit being generated from said Boolean circuit representation.
8. The system of claim 6, wherein the prover device is further configured to: convert the statement into one or more regular expressions; and generate a Boolean circuit representation from said regular expressions, the garbled circuit being generated directly or indirectly from said Boolean circuit representation.
9. The system of claim 8, wherein the prover device is further configured to implement a Karnaugh Map operation on the Boolean circuit representation to produce a simplified version of the Boolean circuit representation, the garbled circuit being generated directly or indirectly from the simplified version of the Boolean circuit representation.
10. The system of claim 6, wherein the prover device is configured to transmit the partitioned garbled circuit toward the multiple verifier devices using a non-interactive oblivious transfer.
11. The system of claim 6, wherein the prover device and the verifier devices, multiple verifier devices, or both, are configured to perform a multiparty oblivious transfer scheme to facilitate interaction therebetween.
12. A method for performing a zero knowledge proof, the method comprising: by a prover: performing a polylithic syntax decomposition on a statement to be proven; generating a garbled circuit indicative of the statement following polylithic syntax decomposition; partitioning the garbled circuit into a plurality of garbled circuit portions which collectively form a partitioned garbled circuit; transmitting the partitioned garbled circuit, via a shared repository, toward multiple verifiers.
13. The method of claim 12, wherein the statement has multiple aspects or variables, and wherein the polylithic syntax decomposition comprises generating a Boolean circuit representation of the statement using multiple wires and multiple gates, the garbled circuit being generated from said Boolean circuit representation.
14. The method of claim 12, further comprising converting the statement into one or more regular expressions, and generating a Boolean circuit representation from said regular expressions, the garbled circuit being generated directly or indirectly from said Boolean circuit representation.
15. The method of claim 14, further comprising implementing a Karnaugh Map operation on the Boolean circuit representation to produce a simplified version of the Boolean circuit representation, the garbled circuit being generated directly or indirectly from the simplified version of the Boolean circuit representation.
16. The method of claim 12, wherein transmitting the partitioned garbled circuit toward the multiple verifiers is performed using a non-interactive oblivious transfer.
17. The method of claim 12, further comprising performing a multiparty oblivious transfer scheme to facilitate interaction between the prover and the verifiers.
18. A method for performing a zero knowledge proof, the method comprising: by a verifier: receiving a partitioned garbled circuit from a prover, via a shared repository; cooperating with one or more other verifiers to jointly compute a digest of the garbled circuit, wherein the verifier and one or more other verifiers each computes respective outputs of a corresponding one of the plurality of garbled circuit portions; wherein the verifier or an aggregator belonging to the multiple verifiers: computes a value of a unified Boolean operation applied collectively to all of said outputs of the plurality of garbled circuit portions; and determines whether the value of the unified Boolean operation is equal to an expected value and indicate that the proof is verified if and only if the value of the unified Boolean operation is equal to the expected value.
19. The method of claim 18, further comprising performing a multiparty oblivious transfer scheme to facilitate interaction between the prover device and the verifier, or between the multiple verifiers, or both.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0024]
[0025]
[0026]
[0027]
[0028]
[0029]
[0030]
[0031]
[0032]
[0033]
[0034] It will be noted that throughout the appended drawings, like features are identified by like reference numerals.
DETAILED DESCRIPTION
[0035] According to embodiments of the present disclosure, there is provided a zero knowledge proof method, apparatus and system. Such method, apparatus and system can be regarded as cryptographic in nature.
[0036] Embodiments of the present disclosure can provide for significantly strong privacy assurance with a full syntax verification capability. Accordingly, multiple variables (also referred to as aspects) within a statement (e.g. NP statement) can be substantially verified, substantially without revealing the true values of the variables. This relates to a polylithic property of the embodiments. Accordingly, such embodiments can be utilized in applications such as contract verification, auditing, etc. For example, a statement indicative of multiple items in a contract or multiple actions in a list of actions can be made and verified. Some embodiments can be implemented in a blockchain. For example, embodiments can be deployed within a blockchain system as a plug-in module providing a zero knowledge proof service. In such embodiments, multiple verifiers (e.g. anonymous verifiers) can jointly provide the zero knowledge proof.
[0037] Embodiments of the present disclosure pertain to how to use partitioned garbled circuits to achieve a joint zero-knowledge proof system. Such embodiments potentially have less overhead than some prior systems, full syntax verification, or both. Embodiments of the present disclosure which are based on partitioned garbled circuits may potentially be versatile and single-use, meaning they can be applied to arbitrary circuits with more comprehensive statements, and they can achieve non-interactivity among all participants. Non-interactivity may refer to a situation in which the participants are not in direct communication (e.g. via a handshake protocol) but rather parties exchange information through an intermediary, such as a public information repository (e.g. a computer Web server). At least one embodiment may be used for creating partitioned garbled circuits to match comprehensive Boolean logical expressions with multiple variables. The term polylithic syntax is used to refer to the context based multiple variables in a comprehensive statement. A joint zero knowledge proof protocol that uses partitioned garbled circuits is also disclosed. Different variations of the protocol are analyzed and compared to state-of-the-art protocols.
[0038] Embodiments of the present disclosure involve a group of verifiers which jointly compute a succinct digest of a garbled circuit C. The group of verifiers can be a cluster of verifiers communicating over a network such as the Internet. The group of verifiers can be anonymous. The garbled circuit C is prepared by a prover. The prover may also partition the garbled circuit C. The prover may also dispatch (e.g. randomly) the garbled circuit to a shared repository. The shared repository may be publicly accessible. In some embodiments the shared repository may be implemented as a blockchain. In some embodiments, the shared repository may be implemented as a Web portal. As used herein, randomness may refer to pseudo-randomness or true (as much as is technically possible) randomness. The prover (Alice) may scramble a circuit using randomness, and random dispatching of the garbled circuit may refer to posting the randomly scrambled circuit to the shared repository.
[0039] The prover and the verifiers can be, or can be associated with, different computing devices which are communicatively coupled via a communication network. In this regard, the prover can be a prover computing device, or prover networked computing device, and a verifier can be a verifier computing device, or verifier networked computing device. The computing devices can include one or more computer processors operatively coupled to memory, which may be magnetic, electronic or optical memory, for example. The computing devices can further include a communication interface for transmitting, receiving, or both transmitting and receiving information (e.g. as electrical, radio or optical signals) via a communication network. The memory stores program instructions for execution by the processor, and may also store information associated with the zero knowledge proof operations. Alternatively, the program instructions and information associated with the zero knowledge proof operations can be stored in separate memories of a computing device.
[0040] Embodiments of the present disclosure may provide for a public verification system which may be more comprehensive than those systems currently available. The verification system may be capable of validating more complex statements than currently possible, in view of the fact that prior technologies in this area are limited to conducting monolithic verifications. For example, in a monolithic verification, only a single hashed value in an arithmetic circuit can be verified at a time. Furthermore, embodiments of the present disclosure may substantially achieve substantially full privacy preserving computation (encrypted computation) based on oblivious transfer (OT) and garbled circuit approaches.
[0041] Accordingly, embodiments of the present disclosure may efficiently produce multi-party zero knowledge proofs based on a garbled circuit regime. Embodiments may also maintain what are deemed to be important features of an online zero knowledge proof system, for example being essentially non-interactive and succinct, and publishing to a blockchain to provide publicly retrievable information. This may be particularly applicable to providing a shield auditing service for example as used in blockchain technologies.
[0042] Various terms as used herein will be readily understood by a person skilled in the art having regard for example to zero knowledge proofs. For example, a garbled circuit refers to a cryptographic protocol, typically credited to Yao in How to generate and exchange secrets, Yao, Andrew Chi-Chih, 27th Annual Symposium on Foundations of Computer Science (SFCS 1986), Foundations of Computer Science, 1986, 27th Annual Symposium on. pp. 162-167. Karnaugh maps are a well-known method implemented in circuit optimization. Garbled circuits and related circuits refer to logical data constructs rather than physical electrical circuits. Oblivious transfer is another cryptographic protocol which is known in the art. Functions may be understood to be functional aspects of a computer. That is, functions correspond to an aspect of a computer device which is configured, for example through computer program instructions, to produce output in a prescribed manner from a given input.
[0043] As will be readily understood, a garbled circuit is a tool used to encrypt a computation, that reveals only the output of the computation, but reveals nothing about the inputs or any intermediate values. The circuit is referred to a combination of logical operations on inputs, and the syntax is expressed as a Boolean circuit, with the Boolean gates, such as (AND, OR, NOT) gates in the circuit. An example of a logical circuit is as follows. A classical Yao's garbling scheme includes a Garbler, Encoder and Verifier. The garbler converts a (plain) circuit C into a garbled circuit ?. The encoder converts a (plain) input x for the circuit into a garbled input {circumflex over (x)}. The secret randomness that was used to garble the circuit is used to encode x into {circumflex over (x)}. The verifier operates on a garbled circuit ? and garbled input {circumflex over (x)} and computes the circuit output C(x). It is not necessary to know x or the secret randomness inside ? to evaluate and determine C(x). The main idea of security is that ? and {circumflex over (x)} together leak no more information than C(x). In particular, ? and {circumflex over (x)} ideally reveal nothing about x, yet they allow the computation C(x) to be completed. This approach is often referred as Encrypted Computation.
[0044]
[0045] According to
[0046]
[0047] It is noted that embodiments of the present disclosure, for example as illustrated in
[0048] Embodiments of the present disclosure allow a cluster of verifiers, online anonymously and jointly, to compute a succinct digest of a garbled circuit C which is prepared by a prover. The succinct digest comprises a short indication, such as a single-bit binary output (e.g. 0 or 1.) The prover may also practice the partitioning of the garbled circuit and randomly dispatch the partitioned garbled circuit to a publicly accessible repository, e.g. a blockchain, or a web portal. This may provide for a more comprehensive public verification system which can validate more complex statements, compared with other technologies which can only conduct a monolithic verification. A monolithic verification can only compute a single hashed value in an arithmetic circuit at a time. Embodiments may also achieve substantially full privacy preserving computation (encrypted computation) based on OT and Garbled Circuits.
[0049] For security evaluation, embodiments can obtain the privacy against a semi-honest threat model. This can be formalized using a generalized Fiat-Shamir's secret sharing scheme (Fiat A., Shamir A. (1987) How To Prove Yourself: Practical Solutions to Identification and Signature Problems. In: Odlyzko A. M. (eds) Advances in CryptologyCRYPTO' 86. CRYPTO 1986. Lecture Notes in Computer Science, vol 263. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-47721-7_12), which defines a t-secure n-party protocol and packs l secrets into a single polynomial. One can run a joint computation for all inputs by sending a constant number of field elements to the prover. As a result of packing l secrets into a single polynomial, the security bound t of embodiments of the present disclosure can be reduced, with multiple verifiers as
to t=t?l+1.
[0050] In various embodiments, OT is used to facilitate protection against potentially semi-honest (and thus semi-dishonest) participants. Various embodiments can achieve computational efficiency with one or both of the following two refinements. First, a Karnaugh Map technique is employed to reduce the logical gates numbers with simplified expression. Second, the garbled circuit is generated with partitions by (e.g. tightly) integrating the verification procedure with a multiparty OT scheme. This may reduce computational costs on the verifiers' side compared with other approaches. The security definition and efficiency requirement may imply that the Hash algorithm used to compute the succinct digest is collision resistant. Thus, the hash functions are typically keyed and may be keyed by a common reference string.
[0051]
[0052] The circuit C can be considered a garbled circuit evaluation problem. In this problem, the prover Alice constructs a circuit C, consisting of Boolean gates operations over finite field GF(2), which is the Galois field of two elements. Generally, the circuit C can be partitioned with degree m with the input vector X. The circuit C therefore can be represented with a vector C: (C.sub.1, C.sub.2, . . . ).sup.m. As used herein, superscripts following parentheses typically represent length of a vector or corresponding circuit. The evaluation goal is to evaluate C on inputs X. In a non-interactive proof for this problem, the prover sends the outputs vector Y: (Y.sub.1, Y.sub.2, . . . ) of C on input X, and the verifiers are to determine whether Y=C(X).
[0053] Referring back to
[0054] The garbled circuit generation module 120 can be functionally regarded as performing an operation (C.sub.1, C.sub.2, . . . ).sup.m?xgcGen(C). The module 120 takes the Boolean gates-based expression C as input and outputs an enumerated length of m garbled circuits (C.sub.1, C.sub.2, . . . ), using native garbled circuit generator operations.
[0055] The multi-party non-interactive oblivious transfer module 130 can be functionally regarded as performing an operation Y?OT?aggregator(Y.sub.1, Y.sub.2, . . . ).sup.m. The module 130 takes inputs from the outputs of the partitioned garbled circuits (Y.sub.1, Y.sub.2, . . . ).sup.m?1 and produces an aggregated output Y. That is, the module 130 operates on outputs of the partitioned garbled circuits. A verification operation can be performed (e.g. by module 130) to verify if Y is equal to the expected output for the extended garbled circuit operation, denoted xgc. That is:
[0056] Embodiments of the present disclosure employ a universal hashing operation, denoted x.sub.i?h(S.sub.i). The universal hashing operation takes a common reference string (crs) S.sub.i as input and outputs a uniformly distributed digest using universal hashing function h.
[0057] Embodiments of the present disclosure employ an extended garbled circuit operation gc, denoted as gc=(Gb, En, De, Ev). Gb is a randomized garbling operation that transforms f into a triplet (C.sub.i, e.sub.i, d.sub.i) where C.sub.i is the i.sup.th partitioned garbled circuit, e.sub.i is the corresponding encoding information for circuit C.sub.i, and d.sub.i is the corresponding decoding information. En is an encoding operation that maps input X.sub.i into garbled input via X.sub.i=En(e.sub.i, x.sub.i). De is a decoding operation that maps garbled output Y.sub.i into plaintext output via y.sub.i=De(d.sub.i, Y.sub.i). Ev is an operation with inputs X.sub.i, F.sub.i which generates garbled output Y.sub.i=Ev(F.sub.i, X.sub.i).
[0058] Certain embodiments of the present disclosure can exhibit security properties of correctness and privacy. In some embodiments, correctness can be formally described as follows. For all common reference strings with input size , and all garbled circuits C.sub.i in C:
[0059] In some embodiments, privacy can formally be described as the property that, for any non-interactive multiple parties oblivious transfer protocol (S, R.sub.i) between a sender S and multiple receivers R.sub.i, the receiver R.sub.i does not learn any information on the input bits mapped to the corresponding circuit C.sub.i, except with a negligible probability, e.g. a probability on the order 1/ where
is the input size of the reference string.
Polylithic Syntax Decomposition Module
[0060] Certain details of the polylithic syntax decomposition module 110 will now be described. This module can operate to transform a full semantic statement from a prover into a polylithic syntax logical expression with Boolean operations. The module 110 reduces a full semantic statement to Boolean operations. The conversion can convert a complex input statement to an output in a manner which is suitable for efficiently constructing, from the output, Boolean-gate-based operations. The prover 140 possesses a composite statement to be verified, without revealing the actual value of the composite statement. The composite statement is converted, for example by the polylithic syntax decomposition module 110, into one or more regular expressions which represent a corresponding set of strings. Tools such as intrusion detection systems for example available at www.snort.org may be used. The polylithic syntax decomposition module 110, having generated these regular expressions, is configured to implement a regular expression matching operation. This operation is performed to detect a pattern (written by regular expressions) from the input strings.
[0061] An example of a composite statement is the simple sentence: The car only starts [if] the start button is pressed [and] the brake pedal is pressed. The underlined portions of the sentence between the square-bracketed terms [?] represent the variables S.sub.i to be verified in an operator vector O, and the square-bracketed terms [?] represent logical relationships between these variables S.sub.i. Compared with a monolithic native zero-knowledge proof system which can only process one variable at a time, embodiments of the present disclosure may operate to match the regular expression with patterns and construct corresponding circuits. A composite statement can be converted into a Boolean syntax having multiple variables and multiple Boolean operations, and the composite statement or Boolean syntax can be treated as a Boolean circuit. The Boolean circuit can then be partitioned to facilitate multiparty computation and subsequent multiparty verification.
[0062] The polylithic syntax decomposition module 110 may also be configured to implement a Karnaugh Map operation in order to reduce logical expression complexity. This can improve overall efficiency because the efficiency of embodiments of the present disclosure generally depends on complexity of the subject circuits being generated and handled. In some embodiments, there are less than or equal to six inputs in the input vector S.
[0063]
[0064] The operations in
[0065] Once the composite string is processed in this manner, a function Regexp( ) is applied to the outputs of the extractor and hashing operations shown. Regexp( ) is a generalized regular expression function which is configured to match the regular expression in strings with certain patterns and convert the parameters and patterns into a regular expression.
[0066] Output of the regular expression function is provided as input to a generalized conversion function CircuitGen( ). The generalized conversion function is configured to convert an input regular expression string into logical circuits (e.g. a Boolean circuit representation of the composite string).
[0067] Output of the generalized conversion function CircuitGen( ) is provided to a Karnaugh mapping function K-map( ). The Karnaugh mapping function is configured to reduce (where possible) logical gate complexity in a logical circuit provided thereto, in accordance with Karnaugh mapping principles. The Karnaugh mapping function provides the output circuit C of the polylithic syntax decomposition module 110.
Garbled Circuit Generation Module
[0068] Given a circuit C which represents a list of truth tables along the depth of the logical gate operations, embodiments of the present disclosure implement a garbled circuit scheme with non-interactive commitments, for example as described in The Curious Case of Non-Interactive Commitments, M. Mahmoody and R. Pass, Sep. 10, 2012, cs.cornell.edu. This can facilitate the verifiers in achieving desired correctness and privacy properties of a verification. Garbling schemes such as described in M. Bellare, V. T. Hoang, and P. Rogaway. Foundations of garbled circuits. In T. Yu, G. Danezis, and V. D. Gligor, editors, ACM CCS 12, pages 784-796. ACM Press, October 2012 can be employed. In some embodiments, where k denotes a security parameter, the correctness property of a garbling scheme is defined as:
De(d, Ev(C, En(e, x)))=c(x), ?(C, e, d)?support(Gc(1.sup.k, c)), x.
[0069] A Boolean circuit can be regarded as a Directed Acyclic Graph (DAG), i.e. a graph with no loops and edges each of which is directed from a source node to a destination node, with each node representing a unit of computation performing a specific operation op (e.g. AND/XOR). Moreover, all gates are fixed to have two input wires, a left wire and a right wire, which are denoted by l and r, respectively. A gate functions, when given a wire, to returns a bit value 0 or 1. The depth of a circuit is denoted by d, and its width is denoted by n. While there are many ways to represent a Boolean circuit, a one representation is as a d-by-n matrix M. In this representation, each layer i?(1, . . . d) of a circuit has a fixed width n, with each entry being a gate.
[0070] The garbled circuit generation module is implemented to perform a partitioned garbled circuit construction operation. The partitioned garbled circuit may be created on the basis of the previously generated polylithic syntax expression, and the garbled circuit with public cryptographic primitives may be prepared. In particular, a partition scheme is implemented which is suitable for use with multiple verifiers that interact using a multi-party OT verification protocol. Accordingly an xGC (partitioned garbled circuit) can properly partition a garbled circuit C into multiple independent garbled circuits, as represented by or as recorded in a vector C(C.sub.1, C.sub.2, . . . ). This can facilitate a secure division of information (e.g. a truth table or corresponding matrix) into multiple representations. Given a Yao's garbled circuit C with a matrix of inputs [x.sub.i] and the outputs [o.sub.i] within a truth table, embodiments securely divide the table into multiple representations of the truth table matrix T. This can make cryptographic proofs more suitable for multi-party verification. Accordingly, a Boolean circuit representing a composite statement may be partitioned, and the resulting circuits may be subjected to a garbling operation, for example to obscure true values of inputs.
[0071]
[0072] Referring to
[0073] According to the first garbled circuit construction step 420, for each input pair (x.sub.i, x.sub.j) where x.sub.i denotes the input from the prover, and x.sub.j denotes the input from the verifier, and for the wires and internal wires w of the circuit, a pair of keys (k.sub.w.sup.0, k.sub.w.sup.1) is assigned.
[0074] According to the second garbled circuit construction step 430, for each gate of the circuit, four ciphertexts, which encrypt the corresponding key associated with the output wire, are generated according to the truth table of the table T.
[0075] According to the third garbled circuit construction step 440, for each gate connected to an output wire of the circuit, a 0 or 1 is encrypted according to the same truth table as used in the Yao's garbled circuit scheme. (Encryption on Yao' s garbled circuit may be to obfuscate the output results by applying encryption algorithms, such as Advanced Encryption Standard (AES) algorithms.)
[0076] According to a first garbled circuit partitioning step 450, based on the Truth table T, the circuit matrix M is sliced (partitioned) horizontally to the penultimate gate (i.e. the m?1.sup.st gate (or circuit) before the last aggregating gates (or circuits)). The partitioning of garbled circuit is performed so as to maintain the integrity of inputs/outputs. In various embodiments, the partitioning may be implemented with an n to 1 fan-in to fan-out ratio. Specifically, such a scheme may require that the leftmost input gates are sliced per garbled logical gate, and after the first tier of inputs, the intermediate and last tier gates are aggregated into one garbled circuit.
[0077] An example of the partitioning of the gates is illustrated in
[0078] According to
[0079] According to a second garbled circuit partitioning step 460, the partitioned (sliced) garbled circuit (C.sub.1, C.sub.2, . . . C.sub.m) is added. The iterations of a garbled circuit protocol is then performed per circuit. A sub-step may further be performed as part of the partitioning step 460, in an iterative manner Alice (prover) runs a non-interactive multiple parties OT scheme for each partitioned circuit with multiple verifiers. This OT scheme may be performed offline. The OT scheme may be performed to obtain the partitioned garbled circuit verification Y.sub.i=C.sub.i(x.sub.i, x.sub.j), except for the last circuit C.sub.m.
[0080] For the last circuit C.sub.m, the multi-party non-interactive oblivious transfer module 130 may be employed. Such an employment may be used to obtain a combined oblivious transfer (OT) verification represented by:
[0081] In some embodiments, the above-mentioned non-interactive multiple parties OT transfer scheme, performed offline, can be described as follows, with respect to
Multi-Party Non-Interactive Oblivious Transfer
[0082] Following syntax decomposition and garbled circuit generation, an OT-aggregator OT protocol is implemented, for example using the multi-party non-interactive oblivious transfer module 130 for OT aggregation of
[0083] According to
[0084] In a next step, Alice 705 sends 766 the tuple (C.sub.m, d.sub.m, Y.sub.m) to the public repository 710, e.g. the DLT in a blockchain, or a Web portal. David 715 non-interactively obtains 770 the information from the public repository 710. David then creates a random bit x.sub.m.sup.m?(0,1). In another operation, David executes 774 the deterministic evaluation operation Ev(?), which outputs Y=Ev(C.sub.m, x.sub.m.sup.m). In a next step, David sends back 778 the output Y to Alice through the public repository 710. In a next step, Alice executes 782 the deterministic decoding operation De(?) to compute the output y=De(d.sub.m, Y), where d.sub.m denotes the decoding key. Concurrently, David also executes 786 the deterministic decoding operation De(?) to compute the output y=De(d.sub.m, Y). Next, both Alice and David check 790 whether y=f(m?x.sub.m.sup.m), where f(?) is the logical Boolean function before becoming a garbled circuit function C(?). If y=f(m?x.sub.m.sup.m), the OT aggregator protocol will accept the verification results. Otherwise, the verification result is not accepted, and Alice may abort the verification.
[0085] An overall method, apparatus and system according to embodiments of the present disclosure, including garbled circuits involves multiple functions involving an adaptation of Yao's garbled circuits algorithm.
[0086] According to various embodiments, the OT scheme can be performed based on an adaptation of a Bellare-Micali scheme (M. Bellare and S. Micali, Non-interactive oblivious transfer and applications, Proc. Advances in Cryptology-Crypto' 89, Springer-Verlag LNCS, 435 (1990), 547-557. The partitioned garbled circuit and the OT-aggregator may be based on an Oblivious Transfer scheme.
[0087] In more detail, and to illustrate in one embodiment, let G be a group of prime order p with generator g, let H be a hash function ?{0,1
which may be modeled as a random oracle. Let m.sub.0 and m.sub.1 be the sender's message and let b?{0,1} be the receiver's input. The OT protocol may be as follows. First, the sender S chooses c?
and sends c to the receiver R. Next, the receiver R chooses a random key k?
.sub.p and computes two public keys y.sub.b?g.sup.k and y.sub.1?b?c/g.sup.k, and sends y.sub.0, y.sub.1 to the sender.
[0088] Next, if y.sub.0.Math.y.sub.1?c, then the sender S (e.g. immediately) aborts. Otherwise, S chooses r.sub.0, r.sub.1?.sub.p and computes ciphertexts
The sender sends c.sub.0, c.sub.1 to the receiver R. Next, the receiver R parses the ciphertext c.sub.b=(v.sub.0, v.sub.1) and then decrypts using knowledge of k: m.sub.b=H(v.sub.0.sup.k)v.sub.1, and outputs m.sub.b.
[0089] As described above, embodiments of the present disclosure provide for a zero-knowledge proof method, apparatus and system which can handle complex semantics of more than one statement. Such embodiments can be applied for example in distributed computing environments, such as blockchain environments. Embodiments of the present disclosure provide for a privacy preserving online verification method, apparatus and system over blockchain. Embodiments are anticipated to be less overhead and practical to implement than some prior implementations, in terms of both communication overheads and computation overhead.
[0090] Embodiments of the present disclosure provide for a substantially full syntax verification which allows for polylithic verification. Embodiments may exhibit an improved garbled circuit. Embodiments may be implemented with little to no pre-trust setup required. Embodiments may potentially exhibit proof generation time and size which is linear to the input size O(n). Embodiments may provide for full syntax verification to accomplish more comprehensive tasks. Embodiments may provide for security soundness with provable security. Embodiments may be non-interactive in nature. Embodiments may facilitate substantially total privacy preservation with fully homeomorphic encryption (FHE) capability.
[0091] Embodiments of the present disclosure can potentially improve operations of a networked computing environment by providing a secure and trustable way to convey information between devices controlled by different entities. Additionally, the above-mentioned potential features of embodiments may also improve the network operations. Such embodiments facilitate a networking and communications integrity which improves overall networking and computing operations. Embodiments of the present disclosure involve a particular set of steps, performed by parties in a networked computing environment, which achieve a goal such as secure and trustable network communications. Several different computing devices receive data, process the data, and provide data as output (e.g. to another one of the computing devices) in furtherance of such a goal.
[0092]
[0093] As shown, the device 1100 may include a processor 1110, such as a Central Processing Unit (CPU) or specialized processors such as a Graphics Processing Unit (GPU) or other such processor unit, memory 1120, non-transitory mass storage 1130, input-output interface 1140, network interface 1150, and a transceiver 1160, all of which are communicatively coupled via bi-directional bus 1170. According to certain embodiments, any or all of the depicted elements may be utilized, or only a subset of the elements. Further, device 1100 may contain multiple instances of certain elements, such as multiple processors, memories, or transceivers. Also, elements of the hardware device may be directly coupled to other elements without the bi-directional bus. Additionally, or alternatively to a processor and memory, other electronics, such as integrated circuits, may be employed for performing the required logical operations.
[0094] The memory 1120 may include any type of non-transitory memory such as static random access memory (SRAM), dynamic random access memory (DRAM), synchronous DRAM (SDRAM), read-only memory (ROM), any combination of such, or the like. The mass storage element 1130 may include any type of non-transitory storage device, such as a solid state drive, hard disk drive, a magnetic disk drive, an optical disk drive, USB drive, or any computer program product configured to store data and machine executable program code. According to certain embodiments, the memory 1120 or mass storage 1130 may have recorded thereon statements and instructions executable by the processor 1110 for performing any of the aforementioned method operations described above.
[0095] Embodiments of the present disclosure can be implemented using electronics hardware, software, or a combination thereof. In some embodiments, the disclosure is implemented by one or multiple computer processors executing program instructions stored in memory. In some embodiments, the disclosure is implemented partially or fully in hardware, for example using one or more field programmable gate arrays (FPGAs) or application specific integrated circuits (ASICs) to rapidly perform processing operations.
[0096] It will be appreciated that, although specific embodiments of the disclosure have been described herein for purposes of illustration, various modifications may be made without departing from the scope of the disclosure. The specification and drawings are, accordingly, to be regarded simply as an illustration of the disclosure as defined by the appended claims, and are contemplated to cover any and all modifications, variations, combinations or equivalents that fall within the scope of the present disclosure. In particular, it is within the scope of the disclosure to provide a computer program product or program element, or a program storage or memory device such as a magnetic or optical wire, tape or disc, or the like, for storing signals readable by a machine, for controlling the operation of a computer according to the method of the disclosure and/or to structure some or all of its components in accordance with the system of the disclosure.
[0097] Acts associated with the method described herein can be implemented as coded instructions in a computer program product. In other words, the computer program product is a computer-readable medium upon which software code is recorded to execute the method when the computer program product is loaded into memory and executed on the microprocessor of the wireless communication device.
[0098] Further, each operation of the method may be executed on any computing device, such as a personal computer, server, PDA, or the like and pursuant to one or more, or a part of one or more, program elements, modules or objects generated from any programming language, such as C++, Java, or the like. In addition, each operation, or a file or object or the like implementing each said operation, may be executed by special purpose hardware or a circuit module designed for that purpose.
[0099] Through the descriptions of the preceding embodiments, the present disclosure may be implemented by using hardware only or by using software and a necessary universal hardware platform. Based on such understandings, the technical solution of the present disclosure may be embodied in the form of a software product. The software product may be stored in a non-volatile or non-transitory storage medium, which can be a compact disc read-only memory (CD-ROM), USB flash disk, or a removable hard disk. The software product includes a number of instructions that enable a computer device (personal computer, server, or network device) to execute the methods provided in the embodiments of the present disclosure. For example, such an execution may correspond to a simulation of the logical operations as described herein. The software product may additionally or alternatively include a number of instructions that enable a computer device to execute operations for configuring or programming a digital logic apparatus in accordance with embodiments of the present disclosure.
[0100] Although the present disclosure and invention(s) associated therewith have been described with reference to specific features and embodiments, it is evident that various modifications and combinations can be made thereto without departing from such invention(s). The specification and drawings are, accordingly, to be regarded simply as an illustration of embodiments of the disclosure, for example as defined by the appended claims, and are contemplated to cover any and all modifications, variations, combinations or equivalents that fall within the scope of the present disclosure and its invention(s).