


(That doesn't prove that there aren't any, of course.) If the data never changed, and assuming that the keys were effectively independent (or at least independent enough to avoid related-key attacks), this could be secure indeed, even if the data did sometimes change, all that observing multiple versions of the encrypted data would leak is whether the value of a particular byte matched an earlier value of the same byte.Īlas, I'm not aware of any fast, key-agile 8-bit block ciphers with a good track record of resisting cryptanalysis. If you had a fast, key-agile block cipher, you could in theory make this attack a lot harder by using a separate key (typically, generated "on the fly" from a master key and the byte address) to encrypt each byte. In fact, even if the attacker only had access to the encrypted data, they could most likely still decrypt much of it simply by comparing the frequencies of different encrypted bytes, and the patterns in which the bytes occur, with known examples of typical BIOS contents. Thus, an attacker who can even occasionally guess the unencrypted value of some bytes (or, worse yet, can control the bytes to be encrypted) can easily learn which unencrypted byte corresponds to many, if not all, the encrypted bytes. That's because there are only 256 possible values for an 8-bit byte, and a block cipher will map each of these values to a different fixed value. First of all, there's no such thing as a secure 8-bit block cipher, at least not as such things are conventionally used.
