-
Data: 2013-10-05 16:04:27
Temat: Re: NTG? procesory intella?
Od: Piotr Gałka <p...@c...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]
Użytkownik "J.F." <j...@p...onet.pl> napisał w wiadomości
news:1icuael7xhem8$.128hw8dep8au9.dlg@40tude.net...
>> Ja mam komputer sprzed może 5 lat i jeszcze nigdy nie zauważyłem aby był
>> wolniejszy ode mnie (AESa czy SHA256 przelicza w 1us).
>
> Jestes pewien ? AES to chyba dosc skomplikowany szyfr i 1us moze byc
> malo.
W konkursie na AES wybrali jeden z 3 czy 5 finalistów. Wcale nie wybrali
tego najbezpieczniejszego tylko ten najefektywniejszy w implementacji.
Nie mogę teraz znaleźć, gdzie mam zanotowane wyniki różnych prób. Według
mojej najlepszej pamięci:
DES - około 0,45us (64 bitowy algorytm z kluczem 56bitów - dostosowany
bardziej do realizacji sprzętowej niż programowej)
AES128 - około 1,2us (128 bitowy z kluczem 128 bitowym)
SHA256 stosuję do wydłużenia hasła - 1 000 000 wykonań (dane mieszczą się w
jednym bloku) trwa poniżej 2s.
Wszystkie algorytmy nie w jakiejś absolutnie nieczytelnej super optymalnej
formie, która różnymi #define i #ifdef dopasowuje się do systemu i maszyny i
najlepiej robi wszystko jako jeden wielki ciąg instrukcji bez pętli i
wywoływania podprocedur tylko zapisane przeze mnie tak, aby były według mnie
jak najczytelniejsze.
>
> W dodatku czesto szyfry zawieraja operacje "nieprocesorowe",
> tzn np "wybierz bity 5, 13, 21 i 27" jest upierdliwa.
Tak było w DESie - sprzętowo banalne - odpowiednie druciki lecą w
odpowiednie miejsca, programowo koszmarek.
Największą wadą AES (według pewnych ekspertów) jest to, że jest pięknie
zapisany matematycznie (w jakiejś tam algebrze czy jak to się zwie) bez
żadnych takich kombinacji. Nie można wykluczyć, że kiedyś jakiś student
matematyki wpadnie na jakieś analityczne rozwiązanie i swój referat zakończy
słowami: "stosując tę metodę na moim PC złamanie AES zajmuje ..... minut."
byte AES::SBox[256]={0x63,0x7C,0x77,..........,0x54,0xBB,
0x16};
void __fastcall AES::Encode(byte d[16])
{
static byte M2[256]={0x00,0x02,0x04,........,0xE1,0xE7,0xE5};
static byte M3[256]={0x00,0x03,0x06,.........0x1C,0x19,0x1A};
int i,j;
byte b[16];
byte *k=Key;
for(j=0;j<16;j+=4){*(dword*)(d+j)^=*(dword*)(k);k+=4
;}
for(i=Nr;i--;) // kolejne rundy
{
for(j=0;j<16;++j)b[j]=SBox[d[(j+((j&3)<<2))&0xF]]; // ShiftRows i
SubBytes
if(i)for(j=0;j<16;j+=4) // MixColumns i AddRoundKey
{
d[j] = M2[b[j]] ^ M3[b[j+1]] ^ b[j+2] ^ b[j+3] ^ *(k++);
d[j+1]= b[j] ^ M2[b[j+1]] ^ M3[b[j+2]] ^ b[j+3] ^ *(k++);
d[j+2]= b[j] ^ b[j+1] ^ M2[b[j+2]] ^ M3[b[j+3]] ^ *(k++);
d[j+3]= M3[b[j]] ^ b[j+1] ^ b[j+2] ^ M2[b[j+3]] ^ *(k++);
}
else
for(j=0;j<16;j+=4){*(dword*)(d+j)=*(dword*)(b+j)^*(d
word*)(k);k+=4;}
}
}
Skróciłem tabele M2 i M3 (to nie są tabele "z sufitu" tylko ztabelaryzowane
policzalne funkcje (chyba druga i trzecia potęga ale w jakimś dziwnym
matematycznym świecie). Z komentarza // ShiftRows i SubBytes wnioskuję, że
SBox to tylko jakieś przesunięcia (nie to co SBox w DES). Nie pamiętam -
pisałem to 5 lat temu.
> Tak czy inaczej - liczy tego AES wielokrotnie szybciej niz czlowiek
> :-)
>
> Ale inne rzeczy juz niekoniecznie sa takie szybkie, ja blyskawicznie
> zaplanuje trase z Wroclawia do Olsztyna, wystarczy rzut oka na mape.
> A nawigacja liczy i liczy ... fakt ze czasem obliczy lepsza :-)
Albo wyprowadzi w totalne maliny.....
Jechałem Zakopane-Białystok. Zaplanowałem poprzedniego dnia. Sprawdziłem jak
przejeżdża przez Kraków - było OK. Ale w Krakowie zjechałem na stację
benzynową i przeliczył od nowa. Już po chwili jechaliśmy uliczkami
osiedlowymi, potem koło jakiegoś cmentarza i na działki na polną drogę na
środku której była wysoka na 1m sterta gruzu nie do przejechania (znaczy
czołgiem by się dało).
P.G.
Następne wpisy z tego wątku
- 05.10.13 16:24 Piotr Gałka
- 05.10.13 16:34 Piotr Gałka
- 05.10.13 17:11 s...@g...com
- 05.10.13 20:10 pytajacy
- 05.10.13 21:17 Mario
- 05.10.13 21:29 Mario
- 05.10.13 21:37 Mario
- 06.10.13 11:23 Marek
- 06.10.13 11:28 ACMM-033
- 06.10.13 13:09 Piotr Gałka
- 06.10.13 16:48 RoMan Mandziejewicz
- 06.10.13 19:09 ACMM-033
- 07.10.13 08:33 J.F.
- 07.10.13 09:25 Piotr Gałka
- 07.10.13 09:36 Piotr Gałka
Najnowsze wątki z tej grupy
- pompa CO
- 2,5 x więcej niż Li-Ion
- Tfu! Przeklety prostokąt (czyli UPS i "sinus modyfikowany")
- Dalekopis T100 - problem z powrotem karetki
- Diody LED - oświetlenie na choinkę
- ale wiesz, że są gotowce?
- jak wykryć zapalenie żarówki?
- Cyna dylemat
- Mierniki poziomu glukozy (CGM, FGM)
- A Szwajcarzy kombinują tak: FinalSpark grows human neurons from stem cells and connects them to electrode arrays
- Kontrola nad prądem - sprawdź jak działa [apka - przyp. JMJ] eLicznik
- NETIA i hasło logowania
- Modulacja FM
- Najgorszy język programowania
- Kol. sukces po polsku: firma Szumisie sp. z o.o.
Najnowsze wątki
- 2025-12-27 pompa CO
- 2025-12-27 Gdynia => Przedstawiciel handlowy / KAM (branża TSL) <=
- 2025-12-27 Ewakuacja ludności
- 2025-12-26 Gdańsk => ERP Microsoft Dynamics 365 Commerce Consultant <=
- 2025-12-26 Kraków => Konsultant Microsoft Dynamics 365 Finance <=
- 2025-12-26 Kraków => Microsoft Dynamics 365 Finance Consultant <=
- 2025-12-26 wymieniłem termostat
- 2025-12-26 Warszawa => Senior Backend Java Developer <=
- 2025-12-25 Finlandia przywraca swastykę
- 2025-12-25 Skuteczność wymiaru sprawiedliwości
- 2025-12-24 Felgi
- 2025-12-24 2,5 x więcej niż Li-Ion
- 2025-12-24 No i kolejny ograniczony
- 2025-12-24 Warszawa => Młodszy Specjalista ds. wsparcia sprzedaży <=
- 2025-12-24 New York Times zagrożeniem bezpieczeństwa narodowego USA - POTUS D. Trump




7 pułapek i okazji - zobacz co cię czeka podczas kupna mieszkania na wynajem