기술 면접을 보며 나왔던 질문 중에 암호화 관련된 질문이 있어서 정리를 하게 되었습니다.
- 암호화, 해시의 개념
- 둘의 차이점
- 각각의 대표 알고리즘 예시
Encrypt (암호화)
양방향 암호화 기법
평문을 암호화된 문장으로 만들고, 복호화 기능을 가짐
- 대칭 암호화
- DES(Data Encryption Standard)
- T-DES ( Triple Data Encryption Standard)
- AES (Advanced Encryption Standard)
- 비대칭 암호화
Hash (해시)
임의의 길이 입력을 고정된 길이의 출력으로 바꾸어주고, 복호화가 되지 않아 원문을 알 수 없으나 같은 입력은 같은 출력을 보장
단방향 암호화 기법
- MD5 (Message Digest)
- SHA (Secure Hash Algorithm)
Encrypt vs Hash 차이점
- 복호화 가능 여부
- Hash는 단방향 암호화로 원래 데이터 찾기가 불가능
- 주로 프로그램이나 파일이 원본 그대로인지를 확인하는 무결성 검사 등에 사용된다
DES ( Data Encrypt Standard : 데이터 암호화 표준 )
메시지를 보내려는 사람과 받는 사람이 56비트의 동일한 열쇠를 가지고 있어야 한다 ( 대칭키 )
평문을 64 비트로 나눠 56 비트의 키를 이용하여 다시 64 비트의 암호문을 만들어 내는 암호 알고리즘
( +8 페리티 비트)
DES는 현재 취약한 것으로 알려져 있는데 이유는 현재 컴퓨터 환경에 비해 56 비트의 키 길이는 너무 짧다는 것이 하나의 원이이다.
T-DES는 DES를 세 번 반복해서 사용한 것으로 DES에 비해 안전한 것으로 알려져 있다
MD5
128비트 암호화 해시 함수이다
임의의 길이 메시지를 입력받아, 128비트짜리 고정 길이의 출력 값을 낸다
* 참고 *