8장. 인증과 식별
• 소극적인 암호공격 : 단지 암호문을 열어보기 위한 암호공격 • 적극적인 암호공격 : 서명위조, 메시지변조, 신분위장 등 Mr.x 적극적인 공격자
1. 메시지 무결성(integrity) : 메시지의 내용이 변형되지 않고 완전한 문장으로 전달되는 것 데이터 인증 1. 메시지 무결성(integrity) : 메시지의 내용이 변형되지 않고 완전한 문장으로 전달되는 것 Tonight at my place. Sorry. Not tonight.
2. 메시지 인증(authentication) : 메시지를 보낼때 보내는 사람 앤 만이 할수 있는 특별한 표시를 해 두는 것(원치 않는 메시지가 전달 되었다면, 앤은 그 메시지를 보내지 않았다는 것을 확실히 증명할 수 있어야 한다.) Tonight at my place. Alice Tonight at my place. Ann
3. 사용자 인증 : 메시지를 주고 받을 때 수신자는 대화하고 있는 상대방의 진짜 신분과 밝힌 신분이 일치하는지 확인. Is it yuou, Ann? Of Course!
8.1 메시지 인증 1. MAC(메시지 인증 코드) • 수신된 메시지의 무결성과 인증을 위해 송신자로부터 부가적으로 얻는 정보 • 수신된 메시지의 무결성과 인증을 위해 송신자로부터 부가적으로 얻는 정보 • 적당한 해쉬함수의 값을 사용 가. MAC의 생성과 확인하는 프로토콜 1) 송신자 : 원본 메시지와 그에 대응하는 MAC을 보냄 - MAC = , A : 암호 알고리즘, k : 비밀키 2) 수신자 : 키 를 사용하여 받은 메시지 을 에 적용 - 결과가 MAC’과 일치하는지 확인
메시지 인증 계속 M, MAC M’, MAC’ MAC = Ak(m) 계산 M, MAC 훼손 Mac’ = Ak(m’) 확인 Mac’ = A(M) 훼손
메시지 인증 계속 나. 암호블럭 체인법 - 고정된 키 를 사용 - 고정된 키 를 사용 - 암호 알고리즘 : 개의 기호로 된 평문 블록을 같은 길이 인 암호문 블록으로 대응 - 의 길이 : 64비트 1) 0, 1의 수열로 된 메시지 을 같은 길이 인 개의 블록 으로 나눈다. 2) 를 계산 3) ⊕ : XOR 연산 4) : MAC으로 선택
메시지 인증 계속 다. MAC의 성질 ⊕ - MAC은 메시지의 길이와 관계없이 고정된 길이 n을 갖는다. - 어떠한 경우에도 서로 다른 메시지 M과 M'이 같은 MAC을 갖지 않는다. 일방향 해쉬함수가 이 조건을 만족하면 충돌회피성(collision-free)을 가지고 있다고 한다. 블록 m4 블록 m3 블록 m2 블록 c1 k ⊕ 암호블록 체인법을 이용한 MAC생성
8.2 사용자 인증 사용자 인증은 ; • 사용자의 신원을 확인 • 과거 : 사람들끼리만의 문제 • 현재 : 사람과 컴퓨터 사이의 문제로 확장 사람과 사람 사이의 사용자 인증 문제 1. 사람들의 특성(attribute)에 따라 구별 2. 사람들의 소유물(possession)에 따라 구별 3. 사람들의 지식(knowledge)에 따라 구별
사용자 인증 계속 컴퓨터에서의 사용자 인증 1. 패스워드 ※ 주의 : 개인 신상과 관련 있는 패스워드(이름, 전화번호, 주민등록번호 등)은 사용하지 않는다. 사람 컴퓨터 확인 직접 입력 암호 알고리즘 이용 암호화 ? p=p’ 해쉬함수 이용
사용자 인증 계속 2. 카드를 이용한 인증 가. 질의응답 프로토콜 : 컴퓨터와 사용자가 지속적으로 매번 새로운 질문과 대답을 바꿔가는 과정 - 컴퓨터와 사용자 : 같은 일방향 함수 , 같은 비밀키 를 가짐 - 사용자 : 신상데이터를 입력 - 컴퓨터 : 데이터의 소유자에 대응하는 키 를 찾음
사용자 인증 계속 질의 응답 프로토콜 RAND : 무작위수 계 산 AP = fk (RAND) 계 산 ? AP’ = AP 질의 응답 프로토콜
사용자 인증 계속 1) 장점 - Mr. X는 다음 RAND가 무엇이 나올지 예측할 수 없다. - AP 역시 무작위수의 특성을 가지고 있으므로 Mr. X는 컴퓨터의 질의에 매번 대응할 수가 없다. - 기본적으로 키가 일치하는 것을 확인하면서도, 키 자체는 프로토콜 과정에서 전혀 사용되지 않는다. 2) 단점 - 컴퓨터는 모든 사용자들의 비밀키들을 저장하고 있으므로, 이것들을 다른 용도로 사용할 수도 있다.(이 프로토콜은 사용자가 컴퓨터의 무결성을 신뢰한다는 전제 아래 수행)
사용자 인증 계속 - 사용자가 복잡한 알고리즘을 수행해야만 하는 것이다. - 스마트 카드의 주인이라는 것을 어떻게 확인 할 것인가? (지문인식, 홍채인식, DNA인식 등의 기계적 장치를 사용, 카드리더를 소유한 사람(예를 들어 주유소 단말기의 점원)이 카드에 부착되어 있는 사진, 싸인등으로 카드사용자를 확인(전자쇼핑 참고))
8.3 영지식 증명 1. 영지식 프로토콜 ; 비밀의 내용을 드러내지 않으면서 비밀을 가지고 있다는 것을 확신 시키는 방법의 과정 역사적 예 : 타탈리아(Tartaglia)의 비밀
영지식 증명 계속 제곱근 게임 S r : 무작위수 r 2 mod 55 r 2 동전 던지기 앞면, 뒷면 결과 송신 앞면 : r·s mod 55 뒷면 : r 확인 (r∙s) 2 ≡ r 2 ∙s 2 55 ≡ s 2 ≡ s 2 ∙ (r 2) -1 mod 55
영지식 증명 계속 영지식 프로토콜의 기본적인 특징 • 상호작용적이다 ; 양쪽 다 임의로 수를 선택을 할 수 있다. (나는 수 r을 선택하고, 상대방은 r∙s와 r을 선택) • 내가 속일 확률은 우리가 과정을 반복하는 회수와 관련이 있다. 각 단계마다 성공할 확률은 50%이다.
영지식 증명 계속 2. Fiat – Shamir 프로토콜 • 컴퓨터(사용자의 스마트 카드)와 일반 컴퓨터와의 인증 • 이 알려지지 않은 소수를 인수로 가질 때, 에 관한 제곱이 인 수 찾기는 사실상 거의 불가능하다는 사실에 기초를 둠 • : 보통 200자리 수를 사용 • 적은 횟수의 모듈라 연산만이 필요. 사용자는 임의의 수 r을 제곱해 mod n에 관해 합동인 x를 얻는다. 응답을 확인하기 위하여 컴퓨터는 r∙s=y를 제곱하고 동전던지기-랜덤수를 발생시켜 0 또는 1을 결정-를 하여 x와 μ를 곱하여 비교
영지식 증명 계속 • 인증과정에서는 단지 공개된 정보만을 이용하지만, 비밀키 s가 내재되어 있다. • 컴퓨터는 사용자가 비밀번호를 알고 있는지 결국에는 확인 할 수 있다. 질의 응답을 t번 시도하면 사용자가 속일 확률은 (1/2)t 이다. 즉, t=20이면, 속일 확률은 100만분의 1보다 작아진다. • 과정이 끝난 후, 컴퓨터는 사용자 A의 비밀을 얻을 수 없다. • 비밀은 mod n에 관한 제곱근을 구하는 것에 달려 있으므로, 사악한 Mr. X는 수천번을 시도해도, 비밀을 발견할 수 없다.
영지식 증명 계속 Fiat-Shamir 프로토콜 r : 무작위수 (n, r) = 1 x = r 2 mod n x 무작위 비트 b b b = 1 이면 y ≡ r • s mod n b = 0 이면 y = r mod n y (y, n) = 1 확인 b = 1 이면 y 2 ≡ xy mod n b = 0 이면 y 2 ≡ x mod n Fiat-Shamir 프로토콜
8.4 스마트 카드 ; 간단한 연산을 수행하고 데이터를 저장할 수 있는 마이크로 칩을 내장하고 있는 카드(소형 컴퓨터라고 할 수 있고, 금빛으로 번쩍이는 외부 접속단자가 있음) • 프랑스 저널리스트 Ronald Moreno가 1974년 “휴대용 기억장치에 의한 보안 처리기”에 관한 특허를 냄 • 암호관련 보안 서비스를 개인에게 장소를 가리지 않고 길거리에서 제공하는 수단 • 암호학적으로 이상(ideal)적이다 - 암호 알고리즘을 수행하고 비밀 키를 안전하게 보관할 수 있다. • 인간이 사용하기에도 이상적이다 - 사용하기가 매우 편리하다. 사용자는 오로지 카드한테 자기를 확인시켜 줄 자신만의 패스워드를 기억하면 된다
스마트 카드 계속 1. 접속제어를 위한 스마트 카드 • 접속제어 : 컴퓨터를 사용하고자 하는 사람이 정당한 자격을 가졌는지 확인하여 컴퓨터에 접속을 허용하는 과정 - 사용자 : 카드에게 자신을 인증하는 패스워드를 확인시킨다. 이 번호는 PIN(개인 식별번호)라 불린다. - 카드 : 컴퓨터와 다이내믹 인증 프로토콜 수행한다. RAND PIN AP 인증 사용자 - 카드 카드에 저장되어 있는 비밀번호 등으로 확인 다이나믹 인증 카드 - 컴퓨터 이중 인증 프로토콜
스마트 카드 계속 OO 은행 2. 전자쇼핑(POS-결제) ; 현금, 수표, 신용카드 등을 사용하지 않고, 단지 스마트 카드만을 이용하여 대금을 결제하는 방법 OO 은행 Smart Card 상호 인증 전자수표 확인
스마트 카드 계속 가. 고객을 점포의 단말기에 인증 나. 점포의 단말기를 카드에 인식 다. 전자 결제 금액(메시지)를 인증 1) 금액은 MAC 종류로 서명 2) 카드를 통해 점포 단말기로 전달 (점원이 결제금액을 변조할 수 없다.) 3) 점원도 결제 금액 확인(대칭 알고리즘 사용) - 점원은 은행으로부터 지불을 보장 받는다. - 점원은 데이터를 변조할 수 없다. ※ 다음 장의 그림 참조
스마트 카드 계속 OO 은행 은행은 CER 확인 비밀키 k* Smart Card 데이터 D (수량, 가격…) CER = f k *(D) 확인
8.5 Okamoto 신원확인 기법 1. 에서 이산로그를 계산하기 어렵게 하는 를 큰 소수 로 선택 한다. 1. 에서 이산로그를 계산하기 어렵게 하는 를 큰 소수 로 선택 한다. 2. 소수 는 인 의 소인수이다. 3. 의 원소들 중에 위수가 인 원소 를 택하고 적당한 수 를 정하여, 를 계산한다. 이때 이며 를 비밀로 하면 로부터 를 알아내는 것은 이산대수문제가 된다. 4. 중간값(비밀) t (t= 40 일 때 적당한 안정성을 제공한다)를 선택한다. 5. TA는 안전한 서명기법 가지고 있다고 가정한다.
Okamoto 신원확인 기법 계속 6. 안전한 해쉬함수 h가 지정되어야 하지만, 이 과정은 생략한다. 이러한 조건을 만족하는 변수 가 신원확인을 위한 공개변수들이다. TA A의 신원확인공개변수 (p, q, , t, h) TA A sigT , verT p : 소수 q : 소수 q|p-1 : 무작위수, mod p C : 비밀키 : mod p t : 중간값 h : 해쉬함수
Okamoto 신원확인 기법 계속 신원확인 증명서 발행 절차 A TA 개인기록제출 신원인증요청 v 제공 ID(A) 생성 s = sigT (ID(A), v) C(A) = (ID(A), v, s) : 인증서 A a 1 , a 2 : 비밀지수 C(A) 접수 신원확인 증명서 발행 절차
Okamoto 신원확인 기법 계속 Okamoto 신원확인 기법 A B k 1 , k 2 선택 (C(A), ) verT(s) = (ID(A), v) r r (1 ≤ r ≤ 2t) 확인 Okamoto 신원확인 기법