[CS] 암호화 기초

Song·2021년 9월 27일
0

Computer Science  

목록 보기
3/8

암호의 기본 개념

암호란 약속된 당사자 또는 집단에서만 내용을 알 수 있도록 하는 일종의 문서

목적

  • 위협에 대한 방어이며 안전한 설계 및 지정된 사용자외에는 접근이 어렵도록 통제된 권한 체계에 따라 구현되어야한다.

주요 특징

구분용도
기밀성정보의 부적절한 유출을 방지
무결성정보의 임의적 또는 불법적인 변경을 예방 및 방지
가용성지정된 사용자가 정보에 접근할 수 있도록 감시

기타 특징

구분용도
인증정당된 사용자 확인 및 데이터 베이스의 부적절한 누출을 방지
접근 통제인증되지 않은 사용자에 의한 부적절한 접근을 방지

암호의 기본 역사

구분기간용도예시
수동 암호 시대~ 1920단순 문자시저 암호
기계 암호시대1920 - 1950복잡한 기계 이용Enigma
현대 암호시대1950 ~컴퓨터에 의한 암,복호화 수행RSA, ECC, SEED

암호 알고리즘


출처: 서울디지털대학교-블록체인프로그래밍

대칭키

  • 암호화 & 복호화 키가 동일
  • 데이터를 변환하는 방식에 따라 스트림 암호블록 암호로 나뉘어짐
구분스트림 암호블록 암호
방식스트림의 길이만큼 이진수 형태로 변경 - 한 비트씩 암호화 진행
일회성 암호 형태
블록 단위로 암호화
장점쉬운 구현오류 확산 위험x
이동 통신 환경에서 구현이 용이
단점오류 확산 위험 有시간이 오래 걸림
  • 비교적 속도가 빠르며 시크릿키가 작기 때문에 긴 메세지를 암/복호화 하는데 사용
  • 기밀성용으로 사용
  • But, 각 사용자마다 송신자는 동일한 비밀키를 가져야함으로 사용자의 수만큼 관리해야하는 키의 수가 증가하며 복잡성이 올라감

공개키 (비대칭키)

  • 암호화와 복호화에서 사용되는 키가 다르다.
  • 암호화는 public key을 이용하여 모든 사용자에게 공유가 되며,
  • 복호화는 각 사용자마다 가지고 있는 private key를 이용한다.
  • 불특정 다수를 대상으로하는 인터넷에 용이
  • 기존 대칭키와 달리 비밀통신 뿐만아니라 사용자 인증 메세지 등 전자 인증이 가능해짐
  • But, 으로 구조가 복잡하고 속도가 느림 - 해결책으로 하이브리드 암호 방식이 있음

해시함수

  • 임의의 길이를 갖는 메세지를 입력받아 고정된 길이의 출력 값으로 암축시키는 함수
  • 키를 사용하지 않으므로 동일한 입력에 대해서는 같은 값이 출력된다.
  • 메시지의 오류나 변조를 탐지할 수 있는 무결성을 제공하는 목적
  • 메시지가 1비트만 달라도 다른 해시값이 출력된다.

Key 관리


출처: 서울디지털대학교-블록체인프로그래밍

  • 마스터 키
    반복적으로 사용되는 키
  • 세션 키
    통신할 때마다 한번만 사용되는 키

CEK (콘텐츠용 키): 정보를 암호화하는 키
KEK (키용 키): 키를 암호화하는 키

profile
Learn From Yesterday, Live Today, Hope for Tomorrow

0개의 댓글