728x90
728x170
66. 비대칭키(공개키) 암호화
1. 공개키(Public Key) 암호화
- 공개키 암호화 기법(비대칭키 암호화)
- 공개키 와 개인키 라는 2개의 암호화 키를 사용하여 암/복호화를 수행하는 방법
- 클라이언트
- 공개키 를 수신 받은 후, 공개키로 암호화하여 메시지를 전송함.
- 수신자
- 자신만 가지고 있는 개인키 로 복호화함.
- 공개키 를 수신 받은 후, 공개키로 암호화하여 메시지를 전송함.
- 대칭키 암호화 기법 의 키 공유 문제를 해결한 방법
- 암호화 키의 길이가 길어서 암호화 및 복호화의 성능이 떨어짐.
(1) 공개키 암호화의 주요 특징
- 암호화 키와 복호화 키가다른 암호화 방식
- 키 교환
- 키 합의(Key Agreement) 또는 키 전송에 사용됨.
- 공개키/개인키를 사용하여 인증, 서명, 암호화 수행
(2) 공개키 암호화의 필요성
- 키 관리 문제
- 비밀 키의 배분, 공유 문제
- 키의 저장 및 관리 문제
- 인증
- 메시지의 주인을 인증할 필요
- 부인 방지
- 메시지의 주인이 아니라고 부인하는 것을 방지
(3) 공개키 암호화 방식
암호 모드 | - 소량의 메시지 암호화 목적 - 주로 키 교환의 용도로 사용 |
|
인증 모드 | - 메시지를 인증(부인 방지)하는 것이 목적 |
(4) 공개키 암호화 종류
구분 | 특징 | 수학적 배경 | 장점 | 단점 |
Diffie Hellman | - 최초의 공개키 알고리즘 - 키 분개 전용 알고리즘 |
이산대수 문제 | - 키 분배에 최적화 - 키는 필요 시에만 생성 - 키 저장 불필요 |
- 암호 모드로 사용 불가(인증 불가) - 위조에 취약 |
RSA | - 대표적인 공개키 알고리즘 | 소인수분해 | - 여러 라이브러리 존재 | - 컴퓨터 속도 발전으로 키 길이 증가 |
DSA | - 전자서명 알고리즘 표준 | 이산대수 문제 | - 간단한 구조 (Yes or No의 결과만 가짐) | - 전자 서명 전용 - 암호화, 키 교환 불가 |
ECC | - 짧은 키로 높은 암호 강도 - PDA, 스마트폰, 휴대폰 |
타원 곡선 | - 오버헤드 적음. - 160키 = RSA 1024 |
- 키 테이블(20KB) 필요 |
이산대수, 인수분해 Key 길이 : 1024 ~ 2048비트
ECC Key 길이 : 160비트 이상
(5) 공개키 암호화 방식과 대칭키 암호화 방식의 차이점
항목 | 대칭키 암호화 | 공개키 암호화 |
키 관계 | 암호화 키 = 복호화 키 | 암호화 키 ≠ 복호화 키 |
안전한 키 길이 | 128비트 이상 | 2048비트 이상 |
구성 | 비밀키 | 공개키, 개인키 |
키 개수 | N(N-1)/2 | 2N (주의! 키 쌍으로는 N) |
대표적인 예 | DES, 3DES, AES | RSA, ECC |
제공 서비스 | 기밀성 | 기밀성, 부인 방지, 인증 |
목적 | 데이터 암호화 | 대칭키 암호(전달(키 분배)) |
단점 | 키 분배 어려움, 확장성 떨어짐. | 중간자 공격 (대응 : PKI) |
암호화 속도 | 공개키(비대칭키) 보다 빠름. | 대칭키 보다 느림. |
2. 해시(Hash) 함수
- 키가 없고 복호화가 불가능한 특징을 가지는 암호화 방식
- 일방향 암호 기술
- MD(Message Digest) : 무결성만 제공하는 메커니즘
- 다양한 길이의 입력을 고정된 짧은 길이의 출력으로 변환하는 함수
- 고정 길이 출력 : 128비트, 160비트, 256비트 등
- 표현 방식
y = h(x)
x
: 가변 길이의 메시지y
: 해시 함수를 통해서 생성h
: 해시 값(Hash Code)을 생성
(1) 해시 함수의 조건
- 압축
- 임의의 길이의 평문을 고정된 길이의 출력 값으로 변환함.
- 일방향(One Way Function, 선이미지 회피성)
- 메시지에서 해시 값(Hash Code)을 구하는 것은 쉽지만, 반대로 해시 값에서 원래의 메시지를 구하는 것은 매우 어려움.
- 역방향 계산 불가능
- 메시지에서 해시 값(Hash Code)을 구하는 것은 쉽지만, 반대로 해시 값에서 원래의 메시지를 구하는 것은 매우 어려움.
- 효율성
- 메시지로부터
h(메시지)
를 구하는데 많은 자원과 노력이 소요되지 않아야 함.
- 메시지로부터
- 충돌 회피(Collision Free, 강한 충돌 회피성)
- 다른 문장을 사용하였는데도 동일한 암호문이 나오는 현상
h(M1) = h(M2)
인 서로 다른M1
과M2
를 구하기는 계산상 불가능해야 함.
- 2차 선이미지 회피성
- 어떤 블록
x
에 대해서H(y) = H(x)
인y != x
인 것을 찾는 것이 계산적으로 불가능해야 함. - 약한 충돌 회피성
- 어떤 블록
(참고) 입력 값이 똑같은데 왜 출력이 다르지?
- 리눅스에서
starrykss
사용자의 패스워드를root
와 동일하게 변경 root
와 패스워드를 동일하게 변경하고,/etc/shadow
파일에서 해시 값을 확인- 패스워드를 동일하게 입력 했지만,
root
와starrykss
사용자의 해시 값이 다른 것을 확인할 수 있음.- 이론적으로는 동일한 입력에 같은 출력이 나오는 것이 해시 함수이지만, 리눅스에서는 패스워드를 입력 값으로 해시 함수에 넣을 때 리눅스만 알고 있는 임의의 값을 추가해서 넣기 때문에 해시 값이 다르게 나옴.
- 패스워드를 동일하게 입력 했지만,
- 정보 보안에서 패스워드를 만들 때, 임의의 값을 추가하는 것을 Salt 값 이라고 함.
(2) 해시 함수 종류
종류 | 특징 |
MD2 | - Rivest가 개발 - 8비트 컴퓨터를 위해서 고안됨. - 매우 안전하지만, 계산할 때 많은 시간이 걸림. - 128비트의 출력 해시 값 생성 |
MD4 | - Rivest가 개발 - MD2 보다는 메시지 압축 속도가 빠름. - 속도는 빠른 반면, 안정성에서 뒤떨어짐. - 128비트의 출력 해시 값 생성 |
MD5 | - Rivest가 개발 - 안정성이 떨어지는 MD4 알고리즘을 수정하여 만듦. - 128비트의 출력 해시 값 생성 |
SHA | - Secure Hash Algorithm - MD 계열의 알고리즘과는 달리 160비트 출력 해시 값을 생성 |
SHA-1 | - 미국 표준의 메시지 압축 알고리즘 - 160비트의 출력 해시 값 생성 |
- 국내에서 해시 함수를 통하여 주민등록번호 및 패스워드를 암호화할 때 가장 권고하는 해시 함수
- SHA-256
생일자 공격(Birthday Attacks)
- 23명 중에서 같은 생일을 가지는 사람이 2명이나 그 이상이 있을 확률은 1/2보다 큼.
- 생일자 역설을 근거로, 한 해시 함수의 최소 비트는 160비트 이상이 되어야 함.
- 국내의 경우, 패스워드 암호화 시에 SHA-256 이상의 해시 함수를 사용하는 이유
내용 출처 : 이기적 네트워크관리사 1·2급 필기 (임호진, 황성하 공저, 영진닷컴)
728x90
그리드형(광고전용)
'Certificate > Network Manager' 카테고리의 다른 글
70. IP 기반의 접근 통제 (0) | 2021.05.03 |
---|---|
69. 전자 우편 보안 (0) | 2021.05.03 |
68. 전자상거래 보안 (0) | 2021.05.03 |
67. 웹 서버 보안 (0) | 2021.05.03 |
65. 대칭키(비밀키) 암호화 (0) | 2021.05.01 |
64. 암호화 개요 (0) | 2021.05.01 |
63. 정보 보호 공격 유형과 보호 대책 (0) | 2021.05.01 |
62. 정보 보호 목표 (0) | 2021.05.01 |