sha512 algo

Upload: jitesh-middha

Post on 03-Jun-2018

222 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/12/2019 SHA512 ALGO

    1/17

    Cryptography and

    Network Security

    Chapter 12

    Class: L28-L29

  • 8/12/2019 SHA512 ALGO

    2/17

  • 8/12/2019 SHA512 ALGO

    3/17

    SHA-512 Overview

  • 8/12/2019 SHA512 ALGO

    4/17

    It takes as input a message with a

    maximum length of less than 2 ^128 bits

    and produces as output a 512-bit message

    digest.

    The input is processed in 1024-bit blocks

  • 8/12/2019 SHA512 ALGO

    5/17

    Step 1: Append padding bits

    To add padding bits such that the length of the message

    is 128 bits short of a multiple of 1024.

    Padding is always added, even if the message is alreadyof the desired length. Thus, the number of padding bits isin the range of 1 to 1024. The padding consists of a

    single 1-bit followed by the necessary number of 0-bits.

  • 8/12/2019 SHA512 ALGO

    6/17

    Step 2: Append length:

    A block of 128 bits is appended to the message.

    The outcome of the first two steps yields a message thatis an integer multiple of 1024 bits in length. Theexpanded message is represented as the sequence of

    1024-bit blocks M1, M2,..., MN, so that the total length ofthe expanded message is N x 1024 bits.

  • 8/12/2019 SHA512 ALGO

    7/17

    Step 3: Initialize hash buffer :

    A 512-bit buffer is used to hold intermediate and final results of thehash function.

    The buffer can be represented as eight 64-bit registers (a, b, c, d, e,f, g, h).

    These words were obtained by taking the first sixty-four bits of thefractional parts of the square roots of the first eight prime numbers.

    These registers are initialized to the following 64-bit integers(hexadecimal values):

    a = 6A09E667F3BCC908 b = BB67AE8584CAA73B

    c = 3C6EF372FE94F82B d = A54FF53A5F1D36F1

    e = 510E527FADE682D1 f = 9B05688C2B3E6C1F

    g = 1F83D9ABFB41BD6B h = 5BE0CDI9137E2179

  • 8/12/2019 SHA512 ALGO

    8/17

    Step 4: Process message in 1024-bit

    blocks.

    The heart of the algorithm is a module thatconsists of 80 rounds; this module is

    labeled F.

    The logic is illustrated below.

  • 8/12/2019 SHA512 ALGO

    9/17

  • 8/12/2019 SHA512 ALGO

    10/17

    SHA-512 Compression

    Function

    heart of the algorithm

    processing message in 1024-bit blocks

    consists of 80 rounds updating a 512-bit buffer

    using a 64-bit value Wt derived from the

    current message block

    and a round constant based on cube root of

    first 80 prime numbers

  • 8/12/2019 SHA512 ALGO

    11/17

    SHA-512 Round Function

    Each round is defined by the following set

    of equations:

  • 8/12/2019 SHA512 ALGO

    12/17

    Where

  • 8/12/2019 SHA512 ALGO

    13/17

  • 8/12/2019 SHA512 ALGO

    14/17

    SHA-512 Round Function

  • 8/12/2019 SHA512 ALGO

    15/17

    It remains to indicate how the 64-bit word

    values Wt are derived from the 1024-bit

    message.

    The first 16 values of Wt are taken directly

    from the 16 words of the current block

    16 x 64 = 1024

  • 8/12/2019 SHA512 ALGO

    16/17

    The remaining values are defined as

    follows:

  • 8/12/2019 SHA512 ALGO

    17/17

    SHA-512 Round Function