→ 암호화를 사용하는 이유? : 악의적인 의도를 가진 해커가 중간에 패킷을 뺏어 데이터의 내용을 확인할 수 있어 해킹의 위험이 있다
대칭 암호화 방식
: 암호화 복호화에 사용하는 키가 동일함 → 암호화 방식에 속도가 빠름, 대용량 Data 암호화에 적합 대표적인 알고리즘: DES, 3DES, AES, SEED, ARIA 등
DES 알고리즘
블록 암호 기법 사용 (블록의 단위: 64비트)
평문을 64비트 단위로 암호화 수행 → 64비트 암호화 문서 생성 (키 길이는 64비트이지만 실제로는 8비트의 패리티 비트가 있어 실제 키 길이 = 56비트)
이때, 암호문은 16번(16라운드)의 반복을 통해 만들어진다.
DES 암호화 알고리즘의 확장 과정 + S-Box 암호화 값 추출 DES의 S-Box
라운드 반복(16라운드) 1) R1 확장: 4bit(1100) → 확장 6bit(1 1100 0) 확장된 R1과 라운드 키를 XOR 연산 후 값 출력 2) S-Box에 6bit를 넣어 암호화된 값 4bit 출력 3) P-Box에서 재배열 후 재배열한 값과 L1을 논리곱(XOR)하여 새로운 R2를 만들어냄 교환: R1을 L2로, 새로운 R2를 L1으로 교환 ... 마지막)최종 치환: L과 R을 결합 → 최종화된 64비트 블럭 생성 최종 치환 테이블을 통해 재배열 됨
비대칭 암호화 방식
: 암호화와 복호화에 서로 다른 키 사용 대표적인 알고리즘: RSA, DSA, ECC 등
RSA 알고리즘
대규모 소수의 곱셈에 기반한 알고리즘
암호화 하는 키와 복호화 하는 키가 다르다
보안성은 높지만, 대칭키 암호화에 비해 처리 속도가 느리고, 키의 관리와 분배가 복잡함
ex) 영희가 p=17,159와 q=10,247의 곱을 자신의 N값(17,159 × 10,247 = 175,828,273)으로 정함 --여기서 p와 q는 절대 공개되어서는 안된다. 영희의 공개 키인 N값이 모든 사람에게 공개 영희에게 메시지를 보내고 싶은 사람은 N값을 이용하여 보내는 메시지를 어떤 알고리즘으로 암호화한 후 영희에게 전송
해시
정보의 위조, 변조를 확인하기 위한 것, 즉 정보의 무결성을 확인하기 위한 것
암호화는 가능하지만, 복호화는 불가능
ex) 비밀번호를 해시 알고리즘으로 암호화하여 해시 값 생성. 생성된 해시 값은 복호화되지 않음