내 답변
암호화 기법 중에 RSA, 디피헬만, 타원곡선 알고리즘이 있고, 이런 것들이 HTTP 요청 이후 TLS 암호화에서 사용됩니다.
암호화 알고리즘은 양방향과 단방향으로 나뉜다. 양방향은 동일 키나 공개키·개인키로 암호화와 복호화가 가능하고, 단방향은 복호화가 불가능하며 입력값을 해시값으로 변환해 비밀번호 저장이나 무결성 검증에 사용된다.
SHA256 란?
SHA(Secure Hash Algorithm) 알고리즘 중 하나로, 어떤 데이터를 넣으면 항상 256비트(64자리 문자열) 길이의 고정된 값을 만들어낸다. 이 값은 '해시 값' 이라 부르며, 원래 데이터를 다시 복원할 수 없기 때문에 단방향 암호화 방식으로 분류된다.
SHA-256의 특징은 2^256 가지 경우의 수가 존재할 정도로 조합이 방대해, 일반적인 컴퓨터로 무작위 대입을 해도 충돌을 찾기 거의 불가능하다. 그래서 비밀번호 저장, 데이터 위변조 방지, 블록체인 같은 보안 기술에 많이 사용된다.
AES(Advanced Encryption Standard) 란?
AES는 데이터를 행렬로 바꿔서 수학적으로 계속 섞고 변형하는 방식이다. 바이트 단위로 바꾸고, 행과 열을 섞고, 행렬을 곱하는 과정을 여러 번 반복한다. 이 방법이 너무 복잡해서 키를 계산할 수 없는 것이다.
DES (Data Encryption Standard)
DES는 데이터를 두 부분으로 나눠서, 치환(값 바꾸기)과 순열(자리 바꾸기)을 반복하는 방식이다. 당시엔 안전했지만 키 길이가 너무 짧아 오늘날 컴퓨터로는 쉽게 뚫린다. 그래서 지금은 잘 쓰이지 않고, 대신 AES가 표준이 되었다.
RSA (Rivest–Shamir–Adleman)
RSA는 큰 수를 소인수분해하기 어려운 성질을 이용한다. 예를 들어, 17 × 23 같은 곱셈은 쉽지만, 391을 보고 “이게 17과 23의 곱”이라고 바로 찾기는 어렵다. RSA는 이 성질을 커다란 수에 적용해, 공개키로는 암호화만 할 수 있고 개인키가 있어야만 복호화할 수 있도록 만든다.
이제 암호화 방법을 좀 더 자세히 알아보자.

대칭키 암호화는 암호화와 복호화에 같은 키를 사용하는 방식이다. 발신자와 수신자가 동일한 키를 공유해야 하므로 키 분배 문제가 단점이지만, 연산 속도가 빠르고 구현이 단순해 대량의 데이터를 처리할 때 유리하다.

비대칭키 암호화는 공개키와 개인키라는 두 개의 키를 사용하는 방식이다. 공개키는 누구나 사용할 수 있지만, 개인키는 소유자만 가지고 있어야 한다. 공개키로 암호화한 데이터는 개인키로만 복호화할 수 있고, 반대로 개인키로 서명한 데이터는 공개키로 검증할 수 있다.

단방향 암호화는 입력값을 일정한 길이의 해시값으로 변환하는 방식으로, 원래 데이터를 다시 복호화할 수 없다. 같은 입력은 항상 같은 해시값을 만들지만, 해시값만으로는 원래 입력을 유추하기 어렵다.
이 성질 덕분에 데이터 무결성 검증이나 비밀번호 저장에 널리 쓰인다.
현실의 서비스에서는 대칭키, 비대칭키, 해시 함수를 각각 장점에 맞게 조합해서 사용한다.
예를 들어 HTTPS 통신 과정은 다음과 같다:
1. 비대칭키 암호화(RSA, ECC)를 이용해 안전하게 세션키(AES 키)를 교환한다.
2. 이후 데이터 전송은 대칭키 암호화(AES)로 처리해 빠른 속도를 확보한다.
3. 또한 해시 함수(SHA-256)를 활용해 메시지 무결성을 검증하고 위변조를 방지한다.
| 구분 | 개념 | 대표 알고리즘 | 장점 | 단점 | 활용 사례 |
|---|---|---|---|---|---|
| 대칭키 암호화 | 하나의 키로 암호화·복호화 | AES, DES, 3DES | 빠르고 효율적, 대용량 처리에 적합 | 키 분배가 어렵고 유출 시 위험 | 파일 암호화, DB 보안, VPN, TLS 세션 데이터 |
| 비대칭키 암호화 | 공개키/개인키 쌍 사용 | RSA, ECC, 디피-헬만 | 키 교환·전자서명 가능, 안전한 통신 | 연산 속도가 느림, 대용량 처리에 부적합 | SSL/TLS, 인증서, 전자서명, PKI |
| 단방향 암호화 | 입력 → 고정 길이 해시값, 복호화 불가 | SHA-256, SHA-3, bcrypt, Argon2 | 단순·빠름, 데이터 무결성 보장 | 해시 충돌 가능, 무차별 대입 방어 필요 | 비밀번호 저장, 무결성 검증, 블록체인 |
| 혼합 방식 | 여러 암호화 방식을 조합 | RSA+AES+SHA (HTTPS) | 보안성과 성능을 모두 확보 | 구현이 복잡함 | HTTPS, 보안 통신 프로토콜 |
현실의 서비스에서는 이들을 혼합해 사용한다. 예를 들어 HTTPS는 비대칭키로 세션키를 교환하고, 실제 데이터는 대칭키로 암호화, 무결성은 해시 함수로 보장한다.
다음엔 이렇게 답변하자
암호화 알고리즘은 크게 대칭키, 비대칭키, 단방향(해시)으로 나눌 수 있습니다.
- 대칭키 암호화(AES): 하나의 키로 암호화와 복호화를 수행하며 빠르지만 키 분배가 어렵습니다.
- 비대칭키 암호화(RSA, ECC): 공개키와 개인키를 사용해 키 교환이나 전자서명에 활용되지만 연산 속도가 느립니다.
- 단방향 암호화(SHA-256, bcrypt): 복호화가 불가능해 비밀번호 저장이나 데이터 무결성 검증에 적합합니다.
실제 서비스에서는 이들을 혼합해 사용합니다. 예를 들어 HTTPS는 비대칭키로 세션키를 교환하고, 실제 데이터는 AES로 암호화하며, 해시로 무결성을 보장합니다.