다양한 기록

대칭키 암호, 공개키 암호, 해시 함수와 MACs 본문

정보보호이론

대칭키 암호, 공개키 암호, 해시 함수와 MACs

라구넹 2024. 10. 27. 20:02

대칭키 암호 (Symmetric cryptography)

 

특징

- 대칭키 암호는 암호화에 사용하는 키와 복호화에 사용하는 키가 동일

- 송신자와 수신자 모두 동일한 키를 공유해야 함

- 비밀키는 송신자와 수신자 이와에는 알지 못하도록 해야 함

- 대규모 데이터의 빠른 암호화에 활용

 

블록 암호와 스트림 암호

- 데이터를 변환하는 단위에 따라 블록 암호와 스트림 암호로 분류

- 블록 암호: 고정된 크기의 블록 단위로 암호화/복호화

- 스트림 암호: 난수열 생성 => 비트단위, 글자 단위로 암호화/복호화

 

블록 암호

- 평문과 암호문이 고정된 크기의 블록으로 구성

- 혼돈(confusion)과 확산(diffusion)

- P-box (permutation box)와 S-box (substitution box), 그 밖의 구성 요소(XOR, shift, swap)을 결합하여 설계

- 여러 라운드를 반복하여 혼돈과 확산을 만족하도록 함

 

스트림 암호

- 블록 암호만큼 일반적으로 사용되지 않음

- 키 K (n bit)가 긴 길이의 키 스트림(keystream)으로 확장

- 확장된 키스트림은 one-time pad (일회용)

- A5/1(휴대폰), RC4(SSL) 가 대표적

 

 

대칭키 암호의 키 분배 문제

- n 명의 사람 => n(n-1)/2 개의 대칭 키 필요

- n 명의 그룹에서 각 사람은 (n-1)개의 키를 가지고 다른 사람둘도 마찬가지

- 안전한 키의 공유와 분배 필요

 

장점

- 연산이 매우 효율적

- 키 생성 과정이 비교적 간단

- 키 길이가 비교적 짧음

- 알고리즘의 표준화가 잘 되어 있고 특허가 없음

- 표준화된 대칭키 암호 알고리즘들은 매우 안전

 

단점

- 대규모 네트워크에 적용하기 어려움

- 키 분배가 매우 비효율적

- 모든 키를 안전하게 관리해야 함

 

블록 암호의 운용 모드

- 실제 운용 환경에서는 평문의 길이가 가변적임

- 임의의 길이의 데이터를 암호화하고 복호화하는 방법인 운용 모드 필요

- ECB, CBC, CFB, OFB, CTR


공개키 암호 (Asymmetric cryptography)

 

대칭키 암호에는 키 분배 문제가 있었음

- 사전에 비밀키를 공유해야 하는 문제가 있었음

- 대칭키 기반의 암호 기법은 송신자와 수신자가 안전하게 대칭키를 공유헸다는 가정에서 출발..

어떻게 키를 안전하게 공유할 것인가?

사용자의 수가 늘어날 수록 필요한 비밀키의 개수가 급격히 증가

부인 방지 제공 못함

....

단점 정리

- 안전한 채널을 통해서 사용자가 서로 동일한 키를 사전에 공유해야 함

- n명이 서로 비밀 통신을 하기 위해서는 n(n-1)/2개의 키가 필요

- 송신자나 수신자의 부인 방지를 제공하지 못함

 

=> 공개키 암호: 개인 우편함 원리를 암호 알고리즘에 적용

모든 송신자는 수신자의 메일 함에 편지를 넣을 수 있음

오직 키가 있는 메일 함의 주인만 편지를 받아볼 수 있음

공개키, 개인키의 존재

 

송신자는 수신자의 공개키로 암호화해서 전송

수신자는 수신자의 개인키로 복호화

 

개요

- 암호화용 키와 복호화용 키가 다름

- 대칭키 암호기법에 비하여 속도가 느림(약 1000배)

- 긴 문서의 암호보다 대칭키 암호 기법의 비밀키 암호에 사용

 

기본 아이디어: 공개키 암호 기법을 사용되는 서로 다른 두 개의 키

public key (공개키) private key (개인키)
누구나 이용할 수 있는 공개된 값
메시지 암호화에 사용
개인이 소장하고 있는 비밀 값
메시지 복호화에 사용
- 송신자는 수신자의 공개키를 이용하여 전달하고자 하는 메시지를 암호화한다 - 송신자가 보낸 암호문을 복호화할 때 사용하는 복호화키
서명 검증에 사용 서명 생성에 사용
- 수신자는 송신자의 공개키를 이용하여 수신된 메시지의 서명값을 검증한다 - 수신자에게 보내는 메시지의 서명값을 생성할 때 사용하는 서명 키

해시 함수와 메시지인증코드: MACs

 

통신 상에서 발생할 수 있는 공격들

- 노출(disclosure): 암호키를 가지고 있지 않은 사람에게 메시지 내용이 노출, 도청(eavesdropping)

- 트래픽 분석(traffic analysis): 통신 주체 사이의 어떤 트래픽 형태 발견 (연결 주기, 사용기간 등)

- 위장(masquerade): 부정한 출처로부터 나온 메시지를 네트워크 상에 삽입

- 내용 수정(content modification): 삽입, 삭제, 전치, 수정을 포함한 메시지 내용 변경

- 순서 수정(sequence modification): 통신 상대방 간의 메시지들의 순서 변경

- 시간 수정(timing modification): 메시지의 지연과 재전송

- 발신처 부인(source repudiation): 발신자가 메시지의 전송 사실을 부인

- 수신처 부인(destination repudiation): 수신자가 메시지의 수신 사실을 부인

 

공격 대처 방안

- 노출, 트래픽 분석: 기밀성

- 위장, 내용 수장, 순서 수정, 시간 수정: 메시지 인증

- 발신처 부인: 전자 서명

- 수신처 부인: 전자서명과 특별히 설계된 프로토콜들의 조합

 

메시지 인증코드

- 메시지 인증 : 메시지가 올바른 송신자로부터 온것이다. 확인

- 메시지 인증 코드(message authentication code .. MAC) : 메시지의 무결성을 확인하고 메시지에 대한 인증을 위한 코드

- 입력: 메시지, 공유하는 키

- 출력: 고정 비트 길이의 코드

 

일방향 해시 함수와 메시지 인증

- 일방향 해시: 키를 사용하지 않음

- 메시지 인증: 키를 사용