암호화 해시 기능

암호화 해시 함수 정의

암호 해시 함수는 개별 파일 이나 암호와 같은 데이터 조각에서 실행될 수있는 알고리즘의 일종으로 체크섬이라는 값을 생성합니다.

암호화 해시 기능의 주요 용도는 데이터 조각의 진위 여부를 확인하는 것입니다. 두 파일은 동일한 암호화 해시 함수를 사용하여 각 파일에서 생성 된 체크섬이 동일한 경우에만 동일하도록 보장 할 수 있습니다.

일반적으로 사용되는 일부 암호화 해시 함수에는 MD5SHA-1 이 포함되지만 다른 많은 암호화 해시 함수도 있습니다.

참고 : 암호화 해시 함수는 간단히 해시 함수 라고하기도하지만 기술적으로 올바르지 않습니다. 해시 함수는 일반적으로 순환 중복 검사와 같은 다른 종류의 알고리즘과 함께 암호화 해시 함수를 포함하는 데 사용되는보다 일반적인 용어입니다.

암호화 해시 함수 : 사용 사례

Firefox 브라우저최신 버전 을 다운로드한다고 가정 해 보겠습니다. 어떤 이유로 든 Mozilla와는 다른 사이트에서 다운로드해야했습니다. 믿을 수있는 사이트에서 호스팅되지 않고 방금 다운로드 한 설치 파일이 Mozilla에서 제공하는 것과 똑같은지 확인하고 싶습니다.

체크섬 계산기를 사용하여 특정 암호화 해시 함수 (예 : SHA-2)를 사용하여 체크섬을 계산 한 다음이를 모질라 사이트에 게시 된 것과 비교합니다.

동등한 것이라면 모질라가 갖고있는 다운로드가 있다는 것을 합리적으로 확신 할 수 있습니다.

체크섬이란 무엇입니까?를 참조하십시오 . 이 특별 계산기에 대한 자세한 내용은 체크섬을 사용하여 다운로드 한 파일이 실제로 예상 한 것임을 확인하는 예제를 더 많이 사용합니다.

암호화 해쉬 함수를 반대로 바꿀 수 있습니까?

암호화 해시 기능은 작성한 체크섬을 원래 텍스트로 되돌릴 수 없도록 설계되었습니다.

그러나 데이터를 되돌릴 수는 없지만 100 % 데이터 보호를 보장한다는 의미는 아닙니다.

무지개 테이블 이라고하는 무언가를 사용하면 체크섬의 일반 텍스트를 신속하게 파악할 수 있습니다. 무지개 표는 기본적으로 해당 평문 값과 함께 수천, 수백만, 심지어는 수십억 개의 사전을 나열하는 사전입니다.

이것은 기술적으로 암호화 해시 알고리즘을 뒤집는 것이 아니지만 그렇게하는 것이 간단 할 수도 있습니다. 현실에서는 무지개 테이블이 존재할 수있는 모든 체크섬을 나열 할 수 없으므로 약한 암호와 같은 단순한 구문에서는 일반적으로 "도움이됩니다".

다음은 SHA-1 암호화 해시 함수를 사용할 때 작동하는 방법을 보여주는 무지개 테이블의 단순화 된 버전입니다.

일반 텍스트 SHA-1 체크섬
12345 8cb2237d0679ca88db6464eac60da96345513964
비밀 번호 1 e38ad214943daad1d64c102faec29de4afe9da3d
나는 내 개를 사랑한다 a25fb3505406c9ac761c8428692fbf5d5ddf1316
Jenny400 7d5eb0173008fe55275d12e9629eef8bdb408c1f
dallas1984 c1ebe6d80f4c7c087ad29d2c0dc3e059fc919da2

체크섬을 사용하여이 값을 알아 내려면 해커가 암호 해시 알고리즘을 생성하는 데 사용 된 해시 알고리즘을 이해해야합니다.

추가 보호를 위해 사용자 암호를 저장하는 일부 웹 사이트는 값이 생성 된 후 저장되기 전에 암호화 해시 알고리즘에 추가 기능을 수행합니다.

이렇게하면 웹 서버 만 이해하고 원래 체크섬과 정확히 일치하지 않는 새 값이 생성됩니다.

예를 들어, 암호가 입력되고 체크섬이 생성 된 후에는 암호 데이터베이스에 저장되기 전에 여러 부분으로 분리되어 재 배열되거나 특정 문자가 다른 문자로 교체 될 수 있습니다. 사용자가 다음 번 사인온 할 때 인증을 시도하면이 추가 기능은 웹 서버에 의해 되돌려지고 원래 체크섬이 다시 생성되어 사용자의 암호가 유효한지 확인합니다.

이렇게하면 모든 체크섬이 도용 된 해킹의 유용성을 제한하는 데 도움이됩니다.

여기서도 알 수없는 기능을 수행하여 해커가 암호 해시 알고리즘을 알고 있지만이 사용자 지정 암호 알고리즘이 아니라면 암호 체크섬을 알면 도움이되지 않습니다.

암호 및 암호화 해시 함수

무지개 테이블과 마찬가지로 데이터베이스가 사용자 암호를 저장하는 방법입니다. 암호를 입력하면 체크섬이 생성되고 사용자 이름이 기록 된 것과 비교됩니다. 두 개가 동일한 경우 액세스 권한이 부여됩니다.

암호화 해시 함수를 사용하면 되돌릴 수없는 체크섬이 생성되므로 체크섬 자체를 이해할 수 없기 때문에 12 @ 34 $ 5 대신 암호를 12345 로 간단하게 지정할 수 있습니다. 확실히 그렇지 않으며 , 여기 왜 그런가 ...

보시다시피이 두 암호는 체크섬 만보고 해독 할 수 없습니다.

12345 용 MD5 : 827ccb0eea8a706c4c34a16891f84e7b

12 @ 34 $ 5에 대한 MD5 : a4d3cc004f487b18b2ccd4853053818b

그래서 언뜻보기에는이 암호 중 하나를 사용하는 것이 절대적으로 좋다고 생각할 수 있습니다. 이것은 공격자가 MD5 체크섬 (아무도하지 않음)을 추측하여 암호를 알아 내려고 시도했지만 무차별 공격이나 사전 공격 (일반적인 공격)이 수행되는 경우에는 사실이 아니어야하는 경우에 분명히 사실입니다.

무차별 대입 공격이란 암호를 추측 할 때 여러 번 무작위로 찌르는 것입니다. 이 경우 "12345"를 추측하는 것은 매우 쉽지만 다른 하나를 무작위로 추출하는 것은 매우 어렵습니다. 사전 공격은 공격자가 일반적으로 사용되는 암호 목록에서 모든 단어, 숫자 또는 구를 시도 할 수 있다는 점에서 유사합니다. "12345"는 분명히 시도 할 암호입니다.

따라서 암호화 해시 함수가 추측 할 수없는 체크섬을 생성하기는 어렵지만 모든 온라인 및 로컬 사용자 계정에 대해 복잡한 암호를 사용해야합니다.

도움말 : 강력한 암호 로 간주되는지 확실하지 않은 경우 약한 암호 및 강력한 암호의 예를 참조하십시오.

암호화 해시 함수에 대한 추가 정보

암호화 해시 함수가 암호화와 관련되어있는 것처럼 보일 수 있지만 두 가지가 매우 다른 방식으로 작동합니다.

암호화는 무언가를 읽을 수 없도록 암호화 한 후 나중에 다시 정상적으로 사용하기 위해 암호를 해독하는 양방향 프로세스입니다. 저장 한 파일을 암호화하여 액세스하는 모든 사용자가 파일 을 사용할 수 없게하거나 파일 전송 암호화 를 사용하여 업로드하거나 온라인에서 다운로드하는 것과 같이 네트워크를 통해 이동하는 파일을 암호화 할 수 있습니다.

위에서 설명한 것처럼 암호화 해시 함수는 특수 암호 해독 암호로 암호화 된 파일을 읽는 방법과 같은 해시 취소 암호로 체크섬을 되돌릴 수 없다는 점에서 다르게 작동합니다. 암호 해시 함수의 유일한 용도는 파일 다운로드, 암호 저장, 데이터베이스에서 데이터 가져 오기 등과 같이 두 가지 데이터를 비교하는 것입니다.

암호화 해시 기능이 서로 다른 데이터 조각에 대해 동일한 체크섬을 생성 할 수 있습니다. 이런 일이 발생하면 충돌이라고합니다. 분명히, 이것은 암호화 해시 기능의 전체적인 점이 그것으로 입력 된 모든 데이터에 대해 완전히 고유 한 체크섬을 만드는 것임을 고려하면 큰 문제입니다.

충돌이 발생할 수있는 이유는 각 암호화 해시 함수가 입력 데이터에 관계없이 고정 길이 값을 생성하기 때문입니다. 예를 들어, MD5 암호화 해시 함수는 전혀 다른 세 개의 데이터 블록에 대해 827ccb0eea8a706c4c34a16891f84e7b, 1f633b2909b9c1addf32302c7a497983e10adc3949ba59abbe56e057f20f883e 를 생성합니다.

첫 번째 체크섬은 12345 이고 두 번째 체크섬은 700 자 이상의 문자와 숫자로 생성되며 세 번째 체크섬은 123456 입니다. 세 입력은 모두 길이가 다르지만 결과는 MD5가 사용 된 이후 항상 32 자입니다.

보시다시피 입력의 작은 변화가 완전히 다른 체크섬을 생성하기 때문에 체크섬 수에 제한이 없습니다. 그러나 암호화 해시 기능이 생성 할 수있는 체크섬 수에는 제한 있기 때문에 항상 충돌이 발생할 수 있습니다.

이것이 다른 암호화 해시 함수가 생성 된 이유입니다. MD5는 32 문자 값을 생성하지만 SHA-1은 40 문자를 생성하고 SHA-2 (512)는 128을 생성합니다. 체크섬에 포함 된 문자 수가 많을수록 충돌을 일으킬 가능성이 적어집니다. 고유 값.