SHA와 AES 암호화의 차이점은 무엇입니까? [닫은]


답변:


120

SHA는 암호화가 아니라 단방향 해시 함수입니다. AES (Advanced_Encryption_Standard)는 대칭 암호화 표준입니다.

AES 참조


85

SHA 는 National Security Agency에서 개발 한 "Secure Hash Algorithms"제품군입니다. 현재 2012+를위한 새로운 해시 알고리즘 인 SHA-3 이 될 사람을 놓고 수십 가지 옵션이 경쟁하고 있습니다 .

SHA 함수를 사용하여 큰 문서를 가져와 입력의 "다이제스트"( "해시"라고도 함)를 계산합니다. 이것이 단방향 프로세스라는 것을 인식하는 것이 중요합니다. 다이제스트를 가져 와서 원본 문서를 복구 할 수 없습니다.

AES , 고급 암호화 표준은 대칭 블록 알고리즘입니다. 즉, 16 바이트 블록을 사용하여 암호화합니다. 키가 암호화와 복호화를 모두 허용하기 때문에 "대칭"입니다.

업데이트 : Keccak 은 2012 년 10 월 2 일에 SHA-3 우승자로 선정되었습니다.


64

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 용)


DVD라는 단어를 보면이 답변이 몇 살인지 이해합니다.
Klesun

9

SHA는 해시 함수이고 AES는 암호화 표준입니다. 입력이 주어지면 SHA를 사용하여 다른 입력에서 생성 될 가능성이 거의없는 출력을 생성 할 수 있습니다. 또한 함수를 적용하는 동안 일부 정보가 손실되므로 동일한 출력을 생성하는 입력을 생성하는 방법을 알고 있더라도 해당 입력은 처음에 사용 된 것과 같지 않을 수 있습니다. 반면에 AES는 동일한 암호화 키를 공유하는 두 당사자간에 전송 된 데이터를 제 3 자에게 공개하지 않도록 보호하기위한 것입니다. 즉, 암호화 키와 출력 (및 IV ...)을 알고 나면 원래 입력으로 원활하게 돌아갈 수 있습니다. SHA는 입력 만 필요하지만 AES에는 최소 3 개의 씬 (암호화 / 복호화 대상, 암호화 키 및 초기화 벡터 (IV))이 필요합니다.


7

SHA는 Secure Hash Algorithm을 의미하고 AES는 Advanced Encryption Standard를 의미합니다. 따라서 SHA는 해싱 알고리즘 모음입니다. 반면에 AES는 암호화에 사용되는 암호입니다. SHA 알고리즘 (SHA-1, SHA-256 등 ...)은 입력을 받아 다이제스트 (해시)를 생성합니다. 이것은 일반적으로 디지털 서명 프로세스에서 사용됩니다 (일부 바이트의 해시를 생성하고 개인 키로 서명). .


3

SHA는 입력 만 필요하지만 AES에는 암호화 / 복호화하는 항목, 암호화 키, 초기화 벡터 등 3 가지 이상이 필요합니다.


1
[이는 "새 사용자가 제공 한 이전 질문에 대한 늦은 답변으로 표시되었습니다. 내 의견은 해당 컨텍스트에 있습니다.]이 질문에 대한 다른 답변에 이미 제공된 내용에 대한 정보를 추가하지 않는 것 같습니다.
danfuzz

그건 틀렸어요. AES를 사용하기 위해 초기화 벡터 (IV)가 필요하지 않습니다. AES의 일부 작업 모드에는 IV가 필요합니다 (완전히 다릅니다).
Hilder Vitor Lima Pereira
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.