如何为 MAC 密钥生成 OpenID 共享密钥?
基本上,到目前为止,我对这个过程的理解是,我选择一个模数 (p)、一个生成器 (g) 和一个介于 1 和 p-1(含)之间的随机私钥 (xa)。提供者选择一个随机私钥(xb)。共享秘密是 g ^ (xa * xb) mod p = (g ^ xa) ^ xb mod p = (g ^xb) ^ xa mod p。
我已经大约三年没有学过数学了,所以我不知道这意味着什么(一旦 mod 函数被击中),也不知道为什么有三个等号(我最好的猜测是这三个语句需要等于每个其他)。我正在尝试使用 Javascript 为 MAC 密钥生成共享密钥,以针对 Google 服务器执行 OpenID 请求。任何人都可以提供一些帮助或澄清吗?
Basically, my understanding of the process so far is that I choose a modulus (p), a generator (g), and a random private key (xa) that is between 1 and p-1, inclusive. The provider chooses a random private key (xb). The shared secret is g ^ (xa * xb) mod p = (g ^ xa) ^ xb mod p = (g ^xb) ^ xa mod p.
I haven't taken math in about three years, so I have no idea what that means (once the mod function is hit) and have no idea why there are three equals signs (my best guess is that those three statements need to equal each other). I'm trying to use Javascript to generate a shared secret for a MAC key to do OpenID requests against Google's servers. Can anyone offer some assistance or clarification?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您描述的过程称为Diffie-Hellman 密钥交换。您可以找到 javascript 的实现例如,这里。
The process you describe is known as Diffie-Hellman Key Exchange. You can find an implementation for javascript here, for example.