Szyfr IBM MARS, wektory testowe

0

Witam,
Jakiś czas temu postanowiłem nauczyć się jak działają w miarę nowoczesne algorytmy szyfrowania symetrycznego. Postanowiłem to zrobić tak, że czytam specyfikację danego algorytmu i próbuję go zaimplementować w asemblerze ARM na Raspberry Pi, a następnie sprawdzam, czy napisałem program poprawnie używając wektorów testowych. Teraz jestem na etapie sprawdzania algorytmu MARS i mam problem, bo oficjalne wektory od IBM są niespójne i w dwóch różnych plikach ten sam klucz i tekst jawny mają inne teksty zaszyfrowane. W tych dwóch plikach:
https://web.archive.org/web/20010504113019/http://www.research.ibm.com/security/test-vectors/ecb_tbl.txt
https://web.archive.org/web/20010504112041/http://www.research.ibm.com/security/test-vectors/ecb_e_m.txt
klucz: 00000000000000000000000000000000 i tekst jawny 00000000000000000000000000000000: dają odpowiednio: DCC07B8DFB0738D6E30A22DFCF27E886 oraz F28C7E672247DE249C04BE791BCE4065. Mój program daje tą pierwszą odpowiedź, ale nie wiem, czy ta jest właściwa, bo z tego co wiem, to zmienili funkcję rozszerzającą klucz, a ja mogłem przeczytać starszy dokument, który miał opis tej starej metody rozszerzania klucza i wtedy się nie będzie zgadzać. Opis algorytmu jest tutaj:
https://web.archive.org/web/20000815233719/http://www.research.ibm.com/security/mars.pdf
Czy ma ktoś może poprawne wektory testowe? Albo jeżeli ktoś pisał swoją implementację, to czy może wygenerować trochę losowych kluczy i tekstów jawnych, zaszyfrować je swoim programem i opublikować wynik?
Jeżeli ktoś jest zainteresowany jaki jest kod źródłowy to tutaj jest link:
http://www.zenker.pl/mars/arm/mars.s

0

Rozwiązałem problem. W pliku ecb_e_m.txt każdy z zestawów danych jest zaszyfrowany 10000 razy w pętli tym samym kluczem.

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