SHA와 AES 암호화의 차이점은 무엇입니까?
답변:
SHA 는 National Security Agency에서 개발 한 "Secure Hash Algorithms"제품군입니다. 현재 2012+를위한 새로운 해시 알고리즘 인 SHA-3 이 될 사람을 놓고 수십 가지 옵션이 경쟁하고 있습니다 .
SHA 함수를 사용하여 큰 문서를 가져와 입력의 "다이제스트"( "해시"라고도 함)를 계산합니다. 이것이 단방향 프로세스라는 것을 인식하는 것이 중요합니다. 다이제스트를 가져 와서 원본 문서를 복구 할 수 없습니다.
AES , 고급 암호화 표준은 대칭 블록 알고리즘입니다. 즉, 16 바이트 블록을 사용하여 암호화합니다. 키가 암호화와 복호화를 모두 허용하기 때문에 "대칭"입니다.
업데이트 : Keccak 은 2012 년 10 월 2 일에 SHA-3 우승자로 선정되었습니다.
SHA와 AES는 다른 용도로 사용됩니다. SHA는 데이터 해시를 생성하는 데 사용되며 AES는 데이터를 암호화하는 데 사용됩니다.
다음은 SHA 해시가 유용한 경우의 예입니다. 일부 Linux 배포판의 DVD ISO 이미지를 다운로드하고 싶다고 가정 해 보겠습니다. 이것은 대용량 파일이며 때때로 문제가 발생하므로 다운로드 한 내용이 올바른지 확인해야합니다. 신뢰할 수있는 소스 (예 : 공식 배포판 다운로드 지점)로 이동하면 일반적으로 ISO 이미지에 사용할 수있는 SHA 해시가 있습니다. 이제 다운로드 한 데이터에 대해 비슷한 SHA 해시 (개방형 도구 사용)를 생성 할 수 있습니다. 이제 두 해시를 비교하여 일치하는지 확인할 수 있습니다. 그러면 다운로드 한 이미지가 올바른지 확인할 수 있습니다. 신뢰할 수없는 소스 (예 : 토렌트)에서 ISO 이미지를 가져 오거나 ISO 사용에 문제가 있고 이미지가 손상되었는지 확인하려는 경우 특히 중요합니다.
이 경우에서 볼 수 있듯이 SHA는 손상되지 않은 데이터의 유효성을 검사하는 데 사용되었습니다. ISO의 데이터를 볼 수있는 모든 권리가 있습니다.
반면 AES는 데이터를 암호화하거나 사람들이 비밀을 알고있는 상태에서 해당 데이터를 보지 못하도록 방지하는 데 사용됩니다.
AES는 공유 키를 사용합니다. 즉, 데이터를 해독하는 데 사용되는 것과 동일한 키 (또는 관련 키)가 데이터를 암호화하는 데 사용됩니다. 예를 들어 내가 AES를 사용하여 이메일을 암호화하고 해당 이메일을 귀하에게 보낸 경우 귀하와 나는 이메일을 암호화 및 해독하는 데 사용 된 공유 키를 알아야합니다. 이것은 PGP 또는 SSL과 같은 공개 키를 사용하는 알고리즘과 다릅니다.
이들을 함께 모으려면 AES를 사용하여 메시지를 암호화 한 다음 암호화되지 않은 메시지의 SHA1 해시를 함께 전송하여 메시지가 해독 될 때 데이터의 유효성을 검사 할 수 있도록 할 수 있습니다. 이것은 다소 인위적인 예입니다.
이러한 일부 Wikipedia 검색어 (AES 및 SHA 외)에 대해 더 알고 싶다면 다음을 포함 해보십시오.
대칭 키 알고리즘 (AES 용) 암호화 해시 함수 (SHA 용) 공개 키 암호화 (PGP 및 SSL 용)
SHA는 해시 함수이고 AES는 암호화 표준입니다. 입력이 주어지면 SHA를 사용하여 다른 입력에서 생성 될 가능성이 거의없는 출력을 생성 할 수 있습니다. 또한 함수를 적용하는 동안 일부 정보가 손실되므로 동일한 출력을 생성하는 입력을 생성하는 방법을 알고 있더라도 해당 입력은 처음에 사용 된 것과 같지 않을 수 있습니다. 반면에 AES는 동일한 암호화 키를 공유하는 두 당사자간에 전송 된 데이터를 제 3 자에게 공개하지 않도록 보호하기위한 것입니다. 즉, 암호화 키와 출력 (및 IV ...)을 알고 나면 원래 입력으로 원활하게 돌아갈 수 있습니다. SHA는 입력 만 필요하지만 AES에는 최소 3 개의 씬 (암호화 / 복호화 대상, 암호화 키 및 초기화 벡터 (IV))이 필요합니다.
SHA는 Secure Hash Algorithm을 의미하고 AES는 Advanced Encryption Standard를 의미합니다. 따라서 SHA는 해싱 알고리즘 모음입니다. 반면에 AES는 암호화에 사용되는 암호입니다. SHA 알고리즘 (SHA-1, SHA-256 등 ...)은 입력을 받아 다이제스트 (해시)를 생성합니다. 이것은 일반적으로 디지털 서명 프로세스에서 사용됩니다 (일부 바이트의 해시를 생성하고 개인 키로 서명). .
SHA는 입력 만 필요하지만 AES에는 암호화 / 복호화하는 항목, 암호화 키, 초기화 벡터 등 3 가지 이상이 필요합니다.