*암호의 개념
통신
당사자들끼리만 아는 비밀스런 신호나 부호
암호화와 복호화하기 위한 원리, 수단, 방법
등을 취급하는 기술이나 과학
예전에는 A가 B와 통신할 때 개방통신로를 통해 plaintext를 전송한다.
1000년전에는 인장을 찍었다.
변조나 탈취를 할 경우를 대비하여 암호화를 하였다.
*암호 용어
전이중 방식을 보는게 아니라 반이중 방식을 본다.
- 한쪽만 보면 다 알 수 있다.
송신자가 보내고 싶은것은 평문(plaintext)이다.
암호알고리즘(cryptographic)을 이용하여 암호화키를 집어넣어서 암호문(ciphertext)를 만들어 보낸다.
수신자는 복호화키를 이용하여 암호문을 복호알고리즘(Decipher)를 넣어 평문을 얻는다.
공격자(attacker)가 암호문을 해독하는것을 암호해독(cryptanalysis)라 한다.
이렇게 암호화키가 같은것을 대칭키 암호화 알고리즘이라고 한다.
키가 다르다면 공개키 암호시스템이다. 다르게는 비대칭 알고리즘이라고 한다.
지금은 수학적 해독방법은 존재하지 않는다. 복호화키를 다 때려넣어보는것이다. ( ? brute force) 하지만 이런방식으로 해독할경우 시간이 너무 오래 걸리게 된다. 아무리 가치가 높은 정보도 시간이 지나면 가치가 떨어진다.
*암호원리
평문을
암호화하기 위한 연산자의 유형
- 치환 (Substitution) : 평문의 각 원소를 다른 원소로 사상
- 전치 (Transpostion) : 평문의 각 원소를 재배열
- 혼합 (Confusion) : 평문의 원소를 치환 선택(bit)
- 확산 (Duffusion) : 평문의 원소를 확대(bit)
사용된
키의 수
- 대칭키 : 송수신자가 같은 키를 사용
- 공개키 : 송수신자가 다른 키를 사용
평문
처리 방법
- 블록 암호화 (Block cipher) : 연산을 블럭단위로 처리
- 스트림 암호화 (Stream cipher) : 입력을 연속적으로 처리
단대단
암호 (End-to-End Encryption)
- OSI 참조모델에서 가장 높은 계층(7,6)에서 이루어진다.
- 네트워크에서 보안유지에 실패하더라도 데이터의 비밀성은 위협받지 않는다.
- 암호화는 송수신 프로세서가 담당한다.
- 컴퓨터를 사용하면 모두 단대단 암호이다.
링크암호 (Link Encyption)
- OSI 참조모델에서 가장 낮은 계층(1,2)에서 암호화 된다.
- 송수신 호스트나 중간 노드에서 노출된다.
- 신뢰적인 호스트 사이에 비신뢰적인 매체를 사용할 때 유리하다.
- 암호화는 송수신 호스트에서 담당한다.
- 인공위성 통신할때 사용한다.
- 장비를 가지고 있으면 링크암호이다.
관용 암호 ( 같은키 - 대칭키)
- 암호/복호에 동일한 키 와 동일한 알고리즘 사용
- 수신자와 송신자는 키를 교환해야 함
- 공유한 키(비밀키)는 비밀로 유지
- 키 분배의 어려움
- 디지털 서명 불가능
- 속도가 빠름
공개키 암호 ( 다른키 - 공개키)
- 암호/복호에 각각 서로 다른 키 와 동일한 알고리즘 사용
- 수신자와 송신자는 연관된 키쌍 중 하나를 알아야 함
- 키 쌍중 하나(개인키)를 비밀로 유지
- 공개키를 공개
- 디지털 서명 가능
- 속도가 느림
- 공개키를 가지고 해독하는것은 엄청 오래걸린다.
*고전적 암호 기술
전송
내용을 숨기는 방법
- Steganograhpy 방법
- 메시지의 존재 자체를 은폐
암호
방법
- 다양한 원문의 변환에 의해 외부인이 그 의미를 알지 못하도록 메시지를 변형
- 치환,전치를 이용 원문을 숨김
*Steganography
특징
- 메시지의 존재 자체를 은폐
- 원문내의 단어나 문자를 적당히 배열 함으로써 실제 메시지를 나타냄
예제
- 문자 마킹 (Character marking)
- 원문의 문자에 연필로 덧써서 표시를 해 빛을 적당한 각도로 비춰어야만 보임
- 유리에다가 글씨쓰는것
- 보이지 않는 잉크 (Invisible ink)
- 종이에 열이나 화학 처리를 해야만 보이는 잉크를 사용
- 핀 구멍 (Pin punctures)
- 빛을 비춰야만 보이는 작은 구멍을 원문에 넣는 방법
- 천공카드를 사용할 떄 쓰던 기법
Steganography의 장점
- 생성이 쉽다.
Steganography의 단점
- 상대적으로 적은 정보 비트를 은닉하는데 많은 오버헤드 요구
- 방법 노출시 재사용 불가
- 비밀통신에 대한 사실이 발견되면 타인에 의해 이용될 수 있다.
최근
경향
- 동영상, 이미지 파일을 이용 원문을 숨기는 방법이 인터넷 등의 네트워크에서 이용됨 ( ex : 워터마크에 사용됨)
- 테러,범죄에 이용되는 경우가 나타남
*치환 기법-시저암호
쥴리어스
시저에 의해 개발
예제 (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로 암호화
소수인 2, 3, 5, 7 등의 숫자를 가지고 뭔가 할 수 있는 것들이 많다.
mod5*
|
0
|
1
|
2
|
3
|
4
|
0
|
0
|
0
|
0
|
0
|
0
|
1
|
0
|
1
|
2
|
3
|
4
|
2
|
0
|
2
|
4
|
1
|
3
|
3
|
0
|
3
|
1
|
4
|
2
|
4
|
0
|
4
|
3
|
2
|
1
|
mod6*
|
0
|
1
|
2
|
3
|
4
|
5
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
1
|
0
|
1
|
2
|
3
|
4
|
5
|
2
|
0
|
2
|
4
|
0
|
2
|
4
|
3
|
0
|
3
|
0
|
3
|
0
|
3
|
4
|
0
|
4
|
2
|
0
|
4
|
2
|
5
|
0
|
5
|
4
|
3
|
2
|
1
|
mod를 이용해서 소수로 나눠 남은것들은 잉여개라고 불린다.
소수로 나눈 5는 잉여개가 다 있다.
소수가 아닌 6으로 나눈것들은 잉여개를 모두 가지고 있지않는다.
a
* # = 1
#
= a - 1
3 mod 2 = 1
나오면 인버스, 항등원이 존재하는 정수
복호화
- p = D(C) = (C -3) mod (26)
- 일반화 : p = D(C) = (C - k) mod (26)
- 문자 C는 p로 복호화
단점
- 암호화 및 해독 알고리즘을 알고 있다.
- 가능한 키가 25개 뿐이다.
- Brute-force attack이 가능
- 평문의 언어를 알고 있으며 쉽게 인식할 수 있다.
*치환 기법-단일치환
각
문자에 26자의 치환 가능
- 시이저 암호의 키 공간을 급격히 증가
- 시이지 암호 : 25
- 단일 치환 암호법 : 26!
단점
- 출현 빈도수를 이용해 평문 유추가능
ex) 영어
문장에는 t, e, a, h 등이 많이 나타남
암호문에서도 그에 상응하는 문자가 같은 빈도로 나타남
*치환 기법-다중치환
2글자씩 암호화
playfair 알고리즘은 5 * 5 행렬에
기초
키워드가 monarchy인 행렬
- 키워드 중복 문자를 제외하고 좌에서 우로, 상에서 하로 문자를 채운다.
- I와 J는 한 문자로 취급
가장 유명한 난수표
암호화
방법
- 반복되는 평문은 X와 같은 채움문자로 분리
- balloon : ba lx lo on
- 같은 행에 두문자가 있을 경우 우측에 있는 문자와 치환
- ar은 RM으로 치환
- 같은 열에 두문자가 있을 경우 바로 밑에 문자와 치환
- mu는 CM으로 치환
- 그 외에 평문자쌍는 대각선에 위치한 문자와 치환
- hs는 BP로, ea는 IM(또는 JM)
띄워쓰기를 없애고 대소문자를 소문자로 모두 바꾼다. 특수기호도 제거.
두글자씩 띄워쓰기를 해준다. - 하지만 문제가 생긴다.
같은 글자가 생기면 아무글자나 하나를 넣는다. ex ll -> la la
마지막에 한글자가 있을경우도 아무글자나 하나를 넣는다.
한 행에 있는 monar 중 두글자가 mn이 나온다면 oa가 된다.
한 열에 있는 nygqw 중에 두글자가 yq 면 gw로 바꾼다.
대각선에 위치한 mhgsz 중에 두글자가 hs면 pb로 바뀐다.
다 작업이 된 암호문은 다 붙여서 처리한다.
특징
- 알파벳은 26 가지중 2중자는 26 * 26 = 676 가지
- 2중자의 빈도수 분석은 어려움
- 1, 2차 대전중 미국, 영국 육군에서 사용
단점
- 평문의 원래 구조가 많이 드러남
- 수백자의 암호문자로 구조를 알 수 있다.
- 암호기법은 평문보다 평평한 분포가 가짐. 하지만 해독가에겐 평이한 구조를 가짐
*치환 기법-다중단일문자치환
단순
단일 문자 치환 방법을 개량
다중
단일 문자 치환 암호방법의 공통점
- 하나의 단일 문자 치환 규칙 집합을 사용
- 주어진 변환에 사용될 규칙은 키에 의해 결정
Vigenere
방법 (표참조)
- 키워드 : Infinitive
- 평문 : I see him drive
진정한 암호문이라고 인정받는것은 키를 가지고 있는 다중단일문자치환부터이다.
특징
- 평문자에 대한 암호문자가 유일한 키워드에 각 문자에 대하여 여러 개 존재
- 문자 빈도수에 대한 정보가 불분명해진다
단점
- 평문 구조에 대한 정보가 모두 은폐되지는 않는다.
- 단일 문자나 다중문자로 암호화 되었는지 아는 것은 쉽다.
- 빈도수에 따라
- 키워드의 길이를 유추가능 (3이나 9로 유추가능)
- 암호문에서 “VTW”이 나타남
*전치기법
monoalphabetic
암호기법의 진보된 방법(지휘막대)
평문자의
순서를 바꿈
# 전치기법은 항상 정사각형이여야한다.
# 마지막에 한개나 두개가 남으면 마지막에 아무글자나 읽으면된다.
# 읽을때는 세로로 읽는다.
rail fence 기법
깊이
: 3
평문
: To have dinner in the restaurant is expensive
암호문
: tntotihhsaeevrxeepdseitnnasnuiervraeina
사각형
행렬 사용
# 키를 정해야한다. 아래는 7개의 숫자를 사용하였다.
# 숫자배열을 맘대로 하면 된다.
# 남는 부분에는 a, t, e 같이 많이 쓰는 철자를 넣어야한다.
# atsts vutex hssfs ietaa edury tedcz hhylx
로 암호화된다.
전치 암호기법은 두 단계 이상의 전치를 행함으로써 더 안전성을 높일 수있다.
댓글 없음:
댓글 쓰기