ProudNet Docs
WebsiteProud ConsoleLanguage
  • 🌐ProudNet 프라우드넷
    • ProudNet 소개
    • 다운로드 및 설치
      • ProudNet 라이센스 인증 방법
      • AMI
    • 프로젝트 설정
      • C++
      • C#
      • Mac Xcode
      • Linux
      • Unity3D
        • iOS 빌드
      • Unreal Engine 4
      • PIDL 컴파일러 실행
    • ProudNet 사용하기
      • 서버와 클라이언트
        • 서버 활용법
        • 클라이언트 활용법
      • RMI
        • RMI 활용법
      • PIDL
        • PIDL 활용법
      • 이벤트 핸들링
      • 통신 메시지
      • P2P 통신
        • P2P 통신 활용법
    • ProudNet 활용하기
      • 활용 방법
      • 성능을 위한 팁
    • ProudNet에서 DB 사용하기
      • DB Cache System ver.2
        • DB Cache 이론 및 이해
        • DB Cache 설치 및 네트워크 설정
        • DB Cache 서버와 클라이언트
        • DB Cache 사용 및 활용
          • DB Cache 활용법
      • ADO API
      • ODBC API
    • ProudNet 유틸리티
  • ProudNet 참고자료
    • 기술노트
      • 메인 루프의 이해
      • 서버 방화벽 설정
      • 암호화 및 복호화
      • 에러발생 시 대처사항
      • 에러 메시지 목록
      • 캐릭터 위치 동기화
      • 클라이언트-서버 통신
      • MiniDump (오류덤프시스템)
      • [1.6 버전] 서버 간 LAN 통신기
    • 용어집
    • Sample 예제
  • 🌐프라우드 서비스
    • 콘솔 이용 안내
    • ProudChat
      • SDK 다운로드
        • C++
        • C#
        • Unity3D
        • Unreal Engine 4
      • 서비스 기능
Powered by GitBook
On this page

Was this helpful?

  1. ProudNet 참고자료
  2. 기술노트

암호화 및 복호화

Previous서버 방화벽 설정Next에러발생 시 대처사항

Last updated 1 year ago

Was this helpful?

어떤 메시지가 다른 컴퓨터로 전달될 때 제 3자가 내용을 해독하거나 변조하는 등 해킹을 당하기 쉽습니다.

그래서 메시지를 암호화하려면 암호화,해독(복호화)를 하는 알고리즘이 각각 있어야 합니다. 하지만 이 알고리즘만으로는 해결되지 않기에 뻔한 알고리즘이 눈 앞에 있어도 암호화된 메시지를 풀지 못하게 하는 수단, 즉 열쇠(키)가 있어야 합니다. 암호화 알고리즘은 키 기반 암호화가 통용되고 있으며 암호 키의 길이는 1비트에서 수 백 비트까지 다양합니다.

해커가 암호화된 메시지를 얻어내어 알고리즘까지 얻어냈다 하더라도 그 메시지를 해독할 키가 있어야 합니다. 만약 암호 키의 길이가 128비트라고 한다면, 2^128 개의 암호 키 중 하나가 맞을 것입니다. 암호 키 하나에 1/1,000,000,000,000초가 걸리는 몇 백억짜리 슈퍼 컴퓨터로 작업해도 10,790,283,070,806,014,188년이나 걸립니다.

비대칭 키와 대칭 키

암호 키는 크게 비대칭 키와 대칭 키로 구별됩니다. 비대칭 키는 한 쌍의 열쇠로, 한 열쇠로 암호화하면 나머지 한 개의 열쇠가 없이 해독할 수 없습니다. 대칭 키는 암호화할 때 쓴 키와 해독할 수 있는 키가 서로 같아야 합니다. 이러한 성질을 활용해서, 컴퓨터 네트워크에서는 암호화된 메시지를 전송하기 위해 대칭 키와 비대칭 키를 혼용하기도 합니다.

예를 들어,

호스트 A가 호스트 B에게 안전하게 암호화 된 메시지를 전달하고자 합니다. A는 비대칭 키 한 쌍을 만들어 하나는 본인이 가지고, 나머지 한 개를 B에게 전송합니다. A 본인이 가진 키를 개인 키(Private Key), B에게 전송한 키를 공개 키(Public Key)라고 부릅니다.

B는 가지고 있는 대칭 키로 A에게서 받은 공개 키를 암호화하여 A에게 보내줍니다. A는 받은 대칭 키를 개인 키로 복호화하고 B가 만든 대칭 키를 공유합니다. 이 과정에서 해커가 공개 키와 암호화 된 대칭 키를 얻었다 하더라도 개인 키가 없어서 대칭 키 내용을 알 수 없습니다.

이제 A는 메시지 내용을 B로부터 받은 대칭 키로 암호화 후 B에게 다시 전송합니다. B는 암호화 된 메시지를 대칭 키로 복호화하여 내용을 확인할 수 있습니다. 이 과정에서도 해커가 대칭 키가 없기 때문에 메시지 해독이 불가 합니다.

만약 해커가 메시지 내용을 훼손하여 B에게 보낸다면 B는 이를 복호화 할 수 없습니다.