암호문 단독공격 편집하기

이동: 둘러보기, 검색

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 아이디(ID)으로 기록되고, 다른 장점도 있습니다.

편집을 되돌릴 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 저장해주세요.
최신판 당신의 편집
1번째 줄: 1번째 줄:
'''암호문 단독공격'''<!--암호문단독공격, 암호문 단독 공격-->(Ciphertext Only Attack; COA)이란 도청자가 [[알고리즘]]을 알고 있고, [[암호문]]을 가로챌 수 있다는 가정하에
+
'''암호문 단독공격 '''(Ciphertext Only Attack)이란 Eve(도청자)는 알고리즘을 알고 있고, 암호문을 가로챌 수 있다는 가정하에
도청자가 어떤 암호문을 얻어서 대응되는 평문과 키를 찾는 공격을 말한다. 도청자는 암호문을 가지고 통계적 성질, 문장의 특성 등을 추정하여 해독하기 때문에, 가장 쉽게 적용될 수 있는 공격이다.
+
Eve가 어떤 암호문을 얻어서 대응되는 평문과 키를 찾는 것으로,Eve는 암호문을 가지고 통계적 성질, 문장의 특성 등을 추정하여 해독하기 때문에,가장 쉽게 적용될 수 있는 공격이다.
  
예를 들자면, 영어로 된 평문을 [[암호화]]시킨 암호문을 암호문 단독 공격으로 얻어냈을 때 영어에서 가장 많이 쓰이는 글자가 e이기 때문에 가장 많이 나오는 글자는 e일 것이라고 예측을 하는 것이다.<ref>laon, 〈[https://steemit.com/kr/@laon/6whr3f 암호분석의 분류]〉, 《스팀잇》</ref>
+
예를 들자면, 영어로 된 평문을 암호화시킨 암호문을 암호문 단독 공격으로 얻어냈을 때 영어에서 가장 많이 쓰이는 글자가 e이기 때문에 가장 많이 나오는 글자는 e일 것이라고 예측을 하는 것이다.<ref> laon, 〈[https://steemit.com/kr/@laon/6whr3f 암호분석의 분류]〉, 《스팀잇》</ref>
  
 
== 개요 ==
 
== 개요 ==
공격자가 가장 적은 정보를 가지고 공격하는 것을 암호문 단독 공격이라 한다. 이 공격에서 공격자는 같은 암호키를 사용하여 같은 [[알고리즘]]으로 [[암호화]]된 유한 암호문 집합만을 가지고 있다. 따라서 공격자의 목표는 대응되는 평문을 찾거나 사용된 암호키를 찾거나 암호
+
공격자가 가장 적은 정보를 가지고 공격하는 것을 암호문 단독 공격이라 한다. 이 공격에서 공격자는 같은 암호키를 사용하여 같은 알고리즘으로 암호화된 유한 암호문 집합만을 가지고 있다. 따라서 공격자의 목표는 대응되는 평문을 찾거나 사용된 암호키를 찾거나 암호
키를 찾지 못하였지만, 암호키 없이 암호문을 복호화할 수 있는 새로운 알고리즘을 발견하는 것이다. 기지 평문 공격에서 공격자는 암호문뿐만 아니라 대응되는 평문도 가지고 있다. 하지만 가지고 있는 암호문/평문 쌍을 공격자가 선택할 수 없다. 이 공격에서 공격자의 목표는 사용된 암호키를 찾거나 암호키를 찾지 못하였지만, 암호키 없이 암호문을 복호화할 수 있는 새로운 알고리즘을 발견하는 것이다.<ref> index-of, 〈[http://index-of.co.uk/Cryptology/01.pdf 제 1 장 암호알고리즘 개요]〉, 《개인 웹 사이트》</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(암호문 단독 공격)구현]〉, 《티스토리》, 2019-05-31</ref>
+
     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..]이다.
+
*통계적 성질을 이용해서 영어 문장에서 출현빈도가 높은 순서대로 [e, t, a, o, i..]이다.
*이러한 부분이 확률이기 때문에 정확하지 않으므로 빈도수가 비슷할 경우 바꿔서도 공격 코드를 작성해 보아야 한다.
+
*이러한 부분이 확률이기 때문에 정확하지 않으므로 빈도 수가 비슷할 경우 바꿔서도 공격코드를 작성해 보아야 한다.
*이 공격은 [[암호문]]이 길수록 유리하다.<ref name="티스토리"></ref>
+
*이 공격은 암호문이 길수록 유리하다.<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
 
 
== 같이 보기 ==
 
* [[암호해독]]
 
 
 
 
{{암호 알고리즘|검토 필요}}
 
{{암호 알고리즘|검토 필요}}

해시넷에서의 모든 기여는 다른 기여자가 편집, 수정, 삭제할 수 있다는 점을 유의해 주세요. 만약 여기에 동의하지 않는다면, 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다 (자세한 사항은 해시넷:저작권 문서를 보세요). 저작권이 있는 내용을 허가 없이 저장하지 마세요!

취소 | 편집 도움말 (새 창에서 열림)