Skip to content

Latest commit

 

History

History
190 lines (148 loc) · 10.2 KB

2. 암호화.md

File metadata and controls

190 lines (148 loc) · 10.2 KB

암호화

이 문서는 2022년 12월 17일에 @sumin-dev에 의해서 작성되었습니다.

1. 암호화가 뭐야?
    1.1. 암호화의 개념
    1.2. 암호화로 달성할 수 있는 보안의 목표
    1.3. 암호화의 유형
2. 어떤 암호를 사용할까?
    2.1. 단방향 암호화
        2.1.1. SHA-1(Secure Hash Algorithm-1)
        2.1.2. SHA-2(Secure Hash Algorithm-2)
        2.1.3. SHA-3(Secure Hash Algorithm-3)
        2.1.4. 단방향 암호화의 문제점
        2.1.5. 단방향 암호화의 문제점 해결 방법
    2.2. 양방향 암호화
        2.2.1. 대칭키(비공개키) 방식
        2.2.2. 대칭키 방식의 장, 단점
        2.2.3. 비대칭키(공개키) 방식
        2.2.4. 비대칭키 방식의 장, 단점

1. 암호화가 뭐야?

1.1. 암호화의 개념

  • 중요한 정보읽기 어려운 값으로 변환하여 제3자가 볼 수 없도록 하는 기술

image image

  • 커크호프의 원리(Kerckhoffs's principle)
    • 키를 제외한 암호의 모든 정보가 알려지더라도 암호체계는 안전해야 한다
    • 암호시스템의 안전성은 암호 알고리즘의 비밀을 지키는 것이 아닌라 키의 비밀을 지키는 데 의존해야 한다
    • 자물쇠의 원리

1.2. 암호화로 달성할 수 있는 보안의 목표

image

  • 기밀성(Confidentiality)
    • 인가 되지 않은 자는 정보를 확인하지 못하도록 하며, 정보가 유출되더라도 평문으로 해독할 수 없고, 변조 또는 위조하지 못하도록 기밀을 유지
  • 무결성(Integrity)
    • 인가 되지 않은 자로부터 위조 또는 변조가 발생하지 않았는지 확인
  • 인증(Authentication)
    • 사용자의 자격이나 메세지의 내용을 검증
  • 부인방지(Non-repudiation)
    • 송신자가 보낸 사실을 부인하거나, 수신자가 받은 사실을 부인할 경우를 증명

1.3. 암호화의 유형

image

2. 어떤 암호를 사용할까?

2.1. 단방향 암호화

비밀번호를 잊었을 때, 비밀번호 찾기를 하면 왜 원래 비밀번호를 알려주지 않을까?
암호화된 데이터에 대한 복호화가 불가능한 방식!

image

  • 해시함수(Hash Function)
    • 임의의 길이를 갖는 메세지를 입력받아 고정된 길이의 해시값을 출력하는 함수
    • 암호 알고리즘에는 키가 사용되지만, 해시함수는 키를 사용하지 않아 같은 입력에 대해서는 항상 같은 출력
    • 눈사태 효과: 입력 값의 아주 일부만 변경되어도 전혀 다른 결과 값을 출력
    • 출력된 결과 값을 토대로 입력 값을 유추할 수 없다
    • MD 알고리즘 및 SHA 알고리즘 image

2.1.1. SHA-1(Secure Hash Algorithm-1)

1995년 미국 국가안보국이 설계한 암호학적 해시 함수들의 모음
SHA-1 알고리즘 내부 구조

image

  • 입력 메세지는 512bit 패딩을 적용하는 방식
    • 패딩: 100개의 공간에 문자 1개가 들어오면 나머지 99개의 공간을 숫자 0 등으로 메우는 작업
  • 문제점: 충돌쌍 문제(두 데이터에 대한 해시를 계산하였더니 같은 결과값이 도출되는 것)

2.1.2. SHA-2(Secure Hash Algorithm-2)

2001년 미국국가안전보장국(NSA)이 설계한 암호화 해시 함수들의 집합
SHA-2 알고리즘 내부 구조

image

  • SHA-1을 대체하는 해시암호로 6개로 해시 함수로 구성
    • SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA -512/256
  • SHA-1과 동일한 알고리즘을 사용하지만 해시 값 크기를 확장하여 보안성 강화
  • SHA-256
    • 인증서, 블록체인 등에서 가장 많이 채택하여 사용되는 암호 방식
    • 256 비트의 축약된 메세지
    • SHA-512보다 훨씬 빠르게 64개의 해시 생성
  • SHA-512
    • 512비트 해시 값을 생성
    • 용량을 많이 차지

2.1.3. SHA-3(Secure Hash Algorithm-3)

2015년 미국 국립표준기술연구소(NIST)에서 공개적인 방식을 통해 후보를 모집한 다음 함수 안전성을 분석하여 몇 차례에 걸쳐 후보를 걸러내어 선정한 암호화 해시함수
SHA-3 알고리즘 내부 구조

image

  • SHA-1과 SHA-2의 동일한 수학적 오류를 해결하여 등장한 해시함수
  • SHA-2가 출력할 수 있는 메세지 해시 값의 크기를 모두 출력
  • 높은 수준의 병렬 구조를 가지고 메모리 접근해서 효율성이 좋음
  • 문제점:

2.1.4. 단방향 암호화의 문제점

  • 충돌 문제 image
  • 사전 공격 문제 image

2.1.5. 단방향 암호화의 문제점 해결 방법

  • salt 기법 image

  • key stretching 기법 image

2.2. 양방향 암호화

암호화된 데이터에 대한 복호화가 가능한 방식!

image

2.2.1. 대칭키(비공개키) 방식

  • 암복호화에 서로 동일한 키가 사용하며 해당 키를 아는 사람만이 문서를 복호화해 볼 수 있다
  • 블록 암호 방식
    • 평문을 일정한 크기의 블록으로 잘라낸 후 블록 길이 단위로 암호화(8비트, 16비트)
    • 블록 길이를 맞추기 위해 패딩 추가
    • Round를 사용하고 반복적으로 암호화 과정을 수행하여 암호화 강도를 높임
    • 사용하는 대칭키에 따라 실행하는 라운드 수가 다르다(128bit-10R, 192bit-12R, 256bit-14R)
    • Feistel 암호(DES(Data Encryption Standard)), SPN 암호(AES(Advanced Encryption Standard)) image
  • 스트림 암호 방식
    • 평문을 문자마다 바로바로 암호화하는 방식(보통 1bit 단위)
    • XOR을 사용하여 암호화
    • 블록 암호보다 빠르지만 안전하지 않다
    • 무선 환경에서 주로 사용
    • RC4, PPTP, WEP, TKIP 등 image

2.2.2. 대칭키 방식의 장, 단점

  • 장점

    • 비대칭키 방식에 비해 속도가 빠르다
    • 대용량 데이터 암호화 가능
  • 단점

    • 키를 교환해야 하는 문제(키 배송 문제)가 발생
    • 키가 탈취될 수 있는 문제, 사람이 증가할수록 관리해야할 키가 방대해지는 문제
    • 기밀성 외 기능 제공이 어렵다

2.2.3. 비대칭키(공개키) 방식

  • 암복호화에 서로 다른 키가 사용되며 하나의 키는 공개키로 사용되어 모든 사람이 접근 가능
  • RSA, ElGamal, ECC
  • 공개키 암호 방식
    • 데이터 보안 관점: 데이터를 안전하게 전송할 수 있는 보안 관점
    • 공개키로 암호화한 정보는 그 쌍이 되는 개인키로만 복호화 가능
    • 비밀키가 있어야 데이터를 읽을 수 있음 image
  • 전자 서명 방식
    • 인증 관점: 신뢰할 수 있는 사용자라는 것을 인증하는 관점
    • 개인키로 암호화한 정보는 그 쌍이 되는 공개키로만 복호화 가능 image

2.2.4. 비대칭키 방식의 장, 단점

  • 장점

    • 키 배송의 문제를 근본적으로 차단하여 안전성이 높다
    • 기밀성, 무결성, 인증, 부인 방지 기능 모두 만족 가능
  • 단점

    • 대칭키 방식에 비해서 느리기 때문에 적은 데이터 암호화에 적합

Reference