< 返回版块

LuoZijun 发表于 2020-12-21 21:30

Tags:Crypto

项目: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

评论区

写评论
Mike Tang 2021-03-01 10:45

@luozijun,老铁,我给你gmail发邮件了,麻烦看看。

作者 LuoZijun 2021-02-28 02:58

你问的问题太抽象了,我几乎没法回答这种非常抽象的问题。

同时,我认为你不能指望一个密码库来解决你提到的诸多问题。 这些问题大部分其实跟密码库也没有关系,它涉及的是一个加密体系(或者说加密系统)。 这些问题超出了这个库的功能范围。

我能回答的是,我在编写时,有考虑你提到的部分问题,如旁路攻击。但是是否彻底解决了这些潜在类型的攻击呢? 很遗憾,我无法回答这样的假设性问题,我相信其它的那些著名的密码库也无法回答。

至于你提到的一些“低密级环境”、“高安全度环境”等之类的词汇,我想这些词汇都缺乏清晰的定义,也无法去量化。 比如“低密级环境”到底是什么样的环境呢?你能具体地描述出来吗?

最后,我想说的是,crypto2 只是一个密码库,它不是一个加密系统。如何利用一个密码库构建一个理想的加密系统,那不是这个库的工作。

--
👇
johnmave126: 想问一下这个库的使用环境是完全受信,低密级环境,还是不完全受信,高安全度环境。 比如说抗旁路攻击吗? 我理解的话ring/RustCrypto是对分支指令啥的做了hardening的,比较抗旁路攻击。不知道这个库的性能这么快有没有牺牲一部分安全性。

johnmave126 2021-02-02 14:03

想问一下这个库的使用环境是完全受信,低密级环境,还是不完全受信,高安全度环境。 比如说抗旁路攻击吗? 我理解的话ring/RustCrypto是对分支指令啥的做了hardening的,比较抗旁路攻击。不知道这个库的性能这么快有没有牺牲一部分安全性。

作者 LuoZijun 2020-12-25 07:09

很好的利用了相关的加速指令,同时有良好的代码设计。

--
👇
Eulogizethesun: 为什么快这么多,做了什么改进吗?

作者 LuoZijun 2020-12-25 07:08

Shadowsocks 协议内部使用的是这个 https://github.com/shadowsocks/shadowsocks-crypto ,

当然了 shadowsocks-crypto 基于 crypto2

Ring 提供的密码算法非常有限,Crypto2 支持在 IANA 注册的所有的 AEAD 密码,同时也支持绝大多数不是那么流行的密码。

--
👇
derust: shadowsocks-rs内部使用的?

这个和ring比有什么优势

Eulogizethesun 2020-12-24 14:48

为什么快这么多,做了什么改进吗?

derust 2020-12-24 10:52

shadowsocks-rs内部使用的?

这个和ring比有什么优势

作者 LuoZijun 2020-12-23 14:18

放在哪都行吧,反正都是 MIT 协议。

--
👇
Mike Tang: 要不转移到 rustcc 组织下面来?需要的话我拉你入组织。

作者 LuoZijun 2020-12-23 14:18

组织敏感跟库也没关系嘛。

--
👇
jelipo: 这个组织本身就比较敏感,而且看起来这是一个个人项目,没有必要放进去吧

--
👇
LuoZijun: 不好吗?

--
👇
jelipo: 为什么加密库要放在shadowsocks组织下

作者 LuoZijun 2020-12-23 14:17

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的例子就更好了。

lithbitren 2020-12-22 21:32

问一个菜菜问题,这种类型的库加解密内存中字符串以及文本文件怎么实现最合适?能有aes、sha、rsa的例子就更好了。

Mike Tang 2020-12-22 11:34

diao za tian.

Mike Tang 2020-12-22 11:33

要不转移到 rustcc 组织下面来?需要的话我拉你入组织。

jelipo 2020-12-22 10:51

这个组织本身就比较敏感,而且看起来这是一个个人项目,没有必要放进去吧

--
👇
LuoZijun: 不好吗?

--
👇
jelipo: 为什么加密库要放在shadowsocks组织下

jonirrings 2020-12-22 10:19

这速度,的确是快到上天了啊

作者 LuoZijun 2020-12-22 00:13

不好吗?

--
👇
jelipo: 为什么加密库要放在shadowsocks组织下

jelipo 2020-12-21 23:09

为什么加密库要放在shadowsocks组织下

1 共 17 条评论, 1 页