Próbuję zaimplementować AES-256 w trybie CTR za pomocą narzędzia nVidia CUDA. Z powodzeniem zakodowałem kod CPU do rozszerzenia klucza i teraz muszę zaimplementować rzeczywisty algorytm AES-256. Według Wikipedii, niektóre kody, które widziałem, a zwłaszcza this PDF (strona 9), rundy AES można zaimplementować jako serię wyszukiwań tabel. Moje pytanie brzmi: jak wygenerować te tabele? Jestem świadomy, że potrzebuję 4 KB do przechowywania tych tabel, i to nie jest problem. Spędziłem cały dzień próbując znaleźć te stoły bez powodzenia. Plik PDF zamieściłem link do wspomnianych tabel wyszukiwania T0, T1, T2 i T3, ale nie wiem, co to jest. Wymienia także okrągłe klawisze 4, 5, 6 i 7, ale nie rozumiem również, do czego odnoszą się te wskaźniki.Generowanie tabel wyszukiwania AES (AES-256)
Najbliższe, doszedłem do dowiedzieć się, jak wygenerować te tabele wyszukiwania jest z this project. Wewnątrz kodu, nie jest komentarz, który mówi: (? Jest to mnożenie macierzy lub coś innego)
Te0[x] = S [x].[02, 01, 01, 03];
Te1[x] = S [x].[03, 02, 01, 01];
Te2[x] = S [x].[01, 03, 02, 01];
Te3[x] = S [x].[01, 01, 03, 02];
Jednak nie jestem do końca pewien, wiem co to znaczy notacji. Jedyne, co rozpoznaję, to macierz stałych części mieszaniny kolumnowej, a także macierz S-box.
[Edytuj] Teraz, gdy ktoś to wskazał - w jaki sposób implementacja odnośnika może być wolniejsza? Czy byłoby rozsądnie wdrożyć AES bez tablic przeglądowych?
Myślę, że jeśli wyglądasz ciężko, to naprawdę tylko te S-boxy mogą być zaimplementowane przy wyszukiwaniu tabeli. – trumpetlicks
Jesteś pewien? Otworzyłem wyżej wspomnianą implementację i całkowicie polegam na tabelach odnośników. Istnieje nawet jeden projekt, który używa ** tylko jednej tabeli wyszukiwania dla wszystkich operacji. Naprawdę tego nie potrzebuję, potrzebuję jednego stołu przeglądowego na operację. Jest to zdecydowanie możliwe, po prostu muszę się dowiedzieć, jak to zrobić. – user2007674
Zdajesz sobie sprawę, że to, o czym mówisz, będzie tabelą 2^(256 + 128 + 128) * 128 bitów. 256 dla klucza, 128 dla danych i kolejne 128 dla CTR. Jest to pełne wejście do wyszukiwania wyników (i to właśnie sprawia, że AES jest tak trudny do odwrócenia). Chociaż nie jestem w miejscu, w którym mogę czytać Twój dokument referencyjny, może on polegać na 100% na wynikach wyszukiwania i wciąż mieć tylko odnośniki do SBOX-ów. SBox oznacza Substitution, który z definicji byłby tablicą przeglądową. – trumpetlicks