Memory-safe elimination of side channels

dc.creatorLuigi Domenico Cecchini Soares
dc.date.accessioned2022-06-20T22:11:31Z
dc.date.accessioned2025-09-09T01:00:13Z
dc.date.available2022-06-20T22:11:31Z
dc.date.issued2022-03-03
dc.description.abstractUm programa é dito isócrono se seu tempo de execução não depende de informações sensíveis. Isocronicidade é uma propriedade essencial em implementações criptográficas, posto que programas isócronos não apresentam vazamento de informações relacionadas a seus tempos de execução. Nesta dissertação, nós demonstramos como adaptar para o contexto de resistência à canais laterais um algoritmo de linearização parcial de grafos de fluxo de controle que foi, inicialmente, concebido para maximizar o desempenho em programas vetorizados. Esta transformação é correta: dada uma instância das entradas públicas, o programa parcialmente linearizado sempre executa a mesma sequência de instruções, independente das entradas secretas. Caso o programa original seja publicamente seguro, os acessos à cache de dados serão indistinguíveis no código transformado. Esta transformação é, também, ótima: todo desvio dependente de dados secretos é linearizado; nenhum desvio que dependa apenas de dados públicos é linearizado. Assim, a transformação preserva laços que dependem de informações públicas. Se todos os desvios que saem de um laço dependem de dados sensíveis, o programa modificado não terminará. Nossa transformação estende trabalhos recentes de maneiras não triviais. Ela é capaz de lidar com construções como "goto", "break", "switch" e "continue", que não estão presentes na linguagem de domínicio específico FaCT (2018). Assim como a ferramenta Constantine (2021), nossa transformação garante invariância de operações, mas sem necessitar de informações provenientes da execução dos programas. Além disso, em contraste com SC-Eliminator (2018), nossa técnica é capaz de lidar com programas contendo laços sem limites conhecidos em tempo de compilação.
dc.description.sponsorshipCNPq - Conselho Nacional de Desenvolvimento Científico e Tecnológico
dc.identifier.urihttps://hdl.handle.net/1843/42564
dc.languageeng
dc.publisherUniversidade Federal de Minas Gerais
dc.rightsAcesso Aberto
dc.rights.urihttp://creativecommons.org/licenses/by/3.0/pt/
dc.subjectComputação – Teses
dc.subjectFluxo de Informação – Teses
dc.subjectCriptografia de dados (Computação) – Teses
dc.subjectCriptografia – Canais laterais – Teses
dc.subjectSegurança da informação – Teses
dc.subject.otherSide channel
dc.subject.otherInformation flow
dc.subject.otherCryptography
dc.subject.otherProgram transformation
dc.titleMemory-safe elimination of side channels
dc.title.alternativeEliminação automática de canais laterais sem acessos inconsistentes à memória
dc.typeDissertação de mestrado
local.contributor.advisor1Fernando Magno Quintão Pereira
local.contributor.advisor1Latteshttp://lattes.cnpq.br/4608001746330875
local.contributor.referee1Mário Sérgio Ferreira Alvim Júnior
local.contributor.referee1Diego de Freitas Aranha
local.contributor.referee1Sebastian Hack
local.creator.Latteshttp://lattes.cnpq.br/8911835738519844
local.description.resumoA program is said to be isochronous if its running time does not depend on classified information. Isochronicity is an essential property in cryptographic implementations, for isochronous programs do not leak time-related information. In this thesis, we demonstrate how to adapt to the context of side-channel resistance a partial control-flow linearization algorithm initially conceived to maximize work performed in vectorized programs. This transformation is sound: given an instance of the public inputs, the partially linearized program always runs the same sequence of instructions, regardless of the secret inputs. Incidentally, if the original program is publicly safe, accesses to the data cache will be data oblivious in the repaired code. This transformation is also optimal: every branch that depends on some secret data is linearized; no branch that depends on only public data is linearized. Thus, the transformation preserves loops that depend on public information. If every branch that leaves a loop depends on secret data, then the transformed program will not terminate. Our transformation extends recent work in non-trivial ways. It handles C constructs such as "goto", "break", "switch" and "continue", 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), our implementation handles programs containing general, unbounded loops.
local.identifier.orcidhttps://orcid.org/ 0000-0002-9579-8427
local.publisher.countryBrasil
local.publisher.departmentICX - DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO
local.publisher.initialsUFMG
local.publisher.programPrograma de Pós-Graduação em Ciência da Computação

Arquivos

Pacote original

Agora exibindo 1 - 1 de 1
Carregando...
Imagem de Miniatura
Nome:
memory-safe-elimination-of-side-channels.pdf
Tamanho:
1.51 MB
Formato:
Adobe Portable Document Format

Licença do pacote

Agora exibindo 1 - 1 de 1
Carregando...
Imagem de Miniatura
Nome:
license.txt
Tamanho:
2.07 KB
Formato:
Plain Text
Descrição: