我正在Windows上用Java编写文件服务器,使用的是对Shor算法有抵抗力的加密。
我的绊脚石是SSL / TLS。从我可以收集到的,我不能使用标准的Java库,因为套接字加密使用Diffie-Hellman密钥交换,它依赖于离散对数问题。
我查看了Salsa20,一个新的(ish)流密码,但是安全地交换密钥的问题仍然存在。我也看过cyaSSL,但Java服务提供商不支持Windows,使用C不是一个选项。
任何人都可以提供任何指示吗?
答案 0 :(得分:3)
有两种通用方法:
使用预共享密钥
没有密钥交换,没有量子问题。但现在你需要在带外分发共享密钥,因此它可能无法解决问题。
使用量子证明密钥交换
例如,这里是NTRU的规范(只有草案,没有真正的标准,并提防专利)
但总的来说,不对称的后量子加密似乎并没有准备就绪。
答案 1 :(得分:1)
前景黯淡。
有一些非对称加密系统基于难以解决的问题,而不是DLP或因子问题。例如,GGH Cryptosystem基于最接近向量的难题。您会发现有很多签名方案可以抵抗量子加密,但不是很多加密系统,而且确实存在的加密系统似乎都存在安全问题。
至于将GGH和Lamport Signatures作为SSL的提供者插入Java,这完全是另一个问题。你必须了解JCE的工作原理并做大量的工作。