SHA와 AES 암호화의 차이점은 무엇입니까?
SHA와 AES 암호화의 차이점은 무엇입니까?
SHA는 암호화가 아니라 단방향 해시 함수입니다. AES (Advanced_Encryption_Standard)는 대칭 암호화 표준입니다.
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 개 이상이 필요합니다.
참고 URL : https://stackoverflow.com/questions/990705/whats-the-difference-between-sha-and-aes-encryption
'Program Club' 카테고리의 다른 글
| Cordova 플랫폼 Android 대상을 나열하는 동안 작동하지 않는 Android 추가 (0) | 2020.10.17 |
|---|---|
| Visual Studio 2010의 이상한 "경고 LNK4042" (0) | 2020.10.17 |
| Ruby on Rails : 캐시 된 페이지 지우기 (0) | 2020.10.17 |
| Android Multiline Snackbar (0) | 2020.10.17 |
| 빠른 호출 계층 구조를위한 Intellij 단축키 (0) | 2020.10.17 |