{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,2,10]],"date-time":"2026-02-10T16:56:06Z","timestamp":1770742566481,"version":"3.49.0"},"reference-count":51,"publisher":"Association for Computing Machinery (ACM)","issue":"2","license":[{"start":{"date-parts":[[2023,6,26]],"date-time":"2023-06-26T00:00:00Z","timestamp":1687737600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"DOI":"10.13039\/501100006366","name":"Brazilian Ministry of Education","doi-asserted-by":"crossref","id":[{"id":"10.13039\/501100006366","id-type":"DOI","asserted-by":"crossref"}]},{"DOI":"10.13039\/501100003593","name":"CNPq","doi-asserted-by":"crossref","award":["406377\/2018-9"],"award-info":[{"award-number":["406377\/2018-9"]}],"id":[{"id":"10.13039\/501100003593","id-type":"DOI","asserted-by":"crossref"}]},{"DOI":"10.13039\/501100004901","name":"FAPEMIG","doi-asserted-by":"crossref","award":["PPM-00333-18"],"award-info":[{"award-number":["PPM-00333-18"]}],"id":[{"id":"10.13039\/501100004901","id-type":"DOI","asserted-by":"crossref"}]},{"DOI":"10.13039\/501100002322","name":"CAPES","doi-asserted-by":"crossref","id":[{"id":"10.13039\/501100002322","id-type":"DOI","asserted-by":"crossref"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Program. Lang. Syst."],"published-print":{"date-parts":[[2023,6,30]]},"abstract":"<jats:p>Partial control-flow linearization is a code transformation conceived to maximize work performed in vectorized programs. In this article, we find a new service for it. We show that partial control-flow linearization protects programs against timing attacks. This transformation is sound: Given an instance of its public inputs, the partially linearized program always runs the same sequence of instructions, regardless of secret inputs. Incidentally, if the original program is publicly safe, then accesses to the data cache will be data oblivious in the transformed code. The transformation is optimal: Every branch that depends on some secret data is linearized; no branch that depends on only public data is linearized. Therefore, the transformation preserves loops that depend exclusively on public information. If every branch that leaves a loop depends on secret data, then the transformed program will not terminate. Our transformation extends previous work in non-trivial ways. It handles C constructs such as \u201cgoto,\u201d \u201cbreak,\u201d \u201cswitch,\u201d and \u201ccontinue,\u201d which are absent in the FaCT domain-specific language (2018). Like Constantine (2021), our transformation ensures operation invariance but without requiring profiling information. Additionally, in contrast to SC-Eliminator (2018) and Lif (2021), it handles programs containing loops whose trip count is not known at compilation time.<\/jats:p>","DOI":"10.1145\/3594736","type":"journal-article","created":{"date-parts":[[2023,5,3]],"date-time":"2023-05-03T12:27:35Z","timestamp":1683116855000},"page":"1-43","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":9,"title":["Side-channel Elimination via Partial Control-flow Linearization"],"prefix":"10.1145","volume":"45","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-9579-8427","authenticated-orcid":false,"given":"Luigi","family":"Soares","sequence":"first","affiliation":[{"name":"UFMG, Brazil"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-7882-0787","authenticated-orcid":false,"given":"Michael","family":"Canesche","sequence":"additional","affiliation":[{"name":"UFMG, Brazil"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-0375-1657","authenticated-orcid":false,"given":"Fernando Magno Quint\u00e3o","family":"Pereira","sequence":"additional","affiliation":[{"name":"UFMG, Brazil"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2023,6,26]]},"reference":[{"key":"e_1_3_4_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/325694.325702"},{"key":"e_1_3_4_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/567067.567085"},{"key":"e_1_3_4_4_1","doi-asserted-by":"publisher","DOI":"10.5555\/3241094.3241100"},{"key":"e_1_3_4_5_1","doi-asserted-by":"publisher","DOI":"10.1109\/SP40000.2020.00028"},{"key":"e_1_3_4_6_1","volume-title":"Modern Compiler Implementation in Java","author":"Appel Andrew W.","year":"1997","unstructured":"Andrew W. Appel. 1997. Modern Compiler Implementation in Java. Cambridge University Press."},{"key":"e_1_3_4_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/2660267.2660322"},{"key":"e_1_3_4_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/3371075"},{"key":"e_1_3_4_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/3460120.3484761"},{"key":"e_1_3_4_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/3460120.3484583"},{"key":"e_1_3_4_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/3314221.3314605"},{"key":"e_1_3_4_12_1","doi-asserted-by":"publisher","DOI":"10.1109\/TCAD.2018.2858402"},{"key":"e_1_3_4_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/3445814.3446692"},{"key":"e_1_3_4_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/2086696.2086702"},{"key":"e_1_3_4_15_1","volume-title":"Computer Organization and Architecture: Themes and Variations","author":"Clements Alan","year":"2013","unstructured":"Alan Clements. 2013. Computer Organization and Architecture: Themes and Variations. Cengage Learning, USA."},{"key":"e_1_3_4_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/2660267.2660294"},{"key":"e_1_3_4_17_1","doi-asserted-by":"publisher","DOI":"10.1109\/PACT.2011.63"},{"key":"e_1_3_4_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/75277.75280"},{"key":"e_1_3_4_19_1","doi-asserted-by":"publisher","DOI":"10.1007\/10721064_15"},{"key":"e_1_3_4_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/3287624.3287694"},{"key":"e_1_3_4_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/318593.318636"},{"key":"e_1_3_4_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/24039.24041"},{"key":"e_1_3_4_23_1","doi-asserted-by":"publisher","DOI":"10.1109\/TC.1972.5009071"},{"key":"e_1_3_4_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/1839676.1839694"},{"key":"e_1_3_4_25_1","doi-asserted-by":"publisher","DOI":"10.1093\/biomet\/6.1.1"},{"key":"e_1_3_4_26_1","doi-asserted-by":"publisher","DOI":"10.5555\/3241189.3241208"},{"key":"e_1_3_4_27_1","doi-asserted-by":"publisher","DOI":"10.1109\/SP40001.2021.00036"},{"key":"e_1_3_4_28_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-28652-0_1"},{"key":"e_1_3_4_29_1","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-68697-5_9"},{"key":"e_1_3_4_30_1","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-48405-1_25"},{"key":"e_1_3_4_31_1","unstructured":"Adam Langley. 2010. CTGrind\u2014Checking That Functions Are Constant Time with Valgrind. Retrieved from https:\/\/github.com\/agl\/ctgrind."},{"key":"e_1_3_4_32_1","doi-asserted-by":"publisher","DOI":"10.5555\/977395.977673"},{"key":"e_1_3_4_33_1","doi-asserted-by":"publisher","DOI":"10.1145\/3192366.3192413"},{"key":"e_1_3_4_34_1","doi-asserted-by":"publisher","DOI":"10.1145\/3018743.3018751"},{"key":"e_1_3_4_35_1","doi-asserted-by":"publisher","DOI":"10.1145\/1250734.1250746"},{"key":"e_1_3_4_36_1","doi-asserted-by":"publisher","DOI":"10.1109\/SP.2017.53"},{"key":"e_1_3_4_37_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-662-54455-6_1"},{"key":"e_1_3_4_38_1","doi-asserted-by":"publisher","DOI":"10.23919\/DATE.2017.7927267"},{"key":"e_1_3_4_39_1","doi-asserted-by":"publisher","DOI":"10.1002\/spe.2907"},{"key":"e_1_3_4_40_1","doi-asserted-by":"publisher","DOI":"10.1145\/2892208.2892230"},{"key":"e_1_3_4_41_1","doi-asserted-by":"publisher","DOI":"10.1145\/2523815"},{"issue":"3","key":"e_1_3_4_42_1","first-page":"26","article-title":"Declassified NSA document reveals the secret history of TEMPEST about (TEMPEST: A Signal Problem)","volume":"2","author":"Singel Ryan","year":"1976","unstructured":"Ryan Singel. 1976. Declassified NSA document reveals the secret history of TEMPEST about (TEMPEST: A Signal Problem). Cryptol. Spectr. 2, 3 (1976), 26\u201330.","journal-title":"Cryptol. Spectr."},{"key":"e_1_3_4_43_1","doi-asserted-by":"publisher","DOI":"10.1109\/CGO51591.2021.9370305"},{"key":"e_1_3_4_44_1","doi-asserted-by":"publisher","DOI":"10.1145\/2892208.2892225"},{"key":"e_1_3_4_45_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-030-25540-4_8"},{"key":"e_1_3_4_46_1","doi-asserted-by":"publisher","DOI":"10.5555\/908027"},{"key":"e_1_3_4_47_1","doi-asserted-by":"publisher","DOI":"10.1109\/TDSC.2017.2729549"},{"key":"e_1_3_4_48_1","volume-title":"Techniques for Improving the Inherent Parallelism in Programs","author":"Wolfe Michael Joseph","year":"1978","unstructured":"Michael Joseph Wolfe. 1978. Techniques for Improving the Inherent Parallelism in Programs. Master\u2019s thesis. University of Illinois at Urbana\u2013Champaign."},{"key":"e_1_3_4_49_1","doi-asserted-by":"publisher","DOI":"10.1109\/RISP.1991.130767"},{"key":"e_1_3_4_50_1","doi-asserted-by":"publisher","DOI":"10.1145\/3213846.3213851"},{"key":"e_1_3_4_51_1","doi-asserted-by":"publisher","DOI":"10.5555\/872752.873524"},{"key":"e_1_3_4_52_1","doi-asserted-by":"publisher","DOI":"10.1145\/3497776.3517778"}],"container-title":["ACM Transactions on Programming Languages and Systems"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3594736","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3594736","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T16:37:51Z","timestamp":1750178271000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3594736"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2023,6,26]]},"references-count":51,"journal-issue":{"issue":"2","published-print":{"date-parts":[[2023,6,30]]}},"alternative-id":["10.1145\/3594736"],"URL":"https:\/\/doi.org\/10.1145\/3594736","relation":{},"ISSN":["0164-0925","1558-4593"],"issn-type":[{"value":"0164-0925","type":"print"},{"value":"1558-4593","type":"electronic"}],"subject":[],"published":{"date-parts":[[2023,6,26]]},"assertion":[{"value":"2022-07-28","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2023-04-13","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2023-06-26","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}