我一直在用 Java(我的首选编程语言)尝试一些基本的加密技术,并有一个简单的例子,它使用模幂在两个客户端对之间生成共享密钥。
但是,给定一个共享的秘密,有哪些易于实现(但安全)的方法来实际使用这个秘密来加密/解密或加扰/解扰通过网络发送的数据?
例如,如果我有字符串:
"So long, and thanks for all the fish"
和共享秘密(BigInteger
):
1110278255331388386297296974141977
如何以允许客户端相互理解的方式通过网络发送字符串,同时确保没有共享秘密,没有中间人可以解释它?
我不是要求完成的实现,只是对可以使用的算法/技术的想法或参考。我也避免依赖现有的程序或 API(如公钥/私钥),因为这只是我自己的教育目的的一个副项目。