项目:https://github.com/shadowsocks/crypto2
以下测试数据由 LuoZijun/crypto-bench 项目提供:
X86-64:
Cipher | OpenSSL | Ring | Sodium | RustCrypto(org) | Crypto2 |
---|---|---|---|---|---|
AES-128 | 470 MB/s | N/A | N/A | 615 MB/s | 2666 MB/s ⚡️ |
AES-128-CCM | N/A | N/A | N/A | 81 MB/s | 231 MB/s ⚡️ |
AES-128-GCM | 19 MB/s | 158 MB/s | N/A | 122 MB/s | 250 MB/s ⚡️ |
AES-128-GCM-SIV | N/A | N/A | N/A | 55 MB/s | 110 MB/s ⚡️ |
AES-128-OCB-TAG128 | 15 MB/s | N/A | N/A | N/A | 216 MB/s ⚡️ |
AES-128-SIV-CMAC-256 | N/A | N/A | N/A | 35 MB/s | 296 MB/s ⚡️ |
AES-256 | N/A | N/A | N/A | 444 MB/s | 1777 MB/s ⚡️ |
AES-256-GCM | N/A | 131 MB/s | 61 MB/s | 107 MB/s | 170 MB/s ⚡️ |
ChaCha20 | N/A | N/A | N/A | 695 MB/s ⚡️ | 463 MB/s |
ChaCha20-Poly1305 | 73 MB/s | 210 MB/s ⚡️ | 145 MB/s | 126 MB/s | 143 MB/s |
AArch64:
Cipher | OpenSSL | Ring | Sodium | RustCrypto(org) | Crypto2 |
---|---|---|---|---|---|
AES-128 | 484 MB/s | N/A | N/A | 36 MB/s | 1600 MB/s ⚡️ |
AES-128-CCM | N/A | N/A | N/A | 6 MB/s | 285 MB/s ⚡️ |
AES-128-GCM | 22 MB/s | 210 MB/s | N/A | 14 MB/s | 213 MB/s ⚡️ |
AES-128-GCM-SIV | N/A | N/A | N/A | 4 MB/s | 29 MB/s ⚡️ |
AES-128-OCB-TAG128 | 18 MB/s | N/A | N/A | N/A | 219 MB/s ⚡️ |
AES-128-SIV-CMAC-256 | N/A | N/A | N/A | 3 MB/s | 262 MB/s ⚡️ |
AES-256 | N/A | N/A | N/A | 27 MB/s | 1066 MB/s ⚡️ |
AES-256-GCM | N/A | 183 MB/s ⚡️ | N/A | 11 MB/s | 177 MB/s |
ChaCha20 | N/A | N/A | N/A | 309 MB/s | 390 MB/s ⚡️ |
ChaCha20-Poly1305 | 73 MB/s | 163 MB/s ⚡️ | 128 MB/s | 114 MB/s | 132 MB/s |
1
共 17 条评论, 1 页
评论区
写评论@luozijun,老铁,我给你gmail发邮件了,麻烦看看。
你问的问题太抽象了,我几乎没法回答这种非常抽象的问题。
同时,我认为你不能指望一个密码库来解决你提到的诸多问题。 这些问题大部分其实跟密码库也没有关系,它涉及的是一个加密体系(或者说加密系统)。 这些问题超出了这个库的功能范围。
我能回答的是,我在编写时,有考虑你提到的部分问题,如旁路攻击。但是是否彻底解决了这些潜在类型的攻击呢? 很遗憾,我无法回答这样的假设性问题,我相信其它的那些著名的密码库也无法回答。
至于你提到的一些“低密级环境”、“高安全度环境”等之类的词汇,我想这些词汇都缺乏清晰的定义,也无法去量化。 比如“低密级环境”到底是什么样的环境呢?你能具体地描述出来吗?
最后,我想说的是,crypto2 只是一个密码库,它不是一个加密系统。如何利用一个密码库构建一个理想的加密系统,那不是这个库的工作。
--
👇
johnmave126: 想问一下这个库的使用环境是完全受信,低密级环境,还是不完全受信,高安全度环境。 比如说抗旁路攻击吗? 我理解的话ring/RustCrypto是对分支指令啥的做了hardening的,比较抗旁路攻击。不知道这个库的性能这么快有没有牺牲一部分安全性。
想问一下这个库的使用环境是完全受信,低密级环境,还是不完全受信,高安全度环境。 比如说抗旁路攻击吗? 我理解的话ring/RustCrypto是对分支指令啥的做了hardening的,比较抗旁路攻击。不知道这个库的性能这么快有没有牺牲一部分安全性。
很好的利用了相关的加速指令,同时有良好的代码设计。
--
👇
Eulogizethesun: 为什么快这么多,做了什么改进吗?
Shadowsocks 协议内部使用的是这个 https://github.com/shadowsocks/shadowsocks-crypto ,
当然了
shadowsocks-crypto
基于crypto2
。Ring 提供的密码算法非常有限,
Crypto2
支持在 IANA 注册的所有的 AEAD 密码,同时也支持绝大多数不是那么流行的密码。--
👇
derust: shadowsocks-rs内部使用的?
这个和ring比有什么优势
为什么快这么多,做了什么改进吗?
shadowsocks-rs内部使用的?
这个和ring比有什么优势
放在哪都行吧,反正都是 MIT 协议。
--
👇
Mike Tang: 要不转移到 rustcc 组织下面来?需要的话我拉你入组织。
组织敏感跟库也没关系嘛。
--
👇
jelipo: 这个组织本身就比较敏感,而且看起来这是一个个人项目,没有必要放进去吧
--
👇
LuoZijun: 不好吗?
--
👇
jelipo: 为什么加密库要放在shadowsocks组织下
AES-128-GCM:
https://docs.rs/crypto2/0.1.1/crypto2/aeadcipher/struct.Aes128Gcm.html#method.encrypt_slice
SHA2-256:
https://docs.rs/crypto2/0.1.1/crypto2/hash/struct.Sha256.html#method.update
--
👇
lithbitren: 问一个菜菜问题,这种类型的库加解密内存中字符串以及文本文件怎么实现最合适?能有aes、sha、rsa的例子就更好了。
问一个菜菜问题,这种类型的库加解密内存中字符串以及文本文件怎么实现最合适?能有aes、sha、rsa的例子就更好了。
diao za tian.
要不转移到 rustcc 组织下面来?需要的话我拉你入组织。
这个组织本身就比较敏感,而且看起来这是一个个人项目,没有必要放进去吧
--
👇
LuoZijun: 不好吗?
--
👇
jelipo: 为什么加密库要放在shadowsocks组织下
这速度,的确是快到上天了啊
不好吗?
--
👇
jelipo: 为什么加密库要放在shadowsocks组织下
为什么加密库要放在shadowsocks组织下