Ho un programma c / c ++ usato per crittografare i dati per comunicare tra due estremità. La crittografia viene eseguita utilizzando OpenSSL (0.9.8d-fips, settembre 2006). Pensa che sarà interessante menzionare che non ho molta familiarità con l'uso di OpenSSL.
Il programma funziona bene per pacchetti più grandi. Ma l'overhead delle dimensioni è molto alto quando si crittografa pacchetti di dimensioni più piccole. Ho fatto un test per dimostrare il problema.
+-------------+-----------------+-------------------+
| Input Chars | Encrypted Chars | Input/Encrypted % |
+-------------+-----------------+-------------------+
| 1 | 74 | 1.351351351 |
| 2 | 74 | 2.702702703 |
| 3 | 74 | 4.054054054 |
| 4 | 74 | 5.405405405 |
| 5 | 74 | 6.756756757 |
| 6 | 74 | 8.108108108 |
| 7 | 74 | 9.459459459 |
| 8 | 74 | 10.81081081 |
| 9 | 74 | 12.16216216 |
| 10 | 74 | 13.51351351 |
| 11 | 74 | 14.86486486 |
| 12 | 90 | 13.33333333 |
| 13 | 90 | 14.44444444 |
| 14 | 90 | 15.55555556 |
| 15 | 90 | 16.66666667 |
+-------------+-----------------+-------------------+
Il test è stato eseguito durante l'incremento del numero di caratteri di input da 1 a 10000. I seguenti grafici illustrano i risultati in modo più chiaro.
Grafico 1: dimensioni crittografate e dimensioni di input
Grafico2:rapportorispettoalladimensionedell'input
Dal secondo grafico, è chiaramente visibile che il sovraccarico della crittografia è molto alto per gli input più piccoli (dimensioni inferiori a 300 byte).
Questo è normale / accettabile? Se è così ci sono alternative (con meno spese generali). Poiché l'applicazione utilizza pesantemente pacchetti più piccoli (raggrupparli insieme non è un'opzione).
Come menzionato sopra, viene utilizzato OpenSSL 0.9.8d, che è una versione un po 'più datata (1.0.1g, aprile 2014, è ora disponibile). Il problema verrà risolto se lo aggiorno?