01. 암호학 (Cryptography)
암호학은 데이터의 기밀성, 무결성, 인증을 보호하기 위한 이론과 기술의 총칭.
핵심은 제 3자가 메시지를 가로채더라도 내용을 알 수 없도록 만드는 것!!
▶ 암호 시스템(Cryptosystem)의 구성 요소
|
🔤 평문 (Plaintext)
암호화 되지 않은 원본 데이터→ 보호해야 할 실제 정보이며, 누구나 읽을 수 있는 형태 |
🔒 암호문 (Ciphertext)
평문을 암호화하여 만든 데이터→ 제3자가 읽어도 내용을 알 수 없는 형태로 변환됨 |
|
⚙️ 암호화 알고리즘
평문을 암호문으로 변환하는 알고리즘. → 송신자가 수행하며, 암호화 키를 사용 |
🔓 복호화 알고리즘
암호문을 평문으로 복원하는 알고리즘→ 수신자가 수행하며, 복호화 키를 사용 |
키(Key)는 암복호화 과정에서 사용되는 핵심 값
but, 암호화 키와 복호화 키는 암호 시스템의 종류에 따라 같을 수도(대칭키), 다를 수도(공개키) 있음
▶ 암호 시스템 관련 관계자
- 송신자/수신자 : 정당한 통신 당사자. 사전에 합의된 암호화 방식과 키를 공유함
- 도청자 : 통신에 직접 관여하지 않고 네트워크 상의 정보를 관찰하는 소극적 공격자. (ex: 패킷 스니핑)
- 악의적 공격자 : 데이터 위/변조, 재전송 등 적극적으로 개입하는 공격자. (단순 도청을 넘어 통신 자체를 방해하거나 조작)
- 신뢰할 수 있는 중재자 : 송신자와 무관한 중립적 제3자. 키 분배, 인증서 발급 등의 역할을 담당 (ex : CA, KDC)
▶ 암호 시스템 안전성
|
절대 안전성 (Unconditionally Secure)
- 암호문이 아무리 많아도 평문을 추론하기에 충분한 정보를 제공하지 않는 수준- 이론적으로 완전한 안전성이지만 현실적으로 구현이 어려움 - ex : OTP(일회용 패드) |
|
계산상 안전성 (Computationally Secure)
- 현재 컴퓨팅 기술로는 해독에 수천~수억 년이 걸려 사실상 안전한 수준- AES, RSA 등 현대 암호 시스템이 목표로 하는 안전성 |
▶ 암호 공격
|
COA : 암호문 단독 공격 (Ciphertext Only Attack)
![]() - 공격자가 암호문만 가진 상황
- 통계적 분석, 문자 빈도 분석 등을 이용해 평문이나 키 추측 - 가장 제약이 많지만 현실에서 흔한 상황 |
KPA : 알려진 평문 공격 (Known Plaintext Attack)
![]() - 공격자가 일부 (평문, 암호문) 쌍을 가진 상황
- 이 쌍을 이용해 키나 암호화 알고리즘의 패턴을 분석 - COA보다 강력한 공격 |
|
CPA : 선택 평문 공격 (Chosen Plaintext Attack)
![]() - 공격자가 원하는 평문을 자유롭게 암호화하여 결과를 얻을 수 있는 상황
- 암호화 오라클에 접근 가능한 경우 해당 |
CCA : 선택 암호문 공격 (Chosen Ciphertext Attack)
![]() - 공격자가 원하는 암호문을 자유롭게 복호화하여 결과를 얻을 수 있는 상황
- 공개키 암호 시스템에서 특히 위협적 - 현대 암호 시스템은 CCA에 대한 안전성을 목표로 설계됨 |
▶ 암호 해독 기술 (암호 시스템 공격 기술)
- 전수/무차별 공격 : 가능한 모든 키 조합을 시도하는 방법
→ 키 길이가 길수록 경우의 수가 기하급수적으로 증가하여 현실적으로 불가능해짐 - 수학적 공격 : 암호화 알고리즘의 수학적 구조와 약점을 분석하여 키를 파악하는 방법
→ 대수적 공격, 격자 기반 공격 등이 포함됨 - 통계적 분석 공격 : 암호문의 문자/비트 빈도, 패턴 분포 등 암호문에 대한 통계적 데이터를 이용해 해독하는 방법
→ 고전 암호(시저 암호 등)에 효과적 - 차분 암호 분석 공격: 입력 간의 '차분(difference)'과 그에 따른 출력 차분을 분석하여 키를 추론
→ 블록 암호의 S-박스 분석에 활용됨 - 선형 암호 분석 공격 : 암호화 알고리즘을 선형 방정식으로 근사화하여 키 비트를 추론
→ 차분 분석과 함께 블록 암호 해독의 양대 기법
02. 대칭키 암호 기술
▶ 고전 vs 현대 암호 기술
|
대치 암호 (Substitution Cipher)
- 비트, 문자, 또는 블록을 다른 값으로 대체하는 방식- 빈도 분석에 취약 - 시저 암호(알파벳을 n칸 밀기)가 대표적 |
전치 암호 (Transposition Cipher)
- 평문의 문자를 재배열하여 암호문을 생성- 문자 자체는 바뀌지 않고 위치만 변경됨 - 레일 펜스 암호가 대표적 |
▶ 현대 암호의 핵심 구성 요소
S-박스 (Substitution-Box)
- 입력된 비트열을 다양한 연산을 통해 전혀 다른 비트열로 변환하는 함수
- 암호화의 혼돈(Confusion)을 담당함
- 암호문과 키 사이의 관계를 복잡하게 만들어 키 추론을 어렵게 함
- S-박스 내부에서는 5가지 연산이 조합되어 사용됨
| 치환(Substitution) - 입력 비트열을 작은 조각으로 분할한 뒤, 사전에 정의된 치환 테이블을 참조하여 다른 값으로 교체하는 연산 - ex : 0011 → 1101 |
XOR 연산 - 두 비트열 간의 배타적 논리합(Exclusive OR)을 계산하는 연산 같은 비트는 0, 다른 비트는 1을 반환함 - ex : 1010 ⊕ 1100 = 0110 |
|
시프트 (Shift)
- 비트열을 좌측 또는 우측으로 일정 칸만큼 이동시키는 연산
- 논리 시프트 : 빈 자리를 0으로 채움 - 순환 시프트(rotate) : 밀려난 비트를 반대쪽으로 순환 - ex : 10110010 ← 2칸 이동 → 11001000
|
교환 (Swap)
- 두 변수 또는 두 비트열의 값을 서로 맞바꾸는 연산
- Feistel 구조에서 매 라운드 끝에 좌(L)·우(R) 블록을 교환하는 것 - 단순하지만 구조적 복잡성을 높이는 데 기여 - ex : A=1010, B=0101 → A=0101, B=1010
|
|
분할 (Split) / 결합 (Combine)
- 분할 = 하나의 비트열을 두 개 이상의 작은 비트열로 나누는 연산
- 결합 = 반대로 여러 작은 비트열을 하나의 큰 비트열로 합치는 연산 - S-박스 내부 처리의 시작과 끝 - Feistel 구조에서 평문을 L/R로 나누는 것이 분할의 대표적 예 - 분할과 결합은 항상 쌍으로 이루어짐 - ex : 분할: 11001010 → [1100] + [1010] | 결합: [1100] + [1010] → 11001010
|
|
P-박스 (Permutation-Box)
- 입력된 비트열의 위치를 재비치하여 출력하는 전치(Transposition) 함수
- 암호화의 확산(Diffusion)을 담당
- S-박스가 값을 바꾼다면, P-박스는 위치를 바꿈
- 평문의 통계적 패턴이 암호문 전체로 고르게 퍼지도록 만들어 빈도 분석 등의 통계적 공격을 어렵게 함
| 단순 P-박스 - 입력과 출력의 비트 수가 동일 (입력 4비트 → 출력 4비트) - 비트의 위치(순서)만 재배열하며, 정보의 손실이나 추가 없이 순수하게 위치만 바꿈 - 가장 기본적인 형태 |
| 축소 P-박스 - 출력 비트 수가 입력보다 작음 (입력 8비트 → 출력 6비트) - 일부 비트를 선택/제거하여 더 짧은 비트열로 변환 - DES의 PC-1, PC-2 키 스케줄에서 56비트 키를 생성할 때 활용됨 |
| 확장 P-박스 - 출력 비트 수가 입력보다 큼 (입력 32비트 → 출력 48비트) - 일부 비트를 복제하여 더 긴 비트열로 확장 - DES의 E-함수(32비트 → 48비트 확장)가 대표적 - 서브키와의 XOR 연산 폭을 맞출 때 사용 |
혼돈(Confusion)
암호문과 키 사이의 관계를 최대한 복잡하고 불규칙하게 만듦
→ 비선형 치환을 통해 입력과 출력 사이의 수학적 관계를 숨겨, 키 비트를 추론하기 어렵게 만드는 것이 목표
확산 (Diffusion)
평문의 통계적 성질을 암호문 전반에 퍼뜨림
→ 평문의 1비트가 바뀌면 암호문의 절반 이상이 바뀌는 눈사태 효과를 만들어 통계적 분석 공격을 방어
▶ 합성 암호 구조
| Feistel 암호 구조 - 평문을 L/R 두 블록으로 나누어 라운드 함수를 반복 적용 - 암호화와 복호화가 거의 동일한 구조로 이루어짐 - ex : DES |
SPN (Substitution-Permutation Network) 구조 - S-박스와 P-박스를 라운드마다 연속 적용 - Feistel보다 구조가 유연하지만, 역변환 함수에 제약이 있음 - ex : AES |
| 라운드(Round) - 암호화 알고리즘에서 S-박스, P-박스, 키 혼합 등의 연산을 묶어 반복하는 단위 - 라운드가 많을 수록 안전성이 높아지지만, 암복호화 속도는 느려짐 |
|
03. 대칭키 암호 시스템
대칭키 암호 시스템은 암호화와 복호화에 동일한 키를 사용하는 방식
키를 사전에 안전하게 공유해야 한다는 전제가 필요하지만, 공개키 암호 방식보다 훨씬 빠른 연산 속도를 제공함
▶ 블록 암호 vs 스트림 암호
| 구분 | 블록 암호(Block Cipher) | 스트림 암호(Stream Cipher) |
| 처리 단위 | 고정 크기의 블록 (예 : 128비트) | 비트/바이트 단위 |
| 암호화 방식 | 블록 단위로 라운드 연산 반복 (동일한 키) | 평문과 키 스트림을 XOR 연산 |
| 속도 | 상대적으로 느림 | 빠름 (하드웨어 구현 시 특히 유리) |
| 에러 전파 | 블록 내 에러가 전파될 수 있음 | 해당 비트만 손상 (에러 전파 없음) |
| 확산 | 높음 | 낮음 |
| 대표 알고리즘 | AES, DES, 3DES, IDEA | RC4, Salsa20, ChaCha20 |
| 주요 활용 | 파일 암호화, 디스크 암호화, VPN | 무선 통신(Wifi/TLS), 실시간 스트리밍 |
▶ 블록 암호화 운영 모드
블록 암호 자체는 고정 크기 블록 하나를 암호화하는 원시 연산임
실제 메시지(여러 블록)를 암호화하려면 각 블록을 어떤 방식으로 연결할지 정의한 운영 모드(Mode of Operation) 필요
| 모드 | 핵심 원리 | 암호화 병렬 | 복호화 병렬 | 에러 전파 | 패딩 필요 | 초기 벡터 (IV) |
특이사항/취약점 |
| ECB | 각 블록을 독립적으로 암호화 |
O | O | 해당 블록만 | O | X | 같은 평문 블록 → 같은 암호문 블록. 패턴이 노출되어 보안에 매우 취약. 실사용 비권장 |
| CBC | 이전 암호문 블록과 XOR 후 암호화 |
X | O | 2개 블록에 영향 | O | O | 가장 널리 사용된 기본 모드. IV가 예측 가능하면 재전송 공격에 취약 (BEAST 공격) |
| CFB | 이전 암호문을 암호화한 값과 평문을 XOR | X | O | 2개 블록에 영향 | X | O | 스트림 암호처럼 동작. 블록 크기보다 작은 단위로도 암호화 가능. (재전송 공격 가능) |
| OFB | 키 스트림을 미리 생성하여 평문과 XOR |
X | X | 해당 비트만 | X | O | 암/복호화 구조 동일. 키 스트림을 사전 생성 가능. 동기식 스트림 암호와 유사 |
| CTR | 카운터 값 암호화 후 평문과 XOR |
O | O | 해당 비트만 | X | Nonce 사용 | 병렬 처리에 가장 유리. 임의 접근(random access) 가능. Nonce 재사용 시 보안 완전 붕괴 |
▶ 각 운영 모드 상세 정리
|
ECB (Electronic Codebook)
![]() - 가장 단순한 모드
- 각 블록이 독립적으로 같은 키로 암호화되므로 병렬 처리가 가능하지만, 같은 평문 블록은 항상 같은 암호문 블록을 생성함 - 실무에서는 거의 사용하지 않음 |
|
CBC (Cipher Block Chaining)
![]() - 현재 가장 많이 사용된 모드
- 각 블록 암호화 전에 이전 블록의 암호문과 XOR 연산을 수행하므로, 같은 평문이라도 이전 블록에 따라 다른 암호문이 생성됨 - 첫 번째 블록은 초기 벡터(IV)를 사용 - 암호화는 순차적으로만 가능하지만, 복호화는 병렬로 처리할 수 있음 - 암호문 블록 하나가 손상되면 해당 블록과 다음 블록의 평문, 총 2개 블록이 영향을 받음 |
|
CFB (Cipher Feedback)
![]() - 이전 암호문 블록을 블록 암호의 입력으로 사용하고, 그 출력값을 현재 평문과 XOR
- 스트림 암호와 유사하게 동작하며, 패딩 불필요 - 암호화는 순차적이지만 복호화는 병렬화 가능 - 에러가 발생하면 해당 블록과 다음 블록 두 개에 영향을 미침 |
|
OFB (Output Feedback)
![]() - 블록 암호의 출력값 자체를 피드백하여 키 스트림을 생성하고, 이를 평문과 XOR
- 키 스트림이 평문과 독립적으로 생성되므로, 암호화 전에 미리 키 스트림을 계산해 둘 수 있음 - 암/복호화 구조가 동일하며, 에러가 발생해도 해당 비트만 영향을 받음 - 단, 암/복호화 모두 병렬 처리 불가능 |
|
CTR (Counter Mode)
![]() - Nonce + 카운터 값을 블록 암호로 암호화하여 키 스트림을 생성하고, 이를 평문과 XOR
- 각 블록이 독립적인 카운터 값을 가지므로 암/복호화 모두 완전한 병렬 처리가 가능 - 임의 위치(random access)의 블록을 바로 복호화할 수 있음 - 현대 암호화(예: AES-CTR)에서 널리 쓰이지만, Nonce를 절대로 재사용해선 안 됨 → 재사용 시 두 암호문을 XOR하면 평문 정보가 누출됨 |
4. 블록 암호 기반 대칭키 암호 방식
▶ 페이스텔(Feistel) 기반의 대칭키 암호 방식
페이스텔 구조란?
평문 블록을 반으로 나누어 한쪽에 라운드 함수를 적용한 결과를 다른 쪽과 XOR 연산한느 방식을 반복하는 구조
→ 암호화와 복호화가 동일한 구조(키 순서만 역전)로 수행됨
DES (Data Encryption Standard)
① 개념
- 평문을 64비트로 나눈 후 56비트의 키를 이용하여 64비트의 암호문을 생성하는 알고리즘
- 1977년 미국 국립 표준 기술 연구소(NIST)에서 표준으로 채택
- 키 길이가 56비트로 키 공간이 2⁵⁶으로 매우 작음 → 무차별 공격(Brute Force Attack)에 취약
- 선형 암호 분석 공격(Linear Cryptanalysis Attack)에도 취약하여 현재 국내에서 권고하지 않는 알고리즘
② 암호화 절차
| 순서 | 절차 | 설명 |
| 1 | 초기 치환 (IP, Initial Permutation) |
- 입력 블록인 평문이 주어지면, 64비트 블록을 초기 순열에 적용하여 치환 - 비트 위치를 규칙에 따라 재배열하는 단계 - 보안에 직접적인 기여는 없으나 하드웨어 구현을 용이하게 해줌 |
| 2 | 페이스텔 구조 라운드 (16회 반복) |
페이스텔 구조를 사용하여 암호화 → 64비트를 32비트씩 L(왼쪽), R(오른쪽)으로 나누고 아래 공식으로 16 라운드 진행 라운드 함수 공식 Li+1 = Ri (오른쪽 데이터를 가공 없이 다음 라운드 왼쪽으로 이동) Ri+1 = Li ⊕ F(Ri, Ki) (왼쪽과 F함수 결과를 XOR) F 함수(라운드 함수)는 R(32비트)을 48비트로 확장하고, 라운드 키 Ki(48비트)와 XOR 후 S-Box와 P-Box를 거쳐 32비트 출력 키 생성기: 56비트 원본 키에서 각 라운드별 48비트 라운드 키(K₁~K₁₆)를 생성 |
| 3 | 역 초기 치환 (IP⁻¹, Inverse Initial Permutation) |
초기 치환(Initial Permutation)의 역순으로 데이터를 재배열하여 최종 암호문 생성 |
③ 복호화 절차
| 순서 | 절차 | 설명 |
| 1 | 초기 치환 (IP) | - 입력 블록인 암호문이 주어지면, 64비트 블록을 초기 순열에 적용하여 치환 |
| 2 | 페이스텔 구조 라운드 (16회 반복, 키 역순) |
암호와와 동일한 구조이나 라운드 키를 역순( K₁₆ → K₁ )으로 적용 Ri= Li+1 Li= Ri+1⊕ F(Li+1, Ki) |
| 3 | 역 초기 치환 (IP⁻¹) | 역초기 치환의 역순으로 데이터를 재배열하여 원래 평문 생성 |
3DES (Triple Data Encryption Standard)
① 개념
- DES가 더이상 안전하지 않다는 것이 증명되어 DES를 보완하기 위해 고안된 알고리즘
- DES를 3번 반복 적용하여 보안 강도를 높임
- 키 길이 증가 : 키 2개 → 112비트(56 × 2), 키 3개 → 168비트(56 × 3)
- 라운드 수 증가 : 총 48라운드 (16 ×3)
- 단점 : 3번의 DES 과정을 거치므로 약 3배 느림
② 3DES의 암호화 방식 (3가지)
| 1개의 키를 사용하는 방식 C = E(D(E(P, K₁), K₁), K₁)
- K₁ 하나로 암호화 → 복호화 → 암호화 - 상대방이 단일 DES만 제공하는 경우 호환성 유지를 위해 사용하는 방식 - (K₁=K₂=K₃이면 사실상 단순 DES와 동일) |
| 2개의 키를 사용하는 방식 C = E(D(E(P, K₁), K₂), K₁)
- K₁로 암호화 → K₂로 복호화 → K₁로 암호화 - 유효 키 길이: 112비트 - 2개의 서로 다른 키 사용 |
| 3개의 키를 사용하는 방식 C = E(D(E(P, K₁), K₂), K₃)
- K₁로 암호화 → K₂로 복호화 → K₃로 암호화 - 유효 키 길이: 168비트 - 가장 강력한 보안 강도 |
Blowfish
- 가변적인 키 길이를 가지고, 구현이 간단한 1993년에 개발한 대칭키 암호 알고리즘
- Bruce Schneier가 설계, 특허가 없어 자유롭게 사용 가능
- 빠른 암호화 속도가 장점이나 키 설정 시간이 느린 것이 단점
RC5/RC6 (Rivest Cipher)
① 개념
- RC6은 RC5에서 개선된 블록 암호 알고리즘으로, 우수한 성능과 보안 요구를 충족하기 위해 개발됨
- AES 공모전 최종 후보 알고리즘 중 하나
② RC5 vs RC6
| 항목 | RC5 | RC6 |
| 블록 크기 | 32, 64, 128비트 | 128비트 |
| 키 크기 | 최대 2040 바이트 | 128, 192, 256비트 (최대 2040 비트) |
| 라운드 | 최대 255회 | 20회 |
SEED
- 1999년 2월 KISA와 국내 암호전문가들이 순수 국내 기술로 개발한 128 비트 블록 암호 알고리즘
- 전자상거래, 금융, 무선통신등에서 전송되는 개인정보와 같은 중요한 정보 보호 목적
HIGHT
- KISA, ETRI 부설 연구소, 고려대가 공동으로 개발한 64비트 블록 암호 알고리즘
- RFID, USN 등과 같이 저전력/경량화를 요구하는 컴퓨팅 환경에서 기밀성 제공
LEA(Lightweight Encryption Algorithm)
- 국가보안기술연구소가 개발한 128비트 블록 암호 알고리즘
- 빅데이터, 클라우드 등 고속 환경 및 모바일 기기 등 경량 환경에서 기밀성 제공
- 다양한 소프트웨어 환경에서 AES 대비 1.5~2배 빠름
▶ SPN 구조 기반의 대칭키 암호 방식
SPN(Substitution-Permutation Network) 구조란?
- 치환(Substitution)과 순열(Permutation)을 반복적으로 적용하는 구조
- 라운드마다 S-Box(치환)와 P-Box(순열)를 사용
- Feistel 구조와 달리 라운드마다 전체 블록을 변환하며, 암호화와 복호화가 서로 다른 과정(역연산 필요)을 사용
AES (Advanced Encryption Standard)
① 개념
- DES의 안전성 문제가 제기됨에 따라 2000년 새로운 미국 표준 블록 암호롸 채택된 128 비트 블록 암호
- 벨기에 암호학자 Daemen과 Rijmen이 개발한 Rijndael 알고리즘이 채택됨
- 키 길이에 따라 AES-128, AES-192, AES-256 세 가지 버전 존재
- 현재 전 세계적으로 가장 널리 사용되는 대칭키 암호 알고리즘
② AES 알고리즘 절차
| 순서 | 절차 | 설명 |
| 1 | 0 라운드 | - 평문을 키 스케줄에 의해 생성된 라운드 키와 XOR연산 수행 - 암호화 시작 전 초기 화이트닝(Whitenig) 역할 수행 |
| 2 | 라운드 반복 (1 ~ N-1 라운드) |
라운드마다 SubBytes → ShiftRows → MixColumns → AddRoundKey 4가지 연산을 반복 SubBytes (바이트 치환 변환) - 상태 행렬의 각 바이트를 S-박스(S-Box)에서 대응되는 바이트로 치환 - 비선형 변환으로 혼돈(Confusion)을 제공 ShiftRows (행 이동) - 상태 행렬의 행을 이동하는 연산 - 각 행은 그 행의 인덱스만큼 왼쪽으로 순환 이동 - 0행: 이동 없음, 1행: 1칸, 2행: 2칸, 3행: 3칸 이동 MixColumns (열 혼합) - 상태 행렬의 각 열을 선형 변환하는 연산 - 각 열은 특정 고정 행렬과의 행렬 곱셈을 수행 - 확산(Diffusion) 효과 제공 AddRoundKey (라운드 키 더하기) - 상태 행렬과 라운드 키에 대해 XOR 수행 - XOR 연산의 특성상 동일한 키로 다시 XOR하면 원래의 값을 복원할 수 있음 - 별도의 역변환이 필요하지 않음 |
| 3 | N 라운드 (마지막 라운드) |
- MixColumns를 제외하고 SubBytes, ShiftRows, AddRoundKey만 수행 - 생략 이유: 복호화 시 역연산을 단순화하기 위함 |
ARIA (Academy, Research Insitute, Agency)
① 개념
- 경량 환경 및 하드웨어 구현을 위해 최적화된 Involutional SPN 구조를 갖는 블록 암호 알고리즘
- 우리나라의 국가보안기술연구소(NSRI)에서 개발한 범용 블록 암호 알고리즘
- 표준 번호 : KSTS KS X 1231-1
Involutional SPN 구조
연산을 두 번 적용하면 원래의 입력 값으로 돌아오는 성질을 가진 블록 암호화 구조 (SPN 구조의 변형)
② 비트별 라운드 수
| ARIA-128 블록 크기 : 128 비트 키 크기 : 128 비트 라운드 : 12회 |
ARIA-192 블록 크기 : 128 비트 키 크기 : 192 비트 라운드 : 14회 |
ARIA-256 블록 크기 : 128 비트 키 크기 : 256 비트 라운드 : 16회 |
IDEA (International Data Encryption Algorithm)
① 개념
- 국제 데이터 암호화 알고리즘으로, DES를 대체하기 위해 스위스 연방 기술 기관(ETH Zurich)에서 개발한 암호 알고리즘
- 덧셈, 곱셈, XOR의 세 가지 연산을 혼합하여 사용하는 것이 특징
- PGP(Pretty Good Privacy) 암호화 소프트웨어에서 사용
▶ 국내 표준 블록 암호 알고리즘
|
🌱 SEED
개발 KISA+국내 암호전문가, 1999년 2월 블록 128비트
키 크기 128비트
라운드 16회
표준 TTAS.KO-12.0004/R1, TTAS.KO-12.0025 (운영 모드)
특징 순수 국내 기술로 개발한 128비트 블록 암호 알고리즘 전자상거래, 금융, 무선통신 등 전송되는 개인정보 보호 목적 |
⚡HIGHT (HIgh security and light weigHT)
개발 KISA, ETRI, 고려대학교 공동 개발 블록 64비트
키 크기 128비트
라운드 32회
표준 TTAS.KO-12.0040/R1
특징 RFID, USN 등 저전력·경량화를 요구하는 컴퓨팅 환경에서 기밀성 제공을 위한 64비트 경량 블록 암호 |
| 🚀 LEA (Lightweight Encryption Algorithm) 개발 국가보안기술연구소(NSRI)
블록 128비트
키 크기 128 / 192 / 256비트
라운드 24 / 28 / 32회
표준 TTAK.KO-12.0223 (LEA), TTAK.KO-12.0246 (운영 모드)
특징 빅데이터, 클라우드 등 고속 환경 및 모바일기기 경량 환경에서 기밀성 제공. AES 대비 1.5~2배 빠름. 다양한 소프트웨어 환경에 최적화
|
🏛️ ARIA
개발 국가보안기술연구소(NSRI), 학계, 정부기관 공동 블록 128비트
키 크기 128 / 192 / 256비트
라운드 12 / 14 / 16회
표준 KATS KS X 1213-1
특징 Involutional SPN 구조. 경량 환경 및 하드웨어 구현 최적화. 국내 범용 블록 암호 표준 d |
▶ 전체 블록 암호 알고리즘 비교표
| 알고리즘 | 구조 | 블록 크기 | 키 크기 | 라운드 | 특징 / 비고 |
| DES | Feistel | 64 비트 | 56 비트 | 16회 | 현재 취약, 국내 권고 안 함. 무차별·선형 암호 분석 취약 |
| 3DES | Feistel | 64 비트 | 112 / 168 비트 | 48회 (16 x 3) | DES 3회 반복, 느림. 3가지 키 방식(1키/2키/3키) |
| Blowfish | Feistel | 64 비트 | 32~448 비트 | 16회 | 가변 키 길이, 간단한 구현, 특허 없음 |
| RC5 | Feistel 변형 | 32/64/128 비트 | 최대 2040 비트 | 최대 255회 | 가변 블록/키/라운드 |
| RC6 | Feistel 변형 | 128 비트 | 128 / 192 / 256 비트 | 20회 | RC5 개선, AES 최종 후보 |
| AES | SPN | 128 비트 | 128 / 192 / 256 비트 | 10 / 12 / 14회 | 현재 미국 표준, 가장 널리 사용. Rijndael 알고리즘 |
| IDEA | SPN 변형 | 64 비트 | 128 비트 | 8회 | 스위스 ETH 개발. DES 대체 목적. PGP에 사용 |
| SEED | Feistel | 128 비트 | 128 비트 | 16회 | 국내 표준. 전자상거래·금융·통신 분야. TTAS.KO-12.0004/R1 |
| HIGHT | Feistel 변형 | 64 비트 | 128 비트 | 32회 | 국내 표준. RFID/USN 경량 환경. KISA+ETRI+고려대. TTAS.KO-12.0040/R1 |
| LEA | ARX | 128 비트 | 128 / 192 / 256 비트 | 24 / 28 / 32회 | 국내 표준. 빅데이터·모바일. AES보다 1.5~2배 빠름. TTAK.KO-12.0223 |
| ARIA | Involutional SPN | 128 비트 | 128 / 192 / 256 비트 | 12 / 14 / 16회 | 국내 표준. 국가보안기술연구소. KATS KS X 1213-1 |
'study > security' 카테고리의 다른 글
| [Windows 보안] 로컬 인증 시스템 (2) | 2026.04.16 |
|---|








