설명은 이쪽으로!
예시로 보는 대칭키 vs 비대칭키
① 대칭키 암호화 (AES 등)
상황: A가 B에게 비밀 메시지를 보냄
A와 B는 같은 비밀번호(예: 1234 key)를 미리 공유해 둠
A는 1234key로 메시지를 암호화해서 보냄
B도 1234key로 복호화해서 읽음
비유:
자물쇠 하나(=암호키)를 같이 가지고 있어서, A가 자물쇠로 잠근 상자를 보내면 B도 같은 자물쇠로 열 수 있음
키워드:
빠르고 간단함
문제는 같은 키를 미리 안전하게 주고받아야 함 (노출되면 위험)
② 비대칭키 암호화 (RSA 등)
상황: A가 B에게 비밀 메시지를 보냄
B는 자신의 공개키를 공개해 둠
A는 그 공개키로 메시지를 암호화해서 보냄
B는 자신의 개인키로만 복호화 가능함
비유:
B가 열쇠구멍만 있는 상자를 공개해 둠 (누구나 넣을 수 있음)
A가 메시지를 넣어 보냄
하지만 열쇠(개인키)는 B만B 만 가지고 있어서 B만 열 수 있음
키워드:
공개키는 누구나 가짐
개인키는 본인만 가짐
키를 미리 공유할 필요 없고, 보안성은 높지만 속도는 느림
전자서명 예시
상황: 회사 직원 A가 보고서를 이메일로 상사 B에게 보냄
B는 이 보고서가 진짜 A가 보낸 게 맞는지 확인하고 싶음
전자서명 사용 흐름
A가 보고서를 SHA-256으로 해시함
→ 예: 보고서 내용을 해시 함수로 돌리면 고정된 길이의 "지문"이 나옴
예: AF42...89C1
A는 이 해시 값을 자신의 "개인키"로 암호화
→ 이게 바로 전자서명
(이 서명은 A만 만들 수 있음, 개인키는 A만 갖고 있으니까)
A는 보고서 + 전자서명을 같이 B에게 보냄
B는 전자서명을 검증할 수 있음
A의 "공개키"로 전자서명을 복호화
→ 해시값 AF42...89C1 나옴
보고서 원문을 받아서 SHA-256으로 해시함
→ 같은 해시값 AF42...89C1 나옴?
둘이 같으면?
→ 보고서가 변조되지 않았고,
→ 이 서명은 A만 만들 수 있으므로 A가 보낸 것임을 확인함
항목 설명
무결성 문서가 중간에 바뀌지 않았는지 확인
인증 문서를 보낸 사람이 진짜 A인지 확인
부인 방지 A는 나중에 "나 그런 보고서 안 보냈어요"라고 부인할 수 없음