끄적끄적 코딩
Published 2019. 10. 30. 16:10
[보안] 암호화 보안

기본 단어
Message = Plaintext(평문)
E = Encryption(암호화)
C = Ciphertext(암호문)
K = Key
D = Decryption(복호화)

평문전송 = Alice --- message ---> Bob


대칭키
하나의 키로 암호화 복호화를 한다.
빠른 연산이 필요한 시스템에 사용하며, 키 관리가 어렵습니다.

k로 암호화 = C=Ek(m)
k로 복호화 = m = Dk(C)


공개키
하나의 개인키와 여러개의 공개키로 구성됩니다.
연산이 느리지만, 키 관리가 쉽습니다.

개인키로 암호화 = C=Esa(m)
공개키로 복호화 = m=Dpa(C)

공개키로 암호화 = C=Epa(m)
개인키로 복호화 = m=Dsa(C)

개인키로 암호화 한 것은 개인키를 가지고 있는 사람이라는 것을 인증하는 용도로 사용됩니다.
그리고 공개키는 공개되어 있으므로 개인키로 암호화 한것을 모두가 복호화해서 열어 볼 수 있습니다.
또한 보낸사람이 보내지 않았다고 부인할 수 없습니다. 부인방지 역할도 합니다.

공개키로 암호화 한 것은 개인키를 가지고 있는 사람만 복호화 해서 열어볼 수 있습니다.


Hash
Alice --- m, H(m) --- > B
다음과 같이 메시지와, 해시를 처리한 메시지를 같이 보냄으로서
m를 변경하였을 때 (m' = 변경된 데이터)
m'에 해시를 처리하면 H(m')이 됩니다.
이는 H(m) != H(m') 이므로 잘못된 데이터가 오거나 변경되었다는것을 확인할 수 있습니다.
그러므로 Hash는 무결성을 유지해줍니다.


공개키 사용시 문제점
1. 대칭키에 비해서 속도가 느리다. (차량 등 빠르게 통신해야할 때 문제)
2. 키 사이즈가 커야함
3. Infra Structure 기반 시설이 반드시 필요함. (인증이 필요하므로)

공개키 인증서
1. 정보
2. 당사자의 공개 키
3. 인증기관의 개인 키로 디지털 서명


Alice가 Bob에게 메시지를 보내는 과정
1. Bob이 키 쌍 등록
2. 인증기관에 등록
3. 인증기관의 개인키로 디지털 서명
4. Alice가 B의 공개키를 인증기관으로부터 받음
5. Bob의 공개키로 메시지를 암호화 후 Bob에게 송신
6. Bob이 개인키로 메시지 복호화

공격 방법
1. 공개키 등록 할 때
2. 비슷한 사용자 이름
3. 인증기관이 개인키 훔치기
4. 공격자 자신이 인증기관이 되는 공격
5. CRL 허점 공격
6. 프로그램을 이용

인증기관의 필요성
- 공개키에 대한 인증이 안됨
- 신뢰할 수 있는 공개키를 입수할 수 있다면 인증기관은 불필요
- 독자적 인증 방법 사용할 수 있지만 => 확장성이 없다
- 인증기관은 어떻게 신뢰할 수 있는가? => 본질적 문제

서명
Sigsa(M) - Esa(M)

RSA : 암호화 알고리즘, 간단하고 많이 사용

 

'보안' 카테고리의 다른 글

[보안] 해킹 기초 (1)  (0) 2019.10.30
[보안] 블록체인  (0) 2019.10.30

검색 태그