[보안] Brute-Force Attack 무차별 대입 공격
- Brute Force Attack 이란
특정한 암호를 풀기 위해 가능한 모든 값을 대입하는 것을 의미합니다.
Playfair key matrix를 찾기 위해 brute force attack을 사용하면 25개의 칸에 모든 값을 대입하게 됩니다.
이때 필요한 경우의 수는
첫 번째 칸에 들어갈 수 있는 경우의 수 25개,
두 번째 칸에 들어갈 수 있는 경우의 수 24,
이런 방식으로 총 25!이라는 경우의 수가 나오게 됩니다.
하지만 Playfair 암호의 특성상 행과 열이 바뀌어 다른 Playfair key matrix가 나오더라도
Decryption을 했을 시, 같은 Plain text가 출력이 가능하게 됩니다. 아래의 예시를 보면,
행 이동.
O | N | A | R | M |
H | Y | B | D | C |
F | G | I/J | K | E |
P | Q | S | T | L |
V | W | X | Z | U |
R | M | O | N | A |
D | C | H | Y | B |
K | E | F | G | I/J |
T | L | P | Q | S |
Z | U | V | W | X |
A | R | M | O | N |
B | D | C | H | Y |
I/J | K | E | F | G |
S | T | L | P | Q |
X | Z | U | V | W |
열 이동.
U | V | W | X | Z |
M | O | N | A | R |
C | H | Y | B | D |
E | F | G | I/J | K |
L | P | Q | S | T |
L | P | Q | S | T |
U | V | W | X | Z |
M | O | N | A | R |
C | H | Y | B | D |
E | F | G | I/J | K |
E | F | G | I/J | K |
L | P | Q | S | T |
U | V | W | X | Z |
M | O | N | A | R |
C | H | Y | B | D |
행열 동시 이동
Z | U | V | W | X |
R | M | O | N | A |
D | C | H | Y | B |
K | E | F | G | I/J |
T | L | P | Q | S |
T | L | P | Q | S |
Z | U | V | W | X |
R | M | O | N | A |
D | C | H | Y | B |
K | E | F | G | I/J |
K | E | F | G | I/J |
T | L | P | Q | S |
Z | U | V | W | X |
R | M | O | N | A |
D | C | H | Y | B |
Plain text : Balloon
모든 Key Matrix 를 사용한 암호 값 : IBSUPMNA
이런 방식으로 행으로 5번, 열로 5번의 이동이 가능하기 때문에,
총 25개의 Playfair Key Matrix가 나올 수 있습니다.
결국, 공격자가 cipher text를 해독하기 위해 필요한 key matrix를 작성하기 위해
25!라는 큰 경우의 수가 필요합니다.
그러나 행과 열이 바뀌어도 동일한 Plain text를 추출할 수 있기 때문에 25!/25의 수.
즉 24!의 경우의 수로 해독이 가능합니다.
따라서 상대적으로 더 빠른 해독이 가능하다는 단점이 있습니다.
Playfair 암호화의 또 다른 단점은 암호문(cipher text)가 길어질수록 해독난이도가 낮아진다는 것입니다.
짧은 암호문의 경우 모든 경우의 수를 대입해야합니다.
그러나 평문의 언어에서는 통계적으로 많이 사용되는 단어쌍이 존재하며
빈도수 분석을 통해 단어쌍에 대한 힌트를 얻는 것이 가능합니다.
(ex. th) 그렇기 때문에 상대적으로 적은 대입을 통해 결과를 얻을 수 있습니다.