"SHA384"의 두 판 사이의 차이
(사용자 2명의 중간 판 26개는 보이지 않습니다) | |||
1번째 줄: | 1번째 줄: | ||
− | '''SHA-384'''란 국가안보국(NSA)에서 설계한 [[암호 해시함수]]이다. | + | '''SHA-384'''<!--sha384, sha-384, 샤384, 샤-384, Secure Hash Algorithm 384, SecureHashAlgorithm384-->란 국가안보국(NSA)에서 설계한 [[암호]] [[해시함수]]이다. |
== 개요 == | == 개요 == | ||
− | SHA-384는 384비트(48바이트)의 [[해시 값]]을 생성하고, 일반적인 길이는 96자리 인 16진수로 [[렌더링]]이 된다.<ref>MOBILEFISH, | + | SHA-384는 2001년 [[SHA-1]]을 대체하기 위해 [[SHA-256]], [[SHA-512]]와 같이 만들어진 만든 [[해시]] [[알고리즘]]이다. 384비트(48바이트)의 [[해시 값]]을 생성하고, 일반적인 길이는 96자리 인 16진수로 [[렌더링]]이 된다. 현재 표준 알고리즘으로 널리사용되고 있다.<ref>MOBILEFISH, "[https://www.mobilefish.com/services/hash_generator/hash_generator.php MD5, SHA1, SHA224, SHA256, SHA384, SHA512 and RIPEMD160 hash generator]", ''MOBILEFISH''</ref><ref name="솔라나라">윈디하나, 〈[https://www.solanara.net/solanara/digestsolaris 해시알고리즘 비교]〉, 《윈디하나의 솔라나라》, 2011-09-04</ref> |
== 특징 == | == 특징 == | ||
− | [[SHA-384]]는 [[SHA-256]]보다 큰 유효 보호 수준을 가지기 때문에 [[SHA-512]] | + | [[SHA-384]]는 [[SHA-256]]보다 큰 유효 보호 수준을 가지기 때문에 [[SHA-512]]과 같이 대부분의 상상할 수 있는 충돌 저항에 대해 강점을 보인다. 어떤 [[해시]]를 사용할 것인가에 대한 주된 결정 요소는 얼마나 많은 양의 출력이 필요한가에 달려있는데, 예를 들어 256비트의 해시 기반 메시지 인증 코드(HMAC : Hash-based Message Authentication Code) 키와 128비트의 [[암호화]] 키를 모두 생성하기 위한 [[해시]]가 필요한 경우에 [[SHA-384]]의 사용은 당연하다고 할 수 있다. 계산 비용, 즉 의사 난수 생성기(PRNG : Pseudo Random Number Generator)의 출력이나 [[랜덤]] [[패딩]]에 대해 가능한 많은 출력이 필요한 경우에는 [[SHA-512]]를 선택하는 것이 옳은 방법이라고 할 수 있다. 또한 [[SHA-384]]는 내부 상태로 출력을 감소시키지 않으므로 [[SHA-3]]에도 취약하지 않다.<ref name="SHA-384"> David Schwartz, "[https://stackoverflow.com/questions/10061532/why-chose-sha512-over-sha384 Why chose SHA512 over SHA384?]" , ''stackoverflow'', 2012-04-08</ref> |
− | == 차이점 == | + | === 특성 === |
+ | SHA-224의 특성은 다음과 같다. | ||
+ | * '''해시값의 크기''' : 384 | ||
+ | * '''내부 상태 크기''' : 512 | ||
+ | * '''블록크기''' : 1024 | ||
+ | * '''길이 한계''' : 128 | ||
+ | * '''워드 크기''' : 64 | ||
+ | * '''과정수''' : 80 | ||
+ | * '''사용되는 연산''' : +,and,or,xor,shr,rotr | ||
+ | * '''충돌 여부''' : 발견되지 않음<ref name="솔라나라"></ref> | ||
+ | |||
+ | === 차이점 === | ||
* 초기 해시 값 h0 ~ h7은 다르다(9번째 ~ 16번째 소수) | * 초기 해시 값 h0 ~ h7은 다르다(9번째 ~ 16번째 소수) | ||
− | * 출력은 h6과 h7을 생략하고 출력한다.<ref | + | * 출력은 h6과 h7을 생략하고 출력한다.<ref>"[https://en.wikipedia.org/wiki/SHA-2 SHA-2]", ''Wikipedia''</ref> |
− | == 문제점 == | + | === 문제점 === |
− | 문제점 : [[SHA-384]]는 길이 확장 공격(Length extension attack)에 있어서 [[SHA-512]]에 비해 강세를 보인다 [[SHA-512]]는 길이 확장 공격에 대해 휘발성이지만 [ | + | 문제점 : [[SHA-384]]는 길이 확장 공격(Length extension attack)에 있어서 [[SHA-512]]에 비해 강세를 보인다 [[SHA-512]]는 길이 확장 공격에 대해 휘발성이지만 [[SHA-384]]는 휘발성이 아니기 때문이다. 하지만 [[SHA-384]]의 경우에는 [[다이제스트]]의 서명이 필요하한데, 만약 ECDSA-384 서명을 채택할 경우 512비트가 아닌 384개의 해시 다이제스트가 필요로 한다. [[SHA-224]]와 [[SHA-256]]처럼 큰 비트에서 필요한 만큼의 비트를 자르고 출력하는 것이 더 쉬운 일이기 때문에 필요 상황에 맞게 사용해야 한다.<ref name="SHA-384"></ref> |
{{각주}} | {{각주}} | ||
== 참고자료 == | == 참고자료 == | ||
− | *〈[https://en.wikipedia.org/wiki/SHA-2 SHA]〉, | + | *〈[https://en.wikipedia.org/wiki/SHA-2 SHA-2]〉, ''Wikipedia'' |
− | *MOBILEFISH, | + | *MOBILEFISH, "[https://www.mobilefish.com/services/hash_generator/hash_generator.php MD5, SHA1, SHA224, SHA256, SHA384, SHA512 and RIPEMD160 hash generator]", ''MOBILEFISH'' |
+ | *윈디하나, 〈[https://www.solanara.net/solanara/digestsolaris 해시알고리즘 비교]〉, 《윈디하나의 솔라나라》, 2011-09-04 | ||
+ | *David Schwartz, "[https://stackoverflow.com/questions/10061532/why-chose-sha512-over-sha384 Why chose SHA512 over SHA384?]" , ''stackoverflow'', 2012-04-08 | ||
== 같이보기 == | == 같이보기 == | ||
+ | * [[SHA-1]] | ||
+ | * [[SHA-224]] | ||
+ | * [[SHA-256]] | ||
+ | * [[SHA-512]] | ||
+ | * [[SHA-512/224]] | ||
+ | * [[SHA-512/256]] | ||
+ | * [[SHA-3]] | ||
− | + | {{암호 알고리즘|검토 필요}} | |
− | {{알고리즘|검토 필요}} |
2019년 11월 16일 (토) 14:34 기준 최신판
SHA-384란 국가안보국(NSA)에서 설계한 암호 해시함수이다.
개요[편집]
SHA-384는 2001년 SHA-1을 대체하기 위해 SHA-256, SHA-512와 같이 만들어진 만든 해시 알고리즘이다. 384비트(48바이트)의 해시 값을 생성하고, 일반적인 길이는 96자리 인 16진수로 렌더링이 된다. 현재 표준 알고리즘으로 널리사용되고 있다.[1][2]
특징[편집]
SHA-384는 SHA-256보다 큰 유효 보호 수준을 가지기 때문에 SHA-512과 같이 대부분의 상상할 수 있는 충돌 저항에 대해 강점을 보인다. 어떤 해시를 사용할 것인가에 대한 주된 결정 요소는 얼마나 많은 양의 출력이 필요한가에 달려있는데, 예를 들어 256비트의 해시 기반 메시지 인증 코드(HMAC : Hash-based Message Authentication Code) 키와 128비트의 암호화 키를 모두 생성하기 위한 해시가 필요한 경우에 SHA-384의 사용은 당연하다고 할 수 있다. 계산 비용, 즉 의사 난수 생성기(PRNG : Pseudo Random Number Generator)의 출력이나 랜덤 패딩에 대해 가능한 많은 출력이 필요한 경우에는 SHA-512를 선택하는 것이 옳은 방법이라고 할 수 있다. 또한 SHA-384는 내부 상태로 출력을 감소시키지 않으므로 SHA-3에도 취약하지 않다.[3]
특성[편집]
SHA-224의 특성은 다음과 같다.
- 해시값의 크기 : 384
- 내부 상태 크기 : 512
- 블록크기 : 1024
- 길이 한계 : 128
- 워드 크기 : 64
- 과정수 : 80
- 사용되는 연산 : +,and,or,xor,shr,rotr
- 충돌 여부 : 발견되지 않음[2]
차이점[편집]
- 초기 해시 값 h0 ~ h7은 다르다(9번째 ~ 16번째 소수)
- 출력은 h6과 h7을 생략하고 출력한다.[4]
문제점[편집]
문제점 : SHA-384는 길이 확장 공격(Length extension attack)에 있어서 SHA-512에 비해 강세를 보인다 SHA-512는 길이 확장 공격에 대해 휘발성이지만 SHA-384는 휘발성이 아니기 때문이다. 하지만 SHA-384의 경우에는 다이제스트의 서명이 필요하한데, 만약 ECDSA-384 서명을 채택할 경우 512비트가 아닌 384개의 해시 다이제스트가 필요로 한다. SHA-224와 SHA-256처럼 큰 비트에서 필요한 만큼의 비트를 자르고 출력하는 것이 더 쉬운 일이기 때문에 필요 상황에 맞게 사용해야 한다.[3]
각주[편집]
- ↑ MOBILEFISH, "MD5, SHA1, SHA224, SHA256, SHA384, SHA512 and RIPEMD160 hash generator", MOBILEFISH
- ↑ 2.0 2.1 윈디하나, 〈해시알고리즘 비교〉, 《윈디하나의 솔라나라》, 2011-09-04
- ↑ 3.0 3.1 David Schwartz, "Why chose SHA512 over SHA384?" , stackoverflow, 2012-04-08
- ↑ "SHA-2", Wikipedia
참고자료[편집]
- 〈SHA-2〉, Wikipedia
- MOBILEFISH, "MD5, SHA1, SHA224, SHA256, SHA384, SHA512 and RIPEMD160 hash generator", MOBILEFISH
- 윈디하나, 〈해시알고리즘 비교〉, 《윈디하나의 솔라나라》, 2011-09-04
- David Schwartz, "Why chose SHA512 over SHA384?" , stackoverflow, 2012-04-08
같이보기[편집]