책/2024 수제비 정보처리기사
[정보처리기사] 암호 알고리즘
yn98
2024. 10. 17. 01:30
암호 알고리즘
→ 데이터의 무결성 및 기밀성 확보를 위해 정보를 쉽게 해독할 수 없는 형태로 변환하는 기법

▼ 암호 알고리즘 비교
구분 | 대칭 키 암호 방식 | 비대칭 키 암호 방식 |
키 | → 대칭 키(비밀키) | → 비대칭 키(공개 키, 사설 키 |
키의 관계 | → 암호화 키 = 복호화 키 | → 암호화 키 != 복호화 키 |
키 개수 | → n(n-1)/2 | → 2n |
암호 알고리즘 | → 공개 | → 공개 |
장점 | → 계산 속도가 빠름 | → 암호화 키 사전 공유 불필요 → 관리해야 할 키 개수가 적음 |
단점 | → 키 분배 및 관리의 어려움 → 기밀성만 보장 |
→ 계산 속도 느림 |
알고리즘 | → DES, AES, SEED | → 디피-헬만, RSA |
해시 함수
→ 임의의 길이를 갖는 임의의 데이터를 고정된 길이의 데이터로 매핑하는 단방향 함수
▼ 일방향 암호 방식 ★
방식 | 설명 |
MAC (Message Authentication Code) |
→ 키를 사용하는 메시지 인증 코드로 메시지의 정당성을 검증하기 위해 메시지와 함께 전송되는 값 → 메시지의 무결성과 송신자의 인증을 보장 |
MDC (Modification Detection Code) |
→ 키를 사용하지 않는 변경 감지 코드로 수신자는 받은 데이터로부터 새로운 MDC를 생성하여 송신자에게 받은 MDC와 비교하여 해당 메시지가 변경되지 않았음을 보장하는 값 → 메시지의 무결성 보장 |
▼ 대칭 키 암호화 알고리즘 ★★★
종류 | 설명 |
DES (Data Encryption Standard) |
→ 1975년 IBM에서 개발하고 미국의 연방 표준국(NIST)에서 발표한 대칭 키 기반의 블록화 알고리즘 → 블록 크기는 64bit, 키 길이는 56bit인 페이스텔 구조, 16라운드 암호화 알고리즘 → DES를 3번 적용하여 보안을 더욱 강화한 3 DES(Triple DES)도 활용됨 |
SEED | → 1999년 국내 한국인터넷진흥원(KISA)이 개발한 블록 암호화 알고리즘 → 128bit 비밀키로부터 생성된 16개의 64bit 라운드 키를 사용하여 총 16회의 라운드를 거쳐 128bit의 평문 블록을 128bit 암호문 블록으로 암호화하여 출력하는 방식 → 블록 크기는 128bit이며, 키 길이에 따라 128bit, 256bit로 분류 |
AES (Advanced Encryption Standard) |
→ 2001년 미국 표준 기술 연구소(NIST)에서 발표한 블록 암호화 알고리즘 → DES의 개인 키에 대한 전사적 공격이 가능해지고, 3 DES의 성능 문제를 극복하기 위해 개발 → 블록 크기는 128bit이며, 키 길이에 따라 128bit, 192bit, 256bit로 분류 → AES의 라운드 수는 10, 12, 14라운드로 분류되며, 한 라운드는 SubBytes, ShiftRows, MixColumns, AddRoundKey의 4가지 계층으로 구성 |
ARIA (Academy, Research Institute, Agency) |
→ 2004년 국가정보원과 산학연구협회가 개발한 블록 암호화 알고리즘 → ARIA는 학계(Academy), 연구기관(Research Institute), 정부(Agency)의 영문 앞글자로 구성 → 블록 크기는 128bit이며, 키 길이에 따라 128bit, 192bit, 256bit로 분류 → ARIA는 경량 환경 및 하드웨어에서의 효율성 향상을 위해 개발되었으며, ARIA가 사용하는 대부분의 연산은 XOR과 같은 단순한 바이트 단위 연산으로 구성 |
IDEA (International Data Encryption Algorithm) |
→ DES를 대체하기 위해 스위스 연방기술 기관에서 개발한 블록 암호화 알고리즘 → 128bit의 키를 사용하여 64bit의 평문을 8라운드에 거쳐 64bit의 암호문을 만듦 |
LFSR (Linear Feedback Shift Register) |
→ 시프트 레지스터의 일종으로, 레지스터에 입력되는 값이 이전 상태 값들의 선형 함수로 계산되는 구조로 되어 있는 스트림 암호화 알고리즘 → LFSR에서 사용되는 선형 함수는 주로 배타적 논리합(XOR)이고, LFSR의 초기 비트 값은 시드(Seed)라고 함 |
Skipjack | → 미 국가안보국(NSA; National Security Agency)에서 개발한 Clipper 칩에 내장된 블록 알고리즘 → 소프트웨어로 구현되는 것을 막고자 Fortezza Card에 칩 형태로 구현됨 → 전화기와 같이 음성을 암호화하는 데 주로 사용되고 64비트의 입 출력, 80비트의 키, 32라운드를 가짐 |
▼ 비대칭 키 암호화 알고리즘 ★★★
종류 | 설명 |
디피- 헬만 (Diffie-Hellman) |
→ 최초의 공개키 알고리즘으로 W.Diffie와 M.Hellman이 1976년에 고안한 알고리즘으로서 유한 필드 내에서 이산대수의 계산이 어려운 문제를 기본 원리로 하고 있음 → Diffie-Hellman은 공개키 암호 방식의 개념을 이용하여 두 사용자 간에 공통의 암호화 키를 안전하게 공유할 방법을 제시하였으며, 많은 키 분배 방식에 관한 연구의 기본이 됨(최초의 비밀키 교환 프로토콜) |
RSA (Rivest-Shamir-Adleman) |
→ 1977년 3명의 MIT 수학 교수(Rivewt, Shamir, Adleman)가 고안한 큰 인수의 곱을 소인수 분해하는 수학적 알고리즘을 이용하는 공개키 암호화 알고리즘 → 비밀키의 복호화가 어려운 RSA 안정성은 소인수 분해 문제의 어려움에 근거를 두고 있음 |
ECC (Elliptic Curve Cryptography) |
→ 1985년 코블리치와 밀러가 RSA 암호 방식에 대한 대안으로 제안한 공개키 암호화 알고리즘 → 유한체 위에서 정의된 타원곡선 군에서의 이산대수의 문제에 기초한 공개키 암호화 알고리즘 → PKI 기반의 RSA의 문제점인 속도와 안정성을 해결하기 위해 타원 기반 구조체의 안정성과 효율성을 기반으로 생성되었고, RSA보다 키의 비트 수를 적게 하면서 동일한 성능을 제공 |
EIGamal | → T.EIGamal이 1984년에 제안한 공개키 알고리즘 → 이산대수의 계산이 어려운 문제를 기본 원리로 하고 있으며, RSA와 유사하게 전자서명과 데이터 암/복호화에 함께 사용 가능 |
▼ 해시 암호화 알고리즘
종류 | 설명 |
MD5 (Message-Digest algorithm 5) |
→ 1991년 R.rivest가 MD4를 개선한 암호화 알고리즘으로 프로그램이나 파일의 무결성 검사에 사용 → 각각의 512비트짜리 입력 메시지 블록에 대해 차례로 동작하여 128비트의 해시값을 생성하는 해시 알고리즘 |
SHA-1 (Secure Hash Algorithm) |
→ 1993년 NSA에서 미 정부 표준으로 지정되었고, DSA(Digital Signature Algorithm)에서 사용 → 160비트의 해시값을 생성하는 해시 알고리즘 |
SHA-256/384/512 (Secure Hash Algorithm) |
→ SHA 알고리즘의 한 종류로서 256비트의 해시값을 생성하는 해시함수 → AES(Advanced Encryption Standard, 미연방 표준 알고리즘)의 키 길이인 128, 192, 256비트에 대응하도록 출력 길이를 늘인 해시 알고리즘 |
HAS-160 | → 국내 표준 서명 알고리즘 KCDSA(Korean Certificate-based Digital Signature Algorithm)를 위하여 개발된 해시함수 → MD5와 SHA1의 장점을 취하여 개발된 해시 알고리즘 |
HAVAL | → 메시지를 1024bits 블록으로 나누고 128, 160, 192, 224, 256 비트인 메시지 다이제스트를 출력하는 해시 알고리즘 |