Boolean Circuit using NTL library -- 2

Closed Posted Nov 13, 2014 Paid on delivery
Closed Paid on delivery

NOTE: during the work I'll be available online for questions and help.

1. {EASY} Write a c++ class (called BooleanCircuit) that represent a boolean circuit ([url removed, login to view]) with 2-inputs and 1-output per gate. The class initialized with a file_path that contains the boolean circuit description.

The format is in the "boolean circuit format and example" folder in the zip (there is a description of a circuit that computes AES encryption as a test example also in the folder).

An example of an implementation of boolean circuit in java is in in "boolean circuit java" folder in the zip, you can use it as a reference.

We denote by W the number of wires in the circuit, and by n*ell the number of all circuit-input-wires, and by 'ell' the number of circuit-input-wire of every player.

2.{EASY} Write a server (in c++) that (a)take as input: boolean_circuit_file_path, int k. (b)create class BooleanCircuit initialized with that path. (c)the format of the boolean circuit specify how many players are involved, let the number be N, thus, the server listens to some fixed tcp port, and wait till it get messages from N different players (a timeout might be set so it wont wait forever). The messages that each player (client) sends to the server include the client number (integer from 1...N) and a bit array which consist of 2kW+2xW+(W-n*ell)+ell. For example if we have 10 wires in the circuit (W=11), 5 players (n=3) such that every player gives 2 inputs to the circuit (ell=2, ell*n=6) and k=32 (bits), x=64 (k and x are parameters that can be adjusted) then each client will send to the server 2119 bits (or 2120 bits (265 bytes) in this case so it will be aligned to a whole byte).

3. {Contact me when you get here} In this step we use an open source mathematical c++ library called NTL (number theory library). I attach the lib (static library) file to "calculation" folder in the zip. and the link to the open source is [url removed, login to view] The first 2*k + 2*x bits that the server got from player 1 are associated with wire 0 of the circuit, (the first half called s_0^0 and the second half is s_1^0. each half is k+x bits. the k bits called "seed" and the next x bits called "extension") The second 2*k + 2*x bits that the server got from player 1 are associated with wire 0 of the circuit. The server computes the calculations described in the "calculation/[url removed, login to view]" in section "Offline Phase" (we need to talk at this point to make everything clear)

4. Writing a test for the above steps.

C++ Programming Mathematics Software Architecture

Project ID: #6728431

About the project

3 proposals Remote project Active Dec 20, 2014

3 freelancers are bidding on average $177 for this job

Yknox

Hello I'm interesting your project very well I'm a Good C/C++, Boolean, Algorithm expert. I m quite well experienced in these assignment jobs. Let's go ahead with me I want to service for you continously. More

$210 USD in 3 days
(22 Reviews)
5.0
iWillSolutions

A proposal has not yet been provided

$100 USD in 15 days
(1 Review)
1.8
blinpq

where are the zip files for the java code etc there is nothong shown in the description that is provided. thanks

$222 USD in 3 days
(0 Reviews)
0.0