암호: Difference between revisions
From IT Wiki
No edit summary |
(→암호의 발전) |
||
(5 intermediate revisions by 4 users not shown) | |||
Line 24: | Line 24: | ||
** 인코드된 결과는 마치 암호문 처럼 보이지만 기밀성보다는 데이터 전달에 목적을 두고 있다. | ** 인코드된 결과는 마치 암호문 처럼 보이지만 기밀성보다는 데이터 전달에 목적을 두고 있다. | ||
== 암호 알고리즘 == | === 암호의 발전 === | ||
{| class="wikitable" | |||
|- | |||
! 세대 !! 설명 !! 예시 | |||
|- | |||
| 1세대 암호 || 현대적 암호가 나오기 전 전통적 암호 || 에니그마 | |||
|- | |||
| 2세대 암호 || 기초적인 형태의 실무적 블록 암호 || DES, SEED | |||
|- | |||
| 3세대 암호 || 공개키 암호 || RSA, ECC | |||
|- | |||
| 4세대 암호 || 개선된 암호 || 동형암호, 양자암호, 경량암호 | |||
|} | |||
== [[암호 알고리즘]] == | |||
; 키 운용에 따라 대칭키(비밀키) 암호화와 비대칭키(공개키) 암호화로 구분할 수 있고, 키를 사용하지 않는 해시 암호도 있다. | ; 키 운용에 따라 대칭키(비밀키) 암호화와 비대칭키(공개키) 암호화로 구분할 수 있고, 키를 사용하지 않는 해시 암호도 있다. | ||
* 암호화 알고리즘은 공개될 수도 있다. | * 암호화 알고리즘은 공개될 수도 있다. | ||
* 암호의 안정성은 비밀키의 기밀성에 기반하여야 한다. | * 암호의 안정성은 비밀키의 기밀성에 기반하여야 한다. | ||
=== 대칭키 암호화 === | === [[대칭키 암호화]] === | ||
; 대칭 키 암호는 블록 암호와 스트림 암호로 나뉜다. | ; 대칭 키 암호는 블록 암호와 스트림 암호로 나뉜다. | ||
==== 블록 암호 ==== | ==== [[블록 암호]] ==== | ||
* [[DES]] | * [[DES]]: AES 이전 미국 표준 암호 알고리즘 | ||
* [[IDEA]] | * [[IDEA]] | ||
* [[AES]] | * [[AES]]: 미국 표준 암호 알고리즘 | ||
* [[SEED]] | * [[SEED]]: ARIA 이전 국내 표준 암호 알고리즘 | ||
* [[ARIA]] | * [[ARIA]]: 국내 표준 암호 알고리즘 | ||
* [[RC5]] | * [[RC5]] | ||
* [[HIGHT]]: 국내 개발 경량 암호 알고리즘 | |||
* [[LEA]]: 국내 개발 국제 표준 경량 암호 알고리즘 | |||
==== 스트림 암호 ==== | ===== [[블록 암호 모드]] ===== | ||
* [[ECB|ECB(Electric CodeBook mode)]] | |||
* [[CBC|CBC(Cipher Block Chaining mode)]] | |||
* [[CFB|CFB(Cipher-FeedBack mode)]] | |||
* [[OFB|OFB(Output-FeedBack mode)]] | |||
* [[CTR|CTR(CounTeR mode)]] | |||
===== [[블록 암호 구조]] ===== | |||
* [[페이스텔 구조]] | |||
* [[SPN]] | |||
* [[I-SPN]] | |||
* [[GFN]] | |||
==== [[스트림 암호]] ==== | |||
* [[RC4]] | * [[RC4]] | ||
Line 50: | Line 79: | ||
** [[ECC]] | ** [[ECC]] | ||
=== 해시 | === [[해시 암호]] === | ||
* [[MD]] | * [[MD]] | ||
* [[SHA]] | * [[SHA]] | ||
== [[암호 알고리즘 보안강도]] == | |||
* 대칭키 암호: 키 길이에 비례 | |||
* 공개키 암호: 키 길이에 비례 | |||
* 해시 암호: 별도의 키가 존재하지 않기 때문에 보안강도는 충돌회피성에 의해 결정 | |||
== [[암호 공격]] == | |||
암호를 해독하거나 암호 알고리즘을 파악하여 암호를 무력화하기 위한 공격 | |||
* 암호문 단독 공격 | |||
* 기지 평문 공격 | |||
* 선택 평문 공격 | |||
* 선택 암호문 공격 |
Latest revision as of 16:17, 5 March 2023
- Cryptography
개요[edit | edit source]
용어 정의[edit | edit source]
- 암호(Cipher)
- 암호문(Ciphertext)
- 평문을 암호학적 방법으로 변환한 것
- 암호화(Encryption, Enciphering)
- 평문을 암호문으로 변화하는 과정
- 평문(Plaintext)
- 암호학을 이용하여 보호해야 할 메시지
- 복호화(Decryption, Deciphering)
- 암호문을 다시 평문으로 변환하는 과정
원리[edit | edit source]
- 대치(Substitution): 평문의 글자를 다른 글자로 바꿈
- 전치(Transposition): 평문의 글자 순서를 바꿈
암호화와 부호화의 차이[edit | edit source]
- Encryption/Decryption vs Encode/Decode
- 암호화는 암호키가 사용되어 기밀성을 목적으로 한다.
- 부호화는 암호키가 없고 매커니즘이 공개되어 있어 누구나 인코드/디코드할 수 있다.
- 인코드된 결과는 마치 암호문 처럼 보이지만 기밀성보다는 데이터 전달에 목적을 두고 있다.
암호의 발전[edit | edit source]
세대 | 설명 | 예시 |
---|---|---|
1세대 암호 | 현대적 암호가 나오기 전 전통적 암호 | 에니그마 |
2세대 암호 | 기초적인 형태의 실무적 블록 암호 | DES, SEED |
3세대 암호 | 공개키 암호 | RSA, ECC |
4세대 암호 | 개선된 암호 | 동형암호, 양자암호, 경량암호 |
암호 알고리즘[edit | edit source]
- 키 운용에 따라 대칭키(비밀키) 암호화와 비대칭키(공개키) 암호화로 구분할 수 있고, 키를 사용하지 않는 해시 암호도 있다.
- 암호화 알고리즘은 공개될 수도 있다.
- 암호의 안정성은 비밀키의 기밀성에 기반하여야 한다.
대칭키 암호화[edit | edit source]
- 대칭 키 암호는 블록 암호와 스트림 암호로 나뉜다.
블록 암호[edit | edit source]
- DES: AES 이전 미국 표준 암호 알고리즘
- IDEA
- AES: 미국 표준 암호 알고리즘
- SEED: ARIA 이전 국내 표준 암호 알고리즘
- ARIA: 국내 표준 암호 알고리즘
- RC5
- HIGHT: 국내 개발 경량 암호 알고리즘
- LEA: 국내 개발 국제 표준 경량 암호 알고리즘
블록 암호 모드[edit | edit source]
- ECB(Electric CodeBook mode)
- CBC(Cipher Block Chaining mode)
- CFB(Cipher-FeedBack mode)
- OFB(Output-FeedBack mode)
- CTR(CounTeR mode)
블록 암호 구조[edit | edit source]
스트림 암호[edit | edit source]
공개키 암호화[edit | edit source]
- 비대칭키 암호화라고도 한다.
해시 암호[edit | edit source]
암호 알고리즘 보안강도[edit | edit source]
- 대칭키 암호: 키 길이에 비례
- 공개키 암호: 키 길이에 비례
- 해시 암호: 별도의 키가 존재하지 않기 때문에 보안강도는 충돌회피성에 의해 결정
암호 공격[edit | edit source]
암호를 해독하거나 암호 알고리즘을 파악하여 암호를 무력화하기 위한 공격
- 암호문 단독 공격
- 기지 평문 공격
- 선택 평문 공격
- 선택 암호문 공격