🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.programming
Article #216579

Re: Ile zajmie komputerowi mnożenie liczb rzędu 2^128

#216579
From: osobliwy nick
Date: Fri, 13 Dec 2019 05:42
44 lines
5716 bytes
> 10 GB/s ? moze oni licza to dla jakichs 32 rdzeniowych procesorow wtedy moze - nie wiem jak wydajne sa te instrukcje aes-ni ale 10 GB/s to raczej dla wielu procesorow na raz a i tak to wychodziloby kilka/kilkanascie cykli na zaszyfrowanie inta czyli bardzo malo.. mz idzie to wytlumaczyc tylko tym ze to sa dane dla wielu rdzeni 

Nie wiem dokładnie jak działa AES. Tutaj jest popularno-naukowe wyjaśnienie:

https://www.youtube.com/watch?v=O4xNJsjtN6E

nie wiem jednak, czy może być coś warte na poziomie szczegółowości, którego potrzebujemy. Przeglądałem jakiś czas temu dokumentację AES'a zamieszczoną przez NSA, ale tylko ją przejrzałem, nie mogę powiedzieć, że wiem dokładnie jak działa ten algorytm.

Natomiast dobrze udokumentowanym algorytmem jest w wielu aspektach podobny do niego DES. Łatwo znaleźć informacje co robi DES - to są mniej więcej tego rodzaju przekształcenia. Nie mam natomiast kompletnie pojęcia, czy mogą być one realizowane aż tak szybko. Nie umiem też stwierdzić na podstawie notek wikipedii co za procesory tam były używane. Jak pisze wikipedia:

"W przypadku mikroprocesorów klasy Pentium Pro, szyfrowanie za pomocą AES'a wymaga 18 cykli zegara na każdy bajt, co jest równoznaczne z wydajnością rzędu 11 MB/s dla procesora 200 MHz. Z kolei na procesorze klasy Pentium M o szybkości 1.7 GHz wydajność wynosi ok. 60 MB/s.

Na procesorach Intel Core i3/i5/i7, AMD APU a także na procesorach AMD FX wspierających zestaw instrukcji AES, wydajność może przekroczyć 700 MB/s na każdy wątek."

Procesor klasy pentium M o szybkości 1,7 GHz, to po prostu procesor 1,7 GHz, ma chyba jeden rdzeń. Nie wiem, nie znam się na procesorach, wiem tyle, co przeczytałem o tym procesorze na wikipedii.

> > 1000000/166*128/20*1/2^20= 0.037 MB/s
> > 
> 
> 
> kolega jest chyab niezle pijany...
> pisalem wyzej ze jedna taka iteracja na incie (4 bajty) moze zjac gdzies w granicach 10 ns (powiedzmy, plus minus, byc moze jest to zbytni pesymizm moze zajelo by tylko 3 ns) sto zajmie wiec w okolicach 1 mikrosekundy, na sekunde wiec wyjdzie to 1M intow czyli 4 MB (na rdzen)

166 mikrosekund wziąłem z wyliczeń Piotra Chamera. Z tego co Ty napisałeś wynika zaś, że można to zrobić 50 razy szybciej. 10 nanosekund dla 64-bitowych liczb na iterację, dla 128-bitowych - 3 razy wolniej, czyli 30 nanosekund. To daje 128*30=3840 nanosekund na 128 iteracji (czyli 3,84 mikrosekund). Wówczas wychodzi:

1000000/3,84*128/20*1/2^20 = 1,59 MB/s

Nie rozumiem w takim razie tylko skąd taka rozbieżność pomiędzy tym co piszesz Ty, a tym co policzył Piotra Chamera.

> (byc moze jest to zbyt pesymistyczne ale chodzilo mi o zarysowanie rzedu wielkosci, jesli wziac optymistycznie ze to bedzie ze 3 razy szybsze i masz 32 rdzenie to wyjdzie 12*32 = 384 MB/s, a jesli sa te specjalne instrukcje przyspieszajace to kilka razy to moze byc kilka razy wiecej ale i tak z tym 10 GBs tu wydaje sie przesada, chyab ze to na GPU)

No tak, przy 32 rdzeniach wygląda to świetnie. Ale te dane dla AES'a na procesorze klasy Pentium M o szybkości 1.7 GHz chyba nie dotyczą 32 rdzeni, tylko jednego?

> ciezko sie z kolega rozmawia bo kolega ma kalasyczny syndropm nooba czyli wyglaszanie jako pewniki zbioru zalozen ktore kolega uwaza za wazne a ktore widac ze sa mozna watpliwe lub ewidentnie falszywe

Chodzi Ci o te szacunki dot. AES'a? Tutaj:

https://crypto.stackexchange.com/questions/52958/is-there-an-encryption-algorithm-which-is-a-magnitude-faster-than-aes-with-wea

ktoś pisze, że:

"A classical table-based AES implementation would achieve about 160 MB/s on my current computer (a fairly recent MacBook Pro)"

Czyli jeszcze więcej. Może czegoś z tego nie rozumiem. Ile rdzeni ma ten MacBook Pro? Chyba 6-8? Raczej nie 32.
Technical Details
Message-ID: <a8322dc9-9879-4a6d-b0e8-1a47cdef5408@googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erje.net!feeder.erje.net!weretis.net!feeder7.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!g89no9614360qtd.0!news-out.google.com!w29ni1191qtc.0!nntp.google.com!g89no9614346qtd.0!postnews.google.com!google-groups.googlegroups.com!not-for-mail
References: <b7426ee8-be56-48fc-9657-da5a18e0729b@googlegroups.com> <qs878c$luk$1@dont-email.me> <5b01b3a8-9042-4203-871a-13f166f671dd@googlegroups.com> <deb8cf44-96c2-4bfa-8b78-a1c4a28440ec@googlegroups.com> <862ac5c6-5ac5-4915-a8dc-77669b7b1cfd@googlegroups.com> <8db2ea36-8d5e-4eec-8fb2-819658614d57@googlegroups.com> <624af684-7168-4de7-a37b-fe77566845b0@googlegroups.com> <2833b474-3c9c-4562-8138-2812fd55a70a@googlegroups.com> <e4e5ba4b-11cd-4d3e-a7a9-84d858d96f9b@googlegroups.com> <0fc59400-31f6-4b9d-9253-da0a06bbe203@googlegroups.com>

Show Full Headers
Complete Article Headers
X-Received: by 2002:a0c:d0f1:: with SMTP id b46mr11829757qvh.188.1576215754098;        Thu, 12 Dec 2019 21:42:34 -0800 (PST)
X-Received: by 2002:a37:648c:: with SMTP id y134mr9644703qkb.175.1576215753836; Thu, 12 Dec 2019 21:42:33 -0800 (PST)
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erje.net!feeder.erje.net!weretis.net!feeder7.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!g89no9614360qtd.0!news-out.google.com!w29ni1191qtc.0!nntp.google.com!g89no9614346qtd.0!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: pl.comp.programming
Date: Thu, 12 Dec 2019 21:42:33 -0800 (PST)
In-Reply-To: <0fc59400-31f6-4b9d-9253-da0a06bbe203@googlegroups.com>
Complaints-To: groups-abuse@google.com
Injection-Info: google-groups.googlegroups.com; posting-host=212.61.146.170; posting-account=5sNFBgoAAAAxlae8lv99mPyGsDs6ynwB
NNTP-Posting-Host: 212.61.146.170
References: <b7426ee8-be56-48fc-9657-da5a18e0729b@googlegroups.com> <qs878c$luk$1@dont-email.me> <5b01b3a8-9042-4203-871a-13f166f671dd@googlegroups.com> <deb8cf44-96c2-4bfa-8b78-a1c4a28440ec@googlegroups.com> <862ac5c6-5ac5-4915-a8dc-77669b7b1cfd@googlegroups.com> <8db2ea36-8d5e-4eec-8fb2-819658614d57@googlegroups.com> <624af684-7168-4de7-a37b-fe77566845b0@googlegroups.com> <2833b474-3c9c-4562-8138-2812fd55a70a@googlegroups.com> <e4e5ba4b-11cd-4d3e-a7a9-84d858d96f9b@googlegroups.com> <0fc59400-31f6-4b9d-9253-da0a06bbe203@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <a8322dc9-9879-4a6d-b0e8-1a47cdef5408@googlegroups.com>
Subject: Re: Ile zajmie komputerowi mnożenie liczb
 rzędu 2^128
From: osobliwy nick <osobliwy.nick@gmail.com>
Injection-Date: Fri, 13 Dec 2019 05:42:34 +0000
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit