쟝이의 세상
암호화 알고리즘 본문
암호화와 복호화의 개념
암호화: 평문을 암호문으로 바꾸는 것
복호화: 암호문을 평문으로 바꾸는 것
→ 암호화를 사용하는 이유?
: 악의적인 의도를 가진 해커가 중간에 패킷을 뺏어 데이터의 내용을 확인할 수 있어 해킹의 위험이 있다
대칭 암호화 방식
: 암호화 복호화에 사용하는 키가 동일함
→ 암호화 방식에 속도가 빠름, 대용량 Data 암호화에 적합
대표적인 알고리즘: DES, 3DES, AES, SEED, ARIA 등
- DES 알고리즘
- 블록 암호 기법 사용 (블록의 단위: 64비트)
- 평문을 64비트 단위로 암호화 수행 → 64비트 암호화 문서 생성
(키 길이는 64비트이지만 실제로는 8비트의 패리티 비트가 있어 실제 키 길이 = 56비트) - 이때, 암호문은 16번(16라운드)의 반복을 통해 만들어진다.
라운드 반복(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) 비밀번호를 해시 알고리즘으로 암호화하여 해시 값 생성. 생성된 해시 값은 복호화되지 않음
- 대표적인 알고리즘: MD5, SHA-256 등
'수업내용' 카테고리의 다른 글
php <배열과 함수> (2) | 2024.09.02 |
---|---|
php <조건문 switch, 반복문> (0) | 2024.08.29 |
php <문자열 출력 echo, 연산자, 변수, 조건문 if> (6) | 2024.08.28 |
<WIN2022 + PHP + SQL Server> 웹 데이터베이스 연동 (0) | 2024.08.28 |
전자상거래 보안 (0) | 2024.08.26 |