最后更新:2018.6.27
libsodium支持到xchacha20 xsalsa20
ChaCha20:
ChaCha20-Poly1305是Google所采用的一种新式加密算法,性能强大,在CPU为精简指令集的ARM平台上尤为显著(ARM v8前效果较明显),在同等配置的手机中表现是AES的4倍(ARM v8之后加入了AES指令,所以在这些平台上的设备,AES方式反而比chacha20-Poly1305方式更快,性能更好),可减少加密解密所产生的数据量进而可以改善用户体验,减少等待时间,节省电池寿命等。谷歌选择了ChaCha20和伯恩斯坦的Poly1305消息认证码取代过去一直在互联网安全领域使用的基于OpenSSL的RC4密码,谷歌最初是为了保证能够在Android手机上的Chrome浏览器和谷歌网站间的HTTPS(TLS/SSL)通讯。在谷歌采用TLS(安全传输层协议)不久后,ChaCha20和Poly1305均用在OpenSSH中的ChaCha20-Poly1305新算法中,这使得OpenSSH可能避免因编译时间对OpenSSL产生依赖。ChaCha20还用于OpenBSD(一种多平台类UNIX操作系统)中的RC4随机数生成器,在DragonFlyBSD中作为内核的伪随机数产生器(Cryptographically Secure Pseudo-Random Number Generator,简称CSPRNG)的子程序。
上面说了很多,其实意思就是ChaCha20是继rc4-md5 和 aes-256-cfb后谷歌推出的新加密算法,有很多优点。比rc4加密更强,比aes速度更快(PC)。
在shadowsocks/r中,我们可以通过安装libsodium启用ChaCha20来获得更好的加密性能及速度。
centos:
yum -y groupinstall "Development Tools" wget https://github.com/jedisct1/libsodium/releases/download/1.0.16/libsodium-1.0.16.tar.gz tar xf libsodium-1.0.16.tar.gz && cd libsodium-1.0.16 ./configure && make -j2 && make install echo /usr/local/lib > /etc/ld.so.conf.d/usr_local_lib.conf ldconfig
ubuntu/debian:
apt-get install build-essential wget https://github.com/jedisct1/libsodium/releases/download/1.0.16/libsodium-1.0.16.tar.gz tar xf libsodium-1.0.16.tar.gz && cd libsodium-1.0.16 ./configure && make -j2 && make install ldconfig
安装libsodium后,服务端就可以启用salsa20、chacha20、chacha20-ietf 这几种算法了。
参考:
https://baike.baidu.com/item/chacha20-poly1305
https://www.cmsky.com/ss-libsodium/
相关链接