Frequently Asked Questions about Sharemind
About the Sharemind virtual machine
About the SecreC programming language
About the science behind Sharemind
About the SecreC Software Development Kit
About the Sharemind virtual machine
Q: What does Sharemind do?
A: Sharemind is a virtual machine that can perform confidential and private computations so that even its hosts will not see the input data. It is suitable for use in systems with strong privacy requirements.
Q: What is needed to run Sharemind?
A: Three organizations must host a Sharemind miner server. Together, these three will form the Sharemind virtual machine. They will store data and perform computations on it.
Q: What is the security guarantee?
A: As long as the miner server hosts do not share the miner database with others and do not deviate from the protocols, we can guarantee that none of the miner hosts will learn any values entrusted to them. Sharemind is secure against curious insiders - even the server administrators cannot see the data.
Q: How do you get data into Sharemind
A: Data can be entered or imported by client applications who share it between the three miners using the tools provided by Sharemind. Only the person providing the data will see the original values, because the miners will only see random-looking values.
Q: How do you make computations on this data?
A: We use special communication protocols that can perform computations on privately stored data. We provide the same security guarantees for the results of private computations as we provide for input data.
Q: How do you get results from Sharemind?
A: When the miners have computed the results in private, they will disclose their pieces of the answer to a client application. This client application can reconstruct the final answer from these pieces.
About the SecreC programming language
Q: What is SecreC?
A: SecreC is a programming language that separates public and private data. It can be used for creating applications that need to process confidential data.
Q: Can I use SecreC in practice?
A: Yes. There is a compiler that translates SecreC programs into Sharemind machine code. Sharemind can execute SecreC programs and process private data with good security guarantees.
Q: Are there any developer tools and documentation?
A: Yes. The SecreC SDK contains a development environment with code editing, compilation and debugging support. Built-in references for both the Sharemind machine code and SecreC explain how the language can be used. This website has a tutorials section that accumulates helpful tutorials for working with SecreC.
About the science behind Sharemind
Q: I am a cryptographer. How does Sharemind work?
A: Sharemind uses a secure multi-party computation protocol suite based on the additive secret sharing scheme. The protocol suite is proven to be perfectly secure in the passive adversary model. We assume that at least half of the parties are honest and we provide information theoretic security for most of the protocols.
Q: How did you build the virtual machine?
A: The protocol suite is universally composable, allowing us to run the secure multi-party computation protocols both sequentially and in parallel without leaking shares. The virtual machine schedules protocol executions as required by the machine code.
Q: Can I read the papers about Sharemind?
A: All the published papers and technical reports are listed in the Research section. For more details, please contact us directly.
Q: Are you open to collaborations?
A: Yes. We are interested in improving the security guarantees and performance of Sharemind. We are also considering porting the Sharemind application framework to use other private computation techniques such as fully homomorphic encryption.
About the SecreC Software Development Kit
Q: What is the license for the SDK?
A: Different components in the SDK have different licenses. The Sharemind virtual machine and the SecreC compiler are provided in a binary form with a closed source license. The SecreC IDE is provided with an open source license. Please refer to the installed documentation for details.
Q: What does the SecreC Software Development Kit consist of?
A: The SDK comes together with a developer version of the Sharemind machine, the SecreC compiler and the SecreCIDE development environment.
Q: Can I create real applications with the SDK?
A: Yes. You can develop applications, but the developer version of the Sharemind is limited to running on a single machine. You can develop and test your algorithms, but you cannot deploy them in a production setting. Contact us for information about using Sharemind in your applications.
Q: What platforms does the SDK support?
A: Currently, the SDK is shipped for Microsoft Windows. Mac OS X and Linux versions are being packaged. Sharemind itself can work on all these operating systems.

