Size: a a a

2020 August 15

D

Dim in pro.algorithms
Dim, [15.08.20 13:38]
вот эту часть нужно как-то ускорить:
# Apply round transforms
for r in range(1, rounds):
   for i in range(0, 4):
       a[i] = (T1[(t[ i          ] >> 24) & 0xFF] ^
               T2[(t[(i + s1) % 4] >> 16) & 0xFF] ^
               T3[(t[(i + s2) % 4] >>  8) & 0xFF] ^
               T4[ t[(i + s3) % 4]        & 0xFF] ^
               _Ke[r][i])

   t = list(a)

Dim, [15.08.20 13:41]
если бы можно было a[i] брать за одну или две итерации - было бы шикарно!
источник

D

Dim in pro.algorithms
около 25 итерации на одно a[i]
источник

D

Dim in pro.algorithms
а всего 25*4*10 = 1000 итераций!
источник

D

Dim in pro.algorithms
Dim, [15.08.20 15:54]
вот если бы было какое-нибудь математическое преобразование, которое бы вычисляло сразу a[i]=f(t[i])

Dim, [15.08.20 15:55]
что б не ипаться со всякими байтшифтами
источник

D

Dim in pro.algorithms
как вы считаете 1000 итераций на 1 блок для 32х битного алгоритма это много или мало?
источник

ВВ

Вадим Великодный... in pro.algorithms
Dim
как вы считаете 1000 итераций на 1 блок для 32х битного алгоритма это много или мало?
Вопрос непонятен. Много или мало для чего? Допустим, я скажу, что много. Что это изменит?
источник

D

Dim in pro.algorithms
вот! и я так же думаю
источник

D

Dim in pro.algorithms
а если так думает большинство - то должно быть решение!
источник

BV

Boris Vinogradov in pro.algorithms
Dim
а если так думает большинство - то должно быть решение!
про ошибку выжившего слышали?
источник

MB

Mikail Bagishov in pro.algorithms
Dim
как вы считаете 1000 итераций на 1 блок для 32х битного алгоритма это много или мало?
Ну, миллион блоков в секунду это что-то вроде мегабайта в секунду. Это достаточно для многих целей, но вроде как мало.
источник

D

Dim in pro.algorithms
Mikail Bagishov
Ну, миллион блоков в секунду это что-то вроде мегабайта в секунду. Это достаточно для многих целей, но вроде как мало.
у вас, что 6 нулей перед глазами?
источник

D

Dim in pro.algorithms
тысяча!
источник

D

Dim in pro.algorithms
1000 операций на 1 блок (128 бит)
источник

MB

Mikail Bagishov in pro.algorithms
Dim
у вас, что 6 нулей перед глазами?
Ну а процессор за секунду выполняет 10**9 сферических операций в вакууме
источник

MB

Mikail Bagishov in pro.algorithms
Отсюда миллион блоков в секунжу (примерно)
источник

D

Dim in pro.algorithms
Mikail Bagishov
Ну а процессор за секунду выполняет 10**9 сферических операций в вакууме
у меня не процессор, а контроллер
источник

D

Dim in pro.algorithms
суть в том, что контроллер критичен к каждой операции - она отбирает у него время!
источник

D

Dim in pro.algorithms
1000 операций питона - 1 секунда!
источник

D

Dim in pro.algorithms
именно нативных питоновских операций!
источник

MB

Mikail Bagishov in pro.algorithms
Сходу видна оптимизация "переписать с питона" :)
источник