BR112016001596B1 - Dispositivo de criptografia autenticada e método de criptografia autenticada - Google Patents

Dispositivo de criptografia autenticada e método de criptografia autenticada Download PDF

Info

Publication number
BR112016001596B1
BR112016001596B1 BR112016001596-7A BR112016001596A BR112016001596B1 BR 112016001596 B1 BR112016001596 B1 BR 112016001596B1 BR 112016001596 A BR112016001596 A BR 112016001596A BR 112016001596 B1 BR112016001596 B1 BR 112016001596B1
Authority
BR
Brazil
Prior art keywords
plaintext
last
encryption
block
ciphertext
Prior art date
Application number
BR112016001596-7A
Other languages
English (en)
Other versions
BR112016001596A2 (pt
Inventor
Kazuhiko Minematsu
Original Assignee
Nec Corporation
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 Nec Corporation filed Critical Nec Corporation
Publication of BR112016001596A2 publication Critical patent/BR112016001596A2/pt
Publication of BR112016001596B1 publication Critical patent/BR112016001596B1/pt

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/24Key scheduling, i.e. generating round keys or sub-keys for block encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)
  • Detection And Correction Of Errors (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Error Detection And Correction (AREA)

Abstract

A presente invenção refere-se à criptografia autenticada de um passo e uma taxa com capacidade de realizar processamentos paralelos e de realizar totalmente processamentos de criptografia e de-codificação através de apenas uma função de criptografia. Um dispositivo de criptografia autenticada compreende um meio de criptografia autenticada para aplicar uma estrutura de Feistel de duas rodadas com o uso de uma função de criptografia designada com uma variável auxiliar para uma função de rodada por dois blocos a um texto simples de entrada ou texto criptografado para gerar assim um texto criptografado ou texto simples decodificado. O meio de criptografia autenticada constata um pedaço de texto criptografado CC[i] = (C[i_1], C[i_2]) correspondente a um iésimo pedaço de texto simples MC[i] = (M[i_1], M[i_2]) ao dividir um texto simples em pedaços por dois blocos como: C[i_1] = F_K((N, Tw_i_1), M[i_1]) xor M[i_2], C[i_2] = F_K((N, Tw_i_2), C[i_1]) xor M[i_1].

Description

CAMPO DA TÉCNICA
[001] A presente invenção refere-se a um dispositivo de criptografia autenticada para realizar criptografia autenticada através do uso de uma chave comum, um dispositivo de criptografia, um dispositivo de decodificação, um método de criptografia autenticada, e um programa para criptografia autenticada.
ANTECEDENTES DA INVENÇÃO
[002] A criptografia autenticada (AE) é uma técnica para criptografar uma mensagem de texto simples e originar um código de autenticação de mensagem (MAC) ao mesmo ao mesmo tempo através do uso de uma chave secreta anteriormente compartilhada. O uso de criptografia autenticada permite que o conteúdo seja protegido contra interceptação, e manipulação não autorizada a ser detectada. Se criptografia autenticada for aplicada a caminhos de comunicação, forte proteção para que o conteúdo seja comunicado pode ser alcançada.
[003] Entrada e saída básicas de criptografia autenticada serão descritas abaixo. Duas pessoas que compartilham uma chave secreta K serão presumidas abaixo como Alice e Bob, e uma mensagem criptografada por criptografia autenticada é presumida como comunicada de Alice a Bob.
[004] Uma função de criptografia e uma função de decodificação para criptografia autenticada são presumidas como AEnc_K e ADec_K, respectivamente. Um texto simples a ser criptografado é presumido como M e uma variável N chamada vetor inicial é apresentada. O vetor inicial N é geralmente um número aleatório com um comprimento fixo curto ou um contador, que é gerado por Alice.
[005] O processamento de criptografia no lado de Alice será descrito primeiro. Alice gera o vetor inicial N, e então executa (C, T) = AEnc_K(N, M). No presente documento, AEnc_K é chamada função de criptografia com o uso da chave K como um parâmetro, C é chamado texto criptografado, e T é chamado marcação autenticada, que são variáveis para detectar um comprimento fixo alterado. Alice transmite uma combinação (N, C, T) do vetor inicial N, texto criptografado resultante C, e a marcação de autenticação resultante T a Bob.
[006] O processamento de decodificação no lado de Bob sera descrito abaixo. No presente documento, as informações que Bob recebe de Alice são presumidas como (N’, C’, T’). Ao receber as informações de Alice, Bob executa ADec_K(N’, C’, T’) como o processamento de decodificação. ADec_K é uma função de decodificação com o uso da chave K como um parâmetro. Se a comunicação for alterada no meio e (N’, C’, T’) for diferente de (N, C, T), presumindo um símbolo que indica alternação à medida que \bot, ADec_K(N’, C’, T’) emite \bot. Sem alternação e no caso de (N’, C’, T’) = (N, C, T), ADec_K(N’, C’, T’) emite um texto simples decodificado M’ que tem o mesmo conteúdo que o texto simples M criptografado por Alice. Sendo assim, M é corretamente decodificado.
[007] De modo prático, a entrada e a saída incluem uma variável chamada cabeçalho H em muitos casos. O cabeçalho H não deve ser criptografado, mas são informações para autenticação de mensagem a ser usada para expressar uma versão de protocolo ou similares, por exemplo.
[008] Com o cabeçalho H incluído, a função de criptografia é entrada/saída de (C, T) = AEnc_K(N, M, H), e criptografa o texto simples M e gera um código de autenticação de mensagem a uma combinação de texto simples M e cabeçalho H. Alice transmite uma combinação (N, H, C, T) de vetor inicial N, cabeçalho H, texto criptografado resultante C e marcação de autenticação resultante T a Bob.
[009] Quando entrada/saída de ADec_K(N’, C’, T’, H’) for obtida e (N’, C’, T’, H’) for diferente de (N, C, T, H), a função de decodificação emite o símbolo \bot que indica alternação. Quando o (N’, H’, C’, T’) recebido não for alterado ou (N’, H’, C’, T’) = (N, H, C, T) for estabelecido, Bob no lado de recepção pode decodificar corretamente M e confirmar que o cabeçalho H não é alterado.
[0010] A criptografia autenticada com a entrada/saída adicionada com o cabeçalho H pode ser chamada criptografia autenticada com dados associados (AEAD), e será simplesmente indicada como "criptografia autenticada" abaixo a menos que seja indicado de outro modo.
[0011] Um dos métodos de realização de criptografia autenticada é baseado em composição genérica. Esse é um método que usa uma combinação de sistema de criptografia segura e sistema MAC seguro. Por exemplo, com uma combinação conhecida Enc-then-Auth, duas chaves K1 e K2 são usadas para realizar criptografia autenticada com (C, T) = MAC_K2(N, Enc_K1(M)). No presente documento, Enc_XX indica uma função de criptografia usada no sistema de criptografia, e MAC_XX indica uma função dada de MAC usada no sistema MAC.
[0012] Quando a criptografia de bloco tal como criptografia a AES (Padrão de Criptografia Avançada) for usada, por exemplo, o sistema de criptografia puder empregar criptografia de modo contador AES, e o sistema MAC pode empregar CMAC-AES (MAC-AES baseado em cifra). Além disso, como um método para realizar criptografia autenticada através do uso de uma chave de criptografia de bloco sem o uso de duas chaves, é conhecido um sistema de criptografia autenticada chamado modo CCM (contador com CBC-MAC) (Literatura de Não Patente 1, por exemplo).
[0013] No entanto, todos os métodos acima exigem processamentos de dois passos incluindo criptografia e origem de MAC.Ou seja, os dados precisam ser inteiramente submetidos à varredura pelo menos duas vezes. Além disso, quando um texto simples de entrada for de m blocos, a criptografia de bloco precisa ser chamada cerca de m vezes para criptografia e função MAC usada no sistema CCM. Portanto, a criptografia de bloco precisa ser chamada cerca de 2m vezes para o processamento de criptografia autenticada em um texto simples de m-bloco. Ou seja, a função de processamento tal como a função de criptografia ou função dada de MAC precisa ser chamada duas vezes por bloco de texto simples. O sistema no qual a função de processamento é chamada duas vezes para cada bloco também é chamado sistema de duas taxas. O sistema de dois passos ou de duas taxas tem um problema de que o processamento leva um longo tempo e tem uma carga pesada.
[0014] Uma abordagem para resolver o problema é um sistema de criptografia autenticada de um passo que usa criptografia de bloco.
[0015] Um sistema de criptografia autenticada chamado modo OCB descrito na literatura de Patente 1 é proposto primeiro (que será chamado sistema OCB abaixo). O sistema OCB se dá de modo que a criptografia de bloco chamada criptografia de bloco ajustável descrita na Literatura de Não Patente 2 seja estendida.
[0016] A criptografia de bloco ajustável é um sistema de criptografia autenticada no qual uma variável auxiliar chamada Ajuste é introduzida para criptografia e decodificação. Quando um tamanho de bloco for n- bit, A criptografia com a criptografia de bloco ajustável pode ser expressa como "TE_K(Tw, M) = C", e a decodificação pode ser expressa como "TD_K(Tw, C) = M". Para qualquer combinação (K, Tw), TE_K(Tw, *) configura substituição no espaço de n-bits. Sua substituição inversa é TD_K(Tw, *). Tw indica uma variável auxiliar Ajuste, e * indica uma variável. Exige-se a variável auxiliar Tw para decodificação, mas se a mesma for liberada, a segurança da criptografia de bloco ajustável não é influenciada.
[0017] No sistema OCB, em primeiro lugar, uma função de criptografia de criptografia de bloco típica é convertida em uma função de criptografia de criptografia de bloco ajustável ou uma função de criptografia designada por Ajuste através do uso de um modo XEX descrito na Literatura de Não Patente 3. Então, a função TE_K a seguir é chamada para criptografar um vetor inicial N e um texto simples M = (M[1], M[2], •••, M[m]). Presume-se que cada M[i] seja bloco de n-bit. A função de TE_K usada no sistema OCB emprega uma variável (N, i) correspondente a Ajuste. N indica um vetor inicial e i indica um número de identificação de bloco. C[1] = TE_K((N, 1), M[1]), C[2] = TE_K((N, 2), M[2]), ■■■. C[m] = TE_K((N, m), M[m])
[0018] Uma marcação de autenticação T é constatada chamando- se a mesma função de TE_K que a mensagem a seguir, por exemplo, para SUM = M[1] xor M[2] xor •xor M[m] que é XOR (exclusivo ou) de todos os blocos de texto simples. T = TE_K((N, m+1), SUM)
[0019] A função de TE_K usada no sistema OCB é executada adicionando-se Tw = (N, i) e uma mask_K(N, i) de consequência calculada pela chave de segredo K à entrada/saída da função de criptografia E_K da criptografia de bloco (convertida no modo XEX). A equação de conversão no modo XEX é expressa da seguinte forma. A equação de conversão pode ser chamada equação de conversão XEX abaixo. TE_K((N, i), M[i]) = E_K(M[i] xor mask_K(N, i) xor mask_K(N, i)
[0020] E_K é usada para calcular máscara (mask), e processamentos sequenciais eficientes são permitidos no sistema OCB. Ou seja, cálculos de mask_K(N, i) para mask_K(N, i+1) podem ser realizados de modo eficiente.
[0021] A Figura 19 é um diagrama explicativo que ilustra esquematicamente um processamento de criptografia no sistema OCB. Na Figura 19, os blocos em linhas pontilhadas correspondem a TE_K((N, i), *). O progresso de um processamento de cálculo de uma sequência de máscara é omitido na Figura 19.
[0022] Conforme ilustrado na Figura 19, E_K é chamado uma vez para calcular L para constatar uma sequência de máscara e uma marcação de autenticação T, respectivamente, no sistema OCB, mas um processamento de um passo é possível como um todo. Além disso, o processamento em cada bloco pode ser realizado em paralelo exceto pelo cálculo de uma sequência de máscara. Mais especificamente, o número de chamadas de criptografia de bloco para um texto simples de m-bloco é quase m, e é quase metade dos outros sistemas de criptografia autenticada de dois passos, tais como sistema CCM e sistema GCM (Galois/modo contador).
LISTA DE CITAÇÕES LITERATURA DE PATENTE
[0023] PTL 1: Relatório descritivo de Patente no U.S. 8321675
LITERATURA DE NÃO PATENTE
[0024] NPL 1: Morris Dworkin, "Recommendation for Block Cipher Modes of Operation: The CCM Mode for Authentication and Confidentiality", [online] maio de 2005, publicação especial NIST 80038C, Internet <URL: http://csrc.nist.gov/publications/nistpubs/800- 38C/SP800-38Cupdated-July20 2007.pdf>
[0025] NPL 2: Moses Liskov, Ronald L. Rivest, David Wagner,"Ajusteable Block Ciphers.", 2002, Advances in Cryptology-CRYPTO 2002, Lecture Notes in Computer Science 2442 Springer 2002, p. 31 a 46.
[0026] NPL 3: P. Rogaway, "Efficient Instantiations of Ajusteable Blockciphers and Refinements to Modes OCB e PMAC"., 2004, Advances in Cryptology-ASIACRYPT’04, LNCS 3329, p. 16 a 31.
SUMÁRIO DA INVENÇÃO PROBLEMA TÉCNICO
[0027] A Figura 20 é um diagrama explicativo que ilustra esquematicamente um processamento de decodificação no sistema OCB. No modo CCM ou GCM, o processamento de decodificação como criptografia de autenticação é alcançado por somente uma função de criptografia E_K de criptografia de bloco, enquanto no sistema OCB, conforme ilustrado na Figura 20, não somente uma função de criptografia E_K de criptografia de bloco, mas também uma função de decodificação D_K de criptografia de bloco é exigida para o processamento de decodificação de criptografia de bloco ajustável.
[0028] Quando tanto a função de criptografia quanto a função de decodificação de criptografia de bloco como partes são exigidas para criptografia e decodificação de criptografia de autenticação, aumentam- se as cargas na montagem devido à memória ou tamanho de circuito. A criptografia representativa de bloco AES é geralmente menor no processamento de decodificação do que na criptografia, e o fato indica que uma diferença de desempenho é causada entre o processamento de criptografia e o processamento de decodificação no sistema OCB com o uso de AES, ou similares.
[0029] O OCB e seu sistema similar de criptografia autenticada de um passo não podem resolver o problema acima.
[0030] Portanto, é um objetivo da presente invenção fornecer um dispositivo de criptografia autenticada para alcançar criptografia de um passo e uma taxa autenticada com capacidade de realizar processamentos paralelos e realizar totalmente processamentos de criptografia e decodificação através do uso de somente uma função de criptografia, um dispositivo de criptografia, um dispositivo de decodificação, um método de criptografia autenticada, e um programa para criptografia autenticada.
SOLUÇÃO PARA O PROBLEMA
[0031] Um dispositivo de criptografia autenticada, de acordo com a presente invenção é caracterizado por incluir: um meio de criptografia autenticada para aplicar uma estrutura de Feistel de duas rodadas que usa uma função de criptografia designada com uma variável auxiliar para uma função de rodada por dois blocos a um texto simples de entrada ou texto simples criptografado para gerar assim um texto criptografado ou texto simples decodificado, e aplicar a função de criptografia a uma soma de verificação calculada pelo uso de alguns n bits no texto simples de entrada ou o texto simples decodificado para gerar uma etiqueta de autenticação.
[0032] Um dispositivo de criptografia de acordo com a presente invenção é caracterizado por incluir: um meio de criptografia para aplicar uma estrutura de Feistel de duas rodadas que usa uma função de criptografia designada com uma variável auxiliar para a função de rodada por dois blocos a um texto simples de entrada para gerar assim um texto criptografado, e aplicar a função de criptografia a uma soma de verificação calculada pelo uso de alguns bits no texto simples de entrada para gerar assim uma etiqueta de autenticação.
[0033] Um dispositivo de decodificação de acordo com a presente invenção é caracterizado por incluir: um meio de decodificação para aplicar uma estrutura de Feistel de duas rodadas que usa uma função de criptografia designada com uma variável auxiliar para uma função de rodada por dois blocos a um texto criptografado de entrada para gerar assim um texto simples decodificado, e aplicar a função de criptografia a uma soma de verificação calculada pelo uso de alguns bits no texto simples decodificado para gerar assim uma etiqueta de autenticação.
[0034] Um método de criptografia autenticada de acordo com a presente invenção é caracterizado pelo fato de que um aparelho de processamento de informações aplica uma estrutura de Feistel de duas rodadas que usa uma função de criptografia designada com uma variável auxiliar para uma função de rodada por dois blocos a um texto simples de entrada ou texto criptografado para gerar assim um texto criptografado ou texto simples decodificado, e aplica a função de criptografia a uma soma de verificação calculada pelo uso de alguns bits no texto simples de entrada ou no texto simples decodificado para gerar assim uma etiqueta de autenticação.
[0035] Um programa para criptografia autenticada de acordo com a presente invenção é caracterizado por fazer com que um computador realize: um processamento de aplicação de uma estrutura de Feistel de duas rodadas que usa uma função de criptografia designada com uma variável auxiliar para a função de rodada por dois blocos a um texto simples de entrada ou texto criptografado para gerar assim um texto criptografado ou texto simples decodificado, e aplicar a função de criptografia a uma soma de verificação calculada pelo uso de alguns bits no texto simples de entrada ou no texto simples decodificado para gerar assim uma etiqueta de autenticação.
EFEITOS VANTAJOSOS DA INVENÇÃO
[0036] De acordo com a presente invenção, é possível alcançar a criptografia autenticada de um passo e uma taxa com capacidade de realizar processamentos paralelos e realizar totalmente processamentos de criptografia e decodificação através do uso de somente uma função de criptografia.
BREVE DESCRIÇÃO DOS DESENHOS
[0037] A Figura 1 retrata um diagrama explicativo que ilustra esquematicamente um fluxo de processamento exemplificador de um processamento de criptografia inteiro de acordo com a presente invenção.
[0038] A Figura 2 retrata um diagrama explicativo que ilustra esquematicamente um fluxo de processamento exemplificador de um processamento de decodificação inteiro de acordo com a presente invenção.
[0039] A Figura 3 retrata um diagrama de blocos que ilustra um dispositivo exemplificador fornecido em um sistema de criptografia autenticada.
[0040] A Figura 4 retrata um diagrama de blocos que ilustra uma estrutura funcional exemplificadora do sistema de criptografia autenticada.
[0041] A Figura 5 retrata um diagrama explicativo que ilustra esquematicamente um exemplo no qual uma função pseudoaleatória com duas variáveis de entrada é realizada.
[0042] A Figura 6 retrata (a) um diagrama explicativo que ilustra esquematicamente um fluxo de processamento exemplificador de um processamento de criptografia inteiro com uma função pseudoaleatória com o uso de um modo XEX de criptografia de bloco, e (b) um diagrama explicativo que ilustra esquematicamente um fluxo de processamento exemplificador de um processamento de decodificação inteiro com uma função pseudoaleatória com o uso de um modo XEX de criptografia de bloco.
[0043] A Figura 7 retrata um diagrama explicativo que ilustra esquematicamente outro exemplo no qual uma função pseudoaleatória com duas variáveis de entrada é realizada.
[0044] A Figura 8 retrata um fluxograma que ilustra uma operação de criptografia exemplificadora de um sistema de criptografia autenticada de acordo com uma primeira modalidade exemplificativa.
[0045] A Figura 9 retrata um fluxograma que ilustra uma operação de decodificação exemplificadora do sistema de criptografia autenticada de acordo com a primeira modalidade exemplificativa.
[0046] A Figura 10 retrata um diagrama de blocos que ilustra outra estrutura exemplificadora do sistema de criptografia autenticada.
[0047] A Figura 11 retrata um diagrama explicativo que ilustra esquematicamente um fluxo de processamento exemplificador de um processamento de criptografia inteiro de acordo com uma segunda modalidade exemplificativa.
[0048] A Figura 12 retrata um diagrama explicativo que ilustra esquematicamente um fluxo de processamento exemplificador de um processamento de decodificação inteiro de acordo com a segunda modalidade exemplificativa. lulex
[0049] A Figura 13 retrata um diagrama explicativo que ilustra esquematicamente um fluxo de processamento exemplificador de um processamento de criptografia inteiro de acordo com uma terceira modalidade exemplificativa.
[0050] A Figura 14 retrata um diagrama explicativo que ilustra esquematicamente um fluxo de processamento exemplificador de um processamento de decodificação inteiro de acordo com a terceira modalidade exemplificativa.
[0051] A Figura 15 retrata um diagrama de blocos que ilustra uma estrutura exemplificadora de um dispositivo de criptografia 100 para processamentos paralelos.
[0052] A Figura 16 retrata um diagrama de blocos que ilustra uma estrutura exemplificadora de um dispositivo de decodificação 200 para processamentos paralelos.
[0053] A Figura 17 retrata um diagrama de blocos que ilustra uma estrutura mínima exemplificadora de um dispositivo de criptografia autenticada de acordo com a presente invenção.
[0054] A Figura 18 retrata um diagrama de blocos que ilustra outra estrutura exemplificadora do dispositivo de criptografia autenticada de acordo com a presente invenção.
[0055] A Figura 19 retrata um diagrama explicativo que ilustra esquematicamente um fluxo de processamento exemplificador de um processamento de criptografia inteiro no sistema OCB.
[0056] A Figura 20 retrata um diagrama explicativo que ilustra esquematicamente um fluxo de processamento exemplificador de um processamento de decodificação inteiro no sistema OCB.
DESCRIÇÃO DAS MODALIDADES
[0057] Um esboço da presente invenção será primeiro descrito. A presente invenção se refere a um sistema de criptografia que usa uma chave de segredo comum com base em um bloco sistema de criptografia para conduzir criptografia por tamanho predeterminado. A presente invenção aplica uma estrutura de Feistel de duas rodadas por dois blocos. Uma função de criptografia designada com uma variável auxiliar Tw chamada Ajuste (valor ajustado) é usada para uma função de rodada da estrutura de Feistel de duas rodadas. A estrutura de Feistel é usada para criptografia autenticada em unidades de dois blocos dessa maneira, resolvendo assim o problema acima.
[0058] O sistema de criptografia autenticada de acordo com a presente invenção será mais especificamente descrito abaixo. A presente invenção usa as sequências a seguir de variáveis presumindo uma variável auxiliar Tw introduzida em uma função de criptografia. Uma sequência de variáveis usadas como variável auxiliar Tw pode ser chamada "sequência auxiliar" abaixo. A sequência auxiliar é configurada de modo que diferentes valores sejam inseridos em todas as funções de criptografia a serem chamadas enquanto criptografia é conduzida por uma chave. Será descrito abaixo um caso no qual uma sequência auxiliar em uma combinação de vetor inicial N com um valor diferente para criptografar um texto simples, identificador i para identificar um pedaço em unidades de dois blocos, e j para identificar um bloco no pedaço de outro processamento, ou uma combinação de (N, i, j) é usada como a variável auxiliar Tw, mas a sequência auxiliar não é limitada à mesma. A sequência auxiliar é configurada para poder gerar o mesmo valor para um texto simples tanto durante criptografia quanto durante decodificação. Por exemplo, um valor para gerar uma sequência auxiliar é anteriormente definido. O exemplo acima cumpre a condição acima visto que um valor da sequência auxiliar pode ser exclusivamente definido com base no vetor inicial e um comprimento do texto simples ou texto criptografado.
[0059] Por exemplo, quando o número de blocos em um texto simples ou texto criptografado a ser processado for 2m, presumindo cada bloco que tem n bits, pode-se presumir que (N, 1, 1), (N, 1, 2), (N, 2, 1), (N, 2, 2), •••, (N, m, 1), (N, m, 2) são usados como sequências auxiliares dependendo do índice de cada bloco, e (N, m, 3) é usado como uma sequência auxiliar para gerar uma marcação de autenticação.
[0060] Com as sequências auxiliares definidas dessa maneira, um texto simples M a ser criptografado é processado em pedaços de dois blocos no processamento de criptografia. Um i-ésimo pedaço de texto criptografado (C[2i], C[2i-1]) é gerado para um i-ésimo pedaço de texto simples (M[2i-1], M[2i], em que (i = 1, •••, m)) através do uso de sequências auxiliares (N, i,1), (N, i, 2) e uma função pseudoaleatória chaveada F_K(*, *) como uma função pseudoaleatória com duas variáveis de entrada. A "função pseudoaleatória" é o nome de uma função de criptografia com base em sua propriedade. A função pseudoaleatória pode ser uma função de criptografia de criptografia de bloco ou uma função de hash de chave, por exemplo.
[0061] A Figura 1 é um diagrama explicativo que ilustra esquematicamente um fluxo de processamento exemplificador de um processamento de criptografia inteiro de acordo com a presente invenção. Na Figura 1, os blocos em linhas pontilhadas estão na estrutura de Feistel de duas rodadas e correspondem aos blocos de processamento no processamento de criptografia em unidades de dois blocos. Por exemplo, presumindo uma primeira variável de entrada como uma sequência auxiliar, um i-ésimo pedaço de texto criptografado (C[2i], C[2i-1]) é adquirido em cada bloco de processamento a seguir através do uso de F_K((N, i, 1), *) com a sequência auxiliar (N, i, 1) como a primeira variável de entrada, e F_K((N, i, 2), *) com a sequência auxiliar (N, i, 2) como a primeira variável de entrada. xor indica OR exclusivo por bit.C[2i-1] = F_K((N, i,1), M[2i-1]) xor M[2i], C[2i] = F_K((N, i, 2), C[2i-1]) xor M[2i-1] Equação (1)
[0062] Equação (1) indica esse XOR de um resultado obtido executando-se a função pseudoaleatória F_K em um bloco ímpar M[2i- 1] em um i-ésimo pedaço de texto simples através do uso da sequência auxiliar (N, i, 1) correspondente ao bloco ímpar no i-ésimo pedaço de texto simples, e um par de blocos M[2i] no i-ésimo pedaço de texto simples é presumido como o bloco de texto criptografado C[2i-1] como um bloco ímpar em um i-ésimo pedaço de texto criptografado, e XOR de um resultado obtido executando-se a função pseudoaleatória F_K no bloco de texto criptografado obtido desse modo C[2i-1] através do uso da sequência auxiliar (N, i, 2) correspondente ao par de blocos no i- ésimo pedaço de texto simples, e o bloco ímpar M[2i-1] no i-ésimo pedaço de texto simples é presumido como o bloco de texto criptografado C[2i] como um par de blocos no i-ésimo pedaço de texto criptografado. O processamento é realizado em todos os pedaços.
[0063] Adicionalmente ao processamento acima, uma marcação de autenticação T é gerada para uma soma de verificação de texto simples SUM =M[2] xor M[4] xor xor M[2m] tomando XOR para todos os blocos pares M[2], M[4], •••, M[2m] no texto simples através do uso da sequência auxiliar (N, m, 3) para gerar uma marcação de autenticação do texto simples e a função pseudoaleatória F_K com duas variáveis de entrada que têm a chave K. na Figura 1, o bloco em uma linha pontilhada corresponde ao processamento bloco para o processamento de geração de marcação de autenticação. A marcação de autenticação T é adquirida conforme a seguir através do uso de F_K((N, m, 3), *) com o uso da sequência auxiliar (N, m, 3) como a primeira variável de entrada, por exemplo. O XOR no cálculo de SUM pode ser adição em qualquer grupo, tal como adição aritmética.T = F_K((N, m, 3), SUM) Equação (2)
[0064] Os processamentos para os blocos pares e os blocos ímpares podem ser substituídos um pelo outro. Nesse caso, uma soma de verificação de texto simples pode ser gerada a partir de cada bloco ímpar. Além disso, a divisão em pedaços em unidades de dois blocos não é limitada ao mesmo. Quando a necessidade de uma sequência processamento não for relativamente alta, tal como sem cálculo em linha, um pedaço pode ser criado com o primeiro bloco e o terceiro bloco, por exemplo. A sequência auxiliar pode ser configurada de modo que diferentes valores sejam inseridos em todas as funções pseudoaleatórias na Figura enquanto a criptografia é conduzida por uma chave. Na Figura, o símbolo de + circulado indica tomar XOR.
[0065] O texto criptografado C, o vetor inicial N e a marcação de autenticação T são enviados ao lado de decodificação.
[0066] Quando o texto criptografado C a ser decodificado, o vetor inicial N, e a marcação de autenticação T forem inseridos no lado de decodificação, sequências auxiliares são primeiro determinadas de acordo com a mesma regra. Por exemplo, presumindo o texto criptografado C = (C[1], C[2], •••, C[2m]) com cada bloco tendo n bits, (N, 1, 1), (N, 1, 2), (N, 2, 1), (N, 2, 2), •••, (N, m, 1), pode se determinar que (N, m, 2) seja usado como sequências auxiliares dependendo do índice de cada bloco no texto criptografado C e pode-se determinar que (N, m, 3) seja usado como uma sequência auxiliar para gerar uma marcação de autenticação com base nas informações no vetor inicial N e um comprimento do texto criptografado.
[0067] Também no processamento de decodificação, o texto criptografado C a ser decodificado é dividido em pedaços em unidades de dois blocos, e o processamento de decodificação com o uso da estrutura de Feistel de duas rodadas configurada da função pseudoaleatória F_K(*, *) com a mesma sequência auxiliar que na criptografia introduzida é realizado em um i-ésimo pedaço de texto criptografado (C[2i-1], C[2i], em que (i = 1, •••, m)). Sendo assim, o pedaço de texto simples decodificado (M’[2i], M’[2i-1]) pode ser adquirido.
[0068] Além disso, quando o processamento igual ao processamento realizado durante criptografia for realizado com base na soma de verificação de texto simples tomando XOR para todos os blocos pares resultantes M’[2], M’[4], •••, M’[2m] no texto simples, uma marcação de autenticação de examinação de decodificação T é adquirida.
[0069] A Figura 2 é um diagrama explicativo que ilustra esquematicamente um fluxo de processamento exemplificador de um processamento de decodificação inteiro de acordo com a presente invenção. Na Figura 2, os blocos em linhas pontilhadas estão na estrutura de Feistel de duas rodadas, e correspondem aos blocos de processamento do processamento de decodificação em unidades de dois blocos. Em cada bloco de processamento, os blocos de texto simples M’[2i] e M’[2i-1] decodificados conforme a seguir são adquiridos através do uso de F_K((N, i, 1), *) com o uso da sequência auxiliar (N, i, 1) como a primeira variável de entrada e F_K((N, i, 2), *) com o uso da sequência auxiliar (N, i, 2) como a primeira variável de entrada.M’[2i — 1] = F_K((N, i, 2), C[2i-1]) xor C[2i], M’[2i] = F_K((N, i, 1), M’[2i-1]) xor C[2i-1] Equação (3)
[0070] Esses processamentos são realizados em todos os pedaços de texto criptografado. Uma marcação de autenticação de examinação de decodificação T’ é gerada para a soma de verificação de texto simples SUM’ = M[2] xor M’[4] xor xor M’[2m] para examinação de decodificação tomando XOR para todos os blocos pares M’[2], M’[4], •••, M’[2m] no texto simples decodificado através do uso da sequência auxiliar (N, m, 3) para gerar uma marcação de autenticação do texto simples decodificado e a função pseudoaleatória F_K com duas variáveis de entrada que têm a chave K. na Figura 2, o bloco em uma linha pontilhada corresponde ao bloco de processamento do processamento de geração de marcação de autenticação. A marcação de autenticação de examinação de decodificação T’ é adquirida conforme a seguir através do uso de F_K((N, m, 3), *) com o uso da sequência auxiliar (N, m, 3) como a primeira variável de entrada.T’ = F_K((N, m, 3), SUM’) Equação (4)
[0071] Quando a marcação de autenticação de examinação de decodificação T’ for adquirida, uma verificação é feita acerca de se a marcação de autenticação de entrada T é compatível com a marcação de autenticação de examinação de decodificação T’, e quando as mesmas forem compatíveis, o texto simples decodificado M’ = (M’[1], M’[2], •••, M’[2m]) é emitido. Quando as mesmas não forem compatíveis, uma mensagem de erro que indica um erro de decodificação é emitida.
[0072] Um texto criptografado pode ser corretamente decodificado no presente sistema de decodificação visto que a estrutura de Feistel de duas rodadas configura substituição para qualquer função de rodada de modo que, quando uma chave e uma variável auxiliar para uma função de criptografia forem determinadas, os pedaços de texto simples e os pedaços de texto criptografado correspondam um ao outro de maneira um para um, uma sequência auxiliar seja configurada para ser exclusivamente definida com base no vetor inicial e um comprimento do texto simples ou texto criptografado e a mesma sequência auxiliar seja usada tanto para criptografia quanto para decodificação.
[0073] Adicionalmente, o processamento inverso da própria função de rodada (o processamento de constatação de entrada de saída da função) não é exigido nos processamentos em rodadas individuais na estrutura de Feistel de duas rodadas, e o processamento inverso da função de rodada não é inteiramente exigido. No presente sistema, a função de criptografia é usada para a função de rodada, e desse modo, o processamento inverso da função de criptografia não é exigido para converter um texto simples em um texto criptografado. Além disso, o mesmo processamento é realizado tanto durante a criptografia quanto durante decodificação no processamento de geração de marcação de autenticação, e desse modo, o processamento inverso da função de criptografia não é exigido também no processamento.
[0074] A segurança do presente sistema induz à segurança da função de criptografia. Isso se deve ao fato de que o presente sistema é configurado para gerar uma marcação de autenticação com base em SUM de blocos pares aos quais a função de criptografia é aplicada duas vezes na estrutura de Feistel de duas rodadas. Quando um texto criptografado alterado for decodificado, um número aleatório, que o agressor que altera (e não conhece a chave, evidentemente) não pode prever, é altamente provável de ocorrer em qualquer um dos blocos pares como resultado da decodificação, e desse modo seu XOR, ou a soma de verificação de texto simples também não pode ser prevista. Sendo assim, a marcação de autenticação de examinação de decodificação T’, que é adquirida inserindo-se a soma de verificação de texto simples na função de criptografia, também é imprevisível.
[0075] De acordo com o presente sistema, a criptografia autenticada é alcançada somente pela função de criptografia, e desse modo, uma função de hash de chave tal como HMAC pode ser utilizada. Além disso, várias técnicas de criptografia podem ser baseadas adicionalmente à criptografia de bloco ou criptografia de hash.
[0076] De acordo com o presente sistema, os processamentos são independentes em unidades de dois blocos, e os blocos de texto simples, para os quais a soma de verificação de texto simples para marcação de autenticação também pode ser adquirida, podem ser adquiridos em processamentos de cálculo sequencial e, desse modo, o cálculo em linha pode ser realizado.
[0077] Um sistema de criptografia autenticada que aplica o sistema de criptografia autenticada para texto simples a ser dividido em blocos pares será descrito abaixo de acordo com uma primeira modalidade exemplificativa. Será descrito de maneira mais expandida, de acordo com a segunda modalidade e modalidades exemplificativas subsequentes, um sistema de criptografia autenticada que aplica o sistema de criptografia autenticada com capacidade de lidar com um caso no qual um tamanho do último bloco é menor do que um tamanho de bloco ou são causados blocos ímpares.
PRIMEIRA MODALIDADE EXEMPLIFICATIVA
[0078] Uma estrutura exemplificadora do sistema de criptografia autenticada de acordo com a primeira modalidade exemplificativa da presente invenção será descrita em referência à Figura 3, à Figura 4 e à Figura 5. A Figura 3 é um diagrama de blocos que ilustra um aparelho exemplificador fornecido no sistema de criptografia autenticada de acordo com a presente modalidade exemplificativa. Conforme ilustrado na Figura 3, o sistema de acordo com a presente modalidade exemplificativa inclui um aparelho de processamento de informações 50. O aparelho de processamento de informações 50 inclui uma unidade de computação 51, uma unidade de armazenamento 52, e uma unidade de entrada/saída 53. O aparelho de processamento de informações 50 é um computador pessoal que opera de acordo com um programa, ou similares, por exemplo. Nesse caso, a unidade de computação 51, a unidade de armazenamento 52, e a unidade de entrada/saída 53 são concebidas por CPU, memória, e vários dispositivos de entrada/saída (tais como teclado, mouse e unidade de interface de rede), respectivamente. A Figura 3 ilustra que um aparelho inclui todas a unidade de computação 51, a unidade de armazenamento 52 e a unidade de entrada/saída 53, mas a unidade de computação 51, a unidade de armazenamento 52 e a unidade de entrada/saída 53 podem ser distribuídas em uma pluralidade de dispositivos.
[0079] A Figura 4 é um diagrama de blocos que ilustra uma estrutura funcional exemplificadora do sistema de criptografia autenticada de acordo com a presente modalidade exemplificativa. Conforme ilustrado na Figura 4, o sistema de criptografia autenticada pode incluir um dispositivo de criptografia 100 que inclui um meio de criptografia 10, e um dispositivo de decodificação 200 que inclui um meio de decodificação 20. O dispositivo de criptografia 100 e o dispositivo de decodificação 200 são concebidos pelo aparelho de processamento de informações 50 conforme ilustrado na Figura 3, por exemplo.
[0080] O meio de criptografia 10 fornecido no dispositivo de criptografia 100 será descrito primeiro. O meio de criptografia 10 tem um meio de entrada 101, um meio de geração de variável auxiliar 102, um meio de criptografia de Feistel de duas rodadas 103, um meio de cálculo de marcação 104 e um meio de saída 105.
[0081] A seguir, o comprimento de um bloco será presumido em n bits a menos que seja indicado de outro modo.
[0082] O meio de entrada 101 insere um texto simples M a ser criptografado, e um vetor inicial N. O meio de entrada 101 é concebido por um dispositivo de entrada de caractere, tal como teclado. Será presumido abaixo que um texto simples M = (M[1], •••, M[2m]) que tem números pares de blocos seja inserido. Presume-se que o vetor inicial N tenha n bits para simplicidade, mas se o mesmo for menor, preenchimento apropriado é realizado ou uma função pseudoaleatória com saída de n bits e entrada de comprimento variável (que pode ser concebida por CMAC ou HMAC, por exemplo) é adicionalmente aplicada para reduzir para n bits. No presente documento, preenchimento é acoplar uma sequência fixa à cauda de uma sequência binária para alcançar assim um comprimento específico. Por exemplo, preenchimento zero ou preenchimento 10* (o primeiro é 1 seguido por 00^0) é utilizado. O último é eficaz em evitar que as sequências com diferentes comprimentos tenham o mesmo valor após o preenchimento. Nesse caso, preenchimento zero pode ser utilizado.
[0083] O meio de geração de variável auxiliar 102 gera uma variável auxiliar geralmente chamada Ajuste ou valor ajustado, que é dado a uma função pseudoaleatória no processamento de decodificação, com base nas informações no vetor inicial N e um comprimento do texto simples M. De acordo com a presente modalidade exemplificativa, uma sequência de variáveis (sequência auxiliar) conforme descrito abaixo é gerada como variáveis auxiliares. Uma sequência auxiliar é expressa por um vetor que tem três elementos em uma forma de (N, i, j) para os números inteiros positivos i e j. Quando o texto simples tiver 2m blocos, as sequências auxiliares são (N, 1, 1), (N, 1, 2), (N, 2, 1), (N, 2, 2), •••, (N, m-1, 1), (N, m-1, 2), (N, m, 1), (N, m, 2), (N, m, 3). As variáveis diferentes da última são usadas para criptografia, e somente a última é usada para gerar uma marcação de autenticação.
[0084] O meio de criptografia de Feistel de duas rodadas 103 é direcionado para realizar cada bloco processamento em uma linha pontilhada na Figura 1, e realiza criptografia dividindo-se o texto simples M em unidades de dois blocos e usando-se a função pseudoaleatória F_K(*, *) com entrada auxiliar e duas variáveis de entrada. A função pseudoaleatória F_K(*, *) com duas variáveis de entrada é uma função de saída de n-bit chaveada, na qual F_K(x, y) para x e y arbitrário é saída que não pode ser distinguida de um número aleatório por uma pessoa que não conhece a chave K.
[0085] Será descrito abaixo um caso no qual qualquer uma das sequências auxiliares é inserida na primeira variável de entrada em F_K(*, *) e uma variável n-bit à medida que um bloco de texto simples a ser criptografado é inserido na segunda. Também na presente modalidade exemplificativa, MC[i] = (M[2i-1], M[2i]) é presumido para o texto simples M = (M[1], •••, M[2m]), e MC[i] entre os mesmos é chamado i-ésimo pedaço de texto simples. Além disso, CC[i] = (C[2i-1], C[2i]) é presumido, e CC[i] entre os mesmos é chamado i-ésimo pedaço de texto criptografado.
[0086] O meio de criptografia de Feistel de duas rodadas 103 processa um pedaço de texto simples MC[i] para cada i = 1, •••, m como na equação (1), por exemplo, para adquirir assim um pedaço de texto criptografado CC[i].
[0087] Conforme anteriormente descrito, F_K(*, *) pode ser concebido por várias funções de criptografia. Por exemplo, uma função de criptografia de criptografia de bloco pode ser utilizada. Quando uma função de criptografia E(*) de n-bit criptografia de bloco for utilizada, Y = F_K((N, i, j), X) pode ser calculado de modo eficiente através do uso de criptografia de bloco estendida chamada criptografia de bloco ajustável.
[0088] Especificamente, o cálculo pode ser concebido adicionando- se Ajuste (N, i, j) e um mask_K(N, i, j) de consequência calculado a partir da chave de segredo K à entrada de criptografia de bloco através do uso do modo XEX descrito na Literatura de Não Patente 2 como na equação de conversão XEX. A equação de conversão nesse modo é expressa conforme a seguir. A equação de conversão pode ser chamada equação de conversão XE abaixo. TE_K((N, i, j), X) = E_K(X xor mask_K(N, i, j)) Equação (5)
[0089] A equação de conversão XE na equação (5) é aplicada para realizar desse modo um cálculo correspondente a Y = F((N, i, j), X). Um método específico para calcular mask_K(N, i, j) pode empregar o método a seguir, por exemplo.mask_K(N, i, j) = 2Ai 3A(j-1) L, em que L = E_K(N) Equação (6)
[0090] No presente documento, 2Ai ou 3Aj indica uma operação de potência que presume 2 ou 3 como uma constante sobre um campo finito GF(2An), e 2Ai 3Aj L indica multiplicação por (2Ai 3Aj) que presume L como um elemento sobre o campo finito GF(2An). A Figura 5 é um diagrama explicativo que ilustra esquematicamente um exemplo no qual uma função pseudoaleatória com duas variáveis de entrada usadas para a presente modalidade exemplificativa é concebida através do uso do modo XEX da criptografia de bloco. A Figura 5 ilustra uma função pseudoaleatória exemplificadora com duas variáveis de entrada concebidas no método acima. A Figura 6(a) é um diagrama explicativo que ilustra esquematicamente um fluxo de processamento exemplificador do processamento de criptografia inteiro de acordo com a presente modalidade exemplificativa quando uma função pseudoaleatória com duas variáveis de entrada for concebida através do uso do modo XEX de criptografia de bloco.
[0091] No presente documento, L é L = E_K(N) conforme indicado na oração em que na Equação (6). Portanto, cada tempo N é definido, E_K pode ser operado uma vez. Quando L não mudar e i ou j mudar sequencialmente, B = 2Ai 3Aj L pode ser calculado de modo eficiente através do uso dos resultados de cálculos passados, e desse modo L = E(N) é constatado primeiro, e então a quantidade de cálculos pode ser relacionada como quase Y = E(B xor X). Adicionalmente, uma constante sobre o campo finito GF(2An) pode ser definida em vários sistemas com o uso do modo XEX descrito na Literatura de Não Patente 2.
[0092] A equação de conversão XE é diferente da equação de conversão XEX usada no sistema OCB pelo fato de que o mask_K emitido não é adicionado ao exterior visto que o sistema OCB exige a função de decodificação TD_K de TE_K enquanto o processamento pode ser realizado somente por TE_K de acordo com a presente invenção.
[0093] Adicionalmente ao modo XEX, criptografia de bloco ajustável descrita na literatura "Kazuhiko Minematsu, "Improved Security Analysis of XEX and LRW Modes", selected Areas in Cryptography 2006, p. 96 a 113". (Literatura de Não Patente 4), ou função de criptografia Threefish de criptografia de bloco ajustável descrita na literatura "Niels ferguson, et al., "The Skein Hash Function Family", [online] 2008, Internet <URL: http://www.skein-hash.info/sites/default/files/ skein1.1.pdf">" (Literatura de Não Patente 5) pode ser utilizada.
[0094] Uma função de hash de chave tal como HMAC pode ser utilizada para F_K(*, *) como outro exemplo de realização. Nesse caso, Y = F_K((N, i, j), X) pode ser calculado realizando-se codificação sem perda apropriada em (N, i, j) e então acoplamento com X a ser inserido de HMAC.
[0095] Por exemplo, as variáveis N, i, j usadas para a sequência auxiliar podem ser expressas em binário com um comprimento fixo apropriado (tal como 128-bit) e acoplado. A Figura 7 é um diagrama explicativo que ilustra esquematicamente um exemplo no qual uma função pseudoaleatória com duas variáveis de entrada usadas na presente modalidade exemplificativa é concebida através do uso de uma função de hash de chave. A Figura 7 ilustra uma função pseudoaleatória exemplificadora com duas variáveis de entrada concebida no método acima. O símbolo "| |" na Figura 7 indica acoplamento de bits. A entrada X e a entrada auxiliar (N, i, j) são saída HMAC_K(N | | i | | j | | X).
[0096] F_K(*, *) pode ser concebido através do uso de HMAC_K em vez de E_K ilustrado na Figura 5, por exemplo.
[0097] O processamento acima é realizado em i = 1, •••, m, e o C = (C[1], •••, C[2m]) resultante é um texto criptografado.
[0098] O meio de cálculo de marcação 104 é direcionado para realizar o bloco processamento na linha pontilhada na Figura 1, e calcula uma marcação de autenticação para autenticação de mensagem através do uso de uma sequência auxiliar emitida pelo meio de geração de variável auxiliar 102 e um texto simples de entrada.
[0099] O meio de cálculo de marcação 104 de acordo com a presente modalidade exemplificativa constata primeiro uma soma de verificação de texto simples SUM usada para gerar uma marcação de autenticação através do uso dos blocos pares M[2], M[4], •••, M[2m] no texto simples conforme a seguir. XOR no cálculo de SUM pode ser adição em qualquer grupo, tal como adição aritmética.
[00100] SUM = M[2] xor M[4] xor xor M[2m] Equação (7)
[00101] Ou seja, uma soma de todos os blocos pares M[2], M[4], •••, M[2m] no texto simples é constatada como SUM. Então, o processamento expresso na Equação (2) é realizado na soma de verificação de texto simples constatada através do uso da função pseudoaleatória F_K(*, *) com duas variáveis de entrada e a sequência auxiliar (N, m, 3) para gerar uma marcação de autenticação, constatando assim uma marcação de autenticação T.
[00102] O meio de saída 105 emite o texto criptografado C = (C[1], •••, C[2m]) emitido pelo meio de criptografia de Feistel de duas rodadas 103, e a marcação de autenticação T emitida pelo meio de cálculo de marcação 104. O meio de saída 105 pode emitir a uma aplicação de nível superior que solicita criptografia ou pode emitir a um caminho de comunicação por meio de um dispositivo de comunicação ou similares, por exemplo. Além disso, o mesmo pode emitir a um visor de computador ou impressora.
[00103] O meio de decodificação 20 fornecido no dispositivo de decodificação 200 será descrito abaixo. O meio de decodificação 20 tem um meio de entrada 201, um meio de geração de variável auxiliar 202, um meio de decodificação de Feistel de duas rodadas 203, um meio de cálculo de marcação de examinação de decodificação 204, um meio de determinação 205, e um meio de saída 206.
[00104] O meio de entrada 201 emite um texto criptografado C a ser decodificado, um vetor inicial N, e uma marcação de autenticação T associada ao texto criptografado. De modo similar ao meio de criptografia 10, será presumido abaixo que um texto criptografado C = (C[1], •••, C[2m]) que uma pluralidade de blocos seja inserido. Presume- se que o vetor inicial N tenha n bits para simplicidade, mas se o mesmo for menor, preenchimento apropriado é realizado, ou uma função pseudoaleatória com saída de n-bit é adicionalmente aplicada para reduzir para n bits.
[00105] O meio de geração de variável auxiliar 202 gera uma variável auxiliar dada a uma função pseudoaleatória no processamento de decodificação com base nas informações no vetor inicial N e um comprimento do texto criptografado C. De acordo com a presente modalidade exemplificativa, o mesmo emite a mesma variável auxiliar como o meio de geração de variável auxiliar 102 no meio de criptografia 10.
[00106] O meio de decodificação de Feistel de duas rodadas 203 corresponde a cada bloco em uma linha pontilhada na Figura 2 e decodifica o texto criptografado C dividindo-se o mesmo em unidades de dois blocos e através do uso das sequências auxiliares emitidas pelo meio de geração de variável auxiliar 202 e pela função pseudoaleatória F_K(*, *) com duas variáveis de entrada. No presente documento, a função pseudoaleatória F_K(*, *) com duas variáveis de entrada usada pelo meio de decodificação de Feistel de duas rodadas 203 é igual a F_K(*, *) usado pelo meio de criptografia de Feistel de duas rodadas 103 no meio de criptografia 10.
[00107] O meio de decodificação de Feistel de duas rodadas 203 processa o pedaço de texto criptografado CC[i] para cada i = 1, •••, m as na Equação (3), por exemplo, adquirindo assim o pedaço de texto simples decodificado MC’[i] = (M’[2i-1], M’[2i]).
[00108] O processamento acima é realizado em cada i de modo que o M’ = (M’[1], ••, M’[2m]) resultante seja decodificado no texto simples.
[00109] O meio de cálculo de marcação de examinação de decodificação 204 corresponde ao bloco em uma linha pontilhada na Figura 2, e calcula uma marcação de autenticação de examinação de decodificação T’ para examinar um resultado de decodificação através do uso da sequência auxiliar emitida pelo meio de geração de variável auxiliar 202 e o texto simples M’ decodificado pelo meio de decodificação de Feistel de duas rodadas 203. No presente documento, a função pseudoaleatória F_K(*, *) com duas variáveis de entrada usada pelo meio de cálculo de marcação de examinação de decodificação 204 é igual a F_K(**, *) usado pelo meio de cálculo de marcação 104 no meio de criptografia 10.
[00110] O meio de cálculo de marcação de examinação de decodificação 204 constata primeiro uma soma de verificação de texto simples SUM’ para examinação de decodificação com o uso do texto simples decodificado M’ através do uso dos blocos pares M’[2], M’[4], •••, M’[2m] no texto simples decodificado conforme a seguir.SUM’ = M’[2] xor M’[4] xor xor M’[2m] Equação (8)
[00111] Ou seja, uma soma de todos os blocos pares M’[2], M’[4], •••, M’[2m] no texto simples decodificado é constatada como SUM’. Sendo assim, o processamento indicado na Equação (4) é realizado na soma de verificação de texto simples SUM’ constatada para examinação de decodificação através do uso da função pseudoaleatória F_K(*, *) com duas variáveis de entrada, e a sequência auxiliar (N, m, 3) para gerar uma marcação de autenticação, constatando assim uma marcação de autenticação T’. XOR no cálculo de SUM pode ser adição em qualquer grupo, tal como adição aritmética.
[00112] A Figura 6(b) é um diagrama explicativo que ilustra esquematicamente um fluxo de processamento exemplificador do processamento de decodificação inteiro de acordo com a presente modalidade exemplificativa quando uma função pseudoaleatória com duas variáveis de entrada for concebida através do uso do modo XEX da criptografia de bloco. Também no exemplo ilustrado na Figura 6(b), pode-se observar que o texto simples decodificado M’ e a marcação de autenticação de examinação de decodificação T’ podem ser adquiridos pelo processamento igual ao processamento de criptografia ilustrado na Figura 6(a) somente mudando-se um parâmetro dado à função pseudoaleatória com duas variáveis de entrada do exterior.
[00113] O meio de determinação 205 compara a marcação de autenticação de entrada T com a marcação de autenticação de examinação de decodificação T’ gerada pelo meio de cálculo de marcação de examinação de decodificação 204, e quando as mesmas forem compatíveis, determina que a decodificação foi bem-sucedida presumindo que o texto simples decodificado M’ = (M’[1], •••, M’[2m]) emitido pelo meio de decodificação de Feistel de duas rodadas 203 esteja correto. Por outro lado, quando T’ e T forem diferentes um do outro, é determinado que a decodificação falhou presumindo que (N, C, T) inserido pelo meio de entrada 201 é alterado.
[00114] Quando o meio de determinação 205 determinar que a decodificação foi bem-sucedida como resultado da determinação, o meio de saída 206 emite o texto simples decodificado M’ = (M’[1], •••, M’[2m]). Por outro lado, quando for determinado que a decodificação falhou, o texto simples decodificado M’ = (M’[1], •••, M’[2m]) não é emitido, mas um erro que indica um erro de decodificação é emitido. O resultado é emitido a uma aplicação de nível superior, um caminho de comunicação, um dispositivo de exibição, uma impressora ou similares.
[00115] De acordo com a presente modalidade exemplificativa, o meio de entrada 101 e o meio de entrada 201 são concebidos por vários dispositivos de entrada, tais como teclado, mouse ou unidade de interface de rede fornecida no dispositivo e suas unidades de controle. Além disso, o meio de saída 105 e o meio de saída 206 são concebidos por vários dispositivos de saída tais como dispositivo de exibição, unidade de dispositivo de interface com impressora, ou unidade de interface de rede fornecida no dispositivo, e suas unidades de controle. O meio de geração de variável auxiliar 102, o meio de geração de variável auxiliar 202, o meio de criptografia de Feistel de duas rodadas 103, o meio de decodificação de Feistel de duas rodadas 203, o meio de cálculo de marcação 104, o meio de cálculo de marcação de examinação de decodificação 204, e o meio de determinação 205 são concebidos pela CPU que opera de acordo com um programa fornecido no dispositivo, por exemplo.
[00116] Embora não ilustrado, o meio de criptografia 10 e o meio de decodificação 20 incluem um meio de controle para controlar o processamento de criptografia ou o processamento de decodificação tal como chamar cada meio conforme apropriado.
[00117] As operações de acordo com a presente modalidade exemplificativa serão descritas abaixo. A Figura 8 e a Figura 9 são os fluxogramas que ilustram operações exemplificadoras do sistema de criptografia autenticada de acordo com a presente modalidade exemplificativa. A Figura 8 é um fluxograma que ilustra uma operação de criptografia exemplificadora, e a Figura 9 é um fluxograma que ilustra uma operação de decodificação exemplificadora.
[00118] A operação de criptografia de acordo com a presente modalidade exemplificativa será descrita primeira em referência à Figura 8. No exemplo ilustrado na Figura 8, o meio de entrada 101 primeiro insere um texto simples M = (M[1], •••, M[2m]) que tem números pares de blocos a serem criptografados, e um vetor inicial N (etapa S101).
[00119] O meio de geração de variável auxiliar 102 então gera sequências auxiliares com base nas informações no vetor inicial N e um comprimento do texto simples M (etapa S102). No presente exemplo, presumindo 2m blocos divididos, (N, 1, 1,), (N, 1, 2), (N, 2, 1), (N, 2, 2), •••, (N, m-1, 1), (N, m-1, 2), (N, m, 1), (N, m, 2), (N, m, 3) são output. Todas as sequências auxiliares não precisam ser geradas de uma vez, e se qual sequência auxiliar empregar for anteriormente determinada, uma sequência auxiliar dependendo de uma função de criptografia pode ser gerada e emitida cada vez que a função de criptografia é chamada.
[00120] O meio de criptografia de Feistel de duas rodadas 103 então divide o texto simples M em unidades de dois blocos e conduz criptografia através do uso das sequências auxiliares gerada pelo meio de geração de variável auxiliar 102 e uma função pseudoaleatória F_K(*, *) predeterminada, constatando assim um texto criptografado C = (C[1], •••, C[2m]) (etapas S103 a S106). Depois de inicializar primeiro i em i = 1 (etapa S103), por exemplo, o meio de criptografia de Feistel de duas rodadas 103 pode realizar repetidamente o processamento de criptografia de Feistel em unidades de dois blocos ou o processamento de executar a equação (1) (etapa S104) no pedaço de texto simples MC[i] = (M[2i-1], M[2i]) indicada por i até que ++i > m seja cumprido.
[00121] O meio de cálculo de marcação 104 então calcula uma soma de verificação de texto simples SUM através do uso dos blocos pares no texto simples M (etapa S107), e calcula uma marcação de autenticação T através do uso do SUM resultante e a sequência auxiliar (N, m, 3) para gerar uma marcação de autenticação (etapa S108).
[00122] Finalmente, o meio de saída 105 emite o texto criptografado resultante C e a marcação T (etapa S109).
[00123] A operação de decodificação de acordo com a presente modalidade exemplificativa será descrita abaixo em referência à Figura 9. No exemplo ilustrado na Figura 9, o meio de entrada 201 primeiro emite um texto criptografado C = (C[1], •••, C[2m]) com números pares de blocos a serem decodificados, um vetor inicial N, e uma marcação de autenticação T (etapa S201).
[00124] O meio de geração de variável auxiliar 202 então gera sequências auxiliares com base nas informações no vetor inicial N e em um comprimento do texto criptografado C (etapa S202). No presente exemplo, presumindo 2m blocos divididos, (N, 1, 1), (N, 1, 2), (N, 2, 1), (N, 2, 2), •••, (N, m-1, 1), (N, m-1,2), (N, m, 1), (N, m, 2), (N, m, 3) são emitidos. Todas as sequências auxiliares não precisam ser geradas de uma vez, se for anteriormente determinado empregar qual sequência auxiliar, uma sequência auxiliar dependendo de uma função de criptografia pode ser gerada e emitida cada vez que a função de criptografia for chamada.
[00125] O meio de decodificação de Feistel de duas rodadas 203 então divide o texto criptografado C em unidades de dois blocos, e o decodifica através do uso das sequências auxiliares geradas pelo meio de geração de variável auxiliar 202 e uma função pseudoaleatória F_K(*, *) predeterminada, constatando assim um texto simples decodificado M’ = (M’[1], •••, M’[2m]) (etapas S203 a S206). Depois de inicializar primeiro i em i = 1 (etapa S203), por exemplo, o meio de decodificação de Feistel de duas rodadas 203 pode realizar repetidamente o processamento de decodificação de Feistel em unidades de dois blocos ou o processamento de executar a Equação (3) (etapa S204) no pedaço de texto criptografado CC[i] = (C[2i-1], C[2i]) indicado por i até que ++i > m seja cumprido.
[00126] O meio de cálculo de marcação de examinação de decodificação 204 então calcula uma soma de verificação de texto simples SUM’ para examinação de decodificação através do uso do texto simples decodificado M’ (etapa S207), e calcula uma marcação de autenticação de examinação de decodificação T’ através do uso da SUM’ resultante e a sequência auxiliar (N, m, 3) para gerar uma marcação de autenticação (etapa S208).
[00127] O meio de determinação 205 então compara a marcação de autenticação de entrada T com a marcação de autenticação de examinação de decodificação T’ (etapa S209), e quando as mesmas forem compatíveis, determina que a decodificação foi bem-sucedida, e quando as mesmas não são compatíveis, determina que a decodificação falhou.
[00128] Por fim, o meio de saída 206 emite o texto simples decodificado M’ ou uma mensagem de erro com base em um resultado de determinação do meio de determinação 205. O meio de saída 206 emite o texto simples decodificado M’ quando a decodificação foi bem- sucedida (etapa S210), e emite uma mensagem de erro quando a decodificação falhou (etapa S211) como resultado da determinação pelo meio de determinação 205.
[00129] Foi descrito acima o caso no qual o dispositivo de criptografia e o dispositivo de decodificação são concebidos por diferentes dispositivos, mas conforme ilustrado na Figura 10, um dispositivo pode incluir tanto o meio de criptografia 10 quanto o meio de decodificação 20. Nesse caso, um meio de criptografia autenticada 30 que inclui o meio de criptografia 10 e o meio de decodificação 20 é fornecido, e no meio de criptografia autenticada 30, o meio de decodificação 20 pode empregar o meio de geração de variável auxiliar 102, o meio de criptografia de Feistel de duas rodadas 103, e o meio de cálculo de marcação 104 no meio de criptografia 10 em vez do meio de geração de variável auxiliar 202, o meio de decodificação de Feistel de duas rodadas 203, e o meio de cálculo de marcação de examinação de decodificação 204. Também quando um dispositivo incluir tanto o meio de criptografia 10 quanto o meio de decodificação 20, cada meio pode ser separadamente montado em uma pluralidade de dispositivos.
[00130] Quando o meio de criptografia 10 e o meio de decodificação 20 compartilharem o meio de geração de variável auxiliar 102, um originador de chamada pode ser configurado para designar um vetor inicial ou comprimento, por exemplo. De modo similar, quando o meio de criptografia de Feistel de duas rodadas 103 for compartilhado, um originador de chamada pode ser configurado para designar a entrada na função pseudoaleatória F_K(*, *) superior com duas variáveis de entrada e inserida na função pseudoaleatória F_K(*, *) inferior com duas variáveis de entrada, por exemplo. De modo similar, quando o meio de cálculo de marcação 104 for compartilhado, um originador de chamada pode ser configurado para designar uma soma de verificação de texto simples, por exemplo.
[00131] Conforme descrito acima, de acordo com a presente modalidade exemplificativa, criptografia autenticada de alta velocidade e compacta pode ser concebida. Isso se deve ao fato de que o sistema de criptografia autenticada de acordo com a presente invenção conduz criptografia e decodificação chamando uma função pseudoaleatória F_K(*, *) com duas variáveis de entrada S + 1 vezes para um texto simples com S blocos.
[00132] Por exemplo, quando uma função de criptografia E(*) da criptografia de bloco for utilizada, a função pseudoaleatória F_K(*, *) com duas variáveis de entrada pode ser concebida convertendo-se a função de criptografia E na função de criptografia TE(*, *) para criptografia de bloco ajustável, mas quando o sistema de conversão E - > TE for utilizado, a função de criptografia E(*) da criptografia de bloco é chamada somente S + h vezes de modo que tanto criptografia quanto decodificação possam ser concebidas.
[00133] Por outro lado, a função de criptografia precisa ser chamada 2 x 2m ou mais vezes no sistema de criptografia autenticada de dois passos existente. No sistema OCB como sistema de criptografia autenticada de um passo, o número de vezes de chamada é quase tanto quanto S + 2 para S + 3 vezes de acordo com a presente invenção, mas a função de decodificação de criptografia de bloco é exigida no processamento de decodificação, e desse modo um aumento do uso de ROM/RAM na montagem de software ou escala de circuito na montagem de hardware é causado.
[00134] Com o sistema de criptografia autenticada de acordo com a presente invenção, os processamentos paralelos são completamente possíveis em unidades de dois blocos, realizando assim maior velocidade de montagem de software ou montagem de hardware no CPU de múltiplos núcleos.
SEGUNDA MODALIDADE EXEMPLIFICATIVA
[00135] O sistema de criptografia autenticada de acordo com uma segunda modalidade exemplificativa se dá de modo que um objeto a ser criptografado ou decodificado tenha números pares de blocos e um comprimento do último bloco é menor do que n bits. A estrutura básica é igual a das primeiras modalidades exemplificativas, e desse modo, somente as diferenças serão descritas abaixo.
[00136] Nos exemplos a seguir, presumindo um bloco que tem n bits, um comprimento de s bits do último bloco M[2m] em um texto simples que tem blocos pares é presumido em s < n.
[00137] Na presente modalidade exemplificativa, uma segunda sequência auxiliar para gerar uma marcação de autenticação será novamente definida. No exemplo a seguir, (N, m, 4) é novamente definido.
[00138] No processamento de criptografia de Feistel e o processamento de decodificação de Feistel em unidades de dois blocos, um m-ésimo pedaço é processado conforme a seguir. Um i = 1, •••, m- 1-ésimo pedaço pode ser processado de modo similar como na primeira modalidade exemplificativa.
[00139] Em primeiro lugar, o processamento de criptografia aplica a função pseudoaleatória F_K(*, *) com duas variáveis de entrada que é dada a sequência auxiliar (N, m, 1) a um bloco de texto simples M[2m- 1] como um bloco ímpar em um m-ésimo pedaço de texto simples. Então, a saída resultante é presumida como saída intermediária Z, e XOR de uma sequência binária de s-bit Z_s na qual s bits são retirados de uma porção fixa na saída intermediária z, e um bloco de texto simples M[2m] como par de blocos no m-ésimo pedaço de texto simples é tomado, constatando assim um bloco de texto criptografado C_s[2m] como par de blocos em um m-ésimo pedaço de texto criptografado. C_s[*] indica que o tamanho do bloco de texto criptografado correspondente é s bits.
[00140] Além disso, s ^ o preenchimento n bit é realizado no bloco de texto criptografado de s-bit C_s[2m] obtido desse modo, e a função pseudoaleatória F_K(*, *) com duas variáveis de entrada que é dada a sequência auxiliar (N, m, 2) é aplicada ao C_n[2m] resultante, e então XOR com o bloco de texto simples M[2m-1] como bloco ímpar no m- ésimo pedaço de texto simples é tomado, constatando assim um bloco de texto criptografado C[2m-1] como bloco ímpar no m-ésimo pedaço de texto criptografado. De acordo com a presente modalidade exemplificativa, o m-ésimo pedaço de texto criptografado CC[m] = (C[2m-1], C_s[2m]) é adquirido dessa maneira. Um processamento exemplificador de aquisição de um m-ésimo pedaço de texto criptografado de acordo com a presente modalidade exemplificativa é expresso da seguinte maneira.C_s[2m] = cut_s(Z) xor M[2m], C[2m-1] = F_K((N, m, 2), pad_n(C_s[2m]))) xor M[2m-1] em que Z = F_K((N, m, 1), M[2m-1]) Equação (9)
[00141] cut_s(a) indica um processamento de retirada de s bits de uma porção fixa na sequência binária A. cut_s(a) pode ser msb_s(A), por exemplo. msb_s(A) é um processamento de retirada de s bits do nível mais superior na sequência binária A. Além disso, pad_n(a) indica um processamento de preenchimento através do uso de uma sequência de bits fixa de modo que a sequência binária um tenha n bits. No presente exemplo, preenchimento é presumido como preenchimento 10*. Presumindo o preenchimento 10*, é possível evitar que uma sequência com um diferente comprimento tenha o mesmo valor após o preenchimento. Qualquer forma na qual sequências com diferentes comprimentos não têm o mesmo valor após o preenchimento pode ser utilizada sem limitação ao exemplo acima.
[00142] Uma marcação de autenticação T pode ser constatada conforme a seguir. Em primeiro lugar, uma soma de verificação de texto simples SUM é constatada através do uso dos blocos pares M[2], •••, M[2(m-1)] de até um m-1-ésimo pedaço de texto simples, a saída intermediária Z adquirida no processamento acima, e C_n[2m] no qual um bloco de texto criptografado C_s[2m] como par de blocos no m- ésimo pedaço de texto criptografado adquirido no processamento acima é preenchida para n bits. Conforme indicado na equação (10) a seguir, por exemplo, a mesma é constatada tomando-se seu XOR. SUM = M[2] xor M[4] xor xor M[2m-2] xor C_n[2m] xor Z Equação (10)
[00143] A soma de verificação de texto simples SUM é diferente da soma de verificação de texto simples gerada de acordo com a primeira modalidade exemplificativa pelo fato de que "C_n[2m] xor Z" é usado em vez de M[2m].
[00144] Uma função pseudoaleatória F_K((N, m, 4), *) com duas variáveis de entrada com o uso da variável auxiliar (N, m, 4) é aplicada à soma de verificação de texto simples SUM adquirida desse modo, constatando assim uma marcação de autenticação T.
[00145] A Figura 11 é um diagrama explicativo que ilustra esquematicamente um fluxo de processamento exemplificador de um processamento de criptografia inteiro de acordo com a presente modalidade exemplificativa. Conforme ilustrado na Figura 11, o processamento de criptografia de acordo com a presente modalidade exemplificativa é igual ao da primeira modalidade exemplificativa exceto pela sequência auxiliar usada para gerar uma marcação de autenticação, o processamento de criptografia em pedaços que incluem blocos pares com um tamanho de bit menor do que n, e o método de cálculo de verificação de soma de texto simples. Na Figura 11, "C_s[2m] | | 10*" indica um resultado obtido realizando-se preenchimento 10* em C_s[2m].
[00146] O meio de criptografia 10 de acordo com a presente modalidade exemplificativa pode se dar de modo que quando o último bloco M[2m] em um texto simples que tem blocos pares tiver s(s < n) bits, o meio de geração de variável auxiliar 102 gere as sequências auxiliares (N, 1, 1), (N, 1, 2), (N, 2, 1), (N, 2, 2), •••, (N, m, 1), (N, m, 2), (N, m, 4), e pode incluir um segundo meio de criptografia de Feistel de duas rodadas para realizar o processamento acima em um m-ésimo pedaço de texto simples e emitir um pedaço de texto criptografado CC[m] e saída intermediária Z, e um segundo meio de cálculo de marcação para calcular uma marcação de autenticação T no processamento acima. Alternativamente, em vez de fornecer o segundo meio de criptografia de Feistel de duas rodadas e o segundo meio de cálculo de marcação, o meio de criptografia de Feistel de duas rodadas 103 e o meio de cálculo de marcação 104 podem comutar e realizar as operações de acordo com a primeira modalidade exemplificativa e as operações acima dependendo de um tamanho de um texto simples.
[00147] No processamento de decodificação, em primeiro lugar, o preenchimento s ^ n bit é realizado em um bloco de texto criptografado de s-bit C_s[2m] como par de blocos em um m-ésimo pedaço de texto criptografado. Então, uma função pseudoaleatória F_K(*, *) com duas variáveis de entrada que é dada a sequência auxiliar (N, m, 2) é aplicada ao bloco de n-bit de texto criptografado C_n[2m] bits adquirido pelo preenchimento. XOR de um resultado do mesmo e o bloco de texto criptografado C[2m-1] correspondente a um bloco ímpar no m-ésimo pedaço de texto criptografado é tomado, constatando assim um bloco de texto simples decodificado M’[2m-1] correspondente ao bloco ímpar no m-ésimo pedaço de texto simples decodificado.
[00148] Então, a função pseudoaleatória F_K(*, *) com duas variáveis de entrada que é dada a sequência auxiliar (N, m, 1) é aplicada ao bloco de texto simples decodificado M’[2m-1] adquirido desse modo. Então, a saída resultante é presumida como saída intermediária Z’ for decodificação, e XOR de uma sequência binária s-bit Z_s’ no qual s bits são retirados de uma porção fixa na saída intermediária Z’ para decodificação, e o bloco de texto criptografado C_s[2m] como par de blocos no m-ésimo pedaço de texto criptografado é retirado, constatando assim um bloco de texto simples decodificado M_s’[2m] correspondente ao par de blocos no m-ésimo pedaço de texto simples decodificado. M_s’[*] indica que o tamanho do bloco de texto simples decodificado correspondente é s bits. De acordo com a presente modalidade exemplificativa, um m-ésimo pedaço de texto simples decodificado MC’[m] = (M’[2m-1], M_s’[2m]) é adquirido dessa maneira. Um processamento exemplificador de aquisição de um m-ésimo pedaço de texto simples decodificado de acordo com a presente modalidade exemplificativa é expresso conforme a seguir. M’[2m-1] = F_K((N, m, 2), pad_n(C_s[2m]))) xor C[2m-1], M_s’[2m] = cut_s(Z’) xor C_s[2m] em que Z’ = F_K((N, m, 1), M’[2m-1]) Equação (11)
[00149] Uma marcação de autenticação de examinação de decodificação pode ser constatada conforme a seguir. Em primeiro lugar, uma soma de verificação de texto simples SUM’ para examinação de decodificação com o uso de um texto simples decodificado é constatada através do uso dos blocos pares M’[2], •••, M’[2(m-1)] de até um m-1-ésimo pedaço de texto simples decodificado, a saída intermediária Z’ para decodificação adquirida no processamento acima, e C_n[2m] obtida preenchendo-se o bloco de texto criptografado C_s[2m] como um par de blocos no m-ésimo pedaço de texto criptografado de entrada para n bits. Por exemplo, a mesma é constatada tomando-se seu XOR conforme indicado na seguinte equação (12).SUM’ = M’[2] xor M’[4] xor xor M’[2m-2] xor C_n[2m] xor Z’ Equação (12)
[00150] A soma de verificação de texto simples SUM’ é diferente da soma de verificação de texto simples para examinação de decodificação gerada de acordo com a primeira modalidade exemplificativa pelo fato de que "C_n[2m] xor Z’" é usado em vez de M’[2m].
[00151] Uma função pseudoaleatória F_K((N, m, 4), *) com duas variáveis de entrada que tem a sequência auxiliar (N, m, 4) é aplicada a soma de verificação de texto simples SUM' adquirida desse modo para examinação de decodificação, calculando assim uma marcação de autenticação de examinação de decodificação T’.
[00152] A Figura 12 é um diagrama explicativo que ilustra esquematicamente um fluxo de processamento exemplificador de um processamento de decodificação inteiro de acordo com a presente modalidade exemplificativa. Conforme ilustrado na Figura 12, o processamento de decodificação de acordo com a presente modalidade exemplificativa pode igual ao da primeira modalidade exemplificativa exceto pela sequência auxiliar para gerar uma marcação de autenticação, o processamento de decodificação em pedaços que incluem blocos pares que tem um tamanho de bit menor do que n, e o método de cálculo de soma de verificação de texto simples de examinação de decodificação. Na Figura 12, "C_s[2m] | | 10*" indica um resultado obtido realizando-se preenchimento 10* em C_s[2m].
[00153] O meio de decodificação 20 de acordo com a presente modalidade exemplificativa pode incluir um segundo meio de decodificação de Feistel de duas rodadas para, quando o último bloco C[2m] em um texto criptografado que tem blocos pares é s (s < n) bits, emitir um pedaço de texto simples MC’ decodificado realizando-se o processamento acima em um m-ésimo pedaço de texto criptografado, e saída intermediária Z’ para decodificação, e um segundo meio de cálculo de marcação de examinação de decodificação para calcular uma marcação de autenticação de examinação de decodificação T’ no processamento acima, e o meio de geração de variável auxiliar 202 pode ser configurado para gerar as sequências auxiliares (N, 1, 1), (N, 1,2), (N, 2, 1), (N, 2, 2), •••, (N, m, 1), (N, m, 2), (N, m, 4). Além disso, o meio de decodificação de Feistel de duas rodadas 203 e o meio de cálculo de marcação de examinação de decodificação 204 anteriormente descrito pode ser configurado para comutar e realizar as operações de acordo com a primeira modalidade exemplificativa e as operações acima dependendo de um tamanho de um texto simples.
[00154] Também na presente modalidade exemplificativa, o processamento de criptografia e o processamento de decodificação em um m-ésimo bloco são somente comutados entre o estágio superior e o estágio inferior, e desse modo, se o estágio superior e o estágio inferior forem separados em partes, os mesmos podem ser compartilhados entre o processamento de criptografia e o processamento de decodificação. Também para gerar uma marcação de autenticação, se um parâmetro a ser dado for designado em um originador de chamada como na primeira modalidade exemplificativa, o mesmo pode ser compartilhado entre o mesmo.
[00155] A presente modalidade exemplificativa também é configurada de modo que se a entrada auxiliar e uma chave forem definidas, os pedaços de texto simples e os pedaços de texto criptografado estejam em correspondência de um para um e desse modo o último pedaço possa ser corretamente decodificado. Além disso, a própria função de criptografia F_K não precisa ser submetida ao processamento inverso nos processamentos em rodadas individuais na estrutura de Feistel, e uma marcação de autenticação de examinação de decodificação é constatada no mesmo método que o processamento de criptografia também na presente modalidade exemplificativa, e desse modo, a presente modalidade exemplificativa é igual à da primeira modalidade exemplificativa pelo fato de que a própria função de criptografia F_K não precisa ser inteiramente submetida ao processamento inverso.
TERCEIRA MODALIDADE EXEMPLIFICATIVA
[00156] O sistema de criptografia autenticada de acordo com uma terceira modalidade exemplificativa se dá de modo que um objeto a ser criptografado ou decodificado tenha números ímpares de blocos. A estrutura básica é igual à da primeira modalidade exemplificativa, e desse modo, somente as diferenças serão descritas abaixo.
[00157] De acordo com a presente modalidade exemplificativa, quando o número de blocos em um texto simples for ímpar (2m-1) presumindo um bloco que tem n bits, e um comprimento de s bits do último bloco é s < n, a criptografia autenticada é realizada conforme a seguir.
[00158] A terceira e a quarta sequências auxiliares para gerar uma marcação de autenticação serão novamente definidas. Nos exemplos a seguir, (N, m, 5) e (N, m, 6) são novamente definidos. Para um texto simples que tem blocos ímpares, a sequência auxiliar (N, m, 2) correspondente ao par de blocos no último pedaço não é exigida.
[00159] No processamento de criptografia de Feistel e o processamento de decodificação de Feistel em unidades de dois blocos, um m-ésimo pedaço é processado conforme a seguir. Adicionalmente, i = 1, •••, m-1-ésimo pedaço pode ser processado como na primeira modalidade exemplificativa.
[00160] No processamento de criptografia, uma sequência binária de n-bit feita totalmente de zero é preparada, e uma função pseudoaleatória F_K(*, *) com duas variáveis de entrada que é dada a sequência auxiliar (N, m, 1) é aplicada à sequência binária. XOR de uma sequência binária s-bit Z_s na qual s bits são retirados de uma porção fixa na saída resultante, e um bloco de texto simples s-bit M_s[2m-1] como o último bloco no texto simples como um bloco ímpar em um m- ésimo pedaço de texto simples é tomado, constatando assim um bloco de texto criptografado C_s[2m-1] correspondente ao bloco ímpar no m- ésimo pedaço de texto criptografado ou no último bloco no texto criptografado.
[00161] De acordo com a presente modalidade exemplificativa, um m-ésimo pedaço de texto criptografado CC[m] = (C_s[2m-1]) é adquirido dessa maneira. Um processamento exemplificador de aquisição de um m-ésimo pedaço de texto criptografado de acordo com a presente modalidade exemplificativa é expresso conforme a seguir.C_s[2m-1] = cut_s(F_K((N, m, 1), 0An)) xor M_s[2m-1] Equação (13)
[00162] Quando o tamanho do último bloco for s = n, cut_s() é omitido e o processamento na equação (14) a seguir é realizado para adquirir assim CC[m] = (C[2m-1]).C[2m-1] = F_K((N, m, 1), 0An) xor M[2m-1] Equação (14)
[00163] Uma marcação de autenticação T é constatada conforme a seguir. De acordo com a presente modalidade exemplificativa, se o tamanho do último bloco for s = n, uma soma de verificação de texto simples SUM é constatada através do uso dos blocos pares M[2], •••, M[2(m-1)] de até um m-1-ésimo pedaço de texto simples, e um bloco de texto simples M[2m -1] como o último bloco. Por exemplo, a mesma é constatada tomando-se seu XOR conforme expresso na equação (15) a seguir. SUM = M[2] xor M[4] xor ••• xor M[2m-2] xor M[2m-1] Equação (15)
[00164] Por outro lado, quando o tamanho do último bloco for s < n, uma soma de verificação de texto simples SUM é constatada através do uso dos blocos pares M[2], •••, M[2(m-1)] de até um m-1-ésimo pedaço de texto simples, e M_n[2m-1] obtida preenchendo-se o bloco de texto simples s-bit M_s[2m-1] como o último bloco para n bits. Por exemplo, a mesma é constatada tomando-se seu XOR conforme expresso na equação (16) a seguir.SUM = M[2] xor M[4] xor • xor M[2m-2] xor pad_n(M_s[2m-1]) Equação (16)
[00165] A soma de verificação de texto simples SUM é diferente da soma de verificação de texto simples gerada de acordo com a primeira modalidade exemplificativa pelo fato de que M_n[2m-1] (M[2m-1] ou M_s[2m-1] é estendido a n bits) é usado em vez de M[2m].
[00166] Uma função pseudoaleatória F_K((N, m, 5), *) com duas variáveis de entrada que têm a sequência auxiliar (N, m, 5) é aplicada à soma de verificação de texto simples SUM adquirida desse modo em s = n, e uma função pseudoaleatória F_K((N, m, 6), *) com duas variáveis de entrada que tem a sequência auxiliar (N, m, 6) é aplicada à mesma em s < n, constatando assim uma marcação de autenticação T.
[00167] A Figura 13 é um diagrama explicativo que ilustra esquematicamente um fluxo de processamento exemplificador de um processamento de criptografia inteiro de acordo com a presente modalidade exemplificativa. Conforme ilustrado na Figura 13, o processamento de criptografia de acordo com a presente modalidade exemplificativa é igual ao da primeira modalidade exemplificativa exceto pelo processamento de criptografia em um m-ésimo pedaço e pelo processamento de geração de marcação de autenticação. Na Figura 13, "M_s[2m-1] | | 10*" indica um resultado obtido realizando-se preenchimento 10* em um bloco de texto simples s-bit M_s[2m]. A Figura 13 ilustra o caso no qual o tamanho do último bloco é s < n, mas no caso de s = n, o corte no processamento em um m-ésimo bloco ("cut_s" na Figura) e o preenchimento no processamento de geração de marcação de autenticação ("| | 10*" na Figura) pode ser omitido. No caso de s = n, M_s[m-1] = M[m-1] e C_s[2m-1] = C[2m-1] são estabelecidos, e mesmo se cut_s() ou pad_n() for executado, nenhum processamento é substancialmente realizado, e desse modo, um problema não é particularmente causado sem omitir cut_s() ou pad_n().
[00168] O meio de criptografia 10 de acordo com a presente modalidade exemplificativa pode se dar de modo que, quando um texto simples tiver 2m - 1 blocos, o meio de geração de variável auxiliar 102 gere as sequências auxiliares (N, 1, 1), (N, 1, 2), (N, 2, 1), (N, 2, 2), •••,(N, m, 1), (N, m, 5), (N, m, 6) e possa incluir um meio de criptografia de Feistel de uma rodada para realizar o processamento acima em um m- ésimo pedaço de texto simples e emitir um pedaço de texto criptografado CC[m] = (C_s[2m-1]), e um terceiro meio de cálculo de marcação para calcular uma marcação de autenticação T no processamento acima. Além disso, o meio de criptografia de Feistel de duas rodadas 103 e o meio de cálculo de marcação 104 podem ser configurados para comutar e realizar as operações de acordo com a primeira modalidade exemplificativa e as operações acima dependendo de um tamanho de um texto simples em vez de fornecer o meio de criptografia de Feistel de uma rodada e o terceiro meio de cálculo de marcação. Se o meio de geração de variável auxiliar 102, o meio de criptografia de Feistel de duas rodadas 103, e o meio de cálculo de marcação 104 forem configurados para comutar e realizar as operações de acordo com a primeira modalidade exemplificativa e as operações de acordo com a segunda modalidade exemplificativa dependendo de um tamanho de um texto simples, pode-se lidar com qualquer caso com números pares de blocos, números ímpares de blocos, ou o último bloco que tem um tamanho menor do que n.
[00169] Também no processamento de decodificação, uma sequência binária de n-bit feita toda de zero é preparada, e uma função pseudoaleatória F_K(*, *) com duas variáveis de entrada que é dada a sequência auxiliar (N, m, 1) é aplicada à sequência binária. XOR de uma sequência binária s-bit Z_s na qual s bits são retirados de uma porção fixa na saída resultante, e um bloco de texto criptografado de s-bit C_s[2m-1] como um bloco ímpar no m-ésimo pedaço de texto criptografado ou o último bloco no texto criptografado é tomado, constatando assim um bloco de texto simples decodificado M_s’[2m-1] correspondente a um bloco ímpar no m-ésimo pedaço de texto simples decodificado ou o último bloco no texto simples decodificado.
[00170] De acordo com a presente modalidade exemplificativa, um m-ésimo pedaço de texto simples decodificado MC’[m] = (M_s’[2m-1]) é adquirido dessa maneira. Um processamento exemplificador de aquisição de um m-ésimo pedaço de texto simples decodificado de acordo com a presente modalidade exemplificativa é expresso conforme a seguir.M_s’[2m-1] = cut_s(F_K((N, m, 1), 0An)) xor C_s[2m-1] Equação (17)
[00171] Quando o tamanho do último bloco for s = n, cut_s() é omitido e o processamento expresso na seguinte equação (18) é realizado para adquirir assim MC’[m] = (M’[2m-1]). M’[2m-1] = F_K((N, m, 1), 0An) xor C[2m-1] Equação (18)
[00172] Uma marcação de autenticação de examinação de decodificação T’ pode ser constatada substituindo-se um texto simples no processamento de criptografia por um texto simples decodificado. Ou seja, quando o tamanho do último bloco é s = n, uma soma de verificação de texto simples SUM’ para examinação de decodificação é constatada através do uso dos blocos pares M’[2], •••, M’[2(m-1)] de até um m-1-ésimo pedaço de texto simples decodificado, e um bloco de texto simples decodificado M’[2m-1] como o último bloco. A mesma é constatada tomando-se seu XOR conforme expresso na equação (19) a seguir, por exemplo.SUM’ = M’[2] xor M[4] xor •••M’[2m-2] xor M’[2m-1] Equação (19)
[00173] Por outro lado, quando o tamanho do último bloco for s < n, uma soma de verificação de texto simples SUM’ para examinação de decodificação é constatada através do uso dos blocos pares M’[2], •••, M’[2(m-1)] de até um m-1-ésimo pedaço de texto simples decodificado, e M_n’[2m-1] obtido preenchendo-se o bloco de texto simples s-bit M_s’[2m-1] como o último bloco para n bits. Por exemplo, a mesma é constatada tomando-se seu XOR conforme expresso na equação (20) a seguir. SUM’ = M’[2] xor M’[4] xor ••• M’[2m-2] xor pad_n(M_s’[2m-1]) Equação (20)
[00174] A soma de verificação de texto simples SUM’ para examinação de decodificação é diferente da soma de verificação de texto simples para examinação de decodificação gerada de acordo com a primeira modalidade exemplificativa pelo fato de que M_n’[2m-1] (M’[2m-1] ou M_s’[2m-1] é estendida para n bits) é usado em vez de M’[2m].
[00175] Uma função pseudoaleatória F_K((N, m, 5), *) com duas variáveis de entrada que tem a sequência auxiliar (N, m, 5) é aplicada à soma de verificação de texto simples SUM' adquirida desse modo para examinação de decodificação em s = n, e uma função pseudoaleatória F_K((N, m, 6), *) com duas variáveis de entrada que tem a sequência auxiliar (N, m, 6) é aplicada à mesma em s < n, constatando assim uma marcação de autenticação de examinação de decodificação T’.
[00176] A Figura 14 é um diagrama explicativo que ilustra esquematicamente um fluxo de processamento exemplificador de um processamento de decodificação inteiro de acordo com a presente modalidade exemplificativa. Conforme ilustrado na Figura 14, o processamento de decodificação de acordo com a presente modalidade exemplificativa pode ser igual ao da primeira modalidade exemplificativa exceto pelo processamento de decodificação em um m-ésimo pedaço de texto criptografado e pelo processamento de geração de marcação de autenticação de examinação de decodificação. Na Figura 14, "M_s’[2m-1] | | 10*" indica um resultado obtido realizando-sepreenchimento 10* em um bloco de texto simples s-bit decodificado M_s’[2m-1]. A Figura 14 ilustra o caso no qual o tamanho do último bloco é s < n, mas o corte no processamento em um m-ésimo bloco ("cut_s" na Figura) e preenchimento no processamento de geração de marcação de autenticação ("| | 10*" na Figura) pode ser omitido em s = n. em s = n, C_s[2m-1] = C[2m-1] e M_s’[m-1] = M’[m-1] são estabelecidos, e mesmo se cut_s() ou pad_n() for executado, nenhum processamento é substancialmente realizado, e desse modo um problema não é particularmente causado sem omitir cut_s() ou pad_n().
[00177] O meio de decodificação 20 de acordo com a presente modalidade exemplificativa pode se dar de modo que quando um texto criptografado tiver 2m - 1 blocos, o meio de geração de variável auxiliar 202 gere as sequências auxiliares (N, 1, 1), (N, 1, 2), (N, 2, 1), (N, 2, 2), •••, (N, m, 1), (N, m, 5), (N, m, 6), e possa incluir um meio de decodificação de Feistel de uma rodada para realizar o processamento acima em um m-ésimo pedaço de texto criptografado e emitir um pedaço de texto simples decodificado MC’[m] = (M_s’[2m-1]), e um terceiro meio de cálculo de marcação de examinação de decodificação para calcular uma marcação de autenticação de examinação de decodificação T’ no processamento acima. Alternativamente, o meio de decodificação de Feistel de duas rodadas 203 e o meio de cálculo de marcação de examinação de decodificação 204 pode ser configurado para comutar e realizar as operações de acordo com a primeira modalidade exemplificativa e as operações acima dependendo de um tamanho de um texto criptografado em vez de fornecer o meio de decodificação de Feistel de uma rodada e o terceiro meio de cálculo de marcação de examinação de decodificação. Se o meio de geração de variável auxiliar 202, o meio de decodificação de Feistel de duas rodadas 203, e o meio de cálculo de marcação de examinação de decodificação 204 forem configurados para comutar e realizar as operações de acordo com a primeira modalidade exemplificativa e as operações de acordo com a segunda modalidade exemplificativa dependendo de um tamanho de um texto criptografado, pode-se lidar com qualquer caso com números pares de blocos, números ímpares de blocos, ou o último bloco que tem um tamanho menor do que n.
[00178] Também na presente modalidade exemplificativa, o processamento de criptografia e o processamento de decodificação em um m-ésimo bloco são diferentes um do outro em parâmetros a serem dados e são iguais ao conteúdo de processamento, e desse modo se um parâmetro a ser dado pode ser designado em um originador de chamada, o mesmo pode ser compartilhado entre os mesmos como na primeira modalidade exemplificativa. Além disso, para gerar uma marcação de autenticação, se um parâmetro a ser dado pode ser designado em um originador de chamada, o mesmo pode ser compartilhado entre os mesmos como na primeira modalidade exemplificativa.
[00179] A presente modalidade exemplificativa também é configurada de modo que se a entrada auxiliar e uma chave forem definidas, os pedaços de texto simples e os pedaços de texto criptografado estejam em correspondência de um para um e desse modo o último pedaço pode ser corretamente decodificado. Além disso, a própria função de criptografia F_K não precisa ser submetida ao processamento inverso nos processamentos em rodadas individuais na estrutura de Feistel, e uma marcação de autenticação de examinação de decodificação é constatada no mesmo método que o processamento de criptografia também de acordo com a presente modalidade exemplificativa, e desse modo, a própria função de criptografia F_K não precisa ser submetida ao processamento inverso como um todo como na primeira modalidade exemplificativa e na segunda modalidade exemplificativa.
[00180] A Figura 15 é um diagrama de blocos que ilustra uma estrutura exemplificadora do dispositivo de criptografia 100 para processamentos paralelos. A Figura 16 é um diagrama de blocos que ilustra uma estrutura exemplificadora do dispositivo de decodificação 200 para processamentos paralelos. Conforme ilustrado na Figura 15, uma pluralidade de meio de criptografia de Feistel de duas rodadas 103 é fornecida para realizar assim o processamento de criptografia em cada pedaço de texto simples em unidades de dois blocos em paralelo. Na Figura 15, uma parte do meio de criptografia de Feistel de duas rodadas 103 opera como o segundo meio de criptografia de Feistel de duas rodadas ou como o meio de criptografia de Feistel de uma rodada dependendo de um tamanho de um texto simples. Além disso, o meio de cálculo de marcação 104 opera como o segundo meio de cálculo de marcação ou como o terceiro meio de cálculo de marcação dependendo de um tamanho de um texto simples. Além disso, conforme ilustrado na Figura 16, uma pluralidade de meio de decodificação de Feistel de duas rodadas 203 é fornecida para realizar assim o processamento de decodificação em cada pedaço de texto criptografado em unidades de dois blocos em paralelo. Na Figura 16, uma parte do meio de decodificação de Feistel de duas rodadas 203 opera como o segundo meio de decodificação de Feistel de duas rodadas ou como o meio de decodificação de Feistel de uma rodada dependendo de um tamanho de um texto criptografado. Além disso, o meio de cálculo de marcação de examinação de decodificação 204 opera como o segundo meio de cálculo de marcação de examinação de decodificação ou o terceiro meio de cálculo de marcação de examinação de decodificação dependendo de um tamanho de um texto criptografado.
[00181] De modo a lidar com criptografia autenticada com dados associados (AEAD) de acordo com cada modalidade exemplificativa, um cabeçalho H é adicionado à entrada e então uma função pseudoaleatória g_K’(*) com qualquer entrada de comprimento variável é preparada, e XOR de uma marcação de autenticação (T ou T’) gerada e emitida a partir da função pseudoaleatória g_K’(H) com qualquer entrada de comprimento variável pode ser presumida como uma marcação de autenticação final (T2 ou T2’). Ou seja, no processamento de criptografia, a marcação de autenticação T é constatada conforme descrito acima, e então a marcação de autenticação final T2 pode ser constatada T2 = T xor g_K’(H) através do uso de g_K’(*). Então, a criptografia resultado pode ser presumida como (N, C, H, T2). No processamento de decodificação, a marcação de autenticação de examinação de decodificação T’ é constatada conforme descrito acima, e então a marcação de autenticação final de examinação de decodificação T2’ = T’ xor g_K(H) é constatada através do uso de g_K’(*) para determinar se a mesma é compatível com o T2 recebido.
[00182] No presente documento, K’ é uma chave selecionada independentemente da chave da função pseudoaleatória F_K(*, *) com duas variáveis de entrada. Nesse caso, as chaves do processamento inteiro são um par de (K, K’).
[00183] A função pseudoaleatória g_K’ com entrada de comprimento variável pode ser concebida por CMAC ou HMAC, por exemplo. CMAC ou HMAC é uma função de criptografia para reduzir qualquer entrada ao comprimento fixo emitido através do uso de uma chave. Por exemplo, CMAC é configurado de um processamento em cadeia chamado CBC_MAC em cada bloco (tal como H[1], •••, H[h]) no cabeçalho H, e um processamento de terminação através do uso de uma função de bloco E_K’ que tem uma chave K’.
[00184] Como um exemplo específico, quando criptografia de bloco a ser usado emprega um bloco de n-bit, o processamento:Y[0]00=00..0; Y[i] = E_K’(H[1] xor Y[i-1]), para i = 1,2, •••, (h-1) Y[h] = E_K’(H[h] xor Y[i-1] xor 2*E_K’(00..0)), se H[h] for n-bit
[00185] Y[h] = E_K’((H[h] | | 10*) xor Y[h-1] xor 4*E_K’(00..0)), se H[h] for menor do que n-bit, é realizado. 2* e 4* indicam um processamento de multiplicação por uma constante sobre um campo finito.
[00186] Uma estrutura mínima da presente invenção será descrita abaixo. A Figura 17 é um diagrama de blocos que ilustra uma estrutura mínima exemplificadora de um dispositivo de criptografia autenticada de acordo com a presente invenção. Conforme ilustrado na Figura 17, o dispositivo de criptografia autenticada de acordo com a presente invenção inclui um meio de criptografia autenticada 60 como um componente mínimo.
[00187] No dispositivo de criptografia autenticada ilustrado na Figura 17, o meio de criptografia autenticada 60 aplica a estrutura de Feistel de duas rodadas na qual uma função de criptografia designada com uma variável auxiliar é usada para uma função de rodada em unidades de dois blocos a um texto simples de entrada ou texto criptografado, gerando assim um texto criptografado ou texto simples decodificado.
[00188] Com o dispositivo de criptografia autenticada que tem a estrutura mínima, a função de criptografia é usada somente em uma direção para o processamento de criptografia e o processamento de decodificação, e desse modo é possível alcançar criptografia de um passo e uma taxa autenticada com capacidade de realizar processamentos paralelos e realizar totalmente processamentos de criptografia e decodificação somente por uma função de criptografia.
[00189] As Figuras 18(a) e 18(b) são os diagramas de blocos que ilustram uma estrutura mais específica do meio de criptografia autenticada 60 a título de exemplo, em que a Figura 18(a) ilustra uma estrutura exemplificadora do meio de criptografia autenticada 60 quando o dispositivo de criptografia autenticada for presumido como um dispositivo de criptografia, e a Figura 18(b) ilustra uma estrutura exemplificadora do meio de criptografia autenticada 60 quando o dispositivo de criptografia autenticada for presumido como um dispositivo de decodificação.
[00190] Conforme ilustrado na Figura 18(um), o meio de criptografia autenticada 60 pode incluir um meio de criptografia 61 (o meio de criptografia 10, por exemplo), e o meio de criptografia 61 pode ter um meio de entrada de texto simples 611, um meio de geração de variável auxiliar 612, um meio de criptografia de Feistel de duas rodadas 613, e um meio de cálculo de marcação 614.
[00191] O meio de entrada de texto simples 611 (o meio de entrada 101, por exemplo) insere um texto simples a ser criptografado e um vetor inicial.
[00192] O meio de geração de variável auxiliar 612 (o meio de geração de variável auxiliar 102, por exemplo) gera uma variável auxiliar a ser dado a cada uma das funções de criptografia com base no vetor inicial e em um tamanho do texto simples de entrada.
[00193] O meio de criptografia de Feistel de duas rodadas 613 (o meio de criptografia de Feistel de duas rodadas 103, por exemplo) aplica a estrutura de Feistel de duas rodadas a cada pedaço de texto simples quando um texto simples for dividido em pedaços por dois blocos, gerando assim pedaços de texto criptografado correspondentes aos pedaços de texto simples.
[00194] Presumindo um vetor inicial N, um índice de pedaço i, um i- ésimo pedaço de texto simples MC[i] = (M[i_1], M[i_2]), um par de variáveis auxiliares (N, Tw_i_1) e (N, Tw_i_2) correspondentes a dois blocos de texto simples incluídos no pedaço de texto simples MC[i], e uma função de criptografia F_K(*, *), o meio de criptografia de Feistel de duas rodadas 613 pode constatar um i-ésimo pedaço de texto criptografado CC[i] = (C[i_1], C[i_2]) como:C[i_1] = F_K((N, Tw_i_1), M[i_1]) xor M[i_2], C[i_2] = F_K((N, Tw_i_2), C[i_1]) xor M[i_1].
[00195] O meio de cálculo de marcação 614 (o meio de cálculo de marcação 104, por exemplo) calcula uma soma de verificação de texto simples e aplica uma função de criptografia designada com uma variável auxiliar à soma de verificação resultante para gerar assim uma marcação de autenticação.
[00196] O meio de cálculo de marcação 614 calcula uma soma de verificação de texto simples através do uso de um bloco de texto simples M[i_2] incluído em cada pedaço de texto simples, e presumindo a soma de verificação resultante SUM, a variável auxiliar (N, Tw_T_1) dada à função de criptografia usada para gerar uma marcação de autenticação, e a função de criptografia F_K(*, *), pode constatar uma marcação de autenticação T as T = F_K((N, Tw_T_1), SUM).
[00197] Conforme ilustrado na Figura 18(b), o meio de criptografia autenticada 60 pode incluir um meio de decodificação 62 (o meio de decodificação 20, por exemplo), e o meio de decodificação 62 pode ter um meio de entrada de texto criptografado 621, um meio de geração de variável auxiliar de decodificação 622, um meio de decodificação de Feistel de duas rodadas 623, um meio de cálculo de marcação de examinação de decodificação 624, e um meio de determinação 625.
[00198] O meio de entrada de texto criptografado 621 (o meio de entrada 201, por exemplo) insere um texto criptografado a ser decodificada, um vetor inicial e uma marcação de autenticação.
[00199] O meio de geração de variável auxiliar de decodificação 622 (o meio de geração de variável auxiliar 202, por exemplo) gera a mesma variável auxiliar as na criptografia, que deve ser dada a cada uma das funções de criptografia, com base no vetor inicial e em um tamanho do texto criptografado de entrada.
[00200] O meio de decodificação de Feistel de duas rodadas 623 (o meio de decodificação de Feistel de duas rodadas 203, por exemplo) aplica a estrutura de Feistel de duas rodadas a cada pedaço de texto criptografado ao dividir um texto criptografado em pedaços por dois blocos, gerando assim pedaços de texto simples decodificado correspondentes aos pedaços de texto criptografado.
[00201] Presumindo um vetor inicial N, um índice de pedaço i, um i- ésimo pedaço de texto criptografado CC[i] = (C[i_1], C[i_2]), um par de variáveis auxiliares (N, Tw_i_1) e (N, Tw_i_2) correspondentes a dois blocos de texto criptografado incluídos no pedaço de texto criptografado CC[i], e uma função de criptografia F_K(*, *), o meio de decodificação de Feistel de duas rodadas 623 pode constatar um i-ésimo pedaço de texto simples decodificado MC’[i] = (M’[i_1], M’[i_2]) como:M’[i_1] = F_K((N, Tw_i_2), C[i_1]) xor C[i_2], M’[i_2] = F_K((N, Tw_i_1), M’[i_1]) xor C[i_1].
[00202] O meio de cálculo de marcação de examinação de decodificação 624 (o meio de cálculo de marcação de examinação de decodificação 204, por exemplo) calcula uma soma de verificação de texto simples decodificado, e aplica a função de criptografia designada com uma variável auxiliar à soma de verificação resultante, gerando assim uma marcação de autenticação de examinação de decodificação.
[00203] O meio de cálculo de marcação de examinação de decodificação 624 calcula uma soma de verificação de texto simples decodificado através do uso de cada bloco de texto simples decodificado M’[i_2] incluído em cada pedaço de texto simples decodificado, e presumindo a soma de verificação resultante SUM’, a variável auxiliar (N, Tw_T_1) dada à função de criptografia usada para gerar uma marcação de autenticação de examinação de decodificação, e a função de criptografia F_K(*, *), pode constatar uma marcação de autenticação de examinação de decodificação T’ as T’ = F_K((N,Tw_T_1), SUM’).
[00204] O meio de determinação 625 (o meio de determinação 205, por exemplo) determina se a decodificação foi bem-sucedida ou falhou com base na marcação de autenticação de examinação de decodificação gerada pelo meio de cálculo de marcação de examinação de decodificação 624 e a marcação de autenticação de entrada.
[00205] A presente invenção foi descrita acima em referência às modalidades exemplificativas e os exemplos, mas a presente invenção não é limitada às modalidades exemplificativas acima. A estrutura e detalhes da presente invenção podem ser variavelmente mudadas dentro do escopo da presente invenção compreensível pelos elementos versados na técnica.
[00206] Algumas ou todas as modalidades exemplificativas acima podem ser descritas como nas notas a seguir, mas não são limitadas às mesmas.
[00207] (Nota 1) Um dispositivo de criptografia que inclui um meio de criptografia para aplicar uma estrutura de Feistel de duas rodadas que usa uma função de criptografia designada com uma variável auxiliar para uma função de rodada por dois blocos a um texto simples de entrada para gerar assim um texto criptografado.
[00208] (Nota 2) O dispositivo de criptografia de acordo com a nota 1, em que o meio de criptografia inclui um meio de entrada de texto simples para inserir um texto simples a ser criptografado e um vetor inicial, um meio de geração de variável auxiliar para gerar uma variável auxiliar dada a cada uma das funções de criptografia com base no vetor inicial e em um tamanho do texto simples de entrada, um meio de criptografia de Feistel de duas rodadas para aplicar uma estrutura de Feistel de duas rodadas a cada pedaço de texto simples ao dividir o texto simples em pedaços por dois blocos para gerar assim pedaços de texto criptografado correspondentes aos pedaços de texto simples, e um meio de cálculo de marcação para calcular uma soma de verificação do texto simples, e aplicar uma função de criptografia designada com uma variável auxiliar à soma de verificação resultante para gerar assim uma marcação de autenticação, o meio de criptografia de Feistel de duas rodadas constata um i-ésimo pedaço de texto criptografado CC[i] = (C[i_1], C[i_2]), presumindo um vetor inicial N, um índice de pedaço i, um i-ésimo pedaço de texto simples MC[i] = (M[i_1], M[i_2]), um par de variáveis auxiliares (N, Tw_i_1) e (N, Tw_i_2) correspondentes a dois blocos de texto simples incluídos no pedaço de texto simples MC[i], e uma função de criptografia F_K(*, *), como: C[i_1] = F_K((N, Tw_i_1), M[i_1]) xor M[i_2], C[i_2] = F_K((N, Tw_i_2), C[i_1]) xor M[i_1], e o meio de cálculo de marcação calcula uma soma de verificação de um texto simples através do uso de um bloco de texto simples M[i_2] incluído em cada pedaço de texto simples, e presumindo a soma de verificação resultante SUM, uma variável auxiliar (N, Tw_T_1) dada a uma função de criptografia usada para gerar uma marcação de autenticação, e uma função de criptografia F_K(*, *), constata uma marcação de autenticação T como:T = F_K((N, Tw_T_1), SUM).
[00209] (Nota 3) O dispositivo de criptografia de acordo com a nota 2, em que, quando um texto simples de entrada for dividido em blocos pares e um tamanho do último bloco é menor do que um tamanho de bloco predeterminado, o meio de geração de variável auxiliar gera uma segunda variável auxiliar para marcação de autenticação como uma variável auxiliar dada a uma função de criptografia usada para gerar uma marcação de autenticação,
[00210] O meio de criptografia inclui:
[00211] Um segundo meio de criptografia de Feistel de duas rodadas para aplicar uma estrutura de Feistel de duas rodadas predeterminada ao último pedaço de texto simples que inclui o último bloco de texto simples para gerar assim o último pedaço de texto criptografado que inclui o último bloco de texto criptografado; e
[00212] Um segundo meio de cálculo de marcação para calcular uma soma de verificação de um texto simples através do uso do texto simples de entrada e saída do segundo meio de criptografia de Feistel de duas rodadas, e aplicar uma função de criptografia designada com uma variável auxiliar à soma de verificação resultante para gerar assim uma marcação de autenticação,
[00213] presumindo um índice m do último pedaço de texto simples, o último bloco de texto simples M[m_2], o último pedaço de texto simples MC[m] = (M[m_1], M[m_2]), um par de variáveis auxiliares (N, Tw_m_1) e (N, Tw_m_2) correspondentes a dois blocos de texto simples incluído no último pedaço de texto simples MC[m], uma função de criptografia F_K(*, *), um tamanho s do último bloco de texto simples, um tamanho de bloco n, um processamento de preenchimento pad_n() do tamanho s ao tamanho n, e um processamento de corte cut_s() do tamanho n ao tamanho s, o segundo meio de criptografia de Feistel de duas rodadas constata o último pedaço de texto criptografado CC[m] = (C[m_1], C[m_2]) incluindo o último bloco de texto criptografado C[m_2] com tamanho s como: C[m_2] = cut_s(Z) xor M[m_2],C[m_1] = F_K((N, Tw_m_2), pad_n(C[m_2])) xor M[m_1] em que Z = F_K((N, Tw_m_1), M[m_1]), e
[00214] um segundo meio de cálculo de marcação calcula uma soma de verificação de um texto simples através do uso de um bloco de texto simples M[i_2] incluído em cada pedaço de texto simples exceto pelo último pedaço de texto simples, o Z, e C_n[m_2] obtido preenchendo-se o C[m_2] ao tamanho n, e constata uma marcação de autenticação T como:
[00215] T = F_K((N, Tw_T_2), SUM) presumindo a soma de verificação resultante SUM, a segunda variável auxiliar (N, Tw_T_2) para marcação de autenticação e uma função de criptografia F_K(*, *).
[00216] (Nota 4) O dispositivo de criptografia de acordo com a nota 2 ou a nota 3, em que o meio de geração de variável auxiliar gera uma terceira variável auxiliar para marcação de autenticação como uma variável auxiliar dada a uma função de criptografia usada para gerar uma marcação de autenticação quando um texto simples de entrada é dividido em blocos ímpares e um tamanho do último bloco é igual a um tamanho de bloco predeterminado, e gera uma quarta variável auxiliar para marcação de autenticação como uma variável auxiliar dada a uma função de criptografia usada para gerar uma marcação de autenticação quando um texto simples de entrada é dividido em blocos ímpares e um tamanho do último bloco é menor do que um tamanho de bloco predeterminado, o meio de criptografia inclui um meio de criptografia de Feistel de uma rodada para aplicar uma estrutura de Feistel de uma rodada predeterminada ao último pedaço de texto simples que inclui o último bloco de texto simples para gerar assim o último pedaço de texto criptografado que inclui o último bloco de texto criptografado, e um terceiro meio de cálculo de marcação para calcular uma soma de verificação de um texto simples através do uso do texto simples de entrada e saída do meio de criptografia de Feistel de uma rodada, e aplicar uma função de criptografia designada com uma variável auxiliar à soma de verificação resultante para gerar assim uma marcação de autenticação, o meio de criptografia de Feistel de uma rodada constata o último pedaço de texto criptografado CC[m] = (C[m_1]) que inclui o último bloco de texto criptografado C[m_1] com tamanho s, presumindo um índice m do último pedaço de texto simples, o último bloco de texto simples M[m_1], o último pedaço de texto simples MC[m] = (M[m_1]), uma variável auxiliar (N, Tw_m_1) correspondente ao último bloco de texto simples, uma função de criptografia F_K(*, *), um tamanho s do último bloco de texto simples, um tamanho de bloco n e um processamento de corte cut_s() do tamanho n ao tamanho s, como: C[m_1] = cut_s(F_K((N, Tw_m_1), 0An)) xor M[m_1]
[00217] em que se s = n, cut_s() pode ser omitido, e o terceiro meio de cálculo de marcação constata uma soma de verificação de um texto simples em s = n através do uso de um bloco de texto simples M[i_2] incluído em cada pedaço de texto simples exceto pelo último pedaço de texto simples, e o C[m_1], constata uma marcação de autenticação T como:
[00218] T = F_K((N, Tw_T_3), SUM) presumindo a soma de verificação resultante SUM, a terceira variável auxiliar (N, Tw_T_3) para marcação de autenticação, e uma função de criptografia F_K(*, *), calcula uma soma de verificação de um texto simples em s < n através do uso de um bloco de texto simples M[i_2] incluído em cada pedaço de texto simples exceto pelo último pedaço de texto simples, e C_n[m_1] obtido preenchendo-se o C[m_1] ao tamanho n e constata uma marcação de autenticação T como:
[00219] T = F_K((N, Tw_T_4), SUM) presumindo a soma de verificação resultante SUM, a quarta variável auxiliar (N, Tw_T_4) para marcação de autenticação, e uma função de criptografia F_K(*, *).
[00220] (Nota 5) O dispositivo de criptografia, de acordo com qualquer uma das notas 1 a 4, em que uma função de criptografia é criptografia de bloco ajustável com duas variáveis de entrada que incluem uma variável auxiliar chamada Ajuste.
[00221] (Nota 6) O dispositivo de criptografia, de acordo com qualquer uma das notas 1 a 4, em que uma função de criptografia é uma função de hash de chave com entrada acoplada de uma primeira variável e uma segunda variável.
[00222] (Nota 7) Um dispositivo de decodificação inclui: um meio de decodificação para aplicar uma estrutura de Feistel de duas rodadas que usa uma função de criptografia designada com uma variável auxiliar para uma função de rodada por dois blocos a um texto criptografado de entrada para gerar assim um texto simples decodificado.
[00223] (Nota 8) O dispositivo de decodificação de acordo com a nota 7, em que o meio de decodificação inclui um meio de entrada de texto criptografado para inserir um texto criptografado a ser decodificado, um vetor inicial e uma marcação de autenticação, um meio de geração de variável auxiliar de decodificação para gerar a mesma variável auxiliar que na criptografia, que é dada a cada uma das funções de criptografia, com base no vetor inicial e em um tamanho do texto criptografado de entrada, um meio de decodificação de Feistel de duas rodadas para aplicar uma estrutura de Feistel de duas rodadas a cada pedaço de texto criptografado ao dividir o texto criptografado em pedaços por dois blocos para gerar assim pedaços de texto simples decodificado correspondentes aos pedaços de texto criptografado, um meio de cálculo de marcação de examinação de decodificação para calcular uma soma de verificação do texto simples decodificado, e aplicar uma função de criptografia designada com uma variável auxiliar à soma de verificação resultante para gerar assim uma marcação de autenticação de examinação de decodificação, e um meio de determinação para determinar se a decodificação foi bem-sucedida ou falhou com base na marcação de autenticação de examinação de decodificação gerada pelo meio de cálculo de marcação de examinação de decodificação e a marcação de autenticação de entrada,
[00224] O meio de decodificação de Feistel de duas rodadas constata um i-ésimo pedaço de texto simples decodificado MC’[i] = (M’[i_1], M’[i_2]), presumindo um vetor inicial N, um índice de pedaço i, um i-ésimo pedaço de texto criptografado CC[i] = (C[i_1], C[i_2]), um par de variáveis auxiliares (N, Tw_i_1) e (N, Tw_i_2) correspondentes a dois blocos de texto criptografado incluídos no pedaço de texto criptografado CC[i], e uma função de criptografia F_K(*, *), como:M’[i_1] = F_K((N, Tw_i_2), C[i_1]) xor C[i_2],
[00225] M’[i_2] = F_K((N, Tw_i_1), M’[i_1]) xor C[i_1], e o meio de cálculo de marcação de examinação de decodificação calcula uma soma de verificação de um texto simples decodificado através do uso de cada bloco de texto simples decodificado M’[i_2] incluído em cada pedaço de texto simples decodificado, e constata uma marcação de autenticação de examinação de decodificação T’ como:
[00226] T’ = F_K((N, Tw_T_1), SUM’) presumindo a soma de verificação resultante SUM’, uma variável auxiliar (N, Tw_T_1) dada a uma função de criptografia usada para gerar uma marcação de autenticação de examinação de decodificação, e uma função de criptografia F_K(*, *).
[00227] (Nota 9) O dispositivo de decodificação de acordo com a nota 8, em que, quando um texto criptografado de entrada é dividido em blocos pares e um tamanho do último bloco é menor do que um tamanho de bloco predeterminado, o meio de geração de variável auxiliar de decodificação gera a mesma segunda variável auxiliar para marcação de autenticação como na criptografia como uma variável auxiliar dada a uma função de criptografia usada para gerar uma marcação de autenticação de examinação de decodificação, o meio de decodificação inclui:
[00228] um segundo meio de decodificação de Feistel de duas rodadas para aplicar uma estrutura de Feistel de duas rodadas predeterminada ao último pedaço de texto criptografado que inclui o último bloco de texto criptografado para gerar assim o último pedaço de texto simples decodificado que inclui um bloco de texto simples decodificado do último bloco criptografado; e
[00229] um segundo meio de cálculo de marcação de examinação de decodificação para calcular uma soma de verificação de um texto simples decodificado através do uso de saída do meio de decodificação de Feistel de duas rodadas, saída do segundo meio de decodificação de Feistel de duas rodadas e do último bloco de texto criptografado, e aplicar uma função de criptografia designada com uma variável auxiliar à soma de verificação resultante para gerar assim uma marcação de autenticação de examinação de decodificação,
[00230] Presumindo um índice m do último pedaço de texto criptografado, o último bloco de texto criptografado C[m_2], o último pedaço de texto criptografado CC[m] = (C[m_1], C[m_2]), um par de variáveis auxiliares (N, Tw_m_1) e (N, Tw_m_2) correspondentes a dois blocos de texto criptografado incluídos no último pedaço de texto criptografado CC[m], uma função de criptografia F_K(*, *), um tamanho s do último bloco de texto criptografado, um tamanho de bloco n, um processamento de preenchimento pad_n() do tamanho s ao tamanho n, e um processamento de corte cut_s() do tamanho n ao tamanho s, o segundo meio de decodificação de Feistel de duas rodadas constata o último pedaço de texto simples decodificado MC’[m] = (M’[m_1],M’[m_2]) incluindo o último bloco de texto simples decodificado M’[m_2] com tamanho s como: M’[m_1] = F_K((N, Tw_m_2), pad_n(C[m_2])) xor C[m_1], M’[m_2] = cut_s(Z’) xor C[m_2], em que Z’ = F_K((N, Tw_m_1), M’[m_1]), e
[00231] O segundo meio de cálculo de marcação de examinação de decodificação calcula uma soma de verificação de um texto simples decodificado através do uso de um bloco de texto simples decodificado M[i_2] incluído em cada pedaço de texto simples decodificado exceto pelo último pedaço de texto simples decodificado, o Z’, e M_n’[m_2] obtido preenchendo-se o M’[m_2] ao tamanho n, e constata uma marcação de autenticação de examinação de decodificação T’ como:
[00232] T’ = F_K((N, Tw_T_2), SUM’) presumindo a soma de verificação resultante SUM’, a segunda variável auxiliar (N, Tw_T_2) para marcação de autenticação, e uma função de criptografia F_K(*, *).
[00233] (Nota 10) O dispositivo de decodificação de acordo com as notas 8 ou 9, em que o meio de geração de variável auxiliar gera a terceira variável auxiliar para marcação de autenticação igual a da criptografia como uma variável auxiliar dada a uma função de criptografia usada para gerar uma marcação de autenticação de examinação de decodificação quando um texto criptografado de entrada é dividido em blocos ímpares e um tamanho do último bloco igual a um tamanho de bloco predeterminado, e gera a mesma quarta variável auxiliar para marcação de autenticação que na criptografia como uma variável auxiliar dada a uma função de criptografia usada para gerar uma marcação de autenticação quando um texto criptografado de entrada é dividido em blocos ímpares e um tamanho do último bloco é menor do que um tamanho de bloco predeterminado, o meio de decodificação inclui um meio de decodificação de Feistel de uma rodada para aplicar uma estrutura de Feistel de uma rodada predeterminada ao último pedaço de texto criptografado que inclui o último bloco de texto criptografado para gerar assim o último pedaço de texto simples que inclui o último bloco de texto simples decodificado, e um terceiro meio de cálculo de marcação de examinação de decodificação para calcular uma soma de verificação de um texto simples decodificado através do uso de saída do meio de decodificação de Feistel de duas rodadas e saída do meio de decodificação de Feistel de uma rodada, e aplicar uma função de criptografia designada com uma variável auxiliar à soma de verificação resultante para gerar assim uma marcação de autenticação de examinação de decodificação, o meio de decodificação de Feistel de uma rodada constata o último pedaço de texto simples decodificado MC’[m] = (M’[m_1]) que inclui o último bloco de texto simples decodificado M’[m_1] com tamanho s, presumindo um índice m do último pedaço de texto criptografado, o último bloco de texto criptografado C[m_1], o último pedaço de texto criptografado CC[m] = (C[m_1]), uma variável auxiliar (N, Tw_m_1) correspondente ao último bloco de texto criptografado, uma função de criptografia F_K(*, *), um tamanho s do último bloco de texto criptografado, um tamanho de bloco n, e um processamento de corte cut_s() do tamanho n ao tamanho s, como:
[00234] M’[m_1] = cut_s(F_K((N, Tw_m_1), 0An)) xor [m_1]
[00235] em que se s = n, cut_s() pode ser omitido, e o terceiro meio de cálculo de marcação de examinação de decodificação calcula uma soma de verificação de um texto simples decodificado em s = n através do uso de um bloco de texto simples M’[i_2] incluído em cada pedaço de texto simples decodificado exceto pelo último pedaço de texto simples decodificado, e o M’[m_1], constata uma marcação de autenticação de examinação de decodificação T’ como:
[00236] T’ = F_K((N, Tw_T_3), SUM’) presumindo a soma de verificação resultante SUM’, a terceira variável auxiliar (N, Tw_T_3) para marcação de autenticação, e uma função de criptografia F_K(*, *), calcula uma soma de verificação de um texto simples decodificado em s < n através do uso de um bloco de texto simples M’[i_2] incluído em cada pedaço de texto simples decodificado exceto pelo último pedaço de texto simples decodificado, e M_n’[m_1] obtido preenchendo-se o M’[m_1] ao tamanho n, e constata uma marcação de autenticação de examinação de decodificação T’ como:
[00237] T’ = F_K((N, Tw_T_4), SUM’) presumindo a soma de verificação resultante SUM’, a quarta variável auxiliar (N, Tw_T_4) para marcação de autenticação e uma função de criptografia F_K(*, *).
[00238] (Nota 11) O dispositivo de decodificação de acordo com qualquer uma das notas 7 a 10, em que uma função de criptografia é criptografia de bloco ajustável com duas variáveis de entrada que incluem uma variável auxiliar chamada Ajuste.
[00239] (Nota 12) O dispositivo de decodificação de acordo com qualquer uma das notas 7 a 10, em que uma função de criptografia é uma função de hash de chave com entrada acoplada de uma primeira variável e uma segunda variável.
[00240] (Nota 13) Um método de criptografia autenticada, em que em um processamento de criptografia de duas rodadas de Feistel de inserção de um texto simples a ser criptografado e um vetor inicial, geração uma variável auxiliar dada a cada uma das funções de criptografia com base no vetor inicial e em um tamanho do texto simples de entrada, e aplicação de uma estrutura de Feistel de duas rodadas a cada pedaço de texto simples ao dividir o texto simples em pedaços por dois blocos para gerar assim pedaços de texto criptografado correspondentes aos pedaços de texto simples, um aparelho de processamento de informações constata um i-ésimo pedaço de texto criptografado CC[i] = (C[i_1], C[i_2]), presumindo um vetor inicial N, um índice de pedaço i, um i-ésimo pedaço de texto simples MC[i] = (M[i_1], M[i_2]), um par de variáveis auxiliares (N, Tw_i_1) e (N, Tw_i_2) correspondentes a dois blocos de texto simples incluídos no pedaço de texto simples MC[i], e uma função de criptografia F_K(*, *), como:C[i_1] = F_K((N, Tw_i_1), M[i_1]) xor M[i_2],
[00241] C[i_2] = F_K((N, Tw_i_2), C[i_1]) xor M[i_1], calcula uma soma de verificação de um texto simples através do uso de um bloco de texto simples M[i_2] incluído em cada pedaço de texto simples, e presumindo a soma de verificação resultante SUM, uma variável auxiliar (N, Tw_T_1) dada a uma função de criptografia usada para gerar uma marcação de autenticação, e uma função de criptografia F_K(*, *), constata uma marcação de autenticação T como:
[00242] T = F_K((N, Tw_T_1), SUM).
[00243] (Nota 14) O método de criptografia autenticada de acordo com a nota 13, em que em um segundo processamento de criptografia de duas rodadas de Feistel de geração de uma segunda variável auxiliar para marcação de autenticação como uma variável auxiliar dada a uma função de criptografia usada para gerar uma marcação de autenticação quando um texto simples de entrada for dividido em blocos pares e um tamanho do último bloco é menor do que um tamanho de bloco predeterminado, aplicação de uma estrutura de Feistel de duas rodadas predeterminada ao último pedaço de texto simples que inclui o último bloco de texto simples para gerar assim o último pedaço de texto criptografado que inclui o último bloco de texto criptografado, um aparelho de processamento de informações constata o último pedaço de texto criptografado CC[m] = (C[m_1], C[m_2]) que inclui o último bloco de texto criptografado C[m_2] com tamanho s, presumindo um índice m do último pedaço de texto simples, o último bloco de texto simples M[m_2], o último pedaço de texto simples MC[m] = (M[m_1], M[m_2]), um par de variáveis auxiliares (N, Tw_m_1) e (N, Tw_m_2) correspondentes a dois blocos de texto simples incluídos no último pedaço de texto simples MC[m], uma função de criptografia F_K(*, *), um tamanho s do último bloco de texto simples, um tamanho de bloco n, um processamento de preenchimento pad_n() do tamanho s ao tamanho n, e um processamento de corte cut_s() do tamanho n ao tamanho s, como:C[m_2] = cut_s(Z) xor M[m_2],C[m_1] = F_K((N, Tw_m_2), pad_n(C[m_2])) xor M[m_1]
[00244] em que Z = F_K((N, Tw_m_1), M[m_1]), calcula uma soma de verificação de um texto simples através do uso de um bloco de texto simples M[i_2] incluído em cada pedaço de texto simples exceto pelo último pedaço de texto simples, o Z, e C_n[m_2] obtido preenchendo-se o C[m_2] ao tamanho n, e constata uma marcação de autenticação T como:
[00245] T = F_K((N, Tw_T_2), SUM) presumindo a soma de verificação resultante SUM, a segunda variável auxiliar (N, Tw_T_2) para marcação de autenticação e uma função de criptografia F_K(*, *).
[00246] (Nota 15) O método de criptografia autenticada de acordo com a nota 13 ou note 14, em que em um processamento de criptografia de Feistel de uma rodada de geração de uma terceira variável auxiliar para marcação de autenticação como uma variável auxiliar dada a uma função de criptografia usada para gerar uma marcação de autenticação quando um texto simples de entrada for dividido em blocos ímpares e um tamanho do último bloco igual a um tamanho de bloco predeterminado, geração de uma quarta variável auxiliar para marcação de autenticação como uma variável auxiliar dada a uma função de criptografia usada para gerar uma marcação de autenticação quando um texto simples de entrada for dividido em blocos ímpares e um tamanho do último bloco é menor do que um tamanho de bloco predeterminado e aplicação de uma estrutura de Feistel de uma rodada predeterminada ao último pedaço de texto simples que inclui o último bloco de texto simples para gerar assim o último pedaço de texto criptografado que inclui o último bloco de texto criptografado, o método inclui as etapas de presumir um índice m do último pedaço de texto simples, o último bloco de texto simples M[m_1], o último pedaço de texto simples MC[m] = (M[m_1]), uma variável auxiliar (N, Tw_m_1) correspondente ao último bloco de texto simples, uma função de criptografia F_K(*, *), um tamanho s do último bloco de texto simples, um tamanho de bloco n, e um processamento de corte cut_s() do tamanho n ao tamanho s, constatar o último pedaço de texto criptografado CC[m] = (C[m_1]) que inclui o último bloco de texto criptografado C[m_1] com tamanho s como:C[m_1] = cut_s(F_K((N, Tw_m_1), 0An)) xor M[m_1]
[00247] em que se s = n, cut_s() pode ser omitido, calcular uma soma de verificação de um texto simples em s = n através do uso de um bloco de texto simples M[i_2] incluído em cada pedaço de texto simples exceto pelo último pedaço de texto simples, e o C[m_1], constatar uma marcação de autenticação T como:
[00248] T = F_K((N, Tw_T_3), SUM) presumindo a soma de verificação resultante SUM, a terceira variável auxiliar (N, Tw_T_3) para marcação de autenticação, e uma função de criptografia F_K(*, *), calcular uma soma de verificação de um texto simples em s < n através do uso de um bloco de texto simples M[i_2] incluído em cada pedaço de texto simples exceto pelo último pedaço de texto simples, e C_n[m_1] obtido preenchendo-se o C[m_1] ao tamanho n, e constatar uma marcação de autenticação T como:
[00249] T = F_K((N, Tw_T_4), SUM) presumindo a soma de verificação resultante SUM, a quarta variável auxiliar (N, Tw_T_4) para marcação de autenticação, e uma função de criptografia F_K(*, *).
[00250] (Nota 16) um método de criptografia autenticada, em que em um processamento de decodificação de Feistel de duas rodadas de inserção de um texto criptografado a ser decodificado, um vetor inicial e uma marcação de autenticação, geração da mesma variável auxiliar que na criptografia, que é dada a cada uma das funções de criptografia, com base no vetor inicial e em um tamanho do texto criptografado de entrada, e aplicação de uma estrutura de Feistel de duas rodadas a cada pedaço de texto criptografado ao dividir o texto criptografado em pedaços por dois blocos para gerar assim pedaços de texto simples decodificado correspondentes aos pedaços de texto criptografado, um aparelho de processamento de informações constata um i-ésimo pedaço de texto simples decodificado MC’[i] = (M’[i_1], M’[i_2]),presumindo um vetor inicial N, um índice de pedaço i, um i-ésimo pedaço de texto criptografado CC[i] = (C[i_1], C[i_2]), um par de variáveis auxiliares (N, Tw_i_1) e (N, Tw_i_2) correspondentes a dois blocos de texto criptografado incluídos no pedaço de texto criptografado CC[i], e uma função de criptografia F_K(*, *), como: M’[i_1] = F_K((N, Tw_i_2), C[i_1]) xor C[i_2],
[00251] M’[i_2] = F_K((N, Tw_i_1), M’[i_1]) xor C[i_1], calcula uma soma de verificação de um texto simples decodificado através do uso de cada bloco de texto simples decodificado M’[i_2] incluído em cada pedaço de texto simples decodificado, e constata uma marcação de autenticação de examinação de decodificação T’ como:
[00252] T’ = F_K((N, Tw_T_1), SUM’) presumindo a soma de verificação resultante SUM’, uma variável auxiliar (N, Tw_T_1) dada a uma função de criptografia usada para gerar uma marcação de autenticação de examinação de decodificação, e uma função de criptografia F_K(*, *).
[00253] (Nota 17) O método de criptografia autenticada de acordo com a nota 16, em que em um segundo processamento de decodificação de Feistel de duas rodadas de geração da mesma segunda variável auxiliar para marcação de autenticação como na criptografia como uma variável auxiliar dada a uma função de criptografia usada para gerar uma marcação de autenticação de examinação de decodificação quando um texto criptografado de entrada for dividido em blocos pares e um tamanho do último bloco for menor do que um tamanho de bloco predeterminado, e aplicar uma estrutura de Feistel de duas rodadas predeterminada ao último pedaço de texto criptografado que inclui o último bloco de texto criptografado para gerar assim o último pedaço de texto simples decodificado que inclui um bloco de texto simples decodificado do último bloco criptografado, o método inclui as etapas de presumir um índice m do último pedaço de texto criptografado, o último bloco de texto criptografado C[m_2], o último pedaço de texto criptografado CC[m] = (C[m_1], C[m_2]), um par de variáveis auxiliares (N, Tw_m_1) e (N, Tw_m_2) correspondentes a dois blocos de texto criptografado incluídos no último pedaço de texto criptografado CC[m], uma função de criptografia F_K(*, *), um tamanho s do último bloco de texto criptografado, um tamanho de bloco n, um processamento de preenchimento pad_n() do tamanho s ao tamanho n, e um processamento de corte cut_s() do tamanho n ao tamanho s, constatar o último pedaço de texto simples decodificado MC’[m] = (M’[m_1], M’[m_2]) que inclui o último bloco de texto simples decodificado M’[m_2] com tamanho s como: M’[m_1] = F_K((N, Tw_m_2), pad_n(C[m_2])) xor C[m_1], M’[m_2] = cut_s(Z’) xor C[m_2],em que Z’ = F_K((N, Tw_m_1), M’[m_1]), calcular uma soma de verificação de um texto simples decodificado através do uso de um bloco de texto simples decodificado M[i_2] incluído em cada pedaço de texto simples decodificado exceto pelo último pedaço de texto simples decodificado, o Z’, e M_n’[m_2] obtido preenchendo-se o M’[m_2] ao tamanho n, e constatando-se uma marcação de autenticação de examinação de decodificação T’ como:
[00254] T’ = F_K((N, Tw_T_2), SUM’) presumindo a soma de verificação resultante SUM’, a segunda variável auxiliar (N, Tw_T_2) para marcação de autenticação, e uma função de criptografia F_K(*, *).
[00255] (Nota 18) O método de criptografia autenticada de acordo com a nota 16 ou note 17, em que em um processamento de decodificação de Feistel de uma rodada de geração da mesma terceira variável auxiliar para marcação de autenticação que na criptografia como uma variável auxiliar dada a uma função de criptografia usada para gerar uma marcação de autenticação de examinação de decodificação quando um texto criptografado de entrada for dividido em blocos ímpares e um tamanho do último bloco for igual a um tamanho de bloco predeterminado, geração da mesma quarta variável auxiliar para marcação de autenticação que na criptografia como uma variável auxiliar dada a uma função de criptografia usada para gerar uma marcação de autenticação quando um texto criptografado de entrada for dividido em blocos ímpares e um tamanho do último bloco for menor do que um tamanho de bloco predeterminado, e aplicar uma estrutura de Feistel de uma rodada predeterminada ao último pedaço de texto criptografado que inclui o último bloco de texto criptografado para gerar assim o último pedaço de texto simples que inclui o último bloco de texto simples decodificado, o método inclui as etapas de presumir um índice m do último pedaço de texto criptografado, o último bloco de texto criptografado C[m_1], o último pedaço de texto criptografado CC[m] = (C[m_1]), uma variável auxiliar (N, Tw_m_1) correspondente ao último bloco de texto criptografado, uma função de criptografia F_K(*, *), um tamanho s do último bloco de texto criptografado, um tamanho de bloco n, e um processamento de corte cut_s() do tamanho n ao tamanho s, constatar o último pedaço de texto simples decodificado MC’[m] = (M’[m_1]) que inclui o último bloco de texto simples decodificado M’[m_1] com tamanho s como: M’[m_1] = cut_s(F_K((N, Tw_m_1), 0An)) xor [m_1]
[00256] em que se s = n, cut_s() pode ser omitido, calcular uma soma de verificação de um texto simples decodificado em s = n através do uso de um bloco de texto simples M’[i_2] incluído em cada pedaço de texto simples decodificado exceto pelo último pedaço de texto simples decodificado, e o M’[m_1], constata uma marcação de autenticação de examinação de decodificação T’ como:
[00257] T’ = F_K((N, Tw_T_3), SUM’) presumindo a soma de verificação resultante SUM’, a terceira variável auxiliar (N, Tw_T_3) para marcação de autenticação, e uma função de criptografia F_K(*, *), calcular uma soma de verificação de um texto simples decodificado em s < n através do uso de um bloco de texto simples M’[i_2] incluído em cada pedaço de texto simples decodificado exceto pelo último pedaço de texto simples decodificado, e M_n’[m_1] obtido preenchendo-se o M’[m_1] ao tamanho n, e constatar uma marcação de autenticação de examinação de decodificação T’ como:
[00258] T’ = F_K((N, Tw_T_4), SUM’) presumindo a soma de verificação resultante SUM’, a quarta variável auxiliar (N, Tw_T_4) para marcação de autenticação, e uma função de criptografia F_K(*, *).
[00259] (Nota 19) O método de criptografia autenticada de acordo com qualquer uma das notas 13 a 18, em que uma função de criptografia é criptografia de bloco ajustável com duas variáveis de entrada que incluem uma variável auxiliar chamada Ajuste.
[00260] (Nota 20) O método de criptografia autenticada de acordo com qualquer uma das notas 13 a 18, em que uma função de criptografia é uma função de hash de chave com entrada acoplada de uma primeira variável e uma segunda variável.
[00261] (Nota 21) Um programa para criptografia autenticada para fazer com que um computador realize um entrada de texto simples processamento de inserção de um texto simples a ser criptografado e um vetor inicial, uma processamento de geração de variável auxiliar de geração de uma variável auxiliar dada a cada uma das funções de criptografia com base no vetor inicial e em um tamanho do texto simples de entrada, um processamento de criptografia de duas rodadas de Feistel de aplicação de uma estrutura de Feistel de duas rodadas a cada pedaço de texto simples ao dividir o texto simples em pedaços por dois blocos para gerar assim pedaços de texto criptografado correspondentes aos pedaços de texto simples, um processamento de cálculo de marcação de cálculo de uma soma de verificação do texto simples, e aplicação de uma função de criptografia designada com uma variável auxiliar à soma de verificação resultante para gerar assim uma marcação de autenticação, um processamento de criptografia de duas rodadas de Feistel de presumir um vetor inicial N, um índice de pedaço i, um i-ésimo pedaço de texto simples MC[i] = (M[i_1], M[i_2]), um par de variáveis auxiliares (N, Tw_i_1) e (N, Tw_i_2) correspondentes a dois blocos de texto simples incluído no pedaço de texto simples MC[i], e uma função de criptografia F_K(*, *), constatar um i-ésimo pedaço de texto criptografado CC[i] = (C[i_1], C[i_2]) como:C[i_1] = F_K((N, Tw_i_1), M[i_1]) xor M[i_2],
[00262] C[i_2] = F_K((N, Tw_i_2), C[i_1]) xor M[i_1], e um processamento de cálculo de marcação de cálculo de uma soma de verificação de um texto simples através do uso de um bloco de texto simples M[i_2] incluído em cada pedaço de texto simples, e presumindo a soma de verificação resultante SUM, uma variável auxiliar (N, Tw_T_1) dada a uma função de criptografia usada para gerar uma marcação de autenticação, e uma função de criptografia F_K(*, *), constatar uma marcação de autenticação T como: ET = F_K((N, Tw_T_1), SUM).
[00263] (Nota 22) O programa para criptografia autenticada de acordo com a nota 21, sendo o programa para fazer com que um computador realize um processamento de geração de variável auxiliar de geração de uma segunda variável auxiliar para marcação de autenticação como uma variável auxiliar dada a uma função de criptografia usada para gerar uma marcação de autenticação quando um texto simples de entrada for dividido em blocos pares e um tamanho do último bloco for menor do que um tamanho de bloco predeterminado, um processamento de criptografia de duas rodadas de Feistel de presumir um índice m do último pedaço de texto simples, o último bloco de texto simples M[m_2], o último pedaço de texto simples MC[m] = (M[m_1], M[m_2]), um par de variáveis auxiliares (N, Tw_m_1) e (N, Tw_m_2) correspondentes a dois blocos de texto simples incluído no último pedaço de texto simples MC[m], uma função de criptografia F_K(*, *), um tamanho s do último bloco de texto simples, um tamanho de bloco n, um processamento de preenchimento pad_n() do tamanho s ao tamanho n, e um processamento de corte cut_s() do tamanho n ao tamanho s, constatar o último pedaço de texto criptografado CC[m] = (C[m_1], C[m_2]) que inclui o último bloco de texto criptografado C[m_2] com tamanho s como: C[m_2] = cut_s(Z) xor M[m_2], C[m_1] = F_K((N, Tw_m_2), pad_n(C[m_2])) xor M[m_1]
[00264] em que Z = F_K((N, Tw_m_1), M[m_1]), e um segundo processamento de cálculo de marcação de cálculo de uma soma de verificação de um texto simples através do uso de um bloco de texto simples M[i_2] incluído em cada pedaço de texto simples exceto pelo último pedaço de texto simples, o Z, e C_n[m_2] obtido preenchendo-se o C[m_2] ao tamanho n, e constatar uma marcação de autenticação T como:
[00265] T = F_K((N, Tw_T_2), SUM) presumindo a soma de verificação resultante SUM, a segunda variável auxiliar (N, Tw_T_2) para marcação de autenticação e uma função de criptografia F_K(*, *).
[00266] (Nota 23) O programa for criptografia autenticada de acordo com a nota 21 ou note 22, o programa para fazer com que um computador realize um processamento de geração de variável auxiliar de geração de uma terceira variável auxiliar para marcação de autenticação como uma variável auxiliar dada a uma função de criptografia usada para gerar uma marcação de autenticação quando um texto simples de entrada for dividido em blocos ímpares e um tamanho do último bloco for igual a um tamanho de bloco predeterminado, e gerar uma quarta variável auxiliar para marcação de autenticação como uma variável auxiliar dada a uma função de criptografia usada para gerar uma marcação de autenticação quando um texto simples de entrada for dividido em blocos ímpares e um tamanho do último bloco for menor do que um tamanho de bloco predeterminado, um processamento de criptografia de duas rodadas de Feistel de presumir um índice m do último pedaço de texto simples, o último bloco de texto simples M[m_1], o último pedaço de texto simples MC[m] = (M[m_1]), uma variável auxiliar (N, Tw_m_1) correspondente ao último bloco de texto simples, uma função de criptografia F_K(*, *), um tamanho s do último bloco de texto simples, um tamanho de bloco n, e um processamento de corte cut_s() do tamanho n ao tamanho s, constatar o último pedaço de texto criptografado CC[m] = (C[m_1]) que inclui o último bloco de texto criptografado C[m_1] com tamanho s como:C[m_1] = cut_s(F_K((N, Tw_m_1), 0An)) xor M[m_1]
[00267] em que se s = n, cut_s() pode ser omitido, e um processamento de cálculo de marcação de cálculo de uma soma de verificação de um texto simples em s = n através do uso de um bloco de texto simples M[i_2] incluído em cada pedaço de texto simples exceto pelo último pedaço de texto simples, e pelo C[m_1], que constata uma marcação de autenticação T como:
[00268] T = F_K((N, Tw_T_3), SUM) presumindo a soma de verificação resultante SUM, a terceira variável auxiliar (N, Tw_T_3) para marcação de autenticação, e uma função de criptografia F_K(*, *), calcular uma soma de verificação de um texto simples em s < n através do uso de um bloco de texto simples M[i_2] incluído em cada pedaço de texto simples exceto pelo último pedaço de texto simples, e C_n[m_1] obtido preenchendo-se o C[m_1] ao tamanho n, e constatar uma marcação de autenticação T como:
[00269] T = F_K((N, Tw_T_4), SUM) presumindo a soma de verificação resultante SUM, a quarta variável auxiliar (N, Tw_T_4) para marcação de autenticação, e uma função de criptografia F_K(*, *).
[00270] (Nota 24) Um programa for criptografia autenticada que faz com que um computador realize um texto criptografado input processamento de inserção de um texto criptografado a ser decodificado, um vetor inicial e uma marcação de autenticação, um decodificação processamento de geração de variável auxiliar de geração da mesma variável auxiliar que na criptografia, que é dada a cada uma das funções de criptografia, com base no vetor inicial e em um tamanho do texto criptografado de entrada, um processamento de decodificação de Feistel de duas rodadas de aplicação de uma estrutura de Feistel de duas rodadas a cada pedaço de texto criptografado ao dividir o texto criptografado em pedaços por dois blocos para gerar assim pedaços de texto simples decodificado correspondentes aos pedaços de texto criptografado, um processamento de cálculo de marcação de examinação de decodificação de cálculo de uma soma de verificação do texto simples decodificado, e aplicar uma função de criptografia designada com uma variável auxiliar à soma de verificação resultante para gerar assim uma marcação de autenticação de examinação de decodificação, um processamento de determinação ode determinação de se a decodificação foi bem-sucedida ou falhou com base na marcação de autenticação de examinação de decodificação gerada pelo meio de cálculo de marcação de examinação de decodificação e a marcação de autenticação de entrada, um processamento de decodificação de Feistel de duas rodadas de, presumindo um vetor inicial N, um índice de pedaço i, um i-ésimo pedaço de texto criptografado CC[i] = (C[i_1], C[i_2]), um par de variáveis auxiliares (N, Tw_i_1) e (N, Tw_i_2) correspondentes a dois blocos de texto criptografado incluídos no pedaço de texto criptografado CC[i], e uma função de criptografia F_K(*, *), constatar um i-ésimo pedaço de texto simples decodificado MC’[i] = (M’[i_1], M’[i_2]) como:M’[i_1] = F_K((N, Tw_i_2), C[i_1]) xor C[i_2],
[00271] M’[i_2] = F_K((N, Tw_i_1), M’[i_1]) xor C[i_1], e um processamento de cálculo de marcação de examinação de decodificação de cálculo de uma soma de verificação de um texto simples decodificado através do uso de cada bloco de texto simples decodificado M’[i_2] incluído em cada pedaço de texto simples decodificado e constatar uma marcação de autenticação de examinação de decodificação T’ como:
[00272] T’ = F_K((N, Tw_T_1), SUM’) presumindo a soma de verificação resultante SUM’, uma variável auxiliar (N, Tw_T_1) dada a uma função de criptografia usada para gerar uma marcação de autenticação de examinação de decodificação, e uma função de criptografia F_K(*, *).
[00273] (Nota 25) O programa para criptografia autenticada de acordo com a nota 24, o programa para fazer com que um computador realize um decodificação processamento de geração de variável auxiliar de geração da mesma segunda variável auxiliar para marcação de autenticação que na criptografia como uma variável auxiliar dada a uma função de criptografia usada para gerar uma marcação de autenticação de examinação de decodificação quando um texto criptografado de entrada for dividido em blocos pares e um tamanho do último bloco for menor do que um tamanho de bloco predeterminado, um processamento de decodificação de Feistel de duas rodadas de, presumindo um índice m do último pedaço de texto criptografado, o último bloco de texto criptografado C[m_2], o último pedaço de texto criptografado CC[m] = (C[m_1], C[m_2]), um par de variáveis auxiliares (N, Tw_m_1) e (N, Tw_m_2) correspondentes a dois blocos de texto criptografado incluídos no último pedaço de texto criptografado CC[m], uma função de criptografia F_K(*, *), um tamanho s do último bloco de texto criptografado, um tamanho de bloco n, um processamento de preenchimento pad_n() do tamanho s ao tamanho n, e um processamento de corte cut_s() do tamanho n ao tamanho s, constatar o último pedaço de texto simples decodificado MC’[m] = (M’[m_1], M’[m_2]) que inclui o último bloco de texto simples decodificado M’[m_2] com tamanho s como:M’[m_1] = F_K((N, Tw_m_2), pad_n(C[m_2])) xor C[m_1], M’[m_2] = cut_s(Z’) xor C[m_2],
[00274] em que Z’ = F_K((N, Tw_m_1), M’[m_1]), e um processamento de cálculo de marcação de examinação de decodificação de cálculo de uma soma de verificação de um texto simples decodificado através do uso de um bloco de texto simples decodificado M[i_2] incluído em cada pedaço de texto simples decodificado exceto pelo último pedaço de texto simples decodificado, o Z’, e M_n’[m_2] obtido preenchendo-se o M’[m_2] ao tamanho n, e constatar uma marcação de autenticação de examinação de decodificação T’ como:
[00275] T’ = F_K((N, Tw_T_2), SUM’) presumindo a soma de verificação resultante SUM’, a segunda variável auxiliar (N, Tw_T_2) para marcação de autenticação, e uma função de criptografia F_K(*, *).
[00276] (Nota 26) o programa para criptografia autenticada de acordo com a nota 24 ou note 25, sendo que o programa faz com que um computador realize uma processamento de geração de variável auxiliar de geração da mesma terceira variável auxiliar para marcação de autenticação que na criptografia como uma variável auxiliar dada a uma função de criptografia usada para gerar uma marcação de autenticação de examinação de decodificação quando um texto criptografado de entrada for dividido em blocos ímpares e um tamanho do último bloco for igual a um tamanho de bloco predeterminado, e gera a mesma quarta variável auxiliar para marcação de autenticação que na criptografia como uma variável auxiliar dada a uma função de criptografia usada para gerar uma marcação de autenticação de examinação de decodificação quando um texto criptografado de entrada for dividido em blocos ímpares e um tamanho do último bloco for menor do que um tamanho de bloco predeterminado, um processamento de decodificação de Feistel de duas rodadas de, presumindo um índice m do último pedaço de texto criptografado, o último bloco de texto criptografado C[m_1], o último pedaço de texto criptografado CC[m] = (C[m_1]), uma variável auxiliar (N, Tw_m_1) correspondente ao último bloco de texto criptografado, uma função de criptografia F_K(*, *), um tamanho s do último bloco de texto criptografado, um tamanho de bloco n, e um processamento de corte cut_s() do tamanho n ao tamanho s, constatar o último pedaço de texto simples decodificado MC’[m] = (M’[m_1]) que inclui o último bloco de texto simples decodificado M’[m_1] com tamanho s como: M’[m_1] = cut_s(F_K((N, Tw_m_1), 0An)) xor [m_1]
[00277] em que se s = n, cut_s() pode ser omitido, e um processamento de cálculo de marcação de examinação de decodificação de cálculo de uma soma de verificação de um texto simples decodificado em s = n através do uso de um bloco de texto simples M’[i_2] incluído em cada pedaço de texto simples decodificado exceto pelo último pedaço de texto simples decodificado, e o M’[m_1], que constata uma marcação de autenticação de examinação de decodificação T’ como:
[00278] T’ = F_K((N, Tw_T_3), SUM’) presumindo a soma de verificação resultante SUM’, a terceira variável auxiliar (N, Tw_T_3) para marcação de autenticação, e uma função de criptografia F_K(*, *), calcular uma soma de verificação de um texto simples decodificado em s < n através do uso de um bloco de texto simples M’[i_2] incluído em cada pedaço de texto simples decodificado exceto pelo último pedaço de texto simples decodificado, e M_n’[m_1] obtido preenchendo-se o M’[m_1] ao tamanho n, e constatar uma marcação de autenticação de examinação de decodificação T’ como:
[00279] T’ = F_K((N, Tw_T_4), SUM’) presumindo a soma de verificação resultante SUM’, a quarta variável auxiliar (N, Tw_T_4) para marcação de autenticação, e uma função de criptografia F_K(*, *).
[00280] (Nota 27) O programa for criptografia autenticada de acordo com qualquer uma das notas 21 a 26, em que uma função de criptografia é criptografia de bloco ajustável com duas variáveis de entrada que incluem uma variável auxiliar chamada Ajuste.
[00281] (Nota 28) O programa for criptografia autenticada de acordo com qualquer uma das notas 21 a 26, em que uma função de criptografia é uma função de hash de chave com entrada acoplada de uma primeira variável e uma segunda variável.
[00282] O presente pedido reivindica uma prioridade com base no Pedido de Patente no JP 2013-161446 depositado em sexta-feira, 2 de agosto de 2013, cuja revelação é incorporada ao presente documento a título de referência.
Aplicabilidade Industrial
[00283] A presente invenção é adequadamente aplicável a aplicações tais como criptografia, autenticação de mensagem, e proteção de armazenamento tal como banco de dados em comunicação de dados com fio ou sem fio. LISTA DE REFERÊNCIAS NUMÉRICAS 30, 60 meio de criptografia autenticada 10, 61 meio de criptografia 101 meio de entrada 611 meio de entrada de texto simples 102, 612 meio de geração de variável auxiliar 103, 613 meio de criptografia de Feistel de duas rodadas 104, 614 meio de cálculo de marcação 105, meio de saída 20, 62 meio de decodificação 201 meio de entrada 621 meio de entrada de texto criptografado 202 meio de geração de variável auxiliar 622 meio de geração de variável auxiliar de decodificação 203 , 623 meio de decodificação de Feistel de duas rodadas 204 , 624 meio de cálculo de marcação de examinação de decodificação 205 , 625 meio de determinação 206 meio de saída

Claims (8)

1. Dispositivo de criptografia autenticada, caracterizado pelo fato de que compreende: um meio de criptografia autenticada (30) para aplicar uma estrutura de Feistel em duas rodadas, por dois blocos, para um texto simples de entrada para, deste modo, gerar um texto criptografado, a estrutura de Feistel em duas rodadas usando uma função de criptografia atribuída com uma variável auxiliar como uma função de arredondamento e aplicar a função de criptografia a uma soma de verificação calculada usando alguns bits no texto simples de entrada para, deste modo, gerar uma etiqueta de autenticação, em que o meio de criptografia autenticada (30) compreende um meio de criptografia (10), o meio de criptografia (10) compreende: um meio de entrada de texto simples (101) para inserir um texto simples a ser criptografado e um vetor inicial; um meio de geração de variável auxiliar (102) para gerar uma variável auxiliar fornecida a cada uma das funções de criptografia com base no vetor inicial e um tamanho do texto simples de entrada; um meio de criptografia de Feistel em duas rodadas (103) para aplicar uma estrutura de Feistel em duas rodadas a cada trecho de texto simples ao dividir o texto simples em partes por dois blocos para, deste modo, gerar trechos de texto criptografado que correspondem aos trechos de texto simples; e um meio de calcula de etiqueta (104) para calcular uma soma de verificação do texto simples e aplicar uma função de criptografia atribuída com uma variável auxiliar à soma de verificação resultante para, deste modo, gerar uma etiqueta de autenticação, assumindo um vetor inicial N, um índice de trecho i, um i- ésimo trecho de texto criptografado MC[i] = (M[i_1], M[i_2]), um par de variáveis auxiliares (N, Tw_i_1) e (N, Tw_i_2) que correspondem a dois blocos de texto criptografado incluídos no trecho de texto criptografado MC[i] e uma função de criptografia F_K(*, *), o meio de decodificação de Feistel em duas rodadas (103) é adaptado para encontrar um i-ésimo trecho de texto simples criptografado CC[i] = (C[i_1], C[i_2]) como: C[i_1] = F_K((N, Tw_i_1), M[i_1]) xor M[i_2], C[i_2] = F_K((N, Tw_i_2), C[i_1]) xor M[i_1], e o meio de cálculo de etiqueta (104) é adaptado para calcular uma soma de verificação de um texto simples através do uso de um bloco de texto simples M[i_2] incluído em cada trecho de texto simples e assumindo a soma de verificação resultante SUM, uma variável auxiliar (N, Tw_T_1) fornecida a um função de criptografia usada para gerar uma etiqueta de autenticação, e uma função de criptografia F_K (*, *), é adaptada para encontrar uma etiqueta de autenticação T como: T = F_K ((N, Tw_T_1), SUM), em que, quando um texto simples de entrada é dividido em blocos pares e um tamanho do último bloco é menor do que um tamanho de bloco predeterminado, o meio de geração de variável auxiliar (102) é adaptado para gerar uma segunda variável auxiliar para a etiqueta de autenticação como uma variável auxiliar fornecida a uma função de criptografia usada para gerar uma etiqueta de autenticação, o meio de criptografia (10) compreende: um segundo meio de criptografia de Feistel em duas rodadas para, quando um texto simples de entrada é dividido em blocos pares e um tamanho do último bloco é menor do que um tamanho de bloco predeterminado, aplicar uma estrutura de Feistel em duas rodadas predeterminada ao último trecho de texto simples que inclui o último bloco de texto simples, para, deste modo gerar o último trecho de texto criptografado que inclui o último bloco de texto criptografado; e um segundo meio de cálculo de etiqueta, quando um texto simples de entrada é dividido em blocos pares e um tamanho do último bloco é menor do que um tamanho de bloco predeterminado, calcular uma soma de verificação de um texto simples usando o texto simples de entrada e o resultado do meio de criptografia de Feistel em duas rodadas, e aplicar uma função de criptografia atribuída com uma variável auxiliar à soma de verificação resultante para, deste modo, gerar uma etiqueta de autenticação, assumindo um índice m do último trecho de texto simples, o último bloco de texto simples M[m_2], o último trecho de texto simples MC[m] = (M[m_1], M[m_2]), um par de variáveis auxiliares (N, Tw_m_1) e (N, Tw_m_2) que correspondem a dois blocos de texto simples incluídos no último trecho de texto simples MC[m], uma função de criptografia F_K (*, *), um tamanho s do último bloco de texto simples, um tamanho de bloco n, um preenchimento de processamento pad_n () de s bits a n bits e um corte de processamento cut_s () de n bits a s bits, o segundo meio de criptografia de Feistel em duas rodadas é adaptado para encontrar o último trecho de texto criptografado CC[m] = (C[m_1], C[m_2]) que inclui o último bloco de texto criptografado C[m_2] com s bits como: C[m_2] = cut_s(Z) xor M[m_2], C[m_1] = F_K((N, Tw_m_2), pad_n(C[m_2])) xor M[m_1] onde Z = F_K((N, Tw_m_1), M[m_1]), e o segundo meio de cálculo de etiqueta é adaptado para calcular uma soma de verificação de um texto simples usando um bloco de texto simples M[i_2] incluído em cada trecho de texto simples, exceto o último trecho de texto simples, o Z e C_n[m_2] obtidos ao preencher o C[m_2] para n bits e é adaptado para encontrar uma etiqueta de autenticação T como: T = F_K ((N, Tw_T_2), SUM) assumindo a soma de verificação resultante SUM, a segunda variável auxiliar (N, Tw_T_2) para uma etiqueta de autenticação e uma função de criptografia F_K (*, *).
2. Dispositivo de criptografia autenticada caracterizado pelo fato de que compreende: um meio de criptografia autenticada (30) para aplicar uma estrutura de Feistel em duas rodadas, por dois blocos, a um texto criptografado para, deste modo, gerar um texto simples decodificado, a estrutura de Feistel em duas rodadas usando uma função de criptografia atribuída com uma variável auxiliar como uma função de arredondamento e aplicando a função de criptografia a uma soma de verificação calculada através do uso de alguns bits no texto simples decodificado para gerar uma etiqueta de autenticação, em que o meio de criptografia autenticada (30) compreende um meio de decodificação (20), o meio de decodificação (20) compreende: um meio de entrada de texto criptografado (201) para inserir um texto criptografado a ser decodificado, um vetor inicial e uma etiqueta de autenticação; um meio de geração de variável de decodificação auxiliar (202) para, deste modo, gerar a mesma variável auxiliar conforme na criptografia, a qual é fornecida a cada uma das funções de criptografia, com base no vetor inicial e um tamanho do texto criptografado de entrada; um meio de decodificação de Feistel em duas rodadas (203) para aplicar uma estrutura de Feistel em duas rodadas a cada trecho de texto criptografado ao dividir o texto criptografado em trechos por dois blocos, deste modo, gerando trechos de texto simples decodificado que correspondem aos trechos de texto criptografado; um meio de cálculo da etiqueta de exame de decodificação (204) para calcular uma soma de verificação do texto simples decodificado e aplicar uma função de criptografia atribuída com uma variável auxiliar à soma de verificação resultante para, deste modo, gerar uma etiqueta de autenticação de exame de decodificação; e um meio de determinação (205) para determinar se a decodificação teve sucesso ou falhou com base na etiqueta de autenticação de exame de decodificação gerada pelo meio de cálculo de etiqueta de exame de decodificação (204) e a etiqueta de autenticação de entrada, assumindo um vetor inicial N, um índice de trecho i, um i- ésimo trecho de texto criptografado CC[i] = (C[i_1], C[i_2]), um par de variáveis auxiliares (N, Tw_i_1) e (N, Tw_i_2) que correspondem a dois blocos de texto criptografados incluídos no trecho de texto criptografado CC[i] e uma função de criptografia F_K (*, *), o meio de decodificação de Feistel em duas rodadas (203) é adaptado para encontrar um i-ésimo trecho de texto simples decodificado MC'[i] = (M'[i_1], M'[i_2]) como: M’[i_1] = F_K((N, Tw_i_2), C[i_1]) xor C[i_2], M’[i_2] = F_K((N, Tw_i_1), M’[i_1]) xor C[i_1], e o meio de cálculo da etiqueta de exame de decodificação (204) é adaptado para calcular uma soma de verificação de um texto simples decodificado usando cada bloco de texto simples decodificado M'[i_2] incluído em cada trecho de texto simples decodificado e é adaptado para encontrar uma etiqueta de autenticação de exame de decodificação T' como: T'= F_K ((N, Tw_T_1), SUM') assumindo a soma de verificação resultante SUM', uma variável auxiliar (N, Tw_T_1) fornecida a uma função de criptografia usada para gerar uma etiqueta de autenticação de exame de decodificação e uma função de criptografia F_K (* *), em que, quando um texto criptografado de entrada é dividido em blocos pares e um tamanho do último bloco é menor do que um tamanho de bloco predeterminado, o meio de geração de variável de decodificação auxiliar (202) é adaptado para, deste modo, gerar a mesma segunda variável auxiliar para etiqueta de autenticação conforme na criptografia como uma variável auxiliar fornecida a uma função de criptografia usada para gerar uma etiqueta de autenticação de exame de decodificação, o meio de decodificação (20) compreende: um segundo meio de decodificação de Feistel em duas rodadas para, quando um texto criptografado de entrada é dividido em blocos pares e um tamanho do último bloco é menor do que um tamanho de bloco predeterminado, aplicar uma estrutura de Feistel em duas rodadas predeterminada ao último trecho de texto criptografado que inclui o último bloco de texto criptografado para, deste modo, gerar o último trecho de texto simples decodificado que inclui um bloco de texto simples decodificado do último bloco criptografado; e um segundo meio de cálculo de etiqueta de exame de decodificação para, quando um texto criptografado de entrada é dividido em blocos pares e um tamanho do último bloco é menor do que um tamanho de bloco predeterminado, calcular uma soma de verificação de um texto simples decodificado usando o resultado do meio de decodificação de Feistel em duas rodadas (203), emitir do segundo meio de decodificação de Feistel em duas rodadas e o último bloco de texto criptografado, e aplicar uma função de criptografia atribuída com uma variável auxiliar à soma de verificação resultante para, deste modo, gerar uma etiqueta de autenticação de exame de decodificação, assumindo um índice m do último trecho de texto criptografado, o último bloco de texto criptografado C[m_2], o último trecho de texto criptografado CC[m] = (C[m_1], C[m_2]), um par de variáveis auxiliares (N , Tw_m_1) e (N, Tw_m_2) que correspondem a dois blocos de texto criptografados incluídos no último trecho de texto criptografado CC[m], uma função de criptografia F_K (*, *), um tamanho s do último bloco de texto criptografado, um tamanho de bloco n, um processamento de preenchimento pad_n () de s bits a n bits e um processamento de corte cut_s () de n bits a s bits, o segundo meio de decodificação de Feistel em duas rodadas é adaptado para encontrar o último trecho de texto simples decodificado MC'[m] = (M'[m_1], M'[m_2]) que incluio último bloco de texto simples decodificado M'[m_2] com s bits como: M’[m_1] = F_K((N, Tw_m_2), pad_n(C[m_2])) xor C[m_1], M’[m_2] = cut_s(Z’) xor C[m_2], onde Z’ = F_K((N, Tw_m_1), M’[m_1]), e o segundo meio de cálculo da etiqueta de exame de decodificação é adaptado para calcular uma soma de verificação de um texto simples decodificado através do uso de um bloco de texto simples decodificado M'[i_2] incluído em cada trecho de texto simples decodificado, exceto o último trecho de texto simples decodificado, o Z' e C_n[m_2] obtidos ao preencher C[m_2] para n bits e é adaptado para encontrar uma etiqueta de autenticação de exame de decodificação T' como: T'= F_K ((N, Tw_T_2), SUM’) assumindo a soma de verificação resultante SUM', a segunda variável auxiliar (N, Tw_T_2) para uma etiqueta de autenticação e uma função de criptografia F_K (*, *).
3. Dispositivo de criptografia autenticada, de acordo com a reivindicação 1, caracterizado pelo fato de que o meio de geração de variável auxiliar (102) é adaptado para, deste modo, gerar uma terceira variável auxiliar para etiqueta de autenticação como uma variável auxiliar fornecida a uma função de criptografia usada para gerar uma etiqueta de autenticação quando um texto simples de entrada é dividido em blocos ímpares e um tamanho do último bloco é o mesmo que um tamanho de bloco predeterminado e é adaptado para, deste modo, gerar uma quarta variável auxiliar para etiqueta de autenticação como uma variável auxiliar fornecida a uma função de criptografia usada para gerar uma etiqueta de autenticação quando um texto simples de entrada é dividido em blocos ímpares e um tamanho do último bloco é menor do que um tamanho de bloco predeterminado, o meio de criptografia (10) compreende: um meio de criptografia de Feistel de uma rodada para, quando um texto simples de entrada é divido em blocos impares, aplicar uma estrutura de Feistel de uma rodada predeterminada ao último trecho de texto simples que inclui o último bloco de texto simples para, deste modo, gerar o último trecho de texto criptografado que inclui o último bloco de texto criptografado; e um terceiro meio de cálculo de etiqueta para, quando um texto simples de entrada é divido em blocos impares, calcular uma soma de verificação de um texto simples usando o texto simples de entrada e o resultado do meio de criptografia de Feistel de uma rodada e aplicar uma função de criptografia atribuída com uma variável auxiliar à soma de verificação resultante para, deste modo, gerar uma etiqueta de autenticação, assumindo um índice m do último trecho de texto simples, o último bloco de texto simples M[m_1], o último trecho de texto simples MC[m] = (M[m_1]), uma variável auxiliar (N, Tw_m_1) que corresponde ao último bloco de texto simples, uma função de criptografia F_K(*, *), um tamanho s do último bloco de texto simples, um tamanho de bloco n e um processamento de corte cut_s() de n bits a s bits, o meio de criptografia de Feistel de uma rodada é adaptado para encontrar o último trecho de texto criptografado CC[m] = (C[m_1]) que inclui o último bloco de texto criptografado C[m_1] com s bits como: C[m_1] = cut_s(F_K((N, Tw_m_1), 0An)) xor M[m_1] onde, se s = n, cut_s() pode ser omitido, e o terceiro meio de cálculo de etiqueta é adaptado para calcular uma soma de verificação de um texto simples através do uso de um bloco de texto simples M[i_2] incluído em cada trecho de texto simples, exceto o último trecho de texto simples e M_n[m_1] (em que, se s = n, o processamento de preenchimento pode ser omitido) obtido ao preencher o M[m_1] para n bits e é adaptado para encontrar uma etiqueta de autenticação T como: T’ = F_K((N, Tw_T_3), SUM’) assumindo a soma de verificação resultante SUM’, a terceira variável auxiliar (N, Tw_T_3) para uma etiqueta de autenticação, e uma função de criptografia F_K(*, *).
4. Dispositivo de criptografia autenticada, de acordo com a reivindicação 2, caracterizado pelo fato de que o meio de geração de variável auxiliar (202) é adaptado para, deste modo, gerar a mesma terceira variável auxiliar para a etiqueta de autenticação conforme na criptografia como uma variável auxiliar fornecida a uma função de criptografia usada para gerar uma etiqueta de autenticação de exame de decodificação quando um texto criptografado de entrada é dividido em blocos ímpares e um tamanho do último bloco é o mesmo que um tamanho de bloco predeterminado e é adaptado para, deste modo, gerar a mesma quarta variável auxiliar para etiqueta de autenticação conforme na criptografia como uma variável auxiliar fornecida a uma função de criptografia usada para gerar uma etiqueta de autenticação de exame de decodificação quando um texto criptografado de entrada é dividido em blocos ímpares e um tamanho do último bloco é menor do que um tamanho de bloco predeterminado, o meio de decodificação (20) compreende: um meio de decodificação de Feistel de uma rodada para, quando um texto criptografado é dividido em blocos ímpares, aplicar uma estrutura de Feistel de uma rodada predeterminada ao último trecho de texto criptografado que inclui o último bloco de texto criptografado para, deste modo, gerar o último trecho de texto simples criptografado que inclui o último bloco de texto simples decodificado; e um terceiro meio de cálculo de etiqueta de exame de decodificação para, quando um texto criptografado de entrada é dividido em blocos ímpares, calcular uma soma de verificação de um texto simples decodificado usando o resultado do meio de decodificação de Feistel em duas rodadas e o resultado do meio de decodificação de Feistel de uma rodada e aplicar uma função de criptografia atribuída com uma variável auxiliar à soma de verificação resultante para, deste modo, assim uma etiqueta de autenticação de exame de decodificação, assumindo um índice m do último trecho de texto criptografado, o último bloco de texto criptografado C[m_1], o último trecho de texto criptografado CC[m] = (C[m_1]), uma variável auxiliar (N, Tw_m_1) que corresponde ao último bloco de texto criptografado, uma função de criptografia F_K(*, *), um tamanho s do último bloco de texto criptografado, um tamanho de bloco n e um processamento de corte cut_s() de n bits a s bits, o meio de decodificação de Feistel de uma rodada é adaptado para encontrar o último trecho de texto simples decodificado MC’[m] = (M’[m_1]) que inclui o último bloco de texto simples decodificado M’[m_1] com s bits como: M’[m_1] = cut_s(F_K((N, Tw_m_1), 0An)) xor [m_1] onde, se s = n, cut_s() pode ser omitido, e o terceiro meio de cálculo de etiqueta de exame de decodificação calcula a soma de verificação de um texto simples decodificado usando um bloco de texto simples M’[i_2] incluído em cada trecho de texto simples decodificado, exceto o último trecho de texto simples decodificado e M_n’[m_1] (em que se s = n, o processamento de preenchimento pode ser omitido) obtido ao preencher o M’[m_1] para n bits e é adaptado para encontrar uma etiqueta de autenticação de exame de decodificação T’ como: T’ = F_K((N, Tw_T_3), SUM’) assumindo a soma de verificação resultante SUM’, a terceira variável auxiliar (N, Tw_T_3) para uma etiqueta de autenticação, e uma função de criptografia F_K(*, *).
5. Dispositivo de criptografia autenticada, de acordo com qualquer uma das reivindicações 1 a 4, caracterizado pelo fato de que uma função de criptografia é criptografia de bloco Ajustável com duas variáveis de entrada que incluem uma variável auxiliar denominada Ajuste.
6. Dispositivo de criptografia autenticada, de acordo com qualquer uma das reivindicações 1 a 4, caracterizado pelo fato de que uma função de criptografia é uma função de hash de chave com entrada acoplada de uma primeira variável e uma segunda variável.
7. Método de criptografia autenticada, caracterizado pelo fato de que um dispositivo de processamento de informações aplica uma estrutura de Feistel em duas rodadas, por dois blocos, a um texto simples de entrada para, deste modo, gerar um texto criptografado, a estrutura Feistel em duas rodadas usando uma função de criptografia atribuída com uma variável auxiliar como uma função de rodada, e aplica a função de criptografia a uma soma de verificação calculada usando alguns n bits no texto simples de entrada para, deste modo, gerar uma etiqueta de autenticação, em que: o dispositivo de processamento de informações realiza um processamento de criptografia, no processamento de criptografia, o dispositivo de processamento de informações realiza: um processamento de entrada de texto simples para inserir um texto simples a ser criptografado e um vetor inicial; um processamento de geração de variável auxiliar para gerar uma variável auxiliar fornecida a cada uma das funções de criptografia com base no vetor inicial e um tamanho do texto simples de entrada; um processamento de criptografia de Feistel em duas rodadas para aplicar uma estrutura de Feistel em duas rodadas a cada trecho de texto simples ao dividir o texto simples em trechos por dois blocos para, deste modo, gerar trechos de texto criptografado que correspondem aos trechos de texto simples; e um processamento de cálculo de etiqueta para calcular uma soma de verificação do texto simples, e aplicar uma função de criptografia atribuída com uma variável auxiliar à soma de verificação resultante para, deste modo, gerar uma etiqueta de autenticação, assumindo um vetor inicial N, um índice de trecho i, um i- ésimo trecho de texto simples MC[i] = (M[i_1], M[i_2]), um par de variáveis auxiliares (N, Tw_i_1) e (N, Tw_i_2) que correspondem a dois blocos de texto simples incluídos no trecho de texto simples MC[i] e uma função de criptografia F_K (*, *), no processamento de criptografia de Feistel em duas rodadas, o dispositivo de processamento de informações encontra um i-ésimo trecho de texto criptografado CC[i ] = (C[i_1], C[i_2]) como: C[i_1] = F_K((N, Tw_i_1), M[i_1]) xor M[i_2], C[i_2] = F_K((N, Tw_i_2), C[i_1]) xor M[i_1], e no processamento de cálculo de etiqueta, o dispositivo de processamento de informações calcula uma soma de verificação de um texto simples usando um bloco de texto simples M[i_2] incluído em cada trecho de texto simples e assumindo a soma de verificação resultante SUM, uma variável auxiliar (N, Tw_T_1) fornecida a um função de criptografia usada para gerar uma etiqueta de autenticação e uma função de criptografia F_K (*, *), encontra uma etiqueta de autenticação T como: T = F_K((N, Tw_T_1), SUM), em que, quando um texto simples de entrada é dividido em blocos pares e um tamanho do último bloco é menor do que um tamanho de bloco predeterminado, no processamento de geração de variável auxiliar, o dispositivo de processamento de informações gera uma segunda variável auxiliar para etiqueta de autenticação como uma variável auxiliar fornecida a uma função de criptografia usada para gerar uma etiqueta de autenticação, no processamento de criptografia, o dispositivo de processamento de informações realiza: um segundo processamento de criptografia de Feistel em duas rodadas, quando um texto simples de entrada é dividido em blocos pares e um tamanho do último bloco é menor do que um tamanho de bloco predeterminado, para aplicar uma estrutura de Feistel em duas rodadas predeterminada ao último trecho de texto simples que inclui o último bloco de texto simples para, deste modo, gerar o último bloco de texto criptografado que inclui o último bloco de texto criptografado; e um segundo processamento de cálculo de etiqueta, quando um texto simples de entrada é dividido em blocos pares e um tamanho do último bloco é menor do que um tamanho de bloco predeterminado, para calcular uma soma de verificação de um texto simples usando o texto simples de entrada e o resultado do processamento de criptografia de Feistel em duas rodadas e aplicar uma função de criptografia atribuída com uma variável auxiliar à soma de verificação resultante para, deste modo, gerar uma etiqueta de autenticação, assumindo um índice m do último trecho de texto simples, o último bloco de texto simples M[m_2], o último trecho de texto simples MC[m] = (M[m_1], M[m_2]), um par de variáveis auxiliares (N, Tw_m_1) e (N, Tw_m_2) que correspondem a dois blocos de texto simples incluídos no último trecho de texto simples MC[m], uma função de criptografia F_K (*, *), um tamanho s do último bloco de texto simples, um tamanho de bloco n, um preenchimento de processamento pad_n () de s bits a n bits e um corte de processamento cut_s () de n bits a s bits, no segundo processamento de criptografia de Feistel em duas rodadas, o dispositivo de processamento de informações encontra o último trecho de texto criptografado CC[m] = (C[m_1], C[m_2]) que inclui o último bloco de texto criptografado C[m_2] com s bits como: C[m_2] = cut_s (Z) xor M[m_2], C[m_1] = F_K ((N, Tw_m_2), pad_n (C[m_2])) xor M[m_1] onde Z = F_K ((N, Tw_m_1), M[m_1]), e no segundo processamento de cálculo de etiqueta, o dispositivo de processamento de informações calcula uma soma de verificação de um texto simples usando um bloco de texto simples M[i_2] incluído em cada trecho de texto simples, exceto o último trecho de texto simples, o Z e C_n[m_2] obtidos ao preencher o C[m_2] para n bits e encontra uma etiqueta de autenticação T como: T = F_K ((N, Tw_T_2), SUM) assumindo a soma de verificação resultante SUM, a segunda variável auxiliar (N, Tw_T_2) para etiqueta de autenticação, e uma função de criptografia F_K (*, *).
8. Método de criptografia autenticada, caracterizado pelo fato de que um dispositivo de processamento de informações aplica uma estrutura de Feistel em duas rodadas, por dois blocos, a um texto criptografado para, deste modo, gerar um texto simples decodificado, a estrutura de Feistel em duas rodadas usando uma função de criptografia atribuída com uma variável auxiliar como uma função de arredondamento e aplica a função de criptografia a uma soma de verificação calculada usando alguns bits no texto simples decodificado para gerar uma etiqueta de autenticação, em que o dispositivo de processamento de informações realiza um processamento de decodificação, no processamento de decodificação, o dispositivo de processamento de informações realiza: um processamento de entrada de texto criptografado de entrada de um texto criptografado a ser decodificado, um vetor inicial e uma etiqueta de autenticação; um processamento de geração de variável de decodificação auxiliar para, deste modo, gerar a mesma variável auxiliar conforme na criptografia a qual é fornecida a cada uma das funções de criptografia com base no vetor inicial e um tamanho do texto criptografado de entrada; um processamento de decodificação de Feistel em duas rodadas para aplicar uma estrutura de Feistel em duas rodadas a cada trecho de texto criptografado ao dividir o texto criptografado em trechos por dois blocos para, deste modo, gerar trechos de texto simples decodificados que correspondem aos trechos de texto criptografado; um processamento de cálculo da etiqueta de exame de decodificação para calcular uma soma de verificação do texto simples decodificado e aplicar uma função de criptografia atribuída com uma variável auxiliar à soma de verificação resultante para, deste modo, gerar uma etiqueta de autenticação de exame de decodificação; e um processamento de determinação para determinar se a decodificação foi bem-sucedida ou falhou com base na etiqueta de autenticação de exame de decodificação gerada no processamento de cálculo da etiqueta de exame de decodificação e na etiqueta de autenticação de entrada, assumindo um vetor inicial N, um índice de trecho i, um i- ésimo trecho de texto criptografado CC[i] = (C[i_1], C[i_2]), um par de variáveis auxiliares (N, Tw_i_1) e (N, Tw_i_2) que correspondem a dois blocos de texto criptografados incluídos no trecho de texto criptografado CC[i] e uma função de criptografia F_K (*, *), no processamento de decodificação de Feistel em duas rodadas, o dispositivo de processamento de informações encontra um i-ésimo trecho de texto simples decodificado MC'[i] = (M'[i_1], M'[i_2]) como: M'[i_1] = F_K ((N, Tw_i_2), C[i_1]) xou C[i_2], M'[i_2] = F_K ((N, Tw_i_1), M’[i_1]) xou C[i_1], e no processamento de cálculo da etiqueta de exame de decodificação, o dispositivo de processamento de informações calcula uma soma de verificação de um texto simples decodificado usando cada bloco de texto simples decodificado M'[i_2] incluído em cada trecho de texto simples decodificado e encontra uma etiqueta de autenticação de exame de decodificação T' como: T'= F_K ((N, Tw_T_1), SUM') assumindo a soma de verificação resultante SUM', uma variável auxiliar (N, Tw_T_1) fornecida a uma função de criptografia usada para gerar uma etiqueta de autenticação de exame de decodificação e uma função de criptografia em que, quando um texto criptografado de entrada é dividido em blocos pares e um tamanho do último bloco é menor do que um tamanho de bloco predeterminado, no processamento de geração de variável de decodificação auxiliar, o dispositivo de processamento de informações gera a mesma segunda variável auxiliar para etiqueta de autenticação conforme na criptografia como uma variável auxiliar fornecida a uma função de criptografia usada para gerar uma etiqueta de autenticação de exame de decodificação, no processamento de decodificação, o dispositivo de processamento de informações realiza: um segundo processamento de decodificação de Feistel em duas rodadas, quando um texto criptografado de entrada é dividido em blocos pares e um tamanho do último bloco é menor do que um tamanho de bloco predeterminado, para aplicar uma estrutura de Feistel em duas rodadas predeterminada ao último bloco de texto criptografado que inclui o último bloco de texto criptografado para, deste modo, gerar o último trecho de texto simples decodificado que inclui um bloco de texto simples decodificado do último bloco criptografado; e um segundo processamento de cálculo de etiqueta de exame de decodificação, quando um texto criptografado de entrada é dividido em blocos pares e um tamanho do último bloco é menor do que um tamanho de bloco predeterminado, para calcular uma soma de verificação de um texto simples decodificado usando o resultado do processamento de decodificação de Feistel em duas rodadas, o resultado do segundo processamento de decodificação de Feistel em duas rodadas e o último bloco de texto criptografado e aplicar uma função de criptografia atribuída com uma variável auxiliar à soma de verificação resultante para, deste modo, gerar uma etiqueta de autenticação de exame de decodificação, assumindo um índice m do último trecho de texto criptografado, o último bloco de texto criptografado C[m_2], o último trecho de texto criptografado CC[m] = (C[m_1], C[m_2]), um par de variáveis auxiliares (N , Tw_m_1) e (N, Tw_m_2) que correspondem a dois blocos de texto criptografados incluídos no último trecho de texto criptografado CC[m], uma função de criptografia F_K (*, *), um tamanho s do último bloco de texto criptografado, um tamanho de bloco n, um processamento de preenchimento pad_n () de s bits a n bits e um processamento de corte cut_s () de n bits a s bits, no segundo processamento de decodificação de Feistel em duas rodadas, o dispositivo de processamento de informações encontra o último trecho de texto simples decodificado MC'[m] = (M'[m_1], M'[m_2]) que inclui o último bloco de texto simples decodificado M'[m_2] com s bits como: M'[m_1] = F_K ((N, Tw_m_2), pad_n (C[m_2])) xor C[m_1], M'[m_2] = cut_s (Z’) xor C[m_2], onde Z'= F_K ((N, Tw_m_1), M’[m_1]), e no segundo processamento de cálculo de etiqueta de exame de decodificação, o dispositivo de processamento de informações calcula uma soma de verificação de um texto simples decodificado usando um bloco de texto simples decodificado M'[i_2] incluído em cada trecho de texto simples decodificado, exceto o último trecho de texto simples decodificado, o Z' e C_n[m_2] obtidos ao preencher C[m_2] em n bits e encontra uma etiqueta de autenticação de exame de decodificação T' como: T'= F_K ((N, Tw_T_2), SUM’) assumindo a soma de verificação resultante SUM', a segunda variável auxiliar (N, Tw_T_2) para a etiqueta de autenticação, e uma função de criptografia F_K (*, *).
BR112016001596-7A 2013-08-02 2014-06-24 Dispositivo de criptografia autenticada e método de criptografia autenticada BR112016001596B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2013161446 2013-08-02
JP2013-161446 2013-08-02
PCT/JP2014/003382 WO2015015702A1 (ja) 2013-08-02 2014-06-24 認証暗号装置、認証暗号方法および認証暗号用プログラム

Publications (2)

Publication Number Publication Date
BR112016001596A2 BR112016001596A2 (pt) 2017-07-25
BR112016001596B1 true BR112016001596B1 (pt) 2023-04-11

Family

ID=52431268

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112016001596-7A BR112016001596B1 (pt) 2013-08-02 2014-06-24 Dispositivo de criptografia autenticada e método de criptografia autenticada

Country Status (9)

Country Link
US (1) US10341088B2 (pt)
EP (1) EP3029877B1 (pt)
JP (1) JP6519473B2 (pt)
KR (1) KR101809386B1 (pt)
CN (1) CN105453482B (pt)
AU (1) AU2014297854B2 (pt)
BR (1) BR112016001596B1 (pt)
RU (1) RU2647685C2 (pt)
WO (1) WO2015015702A1 (pt)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016517046A (ja) * 2013-04-24 2016-06-09 エヌイーシー ヨーロッパ リミテッドNec Europe Ltd. データを暗号化する方法およびシステム
US10404449B2 (en) * 2014-11-24 2019-09-03 Nec Corporation Method for encrypting data for distributed storage
JP6557727B2 (ja) * 2014-12-03 2019-08-07 ナグラビジョン エス アー メッセージを暗号化/復号化するためのブロック暗号方法及びこの方法を実施するための暗号装置
JP2017073716A (ja) * 2015-10-09 2017-04-13 日本電気株式会社 タグリスト生成装置、タグリスト検証装置、タグリスト更新装置、タグリスト生成方法及びプログラム
WO2018154623A1 (ja) 2017-02-21 2018-08-30 三菱電機株式会社 暗号化装置及び復号装置
WO2018193507A1 (ja) * 2017-04-17 2018-10-25 日本電気株式会社 認証タグ生成装置、認証タグ検証装置、方法及びプログラム
JP6881112B2 (ja) * 2017-07-10 2021-06-02 日本電信電話株式会社 暗号化データ生成装置、復号データ生成装置、追加データ付き認証暗号システム、その方法、及びプログラム
JP6881111B2 (ja) * 2017-07-10 2021-06-02 日本電信電話株式会社 暗号化データ生成装置、復号データ生成装置、追加データ付き認証暗号システム、その方法、及びプログラム
US11126718B2 (en) * 2017-07-12 2021-09-21 Acronis International Gmbh Method for decrypting data encrypted by ransomware
US11438137B2 (en) 2017-09-01 2022-09-06 Mitsubishi Electric Corporation Encryption device, decryption device, encryption method, decryption method, and computer readable medium
CN108155986A (zh) * 2017-12-14 2018-06-12 晶晨半导体(上海)股份有限公司 一种基于可信执行环境的密钥烧录系统及方法
KR102438784B1 (ko) * 2018-01-05 2022-09-02 삼성전자주식회사 데이터를 난독화 및 복호화 하는 전자 장치 및 그의 제어 방법
WO2019142306A1 (ja) * 2018-01-19 2019-07-25 ルネサスエレクトロニクス株式会社 半導体装置、データ提供方法、データ復号方法、およびプログラム
JP7323196B2 (ja) * 2018-02-21 2023-08-08 日本電気株式会社 暗号化装置、暗号化方法、プログラム、復号装置、復号方法
RU2694336C1 (ru) * 2018-05-08 2019-07-11 Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы" Способ аутентифицированного шифрования
WO2020065820A1 (ja) * 2018-09-27 2020-04-02 日本電気株式会社 Macタグリスト生成装置、macタグリスト検証装置、集約mac検証システム及び方法
US11728968B2 (en) 2018-11-07 2023-08-15 Nrc Corporation Authenticated encryption device, authenticated decryption device, authenticated encryption method, authenticated decryption method, authenticated encryption program, and authenticated decryption program
JP7367860B2 (ja) 2020-04-23 2023-10-24 日本電気株式会社 認証暗号化装置、認証復号装置、認証暗号システム、方法及びプログラム
CN112866288B (zh) * 2021-03-01 2022-09-06 上海海事大学 一种双明文传输的数据对称加密方法
CN113596824A (zh) * 2021-07-30 2021-11-02 深圳供电局有限公司 一种5g安全协议中认证失败明文信息的加密方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5623549A (en) 1995-01-30 1997-04-22 Ritter; Terry F. Cipher mechanisms with fencing and balanced block mixing
US6804355B1 (en) 2000-01-06 2004-10-12 Intel Corporation Block cipher for small selectable block sizes
JP2002049310A (ja) * 2000-08-04 2002-02-15 Toshiba Corp 暗復号装置、認証装置及び記憶媒体
US20020078342A1 (en) * 2000-09-25 2002-06-20 Broadcom Corporation E-commerce security processor alignment logic
CN100428751C (zh) * 2000-12-25 2008-10-22 松下电器产业株式会社 安全通信包处理装置及其方法
US7200227B2 (en) * 2001-07-30 2007-04-03 Phillip Rogaway Method and apparatus for facilitating efficient authenticated encryption
US7376826B2 (en) * 2002-05-31 2008-05-20 Broadcom Corporation Methods and apparatus for performing encryption and authentication
US7796752B2 (en) * 2002-11-04 2010-09-14 Marvell International Ltd. Cipher implementation
JP4561252B2 (ja) * 2004-09-03 2010-10-13 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP2006253746A (ja) * 2005-03-08 2006-09-21 N-Crypt Inc データ処理装置、データ処理システム、及びデータ処理方法
US8687800B2 (en) * 2006-08-15 2014-04-01 Alcatel Lucent Encryption method for message authentication
US9209967B2 (en) * 2007-03-12 2015-12-08 Exelis, Inc. Precalculated encryption key
US20090119510A1 (en) * 2007-11-06 2009-05-07 Men Long End-to-end network security with traffic visibility
JP5504592B2 (ja) * 2008-08-25 2014-05-28 ソニー株式会社 データ変換装置、およびデータ変換方法、並びにプログラム
EP2822215A1 (en) * 2012-03-02 2015-01-07 Sony Corporation Information processing device, information processing method, and programme
EP2909962B1 (en) * 2012-11-29 2018-02-28 BlackBerry Limited Authenticated encryption method using working blocks
TWI510046B (zh) * 2013-07-04 2015-11-21 Univ Nat Cheng Kung 認證式加解密方法
CN104683093B (zh) * 2013-11-27 2018-01-26 财团法人资讯工业策进会 兼具完整性验证的区块加密装置、区块加密方法、区块解密装置及区块解密方法

Also Published As

Publication number Publication date
AU2014297854A1 (en) 2016-02-04
JPWO2015015702A1 (ja) 2017-03-02
EP3029877B1 (en) 2018-04-11
US20160173276A1 (en) 2016-06-16
KR101809386B1 (ko) 2017-12-14
EP3029877A1 (en) 2016-06-08
RU2647685C2 (ru) 2018-03-16
BR112016001596A2 (pt) 2017-07-25
KR20160027982A (ko) 2016-03-10
WO2015015702A1 (ja) 2015-02-05
US10341088B2 (en) 2019-07-02
CN105453482A (zh) 2016-03-30
JP6519473B2 (ja) 2019-06-05
AU2014297854B2 (en) 2016-12-22
EP3029877A4 (en) 2017-03-15
RU2016107391A (ru) 2017-09-07
CN105453482B (zh) 2019-06-21

Similar Documents

Publication Publication Date Title
BR112016001596B1 (pt) Dispositivo de criptografia autenticada e método de criptografia autenticada
US10623176B2 (en) Authentication encryption method, authentication decryption method, and information-processing device
Noura et al. Preserving data security in distributed fog computing
US10630465B2 (en) Key exchange method, key exchange system, communication device and storage medium therefore
US11463235B2 (en) Encryption device, encryption method, program, decryption device, and decryption method
US20160013933A1 (en) Order-preserving encryption system, device, method, and program
KR20160131798A (ko) 연산 에러 검출이 가능한 준동형 암호 방법 및 그 시스템
JP4860708B2 (ja) ストリーム暗号方法および暗号システム
WO2016067524A1 (ja) 認証付暗号化装置、認証付復号装置、認証付暗号システム、認証付暗号化方法、プログラム
EP3309995B1 (en) Key exchange method, key exchange system, key distribution device, communication device, and program
WO2020213114A1 (ja) Macタグリスト生成装置、macタグリスト検証装置、方法及びプログラム
WO2021084507A1 (en) System and method for encryption and decryption using logic synthesis
CN115632765A (zh) 加密方法、解密方法、装置、电子设备及存储介质
US11728968B2 (en) Authenticated encryption device, authenticated decryption device, authenticated encryption method, authenticated decryption method, authenticated encryption program, and authenticated decryption program
JP6631989B2 (ja) 暗号化装置、制御方法、及びプログラム
Valizadeh Healing the Hill Cipher, Improved Approach to Secure Modified Hill against Zero-plaintext Attack
Amankona et al. A framework for securing data by using elliptic curve cryptography and Reed Solomon coding schemes
Strenzke Botan's implementation of the McEliece PKC
Zaverucha Stronger password-based encryption using all-or-nothing transforms
Singh et al. ENHANCEMENT OF WIRED EQUIVALENT PRIVACY
Ostrowski et al. Conjecture of Two Finite Fields and its Applications

Legal Events

Date Code Title Description
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B350 Update of information on the portal [chapter 15.35 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 24/06/2014, OBSERVADAS AS CONDICOES LEGAIS