[정보처리기사] 암호 알고리즘 | 양방향 암호화(대칭 키 암호화와 비대칭 키 함호화)와 단방향 암호화(Hash, 해시)
암호화 알고리즘은 데이터를 보호하기 위한 기술로,
양방향 암호화와 단방향 암호화로 나뉩니다.
양방향 암호화는 데이터를 암호화하고 다시 복호화할 수 있는 방식이며,
단방향 암호화는 데이터를 암호화하면 복호화할 수 없는 방식입니다.
📌 양방향 암호화 : 대칭 키 암호화와 비대칭 키 함호화
1️⃣ 대칭 키 암호화 (개인키 암호화)
개인키 암호화는 동일한 키로 데이터를 암호화하고 복호화하는 방식으로,대칭 암호 기법 또는 단일키 암호화 기법이라고도 합니다.
이 방식은 암호화/복호화 속도가 빠르지만, 관리해야 할 키의 수가 많다는 단점이 있습니다.
양방향 암호화 방식 중 대칭키 암호화는 크게 두 가지 방식으로 나뉩니다
🔎 스트림 암호화 방식 (Stream Cipher)
평문과 동일한 길이의 스트림을 생성하여 비트 단위로 암호화하는 방식입니다.
- 종류:
- LFSR (Linear Feedback Shift Register)
- 선형 피드백 시프트 레지스터
- RC4
- 인터넷 보안 프로토콜에서 널리 사용
- A5
- GSM 통신에서 사용
- LFSR (Linear Feedback Shift Register)
🔎 블록 암호화 방식 (Block Cipher)
한 번에 하나의 데이터 블록을 암호화하는 방식입니다.
- 종류:
- DES (Data Encryption Standard) :
- 1975년 미국 NBS에서 발표한 블록 암호화 알고리즘.
- 블록 크기 64비트, 키 길이 56비트, 16회 라운드, 2001년 AES로 대체
- Feistel 구조
- AES (Advanced Encryption Standard) :
- 2001년 미국 표준 기술 연구소(NIST)에서 발표한 블록 암호화 알고리즘.
- 블록 크기 128비트, 키 길이는 128/192/256bit 10/12/14 라운드.
- 키 길이에 따라 AES-128, AES-192, AES-256으로 분류.
- SPN 구조이다
- DES를 대신하여 새로운 표준이 되었다.
- IDEA (International Data Encryption Algorithm) :
- 스위스에서 개발한 블록 암호화 알고리즘.
- 블록 크기 64비트, 키 길이 128비트., 8라운드, Feistel+SPN구조
- Skipjack :
- 국가 안전보장국에서 개발한 알고리즘. 클리퍼 칩이라는 IC칩에 내장. 주로 음성 통신 장비에 삽입되어 음성 데이터를 암호화.
- 64비트 블록, 80바트 키, 32라운드, Feistel 변형
- SEED :
- 1999년 한국인터넷진흥원(KISA)에서 개발한 블록 암호화 알고리즘.
- 블록 크기는 128비트, 키 길이는 128비트, 16라운드, Feistel 구조
- ARIA (Academy Research Institute, Agency) :
- 2004년 국가정보원과 산학연협회가 개발한 블록 암호화 알고리즘.(한국)
- 128비트 블록, 128/192/256비트 키, 12/14/16라운드, SPN구조
- LEA
- 한국에서 개발
- 128비트 블록, 128/192/256비트 키, 24/28/32라운드, SPN구조 (경량)
- DES (Data Encryption Standard) :
2️⃣ 비대칭 키 함호화 (공개키 암호화)
공개키 암호화는 비대칭 암호 기법이라고도 하며, 암호화할 때 사용하는 공개키(Public Key)는 사용자에게 공개하고, 복호화할 때 사용하는 비밀키(Secret Key)는 관리자가 비밀리에 관리합니다. 이 방식은 관리해야 할 키의 수가 적지만, 암호화/복호화 속도가 느립니다.
- 공개키(Public Key): 데이터를 암호화할 때 사용. 누구나 접근 가능.
- 개인키(Private Key): 데이터를 복호화할 때 사용. 소유자가 비밀리에 관리.
비대칭 암호화 알고리즘은 수학적 문제의 계산적 난해성에 기초합니다. 아래는 대표적인 공개키 암호 알고리즘입니다.
🔎 소인수 분해
- RSA
- Rabin
🔎 이산대수
- 디피-헬만 (Diffie-Hellman)
- DSA
- ELGamal
🔎 이산대수 + 타원곡선
- ECC (이산대수+타원곡선)
📌 단방향 암호화 (Hash)
단방향 암호화는 암호화된 데이터를 복호화할 수 없는 방식입니다. 이 방식은 보통 해시 함수(Hash Function)를 통해 데이터를 처리하며, 데이터 무결성 확인 및 비밀번호 저장 등에 사용됩니다.
해시 함수는 입력 데이터를 기반으로 고유한 해시값을 생성하지만, 해시값만으로 원래 데이터를 복원할 수 없습니다.
즉, 암호화 과정이 단방향으로만 동작합니다.
🔎 단방향 암호 알고리즘
- MD5 (Message Digest Algorithm 5): 1991년 R.Rivest가 MD4를 대체하기 위해 고안한 해시 함수. 블록 크기 512비트, 해시값 128비트. 빠른 계산 속도. 취약점이 발견되었다.
- SHA 시리즈: 1993년 미국 국가안보국(NSA)이 설계, 미국 국립표준기술연구소(NIST)에서 발표. SHA-0, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512.
- HAS-160 :한국에서 개발된 해시 함수, KCDSA(디지털서명)에 사용
2020년 정보처리기사 실기 기출문제
문제
RFC 1321로 지정되어 있으며, 주로 프로그램이나 파일이 원본 그대로 인지를 확인하는 무결성 검사 등에 사용된다. 1991년 로널드 라이베스트가 예전에 쓰이던 MD4를 대체하기 위해 고안된 128비트 암호화 해시 함수는 무엇인가?
정답
MD5(Message Digest Algorithm 5)
2020년 정보처리기사 실기 기출문제
문제
1990년 R.Rivert가 MD4를 일방향 해시 함수로 개선한 알고리즘으로, 임의의 길이의 값을 입력받아서 128비트 길이의 해시값을 출력하는 알고리즘은 무엇인지 쓰시오.
정답
MD5(Message Digest Algorithm 5)
2021년 2회 정보처리기사 실기 기출문제
문제
다음에 설명하는 대칭키 암호를 쓰시오
- 2001년 미국 표준 기술 연구소(NIST)에서 발표한 블록 암호화 알고리즘.
- 블록 크기 128비트, 키 길이는 128/192/256bit. 키 길이에 따라 AES-128, AES-192, AES-256으로 분류.
- SPN 구조이다
- DES를 대신하여 새로운 표준이 되었다.
정답
AES(Advanced Encryption Standard)
해설
AES(Advanced Encryption Standard)는 동일한 키를 사용해 데이터를 암호화하고 복호화하는 대칭 키 암호화 방식입니다. 128비트 블록 크기와 128, 192, 256비트 키 크기를 지원하며, 보안성과 효율성이 뛰어나 가장 널리 사용되는 암호화 알고리즘입니다.
2021년 3회 정보처리기사 실기 기출문제
문제
다음에 설명하는 암호 알고리즘이 무엇인지 쓰시오.
- 블록 암호화의 일종으로, IBM에서 개발하고, 미국 NBS(현재 NIST)에서 국가 표준으로 정한 암호화 알고리즘으로, 대칭키 암호 알고리즘이다.
- 취약점이 발견되어 현재는 잘 사용되지 않는다.
- 블록 크기는 64비트, 키 길이는 56회이며 16라운드를 수행한다.
- 블록 크기가 64비트이고, 키 길이는 오류 검출용 8비트를 제외한 56비트이며, 16라운드를 수행하는 대칭키 암호 알고리즘으로, 64비트 평문을 64비트 암호문으로 변환한다.
- 페이스텔(Feistel) 구조를 사용한다
정답
DES (Data Encryption Standard)
해설
DES(Data Encryption Standard)는 IBM에서 개발하고, 미국 NBS(현재 NIST)에서 국가 표준으로 지정한 블록 암호화 알고리즘이다. 이 알고리즘은 대칭키 암호 방식으로, 64비트 블록 단위로 데이터를 암호화하며, 키 길이는 오류 검출용 8비트를 제외한 56비트로 구성된다. 또한, 총 16라운드의 암호화 과정을 거치며, 페이스텔(Feistel) 구조를 기반으로 동작한다.
그러나 DES는 키 길이가 짧아 브루트 포스(무차별 대입) 공격에 취약하다는 단점이 있다. 특히, 현대 컴퓨팅 기술의 발전으로 인해 키를 빠르게 크랙할 수 있게 되면서 보안성이 약화되었고, 현재는 안전한 암호화 방식을 제공하는 AES(Advanced Encryption Standard)나 3DES(Triple DES) 등의 알고리즘이 주로 사용된다.
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."