Computer >> 컴퓨터 >  >> 프로그램 작성 >> 프로그램 작성

정보 보안에서 해시 함수의 요구 사항은 무엇입니까?

<시간/>

암호화 해시 함수는 입력(또는 메시지)을 생성하고 해시 값으로 알려진 고정 크기 문자열을 복원하는 변환입니다. 해시 값 h는 −

형식의 함수 H에 의해 생성됩니다.

h =H(M)

여기서 M은 가변 길이 메시지이고 H(M)는 고정 길이 해시 값입니다.

해시 함수는 일반적으로 보안을 위한 암호학에서 수학 함수로 사용됩니다. 해시 함수는 임의 크기의 입력 값을 고정 크기 값으로 변환합니다. 따라서 입력은 임의의 길이가 될 수 있지만 생성되는 출력은 항상 고정된 길이입니다. 생성된 출력을 해시 값 또는 해시라고 합니다.

해싱의 일반적인 용도는 암호 확인입니다. 사용자가 암호를 입력하면 암호의 해시가 생성되어 데이터베이스의 해시와 비교됩니다. 두 해시가 같으면 사용자가 로그인할 수 있고 그렇지 않으면 사용자가 암호를 다시 입력해야 합니다.

해시 값은 메시지가 올바른 것으로 간주되거나 알려진 시간에 소스의 메시지에 추가됩니다. 수신자는 해시 값을 다시 계산하여 메시지를 확인합니다.

해시 함수는 입력으로 임의의 길이의 문자열을 생성하고 지원되는 정보에 대한 서명 유형으로 용이하게 하는 고정 길이 문자열을 생성합니다. 이 접근 방식에서 해시 값을 이해하는 사람은 원본 메시지를 해결할 수 없지만 원본 메시지를 이해하는 사람은 해당 메시지에서 해시가 생성되었음을 증명할 수 있습니다.

암호화 해시 함수는 여전히 결정적이고 효과적으로 계산할 수 있으면서 무작위 함수처럼 작동해야 합니다. 암호화 해시 기능은 암호화 분야에서 필수적인 도구이며 진위성, 디지털 서명, 의사 번호 생성, 디지털 스테가노그래피, 디지털 타임 스탬프 등과 같은 여러 보안 목표를 수행하는 데 사용됩니다.

해시 함수의 몇 가지 요구 사항은 다음과 같습니다 -

해시 함수는 파일, 메시지 또는 기타 정보 블록의 지문을 만듭니다. 해시 함수, H는 다음과 같은 속성을 가져야 합니다. -

  • 해시 함수는 모든 크기의 정보 블록에 사용할 수 있습니다.

  • H(x)는 주어진 x에 대해 비교적 간단하게 계산하여 하드웨어와 소프트웨어 구현을 모두 실용적으로 만듭니다.

  • 주어진 값 h에 대해 H(x)=h가 되는 x를 찾는 것은 계산적으로 불가능합니다. 이것은 단방향 속성으로 정의됩니다.

  • 주어진 블록 x에 대해 H(y)=H(x)로 y ≠ x를 찾는 것은 계산적으로 불가능합니다. 이 속성은 약한 충돌 저항으로 정의됩니다.

  • H(x) =H(y)와 같은 어떤 쌍(x, y)을 찾는 것은 계산적으로 불가능합니다. 이 속성을 강한 충돌 저항이라고 합니다.