암호화 알고리즘: Difference between revisions

From CS Wiki
(새 문서: ==비밀키 알고리즘과 공개키 알고리즘== ===비밀키=== DES : 8개의 S-박스로 구성. S-BOX의 비선형 구조가 안전성과 연관됨. P-BOX는 안전성과 직...)
 
No edit summary
Tags: Manual revert Visual edit
 
(21 intermediate revisions by 6 users not shown)
Line 1: Line 1:
==비밀키 알고리즘과 공개키 알고리즘==
[[분류:보안]][[분류:암호학]][[분류:정보보안기사]]
===비밀키===
= 분류 =
DES : 8개의 S-박스로 구성. S-BOX의 비선형 구조가 안전성과 연관됨. P-BOX는 안전성과 직접적인 연관이 없음
;크게 대칭키 알고리즘과 공개키 알고리즘으로 분류할 수 있다.
3-DES : 2~3개의 다른 키를 이용하여 DES를 반복적용
{| class="wikitable"
AES : DES를 이은 미국 표준
!
IDEA :
! 비밀키(대칭키) 암호
===공개키(대칭키)===
! 공개키(비대칭키) 암호
RSA
|-
ElGamal
| 암호화 방법
ECC
| 암호화와 복호화에 같은 키를 사용
Knapsack
| 암호화와 복호화에 다른 키를 사용
키 쌍 K1, K2에 대해
* K1으로 암호화한 것은 K2로 복호화
* K2로 암호화한 것은 K1으로 복호화
|-
| 키의 개수
| 암호를 공유하는 사용자의 순서쌍 개수
n(n-1)/2
| 사람당 2개씩(공개키, 비밀키)
2n
|-
| 장점
| 상대적으로 빠름
| 키 분배 문제 해소
전자서명 가능
|-
| 단점
| 안전한 키 분배가 문제
참여자 증가에 따라 키 개수 기하급수적 증가
| 키 발급자에 대한 보증 어려움
상대적으로 느림
|}
==대칭키(비밀키) 방식==
; 블록 암호화 스트림 암호로 나눌 수 있다.
===블록 암호===
{| class="wikitable"
! 구분
! 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에서 사용)
|}
* 그 외
** [[CRYPTON]]
** [[RC5]]
** [[REAL]]
** [[MISTY]]
** [[SKIPJACK]]


==블록 암호와 스트림 암호==
* '''Feistel과 SPN'''
===블록암호===
** [[Feistel 구조]] : DES, SEED
DES : NIST 이전 표준(취약)
** [[SPN 구조|SPN(Non-Feistel) 구조]] : AES, ARIA
IDEA : PGP 채택
AES(Rijndael) : NIST 새로운 표준
SEED : 국내 표준
CRYPTON
RC5
REAL
MISTY
SKIPJACK


====Feistel과 SPN====
===스트림 암호===
Feistel : DES, SEED
* [[RC4|RC4(취약)]]
SPN(Non-Feistel) : AES, ARIA


블록크기, 라운드
==비대칭키(공개키) 방식==
ARIA
; 대표적으로 인수분해 기반 방식(대표적으로 [[RSA]]), 이산대수 기반 방식, [[타원 곡선 암호|타원곡선 방식]]으로 나뉜다.
- 블록크기 : 128비트
* 인수분해 : RSA, Rabin
- 키 크기 : 128/192/256
* 이산대수 : Diffie-Hellman, Elgamal, DSA, Schnorr
- 라운드수 : 12/14/16
* 타원곡선 : ECC
 
* [[RSA]]와 [[ECC]]의 비교
===스트림 암호===
{| class="wikitable"
RC4
! 구분
! [[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에 대해

  • K1으로 암호화한 것은 K2로 복호화
  • K2로 암호화한 것은 K1으로 복호화
키의 개수 암호를 공유하는 사용자의 순서쌍 개수

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에서 사용)

스트림 암호[edit | edit source]

비대칭키(공개키) 방식[edit | edit source]

대표적으로 인수분해 기반 방식(대표적으로 RSA), 이산대수 기반 방식, 타원곡선 방식으로 나뉜다.
  • 인수분해 : RSA, Rabin
  • 이산대수 : Diffie-Hellman, Elgamal, DSA, Schnorr
  • 타원곡선 : ECC
  • RSAECC의 비교
구분 ECC RSA
속도 빠름 느림
키 길이 짧음
시장점유율 낮음 높음
주요 사용처 모바일 환경

(그 외 환경으로 확대 중)

유선 환경
장점 효율성 오랜 기간 입증된 안전성
  • 그 외
    • ElGamal
    • Knapsack
    • DSA
      • Digital Signature Algorithm
      • 1991년 미국국립표준·기술연구소(NIST)에서 표준안으로 개발한 공개 키 기반의 알고리즘

해시 알고리즘[edit | edit source]

  • SHA
  • MD

국내 개발 암호화 알고리즘[edit | edit source]

ARIA, HIGHT, LEA, SEED