Coder Social home page Coder Social logo

cryptosolvers / cryptosolve Goto Github PK

View Code? Open in Web Editor NEW
5.0 1.0 0.0 1.56 MB

Generate and Verify Cryptographic Modes of Operation using Symbolic Methods

Home Page: https://cryptosolvers.github.io/CryptoSolve/

License: Other

Makefile 0.62% Batchfile 0.78% Python 95.99% Shell 0.24% CSS 0.14% JavaScript 0.30% HTML 1.93%
automated-reasoning cryptography term-rewriting unification

cryptosolve's Introduction

CryptoSolve

This is a tool that generates and verifies cryptographic modes of operation using symbolic methods.

Screenshot of Web Tool

Install

To get started you should make sure that your environment is setup.

Clone the repository

git clone https://github.com/cryptosolvers/cryptosolve
cd CryptoSolve

Create a virtual environment

python3 -m venv senv

Set your terminal session to use that environment

source senv/bin/activate

Install moe package

./install_packages.sh

If you encounter any permission errors, edit the file to look like the following instead,

pip install --user directoryname/

Now you can run the examples! In the future, don't forget to source the environment every time you open a new terminal session.

Usage

The following commands are then in your path:

  • moo_tool : Runs the command line version of the tool
  • moo_website : Runs the website version of the tool

Libraries Included

CryptoSolve is built upon several libraries that can be used standalone for other areas in Unification and automated reasoning.

MOE

This module builds upon the rest of the modules defined below in order to express cryptographic modes of operation symbolically. The user can interface with this module via the web, terminal, or GUI application.

Algebra

A term algebra library that defines a term recursively. Contains useful operations on terms such as substitution, and interfaces into sympy and general strings.

Rewrite

The rewrite library contains contains rewrite rules that can operate over the terms in the algebra library. It also can produce variants given a set of rewrite rules, and can narrow one term into another.

Unification

This module contains unification over terms modulo several popular theories. Currently AC Unification, Boolean Unification, EAC Unification, Syntactic Unification, and others are defined.

Theories

Various data structures and their properties defined as rewrite rules are defined in this module. This module can be further extended in order to define an automated theorem prover for objects such as natural numbers, booleans, and lists.

cryptosolve's People

Contributors

brandon-rozek avatar culinhai avatar gerok avatar luisroviradev avatar marshallandrew avatar waxillium avatar wdu2 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 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.