Balloon-BLAKE2b + HKDF KEM. => Balloon => RFC 7693, BLAKE2b => RFC 5869, HKDF balloon-cost { {field . {map}} {field s {int} >0} {# space cost} {field t {int} >0} {# time cost} {field p {int} >0} {# parallel cost} } kem-balloon-blake2b-hkdf { {field . {map}} {field a {str} =balloon-blake2b-hkdf} {field cek {bin} >0} {# wrapped CEK} {field salt {bin} >0} {field cost {with balloon-cost}} } H = BLAKE2b KEK = HKDF-Expand(H, prk=Balloon(H, passphrase, /kem/salt, s, t, p), info="cm/encrypted/balloon-blake2b-hkdf" || /id) "/kem/*/cek" is wrapped with [cm/keywrap/xchapoly] mechanism.