티스토리 뷰
## 암호화(Cryptography)란..
* 코드를 쓰고 풀어내는 예술이다?
* 과학적인 공부를 토대로 한 안전을 위한 테크닉!
1. Flow에 따른 공격 분류 => 공격대상
- Interruption => availability(가용성)
- Modification => integrity(무결성)
- Fabrication => authenticity(확실한출처)
- Interception => Confidentiality(기밀성) // passive attack(EVE)
2. Kerckhoff's Principle
- 암호화 알고리즘을 숨기는데 의존되어서는 안되고 key를 숨겨야 한다.
: 일반적으로 알고리즘은 비밀을 유지하기 어렵다.
- 적들은 사용중인 시스템을 알고 있다(Claude Shannon).
- 일반적으로 알고리즘보다 key의 length가 짧기 때문에
: 이미 사용하는 알고리즘을 바꾸는 것 보다 key를 교체하는 것이 쉽다.
3. 공개 암호화 디자인(궁극적인 방향)
- 누구나 검토할 수 있게
- 산업스파이가 할 일이 없도록
- 표준화
4. 유형에 따른 공격의 분류
1) Ciphertext-only attack (COA: 암호문 단독 공격)
- 암호문들을 여러 개 훔쳐내고 그에 해당하는 암호기법을 이용해서 현재 사용되고 있는 키를 알아내는 공격이다. 가장 약한 공격.
2) Known-plaintext attack (KPA: 알려진 평문 공격)
- 한 두쌍의 평문/암호문을 알고 그 외에 여러 개의 암호문을 알고 있을 때 사용하는 암호분석 방법이다. 비밀키의 길이를 유추하고 가능한 모든 경우의 비밀키를 암호 알고리즘에 입력하여 그 결과를 보고 키를 알아내는 공격이다.
3) Chosen-plaintext attack (CPA: 선택 평문 공격)
- 공격자가 임의로 평문을 선택하여 그와 대응되는 암호문을 생성할 수 있다.
이렇게 생성한 평문과 암호문의 쌍을 기반으로 암호 시스템의 키를 알아내는 공격이다.
4) Chosen-ciphertext attack (CCA: 선택 암호문 공격)
- 공격자가 암호문을 조작할 수 있고 해독하고자 하는 암호문을 제외한 모든 암호문에 대해
평문을 획득할 수 있다. 이것을 기반으로 공격자가 암호 시스템의 키를 알아내는 공격이다.
5. Perfect Security
- OTP(One Time Pad)가 유일함.
- key를 한번 쓰고 버림.
- truly random
6. Random
- 우리가 사는 세계에도 RANDOM은 존재한다.
: Pi(π), 라디오 전파, HDD와 CPU의 소음, 전기적인 소음, clock drift 등..
7. Pseudorandom
- looks like a uniformly distributed(=truly random).
- 효율적인 공격자가 봤을 때 실제 확실한 random으로 보일 수 있도록 함.
- 컴퓨터로 생성할 수 있음.
=> 즉, 통계적으로 랜덤해야 하며, 각각 비슷한 확률을 가져야 하고, 관계가 없어야 한다.
unpredictable future values from previous values(이전 값으로부터 정보를 얻을 수 없게 해야 한다.)
8. Pseudorandom Number Generators
- Linear Congruential Generator(LCG) - rand() and random()
- Linear Feedback Shift Register(LFSR) - stream cipher
- Blum-Blum-Shub(BBS) and Fortuna - cryptographic
'study > security' 카테고리의 다른 글
CMD> netstat 명령어의 사용법과 state information의 뜻 (1) | 2011.06.05 |
---|---|
정보보호개론 기본중의 기본! (0) | 2011.04.20 |
Attack scenarios (0) | 2011.04.05 |