java로 암호 저장 프로그램을 구현 중입니다. 나는 암호화를위한 트리플 DES와 해싱을위한 SHA256을 프로그래밍했다.해시 및 암호화의 순서가 보안 측면에서 차이가 있습니까?
내가 처음으로 원시 데이터 (암호)를 해시 한 다음 암호화하거나 데이터 (암호)를 암호화 한 다음 암호화 된 데이터를 해시하는 경우 어떤 차이가 있는지 궁금하다. 나는 대부분 보안에 대해 심각하게 변화 할까 우려하고있다.
감사
귀하의 코멘트 당java로 암호 저장 프로그램을 구현 중입니다. 나는 암호화를위한 트리플 DES와 해싱을위한 SHA256을 프로그래밍했다.해시 및 암호화의 순서가 보안 측면에서 차이가 있습니까?
내가 처음으로 원시 데이터 (암호)를 해시 한 다음 암호화하거나 데이터 (암호)를 암호화 한 다음 암호화 된 데이터를 해시하는 경우 어떤 차이가 있는지 궁금하다. 나는 대부분 보안에 대해 심각하게 변화 할까 우려하고있다.
감사
귀하의 코멘트 당, 당신은 메시지 인증 코드로 단지 해시를 사용하지 않습니다. 이 응용 프로그램에 적합한 해시 기반 MAC (적절하게는 HMAC)가 있습니다. 이 경우 HMAC-SHA256을 사용하려고합니다. 또한 MAC에 별도의 키가 필요함을 명심하십시오 (암호화와 MAC에 동일한 키를 사용하는 것은 큰 일입니다).
그러나 질문 자체에 대한 질문은 Encrypt-then-MAC 대 MAC-then-Encrypt입니다. 이 Crypto.SE answer 일 때 3DES가 아닌 ecryption 알고리즘을 허용하는 경우 IV 및 알고리즘 식별자를 비롯하여 암호화 텍스트에 대한 모든 사항을 MAC에 보장하는 한 최선의 행동 방침은 Encrypt-then-MAC입니다. 암호문과 일반 텍스트 무결성을 얻고 일반 텍스트를 확인하기 위해 암호 해독 프로세스를 거칠 필요가 없습니다.
암호화와 MAC에 별도의 키를 사용할 수 있습니다. 아마 성능 향상을 위해 AES 사용에 대한 조언을받을 수 있습니다. 또한 나는 다른 링크 [Encrypt-then-MAC] (http://www.daemonology.net/blog/2009-06-24-encrypt-then-mac.html)를 발견하고 나는 "Encrypt-then-MAC "사건이 내 사건에 맞는 것 같다. 감사! – Ekin
이것은 [security stackexchange] (http://security.stackexchange.com)에 대한 좋은 질문 일 수도 있습니다. – oleksii
@oleksii 감사합니다. 거기에서도 기회를 찾아 보겠습니다. – Ekin
비밀번호 금고이므로 암호를 다시 일반 텍스트로 보내려고한다고 가정합니다. 이 경우 해시를 사용하여 달성하려는 작업은 무엇입니까? –