I am designing a Hybrid Key exchange library using x25519 and Kyber, and the scheme I have in mind is as follows:
Alice sending a file/message to Bob:
Bob's Kyber public key + Random Data -> KEM => ciphertext, Kyber shared secret Bob's Ed25519 public key + Alice's Ed25519 Secret Key + Kyber ciphertext -> X25519 => x25519 shared secret Kyber shared secret + X25519 shared secret -> KDF => encryption key
Alice encrypts the file/message using the encryption key and sends it to Bob with the Kyber ciphertext.
Bob receiving a file/message from Alice:
Kyber ciphertext + Bob's secret key -> KEM => Kyber Shared Secret Bob's Ed25519 secret key + Alice's Ed25519 public key -> X25519 => X25519 Shared Secret Kyber shared secret + X25519 shared secret -> KDF => decryption key
Bob decrypts the message using the decryption key.
To simplify the restoration of these keys, I wanted to use the Ed25519 secret key (which is 64 bytes) to derive the Kyber key (specified in draft-schwabe-cfrg-kyber). However, if the Ed25519 key is found by a quantum computer, it can be used to derive the Kyber key as well.
Can using a method like BIP32, which uses CKD to derive multiple elliptic curves from a seed, prevent that from happening?