사이버 보안의 구성 체계

  1. 기밀성: 서로 주고받은 실제 정보에 대한 비밀성을 보장하는 개념
  2. 무결성: 서로 주고받은 실제 정보에 대한 정확성을 보장하는 개념
  3. 가용성: 정당한 사용자가 필요할 때마다 즉각적으로 정보에 접근해 사용하는 개념
  4. 인증: 송신자와 수신자 사이의 확신성을 보장하는 개념
  5. 부인 봉쇄: 수신자가 정보를 받았는데 송신자가 이를 부인하는 일 등을 방지하는 개념

기밀성 보안 알고리즘

대칭 암호 구조

  • 비밀 열쇠(Secrete key): 송신자와 수신자가 동일하게 사용하는 열쇠
    • 송신자(암호화의 주체): 비밀 열쇠 사용
    • 수신자(복호화의 주체): 비밀 열쇠 사용

대칭 암호 구조는 수천 년 동안 암호 이론의 상식이었다. 그러나, 사이버 공간으로 이식하는 과정에서 송신자와 수신자가 암호 통신을 시작하기 전, 어떻게 비밀 열쇠를 교환할 것인가라는 문제에 직면했다. 이른바 비밀 열쇠 교환의 문제. 송신자가 수신자에게 그냥 비밀 열쇠를 줄 순 없느냐? 없다. 왜냐하면, 제3자가 중간에 탈취할 수 있기 때문에...

그래서 디피(Diffie)와 헬먼(Hellman)이 이 문제를 해결했다. 바로 DH(디피-헬먼) 알고리즘. 이 알고리즘에 따르면 송신자와 수신자는 각각 공개 열쇠와 개인 열쇠를 생성한다. 그리고 서로 자신의 공개 열쇠를 교환한다(물론 이 공개 열쇠는 제 3자에게 드러나도 상관 없음) 그리고 각자의 개인 열쇠를 꺼내 상대방으로부터 받은 공개 열쇠를 끼우면, 비밀 열쇠 획득!

이렇게 비밀 열쇠를 이용하는 대칭 암호 구조의 대표적인 알고리즘에는 DES(Data Encryption Standard) 방식AES(Advanced Encryption Standard) 방식 등이 있다. 물론 이 방식들도 비밀 열쇠를 사용하기 전, DH 알고리즘에 따라 서로 공개 열쇠를 주고 받아 비밀 열쇠를 생성하는 과정이 필요하다.

하지만, DH 알고리즘의 공개 열쇠, 개인 열쇠는 오직 비밀 열쇠를 생성하는 데만 사용할 수 있다. 즉, 암호화/복호화에는 사용할 수 없다는 것. 이것이 이 알고리즘의 한계라면 한계다.

그래서 리베스트(Rivest), 샤미르(Shamir), 에이들먼(Adleman)이 DH 알고리즘에서 사용하는 공개 열쇠와 개인 열쇠를 직접 암호화/복호화 할 수 있는 알고리즘 개발에 착수했고 결국 RSA 알고리즘 개발에 성공함으로써 비대칭 암호의 기원을 열었다.

비대칭 암호 구조

  • 공개 열쇠(Public key)/개인열쇠(Private key): 송신자와 수신자가 상이하게 사용하는 열쇠
    • 송신자(암호화의 주체): 공개 열쇠 사용
    • 수신자(복호화의 주체): 개인 열쇠 사용

RSA 알고리즘을 사용하는 비대칭 암호 구조에서는 송신자가 수신자에게 공개 열쇠를 요청하면 수신자는 자신의 공개 열쇠를 송신자에게 전송한다. 송신자는 수신자로부터 전송받은 공개 열쇠를 이용해 평문을 암호문으로 변경한 뒤 수신자에게 해당 암호문을 전송한다. 수신자는 송신자로부터 받은 암호문을 자신의 개인 열쇠를 이용해 복호화 한다.

그런데 이 비대칭 암호 구조에서도 공개 열쇠의 신뢰성 문제가 있었다. 수신 받은 공개 열쇠가 진짜 수신자의 공개 열쇠인지, 아니면 공격자가 보낸 공개 열쇠인지 보장받을 방법이 없다는 것이다. 그래서 이 문제를 해결한 방법이 바로 PKI(Public key infrastructure) 구조.

PKI 구조는 공인 인증 기관과 등록기관, 디렉토리 서비스 서버 등으로 이루어졌다. 다시말해 비대칭 암호 구조에서는 사용자마다 각각 공개 열쇠와 비밀 열쇠를 생성한 뒤 공개 열쇠를 공인 인증 기관에 등록한다. 공인 인증 기관에서는 각가의 사용자 공개 열쇠를 데이터베이스에 등록하고, 그에 따른 고유한 일련번호를 공개 열쇠에 부여해준다. 이것이 바로 공인 인증서.

이제 송신자가 수신자에게 공개 열쇠를 수신받으면, 해당 공개 열쇠의 일련번호를 공인 인증 기관에 의뢰한다. 해당 공개 열쇠의 일련번호가 공인 인증 기관에서 발행한 정상적인 일련번호라고 응답 받는다면 비로소 송신자는 수신받은 공개 열쇠가 수신자의 공개 열쇠라고 확신할 수 있다.

그러나 이러한 비대칭 암호 구조는 대칭 암호 구조와 비교할 때 상당한 처리 지연이 발생한다. 그렇기 때문에 현실에서는 하이브리드 암호 방식을 사용하는데, 이것은 대칭 암호 구조와 비대칭 암호 구조를 혼합해서 사용하는 방식이다.

무결성 보안 알고리즘

요약 함수

요약 함수란, 대칭 암호 구조와 비대칭 암호 구조 모두에서 무결성을 구현하기 위해 사용하는 알고리즘으로 가변적인 길이의 원본을 고정적인 길이의 요약본으로 처리하는 일종의 메시지 무결성 코드다. 무결성에서 요약 함수 처리 이전 상태를 원본이라고 부르며, 처리 이후 상태를 요약본이라고 부른다.

요약 함수의 종류에는 MD 방식과 SHA 방식 등이 있다. 이중에서 MD5 방식은 128비트의 길이의 요약본을 출력하고, SHA-256 방식은 256비트, SHA-512 방식은 512비트 길이의 요약본을 출력한다.

이러한 요약 함수에는 요약본을 다시 원본으로 복원할 수 없는 일방향성 특징도 있는데, 역상 저항성이라고 칭한다. 또한 각기 다른 2개의 원본에서는 각기 다른 요약본이 나오는 충돌 저항성이란 특징도 있다. 만일 각기 다른 2개의 원본에서 같은 요약본이 나올 경우에는 충돌이 발생했다고 말한다. 이러한 역상 저항성과 충돌 저항성 두 가지를 통해 데이터 정확성을 검증한다.

전자 서명

전자 서명도 요약 함수와 마찬가지로 무결성을 구현하기 위해 사용하는 알고리즘이지만, 오직 비대칭 암호 구조에서만 사용 가능하다. 예를 들어 송신자가 전자 우편을 작성한 뒤 자필 서명을 했다고 가정해보겠다. 서명을 하는 이유는 본문 작성자가 자신임을 상대방에게 알리기 위한 부가 정보이다. 전자 우편을 수신자에게 발송하기 전 송신자는 수신자의 공개 열쇠를 이용해 본문 내용을 암호화 한다. 이제 자필 서명 부분을 자신의 개인 열쇠로 암호화 할 때 이것을 전자 서명이라고 부른다.

수신자가 송신자로부터 전자 우편을 받으면, 본문 내용 부분을 자신의 개인 열쇠로 복호화해 본문의 내용을 읽는다. 이제 본문의 내용을 작성한 상대방이 자신이 원하는 상대방인지 확인하기 위해 상대방이 전송한 공개 열쇠를 이용해 자필 서명 부분을 복호환다. 복호화에 성공하면 송신자가 보낸 내용임을 확신할 수가 있다. 왜냐하면 공개 열쇠와 갱니 열쇠는 한쌍이기 때문에. 따라서 전자 서명은 무결성과 인증을 동시에 구현할 수 있다.