데이터는 현대 사회에서 가장 중요한 자산 중 하나입니다. 따라서 데이터 보안은 매우 중요합니다.
이를 위해 데이터를 암호화하는 다양한 기술이 개발되어 는데, 이 포스트에서는 암호화의 기초부터 다양한 암호화 종류와 알고리즘에 대해 알아보겠습니다.
암호화란 평문(원본 데이터)을 암호문(암호화된 데이터)으로 변환하는 과정을 말합니다. 이 과정을 통해 데이터를 안전하게 보호할 수 있습니다.
종류 | 암호화 | 복호화 | 암호화 방식 | 알고리즘 | 특징 |
---|---|---|---|---|---|
단방향 | 가능 | 불가능 | Hash | MD5, SHA-1, SHA-256 | 데이터 무결성을 검증하는 데 주로 사용된다. |
양방향 | 가능 | 가능 | 대칭키 | AES, DES | 암호화와 복호화에 동일한 키를 사용합니다. |
공개키 | RSA, ECC | 두 개의 키 쌍을 사용합니다: 공개키와 개인키. |
해시 (Hash)란 해시 함수에 의해 얻어지는 값입니다. 해시 함수(해시 알고리즘)는 임의의 크기의 데이터를 고정된 크기의 데이터로 변환하는 함수로, 이 변환된 값은 원본 데이터를 추론하기 어렵게 만듭니다. 해시는 보안, 데이터 무결성 검증, 패스워드 보호 등 다양한 분야에서 사용됩니다.
SHA-256 (Secure Hash Algorithm 256-bit): 256 비트 해시 값으로, 충돌 저항성과 보안성이 높아 많은 애플리케이션에서 데이터 무결성 검증이나 디지털 서명에 사용됩니다.
|
SHA-512 (Secure Hash Algorithm 512-bit): 512 비트 해시 값으로, 더 큰 해시 값을 생성하기 때문에 보안성이 SHA-256보다 높습니다.
양방향 암호화는 동일한 키를 사용하여 암호화와 복호화를 수행하는 알고리즘입니다.
공개키와 대칭키 암호화를 조합하여 데이터 보안을 유지하면서 처리속도를 향상하였습니다.
HTTP와 같은 프로토콜로 클라이언트- 서버 통신을 보호하여 안전한 웹 통신을 제공합니다.
대칭키 사용 암호화와 복호화에 동일한 키 를 사용하므로 키 관리가 중요하다
AES(Advanced Encryption Standard)
다양한 키 비밀 값 과 블록 암호화할 데이터 을 제공한다
(종류 AES 128, AES 192, AES 256)
처리 속도가 빠르고 다양한 플랫폼에서 구현이 용이하다
ECB, CBC , CFB, OFB, CTR 등 다양한 운용 모드를 통해 데이터
블록을 처리할 수 있다
DES (Data Encryption Standard)
초기에 개발된 56 비트 키와 64 비트 블록 크기를 가지는 대칭키이다
Triple DES: 3DES 는 DES 를 여러 번 적용하여 암호화하므로 보안성은 높아지지만 , 처리 속도가
느려짐
두 개의 키 쌍을 사용합니다: 공개키와 개인키
공개키는 다른사람과 공유되며, 개인키는 오직 소유자만 알고 있어야합니다.
RSA(Rivest-Shamir-Adleman)
ECC(Elliptic Curve Cryptography)