BRPI0000172B1 - aparelho para cifragem de dados usando rotações e método correspondente - Google Patents

aparelho para cifragem de dados usando rotações e método correspondente Download PDF

Info

Publication number
BRPI0000172B1
BRPI0000172B1 BRPI0000172A BR0000172A BRPI0000172B1 BR PI0000172 B1 BRPI0000172 B1 BR PI0000172B1 BR PI0000172 A BRPI0000172 A BR PI0000172A BR 0000172 A BR0000172 A BR 0000172A BR PI0000172 B1 BRPI0000172 B1 BR PI0000172B1
Authority
BR
Brazil
Prior art keywords
data
bits
bit
rotation
key
Prior art date
Application number
BRPI0000172A
Other languages
English (en)
Other versions
BR0000172A (pt
Inventor
Atsuko Miyaji
Kaoru Yokota
Motoji Ohmori
Original Assignee
Matsushita Electric Industrial Co Ltd
Panasonic Corp
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 Matsushita Electric Industrial Co Ltd, Panasonic Corp filed Critical Matsushita Electric Industrial Co Ltd
Publication of BR0000172A publication Critical patent/BR0000172A/pt
Publication of BRPI0000172B1 publication Critical patent/BRPI0000172B1/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • 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
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

patente de invenção: <b>"aparelho e método de criptografia de dados" <d>. uma unidade de conversão de dados inclui uma unidade de adição de chave para executar um módulo de adição aritmética 2^ 32^ para os dados de entrada f e para os dados da subchave ki e emitir o resultado como os dados g e uma unidade de substituição de dados para executar uma operação "or" exclusiva para os bits correspondentes nos dados rot7(g) obtidos por se girar-deslocar os dados g por 7 bits em direção as posições de bits de ordem mais elevadas, os dados rot1(g) obtidos por se girar-deslocar os dados g por 1 bit em direção as posições de bit de ordem mais elevada e os próprios dados g.

Description

Relatório Descritivo da Patente de Invenção para "APARELHO PARA CIFRAGEM DE DADOS USANDO ROTAÇÕES E MÉTODO CORRESPONDENTE". [001] Este pedido é baseado em um pedido N2 H11-146079 depositado no Japão, cujo o conteúdo é pelo presente incorporado por referência. FUNDAMENTO DA INVENÇÃO Campo da Invenção [002] A presente invenção refere-se a um aparelho e método de criptografia de dados e em particular, refere-se a uma técnica de criptografia de dados que emprega rotações de deslocamento.
Descrição da Técnica Anterior [003] Com a rápida proliferação das comunicações digitais em anos recentes, tem existido uma demanda crescente por sistemas de criptografia de dados alta mente seguros que possam garantir a confiabilidade dos dados na comunicação, devido ao desenvolvimento de indústrias de som e de proteção de privacidade. Não somente alta segurança, mais também alta velocidade criptográfica e fácil implementação no hardware e no software são requeridos de tais sistemas de criptografia.
Primeira Técnica Convencional [004] Um código aditivo de número pseudo-aleatório é introduzido abaixo como primeiro exemplo dos sistemas de criptografia de dados convencionais. [005] Neste código, o transmissor e o receptor compartilham uma chave secreta (daqui para frente simplesmente referida como uma "chave"). Os dados de um texto simples M são divididos em blocos de dados de texto simples Mi de comprimento fixo e os dados de número aleatório R de comprimento fixo são gerados para cada bloco de dados de texto simples Mi utilizando a chave como uma semente. [006] Seguindo-se a isto, uma operação "OR" exclusiva é executada para os bits correspondentes em cada bloco de dados de texto simples Mi e nos dados do número aleatório R para gerar um bloco de dados de texto codificado Ci. Esta operação é expressa como Ci=Mí(+)R onde "(+)" denota uma operação OU exclusiva para os bits correspondentes. [007] Finalmente, os blocos de dados de texto codificados Ci são ligados para formar os dados de texto codificado C, [008] Este código pode executar uma criptografia extremamente rápida e portanto proporciona o processamento de criptografia em imagem em tempo real e em comunicações de dados de áudio. [009] Entretanto, o nível de segurança proporcionado pelo código é muito baixo. Dado que a mesma chave é utilizada para todos os blocos de dados de texto simples Mi, a aquisição de um par de blocos de dados de texto simples Mi e o bloco de dados de texto codificado Ci permite a uma parte não-autorizada derivar os dados do número aleatório R a partir da seguinte equação, cujo resultado é que os outros blocos de dados de texto codificado Ci serão violados. R=Mi(+)Ci Segunda Técnica Convencional [0010] Um código de bloco é apresentado abaixo como o segundo exemplo dos sistemas de criptografia de dados convencionais. O Padrão de Criptografia de Dados (DES) e o Algoritmo de Codificação de Dados Rápido (FEAL) são representativos dos códigos do bloco. Para detalhes sobre DES e FEAL, veja An Introduction to Encryption Theory, de Eiji OKamoto, Kyoritsu (1993), [0011] Os códigos do bloco manuseiam dados de entrada e de saída de 64 bits com suas forte habilidades de embaralhamento de dados. Um dos tais códigos de bloco é o código MULTI2 revelado no Pe- dido de Patente Deixado em Aberto Japonês N- H1-276189. [0012] A Fig. 1 é um diagrama de blocos apresentado a construção de uma unidade de conversão de dados 40 como uma das três unidades de conversão de dados equipada em um aparelho de criptografia de dados que emprega o código MULTI2. [0013] Esta unidade de conversão de dados 40 é rudemente feita de uma unidade de adição de chave 401, de uma primeira unidade de substituição de dados 402 e de uma segunda unidade de substituição de dados 403 e converte dados de entrada de 32 bits A para dados de saída de 32 bits D baseado nos dados da subchave de 32 bits Ki. [0014] Para ser mais específico, uma vez que os dados de entrada A e os dados da subchave Ki foram informados na unidade de adição de chave 401, a unidade de adição de chave 401 executa um módulo de adição aritmética 232 nos dados de entrada A e nos dados da subchave Ki e emite o resultado como os dados de 32 bits B. Isto é expresso como [001] onde "+" denota uma adição aritmética e "a mod β" denota o resto após dividir-se α por β. [0015] A primeira unidade de substituição de dados 402 recebe os dados B a partir da unidade de adição de chave 401 e executa uma adição aritmética módulo 232 para os dados Rot2(B) obtidos por girar deslocando os dados B por 2 bits em direção as posições de bit de mais alta ordem, os dos próprios dados B e o dado constante "1". Como resultado, os dados de 32 bits C são obtidos. Isto pode ser escrito como [002] onde "Rota(X)" denota uma rotação de deslocamento dos dados de 32 bits X por α bits em direção as posições de mais alta ordem (e seu resultado). [0016] A segunda unidade de substituição de dados 403 recebe os dados C emitidos a partir da primeira unidade de substituição de dados 402 e faz um OR exclusivo para os bits correspondentes nos dados C e nos dados Rot4(C) obtidos por girar-se deslocando os dados C por 4 bits em direção as posições de mais alta ordem, por meio disso gerando os dados de saída de 32 bits D. Isto é expresso como D=Rot4(C)(+)C [0017] Por conseqüência, os dados de 32 bits D são emitidos a partir da unidade de conversão de dados 40. [0018] Portanto, a unidade de conversão de dados convencional 40 executa o embaralhamento dos dados em alta velocidade através do uso das operações combinadas com várias rotações de deslocamento. [0019] Apesar disso, a unidade de conversão de dados 40 possui os seguintes problemas de segurança. [0020] Suponha que os dados de entrada M1 e os dados de saída M2 que satisfazem a relação M1 (+)M2=55555555h [003] sejam cada um informados na segunda unidade de substituição de dados 403, "h" representando a notação hexadecimal.
Então Rot4(M1) (+) Rot4(M2)=Rot4(M1(+)M2) [004] devido a linearidade da rotação de deslocamento.
Além disso Rot4(55555555h)=55555555h desde que os dados "55555555h" por si são simétricos.
Por conseqüência, a equação Rot4(M1) (+) Rot4(M2) = 55555555h aplica-se.
Por conseqüência Rot4(M1) (+) M 1(+) Rot4(M2) (+)M2=00000000h isto é Rot(M1) (+)M1=Rot4(M2) (+)M2 é verdadeiro. [0021] O que é para dizer, os dados de saída gerados a partir dos dados de entrada M1 serão idênticos aos dados de saída gerados a partir dos dados de entrada M2 na segunda unidade de substituição de dados 403. Isto significa que a conversão executada pela segunda unidade de substituição de dados 403 não é uma bijeção (ou seja, tanto uma sobrejeção como uma injeção). Portanto, a conversão total pela unidade de conversão de dados 40 não é uma bijeção. [0022] A Fig. 2 ilustra a propriedade do mapeamento na segunda unidade de substituição de dados 403 (isto é, a unidade de conversão de dados 40) que é um mapa não-bijetivo. Na figura, dois valores de entrada diferentes no domínio X estão sendo mapeados para o mesmo valor de entrada na faixa Y. [0023] Tal propriedade da unidade de conversão de dados 40 é indesejável em termos de segurança de criptografia, porque uma diminuição no número de elementos da faixa Y comparado com o número de elementos do domínio X apresenta a intensidade de embaralhamento de dados da unidade de conversão de dados 40 deficiente. [0024] Aqui, pode ser concebível modificar a segunda unidade de substituição de dados 403 de modo que ao invés de "Rot4(X) (+)X", ela emita os dados Rot2(X) obtidos pela girar deslocando os dados de entrada X por 2 em direção as posições de mais alta ordem, de modo a fazer a conversão pela segunda unidade de substituição de dados 403 bijetiva. [0025] Entretanto, tal conversão Rot2(X) carece de um grau desejado de segurança, desde que ela não produza um efeito de avalanche de bits suficiente. O efeito de avalanche de bits referido aqui dentro é a propriedade observada de um código de quantos bits nos dados de saída alteram-se como um resultado da alteração de um único bit nos dados de entrada.
SUMÁRIO DA INVENÇÃO [0026] Em vista dos problemas acima, a presente invenção tem em vista proporcionar um aparelho e método de criptografia de dados que emprega as rotações de deslocamento para executar uma conversão de dados que seja uma bijeçâo com uma forte habilidade de embaralhamento de dados e que produza um efeito de avalanche de bits suficiente. [0027] Para preencher o objetivo declarado, o aparelho de criptografia de dados da presente invenção é um aparelho de criptografia de dados para críptografar dados de texto simples de n bits para obter dados de texto cifrados de n bits, o aparelho de criptografia de dados incluindo: uma unidade de rotação de deslocamento para gerar k grupos de dados por girar deslocando os dados de texto simples de n bits respectivamente por S1 bits, S2 bits, e Sk bits, S1, S2, ,,,, e Sk sendo inteiros não-negativos menores do que n e k sendo um número ímpar não-menor do que 3; e uma unidade de combinação de dados para combinar os k grupos de dados para gerar os dados de texto cifrado de n bits. [0028] Com esta construção, o aparelho de criptografia de dados primeiro converte os dados de texto simples em um número ímpar de grupos de dados não-inferior a 3 por meio das rotações de deslocamento e então combina os grupos de dados para formar os dados de texto cifrados. Por conseqüência, é garantido que a criptografia executada pelo aparelho de criptografia de dados é bijetivo e é excelente em performance de embaralhamento de dados e na performance de avalanche de bits. [0029] Ou seja, dado que os dados de texto simples são convertí- dos em 3 ou mais grupos de dados antes do processo de combinação, o efeito de avalanche de bits proporcionado pelo aparelho de criptografia de dados da invenção é melhor do que as técnicas convencionais para converter os dados de texto simples em somente um grupo de dados. De forma similar, dado que os dados de texto simples são convertidos em um número ímpar de grupos de dados antes do processo de combinação, o aparelho de criptografia de dados da invenção suporta uma propriedade bijetiva diferente das técnicas convencionais para converter os dados de texto simples em dois grupos de dados. [0030] Aqui, o aparelho de criptografia de dados pode adicionalmente incluir uma unidade de combinação de chave para combinar os dados de texto simples de n bits com os dados da chave dados antecipadamente, antes das rotações de deslocamento pela unidade de rotação de deslocamento, onde a unidade de rotação de deslocamento gira deslocando os dados de texto simples de n bits combinados com os dados da chave. [0031] Com esta construção, as rotações de deslocamento são executadas para os dados de texto simples que foram combinados com os dados da chave. Por conseqüência, o problema associado com repetir-se uma conversão fixa pode ser evitado, com isto sendo possível perceber uma criptografia de chave secreta altamente segura. [0032] Aqui, a unidade de rotação de deslocamento pode incluir k unidade de rotação para a rotação de deslocamento dos dados de texto simples de n bits por respectivamente S1 bits, S2 bits,..., e Sk bits. [0033] Com esta construção, os dados de texto simples são informados nas k unidades de rotação em paralelo e as rotações de deslocamento dos dados do texto simples são simultaneamente executadas, de modo que a velocidade de criptografia aumenta se comparado com o caso onde as rotações de deslocamento são executadas de forma serial. [0034] Aqui, as k unidades de rotação podem ser feitas de linhas de sinal que possuem padrões de rede elétrica para a rotação de deslocamento dos dados do texto simples de n bits respectivamente por 51 bits, S2 bits, ..., Sk bits. Além disso, a unidade de combinação de chave e a unidade de combinação de dados podem ser feitas de um adicionador aritmético e de uma porta "OR" exclusiva, respectivamente. [0035] Com esta construção, o aparelho de criptografia de dados que executa o embaralhamento dos dados em alta velocidade pode ser implementado por um circuitamento simples. [0036] Aqui, a unidade de combinação de dados pode combinar os dados da chave dados antecipadamente com os dados de n bits obtidos por combinar-se os k grupos de dados, para gerar os dados de texto cifrado de n bits. [0037] Com esta construção, o resultado da rotação de deslocamento dos dados de texto simples e da combinação dos resultados com rotação de deslocamento são adicionalmente combinados com os dados da chave. Por conseqüência, o problema associado com repetir-se uma conversão fixa pode ser evitado, com isto sendo possível para realizar uma criptografia de chave secreta altamente segura. [0038] Aqui, a unidade de rotação de deslocamento pode incluir: k unidades de rotação para girar deslocando os dados de texto simples de n bits respectivamente por quantidades de rotação especificados; uma unidade de aquisição de dados da chave para adquirir os dados da chave; e uma unidade de determinação de quantidade de rotação para determinar os valores de S1, S2, ..., Sk baseada nos dados da chave adquiridos e especificar, para as k unidades de rotação, S1 bits, 52 bits, ..., Sk bits como as respectivas quantidades de rotação, onde as k unidades de rotação giram-deslocam os dados do texto simples de n bits respectivamente por S1 bits, S2 bits, ..., Sk bits como especi- ficado pela unidade de terminação de quantidade de rotação. [0039] Com esta construção, as quantidades de rotação das k unidades de rotação são dinamicamente determinadas utilizando os dados da chave, o que beneficia o sigilo criptográfico. [0040] Aqui, a unidade de rotação de deslocamento pode incluir: m unidades de rotação para girar-deslocar os dados de texto simples de n bits respectivamente por S1 bits, S2 bits, ..., Sm bits, S1, S2, ..., Sm sendo inteiros não-negativos menores do que nem sendo um inteiro não-menor do que 3; uma unidade de aquisição de dados da chave para adquirir os dados da chave; e uma unidade de seleção para selecionar k unidades de rotação a partir das m unidades de rotação baseada nos dados da chave adquiridos de modo que os k grupos de dados são gerados como um resultado das rotações-deslocamento dos dados do texto simples de n bits pelas k unidades de rotação selecionadas. [0041] Com esta construção, o número de grupos de dados a serem gerados a partir dos dados de texto simples e as quantidades de rotação a serem aplicadas aos dados de texto simples são dinamicamente determinados utilizando os dados da chave, o que beneficia o sigilo criptográfico. [0042] O objetivo acima pode também ser preenchido por um método de criptografia de dados que realiza os aspectos do aparelho de criptografia de dados acima ou por um programa que executa o método de criptografia de dados. [0043] Portanto, o aparelho de criptografia de dados da presente invenção exibe uma performance de embaralhamento de dados mais forte sem diminuir a velocidade criptográfica das técnicas convencionais que utilizam rotações-deslocamento. Em vista das demandas crescentes por desenvolvimentos na tecnologia de multimídia, o aparelho de criptografia de dados da invenção possui uma ampla aplicabilidade e potencial particularmente nas áreas tal como comunicações se- eretas em tempo real para informação de imagem ou de áudio.
BREVE DESCRIÇÃO DOS DESENHOS [0044] Estes e outros objetivos, vantagens e aspectos da invenção tornarão-se aparentes a partir da descrição seguinte dos mesmos feito em conjunto com os desenhos acompanhantes que ilustram uma concretização específica da invenção. Nos desenhos: [0045] A Fig. 1 é um diagrama de blocos apresentando a construção de uma unidade de conversão de dados em um aparelho de criptografia de dados convencional; [0046] a Fig. 2 ilustra a propriedade do mapeamento na unidade de conversão de dados convencional; [0047] a Fig. 3 é um diagrama de blocos apresentando a configuração de um sistema de comunicação criptografado em uma concretização da presente invenção; [0048] a Fig. 4 é um diagrama de blocos apresentando a construção de um aparelho de criptografia de dados apresentado na Fig. 3; [0049] a Fig. 5 é um diagrama de blocos apresentando a construção de um aparelho de criptografia de dados apresentado na Fig. 3; [0050] a Fig. 6 é um diagrama de blocos apresentando a construção de uma primeira unidade de embaralhamento de dados no aparelho de criptografia de dados; [0051] a Fig. 7 é um diagrama de blocos apresentando a construção de uma segunda unidade de embaralhamento de dados no aparelho de criptografia de dados; [0052] a Fig. 8 é um diagrama de blocos apresentando a construção de uma unidade de conversão de dados na primeira unidade de embaralhamento de dados (e na segunda unidade de embaralhamento de dados); [0053] a Fig. 9 ilustra a propriedade do mapeamento na unidade de conversão de dados; [0054] a Fíg. 10 é um diagrama de blocos apresentando a construção de uma unidade de conversão de dados de acordo com a primeira variante; [0055] a Fig. 11 é um diagrama de blocos apresentando a construção de uma unidade de conversão de dados de acordo com a segunda variante; [0056] a Fig. 12 é um diagrama de blocos apresentando a construção de uma unidade de conversão de dados de acordo com a terceira variante; [0057] a Fig. 13 é um diagrama de blocos apresentando a construção detalhada de uma unidade de substituição de dados apresentada na Fig. 12; [0058] a Fig. 14 é um diagrama de blocos apresentando a construção de uma unidade de conversão de dados de acordo com a quarta variante; e [0059] a Fig. 15 é um diagrama de blocos apresentando a construção detalhada de uma unidade de substituição de dados apresentada na Fig. 14.
DESCRIÇÃO DA CONCRETIZACÃQÍSI PREFERIDA [0060] O seguinte é uma descrição detalhada de uma concretização da presente invenção com referência às figuras. [0061] Geral mente, os dados de texto cifrados gerados em um aparelho de criptografia de dados por meio da criptografia com dados da chave são convertidos em dados de texto não-críptografados em um aparelho de decríptografia por meio da conversão inversa da criptografia utilizando-se os mesmos dados de chave. [0062] Esta concretização refere-se a uma aplicação da invenção para um sistema de comunicação criptografado onde o transmissor provido com um aparelho de criptografia de dados criptografa os dados de texto simples e envia os dados de texto cifrado para o receptor e o receptor provido com um aparelho de decriptografia de dados decrip-tografa os dados cifrados para obter os dados de texto decriptografados que podem ser colocados em uso.
Configuração do Sistema de Comunicação Criptografado [0063] A Fig. 3 é um diagrama de blocos apresentando a configuração do sistema de comunicação criptografado na concretização da presente invenção. Este sistema de comunicação criptografado principalmente é composto de um transmissor 1, de um receptor 2 e de uma linha de transmissão 3. O transmissor 1 e o receptor 2 são, por exemplo, um servidor e um terminal que ele serve que respectiva mente transmite e recebe informação de imagem digitalizada em um sistema servidor de vídeo, ao passo que a linha de transmissão 3 é uma rede de comunicação representada pela Internet ou por um fluxo de transporte em difusão digital. [0064] O transmissor 1 é proporcionado com um aparelho de criptografia de dados 10 e com uma unidade de transmissão 11. Os dados do texto simples de 64 bits e os dados da chave de 256 bits são informados no aparelho de criptografia de dados 10. Aqui, os dados de texto simples são um dos blocos gerados por dividir-se a informação tal como a informação de áudio ou de imagem digital mente codificada em unidades de 64 bits, ao passo que os dados da chave são uma combinação de chave secreta entre o transmissor 1 e o receptor 2 antecipadamente. O aparelho de criptografia de dados 10 processa os dados de texto simples informados e os dados da chave, e gera dados de texto cifrado de 64 bits. A unidade de transmissão 11 converte em parale-lo-serial, modula e amplifica os dados de texto cifrado gerados e transmite os mesmos para o receptor 2 via a linha de transmissão 3. [0065] O receptor 2 é proporcionado com um aparelho de decriptografia de dados 20 e com uma unidade de recepção 21. Os dados de texto cifrado de 64 bits são recebidos e convertidos sehal-paralelo pela unidade de recepção 21 e então informados no aparelho de decripto-grafia de dados 20 junto com os dados da chave de 256 bits. O aparelho de de criptografia de dados 20 processa os dados de texto cifrado informados e os dados da chave para obter os dados de texto decrip-tografados de 64 bits, que são então decodificados por um decodificado r (não-ilustrado) ou semelhante e emitidos via um monitor ou um alto-falante.
Construção do Aparelho de Criptografia de Dados 10 [0066] A Fig. 4 é um diagrama de blocos apresentando a construção do aparelho de criptografia de dados 10 apresentado na Fig. 3. Este aparelho de criptografia de dados 10 incluí uma primeira unidade de embaralhamento de dados 101, uma primeira unidade de controle de número de rodadas 102 e uma primeira unidade de controle de chave 103. [0067] A primeira unidade de embaralhamento de dados 101 embaralha os dados de texto simples de 64 bits que chegam com uma subchave de 32 bits dada a partir da primeira unidade de controle de chave 103 e emite os dados de 64 bits resultantes. [0068] A primeira unidade de controie de número de rodadas 102 controla o número de rodadas do embaralhamento repetido pela primeira unidade de embaralhamento de dados 101. Mais especifica mente, se o número de rodadas do embaralhamento executado pela primeira unidade de embaralhamento de dados 101 for abaixo de um número predeterminado, a primeira unidade de controle de número de rodada 102 retorna os dados de 64 bits emitidos a partir da primeira unidade de embaralhamento de dados 101 de volta para dentro da primeira unidade de embaralhamento de dados 101. Se o número de rodadas tiver alcançado o número predeterminado, por outro lado, a primeira unidade de controle de número de rodada 102 passa os dados de 64 bits para a unidade de transmissão 11 como os dados de texto cifrados de 64 bits. O número predeterminado é oito nesta concretização. [0069] A primeira unidade de controle de chave 103 divide os dados da chave de 256 bits que chegam a partir do bit de mais alta ordem dos mesmos em oito subchaves de 32 bits KO até K7 e emite as subchaves KO até K7 uma por uma, para a primeira unidade de embaralhamento de dados 101 para os oito rodadas. Para ser mais específico, quando os dados de texto simples de 64 bits são inicialmente informados na primeira unidade de embaralhamento de dados 101, a primeira unidade de controle de chave 103 fornece a sub chave KO para a primeira unidade de embaralhamento de dados 101. Após isso, toda vez que os dados emitidos a partir da primeira unidade de embaralhamento de dados 101 são retornados de volta para a primeira unidade de embaralhamento de dados 101, a primeira unidade de controle de chave 103 fornece as subchaves K1 até K7, uma por vez, para a primeira unidade de embaralhamento de dados 101.
Construção do Aparelho de Decriptoqrafia de Dados 20 [0070] A Fig. 5 é um diagrama de blocos apresentando a construção do aparelho de decriptografia de dados 20 apresentado na Fig. 3. Este aparelho de decriptografia de dados 20 inclui uma segunda unidade de embaralhamento de dados 201, uma segunda unidade de controle de número de rodada 202 e uma segunda unidade de controle de chave 203. [0071] A segunda unidade de embaralhamento de dados 201 embaralha os dados de texto cifrado de 64 bits passados através da unidade de recepção 21 utilizando uma subchave de 32 bits dada a partir da segunda unidade de controle de chave 203 e emite os dados de 64 bits resultantes, [0072] A segunda unidade de controle de número de rodada 202 controla o número de rodadas do embaralhamento repetido pela se- gunda unidade de embaralhamento de dados 201. Mais especificamente, se o número de rodadas do embaralhamento executado pela segunda unidade de embaralhamento de dados 201 for abaixo de um número predeterminado, a segunda unidade de controle de número de rodada 102 retorna os dados de 64 bits emitidos a partir da segunda unidade de embaralhamento de dados 201 de volta para a segunda unidade de embaralhamento de dados 201. Se, por outro lado, o número de rodadas tiver alcançado o número predeterminado, a segunda unidade de controle de número de rodada 201 emite os dados de 64 bits como os dados de texto decriptografado. O número especificado é oito nesta coneretização. [0073] A segunda unidade de controle de chave 203 divide os dados da chave de 256 bits que chegam a partir do bit de mais alta ordem dos mesmos em oito subchaves de 32 bits L7 até LO e emite as subchaves L0 até L7, uma por uma, para a segunda unidade de embaralhamento de dados 201 para os oito rodadas. Para ser mais específico, quando os dados de texto cifrado são inicialmente informados na segunda unidade de embaralhamento de dados 201, a segunda unidade de controle de chave 203 fornece a subchave L0 para a segunda unidade de embaralhamento de dados 201. Seguindo-se a isto, toda vez que os dados emitidos a partir da segunda unidade de embaralhamento de dados 201 são retornados para a segunda unidade de embaralhamento de dados 201, a segunda unidade de controle de chave 203 fornece as subchaves L1 até L7, uma por vez, para a segunda unidade de embaralhamento de dados 201.
Construção da Primeira Unidade de Embaralhamento de Dados 101 [0074] A Fig. 6 é um diagrama de blocos apresentando a construção da primeira unidade de embaralhamento de dados 101 apresentada na Fig. 4. Esta primeira unidade de embaralhamento de dados 101 inclui uma unidade de OR" exclusiva 1011 e uma unidade de conver- são de dados 300. Observe que processos, tal como uma divisão (dividir um grupo de dados em uma pluralidade de partes}, uma transposição (trocar as posições da pluralidade de partes) e uma con cate nação (ligar a pluralidade de partes como dígitos para formar um novo grupo de dados) são indicados pelo padrão de rede elétrica ilustrado. [0075] Os dados de entrada de 64 bits são divididos dentro do bloco de 32 bits de mais alta ordem X1 e no bloco de 32 bits de mais baixa ordem XO, ao passo que os dados de saída de 64 bits são construídos de uma combinação de dois blocos de 32 bits Y1 e YO, respectivamente, como bits de mais alta ordem e bits de mais baixa ordem. [0076] O bloco X1 torna-se o bloco Y0 e também é informado na unidade de conversão de dados 300 onde ele é convertido para os dados de 32 bits S baseado em uma subchave de 32 bits fornecida a partir da primeira unidade de controle de chave 103. A unidade de conversão de dados 300 emite os dados S para a unidade de "OR" exclusiva 1011 que por sua vez faz um "OR" exclusivo para os bits correspondentes nos dados S e no bloco X0 e emite o resultado como o bloco Y1. [0077] Tais dois blocos obtidos Y1 e Y0 são concatenados como dados de saída de 64 bits e emitidos a partir da primeira unidade de embaralhamento de dados 101 em sincronísmo com um clock (não-ilustrado).
Construção da Segunda Unidade de Embaralhamento de Dados 201 [0078] A Fig. 7 é um diagrama de blocos apresentando a construção da segunda unidade de embaralhamento de dados 201 apresentada na Fig. 5. Esta segunda unidade de embaralhamento de dados 201 inclui uma unidade de conversão de dados 301 e uma unidade de OR" exclusiva 2011, A unidade de conversão de dados 301 e a unidade de OR" exclusivo 2011 possuem respectivamente as funções idênticas as da unidade de conversão de dados 300 e da unidade de OU exclusivo 1011 na primeira unidade de embaralhamento de dados 101 na Fig. 6. Da mesma maneira, os processos tal como uma divisão, uma transposição e uma concatenaçâo conduzidos na segunda unidade de embaralhamento de dados 201 são indicados pelo padrão de rede elétrica apresentado na figura. [0079] Os dados de entrada de 64 bits são divididos no bloco de 32 bits de ordem mais elevada Z1 e no bloco de 32 bits de ordem mais baixa Z0, ao passo que os dados de saída de 64 bits são construídos de uma combinação dos dois blocos de 32 bits W1 e W0, respectivamente como bits de ordem mais elevada e bits de ordem mais baixa. [0080] O bloco Z0 torna-se o bloco W1 e é simultaneamente informado na unidade de conversão de dados 301 onde ele é convertido para dados de 32 bits T baseado em uma subchave de 32 bits fornecida a partir da segunda unidade de controle de chave 203. A unidade de conversão de dados 301 emite os dados T para a unidade de "OR" exclusivo 2011 que por sua vez faz um OU exclusivo para os bits correspondentes nos dados T e no bloco Z1 e emite o resultante como o bloco W0.
Construção das Unidades de Conversão de Dados 300 e 301 [0081] A Fig. 8 é um diagrama de blocos apresentando a construção da unidade de conversão de dados 300 apresentada na Fig. 6 (e da unidade de conversão de dados 301 apresentada na Fig. 7). [0082] A unidade de conversão de dados 300 recebe os dados de entrada de 32 bits F e a subchave de 32 bits Kl, e gera os dados de saída de 32 bits O. Uma unidade de adição de chave 3001, uma unidade de substituição de dados 3002 e uma unidade de armazenamento de dados da tabela de substituição 3003 estão incluídas na unidade de conversão de dados 300. [0083] A unidade de adição de chave 3001 é feita, por exemplo, de um adicionador que possui duas entradas de 32 bits e uma saída de 32 bits. A unidade de adição de chave 3001 executa um módulo de adição aritmética 232 nos dados de entrada F e na subchave Ki, e emite a solução como os dados de 32 bits G. Esta operação pode ser escrita como G=(F+Ki) mod 232 [0084] A unidade de substituição de dados 3002 é construídas por linhas de sinal que possuem o padrão de rede elétrica fixo para as ro-tações-deslocamento, uma porta "OR" exclusiva e daí por diante. Ao receber os dados G, a unidade de substituição de dados 3002 faz um "OR" exclusivo para os bits correspondentes nos dados Rot7(G) obtidos por se girar-deslocar os dados G por 7 bits em direção as posições de mais alta ordem, os dados Rot1(G) obtidos por se girar-deslocar os dados G por um bit em direção as posições de mais alta ordem e os próprios dados G e emite o resultado da operação como os dados de 32 bits H. Esta operação pode ser expressa como H=Rot7(G) (+)Rot1(G) (+) G [0085] Após isto, os dados H são divididos a partir do bit de ordem mais elevada dos mesmos em quatro blocos de 8 bits I3, I2, 11 e I0, que são informados, um por um, na unidade de armazenamento de dados da tabela de substituição 3003. [0086] A unidade de armazenamento de dados da tabela de substituição 3003 é construída com uma ROM ou semelhante que mantém os dados da tabela de substituição Tab[0~255] contendo valores de 8 bits diferentes em 256 localizações de armazenamento. A unidade de armazenamento de dados da tabela de substituição 3003 funciona como um conversor que emite um valor de 8 bits armazenado em uma localização especificada pelos dados de entrada de 8 bits. [0087] Para ser mais específico, a unidade de armazenamento de dados da tabela de substituição 3003 armazena tais dados da tabela de substituição de 256x8 bits que são descritos em Aoki et ai., "S-Box Design Consídering the Security against Known Attacks in Block Ci-phers" no IEICE Technical Report, ISEC98-13. Em resposta as entradas sequenciais dos blocos I3, I2, 11 e IO, a unidade de armazenamento de dados da tabela de substituição 3003 emite valores de 8 bits J3=Tab[l3], J2=Tab[l2], J1=Tab[l1] e JO=Tab[IO], um por um, que estão respectivamente armazenados nas localizações especificadas pelos blocos I3, I2, 11 e IO. [0088] Quatro valores de 8 bits J3, J2, J1 e J0 são ligados nesta ordem com J3 sendo os bits de mais alta ordem e os dados de 32 bits resultantes são emitidos a partir da unidade de conversão de dados 300 como os dados de saída O. [0089] Deve ser observado que a troca da entrada/saída na unidade de armazenamento de dados da tabela de substituição 3003 é feita, por exemplo, por um circuito multiplexador e por um circuito demulti-plexador que estão sendo acionados em sincronismo um com o outro de modo que J0-J3 serão emitidos respectivamente em resposta a I0H3.
Relação entre a Primeira Unidade de Embaralhamento de Dados 1Q1 e a Seaunda Unidade de Embaralhamento de Dados 201 [0090] Tanto a primeira unidade de embaralhamento de dados 101 na Fig. 6 como a segunda unidade de embaralhamento de dados 201 na Fig. 7 recebem dados de 64 bits e uma subchave de 32 bits e emitem dados de 64 bits. O dito a seguir explica a relação entre a primeira unidade de embaralhamento de dados 101 e a segunda unidade de embaralhamento de dados 201, para esclarecer a razão que pela qual os dados de texto simples criptografados pela primeira unidade de embaralhamento de dados 101 são recuperados pela segunda unidade de embaralhamento de dados 201. [0091] Como observado antes, X1, X0, Y1, YO e S na primeira unidade de embaralhamento de dados 101 na Fig. 6 possuem as relações S=F(Ki,X1) ... (equação 1) Y1=S(+)X0 ... (equação 2) Y0=X1 ... (equação 3) [0092] onde "Ki" denota uma subchave de 32 bits e "F(Ki,a)" denota uma saída da unidade de conversão de dados 300 cuja entrada é a. [0093] Enquanto isso, Z1.Z0.W1, W0 e T na segunda unidade de embaralhamento de dados 201 na Fig. 7 possuem as relações T=F(Ki,Z0) ... (equação 4) W1 = Z0 ... (equação 5) W0=T(+)Z1 ... (equação 6) [0094] quando a mesma subchave de 32 bits Ki é utilizada. [0095] Desde que os dados de saída da primeira unidade de embaralhamento de dados 101 são informados na segunda unidade de embaralhamento de dados 201, Y1=Z1 ... (equação 7) Y0=Z0 ... (equação 8) [0096] A partir das equações 3 e 8, Y0=Z0=X1 ... (equação 9) [0097] De acordo com a equação 9, a equação 4 pode ser transformada para T=F(Ki,X1) ... (equação 10) [0098] A partir das equações 1 e 10, S=T ... (equação 11) [0099] Das equações 6 e 11, W0=S(+)Z1 ... (equação 12) [00100] Das equações 7 e 12, W0=S(+)Y1 ... (equação 13) [00101] Adicionalmente, a partir das equações 2 e 13, W0=S(+) {S(+)X0} ... (equação 14) [00102] Aqui, um "OR" exclusivo possui a propriedade que é β{+) φ(+)γ}=γ ... (equação 15) [00103] De acordo com as equações 14 e 15, W0=X0 ... (equação 16) é verdadeiro. [00104] Enquanto isso, a partir das equações 3, 5 e 8, W1=X1 ... (equação 17) É verdadeiro. [00105] Como pode ser visto a partir das equações 16 e 17, é claro que, quando os dados de 64 bits Y que foram produzidos por embaralhar-se, os dados de 64 bits X com a subchave de 32 bits Ki na primeira unidade de embaralhamento de dados 101 são embaralhados utilizando a mesma chave de 32 bits Ki na segunda unidade de embaralhamento de dados 201, os dados de 64 bits X podem ser recuperados. Operação da Primeira Unidade de Controle de Chave 103 [00106] A primeira unidade de controle de chave 103 na Fig. 4 opera como se segue. [00107] Para a criptografia dos dados de texto simples de 64 bits no aparelho de criptografia de dados 10, a primeira unidade de embaralhamento de dados 101 repete o embaralhamento oito vezes. A primeira unidade de controle de chave 103 emite a subchave KO no primeiro rodada, a subchave K1 na segundo rodada,... e finalmente a subchave K7 no oitavo rodada, para a primeira unidade de embaralhamento de dados 101.
Operação da Segunda Unidade de Controle de Chave 203 [00108] Por outro lado, a segunda unidade de controle de chave 203 na Fig. 5 opera como se segue. [00109] Para a de criptografia dos dados de texto cifrados de 64 bits no aparelho de decriptografia de dados 20, a segunda unidade de embaralhamento de dados 201 repete o embaralhamento oito vezes. A segunda unidade de controle de chave 203 emite a subchave 10 no primeiro rodada, a subchave L1 no segundo rodada, ,,,, e finalmente a subchave L7 no oitavo rodada, para a segunda unidade de embaralhamento de dados 201.
Relação entre o Aparelho de Criptografia de Dados 10 β o Aparelho de De criptografia de Dados 20 [00110] Tanto o aparelho de criptografia de dados 10 na Fig. 4 como o aparelho de decriptografia de dados 20 na Fig. 5 recebem os dados de 64 bits e os dados da chave de 256 bits e emitem os dados de 64 bits, O dito a seguir explica a relação entre o aparelho de criptografia de dados 10 e o aparelho de decriptografia de dados 20, para esclarecer a razão pela qual os dados de texto simples criptografados pelo aparelho de criptografia de dados 10 são recuperados pelo aparelho de decriptografia de dados 20. [00111] Assuma que os dados de texto simples de 64 bits A são para ser criptografados no aparelho de criptografia de dados 10 utilizando os dados da chave de 256 bits K. [00112] A primeira unidade de controle de chave 103 divide os dados da chave K a partir do bit de mais alta ordem dos mesmos em subchaves de 32 bits K0-K7 que são então sequencial mente informadas na primeira unidade de embaralhamento de dados 101. [00113] Na primeira unidade de embaralhamento de dados 101, os dados do texto simples A são embaralhados utilizando-se a subchave K0 e como um resultado tornam-se os dados A1. Então, os dados A1 são embaralhados utilizando a subchave K1 e tornam-se os dados A2, O mesmo é repetido para os dados A2 até os dados A6 para respectivamente produzir os dados A3 até os dados A7. Finalmente, os dados A7 são embaralhados utilizando-se a subchave K7 e tornando-se os dados A8. Os dados A8 são então emitidos a partir do aparelho de criptografia de dados 10 como dados de texto cifrado, transmitidos para o receptor 2 via a unidade de transmissão 11 e a linha de transmis- são 3 e informados no aparelho de decriptografia de dados 20 através da unidade de recepção 21. [00114] O mesmos dados da chave de 256 bits K utilizados no aparelho de criptografia de dados 10 são utilizados no aparelho de decriptografia de dados 20. A segunda unidade de controle de chave 203 divide os dados da chave K a partir do bit de mais alta ordem dos mesmos em subchaves de 32 bits L7-L0 e seqüencialmente fornece as subchaves L0-L7 para a segunda unidade de embaralhamento de dados 201 nesta ordem. Aqui, K0=L7, K1=L6, K2=L5, K3=L4, K4=L3, K5=L2, K6=L1 e K7=L0, desde que os dados da chave K utilizados no aparelho de decriptografia de dados 20 são idênticos aos dados da chave K utilizados no aparelho de criptografia de dados 10. [00115] Na segunda unidade de embaralhamento de dados 201, os dados de texto cifrado A8 são embaralhados utilizando a subchave L0 e como um resultado tornam-se os dados B1. Aqui, B1=A7, porque K7=L0 e o embaralhamento pela segunda unidade de embaralhamento de dados 201 é a conversão inversa do embaralhamento pela primeira unidade de embaralhamento de dados 101. Após isto, os dados B1 são embaralhados utilizando a subchave L1 e como resultado tornam-se os dados B2. Aqui, B2=A6, porque K6=L1 e o embaralhamento pela segunda unidade de embaralhamento de dados 201 é a conversão inversa do embaralhamento pela primeira unidade de embaralhamento de dados 101. [00116] O mesmo é repetido para os dados B2 até os dados B6 para respectivamente produzir os dados B3 até os dados B7, onde B3=A5, B4=A4, B5=A3, B6=A2 e B7=A1 pela razão declarada acima. Finalmente, os dados B7 são embaralhados utilizando a subchave L7, cujo resultado são os dados de texto decriptografados B8. Aqui, B8=A, porque B7=A1, K0=L7 e o embaralhamento pela segunda unidade de embaralhamento de dados 201 é a conversão inversa do embaralha- mento pela primeira unidade de embaralhamento de dados 101 [00117] Portanto, é comprovado que, quando os dados de texto cifrado de 64 bits B produzido por se críptografar os dados de texto simples de 64 bits A com os dados da chave de 256 bits K no aparelho de criptografia de dados 10 são d ecrí ptog rafados utilizando-se os mesmos dados da chave de 256 bits K no aparelho de criptografia de dados 20, os dados de texto simples de 64 bits A podem ser recuperados. Operação do Sistema de Comunicação Criptografado [00118] A operação geral do sistema de comunicação criptografado da presente concretização é explicada abaixo com referência as Figs. 3 até 8. [00119] O transmissor 1 digitaliza e codificada a informação de imagem ou de áudio que chega com uma duração de tempo fixa e desse modo cria os dados de texto simples de 64 bits. Os dados de texto simples são então informados no aparelho de criptografia de dados 10 junto com os dados da chave de 256 bits retidos no transmissor 1 antecipadamente. [00120] Os dados da chave de 256 bits são informados na primeira unidade de controle de chave 103 e divididos a partir do bit de mais alta ordem dos mesmos em subchaves de 32 bits K0 até K7. [00121] Os dados de texto simples de 64 bits são informados na primeira unidade de embaralhamento de dados 101 junto com os dados da subchave K0 e embaralhado utilizando a subchave K0. Este embaralhamento é repetido para oito rodadas no total sob o controle da primeira unidade de controle de número de rodada 102, durante o que as subchaves K0 até K7 são seqüencialmente utilizadas. Por con-seqüência, os dados de texto cifrado de 64 bits são obtidos e emitidos a partir do aparelho de criptografia de dados 10. [00122] Estes dados de texto cifrado de 64 bits são então transmitidos a partir do transmissor 1 para o receptor 2 via a unidade de trans- missão 11 e a linha de transmissão 3. [00123] Os dados de texto cifrado são recebidos pela unidade de recepção 21 no receptor 2 e informados no aparelho de de criptografia de dados 20 junto com os dados da chave de 256 bits. [00124] Os dados da chave de 256 bits são informados na segunda unidade de controle de chave 203 e divididos a partir do bit de mais alta ordem dos mesmos em subchaves de 32 bits L7 até LO. [00125] Os dados de texto cifrado são informados na segunda unidade de embaralhamento de dados 201 junto com a sub chave L0 e embaralhados utilizando a subchave L0. Este embaralhamento é repetido para o total de oito rodadas sob o controle da segunda unidade de controle de número de rodada 202, durante o que as subchaves LO até L7 são seqüencialmente utilizadas. Como resultado, os dados de texto decriptografado são obtidos e emitidos a partir do aparelho de decrip-tografia de dados 20. [00126] Os dados de texto decriptografado é convertido para os sinais de imagem ou de áudio no receptor 2 e exibidos em um monitor ou emitidos através de um alto-falante.
Segurança do Aparelho de Criptografia de Dados 10 [00127] O dito a seguir é uma explicação da segurança do aparelho de criptografia de dados 10. [00128] Primeiro, a razão pela qual a conversão pela unidade de conversão de dados 300 no transmissor 1 (e na unidade de conversão de dados 301 no receptor 2) é uma bijeção é explicada abaixo. [00129] A operação executada pela unidade de adição de chave 3001 é uma adição de dados de entrada e de uma subchave gerada a partir dos dados da chave. O valor da subchave é fixo, independente dos dados de entrada. Portanto, a conversão pela unidade de adição de chave 3001 é bijetiva. [00130] Por outro lado, para a unidade de substituição de dados 3002, foi confirmado de acordo com experimentos baseados em computador, que um valor de saída não será 0 para um valor de entrada entre 1 e (232-1) inclusive. A partir deste resultado experimental e da linearidade da operação da unidade de substituição de dados 3002, é garantido que a conversão pela unidade de substituição de dados 3002 é bijetiva. [00131] A exposição de motivos para a propriedade bijetiva da unidade de substituição de dados 3002 pode também ser apresentada teoricamente como se segue. [00132] Deixe A31 até A0 ser 32 bits que compõe os dados de entrada A da unidade de substituição de dados 3002 a partir do bit de mais alta ordem dos mesmos, isto é, A=(A31, A30,..., A0). [00133] Então Rot1 (A)=(A30, A29, ..., A1, A0, A31) Rot7(A)=(A24, A23, ..., A27, A26, A25 Portanto, Rot7(A)(+)Rot1 (A)(+)A = (A31 (+) A30 (+) A24, A30(+)A29(+)A23, ..., A1(+)A0(+)A26, A0(+)A31(+)A25) Deixe B=(B31, B30, ..., B0) ser os dados de saída de 32 bits da unidade de substituição de dados 3002. Então, a conversão pela unidade de substituição de dados 3002 pode ser expressa como ..(equação 18) onde ..(equação 19) e X0=X1=X6=1 Xi=0 (onde i*0, 1, 6) ... (equação 20) [00134] De acordo com o problema 4 e sua solução em "An Introdu-ction to Linear Álgebra" de Masahiko Saito, pág. 90, Tokyo University Press (1996), ... (equação 21) [00135] onde "detX" denota o determinante da matriz X e o lado direito da equação representa o produto para cada α que seja a 32â raiz de 1. [00136] De acordo com as equações 19 e 20, a equação 21 pode ser transformada em ..(equação 22) [00137] Foi comprovado no problema exemplo 39.1 em Álgebra, de Hiroshi Nagao, pág. 165, Asakura Books (1983) que a32=1 quando e somente quando a=1. Por conseqüência, a equação 22 pode ser escrita como detX=1+1+1=1 mod 2 ... (equação 23) [00138] Portanto, a matriz X é uma matriz inversível e a saída da unidade de substituição de dados 3002 é zero quando e somente quando a entrada é zero. Este fato e a linearidade da unidade de substituição de dados 3002 garante que a conversão pela unidade de substituição de dados 3002 é uma bijeção. [00139] A exposição de motivos acima para a propriedade bijetiva da conversão RotN1(+)RotN2(+)RotN3 também se aplica a (N1, N2, N3) ψ (7, 1, 0). Além disso, o mesmo acontece para os casos onde o número de rotações-deslocamento a ser utilizado é um número ímpar diferente de 3. Em outras palavras, a conversão pela unidade de substituição de dados 3002 é definitivamente bijetiva contanto que a conversão envolva um número ímpar de rotações-deslocamento (incluindo uma rotação-deslocamento por 0 bit). [00140] A unidade de armazenamento de dados da tabela de substituição 3003 converte os dados de entrada de 8 bits baseada nos dados da tabela de substituição pré-armazenados que contém 256 valores de tabela de 8 bits diferentes. Por conseqüência, a conversão pela unidade de armazenamento de dados da tabela de substituição 3003 também é bijetiva. [00141] Portanto, as conversões executadas pelos elementos de construção da unidade de conversão de dados 300 (301) são todos bi-jeções, de modo que a conversão no geral da unidade de conversão de dados 300 (301) por si é uma bijeção. [00142] A Fig. 9 apresenta o mapeamento da unidade de substituição de dados 3002 (isto é, a unidade de conversão de dados 300 (301) da concretização que é um mapa bijetivo. Como pode ser visto a partir da figura, dois valores diferentes no domínio X estão infalivelmente sendo mapeados para dois valores diferentes na faixa Y, ao contrário do mapeamento convencional apresentado na Fig. 2. Com este mapeamento da presente concretização, os problemas associados com a diminuição no número de elementos da faixa Y se comparado com o número de elementos do domínio X podem ser evitados. [00143] Portanto, ao contrário das técnicas convencionais, a unidade de substituição de dados 3002 (a unidade de conversão de dados 300 (301) nesta concretização realiza uma conversão bijetiva, por meio disso oferecendo uma melhor performance no embaralhamento de dados e beneficiando a segurança criptográfica). [00144] A performance de avalanche de bits da unidade de conversão de dados 300 (301) nesta concretização é analisada a seguir. [00145] A unidade de substituição de dados 3002 na unidade de conversão de dados 300 (301) executa uma operação de "OR" exclusivo para os bits correspondentes nos dados de entrada X e duas rota-ções-deslocamento resultam dos dados de entrada X que são os dados Rot7(X) e os dados Rot1(X). Por conseqüência, a alteração em um único bit nos dados de entrada X afeta não somente o próprio bit mas outros dois bits. Além disso, os dados de saída da unidade de substituição de dados 3002 são adicionalmente processados não-linearmente na unidade de armazenamento de dados da tabela de substituição 3003, como resultado do que, vários bits irão terminar sendo afetados. [00146] Portanto, a unidade de conversão de dados 300 (301), isto é, o aparelho de criptografia de dados 10, nesta concretização, produz um alto efeito de avalanche de bits ao contrário das técnicas convencionais, por meio do que liberando uma melhor performance de embaralhamento de dados e segurança criptográfica. [00147] Em resumo, a unidade de conversão de dados 300 (301) na concretização, difere das técnicas convencionais pelo fato de que ela é proporcionada com a unidade de substituição de dados 3002 que executa um número ímpar (não-menor do que 3) de rotações-deslocamento diferentes (incluindo uma rotação-deslocamento por 0 bits) nos dados de entrada e faz um OU exclusivo para os bits correspondentes nos dados de entrada e nos resultados da rotação- deslocamento. Tal criptografia não somente é mais rápida devido ao uso das rotações-deslocamento, mas também bijetiva e excelente na performance de avalanche de bits, de modo que um grau consideravelmente alto de segurança criptográfica pode ser obtido.
Primeira Variante [00148] Variantes da unidade de conversão de dados 300 (301) na concretização acima são apresentadas abaixo. Cada uma das variantes dadas abaixo pode substituir a unidade de conversão de dados 300 (301) sem prejudicar os efeitos alcançados pela unidade de conversão de dados 300 (301). [00149] A Fig. 10 é um diagrama de blocos apresentando a construção de uma unidade de conversão de dados 310 na primeira variante. Nesta figura e nas figuras que a seguem, aos elementos de construção que são os mesmos que aqueles na concretização acima apresentada na Fig. 8 foram dados os mesmos números de referência. [00150] A unidade de conversão de dados 310 difere da unidade de conversão de dados 300 (301) pelo fato de que uma unidade de redis-posição de bits 3010 foi inserida entre a unidade de adição de chave 3001 e a unidade de substituição de dados 3002. [00151] A unidade de redisposição de bits 3010 arbitrariamente re-dispõe os bits dos dados de 32 bits G resultados a partir da unidade de adição de chave 3001. Por exemplo, a unidade de redisposição de bits 3010 desloca o primeiro bit dos dados G para o 15- bit, o segundo bit para o 27- bit, o terceiro bit para o sétimo bit e daí por diante e emite os dados de 32 bits obtidos GX para a unidade de substituição de dados 3002. [00152] Desde que a conversão executada pela unidade de redisposição de bits 3010 é uma bijeção, a conversão em geral da unidade de conversão de dados 310 por si é bijetiva. Por conseqüência, a unidade de conversão de dados 310 pode garantir pelo menos o nível de performance de embaralhamento de dados igual a da unidade de conversão de dados 300 (301) da concretização acima, Seaunda Variante [00153] A Fig. 11 é um diagrama de blocos apresentando a construção de uma unidade de conversão de dados 320 na segunda variante, Esta unidade de conversão de dados 320 difere da unidade de conversão de dados 300 (301) pelo fato de que a unidade de adição de chave 3001 e a unidade de substituição de dados 3002 foram revezadas (isto é, a conexão entre a unidade de adição de chave 3001 e a unidade de substituição de dados 3002 foi invertida). [00154] É desnecessário dizer que a unidade de conversão de dados 320 é capaz de liberar o mesmo nível de performance de embaralhamento de dados que o da unidade de conversão de dados 300 (301) da concretização acima.
Terceira Variante [00155] A Figura 12 é um diagrama de blocos apresentando a construção de uma unidade de conversão de dados 330 na terceira variante, Esta unidade de conversão de dados 330 difere da unidade de conversão de dados 300 (301) pelo fato de que a unidade de substituição de dados 3002 foi substituída por uma unidade de substituição de dados 3020 que varia a quantidade de rotação. [00156] A unidade de substituição de dados 3020 realiza três rotações-des loca mento diferentes em paralelo para os dados de 32 bits G informados a partir da unidade de adição de chave 3001, onde as quantidades de rotação (os números de bits pelos quais os dados G são para ser girado-deslocado) das três rotações-deslocamento são determinadas pelos dados da chave de quantidade de rotação de 15 bits. A unidade de substituição de dados 3020 então faz um OR" exclusivo para os bits correspondentes nos três valores de 32 bits obtidos como resultado das rotações-deslocamento e emite o resultado como os dados de 32 bits H. [00157] A Fig. 13 é um diagrama de blocos apresentando a construção detalhada da unidade de substituição de dados 3020. Esta unidade de substituição de dados 3020 é proporcionada com três deslocadores 3021 até 3023, três conversores paralelo-serial 3024 até 3026 e uma unidade de "OR" exclusivo 3027. [00158] Os deslocadores 3021 até 3023 são registros de deslocamento de 32 bits que são cada um deles ligados de modo que o bit mais significante será ciclicamente deslocado para o bit menos signifi-cante. Os deslocadores 3021 até 3023 giram-deslocam os dados G em paralelo em direção as posições de bit de mais alta ordem respectivamente em sincronismo com os pulsos de clock enviados a partir dos conversores paralelo-serial 3026 até 3024. [00159] Os conversores paralelo-serial 3024 até 3026 serialmente emitem as série de pulsos de clock equivalentes ao valor (0 até 31) apresentado por dados paralelos de 5 bits, respectivamente para os deslocadores 3023 até 3021. Mais especificamente, os conversores paralelo-serial 3024 até 3026 respectivamente adquirem os 5 bits de mais alta ordem, os 5 bits de ordem média e os 5 bits de mais baixa ordem dos dados da chave de quantidade de rotação de 15 bits como os dados paralelos de 5 bits e quando os dados de 32 bits G são informados nos deslocadores 3021 até 3023, emitem a série de pulsos de clock especificados pelos valores paralelos de 5 bits mantidos nos mesmos respectivamente para os deslocadores 3023 até 3021. [00160] A unidade de "OR" exclusivo 3027 executa uma operação de "OR" exclusivo para os bits correspondentes nos três valores de 32 bits emitidos a partir dos deslocadores 3021 até 3023 e emite o resultado como os dados de 32 bits H. [00161] Quando os dados de 32 bits G e os dados da chave de quantidade de rotação de 15 bits são informados na unidade de substi- tuição de dados 3020, o processamento atua da seguinte maneira: [00162] Os dados de 32 bits G são informados em cada um dos deslocadores 3021 até 3023, ao mesmo tempo que os dados da chave de quantidade de rotação de 15 bits são divididos a partir do bit de mais alta ordem dos mesmos em unidades de 5 bits que estão respectivamente mantidas nos conversores paralelo-serial 3024 até 3026. Os conversores paralelo-serial 3024 até 3026 decodificam em convertem serial-paralelo os valores de 5 bits e emitem cadeias de pulso correspondendo aos valores de 5 bits respectivamente para os deslocadores 3023 até 3021. [00163] Os deslocadores 3021 até 3023 giram-deslocam os dados G em paralelo em direção as posições de mais alta ordem pelos números de bits equivalentes as cadeias de pulso fornecidas respectivamente a partir dos conversores paralelo-serial 3026 até 3024. [00164] Os deslocadores 3021 até 3023 então emitem seus resultados de rotação-deslocamento de 32 bits para a unidade de "OR" exclusiva 3027, que por sua vez, executa uma operação de "OR" exclusiva para os bits correspondentes nos mesmos para produzir os dados H. [00165] Suponha que os dados da chave de quantidade de rotação sejam "000000010110011b" (b representando a notação binária). Então, a operação executada para os dados de entrada G pela unidade de substituição de dados 3020 é H=Rot19(G) (+)Rot5(G) (+) G [00166] Portanto, através do uso da unidade de substituição de dados 3020, as quantidades de rotação nos deslocadores 3021 até 3023 são dinamicamente determinadas pelos dados da chave de quantidade de rotação. Por conseqüência, por reter os dados da chave de quantidade de rotação como uma chave secreta, a unidade de conversão de dados 330 pode ocultar a informação de forma mais eficiente do que a unidade de conversão de dados 300 (301), onde as quantidades de ro- tação das rotações-deslocamento foram fixas. [00167] Em adição, do mesmo modo que a unidade de substituição de dados 3002 na concretização acima, a unidade de substituição de dados 3020 executa três rotações-deslocamento nos dados de entrada e faz um "OR" exclusivo para os bits correspondentes nos resultados da rotação-deslocamento, de modo que é garantido, como no caso da unidade de conversão de dados 300 (301), que a conversão no geral pela unidade de conversão de dados 330 é uma bijeção que produz um alto efeito de avalanche de bits. [00168] Observe aqui que os dados da chave de quantidade de rotação podem ser compartilhados em segredo no transmissor 1 e no receptor 2 antecipadamente, como os dados da chave de 256 bits na concretização acima. Como um exemplo, à parte dos dados da chave de 256 bits, os dados da chave de 120 bits podem ser armazenados e divididos em oito blocos de 15 bits tanto no transmissor 1 como no receptor 2 antecipadamente, de modo que os oito blocos de 15 bits são fornecidos, um por vez, para a unidade de conversão de dados 330 como os dados da chave de quantidade de rotação em sincronismo com os oito rodadas das conversões de dados executadas pela unidade de conversão de dados 330. [00169] Também deve ser observado que as quantidades de rotação (19, 5, 0) utilizadas neste exemplo e as quantidades de rotação (7, 1, 0) na concretização acima, possuem um denominador comum que é considerado preferível na criptografia. Ou seja, o cálculo da diferença (mod 32) de cada uma das duas quantidades de rotação adjacentes produz (13, 14, 5) para as quantidades de rotação (19, 5, 0) e (25, 6, 1) para as quantidades de rotação (7, 1, 0), em ambas as quais as três diferenças são números primos com cada outra. Isto indica que tanto na concretização acima como nesta variante três resultados de rotação-deslocamento suportam uma aleatoriedade significante, com isto sendo possível para intensificar a segurança criptográfica.
Quarta Variante [00170] A Fig. 14 é um diagrama de blocos apresentando a construção de uma unidade de conversão de dados 340 na quarta variante. Esta unidade de conversão de dados 340 difere da unidade de conversão de dados 300 (301) pelo fato de que a unidade de substituição de dados 3002 foi substituída por uma unidade de substituição de dados 3030 que varia o número de operandos para uma operação "OR" exclusivo. [00171] A unidade de substituição de dados 3030 gira-desloca os dados de 32 bits G emitidos a partir da unidade de adição de chave 3001 utilizando os rotatores-deslocadores especificados pelos dados da chave de número de operandos de 5 bits, faz um "OR" exclusivo para os bits correspondentes nos valores de 32 bits girados-deslocados emitidos a partir dos rotatores-deslocadores e emite o resultado da operação como os dados de 32 bits H. [00172] A Fig. 15 é um diagrama de blocos apresentando a construção detalhada da unidade de substituição de dados 3030. Esta unidade de substituição de dados 3030 é rudemente feita de cinco rotatores-deslocadores 3031 até 3035 e de uma unidade de "OR" exclusivo 3036. [00173] Os rotatores-deslocadores 3031 até 3035 são principalmente proporcionados com portas do buffer de saída e linhas de sinal que possuem padrões de rede elétrica fixos para os dados de entrada de 32 bits girados-deslocado X em direção as posições de mais alta ordem respectivamente por 19 bits, 7 bits, 5 bits, 1 bit e 0 bit. Cada um dos rotatores-deslocadores 3031 até 3035 emite os dados de 32 bits Rotn(x) obtidos como um resultado de sua rotação-deslocamento para a unidade de "OR" exclusivo 3036 se "1" for informado em um terminal de permissão da mesma e emite zero (OOOOOOOOh) se "0" for informado no terminal de permissão. [00174] A unidade "OR" exclusivo 3036 executa uma operação "OR" exclusivo para os bits correspondentes nos cinco valores de 32 bits emitidos a partir dos rotatores-deslocadores 3031 até 3035 e emite o resultado da operação como os dados de 32 bits H. [00175] Quando os dados de 32 bits G e os dados da chave de número de operandos de 5 bits são informados, a unidade de substituição de dados 3030 opera da seguinte maneira: [00176] Os dados de 32 bits G são informados em cada um dos rotatores-deslocadores 3031 até 3035, girados-deslocados pela respectiva quantidade de rotação para tornarem-se Rotn(G) e retidos nos mesmos. Neste meio tempo, os dados da chave de número de operandos são divididos em 5 bits, que estão respectivamente emitidos para os terminais de permissão dos rotatores-deslocadores 3031 até 3035. [00177] De acordo com o estado lógico ("1" ou "0") de um sinal informado no terminal de permissão de cada um dos rotatores-deslocadores 3031 até 3035, ou os dados Rotn(G) mantidos nos mesmos ou o valor zero (OOOOOOOOh) é emitido para a unidade "OR" exclusivo 3036. [00178] A unidade "OR" exclusivo 3036 faz um "OR" exclusivo para os bits correspondentes nos cinco valores de 32 bits emitidos respectivamente a partir dos rotatores-deslocadores 3031 até 3035 e emite o resultante H. [00179] Suponha que os dados da chave de número de operandos sejam "10101b". Então, a operação executada pela unidade de substituição de dados 3030 para os dados de entrada G é H=Rot19(G) (+)Rot5(G) (+)G [00180] Por outro lado, se os dados da chave de número de operandos forem "11111b", a operação executada pela unidade de substituição de dados 3030 para os dados de entrada G é H=Rot19(G) (+)Rot7(G) (+)Rot5(G) (+)Rot1(G) (+)G [00181] Portanto, a unidade de substituição de dados funciona de modo a girar-deslocar os dados de entrada G utilizando somente os rotatores-deslocadores dinamicamente selecionados a partir dos cinco rotatores-deslocadores 3031 até 3035 tendo as diferentes quantidades de rotação, faz um "OR" exclusivo para os bits correspondentes nos resultados da rotação-deslocamento e emite os dados de 32 bits H obtidos. [00182] Desde que a unidade de conversão de dados 340 oculta os dados da chave de número de operandos de 5 bits na qual 3 ou 5 bits são definitivamente "1", o número de rotatores-deslocadores a serem permitidos é dinamicamente alterado cada vez. Isto traduz-se na unidade de conversão de dados 340 mais segura se comparado com a unidade de conversão de dados 300 (301) que sempre utiliza as mesmas três rotações-deslocamento. [00183] Observe que a unidade de substituição de dados 3030 possui um denominador comum com a unidade de substituição de dados 3002 pelo fato de um número ímpar (não-menor do que 3) de diferentes rotações-deslocamento dos dados de entrada são realizadas para uma operação "OR" exclusivo. Por conseqüência, da mesma forma que a unidade de conversão de dados 300 (301) da concretização acima, a criptografia que não é somente bijetiva, mas possui um alto efeito de avalanche de bits é alcançada pela unidade de conversão de dados 340. [00184] Note aqui que os dados da chave de número de operandos podem ser compartilhados antecipadamente no transmissor 1 e no receptor 2 como uma chave secreta, como com os dados da chave de 256 bits na concretização acima. Como um exemplo, à parte dos dados da chave de 256 bits, os dados da chave de 40 bits podem ser armazenados e divididos em oito blocos de 5 bits tanto no transmissor 1 como no receptor 2 antecipadamente, de modo que os oito blocos de 5 bits são seqüencialmente fornecidos para a unidade de conversão de dados 340 como os dados da chave de número de operandos em sin-cronismo com os oito rodadas da conversão de dados executada pela unidade de conversão de dados 340. [00185] Apesar do aparelho de criptografia de dados da presente invenção ter sido descrito por meio da concretização acima e das variantes, a presente invenção não está limitada a tal. Por exemplo, as seguintes modificações são possíveis. [00186] Ao mesmo tempo que cada uma das unidades de conversão de dados da concretização e das variantes acima foram implementadas por hardware dedicado incluindo padrões de rede elétrica e ICs lógicos (Circuitos Integrados), tal como as portas OU exclusivo, deve ser claro que cada uma das unidades de conversão de dados também pode ser implementada por software utilizando um programa que é executado em um sistema de computador equipado com um microprocessador de propósito geral, um programa de controle, uma ROM armazenando os dados da tabela de substituição e uma RAM como uma área de trabalho. Tal programa pode ser distribuído via meios de armazenamentos que possam ser lidos por computador como DVD-ROMs ou um meio de transferência tal como uma rede de comunicações. [00187] Aqui, a implementação de alta velocidade por software pode ser realizada por se configurar cada uma das unidades de substituição de dados através do uso de instruções de máquina tal como "Rota-te-Shift-Left" para girar-deslocar em direção as posições de mais alta ordem e "Exor" para executar uma operação "OR" exclusivo. Além disso, na execução das rotações-deslocamento sob processamento se-qüencial de acordo com o programa, os dados Rot7(x) e os dados Rot1(X) podem ser obtidos por se girar-deslocar os dados X por 7 bits e 1 bit em paralelo ou por primeiro girar-deslocar os dados X por 1 bit e então girar-deslocar o resultado por 6 bits. [00188] Também é possível combinar os vários elementos de construção da concretização e das variantes acima. Como um exemplo, uma unidade de substituição de dados pode ser configurada de modo que ela suporte tanto a função de variação de quantidade de rotação da unidade de substituição de dados 3020 na terceira variante como a função de variação do número de operandos da unidade de substituição de dados 3030 na quarta variante. Tal unidade de substituição de dados pode ser implementada com registros de deslocamento possuindo tanto os terminais de entrada de clock como os terminais de entrada de permissão, de modo que a seleção dos rotatores-deslocadores a serem habilitados e a determinação das quantidades de rotação dos rotatores-deslocadores selecionados será feita dinamicamente. [00189] Além disso, as unidades de "OR" exclusivo 1011 e 2011 na primeira e na segunda unidades de embaralhamento de dados 101 e 201 na concretização acima podem ser substituídas por outras unidades operacionais capazes de operações reversíveis, tal como um adi-cionador total com transporte. Após tudo, uma operação por uma unidade operacional substituindo como a unidade "OR" exclusivo 1011 e uma operação por uma unidade operacional substituindo como a unidade "OR" exclusiva 2011 necessitam ser o inverso de cada outra. Aqui, é desejável utilizar unidades operacionais simples para evitar uma diminuição na velocidade de processamento. [00190] Além disso, a unidade de adição de chave 3001 na unidade de conversão de dados 300 (301) na concretização acima pode ser substituída por uma unidade operacional, tal como uma unidade "OR" exclusivo, que possua duas entradas de 32 bits e uma saída de 32 bits. Tal unidade operacional é de preferência simples para evitar uma di- minuição na velocidade do processamento. [00191] Além disso, apesar da primeira e da segunda unidades de embaralhamento de dados 101 e 201 no aparelho de criptografia de dados 10 e no aparelho de decriptografia de dados 20 da concretização acima terem repetido o embaralhamento de dados para oito rodadas, a presente invenção não está limitada a tal. [00192] Por exemplo, os número de rodada do embaralhamento de dados pode se feito menor do que oito por ser fazer o tamanho dos dados da chave informados no aparelho de criptografia de dados 10 e no aparelho de decriptografia de dados 20 menor do que 256 bits. Da mesma forma, o número de rodadas do embaralhamento de dados pode ser feito mais do que oito por se fazer o tamanho dos dados da chave informados no aparelho de criptografia de dados 10 e no aparelho de decriptografia de dados 20 maior do que 256 bits. Alternativamente, o número de rodadas do embaralhamento de dados por ser aumentado sem aumentar o tamanho dos dados da chave, por repetidamente utilizar as mesmas subchaves dos dados da chave. Para os dados da chave menores do que 256 bits, as subchaves podem ser geradas utilizando, por exemplo, o dispositivo de geração de subchave DES ou FEAL. [00193] Além disso, apesar da unidade de conversão de dados 300 (301) na concretização acima ter executado a conversão com um bloco de 32 bits como a unidade de processamento, a unidade de processamento e o comprimento do bit de um bloco não estão limitado a isto. Por exemplo, quando implementado a presente invenção através de uma CPU de 64 bits de propósitos geral, um bloco de 64 bits pode ser utilizado como a unidade de processamento. Ao invés disso, somente uma metade de um bloco (tal como os 16 bits de ordem mais baixa de um bloco de 32 bits) pode ser estabelecida como a unidade de processamento, com isto sendo possível para acelerar o processamento crip- tográfico. [00194] Apesar da presente invenção ter sido totalmente descrita por meio de exemplos com referência aos desenhos anexos, é para ser observado que várias alterações e modificações serão aparentes para versados na técnica. Portanto, a menos que tais alterações e modificações saiam do escopo da presente invenção, elas devem ser construídas como estando incluídas no mesmo.

Claims (18)

1. Aparelho de criptografia de dados (10) proporcionado com um dispositivo de conversão de dados (300, 301) para converter dados de entrada de n bits para dados de saída de n bits, o dispositivo de conversão de dados compreendendo: um dispositivo de rotação-deslocamento (3002) para gerar k grupos de dados por girar-deslocar os dados de entrada de n bits; um dispositivo de combinação de dados para combinar os k grupos de dados para gerar os dados de saída de n bits; caracterizado pelo fato de que o dito dispositivo de rotação-deslocamento (3002) gira-desloca os ditos dados de entrada de n bits respectivamente por S1 bits, S2 bits, ..., e Sk bits, S1, S2, ..., e Sk sendo inteiros não-negativos menores do que n e k sendo um número ímpar não-menor do que 3.
2. Aparelho de criptografia de dados, de acordo com a reivindicação 1, caracterizado pelo fato de que o dispositivo de conversão de dados (300, 301) adicionalmente compreende um dispositivo de combinação de chave para combinar os dados de entrada de n bits com os dados da chave fornecida antecipadamente, antes das rota-ções-deslocamento pelo dispositivo de rotação-deslocamento (3002), e onde o dispositivo de rotação-deslocamento (3002) gira-desloca os dados de entrada de n bits combinados com os dados da chave.
3. Aparelho de criptografia de dados, de acordo com a reivindicação 2, caracterizado pelo fato de que o dispositivo de rotação-deslocamento (3002) inclui k unidades de rotação para girar-deslocar os dados de entrada de n bits respectivamente por S1 bits, S2 bits, ..., e Sk bits.
4. Aparelho de criptografia de dados, de acordo com a reivindicação 3, caracterizado pelo fato de que as k unidades de rotação são linhas de sinal que possuem padrões de rede elétrica para girar-deslocar os dados de entrada de n bits respectivamente por S1 bits, S2 bits,..., e Sk bits.
5. Aparelho de criptografia de dados, de acordo com a reivindicação 4, caracterizado pelo fato de que o dispositivo de combinação de chave é um entre um adicionador aritmético e uma porta "OR" exclusiva, e onde o dispositivo de combinação de dados é uma porta "OR" exclusiva.
6. Aparelho de criptografia de dados, de acordo com a reivindicação 1, caracterizado pelo fato de que o dispositivo de combinação de dados combina dados da chave fornecidos antecipadamente com os dados de n bits obtidos por se combinar os k grupos de dados, para gerar os dados de saída de n bits.
7. Aparelho de criptografia de dados, de acordo com a reivindicação 1, caracterizado pelo fato de que o dispositivo de rotação deslocamento inclui: k unidades de rotação para girar-deslocar os dados de entrada de n bits respectivamente pelas quantidades de rotação especificadas; uma unidade de obtenção de dados da chave para adquirir os dados da chave; e uma unidade de determinação de quantidade de rotação para determinar os valores de S1, S2, ..., e Sk baseada nos dados da chave adquiridos e especificando, para as k unidades de rotação, S1 bits, S2 bits, ..., e Sk bits como as respectivas quantidades de rotação, e onde as k unidades de rotação giram-deslocam os dados de entrada de n bits respectivamente por S1 bits, S2 bits, ..., e Sk bits como especificado pela unidade de determinação de quantidade de rota- ção.
8. Aparelho de criptografia de dados, de acordo com a reivindicação 1, caracterizado pelo fato de que o dispositivo de rotação-deslocamento (3002) inclui: m unidades de rotação para girar-deslocar os dados de entrada de n bits respectivamente por S1 bits, S2 bits, ..., e Sm bits, S1, S2, ..., e Sm sendo inteiros não-negativos menores do que nem sendo um inteiro não-menor do que 3; uma unidade de obtenção de dados da chave para adquirir os dados da chave; e uma unidade de seleção para selecionar k unidades de rotação a partir das m unidades de rotação baseada nos dados da chave adquiridos, de modo que k grupos de dados são gerados como um resultado das rotações-deslocamento dos dados de entrada de n bits pelas k unidades de rotação selecionadas.
9. Método de criptografia de dados proporcionado com uma etapa de conversão de dados para converter dados de entrada de n bits para dados de saída de n bits, a etapa de conversão de dados compreendendo: uma subetapa de rotação-deslocamento para gerar k grupos de dados por girar-deslocar os dados de entrada de n bits; e uma subetapa de combinação de dados para combinar os k grupos de dados para gerar os dados de saída de n bits; caracterizado pelo fato de que a dita subetapa de rotação-deslocamento gira-desloca os ditos dados de entrada de n bits respectivamente por S1 bits, S2 bits, ..., e Sk bits, S1, S2, ..., e Sk sendo inteiros não-negativos menores do que n e k sendo um número ímpar não-menor do que 3.
10. Método de criptografia de dados, de acordo com a reivindicação 9, caracterizado pelo fato de que a etapa de conversão de dados adicionalmente compreende uma subetapa de combinação de chave para combinar os dados de entrada de n bits com os dados da chave fornecida antecipadamente, antes das rotações-deslocamento pela subetapa de rotação-deslocamento, e onde a subetapa de rotação-deslocamento gira-desloca os dados de entrada de n bits combinados com os dados da chave.
11. Método de criptografia de dados, de acordo com a reivindicação 9, caracterizado pelo fato de que a subetapa de combinação de dados combina dados da chave fornecidos antecipadamente com os dados de n bits obtidos por se combinar os k grupos de dados, para gerar os dados de saída de n bits.
12. Método de criptografia de dados, de acordo com a reivindicação 9, caracterizado pelo fato de que a subetapa de rotação-deslocamento inclui: uma subetapa de obtenção de dados para adquirir os dados da chave; uma subetapa de determinação da quantidade de rotação para determinar os valores de S1, S2, ..., e Sk baseado nos dados da chave adquiridos; e uma subetapa de rotação para girar-deslocar os dados de entrada de n bits por S1 bits, S2 bits, ..., e Sk bits de forma independente.
13. Método de criptografia de dados, de acordo com a reivindicação 9, caracterizado pelo fato de que a subetapa de rotação deslocamento inclui: uma subetapa de obtenção de dados da chave para adquirir os dados da chave; uma subetapa de seleção para selecionar os k valores de S1, S2, ..., e Sk a partir de m valores de S1, S2, ..., e Sm que são predeterminados baseado nos dados da chave adquiridos, S1, S2, ..., e Sm sendo inteiros não-negativos menores do que nem sendo um inteiro não-menor do que 3; e uma subetapa de rotação para girar-deslocar os dados de entrada de n bits por S1 bits, S2 bits, ..., e Sk bits de forma independente.
14. Meio de armazenamento que pode ser lido por computador armazenando um programa de criptografia de dados proporcionado com uma etapa de conversão de dados para converter dados de entrada de n bits para dados de saída de n bits, a etapa de conversão de dados compreendendo: uma subetapa de rotação-deslocamento para gerar k grupos de dados por girar-deslocar os dados de entrada de n bits; e uma subetapa de combinação de dados para combinar os k grupos de dados para gerar os dados de saída de n bits; caracterizado pelo fato de que a dita subetapa de rotação-deslocamento gira-desloca os ditos dados de entrada de n bits respectivamente por S1 bits, S2 bits, ..., e Sk bits, S1, S2, ..., e Sk sendo inteiros não-negativos menores do que n e k sendo um número ímpar não-menor do que 3.
15. Meio de armazenamento, de acordo com a reivindicação 14, caracterizado pelo fato de que a etapa de conversão de dados adicionalmente compreende uma subetapa de combinação de chave para combinar os dados de entrada de n bits com os dados da chave fornecidos antecipadamente, antes das rotações-deslocamento pela subetapa de rotação-deslocamento, e onde a subetapa de rotação-deslocamento gira-desloca os dados de entrada de n bits combinados com os dados da chave.
16. Meio de armazenamento, de acordo com a reivindicação 14, caracterizado pelo fato de que a subetapa de combinação de dados combina dados da chave fornecidos antecipadamente com os dados de n bits obtidos por se combinar os k grupos de dados, para gerar os dados de saída de n bits.
17. Meio de armazenamento, de acordo com a reivindicação 14, caracterizado pelo fato de que a subetapa de rotação-deslocamento inclui: uma subetapa de obtenção de dados da chave para adquirir os dados da chave; uma subetapa de determinação de quantidade de rotação para determinar os valores de S1, S2, ..., e Sk baseada nos dados da chave adquiridos; e uma subetapa de rotação para girar-deslocar os dados de entrada de n bits por S1 bits, S2 bits, ..., e Sk bits de forma independente.
18. Meio de armazenamento, de acordo com a reivindicação 14, caracterizado pelo fato de que a subetapa de rotação-deslocamento inclui: uma subetapa de obtenção de dados da chave para adquirir os dados da chave; uma subetapa de seleção para selecionar os k valores de S1, S2, ..., e Sk a partir dos m valores de S1, S2, ..., e Sm que são predeterminados baseado nos dados da chave adquiridos, S1, S2, ..., e Sm sendo inteiros não-negativos menores do que nem sendo um inteiro não-menor do que 3; e uma subetapa de rotação para girar-deslocar os dados de entrada de n bits por S1 bits, S2 bits, ..., e Sk bits de forma independente.
BRPI0000172A 1999-05-26 2000-01-26 aparelho para cifragem de dados usando rotações e método correspondente BRPI0000172B1 (pt)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP14607999 1999-05-26

Publications (2)

Publication Number Publication Date
BR0000172A BR0000172A (pt) 2001-01-16
BRPI0000172B1 true BRPI0000172B1 (pt) 2015-10-27

Family

ID=15399648

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI0000172A BRPI0000172B1 (pt) 1999-05-26 2000-01-26 aparelho para cifragem de dados usando rotações e método correspondente

Country Status (9)

Country Link
US (1) US6304657B1 (pt)
EP (1) EP1056240B1 (pt)
KR (1) KR100349332B1 (pt)
CN (1) CN1282324C (pt)
BR (1) BRPI0000172B1 (pt)
CA (1) CA2298055C (pt)
DE (1) DE69906037T2 (pt)
MY (1) MY125798A (pt)
SG (1) SG85691A1 (pt)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7177421B2 (en) * 2000-04-13 2007-02-13 Broadcom Corporation Authentication engine architecture and method
FR2814009B1 (fr) * 2000-09-14 2003-01-31 Jean Roland Riviere Procede et dispositif de transformation de donnees a caractere convolutif et decalages variables, et systemes les mettant en oeuvre
EP1360795B1 (en) * 2001-01-12 2006-08-09 Broadcom Corporation Implentation of the SHA1 algorithm
DE60301750T2 (de) * 2002-04-03 2006-07-06 Matsushita Electric Industrial Co., Ltd., Kadoma Vorrichtung zur Erzeugung eines erweiterten Schlüssels, Verschlüsselungsvorrichtung und Verschlüsselungssystem
US7376235B2 (en) * 2002-04-30 2008-05-20 Microsoft Corporation Methods and systems for frustrating statistical attacks by injecting pseudo data into a data system
US7343011B2 (en) * 2002-07-15 2008-03-11 Conexant, Inc. Secure telecommunications system for wireless local area networks
US7796752B2 (en) * 2002-11-04 2010-09-14 Marvell International Ltd. Cipher implementation
US7346160B2 (en) * 2003-04-23 2008-03-18 Michaelsen David L Randomization-based encryption apparatus and method
US7257225B2 (en) * 2003-12-29 2007-08-14 American Express Travel Related Services Company, Inc. System and method for high speed reversible data encryption
US7526643B2 (en) * 2004-01-08 2009-04-28 Encryption Solutions, Inc. System for transmitting encrypted data
US7752453B2 (en) 2004-01-08 2010-07-06 Encryption Solutions, Inc. Method of encrypting and transmitting data and system for transmitting encrypted data
US8031865B2 (en) * 2004-01-08 2011-10-04 Encryption Solutions, Inc. Multiple level security system and method for encrypting data within documents
JP4101225B2 (ja) * 2004-10-19 2008-06-18 キヤノン株式会社 電子機器及び情報処理装置及びそれらの制御方法、並びにコンピュータプログラム及びコンピュータ可読記憶媒体
DE602005023984D1 (de) * 2005-07-29 2010-11-18 Infineon Technologies Ag Vorrichtung und Verfahren zur Erfassung eines Fehlers in einem Leistungssignal
US7388781B2 (en) * 2006-03-06 2008-06-17 Sandisk Il Ltd. Multi-bit-per-cell flash memory device with non-bijective mapping
US8848442B2 (en) * 2006-03-06 2014-09-30 Sandisk Il Ltd. Multi-bit-per-cell flash memory device with non-bijective mapping
JP4189439B2 (ja) * 2006-06-23 2008-12-03 パナソニック株式会社 暗号処理装置、データ変換方法、データ変換プログラム、記録媒体及び集積回路
CN101237321B (zh) * 2008-02-03 2010-12-08 西北农林科技大学 基于循环队列移位规则的加密方法
US9070453B2 (en) * 2010-04-15 2015-06-30 Ramot At Tel Aviv University Ltd. Multiple programming of flash memory without erase
US8379847B2 (en) * 2010-06-30 2013-02-19 International Business Machines Corporation Data and control encryption
KR101148560B1 (ko) * 2010-09-01 2012-05-23 중앙대학교 산학협력단 비트 조합 순서를 이용한 암호화 방법 및 장치
KR101312374B1 (ko) * 2011-07-25 2013-09-27 소프트포럼 주식회사 데이터 크기 조정 장치 및 방법
CN104318134B (zh) * 2014-11-05 2017-06-06 北京深思数盾科技股份有限公司 一种数据保护方法
CN105022961B (zh) * 2015-06-29 2018-07-06 北京深思数盾科技股份有限公司 一种计算机数据的保护方法及装置
CN106600788A (zh) * 2016-12-23 2017-04-26 嘉应学院 一种用于密码锁的实现时间数据安全交互的方法
CN110336662B (zh) * 2019-06-06 2022-02-18 平安科技(深圳)有限公司 数字信息加密方法、装置、计算机设备和存储介质
US10637837B1 (en) 2019-11-27 2020-04-28 Marpex, Inc. Method and system to secure human and also internet of things communications through automation of symmetric encryption key management
CN114254366B (zh) * 2021-12-27 2025-05-16 中国电信股份有限公司 加密方法、解密方法、装置及电子设备
CN115277192B (zh) * 2022-07-27 2024-01-30 维沃移动通信有限公司 信息加密方法、装置及电子设备
CN115514482B (zh) * 2022-10-11 2024-11-12 深圳知时致和科技有限公司 基于伪随机数的信息加密方法、装置、设备及介质
US12197921B2 (en) * 2022-12-22 2025-01-14 Intel Corporation Accelerating eight-way parallel Keccak execution

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4255811A (en) * 1975-03-25 1981-03-10 International Business Machines Corporation Key controlled block cipher cryptographic system
DE2658065A1 (de) * 1976-12-22 1978-07-06 Ibm Deutschland Maschinelles chiffrieren und dechiffrieren
US5003597A (en) * 1989-12-21 1991-03-26 Xerox Corporation Method and apparatus for data encryption
US5054067A (en) * 1990-02-21 1991-10-01 General Instrument Corporation Block-cipher cryptographic device based upon a pseudorandom nonlinear sequence generator
US5727062A (en) * 1995-07-06 1998-03-10 Ritter; Terry F. Variable size block ciphers
FR2737370B1 (fr) * 1995-07-27 1997-08-22 Bull Cp8 Procede de communication cryptographique
US5724428A (en) * 1995-11-01 1998-03-03 Rsa Data Security, Inc. Block encryption algorithm with data-dependent rotations

Also Published As

Publication number Publication date
CN1282324C (zh) 2006-10-25
KR20000076501A (ko) 2000-12-26
EP1056240B1 (en) 2003-03-19
DE69906037T2 (de) 2003-08-28
BR0000172A (pt) 2001-01-16
MY125798A (en) 2006-08-30
DE69906037D1 (de) 2003-04-24
SG85691A1 (en) 2002-01-15
CN1275846A (zh) 2000-12-06
US6304657B1 (en) 2001-10-16
CA2298055C (en) 2007-07-10
CA2298055A1 (en) 2000-11-26
EP1056240A1 (en) 2000-11-29
KR100349332B1 (ko) 2002-08-21

Similar Documents

Publication Publication Date Title
KR100349332B1 (ko) 데이터 암호화장치 및 방법
US6570989B1 (en) Cryptographic processing apparatus, cryptographic processing method, and storage medium storing cryptographic processing program for realizing high-speed cryptographic processing without impairing security
US8213607B2 (en) Method for securely extending key stream to encrypt high-entropy data
KR100331863B1 (ko) 네트워크암호화장치및방법
US20030039357A1 (en) System and methods for a vernam stream cipher, a keyed one-way hash and a non-cyclic pseudo-random number generator
US5724428A (en) Block encryption algorithm with data-dependent rotations
US8122075B2 (en) Pseudorandom number generator and encryption device using the same
Huang et al. A novel structure with dynamic operation mode for symmetric-key block ciphers
US11057193B2 (en) Enhanced randomness for digital systems
Dhanalaxmi et al. Multimedia cryptography—A review
ES2287978T3 (es) Metodo para la conversion criptografica de bloques de datos binarios.
RU2738321C1 (ru) Способ криптографического преобразования и устройство для его осуществления
Blaze et al. The MacGuffin block cipher algorithm
Zheng The SPEED cipher
Natarajan et al. A novel approach for data security enhancement using multi level encryption scheme
Nuthan et al. Development of Randomized Hybrid Crypto system
JP3190648B2 (ja) データ暗号化装置及びその方法
Abdulsamad et al. Analysis of the Cryptography Methods for Design of Crypto-Processor
JP3154991B2 (ja) 暗号処理装置、暗号処理方法、及び、暗号処理プログラムを記憶した記憶媒体
NehaKhatri-Valmik et al. Blowfish algorithm
Kumar et al. MSEA: modified symmetric encryption algorithm
Naik et al. Comparison of Different Encryption Algorithm and Proposing an Encryption Algorithm
Hattab et al. Developing the complexity and security of the twofish algorithm through a new key scheduling design
Ramesh et al. A novel block-cipher mechanism for information security in cloud system
JP2001215874A (ja) 副鍵生成装置およびそのプログラム記録媒体

Legal Events

Date Code Title Description
B25D Requested change of name of applicant approved

Owner name: PANASONIC CORPORATION (JP)

Free format text: NOME ALTERADO DE: MATSUSHITA ELECTRIC INDUSTRIAL CO., LTD

B06A Patent application procedure suspended [chapter 6.1 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: 10 (DEZ) ANOS CONTADOS A PARTIR DE 27/10/2015, OBSERVADAS AS CONDICOES LEGAIS.

B21A Patent or certificate of addition expired [chapter 21.1 patent gazette]

Free format text: PATENTE EXTINTA EM 27/10/2025