If a single bit was known through all states in AES, which would cause the most information to leak?
Clash Royale CLAN TAG#URR8PPP
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
add a comment |
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
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
add a comment |
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
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
aes side-channel-attack
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
add a comment |
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
add a comment |
1 Answer
1
active
oldest
votes
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.
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
add a comment |
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
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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.
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
add a comment |
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.
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
add a comment |
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.
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.
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
add a comment |
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
add a comment |
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.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
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