p22~48
1.1 보안 목표
- 기밀성: 민감한 정보를 저장 전달할 때 은닉하는 것.
- 무결성: 인가된 사용자만이 정보를 변경하는 것.
- 가용성: 인가된 사용자만이 정보를 이용하는 것.
1.2 보안 공격
- 암호분석 공격: 랜덤 함수에 없는 암호의 특성을 찾는 것. 이를 ‘구분자’라고 함.
- 비-암호분석 공격: 수학적인 약점을 이용하지 않음.
① 기밀성을 위협하는 공격
- 스누핑: 불법적으로 데이터를 접근, 탈취하는 것.
- 트래픽 분석: 온라인 트래픽을 분석하여 다른 유형의 정보를 얻는 것(ex. 이메일 주소).
② 무결성을 위협하는 공격
- 변경: 공격자가 정보를 가로채거나 획득한 뒤 유리하게 조작하는 것.
- 가장: 공격자가 다른 사람으로 위장하여 가장 또는 스푸핑 공격을 수행하는 것.
- 재전송: 공격자가 사용자가 보낸 메시지 사본을 획득하고 나중에 재사용하는 것.
- 부인: 수신자와 송신자 중 한쪽에 의해서 부인하는 것.
③ 가용성을 위협하는 공격
- 서비스 거부(Dos): 시스템의 서비스 지연 및 차단. 거짓 요청을 연쇄적으로 보내 서버 과부하, 응답 가로채기,
지우기.
④ 소극적 공격 적극적 공격
- 소극적 공격: 단지 정보를 획득하는 것이 목표. 데이터에 해를 끼치지 않으나 송·수신자에게 해를 끼칠 수 있음.
(ex. 스누핑, 트래픽 분석) 공격 탐지는 어려우나 막기가 쉬움.
- 적극적 공격: 데이터를 바꾸거나 시스템 해를 끼침. 무결성과 가용성을 위협하는 공격. 방어는 어려우나 탐지는
쉬운 편.
1.3 서비스와 메커니즘
- ITU-T: 보안 서비스와 이를 구현하는 메커니즘 제시
① 보안 서비스
- 데이터 기밀성: 노출 공격으로부터 데이터를 보호하는 것. (ex. 스누핑, 트래픽 분석)
- 데이터 무결성: 데이터의 변경, 삽입, 삭제, 재전송 등으로부터 데이터 보호하는 것.
- 인증: 연결형은 상대편에 대한 인증을, 비연결형은 데이터 출처를 인증하는 것.
- 부인봉쇄: 데이터의 송·수신자가 부인하지 못하도록 함.
- 접근 제어: 불법적인 접근으로부터 데이터를 보호하는 것.
② 보안 메커니즘
- 암호화: 데이터를 숨기거나 보호하는 것. 암호, 스테가노그래피 등의 기술에 이용.
- 데이터 무결성: 짧은 검사값을 데이터에 추가. 수신자가 받은 검사값과 생성된 비교함.
- 디지털 서명: 송신자가 전자적으로 데이터에 서명을 하고 수신자가 전자적으로 그 서명을 검증할 수 있는 방법.
- 인증 교환: 두 사람은 자신의 신원을 다른 사람에게 증명하기 위한 메시지를 교환한다.
- 트래픽 패딩: 공격자가 트래픽 분석을 하지 못하도록 방해하여 데이터 트래픽에 가짜 데이터를 삽입하는 것.
- 라우팅 제어: 공격자가 특정 경로에서 도청하지 못하도록 송·수신자가 별도의 가용경로를 선택하고 지속적으로
경로를 바꿔가며 통신하는 것.
- 공증: 두 사람 사이의 통신 제어를 위해 신뢰할 수 있는 제3자에게 요청을 저장하는 것.
- 접근 제어: 사용자가 시스템의 데이터나 출처에 대한 접근 권한 여부를 증명하는 방법.
③ 기술 - 암호
- 대칭 키 암호화: A가 암호 알고리즘으로 메시지를 암호화 하고 B가 복호 알고리즘으로 메시지를 복호화함.
암호화와 복호화에 하나의 비밀 키를 사용함. (같은 키 사용)
- 비대칭 키 암호화: 두 개의 키로 이루어진 한 쌍의 공개 키와 개인 키를 사용. B에게 암호화된 메시지를 보내기 위해
A는 B의 공개 키로 메시지를 암호화하고 복호화를 위해서 B는 자신의 개인 키를 이용.
- 해싱: 다양한 길이의 메시지를 고정된 길이로 압축. 데이터 무결성 제공과 검사값 제공을 위해 사용.
④ 기술 – 스테가노그래피
: 단순 메시지 안에 비밀 메시지를 숨기기 위해 Null cipher 이용.
- 텍스트 커버: 텍스트 안에 2진 데이터를 집어넣는 방법.
(ex. 0은 띄어쓰기 한 칸, 1은 띄어쓰기 두 칸으로 문장에 띄어쓰기(2진수) 삽입)
- 이미지 커버: 보통 24비트 픽셀로 구성. 최하위 비트를 유지 또는 변화시킴으로써 이미지에 2진 데이터 삽입.
- 다른 커버: 오디오나 비디오 안에 삽입하는 것. 압축 또는 압축 전에 삽입.
2.1 정수 연산
- 정수 집합(Z)
- 이항 연산: 덧셈, 뺄셈, 곱셈을 이용한 연산(나눗셈은 2개의 결과 값을 산출하여 아님)
- 정수의 나눗셈: a(피제수) = q(몫) x n(제수) + r(나머지)
① 제한 사항 – 제수가 양의 정수여야 한다. (n > 0)
ex) -255 = (-23 x 11) +(-2) => -255 = (-24 x 11) + 9
② 제한 사항 – 관계 그래프
- 가분성: 나눗셈 관계식에서 a != 0 && r == 0 이면 a = q x n
n은 a의 약수라고 하며 나머지가 0일 경우 n | a 로 표기
ex) 32 = 8 x 4 => 4 | 32
① 성질
⑴ a | 1 이면 a = +-1
⑵ a | b 이고 b | a 이면 a = +-b
⑶ a | b 이고 b | c 이면 a | c
⑷ a | b 이고 a | c 이면 a | (m x b + n x c) (m, n 임의의 정수)
ex) x3 | 15, 15 | 45 이므로 성질 3에 의해 3 | 45
ex) 3 | 15, 3 | 9 이므로 성질 4에 의해 3 | (15 x 2 + 9 x 4), 3 | 66
- 모든 약수
⑴ 정수 1은 자기 자신만을 약수로 갖는다.
⑵ 모든 양의 정수는 최소 2개의 약수(1과 자기 자신)을 가진다.
- 최대 공약수: 두 정수를 나누는 가장 큰 정수
- 유클리드 알고리즘: 최대 공약수를 찾아내는 알고리즘.
⒧ gcd(a, 0) = a
⑵ gcd(a, b) = gcd(b, r) (r은 a를 b로 나눈 나머지)
gcd(36, 10) = gcd(10, 6) = gcd(6, 4) = gcd(4, 2) = gcd(2, 0) = 2
⑶ gcd(a, b) = 1이면 서로소.
- 확장 유클리드 알고리즘: s x a + r x b = gcd(a, b)
- 선형 디오판투스 방정식: ax + by = c
⒧ 특수 해
- d로 방정식 양변을 나눔.
- 확장 유클리드를 사용하여 a1s + b1t = 1을 만족하는 s와 t 값을 계산.
x0 = (c / d)s, y0 = (c / d)t
⑵ 일반 해
x = x0 + k(b / d), y = y0 – k(b / d)
<유클리드, 확장 유클리드, 선형 디오판투스 예시>
x | y | 12345x + 123y | |
1 | 0 | 12345 | |
x-100 | 0 | 1 | 123 |
x-2 | 1 | -100 | 45 |
x-1 | -2 | 201 | 33 |
x-2 | 3 | -301 | 12 |
x-1 | 8 | 803 | 9 |
11 | -1104 | 3 |
gcd(12345, 123) = 3 = gcd(3, 0)
12345 = 100 x 123 + 45
123 = 2 x 45 + 33
45 = 1 x 33 + 12
33 = 2 x 12 + 9
12 = 1 x 9 3
9 = 3 x 3 + 0
12345(11) + 123(-1104) = 3
'기타 이론' 카테고리의 다른 글
[Whois] 어셈블러 - 해석2 (0) | 2021.11.29 |
---|---|
[Whois] 어셈블러 - 해석1 (0) | 2021.11.29 |
[암후] <암호학과 네트워크 보안> 책정리 2, 3주차 (0) | 2021.09.28 |