이 게시물은 개인적으로 알고리즘 공부한 내용과 이곳 저곳 검색하여 얻은 정보, 잡지식을 꾸준히 쌓아가는 글입니다. 출처는 최하단에 남겨두겠습니다. 자료나 궁금한점은 댓글로 질문해주세요.^^
Brute Force Algorithm
브루트 포스 알고리즘
조합 가능한 모든 문자열을 하나씩 대입해 보는 방식으로 암호를 해독하는 방법.
영어로 brute는 "짐승같은, 난폭한"이라는 뜻이고, brute-force는 "난폭한 힘, 폭력"이라는 뜻이다. 오래 걸리는 데다 자원이 엄청나게 깨져서 얼핏 보면 무식하다고 생각할 수도 있겠지만, 항상 정확도 100%를 보장한다는 점에서 암호 해독법 중 가장 확실하고 무서운 방법이다. 이론적으로 가능한 모든 경우의 수를 다 검색해 보는 것이라 정확도 100%가 항상 보장되니, 암호학에서는 가장 확실한 방법으로 통용되고 있다.
브루트 포스 방법에는 문제의 복잡도(Complexity)에 매우 민감하다는 치명적인 단점을 가지고 있다.
암호를 대입할 때 a, b, c, .... aa, ab, ac..... ba, bb, bc, .... 와 같은 모든 가능한 조합을 대입하는 방법 대신 abcd, 1234, qwert, q1w2e3 등 가장 많이 쓰이는 문자열만 모아서 대입하는 방법도 많이 쓰이는데, 이를 사전 공격(Dictionary attack)이라고 한다.
728x90
반응형
'Algorithm > Algorithm' 카테고리의 다른 글
😤 백준 1753번 최단경로 풀이 (Dijkstra Algorithm) (0) | 2021.01.25 |
---|---|
[코딩 테스트] : #01 :: 기본적 이해 (0) | 2021.01.07 |
Floyd_Warshall Algorithm :: 플로이드-와샬 알고리즘 (0) | 2020.10.10 |