![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 13.01.2008
Сообщений: 140
|
![]()
Всем доброго времени суток!
Реализовал шифрование блока rc6 по спецификации. Так, чисто абстрактная реализация. Код:
Последний раз редактировалось Hottabych; 19.07.2011 в 00:30. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,833
|
![]()
Попробуйте не двигать массив каждый раз, а использовать доп. индекс для 0-го элемента
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 13.01.2008
Сообщений: 140
|
![]()
Имеется ввиду этот участок?
Код:
|
![]() |
![]() |
![]() |
#4 | |
я получил эту роль
Старожил
Регистрация: 25.05.2007
Сообщений: 3,694
|
![]() Цитата:
![]() buf можно выкинуть и менять местами Rgs[3] с Rgs[0] тремя xor, не думаю что даст большой прирост
пыщь
|
|
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
![]()
> результат в попугаях
а учитывая, что на каждые 128 бит 4 раза вызывается Random(), то о точных замерах скорости вобще можно забыть.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
![]() |
![]() |
![]() |
#6 | |
Форумчанин
Регистрация: 13.01.2008
Сообщений: 140
|
![]()
Random вызывается "для нагрузки" (хотя фиг его знает зачем я это вставил)... Если не ошибаюсь, без рандома время на шифровку такого же кол-ва блоков уменьшается на 200ms.
Кстати, есть ли разница во времени доступа к элементу статического массива и динамического? А 150 Мбайт/сек - это шифровка файлового потока, памяти или тупо нулей? При дисковом i/o (чтении файлового потока по 128 бит) скорость вообще никакая, что, собственно, логично... Задача: передавать потоковое видео(данные), предварительно его шифруя... В идеале, запас скорости шифровки должен быть 1 Gbit/сек. Судя по википедии: Цитата:
Updated: за 100 нс проц делает ~303 такта (-x тактов уходит на ось), как думаете, этого достаточно для обработки 1 блока? Последний раз редактировалось Hottabych; 19.07.2011 в 17:25. |
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 13.01.2008
Сообщений: 140
|
![]()
Без рандомов - 80 мбайт/сек.
Итого - 0,67 Гбит/сек На 1 блок - 190 нс общего времени (в попугаях)). На проце Intel Core 2 Duo E8400... Теоретически, на обработку 1 блока с 20 раундами уходит 1141 инструкций ассемблера (вышеприведенный код). Отсюда, вывод: при обработке 4 инструкций за такт, проц 3 ГГц шифрует со скоростью 1,36 Гбит/сек, но это теоретически... Есть еще идеи как можно ускорить шифрование? Думаю, последнее, что можно применить для оптимизации теперь уже в практической реализации - это распараллеливание задачи. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
RC6 на 32 битной платформе. | Ghost of Night | Общие вопросы Delphi | 0 | 02.07.2011 01:14 |
Скорость рисования и остальная скорость | ZotaC | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 121 | 13.11.2010 22:51 |
Алгоритм RC6 | taginice | Общие вопросы C/C++ | 1 | 14.09.2010 21:03 |
RC6 | Anenya.K | Софт | 5 | 05.03.2010 21:42 |
Шифрование RC6 | Suicidecat | Фриланс | 7 | 06.06.2009 08:46 |