4. The Rijndael family requires storing the key schedule in RAM for good performance — because changing key is an expensive process. This creates vulnerability to cold boot attacks. Kamal and Youssef (SECURWARE 2010) demonstrated that having the full key schedule in memory makes key recovery much easier despite bit decay. Any new design should improve upon this.
Hi Jacob, there are a few errors here, if I may.
On Sunday, June 29, 2025 at 12:35:00 PM UTC+2 Roberto Avanzi wrote:Hi Jacob, there are a few errors here, if I may.The attack has been demoed, never heard of it used in the wild, there are physical access attacks that are way easier to pull off, like hardware keyloggers. In any case, you do not actually prevent it, it simply takes a slightly earlier boot, or multiple attacks, each recovering part of the data.
On your second point I completely agree, and that is also why I feel comfortable recommending switching to a CSPRNG key schedule for an AES-like construction, unless there is some very specific design constraint that makes random data unsuitable there is really no way the CSPRNG could be worse than whatever else you might suggest, at worst the security is equal.
Look, if you can prove anything in symmetric primitives it generally means you are wasting computation trying to fit the algorithm to a proof, and you still only end up with a proof of type "secure if [unprovable conjecture] is true".
Saying you can prove something with a lightweight schedule but not with a CSPRNG is the exact opposite position of your second point.
As for hardware acceleration, the model of simply providing a round function seems to work really well, the potential performance is more than plenty, so I don't see why CPU manufacturers would waste silicon building all-rounds instructions.
> I feel comfortable recommending switching to a CSPRNG key schedule for an AES-like construction, unless there is some very specific design constraint that makes random data unsuitable there is really no way the CSPRNG could be worse than whatever else you might suggest, at worst the security is equal.
I don't know precisely what you mean with a "CSPRNG" here, but I assume that it would be something requiring a relatively large circuit area, some memory (AES key schedule can be implemented "on the fly" requires no memory), and increased key switching latency. This sounds like a bad idea from a practical use perspective for many, many reasons. A hardware module would require hundreds of thousands of gates. Furthermore it would not be easy to use a cipher like that very embedded systems, or in a device that requires rapid context switching, such as a CDN server or a network router that has to handle thousands of simultaneous connections.
--
To unsubscribe from this group, send email to ciphermodes-fo...@list.nist.gov
View this message at https://list.nist.gov/ciphermodes-forum
To unsubscribe from this group and stop receiving emails from it, send an email to ciphermodes-fo...@list.nist.gov.
I have used this in the wild, back when it was still possible.
On 29. Jun 2025, at 20:00, Jacob Christian Munch-Andersen <ebusin...@gmail.com> wrote:I have used this in the wild, back when it was still possible.Wild thing to admit in public, but ok.
In any case, it sounds like this attack is being taken care of in the place where it should be, namely the hardware and OS, putting a measure that doesn't really work in the cipher should be moot.
> Most attacks have a complexity bounded by those of a differential cryptanalysis attack — some may be ore efficient but there is normally a bound. So you use various mathematical tools to find the most efficient non related-key/related-key differential cryptanalysis attack, and there give you a bound on the complexity. I am quite sure that Nicky Mouha would have something to say about these techniques to estimate attack complexity.That gives you an estimate, not a proof, and if your estimate says that attacks should be easier against a CSPRNG than a lightweight key scheduler there is probably something wrong with your estimate.
> I don't know precisely what you mean with a "CSPRNG" hereAnything meeting the standard cryptographic requirements of random number generation.> but I assume that it would be something requiring a relatively large circuit areaMainly I just wouldn't dedicate specific circuitry for the function, it shouldn't need to run that often.A normal CDN server will have absolutely no problem storing an expanded key per connected user, and generating 30x128 bits or however much it is is trivial relative to the handshake.
The Intel key locker is an interesting case, but do note that there is not actually that much silicon in it, it is one master key in a special register, and then a bunch of microcode to use the normal ALUs for the operations. A more elaborate key schedule would be slower, but it would not require more hardware. Then again, if you wanted to make this operation as fast as possible you might cache the expanded key in the hardware register file anyway, in which case the key schedule overhead only occurs on the first of a series of calls.
Overall I guess there might be cases where a lighter key schedule is desirable, but you are both way overstating it, it has to be a case where you for some reason can't store the expanded key, and you don't operate in bursts long enough that one key expansion is negligible. If we are talking usage in TLS I don't see a case where it matters, the thing you want hardware security for is the asymmetric keys, not the ephemeral symmetric keys.On a broader note I will add that the optimal cipher in my view is something like AEGIS, encryption and authentication packed in one, the static key replaced with a mutating state, and accelerated by instructions present in most modern CPUs. The only thing I might ask for is that some of the speed gain could have been traded for a higher security margin. And I assume we all agree that the 256 bit Rijndael proposal is plain bad,
there are just parts of your reasoning I didn't find convincing.