메시지 무결성과 메시지 인증 Objectives Chapter 11 Chapter 11 □메시지 무결성 □메시지 인증 □암호학적 해시함수의 기준 □암호학적 해시함수의 안전성 평가를 위한 랜덤 오라클 모델과 역할 □MDC와 MAC의 차이점 □일반 MAC 11-1 MESSAGE INTEGRITY 11-1 MESSAGE INTEGRITY 지금까지 우리가 배운 암호시스템은 적어도 비밀성 혹은 기밀성을 제공한다 . 하지만 무결성은 제공하지 못했다. 그러나 메시지 전송에 있어서 때로는 기밀성 보다는 무결성이 더 중요한 경우가 있다 . Topics discussed in this section: 11.1 문서와 핑거프린트 (Document and Fingerprint) 11.2 메시지와 메시지 다이제스트 (Message and Message Digest) 11.3 차이점 (Difference) 11.4 무결성 점검 (Checking Integrity) 11.5 암호학적 해시함수 기준 (Cryptographic Hash Function Criteria) 11.1.1 문서와핑거프린트(Document and Fingerprint) 11.1.1 문서와핑거프린트(Document and Fingerprint) 문서의 무결성을 보존하는 한 가지 방법은 핑거프린트 (fingerprint) 를 이용하는 것이다. 만약 앨리스가 자신의 문서 내용이 변경되지 않기를 바란다면 문서의 끝부분에 문서의 핑거프린트를 첨부하는 것이다 .. 11.1.2 메시지와메시지다이제스트(Message and Message Digest) 11.1.2 메시지와메시지다이제스트(Message and Message Digest) 문서와 핑거프린트에 해당되는 전자적인 의미에 해당되는 용어는 각각 메시지와 다이제스트이다 . Figure 11.1 메시지와 다이제스트 11.1.3 차이점(Difference) 이 두 개의 쌍인 (문서/핑거프린트)와 (메시지/메시지 다이제스트 )는 아주 유사한 개념이지만 차이점이 있다 . 문서와 핑거프린트는 물리적으로 묶여있다 . 하지만 메시지와 메시지 다이제스트는 물리적으로 볼 때 묶여있지 않으며 따로 보낼 수도 있다 . 더 중요한 것은 메시지 다이제스트는 변경되어서는 안 된다는 것이다 . Note 메시지 다이제스트는 변경되어서는 안 된다 . 11.1.4 무결성 점검 (Checking Integrity) Figure 11.2 무결성 점검 11.1.5 암호학적해시함수기준(Cryptographic Hash Function Criteria) 11.1.5 암호학적해시함수기준(Cryptographic Hash Function Criteria) 암호학적 해시함수는 3 가지 기준을 충족해야 한다 . 이 3 가지는 그림 11.3 에 나타내었듯이 . 프리이미지 저항성 (preimage resistance), . 제 2 프리이미지 저항성 (second preimage resistance), . 충돌 저항성 (collision resistance) 이다. Figure 11.3 암호학적 해시함수의 기준 11.1.5 Continued 프리이미지 저항성 (Preimage Resistance) Figure 11.4 프리이미지 11.1.5 Continued Example 11.1 StuffIt 같은 전통적인 유실이 없는 압축방법을 암호학적 해시함수로 사용할 수 있는가 ? Solution 사용할 수 없다 . 유실이 없는 압축방법은 복구가 가능한 압축 메시지를 생성하는 것이다 . 압축된 메시지를 풀어서 원래의 메시지를 구할 수 있다 . Example 11.2 검사 합 함수를 암호학적 해시함수로 사용할 수 있는가 ? Solution 사용할 수 없다 . 검사 합 함수는 프리이미지 저항성이 없다 . 이브는 주어진 데이터의 검사 합과 동일한 검사 합값을 갖는 여러 개의 다른 메시지를 만들 수 있다 . 제2 프리이미지저항성(Second Preimage Resistance) 11.1.5 Continued 제2 프리이미지저항성(Second Preimage Resistance) 11.1.5 Continued Figure 11.5 두 번째 프리이미지 11.1.5 Continued 충돌 저항성 (Collision Resistance) Figure 11.6 충돌 내성 11-2 RANDOM ORACLE MODEL Bellare 와Rogaway 가1993 년에소개한랜덤오라클모델은해시함수에대한이상적인수학적인모델이다. 11-2 RANDOM ORACLE MODEL Bellare 와Rogaway 가1993 년에소개한랜덤오라클모델은해시함수에대한이상적인수학적인모델이다. Topics discussed in this section: 11.2.1 비둘기집 원리 (Pigeonhole Principle) 11.2.2 생일 문제 (Birthday Problems) 11.2.3 랜덤 오라클 모델에 대한 공격 (Attacks on Random Oracle Model) 11.2.4 구조에 대한 공격 (Attacks on the Structure) Example 11.3 Example 11.3 오라클이 하나의 표과 동전 한 개로 이루어졌다고 가정해보자 . 이 표는 두 개의 열로 이루어져있다 . 11-2 Continued a. 메시지 AB1234CD8765BDAD 를 가지고 다이제스트를 생성한다고 하자 . 오라클은 일단 표를 점검한다 . 11-2 Continued Example 11.3 Continued 11-2 Continued Example 11.3 Continued a. 메시지 4523AB1352CDER45126 가 다이제스트 생성을 위해 주어졌다고 해보자 . 오라클은 표를 점검하고 이 메시지에 대한 다이제스트가 이미 표에 존재한다는 것을 알아챈다 . 이 오라클은 단순히 대응되는 다이제스트 값인 13AB 를 제공한다 . 11-2 Continued 11-2 Continued Example 11.4 예 11.3 의 오라클에서는 주어진 메시지로부터 다이제스트 생성하는 것을 공식이나 알고리즘을 사용해서 표현할 수 없다 . 예를 들면 , 공식h(M) = M mod n 을 사용하는 오라클이라고 해보자. 오라클은 이미 h(M1) and h(M2) 을 생성해놓았다고 가정해보자. 만약 새로운 메시지가 M3=M1 +M2 라고 해보자 . 오라클은 h(M3) 를 계산할 필요가 없다 . 새로운 다이제스트는 바로 [h(M1) + h(M2)] mod n 이 된다 . 왜냐하면 이기 때문이다. 이것은 각 다이제스트는 오라클에 입력되는 메시지에 대해 랜덤하게 선택되어야 한다는 세 번째 요구조건을 위배하는 것이 된다 . 11.2.1 비둘기 집 원리 (Pigeonhole Principle) 만약에 n+1 마리의 비둘기가 n 개의 비둘기 집에 들어가 있다면 적어도 한 비둘기 집에는 두 마리의 비둘기가 들어있다는 뜻이다 . 일반화된 비둘기 집 원리 버전은 만약 kn + 1 마리의 비둘기가 n 개의 비둘기 집에 들어가 있다면 적어도 한 개의 비둘기 집에는 k+1 마리의 비둘기가 들어가 있어야 한다는 원리이다 . 11.2.1 Continued Example 11.5 해시함수에 적용되는 메시지 길이가 6 비트이고, 다이제스트 길이는 오직 4 비트이다. 그러면 가능한 다이제스트 (비둘기 집 )의 총 개수는 24 = 16 이고, 가능한 메시지 (비둘기)의 총 개수는 26 = 64개다. 이것이 의미하는 것은 n = 16 이고 kn + 1 = 64 이다. 그래서 k 는 3보다 크다 . 결론적으로 하나의 다이제스트는 k + 1=4 개의 메시지와 대응한다 . 11.2.2 Birthday Problems Figure 11.7 4 개의생일문제11.2.2 Birthday Problems Figure 11.7 4 개의생일문제 문제에대한요약된해답(Summary of Solutions) 이런문제에대한해답은흥미를가진독자를위해부록E 에첨부하였다. 그결과에대해서만표11.3 에요약해놓았다. 11.2.2 Continued 문제에대한요약된해답(Summary of Solutions) 이런문제에대한해답은흥미를가진독자를위해부록E 에첨부하였다. 그결과에대해서만표11.3 에요약해놓았다. 11.2.2 Continued 11.2.2 Continued 비교(Comparison) Figure 11.8 4 개의 생일 문제 그래프 11.2.3 Attacks on Random Oracle Model 프리이미지공격(Preimage Attack) Note 11.2.3 Attacks on Random Oracle Model 프리이미지공격(Preimage Attack) Note 프리이미지 공격의 어려움 정도는 2n 에 비례한다 . 11.2.3 Continued Example 11.6 암호학적 해시함수는 64 비트 다이제스트를 사용한다 . 이브는 원래의 메시지를 찾을 확률이 0.5 이상이 되도록 하려면 얼마나 많은 다이제스트를 생성해야 하는가 ? Solution 생성해야 할 다이제스트의수는 k . 0.69 × 2n . 0.69 × 264 이다. 이 수는 매우 큰 수이다 . 비록 이브가 초당 230 (거의 10억)개의 메시지를 생성한다고 하더라도 , 이 수만큼 만들려면 0.69 × 234 초가 걸린다 . 이것은 500년 이상 되는 기간이다 . 이 말이 의미하는 것은 길이가 64비트인 메시지 다이제스트는 프리이미지 공격에 대해 안전하다는 뜻이다 . 하지만 바로 뒤에 보겠지만 충돌 공격에 대해서는 안전하지 않다 . 제2 프리이미지공격(Second Preimage Attack.) 11.2.3 Continued Note 제2 프리이미지공격(Second Preimage Attack.) 11.2.3 Continued Note 제2 프리이미지 공격의 어려움 정도는 2n 에 비례한다. 11.2.3 Continued 충돌공격(Collision Attack) 11.2.3 Continued Note 충돌 공격의 어려움 정도는 2n/2 에 비례한다 . 11.2.3 Continued Example 11.7 한 암호학적 해시함수가 64비트 다이제스트를 사용한다고 하자 . 이브가 동일한 다이제스트를 갖는 서로 다른 두 개의 메시지를 만들 수 있는 확률이 0.5 이상이 되려면 얼마나 많은 다이제스트가 필요한가 ? Solution 생성해야 할 다이제스트의 수는 k . 1.18 × 2n/2 . 1.18 × 232 이다. 만약 이브가 초당 220 의 메시지를 점검할 수 있다면 , 1.18 × 212 초 혹은 2 시간 이내로 끝낼 수 있다는 뜻이다 . 다시 말해서 길이가 64비트인 메시지 다이제스트는 충돌 공격에 안전하지 못하다는 뜻이다 . 또다른충돌공격(Alternate Collision Attack) 11.2.3 Continued Note 또다른충돌공격(Alternate Collision Attack) 11.2.3 Continued Note 또 다른 충돌 공격의 어려움 정도는 2n/2 에 비례한다. 11.2.3 Continued 공격에 대한 요약 (Summary of Attacks) 표 11.4 에 다이제스트의 길이가 비트일 경우에 각 공격에 대한 어려움 정도를 요약해놓았다 . 11.2.3 Continued Example 11.8 64 비트 다이제스트를 가지는 원래의 해시함수 충돌 공격에 저항성을 가지고 있다고 해보자 . 하지만 컴퓨터의 처리 속도가 현격히 증가되고 있기 때문에 많은 사람들이 이런 해시함수가 더 이상 안전하지 않을 거라고 생각하고 있다 . 이브는 확률 1/2 이상을 가지고 공격을 시행할 경우 오직 264/2 = 232 번의 점검만 하면 된다 . 이브가 초당220 번의 점검을 할 능력을 가지고 있다고 하면 232/220 = 212 초 만에 공격을 할 수 있게 된다는 의미이다 . 이 시간은 겨우 한 시간 정도에 해당되는 기간이다 . 11.2.3 Continued Example 11.9 매우 오래 동안 해시함수의 표준으로 사용되고 있는 MD5( 제 12장 참조)는 128 비트 다이제스트를 생성한다 . 충돌 공격을 수행하려면 공격자는 충돌 알고리즘에서 264 (2128/2) 번의 점검을 해야만 한다 . 비록 공격자가 초당 230 번의 점검을 할 수 있다고 하더라도 이것을 수행하려면 234 초(500 년 이상 )가 걸린다 . 이런 공격유형은 랜덤 오라클 모델에 기초하고 있다 . MD5 는 알고리즘의 구조 때문에 264 번의 적은 수의 점검으로 공격이 가능하다는 것이 증명되어있다 . 11.2.3 Continued Example 11.10 NIST가 개발한 표준 해시함수인 SHA-1( 제 12장 참조 )는 160 비트 다이제스트를 생성한다 . 충돌 공격을 수행하려면 공격자는 충돌 알고리즘에서 2160/2 = 280 번의 점검을 해야만 한다 . 비록 공격자가 초당 230 번의 점검을 할 수 있다고 하더라도 이것을 수행하려면 250 초(만년 이상 )가 걸린다 . 그러나 암호학자들은 이 함수의 약점을 발견해냈고 그 결과로 실제 공격에는 위에 계산된 시간보다 짧은 시간에 공격을 할 수 있다는 것을 알아내었다 . 11.2.3 Continued Example 11.11 NIST 표준이 될 새로운 해시함수인 SHA-512( 제 12장 참조 )은 512 비트 다이제스트를 생성한다 . 이 함수는 랜덤 오라클 모델에 기초한 충돌 공경에 저항성을 가지고 있는 것이 분명하다 . 이에 대한 공격은 성공할 확률이 1/2 이상이 되기 위해서 2512/2 = 2256 번의 점검이 필요하다 . 11.2.4 구조에대한공격(Attacks on the Structure) 11.2.4 구조에대한공격(Attacks on the Structure) 공격자가 해시함수를 공격하는 다른 도구를 가지고 있을 수도 있다 . 이러한 도구 중의 하나로서 예를 들자면 우리가 제 6장에서 배운 이중 DES에 대한 중간자 공격(man-in-the middle attack) 이 있다 . 11-3 메시지인증(MESSAGE AUTHENTICATION) 메시지다이제스트는메시지의송신자를인증해주지는못한다. 앨리스가밥에게메시지를보낸다고할때, 밥은메시지가정말로앨리스로부터송신된것인지알고싶을것이다. 암호학적해시함수로생성한다이제스트를일반적으로변경감지코드(modification detection code: MDC) 라고부른다. 메시지인증(데이터출원인증)을위해필요한것은메시지인증코드(message authentication code: MAC) 이다. Topics discussed in this section: 11-3 메시지인증(MESSAGE AUTHENTICATION) 메시지다이제스트는메시지의송신자를인증해주지는못한다. 앨리스가밥에게메시지를보낸다고할때, 밥은메시지가정말로앨리스로부터송신된것인지알고싶을것이다. 암호학적해시함수로생성한다이제스트를일반적으로변경감지코드(modification detection code: MDC) 라고부른다. 메시지인증(데이터출원인증)을위해필요한것은메시지인증코드(message authentication code: MAC) 이다. Topics discussed in this section: 11.3.1 변경 감지 코드 (Modification Detection Code (MDC)) 11.3.2 메시지 인증 코드 (Message Authentication Code (MAC)) 11.3.1 Modification Detection Code (MDC) 변경 감지 코드 (modification detection code: MDC)는 메시지의 무결성을 보장하는 메시지 다이제스트이다 . 즉, 해당 메시지가 변경되지 않았다는 것을 보장해준다 . 만약 앨리스가 밥에게 메시지를 보낼때 메시지가 전송 도중에 변경되지 않는다는 것을 확신하려면 앨리스는 메시지 다이제스트인 MDC를 생성하여 메시지와 MDC를 모두 밥에게 보낸다 . 밥은 수신한 메시지로부터 새로운 MDC 를 생성하여 앨리스로부터 수신된 MDC와 비교를 한다 . 만약이두값이 동일하면해당메시지는 변경되지 않았다는 뜻이 된다 . 11.3.1 Continued Figure 11.9 변경 감지 코드 (MDC) 11.3.2 Message Authentication Code (MAC) Figure 11.10 메시지 인증 코드 11.3.2 Continued Note MAC의 안전성은 사용하는 해시 알고리즘의 안전성에 종속된다 . 11.3.2 Continued 축소 MAC(Nested MAC) Figure 11.11 축소 MAC 11.3.2 Continued HMAC Figure 11.12 HMAC 의 자세한 내용 11.3.2 Continued Figure 11.13 CMAC













Posted by MSNU