암호

암호 - Part 5, 6

slcry 2022. 12. 13. 17:15

5장 해쉬함수


1. 해쉬 함수의 이해
2. 해쉬 함수의 이용
3. 단순 해쉬 함수
4. 해쉬 함수의 종류
5. SHA와 MD5의 차이

 

1. 해쉬 함수의 이해
메시지 인증 코드에 대한 변형
메시지의 모든 비트들에 대한 함수
정의
 - 임의의 길이(M)를 취해서 정해진 크기(h)의 Message Digest를 만드는 one-way function(H)

디지털서명, 인증, 등의 서비스 제공

 

해쉬함수의 요구 조건
 - 어떤 크기의 메시지 M에도 적용 가능
 - H는 고정된 크기의 hash code를 만듬
 - H(M)은 어떤 주어진 M에 대해서도 계산하는 것이 쉽다.
 - 주어진 hash code h에 대해, H(M) = h인 M을 찾는 것이 계산적으로 실행불가능(one-way)
 - 어떤 주어진 블록 M에 대해서, H(M’) = H(M) 인 M과 M’가 서로 다른 것을 찾는 것이 계산적으로 실행 불가능
 - H(M’) = H(M)인 어떤 (M, M’) 쌍을 찾는 것이 계산적으로 실행 불가능(collision-free)

 

3. 단순 해쉬 함수
메시지를 n 비트 블록으로 m개로 나누어
블록끼리 XOR하여 출력되는 블록을 해쉬로 함

 

4. 해쉬 함수의 종류

 

*시스템 관리자, DB관리자로부터 패스워드를 지키기 위해 PHP시간에 패스워드로 해시코드 만들때 ID와

같이 섞어서 만들었습니다. (ID와 PW를 섞어서 만들었다고 안전해진것과는 무관하다.왜나하면 그렇게해서

만들어진 해시코드가 크랙하기 쉬운(생일공격)코드로 만들어 질수 있기 때문입니다.)*

 

5. SHA와 MD5의 차이

 

6장 전자 서명과 PKI


1. 전자 서명의 이해
2. 암호방법과 전자 서명
3. 공개키를 이용한 전자 서명
4. 전자 서명의 이용
5. PKI구성요소
6. 인증서
7. 인증서 발행과 이용
8. 인증기관과 CRL

 

 

1. 전자 서명의 이해 * 전자서명 = 무결성과 관련 *
배경
종이 문서 사회에서 정보화 사회로의 진전으로 다양한 서비스 요구
* 데이터 무결성 , 사용자 인증, 부인방지 서비스가 필수적 *

 

목적
신뢰성 확보 ( 내용의 위·변조 및 신분 확인에 사용)
976년 Diffie와 Hellman에 의해 개념 제시

전자서명 = 사용자 인증 + 메시지 인증

 

전자문서의 문제점
 - 위,변조가 용이 : 무결성
 - 문서작성 사실 입증 곤란 : 부인방지

 

전자상거래의 문제점
 - 거래상대방의 신원확인 곤란 : 사용자 인증
 - 전송 내용의 비밀 유지 곤란 : 기밀성

 

서명자 신원확인(User Authentication)
개인키의 소유자가 전자서명 행위자임을 증명
서명자 고유의 표식

 

위조 불가(Not forgeable) 
합법적인 서명자 외에는 전자서명 생성 불가 증명

 

변경 불가(Unalterable) 
서명한 문서의 내용과 서명의 변경 불가 증명

 

부인 불가(Non-Repudiation) 
서명은 본인 이외에는 불가능함을 증명

 

재사용 불가(Not Reuseable) 
다른 전자문서의 서명으로 사용 불가능함을 증명

 

2. 암호화 방법과 전자 서명
전자서명은 전자서명의 조건을 만족하면서 서명방식과 검증방식이 명확하여야 함

 

대칭키 암호 알고리즘에 의한 방법
 - 중재된 서명기법
 - 서명과 검증을 제 3자에 의해서 행할 수 밖에 없음

 

공개키 암호 알고리즘에 의한 방법
 - 메시지 복원형 전자서명 방식
 - 문서 자체를 이용하는 서명방식
 - 메시지 부가형 전자서명 방식
 - 문서에 서명메세지를 포함하는 방식

 

3. 공개키를 이용한 전자서명
전자서명과 공개키 암호의 관계
 - 전자서명의 인영 역할 -> ‘공개키’
 - 서명자A가 갖고 있는 인감 -> ‘개인키’

 

전자서명
 - 서명자A의 개인키로 데이터의 전자서명을 생성
 - 서명자A의 공개키로 전자서명을 검증

평문(메시지 다이제스트) + 개인키 = 암호문(전자서명) 
암호문(전자서명) + 공개키 = 평문(메시지 다이제스트)

 

* 메세지는 네트워크 상으로 교환하기 때문에 보안에 취약하지 않을까?

   물건을 거래하는과정에서 상인이 누가 샀는지 모르게 하는 방법이 생겼다.*

 

① 메시지 다이제스트를 계산
② 그것을 송신자의 개인키로 암호화한다. 이것이 전자 서명
③ 이것을 메시지와 함께 수신자에게 보냄
④ 수신자는 먼저 수신 메시지의 메시지 다이제스트를 계산함
⑤ 다음으로 송신자로부터 온 전자 서명을 송신자의 공개키로 복구함
⑥ 이전 메시지로부터 계산한 메시지 다이제스트를 비교

 

 

4. 전자서명의 이용

전자 봉투
 - 서명과 기밀을 동시에 이용
 - 암호는 대칭키를 이용하고 대칭키는 공개키로 암호화 한다.

* 장점 : 비밀키가 난수로 만들어져서 공개키와 같이 암호화되기 때문에 속도도 빠르고 기밀성 보장 

   단점 : 가격이 비싸다. *

 

전자봉투의 조직을이용하는 암호 메일을 예
① 송신자는 메시지를 보낼 때 난수를 생성하여 대칭키(세션키)로 함. 
② 송신자는 메시지(암호 전의 평문)를 대칭키로 암호화함
③ 송신자는 대칭키를 수신자의 공개키로 암호화. 
     - 이 대칭키를 암호화한 것을 전자봉투라고 부름
     - 128비트의 대칭키를 1024비트의 공개키로 암호화하면 1024비트의 전자봉투
④ 송신자는 수신자에게 전자봉투 1024비트와 암호 메시지 보냄.
⑤ 수신자는 개인키 1024비트로 전자봉투를 복호화하여 128비트의 대칭키를로 암호 메시지를 복호화하여 메시지를 꺼냄.

 

5. PKI구성 요소

인증서는 인감증명서에 해당
 - 기밀성, 무결성, 인증

 

공개키의 소유자를 증명

6. 인증서

 

인증서의 정의
공개키의 소유자를 증명
인증서라 함은 개인키와 이에 합치하는 공개키에 대하여 이를 소유하는 자연인 또는 법인과의 귀속관계 등을 인증기관이 자신의 개인키로 전자서명하여 확인, 증명하는 전자적 정보

 

6. 인증서 : X.509  
1K바이트 정도의 바이너리 데이터
RFC 2459(X.509 ver. 3)

 

인증서 항목
 - 서명전 인증서
   - tbsCertificate(to be signed certificate)
   - 확장항목 이외의 항목 필수
 - 서명 알고리즘
   - 메시지 다이제스트 알고리즘(MD2,MD5..)
   - 공개키 암호 알고리즘
 - 인증기관
   - 서명전 인증서 부분을 입력으로 해서 서명
   - 인증기관의 개인키와 인증서로 기재한 알고리즘 이용

 

7. 인증서 발행과 이용
인증서를 발행하기 위해서는 공개키의 소유주는 인증기관에 공개키를 등록하고 인증기관은 등록된 

개인의 공개키를 자신의 개인키로 서명해서 인증서를 발행함.

 

8. 인증 기관과 CRL
CA (Certificate Authority) : 인증서 발행기관
RA (Registration Authorities) : 인증서 유저 등록 기관

 

8. 인증 기관과 CRL
CRL (Certificate Revocation List) : 인증서 폐지 목록