5급 공채 2차

2018년 5급 공채 기술 2차 정보보호기술

문제 4개 · 50점. 참고 답안·채점 기준은 앱에서 볼 수 있습니다.

제1문 (10점)

Diffie-Hellman 키 합의 프로토콜을 사용하여 Alice와 Bob이 세션키를 공유하려고 한다. 사용되는 소수를 p, 생성자(generator)를 g, Alice의 비밀 값을 x, Bob의 비밀 값을 y, 생성한 공유 세션키를 K라고 할 때, 다음 물음에 답하시오. (총 10점)
  1. (1) Alice와 Bob이 공유 세션키를 생성하는 과정을 수식을 이용하여 설명하시오. (5점)
  2. (2) 기본적인 Diffie-Hellman 키 합의 프로토콜은 중간자 공격(man-in-the-middle attack)에 취약하다. 중간자 공격 과정을 설명하시오. (5점)

제2문 (15점)

정보보호서비스 중에서 기밀성, 무결성, 인증, 부인방지에 대한 다음 물음에 답하시오. (총 15점)
  1. (1) 각 서비스에 대하여 설명하시오. (5점)
  2. (2) 메시지인증코드(MAC, Message Authentication Code)가 인증 서비스를 지원하는 방식을 설명하시오. (5점)
  3. (3) 메시지인증코드가 부인방지 서비스를 제공하지 않는 이유를 기술하시오. (5점)

제3문 (10점)

100개의 블록(block)으로 구성된 평문을 블록암호 운영모드인 CBC(Cipher Block Chaining), CFB(Cipher Feedback)를 사용하여 암호화하려고 한다. 다음 물음에 답하시오. (총 10점)
  1. (1) CBC 모드로 암호화하여 전송하는 도중에 20번째 암호문 블록에 한 비트 오류가 발생하였다. 이 경우 원래대로 복호화되지 않는 평문 블록을 구하고, 오류가 파급되는 과정을 설명하시오. (5점)
  2. (2) CFB 모드를 사용하여 암호화하는 과정 중에 20번째 평문 블록에 입력 오류가 발생하였다. 이 경우 영향을 받는 암호문 블록을 구하고, 오류가 파급되는 과정을 설명하시오. (단, CFB의 블록 크기는 암호알고리즘의 블록 크기와 같다고 가정한다) (5점)

제4문 (15점)

다음은 ECDSA(Elliptic Curve Digital Signature Algorithm)의 키 생성, 서명 생성 및 검증 과정이다. 물음에 답하시오. (총 15점)
<시스템 파라미터>
E: 타원곡선
P: E상의 기저 점(base point)
n: P의 위수(order)
H: 암호학적 해시함수
<키생성>
1 < d < n를 만족시키는 정수 d를 랜덤하게 선택한다.
Q = dP를 계산한다.
개인키=d, 공개키=Q
<서명 생성 알고리즘>
입력: 메시지 m
출력: m에 대한 서명 ( r , \, s )
1)1 < k < n을 만족시키는 정수 k를 랜덤하게 선택한다.
2)kP = ( x , y ) , \, \, r \, \, = \, x \, \, \, mod \, \, \, n을 계산한 후 만약 r = 0이면 단계 1)에서 다시 시작한다.
3)h = H ( m )을 계산한다.
4)s = k^{{- 1}} ( h + dr ) \, \, mod \, \, n을 계산한 후 만약 s = 0이면 단계 1)에서 다시 시작한다.
5)( r , \, s )를 출력한다.






<서명 검증 알고리즘>
입력: 메시지 m과 서명 ( r , \, s )
출력: ‘검증 성공’ 또는 ‘검증 실패’
1)r , \, s가 0 < r < n , \, \, 0 < s < n을 만족하지 못하면 ‘검증 실패’를 출력한다.
2)h = H ( m )을 계산한다.
3)u_{{1}} = s^{{- 1}} h \, \, mod \, \, \, n, u_{{2}} = s^{{- 1}} r \, \, \, mod \, \, \, n을 계산한다.
4)X = u_{1} P + u_{2} Q를 계산한 후 X = O(point at infinity)이면 ‘검증 실패’를 출력한다.
5)X = ( x , \, y )에 대하여 v = x \, \, \, mod \, \, n을 계산한다.
6) 만약 v = r이면 ‘검증 성공’을, 그렇지 않으면 ‘검증 실패’를 출력한다.
  1. (1) 서명 생성 알고리즘에서 k가 알려지면 개인키 d가 노출될 수 있음을 설명하시오. (5점)
  2. (2) 서명 생성 알고리즘을 통해 생성된 메시지 m의 서명 ( r , \, s )가 서명 검증 알고리즘의 단계 6)에서 ‘검증 성공’을 출력함을 보이시오. (단, ( r , \, s )가 서명 검증 알고리즘의 단계 1)에서 단계 4)까지는 모두 통과했다고 가정한다) (10점)