Coder Social home page Coder Social logo

acacio-coding / secstor-library Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 14.73 MB

Destinado ao projeto de iniciação científica de aplicação de algoritmos de compartilhamento de segredos e anonimização de dados para adequação de sistemas à LGPD.

Java 98.91% Shell 1.09%

secstor-library's Introduction

Secstor Library

Biblioteca para utilização de algoritmos de compartilhamento de segredos e anonimização de dados para adequação de sistemas à LGPD

Requirementos

  • JDK 17 ou superior
  • JRE 1.8.0 ou superior
  • Lombok Annotations Support for VS Code (extensão para o Visual Studio Code)

Para utilizar a biblioteca

Utilize o comando abaixo:

git clone https://github.com/Acacio-coding/Secstor-library

Agora siga os seguintes passos:

  1. Abra o projeto com a IDE ou editor de código de sua preferência;
  2. Certifique-se de instalar as dependências presentes no arquivo pom.xml
  3. Cheque o exemplo de utilização dentro no pacote ifsc.secstor.library
  4. Crie uma classe com o método main
  5. Utilize a biblioteca seguindo o exemplo abaixo:
import com.ifsc.secstor.library.facade.EngineMaker;

public class Example {
    public static void main(String[] args) throws Exception {
        int N = 10;
        int K = 5;

        EngineMaker engineMaker = new EngineMaker(N, K);

        //Informação a ser dividida e reconstruída
        String data = "teste";

        //Divisão
        engineMaker.split(data, "shamir");

        
        //Printando as chaves geradas, lembre-se de utilizar 
        //o get na engine que você realizou split
        engineMaker.getShamir().getPieces().forEach(System.out::println);
        
        //Reconstrução 
        //N chaves
        String reconstructed = engineMaker.reconstruct("shamir");
        System.out.println("\n" + reconstructed);

        //K chaves ou um número de chaves, onde K <= número de chaves <= N
        reconstructed = engineMaker.reconstruct("shamir", K);
        System.out.println("\n" + reconstructed);
    }
}

Obs.: os algoritmos disponíveis são shamir, pss, css, krawczyk e pvss, as classes dentro do pacote ifsc.secstor.library.facade estão documentadas seguindo os padrões do javadoc

Para utilizar os testes de tempo da biblioteca

Existem duas formas de realizar os testes, a primeira é utilizando o shellscript timing-test-runner.sh:

  1. Certifique-se de ter o maven instalado utilizando o JDK 17;
  2. Executre o script seguindo as informações requeridas.
  3. Sempre que for realizar o teste novamente não esqueça de apagar os resultados gerados em timing-tests/results/ para evitar que os novos resultados sejam anexados ao mesmo arquivo;
  4. Todos os resultados são gerados em formato .csv na pasta citada acima.

A outra forma é pelo próprio executor das IDE's java

  1. Realize um build do projeto;
  2. Encontre o arquivo de configuração de execução gerado pela sua IDE;
  3. Adicione os seguintes argumentos respectivamente separados por espaços:
    1. N número de chaves (número máximo de chaves gerados na divisão) ;
    2. K número de chaves (número mínimo de chaves utilizados na reconstrução);
    3. Número de chaves a serem utilizadas na reconstrução por rodada, podem ser vários números como 10 7 5 (onde N=10 e K=5) por exemplo;
    4. Tamanho do dataset (1, 3, 5 ou 10) seguido de _100objects_dataset_to_split.json, ex.: 1kb_100objects_dataset_to_split.json;
    5. Número de threads utilizadas paralelamente durante o teste.
  4. Sempre que for realizar o teste novamente não esqueça de apagar os resultados gerados em timing-tests/results/ para evitar que os novos resultados sejam anexados ao mesmo arquivo;
  5. Todos os resultados são gerados em formato .csv na pasta citada acima.

Referências

T. Loruenser, A. Happe, D. Slamanig: "ARCHISTAR: Towards Secure and Robust Cloud Based Data Sharing"; Vortrag: Cloud Computing Technology and Science (CloudCom), 2015, Vancouver, Canada; 30.11.2015 - 03.12.2015; in: "CloudCom 2015", IEEE, (2016), S. 371 - 378.

Disponível em: https://github.com/Archistar/archistar-smc

secstor-library's People

Contributors

acacio-coding 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.