🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.programming
Article #216592

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

#216592
From: fir
Date: Wed, 27 May 2020 20:58
81 lines
4943 bytes
W dniu środa, 27 maja 2020 21:12:02 UTC+2 użytkownik osobliwy nick napisał:
> W dniu wtorek, 26 maja 2020 10:35:38 UTC+2 użytkownik fir napisał:
> > W dniu poniedziałek, 25 maja 2020 21:55:24 UTC+2 użytkownik osobliwy nick napisał:
> > > Jeśli kogoś to interesuje, to oto jak szybki jest AES:
> > > 
> > > https://crypto.stackexchange.com/questions/44927/how-long-does-a-good-aes-encryption-take
> > > 
> > > W 6 sekund szyfruje 1 GB! A poniżej użytkownik pisze, że można zejść nawet do 1 GB w 0,6 sekund.
> > 
> > przy sprzetowej akceleracji...
> 
> Aha, tego nie wziąłem pod uwagę. Dotarłem do kodu AESa w Pythonie 3. Jeśli się nie mylę, to jest przykładowa implementacja tego szyfru:
> 
> https://github.com/boppreh/aes/blob/master/aes.py
> 
> Nie potrafię tego uruchomić. A chcę to porównać z moim kodem, który także mam w Pythonie 2. Przykładowy zestaw kluczy:
> 
> #!/usr/bin/python
> 
> from sys import argv
> 
> keys=eval(argv[1]) # list of function selectors aka the key
> v=eval(argv[2]) # endianness vector
> r=len(keys) # nmbr rounds implied by keys
> bo=int(argv[3]) # nmbr of bits out
> pt=int(argv[4]) # the plaintext
> 
> 
> parms=[-7,-5,-3,3,5,7]
> rf=[(parms[i/6],parms[i%6],2) for i in
> range(36)]+[(parms[i/6],parms[i%6],-2) for i in range(36)]
> 
> 
> def swapendian(x, nmbrbits):
>          s=0
>          for i in range(nmbrbits):
>                  s+=2**(nmbrbits-i-1)*((x>>i)%2)
>          return s
> 
> def genf(a,b,c):
>          def f(x):
>                  if x % 2 == 1:
>                          return ((x * a + b)/2,1)
>                  return (x/c,0)
>          return f
> 
> 
> def round(s,a,b,c,n):
>          f=genf(a,b,c)
>          o=0
>          for i in range(0,n):
>                  (s,ct)=f(s)
>                  o+=ct*2**i
>          return swapendian(o,n)
> 
> def encrypt(pt,r,keys,v):
>          ct = pt
>          for i in range(r):
>                  if v[i] == 1:
>                          ct=swapendian(ct,bo)
>                  (a,b,c)=rf[keys[i]]
>                  ct=round(ct,a,b,c,bo)
>          return ct
> 
> print encrypt(pt,r,keys,v)
> 
> Uruchamiamy to komendą:
> 
> python main.py '[67,65,64,63,67,68,67,65,70,68,71,64,69,71,70,65,68,66,67,70]' '[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]' 128 123
> 
> Przy czym "123", to szyfrowana liczba, możemy podać dowolną liczbę 128-bitową. Pytanie, czy mój kod będzie szybszy niż AES. BTW - kod nie jest mojego autorstwa, koledzy z innego forum mi pomogli. Na oko wygląda, że tak. Nie jestem pewien też, czy dobry kod AESa znalazłem i czy to jest cały AES, czy coś tam poupraszczali. Ktoś umie uruchomić tego AESa?
> 
> > problem z userami takimi jak ty jest takiz e probujesz oswiecac grupe nie znajac sie na tym o czym mowisz co skutecznie czesto (w przypadku tego typu podejscia) prowoduje sianie ciemnoty... (ja sam osobiscie maga nie cierpie takich ludzi bo grupa jest od siania wlasnie wiedzy a nie degenerowania jej i siania ciemnoty)
> 
> Nigdzie nie napisali o akceleracji sprzętowej, nie miałem pojęcia jakie to może mieć znaczenie. W tej chwili mam kod, jak widać powyżej, który uruchamiam w:
> 
> https://repl.it/languages/python
> 
> Bo jeszcze nie nauczyłem się nawet instalować Pythona u siebie na kompie (a nie wiem co za procesor obsługuje ten intepreter). I muszę dojść do tego ile szyfrowanie zajmie AESowi, a ile mojemu algorytmowi.

NIE WIEM ILE CI TO ZAJMIE ALE CO TY JESTES ZA DZIWAKIEM BY SNUC TAKIE ROZWAZANIA
Technical Details
Message-ID: <e64baec6-1c0d-4f11-8462-77cedca4ffe2@googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!fu-berlin.de!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
References: <b7426ee8-be56-48fc-9657-da5a18e0729b@googlegroups.com> <90136054-80d1-4102-b4c6-3e6c978ebfd3@googlegroups.com> <bf863496-3213-4351-9e23-1141b0f18706@googlegroups.com> <0b3130b4-dc1d-4613-b590-47e7fc119ccf@googlegroups.com>

Show Full Headers
Complete Article Headers
X-Received: by 2002:a37:2710:: with SMTP id n16mr6215228qkn.149.1590613128481;        Wed, 27 May 2020 13:58:48 -0700 (PDT)
X-Received: by 2002:a0c:f944:: with SMTP id i4mr8872459qvo.230.1590613128323; Wed, 27 May 2020 13:58:48 -0700 (PDT)
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!fu-berlin.de!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: pl.comp.programming
Date: Wed, 27 May 2020 13:58:48 -0700 (PDT)
In-Reply-To: <0b3130b4-dc1d-4613-b590-47e7fc119ccf@googlegroups.com>
Complaints-To: groups-abuse@google.com
Injection-Info: google-groups.googlegroups.com; posting-host=5.172.255.10; posting-account=Sb6m8goAAABbWsBL7gouk3bfLsuxwMgN
NNTP-Posting-Host: 5.172.255.10
References: <b7426ee8-be56-48fc-9657-da5a18e0729b@googlegroups.com> <90136054-80d1-4102-b4c6-3e6c978ebfd3@googlegroups.com> <bf863496-3213-4351-9e23-1141b0f18706@googlegroups.com> <0b3130b4-dc1d-4613-b590-47e7fc119ccf@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <e64baec6-1c0d-4f11-8462-77cedca4ffe2@googlegroups.com>
Subject: Re: Ile zajmie komputerowi mnożenie liczb
 rzędu 2^128
From: fir <profesor.fir@gmail.com>
Injection-Date: Wed, 27 May 2020 20:58:48 +0000
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit