2010-11-27 4 views
0

Grundsätzlich verstehe ich den Prozess so weit, dass ich einen Modulus (p), einen Generator (g) und einen zufälligen privaten Schlüssel (xa) wähle, der zwischen 1 und p-1 liegt. Der Anbieter wählt einen zufälligen privaten Schlüssel (xb). Das gemeinsame Geheimnis ist g^(xa * xb) mod p = (g^xa)^xb mod p = (g^xb)^xa mod p.Wie generiere ich einen OpenID Shared Secret für einen MAC Schlüssel?

Ich habe Mathe in etwa drei Jahren nicht genommen, also habe ich keine Ahnung, was das bedeutet (sobald die Mod-Funktion getroffen wird) und habe keine Ahnung, warum es drei Gleichheitszeichen gibt (meine beste Schätzung sind diese drei Aussagen) müssen einander gleichen). Ich versuche, Javascript zu verwenden, um einen gemeinsamen geheimen Schlüssel für einen MAC-Schlüssel zu generieren, um OpenID-Anfragen an die Google-Server zu richten. Kann jemand Hilfe oder Aufklärung anbieten?

+1

Die drei Aussagen stimmen überein. Nehmen Sie den Generatorwert zur zufälligen Schlüsselleistung des Anbieters, und berechnen Sie dann die Leistung des zufälligen privaten Schlüssels und erhalten Sie den Rest, nachdem Sie diesen Wert durch p geteilt haben. – stevebot

+0

Sollten diese Schlüssel nicht von der OpenID-Bibliothek verwaltet werden? Schreiben Sie eine Bibliothek für die OpenID-Anmeldung? – timdream

+0

timdream: Ja, bin ich. :) – Paddy

Antwort

2

Der von Ihnen beschriebene Prozess ist als Diffie-Hellman Key Exchange bekannt. Sie können zum Beispiel eine Implementierung für Javascript here finden.

Verwandte Themen