All Projects → CHURPTeam → Churp

CHURPTeam / Churp

Decentralize your secrets!

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Churp

Gun
An open source cybersecurity protocol for syncing decentralized graph data.
Stars: ✭ 15,172 (+15072%)
Mutual labels:  cryptography, decentralized
Brightid
Reference mobile app for BrightID
Stars: ✭ 101 (+1%)
Mutual labels:  cryptography, decentralized
Cothority
Scalable collective authority
Stars: ✭ 372 (+272%)
Mutual labels:  cryptography, decentralized
Cruzbit
A simple decentralized peer-to-peer ledger implementation
Stars: ✭ 118 (+18%)
Mutual labels:  cryptography, decentralized
Awesome Iam
👤 Identity and Access Management Knowledge for Cloud Platforms
Stars: ✭ 186 (+86%)
Mutual labels:  cryptography, secret-management
stash-electron
Stash - The friendly secret storage made for teams
Stars: ✭ 18 (-82%)
Mutual labels:  cryptography, secret-management
Decentralized Internet
A SDK/library for decentralized web and distributing computing projects
Stars: ✭ 406 (+306%)
Mutual labels:  cryptography, decentralized
Tokenscript
TokenScript schema, specs and paper
Stars: ✭ 89 (-11%)
Mutual labels:  cryptography
Portablesigner2
PortableSigner - A Commandline and GUI Tool to digital sign PDF files with X.509 certificates
Stars: ✭ 92 (-8%)
Mutual labels:  cryptography
Zcash Mini
A minimal portable Zcash z-address generator for offline / paper wallets
Stars: ✭ 87 (-13%)
Mutual labels:  cryptography
Pentesting toolkit
🏴‍☠️ Tools for pentesting, CTFs & wargames. 🏴‍☠️
Stars: ✭ 1,268 (+1168%)
Mutual labels:  cryptography
Paramikojs
port of the paramiko library from python->javascript
Stars: ✭ 89 (-11%)
Mutual labels:  cryptography
Computer Science Resources
A list of resources in different fields of Computer Science (multiple languages)
Stars: ✭ 1,316 (+1216%)
Mutual labels:  cryptography
S3git
s3git: git for Cloud Storage. Distributed Version Control for Data. Create decentralized and versioned repos that scale infinitely to 100s of millions of files. Clone huge PB-scale repos on your local SSD to make changes, commit and push back. Oh yeah, it dedupes too and offers directory versioning.
Stars: ✭ 1,287 (+1187%)
Mutual labels:  decentralized
0fc
Anonymous web chat server, built on top of Themis/WebThemis
Stars: ✭ 98 (-2%)
Mutual labels:  cryptography
Cargo Crev
A cryptographically verifiable code review system for the cargo (Rust) package manager.
Stars: ✭ 1,268 (+1168%)
Mutual labels:  decentralized
Hacl Star
HACL*, a formally verified cryptographic library written in F*
Stars: ✭ 1,360 (+1260%)
Mutual labels:  cryptography
Webcrypto Liner
webcrypto-liner is a polyfill that let's down-level User Agents (like IE/Edge) use libraries that depend on WebCrypto. (Keywords: Javascript, WebCrypto, Shim, Polyfill)
Stars: ✭ 98 (-2%)
Mutual labels:  cryptography
Dudect
dude, is my code constant time?
Stars: ✭ 91 (-9%)
Mutual labels:  cryptography
Libsodium
A modern, portable, easy to use crypto library.
Stars: ✭ 9,782 (+9682%)
Mutual labels:  cryptography

The CHURP code is an academic research prototype, and meant to elucidate protocol details and for proofs-of-concept, and benchmarking. It has not been developed in a production environment and is not meant for deployment.


logo

CHURP: Dynamic-Committee Proactive Secret Sharing

CircleCI

Achieving decentralization requires decentralized cryptography. CHURP (CHUrn-Robust Proactive secret sharing) is a cryptographic protocol for secret sharing in decentralized settings, where committee nodes may come and go. In such a setting, traditional secret sharing (e.g., Shamir's) is no longer secure. Featuring several fundamental innovations, CHURP accomplishes the mission while being 2300x more efficient than previous schemes!

Getting Started

This the repo for CHURP code (in Golang). Below you can find build and usage instructions.

If you want to run a demo or play with pre-complied CHURP, the easiest way to get started is to use docker. Please refer to the docker document for installation instructions.

If you want to build CHURP from source, we've prepared a special builder docker image for that, with dependecies installed. (If you really want to build/run the code natively, please refer to the dockerfiles.)

Run CHURP

We release compiled executables in the docker image churp/churp. For example, to run a demo of 5 nodes, you can use the script simple.sh which is part of the docker image:

docker run -ti churp/churp bash
# ./simple.sh 5 2

simple.sh starts a demo with n=5 nodes using a polynomial of degree t=2. Note that we require n >= 2t+1.

Build

We prepared a special builder docker image for building CHURP from source code. Make sure you're in the root of the repo (i.e., the directory that has src), then run the following to launch the builder:

docker run -ti -v $(pwd)/src:/src --workdir /src churp/builder bash
# make  # build using the provided Makefile

API

At a high level, CHURP provides the following API:

  • initialize(t, [nodeList], ...): Set the required parameters for CHURP: t stands for the threshold and nodeList represents the set of nodes that form a committee. Some other parameters that need to be set are the epoch duration and commitment scheme parameters.

  • (Optional) storeSecret(SK): Distribute the secret SK using (t, n)-sharing (n=|nodeList|) such that each node in nodeList stores a share of the secret. (Note that this function is optional. For some applications, the secret might be generated randomly using Distributed Key Generation protocols.)

  • changeCommittee([newNodeList]): Execute CHURP to handoff the secret SK from the old committee, nodeList, to the new committee, newNodeList.

  • (Optional) retrieveSecret() -> SK: Reconstruct the secret from shares retrieved from nodes in the nodeList. (Note that this function is optional, i.e., CHURP works without any need to explicitly reconstruct the secret.)

Acknowledges

Currently CHURP is built on Pairing Based Cryptography library (LGPL) and its Go wrapper, GNU Multi Precision library and its Go wrapper (BSD), and Google Protobuffer.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].