위의 유투브 강의를 듣고 정리하였다.
- Cryptology (암호학) : 많이 사용하는 단어는 아님.
- cryptography : 암호화(혹은 복호화) 기술
- cryptanalysis : 암호해독, 암호를 공격하는 입장에서, key 를 모를 때 사용.
암호 체계 (시스템)
- 기본 가정 **
- 공격자는 전체 암호 체계를 잘 알고 있다.
- 즉, 암호 알고리즘(cipher)는 비밀이 아니다.
- 오직 암호화 키 (key) 만이 비밀이다.
- 위의 기본 가정을 Kerckhoffs(키르히호프)’ Principle 이라고 한다.
- 이러한 가정을 하는 이유
- 경험상, 암호 알고리즘(어떻게 암호가 만들어지는가) 이 노출되면 암호화의 기능은 약해진다. (무용지물이 된다)
- 암호화 알고리즘은 결코 비밀이 유지될 수 없다. (결국 알고리즘은 알려지게 되어있다.)
- 따라서, 이러한 암호 알고리즘의 약점에 대해 미리 대처하는 것이 더 바람직하다.
Kerckhoffs’ Principle
암호 체계는 암호키를 제외하고 암호 체계의 모든 사항이 알려진다고 해도 안전할 수 있어야 한다.
특히, 공격자가 암호화, 복호화 알고리즘을 알아낸다고 하더라도 암호 체계는 안전해야 한다.
encryption (암호화) decryption (복호화) 는 알고리즘이다.
암호화와 복호화를 할 때 key 를 적용시킨다.
단순 치환 암호 (Simple Substitution Cipher) 알고리즘
: 가장 기본적인 알고리즘. 위치를 바꾸는 것. → Caesar cipher (시저 암호) 라고도 한다.
문자열의 순열에 의한 치환 (Substitution by permutation)
: 알파벳의 순서를 변경하여 치환한다.
이 암호 방법은 암호의 역사에서 초기 1000년간 비밀 코드를 만드는 방법으로 사용되었다.
→ 26! 은 지금 기준(2^80) 으로도 꽤 커서 안전하다고 생각되는 범위이기 때문이다.
암호 해석 1
- 암호문을 해독하는데 아무런 정보가 없을 경우, 전사(전수) 조사 혹은 무차별 대입공격(Exhausted key search or Brute-Force Attack)을 할 수 밖에 없다.
- 즉, 모든 키에 대해서 시도해보는 것.
- 가능한 키의 수에 의해 결정됨.
- 단순 치환 암호에서는 (알파벳이라고 할 때) 26번 시도할 수 있다.
- 순열에 의한 치환은 2^88 번 시도해야 한다.
- 키의 수의 크기로 보면 순열에 의한 치환은 안전한 (secure) 암호라고 할 수 있다.
암호 해석 2
- 문자 빈도수 분석 (frequency analysis)
- 2^88 개 키에 대해 모두 시도할 필요가 없다.
- 영어 알파벳은 각각 사용되는 빈도수가 다른 통계적 특성을 가지고 있기 때문이다.
- 영어 알파벳에 사용되는 통계값의 분포
즉, 모든 경우의 수에 대해 시도해보지 않아도 해독이 가능하다.
- 빈도수 조사의 역사
- 빈도수 분석은 처음 아랍인이 발견. 9C Al-Kindi 의 책에서 발견된다.
- 후 르네상스 기간에 유럽에 소개됨.
안전한 암호 체계
- 안전한 암호체계(secure Cryptosystem)란 무엇인가.
- 알려진 최선의 공격 방법이 모든 키에 대해 다 시도해보는 것 밖에 없을 때 그 암호 체계는 안전하다 고 한다.
- 만약, 모든 키에 대해 다 시도해보지 않아도 암호문을 해독할 수 있는 경우, 그 암호 체계는 안전하지 않다(insecure) 고 한다.
- 따라서 안전한 암호체계란 암호문을 해독하지 못하는 것은 아니다.
암호 해독 (Cryptanalysis)
수학적 분석은 빈도수 분석 등이 있다.
최근 기기의 물리적 특성을 이용하는 공격도 있다.
물리적 특성 이용 공격 (Implementation Attacks)
- Side-channel Analysis (대표적 예시)
- 암호 연산을 하는 프로세서(cpu) 의 전력 소모량을 측정하여 키 값을 구할 수 있다.
- 신호 처리 기술을 사용하여 전력 사용량 추세를 통해 키를 찾을 수 있다.
- 전자기 방사(electromagnetic radiation) 량도 키에 대한 정보를 제공할 수 있다.
- 물리적 특성 이용 공격은 물리적 공격과 관련하여 사용될 수 있다.
- ex) IoT 장치, firmware 등으로 공격할 수 있다.
RSA 는 공개키 암호화인데, 이걸 구현할 때의 시간에 따른 power 전력량 변화량이다. → 어떤 알고리즘을 사용하는 지 알 수 있다.
사회 공학 공격
- 인간의 활동에 관련된 공격
- 뇌물 매수, 공갈 협박, 사기, 스파이 등
- 피싱(Fishing) 은 전형적인 사회 공학적 (social engineering) 공격이다.
암호에서의 혼란과 발산
- 이를 제안한 사람이 Claude Shannon : 정보 이론(Information Theory) 의 창시자
- 그가 제안한 암호를 만드는 데에 있어 필요한 2가지 개념
- 혼란 (confusion) : 평문과 암호문 (혹은 키와 암호문의 관계) 의 관계를 모호하게 한다.
- 발산 (Diffusion) : 평문의 한 기호 (a symbol) 의 영향을 암호문의 여러 기호 (several symbols) 들에 분산시켜서 평문의 통계적 특성을 숨긴다.
위에서 “암호화 기술”을 배울 것이다.
** 암호를 cipher 라고 한다.
이 과정으로 공부할 예정!
'암호학' 카테고리의 다른 글
전자 서명 : 정보 보안 - 암호학 (0) | 2024.09.30 |
---|---|
메시지 인증 코드 (MAC); 키 해시 (HMAC) : 정보 보안 - 암호학 (0) | 2024.09.29 |
암호 해시 함수 : 정보 보안 - 암호학 (0) | 2024.09.29 |
AES ; 블록 암호 : 정보 보안 - 암호학 (0) | 2024.09.27 |
블록 암호 : 정보 보안 - 암호학 (1) | 2024.09.26 |