본문 바로가기

IT/network

[네트워크] 암호화 방식과 알고리즘

암호화

네트워크로 전송되는 데이터는 언제나 노출의 위험이 있다. 인터넷을 이용하면 어떠한 방법으로든 도청 혹은 변조가 가능하기 때문에 이를 방지하기 위한 방법 중 하나로써 암호화가 있다. 암호 시스템에서는 키(Key)라는 비밀 값을 복잡한 알고리즘과 결합하여 메시지를 암호화하거나 해독한다.

 

암호 보안 기술은 크게는 비밀키 암호(secret-key algorithm, symmetric algorithm)와 공개키 암호(public-key algorithm, asymmetric algorithm)로 나뉜다. 그 외에도 인증, 전자 서명 등이 존재한다.

<암호화 방식>

사전에 알아야 할 용어들

평문(Plain Text) : 입력되는 원문의 메시지

암호문(Cipher Test) : 평문을 읽을 수 없도록 암호화한 것

암호화(Encryption) : 평문을 암호문으로 바꾸는 것

복호화(Decryption) : 암호문을 평문으로 바꾸는 것

(Key) : 암호화 및 복호화 시에 알고리즘과 함께 필요한 값이며 매우 큰 수로 구성됨

키 스페이스(Keyspcae) : 키 값의 범위

 

암호화 방식

1) 비밀키 암호화 방식(Asymmetric Key Cryptography)

<비밀키 암호화 방식>

- 암호화 할 때 사용하는 암호키와 복호화 할 때 사용하는 복호키가 동일하며, 두 호스트는 같은 키를 공유하면서 하나의 키를 사용하여 암호화하고 복호화함

- , 암호키로 복호화를 하고 복호키로 암호화를 하면 비밀키 암호화 방식이라 함

- 암호키와 복호키가 같아 대칭키라고 함

- 암호키와 복호키가 같기 때문에 암호화 및 복호화가 빠르며, 다양한 암호화 기법이 개발되어 있음

- 하지만, 복수의 사용자가 사용할 경우 키를 상대방에게 안전하게 보내는데 어려움이 있음(중간에 다른 사람이 가로채거나 엿볼 수도 있다는 의미)

 

2) 공개키 암호화 방식(Symmetric Key Cryptography)

<공개키 암호화 방식>

- 암호키와 복호키가 다름

- 암호키를 안다고 하여 복호화할 수 없고 복호키를 안다고 하여 암호화를 할 수 없음

- 하지만 암호키는 공개되어 있기 때문에 누구나 암호화가 가능, 때문에 암호키를 공개키'라고 함

- 복호키는 개인만 가지기 때문에 개인키(Private Key)'라고 함

- 이 방식은 전송 도중 도청을 당하더라도 개인키(복호키)가 있어야만 볼 수 있으므로 안전함

- 공개키 암호화 방식은 보안상 허점이 없다는 것과 정보의 비밀 공유 이외에도 다른 용도로 사용이 가능하다는 장점이 있음

- 대신 암호키와 복호키가 다르므로 암호 및 복호화 속도가 비밀키 방식보다 느리고, 많은 양의 자료에는 적용하기 어려움

 

3) 인증(Authentication)

<살면서 직접적으로는 접해본 경험이 없을수도 있는 인증(Authentication)>

- 특정 네트워크에 접속 시 권한이 있는 사용자에게만 해당 네트워크에 접속을 허용하는 방식

- 요청자의 권한 확인과 본인 여부 확인이 필요

- 최근 스마트폰에 탑재된 생채 인식(홍채 인식, 지문 인식, 안면 인식 등)이 떠오르면서 인증 방법이 바뀌는 추세

 

4) 생체 인식(Biometrix Technology)

<최근 스마트폰에서 많이 사용되는 생채 인식(BIometrix Technology)>

- 지문, 목소리, 홍채, 안면 인식 등을 패스워드로 이용하여 인증하는 방식

- 공개키 암호 방식과 더불어 강력한 암호화 방식으로 혼용하여 사용되는 경우가 많음

 

5) 전자 서명(Electronic Signatures)

<금융 거래 시 한번쯤은 사용해봤을 전자 서명(Electronic Signatures)>

- 일상에서는 주민등록증, 서명, 인감 등으로 신원 확인이 가능한 것처럼 인터넷에서는 전자 서명으로 가능함

- 한 쌍의 키(개인키 + 공개키)를 사용하여 자신을 증명하는 것이 전자 서명의 원리

- 대표적으로 은행 결제 시 우리를 귀찮게 하는(스마트폰 안에 있는데 감지를 못하는....) 공인 인증서 등이 있음

 

이것으로 기초적인 컴퓨터 네트워크에 대한 정리 끝난 것 같습니다. 예전에 암호화에 대한 공부를 잠깐 했었는데 그 기억을 되살리고자 DES, AES, SHA-256, RC4 등의 암호 알고리즘에 대한 내용 정리와 코딩을 포스팅해보려고 합니다. 너무 오래전에 했던 것들이라 제대로 할 수 있을지는 모르겠으나... 취업 준비 겸해서 다시 해보면 알고리즘 공부도 되고 좋을 것 같아서 해보려고 합니다! 덤으로 SDN과 NFV 관련 공부도 하고 있는데 내용이 정리되는 대로 기록용으로 포스팅 해보려 합니다!