{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,3,27]],"date-time":"2026-03-27T08:39:21Z","timestamp":1774600761401,"version":"3.50.1"},"reference-count":43,"publisher":"Association for Computing Machinery (ACM)","issue":"2","license":[{"start":{"date-parts":[[2022,3,10]],"date-time":"2022-03-10T00:00:00Z","timestamp":1646870400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"name":"ANR","award":["ANR-10-AIRT-05"],"award-info":[{"award-number":["ANR-10-AIRT-05"]}]},{"name":"PENTA","award":["16\u00a0004"],"award-info":[{"award-number":["16\u00a0004"]}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Digital Threats"],"published-print":{"date-parts":[[2023,6,30]]},"abstract":"<jats:p>\n            In this article, we consider that, in practice, attack scenarios involving side-channel analysis combine two successive phases: an analysis phase, targeting the extraction of information about the target and the identification of possible vulnerabilities, and an exploitation phase, applying attack techniques on candidate vulnerabilities. We advocate that protections need to cover these two phases to be effective against real-life attacks. We present\n            <jats:sc>PolEn<\/jats:sc>\n            , a toolchain and a processor architecture that combine countermeasures to provide an effective mitigation of side-channel attacks: As a countermeasure against the analysis phase, our approach considers the use of code encryption; as a countermeasure against the exploitation phase, our approach considers the use of code polymorphism, because it relies on runtime code generation, and its combination with code encryption is particularly challenging. Code encryption is supported by a processor extension such that machine instructions are only decrypted inside the CPU, which effectively prevents reverse engineering or any extraction of useful information from memory dumps. Code polymorphism is implemented by software means. It regularly changes the observable behaviour of the program, making it unpredictable for an attacker, hence reducing the possibility to exploit side-channel leakages. We present a prototype implementation, based on the RISC-V Spike simulator and a modified LLVM toolchain. In our experimental evaluation, we illustrate that\n            <jats:sc>PolEn<\/jats:sc>\n            effectively reduces side-channel leakages. For the protected functions evaluated, static memory use increases by a factor of 5 to 22, corresponding to the joint application of code encryption and code polymorphism. The overhead, in terms of execution time, ranges between a factor of 1.8 and 4.6.\n          <\/jats:p>","DOI":"10.1145\/3487058","type":"journal-article","created":{"date-parts":[[2021,10,1]],"date-time":"2021-10-01T13:37:12Z","timestamp":1633095432000},"page":"1-27","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":2,"title":["Code Polymorphism Meets Code Encryption: Confidentiality and Side-channel Protection of Software Components"],"prefix":"10.1145","volume":"4","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-0246-1930","authenticated-orcid":false,"given":"Lionel","family":"Morel","sequence":"first","affiliation":[{"name":"University of Grenoble Alpes, CEA, List, France"}]},{"given":"Damien","family":"Courouss\u00e9","sequence":"additional","affiliation":[{"name":"University of Grenoble Alpes, CEA, List, France"}]},{"given":"Thomas","family":"Hiscock","sequence":"additional","affiliation":[{"name":"University of Grenoble Alpes, CEA, Leti, France"}]}],"member":"320","published-online":{"date-parts":[[2022,3,10]]},"reference":[{"key":"e_1_3_1_2_2","doi-asserted-by":"publisher","DOI":"10.1145\/2228360.2228376"},{"key":"e_1_3_1_3_2","doi-asserted-by":"publisher","DOI":"10.1109\/TCAD.2019.2912924"},{"key":"e_1_3_1_4_2","doi-asserted-by":"publisher","DOI":"10.1109\/TCAD.2015.2430320"},{"key":"e_1_3_1_5_2","doi-asserted-by":"publisher","DOI":"10.1016\/j.micpro.2018.07.001"},{"key":"e_1_3_1_6_2","unstructured":"ANSSI. 2017. Common Criteria Certification. Retrieved from https:\/\/www.ssi.gouv.fr\/en\/certification\/common-criteria-certification\/."},{"key":"e_1_3_1_7_2","doi-asserted-by":"publisher","DOI":"10.1145\/2757276"},{"key":"e_1_3_1_8_2","doi-asserted-by":"publisher","DOI":"10.1145\/3195970.3196112"},{"key":"e_1_3_1_9_2","doi-asserted-by":"publisher","DOI":"10.1145\/948109.948147"},{"key":"e_1_3_1_10_2","doi-asserted-by":"publisher","DOI":"10.1145\/2744769.2747946"},{"key":"e_1_3_1_11_2","article-title":"NICV: Normalized inter-class variance for detection of side-channel leakage","author":"Bhasin Shivam","year":"2013","unstructured":"Shivam Bhasin, Jean-Luc Danger, Sylvain Guilley, and Zakaria Najm. 2013. NICV: Normalized inter-class variance for detection of side-channel leakage. IACR Cryptol. ePrint Arch. (2013).","journal-title":"IACR Cryptol. ePrint Arch."},{"key":"e_1_3_1_12_2","doi-asserted-by":"publisher","DOI":"10.13154\/tches.v2020.i2.1-25"},{"key":"e_1_3_1_13_2","unstructured":"Papon Charles. 2016. Spike RISC-V ISA Simulator. Retrieved from https:\/\/github.com\/SpinalHDL\/VexRiscv."},{"key":"e_1_3_1_14_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-030-21568-2_8"},{"key":"e_1_3_1_15_2","doi-asserted-by":"publisher","DOI":"10.5555\/1594894"},{"issue":"86","key":"e_1_3_1_16_2","first-page":"1","article-title":"Intel SGX explained.","volume":"2016","author":"Costan Victor","year":"2016","unstructured":"Victor Costan and Srinivas Devadas. 2016. Intel SGX explained. IACR Cryptol. ePrint Arch. 2016, 86 (2016), 1\u2013118.","journal-title":"IACR Cryptol. ePrint Arch."},{"key":"e_1_3_1_17_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-45931-8"},{"key":"e_1_3_1_18_2","doi-asserted-by":"publisher","DOI":"10.1109\/ACSAC.2006.50"},{"key":"e_1_3_1_19_2","volume-title":"USENIX WOOT","author":"Cui Ang","year":"2017","unstructured":"Ang Cui and Rick Housley. 2017. BADFET: Defeating modern secure boot using second-order pulsed electromagnetic fault injection. In USENIX WOOT."},{"key":"e_1_3_1_20_2","unstructured":"estream [n. d.]. eSTREAM: The ECRYPT Stream Cipher Project. Retrieved from http:\/\/www.ecrypt.eu.org\/stream."},{"key":"e_1_3_1_21_2","doi-asserted-by":"publisher","DOI":"10.1145\/3287624.3287694"},{"key":"e_1_3_1_22_2","doi-asserted-by":"publisher","DOI":"10.1145\/3297858.3304037"},{"key":"e_1_3_1_23_2","doi-asserted-by":"publisher","DOI":"10.1145\/2566673"},{"key":"e_1_3_1_24_2","doi-asserted-by":"publisher","DOI":"10.1016\/j.micpro.2018.10.001"},{"key":"e_1_3_1_25_2","volume-title":"USENIX WOOT","author":"Kholia Dhiru","year":"2013","unstructured":"Dhiru Kholia and Przemys\u0142aw W\u0119grzyn. 2013. Looking inside the (drop) box. In USENIX WOOT."},{"key":"e_1_3_1_26_2","doi-asserted-by":"publisher","DOI":"10.1007\/s13389-011-0006-y"},{"key":"e_1_3_1_27_2","doi-asserted-by":"publisher","DOI":"10.1109\/CGO.2004.1281665"},{"key":"e_1_3_1_28_2","volume-title":"A Side Journey to Titan Side-Channel Attack on the Google Titan Security Key","author":"Lomn\u00e9 Victor","year":"2021","unstructured":"Victor Lomn\u00e9 and Thomas Roche. 2021. A Side Journey to Titan Side-Channel Attack on the Google Titan Security Key. White Paper. NinjaLab."},{"key":"e_1_3_1_29_2","volume-title":"Power Analysis Attacks: Revealing the Secrets of Smart Cards","author":"Mangard Stefan","year":"2007","unstructured":"Stefan Mangard, Elisabeth Oswald, and Thomas Popp. 2007. Power Analysis Attacks: Revealing the Secrets of Smart Cards. Springer."},{"key":"e_1_3_1_30_2","doi-asserted-by":"publisher","DOI":"10.1007\/BFb0052334"},{"key":"e_1_3_1_31_2","unstructured":"mbetls [n. d.]. mbedTLS Library. Retrieved from https:\/\/tls.mbed.org\/."},{"key":"e_1_3_1_32_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-662-43414-7_29"},{"key":"e_1_3_1_33_2","doi-asserted-by":"publisher","DOI":"10.1109\/SP.2012.41"},{"key":"e_1_3_1_34_2","doi-asserted-by":"publisher","DOI":"10.1145\/3281662"},{"key":"e_1_3_1_35_2","doi-asserted-by":"publisher","DOI":"10.1.1.129.2610"},{"key":"e_1_3_1_36_2","doi-asserted-by":"publisher","DOI":"10.1145\/1315245.1315313"},{"key":"e_1_3_1_37_2","doi-asserted-by":"publisher","DOI":"10.1109\/SP.2016.17"},{"key":"e_1_3_1_38_2","unstructured":"SiFive. 2017. Spike RISC-V ISA Simulator. https:\/\/github.com\/riscv\/riscv-isa-sim."},{"key":"e_1_3_1_39_2","doi-asserted-by":"publisher","DOI":"10.7916\/d8-e6tc-kr63"},{"key":"e_1_3_1_40_2","doi-asserted-by":"publisher","DOI":"10.1109\/HST.2017.7951732"},{"key":"e_1_3_1_41_2","doi-asserted-by":"publisher","DOI":"10.1016\/j.istr.2005.05.002"},{"key":"e_1_3_1_42_2","doi-asserted-by":"publisher","DOI":"10.1109\/TDSC.2017.2729549"},{"key":"e_1_3_1_43_2","unstructured":"Andrew Waterman and Krste Asanovic (Eds.). 2019. The RISC-V instruction set manual\u2014volume I: Unprivileged ISA. Document Version 20191213 (2019) 238."},{"key":"e_1_3_1_44_2","doi-asserted-by":"publisher","DOI":"10.1109\/EuroSP.2018.00023"}],"container-title":["Digital Threats: Research and Practice"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3487058","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3487058","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T20:18:47Z","timestamp":1750191527000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3487058"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2022,3,10]]},"references-count":43,"journal-issue":{"issue":"2","published-print":{"date-parts":[[2023,6,30]]}},"alternative-id":["10.1145\/3487058"],"URL":"https:\/\/doi.org\/10.1145\/3487058","relation":{},"ISSN":["2692-1626","2576-5337"],"issn-type":[{"value":"2692-1626","type":"print"},{"value":"2576-5337","type":"electronic"}],"subject":[],"published":{"date-parts":[[2022,3,10]]},"assertion":[{"value":"2020-08-31","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2021-09-16","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2022-03-10","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}