Algoritmo Berlekamp-Massey

O objetivo deste trabalho é familiarizar o leitor com o algoritmo Berlekamp-Massey (ou Berlekamp-Messi), o que inclui inferência e algumas de suas aplicações.





O objetivo principal do algoritmo de Berlekamp-Massey é avaliar os códigos binários BCH (códigos Bose-Chowdhury-Hawkingham, códigos BCH). Os códigos binários são uma forma de representar os dados na forma de um  código , em que cada  dígito assume um de dois valores possíveis, geralmente denotados pelos números 0 e 1. Berlekamp publicou seu algoritmo em 1968, e logo depois disso Massey publicou sua versão do algoritmo em 1969. O algoritmo é mais amplamente usado como uma maneira rápida de inverter matrizes com diagonais constantes. Ele funciona em qualquer campo, mas os campos finitos, que são mais comumente encontrados na teoria da codificação, são os mais comumente usados. O algoritmo é especialmente útil para decodificar vários códigos algébricos. Em sua publicação, Berlekamp indicou que o algoritmo usa uma "equação chave" para inserir um número conhecido de coeficientes da função geradora e, em seguida, determina os coeficientes restantes do polinômio. O que é útil sobre esse algoritmo é que apenas uma pequena parte da mensagem codificada é necessária,para ser capaz de decodificá-lo. O passo crucial é reformular o problema de forma a evitar pensar explicitamente sobre n por n matrizes, uma vez que a quantidade de trabalho com tal operação é muito grande. Berlekamp conseguiu fazer isso usando sua equação-chave, e depois repetiu por Massey usando sua variante do algoritmo.





As aplicações e implementação deste algoritmo foram refinadas e estendidas por Massey, que utilizou a interpretação física do linear feedback shift register (LFSR) como ferramenta para melhor compreender o algoritmo. Esta variante sintetiza LFSRs com uma determinada sequência de saída. LFSR indica o comprimento da mensagem codificada a ser descriptografada pelo algoritmo. O comprimento da mensagem necessária é apenas o dobro do comprimento do LFSR ( 2n ). Agora que temos uma ideia do que o algoritmo deseja fazer, podemos ver sua aplicação útil.





Aplicação do algoritmo

  ,        BCH,    - .            .            NASA       CD .  ,           .





     





             .        () —  ,           .





      ,     N,  N    ,     .    m ( m = 2).    c = (c0, c1, …, cN-1),       s = (s0, s1, …, sN-1).         sN+1  n + 1 > N :





modulo m
  m

  ,        ,       .     N = 5  m = 2. ,   c = (c0, c1, c2, c3, c4),      C      :





mod 2
2

   ,      c = ( c0, c1, c2, c3, c4 )   s = ( s0, s1, s2, s3, s4 )     ,       .





    -     c, c = ( c0, c1, …,cN-1 ),   2n ,  n =   ,    .            ,   ,     « ».     ,      .









 xn - 1.  w , ,  n, θ, :





denotado w
w

,  wn = 1  wk ¹ 1 1 < k < n. , 1, ww2, …, wn-1 -  sn = 1, , , , ,   n n , . w   n- .  , , .  .  w .  n  .  < > , , < > –  wk,  1 £ k < n  gcd( n, k ) = 1, gcd . ()    n- .





:





G = < a > - n. G = < ak > , gcd(n, k) = 1





, , ,   , .    f(n)  n   n.  ,  n   f(n)  n-   . ,  f(n)  n- .





:





 n, w1, w2, …,wf(n)    n- . N-  Q   :





*: Fn(x)  (. 1)  f(n),  f(n) - .*





,  Fn(x)  , , .





n :





produto sobre todos os divisores positivos de n
n

- , . , , , .





BCH (),  t  ,  Fn  Q .  2  n,   m .  , - m,  2m mod n = 1   GF(2m)   a  GF(2m) - .  , BCH.





BCH





 , BCH :





, .   R(x) = C(x) + E(x)





Equação de erro
Opção de escrita R (x)
R(x)

A





  j = 1, 2, …, 2t  aj.  M(j)(x) –  aj   (1 <  j < 2t). ,





B





t - , , e - .   X1, X2, …, Xe  ,  Ei = 1 ( ). ,  R(x) A  M(j)(x)  Sj = R(aj)  r(j)(aj ). .





--------------





:  R(x) , , S1  ,  S2  ,  S1 = R(a)  S2 = R(a2)





--------------





,   S - 1,  R(x)  M(1)(x)  r(1)(x) , , S1 = r(1)(a). ,  S2,  R(x)  M(2)(x)  r(2)(x).  S2 = r(2)(a2). 





 S1, S2, …, S2t, ,  X1, X2, …, Xe 





 j = 1, 2, ..., 2t
 j = 1, 2, …, 2t

C





, .   .  :





D





[ , , , 1984 ., 1.]





,  s(z),   ( )  ,  Chien search ( , ).  , .





—  s(z)  S.   s(x)  S, :





E





, .  s(z)  w(z):





F





[1 + S(z)]s(x) = w(z).  ,   S(z). ( ,  2t ).   S2t+1S2t+2, S2t+3,…, S(z) , - S(z) mod z2t+1. .









G





 S(z) - , – . s(z)  w(z)-  < e - , ). .





, - . , .





:





1.      [ ] https://ru.wikipedia.org/wiki/





2.     - .., ..   . , 2001. 672 .





3.     Erin Casey, “Berlekamp-Massey Algorithm”, 2000





4.     David C. Arney, Joseph Gallian, and Paul Campbell, “Principles and Practice of Mathematics: COMAP”





5.     Berlekamp's Algebraic Coding Theory, Revised edition, 1984





6.     Chien  [ ] https://en.wikipedia.org/wiki/Chiensearch





7.     Gallian, Joseph A. Contemporary Abstract Algebra, Houghton Miin Company, Boston, 1998.





8.     Garrett, Paul. Error Correcting Codes. Notes 1999-2000.





9.     Garrett, Paul. Introduction to Cryptography. Notes. 2000.





10.  , .  « » .  6. 2000, .93-118





11.   [ ] https://ru.wikipedia.org/wiki/








All Articles