SlideShare une entreprise Scribd logo
1  sur  5
Télécharger pour lire hors ligne
Sessão nº10

                             Códigos Cíclicos




     CCISEL 99                      Teoria Matemática da Comunicação   10 - 1
     Criptografia Computacional




Conceitos básicos da Teoria da Informação


   – Medida de quantidade de informação (entropia).
   – Capacidade de informação dum canal.
   – Codificação:
       • codificação de fonte
       • [cifra]
       • codificação de canal



     CCISEL 99                      Teoria Matemática da Comunicação   10 - 2
     Criptografia Computacional




                                                                                1
Codificação de canal

• Com a codificação de fonte eliminou-se a redundância, pelo
  que idealmente todos os símbolos binários “contêm” um bit de
  informação.
• Mas estes símbolos vão ser transmitidos sobre um canal com
  ruído, logo vai haver perda de informação sempre que existir
  erro num símbolo.
• A solução deste problema consiste em adicionar
  redundância de tal forma que apesar dos erros do
  canal ainda é possível transferir a quantidade de
  informação associada à mensagem; faz-se com a
  codificação de canal.

     CCISEL 99                       Teoria Matemática da Comunicação   10 - 3
     Criptografia Computacional




Como adicionar redundância?

• forma simples:
   – código de repetição
   – código de bit de paridade


• forma mais elaborada:
   – códigos de bloco lineares
       • Ex. Código de Hamming
       • códigos cíclicos
               – Ex. CRC, BCH, ...
   – códigos convolucionais (orientados ao símbolo)


     CCISEL 99                       Teoria Matemática da Comunicação   10 - 4
     Criptografia Computacional




                                                                                 2
Palavras de código como polinómios
• Os códigos cíclicos são códigos de bloco lineares com uma
  estrutura cíclica,o que leva a implementações mais práticas e
  daí a sua grande utilização.
• Palavras de código como polinómios: cada palavra do código
  com n dígitos binários c = cn-1…c2c1c0 sobre GF[2] está
  associada a um polinómio com coeficientes em GF[2], tal que
       cn-1…c2c1c0 ↔ cn-1 xn-1 + …+ c2 x2 + c1 x1 + c0 = p(x)
  onde x é a variável.
• Adição e Multiplicação escalar de polinómios
   – c + d ↔ (cn-1 + dn-1 ) xn-1 + … + (c1 + d1 ) x1 + (c0 + d0 ) =
              p(x) + q(x)
   – αc ↔ (αcn-1) xn-1 + …+ (αc1) x1 + (αc0) = α p(x)

      CCISEL 99                    Teoria Matemática da Comunicação   10 - 5
      Criptografia Computacional




Código linear como sub espaço vectorial

• O conjunto Pn(GF[2]) de todos os polinómios de grau menor
  que n, com coeficientes em GF[2], é um espaço vectorial, com
  as operações de adição e de multiplicação escalar de
  polinómios por elementos de GF[2]. Além disso, se C é um
  código linear com palavras de dimensão n, então a cada
  palavra do código c ∈ C está associado um polinómio
  p(x) ∈ Pn(GF[2]). Mais ainda, esta associação preserva as
  operações de adição e de multiplicação escalar e assim
  podemos pensar em C como um sub espaço de Pn(GF[2]).
  Deste modo, podemos pensar numa palavra do código com
  dimensão n como um polinómio de grau menor que n e um
  código linear C com palavras de dimensão n sobre GF[2]
  como um sub espaço de Pn(GF[2]).

      CCISEL 99                    Teoria Matemática da Comunicação   10 - 6
      Criptografia Computacional




                                                                               3
Rotação ou cyclic shift duma palavra do código
• Seja       p(x) = cn-1 xn-1 + …+ c2 x2 + c1 x1 + c0
• Rotação para a esquerda de p(x) ≡ p’ (x)
         p’(x) = cn-2 xn-1 + …+ c2 x3 + c1 x2 + c0 x1 + cn-1
• Mas
            x p(x) = cn-1 xn + …+ c2 x3 + c1 x2 + c0 x1
  logo
                  x p(x) + p’(x) = cn-1 xn + cn-1 ;
                  p’(x) = x p(x) + cn-1 xn + cn-1 ;
                  p’(x) = x p(x) mod ( xn + 1) ;

• Um código linear C ⊆Pn diz-se cíclico se e só se p(x) ∈ C
  implicar que f(x)p(x) ∈ C para qualquer polinómio f(x) ∈ Pn.

      CCISEL 99                     Teoria Matemática da Comunicação           10 - 7
      Criptografia Computacional




Polinómio gerador do código cíclico
• Um código cíclico (n,k) é definido pelo polinómio gerador
          g(x) = 1 xq + gq-1 xq-1 + …+ g2 x2 + g1 x1 + 1
  onde q = n - k e os coeficientes gi tais que g(x) é factor de xn + 1
• Cada palavra do código X obtém-se
       X(x) = QM (x) g(x),         onde QM (x) ≡ bloco de k bits da mensagem

• Polinómio verificador de paridade h(x)
                   p(x) h(x) = 0 ⇔ p(x) ∈ C
  em que     h(x) g(x) = xn + 1
  ou seja    h(x) g(x) mod ( xn + 1 ) = 0
   – Nota: o polinómio gerador é o polinómio de menor grau de entre todos
     os que pertencem ao código.

      CCISEL 99                     Teoria Matemática da Comunicação           10 - 8
      Criptografia Computacional




                                                                                        4
Código cíclico sistemático
• Definem-se o polinómio dos bits da mensagem M(x) e o
  polinómio dos bits de paridade C(x) como
           M(x) = mk-1 xk-1 + …+ m2 x2 + m1 x1 + m0
                         C(x) = cq-1 xq-1 + …+ c2 x2 + c1 x1 + c0
• Pretende-se que as palavras do código tenham a seguinte forma
                      X(x) = xq M(x) + C(x)
  mas como           X(x) = QM (x) g(x)
  logo         xq M(x) / g(x) = Q (x) + C(x) / g(x)
                                 M
  sendo esta a condição para o código ser sistemático
• os bits de paridade C(x) obtêm-se
                  C(x) = resto [ xq M(x) / g(x) ]

      CCISEL 99                               Teoria Matemática da Comunicação    10 - 9
      Criptografia Computacional




Descodificação do código cíclico sistemático


• Define-se o polinómio dos bits recebidos Y(x) como
             Y(x) = yn-1 xn-1 + …+ y2 x2 + y1 x1 + y0
  onde Y(x) = X(x) + E(x), sendo E(x) o polinómio do erro
• Para verificar a paridade faz-se
                          Y(x) / g(x) = X(x) / g(x) + E(x) / g(x)
                                   Y(x) / g(x) = M(x) + E(x) / g(x)
• os sindroma S(x) obtem-se
                  S(x) = resto [ Y(x) / g(x) ]



      CCISEL 99                              Teoria Matemática da Comunicação    10 - 10
      Criptografia Computacional




                                                                                           5

Contenu connexe

Tendances

09 problemas de grafos np-completos
09 problemas de grafos np-completos09 problemas de grafos np-completos
09 problemas de grafos np-completosYuri Passos
 
Exercícios Resolvidos: Máximo e minimo absoluto
Exercícios Resolvidos: Máximo e minimo absolutoExercícios Resolvidos: Máximo e minimo absoluto
Exercícios Resolvidos: Máximo e minimo absolutoDiego Oliveira
 
Exercicios resolvidos
Exercicios resolvidosExercicios resolvidos
Exercicios resolvidostexa0111
 
Fatoração de polinômios
Fatoração de polinômiosFatoração de polinômios
Fatoração de polinômiosCintia Frontino
 
Logaritmo e função logaritmica (exercícios resolvidos sobre logaritmos, logar...
Logaritmo e função logaritmica (exercícios resolvidos sobre logaritmos, logar...Logaritmo e função logaritmica (exercícios resolvidos sobre logaritmos, logar...
Logaritmo e função logaritmica (exercícios resolvidos sobre logaritmos, logar...wilkerfilipel
 
Criptografia com curva_eliptica_dbetoni
Criptografia com curva_eliptica_dbetoniCriptografia com curva_eliptica_dbetoni
Criptografia com curva_eliptica_dbetonidrbetoni
 
Apostila funcao-de-segundo-grau
Apostila funcao-de-segundo-grauApostila funcao-de-segundo-grau
Apostila funcao-de-segundo-grauPetronio Paniago
 

Tendances (20)

09 problemas de grafos np-completos
09 problemas de grafos np-completos09 problemas de grafos np-completos
09 problemas de grafos np-completos
 
Td 7 matemática ii
Td 7   matemática iiTd 7   matemática ii
Td 7 matemática ii
 
Paa algoritmos gulosos
Paa  algoritmos gulososPaa  algoritmos gulosos
Paa algoritmos gulosos
 
Exercícios Resolvidos: Máximo e minimo absoluto
Exercícios Resolvidos: Máximo e minimo absolutoExercícios Resolvidos: Máximo e minimo absoluto
Exercícios Resolvidos: Máximo e minimo absoluto
 
Fatoraçao de polinomios
Fatoraçao de polinomiosFatoraçao de polinomios
Fatoraçao de polinomios
 
Exercicios resolvidos
Exercicios resolvidosExercicios resolvidos
Exercicios resolvidos
 
Fatoração de polinômios
Fatoração de polinômiosFatoração de polinômios
Fatoração de polinômios
 
Fatoração
FatoraçãoFatoração
Fatoração
 
Produtos Notáveis 8º ano
Produtos Notáveis 8º anoProdutos Notáveis 8º ano
Produtos Notáveis 8º ano
 
Pre (função 1º_e_2º_grau)_pdf
Pre (função 1º_e_2º_grau)_pdfPre (função 1º_e_2º_grau)_pdf
Pre (função 1º_e_2º_grau)_pdf
 
Kmeans
KmeansKmeans
Kmeans
 
Função 2o grau
Função 2o grauFunção 2o grau
Função 2o grau
 
P3 calculo i_ (5)
P3 calculo i_ (5)P3 calculo i_ (5)
P3 calculo i_ (5)
 
Logaritmo e função logaritmica (exercícios resolvidos sobre logaritmos, logar...
Logaritmo e função logaritmica (exercícios resolvidos sobre logaritmos, logar...Logaritmo e função logaritmica (exercícios resolvidos sobre logaritmos, logar...
Logaritmo e função logaritmica (exercícios resolvidos sobre logaritmos, logar...
 
Numeros complexos
Numeros complexosNumeros complexos
Numeros complexos
 
Criptografia com curva_eliptica_dbetoni
Criptografia com curva_eliptica_dbetoniCriptografia com curva_eliptica_dbetoni
Criptografia com curva_eliptica_dbetoni
 
Lista de exercícios 1 ano
Lista de exercícios 1 anoLista de exercícios 1 ano
Lista de exercícios 1 ano
 
Apostila funcao-de-segundo-grau
Apostila funcao-de-segundo-grauApostila funcao-de-segundo-grau
Apostila funcao-de-segundo-grau
 
Produtos NotáVeis
Produtos NotáVeisProdutos NotáVeis
Produtos NotáVeis
 
P3 calculo i_ (4)
P3 calculo i_ (4)P3 calculo i_ (4)
P3 calculo i_ (4)
 

En vedette

Deponent verbs vocab_jg
Deponent verbs vocab_jgDeponent verbs vocab_jg
Deponent verbs vocab_jgDentonLatin
 
Relatorio pisa2000 completo
Relatorio pisa2000 completoRelatorio pisa2000 completo
Relatorio pisa2000 completoTina Blanco
 
Prova 4 ano atividade 4 ano
Prova 4 ano atividade 4 anoProva 4 ano atividade 4 ano
Prova 4 ano atividade 4 anokeillacr
 
Ii atividade avaliatíva de geo 4º e 5º ano pdf
Ii atividade avaliatíva de geo 4º e 5º ano pdfIi atividade avaliatíva de geo 4º e 5º ano pdf
Ii atividade avaliatíva de geo 4º e 5º ano pdfAndré Moraes
 

En vedette (8)

jamedez
jamedezjamedez
jamedez
 
The 2000-2006 Regional Operational Program expenditure for public services an...
The 2000-2006 Regional Operational Program expenditure for public services an...The 2000-2006 Regional Operational Program expenditure for public services an...
The 2000-2006 Regional Operational Program expenditure for public services an...
 
Logos
LogosLogos
Logos
 
Deponent verbs vocab_jg
Deponent verbs vocab_jgDeponent verbs vocab_jg
Deponent verbs vocab_jg
 
Relatorio pisa2000 completo
Relatorio pisa2000 completoRelatorio pisa2000 completo
Relatorio pisa2000 completo
 
Tópico 3 cidadania e direitos sociais
Tópico 3 cidadania e direitos sociaisTópico 3 cidadania e direitos sociais
Tópico 3 cidadania e direitos sociais
 
Prova 4 ano atividade 4 ano
Prova 4 ano atividade 4 anoProva 4 ano atividade 4 ano
Prova 4 ano atividade 4 ano
 
Ii atividade avaliatíva de geo 4º e 5º ano pdf
Ii atividade avaliatíva de geo 4º e 5º ano pdfIi atividade avaliatíva de geo 4º e 5º ano pdf
Ii atividade avaliatíva de geo 4º e 5º ano pdf
 

Similaire à Códigos cíclicos e codificação de canal

Sessao 9 Capacidade de canal e Introdução a Codificação de canal
Sessao 9 Capacidade de canal e Introdução a Codificação de canalSessao 9 Capacidade de canal e Introdução a Codificação de canal
Sessao 9 Capacidade de canal e Introdução a Codificação de canalPedro De Almeida
 
Cripto - Introdução, probabilidades e Conceito de Segurança
Cripto - Introdução, probabilidades e Conceito de SegurançaCripto - Introdução, probabilidades e Conceito de Segurança
Cripto - Introdução, probabilidades e Conceito de SegurançaPedro De Almeida
 
Sessao 5 Redundância e introdução à codificação de fonte
Sessao 5 Redundância e introdução à codificação de fonteSessao 5 Redundância e introdução à codificação de fonte
Sessao 5 Redundância e introdução à codificação de fontePedro De Almeida
 
Sessao 3 Informação mútua e equívocos
Sessao 3 Informação mútua e equívocosSessao 3 Informação mútua e equívocos
Sessao 3 Informação mútua e equívocosPedro De Almeida
 
Tmc sessao5 redundância e introdução à codificação de fonte
Tmc sessao5 redundância e introdução à codificação de fonteTmc sessao5 redundância e introdução à codificação de fonte
Tmc sessao5 redundância e introdução à codificação de fonteRichard Johane Manhique
 
Sessão 6 codificadores estatísticos
Sessão 6 codificadores estatísticosSessão 6 codificadores estatísticos
Sessão 6 codificadores estatísticosPedro De Almeida
 
Sessao 2 Introdução à T.I e Entropias
Sessao 2 Introdução à T.I e EntropiasSessao 2 Introdução à T.I e Entropias
Sessao 2 Introdução à T.I e EntropiasPedro De Almeida
 
Trabalho de Graduação Interdisciplinas: Teoria da Informação: códigos compres...
Trabalho de Graduação Interdisciplinas: Teoria da Informação: códigos compres...Trabalho de Graduação Interdisciplinas: Teoria da Informação: códigos compres...
Trabalho de Graduação Interdisciplinas: Teoria da Informação: códigos compres...Diego Souza Silva
 
Nota de aula seguranca da informacao - criptografia
Nota de aula   seguranca da informacao - criptografiaNota de aula   seguranca da informacao - criptografia
Nota de aula seguranca da informacao - criptografiafelipetsi
 
Códigos de Detecção.pptx
Códigos de Detecção.pptxCódigos de Detecção.pptx
Códigos de Detecção.pptxriodurval
 
CfSd 2016 matematica - 2 v1
CfSd 2016   matematica - 2 v1CfSd 2016   matematica - 2 v1
CfSd 2016 matematica - 2 v1profNICODEMOS
 
Sistemas digitais - Sistemas de Numeração
Sistemas digitais - Sistemas de NumeraçãoSistemas digitais - Sistemas de Numeração
Sistemas digitais - Sistemas de NumeraçãoCarlos Pereira
 
aula sobre polinomios matematica basica1
aula sobre polinomios matematica basica1aula sobre polinomios matematica basica1
aula sobre polinomios matematica basica1RobertaArago2
 
Apresentação1 sistemas numéricos
Apresentação1   sistemas numéricosApresentação1   sistemas numéricos
Apresentação1 sistemas numéricosLarissa Rozza Peluso
 
Sessao 7 Fontes com memória e codificação aritmética
Sessao 7 Fontes com memória e codificação aritméticaSessao 7 Fontes com memória e codificação aritmética
Sessao 7 Fontes com memória e codificação aritméticaPedro De Almeida
 
Polinômios/ teoria e questões concurso
Polinômios/ teoria e questões concursoPolinômios/ teoria e questões concurso
Polinômios/ teoria e questões concursoDiana D'Ark
 

Similaire à Códigos cíclicos e codificação de canal (20)

Sessao 9 Capacidade de canal e Introdução a Codificação de canal
Sessao 9 Capacidade de canal e Introdução a Codificação de canalSessao 9 Capacidade de canal e Introdução a Codificação de canal
Sessao 9 Capacidade de canal e Introdução a Codificação de canal
 
Cripto - Introdução, probabilidades e Conceito de Segurança
Cripto - Introdução, probabilidades e Conceito de SegurançaCripto - Introdução, probabilidades e Conceito de Segurança
Cripto - Introdução, probabilidades e Conceito de Segurança
 
Sessao 5 Redundância e introdução à codificação de fonte
Sessao 5 Redundância e introdução à codificação de fonteSessao 5 Redundância e introdução à codificação de fonte
Sessao 5 Redundância e introdução à codificação de fonte
 
Sessao 3 Informação mútua e equívocos
Sessao 3 Informação mútua e equívocosSessao 3 Informação mútua e equívocos
Sessao 3 Informação mútua e equívocos
 
Tmc sessao5 redundância e introdução à codificação de fonte
Tmc sessao5 redundância e introdução à codificação de fonteTmc sessao5 redundância e introdução à codificação de fonte
Tmc sessao5 redundância e introdução à codificação de fonte
 
Sessão 6 codificadores estatísticos
Sessão 6 codificadores estatísticosSessão 6 codificadores estatísticos
Sessão 6 codificadores estatísticos
 
Sessao 2 Introdução à T.I e Entropias
Sessao 2 Introdução à T.I e EntropiasSessao 2 Introdução à T.I e Entropias
Sessao 2 Introdução à T.I e Entropias
 
Trabalho de Graduação Interdisciplinas: Teoria da Informação: códigos compres...
Trabalho de Graduação Interdisciplinas: Teoria da Informação: códigos compres...Trabalho de Graduação Interdisciplinas: Teoria da Informação: códigos compres...
Trabalho de Graduação Interdisciplinas: Teoria da Informação: códigos compres...
 
Nota de aula seguranca da informacao - criptografia
Nota de aula   seguranca da informacao - criptografiaNota de aula   seguranca da informacao - criptografia
Nota de aula seguranca da informacao - criptografia
 
Códigos de Detecção.pptx
Códigos de Detecção.pptxCódigos de Detecção.pptx
Códigos de Detecção.pptx
 
CfSd 2016 matematica - 2 v1
CfSd 2016   matematica - 2 v1CfSd 2016   matematica - 2 v1
CfSd 2016 matematica - 2 v1
 
Sistemas digitais - Sistemas de Numeração
Sistemas digitais - Sistemas de NumeraçãoSistemas digitais - Sistemas de Numeração
Sistemas digitais - Sistemas de Numeração
 
aula sobre polinomios matematica basica1
aula sobre polinomios matematica basica1aula sobre polinomios matematica basica1
aula sobre polinomios matematica basica1
 
Apresentação1 sistemas numéricos
Apresentação1   sistemas numéricosApresentação1   sistemas numéricos
Apresentação1 sistemas numéricos
 
Sessao 7 Fontes com memória e codificação aritmética
Sessao 7 Fontes com memória e codificação aritméticaSessao 7 Fontes com memória e codificação aritmética
Sessao 7 Fontes com memória e codificação aritmética
 
Polinômios/ teoria e questões concurso
Polinômios/ teoria e questões concursoPolinômios/ teoria e questões concurso
Polinômios/ teoria e questões concurso
 
At becre1
At becre1At becre1
At becre1
 
Polinomios 17122016
Polinomios 17122016Polinomios 17122016
Polinomios 17122016
 
Polinomios
PolinomiosPolinomios
Polinomios
 
Eletrônica digital aula 01
Eletrônica digital   aula 01Eletrônica digital   aula 01
Eletrônica digital aula 01
 

Plus de Pedro De Almeida

Java memory model primary ref. - faq
Java memory model   primary ref. - faqJava memory model   primary ref. - faq
Java memory model primary ref. - faqPedro De Almeida
 
Sistemas Operativos - Processos e Threads
Sistemas Operativos - Processos e ThreadsSistemas Operativos - Processos e Threads
Sistemas Operativos - Processos e ThreadsPedro De Almeida
 
XSD Incomplete Overview Draft
XSD Incomplete Overview DraftXSD Incomplete Overview Draft
XSD Incomplete Overview DraftPedro De Almeida
 
O Projecto, Gestão de Projectos e o Gestor de Projectos - Parte 1
O Projecto, Gestão de Projectos e o Gestor de Projectos - Parte 1O Projecto, Gestão de Projectos e o Gestor de Projectos - Parte 1
O Projecto, Gestão de Projectos e o Gestor de Projectos - Parte 1Pedro De Almeida
 
Validation of a credit card number
Validation of a credit card numberValidation of a credit card number
Validation of a credit card numberPedro De Almeida
 
Sessão 8 Codificação Lempel-Ziv
Sessão 8 Codificação Lempel-ZivSessão 8 Codificação Lempel-Ziv
Sessão 8 Codificação Lempel-ZivPedro De Almeida
 
Avaliação económica de projectos
Avaliação económica de projectosAvaliação económica de projectos
Avaliação económica de projectosPedro De Almeida
 
Workflows, diagramas e classes de Analise. Sistemas de Informação
Workflows, diagramas e classes de Analise. Sistemas de InformaçãoWorkflows, diagramas e classes de Analise. Sistemas de Informação
Workflows, diagramas e classes de Analise. Sistemas de InformaçãoPedro De Almeida
 
Economia: Elementos Básicos, Oferta e Procura
Economia: Elementos Básicos, Oferta e ProcuraEconomia: Elementos Básicos, Oferta e Procura
Economia: Elementos Básicos, Oferta e ProcuraPedro De Almeida
 
Economia mercados governo questões
Economia mercados governo questõesEconomia mercados governo questões
Economia mercados governo questõesPedro De Almeida
 
ABC DOS CIRCUITOS ELÉCTRICOS EM CORRENTE CONTÍNUA
ABC DOS CIRCUITOS ELÉCTRICOS EM CORRENTE CONTÍNUAABC DOS CIRCUITOS ELÉCTRICOS EM CORRENTE CONTÍNUA
ABC DOS CIRCUITOS ELÉCTRICOS EM CORRENTE CONTÍNUAPedro De Almeida
 
Getting good with php 2012
Getting good with php 2012Getting good with php 2012
Getting good with php 2012Pedro De Almeida
 

Plus de Pedro De Almeida (20)

APM Model in .NET - PT-pt
APM Model in .NET - PT-ptAPM Model in .NET - PT-pt
APM Model in .NET - PT-pt
 
Java memory model primary ref. - faq
Java memory model   primary ref. - faqJava memory model   primary ref. - faq
Java memory model primary ref. - faq
 
Sistemas Operativos - Processos e Threads
Sistemas Operativos - Processos e ThreadsSistemas Operativos - Processos e Threads
Sistemas Operativos - Processos e Threads
 
IP Multicast Routing
IP Multicast RoutingIP Multicast Routing
IP Multicast Routing
 
XSD Incomplete Overview Draft
XSD Incomplete Overview DraftXSD Incomplete Overview Draft
XSD Incomplete Overview Draft
 
O Projecto, Gestão de Projectos e o Gestor de Projectos - Parte 1
O Projecto, Gestão de Projectos e o Gestor de Projectos - Parte 1O Projecto, Gestão de Projectos e o Gestor de Projectos - Parte 1
O Projecto, Gestão de Projectos e o Gestor de Projectos - Parte 1
 
Validation of a credit card number
Validation of a credit card numberValidation of a credit card number
Validation of a credit card number
 
Classes e Objectos JAVA
Classes e Objectos JAVAClasses e Objectos JAVA
Classes e Objectos JAVA
 
Ficheiros em JAVA
Ficheiros em JAVAFicheiros em JAVA
Ficheiros em JAVA
 
Excepções JAVA
Excepções JAVAExcepções JAVA
Excepções JAVA
 
Sessão 8 Codificação Lempel-Ziv
Sessão 8 Codificação Lempel-ZivSessão 8 Codificação Lempel-Ziv
Sessão 8 Codificação Lempel-Ziv
 
Basic java tutorial
Basic java tutorialBasic java tutorial
Basic java tutorial
 
Avaliação económica de projectos
Avaliação económica de projectosAvaliação económica de projectos
Avaliação económica de projectos
 
Workflows, diagramas e classes de Analise. Sistemas de Informação
Workflows, diagramas e classes de Analise. Sistemas de InformaçãoWorkflows, diagramas e classes de Analise. Sistemas de Informação
Workflows, diagramas e classes de Analise. Sistemas de Informação
 
Economia: Elementos Básicos, Oferta e Procura
Economia: Elementos Básicos, Oferta e ProcuraEconomia: Elementos Básicos, Oferta e Procura
Economia: Elementos Básicos, Oferta e Procura
 
Economia mercados governo questões
Economia mercados governo questõesEconomia mercados governo questões
Economia mercados governo questões
 
Economia mercados
Economia mercadosEconomia mercados
Economia mercados
 
Economia FAQ
Economia FAQEconomia FAQ
Economia FAQ
 
ABC DOS CIRCUITOS ELÉCTRICOS EM CORRENTE CONTÍNUA
ABC DOS CIRCUITOS ELÉCTRICOS EM CORRENTE CONTÍNUAABC DOS CIRCUITOS ELÉCTRICOS EM CORRENTE CONTÍNUA
ABC DOS CIRCUITOS ELÉCTRICOS EM CORRENTE CONTÍNUA
 
Getting good with php 2012
Getting good with php 2012Getting good with php 2012
Getting good with php 2012
 

Códigos cíclicos e codificação de canal

  • 1. Sessão nº10 Códigos Cíclicos CCISEL 99 Teoria Matemática da Comunicação 10 - 1 Criptografia Computacional Conceitos básicos da Teoria da Informação – Medida de quantidade de informação (entropia). – Capacidade de informação dum canal. – Codificação: • codificação de fonte • [cifra] • codificação de canal CCISEL 99 Teoria Matemática da Comunicação 10 - 2 Criptografia Computacional 1
  • 2. Codificação de canal • Com a codificação de fonte eliminou-se a redundância, pelo que idealmente todos os símbolos binários “contêm” um bit de informação. • Mas estes símbolos vão ser transmitidos sobre um canal com ruído, logo vai haver perda de informação sempre que existir erro num símbolo. • A solução deste problema consiste em adicionar redundância de tal forma que apesar dos erros do canal ainda é possível transferir a quantidade de informação associada à mensagem; faz-se com a codificação de canal. CCISEL 99 Teoria Matemática da Comunicação 10 - 3 Criptografia Computacional Como adicionar redundância? • forma simples: – código de repetição – código de bit de paridade • forma mais elaborada: – códigos de bloco lineares • Ex. Código de Hamming • códigos cíclicos – Ex. CRC, BCH, ... – códigos convolucionais (orientados ao símbolo) CCISEL 99 Teoria Matemática da Comunicação 10 - 4 Criptografia Computacional 2
  • 3. Palavras de código como polinómios • Os códigos cíclicos são códigos de bloco lineares com uma estrutura cíclica,o que leva a implementações mais práticas e daí a sua grande utilização. • Palavras de código como polinómios: cada palavra do código com n dígitos binários c = cn-1…c2c1c0 sobre GF[2] está associada a um polinómio com coeficientes em GF[2], tal que cn-1…c2c1c0 ↔ cn-1 xn-1 + …+ c2 x2 + c1 x1 + c0 = p(x) onde x é a variável. • Adição e Multiplicação escalar de polinómios – c + d ↔ (cn-1 + dn-1 ) xn-1 + … + (c1 + d1 ) x1 + (c0 + d0 ) = p(x) + q(x) – αc ↔ (αcn-1) xn-1 + …+ (αc1) x1 + (αc0) = α p(x) CCISEL 99 Teoria Matemática da Comunicação 10 - 5 Criptografia Computacional Código linear como sub espaço vectorial • O conjunto Pn(GF[2]) de todos os polinómios de grau menor que n, com coeficientes em GF[2], é um espaço vectorial, com as operações de adição e de multiplicação escalar de polinómios por elementos de GF[2]. Além disso, se C é um código linear com palavras de dimensão n, então a cada palavra do código c ∈ C está associado um polinómio p(x) ∈ Pn(GF[2]). Mais ainda, esta associação preserva as operações de adição e de multiplicação escalar e assim podemos pensar em C como um sub espaço de Pn(GF[2]). Deste modo, podemos pensar numa palavra do código com dimensão n como um polinómio de grau menor que n e um código linear C com palavras de dimensão n sobre GF[2] como um sub espaço de Pn(GF[2]). CCISEL 99 Teoria Matemática da Comunicação 10 - 6 Criptografia Computacional 3
  • 4. Rotação ou cyclic shift duma palavra do código • Seja p(x) = cn-1 xn-1 + …+ c2 x2 + c1 x1 + c0 • Rotação para a esquerda de p(x) ≡ p’ (x) p’(x) = cn-2 xn-1 + …+ c2 x3 + c1 x2 + c0 x1 + cn-1 • Mas x p(x) = cn-1 xn + …+ c2 x3 + c1 x2 + c0 x1 logo x p(x) + p’(x) = cn-1 xn + cn-1 ; p’(x) = x p(x) + cn-1 xn + cn-1 ; p’(x) = x p(x) mod ( xn + 1) ; • Um código linear C ⊆Pn diz-se cíclico se e só se p(x) ∈ C implicar que f(x)p(x) ∈ C para qualquer polinómio f(x) ∈ Pn. CCISEL 99 Teoria Matemática da Comunicação 10 - 7 Criptografia Computacional Polinómio gerador do código cíclico • Um código cíclico (n,k) é definido pelo polinómio gerador g(x) = 1 xq + gq-1 xq-1 + …+ g2 x2 + g1 x1 + 1 onde q = n - k e os coeficientes gi tais que g(x) é factor de xn + 1 • Cada palavra do código X obtém-se X(x) = QM (x) g(x), onde QM (x) ≡ bloco de k bits da mensagem • Polinómio verificador de paridade h(x) p(x) h(x) = 0 ⇔ p(x) ∈ C em que h(x) g(x) = xn + 1 ou seja h(x) g(x) mod ( xn + 1 ) = 0 – Nota: o polinómio gerador é o polinómio de menor grau de entre todos os que pertencem ao código. CCISEL 99 Teoria Matemática da Comunicação 10 - 8 Criptografia Computacional 4
  • 5. Código cíclico sistemático • Definem-se o polinómio dos bits da mensagem M(x) e o polinómio dos bits de paridade C(x) como M(x) = mk-1 xk-1 + …+ m2 x2 + m1 x1 + m0 C(x) = cq-1 xq-1 + …+ c2 x2 + c1 x1 + c0 • Pretende-se que as palavras do código tenham a seguinte forma X(x) = xq M(x) + C(x) mas como X(x) = QM (x) g(x) logo xq M(x) / g(x) = Q (x) + C(x) / g(x) M sendo esta a condição para o código ser sistemático • os bits de paridade C(x) obtêm-se C(x) = resto [ xq M(x) / g(x) ] CCISEL 99 Teoria Matemática da Comunicação 10 - 9 Criptografia Computacional Descodificação do código cíclico sistemático • Define-se o polinómio dos bits recebidos Y(x) como Y(x) = yn-1 xn-1 + …+ y2 x2 + y1 x1 + y0 onde Y(x) = X(x) + E(x), sendo E(x) o polinómio do erro • Para verificar a paridade faz-se Y(x) / g(x) = X(x) / g(x) + E(x) / g(x) Y(x) / g(x) = M(x) + E(x) / g(x) • os sindroma S(x) obtem-se S(x) = resto [ Y(x) / g(x) ] CCISEL 99 Teoria Matemática da Comunicação 10 - 10 Criptografia Computacional 5