암호화 알고리즘에 대해 자세한 내용을 알고 싶으신가요? 암호화 알고리즘은 정보처리기사에서 자주 나오는 문제입니다. 보다 상세한 암기를 해야 시험에서 활용할 수 있습니다. 대칭키가 무엇인지 부터 세부 알고리즘들의 특징을 보고 정답을 맞추는 방식입니다.
64비트 블록 크기와 56비트 키 길이를 가지는 개인키 암호화 알고리즘은 ?과 같이 문제가 나올 가능성이 높습니다.
현실적으로 웹 개발에서는 알고리즘을 자주 마주하게 되는데, 어떤 알고리즘인지 이름 정도와 요약된 정보를 알고 있으면 됩니다. 언제 만들어졌고 누가 만들었는지까지는 중요하지 않죠.
하지만, 시험을 본다면 상세내용을 아는 것이 좋습니다. 아래 bold체를 중심으로 반복하여 보실 것을 권유드립니다.
대칭 알고리즘 : 스트림, 블록
대칭 알고리즘은 암호화와 복호화에 동일한 키를 사용하는 알고리즘입니다. 이 알고리즘은 데이터를 블록 단위로 처리하거나 스트림 형태로 처리할 수 있습니다. 블록 암호화는 입력 데이터를 고정된 크기의 블록으로 나누어 처리하고, 스트림 암호화는 연속적인 데이터 스트림을 처리합니다. 대표적인 대칭 알고리즘으로는 DES (Data Encryption Standard), AES (Advanced Encryption Standard), Blowfish 등이 있습니다. 대칭 알고리즘은 암호화와 복호화 과정이 빠르지만, 키 분배 문제와 키 관리의 어려움이 있을 수 있습니다.
[Block 암호화 알고리즘]
블록 암호화는 고정된 크기의 블록으로 데이터를 처리하는 암호화 알고리즘입니다. 블록 암호화에서는 입력 데이터가 블록 단위로 나누어지고, 각 블록은 키와 함께 암호화되거나 복호화됩니다. 블록 암호화 알고리즘은 대칭 암호화와 관련이 있으며, 블록 크기, 키 크기, 라운드 수 등의 매개 변수에 따라 다양한 알고리즘이 있습니다. 대표적인 블록 암호화 알고리즘으로는 DES, AES, Triple DES 등이 있습니다. 블록 암호화는 안전한 데이터 처리와 암호화 품질을 보장하기 위해 다양한 보안 기법과 모드가 사용됩니다.
- DES (Data Encryption Standard)
- 개발 연도: 1975년
- 개발 기관: IBM (미국 국립표준기술연구소와 함께)
- 키 크기: 56비트
- 블록 크기: 64비트
- 라운드 수: 16라운드
- 방식: 블록 암호화
- 설명: DES는 초기에 광범위하게 사용된 대칭 암호화 알고리즘입니다. 그러나 56비트 키 크기가 현대의 보안 요구를 충족하지 못하는 것으로 인식되어 AES로 대체되는 추세입니다.
- 3DES (Triple Data Encryption Standard)
- 개발 연도: 1998년
- 개발 기관: IBM
- 키 크기: 112비트 또는 168비트
- 블록 크기: 64비트
- 라운드 수: 48라운드
- 방식: 블록 암호화
- 설명: 3DES는 DES를 강화한 알고리즘으로, 동일한 암호화 알고리즘을 세 번 반복하여 사용합니다. 강력한 보안 수준을 제공하지만 계산 비용이 높아집니다.
- SEED
- 개발 연도: 1998년
- 개발 기관: 한국인터넷진흥원(KISA)
- 키 크기: 128비트 또는 256비트
- 블록 크기: 128비트
- 라운드 수: 16라운드
- 방식: 블록 암호화
- 설명: SEED는 한국에서 개발된 대칭 암호화 알고리즘으로, 한국에서의 보안 요구를 충족하기 위해 사용됩니다. AES와 유사한 수준의 보안을 제공합니다.
- AES (Advanced Encryption Standard)
- 개발 연도: 2001년
- 개발 기관: 미국 국립표준기술연구소(NIST)
- 키 크기: 128비트, 192비트, 256비트
- 블록 크기: 128비트
- 라운드 수: 10, 12, 또는 14라운드 (키 크기에 따라 다름)
- 방식: 블록 암호화
- 설명: AES는 현재 가장 널리 사용되는 대칭 암호화 알고리즘입니다. 빠른 암복호화 속도와 높은 보안 수준을 제공합니다. 키 크기에 따라 다른 버전이 있으며, 128비트 키 크기의 AES-128이 가장 널리 사용됩니다.
- ARIA
- 개발 연도: 2003년
- 개발 기관: 한국국가정보원, 산업연구협력단
- 키 크기: 128비트, 192비트, 256비트
- 블록 크기: 128비트
- 라운드 수: 12라운드
- 방식: 블록 암호화
- 설명: ARIA는 한국에서 개발된 대칭 암호화 알고리즘으로, 국가 보안 요구사항을 충족하기 위해 사용됩니다. AES와 유사한 수준의 보안을 제공합니다.
- IDEA (International Data Encryption Algorithm)
- 개발 연도: 1991년
- 개발 기관: Xuejia Lai 및 James Massey
- 키 크기: 128비트
- 블록 크기: 64비트
- 라운드 수: 8라운드
- 방식: 블록 암호화
- 설명: IDEA는 DES에 대한 대안으로 개발된 대칭 암호화 알고리즘입니다. 그러나 현재는 AES와 같은 다른 알고리즘에 비해 널리 사용되지는 않습니다.
[Stream 암호화 알고리즘]
스트림 암호화는 연속적인 데이터 스트림을 처리하는 암호화 알고리즘입니다. 데이터를 작은 단위로 나누어 순차적으로 암호화하거나 복호화합니다. 스트림 암호화는 비트 또는 바이트 수준에서 작동하며, 데이터가 도착하는 대로 실시간으로 처리할 수 있습니다.
- LFSR (Linear Feedback Shift Register)
- 현재 상태의 선형 연산을 통해 다음 상태를 생성하는 레지스터
- XOR 함수를 사용하여 연산을 수행
- 주로 의사난수 생성기나 시퀀스 암호화에 사용됨
- RC4 (Rivest Cipher 4)
- 평문 1바이트와 암호키 1바이트를 XOR 처리하여 암호문 1바이트를 생성
- 옥텟 단위로 처리되며, 로널드 라이베스트가 개발
- 전송보안계층(TLS/SSL)이나 웹 등 다양한 프로토콜에서 사용됨
비대칭 알고리즘
비대칭 알고리즘은 암호화와 복호화에 서로 다른 키를 사용하는 알고리즘입니다. 이 알고리즘은 공개키와 개인키를 사용하여 데이터를 암호화하고 복호화합니다. 공개키는 누구나 알 수 있고, 개인키는 비밀로 유지됩니다. 공개키로 암호화된 데이터는 개인키로만 복호화할 수 있습니다. 대표적인 비대칭 알고리즘으로는 RSA, DSA, ECC 등이 있습니다. 비대칭 알고리즘은 안전한 키 교환과 디지털 서명 등의 보안 기능을 제공하지만, 대칭 알고리즘에 비해 계산 비용이 높을 수 있습니다.
- Diffie-Hellman
- 개발 연도: 1976년
- 개발자: Whitfield Diffie, Martin Hellman
- 방식: 키 교환
- 설명: Diffie-Hellman은 공개키 교환 프로토콜로, 안전한 통신 채널 없이 공개된 환경에서 비밀 키를 교환하기 위해 사용됩니다. 키 교환 알고리즘의 선구자로 알려져 있습니다.
- RSA
- 개발 연도: 1977년
- 개발자: Ron Rivest, Adi Shamir, Leonard Adleman
- 방식: 공개키 암호화, 전자 서명
- 설명: RSA는 공개키 암호화와 전자 서명 등 다양한 보안 기능에 사용되는 알고리즘입니다. 대표적인 공개키 암호화 알고리즘으로 알려져 있으며, 공개 키와 개인 키를 사용하여 데이터의 암호화 및 복호화를 수행합니다.
- ECC (Elliptic Curve Cryptography)
- 개발 연도: 1985년
- 개발자: Neal Koblitz, Victor S. Miller
- 방식: 공개키 암호화, 전자 서명
- 설명: ECC는 타원 곡선을 기반으로 한 공개키 암호화와 서명 알고리즘입니다. RSA와 비교했을 때 키 크기가 작으면서도 동일한 수준의 보안을 제공하므로, 휴대폰 등 리소스 제한된 환경에서 사용되기에 적합합니다.
- ElGamal
- 개발 연도: 1985년
- 개발자: Taher Elgamal
- 방식: 공개키 암호화, 서명
- 설명: ElGamal은 공개키 암호화와 디지털 서명에 사용되는 알고리즘입니다. Diffie-Hellman 키 교환을 기반으로 하여 개발되었으며, 비대칭 암호화와 서명 기능을 모두 제공합니다.
일방향 알고리즘
[Hash]
해시 알고리즘은 임의의 크기를 가진 데이터를 고정된 크기의 해시 값으로 변환하는 알고리즘입니다. 해시 함수는 입력 데이터에 대해 고유한 해시 값을 생성하며, 동일한 입력에 대해서는 항상 동일한 해시 값을 반환합니다. 해시 함수는 일방향 함수로, 해시 값을 통해 원래 데이터를 복원할 수 없습니다. 대표적인 해시 알고리즘으로는 MD5, SHA-1, SHA-256 등이 있습니다. 해시 알고리즘은 암호화보다는 데이터 무결성 검사, 패스워드 저장, 디지털 지문 등에 주로 사용됩니다. 안전한 해시 알고리즘은 충돌 방지와 반복 알고리즘을 통해 보안성을 강화합니다.
- SHA (Secure Hash Algorithm)
- 미국 국가 안보국(NSA)이 1993년에 설계한 해시 암호화 알고리즘
- 미국 국가 표준으로 지정되어 있음
- 주로 무결성 검사, 메시지 인증 등 다양한 보안 목적으로 사용됨
- MD5 (Message-Digest Algorithm 5)
- 128비트 암호화 해시 함수로, RFC 1321로 지정되어 있음
- 주로 프로그램이나 파일의 무결성 검사 등에 사용됨
- 보안적인 취약점이 발견되어 현재는 안전한 애플리케이션에는 권장되지 않음
- HAS-160
- 국내 표준 전자서명 알고리즘인 KCDSA에 사용되는 160비트 암호학적 해시 함수
- SHA-1과 유사한 구조를 가지고 있음
- 주로 한국에서 전자서명 및 인증 관련 용도로 사용됨
이렇게 구체적으로 암호화 알고리즘들을 설명해드렸습니다. 각 알고리즘은 특정한 용도와 보안 요구사항에 맞게 선택되고 사용됩니다.
암호화 알고리즘 표
방식 | 방식 | 알고리즘명 | 년도 | 개발 기관 | 크기(단위) | 길이(키) | 라운드 | 방식 |
양방향 | 대칭키 | DES(Data Encryption Standard) | 1975 | IBM | 64 | 56 | 16 | 블록 |
3DES (DES 3번 암,복호화) | 1998 | IBM | 64 | 56 | ||||
SEED(SEcure Encryption Algorithm) | 1999 | 한국전자통신연구원(KETI) | 128 (256) | 64 | 16 | 블록 | ||
AES 3D성능개선 | 2001 | 미국 표준 기술 연구소 (NIST) | 128 | 128 192,256 | 10,12,14 4가지 계층 | 블록 | ||
ARIA (Advanced Encryption Standard Robust Innovation Algorithm) AES를 대체하기 위해 나옴. XOR | 2004 | 한국전자통신연구원(KETI) | 128 | 128,192,256. | – | 블록 | ||
IDEA(International Data Encryption Algorithm) DES 대체 | 1991 | 스위스연방기술기관 | 64 | 128 | 8 | 블록 | ||
LFRS(Linear Feedback Shift Register) 초기 비트값 SEED | 1949 | Claude Shannon (MIT) | 난수, XOR | 스트림 | ||||
대칭 : 암호화 복호화 키가 두개 | ||||||||
비대칭키 | 알고리즘명 | 특징 | ||||||
Diffie-Hellman 최초 공개키 /2사용자 공개 | 1976 | Whitfield Diffie, Martin Hellman | 대칭키 분배를 위한 키 교환 프로토콜, 공개키 암호화 방식을 기반으로 함 | |||||
RSA | 1977 | MIT Ron Rivest, Adi Shamir, Leonard Adleman | 공개키 암호화 및 디지털 서명 알고리즘, 대칭키보다 안전한 암호화 방식 | |||||
ECC | 1985 | Neal Koblitz, Victor Miller | 타원 곡선 암호화 알고리즘, 작은 키 크기로 높은 수준의 보안성을 제공함 | |||||
ElGmal | 1984 | Taher Elgamal | 공개키 암호화 알고리즘, 대칭키를 교환하기 위해 사용됨 |