2020. 5. 16.

[방통대](컴퓨터보안) 과제물 shift 암호화


암호화 관련 과제물이다.
역시 구글링과 책을 베껴서 원래 기본적으로 정보보안기사를 공부하며 쌓은 지식으로 휘갈겼다.

목차
 
1. 정보보호의 목표 CIA
1.1. 정보보호
1.2. CIA
1.3. 정보보호 방법
 
2. 시프트암호
2.1. 시프트 암호 실습
 
3. 대칭키 암호와 공개키 암호
3.1 대칭키 암호
3.2 공개키 암호
3.3 차이점
 
1. 정보보호의 목표 CIA
1.1. 정보보호
정보보호란 정보의 수집, 가공, 저장, 검색, 송신, 수신 도중에 정보의 훼손, 변조, 유출 등을 방지하기 위한 관리적, 기술적 방법을 의미합니다.
정보보호의 목표는 기밀성, 무결성, 가용성 세 가지가 있고 추가로 부인방지, 인증을 하는 곳도 있습니다.
정보보호의 특징으로는 100% 완벽하게 달성할 수 없으며 설치시 필요성을 확신할 수 없습니다. 또한, 효과성은 실패율에 의하여 측정됩니다.
 
1.2 CIA
정보보호의 목표인 CIA는 기밀성 무결성 가용성의 영어 앞에 글자를 따서 만든 것을 말하는 것입니다. 세 가지를 나누어 설명해보도록 하겠습니다.
기밀성(confidentiality)은 정보를 인가된 사용자에게만 허가하는 것을 말합니다. 허가되지 않은 사람이 정보를 보았다면 기밀성이 무너진 것으로 간주합니다. 예를 들어, 해커가 통신중 패킷을 스니핑하였다면 이 정보는 무결성이 침해된 것입니다.
무결성(integrity)은 정보를 허가받지 않은 사람이 변조, 훼손을 하지 못하도록 하는 것을 이야기합니다. 허가받지 않은 사람이 정보에 접근하여 ab로 바꾸거나 a를 삭제한다면 무결성이 무너진 것입니다. 예를 들어, 해커가 통신 중인 사용자들 사이에서 패킷을 탈취하여 패킷의 내용을 변조하려고 보냈다면 이것은 무결성이 침해된 것입니다.
가용성(availability)은 허가된 사용자가 언제든 그 정보를 사용할 수 있도록 하는 것입니다. 허가된 사용자가 내부 인트라넷에 접속하기 위해서 해당 서버에 접속을 하였는데 서버가 사용불능 상태가 되어 접속되지 않는다면 가용성이 무너진 것입니다. 네트워크 공격을 하면 가용성을 침해하기가 매우 쉬운데 예를 들어보겠습니다. 방송통신대학의 사이트를 수강신청 첫날, 해커가 Dos, DDos, DrDos 등을 이용하여 사이트를 마비 시켰습니다. 그렇다면 수강신청을 하지 못한 학생들은 가용성을 침해당한 것입니다.
 
1.3. 정보보호 방법
정보보호는 화재예방과 비슷하기도 하고 조금은 다릅니다. 한 번의 실수로 모든 것을 잃을 수 있고 안일함으로 인한 발생을 초래 할 수 있습니다. 정보보호는 100가지의 예방법 중에 1가지만 잘못 되어도 큰 피해로 이어질 수 있습니다. 또한, 기본적인 물리보안이 먼저 실행되지 않으면 정보보호의 의미가 없을 정도로 물리보안의 기반이 잘 닦여져 있어야합니다.
정보보호의 방법으로는 다양한 방법이 있는데 CIA로 나누어 설명해보도록하겠습니다. 기밀성을 지키기 위해서 개발된 방법은 암호화 방법입니다. 데이터가 암호화되어 이에 해당되는 키가 없다면 허가되지 않은 침입자가 해당 정보를 탈취하였더라도 볼수 없습니다. 암호화의 발전은 SSL, RSA, AES 등을 만들어 기밀성을 강화시켜주었습니다.
무결성을 지키기 위해서 개발된 방법은 NTFS, 백업시스템, 시퀀스번호를 이용한 패킷재조립 등이 있습니다. 변조된 데이터를 검출해내어 복구시키고 주기적인 백업을 통하여 데이터변경을 감지하고 롤백을 하는 등이 있습니다. 가용성을 지키기 위해서 개발된 기법도 있습니다. IPS, IDS, 방화벽, 라우터를 통한 패킷 필터링 등이 그 예입니다. Dos, DDos 등을 패킷분석과 통계를 통해 일정이상의 시간동안 과도한 요청시 해당 IP를 차단하거나 허용되지 않은 이상한 통신기법을 필터링하고 네트워크 이상 징후를 감지하여 대응하여 가용성을 지키는 경우입니다.
 
2. 시프트암호
시프트 암호란 옆에 그림처럼 자리를 하나씩 밀어내는 것을 말한다. 만약에 시프트 암호의 키가 3bit를 밀어내는 것이라면 shift를 암호화하면 fitsh로 될 것이다. 대표적인 예로 과거에 카이사르 암호가 있다. 카이사르 암호는 기원전 100년경에 만들어져 로마의 장군인 카이사르가 동맹군들과 소통하기 위해 만든 암호로 단순하고 간단하여 일반인도 쉽게 사용 할 수 있었으나 철자의 빈도와 자주 사용되는 단어, 형태를 이용하여 쉽게 풀리는 단점을 가지고 있었다.
2.1. 시프트 암호 실습
COMPUTER를 시프트 암호를 이용하여 암호화하고 복호화 하는 과정을 실습하겠습니다.
보기 쉽게 하기 위해서 먼저 글자를 알파벳 순서대로 0부터 시작하여 숫자로 변환합니다.

1

A
B
C
D
E
F
G
H
I
J
K
L
M
0
1
2
3
4
5
6
7
8
9
10
11
12
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
13
14
15
16
17
18
19
20
21
22
23
24
25



해당 알파벳에 치환을 통한 숫자로 표현하였습니다. 키 값을 5로 하여 옆으로 5번 옆으로 밀어서 표를 작성합니다.

2

A
B
C
D
E
F
G
H
I
J
K
L
M
21
22
23
24
25
0
1
2
3
4
5
6
7
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
8
9
10
11
12
13
14
15
16
17
18
19
20


이제 평문(P)COMPUTER의 해당 자리를 찾아서 암호화 해보도록 하겠습니다.
C는 표1의 숫자 2로 치환하였는데 표2의 숫자2인 H에 해당됩니다.
O은 표1의 숫자 14로 치환하였습니다. 표2에선 T에 해당됩니다.
M은 표1의 숫자 12로 치환하였습니다. 표2에선 R에 해당됩니다.
P은 표1의 숫자 15로 치환하였습니다. 표2에선 U에 해당됩니다.
U은 표1의 숫자 20로 치환하였습니다. 표2에선 Z에 해당됩니다.
T은 표1의 숫자 19로 치환하였습니다. 표2에선 Y에 해당됩니다.
E은 표1의 숫자 4로 치환하였습니다. 표2에선 J에 해당됩니다.
R은 표1의 숫자 17로 치환하였습니다. 표2에선 W에 해당됩니다.
암호화된 단어는 TRUZYJW입니다.
다시 복호화 작업을 하도록 하겠습니다.
T은 표2의 숫자 2로 치환하였습니다. 표1에선 C에 해당됩니다.
R은 표2의 숫자 14로 치환하였습니다. 표1에선 O에 해당됩니다.
U은 표2의 숫자 12로 치환하였습니다. 표1에선 M에 해당됩니다.
Z은 표2의 숫자 15로 치환하였습니다. 표1에선 P에 해당됩니다.
Y은 표2의 숫자 20로 치환하였습니다. 표1에선 U에 해당됩니다.
J은 표2의 숫자 19로 치환하였습니다. 표1에선 E에 해당됩니다.
W은 표2의 숫자 17로 치환하였습니다. 표1에선 R에 해당됩니다.
복호화된 단어는 COMPUTER입니다.
이것보다 더 발전한 것은 시프트암호화처럼 1비트를 밀어내는 것이 아니라 아예 자리를 바꾸어 치환해버리는 s-box가 있습니다. 시프트암호처럼 쉽게 패턴이 보이는 것이 아니라 A=F, F=C 등의 마구잡이의 자리를 바꾸어 패턴에 대해 분석하지 못하도록 하는 것입니다.
 
3. 대칭키 암호와 공개키 암호
3.1 대칭키 암호
암호화와 복호화에 같은 암호 키를 쓰는 알고리즘을 의미합니다. 암호화를 하는 곳과 복호화를 하는 곳이 같은 암호 키를 공유하여 가지고 있어야 합니다. 공개 키 암호에서 공개키와 비밀 키를 별도로 가지는 것과 크게 다른 점입니다. 같은 키를 가지고 있다는 것은 계산속도가 빠르다는 장점을 가지고 있습니다. 하지만 키를 도난시 쉽게 복호화 된다는 단점을 가지고 있습니다.
대칭키 암호는 스트림암호와 블록암호로 나눌 수 있습니다. 스트림암호란 비트/바이트 단위로 계속해서 입력받아 암호화를 하는 방식을 이야기합니다. 블록암호란 정해진 단위를 블록으로 구분하고 입력받아 그에 대응하여 암호화 하는 방식입니다.
블록 암호에는 DES,AES,3DES, SEED, ARIA 등의 암호화 알고리즘이 개발되어 있습니다. DES는 현재 복호화 되는 시간이 너무 짧아져 쓰지 않습니다.
스트링 암호에는 ECB,CBC,CFB,OFB,CTR등의 암호화 방식이 있습니다. CBC > CTR > CFB = OFB > ECB 순으로 효과가 좋다고 알려져 있습니다.
 
3.2 공개키 암호
공개키와 비밀키 두개가 존재하며 공개키 암호를 구성하는 알고리즘을 대칭키 암호 방식과 비교하여 비대칭 암호라고도 불립니다. 암호화와 복호화에 사용하는 키가 서로 다르며 암호화할 때는 수신자의 공개키를 사용하여 암호화하고 복화화 할 때는 개인이 가지고 있는 개인키를 이용하여 복호화 합니다. 공개키는 누구나 알 수 있지만, 그에 대응하는 비밀키는 키 소유자만이 알고 있어 특정한 비밀키를 가지는 사용자만이 내용을 알 수 있는 방식입니다.
이산대수와 소인수분해를 이용하기 때문에 해독이 매우 어렵다는 특징을 가지고 있습니다.
대칭키알고리즘에 비하여 속도가 매우 느립니다. (1000)
보통은 대칭키 알고리즘의 키값을 교환하는데 암호를 사용합니다.
RSA, Elgamal, 디피-헬만 키교환, Rabin, DSA, DSS 등이 있습니다.
 
3.3 차이점
항목
비밀키 암호화
공개키 암호화
키 보관 형태
, 수신자 각자가 보관
개인키는 수신자가 보관하고 공개키는 어디서든 배포
키 개수
1개
2개
키 길이
64,128비트의 작은 길이
512,1024,2048 등 긴 길이
키 교환
키를 교환하는 것이 어렵고 위험하다.
공개키를 교환하는 것은 매우 쉽다
암호화 속도
빠르다
느리다
평문의 길이
제한 없음
있음
 
출처
(검색일: 2020.4.15.)
알기사, 정보보안기사
s-box, 티스토리블로그, https://hn0110.tistory.com/378(검색일: 2020.4.15.)

댓글 없음:

댓글 쓰기