암호화 알고리즘
정보를 안전하게 전송하거나 저장하기 위해 사용되는 수학적인 절차
이 알고리즘들은 데이터를 변환하거나 숨기는 방법을 제공하여 외부에서 알아볼 수 없도록 만들어줍니다.
대칭 키 암호화(Symmetric Key Encryption)
대칭 키 암호화는 암호화와 복호화에 같은 키를 사용하는 알고리즘
빠르고 효율적이지만, 키를 안전하게 공유해야 한다.
AES(Advanced Encryption Standard)
- 현재 가장 널리 사용되는 대칭 키 암호화 알고리즘 중 하나
- 미국 국립표준기술연구소(NIST)에 의해 2001년에 공식적으로 표준으로 채택
- AES는 128비트, 192비트, 256비트 세 가지 키 길이를 지원하며, 블록 암호화 방식을 사용
- 블록 암호화는 고정된 크기의 데이터 블록을 암호화하는 방식으로, AES에서는 128비트 블록 크기를 사용
DES(Data Encryption Standard)m
- 초기 미국 국립표준기술연구소(NIST)에서 정한 표준으로 사용
- 현재는 보안성이 약해짐에 따라 보다 강력한 암호화 알고리즘으로 대체(AES)
- 56비트의 키 길이를 가지며, 64비트 블록 크기를 가진 블록 암호화 알고리즘
공개 키 암호화(Public Key Encryption)
공개 키 암호화는 암호화와 복호화에 서로 다른 키를 사용하는 알고리즘
이를 통해 대칭 키 암호화의 키 교환 문제를 해결
키 교환 문제?
- 암호화에 사용되는 비밀 키를 안전하게 공유하는 문제
암호화에는 공개 키를 사용하고, 복호화에는 해당 키 쌍의 비밀 키를 사용
RSA(Rivest-Shamir-Adleman)
- 소인수 분해 기반
- 매우 큰 두 개의 소수를 선택하고, 이를 기반으로 공개 키와 개인 키를 생성
= 이 때 소수의 소인수 분해는 쉽지 않은 계산 문제로 알려져 있으며, RSA의 보안성은 이 소인수 분해의 어려움에 기반합니다.
- 대칭 키 암호화 알고리즘에 비해 상대적으로 느리며, 더 긴 키 길이를 필요로 하기 때문에 자원이 제한된 환경에서는 효율적이지 않을 수 있음
ECC(Elliptic Curve Cryptography)
- 타원 곡선을 기반으로 보안 기능을 제공
- ECC는 RSA와 비교했을 때 더 작은 키 크기로 동일한 수준의 보안을 제공하며, 더 효율적인 암호화와 키 교환 가능
- ECC의 핵심 아이디어는 타원 곡선에서 정의된 연산을 사용하여 암호화와 관련된 계산을 수행하는 것
- 타원 곡선은 다음과 같은 수학적 속성을 갖고 있어 보안에 유리:
- 타원 곡선 위의 점들의 집합은 연산에 대해 닫혀 있다. 즉, 두 점을 연결하면 항상 다른 점이 타원 곡선 위에 존재한다.
- 타원 곡선에서는 덧셈과 스칼라 곱셈 연산이 정의되어 있다. 이러한 연산들은 타원 곡선 암호화에서 사용되는 핵심 연산으로, 효율적인 계산을 가능하게 한다.
해시 함수(Hash Functions):
해시 함수는 임의의 크기의 데이터를 고정된 크기의 해시 값으로 매핑하는 함수
해시 함수는 단방향 함수로, 해시 값을 통해 원래 데이터를 복원할 수 없음
MD5(Message Digest Algorithm 5)
- 현재는 보안성이 취약하다는 이유로 안전한 용도로는 권장되지 않음
- 128비트의 해시값을 생성
- 빠른 계산 속도를 가지고 있어 대량의 데이터에 대한 해시 계산이 빠르게 이루어질 수 있지만, 충돌 가능성이 있음
SHA(Secure Hash Algorithm)
- SHA 계열에는 여러 버전이 있으며, 각 버전은 해시값의 크기와 연산 프로세스의 차이점을 가지고 있음
- SHA-1:
- 160비트 해시값을 생성
- SHA-1은 1995년에 개발되었으며, 이전에는 널리 사용되었으나 현재는 안전하지 않다고 여겨짐
- 충돌 공격에 취약한 취약점을 가지고 있어, 안전한 용도로는 권장되지 않음
- SHA-2:
- SHA-2는 SHA-256, SHA-384, SHA-512 등의 변종으로 구성
- 각각 256비트, 384비트, 512비트의 해시값을 생성
- SHA-2 계열은 현재 보안 요구 사항을 충족하기 위해 널리 사용되는 알고리즘
- SHA-256은 가장 일반적으로 사용되는 버전으로, 안전한 데이터 통신, 디지털 서명, 데이터 무결성 등 다양한 보안 응용에서 활용 중
- SHA-3:
- SHA-3는 2015년에 발표된 최신 버전으로, Keccak 알고리즘을 기반
- SHA-3은 SHA-256과 비교했을 때 구조와 알고리즘이 다르며, 224비트, 256비트, 384비트, 512비트의 해시값을 생성
- SHA-3는 암호 분석에 대한 최신 연구 결과를 반영하고 보안성이 검증된 알고리즘으로 인정받고 있음
중요한 것은 적절한 암호화 알고리즘과 올바른 키 관리 방법을 사용하여 데이터를 안전하게 보호하는 것