(54) Título: MÉTODO E APARELHO PARA DETECTAR CORRELAÇÕES ENTRE PADRÕES DE SINAL (73) Titular: STMICROELECTRONICS INTERNATIONAL N.V.. Endereço: WTC Schiphol Airport, Schiphol Boulevard 265,1118 BH Schiphol Airport, Amsterdam, SUIÇA(CH) (72) Inventor: PAOLO Dl IORIO
Prazo de Validade: 10 (dez) anos contados a partir de 30/10/2018, observadas as condições legais
Expedida em: 30/10/2018
Assinado digitalmente por:
Liane Elizabeth Caldeira Lage
Diretora de Patentes, Programas de Computador e Topografias de Circuitos Integrados
1/14 “MÉTODO E APARELHO PARA DETECTAR CORRELAÇÕES ENTRE PADRÕES DE SINAL”
Campo de Aplicação [001] A presente invenção refere-se a um método e a um aparelho para detectar possíveis correlações entre padrões de sinal de um sinal de energia utilizado por um dispositivo eletrônico durante a execução de operações, compreendendo uma fase de amostragem de uma pluralidade de valores do dito sinal de energia, a um tempo de amostragem correspondente, uma fase de estabelecimento de pares de janelas incluindo os respectivos pares de sequências dos valores de amostragem e cálculo dos valores das correlações entre os pares de sequências.
Estado da Técnica [002] Como é de conhecimento, uma análise de um consumo de energia em um dispositivo eletrônico pode ser indicativa de operações executadas pelo dispositivo eletrônico.
[003] Em particular, dispositivos e métodos de detecção para detectar o consumo de energia do dispositivo eletrônico permitem a monitoração de um sinal de energia consumido por tal dispositivo eletrônico, doravante indicado como sinal de energia.
[004] Valores de sinal de energia são amostrados a intervalos de tempo de amostragem e armazenados em uma memória do aparelho de detecção de maneira a detectar uma correlação entre os valores amostrados e/ou uma correlação entre sequências de tais valores amostrados.
[005] De fato, uma sequência de valores amostrados, também chamada de padrão de sinal, repetida substancialmente da mesma maneira a diferentes intervalos de tempo, pode ser indicativa de uma mesma operação realizada nos intervalos de tempo correspondentes.
Petição 870180063416, de 23/07/2018, pág. 16/61
2/14 [006] Mais particularmente, os aparelhos e métodos de detecção mencionados acima executam uma análise em uma pluralidade de padrões de sinal, armazenados em conexão com intervalos de tempo correspondentes, de maneira a identificar correlações entre dois ou mais padrões de sinal diferentes e recuperar informação sobre as operações correspondentes, executadas pelo dispositivo eletrônico.
[007] Por exemplo, os aparelhos e métodos de detecção para detectar consumo de energia podem ser utilizados para se estabelecer a segurança de um algoritmo de segurança de um IC Card, isto é, um algoritmo criptográfico. Neste caso, a análise dos padrões de sinal é utilizada para de realizar uma varredura da vulnerabilidade do algoritmo criptográfico: quanto maiores forem as correlações entre padrões de sinal, maior a possibilidade de se recuperar dados seguros, por exemplo, como chave criptográfica armazenada no IC Card.
[008] Em outras palavras, uma vez que a detecção de repetições de padrões de sinal pode ser utilizada para se obter informação acerca da implementação de um algoritmo criptográfico ou para se extrair ou identificar dados no IC Card, os aparelhos e métodos de detecção devem ser utilizados para testar a vulnerabilidade do IC Card e se ter certeza de sua segurança, antes de sua liberação.
[009] Um método conhecido de se detectar padrões repetitivos é baseado em de cálculo de uma função de correlação entre valores amostrados de sinais de energia: a correlação resulta substancialmente em um número, indicativo de um grau de relação entre tais valores amostrados e, consequentemente, de uma relação entre as operações realizadas pelo dispositivo eletrônico.
[0010] Mais particularmente, uma matriz de correlação é utilizada para armazenar correlações entre valores amostrados, por exemplo, derivados pela amostragem de um sinal de energia S através de um filtro passa-baixos, apresentando uma largura de banda determinada empiricamente.
Petição 870180063416, de 23/07/2018, pág. 17/61
3/14 [0011] Com referência à figura 1, é ilustrado um diagrama que mostra esquematicamente valores amostrados de uma energia a intervalos de tempo de amostragem correspondentes.
[0012] Uma janela Bs é definida para detectar correlações entre valores amostrados em um intervalo de tempo correspondente T0-T2 e um passo (Step) é definido para o avanço da janela Bs, de maneira a detectar correlações entre valores amostrados em um intervalo de tempo avançado T1-T3.
[0013] O comprimento do passo Step é menor que o comprimento da janela (Bs) de tal forma que, quando a janela (Bs) é avançada, a função de correlação pode compreender alguns valores amostrados pertencentes aos intervalos de tempo correspondentes T0-T1, onde a janela Bs foi previamente estabelecida.
[0014] Uma sequência amostrada de Si, incluindo uma pluralidade de valores amostrados pode ser, por exemplo, processada de acordo com a fórmula:
Víe[í-M + 0-«s] [0015] A matriz de correlação, doravante C, pode ser calculada como:
[0016] onde r é o coeficiente de correlação entre as sequências Si e Sj, indicativo do grau de similaridade entre tais sequências de valores amostrados.
[0017] O aparelho e método de detecção podem processar a matriz de correlação C para uma pluralidade de valores de amostra e mostrar um resultado do cálculo em uma imagem bidimensional, por exemplo, em um monitor conectado ao dispositivo de detecção, representando a repetição dos padrões de sinal.
[0018] Conforme mostrado na figura 2, a imagem representando a matriz de correlação C, mesmo sendo um dos melhores resultados gráficos
Petição 870180063416, de 23/07/2018, pág. 18/61
4/14 alcançáveis por meio de um aparelho e método de detecção conhecidos, não provê uma representação clara da matriz de correlação.
[0019] Mais particularmente, a matriz de correlação C na figura 2, compreende uma sub-matriz em que uma alta correlação entre os padrões de sinal é representada com um quadrado substancialmente cinza.
[0020] Conforme mostrado, na matriz da figura 2, o quadrado cinza representando uma correlação de dois padrões de sinal não é claro, mesmo quando tais padrões estão estritamente correlacionados, de tal forma que é realmente difícil se analisar a representação gráfica da matriz de correlação C para se determinar diferentes graus de correlações.
[0021] De acordo com o método conhecido para detecção de correlações, a aparência gráfica da matriz de correlação C depende substancialmente do comprimento da janela Bs e do passo Step, utilizados para processar a matriz de correlação C. De maneira a se obter uma boa representação gráfica da matriz de correlação C, várias ações empíricas devem ser processadas. Além disto, mesmo para um comprimento da janela Bs e para um passo Step convenientemente estabelecidos, a resolução gráfica pode depender do nível de cinza utilizado para plotar.
[0022] Um outro problema conhecido é que uma matriz de correlação calculada com um Step curto, de maneira a se determinar correlação com alta precisão, é uma matriz de tamanho muito grande e requer muita memória para ser armazenada.
[0023] Além disto, é requerido um longo tempo de pósprocessamento se forem necessárias elaborações adicionais.
[0024] O problema técnico na base da presente invenção é o de prover um método para a detecção de possíveis correlações entre padrões de sinal correspondentes ao consumo de energia da um dispositivo eletrônico capaz de agilizar o tempo e passos necessários a processar uma matriz de correlação, que
Petição 870180063416, de 23/07/2018, pág. 19/61
5/14 não consuma muita memória e ao mesmo tempo determine com alta precisão as correlações, provendo teste mais profundo e mais rápido para a segurança do dispositivo eletrônico e superando os limites que atualmente afetam o método de detecção de padrões de sinal.
Sumário da invenção [0025] A ideia de solução na qual a presente invenção se baseia é o de prover um método para a detecção de correlações entre padrões de sinal de um sinal de energia do tipo descrito acima, onde, para cada sequência Si de valores amostrados representando um padrão de sinal em uma janela Wi do sinal de energia, um valor máximo da correlação é processado.
[0026] Tal valor máximo é determinado em relação a uma pluralidade de sequências Sik de valores amostrados que representam padrões de sinal em janelas Wik, selecionadas próximas à janela Wi a apresentando o mesmo tamanho.
[0027] A janela Wi é reajustada, substancialmente avançada do tamanho da janela em si, de maneira a se processar o valor máximo para uma pluralidade de sequências Si, representando padrões de sinal correspondentes. Apenas os valores máximos assim determinados são armazenados em uma matriz de correlação, não requerendo um tamanho de memória grande e determinada sem seleção empírica de um Step específico para avançar a janela Si.
[0028] Este problema é solucionado, de acordo com a presente invenção, por um método para a detecção de correlações entre padrões de sinal de um sinal de energia do tipo consumido por um dispositivo eletrônico durante a execução de operações, compreendendo:
[0029] - amostragem de uma pluralidade de valores do dito sinal de energia a tempos de amostragem correspondentes;
[0030] - estabelecimento de pares de janelas incluindo pares respectivos de sequências dos ditos valores de amostragem;
Petição 870180063416, de 23/07/2018, pág. 20/61
6/14 [0031] - cálculo dos valores de correlações entre as ditas sequências respectivas, [0032] em que cada um dos ditos valores é determinado por cálculo de um valor máximo da correlação entre uma sequência dos ditos pares e uma pluralidade de sequências de valores amostrados, incluídos em janelas móveis correspondentes.
[0033] Características adicionais e as vantagens do método de acordo com a presente invenção ficarão claros a partir da descrição a seguir de suas realizações, feita com referência aos desenhos anexos, fornecidos para propósito indicativo e não limitativo.
Breve descrição dos desenhos [0034] A Figura 1 representa em um diagrama, valores de um sinal de energia consumida por um dispositivo eletrônico, os valores sendo amostrados por um método de acordo com o estado da técnica.
[0035] A Figura 2 é uma plotagem de uma matriz de correlação processada nos valores amostrados da figura 1 por um método do estado da técnica.
[0036] A Figura 3 representa em um diagrama, os valores de um sinal de energia consumida por um dispositivo eletrônico, amostrados por um método de acordo com a presente invenção.
[0037] A Figura 4 é uma plotagem de uma matriz de correlação processada em valores amostrados de acordo com o método de detecção da presente invenção.
Descrição detalhada [0038] Com referência aos desenhos anexos, um método para a detecção de correlações entre padrões de sinal de um sinal de energia S é descrito a seguir. Mais particularmente, o sinal de energia S é utilizado ou consumido por um dispositivo eletrônico durante a execução de operações.
Petição 870180063416, de 23/07/2018, pág. 21/61
7/14 [0039] O dispositivo eletrônico é, por exemplo, um IC Card que armazena uma pluralidade de dados em uma parte de memória e destinado a ser conectado a um dispositivo de leitura-gravação, de maneira a ser atualizado ou lido. O IC Card inclui meios de segurança, por exemplo, uma chave de segurança e um algoritmo criptográfico, de maneira a executar uma operação de segurança para proteger dados coerentes armazenados no interior de sua parte de memória.
[0040] Durante a execução das operações, o IC Card consome o sinal de energia S, dependendo de um requerimento computacional de tais operações.
[0041] De acordo com o método da presente invenção, uma amostragem de uma pluralidade de valores si, sn do sinal de energia S é executada como se segue:
S(th) = Sh, [0042] onde Sh é o valor de S no tempo th, 0 <= h <= N; na figura 3, um valor de N é 0,01.
[0043] Uma sequência Si de valores amostrados Sh representa um padrão de sinal do sinal de energia S; a sequência Si compreende uma pluralidade de valores amostrados sn, por exemplo, filtrados através de um filtro passa-baixos, conhecido na técnica.
[0044] Uma pluralidade de sequências Si, Sj de valores amostrados Sh é armazenada em uma parte de memória de um dispositivo de detecção, por exemplo, um computador pessoal conectado ao dispositivo de leitura-gravação, de maneira a processar correlações entre cada par de sequências Si, Sj.
[0045] As correlações entre pares de sequências Si, Sj de valores amostrados Sh são armazenadas em uma matriz de correlação C(i,j).
[0046] De acordo com a presente invenção, um valor da matriz de correlação C(i,j), para valores de i e j especificados, é determinado pelo
Petição 870180063416, de 23/07/2018, pág. 22/61
8/14 processamento de valores máximos de correlações entre a sequência Si e uma pluralidade de sequências Sjk, variando o parâmetro k.
[0047] Mais particularmente, para cada i e j o sinal de energia S é amostrado com base em um par de janelas Wi Wj compreendendo a sequência respectiva Si, Sj de valores amostrados Sh de Bs. As janelas Wi Wj de valores amostrados de Bs são reajustados ou movidos para executar análise nas repetições de padrões de sinal associados a diferentes partes do sinal de energia S. Por exemplo, uma janela avançada Wj+i pode incluir valores amostrados Sh já incluídos em uma sequência prévia Si ou pode incluir valores amostrados não previamente considerados.
[0048] Dados valores de i e j para um par de sequências Si e Sj correspondente de valores amostrados, uma pluralidade de correlações r é processada para determinar um valor correspondente da matriz de correlação C(i,j).
[0049] Mais particularmente, dado um par de sequências Si, Sj de valores amostrados Sh o valor de correlação é processado como se segue:
σ(ι,/)=Λ/ίκ4|Γ(^,?)|}, (η onde:
ϊ = s(z) |
Ví e [/ Bs + k,(j + l) Zf.v + ftl |
k e [- Zfs, #s] |
(2) |
s; =5-(/) |
Ví g (/ Bs + + J) Bs + k 1 |
k e |
(Ό |
s^S(í) |
V7 e [r - Bs + k,(j + Zfr + *] |
k ¢= [í>,/A] |
O) |
,4=sV) |
Ví e [/ · Bs kjj + l)1 Bs + Aj |
k e [- Bs |
(5) |
|
Ví e [r + l)- Zís] |
|
(6) |
[0050] Em outras palavras, um valor de correlação (Max(|r(Si,Sjk)|)) para a matriz de correlação C(i,j) não é calculada apenas com base em um par de sequências Si, Sj de valores amostrados sn, pertencendo às respectivas janelas Wi
Wj de amostras de Bs, mas em uma pluralidade de pares de sequências obtidos
Petição 870180063416, de 23/07/2018, pág. 23/61
9/14 pelo pareamento de uma sequência Si e uma pluralidade de sequências Sjk de valores amostrados Sh.
[0051] De maneira a melhor entender o método da presente invenção, um exemplo de sequências de valores amostrados é dado para alguns valores de i e j. Com referência à fórmula (2), uma pluralidade k de sequências Sj é amostrada para cada valor de j.
[0052] Por exemplo, para j=1,
Sik = S(t) com t ε [Bs+k, 2Bs+k] e k ε [-Bs, Bs] [0053] De acordo com a fórmula acima, quando k é igual a seu valor mínimo -Bs,
Si'Bs = S(t) com t ε [0,Bs] [0054] enquanto que, quando k é igual a seu valor máximo +Bs, Si+Bs = S(t) com t ε [2BS,3BS] [0055] Similarmente, para j=2,
S2k = S(t) com t ε [2Bs+k, 3Bs+k] e k ε [-Bs,Bs] [0056] Mais particularmente, quando k é igual a seu valor mínimo Bs,
Si'Bs = S(t) com t ε [BS,2BS];
[0057] quando k é igual a seu valor máximo +Bs,
Si+Bs = S(t) com t ε [3BS,4BS] [0058] Com referência à fórmula (6), as sequências Si são amostradas para cada valor de i, por exemplo,
Si = S(t) com t ε [BS,2BS];
Si = S(t) com t ε [2BS,3BS].
Petição 870180063416, de 23/07/2018, pág. 24/61
10/14 [0059] Com referência à figura 3, as sequências SrBs, Si+Bs, S11 e Si são representadas esquematicamente.
[0060] As sequências SrBs, Si+Bs, S-ι1, bem como outras sequências Sik não indicadas na figura 3, são utilizadas para processar valores correspondentes de uma correlação com a sequência Si.
[0061] O valor máximo de tais correlações, Max(|r(Si,Sjk)|), é armazenado na matriz de correlação C(i,j). Tal cálculo é repetido para diferentes valores de i e j, variando-se o parâmetro k, para todos os valores da matriz de correlação C(i,j).
[0062] Mais particularmente, uma célula da matriz de correlação C, reporta os valores máximos de todos os valores de correlação processados nos pares de valores amostrados Si, Sj, variando-se o parâmetro K.
[0063] Conforme descrito pelas fórmulas acima, o método da presente invenção estabelece uma faixa para a seleção do parâmetro K, tal faixa sendo determinada de maneira a incluir valores amostrados pertencentes não apenas à janela Wj das amostras Bs, mas também pertencentes a uma pluralidade de janelas Wjk.
[0064] Além disto, não apenas os valores amostrados pertencentes à janela Wj são utilizados para a determinação de um valor máximo de correlação, mas também valores amostrados pertencentes a uma janela Wj-ι, estabelecida por uma execução prévia da dita fase de estabelecimento.
[0065] A janela Wj, quando o processamento das correlações internas é findo, é avançada em um passo igual ao tamanho da janela Wj.
[0066] Vantajosamente, não são requeridas várias execuções empíricas do método da presente invenção para otimizar a determinação da matriz de correlação, nem a renderização de sua representação gráfica.
Petição 870180063416, de 23/07/2018, pág. 25/61
11/14 [0067] De fato, um passo para o avanço da janela Wj é igual ao tamanho da janela Wj em si; o parâmetro K provê a inclusão do processamento de valores amostrados em uma pluralidade de janelas Wjk.
[0068] Uma fórmula (4) é utilizada para a determinação das sequências Sjk dos valores amostrados quando j=9, correspondendo a uma primeira sequência de valores amostrados. De fato, uma vez que nenhum valor amostrado está disponível antes do tempo 0 de amostragem, neste caso, o parâmetro k é ajustado para ser incluído no intervalo fechado [0, Bs], de maneira a se relacionar a valores amostrados em uma janela Wo.
[0069] Similarmente, o método define uma fórmula (5) para a determinação de valores amostrados Sj quando j=N, correspondendo ao último valor amostrado. De fato, uma vez que nenhum valor amostrado está disponível depois do valor de amostragem N, o parâmetro k é ajustado para ser incluído no intervalo fechado [-Bs, 0], de tal forma que k pode se relacionar a valores amostrados incluídos na janela antes da janela atual.
[0070] O estabelecimento de janelas e as correlações são reiterados, bem como a fase de processamento de um valor máximo das ditas correlações, de tal forma que o sinal de energia S é varrido e os padrões de sinal correspondentes podem ser comparados.
[0071] A figura 4 representa esquematicamente uma representação gráfica da matriz de correlação C(i,j) determinada por um cálculo de acordo com o método da presente invenção, tal representação gráfica sendo um mapa em cinza tornando mais fácil, em relação ao estado da técnica, a detecção de repetições dos padrões de sinal.
[0072] Vantajosamente, não apenas a matriz de correlação C(i,j) armazena valores máximos das correlações, mas também a representação gráfica da matriz de correlação permite uma análise mais profunda e mais rápida, o mapa em escala de cinza tornando as repetições do padrão de sinal mais distinguíveis.
Petição 870180063416, de 23/07/2018, pág. 26/61
12/14 [0073] Vantajosamente, o método para detectar as correlações entre padrões de sinal de acordo com a invenção representa tais correlações em uma reprodução gráfica bem renderizada, acelerando o tempo necessário para a determinação das correlações e realçando suas evidências, indicando distintamente um alto nível de correlação e um baixo nível de correlação.
[0074] A análise de padrão repetitivo por meio do método da presente invenção resulta em um teste mais profundo e mais rápido para a segurança do dispositivo eletrônico e supera os limites relacionados com o método do estado da técnica.
[0075] A presente invenção refere-se também a um aparelho para detectar correlações entre padrões de sinal do tipo consumido por um dispositivo eletrônico durante a execução de uma operação.
[0076] O aparelho inclui:
[0077] Uma leitora eletrônica para o dispositivo eletrônico.
[0078] Sem limitar o escopo de proteção da presente invenção, o dispositivo eletrônico é, por exemplo, um IC Card e a leitora eletrônica é uma leitora de IC Card do tipo que compreende uma fenda para receber o IC Card e uma pluralidade de contatos para acoplar com contatos correspondentes no IC Card.
[0079] A leitora de IC Card é conectada, por intermédio de um canal de comunicação, a um dispositivo de processamento central, destinado a enviar instruções para o IC Card. As instruções enviadas a partir do dispositivo de processamento central para a leitora de IC Card são do tipo que requer uma execução de informação coerente no IC Card.
[0080] No recebimento de uma instrução, o IC Card executa uma pluralidade de operações, processa um resultado e o retorna para o dispositivo de processamento central.
[0081] De acordo com o aparelho da invenção, um dispositivo de amostragem é conectado entre a leitora de IC Card e o dispositivo de
Petição 870180063416, de 23/07/2018, pág. 27/61
13/14 processamento central, substancialmente ao longo do canal de comunicação padrão, de maneira a detectar um sinal de energia consumido pelo IC Card durante a execução das operações.
[0082] O dispositivo de amostragem é, por exemplo, um osciloscópio.
[0083] Mais particularmente, a energia consumida pelo IC Card é amostrada durante uma pluralidade de intervalos de tempo; uma pluralidade de valores amostrados é enviada para o dispositivo de processamento central.
[0084] Tal dispositivo de processamento central armazena os valores amostrados em uma memória interna e executa uma detecção de uma correlação entre os valores amostrados. Mais particularmente, as sequências Si, Sjk dos valores amostrados Sh são armazenadas em uma memória do dispositivo de processamento central de maneira a serem comparadas para a detecção de uma correlação entre pares Si, Sj de sequências de valores amostrados Sh.
[0085] As sequências Si Sj de tais valores amostrados sn, repetidas em uma forma substancialmente igual a diferentes intervalos de tempo, são mostradas por meio de uma representação gráfica, plotada em um mostrador conectado de forma convencional ao dispositivo de processamento central.
[0086] Mais particularmente, a memória do dispositivo de processamento central armazena sequências Si, Sj de valores amostrados Sh representando substancialmente uma parte de um padrão de sinal do sinal de energia consumido pelo IC Card.
[0087] Além disto, a memória do dispositivo de processamento central armazena também uma pluralidade de subconjuntos de valores de amostragem si, Sj, representando diferentes partes do sinal de energia.
[0088] A parte da memória do dispositivo de processamento central armazena também uma matriz de correlação representando todas as correlações entre pares de valores amostrados si, Sj. Cada valor armazenado na matriz de
Petição 870180063416, de 23/07/2018, pág. 28/61
14/14 correlação na memória é um valor de correlação representando valores máximos de todas as correlações dos valores amostrados si, Sj.
[0089] Vantajosamente, a parte da memória armazena valores máximos das correlações e a representação gráfica mostrada possibilita uma análise mais profunda e mais rápida. A representação gráfica é um mapa em escala de cinza que torna as repetições do padrão de sinal fáceis de distinguir.
[0090] Vantajosamente, o aparelho para detectar correlações entre padrões de sinal de acordo com a invenção armazena correlações que podem ser mostradas em uma reprodução gráfica renderizada, acelerando o tempo necessário para a determinação das correlações e realçando suas evidências, indicando distintamente um alto nível de correlação e um baixo nível de correlação.
Petição 870180063416, de 23/07/2018, pág. 29/61
1/3