[컴퓨터보안] 암호의 개념과 대칭키 암호, 공개키 암호

2021. 4. 21. 00:39 기타 정보/소프트웨어 공학

[컴퓨터보안] 암호의 개념과 대칭키 암호, 공개키 암호

1. 암호의 정의 및 용어

📝 암호의 정의

두 사람이 안전하지 않은 채널(인터넷 등)을 통하여 정보를 주고받더라도 제 3자는 이 정보의 내용을 알 수 없도록 하는 것

 

📝 관련 중요 개념 및 용어

* 평문(plaintext): 원본 메시지
* 암호문(ciphertext): 코드화(암호화)된 메시지
* 암호화(encryption): 평문을 암호문으로 변환
* 복호화(decryption): 암호문을 평문으로 변환
* 키(key): 암호화, 복호화 시 사용하는 가장 중요한 열쇠

 

📝 일반적인 암호의 요건

암호 알고리즘 + 키(key)
제 3자가 암호 알고리즘을 알더라도 키(key)를 모르면 암호를 풀 수 없음

 

2. 고대 암호화 방법

  • 전치법(Permutation Cipher)
  • 치환법(Substitution Cipher)
    • 기본 치환법
    • 시저 암호
    • 시프트 암호
    • 비즈네르 암호

 

1) 전치법(Permutation Cipher, Transposition Cipher)

평문에 있는 문자들의 순서를 바꿈으로써 암호화하는 기법

 

 

2) 치환법(Substitution Cipher)

평문의 문자들을 치환 규칙에 따라 다른 문자로 치환함으로써 암호화하는 기법

 

치환규칙표

 

3) 치환법의 확장 - 시저(Caesar) 암호

각 문자를 알파벳 순서로 세 번째 뒤 문자로 치환

세 번째 뒤 = 고정값이므로 복호화가 쉬움

 

시저 암호

 

4) 치환법의 확장 - 시프트 암호

각 문자를 알파벳 순서로 k번째 뒤 문자로 치환 (0≤k≤25)

 

시프트 암호

 

5) 치환법의 확장 - 비즈네르 암호(Vigenere Cipher)

시프트 암호를 개선한 새로운 치환법

여러 개의 정수값을 키로 사용

예: k = 3, 8, 0

 

 

3. 근대 암호- 섀넌(Shannan)의 증명과 암호체계 설계의 두 가지 기본 원칙

Shannan은 일회성 암호체계(OTP, one-time pad)가 안전함을 수학적으로 증명

암호체계 설계의 두 가지 기본 원칙 제시

  • 혼돈(confusion): 평문과 암호문 사이의 상관관계를 숨겨야 한다.
  • 확산(diffusion): 평문의 통계적 성격을 암호문 전반에 확산시켜 숨겨야 한다.

확산이라는 개념의 이해를 돕기 위해 예를 들면, 영어 문장에서 관사 'the'는 매우 높은 빈도로 등장할 수 있는데 암호문에서는 그 통계적 성격을 숨길 수 있어야 한다는 의미이다.

 

3. 현대 암호 알고리즘

암호의 역사적인 측면에서 1970년대에 두 가지 큰 변화가 발생했다.

바로 표준 암호 알고리즘의 공표와 공개키 암호 알고리즘의 등장이다.

 

1) 표준 암호 알고리즘의 공표

DES(Data Encryption Standard)

1977년 미국 기관 NBS에 의해 공표된 표준 암호 알고리즘

대표적인 대칭키 암호 알고리즘

 

AES(Advanced Encryption Standard)

2001년에 새롭게 공표된 고급 표준 암호 알고리즘

역시 대표적인 대칭키 암호 알고리즘

 

2) 공개키 암호 알고리즘의 등장

📝 대칭키와 공개키

대칭키 : 암호화, 복호화 시 동일한 키를 사용
공개키 : 암호화, 복호화 시 서로 다른 키를 사용

 

RSA 공개키 암호 알고리즘

1978년 Rivest, Shamir, Adleman에 의해 개발되어 RSA라는 명칭이 붙었다.

소인수분해 문제 기반의 대표적인 공캐기 암호 알고리즘이다.

 

4. 대칭키 암호의 개념

암호화와 복호화에 하나의 같은 키를 사용하는 암호 방식

 

  • 장점: 공개키에 비해 암호화, 복호화 속도 빠름
  • 단점: 키 분배 문제 존재
  • 대표 알고리즘: DES, AES, IDEA 등

 

1) 대칭키 암호 - 블록 암호

평문을 고정된 크기의 블록으로 나누어 각 블록마다 암호화 과정을 수행하여 블록 단위로 암호문을 얻는 대칭키 암호 방식

 

블록 암호

 

2) 대칭키 암호 - 스트림 암호

평문과 같은 길이의 키 스트림을 생성하고 평문과 키를 비트 단위로 XOR 연산하여 암호문을 얻는 대칭키 암호 방식

 

스트림 암호

 

5. 공개키 암호의 개념

암호화와 복호화에 두 개의 서로 다른 키를 사용하는 암호 방식

 

  • 공개키(Public Key): 누구나 공개키를 사용해 암호화 가능
  • 개인키(Private Key): 오직 자신만 개인키를 이용해 복호화 가능
  • 장점: 키 관리가 쉽고 키 분배 문제가 해결됨
  • 단점: 암호화, 복호화 속도 느림
  • 대표 알고리즘: RSA, ECC(타원곡선 암호 알고리즘), ElGamal 등

 

공개키 암호는 대칭키 암호에 비해 암호화, 복호화 속도가 느려서 대용량 데이터 암호화가 어렵다.

따라서 실제로는 대칭키와 공개키를 섞어서 활용한다.

 

References

한국방송통신대학교 컴퓨터과학과 컴퓨터보안 강의(김진욱 교수)

 

 

출처 : atoz-develop.tistory.com/entry/%EC%BB%B4%ED%93%A8%ED%84%B0%EB%B3%B4%EC%95%88-%EC%95%94%ED%98%B8%EC%9D%98-%EA%B0%9C%EB%85%90%EA%B3%BC-%EB%8C%80%EC%B9%AD%ED%82%A4-%EC%95%94%ED%98%B8-%EA%B3%B5%EA%B0%9C%ED%82%A4-%EC%95%94%ED%98%B8?category=814648