Jak działa AES w CTR w Pythonie z PyCrypto?

Używam python 2.7.1 Chcę zaszyfrować sth przy użyciu AES w trybie CTR. Zainstalowałem bibliotekę PyCrypto dla Pythona. Napisałem następujący kod:

secret = os.urandom(16)
crypto = AES.new(os.urandom(32), AES.MODE_CTR, counter=lambda: secret)
encrypted = crypto.encrypt("asdk")
print crypto.decrypt(encrypted)

Muszę uruchomić crypto.decrypt tyle razy, ile wynosi rozmiar bajtu mojego tekstu jawnego, aby poprawnie odszyfrować dane. To znaczy:

encrypted = crypto.encrypt("test")
print crypto.decrypt(encrypted)
print crypto.decrypt(encrypted)
print crypto.decrypt(encrypted)
print crypto.decrypt(encrypted)

Ostatnie połączenie do odszyfrowania da mi z powrotem tekst jawny. Inne wyjścia z deszyfrowania to niektóre bełkotliwe łańcuchy. Zastanawiam się, czy to normalne czy nie? Czy za każdym razem muszę dołączać do pętli o rozmiarze równym mojemu tekstowi jawnemu, czy też się myliłem?

questionAnswers(4)

yourAnswerToTheQuestion