2

Heeello
I have seen a lot the fact that the Fibonacci and Galois LSFR are equivalent (if we have a Fibonacci LSFR, we can construct a Galois LSFR who produce the same output sequence and vice versa). So I tried to prove it and I kindla strugle. I want to present you what I have done if maybe you could help or guide me, that s would be nice :D

I fix $n=4$ to simplify.

I take this convention:
Fibo LSFR

Then I write the transition equation : $$ S_f(t) = \begin{bmatrix} x_1(t) \\ x_2(t) \\ x_3(t) \\ x_4(t) \\ \end{bmatrix} = \begin{bmatrix} c_1*x_1(t-1) + c_2*x_2(t-1) + c_3*x_3(t-1) + x_4(t-1) \\ x_1(t-1) \\ x_2(t-1) \\ x_3(t-1) \\ \end{bmatrix}\\ = \begin{bmatrix} c_1 & c_2 & c_3 & 1 \\ 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ \end{bmatrix} \begin{bmatrix} x_1(t-1)\\ x_2(t-1)\\ x_3(t-1)\\ x_4(t-1)\\ \end{bmatrix} = F \ S_f(t-1) $$

And I do the same with the Galois LSFR with this convention :
Galois LSFR

Same thing for the recurence equations : $$ S_g(t) = \begin{bmatrix} y_1(t) \\ y_2(t) \\ y_3(t) \\ y_4(t) \\ \end{bmatrix} = \begin{bmatrix} 0 & 0 & 0 & 1 \\ 1 & 0 & 0 & c_1' \\ 0 & 1 & 0 & c_2' \\ 0 & 0 & 1 & c_3' \\ \end{bmatrix} \begin{bmatrix} y_1(t-1)\\ y_2(t-1)\\ y_3(t-1)\\ y_4(t-1)\\ \end{bmatrix} = G \ S_g(t-1) $$ Now if we take $(F^{-1})^T$ we have that $G = (F^{-1})^T \ if \ c_i = c_i'$

I would expect to need the condition like: $c_i = c_{n-i}' $ like this answer suggest to choose to get the equivalence.

But even if I get this relation : $G = (F^{-1})^T$, I dont find how I could use it to prove the equivalence of the both lsfr. And I dont think that I have a clear idea how could I prove the equivalence ? Choose a fix LSFR and show that I can replicate the output with an other LSFR ?

I hope I was clear, thanks for reading and have a nice day :-)

Edit : I think I got it thanks to the (BIG) indication of @fgrieu

Let's continue to work with $n=4$ :

Let's initialize the register of the fibonnaci LSFR with the futur value of our Galois register like that : $ S_f(0) = \begin{bmatrix} y_4(3) \\ y_4(2) \\ y_4(1) \\ y_4(0) \end{bmatrix} $
We got that $x_4(t) = y_4(t)$ for $0 <= t <= 3$
That's a big start :) Now we just need to compute next state :
$S_f(1)=\begin{bmatrix} c_1 \ y_4(3) + c_2 \ y_4(2) + c_3 \ y4(1) + y_4(0) \\ y_4(3) \\ y_4(2) \\ y_4(1) \end{bmatrix} $
the term $c_1 \ y_4(3) + c_2 \ y_4(2) + c_3 \ y4(1) + y_4(0)$ will be our fourth output, it's mean that $x_4(4) = c_1 \ y_4(3) + c_2 \ y_4(2) + c_3 \ y4(1) + y_4(0)$
Now compute the firsts terms of $S_g(t)$ : $$ S_g(0) = \begin{bmatrix} y_1(0) \\ y_2(0) \\ y_3(0) \\ y_4(0) \end{bmatrix} $$

$$ S_g(1) = \begin{bmatrix} y_4(0) \\ y_2(1) \\ y_3(1) \\ y_4(1) \end{bmatrix} $$ $$ S_g(2) = \begin{bmatrix} y_4(1) \\ y_4(0) + c_1' \ y_4(1) \\ y_3(2) \\ y_4(2) \end{bmatrix} $$ $$ S_g(3) = \begin{bmatrix} y_4(2) \\ y_4(1) + c_1' \ y_4(2) \\ y_4(0) + c_1' \ y_4(1) + c_2' \ y_4(2) \\ y_4(3) \end{bmatrix} $$ $$ S_g(4) = \begin{bmatrix} y_4(3) \\ y_4(2) + c_1' \ y_4(3) \\ y_4(1) + c_1' \ y_4(2) +c_2' \ y_4(3) \\ y_4(0) + c_1' \ y_4(1) + c_2' \ y_4(2) + c_3' \ y_4(3) \end{bmatrix} $$

We have $ y_4(4) = y_4(0) + c_1' \ y_4(1) + c_2' \ y_4(2) + c_3' \ y_4(3) $ and we want that $x_4(4) = y_4(4) $. And this is true if $c_i = c_{n-i}' \ for \ 1<= i <= 3$
Now we have the initialization we can proof the rest by induction :
I suppose that my $x_4(t) = y_4(t) \ for \ k <= t <= k+3$ and I show that this is still true for $ k+4<=t<=k+7 $ This is done by the same way as before.

Tell me if see some mistake or something not formal at all!!

Thanks again to @fgrieu for the big help :D

Have a nice day !

0 Answers0