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ódulos | Valores | Fórmula |
|---|---|---|
| VDE | Taxa de Compactação | A ÷ B |
| ACP | Velocidade de Compactação | A ÷ C |
| ADP | Velocidade de Descompactação | A ÷ 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ódulos | Valores | Fórmula |
|---|---|---|
| -- | Tempo de Transmissão | A ÷ E |
| VBE | Tempo de Transmissão Otimizado | B ÷ 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.
| Velocidade | Escala | Qualidade | Exclusão? | Export? |
|---|---|---|---|---|
| Padrão | 200 | Baixo | Sim | PEBP |
| Padrão | 400 | Médio | Sim | PEBP |
| Padrão | 600 | Padrão | Sim | PEBP |
| Padrão | 800 | Alto | Sim | PEBP |
| Padrão | 1600 | -- | Sim | PEBP/1 |
| Padrão | 1700 | -- | Sim | PEBP/2 |
| Padrão | 1800 | -- | Sim | PEBP/3 |
| Padrão | 1900 | -- | Sim | PEBP/4 |
Para os arquivos de multimídia, atestamos a qualidade obtida pós ADP com o VMAF score.
| Pontuação | Qualidade | Perdas |
|---|---|---|
<= 20 | Muito Ruim | Notáveis |
> 20 <= 40 | Ruim (Pobre) | Perceptíveis |
> 40 <= 60 | Razoável | Questionáveis |
> 60 <= 80 | Bom | Justas |
> 80 <= 100 | Excelente | Imperceptíveis |
Criptografia dos dados
Para encontrar os valores referentes à cifragem dos arquivos, trabalhamos com os seguintes ranges:
| Valores | Métricas | Range |
|---|---|---|
| Entropia | Valores consistentes e elevados demonstram alta taxa de aleatoriedade nos dados. | >= 7.999.769 <= 7.999.928 |
| Coeficiente de Correlação Serial | Baixa correlação entre os dados. | >= 0 < 1 |
| Monte Carlo Pi | Estimativas precisas e distribuição equilibrada dos dados. | >= 0 < 1 |
| Chi-Squared | Grande 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ética | Variaçã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.1já 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étrica | Peso | Justificativa |
|---|---|---|
| Entropia | 0.40 | Mais sensível a padrões - essencial |
| Coeficiente de Correlação Serial | 0.30 | Mostra independência - muito crítico |
| Monte Carlo Pi | 0.15 | Avaliação global de uniformidade |
| Chi-Squared | 0.10 | Bom, porém ruidoso |
| Média Aritmética | 0.05 | Pouco 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:
0se 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.
| CPU | Arquitetura | Clock | Memória | Optane? | Plataforma | Distro | Kernel |
|---|---|---|---|---|---|---|---|
| Intel Xeon (Cascadelake) | x86_64 | 2GHz | 4Gb | Não | Dell PowerEdge R250 | Ubuntu 18.04 (Bionic Beaver) | 4.15 |
| Intel Xeon Gold | x86_64 | 2.6GHz | 128Gb | Sim | Dell PowerEdge R640 | Ubuntu 20.04 (Focal Fossa) | 5.4 |
| Intel Xeon Gold | x86_64 | 2.6GHz | 1Tb | Sim | Dell PowerEdge R640 | Ubuntu 20.04 (Focal Fossa) | 5.4 |
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.
Updated 20 days ago
