可扩展ssl/tls库

可扩展ssl/tls库,ssl,encryption,https,parallel-processing,multicore,Ssl,Encryption,Https,Parallel Processing,Multicore,我希望创建能够以最高性能服务于大型https数据流的服务器。大多数cpu负载将采用对称密钥编码(AES、DEC等),这非常适合多核系统的并行化。 我研究过openssl,但它似乎无法做到这一点。是否有任何ssl库能够在多个线程上进行加密/解密?流行的加密协议本质上是顺序的和单cpu的 理论上的解决方案是同时使用多个HTTPS连接,每个连接传输文件的不同部分 实际上,这在web浏览器中没有得到很好的支持。你可以使用下载加速器程序,但这在现在并不常见 但您可以绕过这些限制,但可以将文件拆分为多个部分

我希望创建能够以最高性能服务于大型https数据流的服务器。大多数cpu负载将采用对称密钥编码(AES、DEC等),这非常适合多核系统的并行化。

我研究过openssl,但它似乎无法做到这一点。是否有任何ssl库能够在多个线程上进行加密/解密?

流行的加密协议本质上是顺序的和单cpu的

理论上的解决方案是同时使用多个HTTPS连接,每个连接传输文件的不同部分

实际上,这在web浏览器中没有得到很好的支持。你可以使用下载加速器程序,但这在现在并不常见

但您可以绕过这些限制,但可以将文件拆分为多个部分,每个部分都有自己的URL。但是你仍然需要在最后把这些片段连接起来。如果使用7zip并使用归档模式,则可以指定拆分文件的大小。另一方面,您只需使用7Zip进行解压缩


所以,没有完美的解决方案,但是有很多选择让你考虑。

是不是Web服务器不够好?如何使用线程加密平衡多线程上的服务请求?与网络IO相比,加密是一个瓶颈吗?所以您希望将一个流的解码分发到多个核心,对吗?通常在web服务器上,您有多个请求,因此您可以简单地在核心之间分发请求。顺便说一句:在大多数情况下,解密无法并行化,因为每个块的解密取决于之前的一个(取决于使用的密码模式)。没错,这是一种具有大文件的web服务器,所以我希望尽可能快地为单个连接提供服务。看来你是对的。我知道用于数据加密的AES是分组密码,但似乎每个分组都依赖于前一个分组。