我正在寻找一个可交换的密码 - 就是这样
E(K?,E(K?,P)) = E(K?,E(K?,P))
Run Code Online (Sandbox Code Playgroud)
但不是联想 - 也就是说
E(K,P) ? E(P,K)
Run Code Online (Sandbox Code Playgroud)
这排除了XOR,否则本来可以.
对称密码是优选的,但非对称密码也可以工作.
我想要实现的基本协议是:
有人可以建议我可以使用的密码并指出我对该密码的实现吗?
我对加密协议和应用程序有所了解,但我并没有真正了解大多数密码的数学.虽然分步数学指南也可以.
我计划在Clojure中实现它,所以任何Java库也都很好.但是,任何代码都很好,因为我理解代码.
听起来您好像正在尝试实施“ Mental Poker”(或者,如果没有,您应该对它进行研究,因为它与您的问题无关)。
SRA算法具有您所需的属性。这是一个有点难以找到的信息,但它本质上是不同的,只是RSA 两者的e和d指数都秘而不宣。琐碎地:
(P e1)e2 ==(P e2)e1