Coder Social home page Coder Social logo

kkss's Introduction

Build Status

KiKaSS: k-key secret sharing

Introduction

KiKaSS is a secret encryption and deconstruction application. If you have a secret (password, encryption key, etc.), KKSS can decompose it into an arbitrary number of partial-keys, of which an arbitrary-sized subset is required to reconstruct the original key.

For example: 8 people need access to a safe. However, at least 3 people must be present to unlock it--no individual can open it alone.

Background

The core functionality depends heavily on Shamir's Secret Sharing Scheme.

For larger secrets (messages, documents, etc.), we use symmetric encryption; partial key distributed to users are decomposed AES keys.

Goals

  1. Cryptographic security
  2. Transparency
    1. Do as much work client-side as possible
    2. Never send or store anything unencrypted
    3. Minimize surface area, e.g. against man-in-the-middle
    4. Clients shouldn't be required to trust our server
  3. Usability

Development Set Up

  • First you'll need to install neccessary gems for the project by running:
bundle install
  • Run the tests:
rake
  • To run the application locally run the following from the kkss directory:
rake run
  • Visit the application: http://localhost:4567

Future work?

  • Obscure partial keys when entering
  • Encrypt and store messages (in progress)
  • Encrypt and store documents
  • Diceware for keys
  • P2P key entry (rather than single-station; RTCDataChannel via WebRTC)
  • When decomposing short secrets, should we pad them so the original secret length is not so clearly exposed (linear growth partial key length)?
  • More flexible partial key hierarchy: e.g., decompose 8 partial keys, of which any 3 are needed to reconstruct the secret, but one of them

kkss's People

Contributors

alidaka avatar bspeck avatar rkgwood avatar nwdenton avatar

Watchers

Alpha Chen avatar James Cloos avatar Liz Dahlstrom avatar Sarah Walther avatar  avatar  avatar

Forkers

alidaka

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.