Giter VIP home page Giter VIP logo

mightyxor's Introduction

MightyXOR

MightyXOR's Logo

MightyXOR is an open source cryptography software suite based on .NET 6 with the primary aim of being information-theoretically secure, meaning its encrypted files cannot be decrypted even if an adversary has unlimited computing resources and time.

It supports various en- and decryption algorithms and techniques, including

Context

Given the increasing usage of highly efficient quantum computers, the question arises, when – not if – these will be able to break widely used cryptography algorithms like AES or RSA in a short space of time. Thus, MightyXOR's purpose is to provide a secure environment for especially sensitive data by means of information-theoretically secure techniques. One of these techniques is the one-time pad. It was mathematically proven that the one-time pad cannot be broken – even with vast computational power.

Goals

To put it in a nutshell, we are pursuing the following goals:

  • Security on all levels
    • Reliable, correctly implemented algorithms such as the OTP
    • Cryptographically secure, (hardware-)generated true randomness
    • Key distribution using Shamir's secret sharing scheme
    • Plausible deniability
  • Free, open source software
  • Understandable, maintainable, readable source code

In the future, we intend to extend MightyXOR to support more techniques:

  • Further information-theoretically secure cryptosystems
  • A more efficient sharing scheme, namely the (k, n)-threshold secret sharing scheme described in this paper
  • An API for hardware random number generators (HRNGs)
  • Cross-plattform support for Linux and macOS concerning MightyXOR's graphical user interface

Plans for the future

  • Implementation of more cryptographic algorithms (AES, DES, RSA, NaCl etc.)
  • C port for higher efficiency
  • Better performance for large files > 4 GB

Usage

MightyXOR provides a graphical user interface which currently only runs on Windows operating systems.

CLI (command line interface)

A cross-plattform CLI is being worked on.

GUI (graphical user interface)

The GUI is based on Windows Forms and will be replaced by a WPF-based application as soon as possible. As depicted in this screenshot, it is divided into several components:


The encryption menu allows both ordinary OTP-based encryption and an extended one-time pad with plausible deniability. In both cases, MightyXOR offers advanced options to customize the encryption process to your choice.

In the decryption menu, an encrypted file can be decrypted using a key. If plausible deniability was used previously, MightyXOR behaves exactly as if it was not used. This way, an attacker would not recognize that an alternative key was involved.

MightyXOR also supports a secret sharing mode according to Adi Shamir's scheme based on polynomial interpolation. Using this mode, a given file can be split into N parts whereas K parts are required to restore the entire file.

It is recommended to combine MightyXOR's features in order to maximize the security. For instance, it may be feasible to encrypt a sensitive file with a OTP including plausible deniability and split both the encrypted file and keys afterwards. Under the correct circumstances, it is impossible to break this cryptosystem.

FAQ

Why C#?!

Good question. A port to C, C++ or Rust is planned, especially because Windows Forms is severely outdated.

What does the name mean?

The name should be self-explanatory. The exclusive OR really is mighty in cryptography.

Should I use MightyXOR instead of Veracrypt or BitLocker to encrypt my sensitive data?

No. At the moment, MightyXOR does not claim to offer the features a software such as VeraCrypt does. Comparing MightyXOR to other cryptography software is difficult since MightyXOR can be seen as a niche product. Furthermore, MightyXOR encrypts on the file level, whereas VeraCrypt and BitLocker encrypt on the volume level. Consider MightyXOR a useful extension to your cryptography toolset which you can use to en- and decrypt your especially sensitive data.

How can I contribute to the MightyXOR project?

Any contribution to the MightyXOR project, be it documentation, testing or development is warmly welcome. As an MightyXOR developer, however, it should be your top priority to develop a secure, clean and easy-to-use software product. Security is crucial. Please refer to this guide for MightyXOR contributors for more detailled information.

I am thinking of a new feature for MightyXOR. How can I share it?

Ideas for new features can be posted in the issues section. Please orientate yourself by the following aspects when proposing a new feature:

  • Summary
  • Motivation
  • Detailed design
  • optional: Drawbacks
  • optional: Alternatives

Additionally, feel free to create pull requests. Be sure to (at least briefly) explain the points above.

License

The license is declared in this file.

mightyxor's People

Contributors

juliangrtz avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

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.