私の知る限り、RSA キーは通常、(強力な) ランダム ジェネレーターに基づいて生成されます。
代わりに、パスワードに基づいて作成したいと考えています。
またはむしろそのハッシュ、たとえば sha512(sha512(password+salt)+password+pepper)
これは、JavaScript でクライアント側で行う必要があります。
誰でもこれを行う方法を知っていますか? 与えられた入力に基づいて、決定論的に RSA キーペアを作成する簡単な JavaScript ライブラリはありますか?
(実際には、RSA について言及していますが、安全な非対称暗号化で十分です。必要なのは、パブリック プライベート暗号化だけです)
追加:接続やサーバーに依存する必要のない安全な通信ソリューションを構築しているため、これが必要です。
ランダム キーを使用してすべてのコンテンツを AES で暗号化しています。キーは RSA 暗号化されています。アイデアは、アリスが自分のコンテンツ (または実際には、コンテンツの AES キー) をボブの公開鍵で RSA 暗号化できることです (したがって、ボブの公開鍵はオンラインで保存する必要があります)。
その後、ボブがパスワードを再度入力すると、ブラウザーはその場で決定論的に RSA 秘密鍵と公開鍵を計算し、アリスからコンテンツをダウンロードし、秘密鍵を使用してローカルで復号化できます。