BR112017010974B1 - BLOCK CRYPTOGRAPHIC METHOD FOR ENCRYPTION/DECRYPTION OF MESSAGES AND CRYPTOGRAPHIC DEVICES FOR IMPLEMENTING THIS METHOD - Google Patents

BLOCK CRYPTOGRAPHIC METHOD FOR ENCRYPTION/DECRYPTION OF MESSAGES AND CRYPTOGRAPHIC DEVICES FOR IMPLEMENTING THIS METHOD Download PDF

Info

Publication number
BR112017010974B1
BR112017010974B1 BR112017010974-3A BR112017010974A BR112017010974B1 BR 112017010974 B1 BR112017010974 B1 BR 112017010974B1 BR 112017010974 A BR112017010974 A BR 112017010974A BR 112017010974 B1 BR112017010974 B1 BR 112017010974B1
Authority
BR
Brazil
Prior art keywords
data
block
ciphertext
message
round
Prior art date
Application number
BR112017010974-3A
Other languages
Portuguese (pt)
Other versions
BR112017010974A2 (en
Inventor
Brecht Wyseur
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
Application filed by Nagravision S.A filed Critical Nagravision S.A
Priority claimed from PCT/EP2015/078115 external-priority patent/WO2016087395A1/en
Publication of BR112017010974A2 publication Critical patent/BR112017010974A2/en
Publication of BR112017010974B1 publication Critical patent/BR112017010974B1/en

Links

Abstract

MÉTODO CRIPTOGRÁFICO DE BLOCO PARA CRIPTOGRAFIA/DESCRIPTOGRAFIA DE MENSAGENS E DISPOSITIVOS CRIPTOGRÁFICOS PARA IMPLEMENTAÇÃO DESTE MÉTODO. É revelado um método e aparelho de cifra de bloco utilizando repetição de rodada para fornecer, a partir de uma mensagem de texto plano (10), uma mensagem de texto cifrado (50) e uma marca global (52). A mensagem de texto plano é convertida em uma pluralidade de blocos de texto plano (11) que são sucessivamente processados durante uma rodada para calcular: - um criptograma (30) por meio da criptografia de dados de entrada (20) usando uma chave criptográfica única, o dito criptograma compreendendo um primeiro segmento (31) e um segundo segmento (32) - um bloco de texto cifrado (51) por meio da realização de uma primeira operação (41) utilizando, como operandos: o dito primeiro segmento (31), o dito bloco de texto plano atual (11) e o dito segundo segmento (32). Em cada rodada seguinte, os ditos dados de entrada são novamente determinados baseado no bloco de texto cifrado atual e nos dados reproduzíveis atualizados. A mensagem de texto cifrado é determinada concatenando-se os blocos de texto cifrado e a marca global por uma segunda operação (42) utilizando marcas locais de autenticação como operandos.BLOCK CRYPTOGRAPHIC METHOD FOR ENCRYPTION/DECRYPTION OF MESSAGES AND CRYPTOGRAPHIC DEVICES FOR IMPLEMENTING THIS METHOD. A block cipher method and apparatus utilizing round repetition to provide, from a plaintext message (10), a ciphertext message (50) and a global tag (52), is disclosed. The plain text message is converted into a plurality of plain text blocks (11) which are successively processed during one round to calculate: - a cryptogram (30) by encrypting input data (20) using a unique cryptographic key , said cryptogram comprising a first segment (31) and a second segment (32) - a ciphertext block (51) by performing a first operation (41) using, as operands: said first segment (31) , said current plain text block (11) and said second segment (32). In each subsequent round, said input data is determined again based on the current ciphertext block and the updated reproducible data. The ciphertext message is determined by concatenating the ciphertext blocks and the global tag by a second operation (42) using local authentication tags as operands.

Description

CAMPO TÉCNICOTECHNICAL FIELD

[001] A presente invenção refere-se ao campo de criptografia de mensagem, usando um modo de operação de cifra de bloco para criptografia autenticada (AE), e descriptografia de mensagem usando o modo de operação inverso. Mais especificamente, a presente invenção refere-se a esquemas de Criptografia Autenticada e, em particular, refere-se a um aperfeiçoamento do chamado esquema de Realimentação de Cifra e Contador (CCFB). Em uma variante, a presente invenção também compreende uma extensão aos esquemas de Criptografia Autenticada com Dados Associados (AEAD), em particular, a um aprimoramento de um esquema CCFB+H. Finalmente, a presente invenção também se refere à operação criptográfica inversa utilizando o mesmo esquema.[001] The present invention relates to the field of message encryption, using a block cipher mode of operation for authenticated encryption (AE), and message decryption using the reverse mode of operation. More specifically, the present invention relates to Authenticated Cryptography schemes and, in particular, relates to an improvement of the so-called Cipher and Counter Feedback (CCFB) scheme. In a variant, the present invention also comprises an extension to Authenticated Encryption with Associated Data (AEAD) schemes, in particular, an improvement to a CCFB+H scheme. Finally, the present invention also relates to the reverse cryptographic operation using the same scheme.

ANTECEDENTES DA INVENÇÃOBACKGROUND OF THE INVENTION

[002] Quando uma mensagem confidencial precisa ser enviada a partir de uma primeira entidade para uma segunda, é comum proteger a privacidade da mensagem e sua integridade/autenticidade. No passo, esses dois objetivos de segurança eram tratados separadamente, pois se considerava que a proteção de integridade, tipicamente gerenciada utilizando códigos de autenticação de mensagem (MACs) ou assinaturas digitais, era um objetivo que deveria ser alcançado por meios completamente diferentes.[002] When a confidential message needs to be sent from a first entity to a second, it is common to protect the privacy of the message and its integrity/authenticity. In the step, these two security objectives were treated separately, as it was considered that integrity protection, typically managed using message authentication codes (MACs) or digital signatures, was an objective that should be achieved by completely different means.

[003] Após observar que a implementação de um modo de confidencialidade com um modo de autenticidade separado poderia ser difícil ou propensa a erros, foi sugerido alimentar modos de operação que combinam tanto a confidencialidade quanto a integridade/autenticidade em um único esquema criptográfico. Um modo de operação pode ser considerado como uma técnica para aprimorar o efeito de um algoritmo criptográfico, em particular qualquer algoritmo baseado em um esquema de criptografia simétrica. Os esquemas de Criptografia Autenticada (AE) são projetados para proteger simultaneamente a privacidade e a integridade/autenticidade das mensagens processadas em um modo de operação único compacto. Como exemplo, quando um provedor deseja enviar informações confidenciais a um cliente, a privacidade de dados é necessária para assegurar que a informação permaneça confidencial. Além disso, a integridade e autenticidade são adicionalmente necessárias para assegurar que a entidade que enviou a informação é realmente o provedor supracitado e que a informação não foi modificada durante seu trânsito.[003] After observing that implementing a confidentiality mode with a separate authenticity mode could be difficult or error-prone, it was suggested to feed modes of operation that combine both confidentiality and integrity/authenticity into a single cryptographic scheme. A mode of operation can be considered as a technique for enhancing the effect of a cryptographic algorithm, in particular any algorithm based on a symmetric encryption scheme. Authenticated Encryption (AE) schemes are designed to simultaneously protect the privacy and integrity/authenticity of processed messages in a single compact mode of operation. As an example, when a provider wants to send confidential information to a customer, data privacy is necessary to ensure that the information remains confidential. Furthermore, integrity and authenticity are additionally necessary to ensure that the entity that sent the information is truly the aforementioned provider and that the information was not modified during its transit.

[004] Os modos AE podem ser classificados de acordo com o número de passes sobre os dados que eles requerem. Alguns modos AE somente utilizam um passe sobre os dados, ao passo que outros usuários usam dois passes. Os modos de passe único oferecem criptografia autenticada logo após o processamento simples de uma mensagem. Os modos de dois passes processam dados em duas fases (ainda utilizando uma chave tanto para a criptografia quanto para a autenticação).[004] AE modes can be classified according to the number of passes over the data they require. Some AE modes only use one pass over the data, while other users use two passes. Single-pass modes provide authenticated encryption right after simple processing of a message. Two-pass modes process data in two phases (still using one key for both encryption and authentication).

[005] Quando uma mensagem é criptografada por meio de tal esquema de criptografia autenticada “integrado”, o texto cifrado pode ser enviado junto com informação adicional. Isto significa que é possível anexar um cabeçalho plano à mensagem criptografada. Tal cabeçalho de pacote (cabeçalho de texto plano vinculado à mensagem de texto plano) precisa ser autenticado junto com a mensagem, mas não precisa ser criptografado. De fato, tipicamente em um pacote de rede, a carga útil deverá ser criptografada e autenticada, mas o cabeçalho somente deverá ser autenticado (isto é, deverá permanecer descriptografado). A razão disso é que os roteadores devem ser capazes de ler os cabeçalhos dos pacotes de modo a saber como encaminhá-los apropriadamente. Alguns modos de operação são especificamente adequados para autenticar de maneira eficiente os dados associados à mensagem de texto cifrado. Tais modos são chamados de Criptografia Autenticada com Dados Associados (AEAD). Eles permitem que dados associados sejam incluídos como entrada em seus esquemas.[005] When a message is encrypted using such an “integrated” authenticated encryption scheme, the ciphertext can be sent along with additional information. This means that it is possible to attach a plain header to the encrypted message. Such a packet header (plaintext header linked to the plaintext message) needs to be authenticated along with the message, but does not need to be encrypted. In fact, typically in a network packet, the payload must be encrypted and authenticated, but the header must only be authenticated (that is, it must remain decrypted). The reason for this is that routers must be able to read packet headers in order to know how to forward them appropriately. Some modes of operation are specifically suited to efficiently authenticate the data associated with the ciphertext message. Such modes are called Authenticated Encryption with Associated Data (AEAD). They allow associated data to be included as input to your schemas.

[006] Uma das desvantagens dos esquemas AE e AEAD é que eles são propensos a ataques por Análise Diferencial de Potência (DPA) de primeira ordem. A análise de potência é uma forma de ataque de canal secundário (ataque não- invasivo) no qual o invasor (hacker) estuda o consumo de energia de um dispositivo criptográfico. Tal dispositivo pode se referir a um cartão microprocessador, um crachá, uma chave, um chip de circuito integrado de uma placa de circuito impresso, um módulo de segurança dentro de um módulo desembaralhador ou pode ser funções implementadas somente na forma de software. Por meio do estudo da corrente e da entrada e saída de tensão de um circuito (ou da temporização do dispositivo ou até mesmo das emissões eletromagnéticas), poderia ser possível descobrir informações secretas, tais como chaves criptográficas usadas durante operações normais do dispositivo. De fato, algumas operações necessitam de maior consumo de energia. Assim, utilizando um osciloscópio digital e um computador pessoal convencional, a análise das variações e picos pode extrair informações valiosas para o criptoanalista.[006] One of the disadvantages of the AE and AEAD schemes is that they are prone to first-order Differential Power Analysis (DPA) attacks. Power analysis is a form of side-channel attack (non-invasive attack) in which the attacker (hacker) studies the power consumption of a cryptographic device. Such a device may refer to a microprocessor card, a badge, a key, an integrated circuit chip on a printed circuit board, a security module within a descrambler module, or may be functions implemented only in software form. By studying a circuit's current and voltage input and output (or the device's timing, or even its electromagnetic emissions), it could be possible to discover secret information, such as cryptographic keys used during normal device operations. In fact, some operations require greater energy consumption. Thus, using a digital oscilloscope and a conventional personal computer, the analysis of variations and peaks can extract valuable information for the cryptanalyst.

[007] A Análise Simples de Potência (SPA) recupera chaves secretas através da observação direta do consumo de energia de um dispositivo, ao passo que os ataques DPA empregam técnicas estatísticas para extrair informações de chave secreta a partir de múltiplas medições de consumo de energia. A DPA é uma forma avançada de análise de potência que permite calcular valores intermediários dentro de cálculos criptográficos mediante a análise estática dos dados coletados a partir de múltiplas operações criptográficas, tipicamente a partir de milhares de operações. Os ataques DPA possuem propriedades de processamento de sinal e correção de erros que são capazes de extrair segredos a partir de medições contendo ruído demais para serem analisadas usando SPA. Usando um ataque DPA, um hacker pode obter chaves secretas mediante a análise das medições de consumo de energia a partir de múltiplas operações criptográficas realizadas em um sistema criptográfico vulnerável.[007] Simple Power Analysis (SPA) recovers secret keys through direct observation of a device's power consumption, whereas DPA attacks employ statistical techniques to extract secret key information from multiple power consumption measurements . DPA is an advanced form of power analysis that allows you to calculate intermediate values within cryptographic calculations by statically analyzing data collected from multiple cryptographic operations, typically from thousands of operations. DPA attacks have signal processing and error correction properties that are capable of extracting secrets from measurements containing too much noise to be analyzed using SPA. Using a DPA attack, a hacker can obtain secret keys by analyzing power consumption measurements from multiple cryptographic operations performed on a vulnerable cryptographic system.

[008] Para enfrentar tais ataques de canal secundário, foram desenvolvidas contramedidas. Algumas dessas contramedidas envolvem modificações do algoritmo criptográfico, por exemplo, realizando operações criptográficas nos dados que estão relacionados ao valor real por relação matemática que sobrevive à operação criptográfica. Uma abordagem envolve o cegamento (blinding) de parâmetros para aleatorizar dados manipulados pelo sistema criptográfico, enquanto produzindo ainda o resultado correto. Informações imprevisíveis são incorporadas em valores intermediários para reduzir a correlação entre as medições de consumo de energia (canais secundários) e os valores intermediários originais. De acordo com outra abordagem, é possível mascarar o sinal original mediante a redução intencional da amplitude do sinal para diminuir a relação sinal-ruído (S/N). Em uma variante, pode- se também adicionar ruído de amplitude ou temporal às medições de consumo de energia para diminuir a relação S/N. Outras contramedidas podem envolver modificações de hardware, por exemplo, mediante a variação da frequência de relógio (clock) interna de um chip a fim de dessincronizar os sinais elétricos, ou podem envolver modificações do protocolo criptográfico, por exemplo, por meio da renovação e atualização contínua dos segredos durante a vida útil do sistema criptográfico.[008] To counter such side channel attacks, countermeasures have been developed. Some of these countermeasures involve modifications of the cryptographic algorithm, for example, performing cryptographic operations on data that is related to the real value by mathematical relationship that survives the cryptographic operation. One approach involves blinding parameters to randomize data manipulated by the cryptographic system, while still producing the correct result. Unpredictable information is incorporated into intermediate values to reduce the correlation between power consumption measurements (side channels) and the original intermediate values. According to another approach, it is possible to mask the original signal by intentionally reducing the signal amplitude to reduce the signal-to-noise ratio (S/N). In a variant, one can also add amplitude or temporal noise to the power consumption measurements to decrease the S/N ratio. Other countermeasures may involve hardware modifications, for example, by varying a chip's internal clock frequency to desynchronize electrical signals, or may involve modifications of the cryptographic protocol, for example, by renewing and updating continuous storage of secrets during the lifetime of the cryptographic system.

[009] Entretanto, a prevenção de ataques PDA é muito desafiadora, pois até mesmo pequenas variações no consumo de energia podem levar a fraquezas que poderão ser exploradas. Além disso, geralmente não há livre acesso a tais contramedidas devido à proteção conferida por patentes. Por conseguinte, existe a necessidade de oferecer um novo esquema AE de modo a superar pelo menos parcialmente essas desvantagens.[009] However, preventing PDA attacks is very challenging, as even small variations in power consumption can lead to weaknesses that can be exploited. Furthermore, there is generally no free access to such countermeasures due to the protection afforded by patents. Therefore, there is a need to offer a new AE scheme in order to at least partially overcome these disadvantages.

SUMÁRIO DA INVENÇÃOSUMMARY OF THE INVENTION

[010] Em vez de oferecer novas contramedidas para proteger os sistemas criptográficos dos ataques DPA, a presente invenção sugere um modo de operação aperfeiçoado, levando ainda em consideração os ataques DPA. Para essa finalidade, a presente invenção refere-se a um modo de operação, baseado no esquema CCFB, que é mais adequado à atenuação de ataques DPA. Mais particularmente, a presente invenção sugere um método de cifra de bloco utilizando repetição de rodada para fornecer, a partir de uma mensagem de texto plano, uma mensagem de texto cifrado e uma marca global para autenticar a dita mensagem de texto cifrado. A mensagem de texto plano é convertida (em particular dividindo-a e preenchendo-a, se houver) em uma pluralidade de blocos de texto plano ordenados, todos tendo o mesmo tamanho de bit. Cada um desses blocos de texto plano é sucessivamente processado de maneira ordenada como um bloco de texto plano atual durante uma rodada. O método compreende as seguintes etapas:[010] Instead of offering new countermeasures to protect cryptographic systems from DPA attacks, the present invention suggests an improved mode of operation, still taking DPA attacks into account. For this purpose, the present invention refers to a mode of operation, based on the CCFB scheme, which is more suitable for mitigating DPA attacks. More particularly, the present invention suggests a block cipher method using round repetition to provide, from a plaintext message, a ciphertext message and a global token to authenticate said ciphertext message. The plain text message is converted (in particular by dividing it and padding it, if any) into a plurality of ordered plain text blocks, all having the same bit size. Each of these plain text blocks is successively processed in an orderly manner as a current plain text block during a round. The method comprises the following steps:

[011] - carregar primeiros dados em um registro,[011] - load first data into a record,

[012] - executar a rodada mediante a realização das seguintes etapas:[012] - execute the round by carrying out the following steps:

[013] - uma primeira etapa para informar dados de entrada para um algoritmo de cifra de bloco, tais dados de entrada compreendendo dados do registro e dados reproduzíveis, por exemplo, dados de contador ou qualquer outra série de dados reproduzível,[013] - a first step for reporting input data to a block cipher algorithm, such input data comprising register data and reproducible data, for example, counter data or any other reproducible data series,

[014] - uma segunda etapa para calcular, dentro do algoritmo de cifra de bloco, um criptograma por meio da criptografia dos dados de entrada usando uma única chave criptográfica, este criptograma compreendendo um primeiro segmento e um segundo segmento, o último sendo definido como uma marca local de autenticação,[014] - a second step to calculate, within the block cipher algorithm, a cryptogram by encrypting the input data using a single cryptographic key, this cryptogram comprising a first segment and a second segment, the latter being defined as a local mark of authentication,

[015] - uma terceira etapa para calcular um bloco de texto cifrado mediante a realização de uma primeira operação utilizando, como operandos: o primeiro segmento, o bloco de texto plano atual, e o segundo segmento,[015] - a third step to calculate a ciphertext block by performing a first operation using, as operands: the first segment, the current plaintext block, and the second segment,

[016] - contanto que todos os blocos de texto plano supramencionados não tenham sido processados em tal rodada, recarregar o registro com o último bloco de texto cifrado calculado e aplicar uma função de atualização, por exemplo, uma função de incremento, aos dados reproduzíveis antes de realizar uma nova rodada iniciando novamente na dita primeira etapa,[016] - provided that all aforementioned plaintext blocks have not been processed in such a round, reload the record with the last calculated ciphertext block and apply an update function, for example an increment function, to the reproducible data before carrying out a new round starting again in the said first stage,

[017] - determinar a mensagem de texto cifrado por meio da concatenação dos blocos de texto cifrado fornecidos por todas as rodadas de maneira ordenada, de preferência da maneira ordenada mencionada acima, em seguida[017] - determine the ciphertext message by concatenating the ciphertext blocks provided by all rounds in an ordered manner, preferably in the ordered manner mentioned above, then

[018] - recarregar o registro com o último bloco de texto cifrado calculado e aplicar a função de atualização aos dados reproduzíveis antes de realizar somente as primeiras duas etapas da rodada, em seguida[018] - reload the record with the last calculated ciphertext block and apply the update function to the reproducible data before performing only the first two steps of the round, then

[019] - calcular a marca global por uma segunda operação usando todas as marcas locais de autenticação calculadas como operandos.[019] - calculate the global mark by a second operation using all local authentication marks calculated as operands.

[020] A partir do método acima, deve-se observar que o novo modo de operação da presente invenção se baseia em um esquema de Realimentação de Cifra e Contador (CCFB). Em termos exatos, o esquema CCFB é um esquema AE de dois passes cuja estrutura é bastante semelhante à das soluções de um passe. O método inovador revelado de preferência adota uma combinação incomum de dois modos de operação, a saber, um modo contador (CTR) e um modo de Realimentação de Cifra (CFB), para oferecer tanto criptografia quanto autenticação. De acordo com esta concretização, uma marca local de autenticação que resulta do cálculo do segundo segmento do criptograma, não somente é utilizada para calcular uma marca global durante o segundo passe, mas também é vantajosamente usada durante o primeiro passe para calcular cada bloco de texto cifrado. Assim, propõe-se que aprimoramentos à operação de sistemas de computação seguros, incluindo mas não limitado à resistência a ataques conhecidos, podem ser alcançados.[020] From the above method, it should be noted that the new mode of operation of the present invention is based on a Cipher and Counter Feedback (CCFB) scheme. In exact terms, the CCFB scheme is a two-pass AE scheme whose structure is quite similar to that of the one-pass solutions. The disclosed innovative method preferably adopts an unusual combination of two modes of operation, namely a counter mode (CTR) and a Cipher Feedback mode (CFB), to provide both encryption and authentication. According to this embodiment, a local authentication mark resulting from the calculation of the second segment of the cryptogram is not only used to calculate a global mark during the second pass, but is also advantageously used during the first pass to calculate each block of text. encrypted. Thus, it is proposed that improvements to the operation of secure computing systems, including but not limited to resistance to known attacks, can be achieved.

[021] Concretizações adicionais descrevem dispositivos para implementar os métodos mencionados acima. De preferência, um desses dispositivos é especialmente dedicado à criptografia de mensagens, ao passo que o outro dispositivo é dedicado ao processo inverso. Dado que eles compreendem os mesmos componentes, ambos esses dispositivos são muito similares e serão descritos em mais detalhes na descrição detalhada seguinte.[021] Additional embodiments describe devices for implementing the methods mentioned above. Preferably, one of these devices is specifically dedicated to encrypting messages, while the other device is dedicated to the reverse process. Given that they comprise the same components, both of these devices are very similar and will be described in more detail in the following detailed description.

[022] O objetivo e as vantagens da presente invenção são alcançados graças ao método criptográfico de acordo com a matéria das reivindicações de método independentes e graças aos dispositivos de acordo com a matéria das outras reivindicações de dispositivo independentes.[022] The objective and advantages of the present invention are achieved thanks to the cryptographic method according to the subject matter of the independent method claims and thanks to the devices according to the subject matter of the other independent device claims.

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

DESCRIÇÃO RESUMIDA DOS DESENHOSBRIEF DESCRIPTION OF THE DRAWINGS

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

[025] A Figura 1 representa esquematicamente o processo de conversão de uma mensagem de texto plano em uma mensagem de texto cifrado,[025] Figure 1 schematically represents the process of converting a plain text message into a cipher text message,

[026] A Figura 2 é um fluxograma ilustrando uma concretização ilustrativa do método criptográfico da presente invenção, mais particularmente da fase de criptografia,[026] Figure 2 is a flowchart illustrating an illustrative embodiment of the cryptographic method of the present invention, more particularly the encryption phase,

[027] A Figura 3 mostra outra concretização de acordo com uma ilustração parcial do método baseado na Fig. 2,[027] Figure 3 shows another embodiment according to a partial illustration of the method based on Fig. 2,

[028] A Figura 4 é totalmente similar à Fig. 2, mas refere-se à fase de descriptografia,[028] Figure 4 is completely similar to Fig. 2, but refers to the decryption phase,

[029] A Figura 5 mostra uma concretização de um dispositivo para implementar qualquer concretização do método criptográfico da presente invenção, em particular para implementar qualquer fase (criptografia ou descriptografia) deste método.[029] Figure 5 shows an embodiment of a device for implementing any embodiment of the cryptographic method of the present invention, in particular for implementing any phase (encryption or decryption) of this method.

DESCRIÇÃO DETALHADADETAILED DESCRIPTION

[030] Referindo-se à Fig. 1, a última ilustra esquematicamente uma mensagem de texto plano (M) 10 processada pela presente invenção com dados de entrada adicionais 20, as etapas de conversão principais da mensagem de texto plano 10 com os ditos dados de entrada 20, e uma mensagem de texto cifrado (C) 50 gerada a partir do processo com dados complementares 52. Opcionalmente, a mensagem de texto plano 10 pode ser fornecida com dados associados (AD) 15 que podem tipicamente se referir a um cabeçalho da mensagem de texto plano 10.[030] Referring to Fig. 1, the latter schematically illustrates a plain text message (M) 10 processed by the present invention with additional input data 20, the main conversion steps of the plain text message 10 with said data input 20, and a ciphertext message (C) 50 generated from the process with additional data 52. Optionally, the plaintext message 10 may be provided with associated data (AD) 15 which may typically refer to a header of plain text message 10.

[031] De acordo com uma concretização preferida, os dados de entrada 20 supramencionados compreendem primeiros dados 21, por exemplo, um vetor de inicialização (IV), e dados reproduzíveis 22 que podem ser inicializados (reinicializados) para qualquer valor padrão. De preferência, esses dados reproduzíveis são dados de contador (CDt), a saber, um dado tal como um valor fornecido por um contador. Entretanto, uma vez que não há a exigência de limitar tais dados a dados fornecidos por um contador no sentido estrito, ele se refere aos chamados dados reproduzíveis. A palavra “reproduzível” exclui quaisquer dados aleatórios, a menos que tenham sido predefinidos antes de serem usados. Portanto, deve-se compreender que os dados reproduzíveis mencionados acima se referem a quaisquer dados, tal como um valor que pode ser reproduzido graças a um processo ou função reproduzível que pode ser considerado como uma função de atualização ou função de renovação. Por exemplo, tal processo ou função pode se relacionar a uma função hash ou a uma função de incremento ou decremento aplicada a um valor inicial. Ele(a) pode se referir ainda a uma lista ou série predefinida de números aleatório ou pseudo-aleatórios obtidos sucessivamente, em uma certa ordem, como dados reproduzíveis. De preferência, todos esses números serão diferentes de modo a evitar repetições. Na presente descrição, a expressão “dados de contador” é utilizada de acordo com uma concretização preferida, a saber, como um exemplo não-limitante. Os dados complementares 52 relacionam-se a uma marca, em particular, a uma marca global (TG) que é determinada a partir de uma pluralidade de marcas locais, como adicionalmente explicado aqui posteriormente. A marca global 52 é usada como um dado de autenticação para autenticar a mensagem de texto cifrado 50 no final do processo.[031] According to a preferred embodiment, the aforementioned input data 20 comprises first data 21, for example, an initialization vector (IV), and reproducible data 22 that can be initialized (reset) to any standard value. Preferably, such reproducible data is counter data (CDt), namely, data such as a value provided by a counter. However, since there is no requirement to limit such data to data provided by an accountant in the strict sense, it refers to so-called reproducible data. The word “reproducible” excludes any random data unless it has been predefined before being used. Therefore, it should be understood that the reproducible data mentioned above refers to any data, such as a value that can be reproduced thanks to a reproducible process or function that can be considered as an update function or renewal function. For example, such a process or function may relate to a hash function or an increment or decrement function applied to an initial value. He/she may also refer to a predefined list or series of random or pseudo-random numbers obtained successively, in a certain order, as reproducible data. Ideally, all these numbers will be different to avoid repetition. In the present description, the expression "meter data" is used in accordance with a preferred embodiment, namely, as a non-limiting example. The additional data 52 relates to a brand, in particular, to a global brand (TG) that is determined from a plurality of local brands, as further explained hereinafter. The global tag 52 is used as an authentication data to authenticate the ciphertext message 50 at the end of the process.

[032] Como ilustrado na Figura 1, a mensagem de texto plano 10 é convertida em uma pluralidade de blocos de texto plano (mi, m2, m3, ...mi). Nesta Figura, cada um desses blocos de texto plano é identificado pelo numeral de referência comum ii. O processo de conversão usado para converter a mensagem de bloco de texto plano i0 em uma pluralidade de blocos de texto plano ii tem por objetivo principal dividir a mensagem de texto plano i0 em blocos contendo o mesmo tamanho de bit. No caso em que a mensagem de texto plano i0 possui um tamanho de bit que não é um múltiplo do número de bits dos blocos de texto plano, o processo de conversão irá adicionalmente compreender uma etapa para preencher pelo menos um dos dois blocos de texto planos finais (por exemplo, o último bloco de texto plano e/ou o primeiro) com pelo menos um bit padrão (por exemplo, com um bit igual a zero). O objetivo da etapa de preenchimento é fornecer o bloco final com o mesmo tamanho de bits dos outros blocos.[032] As illustrated in Figure 1, the plain text message 10 is converted into a plurality of plain text blocks (mi, m2, m3, ... mi). In this Figure, each of these plain text blocks is identified by the common reference numeral ii. The conversion process used to convert the plain text block message i0 into a plurality of plain text blocks ii is primarily intended to divide the plain text message i0 into blocks containing the same bit size. In the case where the plain text message i0 has a bit size that is not a multiple of the number of bits of the plain text blocks, the conversion process will additionally comprise a step to fill at least one of the two plain text blocks. endings (e.g., the last and/or first plaintext block) with at least one standard bit (e.g., with a zero bit). The purpose of the padding step is to provide the final block with the same bit size as the other blocks.

[033] Os blocos de texto plano ii precisam ser processados em uma ordem específica, de modo que a mesma ordem possa ser aplicada durante o processo inverso com o objetivo de descriptografar a mensagem de texto cifrado. Por conseguinte, os blocos de texto plano ii são dispostos de maneira ordenada. Como alternativa, atribui-se a cada bloco uma posição identificável de modo a determinar tal ordem específica. Graças à ordem desses blocos, será possível reconstruir a mensagem de texto plano 10 a partir da mensagem de texto cifrado 50. De preferência, quando a mensagem de texto plano 10 é dividida em blocos 11, os últimos não são misturados juntos, mas a ordem na qual eles foram divididos é mantida. É possível manter tal ordem, por exemplo, armazenando, em um registro, tanto o conteúdo do bloco quanto sua posição dentro da mensagem 10. Em uma variante, um índice poderia ser associado ao conteúdo de cada bloco, de modo que possa ser possível recuperar a posição apropriada de qualquer bloco mi, m2, m3, ... mi graças a seu índice 1,2, 3, ... i.[033] Plaintext blocks ii need to be processed in a specific order, so that the same order can be applied during the reverse process for the purpose of decrypting the ciphertext message. Therefore, the plain text blocks ii are arranged in an orderly manner. Alternatively, each block is assigned an identifiable position in order to determine that specific order. Thanks to the order of these blocks, it will be possible to reconstruct the plaintext message 10 from the ciphertext message 50. Preferably, when the plaintext message 10 is divided into blocks 11, the latter are not mixed together, but the order in which they were divided is maintained. It is possible to maintain such an order, for example, by storing, in a register, both the contents of the block and its position within the message 10. In one variant, an index could be associated with the contents of each block, so that it may be possible to retrieve the appropriate position of any block mi, m2, m3, ... mi thanks to its index 1,2, 3, ... i.

[034] Em seguida, cada um desses blocos de texto plano ii é processado sucessivamente, como o chamado bloco de texto plano atual, em tal maneira ordenada durante uma rodada R do método. Ao final de cada rodada, obtém-se um bloco de texto cifrado 51 em correspondência ao bloco de texto plano atual 11. Por exemplo, o bloco de texto plano m1, ilustrado na Fig. 1, fornece o bloco de texto cifrado c1 na saída da rodada.[034] Then, each of these plain text blocks ii is processed successively, as the so-called current plain text block, in such an ordered manner during a round R of the method. At the end of each round, a ciphertext block 51 is obtained corresponding to the current plaintext block 11. For example, the plaintext block m1, illustrated in Fig. 1, gives the ciphertext block c1 in the output of the round.

[035] Cada rodada também fornece uma marca, em particular, uma marca local 32 em correspondência com o bloco de texto cifrado 51 relacionado gerado pela mesma rodada. O conjunto de iterações que permite calcular os blocos de texto cifrado 51 constitui um primeiro passe do método. Em uma concretização, o segundo passe visa a determinar a marca global 52 utilizando todas as marcas locais 32 que foram calculadas.[035] Each round also provides a tag, in particular, a local tag 32 in correspondence with the related ciphertext block 51 generated by the same round. The set of iterations that allow calculating the ciphertext blocks 51 constitutes a first pass of the method. In one embodiment, the second pass aims to determine the global mark 52 using all local marks 32 that have been calculated.

[036] A mensagem de texto cifrado 50 é obtida combinando-se todos os blocos de texto cifrado 51 juntos, em particular concatenando-os de modo a formar uma cadeia de acordo com a maneira ordenada mencionada anteriormente, de modo a manter respectivas posições entre os blocos 11 dentro da mensagem de texto plano 10 e os blocos correspondentes 51 dentro da mensagem de texto cifrado 50. Dado que os dados associados 15 tipicamente podem ser o cabeçalho da mensagem 10, portanto, eles permanecem planos e são meramente anexados à mensagem de texto cifrado 50. No final do processo, a mensagem de texto cifrado 50, seus dados associados 15 (se houver) e a marca global 52 juntos formam três entidades relacionadas unidas.[036] The ciphertext message 50 is obtained by combining all the ciphertext blocks 51 together, in particular concatenating them to form a chain in accordance with the previously mentioned ordered manner, so as to maintain respective positions between the blocks 11 within the plaintext message 10 and the corresponding blocks 51 within the ciphertext message 50. Since the associated data 15 typically may be the header of the message 10, therefore, it remains plain and is merely appended to the message. ciphertext 50. At the end of the process, the ciphertext message 50, its associated data 15 (if any) and the global tag 52 together form three linked related entities.

[037] Um método preferido implementando a presente invenção será explicado agora em mais detalhes graças à Figura 2 que mostra, através de uma pluralidade de iterações (ITi, IT2, IT3,....ITi), as ações e etapas empreendidas durante a fase de criptografia. Cada uma dessas iterações fornece um bloco de texto cifrado 5i no final de um conjunto de etapas e ações.[037] A preferred method implementing the present invention will now be explained in more detail thanks to Figure 2 which shows, through a plurality of iterations (ITi, IT2, IT3,....ITi), the actions and steps undertaken during the encryption phase. Each of these iterations provides a block of 5i ciphertext at the end of a set of steps and actions.

[038] A primeira ação é carregar primeiros dados 2i em um registro 23. De preferência, e como ilustrado na concretização representada na Fig. 2, os primeiros dados 2i da primeira iteração ITi são um vetor de inicialização IV que pode ser gerado por qualquer gerador aleatório ou pseudo-aleatório. A próxima ação pretende executar a rodada do método mediante a realização das seguintes três etapas principais.[038] The first action is to load first data 2i into a register 23. Preferably, and as illustrated in the embodiment depicted in Fig. 2, the first data 2i of the first ITi iteration is an IV initialization vector that can be generated by any random or pseudo-random generator. The next action intends to execute the method round by carrying out the following three main steps.

[039] A primeira etapa da rodada é usada para informar dados de entrada 20 para um algoritmo de cifra de bloco (E) 35. Este algoritmo é um esquema de criptografia de bloco genérico que pode se referir a DES, IDEA, AES ou a qualquer outro algoritmo de cifra de bloco. Os dados de entrada 20 compreendem dados carregados no registro 23, a saber, os primeiros dados 2i e dados de contador (CDti) 22. Os dados de contador 22 se referem a um valor fornecido por um contador (CTR) 25. Este contador pode ser considerado como um atualizador (isto é, uma unidade para atualização), uma vez que ele é atualizado, a saber, incrementado (ou decrementado) toda vez que uma nova iteração ITn é realizada. Por conseguinte, cada rodada inicia com novos dados de contador (CDti, CDt2, ... CDti, CDti+i). Os dados de contador, dessa forma, são usados como o chamado “nonce”, a saber, como um “número usado só uma vez”. De fato, cada valor fornecido pelo contador é único em todos os blocos processados ii.[039] The first step of the round is used to input input data 20 to a block cipher algorithm (E) 35. This algorithm is a generic block encryption scheme that may refer to DES, IDEA, AES or the any other block cipher algorithm. Input data 20 comprises data loaded into register 23, namely first data 2i and counter data (CDti) 22. Counter data 22 refers to a value provided by a counter (CTR) 25. This counter can be considered as an updater (i.e., a unit for updating), since it is updated, namely, incremented (or decremented) every time a new ITn iteration is performed. Therefore, each round starts with new counter data (CDti, CDt2, ... CDti, CDti+i). Counter data, therefore, is used as a so-called “nonce”, that is, as a “number used only once”. In fact, each value provided by the counter is unique in all processed blocks ii.

[040] Durante a segunda etapa da rodada, um criptograma 30 é calculado e então emitido a partir do algoritmo de cifra de bloco 35 mediante criptografia dos dados de entrada 20 usando uma única chave criptográfica (K) 34. Este criptograma 30 compreende um primeiro segmento (S1) 31 e um segundo segmento 32. O último é definido como sendo uma marca de autenticação (Tn), em particular como sendo a marca local que autentica o primeiro segmento 31. De preferência, a marca local 32 é armazenada em uma memória, até que a marca global 52 tenha sido calculada, ou pelo menos temporariamente até que um cálculo intermediário seja realizado com a próxima marca local 32 da próxima rodada, no caso em que a marca global é determinada progressivamente durante cada iteração.[040] During the second step of the round, a cryptogram 30 is calculated and then output from the block cipher algorithm 35 by encrypting the input data 20 using a single cryptographic key (K) 34. This cryptogram 30 comprises a first segment (S1) 31 and a second segment 32. The latter is defined as being an authentication tag (Tn), in particular as being the local tag that authenticates the first segment 31. Preferably, the local tag 32 is stored in a memory, until the global mark 52 has been calculated, or at least temporarily until an intermediate calculation is performed with the next local mark 32 of the next round, in which case the global mark is determined progressively during each iteration.

[041] A terceira etapa da rodada dedica-se a calcular o bloco de texto cifrado 51 do bloco de texto plano atual 1. Para esse fim, o bloco de texto cifrado 51 é determinado realizando-se uma primeira operação 41 usando, como operandos: O primeiro segmento 31, o bloco de texto plano atual 11 e a marca local 32. Portanto, o bloco de texto cifrado 51 é o resultado de uma operação realizada em três dados.[041] The third step of the round is dedicated to calculating the ciphertext block 51 from the current plaintext block 1. To this end, the ciphertext block 51 is determined by performing a first operation 41 using, as operands : The first segment 31, the current plaintext block 11, and the local mark 32. Therefore, the ciphertext block 51 is the result of an operation performed on three data.

[042] Dado que esta primeira operação 41 utiliza três operandos, ela é, portanto, realizada em duas etapas, a saber, realizando uma primeira suboperação OP11 usando um primeiro operador, e então realizando uma segunda suboperação OP12 usando um segundo operador. Tipicamente, as duas suboperações OP11, OP12 são operações lógicas (álgebra Booleana), operações tipicamente comutativas. Ainda de preferência, pelo menos um dos operadores é uma operação OR exclusiva (operação XOR).[042] Given that this first operation 41 uses three operands, it is therefore performed in two steps, namely, performing a first suboperation OP11 using a first operator, and then performing a second suboperation OP12 using a second operator. Typically, the two suboperations OP11, OP12 are logical operations (Boolean algebra), typically commutative operations. Still preferably, at least one of the operators is an exclusive OR operation (XOR operation).

[043] Além disso, graças à propriedade comutativa das suboperações XOR, deve-se observar que os três operandos podem ser processados em qualquer ordem dentro da primeira operação 41. Como ilustrado na forma de exemplo na FIg. 1, o bloco de texto plano atual 11 é processado com o primeiro segmento 31 pela primeira suboperação OP11, e então o resultado desta primeira suboperação é processado com a marca local 32 pela segunda suboperação OP12. Como resultado, a segunda suboperação OP12 fornece o bloco de texto cifrado 51 e termina a primeira iteração IT1.[043] Furthermore, thanks to the commutative property of the XOR suboperations, it should be noted that the three operands can be processed in any order within the first operation 41. As illustrated in the example form in FIg. 1, the current plaintext block 11 is processed with the first segment 31 by the first suboperation OP11, and then the result of this first suboperation is processed with the local mark 32 by the second suboperation OP12. As a result, the second suboperation OP12 provides ciphertext block 51 and ends the first iteration IT1.

[044] Em vez de usar uma operação Booleana, tal como uma operação XOR, deve-se observar que a segunda suboperação OP12 poderia ser baseada em qualquer outra função que seja capaz de misturar distribuições dos dois operandos usados como entrada, de forma que, quando um desses dois operandos for desconhecido, não seja possível calcular o outro operando para um dado bloco de cifra 51 (isto é, para uma dada saída). Contudo, a função deverá obviamente permanecer reversível; caso contrário, a descriptografia não seria viável. Por exemplo, se uma adição modular for usada como operação durante a fase de criptografia, então uma subtração modular será usada em vez da adição modular durante a fase de descriptografia. Portanto, as operações realizadas durante a fase de descriptografia serão o inverso das realizadas durante a fase de criptografia.[044] Instead of using a Boolean operation, such as an XOR operation, it should be noted that the second suboperation OP12 could be based on any other function that is capable of mixing distributions of the two operands used as input, such that, when one of these two operands is unknown, it is not possible to calculate the other operand for a given cipher block 51 (that is, for a given output). However, the function must obviously remain reversible; otherwise, decryption would not be feasible. For example, if a modular addition is used as the operation during the encryption phase, then a modular subtraction is used instead of the modular addition during the decryption phase. Therefore, the operations performed during the decryption phase will be the reverse of those performed during the encryption phase.

[045] Embora a operação XOR permaneça sendo a escolha mais natural, deve-se observar que a adição modular ou multiplicação modular também poderia ser usada para realizar tais operações durante a fase de criptografia se a subtração modular ou, respectivamente, a divisão modular for usada para a fase de descriptografia. Entretanto, tais operações modulares são menos adequadas, pois podem liberar informações (por exemplo, o bit de transporte na adição modular) que poderiam ser usadas por outros ataques de canal secundário.[045] Although the XOR operation remains the most natural choice, it should be noted that modular addition or modular multiplication could also be used to perform such operations during the encryption phase if modular subtraction or, respectively, modular division is used for the decryption phase. However, such modular operations are less suitable as they may release information (e.g., the carry bit in modular addition) that could be used by other side-channel attacks.

[046] Contanto que todos os blocos de texto plano 11 não tenham sido processados totalmente, o registro 23 é então recarregado com o bloco de texto cifrado 51 (isto é, com o bloco de texto cifrado 51 atual - ou o último calculado - como mostra a Fig. 2) e uma função de atualização, por exemplo, uma função de incremento, é aplicada aos dados de contador 22 antes de realizar uma nova rodada (isto é, antes de iniciar novamente na primeira etapa da rodada mencionada acima). Por conseguinte, os primeiros dados 21 da segunda iteração IT2 irão corresponder ao bloco de texto cifrado 51 emitido a partir da primeira iteração IT1, e os dados de contador CDt2 da segunda iteração irão corresponder ao resultado da função de incremento aplicada aos dados de contador CDT1 da primeira iteração IT1. Na presente descrição, a expressão “função de incremento” será usada como uma concretização preferida da “função de atualização”. Portanto, deve-se compreender que a “função de incremento” poderia ser substituída por qualquer “função de atualização”. De maneira similar, o contador 25 mencionado na presente descrição também poderia ser considerado como um “atualizador”, como já mencionado acima.[046] Provided that all plaintext blocks 11 have not been fully processed, record 23 is then reloaded with ciphertext block 51 (i.e., with the current - or last calculated - ciphertext block 51 as shows Fig. 2) and an update function, for example an increment function, is applied to the counter data 22 before performing a new round (that is, before starting again at the first step of the round mentioned above). Therefore, the first data 21 of the second IT2 iteration will correspond to the ciphertext block 51 issued from the first IT1 iteration, and the CDt2 counter data of the second iteration will correspond to the result of the increment function applied to the CDT1 counter data of the first IT1 iteration. In the present description, the expression “increment function” will be used as a preferred embodiment of the “update function”. Therefore, it must be understood that the “increment function” could be replaced by any “update function”. Similarly, the counter 25 mentioned in the present description could also be considered as an “update”, as already mentioned above.

[047] Quando todos os blocos de texto plano 11 tiverem sido processados, o registro 23 é recarregado com o último bloco de texto cifrado calculado 51 e a função de incremento do contador é aplicada aos dados de contador (atuais) CDTi, como para as iterações anteriores. Entretanto, somente as duas primeiras etapas da rodada são então realizadas de modo a obter o criptograma 30 a partir dos dados de entrada 20 (isto é, a partir de ci e CDti+1) que é processado dentro do algoritmo de cifra de bloco 35 usando a chave criptográfica 34. Por conseguinte, essas ações não se referem a uma iteração completa (como as feitas anteriormente), mas, em vez disso, devem ser consideradas como sendo uma iteração parcial. A partir deste último criptograma 30, a marca local (Ti+1) 32 é então usada para calcular a marca global 52 por uma segunda operação (OP2) 42 usando todas as marcas locais calculadas, a saber, todas as marcas locais calculadas desde a primeira iteração IT1. Deve-se observar que apenas a marca local (segundo segmento 32) desta iteração parcial é usada. Portanto, a determinação do primeiro segmento 31 permanece opcional, mas é realizada implicitamente através do cálculo do criptograma 30 que é processado como um dado único.[047] When all plaintext blocks 11 have been processed, register 23 is reloaded with the last calculated ciphertext block 51 and the counter increment function is applied to the (current) CDTi counter data, as for the previous iterations. However, only the first two steps of the round are then performed in order to obtain the cryptogram 30 from the input data 20 (i.e. from ci and CDti+1) which is processed within the block cipher algorithm 35 using cryptographic key 34. Therefore, these actions do not refer to a complete iteration (like those done previously), but instead should be considered to be a partial iteration. From this last cryptogram 30, the local mark (Ti+1) 32 is then used to calculate the global mark 52 by a second operation (OP2) 42 using all the calculated local marks, namely, all the local marks calculated since the first iteration IT1. It should be noted that only the local tag (second segment 32) of this partial iteration is used. Therefore, the determination of the first segment 31 remains optional, but is carried out implicitly through the calculation of the cryptogram 30 which is processed as a single piece of data.

[048] O resultado da segunda operação (OP2) fornece a marca global 52. Este resultado é calculado de maneira similar à determinação do resultado da primeira operação (OP1), a saber, por uma pluralidade de suboperações (OP21 a OP2i). De preferência, cada suboperação usa, como operandos, a marca local Tn da iteração relacionada ITn e o resultado da suboperação anterior determinada na iteração anterior ITn-1. A natureza (isto é, o tipo) da segunda operação OP2 é similar ou idêntico ao da primeira operação OP1. O mesmo é verdadeiro com relação à ordem na qual os operandos são usados para determinar a marca global 52. A determinação da marca global 52 a partir de todas as marcas locais corresponde ao segundo passe do modo de operação.[048] The result of the second operation (OP2) provides the global mark 52. This result is calculated in a similar way to determining the result of the first operation (OP1), namely, by a plurality of suboperations (OP21 to OP2i). Preferably, each suboperation uses, as operands, the local tag Tn of the related iteration ITn and the result of the previous suboperation determined in the previous iteration ITn-1. The nature (i.e., type) of the second operation OP2 is similar or identical to that of the first operation OP1. The same is true with respect to the order in which the operands are used to determine the global mark 52. Determining the global mark 52 from all local marks corresponds to the second pass of the mode of operation.

[049] A mensagem de texto cifrado 50 é determinada combinando-se (concatenando) todos os blocos de texto cifrado 51 juntos, em uma ordem específica que será reutilizada para recuperar a mensagem de texto plano 10 a partir da mensagem de texto cifrado 50 durante um processo inverso que será descrito aqui posteriormente. Por exemplo, tal ordem pode ser a mesma na qual os blocos de texto plano 11 foram processados. Em uma variante, um índice poderia ser designado a cada um dos blocos de texto cifrado 51 de modo a identificar a ordem na qual esses blocos foram processados.[049] The ciphertext message 50 is determined by combining (concatenating) all the ciphertext blocks 51 together, in a specific order that will be reused to recover the plaintext message 10 from the ciphertext message 50 during a reverse process that will be described here later. For example, such an order may be the same in which the plain text blocks 11 were processed. In one variant, an index could be assigned to each of the ciphertext blocks 51 in order to identify the order in which these blocks were processed.

[050] Vantajosamente, por realizar a primeira operação OP1 usando três operandos em vez de dois, o bloco de texto cifrado 51 não resulta de uma única operação, mas de duas operações sucessivas, a saber, a primeira suboperação OP11 e a segunda suboperação OP12. A primeira suboperação utiliza dois de três operandos como entradas, e a segunda suboperação utiliza, como entradas, o terceiro operando e o resultado da primeira suboperação. Um invasor que deseja realizar ataques DPA em tal processo executando o algoritmo de cifra de bloco em muitas entradas (por exemplo, 100.000 vezes para observar 100.000 traços de potência) não terá acesso à saída intermediária determinada com base nos dois primeiros operandos. Em vez disso, ele pode observar apenas a saída fornecida após a segunda suboperação OP12. Por consequência, ele terá primeiro de atacar a segunda suboperação antes de poder analisar a primeira suboperação OP11. No entanto, a segunda suboperação se baseia em dois valores desconhecidos; ambos distribuídos uniformemente e não-correlacionados. Como resultado, o DPA não funciona, ou no mínimo será muito mais difícil aplicar tal ataque à matéria da presente invenção do que em um dos processos da técnica anterior.[050] Advantageously, by performing the first operation OP1 using three operands instead of two, the ciphertext block 51 does not result from a single operation, but from two successive operations, namely, the first suboperation OP11 and the second suboperation OP12 . The first suboperation uses two of the three operands as inputs, and the second suboperation uses the third operand and the result of the first suboperation as inputs. An attacker who wants to perform DPA attacks on such a process by running the block cipher algorithm on many inputs (e.g., 100,000 times to observe 100,000 power traces) will not have access to the intermediate output determined based on the first two operands. Instead, it can only observe the output provided after the second OP12 suboperation. Consequently, he will first have to attack the second sub-operation before he can analyze the first sub-operation OP11. However, the second suboperation is based on two unknown values; both uniformly distributed and uncorrelated. As a result, DPA does not work, or at least it will be much more difficult to apply such an attack to the subject matter of the present invention than in one of the prior art processes.

[051] De acordo com uma concretização, o método adicionalmente compreender uma etapa preliminar para restaurar um tamanho de bit comum entre os primeiros dados 21 (isto é, dados localizados dentro do registro 23) e os dados de contador 22. Esta etapa preliminar é realizada no caso em que os primeiros dados 21 e os dados de contador 22 não possuem o mesmo tamanho de bit. De preferência, esta etapa preliminar é realizada antes de informar os ditos dados de entrada 20 para o algoritmo de cifra de bloco 35 ou dentro do próprio algoritmo 35. De preferência, o primeiro segmento 31 e a marca local 32 possuem o mesmo tamanho de bit. Caso contrário, o método pode adicionalmente compreender uma etapa adicional (etapa de enchimento) para restaurar o mesmo tamanho de bit entre esses dois segmentos. Ainda de preferência, todos dentre os primeiros dados 21 (por exemplo, IV), os dados de contador 22, o primeiro segmento 31 e o segundo segmento 32 (marca local) possuem o mesmo tamanho de bit, a saber, metade do tamanho de bit dos dados de entrada 20.[051] According to one embodiment, the method further comprises a preliminary step for restoring a common bit size between the first data 21 (i.e., data located within register 23) and the counter data 22. This preliminary step is performed in the case where the first data 21 and the counter data 22 do not have the same bit size. Preferably, this preliminary step is performed before reporting said input data 20 to the block cipher algorithm 35 or within the algorithm 35 itself. Preferably, the first segment 31 and the local mark 32 have the same bit size. . Otherwise, the method may additionally comprise an additional step (stuffing step) to restore the same bit size between these two segments. Still preferably, all of the first data 21 (e.g. IV), the counter data 22, the first segment 31 and the second segment 32 (place mark) have the same bit size, namely half the size of input data bit 20.

[052] De acordo com uma concretização ilustrada na Fig. 3, os primeiros dados 21 podem ser o resultado de uma operação inicial (OP0) 43 usando dados associados de texto plano (AD) 24 como um operando. Como ilustrado na forma de exemplo nesta Figura, um vetor de inicialização IV pode ser usado como um segundo operando da operação inicial 43. Os dados associados 24 tipicamente podem se referir a um cabeçalho da mensagem de texto plano 10. Neste caso, deve- se compreender que o cabeçalho (isto é, os dados associados) não é processado da mesma maneira que a mensagem em si, mas permanece como um apêndice da mensagem A natureza da operação inicial OP0 é similar ou idêntica à da primeira operação OP1 ou à da segunda operação OP2. Geralmente, os dados associados são adicionados ao vetor de inicialização.[052] According to an embodiment illustrated in Fig. 3, the first data 21 may be the result of an initial operation (OP0) 43 using associated plain text data (AD) 24 as an operand. As illustrated in example form in this Figure, an initialization vector IV may be used as a second operand of the initial operation 43. The associated data 24 typically may refer to a header of the plain text message 10. In this case, one should understand that the header (i.e. the associated data) is not processed in the same way as the message itself, but remains as an appendix to the message The nature of the initial OP0 operation is similar or identical to that of the first OP1 operation or the second OP2 operation. Typically, the associated data is added to the initialization vector.

[053] Referindo-se à Fig. 4, ela mostra a fase de descriptografia da mensagem de texto cifrado 50 obtida de acordo com a fase de descriptografia ilustrada na Fig. 2. Dado que o modo de operação para cifragem de uma mensagem de texto plano 10 (Fig. 2) refere-se a um processo de criptografia reversível, o método de decifragem ilustrado na Fig. 4 é muito similar ao método de cifragem da Fig. 2.[053] Referring to Fig. 4, it shows the decryption phase of the ciphertext message 50 obtained in accordance with the decryption phase illustrated in Fig. 2. Since the mode of operation for encryption of a text message plane 10 (Fig. 2) refers to a reversible encryption process, the decryption method illustrated in Fig. 4 is very similar to the encryption method in Fig. 2.

[054] Mais especificamente, a Fig. 4 representa um método de decifragem de bloco usando repetição de rodadas para fornecer, a partir de uma mensagem de texto cifrado 50, uma mensagem de texto plano 10 e uma marca global 52 para autenticar a dita mensagem de texto plano. A mensagem de texto cifrado 50 sendo convertida em uma pluralidade de blocos de texto cifrado ordenados 51; todos eles tendo o mesmo tamanho de bit (tal operação não é ilustrada na Fig. 4, mas é similar à ilustrada na Fig. 1). Mais particularmente, este tamanho de bit é igual ao que foi definido para obter blocos de texto plano 11 a partir da mensagem de texto plano 10 que estava na origem desta mensagem de texto cifrado 50 durante a fase de criptografia (Fig. 2). Como explicado em relação fase de criptografia, se houver, uma etapa de preenchimento também poderia ser aplicada aos blocos finais (primeiro ou último bloco, dependendo do bloco que foi preenchido durante a fase de criptografia relacionada). Cada um dos blocos de texto cifrado 51 é processado sucessivamente de maneira ordenada como um bloco de texto cifrado atual durante uma rodada. Em particular, esta maneira ordenada permite manter a respectivas posições entre os blocos 11 dentro da mensagem de texto plano 10 e os blocos correspondentes 51 dentro da mensagem de texto cifrado 50.[054] More specifically, Fig. 4 depicts a block decryption method using repeat rounds to provide, from a ciphertext message 50, a plaintext message 10 and a global tag 52 to authenticate said message. plain text. The ciphertext message 50 being converted into a plurality of ordered ciphertext blocks 51; all of them having the same bit size (such an operation is not illustrated in Fig. 4, but is similar to that illustrated in Fig. 1). More particularly, this bit size is equal to that which was defined to obtain plaintext blocks 11 from the plaintext message 10 that was at the origin of this ciphertext message 50 during the encryption phase (Fig. 2). As explained in relation to the encryption phase, if any, a filling step could also be applied to the final blocks (first or last block, depending on the block that was filled during the related encryption phase). Each of the ciphertext blocks 51 is successively processed in an orderly manner as a current ciphertext block during one round. In particular, this ordered manner allows maintaining the respective positions between the blocks 11 within the plaintext message 10 and the corresponding blocks 51 within the ciphertext message 50.

[055] Geralmente falando, as mesmas ações que as realizadas durante a fase de criptografia são realizadas, a saber, carregamento de primeiros dados 21 no registro 23, e então executar a rodada pela realização das seguintes etapas:[055] Generally speaking, the same actions as those performed during the encryption phase are performed, namely, loading first data 21 into register 23, and then running the round by carrying out the following steps:

[056] Uma etapa para informar dados de entrada 20 para um algoritmo de decifragem de bloco 35, estes dados de entrada compreendendo dados carregados no registro 23 e dados de contador 22.[056] A step for reporting input data 20 to a block decryption algorithm 35, this input data comprising data loaded into register 23 and counter data 22.

[057] Uma segunda etapa para calcular, dentro do algoritmo de decifragem de bloco 35, uma primeira saída 30 pela descriptografia dos dados de entrada 20 usando a chave criptográfica única 34 (isto é, a mesma chave K que foi utilizada para a fase de criptografia). Esta primeira saída 30 compreende um primeiro segmento 31 e um segundo segmento 32, o último sendo definido como uma marca local de autenticação.[057] A second step to calculate, within the block decryption algorithm 35, a first output 30 by decrypting the input data 20 using the unique cryptographic key 34 (i.e., the same key K that was used for the decryption phase). cryptography). This first output 30 comprises a first segment 31 and a second segment 32, the latter being defined as an authentication local tag.

[058] Um terceira etapa para calcular um bloco de texto plano 11 mediante a realização de uma primeira operação (OP1) utiliza, como operandos: o primeiro segmento 31, o bloco de texto cifrado atual 51 e o segundo segmento 32 (isto é, a marca local fornecida pela iteração atual). Por conseguinte, o bloco de texto plano 11 é o resultado de uma operação realizada em três dados. Dado que esta primeira operação 41 utiliza três operandos, ela é, portanto, realizada em duas etapas como já explicado com relação à fase de criptografia.[058] A third step to calculate a plaintext block 11 by performing a first operation (OP1) uses, as operands: the first segment 31, the current ciphertext block 51 and the second segment 32 (i.e. the local tag provided by the current iteration). Therefore, plain text block 11 is the result of an operation performed on three pieces of data. Given that this first operation 41 uses three operands, it is therefore carried out in two steps as already explained in relation to the encryption phase.

[059] Deve-se observar que a operação (OP1) 41 realizada durante a fase de descriptografia (Fig. 4) é o inverso da operação (OP1) 41 realizada durante a fase de criptografia (Fig. 2). Além disso, uma vez que cada uma dessas operações 41 compreende duas suboperações sucessivas, a saber, a primeira OP11, e então a OP12, deve-se compreender que a primeira suboperação OP11 realizada durante a fase de descriptografia corresponde ao inverso da segunda suboperação OP12 realizada na fase de criptografia. De maneira similar, a segunda suboperação OP12 realizada durante a fase de descriptografia corresponde ao inverso da suboperação OP11 realizada primeiro durante a fase de descriptografia.[059] It should be noted that the operation (OP1) 41 performed during the decryption phase (Fig. 4) is the inverse of the operation (OP1) 41 performed during the encryption phase (Fig. 2). Furthermore, since each of these operations 41 comprises two successive sub-operations, namely the first OP11, and then OP12, it must be understood that the first sub-operation OP11 performed during the decryption phase corresponds to the inverse of the second sub-operation OP12 performed in the encryption phase. Similarly, the second OP12 suboperation performed during the decryption phase corresponds to the inverse of the OP11 suboperation performed first during the decryption phase.

[060] Contanto que todos os blocos de texto cifrado 51 não tenham sido processados totalmente, o registro é recarregado durante uma próxima iteração com o bloco de texto cifrado atual 51 (isto é, com o último bloco de texto cifrado calculado 51, como mostra a Fig. 4), e uma função de incremento é aplicada, pelo contador 25, sobe os dados de contador da iteração anterior de modo a obter novos dados de contador 22. Estes novos dados de contador 22 serão utilizados ao executar a nova rodada, na nova iteração atual, por iniciar novamente pela primeira etapa do presente método de decifragem. Em particular, a função de incremento é a mesma função que a utilizada durante a fase de criptografia. Além disso, os primeiros dados de contador (CDt1) usados como valor inicial (isto é, pela primeira iteração IT1’) durante a fase de descriptografia são os mesmos que os utilizados como valor inicial (pela primeira iteração IT1) durante a fase de criptografia. Por esta razão, os primeiros dados de contador (CDt1) da fase de criptografia poderiam ser transmitidos ao dispositivo de descriptografia que está encarregado de descriptografar a mensagem de texto cifrado 50. Tipicamente, tais dados de contador (CDt1) poderiam ser transmitidos junto com a mensagem de texto cifrado 50, por exemplo, no cabeçalho (não-criptografado) da mensagem de texto cifrado 50. Ademais, esses dados de contador (CDt1) também poderiam ser armazenados dentro do dispositivo de criptografia, pelo menos temporariamente no caso em que esses dados deverão estar presentes para o dispositivo de descriptografia por qualquer razão (por exemplo, para fins de ressincronização entre o emissor e o receptor). O mesmo é verdadeiro com relação aos primeiros dados 21 (IV). De acordo com outra maneira, os dados de contador inicial (CDt1) também poderiam ser definidos para um valor padrão (por exemplo, poderiam ser definidos como 1), de modo que não precisem ser comunicados. De fato, os mesmos primeiros dados 21 precisam ser carregados dentro do registro durante as primeiras iterações IT1 e IT1’. Por conseguinte, os primeiros dados 21 (IV) também poderiam ser transmitidos da mesma maneira que para os primeiros dados, e também poderiam ser armazenados dentro do dispositivo de criptografia pela mesma razão ou poderiam ser definidos como um valor padrão sem a necessidade de serem comunicados. Em uma variante, os primeiros dados de contador (CDt1), os primeiros dados 21 (IV) e outros dados que podem variar, tal como a chave criptográfica 34 (K) e/ou a função de incremento do contador 25, poderiam ser compartilhados, pelo menos uma vez, entre o dispositivo de criptografia e o dispositivo de descriptografia durante uma fase de inicialização. Tal fase de inicialização também poderia ser reproduzida posteriormente, por exemplo, para reiniciar o sistema ou atualizá-lo.[060] As long as all ciphertext blocks 51 have not been fully processed, the record is reloaded during a next iteration with the current ciphertext block 51 (i.e., with the last calculated ciphertext block 51, as shown Fig. 4), and an increment function is applied, by counter 25, increments the counter data of the previous iteration in order to obtain new counter data 22. This new counter data 22 will be used when executing the new round, in the current new iteration, by starting again with the first step of the present decryption method. In particular, the increment function is the same function as the one used during the encryption phase. Furthermore, the first counter data (CDt1) used as the initial value (i.e., by the first IT1' iteration) during the decryption phase is the same as that used as the initial value (by the first IT1 iteration) during the encryption phase. . For this reason, the first counter data (CDt1) of the encryption phase could be transmitted to the decryption device that is in charge of decrypting the ciphertext message 50. Typically, such counter data (CDt1) could be transmitted together with the ciphertext message 50, for example, in the (unencrypted) header of the ciphertext message 50. Furthermore, this counter data (CDt1) could also be stored within the encryption device, at least temporarily in the case where these data must be present to the decryption device for any reason (for example, for resynchronization purposes between the sender and receiver). The same is true with regard to the first data 21 (IV). According to another way, the initial counter data (CDt1) could also be set to a default value (for example, it could be set to 1) so that it does not need to be communicated. In fact, the same first data 21 needs to be loaded into the register during the first IT1 and IT1’ iterations. Therefore, the first data 21 (IV) could also be transmitted in the same way as for the first data, and could also be stored within the encryption device for the same reason or could be set to a default value without needing to be communicated. . In a variant, the first counter data (CDt1), the first data 21 (IV) and other data that may vary, such as the cryptographic key 34 (K) and/or the counter increment function 25, could be shared , at least once, between the encryption device and the decryption device during an initialization phase. Such an initialization phase could also be reproduced later, for example to restart the system or update it.

[061] A mensagem de texto plano 10 é determinada combinando-se (concatenando) os blocos de texto plano 11 obtidos durante todas as rodadas na mesma ordem, como mencionado acima, de modo a recuperar a mensagem de texto plano que foi originalmente usada durante a fase de criptografia para fornecer a mensagem de texto cifrado 50.[061] The plain text message 10 is determined by combining (concatenating) the plain text blocks 11 obtained during all rounds in the same order, as mentioned above, so as to recover the plain text message that was originally used during the encryption phase to provide the ciphertext message 50.

[062] Em seguida, o registro 23 é recarregado com o bloco de texto cifrado atual 51 (isto é, com o último bloco de texto cifrado 51 que foi processado durante a última iteração ITi’) e a função de incremento é aplicada mais uma vez aos últimos dados de contador 22 antes de executar somente as primeiras duas etapas da rodada (de maneira similar ao que foi realizado durante a fase de criptografia quando se referindo à iteração parcial). A partir desta última primeira saída 30, a marca local (Ti+1) 32 é então usada para calcular a marca global 52 (TG) por uma segunda operação (OP2) 42 que usa todas as marcas locais de autenticação calculadas 32 como operandos. Como já explicado com relação à fase de criptografia, a marca global 52 resultante da segunda operação OP2 é calculada de maneira similar à determinação do resultado da primeira operação (OP1), a saber, por uma pluralidade de suboperações (OP21 a OP2i). O mesmo tipo de operações e variantes que as mencionadas durante a fase de criptografia pode ser aplicado durante a fase de descriptografia.[062] Then, record 23 is reloaded with the current ciphertext block 51 (that is, with the last ciphertext block 51 that was processed during the last ITi' iteration) and the increment function is applied one more time. time to the last counter data 22 before executing only the first two steps of the round (in a similar way to what was performed during the encryption phase when referring to partial iteration). From this last first output 30, the local mark (Ti+1) 32 is then used to calculate the global mark 52 (TG) by a second operation (OP2) 42 which uses all the calculated authentication local marks 32 as operands. As already explained with respect to the encryption phase, the global mark 52 resulting from the second operation OP2 is calculated in a similar way to determining the result of the first operation (OP1), namely, by a plurality of suboperations (OP21 to OP2i). The same type of operations and variants as those mentioned during the encryption phase can be applied during the decryption phase.

[063] Independente da fase de criptografia ou de descriptografia, deve-se observar que as suboperações (OP21 a OP2i) não são necessariamente calculadas uma vez que todos os blocos 11, 51 tenham sido processados. De fato, essas suboperações poderiam ser calculadas progressivamente, uma a uma durante cada iteração, mediante a determinação de um resultado intermediário. Este resultado intermediário poderia ser armazenado em uma memória até que seja processado como um operante com a próxima marca local (segundo operando) fornecido pela próxima iteração (ou iteração parcial no final do processo). O mesmo princípio poderia ser aplicado para determinar a mensagem 10, 50, a partir dos respectivos blocos 11, 51.[063] Regardless of the encryption or decryption phase, it should be noted that the suboperations (OP21 to OP2i) are not necessarily calculated once all blocks 11, 51 have been processed. In fact, these suboperations could be calculated progressively, one by one during each iteration, by determining an intermediate result. This intermediate result could be stored in a memory until it is processed as an operant with the next local mark (second operand) provided by the next iteration (or partial iteration at the end of the process). The same principle could be applied to determine the message 10, 50, from the respective blocks 11, 51.

[064] Além disso, devido à propriedade inversa do algoritmo 35, deve-se observar que o algoritmo de cifra de bloco mencionado na fase de criptografia é o mesmo que o algoritmo de decifragem de bloco da fase de descriptografia. Adicionalmente, deve-se observar que o resultado fornecido pelo algoritmo 35 é definido como sendo a chamada “primeira saída” 30 na fase de descriptografia. Esta terminologia foi escolhida em vez da palavra criptograma, pois esta saída deverá ser, em vez disso, considerada como sendo dados descriptografados (embora, tecnicamente falando, o algoritmo 35 não faça qualquer distinção entre a chamada primeira saída e o chamado criptograma).[064] Furthermore, due to the inverse property of algorithm 35, it should be noted that the block cipher algorithm mentioned in the encryption phase is the same as the block decryption algorithm of the decryption phase. Additionally, it should be noted that the result provided by algorithm 35 is defined as being the so-called “first output” 30 in the decryption phase. This terminology was chosen instead of the word cryptogram, as this output should instead be considered to be decrypted data (although, technically speaking, algorithm 35 does not make any distinction between the so-called first output and the so-called cryptogram).

[065] De acordo com uma concretização, o método de decifragem de bloco adicionalmente compreende uma etapa preliminar para restaurar um tamanho de bit comum entre os primeiros dados 21 carregados no registro 23 e os dados de contador 22. Esta etapa preliminar será usada no caso em que os primeiros dados 21 e os dados de contador 22 não possuem o mesmo tamanho de bit. Tal etapa preliminar será realizada antes de informar os dados de entrada 20 para o algoritmo de cifra de bloco 35.[065] According to one embodiment, the block decryption method further comprises a preliminary step for restoring a common bit size between the first data 21 loaded into register 23 and the counter data 22. This preliminary step will be used in the case wherein the first data 21 and the counter data 22 do not have the same bit size. Such a preliminary step will be performed before reporting the input data 20 to the block cipher algorithm 35.

[066] Como já mencionado com relação à fase de criptografia, os primeiros dado 21 podem ser um vetor de inicialização IV, em particular, um único bloco tendo o mesmo tamanho de bit que o dos dados de contador 22.[066] As already mentioned with respect to the encryption phase, the first data 21 may be an IV initialization vector, in particular, a single block having the same bit size as that of the counter data 22.

[067] De acordo com uma concretização e de maneira similar ao que é ilustrado na FIg. 3, os primeiros dados 21 poderiam ser o resultado de uma operação inicial OP0 usando dados associados de texto plano 24 como operando. De preferência, esta operação inicial OP0 e a primeira e segunda operações OP1, OP2 são operações lógicas OR exclusivas. No entanto e como mencionado anteriormente, outros tipos de operações também poderiam ser usados.[067] According to one embodiment and in a similar way to what is illustrated in FIg. 3, the first data 21 could be the result of an initial operation OP0 using associated plaintext data 24 as the operand. Preferably, this initial operation OP0 and the first and second operations OP1, OP2 are exclusive OR logical operations. However, as mentioned previously, other types of operations could also be used.

[068] Além disso, deve-se observar que a mensagem de texto cifrado 50 do presente método de decifragem pode ser adicionalmente associada a um dado de autenticação (em particular, a marca global obtida durante a fase de criptografia por um método de cifra de bloco relacionado). Em tal caso, o presente método de decifragem poderia adicionalmente compreender uma etapa para verificar se estes dados de autenticação associados são idênticos à marca global 52 determinada pelo segundo passe do método de decifragem. Se a marca global 52 não for idêntica aos dados de autenticação associados à mensagem de texto cifrado 50, a última será declarada como não sendo autêntica.[068] Furthermore, it should be noted that the ciphertext message 50 of the present decryption method may be additionally associated with an authentication data (in particular, the global tag obtained during the encryption phase by a cipher method). related block). In such a case, the present decryption method could additionally comprise a step to verify whether this associated authentication data is identical to the global tag 52 determined by the second pass of the decryption method. If the global tag 52 is not identical to the authentication data associated with the ciphertext message 50, the latter will be declared not authentic.

[069] Embora a fase de criptografia e a fase de descriptografia tenham sido respectivamente apresentadas como um método de criptografia e como um método de descriptografia, a presente invenção também poderia se referir a um único método compreendendo tanto a fase de criptografia quanto a fase de descriptografia.[069] Although the encryption phase and the decryption phase have respectively been presented as an encryption method and as a decryption method, the present invention could also refer to a single method comprising both the encryption phase and the decryption phase. decryption.

[070] A invenção também se refere a um dispositivo criptográfico 60, 60’ para implementar um dos métodos ou concretizações revelados na presente descrição. Referindo-se à Fig. 1, 2 e 5, o primeiro dispositivo criptográfico 60 é dedicado à implementação de um método de cifra de bloco usando repetição de rodadas para fornecer, a partir de uma mensagem de texto plano 10, uma mensagem de texto cifrado 50 e uma marca global 52 para autenticar a mensagem de texto cifrado. Para este fim, o dispositivo criptográfico 60 compreende os seguintes componentes:[070] The invention also relates to a cryptographic device 60, 60' for implementing one of the methods or embodiments disclosed in the present description. Referring to Fig. 1, 2 and 5, the first cryptographic device 60 is dedicated to implementing a block cipher method using round repetition to provide, from a plaintext message 10, a ciphertext message 50 and a global tag 52 to authenticate the ciphertext message. To this end, the cryptographic device 60 comprises the following components:

[071] - um registro 23, tipicamente na forma de uma memória (por exemplo, uma célula de memória), para receber primeiros dados 21,[071] - a register 23, typically in the form of a memory (e.g., a memory cell), for receiving first data 21,

[072] - um atualizador 25 para atualizar dados reproduzíveis 22 de acordo com uma função de atualização f; por exemplo, podem se referir a um contador 25 para incrementar dados de contador 22 de acordo com uma função de incremento (f),[072] - an updater 25 for updating reproducible data 22 according to an update function f; for example, may refer to a counter 25 to increment counter data 22 according to an increment function (f),

[073] - uma interface 61 para receber pelo menos a mensagem de texto plano 10,[073] - an interface 61 for receiving at least plain text message 10,

[074] - uma unidade de conversão 62 para converter e, de preferência, armazenar a mensagem de texto plano 10 em uma pluralidade de blocos de texto plano ordenados 11 (mi, m2, ... mi), todos tendo o mesmo tamanho de bit,[074] - a conversion unit 62 for converting and preferably storing the plain text message 10 into a plurality of ordered plain text blocks 11 (mi, m2, ... mi), all having the same size of bits,

[075] - uma unidade de processamento 64 para sucessivamente processar cada um dos blocos de texto plano 11 de uma maneira ordenada como um bloco de texto plano atual durante uma rodada, a unidade de processamento adicionalmente compreendendo uma unidade criptográfica 65, hospedar um algoritmo de cifra de bloco 35 e uma memória 66 compreendendo uma única chave criptográfica 34 (K).[075] - a processing unit 64 for successively processing each of the plaintext blocks 11 in an ordered manner as a current plaintext block during a round, the processing unit further comprising a cryptographic unit 65, hosting a block cipher 35 and a memory 66 comprising a single cryptographic key 34 (K).

[076] Cada rodada compreende:[076] Each round comprises:

[077] - uma primeira etapa para inserir (por exemplo, através da unidade de processamento 64 como mostra a Fig. 5) dados de entrada 20 no algoritmo de cifra de bloco 35, estes dados de entrada 20 compreendendo dados 21 do registro 23 e dados reproduzíveis (dados de contador 22),[077] - a first step for inserting (for example, through the processing unit 64 as shown in Fig. 5) input data 20 into the block cipher algorithm 35, this input data 20 comprising data 21 of register 23 and reproducible data (counter data 22),

[078] - uma segunda etapa para calcular, dentro do algoritmo de cifra de bloco 35, um criptograma 30 pela criptografia dos dados de entrada 20 usando a chave criptográfica única 34; o criptograma 30 compreendendo um primeiro segmento 31 e um segundo segmento 32, o último sendo definido como uma marca local de autenticação e sendo armazenado em uma memória, por exemplo, na memória 66 que pode estar localizada dentro ou fora da unidade de processamento 64,[078] - a second step to calculate, within the block cipher algorithm 35, a cryptogram 30 by encrypting the input data 20 using the unique cryptographic key 34; the cryptogram 30 comprising a first segment 31 and a second segment 32, the latter being defined as a local authentication mark and being stored in a memory, for example in memory 66 which may be located inside or outside the processing unit 64,

[079] - uma terceira etapa para calcular e armazenar, por exemplo, em tal memória 66, um bloco de texto cifrado 51 mediante a realização de uma primeira operação OP1 usando, como operandos, o primeiro segmento 31, o bloco de texto plano atual 11 e o segundo segmento 32 (isto é, a marca local).[079] - a third step for calculating and storing, for example, in such memory 66, a ciphertext block 51 by performing a first OP1 operation using, as operands, the first segment 31, the current plaintext block 11 and the second segment 32 (i.e. the local brand).

[080] Contanto que todos os blocos de texto plano 11 não tenham sido processados totalmente, a unidade de processamento 64 é adicionalmente configurada para recarregar o registro 23 com o bloco de texto cifrado atual 51 (isto é, o último bloco de texto cifrado calculado 51) e para incrementar os dados de contador 22 (isto é, para atualizar os dados reproduzíveis) antes de executar uma nova rodada por iniciar novamente para a primeira etapa.[080] As long as all plaintext blocks 11 have not been fully processed, processing unit 64 is further configured to reload register 23 with the current ciphertext block 51 (i.e., the last calculated ciphertext block 51) and to increment the counter data 22 (i.e., to update the reproducible data) before performing a new round by starting again for the first step.

[081] A unidade de conversão 62 é adicionalmente configurada para determinar a mensagem de texto cifrado 50 mediante a concatenação dos blocos de texto cifrado 51 (ci, 02, ... oi) de todas as rodadas de maneira ordenada, em particular da maneira ordenada supramencionada, de modo a manter as respectivas posições entre os blocos 11 dentro da mensagem de texto plano 10 e os blocos correspondentes 51 dentro da mensagem de texto cifrado 50.[081] The conversion unit 62 is further configured to determine the ciphertext message 50 by concatenating the ciphertext blocks 51 (ci, 02, ... hi) of all rounds in an ordered manner, in particular in the manner aforementioned ordering, so as to maintain the respective positions between the blocks 11 within the plaintext message 10 and the corresponding blocks 51 within the ciphertext message 50.

[082] A unidade de processamento 64 é adicionalmente configurada para recarregar o registro 23 com o último bloco de texto cifrado calculado 51 e para aplicar a função de incremento (f) aos dados de contador 22 de modo a incrementá- los antes de executar somente as primeiras duas etapas da rodada. Em seguida, a unidade de processamento 64 é configurada para calcular a marca global 52 por uma segunda operação OP2 usando, por exemplo, a partir da memória 66, todas as marcas locais de autenticação calculadas (32) como operandos.[082] Processing unit 64 is further configured to reload register 23 with the last calculated ciphertext block 51 and to apply the increment function (f) to counter data 22 in order to increment it before executing only the first two stages of the round. Then, the processing unit 64 is configured to calculate the global mark 52 by a second operation OP2 using, for example, from memory 66, all the calculated local authentication marks (32) as operands.

[083] A interface 61 (ou qualquer outra interface) é adicionalmente configurada para gerar a mensagem de texto cifrado 50 e a marca global 52.[083] Interface 61 (or any other interface) is further configured to generate ciphertext message 50 and global tag 52.

[084] A operação de conversão realizada pela unidade de conversão 62 pode relacionar para dividir a mensagem de texto plano 10 em blocos 11 com o mesmo tamanho de bit, e, se houver, a uma operação de preenchimento aplicada a pelo menos um dos dois blocos finais 11 desta mensagem de texto plano uma vez dividida.[084] The conversion operation performed by the conversion unit 62 may relate to dividing the plain text message 10 into blocks 11 with the same bit size, and, if any, to a padding operation applied to at least one of the two Final 11 blocks of this plain text message once split.

[085] O dispositivo criptográfico 60 pode adicionalmente incluir um gerador 67 (ou um pseudo-gerador) para gerar um vetor de inicialização (IV) que poderia ser usado para implementar o método de acordo com qualquer uma das concretizações reveladas na presente descrição. Tal gerador (ou outro) também poderia ser usado para inicializar o contador 25 com um valor inicial, tipicamente para fins de reinicialização. Além disso, deve-se observar que o registro 23, o contado 25 e, caso haja, o gerador 67, poderiam estar localizados dentro da unidade de processamento 64.[085] The cryptographic device 60 may additionally include a generator 67 (or a pseudo-generator) for generating an initialization vector (IV) that could be used to implement the method according to any of the embodiments disclosed in the present description. Such a generator (or another) could also be used to initialize counter 25 to an initial value, typically for reset purposes. Furthermore, it should be noted that register 23, counter 25 and, if applicable, generator 67, could be located within processing unit 64.

[086] Quando atuando como um primeiro dispositivo, em particular no lado do emissor, o dispositivo de criptografia 60 é tipicamente projetado para ser usado para criptografar mensagens de texto plano 10 que serão então descriptogradas por um dispositivo de descriptografia 60’, atuando como um segundo dispositivo, em particular no lado do receptor. Dado que a fase de descriptografia corresponde ao processo inverso da fase de criptografia, os componentes eletrônicos que formam o dispositivos de criptografia são idênticos ou similares aos do dispositivo de descriptografia. Somente as funções associadas a alguns componentes do dispositivo de descriptografia podem divergir das do dispositivo de criptografia. Por conseguinte, o dispositivo de descriptografia da presente invenção também será descrito aqui em referência aos componentes da Fig. 5.[086] When acting as a first device, particularly on the sender side, the encryption device 60 is typically designed to be used to encrypt plain text messages 10 which will then be decrypted by a decryption device 60', acting as a second device, in particular on the receiver side. Since the decryption phase corresponds to the reverse process of the encryption phase, the electronic components that form the encryption device are identical or similar to those of the decryption device. Only the functions associated with some components of the decryption device may differ from those of the encryption device. Therefore, the decryption device of the present invention will also be described herein with reference to the components of Fig. 5.

[087] Por conseguinte, este segundo dispositivo relaciona-se a dispositivo criptográfico 60’ para implementar um método de decifragem de bloco usando repetição de rodadas para fornecer, a partir de uma mensagem de texto cifrado 50, uma mensagem de texto plano 10 e uma marca global 52 para autenticar a mensagem de texto plano. Este dispositivo criptográfico 60’ compreende:[087] Accordingly, this second device relates to cryptographic device 60' to implement a block decryption method using round repetition to provide, from a ciphertext message 50, a plaintext message 10 and a global tag 52 to authenticate the plain text message. This cryptographic device 60' comprises:

[088] - um registro 23, tipicamente na forma de uma memória (ou célula de memória), para receber primeiros dados 21,[088] - a register 23, typically in the form of a memory (or memory cell), for receiving first data 21,

[089] - um atualizador 25 para atualizar dados reproduzíveis 22 de acordo com uma função de atualização f; por exemplo, podem se referir a um contador 25 para incrementar dados de contador 22 de acordo com uma função de incremento (f),[089] - an updater 25 for updating reproducible data 22 according to an update function f; for example, may refer to a counter 25 to increment counter data 22 according to an increment function (f),

[090] - uma interface 61 para receber pelo menos a mensagem de texto cifrado 50,[090] - an interface 61 for receiving at least ciphertext message 50,

[091] - uma unidade de conversão 62 para converter e, de preferência, armazenar a mensagem de texto cifrado 50 em uma pluralidade de blocos de texto cifrado ordenados 51, todos tendo o mesmo tamanho de bit,[091] - a conversion unit 62 for converting and preferably storing the ciphertext message 50 into a plurality of ordered ciphertext blocks 51, all having the same bit size,

[092] - uma unidade de processamento 64 para sucessivamente processar cada um dos blocos de texto cifrado 11 de uma maneira ordenada como um bloco de texto cifrado atual durante uma rodada, a unidade de processamento 64 adicionalmente compreendendo uma unidade criptográfica 65, hospedar um algoritmo de decifragem de bloco 35 e uma memória 66 compreendendo uma única chave criptográfica 34 (K).[092] - a processing unit 64 for successively processing each of the ciphertext blocks 11 in an ordered manner as a current ciphertext block during a round, the processing unit 64 further comprising a cryptographic unit 65, hosting an algorithm block decryption key 35 and a memory 66 comprising a single cryptographic key 34 (K).

[093] Cada rodada compreende:[093] Each round comprises:

[094] - uma primeira etapa para informar dados de entrada 20 para o algoritmo de decifragem de bloco 35, estes dados de entrada compreendendo dados 21 carregados no registro 23 e dados reproduzíveis (dados de contador) 22,[094] - a first step to inform input data 20 to the block decryption algorithm 35, this input data comprising data 21 loaded into register 23 and reproducible data (counter data) 22,

[095] - uma segunda etapa para calcular, dentro do algoritmo de cifragem de bloco 35, uma primeira saída 30 por meio do processamento de dados de entrada 20 usando a chave criptográfica única 34, a primeira saída 30 compreendendo um primeiro segmento 31 e um segundo segmento 32, o último sendo definido como uma marca local de autenticação e sendo armazenado (pelo menos temporariamente) em uma memória, por exemplo, a memória 66,[095] - a second step for calculating, within the block cipher algorithm 35, a first output 30 by processing input data 20 using the unique cryptographic key 34, the first output 30 comprising a first segment 31 and a second segment 32, the latter being defined as a local authentication tag and being stored (at least temporarily) in a memory, e.g., memory 66,

[096] - uma terceira etapa para calcular e então armazenar (por exemplo, em tal memória 66) um bloco de texto plano 11 mediante a realização de uma primeira operação OP1 usando, como operandos, o primeiro segmento 31, o bloco de texto cifrado atual 51 e o segundo segmento 32 (isto é, a marca local).[096] - a third step for calculating and then storing (for example, in such memory 66) a plaintext block 11 by performing a first operation OP1 using, as operands, the first segment 31, the ciphertext block current 51 and the second segment 32 (i.e. the local brand).

[097] Contanto que todos os blocos de texto cifrado 51 não tenham sido processados totalmente, a unidade de processamento 64 é adicionalmente configurada para recarregar o registro 23 com o bloco de texto cifrado atual (isto é, o último bloco de texto cifrado calculado) e para atualizar os dados reproduzíveis (por exemplo, para incrementar os dados de contador 22 por meio da função de incremento do contador 25) antes de executar uma nova rodada por iniciar novamente para a primeira etapa.[097] As long as all ciphertext blocks 51 have not been fully processed, processing unit 64 is further configured to reload register 23 with the current ciphertext block (i.e., the last calculated ciphertext block). and to update the reproducible data (e.g., to increment the counter data 22 via the counter increment function 25) before performing a new round by starting again for the first step.

[098] A unidade de conversão 62 é adicionalmente configurada para determinar a mensagem de texto plano 10 mediante a concatenação dos blocos de texto plano 11 de todas as rodadas de maneira ordenada, em particular da maneira ordenada supramencionada, de modo a manter as respectivas posições entre os blocos 11 dentro da mensagem de texto plano 10, e os blocos correspondentes 51, dentro da mensagem de texto cifrado 50.[098] The conversion unit 62 is further configured to determine the plain text message 10 by concatenating the plain text blocks 11 of all rounds in an ordered manner, in particular in the aforementioned ordered manner, so as to maintain their respective positions between the blocks 11 within the plaintext message 10, and the corresponding blocks 51 within the ciphertext message 50.

[099] A unidade de processamento 64 é adicionalmente configurada para recarregar o registro 23 com o bloco de texto cifrado atual (isto é, o último bloco de texto cifrado que foi processado) e para aplicar a função de incremento (f) aos dados de contador 22 de modo a incrementá-los antes de executar somente as primeiras duas etapas da rodada. Em seguida, a unidade de processamento 64 é configurada para calcular a marca global 52 por uma segunda operação OP2 usando, por exemplo, a partir da memória 66, todas as marcas locais de autenticação calculadas (32) como operandos.[099] Processing unit 64 is further configured to reload record 23 with the current ciphertext block (i.e., the last ciphertext block that was processed) and to apply the increment function (f) to the data of counter 22 in order to increment them before executing only the first two steps of the round. Then, the processing unit 64 is configured to calculate the global mark 52 by a second operation OP2 using, for example, from memory 66, all the calculated local authentication marks (32) as operands.

[0100] De preferência, a unidade de processamento 64 do dispositivo criptográfico 60’ é adicionalmente configurada para verificar se a marca global 52 é idêntica aos dados de autenticação fornecidos junto com a mensagem de texto cifrado 50. Tais dados de autenticação serão tipicamente a marca global 52 que foi determinada durante a fase de criptografia pelo dispositivo criptográfico 60. No caso em que (para uma mesma mensagem 50) há uma diferença entre as marcas globais 52 fornecidas por cada um dos dispositivos criptográficos 60, 60', isto significa que a mensagem de texto plano 10 (ou a mensagem de texto cifrado 50) não é autêntica. Por conseguinte, a unidade de processamento 64 pode realizar uma ação apropriada, por exemplo, ela pode disparar uma mensagem de alerta, interromper a liberação da mensagem de texto plano 10 e/ou pode enviar informações, como dados de relatório.[0100] Preferably, the processing unit 64 of the cryptographic device 60' is further configured to verify that the global tag 52 is identical to the authentication data provided along with the ciphertext message 50. Such authentication data will typically be the tag global 52 that was determined during the encryption phase by the cryptographic device 60. In the case where (for the same message 50) there is a difference between the global marks 52 provided by each of the cryptographic devices 60, 60', this means that the Plaintext message 10 (or ciphertext message 50) is not authentic. Accordingly, the processing unit 64 may perform an appropriate action, for example, it may trigger an alert message, interrupt the release of the plain text message 10, and/or may send information such as report data.

[0101] Evidentemente, a interface 61 é adicionalmente configurada para gerar a mensagem de texto plano 10 assim que ela tiver sido restituída.[0101] Of course, interface 61 is further configured to generate plain text message 10 once it has been returned.

[0102] Deve-se notar que o algoritmo de cifra do dispositivo criptográfico 60 é o mesmo que o algoritmo de decifragem do dispositivo criptográfico 60’. De fato, tal algoritmo 35 pode ser usado para cifragem, bem como para decifragem.[0102] It should be noted that the encryption algorithm of the cryptographic device 60 is the same as the decryption algorithm of the cryptographic device 60'. In fact, such an algorithm 35 can be used for encryption as well as decryption.

[0103] Além disso, de modo a determinar a marca global 52, a memória 66 (ou outra memória) será usada para armazenar todas as marcas locais 32 ou os resultados intermediários no caso de a marca global ser determinada progressivamente durante cada iteração. Em uma concretização, a mensagem de texto cifrado 50 ou a mensagem de texto plano 10 também poderia ser determinada da mesma maneira.[0103] Furthermore, in order to determine the global mark 52, memory 66 (or other memory) will be used to store all local marks 32 or the intermediate results in case the global mark is determined progressively during each iteration. In one embodiment, the ciphertext message 50 or the plaintext message 10 could also be determined in the same manner.

[0104] A memória 66 do dispositivo criptográfico 60, 60’ pode ser uma memória segura. Em uma concretização, os componentes do dispositivo criptográfico 60, 60’ estão compreendidos em uma unidade monolítica, portanto, não seria possível acessar fisicamente os componentes, em particular pelo menos os componentes confidenciais, sem destruir a unidade monolítica[0104] The memory 66 of the cryptographic device 60, 60' may be a secure memory. In one embodiment, the components of the cryptographic device 60, 60' are comprised in a monolithic unit, therefore, it would not be possible to physically access the components, in particular at least the confidential components, without destroying the monolithic unit.

[0105] A chave criptográfica 34 é usada tanto para fins de criptografia quanto de descriptografia pelo dispositivo criptográfico 60, 60’.[0105] Cryptographic key 34 is used for both encryption and decryption purposes by cryptographic device 60, 60'.

[0106] Embora as concretizações da presente revelação tenham sido descritas com referências a concretizações exemplificativas específicas, será evidente que várias modificações e alterações podem ser efetuadas nessas concretizações sem divergir âmbito mais amplo dessas concretizações. Logo, o relatório e os desenhos devem ser considerados sob uma ótica ilustrativa e não restritiva. Os desenhos acompanhantes que formam uma parte deste mostram, a título e ilustração, e não de limitação, concretizações específicas nas quais a presente matéria pode ser praticada. As concretizações ilustradas são descritas em detalhes suficientes para permitir que os versados na técnica pratiquem os ensinamentos aqui revelados. Outras concretizações podem ser usadas e derivadas a partir das mesmas, de modo que substituições e alterações estruturais e lógicas possam ser feitas sem divergir do âmbito desta revelação. Portanto, esta Descrição Detalhada não deve ser interpretada em sentido limitante, e o âmbito das várias concretizações se define apenas pelas reivindicações anexas, junto com toda a gama de equivalentes aos quais tais reivindicações são designadas.[0106] Although the embodiments of the present disclosure have been described with references to specific exemplary embodiments, it will be evident that various modifications and changes can be made to these embodiments without departing from the broader scope of these embodiments. Therefore, the report and drawings must be considered from an illustrative and non-restrictive perspective. The accompanying drawings forming a part hereof show, by way of illustration, and not by way of limitation, specific embodiments in which the present subject matter may be practiced. The illustrated embodiments are described in sufficient detail to enable those skilled in the art to practice the teachings disclosed herein. Other embodiments may be used and derived therefrom, so that structural and logical substitutions and changes may be made without departing from the scope of this disclosure. Therefore, this Detailed Description should not be construed in a limiting sense, and the scope of the various embodiments is defined solely by the appended claims, together with the full range of equivalents to which such claims are designated.

[0107] Tais concretizações da matéria inventiva podem ser denominadas aqui, individual e/ou coletivamente, pelo termo “invenção” meramente por conveniência e sem a intenção de limitar voluntariamente o âmbito do presente pedido a qualquer conceito inventivo individual caso mais de um seja, de fato, revelado. Assim, embora concretizações específicas tenham sido ilustradas e descritas aqui, deve-se apreciar que qualquer disposição calculada para atingir a mesma finalidade pode ser utilizada em substituição às concretizações específicas ilustradas. Esta revelação pretende abranger todas e quaisquer adaptações ou variações das várias concretizações. Combinações das concretizações anteriores, e outras concretizações não descritas especificamente aqui, ficarão aparentes aos versados na técnica quando da análise da descrição acima.[0107] Such embodiments of the inventive subject matter may be referred to herein, individually and/or collectively, by the term “invention” merely for convenience and without the intention of voluntarily limiting the scope of the present application to any individual inventive concept if more than one is, indeed, revealed. Thus, although specific embodiments have been illustrated and described herein, it should be appreciated that any arrangement calculated to achieve the same purpose may be used in substitution for the specific embodiments illustrated. This disclosure is intended to cover any and all adaptations or variations of the various embodiments. Combinations of the foregoing embodiments, and other embodiments not specifically described herein, will be apparent to those skilled in the art upon review of the above description.

Claims (15)

1. Método de cifra de bloco usando repetição de rodada para fornecer, a partir de uma mensagem de texto plano (10), uma mensagem de texto de cifra (50) e uma marca global (52) para autenticar a dita mensagem de texto cifrado (50), a dita mensagem de texto plano (10) sendo convertida em uma pluralidade de blocos de texto plano ordenados (11) tendo um tamanho de bit predefinido, cada um dos ditos blocos de texto plano (11) sendo sucessivamente processado de uma maneira ordenada como um bloco de texto plano atual durante uma rodada, o dito método compreendendo as seguintes ações: - carregar primeiros dados (21) em um registro (23), - executar a dita rodada por realizar as seguintes etapas: - uma primeira etapa para inserir dados de entrada (20) em um algoritmo de cifra de bloco (35), os ditos dados de entrada (20) compreendendo dados (21) do dito registro (23) e dados reproduzíveis (22), - uma segunda etapa para calcular, dentro do dito algoritmo de cifra de bloco (35), um criptograma (30) por meio da criptografia dos dados de entrada (20) usando uma única chave criptográfica (34), o dito criptograma (30) compreendendo um primeiro segmento (31) e um segundo segmento (32), o último sendo definido como uma marca local de autenticação, - uma terceira etapa para calcular um bloco de texto cifrado (51) por meio da realização de uma primeira etapa (41) usando, como operandos, o dito primeiro segmento (31) e o dito bloco de texto plano atual (11), - contanto que todos os ditos blocos de texto plano (11) não tenham sido processados em uma rodada, recarregar o registro (23) com o dito bloco de texto cifrado (51) e aplicar uma função de atualização aos ditos dados reproduzíveis (22) antes de executar uma nova rodada por iniciar novamente para a dita primeira etapa, - determinar a dita mensagem de texto cifrado (50) por meio da concatenação dos blocos de texto cifrado (51) de todas as rodadas na dita maneira ordenada, e então - recarregar o registro (23) com o último bloco de texto cifrado calculado (51) e aplicar a dita função de atualização aos dados reproduzíveis (22) antes de realizar somente as primeiras duas etapas da dita rodada, e então - calcular a dita marca global (52) por uma segunda operação (42) usando todas as marcas locais de autenticação calculadas (32) como operandos, CARACTERIZADO pelo fato de que a terceira etapa da dita rodada adicionalmente utiliza o dito segundo segmento (32) como operando.1. Block cipher method using round repetition to provide, from a plaintext message (10), a ciphertext message (50) and a global tag (52) to authenticate said ciphertext message (50), said plain text message (10) being converted into a plurality of ordered plain text blocks (11) having a predefined bit size, each of said plain text blocks (11) being successively processed in a ordered manner as a block of current plain text during a round, said method comprising the following actions: - loading first data (21) into a register (23), - executing said round by carrying out the following steps: - a first step for inserting input data (20) into a block cipher algorithm (35), said input data (20) comprising data (21) of said record (23) and reproducible data (22), - a second step for calculate, within said block cipher algorithm (35), a cryptogram (30) by encrypting the input data (20) using a single cryptographic key (34), said cryptogram (30) comprising a first segment ( 31) and a second segment (32), the latter being defined as a local authentication mark, - a third step for computing a block of ciphertext (51) by performing a first step (41) using, as operands , said first segment (31) and said current plaintext block (11), - as long as all said plaintext blocks (11) have not been processed in one round, reload register (23) with said ciphertext block (51) and applying an update function to said reproducible data (22) before executing a new round by starting again for said first step, - determining said ciphertext message (50) by means of concatenation of the ciphertext blocks (51) of all rounds in said ordered manner, and then - reloading the register (23) with the last calculated ciphertext block (51) and applying said update function to the reproducible data (22) before performing only the first two steps of said round, and then - calculating said global mark (52) by a second operation (42) using all calculated local authentication marks (32) as operands, CHARACTERIZED by the fact that the third stage of said round additionally uses said second segment (32) as operand. 2. Método de cifra de bloco, de acordo com a reivindicação 1, CARACTERIZADO por adicionalmente compreender uma etapa preliminar para restaurar um tamanho de bit comum entre os primeiros dados (21) do dito registro (23) e os ditos dados reproduzíveis (22) se os primeiros dados (21) e os ditos dados reproduzíveis (22) não tiverem o mesmo tamanho de bit, a dita etapa preliminar sendo realizada antes de inserir os ditos dados de entrada (20) no algoritmo de cifra de bloco (35).2. Block cipher method according to claim 1, CHARACTERIZED by additionally comprising a preliminary step for restoring a common bit size between the first data (21) of said record (23) and said reproducible data (22) if the first data (21) and said reproducible data (22) do not have the same bit size, said preliminary step being carried out before inserting said input data (20) into the block cipher algorithm (35). 3. Método de cifra de bloco, de acordo com a reivindicação 1 ou 2, CARACTERIZADO pelo fato de que os ditos primeiros dados (21) são um vetor de inicialização.3. Block cipher method, according to claim 1 or 2, CHARACTERIZED by the fact that said first data (21) is an initialization vector. 4. Método de cifra de bloco, de acordo com a reivindicação 1 ou 2, CARACTERIZADO pelo fato de que os ditos primeiros dados (21) são o resultado de uma operação inicial (43) usando dados associados de texto plano (24) como operando.4. Block cipher method according to claim 1 or 2, CHARACTERIZED by the fact that said first data (21) is the result of an initial operation (43) using associated plain text data (24) as operand . 5. Método de cifra de bloco, de acordo com qualquer uma das reivindicações 1 a 4, CARACTERIZADO pelo fato de que a dita operação inicial (43) e a dita primeira (41) e segunda (42) operações são operações lógicas OR exclusivas.5. Block cipher method according to any one of claims 1 to 4, CHARACTERIZED by the fact that said initial operation (43) and said first (41) and second (42) operations are exclusive OR logical operations. 6. Método de cifra de bloco, de acordo com qualquer uma das reivindicações 1 a 5, CARACTERIZADO por adicionalmente uma etapa para preencher um bloco de texto plano final (11) com pelo menos um bit padrão no caso em que a mensagem de texto plano (10) tem um número de bits que não é um múltiplo do número de bits dos ditos blocos de texto plano (11).6. Block cipher method according to any one of claims 1 to 5, CHARACTERIZED by additionally a step to fill a final plaintext block (11) with at least one standard bit in the case where the plaintext message (10) has a number of bits that is not a multiple of the number of bits of said plain text blocks (11). 7. Método de decifragem de bloco usando repetição de rodada para fornecer, a partir de uma mensagem de texto cifrado (50), uma mensagem de texto plano (10) e uma marca global (52) para autenticar a dita mensagem de texto plano, a dita mensagem de texto cifrado (50) sendo convertida em uma pluralidade de blocos de texto cifrado ordenados (51) tendo o mesmo tamanho de bit, cada um dos ditos blocos de texto cifrado (51) sendo sucessivamente processado de uma maneira ordenada como um bloco de texto cifrado atual durante uma rodada, o dito método compreendendo as seguintes ações: - carregar primeiros dados (21) em um registro (23), - executar a dita rodada por realizar as seguintes etapas: - uma primeira etapa para inserir dados de entrada (20) em um algoritmo de decifragem de bloco (35), os ditos dados de entrada (20) compreendendo dados (21) do dito registro (23) e dados reproduzíveis (22), - uma segunda etapa para calcular, dentro do dito algoritmo de decifragem de bloco (35), uma primeira saída (30) por meio da descriptografia dos dados de entrada (20) usando uma única chave criptográfica (34), a dita primeira saída compreendendo um primeiro segmento (31) e um segundo segmento (32), o último sendo definido como uma marca local de autenticação, - uma terceira etapa para calcular um bloco de texto plano (11) por meio da realização de uma primeira etapa (41) usando, como operandos, o dito primeiro segmento (31) e o dito bloco de texto cifrado atual (51), - contanto que todos os ditos blocos de texto cifrado (51) não tenham sido processados em uma rodada, recarregar o registro (23) com o dito bloco de texto cifrado atual (51) e aplicar uma função de atualização aos ditos dados reproduzíveis (22) antes de executar uma nova rodada por iniciar novamente para a dita primeira etapa, - determinar a dita mensagem de texto plano (10) por meio da concatenação dos blocos de texto plano (11) de todas as rodadas na dita maneira ordenada, e então - recarregar o registro (23) com o bloco de texto cifrado atual (51) e aplicar a dita função de atualização aos dados reproduzíveis (22) antes de realizar somente as primeiras duas etapas da dita rodada, e então - calcular a dita marca global (52) por uma segunda operação (42) usando todas as marcas locais de autenticação calculadas (32) como operandos, CARACTERIZADO pelo fato de que a terceira etapa da dita rodada adicionalmente compreende o dito segundo segmento (32) como operando.7. Block decryption method using round repetition to provide, from a ciphertext message (50), a plaintext message (10) and a global tag (52) to authenticate said plaintext message, said ciphertext message (50) being converted into a plurality of ordered ciphertext blocks (51) having the same bit size, each of said ciphertext blocks (51) being successively processed in an ordered manner as a current ciphertext block during a round, said method comprising the following actions: - loading first data (21) into a register (23), - executing said round by carrying out the following steps: - a first step for inserting data from input (20) into a block decryption algorithm (35), said input data (20) comprising data (21) of said record (23) and reproducible data (22), - a second step for calculating, within the said block decryption algorithm (35), a first output (30) by decrypting the input data (20) using a single cryptographic key (34), said first output comprising a first segment (31) and a second segment (32), the last being defined as a local authentication mark, - a third step for computing a block of plain text (11) by performing a first step (41) using, as operands, said first segment (31) and said current ciphertext block (51), - as long as all said ciphertext blocks (51) have not been processed in one round, reload register (23) with said current ciphertext block (51) and applying an update function to said reproducible data (22) before executing a new round by starting again for said first step, - determining said plain text message (10) by means of concatenating the text blocks plan (11) of all rounds in said ordered manner, and then - reload the register (23) with the current ciphertext block (51) and apply said update function to the reproducible data (22) before performing only the first two steps of said round, and then - calculating said global mark (52) by a second operation (42) using all calculated local authentication marks (32) as operands, CHARACTERIZED by the fact that the third step of said round further comprises said second segment (32) as an operand. 8. Método de decifragem de bloco, de acordo com a reivindicação 7, CARACTERIZADO por adicionalmente compreender uma etapa preliminar para restaurar um tamanho de bit comum entre os primeiros dados (21) do dito registro (23) e os ditos dados reproduzíveis (22) se os ditos primeiros dados (21) e os ditos dados reproduzíveis (22) não tiverem o mesmo tamanho de bit, a dita etapa preliminar sendo realizada antes de inserir os ditos dados de entrada (20) no algoritmo de cifra de bloco (35).8. Block decryption method according to claim 7, CHARACTERIZED by additionally comprising a preliminary step for restoring a common bit size between the first data (21) of said record (23) and said reproducible data (22) if said first data (21) and said reproducible data (22) do not have the same bit size, said preliminary step being carried out before inserting said input data (20) into the block cipher algorithm (35) . 9. Método de decifragem de bloco, de acordo com a reivindicação 7 ou 8, CARACTERIZADO pelo fato de que os ditos primeiros dados (21) são um vetor de inicialização.9. Block decryption method, according to claim 7 or 8, CHARACTERIZED by the fact that said first data (21) is an initialization vector. 10. Método de decifragem de bloco, de acordo com a reivindicação 7 ou 8, CARACTERIZADO pelo fato de que os ditos primeiros dados (21) são o resultado de uma operação inicial (43) usando dados associados de texto plano (24) como operando.10. Block decryption method according to claim 7 or 8, CHARACTERIZED by the fact that said first data (21) is the result of an initial operation (43) using associated plain text data (24) as operand . 11. Método de decifragem de bloco, de acordo com qualquer uma das reivindicações 7 a 10, CARACTERIZADO pelo fato de que a dita operação inicial (43) e a dita primeira (41) e segunda (42) operações são operações lógicas OR exclusivas.11. Block decryption method according to any one of claims 7 to 10, CHARACTERIZED by the fact that said initial operation (43) and said first (41) and second (42) operations are exclusive OR logical operations. 12. Método de decifragem de bloco, de acordo com qualquer uma das reivindicações 7 a 11, CARACTERIZADO pelo fato de que a dita mensagem de texto cifrado (50) é adicionalmente provida de dados de autenticação e o dito método adicionalmente compreende uma etapa para verificar se os ditos dados de autenticação são idênticos à dita marca global (52), e caso não sejam, a mensagem de texto cifrado (50) é declarada como não autêntica.12. Block decryption method according to any one of claims 7 to 11, CHARACTERIZED by the fact that said ciphertext message (50) is additionally provided with authentication data and said method additionally comprises a step to verify if said authentication data is identical to said global tag (52), and if not, the ciphertext message (50) is declared as inauthentic. 13. Dispositivo criptográfico (60) para implementar um método de cifra de bloco utilizando repetição de rodada para fornecer, a partir de uma mensagem de texto plano (10), uma mensagem de texto cifrado (50) e uma marca global (52) para autenticar a dita mensagem de texto cifrado (50), compreendendo: - um registro (23) para receber primeiros dados, - um atualizador (25) para atualizar dados reproduzíveis (22) de acordo com uma função de atualização, - uma interface (61) para receber pelo menos a dita mensagem de texto plano (10), - uma unidade de conversão (62) para converter e armazenar a dita mensagem de texto plano (10) em uma pluralidade de blocos de texto plano ordenados (11) com o mesmo tamanho de bit, - uma unidade de processamento (64) para sucessivamente processar cada um dos ditos blocos de texto plano (11) de uma maneira ordenada como um bloco de texto plano atual durante uma rodada, a dita unidade de processamento (64) adicionalmente compreendendo uma unidade de cifragem (65), hospedando um algoritmo de cifra de bloco (35) e uma memória (66) armazenando uma única chave criptográfica (34), - cada rodada compreendendo: - uma primeira etapa para inserir dados de entrada (20) no algoritmo de cifra de bloco (35), os ditos dados de entrada (20) compreendendo dados (21) do dito registro (23) e dados reproduzíveis (22), - uma segunda etapa para calcular, dentro do dito algoritmo de cifra de bloco (35), um criptograma (30) por meio da criptografia dos dados de entrada (20) usando a dita chave criptográfica única (34), o dito criptograma (30) compreendendo um primeiro segmento (31) e um segundo segmento (32), o último sendo definido como uma marca local de autenticação e sendo armazenado na dita memória (66), - uma terceira etapa para calcular e armazenar, na dita memória (66), um bloco de texto cifrado (51) por meio da realização de uma primeira operação (41) usando, como operandos, o dito primeiro segmento (31) e o dito bloco de texto plano atual (11), - a dita unidade de processamento (64) sendo adicionalmente configurada para recarregar o registro (23) com o dito bloco de texto cifrado (51) e atualizar os dados reproduzíveis (22) antes de executar uma nova rodada por iniciar novamente para a dita primeira etapa, contanto que todos os ditos blocos de texto plano (11) não tenham sido processados em uma rodada, - a dita unidade de conversão (62) sendo adicionalmente configurada para determinar a dita mensagem de texto cifrado (50) por meio da concatenação dos blocos de texto cifrado (51) de todas as rodadas na dita maneira ordenada, e - a dita unidade de processamento (64) sendo adicionalmente configurada para recarregar o registro (23) com o último bloco de texto cifrado calculado (51) e aplicar a função de atualização aos ditos dados reproduzíveis (22) de modo a atualizá-los antes de realizar somente as primeiras duas etapas da dita rodada, e então calcular a dita marca global (52) por uma segunda operação (42) usando, a partir da dita memória (66), todas as marcas locais de autenticação calculadas (32) como operandos, - a dita interface (61) sendo adicionalmente configurada para apresentar a dita mensagem de texto cifrado (50) e a dita marca global (52), CARACTERIZADO pelo fato de que a dita unidade de processamento (64) é adicionalmente configurada para também considerar o dito segundo segmento (32) como um operando na terceira etapa da dita rodada.13. Cryptographic device (60) for implementing a block cipher method using round repetition to provide, from a plaintext message (10), a ciphertext message (50) and a global tag (52) to authenticating said ciphertext message (50), comprising: - a register (23) for receiving first data, - an updater (25) for updating reproducible data (22) in accordance with an update function, - an interface (61 ) for receiving at least said plain text message (10), - a conversion unit (62) for converting and storing said plain text message (10) into a plurality of ordered plain text blocks (11) with the same bit size, - a processing unit (64) for successively processing each of said plain text blocks (11) in an ordered manner as a current plain text block during a round, said processing unit (64) further comprising a cipher unit (65), hosting a block cipher algorithm (35) and a memory (66) storing a single cryptographic key (34), - each round comprising: - a first step for inserting input data ( 20) in the block cipher algorithm (35), said input data (20) comprising data (21) of said record (23) and reproducible data (22), - a second step to calculate, within said algorithm of block cipher (35), a cryptogram (30) by encrypting the input data (20) using said unique cryptographic key (34), said cryptogram (30) comprising a first segment (31) and a second segment (32), the latter being defined as a local authentication mark and being stored in said memory (66), - a third step for calculating and storing, in said memory (66), a block of ciphertext (51) by means of of performing a first operation (41) using, as operands, said first segment (31) and said current plaintext block (11), - said processing unit (64) being further configured to reload the register ( 23) with said ciphertext block (51) and update the reproducible data (22) before executing a new round by starting again for said first step, provided that all said plaintext blocks (11) have not been processed in one round, - said conversion unit (62) being further configured to determine said ciphertext message (50) by concatenating the ciphertext blocks (51) of all rounds in said ordered manner, and - said processing unit (64) being further configured to reload the record (23) with the last calculated ciphertext block (51) and apply the update function to said reproducible data (22) so as to update it before of performing only the first two steps of said round, and then calculating said global mark (52) by a second operation (42) using, from said memory (66), all calculated local authentication marks (32) as operands, - said interface (61) being additionally configured to present said ciphertext message (50) and said global tag (52), CHARACTERIZED by the fact that said processing unit (64) is additionally configured to also consider said second segment (32) as an operand in the third step of said round. 14. Dispositivo criptográfico (60’) para implementar um método de decifragem de bloco utilizando repetição de rodada para fornecer, a partir de uma mensagem de texto cifrado (50), uma mensagem de texto plano (10) e uma marca global (52) para autenticar a dita mensagem de texto plano, compreendendo: - um registro (23) para receber primeiros dados (21), - um atualizador (25) para atualizar dados reproduzíveis (22) de acordo com uma função de atualização, - uma interface (61) para receber pelo menos a dita mensagem de texto cifrado (50), - uma unidade de conversão (62) para converter e armazenar a dita mensagem de texto cifrado (50) em uma pluralidade de blocos de texto cifrado ordenados (51) com o mesmo tamanho de bit, - uma unidade de processamento (64) para sucessivamente processar cada um dos ditos blocos de texto cifrado (51) de uma maneira ordenada como um bloco de texto cifrado atual durante uma rodada, a dita unidade de processamento (64) adicionalmente compreendendo uma unidade de decifragem (65), hospedando um algoritmo de decifragem de bloco (35) e uma memória (66) compreendendo uma chave criptográfica única (34), - cada rodada compreendendo: - uma primeira etapa para inserir dados de entrada (20) no algoritmo de decifragem de bloco (35), os ditos dados de entrada (20) compreendendo dados (21) do dito registro (23) e dados reproduzíveis (22), - uma segunda etapa para calcular, dentro do dito algoritmo de cifragem de bloco (35), uma primeira saída (30) por meio do processamento dos dados de entrada (20) usando a dita chave criptográfica única (34), a dita primeira saída (30) compreendendo um primeiro segmento (31) e um segundo segmento (32), o último sendo definido como uma marca local de autenticação e sendo armazenado na dita memória (66), - uma terceira etapa para calcular e armazenar, na dita memória (66), um bloco de texto plano (11) por meio da realização de uma primeira operação (41) usando, como operandos, o dito primeiro segmento (31) e o dito bloco de texto cifrado atual (51), - a dita unidade de processamento (64) sendo adicionalmente configurada para recarregar o registro (23) com o dito bloco de texto cifrado atual (51) e atualizar os dados reproduzíveis (22) antes de executar uma nova rodada por iniciar novamente para a dita primeira etapa, contanto que todos os ditos blocos de texto cifrado (51) não tenham sido processados em uma rodada, - a dita unidade de conversão (62) sendo adicionalmente configurada para determinar a dita mensagem de texto plano (10) por meio da concatenação dos blocos de texto plano (11) de todas as rodadas na dita maneira ordenada, e então - a dita unidade de processamento (64) sendo adicionalmente configurada para recarregar o registro (23) com o bloco de texto cifrado atual (51) e aplicar a função de atualização aos ditos dados reproduzíveis (22) de modo a atualizá-los antes de realizar somente as primeiras duas etapas da dita rodada, e então calcular a dita marca global (52) por uma segunda operação (42) usando, a partir da dita memória (66), todas as marcas locais de autenticação calculadas (32) como operandos, - a dita interface (61) sendo adicionalmente configurada para apresentar a dita mensagem de texto plano (10), CARACTERIZADO pelo fato de que a dita unidade de processamento (64) é adicionalmente configurada para também considerar o dito segundo segmento (32) como um operando na terceira etapa da dita rodada.14. Cryptographic device (60') for implementing a block decryption method using round repetition to provide, from a ciphertext message (50), a plaintext message (10) and a global tag (52) for authenticating said plain text message, comprising: - a register (23) for receiving first data (21), - an updater (25) for updating reproducible data (22) in accordance with an update function, - an interface ( 61) for receiving at least said ciphertext message (50), - a conversion unit (62) for converting and storing said ciphertext message (50) into a plurality of ordered ciphertext blocks (51) with the same bit size, - a processing unit (64) for successively processing each of said ciphertext blocks (51) in an ordered manner as a current ciphertext block during a round, said processing unit (64 ) further comprising a decryption unit (65), hosting a block decryption algorithm (35) and a memory (66) comprising a unique cryptographic key (34), - each round comprising: - a first step for inserting input data (20) in the block decryption algorithm (35), said input data (20) comprising data (21) of said record (23) and reproducible data (22), - a second step to calculate, within said algorithm block cipher code (35), a first output (30) by processing the input data (20) using said unique cryptographic key (34), said first output (30) comprising a first segment (31) and a second segment (32), the latter being defined as a local authentication mark and being stored in said memory (66), - a third step for calculating and storing, in said memory (66), a block of plain text (11 ) by performing a first operation (41) using, as operands, said first segment (31) and said current ciphertext block (51), - said processing unit (64) being further configured to reload record (23) with said current ciphertext block (51) and update the reproducible data (22) before executing a new round by starting again for said first step, provided that all said ciphertext blocks (51 ) have not been processed in a round, - said conversion unit (62) being further configured to determine said plain text message (10) by concatenating the plain text blocks (11) of all rounds in said orderly manner, and then - said processing unit (64) being further configured to reload the register (23) with the current ciphertext block (51) and apply the update function to said reproducible data (22) so as to updating them before performing only the first two steps of said round, and then calculating said global mark (52) by a second operation (42) using, from said memory (66), all calculated local authentication marks (32) as operands, - said interface (61) being additionally configured to present said plain text message (10), CHARACTERIZED by the fact that said processing unit (64) is additionally configured to also consider said second segment (32) as an operand in the third step of said round. 15. Dispositivo criptográfico (60'), de acordo com a reivindicação 14, CARACTERIZADO pelo fato de que a dita unidade de processamento (64) é adicionalmente configurada para verificar se a dita marca global (52) é idêntica aos dados de autenticação fornecidos junto com a mensagem de texto cifrado (50), e, caso não seja, efetuar uma ação apropriada.15. Cryptographic device (60'), according to claim 14, CHARACTERIZED by the fact that said processing unit (64) is additionally configured to verify that said global mark (52) is identical to the authentication data provided along with with the ciphertext message (50), and, if not, take appropriate action.
BR112017010974-3A 2014-12-03 2015-12-01 BLOCK CRYPTOGRAPHIC METHOD FOR ENCRYPTION/DECRYPTION OF MESSAGES AND CRYPTOGRAPHIC DEVICES FOR IMPLEMENTING THIS METHOD BR112017010974B1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP14196089 2014-12-03
EP14196089.8 2014-12-03
PCT/EP2015/078115 WO2016087395A1 (en) 2014-12-03 2015-12-01 Block cryptographic method for encrypting/decrypting messages and cryptographic devices for implementing this method

Publications (2)

Publication Number Publication Date
BR112017010974A2 BR112017010974A2 (en) 2018-01-09
BR112017010974B1 true BR112017010974B1 (en) 2023-08-01

Family

ID=

Similar Documents

Publication Publication Date Title
US20230041383A1 (en) Block cryptographic method for encrypting/decrypting messages and cryptographic devices for implementing this method
TWI440351B (en) Verifiable, leak-resistant encryption and decryption
JP6366595B2 (en) Method and system for anti-glitch cryptographic discrete log-based signature
US9871651B2 (en) Differential power analysis countermeasures
US11232718B2 (en) Methods and devices for protecting data
Guin et al. SMA: A system-level mutual authentication for protecting electronic hardware and firmware
US20140140504A1 (en) System, devices and methods for collaborative execution of a software application comprising at least one encrypted instruction
Hell et al. An AEAD variant of the grain stream cipher
JP2021507310A (en) White box calculation of keyed message authentication code
US20210367766A1 (en) A computation device using shared shares
Kirkpatrick et al. PUF ROKs: A hardware approach to read-once keys
Gebotys et al. Security wrappers and power analysis for SoC technologies
JP4386766B2 (en) Error detection in data processing equipment.
Rahman et al. Design and security-mitigation of custom and configurable hardware cryptosystems
BR112017010974B1 (en) BLOCK CRYPTOGRAPHIC METHOD FOR ENCRYPTION/DECRYPTION OF MESSAGES AND CRYPTOGRAPHIC DEVICES FOR IMPLEMENTING THIS METHOD
CN107766725B (en) Template attack resistant data transmission method and system
Chuah et al. Timing side channel attack on key derivation functions
Chari et al. Designing a side channel resistant random number generator
Ramzanipour et al. Practical Differential Fault Analysis on CRAFT, a Lightweight Block Cipher.
Song et al. Design of secure AES encrypted IP cores for IoT environments
Pryamikov Enciphering with arbitrary small finite domains
Gupta et al. A fail-fast mechanism for authenticated encryption schemes
Kaushal et al. Comparative Study of RKC and GCM Mode of Operation
BR102015013579B1 (en) CRYPTOGRAPHIC METHOD FOR SECURE EXCHANGE OF MESSAGES BETWEEN AT LEAST TWO DEVICES, CRYPTOGRAPHIC DEVICE AND SYSTEM