암호화 알고리즘: Difference between revisions
From CS Wiki
No edit summary |
No edit summary Tags: Manual revert Visual edit |
||
(15 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
[[분류:보안]][[분류:암호학]][[분류:정보보안기사]] | [[분류:보안]][[분류:암호학]][[분류:정보보안기사]] | ||
==대칭키 알고리즘과 공개키 | = 분류 = | ||
;크게 대칭키 알고리즘과 공개키 알고리즘으로 분류할 수 있다. | |||
{| class="wikitable" | |||
! | |||
* | ! 비밀키(대칭키) 암호 | ||
* | ! 공개키(비대칭키) 암호 | ||
|- | |||
| 암호화 방법 | |||
| 암호화와 복호화에 같은 키를 사용 | |||
| 암호화와 복호화에 다른 키를 사용 | |||
키 쌍 K1, K2에 대해 | |||
* K1으로 암호화한 것은 K2로 복호화 | |||
* K2로 암호화한 것은 K1으로 복호화 | |||
|- | |||
| 키의 개수 | |||
==블록 | | 암호를 공유하는 사용자의 순서쌍 개수 | ||
=== | n(n-1)/2 | ||
| 사람당 2개씩(공개키, 비밀키) | |||
2n | |||
|- | |||
| 장점 | |||
| 상대적으로 빠름 | |||
| 키 분배 문제 해소 | |||
전자서명 가능 | |||
|- | |||
| 단점 | |||
| 안전한 키 분배가 문제 | |||
참여자 증가에 따라 키 개수 기하급수적 증가 | |||
| 키 발급자에 대한 보증 어려움 | |||
상대적으로 느림 | |||
|} | |||
==대칭키(비밀키) 방식== | |||
; 블록 암호화 스트림 암호로 나눌 수 있다. | |||
===블록 암호=== | |||
{| class="wikitable" | {| class="wikitable" | ||
! 구분 | ! 구분 | ||
Line 56: | Line 73: | ||
| SPN | | SPN | ||
| SPN | | SPN | ||
| | | Lai-Massey schema | ||
|- | |- | ||
| 비고 | | 비고 | ||
Line 69: | Line 86: | ||
|} | |} | ||
* 그 외 | * 그 외 | ||
* [[CRYPTON]] | ** [[CRYPTON]] | ||
* [[RC5]] | ** [[RC5]] | ||
* [[REAL]] | ** [[REAL]] | ||
* [[MISTY]] | ** [[MISTY]] | ||
* [[SKIPJACK]] | ** [[SKIPJACK]] | ||
* '''Feistel과 SPN''' | * '''Feistel과 SPN''' | ||
Line 82: | Line 99: | ||
* [[RC4|RC4(취약)]] | * [[RC4|RC4(취약)]] | ||
==비대칭키(공개키) 방식== | |||
; 대표적으로 인수분해 기반 방식(대표적으로 [[RSA]]), 이산대수 기반 방식, [[타원 곡선 암호|타원곡선 방식]]으로 나뉜다. | |||
* 인수분해 : RSA, Rabin | |||
* 이산대수 : Diffie-Hellman, Elgamal, DSA, Schnorr | |||
* 타원곡선 : ECC | |||
* [[RSA]]와 [[ECC]]의 비교 | |||
{| class="wikitable" | |||
! 구분 | |||
! [[ECC]] | |||
! [[RSA]] | |||
|- | |||
| 속도 | |||
| 빠름 | |||
| 느림 | |||
|- | |||
| 키 길이 | |||
| 짧음 | |||
| 김 | |||
|- | |||
| 시장점유율 | |||
| 낮음 | |||
| 높음 | |||
|- | |||
| 주요 사용처 | |||
| 모바일 환경 | |||
(그 외 환경으로 확대 중) | |||
| 유선 환경 | |||
|- | |||
| 장점 | |||
| 효율성 | |||
| 오랜 기간 입증된 안전성 | |||
|} | |||
* 그 외 | |||
** [[ElGamal]] | |||
** [[Knapsack]] | |||
** [[DSA]] | |||
*** Digital Signature Algorithm | |||
*** 1991년 미국국립표준·기술연구소(NIST)에서 표준안으로 개발한 공개 키 기반의 알고리즘 | |||
== 해시 알고리즘 == | |||
* SHA | |||
* MD | |||
=국내 개발 암호화 알고리즘= | |||
ARIA, HIGHT, LEA, SEED | [[ARIA]], [[HIGHT]], [[LEA]], [[SEED]] |
Latest revision as of 03:28, 6 October 2023
분류[edit | edit source]
- 크게 대칭키 알고리즘과 공개키 알고리즘으로 분류할 수 있다.
비밀키(대칭키) 암호 | 공개키(비대칭키) 암호 | |
---|---|---|
암호화 방법 | 암호화와 복호화에 같은 키를 사용 | 암호화와 복호화에 다른 키를 사용
키 쌍 K1, K2에 대해
|
키의 개수 | 암호를 공유하는 사용자의 순서쌍 개수
n(n-1)/2 |
사람당 2개씩(공개키, 비밀키)
2n |
장점 | 상대적으로 빠름 | 키 분배 문제 해소
전자서명 가능 |
단점 | 안전한 키 분배가 문제
참여자 증가에 따라 키 개수 기하급수적 증가 |
키 발급자에 대한 보증 어려움
상대적으로 느림 |
대칭키(비밀키) 방식[edit | edit source]
- 블록 암호화 스트림 암호로 나눌 수 있다.
블록 암호[edit | edit source]
구분 | DES | 3DES | SEED | AES | ARIA | IDEA |
---|---|---|---|---|---|---|
키 길이 | 56bit | 56*3bit | 128bit | 128/192/256bit | 128/192/256bit | 128bit |
블록 크기 | 64bit | 64bit | 128bit | 128bit | 128bit | 64bit |
라운드 | 16번 | 16*3번 | 16번 | 10/12/14번 | 12/14/16번 | 8번 |
구조 | Feistel Network | Feistel Network | Feistel Network | SPN | SPN | Lai-Massey schema |
비고 | AES 이전 미국 표준 | DES의 취약점 보완 및
호환성 유지용 임시방편 |
ARIA 이전 국내 표준 | 현 미국 표준 | 현 국내 표준 | 국제 표준
(PGP에서 사용) |
- Feistel과 SPN
- Feistel 구조 : DES, SEED
- SPN(Non-Feistel) 구조 : AES, ARIA
스트림 암호[edit | edit source]
비대칭키(공개키) 방식[edit | edit source]
구분 | ECC | RSA |
---|---|---|
속도 | 빠름 | 느림 |
키 길이 | 짧음 | 김 |
시장점유율 | 낮음 | 높음 |
주요 사용처 | 모바일 환경
(그 외 환경으로 확대 중) |
유선 환경 |
장점 | 효율성 | 오랜 기간 입증된 안전성 |
- 그 외
해시 알고리즘[edit | edit source]
- SHA
- MD