# Writing Zero knowledge proofs in practice for proving values returned over HTTPS

EDIT: At a high level I am trying to create a scheme where Alice can prove to Bob that some external site has a certain piece of data (say her Bank account has balance > X) . She does not want to give Bob access to her account, but wants to prove that her bank website returns a certain result without showing it... basically I'm trying to build a system to authenticate and verify data from arbitrary HTTPS servers to someone that should not be granted access to the actual account or contents. I've come up with the following scheme:

$$Alice$$ requests some data over HTTPS from Google ($$G$$), she encrypts her cipher parameters $$s$$ using $$G$$'s public key $$P_g$$ and sends $$P_g(s)$$ to $$G$$. $$G$$ encrypts the returned data $$d$$ with the cipher $$C$$, using parameters $$s$$ returning $$C(d,s)$$ to $$Alice$$. Let's assume $$d$$ is just some number $$x$$.

$$Alice$$ then sends $$Bob$$ her cipher parameters encrypted with Googles public key: $$P_g(s)$$, and $$C(d,s)$$. Now $$Bob$$ can send $$P_g(s)$$ to $$G$$ and confirm that $$G$$ indeed returns $$C(d,s)$$. This can be done without $$Bob$$ knowing $$s$$.

Now $$Alice$$ would like to provide a proof to $$Bob$$ that $$d=x$$. For demonstrations sake let's assume that $$C$$ is RC4.

It seems like this could be done with zero knowledge proofs? Basically RC4 is a function being applied to a value and $$Alice$$ knows the exact structure of the function.

Can someone guide me towards how I would implement it for the above algorithms (RC4)

• Consider writing a simpler question that states your objective without being prescriptive about a particular approach. You may find that there is a much easier way to achieve your objective without adhering to your partially proposed solution. Commented Sep 9, 2022 at 17:52
• I edited the question to be clearer about my end goals Commented Sep 10, 2022 at 0:12
• So you want to be able to prove to Bob that Alice is able to generate $f(x)$ where $f$ is a function provided by some server, and $x$ is some input Alice has provided? In other words you want to prove $f(x)$ was generated using an $x$ that Alice and Bob know, without revealing $f$ to Bob? Would this accurately describe your question? Commented Sep 10, 2022 at 3:17
• Basically yes, Let's say x is Alice's bank balance. Alice is fine with Bob requesting the encrypted contents of her bank account from her Bank website -- so she sends Bob TLS parameters encrypted by the Banks public key. Now that Bob has the cipher text sent by the bank, how can Alice prove the cipher text contains the number x. Commented Sep 10, 2022 at 4:47
• In an ideal world, the bank would just provide a signed message that says "Alice's bank balance is n dollars at timestamp t", and Alice could just share that signed message with other people. But, if the bank does not provide that functionality, I think you're asking whether you can use the traffic that occurred during your HTTPS session with the bank's web site to prove that the bank advised you of a certain balance? Commented Sep 10, 2022 at 5:19