-
Notifications
You must be signed in to change notification settings - Fork 89
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Zkt: explicitely consider timing dependences across several instructions #136
Comments
Good catch, the spec could certainly be clearer here. The intent with Zkt is that it only the core functionality of the instructions is in scope. Everything outside of that from branch target buffers to caches to the kinds of fusion / substitution and OoO optimisations you describe here are out of scope. I figure we can add some text to the spec which makes it clear the example you describe is not considered. @mjosaarinen - Have I got that right? Cheers, |
- See #136 for context. On branch dev/next-release Your branch is up-to-date with 'origin/dev/next-release'. Changes to be committed: modified: doc/scalar/riscv-crypto-scalar-zkt.adoc
- See #136 for context. On branch dev/next-release Your branch is up-to-date with 'origin/dev/next-release'. Changes to be committed: modified: doc/scalar/riscv-crypto-scalar-zkt.adoc
Proposed clarifying words for Zkt addressing #136
Closed with the merge of #137 |
The Concern
The Public Review raised the concern that
Data dependent optimizations are possible at the level of a block of instructions, but the Zkt extension does not mention what is authorized in this case; or if it is out of scope.
Made-up example:
At runtime, the processor observes that a5 = a2, and that a3, a6 are overwritten just after. It can replace the instructions with
The instructions are compliant with Zkt, but timing leakage still occurs.
This particular optimization may not exist, but similar data dependent optimizations are often performed in OoO cores.
The recommendation
Explicitly state what is in scope of the extension concerning blocks of instructions. If in scope, decide what is authorized.
The text was updated successfully, but these errors were encountered: