Coder Social home page Coder Social logo

tomasphilippart / mdtools Goto Github PK

View Code? Open in Web Editor NEW
4.0 4.0 1.0 146 KB

:unlock: Tools to help Discrete Mathematics computations.

License: GNU General Public License v3.0

Python 89.31% C 10.69%
discrete-mathematics diophantine-solver congruence rsa-algorithm calendars matematica-discreta diofantinas portugues

mdtools's Introduction

MDTools 🔓

Pequeno programa em Python para facilitar os cálculos da disciplina de Matemática Discreta.

Aviso ⚠️

Este programa não foi concebido para ser usado de forma desonesta, i.e. em exames/testes. A utilização prevista e recomendada é como material de estudo. Qualquer utilização desonesta e contra o compromisso de honra é condenada pelos criados e contribuidores deste programa.

Utilização

Para correr o programa, escreve python3 MDTools.py na linha de comandos na pasta src, ou abre diretamente, com o Python, o mesmo ficheiro.

Contribuições

Qualquer contribuição ao projeto é bem vinda, contribuindo não só para aprendizagem própria, tanto como para ajudar futuros alunos da disciplina de Matemática Discreta. Posto isto, como é que podem contribuir? Achamos que a melhor forma de propor alterações é criando uma Issue e fazendo um pull request. Mais tarde, alguem irá rever o código e aprovar o merge com o código existente.

Funcionalidades

Algoritmo FFT

    A) Ver algortimo FFT

Algoritmo RSA

    B) Descobrir inverso de e mod (p-1) * (q-1)
    C) Fazer congruências rapidamente
    D) Obter soma em base 2 de número
    E) Ver algoritmo RSA

Congruências

    F) Simplificar congruências
    G) Algoritmo de Saunderson e Coeficientes de Bézout
    H) Equações Diofantinas

Calendários

    I) Juliano
    J) Gregoriano
    K) Páscoa Juliana
    L) Páscoa Gregoriana (passo a passo)

Grafos

    M) Noções Básicas
    N) Teoremas
    O) Algoritmo de Fleury

RSA (Teoria)

RSA é um algoritmo de criptografia de dados, que deve o seu nome a três professores do Instituto de Tecnologia de Massachusetts (MIT), Ronald Rivest, Adi Shamir e Leonard Adleman, fundadores da actual empresa RSA Data Security, Inc., que inventaram este algoritmo — até a data (2008) a mais bem sucedida implementação de sistemas de chaves assimétricas, e fundamenta-se em teorias clássicas dos números. É considerado dos mais seguros, já que mandou por terra todas as tentativas de quebrá-lo. Foi também o primeiro algoritmo a possibilitar criptografia e assinatura digital, e uma das grandes inovações em criptografia de chave pública.

O servidor e o cliente geram as suas chaves públicas e privadas. O servidor envia para o cliente sua chave pública, e o cliente envia para o servidor sua chave pública.

O cliente criptografa seus dados com a chave pública (do servidor), e envia para o servidor.

O servidor descriptografa os dados com a sua chave privada.

O servidor criptografa o que será enviado para o cliente com a chave pública do cliente, e envia para o cliente.

O cliente consegue, por fim, descriptografar o retorno do servidor, com sua chave privada.

mdtools's People

Contributors

davidakafunky avatar gustavo-aguiar01 avatar tomasphilippart avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

pedrochaps

mdtools's Issues

Organizar código

Mover mdtools.py para fora da pasta src, permitindo uma maior abstração ao utilizador do programa.

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.