본문 바로가기
IT ▶/Security

[암호화 개념 및 정리] 대칭키(AES), 비대칭키 암호화, 해쉬함수 정리

by 오프로 2019. 8. 10.

 

 

* 암호화 종류

 

 

- 대칭키 암호화,  대칭키 암호화, 해쉬함수

 

 

 

 1. 대칭키 암호화

 

 

 - 같은 키로 암호화, 복호화를 처리하는 방식 (자물쇠 : Key(대칭키)를 잃어버리면 사용불가)

 

 - 양 쪽에서 같은 대칭키를 갖고 그 대칭키로 암복호화

 

 - 대표적인 알고리즘 : AES 암호화

 

 

 

 

 2. 비대칭키 암호화

 

 

 - 공개키 암호화 방식

 

 - 대표적인 사용 : 리눅스 SSH 접속

 

 - 순서 : 공개키 저장소에서 양 쪽에서 공개키를 공유

 

          ->공개키로 암호화, 개인키로 복호화

 

  - 서로 다른 열쇠로 열수 있는 자물쇠 형태로 닥고(공개키), 열고(개인키) 다르게 사용해야 가능하다.

 

  

  

 

 3. 해쉬함수 (MD5, SHA-512)

 

 

- 단방향 해시 함수로 원본 메시지 - 암호화 메시지 변환 (암호화 메시지로는 원본 메시지를 복원이 불가하여 단방향)

 

- 단방향성 (복호화 불가!!)

 

- 단점 : 암호화 된 상태값을 확보, 탈취하여 원본메시지를 찾아내거나 동일하게 이용할 수 있다.

 

          해쉬함수의 짧은 처리 속도를 이용하여 해킹하고자 하는 암호화 상태값이랑 빠르게 비교

 

 

- Sorting, Key Stretching 을 통하여 문자열을 추가하여 암호화하거나

 

너무 빠른 해쉬함수 처리를 방지하기 위해 반복하여 시간이 소요되게 한다.

 

 

 

 4. AES 알고리즘 (대칭키 암호화 방식)

 

  

- AES 128, 192, 256 같이 숫자의 차이는 키의 길이를 의미합니다.

 

  

* AES IV (Initizlization Vector) : 고유한 바이너리 시퀀스로 동일한 일반 텍스트가 동일한 키로 여러번 독립적으로

  

  

암호화되어도 별개의 암호 텍스트가 생성되도록 하기 위해 사용된다.

 

 

- CBC 모드에서는 IV는 암호화 시 예측할 수 없어야 한다.

 

  

  

* Padding (패딩) : 어떻게 평문의 마지막 블록이 암호화 되기 전에 데이터로 채워지는지 확실히 지정하는 방법

 

  (복호화 과정에서는 패딩 공간을 제거하고, 실제 평문 지정)

 

  

  

 * Common Modes

 

 

- 기본적으로 암호화를 하기 위해서 블록 단위로 암호화를 하기 때문에,

 

 

가변 길이의 데이터를 단위 블록으로 나누어 어떻게 그 블록들을 암호화할지 정한다.

 

  

  

1> ECB 방식 (Electronic CodeBook)

 

  

- 평문을 여러 블록으로 나누어 각각 암호화

 

- 단점 : 같은 암호화 키를 사용하여 취약

 

(암호화한 값이 비슷한 경우, 평문도 비슷하여 유추 가능)

   

 

-> 이미지 파일 함호화 경우 같은 색 부분의 경우 같은 블록 암호화가 되어 암호화된 이미지도 비슷하게 출력되어 인식이 가능한다.

 

  

  

2> CBC 방식 (Cipher Block Chaning)

 

  

- 암호화 되기 전에, 이전 블록의 암호화 결과 XOR 연산처리 (최초 블록의 경우 IV 값과 XOR)

 

  

- 암호화마다 IV를 다르게 사용 중요!

 

 

 

 

728x90
300x250