본문 바로가기
데이터 통신

[데이터 통신과 네트워킹] 대칭 키 & 비대칭 키 암호

by IT 정복가 2022. 12. 26.
728x90

보안의 세 가지 목표인 기밀성, 무결성, 가용성은 보안 공격으로부터 위협을 당할 수 있음

기밀성

  • 기밀성은 암호를 사용하여 달성 가능
  • 암호는 2개의 광범위한 종류인 대칭-키 비대칭-키로 나눌 수 있음
  • 대칭키 암호화 방식암/복호화에 사용하는 키가 동일한 암호화 방식을 말하며 그와 달리, 공개키(비대칭키) 암호화 방식 암복호화에 사용하는 키가 서로 다르며 따라서 공개키 암호화 에서는 송수신자 모두 한쌍의 키(개인키, 공개키)를 갖게 됨

대칭-키 암호

암호화와 복호화 양쪽에 같은 키를 사용하고, 키는 양방향 통신에 사용되기 때문에 대칭이라고 부름

대칭 키 암호의 일반적인 개념

암호화와 복호화 알고리즘은 서로 역(inverse) 관계

암호화와 복호화는 공개하되 공유 키는 비밀로 유지

  • 비밀 키를 교환할 또 다른 보안 채널이 필요
  • 키를 제공하는 신뢰할 수 있는 제3기관

고전적인 대칭-키 암호

문자 중심의 암호

치환 암호전치 암호로 구분

 

치환 암호

단일 문자 치환다중 문자 치환으로 분류

단일 문자 암호
- 평문의 문자는 문장에서의 위치에 상관없이 암호문에서 같은 문자로 변환
- 덧셈 암호

다중 문자 암호
- 각 문자들은 다른 치환을 가질 수 있음
- 평문의 문자와 암호문 문자간의 관계는 일대다
- 대응하는 평문 문자와 메시지에서 평문 문자의 위치 모두에 의존하는 각각의 암호문 문자를 만들어야 함
- 자동키 암호: 간단한 다중문자 암호

 

전치 암호

문자의 치환은 없지만 대신에 문자의 위치가 변한다.

전치 암호

스트림 암호 및 블록 암호

스트림 암호(stream cipher)
- 데이터 흐름(스트림)을 순차적으로 처리해가는 암호 알고리즘
- 암호화 방식은 평문과 키 스트림을 XOR하여 생성
- 평문을 이진수로 변경하여 키값과 XOR해서 1비트씩 암호화 진행

블록 암호(block cipher)
- 크기가 m (m > 1)인 평문 기호의 그룹을 한 번에 처리하는 암호 알고리즘
- 평문을 일정한 크기(8비트 or 16비트등)의 블록으로 잘라낸 후 암호화 알고리즘을 적용
- 암호화하려는 정보가 블록 길이보다 길 경우에는 특정한 운용 모드가 사용됨

조합
- 실제로 평문의 블록은 개별적으로 암호화되지만, 블록 단위로 전체 메시지를 암호화하기 위해 키스트림을 사용

현대의 대칭-키 암호

공격 방지 암호를 제공하기 위해 현대의 블록 암호는 이동 요소(shift), 교환 요소(swap), 분할 요소(split), 조합 요소 뿐만 아니라 전치 장치(transposition, P-box)치환 장치(substitution, S-box)XOR 연산(exclusive-OR)의 조합으로 만들어짐


비대칭-키 암호

  • 대칭-키와 비대칭-키 암호는 공존하며 지속적으로 사용될 것임
  • 사실상 이들은 서로 보완적
  • 두 시스템 사이의 개념적 차이는 두 시스템이 비밀을 유지하는 방법에 따라 결정
  • 대칭-키 암호에서 비밀은 두 사람 사이에 공유되어야 하지만, 비대칭-키 암호에서 비밀은(공유되지 않고) 개인적이며, 각 사람은 자신의 비밀을 생성하고 간직
  • n명의 사람사이의 통신에서 대칭-키 암호를 위해 n(n-1)/2개의 공유된 키가 필요하지만 비대칭-키 암호에는 단지 n개의 개인 비밀이 필요
  • 백만 명의 사람과 통신을 위해 대칭-키 암호는 5억 개의 공유된 비밀이 요구되지만, 비대칭-키 암호는 백만 개의 비밀을 요구

  • 비대칭-키 암호에서는 인증과 전자 서명을 포함
  • 어떤 응용이 개인 비밀에 기반을 둘 때마다 비대칭-키 암호를 사용
  • 대칭-키 암호는 (문자 또는 비트의) 치환과 전치를 기반으로 하는 반면, 비대칭-키 암호는 숫자에 수학적인 함수를 적용하는 것을 기반으로 함
  • 대칭-키 암호에서 평문과 암호문은 기호의 조합으로 생각할 수 있으며, 암호화와 복호화는 기호를 전치하거나 하나의 기호를 다른 하나로 치환
  • 비대칭-키 암호에서 평문과 암호문은 숫자들이고, 암호화와 복호화는 숫자에 적용하여 다른 숫자를 만드는 수학적인 함수

비대칭-키 암호화는 하나의 개인 키와 하나의 공개 키를 사용

암호화와 복호화를 열쇠로 자물쇠를 잠금 및 해제하는 것으로 생각하는 경우, 공개 키로 잠긴 자물쇠는 대응하는 개인 키를 사용하여 잠금을 해제 가능

비대칭-키 암호 시스템에서 잠금과 잠금 해제

(비대칭-키 암호는 일반적으로 대칭-키 암호를 위한 암호 키와 같은 적은 양의 정보를 암호화하거나 복호화하는 데 사용)


대칭-키 암호 & 비대칭-키 암호의 필요성

  • 비대칭-키(공개 키) 암호의 출현으로 대칭-키(비밀 키) 암호의 필요성이 사라지지는 않을 것인데,
  • 그 이유는 암호화와 복호화에 수학 함수를 사용하는 비대칭-키 암호는 대칭-키 암호화보다 매우 느리기 때문
  • 큰 메시지를 암호화하기 위해 대칭-키 암호는 여전히 필요
  • 대칭-키 암호의 속도는 중요
  • 비대칭-키 암호는 인증, 전자 서명, 비밀 키 교환을 위해 필요
  • 이것은 오늘날 보안의 모든 측면을 사용 가능하도록 하기 위해 대칭-키 암호와 비대칭-키 암호가 모두 필요하다는 것을 의미

 

728x90