Metodologia

Técnicas empregadas para o comparativo da DRIC com outras tecnologias.

Notas

Aqui você poderá entender o que nossa tecnologia proporciona, seus diferenciais competitivos, aplicações e muito mais! Atualmente trabalhamos com 12 datasets que juntos possuem aproximadamente 500.000 de arquivos dos tipos mais comuns (jpg, wav, mp4, jpeg, html, json, txt, png, xml, pdf, csc, mp3, etc...) e tamanhos individuais variados de até 1Gb.

Nosso benchmarking avaliou 4 dos principais algoritmos de compactação de dados e 3 de cifragem de dados, dos quais juntos totalizam mais de 30 plug-ins contendo 45 CODECs combinados, resultando em aproximadamente 9.450 configurações diferentes. O benchmarking é executado em 3 setups de máquinas diferentes, totalizando 28.530 configurações, e continua crescendo.

Objetivo

Obter as taxas de compactação e cifragem dos arquivos em diferentes níveis de codificação ACP.

O que testamos?

Propositalmente, utilizamos um hardware de performance limitada 😯 sendo assim focamos principalmente nas taxas de otimização e compactação obtidas. 💪 A velocidade de codificação e decodificação, bem como arquivos de maior volume individual, não foi objeto de avaliação deste cenário, entretanto, seus números foram registrados e podem ser acessados neste benchmarking. Cabe ressaltar que durante a execução não sofremos nenhum problema de desempenho. 😃

Este mesmo conjunto de dados também continha um conjunto de arquivos de teste para validar o próprio teste. 💡 Coisas como arquivos com conteúdo duplicado, arquivos com frequência de palavras duplicadas e em ordem diferente, one-time pads, só para citar alguns. A saída desses casos de teste foi a esperada, evidenciando o design bem concebido da tecnologia. 😎

Para ter um ponto de comparação, além da DGA, este mesmo conjunto de dados também foi testado usando os seguintes algoritmos de compactação: LZW, Adaptative Huffman e Shannon. Para criptografia utilizamos como referência: AES, ChaCha20, Camellia e Blowfish.

Por que não usamos RSA?

  • RSA ele é assimétrico. A criptografia de nosso algoritmo é simétrica , faz mais sentido comparar somente algoritmos da mesma categoria.
  • RSA foi feito para cifrar pequenos blocos, como chave de sessão de 32 bytes, por exemplo, não um arquivo de MB ou GB.
  • Cada arquivo é quebrado em blocos de até 512 bytes e cada bloco vira uma operação RSA completa.
  • Arquivo de 1 MB ≈ 1.000.000 / 512 ≈ 1953 operações RSA → lentidão absurda é esperada.

Como testamos?

Foram realizados dois tipos de testes, sendo eles com o IAC em modo Manual-Sync e em modo Auto-Sync, somente para sincronização das estações ADP. Estes dados estavam armazenados em um bucket. Todos os arquivos codificados tiveram como output os arquivos em formato EBP, bem como a Master Tree, Branchs, File Tree e Log de execução para análise.

Com o IAC em Manual-Sync, ocorreu a codificação ACP do conjunto de arquivos de teste enquanto os sistemas de decodificação ADP estavam desligados e desconectados de qualquer meio de conectividade. Todo output movido para um IAC e então os sistemas de decodificação ADP foram religados, nos certificamos de não haver conectividade e assim decodificamos todo o conjunto. Para o modo Auto-Sync, enquanto ocorria a codificação ACP, as estações ADP sincronizavam os pacotes EBP e PEBP automaticamente.

Como calculamos os resultados?

Dividimos em duas partes, sendo os cálculos referentes às taxas de compactação e os cálculos referentes à criptografia. Coletamos alguns dados importantes que são utilizados para calcular os valores obtidos, sendo eles: (A) tamanho do arquivo não-codificado, (B) tamanho codificado, (C) tempo de codificação, (D) tempo de decodificação e (E) velocidade de transferência.

Taxas de compactação

Para encontrar os valores referentes à otimização e compactação de dados, aplicamos as fórmulas descritas a seguir.

MódulosValoresFórmula
VDETaxa de CompactaçãoA ÷ B
ACPVelocidade de CompactaçãoA ÷ C
ADPVelocidade de DescompactaçãoA ÷ D
--Velocidade de ida e volta (Round Trip Speed)(2 x A) ÷ (C + D)

Os tamanhos são apresentados usando prefixos binários – 1 KiB equivale a 1.024 bytes, 1 MiB equivale a 1.024 KiB e assim por diante.

Para encontrar os valores referentes ao desempenho e economia de banda, aplicamos as fórmulas descritas a seguir.

MódulosValoresFórmula
--Tempo de TransmissãoA ÷ E
VBETempo de Transmissão OtimizadoB ÷ E

CODEC

Configuramos as principais variáveis de nosso CODEC, sendo elas:

  • Velocidade do codificador
  • Escala do codificador

Para todos os arquivos trabalhamos com o parâmetro de velocidade Padrão.

VelocidadeEscalaQualidadeExclusão?Export?
Padrão200BaixoSimPEBP
Padrão400MédioSimPEBP
Padrão600PadrãoSimPEBP
Padrão800AltoSimPEBP
Padrão1600--SimPEBP/1
Padrão1700--SimPEBP/2
Padrão1800--SimPEBP/3
Padrão1900--SimPEBP/4

Para os arquivos de multimídia, atestamos a qualidade obtida pós ADP com o VMAF score.

PontuaçãoQualidadePerdas
<= 20Muito RuimNotáveis
> 20 <= 40Ruim (Pobre)Perceptíveis
> 40 <= 60RazoávelQuestionáveis
> 60 <= 80BomJustas
> 80 <= 100ExcelenteImperceptíveis

Criptografia dos dados

Para encontrar os valores referentes à cifragem dos arquivos, trabalhamos com os seguintes ranges:

ValoresMétricasRange
EntropiaValores consistentes e elevados demonstram alta taxa de aleatoriedade nos dados.>= 7.999.769 <= 7.999.928
Coeficiente de Correlação SerialBaixa correlação entre os dados.>= 0 < 1
Monte Carlo PiEstimativas precisas e distribuição equilibrada dos dados.>= 0 < 1
Chi-SquaredGrande variação e a presença de diferentes padrões tornam mais complexas a análise, tornando os dados mais robustos contra tentativas de decifração.>= 285.199 <= 2.842.240
Média AritméticaVariação mínima, garantindo uma distribuição média estável.>= 1.274.414 <= 1.275.757

Os resultados encontrados são uma forte variabilidade no Chi-Squared Value, a consistente alta entropia e a baixa correlação serial, representando uma forte proteção contra tentativas de análise e engenharia reversa dos dados.

Importância criptográfica real de cada métrica

1) Entropia

Peso recomendado: altíssimo

Por quê?

  • É o indicador mais direto de ausência de padrões.
  • É a métrica mais sensível a falhas estruturais em cifras.
  • AES, ChaCha20, Blowfish e ciphers modernos chegam muito próximos de 8 bits por byte.
  • Qualquer queda perceptível (< 7.95) já denuncia problema no algoritmo

Conclusão: Essa métrica deve ter o maior peso no score final.

2) Correlação Serial

Peso recomendado: alto

Por quê?

  • Mede dependência entre bytes consecutivos.
  • Padrões sequenciais são comuns em cifras ruins.
  • Se houver correlação > 0.1 já costuma indicar problema.

Conclusão: Deve ser a segunda métrica mais importante.

3) Monte Carlo Pi

Peso recomendado: médio

Por quê?

  • Mede distribuição 2D dos bytes.
  • É muito usado em testes tipo DIEHARD / ENT.
  • Não denuncia falhas pequenas, mas denuncia bias global.

Conclusão: Peso médio mas não crítico.

4) Chi-Squared

Peso recomendado: médio-baixo

Por quê?

  • Indica quão uniformes são os 256 valores possíveis.
  • Em cifras modernas ele varia muito com tamanho do arquivo.
  • Não denuncia pequenos padrões internos.
  • Chi-Squared é excelente como útil para detectar bias grosseiro, mas não como métrica core.

Conclusão: Peso médio-baixo.

5) Média aritmética

Peso recomendado: baixo

Por quê?

  • Se a distribuição é realmente uniforme, a média vai estar sempre perto de 127,5.
  • É uma métrica fraca porque:
    • um conjunto de dados péssimo pode ter média perfeita,
    • mas apresentar padrões horríveis.

Conclusão: Deve ter o menor peso.

Pontuação e pesos

O objetivo central é preservar o SIGILO MÁXIMO sobre os dados criptografados com os respectivos algoritmos. Para efeito de pontuação e pesos, estamos utilizando os valores:

MétricaPesoJustificativa
Entropia0.40Mais sensível a padrões - essencial
Coeficiente de Correlação Serial0.30Mostra independência - muito crítico
Monte Carlo Pi0.15Avaliação global de uniformidade
Chi-Squared0.10Bom, porém ruidoso
Média Aritmética0.05Pouco sensível - peso mínimo

Total: 1.0

Essa distribuição reflete a relevância real das métricas no contexto de avaliação criptográfica.

Lógica de "quem ganhou" em criptografia por métrica.

Baseado nos ranges acima, para cada algoritmo, calculamos um "erro" por métrica:

  • Entropia / Chi-Squared / Média Aritmética

    → Erro = distância até o range considerado excelente:

    • 0 se estiver dentro [min,max]
    • distância até a borda mais próxima, se estiver fora
  • Monte Carlo Pi

    → Erro = |π_estimado − π_real| (quanto menor, melhor)

  • Correlação Serial

    → Erro = |correlação| (quanto mais perto de 0, melhor)

Vencedor da métrica = algoritmo com menor erro naquela métrica.

Pontuação final = 1 / (1 + totalError) (quanto maior, melhor).

Vencedor geral = maior finalScore.

Configuração de máquina

Não pense que certos algoritmos são sempre mais rápidos, você pode se surpreender! A arquitetura, a implementação e o ambiente, por exemplo, mudam drasticamente a performance, fazendo com que se comportem completamente diferente com os mesmos dados.

Nosso benchmarking é executado atualmente em máquinas bastante recentes, de tecnologia ARM moderna. Veja abaixo o setup das máquinas utilizadas nesta avaliação.

E sobre o multi-threading?

Não é fácil responder essa pergunta, porque a concepção das soluções avaliadas difere umas das outras. Obviamente que se fosse possível explorar este recurso, os resultados seriam diferentes. O principal objetivo foi apresentar dados para usuários casuais, que normalmente utilizam a compactação e a descompactação com um único thread.

Desempenho e Economia de Banda

Esta análise se concentra em destacar o impacto significativo na eficiência na transmissão de dados, independentemente da comparação entre larguras de banda. Simulamos cenários de fluxos de dados TCP e UDP para medir o throughput de uma rede que os está transportando. Escolhemos o Iperf como ferramenta de teste de rede, uma das mais utilizadas. O Iperf também permite a configuração de vários parâmetros que podem ser usados para testar uma rede em arquitetura cliente e servidor, facilitando a medição de throughput entre as duas extremidades, de forma unidirecional ou bidirecional.

Diferencial do nosso benchmarking

Existem muitos outros benchmarkings, mas todos eles sempre analisam as mesmas variáveis e valores. Sendo assim, a depender do que você esteja buscando, pode ser que te atenda ou não.

Uma grande parte dos benchmarkings utilizam programas de linha de comendo em vez de bibliotecas. Outro ponto importante é a utilização de CODECs mais variados, mas que geralmente acabam não sendo explorados. Na verdade poucos são os benchmarkings que trabalham com bibliotecas.