암호 - Part 1
1장 암호의 개념과 고전 암호
1. 암호의 개념
2. 암호 용어
3. 암호 원리
4. 고전적 암호 기술
1. 암호의 개념
- 통신 당사자들끼리만 아는 비밀스런 신호나 부호
- 암호화와 복호화하기 위한 원리, 수단, 방법 등을 취급하는 기술이나 과학
2. 암호 용어
* 요즘 암호송수신에 쓰는 알고리즘은 둘다 같다.(검증하기 힘들기 때문) *
* 송수신자가 키를 가지고 있는데 둘다 같은 키를 쓰면 대칭키 암호 시스템 다르면 공개키 암호 시스템이라 한다. *
* 송수신자의 암복호화 키 교환을 하는데 상당히 심각한 문제이다. 현재는 암호화 키 + 공개 키 로 뿌려서 공개키를 사용후
다시 보내달라 한다. *
* 정수론 책 사서 3일간 공부하기 *
3. 암호 원리
평문을 암호화하기 위한 연산자의 유형
- 치환 (Substitution) : 평문의 각 원소를 다른 원소로 사상
- 전치 (Transpostion) : 평문의 각 원소를 재배열
- 혼합 (Confusion) : 평문의 원소를 치환 선택(bit)
- 확산 (Duffusion) : 평문의 원소를 확대(bit)
사용된 키의 수
- 대칭키 : 송수신자가 같은 키를 사용
- 공개키 : 송수신자가 다른 키를 사용
평문 처리 방법
- 블록 암호화 (Block cipher) : 연산을 블럭단위로 처리
- 스트림 암호화 (Stream cipher) : 입력을 연속적으로 처리
단대단 암호 (End-to-End Encryption) *프로그램 사용*
- OSI 참조모델에서 가장 높은 계층(7,6)에서 이루어진다.
- 네트워크에서 보안유지에 실패하더라도 데이터의 비밀성은 위협받지 않는다.
- 암호화는 송수신 프로세서가 담당한다.
링크암호 (Link Encyption) *기계 사용*
- OSI 참조모델에서 가장 낮은 계층(1,2)에서 암호화 된다.
- 송수신 호스트나 중간 노드에서 노출된다.
- 신뢰적인 호스트 사이에 비신뢰적인 매체를 사용할 때 유리하다.
- 암호화는 송수신 호스트에서 담당한다.
관용 암호
- 암호/복호에 동일한 키 와 동일한 알고리즘 사용
- 수신자와 송신자는 키를 교환해야 함
- 공유한 키(비밀키)는 비밀로 유지
- 키 분배의 어려움
- 디지털 서명 불가능
- 속도가 빠름
* 암복호화를 사용해서 송수신과 그냥 송수신한것과 차이가 없다. / 키교환이 어렵다. / 공개키 사용x /
공개키 암호
- 암호/복호에 각각 서로 다른 키 와 동일한 알고리즘 사용
- 수신자와 송신자는 연관된 키쌍 중 하나를 알아야 함
- 키 쌍중 하나(개인키)를 비밀로 유지
- 공개키를 공개
- 디지털 서명 가능
- 속도가 느림
* 공개키에서는 비밀키란 말로 안쓰고(헷갈릴수 있음) 개인키, 공개키로 구분한다. *
* 같은 키를 가지고 있어 근원지 증명(책임 추적성)이 불가능하다.*
4. 고전적 암호 기술
전송 내용을 숨기는 방법
- Steganograhpy 방법
- 메시지의 존재 자체를 은폐
* 특정데이터를 데이터 안에 숨기는것 *
- 암호 방법
- 다양한 원문의 변환에 의해 외부인이 그 의미를 알지 못하도록 메시지를 변형
- 치환,전치를 이용 원문을 숨김
4.1 Steganography(1)
특징
- 메시지의 존재 자체를 은폐
- 원문내의 단어나 문자를 적당히 배열 함으로써 실제 메시지를 나타냄
예제
- 문자 마킹 (Character marking)
- 원문의 문자에 연필로 덧써서 표시를 해 빛을 적당한 각도로 비춰어야만 보임
- 보이지 않는 잉크 (Invisible ink)
- 종이에 열이나 화학 처리를 해야만 보이는 잉크를 사용
- 핀 구멍 (Pin punctures)
- 빛을 비춰야만 보이는 작은 구멍을 원문에 넣는 방법
Steganography의 장점
- 생성이 쉽다.
Steganography의 단점
- 상대적으로 적은 정보 비트를 은닉하는데 많은 오버헤드 요구
- 방법 노출시 재사용 불가
- 비밀통신에 대한 사실이 발견되면 타인에 의해 이용될 수 있다.
최근 경향
- 동영상, 이미지 파일을 이용 원문을 숨기는 방법이 인터넷 등의 네트워크에서 이용됨
- 테러,범죄에 이용되는 경우가 나타남
4.2 치환 기법-시저암호
쥴리어스 시저에 의해 개발
*
예제 (Key : 3)
- 평 문 : meet me after the toga party
- 암호문 : phhw ph diwhu wkh wrjd sduwd
암호화 방식(문자 p를 암호화)
- C = E(p) = (p+3) mod (26)
- 일반화 : C = E(p) = (p+k) mod (26)
- 문자 p는 C로 암호화
복호화
- p = D(C) = (C -3) mod (26)
- 일반화 : p = D(C) = (C - k) mod (26)
- 문자 C는 p로 복호화
*
단점
- 암호화 및 해독 알고리즘을 알고 있다.
- 가능한 키가 25개 뿐이다.
- Brute-force attack이 가능
- 평문의 언어를 알고 있으며 쉽게 인식할 수 있다
4.2 치환 기법-단일치환
각 문자에 26자의 치환 가능
- 시이저 암호의 키 공간을 급격히 증가
- 시이지 암호 : 25
- 단일 치환 암호법 : 26!
단점
- 출현 빈도수를 이용해 평문 유추가능
ex) 영어 문장에는 t, e, a, h 등이 많이 나타남
암호문에서도 그에 상응하는 문자가 같은 빈도로 나타남
4.2 치환 기법-다중치환
2자기씩 암호화
playfair 알고리즘은 5 * 5 행렬에 기초
키워드가 monarchy인 행렬
- 키워드 중복 문자를 제외하고 좌에서 우로, 상에서 하로 문자를 채운다.
- I와 J는 한 문자로 취급
*옛날에 외국에서는 i와 j를 잘 구별하지 못했었다고 한다.*
암호화 방법
- 반복되는 평문은 X와 같은 채움문자로 분리
- balloon : ba lx lo on
- 같은 행에 두문자가 있을 경우 우측에 있는 문자와 치환
- ar은 RM으로 치환
- 같은 열에 두문자가 있을 경우 바로 밑에 문자와 치환
- mu는 CM으로 치환
- 그 외에 평문자쌍는 대각선에 위치한 문자와 치환
- hs는 BP로, ea는 IM(또는 JM)
특징
- 알파벳은 26 가지중 2중자는 26 * 26 = 676 가지
- 2중자의 빈도수 분석은 어려움
- 1, 2차 대전중 미국, 영국 육군에서 사용
단점
- 평문의 원래 구조가 많이 드러남
- 수백자의 암호문자로 구조를 알 수 있다.
- 암호기법은 평문보다 평평한 분포가 가짐. 하지만 해독가에겐 평이한 구조를 가짐
평문 : 가로축
키 : 세로축
4.3 치환 기법-다중단일문자치환
단순 단일 문자 치환 방법을 개량
다중 단일 문자 치환 암호방법의 공통점
- 하나의 단일 문자 치환 규칙 집합을 사용
- 주어진 변환에 사용될 규칙은 키에 의해 결정
Vigenere 방법 (표참조)
- 키워드 : Infinitive
- 평문 : I see him drive
평문 i s e e h i m d r i v E
키 i n f i n i t i v e i n
암호문 q f j m u q f l m m d r
평문 i a d m i t t h i s m a y n o t b e t h e b e s t w a y o f d o i n g i t
키 a c a d e m y a c a d e m y a c a d e m y a c a d e m y a c a d e m y a c
암호문 i c d p m f r h k s p e k l o v b h x t c b g s w a m w o h d r m z e i v
특징
- 평문자에 대한 암호문자가 유일한 키워드에 각 문자에 대하여 여러 개 존재
- 문자 빈도수에 대한 정보가 불분명해진다
단점
- 평문 구조에 대한 정보가 모두 은폐되지는 않는다.
- 단일 문자나 다중문자로 암호화 되었는지 아는 것은 쉽다.
- 빈도수에 따라
- 키워드의 길이를 유추가능
4.4 전치기법
monoalphabetic 암호기법의 진보된 방법(지휘막대)
평문자의 순서를 바꿈
rail fence 기법
깊이 : 3
평문 : To have dinner in the restaurant is expensive
암호문 : tntotihhsaeevrxeepdseitnnasnuiervraeina
사각형 행렬 사용
전치 암호기법은 두 단계 이상의 전치를 행함으로써 더 안전성을 높일 수있다.
*키가7이라 깊이도 7이고 7글자씩 줄을 만든다.*
EX)
키 3 5 1 4 2
평문 i a d m i
t t h i s
m a y n o
t b e t h
e b e s t
w a y o f
d o i n g
i t x y z
암호문 : dhyeeyixisohtfgzitmtewdimintsonyatabbaot
암호문 : q z l w a v t h w v s b u m i y z g d b b v b e p g b q g p f p s v r
키 : i n f i n i t y i n f i n i t y i n f i n i t y i n f i n i t y i n f
평문 : i m g o n n a j o i n t h e p a r t y t o n i g h t w i t h m r k i m