암호 편집하기

이동: 둘러보기, 검색

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

편집을 되돌릴 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 저장해주세요.
최신판 당신의 편집
16번째 줄: 16번째 줄:
  
 
===고대 암호===
 
===고대 암호===
 +
고대 봉건 사회에서는 황제나 군주가 지방 관리에게 보내는 비밀문서, 전쟁 중의 작전 지시와 보고, 첩자들과의 통신 등 전쟁이나 첩보 시에 정보를 전달해야 하는 경우에 다양한 비밀 통신 기법들이 사용되었다. 예를 들어, 멀리 기밀 정보를 전달해야 하는 경우에는 사자의 머리를 깎고 메시지를 쓴 후 머리를 길러 보내면 받는 측에서는 사자의 머리를 깎고 메시지를 읽도록 하였다.<ref name="덕">duck1201, 〈[https://blog.naver.com/duck1201/220942194662 암호의 역사]〉,《네이버 블로그》, 2017-02-22</ref>
  
* '''[[스테가노그래피]]'''(steganography) : 고대 봉건 사회에서는 황제나 군주가 지방 관리에게 보내는 비밀문서, 전쟁 중의 작전 지시와 보고, 첩자들과의 통신 등 전쟁이나 첩보 시에 정보를 전달해야 하는 경우에 다양한 비밀 통신 기법들이 사용되었다. [[헤로도투스]]가 쓴 《역사》라는 책을 보면, 기원전 440년 그리스 왕 히스티아에우스(Histiaeus)가 다른 나라의 인질로 붙잡힌 상태에서 노예의 머리에 문신을 해서 글자를 새긴 후 양아들에게 밀서를 보냈다는 기록이 있다. 멀리 기밀 정보를 전달해야 하는 경우에는 사자의 머리를 깎고 메시지를 쓴 후 머리를 길러 보내면 받는 측에서는 사자의 머리를 깎고 메시지를 읽도록 하였다.<ref name="덕">duck1201, 〈[https://blog.naver.com/duck1201/220942194662 암호의 역사]〉,《네이버 블로그》, 2017-02-22</ref>
+
종이에 쓴 메시지가 그냥 보이지 않지만 불빛에 약품 처리를 하면 메시지가 나타나도록 하는 방법, 비밀 노출을 방지하기 위해 말로 전달하도록 하는 방법 등이 다양하게 사용되었다. 이러한 비밀 통신 방법을 [[스테가노그래피]](Steganography)라고 하는데 적들도 이 통신 방식을 알고 있으면 비밀을 유지하기 어렵다는 한계를 갖고 있다.<ref name="역사"></ref>
 
 
:스테가노그래피는 종이에 쓴 메시지가 그냥 보이지 않지만 불빛에 약품 처리를 하면 메시지가 나타나도록 하는 방법, 비밀 노출을 방지하기 위해 말로 전달하도록 하는 방법 등이 다양하게 사용되었다. 다만, [[스테가노그래피]]는 만약 상대방도 이 통신 방식을 알고 있으면 비밀을 유지하기 어렵다는 한계를 갖고 있다.<ref name="역사"></ref>
 
 
 
 
[[파일:스키테일 암호.png |썸네일|300픽셀|'''스키테일 암호'''(Scytale Cipher)]]
 
[[파일:스키테일 암호.png |썸네일|300픽셀|'''스키테일 암호'''(Scytale Cipher)]]
 
[[파일:시저암호.png |썸네일|300픽셀|'''시저 암호'''(Caesar cipher)]]
 
[[파일:시저암호.png |썸네일|300픽셀|'''시저 암호'''(Caesar cipher)]]
26번째 줄: 24번째 줄:
 
* '''[[스키테일 암호]]''' : 기원전 400년경 고대 그리스의 군사들은 스키테일 암호라고 불리는 [[전치 암호]](Transposition cipher, 문자의 위치를 서로 바꾸는 암호)를 사용한 기록이 있다. 특정 지름을 갖는 막대에 종이를 감고 평문을 횡으로 쓴 다음 종이를 풀면 평문의 각 문자는 재배치되어 정보를 인식할 수 없게 되는데, 암호문 수신자가 송신자가 사용한 막대와 지름이 같은 막대에 종이를 감고 횡으로 읽으면 평문을 읽을 수 있다. 여기서 막대의 지름은 송신자와 수신자 사이에 공유된 [[비밀키]]가 된다.
 
* '''[[스키테일 암호]]''' : 기원전 400년경 고대 그리스의 군사들은 스키테일 암호라고 불리는 [[전치 암호]](Transposition cipher, 문자의 위치를 서로 바꾸는 암호)를 사용한 기록이 있다. 특정 지름을 갖는 막대에 종이를 감고 평문을 횡으로 쓴 다음 종이를 풀면 평문의 각 문자는 재배치되어 정보를 인식할 수 없게 되는데, 암호문 수신자가 송신자가 사용한 막대와 지름이 같은 막대에 종이를 감고 횡으로 읽으면 평문을 읽을 수 있다. 여기서 막대의 지름은 송신자와 수신자 사이에 공유된 [[비밀키]]가 된다.
  
* '''[[시저 암호]]''' : 로마의 황제였던 [[줄리어스 시저]](Julius Caesar)는 시저 암호라고 불리는 [[치환암호]](substitution cipher, 문자를 다른 문자로 치환하는 암호)를 사용하였다. 시저는 가족과 비밀 통신을 할 때 각 알파벳순으로 세자씩 뒤로 물려 읽는 방법으로 글을 작성했다. 즉 A는 D로, B는 E로 바꿔 읽는 방식이었다. 수신자가 암호문을 복호화하려면 암호문 문자를 좌측으로 3문자씩 당겨서 읽으면 원래의 평문을 얻을 수 있다. 송신자와 수신자는 몇 문자씩 이동할지를 비밀키로 하여 바꿔가면서 사용할 수 있다. 시저는 [[브루투스]](Brutus)에게 암살당하기 전 가족들로부터 다음과 같은 긴급 통신문을 받았다. 시저가 받은 편지에는 ‘EH FDUHIXO IRU DVVDVVLQDWRU’라 되어 있었다.<ref name="하늘바다">하늘바다영재교육원, 〈[https://blog.naver.com/jcic/220608097828 제 57회 Arduino_조이스틱_암호]〉, 《네이버 블로그》, 2016-01-25</ref> 3글자씩 당겨서 읽어보면 뜻은 ‘BE CAREFUL FOR ASSASSINATOR’, 즉 ‘암살자를 주의하라’는 것이었다. 당시 시저의 권세를 시기했던 일당은 시저를 살해할 암살 음모를 꾸미고 있었으며 시저 자신도 이를 어느 정도 눈치 채고 있었다. 하지만 시저는 구체적으로 암살자가 누구인지 알 수 없었다. 결국 암호문을 전달받은 당일 시저는 원로원에서 전혀 생각지도 못했던 브루투스에게 암살당하면서 “브루투스, 너마저…….”라는 말을 남겼다.
+
* '''[[시저 암호]]''' : 로마의 황제였던 [[줄리어스 시저]](Julius Caesar)는 시저 암호라고 불리는 [[환자 암호]](substitution cipher, 문자를 다른 문자로 대체하는 암호)를 사용하였다. 시저는 가족과 비밀 통신을 할 때 각 알파벳순으로 세자씩 뒤로 물려 읽는 방법으로 글을 작성했다. 즉 A는 D로, B는 E로 바꿔 읽는 방식이었다. 수신자가 암호문을 복호화하려면 암호문 문자를 좌측으로 3문자씩 당겨서 읽으면 원래의 평문을 얻을 수 있다. 송신자와 수신자는 몇 문자씩 이동할지를 비밀키로 하여 바꿔가면서 사용할 수 있다. 시저는 [[브루투스]](Brutus)에게 암살당하기 전 가족들로부터 다음과 같은 긴급 통신문을 받았다. 시저가 받은 편지에는 ‘'''EH FDUHIXO IRU DVVDVVLQDWRU'''’라 되어 있었다.<ref name="하늘바다">하늘바다영재교육원, 〈[https://blog.naver.com/jcic/220608097828 제 57회 Arduino_조이스틱_암호]〉, 《네이버 블로그》, 2016-01-25</ref> 3글자씩 당겨서 읽어보면 뜻은 ‘'''BE CAREFUL FOR ASSASSINATOR'''’, 즉 ‘'''암살자를 주의하라'''’는 것이었다. 당시 시저의 권세를 시기했던 일당은 시저를 살해할 암살 음모를 꾸미고 있었으며 시저 자신도 이를 어느 정도 눈치 채고 있었다. 하지만 시저는 구체적으로 암살자가 누구인지 알 수 없었다. 결국 암호문을 전달받은 당일 시저는 원로원에서 전혀 생각지도 못했던 브루투스에게 암살당하면서 “브루투스, 너마저…….”라는 말을 남겼다.
  
 
* '''[[악보 암호]]''' : 악보 암호는 전설적인 스파이 [[마타하리]](본명 : [[마그레타 G. 젤러]], Margaretha Geertruida Zelle)가 사용했던 방식이다. 마타하리는 일명 ‘'''첩보원 H21'''’이란 이름으로 프랑스 장교에 접근해 군사 기밀 정보를 독일에 빼돌렸는데, 이때 비밀 통신에 사용된 암호가 악보였다. 일정한 형태의 음표에 알파벳 하나씩을 대응시킨 형태로 얼핏 보기에 평범한 악보처럼 보이지만, 실제로 연주하면 전혀 ‘음악’이 되지 않는다. 마타하리의 첩보 활동은 20여만 명에 달하는 프랑스군을 죽음으로 몰고 갔다. 그녀는 제 1차 세계 대전이 끝나기 1년 전 프랑스 정보부에 체포돼 사형을 당했다.
 
* '''[[악보 암호]]''' : 악보 암호는 전설적인 스파이 [[마타하리]](본명 : [[마그레타 G. 젤러]], Margaretha Geertruida Zelle)가 사용했던 방식이다. 마타하리는 일명 ‘'''첩보원 H21'''’이란 이름으로 프랑스 장교에 접근해 군사 기밀 정보를 독일에 빼돌렸는데, 이때 비밀 통신에 사용된 암호가 악보였다. 일정한 형태의 음표에 알파벳 하나씩을 대응시킨 형태로 얼핏 보기에 평범한 악보처럼 보이지만, 실제로 연주하면 전혀 ‘음악’이 되지 않는다. 마타하리의 첩보 활동은 20여만 명에 달하는 프랑스군을 죽음으로 몰고 갔다. 그녀는 제 1차 세계 대전이 끝나기 1년 전 프랑스 정보부에 체포돼 사형을 당했다.
81번째 줄: 79번째 줄:
 
==종류==
 
==종류==
 
===대칭키 암호===
 
===대칭키 암호===
[[대칭키 암호]](Symmetric-key Cryptography)는 암·복호화에 같은 암호 키를 사용하는 알고리즘이며, 송신자와 수신자는 암호 키가 노출되지 않도록 비밀로 관리해야 한다. 대칭키 암호는 내부 구조가 간단한 [[전치]]와 [[치환]](대체)의 조합으로 되어 있어 연산 속도가 빠르다는 장점이 있다.<ref>소셜리, 〈[https://blog.naver.com/kostry/220802215604 현대암호(대칭키)]〉, 《네이버 블로그》, 2016-09-01</ref> 하지만 송·수신자 간에 동일한 키를 공유해야 하므로 많은 사람들과의 정보 교환 시 많은 키를 관리해야 하는 어려움이 있다.<ref name="정의"></ref><ref>wind1237, 〈[http://blog.naver.com/wind1237/140193924292 대칭키 암호 IT/DB_IT_Info]〉, 《네이버 블로그》, 2013-07-26</ref>
+
[[대칭키 암호]](Symmetric-key Cryptography)는 암·복호화에 같은 암호 키를 사용하는 알고리즘이며, 송신자와 수신자는 암호 키가 노출되지 않도록 비밀로 관리해야 한다. 대칭키 암호는 내부 구조가 간단한 [[전치]]와 [[대체]](치환)의 조합으로 되어 있어 연산 속도가 빠르다는 장점이 있다.<ref>소셜리, 〈[https://blog.naver.com/kostry/220802215604 현대암호(대칭키)]〉, 《네이버 블로그》, 2016-09-01</ref> 하지만 송·수신자 간에 동일한 키를 공유해야 하므로 많은 사람들과의 정보 교환 시 많은 키를 관리해야 하는 어려움이 있다.<ref name="정의"></ref><ref>wind1237, 〈[http://blog.naver.com/wind1237/140193924292 대칭키 암호 IT/DB_IT_Info]〉, 《네이버 블로그》, 2013-07-26</ref>
  
* '''[[블록암호]]'''(Block Cipher) : 블록암호는 평문을 고정된 크기의 블록단위로 암·복호화를 수행하며, 각 블록마다 동일한 키가 사용된다. 블록암호는 고정된 크기로 평문을 나누기 때문에, 원하는 길이를 맞추기 위하여 [[패딩]](padding)이라는 기법을 이용한다. 또한 하나의 키로 여러 [[블록]]을 안전하게 처리하기 위하여 [[운용 방식]](mode of operation)이라는 절차를 이용한다. [[섀넌]](Shannon)의 암호 이론에 의하면 [[전치]]와 [[치환]](대체, 환자)를 반복시켜 평문의 통계적 성질이나 암호 키와의 관계가 나타나지 않아 안전한 암호를 구성할 수 있다.<ref>멋징승현, 〈[https://kimseunghyun76.tistory.com/320 Cryptography, 암호 이용 활성화]〉, 《티스토리》, 2013-07-30</ref> 대표적인 블록암호 알고리즘으로는 국산 알고리즘인 [[SEED]](시드), [[HIGHT]](하이트), [[ARIA]](아리아), [[LEA]](레아)와 외산 알고리즘인 [[DES]](디이에스), [[AES]](에이이에스) 등이 있다.<ref name="정의"></ref>
+
* '''[[블록암호]]'''(Block Cipher) : 블록암호는 평문을 고정된 크기의 블록단위로 암·복호화를 수행하며, 각 블록마다 동일한 키가 사용된다. 블록암호는 고정된 크기로 평문을 나누기 때문에, 원하는 길이를 맞추기 위하여 [[패딩]](padding)이라는 기법을 이용한다. 또한 하나의 키로 여러 [[블록]]을 안전하게 처리하기 위하여 [[운용 방식]](mode of operation)이라는 절차를 이용한다. [[섀넌]](Shannon)의 암호 이론에 의하면 [[전치]]와 [[대체]](치환, 환자)를 반복시켜 평문의 통계적 성질이나 암호 키와의 관계가 나타나지 않아 안전한 암호를 구성할 수 있다.<ref>멋징승현, 〈[https://kimseunghyun76.tistory.com/320 Cryptography, 암호 이용 활성화]〉, 《티스토리》, 2013-07-30</ref> 대표적인 블록암호 알고리즘으로는 국산 알고리즘인 [[SEED]](시드), [[HIGHT]](하이트), [[ARIA]](아리아), [[LEA]](레아)와 외산 알고리즘인 [[DES]](디이에스), [[AES]](에이이에스) 등이 있다.<ref name="정의"></ref>
  
 
* '''[[스트림 암호]]'''(Stream Cipher) : 스트림 암호는 평문과 동일한 길이의 [[키스트림]](key stream) 수열을 생성하여, 평문과의 XOR 연산을 통하여 암·복호화를 수행한다. 키스트림 수열을 생성할 때, 평문과 독립적으로 생성하는 경우를 동기식 스트림 암호라고 하며, 반대로 평문이 키스트림 수열에 영향을 미치는 경우를 비동기식 혹은 자기동기 스트림 암호라고 한다. 구현 여건이 제약되는 환경에서 구현이 용이하며, 무선 통신 등의 환경에 주로 사용된다. 대표적인 스트림 암호 알고리즘으로 [[RC4]], [[A5/1]], [[A5/2]] 등이 있다.<ref name="정의"></ref>
 
* '''[[스트림 암호]]'''(Stream Cipher) : 스트림 암호는 평문과 동일한 길이의 [[키스트림]](key stream) 수열을 생성하여, 평문과의 XOR 연산을 통하여 암·복호화를 수행한다. 키스트림 수열을 생성할 때, 평문과 독립적으로 생성하는 경우를 동기식 스트림 암호라고 하며, 반대로 평문이 키스트림 수열에 영향을 미치는 경우를 비동기식 혹은 자기동기 스트림 암호라고 한다. 구현 여건이 제약되는 환경에서 구현이 용이하며, 무선 통신 등의 환경에 주로 사용된다. 대표적인 스트림 암호 알고리즘으로 [[RC4]], [[A5/1]], [[A5/2]] 등이 있다.<ref name="정의"></ref>
119번째 줄: 117번째 줄:
  
 
{{암호 알고리즘|검토 필요}}
 
{{암호 알고리즘|검토 필요}}
{{보안}}
 
{{결제}}
 

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

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