How would one go about using vanilla keyed Blake2B as a KDF with high-entropy inputs. Assume I don't have access to more specialized algorithms such blake2XB, HKDF, etc.
- Salt - high entropy per-encryption salt (32 bytes)
- IKM - high entropy static input keying material (32 bytes)
- Info - a personalization string for the key being derived
Would a construction such as Blake2B(input: $(\text{Salt} \parallel \text{Info})$, key: $\text{IKM}$) be sound?
Taking into account that Blake2 is not prone to length extension attacks, how does the aforementioned construction compare to Blake2B(input: $(\text{Salt} \parallel \text{Info} \parallel \text{IKM})$)?
Blake2B(input: (Salt || Info), key: IKM)
- how is the key input into blake2b? Also, NIST has a perfectly fine KDF construction using hash and counter (typically SHA512) which could readily be used with any secure hash algorithm. $\endgroup$