반응형
1.해시함수의 개요 및 요구사항
해시 함수(Hash Function)
기본적으로 임의의 길이의 데이터를 입력받아 고정된 짧은 길이의 문자열(즉, 해쉬 함수값)을 출력하는 함수
입력 데이터가 한 비트라도 변경되면, 대응하여 완전히 다른 값을 출력하도록 설계
[요구사항]
계산이 빨라야함
충돌저항성-동일한 해쉬 함수값을 갖는 서로 다른 메시지 쌍을 찾기 어려워야함
일방향성-함수 결과값으로부터 대응하는 입력값을 계산하는 것이 어려워야 함
2.해시함수별 특징 및 구조
[MD계열]
128비트 출력 크기
MD4, MD5
[SHA계열]
SHA-1(160비트 출력)
SHA-2(224, 256, 384, 512비트 출력)
SHA-3(224, 256, 384, 512비트 출력):2012년 표준화
출력 구조가 160비트가 되지 않으면 생일 공격(Birthday Attack)에서 안전하지 않음
암호학적으로 중요한 성질을 갖는 응용 프로그램에서는 128비트 MD 계열의 해쉬 함수 사용을 권하지 않음
[국내 해쉬함수]
HAS-160 등
[생일 공격]
한 교실에 Alice를 포함하여 N명의 학생이 있다고 했을 때, 저거도 한 학생이 Alice와 동일한 생일을 가질 확률이 50% 이상ㅇ 되기 위해서는 한 교실에 적어도 몇명이 있어야 하는가? (즉, N의 최소값) ? 253명
출력이 H 비트인 해쉬 하수에서 충돌을 발생시키기 위해서는 평균적으로 약 1.25루트H번의 해슁(Hashing)이 필요
생일이 같은 것을 해쉬 함수에서는 충돌로 생각 할 수 있으며 128비트 출력값을 사용하는 MD5의 경우 충돌쌍을 찾는데 - 시도하면 됨
3.메시지 인증코드(MAC)의 원리 및 구조
Message Authentication Code
메시지의 인증에 쓰이는 작은 크기의 정보
비밀 키를 입력받고, 임의길이 메시지를 인증
출력으로써 MAC(때때로 태그)을 출력
MAC 값은 검증자(비밀 키를 소유한 사람)의 허가에 의해서 메시지의 데이터 인증과 더불어 무결성을 보호
해시 함수(Hash Function)
기본적으로 임의의 길이의 데이터를 입력받아 고정된 짧은 길이의 문자열(즉, 해쉬 함수값)을 출력하는 함수
입력 데이터가 한 비트라도 변경되면, 대응하여 완전히 다른 값을 출력하도록 설계
[요구사항]
계산이 빨라야함
충돌저항성-동일한 해쉬 함수값을 갖는 서로 다른 메시지 쌍을 찾기 어려워야함
일방향성-함수 결과값으로부터 대응하는 입력값을 계산하는 것이 어려워야 함
2.해시함수별 특징 및 구조
[MD계열]
128비트 출력 크기
MD4, MD5
[SHA계열]
SHA-1(160비트 출력)
SHA-2(224, 256, 384, 512비트 출력)
SHA-3(224, 256, 384, 512비트 출력):2012년 표준화
출력 구조가 160비트가 되지 않으면 생일 공격(Birthday Attack)에서 안전하지 않음
암호학적으로 중요한 성질을 갖는 응용 프로그램에서는 128비트 MD 계열의 해쉬 함수 사용을 권하지 않음
[국내 해쉬함수]
HAS-160 등
[생일 공격]
한 교실에 Alice를 포함하여 N명의 학생이 있다고 했을 때, 저거도 한 학생이 Alice와 동일한 생일을 가질 확률이 50% 이상ㅇ 되기 위해서는 한 교실에 적어도 몇명이 있어야 하는가? (즉, N의 최소값) ? 253명
출력이 H 비트인 해쉬 하수에서 충돌을 발생시키기 위해서는 평균적으로 약 1.25루트H번의 해슁(Hashing)이 필요
생일이 같은 것을 해쉬 함수에서는 충돌로 생각 할 수 있으며 128비트 출력값을 사용하는 MD5의 경우 충돌쌍을 찾는데 - 시도하면 됨
3.메시지 인증코드(MAC)의 원리 및 구조
Message Authentication Code
메시지의 인증에 쓰이는 작은 크기의 정보
비밀 키를 입력받고, 임의길이 메시지를 인증
출력으로써 MAC(때때로 태그)을 출력
MAC 값은 검증자(비밀 키를 소유한 사람)의 허가에 의해서 메시지의 데이터 인증과 더불어 무결성을 보호
반응형