문제

난독 화, 해싱 및 암호화의 차이점은 무엇입니까?

내 이해는 다음과 같습니다.

  • 해싱은 단방향 알고리즘입니다. 역전 할 수 없습니다
  • 난독 화는 암호화와 유사하지만 이해하기 위해 "비밀"이 필요하지 않습니다 (ROT13은 한 예입니다)
  • 암호화는 가역적이지만 그렇게하려면 "비밀"이 필요합니다.
도움이 되었습니까?

해결책

해싱은 더 큰 데이터를 기반으로 반 유럽 키를 만드는 기술입니다. 주어진 해시에서는 결국 "충돌"(예 : 동일한 해시 값으로 계산하는 두 가지 다른 데이터)이 있으며, 그렇게하면 일반적으로 더 큰 해시 키 크기를 만듭니다.

난독 화에는 일반적으로 유용한 단서 (예 : 의미있는 변수/함수 이름)를 제거하고, 창백을 읽기 어렵게 만들고, 일반적으로 일이 일어나고있는 일을 따르기 위해 복잡한 방법으로 일을하는 것을 포함합니다. "진정한"암호화와 같은 심각한 수준의 보안을 제공하지 않습니다.

암호화는 여러 모델을 따라갈 수 있으며, 그 중 하나는 두 당사자가 비밀 키를 갖는 개인 키 암호화라고하는 "비밀"방법입니다. 공개 키 암호화는 공유 일원 키를 사용하여 암호화와 개인 수신 키를 사용하여 해독합니다. 공개 키를 사용하면 수령인 만 비밀을 가져야합니다.

다른 팁

그것은 높은 수준의 설명입니다. 나는 그들을 개선하려고 노력할 것이다 :

해싱 - 완벽한 세상에서, 그것은 임의의 오라클입니다. 동일한 입력 X의 경우 항상 동일한 출력 y를받습니다. X와 관련이 없습니다. 이것은 수학적으로 불가능합니다 (또는 적어도 가능하지는 않습니다). 우리가 가장 가까운 것은 Trapdoor 기능입니다. H-1 (y) = x를 사용하는 h (x) = y는 너무 어렵습니다.

난독 화 (내 의견) - f (a) = b가 당신이 비밀이되는 것에 의존하는 f (a) = b. F는 해시 함수 일 수 있지만 "난독 화"부분은 모호함을 통한 보안을 의미합니다. 전에 ROT13을 본 적이 없다면 난독 화일 것입니다.

암호화 -Ek (x) = y, dl (y) = x 여기서 e는 모든 사람에게 알려져 있습니다. K와 L은 키이며 동일 할 수 있습니다 (대칭으로는 동일합니다). Y는 암호 텍스트이고 X는 일반 텍스트입니다.

해시시 a 편도 알고리즘 사용 참조를 손상시키지 않고 참조와 입력을 비교하십시오.

로그인에서 일반적으로 비밀번호를 비교하기 위해 사용되며 신용 카드를 사용하여 쇼핑하는 경우 리시피에서 찾을 수도 있습니다. 거기에서 당신은 몇 가지 숫자로 당신의 신용 카드를 찾을 수 있습니다. 높은 제안 가능성으로 누군가가 쓰레기를 검색하는 동안 누군가가 물건을 사는 데 사용되었다는 것은 카드의 수를 찾을 수 없습니다.

매우 순진하고 단순한 해시입니다 "끈의 처음 3 글자". 즉, "abcdefg"의 해시는 "ABC"가 될 것입니다. 이 기능은 해시의 전체 목적 인 분명히 역전 할 수 없습니다. 그러나 "abcxyz"는 정확히 동일한 해시를 가질 것이며, 이것을 충돌. 다시 : a 해시는 두 가지 비교 값이 동일하다는 특정 제안 가능성만으로.

또 다른 매우 순진하고 단순한 해시는 숫자의 5 모디 러스입니다. 여기서 6,11,16 등이 모두 동일한 해시를 가질 것입니다 : 1.

최신 해시 알코리즘은 가능한 한 충돌 수를 최대한 낮게 유지하도록 설계되었지만 절대 피할 수는 없습니다. 경험의 규칙은 : 해시가 길수록 충돌이 줄어 듭니다.

난처 암호화에서 입력 데이터를 인코딩하고 있습니다 ~ 전에 해시 또는 암호화됩니다.

이것은 올바른 클리어 텍스트를 결정하기가 어려워 지므로 무차별 인력 공격을 덜 실현 가능하게 만듭니다.

이것이 내가 항상 그것을 보았던 방식입니다.

  • 해싱은 세트 알고리즘을 사용하여 다른 값으로부터 값을 도출하고 있습니다. 사용 된 알고에 따라 이것은 한 가지 방법 일 수 있습니다.

  • Obfuscating은 기호 교체로 읽기가 더 어려워지고 있습니다.

  • 암호화는 값이 알고리즘을 제공하는 다른 값에 의존하는 것을 제외하고는 해싱과 같습니다.

그것은 나쁜 높은 수준의 설명이 아닙니다. 추가 고려 사항은 다음과 같습니다.

해싱은 일반적으로 많은 양의 데이터를 훨씬 작은 크기로 줄입니다. 예를 들어 비교하기 위해 두 개의 사본이 없으면 파일의 내용을 확인하는 데 유용합니다.

암호화는 비밀 데이터를 저장하는 것이 포함되며, 비밀 데이터의 보안은 나쁜 사람과 별도의 "키"를 안전하게 유지하는 데 달려 있습니다.

난독 화는 별도의 키없이 (또는 고정 키가있는) 정보를 숨기고 있습니다. 이 경우 방법을 비밀로 유지하는 것은 데이터를 안전하게 유지하는 방법입니다.

이를 통해 해시 알고리즘이 디지털 서명 및 컨텐츠 검증에 어떻게 유용 할 수 있는지, 암호화가 파일 및 네트워크 연결을 보호하는 데 사용되는 방법 및 디지털 권한 관리에 OBFUCCATION이 사용되는 이유를 알 수 있습니다.

간단한 답변 :

해싱 - 일부 데이터에서 확인 필드 생성 (데이터가 수정 된 시점을 감지하기 위해). 이것은 편도 기능이며 원래 데이터는 해시에서 파생 될 수 없습니다. 이에 대한 일반적인 표준은 SHA-1, SHA256 등입니다.

난독 화 - 데이터/코드를 수정하여 다른 사람을 혼동하십시오 (실제 보호 없음). 이것은 원래 데이터 중 일부를 잃어 버릴 수도 있고 없을 수도 있습니다. 이것에 대한 실제 표준은 없습니다.

암호화 - 키를 사용하여 데이터를 변환하여 올바른 키를 가진 사람들만이 이해할 수 있습니다. 암호화 된 데이터를 해독하여 원래 데이터를 얻을 수 있습니다. 일반적인 표준은 DES, TDE, AES, RSA 등입니다.

난독 화를 제외한 모든 벌금은 암호화와 실제로 유사하지 않습니다. 때로는 ROT13만큼 간단한 암호와 관련이 없습니다.

  • 해싱은 다른 값으로부터 한 값을 생성하는 일방적 인 작업입니다. 알고리즘은 가능한 한 짧고 고유 한 값을 만들려고 노력해야합니다.

  • 난독 화는 의미론을 바꾸지 않고 읽을 수없는 것을 만들고 있습니다. 가치 변환, 공백 제거 등이 포함됩니다. 일부 형태의 난독 화도 일방적 일 수 있으므로 시작 가치를 얻는 것은 불가능합니다.

  • 암호화는 양방향이며, 항상 다른 방식으로 일하는 암호 해독이 있습니다.

그렇습니다. 당신은 대부분 정확합니다.

난독 화는 숨어 있거나 이해하기 어려운 것을 만들고 있습니다.

해싱은 입력을 가져 와서 함수를 통해 실행하며 입력을 참조 할 수있는 출력을 생성합니다. 반드시 고유 한 것은 아니며, 함수는 다른 입력에 대해 동일한 출력을 생성 할 수 있습니다.

암호화는 입력을 고유 한 방식으로 출력으로 변환합니다. 일대일 상관 관계가 있으므로 잠재적 인 데이터 또는 혼란의 손실이 없습니다. 출력은 항상 모호함없이 입력으로 다시 변환 할 수 있습니다.

난독 화는 단지 누군가를 혼동하기 위해 기술을 침해하여 이해하기 어렵게 만드는 것입니다. 코드 oppuscators는 일반적으로 변수 또는 메소드 이름에서 의미있는 것을 제거하기 위해 물건을 바꾸어이를 수행합니다. 사용하기 위해 암호 해독 할 필요가 없다는 점에서 암호화와 유사하지 않습니다.

일반적으로 해싱과 암호화의 차이점은 일반적으로 암호화가 암호화/암호를 암호화하는 키를 요구하는 공식을 사용하는 다른 형태로 데이터를 변환하기 위해 공식을 사용한다는 것입니다. MD5가 암호화 알고리즘 인 해시 알고리즘 인 기본 64 인코딩이 예제됩니다. 누구나 Base64 인코딩 된 데이터를 해제 할 수 있지만 키없이 MD5 암호화 데이터를 암호화 할 수는 없습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top