Boolean Circuit using NTL library -- 2

已关闭 已发布的 Nov 13, 2014 货到付款
已关闭 货到付款

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++编程 数学 软件构架

项目ID: #6728431

关于项目

3个方案 远程项目 活跃的Dec 20, 2014

有3名威客正在参与此工作的竞标,均价$177/小时

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. 更多

$210 USD 在3天内
(22条评论)
5.0
iWillSolutions

A proposal has not yet been provided

$100 USD 在15天内
(1条评论)
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 在3天内
(0条评论)
0.0