기본 용어 정의
- 평문 PlainText : 해독 가능한 형태의 메세지 (암호화 전 메세지)
- 암호문 CiperText : 해독 불가능한 형태의 메세지 (암호화 된 메세지)
- 암호화 Encryption : 평문 -> 암호문으로 변환하는 과정
- 복호화 Decryprion : 암호문 -> 평문으로 변환하는 과정
- 양방향 암호화 : 암호화 / 복호화 과정으로 송수시간 주고받는 메세지의 기밀성 유지
- 단방향 암호화 : 해싱(Hashing) 을 이용한 암호화 방식, 복호화 불가능
양방향 암호화
양방향 암호화는 대칭키 방식과 비대칭키 방식 두가지로 나뉜다.
- 대칭키 : 같은 키를 사용하여 메세지 암호화 복호화
- 대칭키 암호화 방식은 비대칭 키 암호화 방식보다 빠르고 효율적이기에. 대용량 데이터를 암호화 하는 데 적합하다.
- 대표적인 알고리즘 : AES(Advanced Encyption Standard) DES(Data Encryption Standard), SEED(국내표준)
- 스트림 방식 : 비트단위로 암호화. 주로 오디오/비디오 스트리밍시 사용
- 블록 방식 : 블록 단위로 암호화, 문자열 단어 하나하나를 블록으로 나누어 암호화. DES, AES,
- 비대칭키 : 메세지를 암호화 하는 키와 복호화 하는 키가 상이,
- 보통 수신자의 공개키(Public Key)를 이용하여 데이터를 암호화 하고, 수신자는 그에 상응하는 개인키(Private Key)를 이용하여 데이터를 복호화한다.
- 특히 전자서명 등에 사용함.
- 대표적인 알고리즘 : RSA(Rivest-Shamir-Adleman) DSA
단방향 암호화
- Hash 사용하여 암호화하는 과정
- 암호화는 가능하나 복호화는 불가능
- 무결성(데이터가 전송 또는 저장 중에 변조되거나 변경되지 않음) 보장.
- HOW ? 데이터를 해싱할때, 입력 데이터 고유의 고정 크기 해시 값이 생성된다. 이때 입력 데이터를 수정하면 아무리 작더라도 해시 값이 완전이 달라진다. 이렇게 수신된 데이터의 해시 값과 원래 계산된 해시값을 비교하여 데이터 유지를 확인 할 수 있다 .
- HASH 값은 크기와 알고리즘에 따라 암호문의 결과가 완전 차이난다.
알고리즘분류 | 알고리즘명 | MD 길이 | 블록 길이 | 최대 메시지 길이 |
MD5 | MD5 | 128bit | 512bit | 무한 |
RIPEMD | RIPEMD-160 | 160bit | 512bit | 2^64-1bit |
SHA-1 | SHA-1 | 160bit | 512bit | 2^64-1bit |
SHA-2 | SHA-224 | 224bit | 512bit | 2^64-1bit |
SHA-2 | SHA-256 | 256bit | 512bit | 2^64-1bit |
SHA-2 | SHA-384 | 384bit | 1024bit | 2^128-1bit |
SHA-2 | SHA-512 | 512bit | 1024bit | 2^128-1bit |
SHA-3 | SHA-2와 디자인이 달라짐 |
함께 자주 사용하는 용어
- MD5 : 해쉬 알고리즘. 원문에서 digest code 를 생성해 냄. 단방향 암호화 과정에서 함께 쓰이는 경우가 많다.
- BASE64 : 텍스트 인코딩. 바이너리를 텍스트 아스키 코드로 인코딩함. 가령 HTTP 주소에 한글이 포함될 때, 아스키로 변환해서 전송 암호화된 바이너리 데이터를 아스키로 변환할 때 사용한다 .
- SSL : 보안 통신 프로토콜.
- SSH: 보안 쉘. 유닉스 계열의 시스템에 원격 접속할 때. 인증과 암호화 기능을 보완한 쉘.
- CBC(Cipher Block Chaining Mode) : 동일한 평문 블록과 암호문 블록의 쌍이 발생하지 않도록 이전단계의 암복호화한 결과를 현 단계에 사용하는 모드
- Padding : CBC에서 작업을할 때 마지막 블록이 블록의 길이가 부족할 때 부족한 부분을 채워넣는 방식.
참조
암호화 알고리즘 종류와 관련 용어
웹서핑을 하다가 우연히 잘 정리된 글을 발견했다. 누군가 이리 선구적으로 정리해 주시니 후발자는 감사할 따름입니다.(꾸뻑!) 암호(Cryptography) 메시지를 해독 불가능한 형태로 변환하거나 또는
modoris.blogspot.com
[Programming] 암호화 알고리즘 종류와 분류
평문(Plaintext) : 해독 가능한 형태의 메시지(암호화전 메시지)암호문(Cipertext) : 해독 불가능한 형태의 메시지(암호화된 메시지암호화(Encryption) : 평문을 암호문으로 변환하는 과정복호화(Decryption)
velog.io
'기타' 카테고리의 다른 글
리눅스 주요 명령어 (0) | 2024.04.09 |
---|