BR102015013579B1 - CRYPTOGRAPHIC METHOD FOR SECURE EXCHANGE OF MESSAGES BETWEEN AT LEAST TWO DEVICES, CRYPTOGRAPHIC DEVICE AND SYSTEM - Google Patents

CRYPTOGRAPHIC METHOD FOR SECURE EXCHANGE OF MESSAGES BETWEEN AT LEAST TWO DEVICES, CRYPTOGRAPHIC DEVICE AND SYSTEM Download PDF

Info

Publication number
BR102015013579B1
BR102015013579B1 BR102015013579-3A BR102015013579A BR102015013579B1 BR 102015013579 B1 BR102015013579 B1 BR 102015013579B1 BR 102015013579 A BR102015013579 A BR 102015013579A BR 102015013579 B1 BR102015013579 B1 BR 102015013579B1
Authority
BR
Brazil
Prior art keywords
key
cryptographic
operands
message
bit size
Prior art date
Application number
BR102015013579-3A
Other languages
Portuguese (pt)
Other versions
BR102015013579A2 (en
Inventor
Hervé Pelletier
Original Assignee
Nagravision S.A.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from EP14172225.6A external-priority patent/EP2955871B1/en
Application filed by Nagravision S.A. filed Critical Nagravision S.A.
Publication of BR102015013579A2 publication Critical patent/BR102015013579A2/en
Publication of BR102015013579B1 publication Critical patent/BR102015013579B1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols

Abstract

MÉTODO CRIPTOGRÁFICO PARA TROCA SEGURA DE MENSAGENS E DISPOSITIVO E MÉTODO PARA IMPLEMENTAÇÃO DESTE MÉTODO. A presente invenção refere-se a um método para troca segura de mensagens (M) entre pelo menos dois dispositivos (01, 02), cada um armazenando uma chave secreta compartilhada (K), compreendendo as etapas de: em cada dispositivo:gerar um número aleatório (R1, R2), e então enviá-lo aos outros dispositivos, determinar uma primeira chave (K1) por uma primeira operação baseado na referida chave secreta e em cada número aleatório, determinar uma segunda chave (K2) baseado na referida primeira chave e nos referidos números aleatórios, em um dispositivo de envio (01 ):determinar uma pseudo-mensagem (M') com base na mensagem (M) e nos referidos números aleatórios, calcular então o envio de um criptograma (C) com base na referida pseudo-mensagem (M') e na referida segunda chave (K2),no dispositivo receptor (02):descriptografar o referido criptograma (C) por meio da referida segunda chave, e então recuperar a referida mensagem (M) a partir da referida pseudomensagem (M').CRYPTOGRAPHIC METHOD FOR SECURE EXCHANGE OF MESSAGES AND DEVICE AND METHOD FOR IMPLEMENTING THIS METHOD. The present invention relates to a method for securely exchanging messages (M) between at least two devices (01, 02), each storing a shared secret key (K), comprising the steps of: on each device: generating a random number (R1, R2), and then send it to the other devices, determine a first key (K1) by a first operation based on said secret key and each random number, determine a second key (K2) based on said first one key and said random numbers, in a sending device (01): determine a pseudo-message (M') based on the message (M) and said random numbers, then calculate the sending of a cryptogram (C) based on on said pseudo-message (M') and on said second key (K2), on the receiving device (02): decrypting said cryptogram (C) by means of said second key, and then recovering said message (M) from of said pseudo-message (M').

Description

CAMPO TÉCNICOTECHNICAL FIELD

[001] A presente invenção refere-se ao campo de transferências de dados entre dispositivos conectados juntos, envolvendo operações criptográficas para enviar e receber, de forma segura, qualquer tipo de mensagem que tenha que ser trocada entre esses dispositivos.[001] The present invention relates to the field of data transfers between devices connected together, involving cryptographic operations to securely send and receive any type of message that has to be exchanged between these devices.

ANTECEDENTES DA INVENÇÃOBACKGROUND OF THE INVENTION

[002] Existem muitos métodos conhecidos envolvendo algoritmos criptográficos, tal como o Padrão de Criptografia de Dados (DES) ou o Padrão de Criptografia Avançada (AES), para criptografia e descriptografia de dados a serem transmitidos por meio de canais inseguros ou redes conectando dispositivos eletrônicos de qualquer tipo. Para esse fim, tais dispositivos são providos de componentes criptográficos que realizam operações criptográficas para embaralhar mensagens de modo a torná-las ininteligíveis sem uma chave de descriptografia secreta. Esses componentes são tipicamente implementados de acordo com a tecnologia CMOS (tecnologia de Semicondutor de Óxido Metálico Complementar). Os algoritmos criptográficos implementados em tais componentes geralmente são seguros o suficiente do ponto de vista matemático. Entretanto, o fato de que tal algoritmo é implementado fisicamente por circuitos integrados construídos com transistores interconectados para produzir as funções lógicas desse algoritmo gera quantidades físicas observáveis. A observação de tais quantidades pode ser realizada por meio de um osciloscópio, por exemplo, para monitorar o consumo de energia do circuito integrado. Variações de consumo de energia súbitas aparecem como picos na tela do osciloscópio. Cada pico pode, por exemplo, identificar o início de uma chamada “sessão”, tipicamente em um algoritmo tal como DES e AES, em que uma mensagem de entrada a ser criptografada é aplicada a uma sucessão de grupos de operações chamadas de “sessões”. De acordo com tal algoritmo, cada sessão é colocada sob o controle de uma sub-chave resultante da sessão anterior. Portanto, tal algoritmo envolve uma série de sub-chaves que são derivadas de uma chave secreta usada como chave inicial dentro do algoritmo. Caso esta chave inicial secreta seja conhecida por uma pessoa mal-intencionada, o último torna-se capaz de descriptografar e criptografar apropriadamente qualquer mensagem trocada com um dispositivo correspondente que usa o mesmo algoritmo com a mesma chave secreta de acordo com um esquema de criptografia simétrico.[002] There are many known methods involving cryptographic algorithms, such as the Data Encryption Standard (DES) or the Advanced Encryption Standard (AES), for encrypting and decrypting data to be transmitted over insecure channels or networks connecting devices electronics of any kind. To that end, such devices are provided with cryptographic components that perform cryptographic operations to scramble messages so as to make them unintelligible without a secret decryption key. These components are typically implemented according to CMOS (Complementary Metal Oxide Semiconductor Technology) technology. The cryptographic algorithms implemented in such components are generally secure enough from a mathematical point of view. However, the fact that such an algorithm is physically implemented by integrated circuits built with interconnected transistors to produce the logical functions of this algorithm generates observable physical quantities. The observation of such quantities can be performed by means of an oscilloscope, for example, to monitor the power consumption of the integrated circuit. Sudden power consumption variations appear as spikes on the oscilloscope screen. Each spike can, for example, identify the start of a so-called "session", typically in an algorithm such as DES and AES, where an incoming message to be encrypted is applied to a succession of groups of operations called "sessions". . According to such an algorithm, each session is placed under the control of a subkey resulting from the previous session. Therefore, such an algorithm involves a series of subkeys that are derived from a secret key used as the initial key within the algorithm. In case this initial secret key is known by a malicious person, the latter becomes able to appropriately decrypt and encrypt any message exchanged with a corresponding device that uses the same algorithm with the same secret key according to a symmetric encryption scheme .

[003] Há diversas maneiras de atacar um circuito criptográfico para recuperar a chave inicial secreta. Alguns ataques são conhecidos como ataques não-invasivos, uma vez que almejam observar o consumo de energia, a emanação eletromagnética ou o tempo de processamento do circuito. Outros ataques são referenciados como ataques invasivos, uma vez que envolvem modificar o circuito, em particular seu comportamento durante um curto lapso de tempo. Nesta última categoria, sabe-se que a Análise de Falha Diferencial (DFA) representa uma séria ameaça a qualquer sistema de criptografia/descriptografia. A Análise de Falha Diferencial se baseia na observação e na comparação das saídas proporcionadas por um circuito criptográfico sob dois estados diferentes. Um desses estados corresponde à operação normal do circuito, ao passo que o outro é obtido mediante a injeção voluntária de uma falha que visa a alterar um ou vários bits, trocando de 0 para 1 ou vice-versa. Tal inversão de bits física pode ser realizada, por exemplo, pela varredura da superfície do circui-to integrado com um feixe de laser. Por meio da localização de áreas sensíveis dentro do circuito criptográfico, sequências de laser permitem modificar o comportamento do circuito de maneira simples e precisa, uma vez que podem ser implementados sob o controle de um computador, enquanto atuam com excelente resolução temporal e espacial. Quando várias falhas são injetadas durante o processamento de um algoritmo criptográfico, a análise das saídas errôneas permite adivinhar a chave secreta mediante a observação e propagações de falha dentro do algoritmo.[003] There are several ways to attack a cryptographic circuit to recover the initial secret key. Some attacks are known as non-invasive attacks, since they aim to observe energy consumption, electromagnetic emanation or circuit processing time. Other attacks are referred to as invasive attacks since they involve modifying the circuit, in particular its behavior over a short period of time. In this last category, Differential Failure Analysis (DFA) is known to pose a serious threat to any encryption/decryption system. Differential Failure Analysis is based on observing and comparing the outputs provided by a cryptographic circuit under two different states. One of these states corresponds to the normal operation of the circuit, while the other is obtained through the voluntary injection of a fault that aims to change one or several bits, changing from 0 to 1 or vice versa. Such physical bit flipping can be performed, for example, by scanning the surface of the integrated circuit with a laser beam. By locating sensitive areas within the cryptographic circuit, laser sequences allow modifying the behavior of the circuit in a simple and precise way, since they can be implemented under the control of a computer, while operating with excellent temporal and spatial resolution. When multiple flaws are injected during the processing of a cryptographic algorithm, the analysis of the erroneous outputs allows guessing the secret key by observing and propagating flaws within the algorithm.

[004] Por conseguinte, há a necessidade de proporcionar uma solução eficiente que possibilite evitar que invasores adivinhem a chave secreta através de qualquer análise de falha diferencial, ou, de forma mais geral, que eles adivinhem tal chave através de informações obtidas por qualquer tipo de análise.[004] Therefore, there is a need to provide an efficient solution that makes it possible to prevent attackers from guessing the secret key through any differential failure analysis, or, more generally, that they guess such a key through information obtained by any type of of analysis.

SUMÁRIO DA INVENÇÃOSUMMARY OF THE INVENTION

[005] O objetivo da presente invenção é resolver, pelo menos em parte, as desvantagens supramencionadas. Para esse fim, a presente invenção sugere um método criptográfico e um dispositivo para troca segura de dados entre pelo menos dois dispositivos, envolvendo a implementação de um processo criptográfico que é particularmente complexo. De acordo com a invenção, a chave secreta, que é compartilhada por todos os dispositivos do mesmo sistema como uma chave simétrica, nunca é usada diretamente como chave de criptografia/descriptografia das mensagens trocadas. De fato, a chave que é usada para criptografar/descriptografar as mensagens trocadas entre os dispositivos de um mesmo sistema sempre dependem de uma pluralidade de números aleatórios, em particular. Mais especificamente, cada dispositivo gera pelo menos um número aleatório que é levado em conta para determinar a chave que é usada para criptografar/descriptografar as mensagens tro-cadas. Por conseguinte, se o sistema compreender três dispositivos, a chave supramencionada dependerá de pelo menos três números aleatórios.[005] The object of the present invention is to solve, at least in part, the aforementioned disadvantages. To that end, the present invention suggests a cryptographic method and a device for securely exchanging data between at least two devices, involving the implementation of a cryptographic process that is particularly complex. According to the invention, the secret key, which is shared by all devices of the same system as a symmetric key, is never used directly as the encryption/decryption key for the exchanged messages. In fact, the key that is used to encrypt/decrypt messages exchanged between devices in the same system always depends on a plurality of random numbers, in particular. More specifically, each device generates at least one random number that is taken into account to determine the key that is used to encrypt/decrypt the exchanged messages. Therefore, if the system comprises three devices, the aforementioned key will depend on at least three random numbers.

[006] Além do mais, um nível de chave adicional é determinado antes de criptografar/descriptografar a mensagem a ser trocada. Por conseguinte, o presente método envolve três níveis de chave para criptografar/descriptografar as mensagens. Além disso, a mensagem a ser trocada nunca é usada diretamente como dados de entrada do algoritmo para gerar o criptograma que tem de ser enviado, mas sempre é usado com cada um dos números aleatórios para primeiramente gerar uma pseudomensagem que será então criptografada pelo algoritmo criptográfico supramencionado.[006] Furthermore, an additional key level is determined before encrypting/decrypting the message to be exchanged. Therefore, the present method involves three levels of key to encrypt/decrypt the messages. Furthermore, the message to be exchanged is never directly used as input to the algorithm to generate the cryptogram which has to be sent, but is always used with each of the random numbers to first generate a pseudo message which will then be encrypted by the cryptographic algorithm. aforementioned.

[007] De preferência, os números aleatórios são renovados toda vez que uma mensagem precisa ser trocada. Por conseguinte, a presente invenção impede que qualquer pessoa maliciosa adivinhe a chave secreta compartilhada através de qualquer ataque envolvendo uma análise de falha diferencial. Adicionalmente, graças à complexidade proporcionada tanto pela pseudomensagem quando pela chave derivada usada para a criptografia, o método criptográfico da presente invenção atinge um nível de segurança particularmente alto.[007] Preferably, the random numbers are refreshed every time a message needs to be exchanged. Therefore, the present invention prevents any malicious person from guessing the shared secret key through any attack involving a differential failure analysis. Additionally, thanks to the complexity provided by both the pseudo message and the derived key used for encryption, the cryptographic method of the present invention achieves a particularly high level of security.

[008] O objetivo e as vantagens da presente invenção são alcançadas graças ao método criptográfico de acordo com a matéria da reivindicação 1 e graças a um dispositivo de acordo com a matéria da reivindicação 11.[008] The objective and advantages of the present invention are achieved thanks to the cryptographic method according to the subject matter of claim 1 and thanks to a device according to the subject matter of claim 11.

[009] Outras vantagens e concretizações serão apresentadas na descrição detalhada a seguir.[009] Other advantages and embodiments will be presented in the detailed description below.

BREVE DESCRIÇÃO DOS DESENHOSBRIEF DESCRIPTION OF THE DRAWINGS

[010] A presente invenção será melhor compreendida graças às figuras anexas, nas quais:[010] The present invention will be better understood thanks to the attached figures, in which:

[011] A Figura 1 representa uma visão geral do sistema da presente invenção de acordo com uma concretização,[011] Figure 1 represents an overview of the system of the present invention according to one embodiment,

[012] A Figura 2 é um fluxograma ilustrando uma concretização ilustrativa do método criptográfico da presente invenção,[012] Figure 2 is a flowchart illustrating an illustrative embodiment of the cryptographic method of the present invention,

[013] A Figura 3 mostra uma alternativa de um extrato do fluxograma da Fig. 2,[013] Figure 3 shows an alternative extract from the flowchart of Fig. 2,

[014] A Figura 4 é uma representação esquemática de um dos dispositivos do sistema ilustrado na Fig. 1.[014] Figure 4 is a schematic representation of one of the devices of the system illustrated in Fig. 1.

DESCRIÇÃO DETALHADADETAILED DESCRIPTION

[015] Referindo-se à Fig. 1, a última ilustra esquematicamente uma visão ge- ral de uma concretização do sistema na qual o método e uma pluralidade de disposi-tivos da presente invenção podem ser implementados. O sistema de comunicação ilustrado nesta Figura mostra três dispositivos D1, D2, D3 conectados um ao outro por qualquer meio. Deve-se observar que o número de dispositivos D1, D2, D3, etc... é ilimitado e que o sistema ilustrado nesta Figura é tido como um exemplo dentre diversas outras possibilidades, tanto em termos de conexão quanto de número de dispositivos. Tal sistema poderia incluir somente dois dispositivos, conectados um ao outro tanto por uma rede, tal como a Internet, quanto por qualquer outro tipo de co-nexão (com ou sem fio), em particular uma conexão insegura.[015] Referring to Fig. 1, the latter schematically illustrates an overview of an embodiment of the system in which the method and a plurality of devices of the present invention can be implemented. The communication system illustrated in this Figure shows three devices D1, D2, D3 connected to each other by any means. It should be noted that the number of devices D1, D2, D3, etc... is unlimited and that the system illustrated in this Figure is taken as an example among several other possibilities, both in terms of connection and number of devices. Such a system could include just two devices, connected to each other either over a network, such as the Internet, or over any other type of connection (wired or wireless), particularly an insecure connection.

[016] Cada dispositivo D1, D2, D3 pode trocar mensagens M com pelo menos um outro dispositivo, de preferência, com qualquer outro dispositivo no sistema. Uma vez que essas mensagens M são trocadas de forma segura, elas foram ilustradas nesta Figura por envelopes, cada um estampado com um cadeado. Para cripto- grafar ou descriptografar mensagens seguras M, cada dispositivo D1, D2, D3 deverá gerenciar pelo menos três chaves criptográficas K, K1, K2. Uma dessas chaves é uma chave secreta compartilhada K comum a todos os dispositivos D1, D2, D3 do sistema. Esta chave secreta K pode ser implementada durante a fabricação do dispositivo D1, D2, D3 ou seu chipset relacionado, ou subsequentemente durante seu estágio de personalização ou durante uma fase de inicialização.[016] Each device D1, D2, D3 can exchange M messages with at least one other device, preferably with any other device in the system. Since these M-messages are exchanged securely, they are illustrated in this Figure by envelopes, each stamped with a padlock. To encrypt or decrypt secure messages M, each device D1, D2, D3 must manage at least three cryptographic keys K, K1, K2. One of these keys is a shared secret key K common to all devices D1, D2, D3 in the system. This K-secret key can be implemented during the manufacture of the D1, D2, D3 device or their related chipset, or subsequently during its customization stage or during an initialization phase.

[017] Como ilustrado de forma esquemática nesta Figura, cada dispositivo envia e recebe outros dados indicados por R1, R2, R3. Tais dados se referem a números aleatórios. Cada dispositivo (por exemplo, D1) gera um número aleatório (R1) que é enviado aos outros dispositivos (D2, D3) e recebe o número aleatório (R2, R3) gerado por cada um dos outros dispositivos (D2, D3). Com base na visão geral proporcionada pela Fig. 1, o método para troca segura de mensagens M entre pelo menos dois dispositivos será descrito em detalhes com referência à Fig. 2.[017] As schematically illustrated in this Figure, each device sends and receives other data indicated by R1, R2, R3. Such data refer to random numbers. Each device (eg D1) generates a random number (R1) which is sent to the other devices (D2, D3) and receives the random number (R2, R3) generated by each of the other devices (D2, D3). Based on the overview provided by Fig. 1, the method for securely exchanging M messages between at least two devices will be described in detail with reference to Fig. 2.

[018] Para fins de simplicidade, a Fig. 2 revela, etapa por etapa, o método da presente invenção enquanto se refere-se a um sistema compreendendo somente dois dispositivos, D1 e D2, respectivamente identificados pelos numerais de referência 10, 20. Nesta figura, as etapas realizadas por cada um desses dispositivos são ilustradas em várias colunas e seguem uma a outra de cima para baixo. As etapas comuns que são realizadas, ambas por cada um dos dispositivos, são representadas em uma coluna central. Deve-se notar que essas etapas comuns são realizadas por cada dispositivo de forma individual. Não há exigência de processar as etapas comuns simultaneamente dentro de cada dispositivo envolvido para troca de mensagens.[018] For simplicity, Fig. 2 reveals, step by step, the method of the present invention as it relates to a system comprising only two devices, D1 and D2, respectively identified by reference numerals 10, 20. In this figure, the steps performed by each of these devices are illustrated in several columns and follow each other from top to bottom. The common steps that are performed, both by each of the devices, are represented in a central column. It should be noted that these common steps are performed by each device individually. There is no requirement to process the common steps simultaneously within each device involved for exchanging messages.

[019] Como já mencionado, cada dispositivo D1, D2 compreende uma chave secreta compartilhada K comum a todos os dispositivos que desejam trocar mensagens mutuamente. Esta chave secreta K é ilustrada na caixa 31 da Fig. 2 Nesta concretização, o dispositivo D1 é projetado para enviar uma mensagem M ao dispositivo D2. Por conseguinte, o primeiro dispositivo D1 corresponde ao dispositivo de envio e o segundo dispositivo D2 corresponde ao dispositivo receptor. Embora somente haja um dispositivo receptor ilustrado nesta Figura, deve-se compreender que a mesma mensagem M poderia ser enviada do dispositivo de envio a uma pluralidade de dispositivos receptores. Na caixa 11, o dispositivo de envio D1 tem de preparar ou recuperar a mensagem M que tem de ser enviada. Tal mensagem M pode se referir a qualquer tipo de dado, mas normalmente, ela irá se referir a dados sensíveis, cuja natureza depende principalmente do tipo dos dispositivos envolvidos no sistema de comunicação em questão.[019] As already mentioned, each device D1, D2 comprises a shared secret key K common to all devices that wish to mutually exchange messages. This secret key K is illustrated in box 31 of Fig. 2 In this embodiment, device D1 is designed to send a message M to device D2. Therefore, the first device D1 corresponds to the sending device and the second device D2 corresponds to the receiving device. Although there is only one receiving device illustrated in this Figure, it should be understood that the same M message could be sent from the sending device to a plurality of receiving devices. In box 11, the sending device D1 has to prepare or retrieve the message M that has to be sent. Such an M message can refer to any type of data, but normally, it will refer to sensitive data, whose nature depends mainly on the type of devices involved in the communication system in question.

[020] Cada dispositivo D1, D2 gera um número aleatório antes de enviá-lo ao outro dispositivo, em particular a uma pluralidade de dispositivos selecionados ou a todos os outros dispositivos no caso de o sistema compreender mais de dois dispositivos. Esta etapa é ilustrada nas caixas 12, 21, onde o dispositivo de envio D1 gera um primeiro número aleatório R1, que é enviado ao dispositivo receptor D2, e o últi- mo gera um segundo número aleatório R2 que é enviado ao dispositivo de envio D1. A realização de uma troca mútua dos números aleatórios com cada um dos dispositivos pode ser alcançada mesmo se esses dispositivos não tivessem acordado anteriormente em trocar uma mensagem a chegar, por exemplo, por meio de um sinal específico reconhecido por esses dispositivos durante uma etapa anterior. Neste caso, poder-se-ia esperar que o mero fato de receber um número aleatório R1 (isto é, dados que podem ser identificados como tal, seja através de um identificador específico, ou por meio de um formato particular) pode ser reconhecido pelo(s) disposi- tivo(s) receptor(es) como sendo um sinal gatilho que informa que uma mensagem M deverá ser recebida a partir do dispositivo de envio. Por conseguinte, cada dispositivo torna-se totalmente capaz de executar as etapas necessárias do presente método no devido tempo.[020] Each device D1, D2 generates a random number before sending it to the other device, in particular to a plurality of selected devices or to all other devices in case the system comprises more than two devices. This step is illustrated in boxes 12, 21, where sending device D1 generates a first random number R1, which is sent to receiving device D2, and the latter generates a second random number R2, which is sent to sending device D1 . Carrying out a mutual exchange of the random numbers with each of the devices can be achieved even if these devices had not previously agreed to exchange an incoming message, for example by means of a specific signal recognized by these devices during a previous step. In this case, one would expect that the mere fact of receiving a random number R1 (that is, data that can be identified as such, either through a specific identifier, or through a particular format) can be recognized by the receiving device(s) as a trigger signal that informs that an M-message is to be received from the sending device. Therefore, each device becomes fully capable of performing the necessary steps of this method in due time.

[021] Ademais, no caso em que o sistema envolve mais de dois dispositivos, como ilustrado no exemplo da Fig. 1, pode-se adicionalmente proporcionar meios para identificar o dispositivo de envio no dispositivo receptor, se necessário. Se a comunicação ainda não for estabelecida entre o dispositivo de envio e o(s) dispositi- vo(s) receptor(es), por exemplo, durante uma sessão atual, uma forma possível poderia ser identificar o endereço do dispositivo de envio ou transmitir o identificador (ID) do dispositivo de envio para o dispositivo receptor. Isso pode ser alcançado, por exemplo, anexando, ao número aleatório R1, o número de ID pertencente ao dispositivo de envio D1 ou incluindo tal ID em quaisquer outros dados.[021] Furthermore, in the case where the system involves more than two devices, as illustrated in the example of Fig. 1, means can additionally be provided to identify the sending device in the receiving device, if necessary. If communication is still not established between the sending device and the receiving device(s), for example during a current session, a possible way could be to identify the address of the sending device or transmit the identifier (ID) from the sending device to the receiving device. This can be achieved, for example, by appending to the random number R1 the ID number belonging to the sending device D1 or by including such an ID in any other data.

[022] Na caixa 33, cada dispositivo D1, D2 determina uma primeira chave K1 calculando uma primeira operação OP1 que usa tanto a chave secreta compartilhada K quando cada número aleatório R1, R2 como operandos. Na ilustração fornecida pela Fig. 2, esta primeira operação OP1, bem como outras operações subsequentes, referem-se a uma operação OU (OR) exclusiva, como um exemplo não- limitante. De acordo com uma concretização preferida, e como ilustrado nesta caixa 33, o resultado da primeira operação OP1 é usado diretamente como a primeira chave K1.[022] In box 33, each device D1, D2 determines a first key K1 by calculating a first operation OP1 that uses both the shared secret key K and each random number R1, R2 as operands. In the illustration provided by Fig. 2, this first OP1 operation, as well as other subsequent operations, refer to an exclusive OR (OR) operation, as a non-limiting example. According to a preferred embodiment, and as illustrated in this box 33, the result of the first operation OP1 is directly used as the first key K1.

[023] Na caixa 35, cada dispositivo D1, D2 subsequentemente calcula uma segunda operação OP2 que usa pelo menos cada número aleatório R1, R2 como operandos. Então, com base no resultado desta segunda operação OP2, cada dispositivo D1, D2 adicionalmente determina uma segunda chave K2. De acordo com o exemplo da caixa 35, isso é realizado pela criptografia do resultado da segunda operação OP2 por meio de um primeiro algoritmo, indicado por A1, que usa a primeira chave K1 como chave de criptografia. Por conseguinte, a segunda operação, ou diretamente seu resultado, é transmitida para o primeiro algoritmo A1 juntamente com a primeira chave criptográfica K1 necessária. Em resposta, este primeiro algoritmo fornece a segunda chave criptográfica K2 como saída.[023] In box 35, each device D1, D2 subsequently computes a second operation OP2 that uses at least every random number R1, R2 as operands. Then, based on the result of this second OP2 operation, each device D1, D2 additionally determines a second key K2. According to the example in box 35, this is accomplished by encrypting the result of the second operation OP2 by means of a first algorithm, denoted by A1, which uses the first key K1 as the encryption key. Therefore, the second operation, or directly its result, is transmitted to the first algorithm A1 together with the first necessary cryptographic key K1. In response, this first algorithm provides the second cryptographic key K2 as output.

[024] Na caixa 14, o dispositivo atuando como o dispositivo de envio D1 calcula uma terceira operação OP3 que usa tanto a mensagem M quanto cada número aleatório R1, R2 como operandos. Dessa forma, o dispositivo de envio D1 determina uma chamada pseudomensagem M’ dado que ela se baseia na mensagem M, mas parece diferente da mensagem inicial M, embora a última ainda não tenha sido criptografada.[024] In box 14, the device acting as the sending device D1 computes a third operation OP3 that uses both the message M and each random number R1, R2 as operands. In this way, the sending device D1 determines a so-called pseudo-message M' since it is based on the message M, but looks different from the initial message M, although the latter has not yet been encrypted.

[025] Na caixa 16, o dispositivo de envio D1 calcula um criptograma C que resulta da criptografia da pseudomensagem M’. Para esse fim, ele usa a pseudo- mensagem M’ como entrada de um segundo algoritmo A2 juntamente com a segunda chave K2 como chave de criptografia.[025] In box 16, the sending device D1 calculates a cryptogram C that results from the encryption of the pseudo message M'. To that end, he uses the pseudo-message M' as input to a second algorithm A2 together with the second key K2 as the encryption key.

[026] Na caixa 18, o criptograma C é transmitido pelo dispositivo de envio a pelo menos um outro dispositivo atuando como dispositivo receptor.[026] In box 18, the cryptogram C is transmitted by the sending device to at least one other device acting as a receiving device.

[027] Quando o dispositivo receptor D2 obtém o criptograma C, ele é capaz de descriptográfa-lo por meio do mesmo algoritmo A2 e da mesma chave K2, como mostra a caixa 23. Para esse fim, o segundo algoritmo A2 será, ou irá incluir, uma função bidirecional que pode ser revertida (vide a notação A2-1 na Fig. 2). Sem dúvidas, o mesmo algoritmo precisa ser usado tanto pelo envio quanto pelos dispositivos de recepção. De acordo com a concretização preferida, a segunda chave K2 é usada como chave de descriptografia direta ou indireta do segundo algoritmo. O uso da segunda chave K2 como chave indireta será descrito com referência à Fig. 3. Em todo caso, a descriptografia do criptograma C permite recuperar a pseudomensagem M’ como resultado do segundo algoritmo A2.[027] When the receiving device D2 obtains the cryptogram C, it is able to decrypt it using the same algorithm A2 and the same key K2, as shown in box 23. To this end, the second algorithm A2 will be, or will include, a bidirectional function that can be reversed (see notation A2-1 in Fig. 2). Without a doubt, the same algorithm needs to be used by both sending and receiving devices. According to the preferred embodiment, the second key K2 is used as the direct or indirect decryption key of the second algorithm. The use of the second key K2 as an indirect key will be described with reference to Fig. 3. In any case, the decryption of the cryptogram C allows recovering the pseudo message M' as a result of the second algorithm A2.

[028] Finalmente, na caixa 25, cada dispositivo receptor D2 recupera a mensagem M em sua forma de texto simples inicial, a partir da pseudomensagem M’ invertendo a terceira operação OP3 (vide a notação OP3-1 na Fig. 2).[028] Finally, in box 25, each receiving device D2 recovers the message M in its initial plain text form, from the pseudo message M' by reversing the third operation OP3 (see the notation OP3-1 in Fig. 2).

[029] Deve-se observar que o primeiro algoritmo A1 pode ser diferente ou idêntico ao segundo algoritmo A2. No entanto, e contrariamente ao segundo algoritmo, o primeiro algoritmo pode usar uma função unidirecional (ou ele mesmo pode ser tal função) que proporciona a segunda chave K2. Por conseguinte, tal segunda chave K2 poderia ser o resumo (digest) de uma função hash ou poderia ser derivada de tal função, por exemplo.[029] It should be noted that the first algorithm A1 may be different or identical to the second algorithm A2. However, and contrary to the second algorithm, the first algorithm can use a unidirectional function (or it can be such a function itself) that provides the second key K2. Therefore, such second key K2 could be the digest of a hash function or could be derived from such a function, for example.

[030] Quaisquer que sejam os algoritmos (A1, A2) usados neste método, eles deve ser os mesmos para todos os dispositivos que desejam trocar mensagens M. Esses algoritmos podem ser implementados dentro de cada dispositivo através de diferentes maneiras, por exemplo, durante a fabricação dos dispositivos, durante sua personalização ou durante uma fase de inicialização.[030] Whatever algorithms (A1, A2) are used in this method, they must be the same for all devices that want to exchange M messages. These algorithms can be implemented within each device in different ways, for example, during the manufacture of the devices, during their customization or during an initialization phase.

[031] Referindo-se agora à Fig. 3, esta Figura mostra as últimas etapas do método ilustrado na Fig. 2, onde a caixa 37 representa uma etapa adicional como uma alternativa do fluxograma anterior. Esta variante corresponde ao caso em que a segunda chave K2 é usada como chave de criptografia/descriptografia indireta dentro do segundo algoritmo A2. Para esse fim, uma terceira chave K3 é determinada, em cada dispositivo D1, D2, por uma quarta operação OP4 que usa tanto a segunda chave K2 quanto a chave secreta compartilhada K como operandos. Como mostra a caixa 37, o resultado desta quarta operação OP4 fornece a terceira chave criptográfica K3.[031] Referring now to Fig. 3, this Figure shows the last steps of the method illustrated in Fig. 2, where box 37 represents an additional step as an alternative to the previous flowchart. This variant corresponds to the case where the second K2 key is used as an indirect encryption/decryption key within the second A2 algorithm. To that end, a third key K3 is determined, on each device D1, D2, by a fourth operation OP4 that uses both the second key K2 and the shared secret key K as operands. As box 37 shows, the result of this fourth operation OP4 provides the third cryptographic key K3.

[032] De maneira similar aos algoritmos, todas as operações OP1, OP2, OP3, OP4, ou algumas delas, podem ser implementadas dentro de cada dispositivo durante a fabricação dos dispositivos, durante sua personalização ou durante uma fase de inicialização.[032] Similar to algorithms, all operations OP1, OP2, OP3, OP4, or some of them, can be implemented within each device during the manufacture of devices, during their customization or during an initialization phase.

[033] Quanto ao dispositivo de envio D1, a etapa ilustrada na caixa 37 é realizada entre as etapas das caixas 36 e 16, uma vez que necessita da segunda chave K2 (determinada pela etapa da caixa 35) e o resultado dessa etapa adicional será usado com o segundo algoritmo A2 (durante a etapa ilustrada na caixa 16). Quanto ao(s) dispositivo(s) de recepção D2, esta etapa adicional é realizada entre as etapas das caixas 35 e 23 pelas mesmas razões.[033] As for the sending device D1, the step illustrated in box 37 is performed between the steps in boxes 36 and 16, since it needs the second key K2 (determined by the step in box 35) and the result of this additional step will be used with the second algorithm A2 (during the step illustrated in Box 16). As for the receiving device(s) D2, this additional step is performed between box steps 35 and 23 for the same reasons.

[034] Como mostra a Fig. 3, o uso da segunda chave K2 no segundo algoritmo A2 (isto é, dentro das etapas das caixas 16 e 23) foi substituído pela terceira chave K3. Isso resulta do fato de que a segunda chave K2 é usada de forma indireta nessas etapas. Por essa razão, os numerais de referências dessas duas caixas foram respectivamente emendados em 16’ e 23’ na Fig. 3.[034] As shown in Fig. 3, the use of the second key K2 in the second algorithm A2 (that is, within the steps of boxes 16 and 23) has been replaced by the third key K3. This results from the fact that the second key K2 is used indirectly in these steps. For this reason, the reference numerals of these two boxes were respectively amended by 16' and 23' in Fig. 3.

[035] Deve-se observar que certas etapas ilustradas na Fig. 2 ou na Fig. 3 poderiam ser colocadas em uma ordem diferente. Por exemplo, as etapas da caixa 14 poderiam ser realizadas em qualquer lugar entre as trocas dos números aleatórios R1, R2 (nas caixas 12, 21) e a criptografia da pseudomensagem M' (na caixa 16, 16'). O mesmo princípio se aplica às etapas da caixa 37, como explicado antes.[035] It should be noted that certain steps illustrated in Fig. 2 or Fig. 3 could be placed in a different order. For example, the steps in box 14 could be performed anywhere between exchanging the random numbers R1, R2 (in boxes 12, 21) and encrypting the pseudomessage M' (in box 16, 16'). The same principle applies to the steps in Box 37 as explained earlier.

[036] De acordo com uma concretização, pelo menos parte de pelo menos qualquer uma das operações OP1, OP2, OP3, OP4 envolve uma operação lógica (álgebra Booleana). Mais particularmente, esta operação lógica é uma operação OU exclusiva (vide a notação simbólica θ na Fig. 2 e 3). Deve-se notar que outras fun- ções lógicas (isto é, operações básicas e/ou derivadas) poderiam ser usadas em vez do operador XOR ou com o operador XOR.[036] According to one embodiment, at least part of at least any one of the operations OP1, OP2, OP3, OP4 involves a logical operation (Boolean algebra). More particularly, this logical operation is an exclusive OR operation (see the symbolic notation θ in Fig. 2 and 3). It should be noted that other logical functions (ie basic and/or derivative operations) could be used instead of the XOR operator or with the XOR operator.

[037] De acordo com outra concretização, pelo menos uma parte de pelo menos qualquer uma das operações OP1, OP2, OP3, OP4 envolve um número elevado a uma potência. Neste caso, qualquer um dos operandos da operação relevante é usado como expoente desse número que é escolhido dentre os outros operan- dos desta operação.[037] According to another embodiment, at least a part of at least any one of the operations OP1, OP2, OP3, OP4 involves a number raised to a power. In this case, any one of the operands of the relevant operation is used as the exponent of that number which is chosen among the other operands of this operation.

[038] Para realizar operações lógicas, os operandos envolvidos devem ter o mesmo número digital. Em outras palavras, e uma vez que as operações referem-se a operações binárias, os operandos devem possuir o mesmo tamanho de bit. Portanto, e dependendo do tipo de operação realizado, por exemplo, na caixa 33 (OP1), tanto o tamanho de bit dos números aleatórios R1, R2 quanto o tamanho de bit da chave secreta compartilhada K deverá ser o mesmo. Com respeito à segunda operação OP2, como ilustrado no exemplo da caixa 35, os números aleatórios R1, R2 devem ter o mesmo tamanho de bit. O mesmo princípio se aplica à terceira e quarta operações com respeito tanto aos números aleatórios R1, R2 quanto à mensagem M, de um lado, e às chaves criptográficas K2, K do outro.[038] To perform logical operations, the operands involved must have the same digital number. In other words, and since the operations refer to binary operations, the operands must have the same bit size. Therefore, and depending on the type of operation performed, for example, in box 33 (OP1), both the bit size of the random numbers R1, R2 and the bit size of the shared secret key K must be the same. With respect to the second operation OP2, as illustrated in the example in box 35, the random numbers R1, R2 must have the same bit size. The same principle applies to the third and fourth operations with respect to both the random numbers R1, R2 and the message M, on the one hand, and the cryptographic keys K2, K, on the other.

[039] Por essa razão, se os operandos de qualquer uma das operações OP1, OP2, OP3, OP4 tiverem tamanhos de bits diferentes, então o presente método pode adicionalmente compreender uma etapa que visa a recuperar o mesmo tamanho de bit para cada um desses operandos. Para esse fim, a recuperação do mesmo tamanho de bit pode ser obtida de várias maneiras diferentes.[039] For this reason, if the operands of any of the operations OP1, OP2, OP3, OP4 have different bit sizes, then the present method may additionally comprise a step that aims to recover the same bit size for each of these operands. To that end, recovery of the same bit size can be achieved in several different ways.

[040] De acordo com uma concretização, isso pode ser obtido por uma “etapa de balanceamento” que visa a suplementar o operando com o menor tamanho de bit até que seu tamanho de bit seja igual ao tamanho de bit de qualquer um dos outros operandos da operação relevante. Então, esta etapa de balanceamento pode ser repetida até que todos os operandos da operação relevante tenham o mesmo tamanho de bit. A etapa que visa a suplementar o operando pode ser alcançada por uma sucessão de bits 0, por uma sucessão de bits 1, até mesmo por uma sucessão de uma combinação específica desses dois bits 0 e 1. Sem dúvidas, a sucessão de bits selecionada deverá ser conhecida tanto pelo dispositivo de envio quanto pelo(s) dispositivo(s) receptor(es), através de qualquer processo mencionado antes, por exemplo, durante a personalização dos dispositivos ou seus chipsets.[040] According to one embodiment, this can be achieved by a “balancing step” that aims to supplement the operand with the smallest bit size until its bit size is equal to the bit size of any of the other operands of the relevant operation. Then this balancing step can be repeated until all operands of the relevant operation have the same bit size. The step aimed at supplementing the operand can be achieved by a succession of 0 bits, by a succession of 1 bits, even by a succession of a specific combination of these two 0 and 1 bits. be known to both the sending device and the receiving device(s) through any process mentioned above, for example, during customization of the devices or their chipsets.

[041] Na variante, esta etapa de balanceamento poderia ser obtida suplementando o operando com o menor tamanho de bit até que o tamanho de bit do outro operando (isto é, de preferência o operando que possui o maior tamanho de bit) seja igual a um múltiplo do tamanho de bit do operando suplementado.[041] In the variant, this balancing step could be obtained by supplementing the operand with the smallest bit size until the bit size of the other operand (that is, preferably the operand that has the largest bit size) is equal to a multiple of the bit size of the supplemented operand.

[042] De acordo com outra concretização, a chamada etapa de balanceamento pode ser primeiro realizada concatenando o operando com o menor tamanho de bit consigo mesmo, até alcançar o mesmo tamanho de bit que o outro operando. Essa abordagem implica que o operando que possui o maior tamanho de bit é um múltiplo do outro operando (isto é, o operando concatenado). No caso em que um operando não é exatamente um múltiplo do outro operando, a concatenação supramencionada pode ser realizada até alcançar um tamanho de bit reduzido por um valor residual menor do que o tamanho de bit do operando concatenado. Este tamanho de bit residual corresponde ao restante da divisão Euclideana, onde o operando com o maior tamanho de bit é o dividendo e o operando a ser concatenado é o divisor. Então, o tamanho de bit residual (isto é, o valor residual) pode ser suplementado por qualquer sucessão de bits, como explicado acima.[042] According to another embodiment, the so-called balancing step can first be performed by concatenating the operand with the smallest bit size with itself, until reaching the same bit size as the other operand. This approach implies that the operand that has the largest bit size is a multiple of the other operand (that is, the concatenated operand). In the case where one operand is not exactly a multiple of the other operand, the aforementioned concatenation can be performed until reaching a bit size reduced by a residual value smaller than the bit size of the concatenated operand. This residual bit size corresponds to the remainder of Euclidean division, where the operand with the largest bit size is the dividend and the operand to be concatenated is the divisor. Then, the residual bit size (that is, the residual value) can be supplemented by any sequence of bits, as explained above.

[043] Como exemplos de uma dessas concretizações aplicadas em particular à terceira operação OP3, a recuperação do mesmo tamanho de bit pode ser obtida para cada um dos referidos números aleatórios R1, R2 concatenando o referido número aleatório consigo mesmo, até atingir o mesmo comprimento tamanho da mensagem M. Esta concretização envolve os números aleatórios R1, R2 terem o mesmo tamanho de bit e o tamanho de bit da mensagem M ser um múltiplo de um dos números aleatórios. Se esta última condição não for satisfeita, então o tamanho de bit residual pode ser suplementado como já explicado.[043] As examples of one of these embodiments applied in particular to the third operation OP3, the recovery of the same bit size can be obtained for each of said random numbers R1, R2 by concatenating said random number with itself, until reaching the same length message size M. This embodiment involves the random numbers R1, R2 having the same bit size and the message bit size M being a multiple of one of the random numbers. If this last condition is not satisfied, then the residual bit size can be supplemented as already explained.

[044] Na variante, e enquanto se referindo ainda à terceira operação OP3, a recuperação do mesmo tamanho de bit poderia ser obtida primeiramente suplementando-se a mensagem M até que seu tamanho de bit seja igual a um múltiplo do tamanho de bit de qualquer um dos números aleatórios R1, R2, e então fatiando a mensagem suplementada M em blocos com o mesmo tamanho de bit que o tamanho de bit do número aleatório antes de usar cada um desses blocos como uma nova mensagem (M) a ser processada pelas etapas do presente método criptográfico.[044] In the variant, and while still referring to the third operation OP3, the recovery of the same bit size could be obtained by first supplementing the message M until its bit size is equal to a multiple of the bit size of any one of the random numbers R1, R2, and then slicing the supplemented message M into blocks of the same bit size as the random number bit size before using each of these blocks as a new message (M) to be processed by the steps of this cryptographic method.

[045] De acordo com outra concretização e para fins de simplificação, as chaves criptográficas usadas no presente método, de preferência pelo menos a segunda chave K2, e a chave secreta compartilhada K, possuem o mesmo tamanho de bit. Pela mesma razão, todos os números aleatórios R1, R2 também possuem o mesmo tamanho de bit.[045] According to another embodiment and for simplification purposes, the cryptographic keys used in the present method, preferably at least the second key K2, and the shared secret key K, have the same bit size. For the same reason, all random numbers R1, R2 also have the same bit size.

[046] Vantajosamente, mediante a geração de um número aleatório em cada dispositivo e o uso de todos os números aleatórios gerados tanto para derivar a chave criptográfica K2, K3, que é usada para calcular o criptograma C, e para determinar a pseudomensagem M’ a ser criptografada, a matéria da presente invenção aumenta significativamente a segurança aplicada às mensagens trocadas M.[046] Advantageously, by generating a random number in each device and using all the random numbers generated both to derive the cryptographic key K2, K3, which is used to calculate the cryptogram C, and to determine the pseudo message M' to be encrypted, the subject matter of the present invention significantly increases the security applied to the exchanged messages M.

[047] Ainda vantajosamente, mesmo se um dos números aleatórios for adivinhado por uma pessoa mal-intencionada, a mesma não será capaz de deduzir a chave que foi usada para criptografar a pseudomensagem M’. Adicionalmente, mesmo que essa chave pudesse ser descoberta por tal pessoa, ela ainda não conseguiria recuperar a mensagem inicial M a partir da pseudomensagem M’, dado que, para recuperar a mensagem original M, tal pessoa precisa primeiro possuir todos os números aleatórios, e então, deverá saber qual é a terceira operação (OP3) realiza- da no método. Isso também requer estar ciente de todos os operadores usados nesta operação, e até mesmo saber a ordem de cada operador e cada operando usando dentro desta operação, dependendo da natureza desta operação.[047] Still advantageously, even if one of the random numbers is guessed by a malicious person, he will not be able to deduce the key that was used to encrypt the pseudo-message M'. Additionally, even if this key could be discovered by such a person, he would still not be able to recover the initial message M from the pseudo-message M', given that, to recover the original message M, such a person must first possess all the random numbers, and then, you should know what is the third operation (OP3) performed in the method. It also requires being aware of all the operators used in this operation, and even knowing the order of each operator and each operand used within this operation, depending on the nature of this operation.

[048] Ainda vantajosamente, a chave secreta compartilhada K nunca é diretamente usada como chave criptográfica em qualquer um dos algoritmos criptográficos A1, A2 implementados no presente método. Em contrapartida, a chave secreta compartilhada K somente é usada dentro de operações matemáticas (OP1, OP4) cujos resultados são subsequentemente usados como chaves nesses algoritmos. Por conseguinte, a chave secreta compartilhada K nunca é diretamente exposta no primeiro plano, dentro de um algoritmo criptográfico.[048] Still advantageously, the shared secret key K is never directly used as a cryptographic key in any of the cryptographic algorithms A1, A2 implemented in the present method. In contrast, the shared secret key K is only used within mathematical operations (OP1, OP4) whose results are subsequently used as keys in these algorithms. Therefore, the shared secret key K is never directly exposed in the foreground within a cryptographic algorithm.

[049] De preferência, as etapas do presente método são realizadas toda vez que uma mensagem M precisa ser trocada. Isso pode ser aplicado qualquer que seja a concretização do método. Por conseguinte, os números aleatórios gerados por cada dispositivo possuem um único uso, dado que um novo número aleatório é gerado, por cada dispositivo, toda vez que uma nova mensagem tem de ser enviada. Portanto, a chave secreta compartilhada K é vantajosamente diferente sempre que uma mensagem M é trocada. Isso proporciona um método forte para troca segura de mensagens, e em particular, um método para impedir quaisquer ataques DFA.[049] Preferably, the steps of this method are performed every time an M message needs to be exchanged. This can be applied whatever the embodiment of the method. Therefore, the random numbers generated by each device have a single use, as a new random number is generated by each device every time a new message has to be sent. Therefore, the shared secret key K is advantageously different each time a message M is exchanged. This provides a strong method for secure messaging, and in particular, a method to prevent any DFA attacks.

[050] Finalmente, deve ser observado que a mensagem M pode compreender qualquer tipo de dado, em particular dados sensíveis, como senhas, palavras de controle, chave criptográfica ou qualquer outra informação confidencial.[050] Finally, it should be noted that message M can comprise any type of data, in particular sensitive data such as passwords, control words, cryptographic key or any other confidential information.

[051] A presente invenção também se refere a um dispositivo ou a um sistema adequado para implementação de qualquer uma das concretizações do método descrito acima.[051] The present invention also relates to a device or a system suitable for implementing any of the embodiments of the method described above.

[052] Referindo-se à Fig. 4, a última ilustra esquematicamente em mais detalhes um dos dispositivos 10, 20 representados no sistema da Fig. 1. Este dispositivo pode ser usado indistintamente como um dispositivo de envio D1 ou como um dispo- sitivo receptor D2, e de preferência, até mesmo como um dispositivo tanto de envio quanto de recepção. Para esse fim, ele compreende vários componentes incluindo, pelo menos:[052] Referring to Fig. 4, the latter schematically illustrates in more detail one of the devices 10, 20 represented in the system of Fig. 1. This device can be used indistinctly as a sending device D1 or as a device D2 receiver, and preferably even as both a sending and receiving device. To that end, it comprises a number of components including, at a minimum:

[053]- uma interface de comunicação 1 para troca de dados (M’, R1, R2, ...), em particular para troca de dados com pelo menos um outro dispositivo,[053] - a communication interface 1 for exchanging data (M', R1, R2, ...), in particular for exchanging data with at least one other device,

[054]- uma memória segura 2 para armazenar a chave secreta compartilhada K,[054]- a secure memory 2 to store the shared secret key K,

[055]- um gerador aleatório 3 para gerar um número aleatório R1 quando uma mensagem M precisa ser trocada, de preferência toda vez que tal mensagem precisa ser trocada,[055]- a random generator 3 to generate a random number R1 when a message M needs to be exchanged, preferably every time such a message needs to be exchanged,

[056]- pelo menos uma unidade de cálculo 7 para emitir pelo menos um resultado de uma operação (OP1, OP2, OP3, OP4) usando operandos (por exemplo, R, R2, K, M) como entradas,[056]- at least one calculation unit 7 to output at least one result of an operation (OP1, OP2, OP3, OP4) using operands (e.g. R, R2, K, M) as inputs,

[057]- pelo menos uma unidade criptográfica 8 para executar algoritmos (A1, A2) por meio de pelo menos uma chave criptográfica (K1, K2, K3), e[057]- at least one cryptographic unit 8 for executing algorithms (A1, A2) by means of at least one cryptographic key (K1, K2, K3), and

[058]- uma unidade central de processamento 5 encarregada de gerenciar os componentes supramencionados (1, 2, 3, 7, 8) de acordo com as etapas do método criptográfico descritas aqui anteriormente.[058] - a central processing unit 5 in charge of managing the aforementioned components (1, 2, 3, 7, 8) according to the steps of the cryptographic method described here above.

[059] O dispositivo 10, 20 pode ser usado em todos os casos em que dados sensíveis devem ser trocados de forma segura. Tal dispositivo pode assumir a forma de um circuito eletrônico (circuito integrado, de preferência um circuito monolítico), tal como um cartão inteligente ou um chipset próprio para ser inserido em outro dispositivo. O último poderia ser um decodificador de sinais (dentro da área de TV paga), um smartphone ou qualquer outro dispositivo de comunicação. Em uma variante, tal cartão inteligente poderia ainda ser usado como um dispositivo autônomo, por exemplo, como um cartão de acesso, um cartão de banco (cartão de crédito ou cartão de pagamento) para comunicação com um terminal de controle.[059] Device 10, 20 can be used in all cases where sensitive data must be exchanged securely. Such a device may take the form of an electronic circuit (integrated circuit, preferably a monolithic circuit), such as a smart card or a chipset designed to be inserted into another device. The latter could be a signal decoder (within the pay TV area), a smartphone or any other communication device. In a variant, such a smart card could further be used as a standalone device, for example as an access card, a bank card (credit card or payment card) for communication with a control terminal.

[060] O cálculo de cada operação OP1, OP2, OP3, OP4 pode ser realizado usando uma única unidade de cálculo 7 configurada para realizar diferentes operações, ou várias unidades de cálculo 7, cada uma dedicada a uma dessas operações. O mesmo princípio se aplica à unidade criptográfica 8 com relação aos algoritmos A1, A2.[060] The calculation of each operation OP1, OP2, OP3, OP4 can be performed using a single calculation unit 7 configured to perform different operations, or several calculation units 7, each dedicated to one of these operations. The same principle applies to cryptographic unit 8 with respect to algorithms A1, A2.

[061] A invenção também se refere a um sistema conforme ilustrado na Fig.1. Tal sistema compreende pelo menos dois dispositivos criptográficos 10, 20 conectados um ao outro, para implementar qualquer concretização do método descrito acima. Cada dispositivo 10, 20 desse sistema compreende pelo menos os componentes que foram listados acima durante a descrição detalhada do dispositivo apresentado como uma matéria adicional da presente invenção. Ademais, quaisquer dos dispositivos do sistema podem incluir pelo menos um dos aspectos opcionais relacionados mencionados acima.[061] The invention also refers to a system as illustrated in Fig.1. Such a system comprises at least two cryptographic devices 10, 20 connected to each other, to implement any embodiment of the method described above. Each device 10, 20 of that system comprises at least those components that have been listed above during the detailed description of the device presented as a further matter of the present invention. Furthermore, any of the system devices may include at least one of the related optional aspects mentioned above.

Claims (13)

1. Método criptográfico para troca segura de mensagens (M) entre pelo menos dois dispositivos (D1, D2), cada um armazenando uma chave secreta compartilhada (K) comum aos referidos dispositivos, CARACTERIZADO por compreender as seguintes etapas: - gerar um número aleatório (R1, R2) em cada dispositivo, - enviar, por cada dispositivo, o número aleatório gerado (R1, R2) aos outros dispositivos, - determinar, em cada dispositivo, uma primeira chave (K1) por meio do cálculo de uma primeira operação que usa tanto a referida chave secreta compartilhada (K) quanto cada número aleatório (R1, R1) como operandos, - determinar, em cada dispositivo, uma segunda chave (K2) por meio da criptografia de uma segunda operação com um primeiro algoritmo usando a referida primeira chave (K1) como chave de criptografia, a referida segunda operação usando pelo menos cada número aleatório (R1, R2) como operandos, - determinar, por um dos referidos dispositivos atuando como um dispositivo de envio (D1), uma pseudomensagem (M’) calculando uma terceira operação reversível que usa tanto a referida mensagem (M) quanto cada número aleatório (R1, R2) como operandos, - calcular, pelo referido dispositivo de envio (D1), um criptograma (C) re-sultante da criptografia da referida pseudomensagem (M’) com um segundo algoritmo usando a referida segunda chave (K2) como chave de criptografia direta ou indireta, - transmitir o referido criptograma (C) do referido dispositivo de envio (D1) a pelo menos um outro dispositivo atuando como dispositivo receptor (D2), - receber o referido criptograma (C) no referido dispositivo receptor (D2), - descriptografar o criptograma (C) no dispositivo receptor (D2) usando a referida segunda chave (K2) como chave de descriptografia direta ou indireta do re-ferido segundo algoritmo para recuperar a referida pseudomensagem (M’), - recuperar a referida mensagem (M) a partir da referida pseudomensa- gem (M’) por meio da inversão da referida terceira operação.1. Cryptographic method for the secure exchange of messages (M) between at least two devices (D1, D2), each storing a shared secret key (K) common to said devices, CHARACTERIZED by comprising the following steps: - generating a random number (R1, R2) in each device, - send, by each device, the random number generated (R1, R2) to the other devices, - determine, in each device, a first key (K1) by means of the calculation of a first operation which uses both said shared secret key (K) and each random number (R1, R1) as operands, - determine, in each device, a second key (K2) by encrypting a second operation with a first algorithm using the said first key (K1) as encryption key, said second operation using at least each random number (R1, R2) as operands, - determining, by one of said devices acting as a sending device (D1), a pseudo message ( M') calculating a third reversible operation that uses both said message (M) and each random number (R1, R2) as operands, - calculate, by said sending device (D1), a cryptogram (C) resulting from the cryptography of said pseudo-message (M') with a second algorithm using said second key (K2) as direct or indirect encryption key, - transmitting said cryptogram (C) from said sending device (D1) to at least one other device acting as receiving device (D2), - receiving said cryptogram (C) at said receiving device (D2), - decrypting said cryptogram (C) at receiving device (D2) using said second key (K2) as direct decryption key or indirect from said second algorithm for recovering said pseudo-message (M'), - recovering said message (M) from said pseudo-message (M') by inverting said third operation. 2. Método criptográfico, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que o uso da referida segunda chave (K2) como criptografia indireta ou chave de descriptografia, dentro do segundo algoritmo, é realizado com uma terceira chave (K3) determinada, em cada dispositivo, por uma quarta operação usando a referida segunda chave (K2) e a referida chave secreta compartilhada (K) como operandos.2. Cryptographic method, according to claim 1, CHARACTERIZED by the fact that the use of said second key (K2) as an indirect encryption or decryption key, within the second algorithm, is carried out with a determined third key (K3), on each device, by a fourth operation using said second key (K2) and said shared secret key (K) as operands. 3. Método criptográfico, de acordo com a reivindicação 1 ou 2, CARACTERIZADO pelo fato de que pelo menos uma parte de pelo menos qualquer uma das referidas operações envolve uma operação lógica.3. Cryptographic method, according to claim 1 or 2, CHARACTERIZED by the fact that at least a part of at least any one of said operations involves a logical operation. 4. Método criptográfico, de acordo com a reivindicação 3, CARACTERIZADO pelo fato de que a referida operação lógica é uma operação OU (OR) exclusiva.4. Cryptographic method, according to claim 3, CHARACTERIZED by the fact that said logical operation is an exclusive OR (OR) operation. 5. Método criptográfico, de acordo com qualquer uma das reivindicações precedentes, CARACTERIZADO pelo fato de que se os operandos de qualquer uma da referidas operações tiverem tamanhos de bit diferentes, restaurar então o mesmo tamanho de bit para cada um dos referidos operandos.5. Cryptographic method, according to any one of the preceding claims, CHARACTERIZED by the fact that if the operands of any of said operations have different bit sizes, then restore the same bit size for each of said operands. 6. Método criptográfico, de acordo com a reivindicação 5, CARACTERIZADO pelo fato de que a restauração do mesmo tamanho de bit é alcançada por uma etapa de balanceamento que visa a suplementar o operando tendo o menor tamanho de bit até que seu tamanho de bit seja igual ao tamanho de bit de qualquer um dos outros operandos, repetindo então a referida etapa de balanceamento até que todos os operandos (ou operandos suplementados) tenham o mesmo tamanho de bit.6. Cryptographic method, according to claim 5, CHARACTERIZED by the fact that restoration of the same bit size is achieved by a balancing step that aims to supplement the operand having the smallest bit size until its bit size is equal to the bit size of any of the other operands, then repeating the said balancing step until all operands (or supplemented operands) have the same bit size. 7. Método criptográfico, de acordo com a reivindicação 6, CARACTERIZADO pelo fato de que a referida etapa de balanceamento é primeiro realizada concatenando-se o operando com o menor tamanho de bit consigo mesmo, até alcançar o mesmo tamanho de bit que o outro operando, ou até alcançar um tamanho de bit reduzido por um valor residual menor do que o tamanho de bit do operando concatenado.7. Cryptographic method, according to claim 6, CHARACTERIZED by the fact that said balancing step is first performed by concatenating the operand with the smallest bit size with itself, until reaching the same bit size as the other operand , or until reaching a bit size reduced by a residual value smaller than the bit size of the concatenated operand. 8. Método criptográfico, de acordo com a reivindicação 7, CARACTERIZADO pelo fato de que a referida etapa de balanceamento é aplicada à referida terceira operação e o operando com o menor tamanho de bit é qualquer um dos referidos números aleatórios (R1, R2), enquanto que o referido outro operando é a mensagem (M).8. Cryptographic method, according to claim 7, CHARACTERIZED by the fact that said balancing step is applied to said third operation and the operand with the smallest bit size is any of said random numbers (R1, R2), while said other operand is the message (M). 9. Método criptográfico, de acordo com qualquer uma das reivindicações precedentes, CARACTERIZADO pelo fato de que o referido primeiro algoritmo usa uma função unidirecional.9. Cryptographic method, according to any of the preceding claims, CHARACTERIZED by the fact that said first algorithm uses a unidirectional function. 10. Método criptográfico, de acordo com qualquer uma das reivindicações precedentes, CARACTERIZADO pelo fato de que pelo menos uma parte de pelo menos qualquer uma das referidas operações envolve um número elevado a uma potência, em que qualquer um dos referidos operandos é usado como expoente do referido número escolhido dentre os outros operandos.10. Cryptographic method, according to any of the preceding claims, CHARACTERIZED by the fact that at least a part of at least any of said operations involves a number raised to a power, in which any of said operands is used as an exponent of the number chosen among the other operands. 11. Dispositivo criptográfico (10, 20) para implementar o método criptográfico conforme definido em qualquer uma das reivindicações 1 a 10, CARACTERIZADO por compreender vários componentes incluindo pelo menos uma interface de comunicação (1) para troca de dados, uma memória segura (2) para armazenar uma chave secreta compartilhada (K), um gerador aleatório (3) para gerar um número aleatório (R1, R2), pelo menos uma unidade de cálculo (7) emitindo um resultado de uma operação usando operandos como entradas, pelo menos uma unidade criptográfica (8) para executar algoritmos por meio de pelo menos uma chave criptográfica (K1, K2, K3), e uma unidade central de processamento (5) encarregada de gerenciar os referidos componentes de acordo com as etapas do referido método criptográfico.11. Cryptographic device (10, 20) for implementing the cryptographic method as defined in any one of claims 1 to 10, characterized by comprising several components including at least one communication interface (1) for data exchange, a secure memory (2 ) for storing a shared secret key (K), a random generator (3) for generating a random number (R1, R2), at least one calculation unit (7) outputting a result of an operation using operands as inputs, at least a cryptographic unit (8) for executing algorithms by means of at least one cryptographic key (K1, K2, K3), and a central processing unit (5) in charge of managing said components according to the steps of said cryptographic method. 12. Dispositivo criptográfico (10, 20), de acordo com a reivindicação 11, CARACTERIZADO por ser feito de um circuito monolítico.12. Cryptographic device (10, 20), according to claim 11, characterized by being made of a monolithic circuit. 13. Sistema, CARACTERIZADO por compreender pelo menos dois dispositivos criptográficos (10, 20) conectados juntos para implementar o método criptográfico conforme definido em qualquer uma das reivindicações 1 a 10, em que cada um dos referidos dispositivos compreende vários componentes incluindo pelo menos uma interface de comunicação (1) para troca de dados, uma memória segura (2) para armazenar uma chave secreta compartilhada (K), um gerador aleatório (3) para gerar um número aleatório (R1, R2), pelo menos uma unidade de cálculo (7) emitindo um resultado de uma operação usando operandos como entradas, pelo menos uma unidade criptográfica (8) para executar algoritmos por meio de pelo menos uma chave criptográfica (K1, K2, K3), e uma unidade central de processamento (5) encarregada de gerenciar os referidos componentes de acordo com as etapas do referido método criptográfico.13. System, characterized by comprising at least two cryptographic devices (10, 20) connected together to implement the cryptographic method as defined in any one of claims 1 to 10, wherein each of said devices comprises several components including at least one interface (1) for exchanging data, a secure memory (2) for storing a shared secret key (K), a random generator (3) for generating a random number (R1, R2), at least one calculation unit ( 7) issuing a result of an operation using operands as inputs, at least one cryptographic unit (8) for executing algorithms by means of at least one cryptographic key (K1, K2, K3), and a central processing unit (5) in charge to manage said components according to the steps of said cryptographic method.
BR102015013579-3A 2014-06-12 2015-06-10 CRYPTOGRAPHIC METHOD FOR SECURE EXCHANGE OF MESSAGES BETWEEN AT LEAST TWO DEVICES, CRYPTOGRAPHIC DEVICE AND SYSTEM BR102015013579B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP14172225.6A EP2955871B1 (en) 2014-06-12 2014-06-12 Cryptographic method for securely exchanging messages and device and system for implementing this method
EP14172225.6 2014-06-12

Publications (2)

Publication Number Publication Date
BR102015013579A2 BR102015013579A2 (en) 2018-05-29
BR102015013579B1 true BR102015013579B1 (en) 2023-07-04

Family

ID=

Similar Documents

Publication Publication Date Title
DK2955871T3 (en) Cryptographic method for securely exchanging messages and apparatus and system for performing this method
US9875378B2 (en) Physically unclonable function assisted memory encryption device techniques
TWI717907B (en) Method and system for secure memory
US11184164B2 (en) Secure crypto system attributes
US10482252B2 (en) Method for protecting the confidentiality and integrity of firmware for an Internet of Things device
EP3577642B1 (en) Methods and devices for protecting data
US11308241B2 (en) Security data generation based upon software unreadable registers
CN108475237A (en) Storage operation is encrypted
US20230254122A1 (en) Secret material exchange and authentication cryptography operations
TW202008205A (en) Method and apparatus for secure external access of the PUF information to an authorized entity
US9729319B2 (en) Key management for on-the-fly hardware decryption within integrated circuits
TWI751075B (en) Applications of physical unclonable function in memories
US11893115B2 (en) Method for providing a secret unique key for a volatile FPGA
BR102015013579B1 (en) CRYPTOGRAPHIC METHOD FOR SECURE EXCHANGE OF MESSAGES BETWEEN AT LEAST TWO DEVICES, CRYPTOGRAPHIC DEVICE AND SYSTEM
JP5945525B2 (en) KEY EXCHANGE SYSTEM, KEY EXCHANGE DEVICE, ITS METHOD, AND PROGRAM
WO2016019670A1 (en) Anti-attack encryption and decryption method and device of block cipher
US20240020383A1 (en) Method and circuit for protecting an electronic device from a side-channel attack
Stanciu et al. Pseudo-random generator using PUF circuits and Salsa stream cipher