암호화

오미희·2022년 2월 11일
0

암호화

데이터가 손실 변조 및 유출되는 것을 막기위해 평문을 암호문으로 바꾸는 과정.

[ 평문 ]
보호해햐할 메세지, 원본 자체

[ 암호화 :encryption ]
평문을 암호문으로 변환하는 것.

[ 복호화 :decryption ]
암호문을 평문으로 변환하는 것.

암호화 주요목표

1) 기밀성

허가받은 사용자가 해당 정보에 접근할 수 있어야 한다.

2) 무결성

허가받은 사용자가 아니면 해당 정보가 변경되지 않도록 해야 한다.


양방향암호화 - 비대칭키(공개키) 암호화

a가 키페어 생성 (public key, privatekey )
a가 내용 작성 후 privatekey를 이용해 뒤에 암오화된 메세지를 덧붙임
b가 그 내용을 공개된 퍼블릭 키로 a의 암호문을 해독하여 평문 획득
// 크래커가 자신이 생성한 퍼블릭키와 프라이빗키 키페어를 생성해서 자신의 프라이빗 키로 문서를 암호화해서 올려서 
// b사용자가 해당 내용을 받았다해도 b가 가지고 있는 퍼블릭키와 크래커가 프라이빗 키로 만든 문서가 일치되지 않으므로 
// 정상적인 상태가 아님을 확인할 수 있다.
  • 암호해독이 어렵고 전자서명에 유용하게 사용된다.
  • 암호해독에 시간이 오래 걸린다.

✅ 공개키암호방식 종류

☑︎ 공개키암호

특정한 비밀키를 가지고 있는 사용자만 해당 내용을 볼 수 있다.
공개키로 암호화하고 비밀키로 복호화

☑︎ 공개키서명

특정한 비밀키로 암호화함으로써 공개키를 통해 해당 내용 확인가능 / 특정한 비밀키를 가진 사용자가 해당 내용을 보냈음을 인증.
비밀키로 암호화하고 공개키로 복호화

✔️ 공개키 알호 알고리즘 종류

공개키 암호 알고리즘으로는 RSA, 엘가멜(ELGamal), ECC 등이 있다. 또한, 비대칭키 방식은 인수분해, 이산대수, 타원곡선 암호화(ECDAS), 디피-헬만(Diffie-Hellman) 등이 있다.

  • RSA 오늘날 가장 많이 사용되는 공개키 암호 알고리즘
  • 디피-헬만의 경우 중간자 공격에 취약
  • 타원곡선 암호화의 경우 RSA/DSA와 같은 공개키 암호보다 짧은 키 길이와 빠른 연산속도를 가지면서 동일한 수준의 보안 강도를 제공.

일반적인 활용

메시지를 임의로 만들어진 비밀 키를 이용해 암호화한 다음 이 비밀 키를 다시 수신자의 공개 키로 암호화하여 메시지와 함께 전송하는 것이다. 이렇게 하면 공개 키 암호 기술로는 짧은 비밀 키만을 암호화하고 보다 효율적인 비밀 키 암호 기술로 전체 메시지를 암호화하므로 양쪽의 장점을 취할 수 있다.
// 보내는 사람은 내용을 암호화하는데 사용한 비밀키를 받는 사람의 공개키로 암호화해서 보냄 그러면 받는 사람은 자신의 비밀키로 암호화되어 있는 키를 풀고, 풀린 비밀키(=보낸사람의비밀키)와 일치하는 공개키로 전체 내용을 복호화

✅ RSA (인수분해 방식)

  • 공개키 암호시스템의 하나로, 암호화뿐만 아니라 전자서명이 가능한 최초의 알고리즘.
  • 큰 숫자를 소인수분해하기 어렵다는 점을 활용한 암호알고리즘
  • a가 공개키로 정보를 암호화하고 b에게 전달하면 b는 자신이 가진 비밀키로 문서를 복호화함.
    즉 공개키로 암호화 비밀키로 복호화
  • 실제로는 A의 개인키로 암호화 -> B의 공개키로 암호화 한 메시지를 전달하고 복호화 과정은 B의 개인키로 복호화 -> A의 공개키로 복호화로 구성된 방식이 일반적이다.
  • 공개키를 통해 개인키 추측이 불가능하다.

RSA-OAEP

  • RSA 기반의 알고리즘


    일방향 암호화

    해시함수를 이용하여 암호화된 값을 생성하는 것이며 복호화가 사실상 불가능하다.
    대표적인 해시함수로는 SHA-2(224/256/384/512), SHA-3, RIPEMD-160, 월풀(Whirlpool) 등이 있다


    ✔️ 암호화에서 키는 평문을 암호화하거나 암호문을 복호화하는데 사용되는 중요한 기능을 담당하므로 철저하게 관리되어야 한다. 키 관리 시스템(KMS: Key Management System)은 기업이 데이터를 안전하게 보관하고 사용할 수 있도록, 암호화 키의 생성, 폐기, 관리 및 통합 기능을 제공하며, 별도의 시스템에 키를 보관한다.

profile
안녕하세요

0개의 댓글