If a single bit was known through all states in AES, which would cause the most information to leak?

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP












18














This question is motivated by some bad Verilog. Due to someone being sloppy with port assignments and a output statement, I have an AES core that has a single-bit from a S-Box in the key schedule tied to a pin. This was caught in my audit of the HDL; however, it's sort of a neat error. Due to the nature of the hardware, I can get 10-bits of information about the key out of it as it's configured for AES-128 and it's a very parallel implementation (it's actually the LSB of the squaring module in the S-Box on the lowest byte of the key). This got me thinking:



If you are an attacker and could watch one bit of AES-128 for 10 rounds, which bit would you choose to recover the most useful information? I feel it would be a bit in the key schedule.










share|improve this question





















  • I assume all states means intra-round, not just inter-round?
    – forest
    Dec 15 at 22:49











  • @forest yes, I was thinking of picking the line from the intermediate data. Just for reference, Figure 5: github.com/bpdegnan/aes/blob/master/aes-sbox/documentation/… They used my description so I got to verify the Verilog
    – b degnan
    Dec 15 at 23:33
















18














This question is motivated by some bad Verilog. Due to someone being sloppy with port assignments and a output statement, I have an AES core that has a single-bit from a S-Box in the key schedule tied to a pin. This was caught in my audit of the HDL; however, it's sort of a neat error. Due to the nature of the hardware, I can get 10-bits of information about the key out of it as it's configured for AES-128 and it's a very parallel implementation (it's actually the LSB of the squaring module in the S-Box on the lowest byte of the key). This got me thinking:



If you are an attacker and could watch one bit of AES-128 for 10 rounds, which bit would you choose to recover the most useful information? I feel it would be a bit in the key schedule.










share|improve this question





















  • I assume all states means intra-round, not just inter-round?
    – forest
    Dec 15 at 22:49











  • @forest yes, I was thinking of picking the line from the intermediate data. Just for reference, Figure 5: github.com/bpdegnan/aes/blob/master/aes-sbox/documentation/… They used my description so I got to verify the Verilog
    – b degnan
    Dec 15 at 23:33














18












18








18


6





This question is motivated by some bad Verilog. Due to someone being sloppy with port assignments and a output statement, I have an AES core that has a single-bit from a S-Box in the key schedule tied to a pin. This was caught in my audit of the HDL; however, it's sort of a neat error. Due to the nature of the hardware, I can get 10-bits of information about the key out of it as it's configured for AES-128 and it's a very parallel implementation (it's actually the LSB of the squaring module in the S-Box on the lowest byte of the key). This got me thinking:



If you are an attacker and could watch one bit of AES-128 for 10 rounds, which bit would you choose to recover the most useful information? I feel it would be a bit in the key schedule.










share|improve this question













This question is motivated by some bad Verilog. Due to someone being sloppy with port assignments and a output statement, I have an AES core that has a single-bit from a S-Box in the key schedule tied to a pin. This was caught in my audit of the HDL; however, it's sort of a neat error. Due to the nature of the hardware, I can get 10-bits of information about the key out of it as it's configured for AES-128 and it's a very parallel implementation (it's actually the LSB of the squaring module in the S-Box on the lowest byte of the key). This got me thinking:



If you are an attacker and could watch one bit of AES-128 for 10 rounds, which bit would you choose to recover the most useful information? I feel it would be a bit in the key schedule.







aes side-channel-attack






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Dec 15 at 16:55









b degnan

1,6851626




1,6851626











  • I assume all states means intra-round, not just inter-round?
    – forest
    Dec 15 at 22:49











  • @forest yes, I was thinking of picking the line from the intermediate data. Just for reference, Figure 5: github.com/bpdegnan/aes/blob/master/aes-sbox/documentation/… They used my description so I got to verify the Verilog
    – b degnan
    Dec 15 at 23:33

















  • I assume all states means intra-round, not just inter-round?
    – forest
    Dec 15 at 22:49











  • @forest yes, I was thinking of picking the line from the intermediate data. Just for reference, Figure 5: github.com/bpdegnan/aes/blob/master/aes-sbox/documentation/… They used my description so I got to verify the Verilog
    – b degnan
    Dec 15 at 23:33
















I assume all states means intra-round, not just inter-round?
– forest
Dec 15 at 22:49





I assume all states means intra-round, not just inter-round?
– forest
Dec 15 at 22:49













@forest yes, I was thinking of picking the line from the intermediate data. Just for reference, Figure 5: github.com/bpdegnan/aes/blob/master/aes-sbox/documentation/… They used my description so I got to verify the Verilog
– b degnan
Dec 15 at 23:33





@forest yes, I was thinking of picking the line from the intermediate data. Just for reference, Figure 5: github.com/bpdegnan/aes/blob/master/aes-sbox/documentation/… They used my description so I got to verify the Verilog
– b degnan
Dec 15 at 23:33











1 Answer
1






active

oldest

votes


















13















If you are an attacker and could watch one bit of AES-128 for 10 rounds, which bit would you choose to recover the most useful information? I feel it would be a bit in the key schedule.




Actually, I'd expect a leak of one of the internal state bits would give the attacker more information.



The key schedule is static, and so if you leak 10 bits, well, you still have (at best) 118 bits of uncertainty in the key; no where close to small enough to be useful for an attacker.



However, if you leak the internal state, you can look at (say) one of the internal state bits after each round. The advantage there is that we can look at the bits for a number of known plaintexts/ciphertexts; this yields considerably more information. After 1 round, an internal bit is a function of the plaintext and 33 key bits; by looking at a number of plaintexts, we can get enough information to deduce those 33 key bits.






share|improve this answer




















  • I might have to look into this more. It's an amazingly small circuit, and honestly, they could have outsourced it and it was an exploit but I don't think so.
    – b degnan
    Dec 15 at 23:35






  • 3




    This is a good answer, but it doesn't really explain how such an attack would work.
    – forest
    Dec 16 at 4:30










Your Answer





StackExchange.ifUsing("editor", function ()
return StackExchange.using("mathjaxEditing", function ()
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix)
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
);
);
, "mathjax-editing");

StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "281"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
noCode: true, onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);













draft saved

draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcrypto.stackexchange.com%2fquestions%2f65890%2fif-a-single-bit-was-known-through-all-states-in-aes-which-would-cause-the-most%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes









13















If you are an attacker and could watch one bit of AES-128 for 10 rounds, which bit would you choose to recover the most useful information? I feel it would be a bit in the key schedule.




Actually, I'd expect a leak of one of the internal state bits would give the attacker more information.



The key schedule is static, and so if you leak 10 bits, well, you still have (at best) 118 bits of uncertainty in the key; no where close to small enough to be useful for an attacker.



However, if you leak the internal state, you can look at (say) one of the internal state bits after each round. The advantage there is that we can look at the bits for a number of known plaintexts/ciphertexts; this yields considerably more information. After 1 round, an internal bit is a function of the plaintext and 33 key bits; by looking at a number of plaintexts, we can get enough information to deduce those 33 key bits.






share|improve this answer




















  • I might have to look into this more. It's an amazingly small circuit, and honestly, they could have outsourced it and it was an exploit but I don't think so.
    – b degnan
    Dec 15 at 23:35






  • 3




    This is a good answer, but it doesn't really explain how such an attack would work.
    – forest
    Dec 16 at 4:30















13















If you are an attacker and could watch one bit of AES-128 for 10 rounds, which bit would you choose to recover the most useful information? I feel it would be a bit in the key schedule.




Actually, I'd expect a leak of one of the internal state bits would give the attacker more information.



The key schedule is static, and so if you leak 10 bits, well, you still have (at best) 118 bits of uncertainty in the key; no where close to small enough to be useful for an attacker.



However, if you leak the internal state, you can look at (say) one of the internal state bits after each round. The advantage there is that we can look at the bits for a number of known plaintexts/ciphertexts; this yields considerably more information. After 1 round, an internal bit is a function of the plaintext and 33 key bits; by looking at a number of plaintexts, we can get enough information to deduce those 33 key bits.






share|improve this answer




















  • I might have to look into this more. It's an amazingly small circuit, and honestly, they could have outsourced it and it was an exploit but I don't think so.
    – b degnan
    Dec 15 at 23:35






  • 3




    This is a good answer, but it doesn't really explain how such an attack would work.
    – forest
    Dec 16 at 4:30













13












13








13







If you are an attacker and could watch one bit of AES-128 for 10 rounds, which bit would you choose to recover the most useful information? I feel it would be a bit in the key schedule.




Actually, I'd expect a leak of one of the internal state bits would give the attacker more information.



The key schedule is static, and so if you leak 10 bits, well, you still have (at best) 118 bits of uncertainty in the key; no where close to small enough to be useful for an attacker.



However, if you leak the internal state, you can look at (say) one of the internal state bits after each round. The advantage there is that we can look at the bits for a number of known plaintexts/ciphertexts; this yields considerably more information. After 1 round, an internal bit is a function of the plaintext and 33 key bits; by looking at a number of plaintexts, we can get enough information to deduce those 33 key bits.






share|improve this answer













If you are an attacker and could watch one bit of AES-128 for 10 rounds, which bit would you choose to recover the most useful information? I feel it would be a bit in the key schedule.




Actually, I'd expect a leak of one of the internal state bits would give the attacker more information.



The key schedule is static, and so if you leak 10 bits, well, you still have (at best) 118 bits of uncertainty in the key; no where close to small enough to be useful for an attacker.



However, if you leak the internal state, you can look at (say) one of the internal state bits after each round. The advantage there is that we can look at the bits for a number of known plaintexts/ciphertexts; this yields considerably more information. After 1 round, an internal bit is a function of the plaintext and 33 key bits; by looking at a number of plaintexts, we can get enough information to deduce those 33 key bits.







share|improve this answer












share|improve this answer



share|improve this answer










answered Dec 15 at 19:36









poncho

90.2k2139233




90.2k2139233











  • I might have to look into this more. It's an amazingly small circuit, and honestly, they could have outsourced it and it was an exploit but I don't think so.
    – b degnan
    Dec 15 at 23:35






  • 3




    This is a good answer, but it doesn't really explain how such an attack would work.
    – forest
    Dec 16 at 4:30
















  • I might have to look into this more. It's an amazingly small circuit, and honestly, they could have outsourced it and it was an exploit but I don't think so.
    – b degnan
    Dec 15 at 23:35






  • 3




    This is a good answer, but it doesn't really explain how such an attack would work.
    – forest
    Dec 16 at 4:30















I might have to look into this more. It's an amazingly small circuit, and honestly, they could have outsourced it and it was an exploit but I don't think so.
– b degnan
Dec 15 at 23:35




I might have to look into this more. It's an amazingly small circuit, and honestly, they could have outsourced it and it was an exploit but I don't think so.
– b degnan
Dec 15 at 23:35




3




3




This is a good answer, but it doesn't really explain how such an attack would work.
– forest
Dec 16 at 4:30




This is a good answer, but it doesn't really explain how such an attack would work.
– forest
Dec 16 at 4:30

















draft saved

draft discarded
















































Thanks for contributing an answer to Cryptography Stack Exchange!


  • Please be sure to answer the question. Provide details and share your research!

But avoid


  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.

Use MathJax to format equations. MathJax reference.


To learn more, see our tips on writing great answers.





Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


Please pay close attention to the following guidance:


  • Please be sure to answer the question. Provide details and share your research!

But avoid


  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcrypto.stackexchange.com%2fquestions%2f65890%2fif-a-single-bit-was-known-through-all-states-in-aes-which-would-cause-the-most%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown






Popular posts from this blog

How to check contact read email or not when send email to Individual?

Displaying single band from multi-band raster using QGIS

How many registers does an x86_64 CPU actually have?