정보 보안이라는 학문은 데이터를 보호하기 위한 기술이다.
이 기술 중에 가장 기본이 되는 것이 암호이다.
암호화 : 원래 메세지를 알아볼 수 없는 문자로 만드는 것
복호화 : 암호문을 원래의 문자로 바꾸는 과정
똑같은 키가 암호화/복호화에 사용되는 경우 : 대칭키 시스템
다른 키가 암호화/복호화에 사용되는 경우 : 비대칭키 시스템 ex) 공개키 암호 시스템
암호의 발전사
최초의 암호 : BC 480년에 스파르타에서 추방되어 페르시아에 살던 데마라토스가 페르시아의 침략 게획 소식을 나무판에 조각하여 적은 후, 밀납을 발라 스파르타에 보낸 것
-> 정보 은닉(스테가노그래피)
* 암호와 스테가노그래피의 차이
암호 : 원문이 있다면 아예 다른 형태로 만드는 것
스테가노그래피 : 정보 자체를 숨기는 것 (어떤 정보가 숨겨져있는지 모르는 것)
치환 : 평문의 문자를 다른 문자로 바꾸는 것
전치 : 평문의 문자들의 위치를 바꾸는 것
전치법
- 단순히 메시지에 있는 문자의 위치를 바꾸는 방법
- BC 400년에 스파르타 사람이 군사용으로 사용하던 암호화 방식
- 일정 굵기의 봉에 종이를 두름
- 종이에 전달하고자 하는 문장을 쓴 뒤 종이를 풀어 다른 부대에 전달, 이때 봉의 굵기를 함께 알려줌
- 같은 굵기의 봉에 두른 후 암호문을 해석할 수 있음
- 암호화 알고리즘 : 종이를 봉에 두르는 것
- 키 : 봉의 굵기
대체법 (치환법)
- 해당 글자를 다른 글자로 대체
- BC 50, 로마 줄리어스 시저 사용
시저의 암호화 방법
- 알파벳 26글자를 3자 또는 4자씩 오른쪽 이동
- 해당되는 글자로 변환시켜 암호화
모노알파베틱 | 단일 치환 기법
- 알파벳 26자를 각각 다른 알파벳에 대응
- 규칙 없이 임의의 문자에 임의의 알파벳을 대칭
- Key Space (키 공간) : 암호학에서 가능한 모든 키의 집합 > 시저 암호의 키 공간 크기 : 26
- 암호문의 경우의 수 : 26! -> a는 26가지, b는 25가지 ...
- 암호문 깨는 법 : 간단한 키워드나 키프레이즈(keyphrase)를 이용
\(E_n(x) = (x+n)mod26\)
\(D_n(x) = (x-n)mod26\)
모노알파베틱의 예) ASSASSINATOR라는 키워드의 대칭표
- 키워드에서 중복된 알파벳을 제거 -> ASINTOR : 암복호화 key가 된다
- 이 단어를 앞에 놓고 (1)
- ASINTOR의 마지막 알파벳 R부터 Z까지 뒤에 배치 (단, 앞에 나온 알파벳 제외) (2)
- 다시 A부터 시작해 중복된 알파켓을 제외하고 배치 (3
빈도수 분석법
단일 치환 암호법은 키워드를 몰라도 복호화가 가능
9세기에 일 킨디라는 아랍의 학자가 기술한 책에 기록
빈도 분석법 이용
- 알파벳의 26글자가 문장에서 통계적으로 비슷한 빈도수를 가진다는 점에서 착안
- 평문에 등장하는 문자의 빈도와 암호문에 나오는 문자의 빈도가 일치하는 것을 이용
비즈네르 암호화 | 다중 문자 치환 기법
- 하나의 문자가 여러 개의 다른 문자로 대체
- a가 b에 대응될 수도 있고 c에도 대응 가능
- 다중 치환을 이용하여 문자의 발생 빈도를 균일화 -> 빈도분석법 해결
\(C_i = D_k(M_i) = (M_i+K_i) mod 26\)
\(M_i = D_k(C_i) = (C_i +K_i) mod 26\)
비즈네르 암호화의 예 )
평문 : wish to be free from my self
key : secret is beautiful
비즈네르 표를 이용해 암호화
단순한 빈도 분석법으로는 깰 수 없음
19세기에 찰스 뱁지에 의해 분석됨
전치 암호
평문을 구성하는 문자들의 순서를 재배열하여 암호문을 만듦
- 평문을 정해진 길이의 블럭으로 나눔
- 규칙을 적용하여 블록 안의 문자들을 재배치
- ex) 스키테일 암호
근대 암호화
19세기 말 찰스 배비지가 비즈네로 암호화 방식의 복호화 방법을 알아냄
마르코니가 무선 통신 발명 : 통신 내용을 보호할 수 없는 상태에서 그 용도가 제한적
몇가지 암호 알고리즘이 개발되었으나 모두 복호화됨 ex) 애니그마
현대 암호
이론 배경
- 정수론, 대수학, 복잡도 이론, 확률론
- 정보 이론, 양자 이론 등
암호 알고리즘
- 대칭키 암호 알고리즘 (Symmetric Key Encryption / Decryption) : DES, 3DES, AES, SEED 등
- 공개키 암호 알고리즘 (Public Key Encryption / Decryption) : RSA, ElGamal, Knapsack 등
- 암호학적 해쉬 및 메시지 인증 코드 (Message Authentication Code) : SHA-1, MD5 등
- 슈도 난수 생성 (Pseudo Random Number Generation)
- 타원 곡선 암호 (Elliptic Curve Cryptosystem)
- ID 기반 암호 시스템 (ID-based Cryposystem)
암호 프로토콜 (Cryptographic Protocols)
암호의 목적은 데이터를 숨기는 것, 정보를 모르게 하는 것이다 -> 정보의 기밀성 제공
현대 암호에서 정보의 기밀성을 제공해주는 것이 암호 알고리즘이다.
암호 알고리즘이라는 것은 암호화와 복호화 두 가지의 알고리즘을 가지고 있는 것을 의미한다.
1900년대에 컴퓨터가 보급이 되면서 컴퓨터 서비스가 많아지게 된다.
이 암호 기술이 응용이 되어 특수한 보안 기능 및 목적을 제공하도록 만들어지는 것을 암호 프로토콜이라고 한다
- Key exchange and maintenance (키 분배 / 키 교환 프로토콜) : 안전하게 키 분배를 할 수 있도록 하는 것
- Digital Signature - RSA, ElGamal, DSA : 작성한 디지털 문서에 서명을 제공하는 것
- Special Digital Signature - Blind signature, group signature, proxy signature
- Identification protocol, authentication protocol
- Secure multipary computation
- Interactive protocol, Zero-knowledge interactive protocol(ZKIP)
- Zero-knowledge proof(영지식 증명) : 내가 알고 있는 정보를 노출시키지 않으면서 내가 알고있음을 증명하는 것
- Secret Sharing (비밀 분산법) : 비밀 정보를 쪼개서 노출시킴
- e-Payment, e-Voting, e-Contract
특징
- 데이터 기밀성 : 안전하지 않은 통신 채널을 이용하여 암호 알고리즘으로 양자간 안전한 데이터 전송
- 사용자 인증 : 송신자가 직접 생성한 데이터인지 -> 전자 서명
- 데이터 무결성 인증 : 통신 중간에 데이터가 위변조 되지 않았는지 -> 암호학적 해쉬
- 영지식 증명 등
- 정수론에 기반 됨
- 암호의 안전성이 NP-hard 문제의 어려움에 기반 -> 이산 대수 문제, 소인수분해 문제
'Hacking > Cryptography' 카테고리의 다른 글
[비대칭키 암호 시스템] RSA (0) | 2024.12.15 |
---|---|
[비대칭키 암호 시스템] Elgamal Encryption (1) | 2024.12.15 |
[공개키 암호 시스템] 정수론 (0) | 2024.12.15 |
[대칭키 암호 시스템] DES (0) | 2024.12.15 |
[블록 암호] 운영모드 (0) | 2024.02.12 |