정보 보호
정보를 잘 보관하고 안전하게 보내도록 하는 기능으로, 정보의 저장, 검색 및 송수신 중 정보의 위조와 변조를 방지하는 기술적 수단을 적용하는 것을 말함
정보 보호의 3대 요소
기밀성
무결성
- 정보의 변경을 허가된 사람만 가능하도록 하는 것으로 부적절한 변경을 방지함
- 정보가 변경되지 않았음을 보장함
- 해시로 검증이 가능하며, 채굴과 관련 있는 특성임
가용성
용어 정리
- 암호 Cryptography : 어떠한 정보를 제 3자가 알아볼 수 없도록 다른 기호나 문자로 변형하는 기술의 총칭
- 평문 Plaintext : 보내고자 하는 원본 데이터
- 암호문 : 평문을 제 3자가 알아볼 수 없도록 기호로 바꾼 것. 복호화를 하기 위해서는 키 Key가 필요함
- 복호화 : 암호문으로부터 평문을 복원해내는 과정
- 키 : 일종의 비밀번호로, 평문을 암호문으로, 암호문을 평문으로 변경하기 위해 사용됨
- 해독 : 키 없이 암호문으로부터 평문을 구해내는 것 (키 없이 복호화를 하는 것)
- 키 전수조사 : 대상이 되는 통계 집단의 단위를 하나하나 전부 조사하는 관찰 방법. 예를 들어, Key가 8자리의 숫자라면 00000000부터 99999999까지 모든 경우의 수를 돌려보는 것을 말함
무결성 검증 방법
해시로 검증 가능
if) A가 B에게 '안녕하세요'라는 데이터와 이 데이터를 sah256으로 돌린 해시값 'ABC0F'를 보낸다면
1. B는 받은 데이터 '안녕하세요'와 'ABC0F'를 확인함
2. sha256으로 받은 데이터인 '안녕하세요'를 해시값으로 바꿈
3. 바꾼 해시값과 A가 준 해시값인 'ABC0F'가 같으면 무결성이 검증됨
대칭키 암호화
- 암호화와 복호화 키가 동일한 방식
- 기밀성을 보장
- 비대칭키보다 암호화/복호화 속도가 빠름
- 부인 방지 기능이 없음
- DES, SEED, AES 암호화 알고리즘이 해당함

- 같은 키를 사용하기 때문에 키가 노출되면 누구나 문서를 확인할 수 있음 ⇒ 안전한 키 교환 방식을 고려해야 함
- 만약 해커가 키를 알아낸다면, 기밀 문서의 정보를 볼 수 있고 해커가 A인 것처럼 B에게 오류 문서를 같은 key로 암호화해서 보낼 수 있음. 하지만 B는 자신이 받은 문서가 해커가 보낸 것인지 알 수 없음
부인 방지 기능 X
- 암호화와 복호화 키가 동일하기 때문에 B는 A'가 문서를 보냈는지 A가 보냈는지 알 수 없음
- A가 문서를 B에게 보내고도 자신은 보내지 않았다고 주장하더라도 증명할 수 없음
⇒ 부인 방지 기능이 존재하지 않음
비대칭키 암호화 (공개키 암호화)
- 암호화와 복호화를 하는 키가 다름
- 항상 쌍으로 존재함 → public key / private key
- public key : 공개된 키
- private key : 키를 가진 주체만 알고 있음
- 상대적으로 대칭키 암호화보다 연산이 많아 속도가 느림
- RSA 공개키 알고리즘, ESCDA타원 곡선 알고리즘 등으로 사용됨

1. A의 public key로 암호화 → A의 private key로 복호화
- B는 A의 개인 키 private key를 알 수 없기 때문에 실현 가능성 없음
2. A의 private key로 암호화 → A의 public key로 복호화
- A의 개인 키 private key는 A만 알 수 있기 때문에 A가 보냈음을 인증함 → 무결성을 보장함
- 권한이 있는 사람만 파일을 수정할 수 있어서 파일이 변하지 않음
- 해커가 개입해 정보를 수정 후 B에게 수정한 파일을 전송하면 더 이상 A의 public key로 복호화 할 수 없음. 해커는 A의 private key를 알 수 없어서 A의 private key로 암호화할 수 없기 때문임.
- public key로 복호화가 가능하기 때문에 해커가 파일을 읽을 수는 있음
⇒ 실현 가능함
3. B의 public key로 암호화 → B의 private key로 복호화
- public key는 공개 키로, 누구나 알 수 있기 때문에 A가 B의 public key로 파일을 암호화할 수 있음
- 파일의 복호화를 B만 할 수 있기 때문에 허가도니 사람만 정보를 확인할 수 있는 기밀성이 보장됨
⇒ 실현 가능함
4. B의 private key로 암호화 → B의 public key로 복호화
- A는 B의 개인 키 private key를 알 수 없기 때문에 실현 가능성 없음