Related articles |
---|
Crypto friendly optimization? johnl@taugh.com (John R Levine) (2024-08-24) |
Re: Crypto friendly optimization? Keith.S.Thompson+u@gmail.com (Keith Thompson) (2024-08-24) |
Re: Crypto friendly optimization? ianlancetaylor@gmail.com (Ian Lance Taylor) (2024-08-24) |
Re: Crypto friendly optimization? Keith.S.Thompson+u@gmail.com (Keith Thompson) (2024-08-24) |
Re: Crypto friendly optimization? david.brown@hesbynett.no (David Brown) (2024-08-25) |
Re: Crypto friendly optimization? anton@mips.complang.tuwien.ac.at (2024-08-25) |
Re: Crypto friendly optimization? david.brown@hesbynett.no (David Brown) (2024-08-25) |
From: | Keith Thompson <Keith.S.Thompson+u@gmail.com> |
Newsgroups: | comp.compilers |
Date: | Sat, 24 Aug 2024 16:33:42 -0700 |
Organization: | Compilers Central |
References: | 24-08-003 |
Injection-Info: | gal.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970"; logging-data="25851"; mail-complaints-to="abuse@iecc.com" |
Keywords: | optimize, C, comment |
Posted-Date: | 24 Aug 2024 22:42:55 EDT |
John R Levine <johnl@taugh.com> writes:
> On a cryptography list people were complaining that compiler optimizers
> mess up their cryptographic code and make it insecure. They try to write
> code that runs in constant time, or that erases all the temporary storage,
> but the compilers say oh, that's dead code, or oh, I can make this faster
> with a few branches and the erases go away and the constatnt time isn't.
>
> This 2018 paper from Cambridge discusses changes they made to Clang/LLVM
> so they could tell the compiler what they wanted it to do. Has there been
> other work on this topic?
>
C23 will add the memset_explicit() function :
The memset_explicit function copies the value of c (converted to an
unsigned char) into each of the first n characters of the object
pointed to by s. The purpose of this function is to make sensitive
information stored in the object inaccessible.
I'm not aware of any current implementations that support it.
--
Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com
void Void(void) { Void(); } /* The recursive call of the void */
[C11 has memset_s() which seems more or less the same thing.
I put the wrong link in the previous message. The paper is
here: https://ieeexplore.ieee.org/document/8406587 -John]
Return to the
comp.compilers page.
Search the
comp.compilers archives again.