기타 이론

[암후] <암호학과 네트워크 보안> 책 정리 1주차

美味코드 2021. 9. 19. 22:36

p22~48

 

1.1 보안 목표

  - 기밀성: 민감한 정보를 저장 전달할 때 은닉하는 것.

  - 무결성: 인가된 사용자만이 정보를 변경하는 것.

  - 가용성: 인가된 사용자만이 정보를 이용하는 것.

 

1.2 보안 공격

  - 암호분석 공격: 랜덤 함수에 없는 암호의 특성을 찾는 것. 이를 구분자라고 함.

  - -암호분석 공격: 수학적인 약점을 이용하지 않음.

 

  ① 기밀성을 위협하는 공격

   - 스누핑: 불법적으로 데이터를 접근, 탈취하는 것.

    - 트래픽 분석: 온라인 트래픽을 분석하여 다른 유형의 정보를 얻는 것(ex. 이메일 주소).

 

  ② 무결성을 위협하는 공격

    - 변경: 공격자가 정보를 가로채거나 획득한 뒤 유리하게 조작하는 것.

    - 가장: 공격자가 다른 사람으로 위장하여 가장 또는 스푸핑 공격을 수행하는 것.

    - 재전송: 공격자가 사용자가 보낸 메시지 사본을 획득하고 나중에 재사용하는 것.

    - 부인: 수신자와 송신자 중 한쪽에 의해서 부인하는 것.

 

  ③ 가용성을 위협하는 공격

    - 서비스 거부(Dos): 시스템의 서비스 지연 및 차단. 거짓 요청을 연쇄적으로 보내 서버 과부하, 응답 가로채기,

      지우기.

 

  ④ 소극적 공격 적극적 공격

    - 소극적 공격: 단지 정보를 획득하는 것이 목표. 데이터에 해를 끼치지 않으나 송·수신자에게 해를 끼칠 수 있음.

    (ex. 스누핑, 트래픽 분석) 공격 탐지는 어려우나 막기가 쉬움.

  - 적극적 공격: 데이터를 바꾸거나 시스템 해를 끼침. 무결성과 가용성을 위협하는 공격. 방어는 어려우나 탐지는

    쉬운 편.

 

1.3 서비스와 메커니즘

  - ITU-T: 보안 서비스와 이를 구현하는 메커니즘 제시

 

  ① 보안 서비스

    - 데이터 기밀성: 노출 공격으로부터 데이터를 보호하는 것. (ex. 스누핑, 트래픽 분석)

    - 데이터 무결성: 데이터의 변경, 삽입, 삭제, 재전송 등으로부터 데이터 보호하는 것.

    - 인증: 연결형은 상대편에 대한 인증을, 비연결형은 데이터 출처를 인증하는 것.

    - 부인봉쇄: 데이터의 송·수신자가 부인하지 못하도록 함.

    - 접근 제어: 불법적인 접근으로부터 데이터를 보호하는 것.

 

  ② 보안 메커니즘

    - 암호화: 데이터를 숨기거나 보호하는 것. 암호, 스테가노그래피 등의 기술에 이용.

    - 데이터 무결성: 짧은 검사값을 데이터에 추가. 수신자가 받은 검사값과 생성된 비교함.

    - 디지털 서명: 송신자가 전자적으로 데이터에 서명을 하고 수신자가 전자적으로 그 서명을 검증할 수 있는 방법.

    - 인증 교환: 두 사람은 자신의 신원을 다른 사람에게 증명하기 위한 메시지를 교환한다.

    - 트래픽 패딩: 공격자가 트래픽 분석을 하지 못하도록 방해하여 데이터 트래픽에 가짜 데이터를 삽입하는 것.

    - 라우팅 제어: 공격자가 특정 경로에서 도청하지 못하도록 송·수신자가 별도의 가용경로를 선택하고 지속적으로

    경로를 바꿔가며 통신하는 것.

    - 공증: 두 사람 사이의 통신 제어를 위해 신뢰할 수 있는 제3자에게 요청을 저장하는 .

    - 접근 제어: 사용자가 시스템의 데이터나 출처에 대한 접근 권한 여부를 증명하는 방법.

 

기술 - 암호

  - 대칭 키 암호화: A가 암호 알고리즘으로 메시지를 암호화 하고 B가 복호 알고리즘으로 메시지를 복호화함.

  암호화와 복호화에 하나의 비밀 키를 사용함. (같은 키 사용)

    - 비대칭 키 암호화: 두 개의 키로 이루어진 한 쌍의 공개 키와 개인 키를 사용. B에게 암호화된 메시지를 보내기 위해

   AB의 공개 키로 메시지를 암호화하고 복호화를 위해서 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

  na의 약수라고 하며 나머지가 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) (rab로 나눈 나머지)

    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을 만족하는 st 값을 계산.

    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