Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > pl.comp.programming > #32290 > unrolled thread

Prędkość funkcji SHA3-256

Started byBorneq <borneq@antyspam.hidden.pl>
First post2019-01-08 18:52 +0100
Last post2019-01-08 20:34 +0100
Articles 4 — 1 participant

Back to article view | Back to pl.comp.programming


Contents

  Prędkość funkcji SHA3-256 Borneq <borneq@antyspam.hidden.pl> - 2019-01-08 18:52 +0100
    Re: Prędkość funkcji SHA3-256 Borneq <borneq@antyspam.hidden.pl> - 2019-01-08 18:56 +0100
    Re: Prędkość funkcji SHA3-256 Borneq <borneq@antyspam.hidden.pl> - 2019-01-08 19:05 +0100
      Re: Prędkość funkcji SHA3-256 Borneq <borneq@antyspam.hidden.pl> - 2019-01-08 20:34 +0100

#32290 — Prędkość funkcji SHA3-256

FromBorneq <borneq@antyspam.hidden.pl>
Date2019-01-08 18:52 +0100
SubjectPrędkość funkcji SHA3-256
Message-ID<q12o1h$gb3$1@node1.news.atman.pl>
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

[toc] | [next] | [standalone]


#32291

FromBorneq <borneq@antyspam.hidden.pl>
Date2019-01-08 18:56 +0100
Message-ID<q12o8l$gb3$2@node1.news.atman.pl>
In reply to#32290
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];
	}
}

[toc] | [prev] | [next] | [standalone]


#32292

FromBorneq <borneq@antyspam.hidden.pl>
Date2019-01-08 19:05 +0100
Message-ID<q12oq8$h53$1@node1.news.atman.pl>
In reply to#32290
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

Może trzeba porównać Sha2-512 z Sha3-512?,albo choćby Sha2-384 z Sha3-384

[toc] | [prev] | [next] | [standalone]


#32293

FromBorneq <borneq@antyspam.hidden.pl>
Date2019-01-08 20:34 +0100
Message-ID<q12u0v$mbb$1@node1.news.atman.pl>
In reply to#32292
W dniu 08.01.2019 o 19:05, Borneq pisze:
> 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
> 
> Może trzeba porównać Sha2-512 z Sha3-512?,albo choćby Sha2-384 z Sha3-384

Patrzyłem: znane jest że jest dwa razy wolniejszy od sha2, znacznie 
bezpieczniejszy i implementuje się dobrze na sprzęcie.

[toc] | [prev] | [standalone]


Back to top | Article view | pl.comp.programming


csiph-web