암호화와 복호화란?!
- 암호(Cryptography) : 암호란 일반적으로 정보를 안전하게 보호하고 통신의 기밀성, 무결성, 인증을 유지하기 위해 알고리즘과 수학적 기법을 사용하는 과학과 기술의 분야다. 암호화 관점에서 암호는 이진수(Binary) 데이터를 수학적 계산을 통해 비트 변경을 수행하는 것이다.
- 암호화(Encrypt) : 사용자가 입력한 데이터를 알아볼 수 없는 데이터로 변경하는 과정
- 복호화(Decrypt) : 암호화된 데이터를 정상적인 데이터로 변경하는 과정
- 단반향 암호(해시) : 원래의 데이터로 복구가 불가능한 암호화 방식, 원본 데이터가 1bit만 바뀌어도 전혀 다른 값으로 변하기 때문에 데이터가 변조되지 않았음을 나타내는데 주로 사용됨
- 양방향 암호 : 데이터 통신을 보호받기 위한 암호 기법, 암호화키로 원본 데이터를 암호화하고 복호화키로 원본 데이터를 복구함
단방향 암호화
- 해시는 대표적인 단방향 암호화 방법인데 데이터의 무결성을 검증하기 위해 사용됨
- 데이터의 무결성이란 허락된 사용자로 인해 수정된 데이터인지 또는 무단으로 조작된 데이터인지 여부를 판단하는 것임
- 해시 함수/알고리즘(hash function/algorithm)은 임의의 길이의 데이터를 고정된 길이의 데이터로 맵핑함
- 대표적인 해시 함수로는 MD5(Message Digest Algorithm 5)와 SHA(Secure Hash Algorithm)가 있음
- MD5
- 임의의 입력값에 대해 변환되는 해시 값의 크기는 128bit(32Byte)로 크기를 유지함
- 1991년에 개발된 것으로 보안상 취약한 것으로 알려져 널리 사용되지는 않음
- SHA
- 임의의 입력값에 대해 변환되는 해시의 값 크기가 알고리즘에 따라 변화됨 (뒤에 숫자는 bit 크기 / SHA-224, SHA-256, SHA-384, ...)
- SHA0~4까지 버전이 존재함 (개발연도 > SHA0: 1993, SHA1: 1995, SHA2: 2001, SHA3: 2015)
- 일반적으로 최근에 개발된 SHA2를 사용하며, 양자 컴퓨팅 같은 고도의 공격에 대비가능한 SHA3를 사용하는 경우도 있음
- 알고리즘의 bit 숫자가 높을수록 보안강도가 증가하지만 해시를 계하는 파워가 더 필요하므로 적절한 bit 알고리즘을 선택해야 함 (일반적으로는 SHA2-256을 많이 쓰이는 듯 함...)
- MD5
양방향 암호화
- 암호문을 복호화할 수 있도록 구현된 암호 알고리즘임
- 크게 대칭키 암호 알고리즘과 비대칭키 암호 알고리즘으로 나뉨
- 대칭키 암호 알고리즘
- 1개의 키와 상대적으로 간단한 알고리즘 사용으로 빠르고 효율적임
- 암호화, 복호화에 같은 키를 사용하다 보니 키관리가 중요함
- 따라서 대량의 데이터를 안전하게 전송할 때(예: 파일 암호화, 데이터베이스 암호화) 사용됨
- DES(Data Encryption Standard), AES(Advanced Encryption Standard) 알고리즘이 존재하는데 가장 보안성이 좋은 AES가 주로 사용되며, 그중에서도 AES-128(일반적, 효율성)과 AES-256(보안성 중요)이 많이 사용됨
- DES: 64bits 평문을 56bits 키를 사용해 64bits로 암호화
- 3DES: DES와 원리는 같으나 3개의 키를 사용해 3중으로 암호화 및 복호화를 진행해 보안성 향상
- AES: 128bits 평문을 (128, 192, 256bits)키를 사용해 128bits로 암호화
- 비대칭키 암호 알고리즘
- 암호화하는 공개키(Public Key)와 복호화하는 개인키(Private Key) 2가지를 사용함
- 공개 가능한 공개키를 사용하여 키를 공유하는데 편리함
- 대칭키에 비해 상대적으로 계산비용이 많이 들어감
- RSA, ElGamal, ECC, DSA 등의 알고리즘 중에 RSA가 가장 많이 쓰임
- RSA(Rivest, Shamir and Adleman) : 알고리즘을 개발한 3명의 수학자 이름 앞글자를 따서 RSA로 명명. 암호화뿐만 아니라 전자서명이 가능한 최초의 알고리즘으로 소인수 분해의 난해함에 기반하여 공개키와 개인키를 유추하기 어렵도록 만들었음
- 대칭키 암호 알고리즘
참고문헌
- https://raonctf.com/essential/study/web/cryptography
RAON CTF - WEB Essential
해시 암호화 암호문, 평문 단방향 암호, 양방향 암호 AES, DES, RSA
raonctf.com
- https://raonctf.com/essential/study/web/symmetric_key
RAON CTF - WEB Essential
DES 암호화 AES 암호화 양방향 암호, 대칭키 암호
raonctf.com
'Crypto' 카테고리의 다른 글
| WebAuthn 표준을 사용한 Passkey 사용법 (7) | 2024.01.31 |
|---|