Soweit ich verstehe, RSA-Schlüssel werden in der Regel basierend auf einem (starken) Zufallsgenerator generiert.Generieren RSA-Schlüsselpaar in Javascript, basierend auf einem Kennwort
Stattdessen möchte ich sie basierend auf einem Kennwort erstellen.
Oder vielmehr auf seinem Hash, zum Beispiel sha512 (sha512 (Passwort + Salz) + Passwort + Pfeffer)
Dieses Client-Seite getan werden muss, in JavaScript.
Würde jemand wissen, wie man das macht? Gibt es eine einfache JavaScript-Bibliothek, die RSA-Schlüsselpaare basierend auf einer gegebenen Eingabe deterministisch erstellt?
(Eigentlich ist mich zu erwähnen RSA aber jede sichere asymmetrische Verschlüsselung ausreichen würde, ich brauche nur öffentlich-private Verschlüsselung)
Zusatz: ich das brauche, weil ich eine sichere Kommunikationslösung baute, Das muss sich nicht auf die Verbindung oder sogar den Server verlassen, um sicher zu sein.
Ich verschlüssele alle Inhalte mit AES mit zufälligen Schlüsseln, und die Schlüssel sind RSA-verschlüsselt. Die Idee ist, dass Alice ihren Inhalt (oder eigentlich den AES-Schlüssel für ihren Inhalt) mit Bobs öffentlichem Schlüssel RSA-verschlüsseln kann (daher muss Bobs öffentlicher Schlüssel online gespeichert werden).
Später, wenn Bob sein Passwort erneut eingibt, kann sein Browser deterministisch seinen öffentlichen RSA-Schlüssel & an Ort und Stelle berechnen, den Inhalt von Alice herunterladen und ihn mit seinem privaten Schlüssel lokal entschlüsseln.
Erstellen von RSA-Schlüsseln mit JavaScript? Ich erinnere mich daran, es selbst zu versuchen. Es hat meine ganze Erinnerung verschlungen und dauerte ewig um zu berechnen. Ich wechselte dann zu Java. – Amberlamps
Ein anderes asymmetrisches Verschlüsselungsschema als RSA wäre ebenfalls in Ordnung. Aber ich muss die Schlüssel clientseitig erzeugen und Daten (mit privatem Schlüssel) vor dem Senden verschlüsseln. Der öffentliche Schlüssel wird serverseitig gespeichert.Ich weiß nicht, ob ECC-Ansätze schneller sind. –
@SheldonPinkman Verschlüsselung erfolgt mit öffentlichen Schlüssel, nicht privat. Konsequent ist Ihre Idee fehlerhaft. –