Reverse engineering wag algorytmu PESEL

0

Wszyscy znamy algorytm obliczania poprawności numeru np. PESEL.
Jest to suma iloczynów kolejnych cyfr z wagami im przydzielonymi.
Wynik modulo 11 i mamy sumę kontrolną.

Odwróćmy teraz sytuację, powiedzmy że nie znamy wag przydzielanych kolejnym cyfrom.
Czy jesteśmy w stanie dowiedzieć się jakie wartości przyjmują wagi mając
tylko kilkanaście/kilkadziesiąt poprawnych numerów PESEL i znając algorytm?

0

Bruteforce na wszystkie możliwe wagi - jeśli suma kontrolna z sekwencji wag się zgadza to sprawdzamy czy zgadzać będzie się przy kolejnym numerze i następnych jeśli któryś z nich obliczy złą sumę kontrolną to wagi są złe i trzeba wybrać kolejną sekwencję.
Bardzo możliwe, że wiele różnych sekwencji wag da poprawne sumy kontrolne dla wszystkich PESEL'i - w takim przypadku trzeba zwiększyć próbkę.
Poza tym można na podstawie dostępnego algorytmu wykluczyć część wag, które z założeń są absurdalne i zawsze dadzą zły wynik.

0

Algorytm znamy jednak nie znaczy wag aby z niego skorzystać i daną sumę kontrolną obliczyć, w jaki więc sposób wykonać atak bruteforce?

0

W sensie wiemy, że wzór to: y = a1*x1 + a2*x2 + ... + a1 * x10 (x - cyfry, a - wagi), mamy zbiór kilkunastu prawidłowych zbiorów wartości y oraz x1...x10 i chcemy znaleźć wszystkie wartości a1...a10?
Mnie się zdaje, czy wystarczy rozwiązać układ równań?

0

y = (a1x1 + a2x2 + ... + a1 * x10) mod 11
i już nie mamy zwykłego układu równań.

0

@Adam, algorytm jest obmyślony tak by dało się zawsze obliczyć jedną brakującą liczbę.

1 użytkowników online, w tym zalogowanych: 0, gości: 1