不依赖DLP或素数分解的Java TLS

提问

我正在使用抗Shor算法的加密技术在Windows上用Java编写文件服务器.

我的绊脚石是SSL / TLS.据我所知,我无法使用标准的Java库,因为套接字加密使用Diffie-Hellman密钥交换,该交换依赖于离散对数问题.

我研究了一种新的(ish)流密码Salsa20,但是安全交换密钥的问题仍然存在.我也看过cyaSSL,但是Java服务提供商不支持Windows,并且不可以选择使用C.

谁能提供任何指示?

最佳答案

有两种通用方法:

>使用预共享密钥

没有密钥交换,没有量子问题.但是现在您需要带外分发共享密钥,因此它可能无法解决问题.
>使用量子证明密钥交换

例如,这里是NTRU的规范(仅草稿,没有实际标准,并且提防专利)

但总的来说,非对称后量子加密似乎还没有准备好生产.