Study/Etc.

컴퓨터 보안 이론 (Computer System Security)

빨간당무 2012. 10. 23. 16:16

컴퓨터 보안 이론 (Computer System Security) - 2012년 2학기 중간고사 정리


주의 : 작성한 답이 정답이 아닐 수 있으므로 제차 확인하여 공부할 것.


과년도 문제 - 


1. 다음 빈칸에 알맞은 용어를 채우시오

(a) data integrity 무결성 설명

(b) confidentiality 기밀성 설명

(c) secret 공개키와 대칭키의 차이점

(d) non-repudiation 부인방지 설명


2.  DES에서 Decryption 과정에 대해 설명하시오. 

※ 왜 encryption과 같은 과정을 거쳐도 역으로 decryption이 되는지 설명


3. Irreducible polynomial을 이용하여 주어진 다항식의 역원을 구하시오. 

※ 유클리드 알고리즘으로 푸는 문제


4. Primality Testing : Sieve와 Miller-Rabin 알고리즘으로 소수임을 계산할 때 사용되는 Fermat's Little Theorem, Nontrivial Square Roots에 대한 내용을 기술, Miller-Rabin을 사용했을 때 문제점 서술




1. 다음 빈칸에 알맞은 용어를 채우시오

(a) data integrity 무결성 설명

- Ensuring that data has not been altered by unauthorized

- 데이터가 복사, 추가, 수정, 순서변경 또는 재전송되지 않고 수신됐음을 확인하는 것

- 부적절한 변경 방지. 허가받은 사용자가 아니면 내용을 변경할 수 없어야 함


(b) confidentiality 기밀성 설명

- Keeping data secret from all but those authorized to see it

- 소극적 공격으로 부터 전송자료를 보호하는 것

- 부적절한 노출 방지. 허가받은 사용자가 아니면 내용에 접근할 수 없어야 함


(d) non-repudiation 부인방지 설명

- Preventing an entity from denying previous commitments or actions

- 정보를 보낸 사람이 나중에 정보를 보냈다는 것을 부인(발뺌)하지 못하도록 하는 것

- 메시지를 전달하거나 전달받은 사람이 메시지를 전달하거나 전달받았다는 사실을 부인할 수 없어야 함


※ 용어 추가

(e) data origin authentication 출처 인증

- Corroborating the source of data

- 메시지 또는 자료의 출처가 정말 주장하는 출처가 맞는지 확인하는 것이다. 인가된 자에게만 있는 중복되지 않은 정보에 대한 인가목록을 만든 후 인가목록에서 확인된 자에 한해 접근을 허용하는 것을 말한다


(f) Entity authentication 실체 인증

- Corroborating the identity of an entity

- 어떤 실체가 정말 주장하는 실체가 맞는지 확인하는 것이다. 특정방법으로 약속된 정보를 인가된 자와 교환한 후 해당 정보를 제시하는 경우에 한해 접근을 허용하는 것을 말한다


※ 편의상 순서를 바꿈

(c) secret 공개키와 대칭키의 차이점

- 대칭키 : 암호문을 생성(암호화)할 때 사용하는 키와 암호문으로부터 평문을 복원(복호화)할 때 사용하는 키가 동일한 암호 시스템

- 공개키 : 공개키 암호 시스템에서 각 사용자는 두 개의 키를 부여 받는다. 그 하나는 공개되고(공개키, public key), 다른 하나는 사용자에 의해 비밀리에 관리 되어야 한다.(비밀키, private key)

- 차이점 : 대칭키는 암호문과 복호문이 동일, 공개키는 암호문과 복호문이 다름, 공개키의 암호문과 복호문의 수학적 특성에 기반, 대칭키가 공개키 보다 속도가 빠름, 대칭키 암호 시스템은 알고리즘이 상대적으로 단순한 장점이 있지만 키 관리에 어려움이 많음. 이는 매우 큰 단점으로 키 관리가 상대적으로 용이한 공개키 암호 시스템의 출현의 계기가 됨

- 차이점2 : 두 방식의 장점을 이용하여 현재는 공개키 암호 기술은 A와 B 사이의 통신에서 사용되고 있는 대칭키 암호의 키 설정에 사용됨. 공개키 암호는 효율적 서명과 키 관리가 용이하다는 것. 대칭키 암호는 암호에 대한 효율성과 상당한 자료 보전에 적용되는 것.

- 비교표

 대칭키 암호 공개키 암호 

 작업을 위한 요구 사항

 1. 동일한 키를 가진 동일한 알고리즘이 암호/복호에 사용

 2. 수신자와 송신자는 알고리즘과 키를 나누어야 함

 작업을 위한 요구 사항
 1. 키 하나는 암호, 다른 하나는 복호에 사용하는 한 개의 알고리즘 사용
 2. 수신자와 송신자는 두 개의 키 중 일치하는 키가 한 개 있어야 함

 안전성을 위한 요구 사항
 1. 키는 비밀을 유지해야 함
 2. 만일 다른 정보를 이용할 수 없다면 메시지를 해독하는 것이 불가능하거나 적어도 비실용적이어야 함

 3. 암호 알고리즘과 암호문의 표본을 아는 것으로는 키를 결정하는데 불충분해야 함

 안전성을 위한 요구 사항
 1. 두 개의 키 중 하나는 비밀을 유지해야 함

 2. 만일 다른 정보를 이용할 수 없다면 메시지를 해독하는 것이 불가능 하거나 적어도 비실용적이어야 함

 3. 암호 알고리즘, 암호문의 표본 그리고 키 중 한 개의 키를 아는 것으로는 키를 결정하는데 불충분해야 함


2.  DES에서 Decryption 과정에 대해 설명하시오. 

※ 왜 encryption과 같은 과정을 거쳐도 역으로 decryption이 되는지 설명

- DES : 64 bit 블록(평문) / 56 bit 키 / 16 회전 / 각 회전에서 48 bit 보조 키 사용

- 3DES : 112 bit 키 (56 bit 키의 단점을 보완)

- Decryption (복호화) 과정 : 기본적으로 암호화 과정과 동일함. 암호문은 DES 알고리즘의 입력으로 사용되지만 키 

는 역순으로 사용됨. 즉, 을 첫번째 반복 과정에, 을 두번째 반복 과정에, 등으로 을 마지막 16번째 반복 과정에 사용함.

- Encryption (암호화) 과정 : 3단계로 진행됨

-- 1. 64 비트 평문이 치환된 입력을 생성하기 위해 비트열의 순서를 재조정하는 초기순열(IP; initial permutation)단계를 통과함. 

-- 2. 동일 함수의 16회 반복 단계가 수행됨. 순열과 치환 모두가 포함됨. 마지막 (16번째) 반복 처리의 출력은 입력 평문과 키의 함수인 64 비트로 구성됨. 64비트 출력의 좌우 절반은 예비 출력을 생성하기 위해 좌우로 교횐됨. 

-- 3. 예비출력은 64 비트 암호문 생성을 위해 초기 순열의 역인 역초기 순열()을 통과함.


3. Irreducible polynomial을 이용하여 주어진 다항식의 역원을 구하시오. 

※ 유클리드 알고리즘으로 푸는 문제

- 유클리드 알고리즘 (Euclidean algorithm) : 2개의 자연수의 최대공약수(공통되는 약수 중에서 가장 큰 수)를 구하는 알고리즘의 하나임, 로 표현함.

- Example : 

 step

 Q (몫)  A1  A2

 A3

 B1  B2

 B3

 s0 -

 1

 0

 1759 [m]

 0 1 550 [b]
 s1 3=1759/550  0 [s0-B1]

 1 [s0-B2]

 550 [s0-B3]

 1=1-3*0

 -3=0-3*1

 109=1759%550
 s2

 5=550/109

 1 [s1-B1]

 -3

 109  -5

 16=1-(-3)*5

 5=550%109

 s3 21=109/5  -5 [s2-B1]  16  5  106  -339  4=109%5
 s4 1=5/4

 106 [s3-B1]

 -339

 4 [s3-B3]

 -111  [355]

 1=5%4


4. Primality Testing : Sieve와 Miller-Rabin 알고리즘으로 소수임을 계산할 때 사용되는 Fermat's Little Theorem, Nontrivial Square Roots에 대한 내용을 기술, Miller-Rabin을 사용했을 때 문제점 서술

- Sieve : 결정론적 알고리즘, 판정하고자 하는 숫자보다 작은 모든 숫자로 나누어 확인하는 방법, 판정하고자 하는 숫자가 작을 때 가능.

- Fermat's Little Theorem : f라면 유사소수라고 판정함. n이 b에 대해 유사소수일 확률은 <= 1/2.

- Miller-Rabin : 확률적 알고리즘, 판정하고자 하는 숫자보다 작은 숫자를 임의로 생성하여 나누어 확인 하는 과정을 k 번 반복하는 방법. 한번 수행시 판정이 틀릴 확률이 1/4보다 작거나 같으며, 100번 정도 수행한 결과로 얻는 소수를 실제 전자상거래에서 이용함.




※ 추가

5. AES

- AES : 128, 192, 256 bit 블록(평문) / 128, 192, 256 bit 키 / 10, 14 회전 / 각 회전은 4개의 함수들을 사용

- 4개의 함수 : ByteSub (비선형계층) / ShiftRow (선형혼합 계층) / MixColumn (비선형 계층) / AddRoundKey (키추가 계층)

- 암호화 : Plaintext → AddRoundKey → Round 1~9 (ByteSub → shiftRows → MixColumn → AddRoundKey) → Round 10 (ByteSub → Shift Rows → AddRoundKey) → Ciphertext

- 복호화 : Ciphertext → AddRoungKey → Round 1~9 (InverseShiftRows → InverseByteSub → AddRoungKey → InverseMixCols) → Round 10 (InverseShiftRows → InverseByteSub → AddRoundKey) → Plaintext


6. 공개키 암호 시스템의 응용

- 암호/복호 : 송신자는 수신자의 공개키로 메시지를 암호화함.

- 디지털 서명 : 송신자는 개인키로 메시지를 "서명"함. 서명은 메시지에 암호 알고리즘을 적용하여 얻거나 메시지의 단위를 이루는 작은 데이터 블럭에 암호 알고리즘을 적용하여 얻음.

- 키 교환 : 양쪽은 세션키를 교환하기 위하여 상호 협력함. 양쪽 혹은 한쪽의 개인키를 포함한 몇 가지의 다른 방법들이 가능함. 

 알고리즘

 암호/복호화

 디지털 서명  키 교환
 RSA  가능(큰 블럭에는 비실용적)  가능  가능
 LUC  가능(큰 블럭에는 비실용적)  가능  가능
 DSS  불가능  가능  불가능
 Diffie-Hellman  불가능  불가능  가능




reference - 

1) Computer System Security 강의자료

2) 통신망 정보 보호(Network and internetwork security principles and practice), 최용락 외 3인 공역, 그린출판사

3) http://en.wikipedia.org/wiki/Outline_of_cryptography

4) http://ko.wikipedia.org/wiki/암호학

5) http://ko.wikipedia.org/wiki/정보_보안

6) http://ko.wikipedia.org/wiki/고급_암호화_표준

7) http://ko.wikipedia.org/wiki/유클리드_호제법

8) http://en.wikipedia.org/wiki/Irreducible_polynomial

9) http://en.wikipedia.org/wiki/Primality_test

10) http://en.wikipedia.org/wiki/Miller%E2%80%93Rabin_primality_test

11) http://en.wikipedia.org/wiki/Extended_Euclidean_algorithm

12) http://ko.wikipedia.org/wiki/밀러-라빈_소수판별법




정리했는데 망했어요...