🔐 소프트웨어 개발 보안 구축 #6 - 암호 알고리즘
2020. 7. 14. 15:33ㆍ컴퓨터언어/소프트웨어공학
728x90
반응형
👍 암호 알고리즘이란?
👊 용어정리
해시 : 임의의 길이의 입력 데이터나 메시지를 고정된 길이의 값이나 키로 변환하는 "단방향" 암호 알고리즘
단방향 : 평문 -> 암호문으로 바꿀수는 있지만, 암호문을 평문으로 다시 복호화는 할 수 없는 암호화 방식. 해시를 사용하는 방식
양방향 : 평문 -> 암호문, 암호문 -> 평문 모두 가능한 암호화 방식. 양방향 암호화방식은 개인키와 공개키가 사용된다.
🙌 단방향 암호 알고리즘
단방향 암호 알고리즘은 해시를 이용한다.
해시 알고리즘을 해시 함수라고 부르며, 해시 함수로 변환된 값이나 키를 해시값 또는 해시키라고 한다.
단방향이기 때문에 복호화할 수 없어, 암호화보다는 데이터변조/수정여부 파악 등 무결성검증 용도로 많이 쓰인다.
대표 해시함수 : MD5, SHA, HAS, N-NASH, SNEFRU
🙌 양방향 암호 알고리즘
구분 | 비밀키(개인키, 대칭키) 암호 알고리즘 | 공개키(비대칭키) 암호 알고리즘 |
특징 | 암호화 및 복호화 할 때 사용하는 키가 같음 => 양쪽이 같으니까 "대칭"키 => 양쪽이 같으니까 노출되면 안되는 "비밀"키 => 양쪽이 같으니까 노출되면 안되는 나만의 "개인"키 |
암호화 및 복호화 할 때 사용하는 키가 다름 |
장점 | <양쪽이 같으니까> 암호화와 복호화 속도가 빠름 알고리즘이 단순함 공개키 암호 알고리즘보다 파일의 크기가 작음 |
<관리자만 복호화 키를 관리하면 되니까> 키의 분배가 용이하고 관리해야 할 키의 개수가 적음 |
단점 | 사용자의 증가에 따라 관리해야 할 키의 수가 상대적을 많음 | 암호화 및 복호화 속도가 느림 알고리즘이 복잡함 개인키 암호 알고리즘보다 파일의 크기가 큼 |
종류 | SEED, ARIA, DES, AES | RSA |
- SEED : 1999년 한국인터넷진흥원에서 개발한 블록 암호화 알고리즘으로, 128비트의 블록크기, 128/256비트의 키 길이
- ARIA : 2004년 학계(Academy), 연구기관(Research Institute), 정부(Agency) 연합으로 개발한 128비트의 블록크기, 128/192/256비트의 키 길이
- DES : 1975년 미국 NBS(전 미국표준기술연구소)에서 발표한 64비트의 블록크기, 56비트의 키길이
- AES : 2001년 DES에 한계를 느낀 NIST(현 미국표준기술연구소)에서 공모한 후 발표한 128비트의 블록크기, 128/192/256비트 길이의 키길이
- RSA : 1978년 MIT의 Rivest, Shamir, Adelman이 큰 숫자를 소인수분해하기 어렵다는 점에 기반하여 만든 공개키 암호 알고리즘
728x90
반응형
'컴퓨터언어 > 소프트웨어공학' 카테고리의 다른 글
🔐 소프트웨어 개발 보안 구축 #8 - 캡슐화 (0) | 2020.07.14 |
---|---|
🔐 소프트웨어 개발 보안 구축 #7 - 코드오류 (0) | 2020.07.14 |
🔐 소프트웨어 개발 보안 구축 #5 - 세션통제 (0) | 2020.07.14 |
🔐 소프트웨어 개발 보안 구축 #4 - 에러처리 (0) | 2020.07.14 |
🔐 소프트웨어 개발 보안 구축 #3 - 보안기능 (0) | 2020.07.14 |