기밀성, 무결성, 가용성
- 기밀성
비밀 정보가 권한이 없는 자에게 알려지지 않도록 하는 것.
(기밀성 훼손: 정보를 뺏음)
ex) 영업 비밀, 개인의 사생활
- 무결성
정보의 진위성을 보증하고 부적절한 변경이나 파괴로부터 보호하는 것.
(무결성 훼손: 정보를 변조)
- 가용성
정보에 대한 적절하고 신뢰성 있는 접근이나 사용을 보증하는 것.
(가용성 훼손: 서비스가 동작하지 못하도록 함(DDos))
공개키, 개인키
1️⃣ 공개키
누구든지 키를 확인할 수 있고 사용할 수 있도록 대중에게 공개된 키다.
2️⃣ 개인키
자기자신만이 관리하고 가지고 있는 키다.
대칭키 암호화, 공개키 암호화
1️⃣ 대칭키 암호화
암호화와 복호화에 같은 키를 사용한다.(single-key encryption)
데이터를 저장하거나 전송할 때 기밀성을 갖도록 암호화를 사용한다.
키 관리가 매우 중요하기 때문에, 강력한 암호화 알고리즘이 필요하다.
- 방식
기밀성을 중시한다.
- 평문 input
- 키와 암호화 알고리즘을 사용해 암호문 생성
- 수신자는 암호문을 받아서 키와 복호화 알고리즘을 사용한다.
- 평문 output
- 장점 및 단점
- 장점
- 구현이 용이하다.
- 데이터를 암호화하기 위한 연산이 빨라 대용량 데이터 암호화에 적합하다.
- 기밀성을 제공한다.
- 단점
- 강한 보안을 위해 키를 주기적으로 교환해주는 것이 좋다.
- 키 탈취 및 관리가 어렵다.
- 무결성 지원이 부분적으로만 가능하다.
- 대칭키 암호화 알고리즘 종류
- 블록 암호화 방식
한번에 하나의 블록을 입력으로 처리한다. 입력 당 하나의 블록으로 암호화, 복호화를 처리한다.
- DES
64비트 블록을 이용해 암호화한다. 키 길이는 56비트이다.
아직까지 가장 많이 쓰이는 암호화 방식이다.
- Triple DES
64비트 블록을 이용해 암호화한다. 키 길이는 112비트/168비트이다.
느리다는 단점이 있다.
- AES
128비트의 블록을 이용해 암호화한다. 키 길이는 128비트/192비트/256비트이다.
- 스트림 암호화 방식
블록 대신에 지속적인 데이터를 보낸다. 한 출력당 하나의 결과물을 만들어낸다.
블록 암호보다 빠르다는 장점이 있다.
2️⃣ 공개키 암호화
암호화와 복호화에 서로 다른 키(공개키, 개인키)를 사용한다.(public-key encryption)
공개키로 암호화 된 경우 개인키로만 해제를 할 수 있다.(공개키로 해제는 불가능하다.)
-
방식
- 암호화시 공개키를 사용하는 경우
기밀성을 중시한다. (데이터를 안전하게 전송할 수 있다.)
1. 평문 input
2. 수신자의 공개키와 암호화 알고리즘을 사용해 암호문 생성
3. 수신자는 암호문을 받아서 수신자의 개인키와 복호화 알고리즘을 사용한다.
4. 평문 output
- 암호화시 개인키를 사용하는 경우
무결성을 중시한다. (신뢰할 수 있는 단체라는 것을 인증한다.)
1. 평문 input
2. 발신자의 개인키와 암호화 알고리즘을 사용해 암호문 생성
3. 수신자는 암호문을 받아서 발신자의 공개키와 복호화 알고리즘을 사용한다.
4. 평문 output
-
장점 및 단점
- 장점
- 키 분배 및 키 관리가 용이하다.
- 기밀성, 무결성을 지원한다.
- 부인 방지 기능을 제공한다.
- 암호학적 문제를 해결할 수 있다.
- 단점
상대적으로 키의 길이가 길다.
연산속도가 느리다.
부인 방지
송신자나 수신자가 메시지를 주고받은 사실을 부인하지 못하도록 방지하는 것이다.
개인키로 암호화 하는 경우, 수신자는 발신자의 공개키로만 해독이 가능하므로 수신자가 보낸 증거가 된다.
-
공개키 암호화 알고리즘 종류
- RSA
- 디피-헬만(Diffie-Hellman)
- 전자서명(digital signature)
참고
https://universitytomorrow.com/22
https://jaehoney.tistory.com/290
https://velog.io/@octo__/%EB%8C%80%EC%B9%AD%ED%82%A4%EC%99%80-%EA%B3%B5%EA%B0%9C%ED%82%A4%EB%B9%84%EB%8C%80%EC%B9%AD%ED%82%A4