암호문 단독공격 편집하기
최신판 | 당신의 편집 | ||
1번째 줄: | 1번째 줄: | ||
− | '''암호문 단독공격''' | + | '''암호문 단독공격 '''(Ciphertext Only Attack)이란 Eve(도청자)는 알고리즘을 알고 있고, 암호문을 가로챌 수 있다는 가정하에 |
− | + | Eve가 어떤 암호문을 얻어서 대응되는 평문과 키를 찾는 것으로,Eve는 암호문을 가지고 통계적 성질, 문장의 특성 등을 추정하여 해독하기 때문에,가장 쉽게 적용될 수 있는 공격이다. | |
− | 예를 들자면, 영어로 된 평문을 | + | 예를 들자면, 영어로 된 평문을 암호화시킨 암호문을 암호문 단독 공격으로 얻어냈을 때 영어에서 가장 많이 쓰이는 글자가 e이기 때문에 가장 많이 나오는 글자는 e일 것이라고 예측을 하는 것이다.<ref> laon, 〈[https://steemit.com/kr/@laon/6whr3f 암호분석의 분류]〉, 《스팀잇》</ref> |
== 개요 == | == 개요 == | ||
− | 공격자가 가장 적은 정보를 가지고 공격하는 것을 암호문 단독 공격이라 한다. 이 공격에서 공격자는 같은 암호키를 사용하여 같은 | + | 공격자가 가장 적은 정보를 가지고 공격하는 것을 암호문 단독 공격이라 한다. 이 공격에서 공격자는 같은 암호키를 사용하여 같은 알고리즘으로 암호화된 유한 암호문 집합만을 가지고 있다. 따라서 공격자의 목표는 대응되는 평문을 찾거나 사용된 암호키를 찾거나 암호 |
− | 키를 찾지 못하였지만 | + | 키를 찾지 못하였지만 암호키 없이 암호문을 복호화할 수 있는 새로운 알고리즘을 발견하는 것이다. 기지 평문 공격에서 공격자는 암호문뿐만 아니라 대응되는 평문도 가지고 있다. 하지만 가지고 있는 암호문/평문 쌍을 공격자가 선택할 수 없다. 이 공격에서 공격자의 목표는 사용된 암호키를 찾거나 암호키를 찾지 못하였지만 암호키 없이 암호문을 복호화할 수 있는 새로운 알고리즘을 발견하는 것이다.<ref> index-of, 〈[http://index-of.co.uk/Cryptology/01.pdf 제 1 장 암호알고리즘 개요]〉, 《개인 웹 사이트》</ref> |
== 구현 == | == 구현 == | ||
27번째 줄: | 27번째 줄: | ||
for c in msg: | for c in msg: | ||
<font color=green># 통계적 기법을 이용하여 | <font color=green># 통계적 기법을 이용하여 | ||
− | # | + | # 재일 많이 나온 순서대로 영문자 출현빈도수와 비교해서 치환 |
<font color=black>if c == '8': | <font color=black>if c == '8': | ||
c = 'e' | c = 'e' | ||
70번째 줄: | 70번째 줄: | ||
print(pmsg) | print(pmsg) | ||
if __name__ == <font color=blue>'__main__'<font color=black>: | if __name__ == <font color=blue>'__main__'<font color=black>: | ||
− | main()<ref name="티스토리"> D4tai1, 〈[https://ccurity.tistory.com/265 Cipherxext Only Attack(암호문 단독 공격)구현]〉, 《티스토리》 | + | main()<ref name="티스토리"> D4tai1, 〈[https://ccurity.tistory.com/265 Cipherxext Only Attack(암호문 단독 공격)구현]〉, 《티스토리》</ref> |
===시연=== | ===시연=== | ||
94번째 줄: | 94번째 줄: | ||
th')-he5a52ee06*e1(%9thet(eeth(%?3hthe)h%t161t:1eet%?t | th')-he5a52ee06*e1(%9thet(eeth(%?3hthe)h%t161t:1eet%?t | ||
d4tai1@unbuntu ~/crypto/10week | d4tai1@unbuntu ~/crypto/10week | ||
− | *통계적 성질을 이용해서 영어 문장에서 | + | *통계적 성질을 이용해서 영어 문장에서 출현빈도가 높은 순서대로 [e, t, a, o, i..]이다. |
− | *이러한 부분이 확률이기 때문에 정확하지 않으므로 | + | *이러한 부분이 확률이기 때문에 정확하지 않으므로 빈도 수가 비슷할 경우 바꿔서도 공격코드를 작성해 보아야 한다. |
− | *이 공격은 | + | *이 공격은 암호문이 길수록 유리하다.<ref name="티스토리"></ref> |
+ | |||
{{각주}} | {{각주}} | ||
== 참고자료 == | == 참고자료 == | ||
− | * laon, 〈[https://steemit.com/kr/@laon/6whr3f 암호분석의 분류]〉, 《스팀잇》 | + | * laon,〈[https://steemit.com/kr/@laon/6whr3f 암호분석의 분류]〉, 《스팀잇》 |
− | * index-of, 〈[http://index-of.co.uk/Cryptology/01.pdf 제 1 장 암호알고리즘 개요]〉, 《개인 웹 사이트》 | + | * index-of,〈[http://index-of.co.uk/Cryptology/01.pdf 제 1 장 암호알고리즘 개요]〉, 《개인 웹 사이트》 |
− | * D4tai1, 〈[https://ccurity.tistory.com/265 Cipherxext Only Attack(암호문 단독 공격)구현]〉, 《티스토리》, 2019-05-31 | + | * D4tai1,〈[https://ccurity.tistory.com/265 Cipherxext Only Attack(암호문 단독 공격)구현]〉, 《티스토리》,2019-05-31 |
− | |||
− | |||
− | |||
− | |||
{{암호 알고리즘|검토 필요}} | {{암호 알고리즘|검토 필요}} |