Code Monkey home page Code Monkey logo

rsa_app's Introduction

Relatório RSA

Centro Universitário - Católica de Santa Catarina em Joinville
Alunos: Dayan Freitas e Alexandre Grawe
Matéria: Segurança da Informação
Professor: Rodrigo Mello Mattos Habib Gregori

Relatório de Projeto

Planejamento e operação

Para o processo de devolvimento foi necessário primeiramente fazer um estudo mais afundo sobre o algoritmo de criptografia RSA, de modo a compreender melhor o seu funcionamento. Após estudo e levantamento foi encolhida a linguagem. Dessa forma, foi escolhida a linguagem ruby, que já é de conhecimento superficial, porém, com intuído de aperfeiçoar e conhecer novas feat da linguagem.

Como está organizado o código?

Sucintamente o projeto foi dividido em 2 repositórios, sendo eles:

  • Repositório: RSA

    Nesse repositório você pode encontra o código-fonte da GEM, que foi utilizada no repositório príncipal (RSA_APP), nele contém a regra de implementação do algorítmo de criptografia RSA.

  • Repositório: https://github.com/Dayanfreitas/RSA_APP

    Nesse repositório você pode encontra o código-fonte do aplicativo.

Que tipos de problemas foi encontrado?

Não houve muitas problemas, apenas limitações que foram possíveis de serem contornadas, como o trabalho de números gigantes e alocação de memória.

Que linguagem utilizou e por quê?

Foi utilizada a linguagem Ruby, com o intuito de treinar a lógica e aprender novos recursos da linguagem. Ambos os desenvolvedores trabalham com essa linguaguem.

Teste

Para os testes foram adotados o teste manuais e os teste de unidade. Os teste de unitários estão integrado que github actions de modo da executa-lós sempre que houver commit ou abertura de pull request(PR) para o branch main. Dessa foram garantido a integridade do código e confiabilidade do testes.

Como foi testado o código?

  • Unitário - Apenas no diretório da GEM
  • Aplicativo(RSA_APP) - Teste manuais e trocas de chave com colegas de turma

Que tipos de bugs foi encontrado?

  • Alocação de memória
  • Split chunk text

O que funciona e o que não funciona?

  • A encriptação e decriptação do programa funciona, foi testado com chaves e textos gerados por outros colegas de sala.
  • A geração de chaves publicas e privadas funcionam.

Há algum problema no código que não foi possível resolver?

  • Alguns métodos que são usados para a geração de key, não suportam a leitura de um BigNumber. Um ponto positivo é que esses métodos podem ser otimizados e gerar um limite maior para a key, por outro lado não tivemos tempo hábil para fazer essa melhoria.

Avaliação do projeto

O projeto foi bem proveitoso e de extrema importância para o aprendizado. Foi muito interessante aprender a fazer criação de gem, gerar build de novas versões, implementar de testes unitários com actions do github, fazer uso do docker para melhorar processo de desenvolvimento. Ademais, é totalmente interessante trabalhar com criptografia e o sistema de RSA.

Run app

Init app

$ make up

Open bash docker

$ make bash

install gem

$ bundle

Run app encripta

$ make up
ruby src/encripta.rb <path_keys> <path_name_file_input> <path_name_file_output>

# exemplo
root@49de64e48ef6:/usr/src/app$ ruby src/encripta.rb keys/public.txt assets/input.txt assets/output.txt

Run app decripta

$ make up

ruby src/decripta.rb <path_keys> <path_name_file_input> <path_name_file_output>

# exemplo
root@49de64e48ef6:/usr/src/app$ ruby src/decripta.rb keys/private.txt assets/output.txt assets/input.txt

rsa_app's People

Contributors

dayanfreitas avatar xandegrawe 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.