わかりました。Uni の暗号講師が、RSA 鍵生成の講義の最後に頭の体操としてこの質問を投げかけました。
私はこれについて考えてきましたが、方法を思いついたと思います(実用的ではなく、非常に脆弱であることは承知しています-しかし、皆さんに穴を開けてもらいたいです):
RSA を使用して公開鍵と秘密鍵のペアを生成します。
任意の入力を取り、
各文字の ascii 値を加算して出力として与える加法的ハッシュ関数を作成します。(加法的ハッシュは、ex ABC、BAC、ACB のすべてが同じハッシュ出力を持つ恐ろしい分布を持っていることは承知していますが、理論的には、これは私たちの問題を解決するための利点として使用できます)次に、公開鍵を取得し、オン ビットとオフ ビットをごちゃまぜにして、いくつかの可能な鍵を生成します。
これらのごちゃごちゃした鍵を潜在的な顧客に渡します。
ハッシュ関数をサーバーに配置します。
顧客がごちゃごちゃした公開鍵を入力すると、ハッシュ関数
がハッシュを計算します。これは、RSA によって生成された元の公開鍵に似ているはずです。お客様がアクセスします。
これが非常に脆弱で恐ろしいものであることを改めて認識しています。現実世界では使えません。しかし、それは私の講師が提起した質問に答えていますか?
編集:
皆さん、混乱して申し訳ありません。この質問は、衝突や数学のエクスポイティングとは何の関係もありません (これらは間違いなく有効な方法です - しかし、私の講師が言及していたものでもありませんでした - それらは講義自体で議論されました)。私の講師がこの質問をした方法は、「単一の秘密鍵に関連する複数の公開鍵を作成する方法を考え出してください。あなたのソリューションがどれほど脆弱かは気にしないでください」.