あなたが話しているのは、RSA-PAKEに似た ゼロ知識証明 (より具体的には [〜#〜] zkpp [〜#〜] )です。
RSAを安全に実装する一般的な問題を無視すると、提案したスキームにいくつかの問題があります。
- 鍵交換を見ている攻撃者はcを知っているので、cの値がh nより小さい場合は、r = ch mod n = ch。これから攻撃者はcを回復しますh、ログを計算できますc(ch)hを回復してオフラインでクラックする。
- サーバーは認証されないため、攻撃者はおそらく上記の攻撃や他の攻撃に有利なcの値を選択する可能性があります。
- Eはφ(n)に対して比較的素である必要があるため、ハッシュ関数の生の結果を使用してeを選択することはできません。したがって、eが安全な値であることを確認するには、何らかの操作を行う必要があります。この操作によってハッシュの安全性が過度に低下しないことを確認する必要があります。
- サーバーmustクライアントから送信された初期設定値を検証します。検証しない場合、不正なキーの生成または操作が原因でスキーム全体が壊れる可能性があります。ゼロ知識を維持しながらこれを行うのは困難です。
- E-residue攻撃など、攻撃者がeの値をインタラクティブに選択できるスキームには、いくつかの潜在的な攻撃があります。
- これらの操作の一部では、エラーサイドチャネルとタイミングサイドチャネルに注意する必要があります。
おそらく見たいのは [〜#〜] srp [〜#〜] のようなプロトコルで、これらの問題のほとんどを回避しながらZKPP認証を処理します。