2011-06-10 3 views
0

내장 메서드 (MessageDigest)에서 java를 사용하여 SHA1을 구현하려고합니다. 그러나 예제에서는 Initial Vector를 선언 할 메소드 매개 변수를 찾지 못했습니다. 아무도 이것에 대해 나를 도울 수 있습니까 ???? 사전에 감사드립니다 ......Java SHA1이 초기 벡터를 사용하지 않는 이유는 무엇입니까?

+3

SHA-1을 직접 구현하려고합니까? SHA-1 해시를 수행하는 기능이 Java에 내장되어 있으므로 꼭해야합니까? 이것이 할당을위한 것이 아니라면 해시 알고리즘의 구현을 롤링하는 것은 이미 시도되고 테스트 된 구현이 사용 가능한 경우 나쁜 생각입니다. –

+0

무엇의 초기 벡터? update() 메서드를 사용하여 MessageDigest 인스턴스에 데이터를 제공합니다. 코드 샘플을 게시 할 수 있습니까? – Perception

답변

5

나는 암호 작성 전문가가 아니지만 논리적으로 생각하면 어떤 소음이 다이제스트에 필요합니까? 다이제스트 지점은 각 입력 메시지에 대해 임의의 결과를 보이는 것처럼 보이지만 다른 해시와 마찬가지로 동일한 입력에 대해 동일해야합니다. IV는 암호화 알고리즘을 수정하여 같은 입력에 대해 다른 결과를 갖도록 사용됩니다.

그래서 저는 IV가 없을 것이라고 생각합니다.

+1

올바른 - 메시지 요약은 초기화 벡터를 사용하지 않습니다. IV는 동일한 키를 사용하여 여러 번 암호화 된 단일 값이 동일한 암호 텍스트가되지 않도록 암호화하는 동안 사용됩니다. 해시 등가물은 소금입니다. – atk

+0

@atk 소금은 PBE의 일부로 다이제스트 정의가 아니라 생각합니다. SHA1 RFC에 소금에 대한 언급은 여기에 나와 있지 않습니다. http://www.faqs.org/rfcs/rfc3174.html 그러나 다시, 저는 현장에서 전문가가 아닙니다. –

+0

Alex, 미안, 내가 잘 모르겠다. 나는 소금이 해시 알고리즘의 일부가 아니라 해시를 통과하는 추가 데이터라는 것을 암시하지 않습니다. – atk

관련 문제