<div dir="ltr"><div class="gmail_default" style="font-size:small">I have running code for a threshold key infrastructure but now people want Post Quantum and there is no PQC threshold scheme I can use yet. So I am going to need to use some form of hybrid.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">The basis for threshold is to say that we know we cannot prevent every possible compromise but we can design systems so that *more than one* compromise must occur for a breach to be possible.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">So in the current Mesh code, William creates a working group, Group-W on a key server with members {Alice, Bob, Mallet}. Each member has one half of a key share operation with the service (each user has a different share).</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Mallet can read as much data as he likes for as long as he is a member of the group. But once he has been ejected from the group, he only has a key share, he cannot decrypt any more data unless the service is compromised.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">This still leaves William as a single point of failure so let us split the admin role for the group between William and Mary (not currently implemented but could be)<br></div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">So the possible sets of parties who can compromise the system are</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">* William + Mary</div><div class="gmail_default" style="font-size:small">* Alice + Service</div><div class="gmail_default" style="font-size:small">* Bob + Service</div><div class="gmail_default" style="font-size:small">* Mallet + Service</div><div class="gmail_default" style="font-size:small">* Q</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Where Q is a party capable of performing Quantum Cryptanalysis.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">If we try to use Kyber on its own to defend against Q, we end up with a system with no separation of roles at all beyond splitting the operational role. There are several ways we could go about this but they all force us to choose between security and convenience in ways that are certain to lead to breaches.</div><div class="gmail_default" style="font-size:small"><div class="gmail_default"><br></div></div><div class="gmail_default" style="font-size:small">So, instead of using just Kyber or just X.448 to encrypt data, we create hybrid keypairs with a Kyber and X.448 component. I am currently calling this Kyber-448. There is only one Kyber keypair and the private key is held by the key service. This allows us to achieve the following as possible breach conditions.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small"><div class="gmail_default">* William + Mary</div><div class="gmail_default">* Alice + Service</div><div class="gmail_default">* Bob + Service</div><div class="gmail_default">* Mallet + Service</div><div class="gmail_default">* Q + Service</div></div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">So basically, having the ability to do quantum cryptanalysis does provide the attacker with an advantage but it is a limited one, they cannot achieve a breach unless the service is also breached and we can expect that any party that was deploying this type of infrastructure would also be using HSMs to control access to the private key.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">So for convenience, I am going to be using Kyber-448 and Dilithium-448 as follows:</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Kyber-448 = Kyber-1024 + X.448</div><div class="gmail_default" style="font-size:small">Dilithium-448 = Dilithium-5 + Ed448</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">We could specify Kyber-25519 as well but I cannot see the point. I have never seen the point of AES-192 because everyone is always going to use 128 or go all the way to 256 and I cannot see why anyone who cares enough to use any PQC algorithm doing anything other than the level 5 strength algorithms.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Comments?</div></div>