Re: Crypto friendly optimization?

Keith Thompson <Keith.S.Thompson+u@gmail.com>
Sat, 24 Aug 2024 16:33:42 -0700

          From comp.compilers

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)
| List of all articles for this month |
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]


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.