Computer Science/Back-end

RSA & AES & SHA

GKS 2022. 9. 23. 19:00
반응형
SMALL

RSA & AES & SHA

 

출처 : KISA

RSA (Ron Rivest, Adi Shamir, Leonard Adleman)

  • 공개 키이며, 비대칭키 - 공개키 암호 시스템의 하나로, 암호화뿐만 아니라 전자서명이 가능한 최초의 알고리즘
  • RSA의 전자서명 기능은 인증으로 요구하는 전자상거래 등에 RSA의 광범위한 활용을 가능하게 한다.
  • SSL 프로토콜을 가진 웹브라우저, PGP, 공개키 암호화 시스템을 사용하는 정부 시스템에서 사용한다.
  • 모두에게 공개하는 공개키(public key), 공개해서는 안 되는 개인키(private key)가 존재

RSA 암호화 방식

  1. A가 B에게 정보를 안전하게 보내고 싶어 한다. 이때 RSA 알고리즘을 이용하고자 한다.
  2. B가 공개키와 개인키를 만들어 A에게 공개키를 보낸다. (개인키는 B만 가지고 있다.)
  3. A가 B로 받은 공개키를 이용하여 보낼 정보를 암호화한다.
  4. A에 암호화된 정보를 B에게 보낸다.
  5. B가 암호화된 정보를 받고 개인키를 이용하여 암호를 해독한다.

 

AES(Advanced Encryption Standard)

  • 비밀키이며, 대칭키 - 암호화와 복호화 과정에서 동일한 키를 사용하는 대칭 알고리즘
  • 대칭키라는 임의의 키를 만들어서, 암호화하고자 하는 문자열대칭키라는 키로 암호화하는 방식이다.
  • AES의 종류는 AES-128, AES-192, AES-256 등 여러 종류가 있는데 뒤의 숫자가 bit 길이이다.

AES 용어

  • Cipher Key : Round Key들을 생성하기 위해 Key Expansion Routine에 의해 사용되는 암호이다.
  • Key Expansion : Cipher Key로부터 Round Key들을 생성하기 위해 사용되는 Routine이다.
  • Word : 4 bytes의 배열이나 또는 한 entity로서 다뤄지는 32 bits의 한 그룹이다.
  • S-Box : Byte 값의 대체를 수행하기 위해 Key Expansion Routine과 여러 SubBytes 변환에서 사용되는 비선형 대칭 표이다.
  • State : 암호화 중간 단계의 결과물로서 (4, Nb)의 이차원 행렬로 표현된다. (Nb는 128, 192, 256에서 4로 고정)

 

SHA (Secure Hash Algorithm)

  • 미국 NSA가 제작하고 미국 국립표준기술연구소(NIST)에서 표준으로 제작한 해시 암호 알고리즘이다.
  • 사용자가 암호화를 수행하고 암호화된 데이터를 서버에 전송하며, 서버는 복호화를 수행하지 못하는 데이터이다.
  • 오직 본인만 암호화 데이터를 알고 있으며, 데이터를 저장할 때는 암호화된 데이터만 저장한다.
  • MD5보다 느리지만 강화된 보안을 제공한다.

해시 함수

SHA-256은 해쉬 함수로 임의의 정보를 고정된 길이의 암호문(Message Digest로 불리기도 함)으로 반환한다. 회원 가입할 때, 비밀번호 처리를 위해 임의의 SALT 값을 만들어야 한다. 로그인할 땐, 원래의 비밀번호와 SALT 값으로 해쉬 값을 만들고 DB에 저장하면 관리자도 비밀번호를 알 수 없는 상태가 된다. 즉, 복호화가 불가능한 알고리즘이다. 또한 로그인할 때 저장된 SALT와 입력된 비밀번호로 동일한 해쉬 값을 만들 수 있다. 따라서 DB에 저장된 해쉬 값과 비교해서 일치하면 로그인되는 구조가 된다.

 

참고사이트
  1. https://www.crocus.co.kr/1230
  2. https://naleejang.tistory.com/218
  3. https://m.blog.naver.com/biud436/222230379631
반응형
LIST