Why understanding attacks enables defense in Cybersecurity - Performance Analysis
Knowing how attacks work helps us understand how much effort it takes to carry them out.
We want to see how the time to perform an attack grows as the target or attack steps increase.
Analyze the time complexity of the following attack simulation code.
for attempt in range(max_attempts):
if try_password(attempt):
break
log_attempt(attempt)
This code tries passwords one by one until it finds the right one or reaches the limit.
Identify the loops, recursion, array traversals that repeat.
- Primary operation: The loop tries passwords repeatedly.
- How many times: Up to
max_attemptstimes, stopping early if successful.
As the number of possible passwords grows, the attempts needed can grow too.
| Input Size (max_attempts) | Approx. Operations |
|---|---|
| 10 | Up to 10 tries |
| 100 | Up to 100 tries |
| 1000 | Up to 1000 tries |
Pattern observation: The number of tries grows directly with the number of possible passwords.
Time Complexity: O(n)
This means the time to find the password grows in a straight line with the number of attempts allowed.
[X] Wrong: "The attack time stays the same no matter how many passwords there are."
[OK] Correct: More possible passwords mean more tries, so the time grows with the input size.
Understanding how attack time grows helps you explain defense strategies clearly and confidently.
"What if the code used a smarter search method instead of trying passwords one by one? How would the time complexity change?"