2009-08-05 9 views

Odpowiedz

2

Nie jestem pewien, czy istnieje biblioteka, która może pasować do celu. Mogę podać kilka wskazówek dotyczących implementacji:

Podstawą wdrożenia będzie LFSR. Można zaimplementować jeden z dwóch sposobów:

  • Realizacja Fibonacciego składa się z prostego rejestru przesuwnego w którym modulo-2 suma kranów binarnych ważony jest zasilany z powrotem do wejścia (pamiętaj, że mod-2 suma jest odpowiednik dodawania bez przenoszenia, który z kolei jest równoważny z XOR).
  • Wdrożenie Galois składa się z rejestru przesuwnego, którego treść jest modyfikowana w każdym kroku przez binarnie ważoną wartość etapu wyjściowego, ponownie używając matematyki modulo-2. Kolejność ciężarów Galois jest odwrotna do ciężarów Fibonacciego. Forma Galois jest generalnie szybsza ze względu na zmniejszoną ilość logiki w pętli sprzężenia zwrotnego.

Aby uzyskać więcej informacji o tym, w jaki sposób określa się krany i jakie sekwencje można uzyskać, można uruchomić here. Zwróć uwagę, że powyższe opcje implementacji mogą mieć tę samą długość cyklu i sekwencję bitów wyjściowych dla odpowiedniego wyboru początkowych stanów (nasion).

To jest twoje podstawowe wymaganie. LFSR mają strumienie wyjściowe, które są bardzo równomiernie rozłożone i wystarczająco długie okresy. Proponuję nie używać go do celów kryptograficznych, ponieważ jest bardzo słaby - jest systemem liniowym. Są obejścia, ale nic istotnego poza shrinking generator (które uważam za bardzo fajne).

Odnośniki do implementacji już zostały podane, więc powodzenia!