|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Возвращаюсь периодически к теме UDP-передачи. Кто не в курсе - неважно, это просто подзадача, условия ниже. Задача: зашифровать пакет на отправителе, на получателе расшифровать и убедиться что верно расшифровано. Сначала была классическая мысль посчитать хэш нешифрованных данных и добавить к данным, по получении после расшифровки снова посчитать и сравнить. Потом появилась мысль как-то совместить шифрование и подсчет хэша. Зачем четыре прохода делать вместо двух? Шифрование CBC , т.е. данные влияют на то что в итоге получится. Ключ шифрования не обсуждаем, он передан безопасным способом. В итоге пришел к выводу что достаточно в конец дописать пару байт константы (0x5AA5) и после дешифрования проверить. Вроде все отлично, но есть сомнения: не создал ли я дыру, через которую все расшифруют? Исходники Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65.
Результат Код: plaintext 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2019, 20:02 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
В твоём протоколе все UDP пакеты независимые? Или образуют Stream? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2019, 20:13 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
maytonВ твоём протоколе все UDP пакеты независимые? Или образуют Stream? Образуют Stream, в котором контролируется правильность полученного, это вложенный уровень, его не обсуждаем. В данном случае надо просто понять что пакет был зашифрован тем же симметричным ключом, которым расшифрован, при этом не ослабить шифрование. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2019, 20:18 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
В каждый конец открытого текста пакета дописываются 0x5AA5 ? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2019, 20:30 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
maytonВ каждый конец открытого текста пакета дописываются 0x5AA5 ? Да. Результат выполнения кода Код: plaintext 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2019, 20:31 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Результат это то во что трансформировалось 0x5AA5 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2019, 20:34 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Юзай спокойно. При правильном использовании CBC тебе ничего не угрожает. В интрернетах ходит миллиард пакетов с стандартной шапкой <html И ничо. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2019, 20:36 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Что-то мне кажется, что зная что последние байты всегда константа, должно быть очень легко востановить часть пароля (2 байта пароля) При разных длинах пакетов, будем востанавливать разные части пароля. Т.ч. накопив передачи с разной длиной пакетов, в какой-то момент можно будет реконструировать пароль Хотя, возможно, мне это только кажется, C++ под руокй нет. т.ч. код не запустить и зашифрованные пакет не посмотреть. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2019, 20:40 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Dima TРезультат это то во что трансформировалось 0x5AA5 кроме того, во что трансфорировалось 0x5AA5 нужно еще и предыдущий байт(ы) видеть. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2019, 20:42 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
maytonЮзай спокойно. При правильном использовании CBC тебе ничего не угрожает. В интрернетах ходит миллиард пакетов с стандартной шапкой <html И ничо. У меня должен быть полный хаос в том что уходит в сеть, чтобы не было этого PS на дату глянул, пять лет уже пишу, юбилей )))) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2019, 20:44 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsevлегко востановить часть пароля (2 байта пароля) Чтобы узнать 2 байта пароля надо знать исходные (шифруемые) данные. Я двумя байтами (вместо 4-х) ограничился из-за трафика, но как понимаю 2 байта приписки имеют выше криптостойкость по сравнению с 4-мя. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2019, 21:10 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Dima TВ итоге пришел к выводу что достаточно в конец дописать пару байт константы (0x5AA5) и после дешифрования проверить. Вроде все отлично, но есть сомнения: не создал ли я дыру, через которую все расшифруют? А шифрование то реально такое, как в приведенном исходнике? Я бы скорее не за пару байт в конце беспокоился. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2019, 21:35 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Не знаю как Дима распространяет ключи. Вручную. ? На флешке? Но я бы позаботился о периодическом их обновлении. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2019, 22:06 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
BarloneDima TВ итоге пришел к выводу что достаточно в конец дописать пару байт константы (0x5AA5) и после дешифрования проверить. Вроде все отлично, но есть сомнения: не создал ли я дыру, через которую все расшифруют? А шифрование то реально такое, как в приведенном исходнике? Я бы скорее не за пару байт в конце беспокоился. Шифрование реально такое, но ключ разовый на сессию, т.е. отправитель в начале отправки файла/сообщения генерит ключ и передает его в первом пакете. Собственно проблема из-за того что ключей много, и т.к. используется UDP, то может прилететь кусок предыдущей сессии и надо его распознать и проигнорировать. Первый пакет содержит ключ сессии, он шифруется мастер-ключом (он постоянный), вот тут надо подумать чтобы по сессионному невозможно было мастер-ключ восстановить. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2019, 08:11 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Тут старик Керхгофс бы неодобрительно нахмурил брови. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2019, 10:46 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Dima T, ну хотя бы RC4 реализовали. Несмотря на известные слабые места, он гораздо лучше, чем такое. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2019, 11:40 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Dima TВ итоге пришел к выводу что достаточно в конец дописать пару байт константы (0x5AA5) и после дешифрования проверить. Вроде все отлично, но есть сомнения: не создал ли я дыру, через которую все расшифруют? Если сообщение xor-ить случайной (псевдо) последовательностью, то ни разу не страшно. Главное последовательность не повторять, или повторять как-то очень редко, со сдвигами и т.д. Если шифрование двуступенчатое (сначала асимметричное, потом симметричное), тогда первый этап, наверное, лучше без двух байт. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2019, 12:39 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Не надо ничего xor-ить. Xor на фоне шифрования - это бесполезная трата ваших ресурсов. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2019, 14:41 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Алгоритм: Передаём в начале сообщения пару случайных байт и затем в конце сообщения ту же пару. Получатель сверяет и удостоверяется в дешифровании. Можно после первой пары байт давать смещение второй пары, что-б никто не догадался (с). ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2019, 17:34 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
BarloneDima T, ну хотя бы RC4 реализовали. Несмотря на известные слабые места, он гораздо лучше, чем такое. RC4 это потоковое шифрование, а у меня не поток, а фрагменты потока (UDP пакеты), которые будут частично теряться по дороге и надо будет их высылать повторно, следовательно придется их хранить до подтверждения доставки. Но это не самое страшное, пакет может не дойти никогда из-за рубки пакетов по сигнатуре 15824799 . Если я буду шифровать отдельно каждый пакет, то добавив в начало один случайный байт я эту проблему решаю. По этой причине выбран CBC, чтобы сменой первого байта изменить весь пакет до неузнаваемости. С помощью RC4 можно растянуть ключ до размера пакета, станет немного получше. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2019, 17:54 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
alex55555Алгоритм: Передаём в начале сообщения пару случайных байт и затем в конце сообщения ту же пару. Получатель сверяет и удостоверяется в дешифровании. Можно после первой пары байт давать смещение второй пары, что-б никто не догадался (с). Отличная идея. У меня первый байт и так случайный, можно его дважды в конце повторить. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2019, 17:57 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Dima TОтличная идея. У меня первый байт и так случайный, можно его дважды в конце повторить. Посмотрел что получится, получилось не очень: Предпоследний байт всегда одинаковый после шифрования, потестил на разных строках. Какая-то особенность алгоритма. Добавил искажение предпоследнего байта. В итоге вот что получается: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34.
Первый байт случайный, перебрал все варианты кратные 8-ми, он не шифруется, показан как есть, два последних производные от него. Исходник Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2019, 19:08 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Dima TПервый байт случайный, перебрал все варианты кратные 8-ми, он не шифруется Ну тогда может его не первым слать? А первым - просто случайный байт, ни от чего не зависящий и ни на что не влияющий, и пусть его все читают. Так же и про последний, если и он влияет. Опять же про случайное смещение второго не забываем - тоже вариант. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2019, 12:55 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Похоже на number used once. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2019, 17:18 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Размышлял про RC4. Хотелось бы задействовать, но резко усложняется решение в целом, т.к. невозможно зашифровать произвольное место потока. Пришел к выводу что даже если кто-то подслушивающий расшифрует несколько сессионных ключей - это не критично. Это будет достаточно сложно если с помощью RC4 нарастить ключ до размера пакета. Главная проблема в том чтобы не засветить мастер-ключ (МК), который шифрует сессионные. Он постоянный и его расшифровка сводит все шифрование к нулю. Как вариант рассматриваю добавление соли: посчитать MD5(МК+соль) и полученный хэш использовать для шифрования сессионного ключа. Соответственно передавать соль + шифрованный сессионный. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2019, 17:47 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Dima T, Почему не AES? Два байта мало, отправить 65536 пакетов и подобрать подпись слишком просто. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2019, 08:40 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
scfDima T, Почему не AES? Это уже тяжелая артиллерия. Исходником не отделаться, придется либу какую-то использовать. Пока рассматриваю варианты с реализацией попроще. scfДва байта мало, отправить 65536 пакетов и подобрать подпись слишком просто. Это не подпись, а контрольная сумма пакета. Пытаюсь совместить шифрование и контроль целостности. Т.к. CBC использует сами данные для шифрования, то проверив последние два байта я могу быть уверен что после расшифровки имеем то что было зашифровано. Вероятность 99.998%. Атака с подбором тут невозможна и бессмысленна. 2 байта это защита от получения пакета предыдущей сессии. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2019, 09:52 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Dima TИсходником не отделаться Да ну, брось, там сотня строк на интринсиках: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136.
Другой вопрос, что тебе придётся с выравниванием блоков заморочиться. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2019, 14:56 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Надо потестить этот AES, но как-то сложно все с ним, часа два читал инет и толком не понял как им пользоваться. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2019, 18:08 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Все блочные шифры работают примерно одинаково с точки зрения API. Или ты пытаешсья понят как устроен алгоритм? Зачем? Бери используй. Просто следу best-practices. По выравниванию... да. Есть такое. Ну добъешь пакет до кратной длины. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2019, 19:35 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
У меня тупо ничего не запустилось, а то что запустилось оказалось какой-то ерундой: расшифровалось не то что я шифровал. Еще погуглю, как-то плохо все с примерами кода про AES, а в других алгоритмах достаточно копипаста кода с википедии. Мне просто надо пример кода С/С++ как зашифровать и как расшифровать. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2019, 19:53 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Dima TНадо потестить этот AES, но как-то сложно все с ним, часа два читал инет и толком не понял как им пользоваться.Ну можно что-нибудь попроще ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2019, 19:55 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Dima TУ меня тупо ничего не запустилось, а то что запустилось оказалось какой-то ерундой: расшифровалось не то что я шифровал. Еще погуглю, как-то плохо все с примерами кода про AES, а в других алгоритмах достаточно копипаста кода с википедии. Мне просто надо пример кода С/С++ как зашифровать и как расшифровать. А что исходник Сибирякова? Не взлетел? Кстати тебе, как любителю высоких скоростей будет интересно что AES встроен в современные процессоры. В этом смысле он все равно лучше чем самопальные свистульки. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2019, 19:58 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
BarloneDima TНадо потестить этот AES, но как-то сложно все с ним, часа два читал инет и толком не понял как им пользоваться.Ну можно что-нибудь попроще А зачем компромиссы? RC4 прост и понятен. AES интересен тем что аппаратно поддерживается, это плюс порядок в производительности, еще поразбираюсь с ним. PS Можно пятничный бенчмарк поднять, скорость шифрования померять. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2019, 20:00 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
maytonА что исходник Сибирякова? Не взлетел? Там, как понимаю, не исходник, а кусок из GCC. Нагуглил альтернативу под MS VC , но пока не попробовал. maytonКстати тебе, как любителю высоких скоростей будет интересно что AES встроен в современные процессоры. В этом смысле он все равно лучше чем самопальные свистульки. Выше уже написал про пятничный тестдрайв ))) Но есть у меня такая штука как сервер для бэкапов, хотелось бы чтобы там тоже работало. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2019, 20:15 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
maytonИли ты пытаешсья понят как устроен алгоритм? Зачем? Бери используй. ИМХО неправильный подход. Тот же CBC, я просто перепутал encrypt и decrypt, а оно оказывается работает если сначала расшифровать, потом зашифровать, но если глянуть в то что посредине это ужас, расшифровывается школьником в тетрадке. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2019, 20:26 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Dima TmaytonИли ты пытаешсья понят как устроен алгоритм? Зачем? Бери используй. ИМХО неправильный подход. Тот же CBC, я просто перепутал encrypt и decrypt, а оно оказывается работает если сначала расшифровать, потом зашифровать, но если глянуть в то что посредине это ужас, расшифровывается школьником в тетрадке. Хм... CBC - это вообще не шифр. Это способ "сцепления" вагончиков-блоков любого шифрующего алгоритма. Наверное ты что-то другое имел в виду. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2019, 20:35 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Dima TВыше уже написал про пятничный тестдрайв ))) Но есть у меня такая штука как сервер для бэкапов, хотелось бы чтобы там тоже работало. А приходилось тебе иметь дело с Raspberry Pi ? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2019, 20:36 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
maytonDima TВыше уже написал про пятничный тестдрайв ))) Но есть у меня такая штука как сервер для бэкапов, хотелось бы чтобы там тоже работало. А приходилось тебе иметь дело с Raspberry Pi ? Нет, но вроде как это такая же хрень что и моя, мне тот девайс просто подарили, но у моей есть SATA разъем, куда я полноценный HDD воткнул и бэкапы туда лью. Уже лет пять работает, недавно сгорел блок питания, точнее обычный зарядник для телефонов с USB выходом, поставил первый под руку попавшийся и опять все работает. PS Недавно было по новостям про спутники на железе от телефонов, так я верю этому, у меня железо непонятно из чего отлично выполняет роль сервера, пусть сервера бэкапов, но круглосуточно проработало 5+ лет. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2019, 20:48 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Да мощности этих устройств еще 10 лет назад хватало для файл-серверов. Габариты были не те правда. Я вот с удивлением узнал что мой роутер TP-Link вполне себе может быть файл-сервером. Надо было просто воткнуть в него "карман с винтом". И всё. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2019, 20:51 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
maytonDima Tпропущено... ИМХО неправильный подход. Тот же CBC, я просто перепутал encrypt и decrypt, а оно оказывается работает если сначала расшифровать, потом зашифровать, но если глянуть в то что посредине это ужас, расшифровывается школьником в тетрадке. Хм... CBC - это вообще не шифр. Это способ "сцепления" вагончиков-блоков любого шифрующего алгоритма. Наверное ты что-то другое имел в виду. Да, не совсем правильно назвал. У меня шифрование xor с ключом побайтно и CBC блоками в 1 байт. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2019, 08:03 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Потестил исходник AES отсюда . Встроенный тест прошел (aes128_self_test). Скомпилировался в виндовсе и линуксе. На ARM-е не скомпилировался. Может в компиляторе проблема, обновил но он все равно старый Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2019, 09:03 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Потестил скорость на разных процах. Шифрование 500 000 блоков по 4096 байт. Алгоритмi7-6700Ki7-3770Ki5-660CBC xor1784 ms 1094 Mb/s2298 ms 849 Mb/s3429 ms 569 Mb/sRC42689 ms 726 Mb/s4794 ms 407 Mb/s4897 ms 398 Mb/sAES-128311 ms 6280 Mb/s648 ms 3014 Mb/s1102 ms 1772 Mb/s Исходники . Компилятор MS VC 2017. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2019, 15:30 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Dima T, cbc_crypt не совсем cbc. его можно разделить на два независимых прохода - xor каждого байта с предыдущим байтом и xor с ключом. Не говоря уже о никакой криптостойкости, например, если шифровать поток нулевых байт. Если речь не идет о проекте "в стол" для разминки ума или высокоскоростной сети на слабом железе, я бы взял нормальное шифрование (AES) и подписывал бы зашифрованные пакеты (HMAC). Либо гуглил конкретные алгоритмы authenticated encryption, например, можно взять TLS за основу. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2019, 00:21 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Согласен, мое cbc xor шифрование так себе. Сама задача: передать в открытом инете по UDP большое сообщение/файл, разбив его на UDP пакеты, затем собрав обратно. Для каждой передачи отправитель генерит сессионный ключ и шифрует его мастер ключом. Я с помощью этого "шифрования" UDP-пакета пытался решить сразу четыре подзадачи: 1. Добавить энтропию в содержание пакета. В итоге меняя 5 бит первого байта получаю 32 разных представления одного и того же пакета. 2. Проверить контрольную сумму пакета, т.к. возможно получение пакетов от предыдущих сессий. И просто для защиты от ошибок в реализации протокола обмена. 3. Ограничить прием сообщений только от отправителей знающих мастер-ключ получателя. 4. Защитить данные от прослушки канала. Для п.3 достаточно максимально усложнить восстановление мастер-ключа по сессионному ключу, например так 21842187 п.4 не удался. Т.е. топик получился ни о чем, криптостойкости изначально нет, поэтому нечего ослаблять. Зато помог навести порядок в голове. Поразмышлял немного: криптостойко зашифровать передаваемые данные надо решать как отдельную подзадачу. Надо в архитектуре предусмотреть отдельный слой шифрования, чтобы добавить шифрование туда когда оно действительно потребуется. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2019, 09:54 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
С точки зрения случайного наблюдателя - твой трафик будет вполне себе шифрован и если нет какого-либо сурового финансового или любого другого интереса то никто его ломать из любопытсва не будет. И для малого бизнеса xor-вполне себе вариант. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2019, 11:46 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
scfНе говоря уже о никакой криптостойкости, например, если шифровать поток нулевых байт. А что не так с криптостойкостью xor-a случайной последовательности и нулей? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2019, 12:07 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Ну и теория для получения последовательностей - на сколько сложно вычислять иррациональное число до n-ного знака? Какая там зависимость? Экспонента или полином? По простому - как эффективно вычислять корень до n-ного знака? Если можно это делать быстро, то вычисляем до знака, соответствующего длине пакета, а сам получившийся ключ хранить не нужно, ибо есть исходное число, из которого берётся корень - экономия, практически бесконечный коэффициент сжатия. Или последовательность будет неслучайная? Неповторяющаяся, но при этом неслучайная. Такое возможно? А каков тогда характер распределения? Может кто-то курил тему, было бы интересно узнать. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2019, 12:11 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
alex55555, погугли Архиватор Бабушкина. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2019, 15:47 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
maytonalex55555, погугли Архиватор Бабушкина. Погуглил. Не вставило. А должно было? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2019, 17:14 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Да так. Просто. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2019, 17:27 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
alex55555maytonalex55555, погугли Архиватор Бабушкина. Погуглил. Не вставило. А должно было? Наверно должно, т.к. alex55555бесконечный коэффициент сжатия основан на тех же принципах что и Архиватор Бабушкина и вечный двигатель ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2019, 20:06 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
alex55555scfНе говоря уже о никакой криптостойкости, например, если шифровать поток нулевых байт. А что не так с криптостойкостью xor-a случайной последовательности и нулей?Со настоящей случайной последовательностью то всё хорошо. Вот только в изначальном варианте там было циклическое повторение (видимо не очень длинного) ключа. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2019, 20:19 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Dima Talex55555пропущено... Погуглил. Не вставило. А должно было? Наверно должно, т.к. alex55555бесконечный коэффициент сжатия основан на тех же принципах что и Архиватор Бабушкина и вечный двигатель Если взять алгоритм х=х+1 и запустить его в бесконечном цикле, то получим бесконечное количество чисел. На хранение информации о бесконечном количестве чисел нам при этом потребовалось 5 байт (длина строки х=х+1). Архивирование с бесконечным коэффициентом сжатия невозможно в общем случае, но в частных - легко, в том числе и в случае корней и иррациональных чисел. Поэтому последовательность знаков в иррациональном числе имеет смысл изучать. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2019, 11:47 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
BarloneСо настоящей случайной последовательностью то всё хорошо. Вот только в изначальном варианте там было циклическое повторение (видимо не очень длинного) ключа. Понял, спасибо. А вы не в курсе, как по последовательности xor-енных с данными байт из иррационального числа дешифровать данные? Даже если распределение нормальное или какое-нибудь пуассоновское, то как это поможет дешифрованю? Если точно знать, что в некотором месте шифрованных данных есть нули, то можно получить часть иррационального числа - можно по произвольной части иррационального числа определить всё число? Ну или его квадрат, для простоты? Случайные последовательности ведь специально исследовались именно на предмет шифрования и почему-то предпочли именно чисто случайные, а не последовательность в иррациональном числе. Почему? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2019, 11:53 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
alex55555Если взять алгоритм х=х+1 и запустить его в бесконечном цикле, то получим бесконечное количество чисел. На хранение информации о бесконечном количестве чисел нам при этом потребовалось 5 байт (длина строки х=х+1). И как с помощью этого алгоритма передать конкретное число? Например 48. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2019, 12:28 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Dima TИ как с помощью этого алгоритма передать конкретное число? Например 48. Речь же шла об архивировании всех чисел. Все числа успешно архивируются и передаются при помощи 5 байт. А как выделить конкретное из них - это уже другой алгоритм, за него я не брался отвечать. Хотя если принимающая сторона в курсе алгоритма разархивирования, то можно передать число 3, которое принимающая сторона умножит на 16. Сжатие в 2 раза. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2019, 14:21 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Можно считать что double тоже архивирует любое целое число в разрядную сетку из 64 бит. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2019, 16:59 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Вы до какой-то хрени договорились. Тогда уж все числа (но не известно какое в точности), вполне можно заархивировать одним битом 1 - если какое-то число, 0 - нет числа Но так как числа все равно где-то есть, то тогда можно достичь полнейшей эннтропии и заархивировать даже нулем битов: где-то какое-то число точно есть, но какое и где, мы еще не выяснили. "У нас есть ТАКИЕ приборы! Но мы вам о них не расскажем" ( C ) Меня укусила акула, когда я стоял в океане. Но я оставался спокоен, терпел, но закончил работу. Потом прибежали ребята, и эта акула узнала, Что значат румяные парни из третьей ремонтной бригады. Аквалангисты - это хорошо! И взрослые знают, и дети - мы радость творим на планете. Аквалангисты - это не игра! Сиреневым пламенем дышат большие кирпичные домны. Противник на нашу погибель готовит подводные лодки. Но мы тоже люди не промах. Мы прячемся в черные дыры. У нас есть ТАКИЕ приборы! Но мы вам о них не расскажем. Аквалангисты - это не игра! И взрослые знают, и дети - мы радость творим на планете. Аквалангисты - это хорошо! Когда мы выходим на берег, то девочки радостно стонут. И мы начинаем рассказы про разные трудности моря. Но хватит! Завыла сирена. И мы быстро прыгаем в воду. Мы жить не привыкли на суше, мы любим нырять и купаться. Аквалангисты - это не игра! И взрослые знают, и дети - мы радость творим на планете. Аквалангисты - это хорошо! ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2019, 17:33 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
alex55555Речь же шла об архивировании всех чисел. Все числа успешно архивируются и передаются при помощи 5 байт. А как выделить конкретное из них - это уже другой алгоритм, за него я не брался отвечать. Хотя если принимающая сторона в курсе алгоритма разархивирования, то можно передать число 3, которое принимающая сторона умножит на 16. Сжатие в 2 раза. Зачем архивировать все числа? Как быть с отрицательными числами? С дробными? ... К чему эта ересь? Если идея базируется на принципе: заменить произвольную последовательность байт на код, генерирующий эту последовательность, то код будет длиннее. Например как сделать генератор такой последовательности? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2019, 18:08 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
maytonМожно считать что double тоже архивирует любое целое число в разрядную сетку из 64 бит. Архивирует не сам дабл, а алгоритм, заполняющий значения типа дабл. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2019, 19:03 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Leonid KudryavtsevВы до какой-то хрени договорились. Тогда уж все числа (но не известно какое в точности), вполне можно заархивировать одним битом 1 - если какое-то число, 0 - нет числа Есть принцип - корень из короткого числа даёт бесконечную последовательность. Алгоритм нахождения последовательности займёт от силы килобайт. Итого коэффициент сжатия при необходимости получить шифрующую последовательность любой длинны равен длине последовательности делённой на длину короткого числа. А нули и единицы для шифрования всех чисел дают углублённое понимание того, что написано выше. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2019, 19:06 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Dima TК чему эта ересь? Это теория. При переходе к практике она бывает полезной. Для вычисления интегралов нужны бесконечно малые величины, а с ним - сама бесконечность. Всё это ересь с точки зрения обывателя, но тогда обыватель не получит айфон, в котором живут интегралы. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2019, 19:09 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
alex55555Это теория. При переходе к практике она бывает полезной. Пример пользы на практике можно посмотреть? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2019, 20:59 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
alex55555Leonid KudryavtsevВы до какой-то хрени договорились. Тогда уж все числа (но не известно какое в точности), вполне можно заархивировать одним битом 1 - если какое-то число, 0 - нет числа Есть принцип - корень из короткого числа даёт бесконечную последовательность. Алгоритм нахождения последовательности займёт от силы килобайт. Итого коэффициент сжатия при необходимости получить шифрующую последовательность любой длинны равен длине последовательности делённой на длину короткого числа. А нули и единицы для шифрования всех чисел дают углублённое понимание того, что написано выше. Вы - всё таки успешный последователь идей Бабушкина. Давайте я еще подкину несколько тезисов. Это то что я помню из курса дискретки и теории чисел. 1) Множество целых чисел - бесконечно. 2) Множество рациональных чисел (вида m/n) - тоже бесконечно но по мощности больше чем множество целых. 3) Множество иррациональных чисел (это корни рациональной степени из целого) тоже бесконечны и покрывают рациональные. 4) Множество трансцедентных чисел (это числа Пи и е) и все прочее что не выводятся из конечного числа операций на полиномах. Также кроет козырной карто множество иррациональных. 5) Множество вещественных чисел. Кроет всё остальное. (Здесь я не 100% уверен насчет того есть ли между (4) и (5) еще какой-то уровень чисел) Пускай математики подскажут. Теперь по поводу сжатия и Бабушкиных. Рискну предположить что вы играете где-то на 3 уровне этой структуры. Отсюда вытекают ограничения. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2019, 21:06 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Dima Talex55555Это теория. При переходе к практике она бывает полезной. Пример пользы на практике можно посмотреть? Ну так генерация последовательности для шифрования. В асиметричном режиме обмениваемся парой чисел и далее симметрично ксорим двумя последовательностями (корни из первого и второго чисел). Я могу так зашифровать, а вы сможете взломать такой шифр? Даю 1000 р. за взлом моего шифра. Кто рискнёт? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2019, 13:56 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
maytonТеперь по поводу сжатия и Бабушкиных. Рискну предположить что вы играете где-то на 3 уровне этой структуры. Отсюда вытекают ограничения. Какие ограничения? На что они влияют? Каким образом? Если ответить на эти вопросы, то предположение может измениться в обратную сторону. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2019, 13:58 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Цитата авторАрхивирование с бесконечным коэффициентом сжатия невозможно в общем случае, но в частных - легко, в том числе и в случае корней и иррациональных чисел. Поэтому последовательность знаков в иррациональном числе имеет смысл изучать. И мой камент был к ней. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2019, 14:01 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
alex55555Dima Tпропущено... Пример пользы на практике можно посмотреть? Ну так генерация последовательности для шифрования. В асиметричном режиме обмениваемся парой чисел и далее симметрично ксорим двумя последовательностями (корни из первого и второго чисел). Я могу так зашифровать, а вы сможете взломать такой шифр? Даю 1000 р. за взлом моего шифра. Кто рискнёт?Есть более быстрые способы генерации случайной последовательности. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2019, 14:40 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
alex55555Dima Tпропущено... Пример пользы на практике можно посмотреть? Ну так генерация последовательности для шифрования. В асиметричном режиме обмениваемся парой чисел и далее симметрично ксорим двумя последовательностями (корни из первого и второго чисел). Я могу так зашифровать, а вы сможете взломать такой шифр? Даю 1000 р. за взлом моего шифра. Кто рискнёт? Я не рискну. Но предположу. Скажу что подобный взлом проходит в несколько этапов. И в 1-м идет анализ вас и вашего ПО если таковое есть в исходном коде. Согласно закона Керхгофса рано или поздно ваша идея становится обще известной. Во 2-м этапе идет отработка гипотез на тему того что вы за сообщения пересылаете. Обычно сетевые протоколы имеют регулярную структуру (JMS) и дальнейшая атака основывается на статистических принципах. Мы берем зашифрованное сообщение и применяем к нему известный (уже) генератор до тех пор пока регулярные структуры в нем не проявятся. После этого множество проявленных открытых текстов надо будет проверить на то что это интересующая нас информация. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2019, 15:09 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Размышлял тут про скорость аппаратного AES, подумал а почему бы не добавить к нему CBC и получить полноценную замену моему CBC XOR? И добавил. Потестил скорость на разных процах. Шифрование 500 000 блоков по 4096 байт. Алгоритмi7-6700Ki7-3770Ki5-660CBC xor1784 ms 1094 Mb/s2298 ms 849 Mb/s3429 ms 569 Mb/sRC42689 ms 726 Mb/s4794 ms 407 Mb/s4897 ms 398 Mb/sAES-128311 ms 6280 Mb/s648 ms 3014 Mb/s1102 ms 1772 Mb/sAES-128 + CBC1390 ms 1405 Mb/s2709 ms 720 Mb/s2488 ms 785 Mb/s Исходники обновил, там же есть готовый exe если кто просто запустить захочет. Компилятор MS VC 2017. По скорости AES+CBC обгоняет мою самоделку (кроме одного компа), функционал получается тот же, все свои задачи я порешаю плюс полноценное шифрование получу, выравнять размер данных на 16 байт не проблема. Все хорошо, но что делать там где проц не поддерживает AES ? Это не только ARMов касается. Интел поддержку AES включил только в 2008 и то не на всех процах. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2019, 16:52 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
alex55555На хранение информации о бесконечном количестве чисел нам при этом потребовалось 5 байт (длина строки х=х+1). Архивирование с бесконечным коэффициентом сжатия невозможно в общем случае, но в частных - легко, ... после таких перлов бесконечность в гробу перевернётся. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2019, 16:53 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Не собралось. Код: ruby 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2019, 17:03 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
maytonНе собралось. Поправил, проверяй. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2019, 17:24 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
maytonЦитата авторАрхивирование с бесконечным коэффициентом сжатия невозможно в общем случае, но в частных - легко, в том числе и в случае корней и иррациональных чисел. Поэтому последовательность знаков в иррациональном числе имеет смысл изучать. И мой камент был к ней. Тогда я не понял, какова связь. Можно записать число 11? Можно взять корень? Можно получить бесконечную последовательность? Коэффициент сжатия 2 к бесконечности не очевиден? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2019, 17:31 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
BarloneЕсть более быстрые способы генерации случайной последовательности. Поделитесь? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2019, 17:32 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
maytonМы берем зашифрованное сообщение и применяем к нему известный (уже) генератор до тех пор пока регулярные структуры в нем не проявятся. То есть решаем перебором. Но ведь чисел, из которых можно взять корень, очень много. Если брать числа хотя бы в районе от 2 64 и до 2 64 +2 64 , то перебор займёт уже очень приличное время. Но 64 - это далеко не самое маленькое число, которое я могу придумать. Да, и в каждом сеансе я меняю сеансовый ключ, то есть беру пару новых чисел. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2019, 17:35 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Dima TРазмышлял тут про скорость аппаратного AES Пусть грубо 2ГБ в секунду. Память может отдавать данные много быстрее, то есть имеем ожидание из-за вычислений. 256-битный xor выполняется, примерно за пару тактов. Ну пусть будет 3 для гарантии, хотя весьма вероятно, что за один такт. Пусть система о 3 гигагерцах. Тогда имеем 32 байта за наносекунду. Пусть xor выполняется два раза (для двух коней), тогда имеем 16 байт за наносекунду или 16ГБ в секунду. При этом второе (третье, четвёртое, ...) ядро вычисляет две последовательности. Для вычисления память не нужна (почти). Вычисление итеративное, из предыдущих данных получаются новые. Вычисление довольно простое. Если два-три ядра успеют вычислять со скоростью генерации 16 ГБ в секунду, то получаем теоретический предел 16 ГБ. Если не успеют - предел меньше. Но по сравнению с 2 ГБ/с есть запас. Делим 16 на 4 загружаемых ядра - всё равно будет двойной запас. И работает без требования о наличии железных команд, считающих AES. Не в плане кого-то убеждать, но альтернатива интересная. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2019, 17:47 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
alex55555Да, и в каждом сеансе я меняю сеансовый ключ, то есть беру пару новых чисел. Подумал, понял, что не знаю, можно или нет статистически обнаружить отклонение от известного распределения при наличии конкретного шаблона в сообщении. Поэтому из-за незнания придётся усложнить алгоритм перепутыванием байт в сообщении по закону, который меняется на каждом сеансе. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2019, 17:51 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Dima TВсе хорошо, но что делать там где проц не поддерживает AES ? Это не только ARMов касается. Интел поддержку AES включил только в 2008 и то не на всех процах. Под рукой нашлись два ноута где нет AES, процы: i3-2310M и AMD A8-3510MX. PS В вики немного врут, на i3-7100U есть AES. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2019, 17:56 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Dima TmaytonНе собралось. Поправил, проверяй. Спасибо. Вечером повторю. Кстати на днях ко мне заедет 6-ядерный Ryzen. Можно будет погонять на нем карточный трассировщик луча. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2019, 18:22 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
alex55555maytonМы берем зашифрованное сообщение и применяем к нему известный (уже) генератор до тех пор пока регулярные структуры в нем не проявятся. То есть решаем перебором. Но ведь чисел, из которых можно взять корень, очень много. Если брать числа хотя бы в районе от 2 64 и до 2 64 +2 64 , то перебор займёт уже очень приличное время. Но 64 - это далеко не самое маленькое число, которое я могу придумать. Да, и в каждом сеансе я меняю сеансовый ключ, то есть беру пару новых чисел. В чем заключается твоя идея? Вместо ключа длиной 256 бит который генерируется обычно секюрными генераторами, или хешом от парольной фразы, ты предлагаешь заведомо узкую по области значений и сурьективную функцию которая пространство ключей сужает от 256 до 64 бит. Зачем это? Что мы на этом экономим? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2019, 20:19 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Мысли вслух, может кто что подскажет: там где AES не поддерживается, то перейти на cbc xor, но тут две проблемы: 1. Определить что AES аппаратно не поддерживается, не гуглил, но это вроде как можно определить что поддеживает проц перед использованием. 2. Переключиться на xor если одна из сторон не может использовать аппаратный AES. Тут выравнивание по 16 байт заставляет шифровать все 1472 байта (максимум для UDP). В конец пакета добавлено два байта 0xA55A, по которым можно проверить корректность расшифровки, поэтому видится только что получатель на первый пакет либо сообщает отправителю что не в состоянии расшифровать (нет поддержки AES), либо не расшифровав с AES расшифровывает с XOR. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2019, 20:39 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Dima TМысли вслух, может кто что подскажет: там где AES не поддерживается, то перейти на cbc xor, но тут две проблемы: 1. Определить что AES аппаратно не поддерживается, не гуглил, но это вроде как можно определить что поддеживает проц перед использованием. 2. Переключиться на xor если одна из сторон не может использовать аппаратный AES. Тут выравнивание по 16 байт заставляет шифровать все 1472 байта (максимум для UDP). В конец пакета добавлено два байта 0xA55A, по которым можно проверить корректность расшифровки, поэтому видится только что получатель на первый пакет либо сообщает отправителю что не в состоянии расшифровать (нет поддержки AES), либо не расшифровав с AES расшифровывает с XOR. Технически. Тебе проще собирать и поддерживать 2 бинарника. - с аппаратной поддержкой AES для модных процессоров. - с программной эмуляцией того-же AES для старых жлобских Пенитиумов и Ардуино. Выбор сделать сразу на фазе инсталляции. Усложнять протокол добавлением выбора - ябы не стал. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2019, 20:47 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
maytonDima TМысли вслух, может кто что подскажет: там где AES не поддерживается, то перейти на cbc xor, но тут две проблемы: 1. Определить что AES аппаратно не поддерживается, не гуглил, но это вроде как можно определить что поддеживает проц перед использованием. 2. Переключиться на xor если одна из сторон не может использовать аппаратный AES. Тут выравнивание по 16 байт заставляет шифровать все 1472 байта (максимум для UDP). В конец пакета добавлено два байта 0xA55A, по которым можно проверить корректность расшифровки, поэтому видится только что получатель на первый пакет либо сообщает отправителю что не в состоянии расшифровать (нет поддержки AES), либо не расшифровав с AES расшифровывает с XOR. Технически. Тебе проще собирать и поддерживать 2 бинарника. - с аппаратной поддержкой AES для модных процессоров. - с программной эмуляцией того-же AES для старых жлобских Пенитиумов и Ардуино. Выбор сделать сразу на фазе инсталляции. Усложнять протокол добавлением выбора - ябы не стал. Два бинарника не вариант, я не знаю где он будет запущен. Исходим из того что где-то запустили отправителя, где-то получателя, и они должны найти общий язык общения. Да, вариант программной реализации AES я умолчал, погуглю тоже, но и так понятно что это будет тормоз на слабом железе. Я за скорость, и ради скорости готов пожертвовать криптостойкостью. Как вариант можно предусмотреть сборку бинарника не поддерживающего слабое xor шифрование. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2019, 21:01 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Вот тут пишут про детектор команд AES new instructions: https://stackoverflow.com/questions/38798818/within-my-c-program-is-there-a-way-to-check-if-the-cpu-has-aes-ni Можно в рантайме проверять. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2019, 21:06 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
maytonЗачем это? Что мы на этом экономим? Получаем скорость. Если AES реализовали в железе, то уж вычисление "длинного" корня там и подавно легко добавить, тогда скорость будет в разы больше. При этом ключ будет равен длине пакета. А число, из которого берётся корень, есть лишь способ сжатия информации о ключе. В начале сеанса шлём число, а не всю последовательность для шифрования. Число может быть маленьким, в разы меньше 256 бит, ибо перебором и 64 бита будут месяцами на мега-кластере считать. Но это не готовое предложение, это из разряда "мысли вслух". Потому что полноценно обосновывать это всё мне времени жалко. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2019, 21:50 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
alex55555maytonЗачем это? Что мы на этом экономим? Получаем скорость. Если AES реализовали в железе, то уж вычисление "длинного" корня там и подавно легко добавить, тогда скорость будет в разы больше. Почему ты вообще в тему втащил "корень" ? Как его считать? Методом Ньютона? Метод Ньютона потребует массы арифметики над длинным (нет не длинным а бесконечно растущим числом). И почему ты решил что твой метод дешевле чем просто генерация криптобезопасного случайного ключа? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2019, 21:58 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Dima T1. Определить что AES аппаратно не поддерживается, не гуглил, но это вроде как можно определить что поддеживает проц перед использованием. авторBefore an application attempts to use AESNI instructionsor PCLMULQDQ, the application should follow the steps illustrated in Section 11.6.2, “Checking for SSE/SSE2 Support.” Next, use the additional step provided below: Check that the processor supports AESNI (if CPUID.01H:ECX.AESNI[bit 25] = 1); check that the processor supports PCLMULQDQ (if CPUID.01H:ECX.PCLMULQDQ[bit 1] = 1). ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2019, 22:00 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
maytonПочему ты вообще в тему втащил "корень" ? Потому что был вопрос про шифрование. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2019, 22:00 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Dima TmaytonНе собралось. Поправил, проверяй. Хехе. На жлобском i3. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2019, 01:36 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Только заметил, я с выводом немного накосячил: 1. не "4096 blocks of 500000 bytes each" а 500000 блоков по 4096 байт 2. В линуксе время вывелось в мкс, но скорость правильно посчиталась. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2019, 07:40 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
maytonХехе. На жлобском i3. Добавлю в общую таблицу Алгоритмi7-6700Ki7-3770Ki5-660mayton i3CBC xor1784 ms 1094 Mb/s2298 ms 849 Mb/s3429 ms 569 Mb/s3674 ms 531 Mb/sRC42689 ms 726 Mb/s4794 ms 407 Mb/s4897 ms 398 Mb/s10483 ms 186 Mb/sAES-128311 ms 6280 Mb/s648 ms 3014 Mb/s1102 ms 1772 Mb/s1072 ms 1820 Mb/sAES-128 + CBC1390 ms 1405 Mb/s2709 ms 720 Mb/s2488 ms 785 Mb/s5079 ms 384 Mb/s Странно что добавление CBC так сильно замедляет. На некоторых процах становится AES+CBC даже медленнее чем CBC xor. Хотя код не сильно меняется. Просто AES Код: plaintext 1. 2. 3. 4. 5. 6.
AES+CBC Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
Добавились две простые операции: XOR двух блоков и копирование блока. По сравнению с aes128_enc() это легкие операции, но скорость почему-то падает в разы. aes128_enc() Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Асм мельком глянул, серьезной разницы в коде нет. Единственное подозрение что предсказатель в проце распараллеливает просто AES, предугадывая какой блок будет обсчитываться следующим, а после добавления CBC параллелить невозможно. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2019, 08:02 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Добавил дешифрование AES с CBC Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Просто AES Код: plaintext 1. 2. 3. 4. 5. 6.
Затестил скорость и она такая же как у просто AES На всякий случай добавил тест скорости дешифрования AES, она не отличается от шифрования. ОперацияСкоростьAES.encrypt()6009 Mb/sAES.decrypt()5847 Mb/sAES.cbc_encrypt()1380 Mb/sAES.cbc_decrypt()5991 Mb/s PS Потестил в линуксе - тоже тормозит cbc_encrypt(). И в линуксе почему-то почти вдвое медленнее чем в виндовсе, хотя обе виртуалки на одном хосте. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2019, 10:06 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Нашел классический исходник AES, т.е. без спец.команд проца. Затестил шифрование им. В 100 раз медленнее. На слабеньком i3-2310M скорость 21 Мб/сек. Думаю ARM вообще захлебнется. Вобщем не вариант использовать AES там где нет его поддержки процом. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2019, 12:55 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Посмотри утилита OpenSSL имеет встроенные бенчмарки. Возможно есть симметричка попроще чем AES по мегафлопам но посильнее чем "Хорь". ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2019, 14:11 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Типа такого. AES против DES. Насколько я понимаю каждый тест ограничен в 3 секунды. И меряется количество блоков которые удалось успеть отработать с учотом вариативной длины блока. При этом насколько я понял это не блок шифрования а блок одной операции OpenSSL. Например внизу указана скорость DES для 16к блока. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2019, 14:32 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Dima TСтранно что добавление CBC так сильно замедляет. Ничего странного. ECB аппаратно распараллеливается, СВС этого не может в принципе. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2019, 14:38 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovDima TСтранно что добавление CBC так сильно замедляет. Ничего странного. ECB аппаратно распараллеливается, СВС этого не может в принципе. Что-то я затупил. Понял почему расшифровка не тормозит - она параллелится. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2019, 15:24 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
maytonТипа такого. AES против DES. Насколько я понимаю каждый тест ограничен в 3 секунды. И меряется количество блоков которые удалось успеть отработать с учотом вариативной длины блока. При этом насколько я понял это не блок шифрования а блок одной операции OpenSSL. Например внизу указана скорость DES для 16к блока. Код: sql 1. 2. 3. 4.
80 Мб/сек как-то совсем грустно. Глянь выше 21847664 , твой ноут выдал 531 Мб/сек. на аппаратном AES с cbc ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2019, 17:29 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Ну прекрасно. Значит тот дистрибутив OpenSSL который шел в репозитариях убунты не поддержал AES-NI. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2019, 17:47 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Прогони у себя аналогичный тест. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2019, 17:48 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
maytonПрогони у себя аналогичный тест. А смысл? Если есть поддержка AES-NI, то и у меня все отлично, а если нет то и так ясно что все плохо. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2019, 18:00 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Придумал как ускорить тормоз шифрования AES+CBC 21847716 . Сначала сделать CBC потом кодирование. Я понимаю что это совсем не CBC, но у меня цели шире шифрования 21844612 . Думаю криптостойкость остается достаточная. Назвал это xor_crypt() Код: plaintext 1. 2. 3. 4. 5. 6. 7.
Само шифрование идет в два шага Код: plaintext 1. 2.
Производительность повысилась ОперацияСкоростьAES.encrypt()6009 Mb/sAES.decrypt()5847 Mb/sAES.cbc_encrypt()1380 Mb/sAES.cbc_decrypt()5991 Mb/sAES.xor_encrypt()3792 Mb/sAES.xor_decrypt()3919 Mb/s Правда несильно, если сложить encrypt+decrypt, то имеем 7371 для CBC и 7711 для xor. Чуть менее 5%. Но с другой стороны равномерная нагрузка у отправителя и получателя. PS Я еще могу это запараллелить, т.е. один поток выполняет aes.xor_crypt(), другой aes.encrypt() ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2019, 18:25 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Ты можешь усложнить прикладной протокол и считать файл набором независимых кусков. Чанков. И тогда - параллелить шифрование чанков по ядру процессора на каждый чанк. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2019, 19:04 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
maytonТы можешь усложнить прикладной протокол и считать файл набором независимых кусков. Чанков. И тогда - параллелить шифрование чанков по ядру процессора на каждый чанк. Хорошая мысль, и менять особо ничего не надо. У меня уже набор независимых чанков (UDP-пакетов), можно их шифровать параллельно и отправлять по мере готовности, т.к. UDP не гарантирует порядок доставки пакетов. Но в итоге всего-лишь увеличим скорость в N раз, где N это количество доступных ядер, поэтому скорость шифрования все-равно важна. Но мысль замечательная, обязательно использую. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2019, 19:42 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Надеюсь скорость диска и сети достаточная. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2019, 20:21 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
maytonНадеюсь скорость диска и сети достаточная. Одна из целей выжать гигабит из гигабитной сети, 128 Мб/сек. Я уже пробовал, но TCP победил с большим перевесом, надеюсь наверстать, но думаю для рекорда придется шифрование отключить, т.к. TCP тоже не шифруется. Но если я победю с шифрованием - это будет круто. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2019, 20:36 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
maytonНадеюсь скорость диска и сети достаточная. Про скорость диска - купи уже SSD, на современных SSD (NMVE) скорость чтения 2-3 Гб/сек. Ты вроде мамку новую покупаешь, посмотри чтобы NMVE поддерживала. Но скорость чтения из кэша ОС, т.е. из памяти 5 Гб/сек., поэтому не покупаю сверхскоростные SSD, т.к. иметь много оперативки лучше для чтения. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2019, 21:00 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
У меня сейчас ASUS prime B450. На борту есть слот M.2 который я пока еще не использую но как только прикуплю хороший SSD - поставлю. Пока у меня - основные задачи перенос архивов. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2019, 22:19 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Вот скриншотик с топа. Всего 6 ядер. Видятся как 12 логических CPU. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2019, 22:27 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
maytonВот скриншотик с топа. Всего 6 ядер. Видятся как 12 логических CPU. Надо как-нибудь затестить насколько логическое ядро AMD отличается от Intel. У последнего два логических как 1.4 реальных. Можно кардтрейсером параллельным померить. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2019, 10:43 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
У нас мультипоточка адаптирована только В dotNet и Java реализациях ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2019, 10:54 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Отлично. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2019, 11:34 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Ты мог-бы пушнуть это в мой репозитарий? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2019, 11:35 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Еще статистика по твоей крипте. На процессоре AMD Ryzen-5 Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2019, 19:35 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
И чтобы быть последовательным. Я еще раз перегенерирую статистику встроенного шифровальщика на новом железе. Условия те-же. Сравниваем АЕС и Дес в режиме сцепления блоков. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28.
... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2019, 19:38 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
maytonТы мог-бы пушнуть это в мой репозитарий? Закину, надо чуть поправить вывод. maytonЕще статистика по твоей крипте. На процессоре AMD Ryzen-5 Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
Тут проигрывает интелу 21847357 mayton Код: sql 1. 2. 3. 4.
А тут интел порван, там было 6000, т.е. тут в полтора раза быстрее. mayton Код: sql 1. 2.
Тут также как на интеле. Это не параллелится. Похоже AMD в полтора раза глубже параллелит чем интел. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2019, 19:46 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Я соберусь с силами и перетещу все бенчмарки Рей-Трейсера. Но это не главная задача. У меня щас идея - перетащить всю конфигурацию Рей-Тресера в Docker. Хороший challenge. +Сравним есть ли разница между native-call наших компилляторов и сред исполнения и para-virtualization. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2019, 19:56 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
maytonЯ соберусь с силами и перетещу все бенчмарки Рей-Трейсера. Но это не главная задача. У меня щас идея - перетащить всю конфигурацию Рей-Тресера в Docker. Хороший challenge. +Сравним есть ли разница между native-call наших компилляторов и сред исполнения и para-virtualization. Разницы не будет. Там нагрузка только на проц. Я все тесты запускал в виртуалках на одном хосте и на самом хосте. Виртуализация проца идет аппаратно, производительность не проседает. В виртуалках проседает IO диска и сети. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2019, 20:09 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Тогда тем более. Сам бог велел нам собирать Docker c полным комплектом компилляторов. Процедура инсталляции среды упрощается до двух действий. Установить докер. И установить образ всего проекта. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2019, 20:29 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Тут фигню намерил 21847923 , алгоритм xor кривой оказался. Поправил исходники ОперацияСкоростьAES.encrypt()6009 Mb/sAES.decrypt()5847 Mb/sAES.cbc_encrypt()1380 Mb/sAES.cbc_decrypt()5991 Mb/sAES.xor_encrypt()4942 Mb/sAES.xor_decrypt()6103 Mb/s mayton, если не трудно, запусти код на своем AMD и результат сюда запости. PS _mm_xor_si128() очень быстро работает. Как узнать что эта функция поддерживается процом и компилятором? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2019, 20:34 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Да. Пожалуйста. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2019, 21:27 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Интересные цифры. Тут 21848374 AES шифрование было 9 Гб/сек, стало 11 Гб/сек. Я всего лишь размер блока уменьшил до 1472 байт. На моем i7-6700K как было 6 Гб/сек, так и осталось. AES-128 + XOR отличный результат на обоих процах. Это замена тормозного AES-128 + CBC, т.е. сначала CBC, точнее XOR с предыдущим как в CBC, но без шифрования, затем AES шифрование. И очень странный результат RC4rand256, это просто побайтный XOR с ключевой последовательностью смещенной N байт, где N значение первого байта шифруемого. Как-то сложно описал, проще исходник показать: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
Это я ищу быструю альтернативу хотя бы спрятать, там где полноценно зашифровать не удается из-за отсутствия поддержки AES-NI. У меня RC4rand256 дает какие-то фантастические скорости: в виндовсе в 6-7 раз быстрее чем AES, но в линуксе в 2 раза медленнее, у тебя в линуксе в 6.5 раз медленнее. Похоже меня компилятор MSVC обхитрил, что-то соптимизировал там где я не ожидал, надо изобретать другой способ тестирования. Также есть сомнения в точности замера AES, т.к. по идее результат должен быть одинаков в виндовсе и линуксе, но в линуксе почти вдвое медленнее. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2019, 08:34 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Попробуй у себя ещё парочку компиляторов. Тогда мы точнее поймём где идёт влияние железа. И где влияют конкретные возможности оптимизаций. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2019, 09:07 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Dima TТакже есть сомнения в точности замера AES, т.к. по идее результат должен быть одинаков в виндовсе и линуксе, но в линуксе почти вдвое медленнее. Если Линукс на виртуалке, то в некоторых версиях QEMU, например, был баг когда CPUID AЕS флаг пробрасывался в гостевую систему некорректно (точнее никак). ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2019, 13:37 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovDima TТакже есть сомнения в точности замера AES, т.к. по идее результат должен быть одинаков в виндовсе и линуксе, но в линуксе почти вдвое медленнее. Если Линукс на виртуалке, то в некоторых версиях QEMU, например, был баг когда CPUID AЕS флаг пробрасывался в гостевую систему некорректно (точнее никак). Виртуалки под VirtualBox. Я флаг AES проверяю. Да и непохоже что программно считается, программно раз в 100 медленнее, а тут всего в 2 раза. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2019, 13:40 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovDima TТакже есть сомнения в точности замера AES, т.к. по идее результат должен быть одинаков в виндовсе и линуксе, но в линуксе почти вдвое медленнее. Если Линукс на виртуалке, то в некоторых версиях QEMU, например, был баг когда CPUID AЕS флаг пробрасывался в гостевую систему некорректно (точнее никак). Линукс на железе. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2019, 18:32 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
maytonDimitry Sibiryakovпропущено... Если Линукс на виртуалке, то в некоторых версиях QEMU, например, был баг когда CPUID AЕS флаг пробрасывался в гостевую систему некорректно (точнее никак). Линукс на железе. Я так понял что речь про мой линукс в виртуалке. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2019, 21:01 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Предыдущие замеры строились на замере времени пустого цикла и вычитание его из времени цикла с полезной нагрузкой. Тут похоже компилятор меня перехитрил соптимизировав циклы. Переделал все на акторы, т.е. многопоточно. Замер времени от и до без вычетов. АлгоритмРезультат i7-6700KПустой прогон125 ms 11230 Mb/sXOR SHIFT198 ms 7089 Mb/sXOR SHIFT + CBC556 ms 2524 Mb/sRC42253 ms 623 Mb/sAES-128 encrypt486 ms 2888 Mb/sAES-128 decrypt514 ms 2731 Mb/sAES-128 + CBC encrypt1181 ms 1188 Mb/sAES-128 + CBC decrypt512 ms 2741 Mb/sXOR128 + CBC encrypt183 ms 7671 Mb/sXOR128 + CBC decrypt182 ms 7713 Mb/s Многопоточно тестить в виртуалке - какая-то ерунда получается, дал линуксу три ядра - он стал работать медленнее чем с одним. Но в однопроцовой виндовс-виртуалке медленнее чем на вин-хосте. mayton , пожалуйста, запусти тест на своем AMD и результат напиши. PS Однопроцевые виртуалки виндовса и линукса дают похожие результаты. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2019, 19:38 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Хопа. Привет. Только добрался до компа. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2019, 20:35 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
Готово. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
Еще под катом информация о процессоре. Хм.. странно что частота как-то плавает. Возможно надо заниматься оверклокингом. Чем я еще пока не занимался. Вобщем обещаю чуть позже посмотреть как райзен ее вообще регулирует. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2019, 22:02 |
|
Пятничная криптостойкость
|
|||
---|---|---|---|
#18+
maytonХм.. странно что частота как-то плавает. Похоже проц прогревается постепенно, пустой цикл медленнее чем нагруженный. Наверно для точности замеров надо запускать несколько раз подряд. Но и этот результат подойдет, мне точно не надо, этих данных вполне достаточно чтобы определиться. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2019, 12:32 |
|
|
start [/forum/topic.php?all=1&fid=16&tid=1339965]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
168ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
190ms |
get tp. blocked users: |
1ms |
others: | 284ms |
total: | 690ms |
0 / 0 |