Czas porównywania stringów – szybki test

Małe nawiązanie do tematu timing attacks. Wykres prezentuje czas porównania dwóch stringów o tej samej długości w zależności od tego, na którym znaku stringi te się różnią. Dane do przygotowania wykresu zostały przygotowane przy pomocy prostego skryptu uruchamianego w Python 2.5. Porównywane były stringi o długości 64 znaków, dla każdego przypadku wykonane zostało 5 000 000 porównań.

Obiecany wykres wygląda w sposób następujący:

Jak widać czas potrzebny na wykonanie operacji porównania (użyty operator == ) rośnie liniowo. Nie jest to oczywiście idealna prosta, ogólnie jednak trend jest dość oczywisty – im dalej stringi się różnią (albo inaczej – im dłuższy wspólny początek), tym porównanie trwa dłużej. Teoretycznie ta cecha może być przydatna do odtworzenia “właściwej” wartości.

Oryginał tego wpisu dostępny jest pod adresem Czas porównywania stringów – szybki test

Autor: Paweł Goleń