CryptoAPIを使用して秘密キーを作成し、シードする方法はありますか?
-
08-07-2019 - |
質問
2つの平文キーからシードされた秘密キーを作成する必要があります。 2つの平文キーは、異なるマネージャーによって管理されます。これは、私たちが持っている二重管理の主要要件を満たすためです。 2つのキーを1つのシードに結合できます。ただし、Microsoft CryptoAPIドキュメントを読むと、すべてのキー生成は完全にランダムであり、シードを提供する方法はありません。これは本当ですか?はいの場合、このキーを作成するための代替ソリューションを提案できますか?
注:キーはキーコンテナに保存され、エクスポート不可としてマークされます。
解決
なぜ逆にしないのですか?秘密鍵を生成し、それを2つの鍵共有に分割します。各マネージャーには1つしかありません。単純な2-out-of-2スキームの場合、必要なことは、キーのサイズのランダムな(擬似ランダムではなく、本当にランダムな)データのブロックを生成し、生成されたキーとxorし、1人のマネージャーを与えることですランダムデータ、および他のマネージャーが暗号化されたキー。
次に、キーを使用する必要がある場合、両方のマネージャーがデータを提供し、そこからデータを再構築し、完了したら削除します。
所属していません StackOverflow