Skip to content

Latest commit

 

History

History
30 lines (26 loc) · 2.22 KB

topic.md

File metadata and controls

30 lines (26 loc) · 2.22 KB

Topic

Comparison, choice and implementation of a modern encryption algorithm for VoIP communication.

Purpose

A purpose is to compare, choose the best one, and implement a modern encryption algorithm for an open source VoIP communicator - Mumble. It's required, because Mumble uses old and slow algorithm - AES-OCB. The second reason is that OCB mode is patented and can't be used for free in commercial solutions (like games, in Mumble case). It's an answer to this issue.

I would like to benchmark below algorithms:

Compare and rate their suitability for VoIP communication. VoIP communication is sensitive to latency and its variation (jitter), so the most suitable solution should have the lowest latency. We will use encryption on the server side, so CPU usage and throughput are also important metrics.

Comparison table:

Algorithm Library Latency CPU usage Throughput License Limitations
AES-128-OCB OpenSSL Apache Patented
AES-256-GCM OpenSSL Apache
ChaCha20-Poly1305 OpenSSL Apache
AES-256-GCM NSS MPL 2
ChaCha20-Poly1305 NSS MPL 2
AES-256-GCM wolfCrypt GPLv2 Commercial license
ChaCha20-Poly1305 wolfCrypt GPLv2 Commercial license
AES-256-GCM libsodium ISC Requires SSSE3, AES-NI and CLMUL
ChaCha20-Poly1305 libsodium ISC
AEGIS-128L ? ISC
AEGIS-256 libsodium ISC