eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingPrędkość funkcji SHA3-256Re: Prędkość funkcji SHA3-256
  • Data: 2019-01-08 18:56:37
    Temat: Re: Prędkość funkcji SHA3-256
    Od: Borneq <b...@a...hidden.pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    W dniu 08.01.2019 o 18:52, Borneq pisze:
    > Zaimplementowałem według https://github.com/brainhub/SHA3IUF
    > i okazuje się że SHA3-256 jest dwa razy wolniejsza niż SHA2-256...
    > a myślałem że jest ona bardzo szybka, Visual Release x64
    Czego się spodziewać, skoro nie dość że ma 24 rundy, to jeszcze w
    każdej: są dwie pętle po 24 i 25 (na szczęście nie jedna w drugiej)

    void TDCP_sha3::keccakf(uint64_t s[25])
    {
    int i, j, round;
    uint64_t t, bc[5];
    const int KECCAK_ROUNDS = 24;

    for (round = 0; round < KECCAK_ROUNDS; round++)
    {
    /* Theta */
    for (i = 0; i < 5; i++)
    bc[i] = s[i] ^ s[i + 5] ^ s[i + 10] ^ s[i + 15] ^ s[i + 20];

    for (i = 0; i < 5; i++) {
    t = bc[(i + 4) % 5] ^ SHA3_ROTL64(bc[(i + 1) % 5], 1);
    for (j = 0; j < 25; j += 5)
    s[j + i] ^= t;
    }

    /* Rho Pi */
    t = s[1];
    for (i = 0; i < 24; i++) {
    j = keccakf_piln[i];
    bc[0] = s[j];
    s[j] = SHA3_ROTL64(t, keccakf_rotc[i]);
    t = bc[0];
    }

    /* Chi */
    for (j = 0; j < 25; j += 5) {
    for (i = 0; i < 5; i++)
    bc[i] = s[j + i];
    for (i = 0; i < 5; i++)
    s[j + i] ^= (~bc[(i + 1) % 5]) & bc[(i + 2) % 5];
    }

    /* Iota */
    s[0] ^= keccakf_rndc[round];
    }
    }

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: