일방향 해시함수
:임의 길이의 메시지 입력으로 고정 길이의 해시값을 출력한다.
:해시값을 고속으로 계산할 수 있다.
:일방향성을 갖는다.(해시값으로 부터 메시지를 역산할 수 없다는 성질)
:메시지가 다르면 해시값도 다르다.(무결성 확인)
충돌
:2개의 다른 메시지가 같은 해시값을 갖는 것을 충돌(Collision)이라고 한다.
충돌내성
:충돌을 발견하는 것이 어려운 성질을 가리킨다.
해시함수의 보안 요구사항
프리이미지 저항성(역상 저항성)
:주어진 임의의 출력값 y에 대해 y=h(x)를 만족하는 입력값 x를 찾는 것이 계산적으로 불가능하다.
제2프리이미지 저항성(두번째 역상 저항성, 약한 충돌 내성)
:주어진 입력값 x에 대해 h(x)=h(x'), x≠x'을 만족하는 다른 입력값 x'을 찾는 것이 계산적으로 불가능하다.
충돌 저항성(강한 충돌 내성)
:h(x)=(x')을 만족하는 임의의 두 입력값 x,x'을 찾는 것이 계산적으로 불가능하다.
전자서명에 이용되는 해시함수의 특성
:해시값을 고속으로 계산
:약 일방향성=프리이미지 저항성
:강 일방향성=제2프리이미지 저항성
:충돌 회피성=충돌 저항성
키가 없는 해시함수
블록암호 기반 해시함수
:압축함수 자리에 대칭키 블록암호를 사용
:블록암호의 암호화기능만 사용
전용 해시함수
:(SHA-1, RIPEMD, RIPEMD-128, RIPEMD-160, HAVAL) 등은 모두 MD5를 기초로 디자인
:MD5 해시값 크기 : 128 , 블록 크기: 512
:RIPEMD 해시값 크기 : 128 , 블록 크기: 512
:HAVAL 해시값 크기: 128, 160, 192, 224, 256 , 블록 크기 : 1024
:HAS160은 한국형 전자서명 표준인 KCDSA에서 사용할 목적으로 개발 , 해시값 크기 : 160 , 블록 크기 : 512
모듈 연산 기반 해시함수
:압축함수의 기반을 모듈 연산의 반복적인 수행
:하드웨어/소프트웨어 자체에 내장된 모듈 연산을 사용
:속도가 빠르지 않고 안전성 연구에 대한 역사가 짧음
SHA(Secure Hash Algorithm)
:1993년 미국 표준 기술 연구소(NIST)에서 FIPS PUB 180 출판 -> SHA-0(표준 폐기)
:1995년 NIST에서 FIPS 180-1 출판-> SHA-1
:2002년 NIST에서 FIPS 180-2 출판-> SHA-2(SHA-256 / 224, SHA-512 / 384 ), 2004년 3DES 키 크기에 맞춰 해시값 크기를 조정한 SHA-224가 표준에 추가
:2008년 NIST에서 FIPS 180-3 출판-> SHA-3 공모 -> 2012년 Keccak이 해시 알고리즘으로 선정
구분 |
SHA-1 |
SHA-256 / 224 |
SHA-512 / 384 |
해시값 크기 |
160 |
256 / 224 |
512 / 384 |
블록 크기 |
512 |
512 |
1024 |
워드 크기 |
32 |
32 |
64 |
라운드 |
80 |
64 |
80 |
https://ko.wikipedia.org/wiki/SHA
키가 있는 해시함수
:메시지 인증 기능을 가진 함수
:함수 자체의 안전성과 키의 비밀성에 안전성을 두고 있음
:CBC모드를 이용하는 방법
해시함수 응용
-무결성점검
-소프트웨어 변경 검출
-메시지 인증 코드
-전자서명
랜덤 오라클 모델
:해시함수에 대한 이상적인 수학적 모델
:이진수로 고정된 길이의 메시지 다이제스트를 생성
:다이제스트가 존재하는 메시지가 주어지면, 오라클은 저장되어 있던 다이제스트 제공
:새로운 메시지에 대한 다이제스트는 다른 모든 다이제스트와는 독립적으로 선택될 필요가 있음
비둘기집 원리
:n+1마리의 비둘기가 n개의 비둘기집에 들어가 있다면, 적어도 1개의 비둘기 집에는 2마리의 비둘기가 들어있다는 뜻
생일 공격
:일방향 해시함수의 강한 충돌 내성을 깨고자 하는 공격
:같은 해시값을 생성하는 2개의 메시지를 구하는 것
해시함수에 대한 공격
무차별공격
:약한 충돌 내성을 깨고자 하는 공격
일치블록 연쇄공격
:h(M)=h(M'), M≠M', 같은 해시값을 갖는 메시지(M')를 골라 사용하는 공격이다.
중간자 연쇄공격
:전체 해시값이 아니라 해시 중간의 결과에 대한 충돌쌍을 찾는다.
고정점 연쇄공격
:메시지 블록, 연쇄변수 쌍을 얻어 연쇄변수가 발생하는 특정한 점에서 임의의 수의 동등한 블록들을 메시지 중간에 삽입해도 전체 해시값이 변하지 않는다.
차분 연쇄공격
다중 라운드 블록암호 공격 : 다중 라운드 블록암호를 사용하는 해시함수에서, 입력값과 그에 대응하는 출력값 차이의 통계적 특성을 조사하는 기법
해시함수 공격 : 압축함수의 입출력 차이를 조사하여 0의 충돌쌍을 주로 찾아내는 방법
일방향 해시함수로 해결할 수 없는 문제
:조작과 변경을 검출할 수 있지만 거짓행세를 검출하지 못한다.
:무결성외 거짓행세를 검출하기 위해 인증이라는 절차가 필요
:해결방법(메시지 인증 코드, 전자서명)
변경 감지 코드(MDC, Modification Detection Code)
:메시지가 변경되지 않았다는 것(무결성)을 보장
:키가 없는 해시함수
메시지 인증 코드(MAC)
:무결성을 확인하고 메시지에 대한 인증을 하는 기술
:키가 있는 해시함수
:전자서명보다 빠름
:키 배송 문제가 있음
축소 MAC(nested MAC)
:해싱이 2 단계(키와 메시지를 이어 붙이는 해시 과정이 2번 있음)
HMAC(Hash MAC)
:일방향 해시함수를 이용하여 메시지 인증코드를 구성하는 방법
:RFC 2104로 출판
:TLS, IPSec, SET(Secure Electronic Transaction) 프로토콜에서 사용
CMAC(Cipher-based MAC)
:NIST는 CMAC or CBC-MAC이라 부르는 FIPS 113을 정의
:암호블록연쇄(CBC)모드와 유사한 방법, N개의 평문 블록으로 부터 N개의 암호문 블록을 만든는 것이 아님
카운터 암호 블록 연쇄 - 메시지 인증 코드(CCM, Counter with Cipher Block Chaining - MAC)
:NIST에 의해 IEEE802.11 무선랜의 보안 요구사항을 지원하기 위해서 표준화되었으나, 인증 암호를 요구하는 다양한 네트워크 응용에서 사용
:CCM의 주요 알고리즘 구성요소는 (AES 알고리즘, CTR 모드, CMAC) 이다.
MAC에 대한 공격
:재전송 공격
:키의 추측에 의한 공격(무차별 공격, 생일 공격)
재전송 공격 방어 방법
순서번호
:송신 메시지에 매회 1회씩 증가하는 번호를 붙이고 MAC 값을 계산
:통신상대마다 마지막 순서번호 기록해두어야 하는 번거로움이 있음
타임스탬프
:송신 메시지에 현재 시각을 넣고, 그 이전에 메시지가 왔을 경우에 MAC 값이 바르더라도 오류라고 판단
:송·수신자 사이에 시계를 일치시켜야 함
비표
:수신자는 송신자에게 일회용의 랜덤한 값을 줌(비표)
:비표를 포함해 MAC 값을 계산하며, 데이터의 양이 약간 증가
MAC으로 해결할 수 없는 문제
제 3자에 대한 증명 : 키를 송·수신자만 가지고 있기 때문에 제 3자를 증명할 수 없음 , 전자서명을 사용하면 제 3자에 대한 증명이 가능함
부인 방지 : 송수신자가 송수신 사실을 부인하지 못하게 하는 것인데 MAC에서는 확인할 수 없음 , 전자서명을 사용하면 부인방지 가능
'보안서적 > 정보보안기사' 카테고리의 다른 글
정보보안기사 필기시험 정리 - 6 (0) | 2017.06.23 |
---|---|
정보보안기사 필기시험 정리 - 4 (0) | 2017.05.31 |
정보보안기사 필기시험 정리 - 3 (1) | 2017.05.24 |
정보보안기사 필기시험 정리 - 2 (1) | 2017.05.22 |
정보보안기사 필기시험 정리 - 1 (1) | 2017.05.22 |