Hacker News new | past | comments | ask | show | jobs | submit login

branch-free is helpful but not a cure all. Any operation that takes a time variable on its input is subject to leaking information. Many X86 instructions appear to be constant time, but under certain conditions are not. So even when used in a branch-free style, information can still leak depending on the data and the instructions used.



Many X86 instructions appear to be constant time, but under certain conditions are not.

One not-so-well-known and possibly surprising fact is that on the NetBurst (P4) microarchitecture, 32-bit arithmetic operations that produce a carry/borrow between the two 16-bit halves introduce an extra clock cycle of latency, because the ALUs are only 16 bits wide.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: