Awesome
QChat
QChat is a simple distributed encrypted chat platform built on SimulaQron that enables users to derive shared keys with their peers using the purified BB84 protocol in the presence of an unauthenticated classical channel. The key derivation protocol includes error correction utilizing Golay linear codes and privacy amplification built on keyless fuzzy extractors. The derived keys are used to encrypt messages between two users using AES-GCM to guarantee authenticity and integrity. The unauthenticated classical channel is solutioned using a registry server that maintains RSA public information for users in the network, allowing peers to authenticate un-encrypted messages necessary for the key establishment process.
Setup
Begin by cloning the repo locally.
Dependencies and Verification
To install dependencies simply run:
make python-deps
To install dependencies and run tests run:
make verify
Building and Installation
The qchat package can be built using:
make build
And can be built+installed using:
make install
Without installation
QChat can also be used without building and installing the package. To do so add the repo directory to your PYTHONPATH:
export PYTHONPATH=$PYTHONPATH:/path/to/QChat/
RPC
There is a basic RPC example located in the examples/rpc_demo directory.