Zna ktos moze jakas ksiazke, ktora w porzadny sposob wytlumaczylaby dzialanie algorytmu szyfrowania AES, itp. Nie mowie tu o kiepskich tutorialach z neta, ktore po lebkach tlumacza i pisza o uzyciu sboxow, roundkeys, ale nie tlumacza kompletnie co to jest, jak je generowac itd. Chcialbym cos porzadnego co wytlumaczy dobrze takie rzeczy osobie, ktora wczesniej nie miala stycznosci z kryptografia.
Bardzo ciekawa pozycja, którą warto przeczytać:
Z tego co znalazlem pdfy to ta pozycja nie tlumaczy w taki sposob jak chcialem algorytmu AES. Mi nie chodzi o matematyczne rozwiazania i bezpieczenstwo, tylko o algorytm. Bardziej od strony informatycznej. Matematyka tylko taka jaka wymagana w algorytmie, czyli jakies mnozenie macierzowe, xor itd.
A specyfikację czytałeś? http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf
http://www.cs.bc.edu/~straubin/cs381-05/blockciphers/rijndael_ingles2004.swf tu masz ładnie to pokazana jak chcesz szczegóły implementacji to poszukaj sobie otwartego źródła - stosunkowo łatwo się to czyta - nie ma żadnych skomplikowanych operacji.
Szopen, tak widzialem tego linka. Sam znalazlem wczesniej. Ale nie tlumaczy on tutaj paru istotnych kwestii dla mnie. Skad sie biora sboxy, jak stworzyc inversible(chyba odwrotny/odwracalny) sbox, drugi do deszyfracji potrzebny. Skad wziac rcon, jak wygenerowac. W wiekszosc podaja jedynie ze cos takiego jest i tyle, nie skad sie bierze, jak to samemu utworzyc. FirstRoundKey to spoko, wiem ze samemu sie robi tablice 16 bajtow i na podstawie tego oraz sboxa chyba tworzy sie dalej odpowiednie roundkey dla rundy. Kolejne kroki czyli mieszanie kolumn, podstawienie itd. to proste rzeczy. Glownie chodzi mi o jakies przystepne wytlumaczenie jak te tablice podstawien stworzyc, zeby spelnily wymagania AES, nieliniowosc i cos tam jeszcze.
@stinger_t
Angielska specyfikacja srednio mi podchodzi. O ile rozumiem angielski dobrze, to nauka takich dosc zaawansowanych spraw bedzie duzo ciezsza po ang. tym bardziej ze specyfikacji niz z jakiejs normalnej ksiazki. Tym bardziej ze juz wczesniej probowalem ze specyfikacji ogarniac, to mi to srednio wyszlo xD
Ciekawa pozycja. Tylko matematyka dyskretna po ang. to dla mnie horror ;p Po polsku nie bylo latwo ja ogarnac, a tutaj mi po ang. pisza o ciałach, grupach, elem. odwrotnych w danym ciele. Jak nic po polsku nie bedzie to bede musial sie tym zadowolic.
http://pl.wikipedia.org/wiki/S-Box
http://en.wikipedia.org/wiki/Rijndael_S-box jak wygenerować S-box, ale i tak zazwyczaj w programach jest to zaszyte jako stała, tak samo z RCON. Masz je po prostu skopiować do swojej implementacji i tyle, jak zostały wygenerowane to w sumie mało ważne. Jak przyjrzysz się wartością RCON w systemie dziesiętnym to też coś zauważysz.
RCON jest używany wraz z kluczem użytkownika i S-box'em do wygenerowania kluczy do poszczególnych rund, jeśli jest np. więcej bloków niż 128 bitów z tym samym hasłem to warto ten krok wykonać tylko raz na początku, dla reszty bloków będą takie same.
Wiesz takie powiedzenie prowadzacemu ze to stala i skopiowalem sobie to nie przejdzie xD Poza tym dla siebie chcialbym sie nauczyc generowac taki s-box czy rcon. Klucze dla wszystkich rund najlepiej wygenerowac na starcie. Jeszcze jest opcja generowania dynamicznych s-boxow, gdzies o tym czytalem, ale tez po ang i dosyc skomplikowane, dlatego szukam jakiejs porzadnej ksiazki.